From svnnotify ¡÷ sourceforge.jp Sat Nov 1 08:46:53 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 01 Nov 2008 08:46:53 +0900 Subject: [pal-cvs 3542] [1276] updated styles. Message-ID: <1225496813.308227.12668.nullmailer@users.sourceforge.jp> Revision: 1276 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1276 Author: shinsuke Date: 2008-11-01 08:46:52 +0900 (Sat, 01 Nov 2008) Log Message: ----------- updated styles. Modified Paths: -------------- pal-admin/trunk/src/main/webapp/view/deployer/deployerEdit.html pal-admin/trunk/src/main/webapp/view/deployer/remotePortletDeployConfirm.html pal-admin/trunk/src/main/webapp/view/deployer/remotePortletList.html pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryConfirm.html pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryEdit.html pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryList.html pal-admin/trunk/src/main/webapp/view/group/groupConfirm.html pal-admin/trunk/src/main/webapp/view/group/groupEdit.html pal-admin/trunk/src/main/webapp/view/permission/folderPermissionConfirm.html pal-admin/trunk/src/main/webapp/view/permission/folderPermissionEdit.html pal-admin/trunk/src/main/webapp/view/permission/pagePermissionConfirm.html pal-admin/trunk/src/main/webapp/view/permission/pagePermissionEdit.html pal-admin/trunk/src/main/webapp/view/permission/portletPermissionConfirm.html pal-admin/trunk/src/main/webapp/view/permission/portletPermissionEdit.html pal-admin/trunk/src/main/webapp/view/portletmanager/portletActionConfirm.html pal-admin/trunk/src/main/webapp/view/portletmanager/portletList.html pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html pal-admin/trunk/src/main/webapp/view/role/roleConfirm.html pal-admin/trunk/src/main/webapp/view/role/roleEdit.html pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html pal-admin/trunk/src/main/webapp/view/user/userConfirm.html pal-admin/trunk/src/main/webapp/view/user/userCreate.html pal-admin/trunk/src/main/webapp/view/user/userEdit.html pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html pal-admin/trunk/src/main/webapp/view/user/userList.html pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html -------------- next part -------------- Modified: pal-admin/trunk/src/main/webapp/view/deployer/deployerEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/deployer/deployerEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/deployer/deployerEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,41 +9,53 @@
-
- Portlets - +
+
+
+ + | + Remote +
+
-
+
-
- - | - Remote -
- - + +
+ - - + - + + + + + + +
+ -
+ +
+ -
- -
Modified: pal-admin/trunk/src/main/webapp/view/deployer/remotePortletDeployConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/deployer/remotePortletDeployConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/deployer/remotePortletDeployConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,51 +9,54 @@
-
- Portlets - +
+
+
+ Local + | + +
-
+
-
- Local - | - -
- - +
+
+ - - - + + - - - + + - - - + + - - - + + -
GROUPIDGROUPID
ARTIFACTIDARTIFACTID
VERSIONVERSION
PACKAGINGPACKAGING
- -
+ + + +
@@ -61,7 +64,12 @@
+ + + +
+
Modified: pal-admin/trunk/src/main/webapp/view/deployer/remotePortletList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/deployer/remotePortletList.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/deployer/remotePortletList.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,34 +9,41 @@
-
- Portlets - +
+
+
+ Local + | + +
-
+
-
- Local - | - -
- -
+
+
+ Edit +
@@ -51,8 +58,9 @@ te:rendered="#{deployer_remotePortletListPage.nextPageNumber!=null}">Next>>
+ - + @@ -63,11 +71,11 @@ - - - - - + + + +
PUBLISHERNAMEVERSIONPACKAGING + PUBLISHERNAMEVERSIONPACKAGING
@@ -78,6 +86,7 @@
+
-
- Portlets - +
+
+
+ Local + | + +
-
+ +
-
+
-
+
+
-
- Local - | - -
- -
- +
+
+ - - - + + -
REPOSITORYREPOSITORY
-
- -
- +
- - - + + + + + - - - - -
REPOSITORYPATH
PATH
-
- -
+
@@ -73,7 +70,12 @@
+ + + +
+
Modified: pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,54 +9,66 @@
-
- Portlets - +
+
+
+ Local + | + +
-
+ +
-
+
+
-
- Local - | - -
- - + +
+ - - + - + - - - + + -
+
aaa
-
- -
+ + + +
-
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryList.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/deployer/remoteRepositoryList.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,30 +9,34 @@
-
- Portlets - +
+
+
+ Local + | + Remote + | + Create +
-
+
- Local - | - Remote - | - Create -
- -
10 (3/5)
@@ -44,8 +48,9 @@ te:rendered="#{deployer_remoteRepositoryListPage.nextPageNumber!=null}">Next>>
+
- + @@ -54,8 +59,8 @@ - - + -
NAME + NAME
@@ -63,7 +68,7 @@
+ @@ -74,6 +79,7 @@
+
- +
Modified: pal-admin/trunk/src/main/webapp/view/group/groupEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/group/groupEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/group/groupEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -38,7 +38,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/permission/folderPermissionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/permission/folderPermissionConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/permission/folderPermissionConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -30,7 +30,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/permission/folderPermissionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/permission/folderPermissionEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/permission/folderPermissionEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -29,7 +29,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/permission/pagePermissionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/permission/pagePermissionConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/permission/pagePermissionConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -30,7 +30,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/permission/pagePermissionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/permission/pagePermissionEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/permission/pagePermissionEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -29,7 +29,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/permission/portletPermissionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/permission/portletPermissionConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/permission/portletPermissionConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -30,7 +30,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/permission/portletPermissionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/permission/portletPermissionEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/permission/portletPermissionEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -29,7 +29,7 @@
- +
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/portletmanager/portletActionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/portletmanager/portletActionConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/portletmanager/portletActionConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,9 +9,14 @@
-
- - Deployer +
+
@@ -20,34 +25,43 @@
-
+
+
-
+
-
+
-
+
+
- + +
+ - - - + + -
PORTLETPORTLET
- -
+
- +
+ + Modified: pal-admin/trunk/src/main/webapp/view/portletmanager/portletList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/portletmanager/portletList.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/portletmanager/portletList.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -9,9 +9,14 @@
-
- - Deployer +
+
@@ -20,12 +25,16 @@
-
+
-
- Refresh +
+
+ + + +
@@ -38,6 +47,7 @@ Next>>
+
@@ -93,6 +103,7 @@
+
<<Previous Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -23,7 +23,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -24,7 +24,7 @@
- +
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -23,7 +23,7 @@
- +
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -22,7 +22,7 @@
- +
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/role/roleConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/role/roleConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/role/roleConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -38,7 +38,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/role/roleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/role/roleEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/role/roleEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -38,7 +38,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -29,7 +29,7 @@
-
+
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -28,7 +28,7 @@
- +
+ + + + +
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -29,7 +29,7 @@
- +
+ + + + +
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -28,7 +28,7 @@
- +
+ + + + + +
Modified: pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -49,7 +49,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -49,7 +49,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/user/userConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userConfirm.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userConfirm.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -38,7 +38,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/user/userCreate.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userCreate.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userCreate.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -37,7 +37,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/user/userEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -49,7 +49,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -49,7 +49,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/user/userList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userList.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userList.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -44,7 +44,7 @@
-
+
Modified: pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -49,7 +49,7 @@
- +
Modified: pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html 2008-10-31 09:31:44 UTC (rev 1275) +++ pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html 2008-10-31 23:46:52 UTC (rev 1276) @@ -49,7 +49,7 @@
-
+
From svnnotify ¡÷ sourceforge.jp Tue Nov 4 06:47:15 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 04 Nov 2008 06:47:15 +0900 Subject: [pal-cvs 3543] [1277] modified urls. Message-ID: <1225748835.181007.7313.nullmailer@users.sourceforge.jp> Revision: 1277 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1277 Author: shinsuke Date: 2008-11-04 06:47:14 +0900 (Tue, 04 Nov 2008) Log Message: ----------- modified urls. Modified Paths: -------------- site/trunk/project.xml -------------- next part -------------- Modified: site/trunk/project.xml =================================================================== --- site/trunk/project.xml 2008-10-31 23:46:52 UTC (rev 1276) +++ site/trunk/project.xml 2008-11-03 21:47:14 UTC (rev 1277) @@ -9,11 +9,12 @@ 1.0 Portal Application Laboratorycom - http://sourceforge.jp/projects/pal/ + http://pal.sourceforge.jp/ /images/pal-logo.png 2005 + http://sourceforge.jp/projects/pal/ /images/sflogo.png From svnnotify ¡÷ sourceforge.jp Tue Nov 4 07:09:18 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 04 Nov 2008 07:09:18 +0900 Subject: [pal-cvs 3544] [1278] modified urls. Message-ID: <1225750158.988989.27114.nullmailer@users.sourceforge.jp> Revision: 1278 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1278 Author: shinsuke Date: 2008-11-04 07:09:18 +0900 (Tue, 04 Nov 2008) Log Message: ----------- modified urls. Modified Paths: -------------- pal-portal/docs/ja/administration-guide/trunk/project.xml pal-portal/docs/ja/configuration-guide/trunk/project.xml pal-portal/docs/ja/installation-guide/trunk/project.xml pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml -------------- next part -------------- Modified: pal-portal/docs/ja/administration-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/project.xml 2008-11-03 21:47:14 UTC (rev 1277) +++ pal-portal/docs/ja/administration-guide/trunk/project.xml 2008-11-03 22:09:18 UTC (rev 1278) @@ -21,11 +21,12 @@ 1.1-rev1 Portal Application Laboratory - http://sourceforge.jp/projects/pal/ + http://pal.sourceforge.jp/ /images/pal-logo.png 2005 + http://sourceforge.jp/projects/pal/ /images/sflogo.gif shell.sourceforge.jp Modified: pal-portal/docs/ja/configuration-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/project.xml 2008-11-03 21:47:14 UTC (rev 1277) +++ pal-portal/docs/ja/configuration-guide/trunk/project.xml 2008-11-03 22:09:18 UTC (rev 1278) @@ -21,11 +21,12 @@ 1.1-rev2 Portal Application Laboratory - http://sourceforge.jp/projects/pal/ + http://pal.sourceforge.jp/ /images/pal-logo.png 2005 + http://sourceforge.jp/projects/pal/ /images/sflogo.gif shell.sourceforge.jp Modified: pal-portal/docs/ja/installation-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/project.xml 2008-11-03 21:47:14 UTC (rev 1277) +++ pal-portal/docs/ja/installation-guide/trunk/project.xml 2008-11-03 22:09:18 UTC (rev 1278) @@ -21,11 +21,12 @@ 1.1-rev1 Portal Application Laboratory - http://sourceforge.jp/projects/pal/ + http://pal.sourceforge.jp/ /images/pal-logo.png 2005 + http://sourceforge.jp/projects/pal/ /images/sflogo.gif shell.sourceforge.jp Modified: pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml 2008-11-03 21:47:14 UTC (rev 1277) +++ pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml 2008-11-03 22:09:18 UTC (rev 1278) @@ -21,11 +21,12 @@ 1.1-rev1 Portal Application Laboratory - http://sourceforge.jp/projects/pal/ + http://pal.sourceforge.jp/ /images/pal-logo.png 2005 + http://sourceforge.jp/projects/pal/ http://pal.sourceforge.jp/images/sflogo.png shell.sourceforge.jp From svnnotify ¡÷ sourceforge.jp Tue Nov 4 14:37:58 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 04 Nov 2008 14:37:58 +0900 Subject: [pal-cvs 3545] [1279] updated styles. Message-ID: <1225777078.185772.27618.nullmailer@users.sourceforge.jp> Revision: 1279 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1279 Author: shinsuke Date: 2008-11-04 14:37:57 +0900 (Tue, 04 Nov 2008) Log Message: ----------- updated styles. Modified Paths: -------------- pal-admin/trunk/src/main/java/jp/sf/pal/admin/entity/PortletApplication.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/PortletManagementLogic.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/PortletManagementService.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/portletmanager/PortletListPage.java pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label.properties pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label_ja.properties pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label.properties pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label_ja.properties pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label.properties pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label_ja.properties pal-admin/trunk/src/main/webapp/view/password/passwordEdit.html pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionList.html pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html pal-admin/trunk/src/main/webapp/view/profiler/ruleList.html pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintList.html pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConstraintList.html pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionList.html pal-admin/trunk/src/main/webapp/view/site/folderAddFolderAndPageEditor.html pal-admin/trunk/src/main/webapp/view/site/folderInfoEditor.html pal-admin/trunk/src/main/webapp/view/site/folderMetadataEditor.html pal-admin/trunk/src/main/webapp/view/site/folderOrderEditor.html pal-admin/trunk/src/main/webapp/view/site/folderSecurityEditor.html pal-admin/trunk/src/main/webapp/view/site/layoutAddPortletEditor.html pal-admin/trunk/src/main/webapp/view/site/layoutInfoEditor.html pal-admin/trunk/src/main/webapp/view/site/layoutPreferenceEditor.html pal-admin/trunk/src/main/webapp/view/site/layoutPropertyEditor.html pal-admin/trunk/src/main/webapp/view/site/pageInfoEditor.html pal-admin/trunk/src/main/webapp/view/site/pageMetadataEditor.html pal-admin/trunk/src/main/webapp/view/site/pageSecurityEditor.html pal-admin/trunk/src/main/webapp/view/site/portletInfoEditor.html pal-admin/trunk/src/main/webapp/view/site/portletPreferenceEditor.html pal-admin/trunk/src/main/webapp/view/site/portletPropertyEditor.html -------------- next part -------------- Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/entity/PortletApplication.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/entity/PortletApplication.java 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/entity/PortletApplication.java 2008-11-04 05:37:57 UTC (rev 1279) @@ -23,9 +23,6 @@ public class PortletApplication implements Serializable { - /** - * - */ private static final long serialVersionUID = 904304488157108100L; public static final String PACKAGING_TYPE_WAR = "war"; Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/PortletManagementLogic.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/PortletManagementLogic.java 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/PortletManagementLogic.java 2008-11-04 05:37:57 UTC (rev 1279) @@ -33,9 +33,7 @@ import org.seasar.framework.log.Logger; public class PortletManagementLogic implements Serializable { - /** - * - */ + private static final long serialVersionUID = 4388302393628406530L; /** Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/PortletManagementService.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/PortletManagementService.java 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/PortletManagementService.java 2008-11-04 05:37:57 UTC (rev 1279) @@ -31,9 +31,7 @@ import jp.sf.pal.admin.web.portletmanager.PortletListPage; public class PortletManagementService implements Serializable { - /** - * - */ + private static final long serialVersionUID = 8641303744306860030L; private PortletManagementLogic portletManagementLogic; @@ -117,11 +115,11 @@ portletApplicationDxo.convert(getPortletManagementLogic() .getPortletApplications(pager), list); PagerUtil.updatePagerPage(page, pager); - page.setPortletApplicationItems(list); + page.portletApplicationItems = list; // set server manager status - page.setServerManagerAvailable(getPortletManagementLogic() - .isServerManagerAvailable()); + page.serverManagerAvailable = getPortletManagementLogic() + .isServerManagerAvailable(); } public void startPortletApplication(PortletActionConfirmPage page) Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/portletmanager/PortletListPage.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/portletmanager/PortletListPage.java 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/portletmanager/PortletListPage.java 2008-11-04 05:37:57 UTC (rev 1279) @@ -19,6 +19,8 @@ import java.util.List; import java.util.Map; +import org.seasar.teeda.extension.util.LabelHelper; + import jp.sf.pal.admin.PALAdminConstants; import jp.sf.pal.admin.service.PortletManagementService; import jp.sf.pal.admin.web.AbstractPagerPage; @@ -28,53 +30,38 @@ private static final long serialVersionUID = -4766951315413321520L; - private String name; + public String name; - private String path; + public String path; - private int portletApplicationIndex; + public int portletApplicationIndex; - private List> portletApplicationItems; + public List> portletApplicationItems; - private String version; + public String version; - private boolean serverManagerAvailable; + public boolean serverManagerAvailable; private PortletManagementService portletManagementService; - public String getName() { - return name; - } + private LabelHelper labelHelper; - public void setName(String name) { - this.name = name; + public Class initialize() { + return null; } - public String getPath() { - return path; - } + public Class prerender() { + // load page + getPortletManagementService().loadPage(this); - public void setPath(String path) { - this.path = path; + FacesMessageUtil.renderMessages(); + return null; } - public int getPortletApplicationIndex() { - return portletApplicationIndex; + public Class doRefresh() { + return null; } - public void setPortletApplicationIndex(int portletIndex) { - this.portletApplicationIndex = portletIndex; - } - - public List> getPortletApplicationItems() { - return portletApplicationItems; - } - - public void setPortletApplicationItems( - List> portletItems) { - this.portletApplicationItems = portletItems; - } - public Integer getStatus() { return (Integer) portletApplicationItems.get(portletApplicationIndex) .get("status"); @@ -88,29 +75,7 @@ .get("applicationType"); } - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - /** - * @return the serverManagerAvailable - */ - public boolean isServerManagerAvailable() { - return serverManagerAvailable; - } - - /** - * @param serverManagerAvailable the serverManagerAvailable to set - */ - public void setServerManagerAvailable(boolean serverManagerAvailable) { - this.serverManagerAvailable = serverManagerAvailable; - } - - /** * @return the portletManagementService */ public PortletManagementService getPortletManagementService() { @@ -125,32 +90,28 @@ this.portletManagementService = portletManagementService; } - public String initialize() { - return null; + public LabelHelper getLabelHelper() { + return labelHelper; } - public String prerender() { - // load page - getPortletManagementService().loadPage(this); - - FacesMessageUtil.renderMessages(); - return null; + public void setLabelHelper(LabelHelper labelHelper) { + this.labelHelper = labelHelper; } public boolean isStartAction() { - return isServerManagerAvailable() + return serverManagerAvailable && getStatus() == PALAdminConstants.PORTLET_APPLICATION_STATUS_STOPPED && getApplicationType() == PALAdminConstants.PORTLET_APPLICATION_TYPE_WEBAPP; } public boolean isStopAction() { - return isServerManagerAvailable() + return serverManagerAvailable && getStatus() == PALAdminConstants.PORTLET_APPLICATION_STATUS_RUNNING && getApplicationType() == PALAdminConstants.PORTLET_APPLICATION_TYPE_WEBAPP; } public boolean isUndeployAction() { - return isServerManagerAvailable() + return serverManagerAvailable && getApplicationType() == PALAdminConstants.PORTLET_APPLICATION_TYPE_WEBAPP; } @@ -170,4 +131,7 @@ return !isRunning() && !isStopped(); } + public String getDoRefreshValue() { + return labelHelper.getLabelValue("refresh"); + } } Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label.properties 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label.properties 2008-11-04 05:37:57 UTC (rev 1279) @@ -24,3 +24,7 @@ startButton=Start stopButton=Stop undeployButton=Undeploy + +action=Action +refresh=Refresh + Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label_ja.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label_ja.properties 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/portletmanager/label_ja.properties 2008-11-04 05:37:57 UTC (rev 1279) @@ -24,3 +24,6 @@ startButton=\u958b\u59cb stopButton=\u505c\u6b62 undeployButton=\u914d\u5099\u89e3\u9664 + +action=\u64cd\u4f5c +refresh=\u518d\u8aad\u307f\u8fbc\u307f Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label.properties 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label.properties 2008-11-04 05:37:57 UTC (rev 1279) @@ -7,6 +7,7 @@ deleteTab=Delete securityDefinitionList=Security Constraint Definition List +securityDefinitionCreate=Create Security Constraint Definition globalSecurityList=Global Security Constraint List definitionName=Definition Name backToDefinitionList=Back To Constraint Definition List Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label_ja.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label_ja.properties 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/securityconstraint/label_ja.properties 2008-11-04 05:37:57 UTC (rev 1279) @@ -7,6 +7,7 @@ deleteTab=\u524a\u9664 securityDefinitionList=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u7d04\u5b9a\u7fa9\u4e00\u89a7 +securityDefinitionCreate=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u7d04\u5b9a\u7fa9\u306e\u8ffd\u52a0 globalSecurityList=\u30b0\u30ed\u30fc\u30d0\u30eb\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u7d04\u4e00\u89a7 definitionName=\u5b9a\u7fa9\u540d backToDefinitionList=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u7d04\u5b9a\u7fa9\u4e00\u89a7\u3078\u623b\u308b Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label.properties 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label.properties 2008-11-04 05:37:57 UTC (rev 1279) @@ -11,6 +11,18 @@ securityConstraintType=Definition securityConstraintsRefType=Reference +createNewPreferenceTitle=Create New Preference +createNewPropertyTitle=Create New Property +addLayoutTitle=Add Layout +addPortletTitle=Add Portlet +addLayoutIsNotAvailable=You have no permission to add a layout. +addPortletIsNotAvailable=You have no permission to add a portlet. +createNewMetadataTitle=Create New Metadata +createNewConstraintRefTitle=Create New Constraint Reference +createNewConstraintTitle=Create New Constraint +noPermissionToAddPage=You have no permission to add a folder/page. +addDocumentNameTitle=Add Document Name + pageInfoEditor.pageTitle=Title pageInfoEditor.pageShortTitle=Short Title pageInfoEditor.pageDecorator=Page Decorator Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label_ja.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label_ja.properties 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/site/label_ja.properties 2008-11-04 05:37:57 UTC (rev 1279) @@ -11,6 +11,19 @@ securityConstraintType=\u5b9a\u7fa9 securityConstraintsRefType=\u53c2\u7167 +createNewPreferenceTitle=\u30d7\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u306e\u65b0\u898f\u4f5c\u6210 +createNewPropertyTitle=\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u65b0\u898f\u4f5c\u6210 +addLayoutTitle=\u30ec\u30a4\u30a2\u30a6\u30c8\u306e\u8ffd\u52a0 +addPortletTitle=\u30dd\u30fc\u30c8\u30ec\u30c3\u30c8\u306e\u8ffd\u52a0 +addLayoutIsNotAvailable=\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002 +addPortletIsNotAvailable=\u30dd\u30fc\u30c8\u30ec\u30c3\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002 +createNewMetadataTitle=\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u65b0\u898f\u8ffd\u52a0 +createNewConstraintRefTitle=\u5236\u7d04\u53c2\u7167\u306e\u8ffd\u52a0 +createNewConstraintTitle=\u5236\u7d04\u53c2\u7167\u306e\u8ffd\u52a0 +noPermissionToAddPage=\u30d5\u30a9\u30eb\u30c0\u307e\u305f\u306f\u30da\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002 +addDocumentNameTitle=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u540d\u306e\u8ffd\u52a0 + + pageInfoEditor.pageTitle=\u30bf\u30a4\u30c8\u30eb pageInfoEditor.pageShortTitle=\u77ed\u3044\u30bf\u30a4\u30c8\u30eb pageInfoEditor.pageDecorator=\u30da\u30fc\u30b8\u30c7\u30b3\u30ec\u30fc\u30bf Modified: pal-admin/trunk/src/main/webapp/view/password/passwordEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/password/passwordEdit.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/password/passwordEdit.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -13,8 +13,9 @@ -
-
+
+
+ + + +
@@ -39,11 +40,14 @@
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleConfirm.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -23,49 +23,51 @@
+
+ - - - - - - -
+ - - + + NAME -
+ - - + + NAME -
+ - - + + NAME -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionConfirm.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -24,73 +24,69 @@
+
- - - - - - - - - - -
+ - - + + NAME -
+ - - + + NAME -
+ - - + + type -
+ - - + + fallbackType -
+ - - + + fallbackOrder -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionEdit.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -23,12 +23,13 @@
+
- - - + - - - - - + -
+ - - + +
@@ -36,27 +37,23 @@ NAME -
+ - - - - +
+ - - + +
-
+ - - + + -
+ - - - - +
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionList.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleCriterionList.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -22,7 +22,7 @@
-
+
10 (3/5) @@ -36,7 +36,7 @@
- + - - - - + + + + + +
@@ -57,16 +57,16 @@
+ user + value + type + fallbackOrder Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleEdit.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -22,12 +22,14 @@
+
+ - - - - - - -
+ - - + +
@@ -35,42 +37,42 @@ NAME -
+ - - + + -
+ - - + + -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/profiler/ruleList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/profiler/ruleList.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/profiler/ruleList.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -21,7 +21,7 @@
-
+
10 (3/5) @@ -35,7 +35,7 @@
- + - - + + + + + +
@@ -47,10 +47,10 @@
+ user + Edit Edit Delete Modified: pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -16,12 +16,22 @@
-
- - +
+ + + + + + + + + + + + +
-
- +
Modified: pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -13,807 +13,671 @@
+
+ - - - - - - - - -
+ - + -
+ - + -
+ - + -
+ - + -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintConfirm.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- Definitions - -
+
+ +
List | @@ -29,25 +34,31 @@
+
+ - - -
+ - - + + NAME -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintEdit.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- Definitions - -
+
+ +
List | @@ -28,24 +33,30 @@
+
+ - - -
+ - - + + -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintList.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/globalSecurityConstraintList.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- Definitions - -
+
+ +
| @@ -27,7 +32,7 @@
-
+
10 (3/5) @@ -41,7 +46,7 @@
- + - - Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConfirm.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- - Globals -
+
+ +
List | @@ -29,25 +34,31 @@
+
@@ -53,10 +58,10 @@
+ user + Delete
+ - - -
+ - - + + NAME -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConstraintList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConstraintList.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionConstraintList.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- - Globals -
+
+ +
List |
@@ -26,19 +31,19 @@
-
+
- @@ -57,36 +62,38 @@
+ - - + + - - + + - +
-
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- aaa - -
-
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
aaa
- -
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionEdit.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- - Globals -
+
+ +
List | @@ -28,24 +33,30 @@
+
+ - - -
+ - - + + -
-
+
+
Modified: pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionList.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/securityconstraint/securityDefinitionList.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -9,10 +9,15 @@
-
- - Globals -
+
+ +
| @@ -27,7 +32,7 @@
-
+
10 (3/5) Modified: pal-admin/trunk/src/main/webapp/view/site/folderAddFolderAndPageEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/folderAddFolderAndPageEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/folderAddFolderAndPageEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -38,72 +38,77 @@ Finish
- + +
+ +
+
-
-
-
- -
-
-
- -
-
-
- -
-
-
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

- -
-
-
- -
-
-
- - -
-
- -
-
+
+
+
+
Modified: pal-admin/trunk/src/main/webapp/view/site/folderInfoEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/folderInfoEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/folderInfoEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -38,70 +38,73 @@ Finish
- + +
+ +
+
-
- -
-
- -
-
-
- -
-
-
- + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
- -
-
-
- - -
-
- -
-
-
- -
-
+
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/folderMetadataEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/folderMetadataEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/folderMetadataEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -38,34 +38,36 @@ Finish
- + +
+ +
+
-
+
- - - - + + + + @@ -83,24 +85,32 @@
- -
- -
-
- -
-
-
- -
-
-
- -
-
+
+
+ + + + + + + + + + + + + + + + + + + + + +
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/folderOrderEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/folderOrderEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/folderOrderEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -42,52 +42,75 @@ Finish
- + +
+ +
+
-
+
-
-
- + + + + + + +
+
+ + + + + +
- -
+
- +
-
+
-
-
- + + + + + + + + + + + + + +
- +
Modified: pal-admin/trunk/src/main/webapp/view/site/folderSecurityEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/folderSecurityEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/folderSecurityEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -38,34 +38,36 @@ Finish
- + +
+ +
+
-
+
- - - - + + + + @@ -83,42 +85,58 @@
- -
- -
-
- -
-
-
- -
-
-
- -
-
-
- +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
aaa - - -
+
- - -
- -
-
-
+
+
+ + + + + + + + + + + + + +
- -
+
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/layoutAddPortletEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/layoutAddPortletEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/layoutAddPortletEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,45 +50,72 @@ Finish
- + +
+ +
+
-
-
-
- + + + + + + + + + + + + +
- -
+
- +
-
-
-
- + + + + + + + + + + + + +
- -
+
- +
+
+ +

Modified: pal-admin/trunk/src/main/webapp/view/site/layoutInfoEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/layoutInfoEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/layoutInfoEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,52 +50,58 @@ Finish
- + +
+ +
+
-
- -
-
- ID -
-
-
- + + + + + + + + + + + + + + +
+
+ + + + + +
ID
- -
-
-
- - -
+
- - +
+

Modified: pal-admin/trunk/src/main/webapp/view/site/layoutPreferenceEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/layoutPreferenceEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/layoutPreferenceEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,30 +50,33 @@ Finish - + +
+ +
+
-
+
- - - + + + @@ -90,20 +93,28 @@
- -
- -
-
- -
-
-
- -
-
+
+
+ + + + + + + + + + + + + + + + + +
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/layoutPropertyEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/layoutPropertyEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/layoutPropertyEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,30 +50,33 @@ Finish
- + +
+ +
+
-
+
- - - + + + @@ -90,20 +93,28 @@
- -
- -
-
- -
-
-
- -
-
+
+
+ + + + + + + + + + + + + + + + + +
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/pageInfoEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/pageInfoEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/pageInfoEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,59 +50,64 @@ Finish
-
- - - Metadata - - - Security - -
+ +
+ +
+
-
- -
-
- -
-
-
- -
-
-
- + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
- -
-
-
- - -
-
- -
-
+
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/pageMetadataEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/pageMetadataEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/pageMetadataEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,28 +50,32 @@ Finish -
- - Info - - - - Security - -
+ +
+ +
+
-
+
- - - - + + + + @@ -89,24 +93,32 @@
- -
- -
-
- -
-
-
- -
-
-
- -
-
+
+
+ + + + + + + + + + + + + + + + + + + + + +
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/pageSecurityEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/pageSecurityEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/pageSecurityEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,28 +50,32 @@ Finish
-
- - Info - - - Metadata - - -
+ +
+ +
+
-
+
- - - - + + + + @@ -89,42 +93,58 @@
- -
- -
-
- -
-
-
- -
-
-
- -
-
-
- +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
aaa - - -
+
- - -
- -
-
-
+
+
+ + + + + + + + + + + + + +
- -
+
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/portletInfoEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/portletInfoEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/portletInfoEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,49 +50,58 @@ Finish
- + +
+ +
+
-
- -
-
- ID -
-
-
- + + + + + + + + + + + + + + +
+
+ + + + + +
ID
+ +
- -
-
- -
- -
+
- - +
+

Modified: pal-admin/trunk/src/main/webapp/view/site/portletPreferenceEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/portletPreferenceEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/portletPreferenceEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,27 +50,31 @@ Finish - + +
+ +
+
-
+
- - - + + + @@ -87,20 +91,28 @@
- -
- -
-
- -
-
-
- -
-
+
+
+ + + + + + + + + + + + + + + + + +
- +

Modified: pal-admin/trunk/src/main/webapp/view/site/portletPropertyEditor.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/site/portletPropertyEditor.html 2008-11-03 22:09:18 UTC (rev 1278) +++ pal-admin/trunk/src/main/webapp/view/site/portletPropertyEditor.html 2008-11-04 05:37:57 UTC (rev 1279) @@ -50,27 +50,31 @@ Finish
- + +
+ +
+
-
+
- - - + + + @@ -87,20 +91,28 @@
- -
- -
-
- -
-
-
- -
-
+
+
+ + + + + + + + + + + + + + + + + +
- +

From svnnotify ¡÷ sourceforge.jp Tue Nov 4 15:43:51 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 04 Nov 2008 15:43:51 +0900 Subject: [pal-cvs 3546] [1280] replaced with context.log. Message-ID: <1225781031.360242.26629.nullmailer@users.sourceforge.jp> Revision: 1280 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1280 Author: shinsuke Date: 2008-11-04 15:43:51 +0900 (Tue, 04 Nov 2008) Log Message: ----------- replaced with context.log. Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/commons/src/java/org/apache/jetspeed/container/JetspeedContainerServlet.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/commons/src/java/org/apache/jetspeed/container/JetspeedContainerServlet.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/commons/src/java/org/apache/jetspeed/container/JetspeedContainerServlet.java 2008-11-04 05:37:57 UTC (rev 1279) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/commons/src/java/org/apache/jetspeed/container/JetspeedContainerServlet.java 2008-11-04 06:43:51 UTC (rev 1280) @@ -143,7 +143,7 @@ { Object[] args = new Object[] {INIT_START_MSG + contextName}; - log.log("0100001", args); // REPLACED + getServletContext().log(log.getString("0100001", args)); // REPLACED } try { @@ -157,7 +157,7 @@ // System.err.println(message); Object[] args = new Object[] {message}; - log.log("0100002", args, e); // REPLACED + getServletContext().log(log.getString("0100002", args), e); // REPLACED throw new ServletException(log.getString("0100002", args), e); } @@ -167,7 +167,7 @@ { Object[] args = new Object[] {INIT_DONE_MSG + contextName}; - log.log("0100003", args); // REPLACED + getServletContext().log(log.getString("0100003", args)); // REPLACED } } } @@ -197,7 +197,7 @@ { Object[] args = new Object[] {START_DELAYED_MSG}; - log.log("0100004", args); // REPLACED + getServletContext().log(log.getString("0100004", args)); // REPLACED } startTimer = new Timer(true); // TODO Findbugs @@ -238,7 +238,7 @@ { Object[] args = new Object[] {TRY_START_MSG + contextPath}; - log.log("0100005", args); // REPLACED + getServletContext().log(log.getString("0100005", args)); // REPLACED } PortletServices services = JetspeedPortletServices.getSingleton(); if (services != null) @@ -261,7 +261,7 @@ { Object[] args = new Object[] {STARTED_MSG + contextPath}; - log.log("0100006", args); // REPLACED + getServletContext().log(log.getString("0100006", args)); // REPLACED } return true; } @@ -274,7 +274,7 @@ { Object[] args = new Object[] {INIT_FAILED_MSG + contextPath}; - log.log("0100007", args, e); // REPLACED + getServletContext().log(log.getString("0100007", args), e); // REPLACED } return true; // don't try again } @@ -398,7 +398,7 @@ { Object[] args = new Object[] {JCS, portletName, t.toString()}; - log.log("0100008", args, t); // REPLACED + getServletContext().log(log.getString("0100008", args), t); // REPLACED } try { @@ -488,7 +488,7 @@ { Object[] args = new Object[] {JCS, t.toString()}; - log.log("0100009", args, t); // REPLACED + getServletContext().log(log.getString("0100009", args), t); // REPLACED } PrintWriter directError; try From svnnotify ¡÷ sourceforge.jp Tue Nov 4 15:52:58 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 04 Nov 2008 15:52:58 +0900 Subject: [pal-cvs 3547] [1281] added t. Message-ID: <1225781578.058180.3332.nullmailer@users.sourceforge.jp> Revision: 1281 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1281 Author: shinsuke Date: 2008-11-04 15:52:57 +0900 (Tue, 04 Nov 2008) Log Message: ----------- added t. Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java 2008-11-04 06:43:51 UTC (rev 1280) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portal/src/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java 2008-11-04 06:52:57 UTC (rev 1281) @@ -329,7 +329,7 @@ // + ": " + t.toString()); Object[] args = new Object[] {curWindow.getId(), t.toString()}; - log.log("1200018", args); // REPLACED + log.log("1200018", args, t); // REPLACED fragment.overrideRenderedContent("portlet.is.not.available"); } else From svnnotify ¡÷ sourceforge.jp Tue Nov 4 16:58:56 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 04 Nov 2008 16:58:56 +0900 Subject: [pal-cvs 3548] [1282] Created Japanese Message File. Message-ID: <1225785536.638351.6866.nullmailer@users.sourceforge.jp> Revision: 1282 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1282 Author: takakura Date: 2008-11-04 16:58:56 +0900 (Tue, 04 Nov 2008) Log Message: ----------- Created Japanese Message File. Added Paths: ----------- timecard/trunk/src/main/resources/application_ja.properties -------------- next part -------------- Added: timecard/trunk/src/main/resources/application_ja.properties =================================================================== --- timecard/trunk/src/main/resources/application_ja.properties (rev 0) +++ timecard/trunk/src/main/resources/application_ja.properties 2008-11-04 07:58:56 UTC (rev 1282) @@ -0,0 +1,41 @@ +errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.maxbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.required={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.required.other={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002({1}) +errors.byte={0} \u306f\u30d0\u30a4\u30c8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.date={0} \u306f\u65e5\u4ed8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.double={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (double \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.float={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (float \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.integer={0} \u306f\u6574\u6570\u578b (2147483647 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.long={0} \u306f\u6574\u6570\u578b (9223372036854775807 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.short={0} \u306f\u6574\u6570\u578b (32767 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.creditcard={0} \u306f\u6b63\u3057\u3044\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.email={0} \u306f\u6b63\u3057\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.url={0} \u306f\u6b63\u3057\u3044 URL (\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u30a2\u30c9\u30ec\u30b9) \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 + +success.update_config=\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.create_daily_report=\u65e5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_daily_report=\u65e5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_daily_report=\u65e5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_employee=\u5f93\u696d\u54e1\u3092\u767b\u9332\u3057\u307e\u3057\u305f\u3002 +success.update_employee=\u5f93\u696d\u54e1\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_employee=\u5f93\u696d\u54e1\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.update_monthly_report=\u6708\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 + +errors.failed_to_update_config=\u8a2d\u5b9a\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) +errors.invalid.id=\u7121\u52b9\u306aID\u3067\u3059\u3002 +errors.failed_to_create_daily_report=\u65e5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_daily_report=\u65e5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_daily_report=\u65e5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_daily_report=\u65e5\u5831\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}). +errors.failed_to_create_employee=\u5f93\u696d\u54e1\u306e\u767b\u9332\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_employee=\u5f93\u696d\u54e1\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_employee=\u5f93\u696d\u54e1\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_employee=\u5f93\u696d\u54e1\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}). +errors.invalid_username= \u7121\u52b9\u306a\u30e6\u30fc\u30b6\u30fc\u540d\u3067\u3059 +errors.failed_to_update_monthly_report=\u6708\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 Property changes on: timecard/trunk/src/main/resources/application_ja.properties ___________________________________________________________________ Name: svn:mime-type + text/plain From svnnotify ¡÷ sourceforge.jp Wed Nov 5 13:10:03 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 13:10:03 +0900 Subject: [pal-cvs 3549] [1283] patch 'r704369: Layout Portlets removed Page logic is incorrectly worked' Message-ID: <1225858203.555207.10984.nullmailer@users.sourceforge.jp> Revision: 1283 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1283 Author: sone Date: 2008-11-05 13:10:03 +0900 (Wed, 05 Nov 2008) Log Message: ----------- patch 'r704369: Layout Portlets removed Page logic is incorrectly worked' Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java 2008-11-04 07:58:56 UTC (rev 1282) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java 2008-11-05 04:10:03 UTC (rev 1283) @@ -439,6 +439,8 @@ try { Folder parent = (Folder) requestPage.getParent(); + pageManager.removePage(requestPage); + if (parent != null) { List orderList = parent.getDocumentOrder(); @@ -453,8 +455,6 @@ } } } - - pageManager.removePage(requestPage); } catch (Exception e) { From svnnotify ¡÷ sourceforge.jp Wed Nov 5 14:09:49 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 14:09:49 +0900 Subject: [pal-cvs 3550] [1284] patch 'r707188: PortletFactory should not cache portlet and application definition oid values to support live redeployment across a cluster ' Message-ID: <1225861789.161283.30314.nullmailer@users.sourceforge.jp> Revision: 1284 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1284 Author: sone Date: 2008-11-05 14:09:48 +0900 (Wed, 05 Nov 2008) Log Message: ----------- patch 'r707188: PortletFactory should not cache portlet and application definition oid values to support live redeployment across a cluster' Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java 2008-11-05 04:10:03 UTC (rev 1283) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java 2008-11-05 05:09:48 UTC (rev 1284) @@ -127,7 +127,7 @@ synchronized (classLoaderMap) { unregisterPortletApplication(pa); - classLoaderMap.put(pa.getId(), cl); + classLoaderMap.put(pa.getName(), cl); } } @@ -137,23 +137,21 @@ { synchronized (portletCache) { - ClassLoader cl = (ClassLoader) classLoaderMap - .remove(pa.getId()); + ClassLoader cl = (ClassLoader) classLoaderMap.remove(pa + .getName()); if (cl != null) { ClassLoader currentContextClassLoader = Thread .currentThread().getContextClassLoader(); - Iterator portletDefinitions = pa.getPortletDefinitions() - .iterator(); - while (portletDefinitions.hasNext()) + HashMap instanceCache = (HashMap) portletCache.remove(pa + .getName()); + if (instanceCache != null) { - PortletDefinition pd = (PortletDefinition) portletDefinitions - .next(); - String pdId = pd.getId().toString(); - Portlet portlet = (Portlet) portletCache.remove(pdId); - if (portlet != null) + Iterator instances = instanceCache.values().iterator(); + while (instances.hasNext()) { + Portlet portlet = (Portlet) instances.next(); try { Thread.currentThread() @@ -166,7 +164,7 @@ currentContextClassLoader); } } - validatorCache.remove(pdId); + validatorCache.remove(pa.getName()); } } } @@ -178,23 +176,26 @@ PreferencesValidator validator = null; try { - String pdId = pd.getId().toString(); + String paName = ((PortletApplication) pd + .getPortletApplicationDefinition()).getName(); + String pdName = pd.getName(); synchronized (validatorCache) { - validator = (PreferencesValidator) validatorCache.get(pdId); + HashMap instanceCache = (HashMap) validatorCache.get(paName); + validator = instanceCache != null ? (PreferencesValidator) instanceCache + .get(pdName) + : null; if (validator == null) { String className = ((PortletDefinitionComposite) pd) .getPreferenceValidatorClassname(); if (className != null) { - PortletApplication pa = (PortletApplication) pd - .getPortletApplicationDefinition(); - ClassLoader paCl = (ClassLoader) classLoaderMap.get(pa - .getId()); + ClassLoader paCl = (ClassLoader) classLoaderMap + .get(paName); if (paCl == null) { throw new UnavailableException( - "Portlet Application " + pa.getName() + "Portlet Application " + paName + " not available"); } ClassLoader currentContextClassLoader = Thread @@ -208,7 +209,12 @@ paCl); validator = (PreferencesValidator) clazz .newInstance(); - validatorCache.put(pdId, validator); + if (instanceCache == null) + { + instanceCache = new HashMap(); + validatorCache.put(paName, instanceCache); + } + instanceCache.put(pdName, validator); } finally { @@ -224,7 +230,7 @@ // + pd.getName(); //log.error(msg, e); Object[] args = new Object[] - {className, pd.getName()}; + {className, pdName}; log.log("1400001", args, e); // REPLACED } } @@ -252,21 +258,24 @@ PortletDefinition pd) throws PortletException { PortletInstance portlet = null; - String pdId = pd.getId().toString(); PortletApplication pa = (PortletApplication) pd .getPortletApplicationDefinition(); - + String paName = pa.getName(); + String pdName = pd.getName(); try { synchronized (portletCache) { - portlet = (PortletInstance) portletCache.get(pdId); + HashMap instanceCache = (HashMap) portletCache.get(paName); + portlet = instanceCache != null ? (PortletInstance) instanceCache + .get(pdName) + : null; + if (null != portlet) { return portlet; } - ClassLoader paCl = (ClassLoader) classLoaderMap.get(pa.getId()); + ClassLoader paCl = (ClassLoader) classLoaderMap.get(paName); if (paCl == null) { throw new UnavailableException( - "Portlet Application " + pa.getName() - + " not available"); } + "Portlet Application " + pdName + " not available"); } ClassLoader currentContextClassLoader = Thread.currentThread() .getContextClassLoader(); @@ -287,15 +296,15 @@ if (this.portletProxyUsed && !PortletObjectProxy.isPortletObjectProxied()) { - portlet = new JetspeedPortletProxyInstance(pd - .getName(), (Portlet) clazz.newInstance(), + portlet = new JetspeedPortletProxyInstance(pdName, + (Portlet) clazz.newInstance(), this.autoSwitchEditDefaultsModeToEditMode, this.autoSwitchConfigMode, this.customConfigModePortletUniqueName); } else { - portlet = new JetspeedPortletInstance(pd.getName(), + portlet = new JetspeedPortletInstance(pdName, (Portlet) clazz.newInstance()); } } @@ -312,10 +321,11 @@ // + pa.getName(); //log.error(msg, e); Object[] args = new Object[] - {pd.getClassName(), pa.getName()}; + {pd.getClassName(), paName}; log.log("1400003", args, e); // REPLACED //throw new UnavailableException(msg); - throw new UnavailableException(log.getString("1400003", args)); + throw new UnavailableException(log.getString("1400003", + args)); } PortletContext portletContext = PortalAccessor @@ -342,11 +352,16 @@ // + pd.getClassName() + " for Portlet Application " // + pa.getName(), e1); Object[] args = new Object[] - {pd.getClassName(), pa.getName()}; + {pd.getClassName(), paName}; log.log("1400004", args, e1); // REPLACED throw e1; } - portletCache.put(pdId, portlet); + if (instanceCache == null) + { + instanceCache = new HashMap(); + portletCache.put(paName, instanceCache); + } + instanceCache.put(pdName, portlet); } } catch (PortletException pe) @@ -370,15 +385,23 @@ { if (pd != null) { - // System.out.println("$$$$ updating portlet config for " + - // pd.getName()); - String key = pd.getId().toString(); - PortletInstance instance = (PortletInstance) portletCache.get(key); - if (instance != null) + synchronized (portletCache) { - JetspeedPortletConfig config = (JetspeedPortletConfig) instance - .getConfig(); - config.setPortletDefinition(pd); + // System.out.println("$$$$ updating portlet config for " + + // pd.getName()); + String key = pd.getId().toString(); + HashMap instanceCache = (HashMap) portletCache + .get(((PortletApplication) pd + .getPortletApplicationDefinition()).getName()); + PortletInstance instance = instanceCache != null ? (PortletInstance) instanceCache + .get(pd.getName()) + : null; + if (instance != null) + { + JetspeedPortletConfig config = (JetspeedPortletConfig) instance + .getConfig(); + config.setPortletDefinition(pd); + } } } } @@ -388,7 +411,7 @@ synchronized (classLoaderMap) { if (pa != null) { return (ClassLoader) classLoaderMap.get(pa - .getId()); } + .getName()); } return null; } } From svnnotify ¡÷ sourceforge.jp Wed Nov 5 14:24:08 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 14:24:08 +0900 Subject: [pal-cvs 3551] [1285] patch 'r708276: Customizer removes the Portlet Fragments when Security Constraints are Used ' Message-ID: <1225862648.820698.14011.nullmailer@users.sourceforge.jp> Revision: 1285 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1285 Author: sone Date: 2008-11-05 14:24:08 +0900 (Wed, 05 Nov 2008) Log Message: ----------- patch 'r708276: Customizer removes the Portlet Fragments when Security Constraints are Used' Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java 2008-11-05 05:09:48 UTC (rev 1284) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml/CastorFileSystemDocumentHandler.java 2008-11-05 05:24:08 UTC (rev 1285) @@ -33,6 +33,7 @@ import jp.sf.pal.portal.logging.Log; import jp.sf.pal.portal.logging.LogFactory; +import org.apache.jetspeed.JetspeedActions; import org.apache.jetspeed.cache.file.FileCache; import org.apache.jetspeed.cache.file.FileCacheEntry; import org.apache.jetspeed.cache.file.FileCacheEventListener; @@ -218,32 +219,42 @@ } AbstractBaseElement documentImpl = (AbstractBaseElement) document; documentImpl.setHandlerFactory(handlerFactory); - if (systemUpdate) - { - // on system update: temporarily turn off security - documentImpl.setPermissionsEnabled(false); - documentImpl.setConstraintsEnabled(false); - } - else - { - documentImpl.setPermissionsEnabled(handlerFactory - .getPermissionsEnabled()); - documentImpl.setConstraintsEnabled(handlerFactory - .getConstraintsEnabled()); - } - documentImpl.marshalling(); - - // marshal page to disk - String fileName = path; - if (!fileName.endsWith(this.documentType)) - { - fileName = path + this.documentType; - } - File f = new File(this.documentRootDir, fileName); + String absolutePath = ""; Writer writer = null; - try { + // JS2-903: move try up to ensure no backdoors to disabling security + if (systemUpdate) + { + // on system update: temporarily turn off security + documentImpl.setPermissionsEnabled(false); + documentImpl.setConstraintsEnabled(false); + } + else + { + try + { + // JS2-903: fragments are getting stripped out on write if the current user does not have edit access to write to the file + document.checkAccess(JetspeedActions.EDIT); + } + catch (SecurityException se) + { + throw new FailedToUpdateDocumentException( + "Insufficient Access: no edit access, cannot write."); + } + documentImpl.setPermissionsEnabled(false); + documentImpl.setConstraintsEnabled(false); + } + documentImpl.marshalling(); + + // marshal page to disk + String fileName = path; + if (!fileName.endsWith(this.documentType)) + { + fileName = path + this.documentType; + } + File f = new File(this.documentRootDir, fileName); + absolutePath = f.getAbsolutePath(); // marshal: use SAX II handler to filter document XML for // page and folder menu definition menu elements ordered // polymorphic collection to strip artifical @@ -348,7 +359,7 @@ { //log.error("Could not marshal the file " + f.getAbsolutePath(), e); Object[] args = new Object[] - {f.getAbsolutePath()}; + {absolutePath}; log.log("1100051", args, e); // REPLACED throw new FailedToUpdateDocumentException(e); } @@ -356,7 +367,7 @@ { //log.error("Document " + f.getAbsolutePath() + " is not valid", e); Object[] args = new Object[] - {f.getAbsolutePath()}; + {absolutePath}; log.log("1100052", args, e); // REPLACED throw new FailedToUpdateDocumentException(e); } @@ -364,7 +375,7 @@ { //log.error("Could not save the file " + f.getAbsolutePath(), e); Object[] args = new Object[] - {f.getAbsolutePath()}; + {absolutePath}; log.log("1100053", args, e); // REPLACED throw new FailedToUpdateDocumentException(e); } @@ -372,23 +383,20 @@ { //log.error("Error while saving " + f.getAbsolutePath(), e); Object[] args = new Object[] - {f.getAbsolutePath()}; + {absolutePath}; log.log("1100054", args, e); // REPLACED throw new FailedToUpdateDocumentException(e); } finally { - if (systemUpdate) - { - // restore permissions / constraints - documentImpl.setPermissionsEnabled(handlerFactory - .getPermissionsEnabled()); - documentImpl.setConstraintsEnabled(handlerFactory - .getConstraintsEnabled()); - } + // restore permissions / constraints + documentImpl.setPermissionsEnabled(handlerFactory + .getPermissionsEnabled()); + documentImpl.setConstraintsEnabled(handlerFactory + .getConstraintsEnabled()); try { - writer.close(); + if (writer != null) writer.close(); } catch (IOException e) { @@ -688,7 +696,8 @@ Object[] args = new Object[] {f.getAbsolutePath()}; log.log("1100058", args, e); // REPLACED - throw new DocumentNotFoundException(log.getString("1100058", args), e); + throw new DocumentNotFoundException(log.getString("1100058", args), + e); } if (document == null) From svnnotify ¡÷ sourceforge.jp Wed Nov 5 15:09:25 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 15:09:25 +0900 Subject: [pal-cvs 3552] [1286] added Japanese messages Message-ID: <1225865365.055732.19132.nullmailer@users.sourceforge.jp> Revision: 1286 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1286 Author: sone Date: 2008-11-05 15:09:24 +0900 (Wed, 05 Nov 2008) Log Message: ----------- added Japanese messages Modified Paths: -------------- pal-admin/trunk/src/main/resources/appMessages_ja.properties -------------- next part -------------- Modified: pal-admin/trunk/src/main/resources/appMessages_ja.properties =================================================================== --- pal-admin/trunk/src/main/resources/appMessages_ja.properties 2008-11-05 05:24:08 UTC (rev 1285) +++ pal-admin/trunk/src/main/resources/appMessages_ja.properties 2008-11-05 06:09:24 UTC (rev 1286) @@ -37,6 +37,7 @@ failed.to.remove.groups.from.user=\u30e6\u30fc\u30b6\u30fc({0})\u304b\u3089\u30b0\u30eb\u30fc\u30d7({1})\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 invalid.group.or.user.name=\u7121\u52b9\u306a\u30b0\u30eb\u30fc\u30d7\u540d\u307e\u305f\u306f\u30e6\u30fc\u30b6\u30fc\u540d\u3067\u3059\u3002 group.exists.in.user=\u30b0\u30eb\u30fc\u30d7({1})\u306f\u30e6\u30fc\u30b6\u30fc({0})\u306b\u5b58\u5728\u3057\u307e\u3059\u3002 +group.does.not.exist=\u30b0\u30eb\u30fc\u30d7({1})\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 added.role.to.user= \u30ed\u30fc\u30eb({1})\u3092\u30e6\u30fc\u30b6\u30fc({0})\u306b\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002 failed.to.add.role.to.user=\u30ed\u30fc\u30eb({1})\u3092\u30e6\u30fc\u30b6\u30fc({0})\u306b\u8ffd\u52a0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 @@ -44,6 +45,7 @@ failed.to.remove.roles.from.user=\u30e6\u30fc\u30b6\u30fc({0})\u304b\u3089\u30ed\u30fc\u30eb({1})\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 invalid.role.or.user.name=\u7121\u52b9\u306a\u30ed\u30fc\u30eb\u540d\u307e\u305f\u306f\u30e6\u30fc\u30b6\u30fc\u540d\u3067\u3059\u3002 role.exists.in.user=\u30ed\u30fc\u30eb({1})\u306f\u30e6\u30fc\u30b6\u30fc({0})\u306b\u5b58\u5728\u3057\u307e\u3059\u3002 +role.does.not.exist=\u30ed\u30fc\u30eb({1})\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 added.principalRule.to.user= \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb({1}/{2})\u3092\u30e6\u30fc\u30b6\u30fc({0})\u306b\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002 failed.to.add.principalRule.to.user=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb({1}/{2})\u3092\u30e6\u30fc\u30b6\u30fc({0})\u306b\u8ffd\u52a0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 @@ -277,6 +279,27 @@ global.security.constraint.already.exists=\u305d\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u7d04\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 global.security.constraint.does.not.exist=\u305d\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u7d04\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u305b\u3093\u3002 +could.not.find.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +added.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002 +could.not.add.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +updated.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +could.not.update.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +deleted.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +could.not.delete.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u3092\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +profiling.rule.already.exists=\u305d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 +profiling.rule.does.not.exist=\u305d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 + +could.not.find.rule.criteria=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +could.not.find.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +added.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002 +could.not.add.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +updated.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +could.not.update.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +deleted.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +could.not.delete.rule.criterion=\u30eb\u30fc\u30eb\u57fa\u6e96\u3092\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +rule.criterion.already.exists=\u305d\u306e\u30eb\u30fc\u30eb\u57fa\u6e96\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002 +rule.criterion.does.not.exist=\u305d\u306e\u30eb\u30fc\u30eb\u57fa\u6e96\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 + failed.to.get.roles=\u30ed\u30fc\u30eb\u60c5\u5831\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 failed.to.get.groups=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 could.not.create.user=\u30e6\u30fc\u30b6\u30fc\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 From svnnotify ¡÷ sourceforge.jp Wed Nov 5 15:37:34 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 15:37:34 +0900 Subject: [pal-cvs 3553] [1287] patch 'r699305: JSP Portlet Decorators: Decorator-specific decorator.jsp ignored' Message-ID: <1225867054.019393.13784.nullmailer@users.sourceforge.jp> Revision: 1287 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1287 Author: sone Date: 2008-11-05 15:37:33 +0900 (Wed, 05 Nov 2008) Log Message: ----------- patch 'r699305: JSP Portlet Decorators: Decorator-specific decorator.jsp ignored' Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/columns/layout.jsp pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/maximized/layout.jsp pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/solo/layout.jsp -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/columns/layout.jsp =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/columns/layout.jsp 2008-11-05 06:09:24 UTC (rev 1286) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/columns/layout.jsp 2008-11-05 06:37:33 UTC (rev 1287) @@ -132,10 +132,8 @@ <% // TODO hack alert, we need to do this because PortletDecorationImpl has - // decorator.vm hard coded sigh! - String _tempPath = _frag.getDecoration().getBasePath(); - String _portletJSP = _tempPath.substring(0,_tempPath.lastIndexOf('/')) + - "/decorator.jsp"; + // decorator.vm hard coded sigh! + String _portletJSP = "/" + _frag.getDecoration().getResource("decorator.jsp"); pageContext.setAttribute("fragTemplateUrl", _portletJSP, PageContext.PAGE_SCOPE); %> Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/maximized/layout.jsp =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/maximized/layout.jsp 2008-11-05 06:09:24 UTC (rev 1286) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/maximized/layout.jsp 2008-11-05 06:37:33 UTC (rev 1287) @@ -69,9 +69,7 @@ _jpt.setCurrentFragment(maxFragment); // TODO hack alert, we need to do this because PortletDecorationImpl has // decorator.vm hard coded sigh! - String _tempPath = maxFragment.getDecoration().getBasePath(); - String _portletJSP = _tempPath.substring(0,_tempPath.lastIndexOf('/')) + - "/decorator.jsp"; + String _portletJSP = "/" + maxFragment.getDecoration().getResource("decorator.jsp"); pageContext.setAttribute("fragTemplateUrl", _portletJSP, PageContext.PAGE_SCOPE); %> Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/solo/layout.jsp =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/solo/layout.jsp 2008-11-05 06:09:24 UTC (rev 1286) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/WEB-INF/templates/layout/html/solo/layout.jsp 2008-11-05 06:37:33 UTC (rev 1287) @@ -82,9 +82,7 @@ <% // TODO hack alert, we need to do this because PortletDecorationImpl has // decorator.vm hard coded sigh! - String _tempPath = maxFragment.getDecoration().getBasePath(); - String _portletJSP = _tempPath.substring(0,_tempPath.lastIndexOf('/')) + - "/decorator.jsp"; + String _portletJSP = "/" + maxFragment.getDecoration().getResource("decorator.jsp"); pageContext.setAttribute("fragTemplateUrl", _portletJSP, PageContext.PAGE_SCOPE); %> From svnnotify ¡÷ sourceforge.jp Wed Nov 5 19:31:05 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 19:31:05 +0900 Subject: [pal-cvs 3554] [1288] Created Japanese Message File. Message-ID: <1225881065.104917.19151.nullmailer@users.sourceforge.jp> Revision: 1288 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1288 Author: takakura Date: 2008-11-05 19:31:04 +0900 (Wed, 05 Nov 2008) Log Message: ----------- Created Japanese Message File. Modified Paths: -------------- timecard/trunk/src/main/resources/application.properties timecard/trunk/src/main/resources/application_ja.properties timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp -------------- next part -------------- Modified: timecard/trunk/src/main/resources/application.properties =================================================================== --- timecard/trunk/src/main/resources/application.properties 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/resources/application.properties 2008-11-05 10:31:04 UTC (rev 1288) @@ -12,7 +12,7 @@ errors.minbytelength={0} can not be less than {1} bytes. errors.range={0} is not in the range {1} through {2}. errors.required={0} is required. -errors.required.other={0} is required ({1}). +errors.required.other={0} is required ({1}). errors.byte={0} must be an byte. errors.date={0} is not a date. errors.double={0} must be an double. @@ -46,3 +46,108 @@ errors.could_not_find_employee=Could not find the employee information({0}). errors.invalid_username= Invalid username. errors.failed_to_update_monthly_report=Failed to update the monthly report information. + +labels.detail=Detail +labels.create=Create +labels.update=Update +labels.delete=Delete +labels.back=Back +labels.edit=Edit +labels.confirm=Confirm + +labels.admin_employee=Confirm employee +labels.s_user_name=User name +labels.s_manager_name=Manager name +labels.user_name=User name(ID) +labels.manager_name=Manager name(ID) +labels.days_of_paid_holiday=Paid holiday days +labels.status=Status +labels.available=Available +labels.invalid=Invalid + +labels.create_employee=Registration of employee +labels.days=days + +labels.time_card=Time card +labels.to_next=Next +labels.to_back=Back + +labels.confirm_time_card=Confirmation of edit at time +labels.date=Date +labels.working_status=Working status + +labels.ws1=Working +labels.ws2=Working on holiday +labels.ws3=Working on holiday(AM) +labels.ws4=Working on holiday(PM) +labels.ws200=Holiday +labels.ws100=Vacation +labels.ws101=Vacation(AM) +labels.ws102=Vacation(PM) +labels.ws20=Paid holiday +labels.ws21=Paid holiday(AM) +labels.ws22=Paid holiday(PM) +labels.ws30=Congratulation or condolence +labels.ws31=Congratulation or condolence(AM) +labels.ws32=Congratulation or condolence(PM) +labels.ws40=Vacation at private sickness +labels.ws41=Vacation at private sickness(AM) +labels.ws42=Vacation at private sickness(PM) +labels.ws110=Compensatory holiday +labels.ws111=Compensatory holiday(AM) +labels.ws112=Compensatory holiday(PM) + +labels.start_time=Start time +labels.end_time=End time +labels.break_time=Break time +labels.otj_time=OTJ time +labels.editing=Editing now +labels.request=Request +labels.recognized=Recognized +labels.memo=Memo + +labels.edit_timecard=Editing timecard +labels.sunday=(Sun) +labels.monday=(Mon) +labels.tuesday=(Tue) +labels.wednesday=(Wed) +labels.thursday=(Thu) +labels.friday=(Fri) +labels.satuaday=(Sat) +labels.saturday=(Sat) + +labels.config_info=Configuration infomation +labels.am_start_time=Start time +labels.am_end_time=Start of lunch time +labels.pm_start_time=End of lunch time +labels.pm_end_time=End time + +labels.employee_list=Employee list +labels.employee_info=Employee infomation +labels.month_info=Monthly infomation +labels.working_days=Working days +labels.std_working_days=Standard working days +labels.holidays=Vacation +labels.paidholidays=Paid holidays +labels.working_time=Working time +labels.std_working_time=Standard working time +labels.over_time=Overtime +labels.mnt_over_time=Midnight Overtime +labels_request_status=Request status +labels.status_change=Change status +labels.change=Change +labels.prev_month=Previous month +labels.this_month=This month +labels.next_month=Next month +labels.s_start_time=Start +labels.s_end_time=End +labels.s_break_time=Break +labels.s_otj_time=OTJ +labels.reason=Reason +labels.s_working_status=Status + +labels.auto_fill=Auto fill +labels.fix_monthly_report=Fixing monthly report + +labels.recognized2=\u627f\u8a8d\u6e08\u307f +labels.recognize=\u627f\u8a8d \ No newline at end of file Modified: timecard/trunk/src/main/resources/application_ja.properties =================================================================== --- timecard/trunk/src/main/resources/application_ja.properties 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/resources/application_ja.properties 2008-11-05 10:31:04 UTC (rev 1288) @@ -39,3 +39,108 @@ errors.could_not_find_employee=\u5f93\u696d\u54e1\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}). errors.invalid_username= \u7121\u52b9\u306a\u30e6\u30fc\u30b6\u30fc\u540d\u3067\u3059 errors.failed_to_update_monthly_report=\u6708\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 + +labels.detail=\u8a73\u7d30 +labels.create=\u4f5c\u6210 +labels.update=\u66f4\u65b0 +labels.delete=\u524a\u9664 +labels.back=\u623b\u308b +labels.edit=\u7de8\u96c6 +labels.confirm=\u78ba\u8a8d + +labels.admin_employee=\u5f93\u696d\u54e1\u306e\u78ba\u8a8d +labels.s_user_name=\u30e6\u30fc\u30b6\u30fc\u540d +labels.s_manager_name=\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u540d +labels.user_name=\u30e6\u30fc\u30b6\u30fc\u540d(ID) +labels.manager_name=\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u540d(ID) +labels.days_of_paid_holiday=\u6709\u7d66\u4f11\u6687\u65e5\u6570 +labels.status=\u72b6\u614b +labels.available=\u6709\u52b9 +labels.invalid=\u7121\u52b9 + +labels.create_employee=\u5f93\u696d\u54e1\u306e\u767b\u9332 +labels.days=\u65e5 + +labels.time_card=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9 +labels.to_next=\u6b21\u3078 +labels.to_back=\u524d\u3078 + +labels.confirm_timecard=\u6642\u523b\u7de8\u96c6\u306e\u78ba\u8a8d +labels.date=\u65e5\u4ed8 +labels.working_status=\u52e4\u52d9\u72b6\u6cc1 + +labels.ws1=\u52e4\u52d9 +labels.ws2=\u4f11\u65e5\u52e4\u52d9 +labels.ws3=\u4f11\u65e5\u52e4\u52d9(\u5348\u524d) +labels.ws4=\u4f11\u65e5\u52e4\u52d9(\u5348\u5f8c) +labels.ws200=\u4f11\u65e5 +labels.ws100=\u4f11\u6687 +labels.ws101=\u4f11\u6687(\u5348\u524d) +labels.ws102=\u4f11\u6687(\u5348\u5f8c) +labels.ws20=\u6709\u7d66\u4f11\u6687 +labels.ws21=\u6709\u7d66\u4f11\u6687(\u5348\u524d) +labels.ws22=\u6709\u7d66\u4f11\u6687(\u5348\u5f8c) +labels.ws30=\u6176\u5f14\u4f11\u6687 +labels.ws31=\u6176\u5f14\u4f11\u6687(\u5348\u524d) +labels.ws32=\u6176\u5f14\u4f11\u6687(\u5348\u5f8c) +labels.ws40=\u79c1\u50b7\u75c5\u4f11\u6687 +labels.ws41=\u79c1\u50b7\u75c5\u4f11\u6687(\u5348\u524d) +labels.ws42=\u79c1\u50b7\u75c5\u4f11\u6687(\u5348\u5f8c) +labels.ws110=\u4ee3\u4f11 +labels.ws111=\u4ee3\u4f11(\u5348\u524d) +labels.ws112=\u4ee3\u4f11(\u5348\u5f8c) + +labels.start_time=\u51fa\u793e\u6642\u523b +labels.end_time=\u9000\u793e\u6642\u523b +labels.break_time=\u4f11\u61a9\u6642\u9593 +labels.otj_time=\u52e4\u52d9\u5916\u6642\u9593 +labels.editing=\u7de8\u96c6\u4e2d +labels.request=\u7533\u8acb +labels.recognized=\u627f\u8a8d\u6e08 +labels.memo=\u30e1\u30e2 + +labels.edit_timecard=\u6642\u523b\u7de8\u96c6 +labels.sunday=(\u65e5) +labels.monday=(\u6708) +labels.tuesday=(\u706b) +labels.wednesday=(\u6c34) +labels.thursday=(\u6728) +labels.friday=(\u91d1) +labels.satuaday=(\u571f) +labels.saturday=(\u571f) + +labels.config_info=\u8a2d\u5b9a\u60c5\u5831 +labels.am_start_time=\u5348\u524d\u52e4\u52d9\u958b\u59cb\u6642\u9593 +labels.am_end_time=\u5348\u524d\u52e4\u52d9\u7d42\u4e86\u6642\u9593 +labels.pm_start_time=\u5348\u5f8c\u52e4\u52d9\u958b\u59cb\u6642\u9593 +labels.pm_end_time=\u5348\u5f8c\u52e4\u52d9\u7d42\u4e86\u6642\u9593 + +labels.employee_list=\u5f93\u696d\u54e1\u4e00\u89a7 +labels.employee_info=\u5f93\u696d\u54e1\u60c5\u5831 +labels.month_info=\u6708\u9593\u60c5\u5831 +labels.working_days=\u52e4\u52d9\u65e5\u6570 +labels.std_working_days=\u6a19\u6e96\u52e4\u52d9\u65e5\u6570 +labels.holidays=\u7121\u7d66\u4f11\u6687\u65e5\u6570 +labels.paidholidays=\u6709\u7d66\u4f11\u6687\u65e5\u6570 +labels.working_time=\u7a3c\u50cd\u6642\u9593 +labels.std_working_time=\u6a19\u6e96\u7a3c\u50cd\u6642\u9593 +labels.over_time=\u6b8b\u696d\u6642\u9593 +labels.mnt_over_time=\u6df1\u591c\u52e4\u52d9\u6642\u9593 +labels.request_status=\u7533\u8acb\u72b6\u6cc1 +labels.status_change=\u72b6\u614b\u5909\u66f4 +labels.change=\u5909\u66f4 +labels.prev_month=\u524d\u306e\u6708\u3078 +labels.this_month=\u4eca\u6708 +labels.next_month=\u6b21\u306e\u6708\u3078 +labels.s_start_time=\u51fa\u793e +labels.s_end_time=\u9000\u793e +labels.s_break_time=\u4f11\u61a9 +labels.s_otj_time=\u52e4\u52d9\u5916 +labels.reason=\u5185\u5bb9 +labels.s_working_status=\u72b6\u6cc1 + +labels.auto_fill=\u81ea\u52d5\u8a18\u5165 +labels.fix_monthly_report=\u6708\u6b21\u78ba\u5b9a + +labels.recognized2=\u627f\u8a8d\u6e08\u307f +labels.recognize=\u627f\u8a8d \ No newline at end of file Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -14,25 +14,25 @@
- + - + - + - + - + @@ -40,23 +40,23 @@ Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -14,26 +14,26 @@
½¾¶È°÷¤Î³Îǧ
¥æ¡¼¥¶¡¼Ì¾(ID) ${f:h(username)}
¥Þ¥Í¡¼¥¸¥ã¡¼Ì¾(ID) ${f:h(manager)}
Í­µëµÙ²ËÆü¿ô ${f:h(paidHolidays)}
¾õÂÖ -Í­¸ú -̵¸ú + +
- - - - - - - - - - - - - - + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> - - + "/> + "/>
- + - + - + - - + + - + @@ -41,8 +41,8 @@ Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -6,6 +6,6 @@
-Ìá¤ë + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -10,13 +10,13 @@
-¿·µ¬ºîÀ® +
½¾¶È°÷¤ÎÅÐÏ¿
¥æ¡¼¥¶¡¼Ì¾(ID)
¥Þ¥Í¡¼¥¸¥ã¡¼Ì¾(ID)
Í­µëµÙ²ËÆü¿ô Æü
¾õÂÖ -Í­¸ú -̵¸ú + +
- - + "/> + "/>
- - + + @@ -26,9 +26,9 @@ @@ -38,7 +38,7 @@
- Á°¤Ø + @@ -55,7 +55,7 @@ - ¼¡¤Ø +
Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -18,40 +18,40 @@
¥æ¡¼¥¶¡¼Ì¾¥Þ¥Í¡¼¥¸¥ã¡¼Ì¾  
${f:h(e.username)} ${f:h(e.manager)} - ¥¿¥¤¥à¥«¡¼¥É - ÊÔ½¸ - ºï½ü + + +
- + - + - + - + - + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -17,49 +17,49 @@
»þ¹ïÊÔ½¸¤Î³Îǧ
ÆüÉÕ ${f:h(month)}/${f:h(date)}
¶Ð̳¾õ¶· -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + +
½Ð¼Ò»þ¹ï ${f:h(h)} @@ -67,7 +67,7 @@
Âà¼Ò»þ¹ï ${f:h(h)} @@ -83,7 +83,7 @@
µÙ·Æ»þ´Ö ${f:h(h)} @@ -99,7 +99,7 @@
¶Ð̳³°»þ´Ö ${f:h(h)} @@ -115,39 +115,39 @@
¾õÂÖ -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + +
¥á¥â ${f:br(f:nbsp(f:h(memo)))}
- - - - - - - - - - - - - - + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> - - + "/> + "/>
- + - + - + - + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -6,6 +6,6 @@
-Ìá¤ë + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -9,50 +9,50 @@
- ½¾¶È°÷°ìÍ÷ +
»þ¹ïÊÔ½¸
ÆüÉÕ ${f:h(month)}/${f:h(date)} -(Æü) -(·î) -(²Ð) -(¿å) -(ÌÚ) -(¶â) -(ÅÚ) + + + + + + +
¶Ð̳¾õ¶· -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + +
½Ð¼Ò»þ¹ï @@ -77,7 +77,7 @@
Âà¼Ò»þ¹ï @@ -95,7 +95,7 @@
µÙ·Æ»þ´Ö @@ -113,7 +113,7 @@
¶Ð̳³°»þ´Ö @@ -131,25 +131,25 @@
¾õÂÖ -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + +
¥á¥â
- - + "/> + "/>
- + - +
½¾¶È°÷¾ðÊó
¥æ¡¼¥¶¡¼Ì¾ ${username}
- + - - + + - - + + - - + + - - + + - + - + - + - + @@ -61,20 +61,20 @@
·î´Ö¾ðÊó
¶Ð̳Æü¿ô${monthlyReport.workingDays} Æü${monthlyReport.workingDays}
ɸ½à¶Ð̳Æü¿ô${monthlyReport.stdWorkingDays} Æü${monthlyReport.stdWorkingDays}
µÙ²ËÆü¿ô(̵µë)${monthlyReport.holidays} Æü${monthlyReport.holidays}
µÙ²ËÆü¿ô(Í­µë)${monthlyReport.paidHolidays} Æü${monthlyReport.paidHolidays}
²ÔƯ»þ´Ö ${monthlyReport.formattedWorkingTime}
ɸ½à²ÔƯ»þ´Ö ${monthlyReport.formattedStdWorkingTime}
»Ä¶È»þ´Ö ${monthlyReport.formattedOverTime}
¿¼Ìë¶Ð̳»þ´Ö ${monthlyReport.formattedMntOverTime}
- + - + - + @@ -83,7 +83,7 @@ @@ -93,22 +93,22 @@
-Á°¤Î·î¤Ø + | -º£·î + | -¼¡¤Î·î¤Ø +
¿½ÀÁ¾õ¶·
¾õ¶· -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + +
¾õÂÖÊѹ¹
- +"/>
- - - - - - - + + + + + + + @@ -117,46 +117,46 @@ - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -10,29 +10,29 @@
ÆüÉսмÒÂà¼ÒµÙ·Æ¶Ð̳ÆâÍƾõ¶·  
${month}/${dr.date} -(Æü) -(·î) -(²Ð) -(¿å) -(ÌÚ) -(¶â) -(ÅÚ) + + + + + + + ${dr.formattedStartTime} ${dr.formattedEndTime} ${dr.formattedBreakTime} ${dr.formattedWorkingTime} -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + + -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + + ÊÔ½¸
- + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -18,40 +18,40 @@
ÀßÄê¾ðÊó
¸áÁ°¶Ð̳³«»Ï»þ´Ö
¸áÁ°¶Ð̳½ªÎ»»þ´Ö
¸á¸å¶Ð̳½ªÎ»»þ´Ö
¸á¸å¶Ð̳½ªÎ»»þ´Ö
- +"/>
- + - + - + - + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -17,49 +17,49 @@
»þ¹ïÊÔ½¸¤Î³Îǧ
ÆüÉÕ ${f:h(month)}/${f:h(date)}
¶Ð̳¾õ¶· -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + +
½Ð¼Ò»þ¹ï ${f:h(h)} @@ -67,7 +67,7 @@
Âà¼Ò»þ¹ï ${f:h(h)} @@ -83,7 +83,7 @@
µÙ·Æ»þ´Ö ${f:h(h)} @@ -99,7 +99,7 @@
¶Ð̳³°»þ´Ö ${f:h(h)} @@ -115,30 +115,30 @@
¥á¥â ${f:br(f:nbsp(f:h(memo)))}
- - - - - - - - - - - - - - + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> - - + "/> + "/>
- + - + - + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -6,6 +6,6 @@
-Ìá¤ë + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -9,38 +9,38 @@
»þ¹ïÊÔ½¸
ÆüÉÕ ${f:h(month)}/${f:h(date)} -(Æü) -(·î) -(²Ð) -(¿å) -(ÌÚ) -(¶â) -(ÅÚ) + + + + + + +
¶Ð̳¾õ¶· -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + +
½Ð¼Ò»þ¹ï @@ -77,7 +77,7 @@
Âà¼Ò»þ¹ï @@ -95,7 +95,7 @@
µÙ·Æ»þ´Ö @@ -113,7 +113,7 @@
¶Ð̳³°»þ´Ö @@ -131,18 +131,18 @@
¥á¥â
- + "/> - + "/> - + "/>
- + - - + + - - + + - - + + - - + + - + - + - + - + @@ -50,19 +50,19 @@
·î´Ö¾ðÊó
¶Ð̳Æü¿ô${monthlyReport.workingDays} Æü${monthlyReport.workingDays}
ɸ½à¶Ð̳Æü¿ô${monthlyReport.stdWorkingDays} Æü${monthlyReport.stdWorkingDays}
µÙ²ËÆü¿ô(̵µë)${monthlyReport.holidays} Æü${monthlyReport.holidays}
µÙ²ËÆü¿ô(Í­µë)${monthlyReport.paidHolidays} Æü${monthlyReport.paidHolidays}
²ÔƯ»þ´Ö ${monthlyReport.formattedWorkingTime}
ɸ½à²ÔƯ»þ´Ö ${monthlyReport.formattedStdWorkingTime}
»Ä¶È»þ´Ö ${monthlyReport.formattedOverTime}
¿¼Ìë¶Ð̳»þ´Ö ${monthlyReport.formattedMntOverTime}
- + - + - + @@ -73,7 +73,7 @@ @@ -84,22 +84,22 @@
-Á°¤Î·î¤Ø + | -º£·î + | -¼¡¤Î·î¤Ø +
¿½ÀÁ¾õ¶·
¾õ¶· -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ºÑ¤ß + + +
¼«Æ°µ­Æþ
- +"/>
- - - - - - - + + + + + + + @@ -108,48 +108,48 @@ Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -14,25 +14,25 @@
ÆüÉսмÒÂà¼ÒµÙ·Æ¶Ð̳ÆâÍƾõ¶·  
${month}/${dr.date} -(Æü) -(·î) -(²Ð) -(¿å) -(ÌÚ) -(¶â) -(ÅÚ) + + + + + + + ${dr.formattedStartTime} ${dr.formattedEndTime} ${dr.formattedBreakTime} ${dr.formattedWorkingTime} -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + + -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + + - ÊÔ½¸ +
- + - + - + - + - + @@ -40,23 +40,23 @@ Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -14,26 +14,26 @@
½¾¶È°÷¤Î³Îǧ
¥æ¡¼¥¶¡¼Ì¾(ID) ${f:h(username)}
¥Þ¥Í¡¼¥¸¥ã¡¼Ì¾(ID) ${f:h(manager)}
Í­µëµÙ²ËÆü¿ô ${f:h(paidHolidays)}
¾õÂÖ -Í­¸ú -̵¸ú + +
- - - - - - - - - - - - - - + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> - - + "/> + "/>
- + - + - + - - + + - + @@ -41,8 +41,8 @@ Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -6,6 +6,6 @@
-Ìá¤ë + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-05 06:37:33 UTC (rev 1287) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-05 10:31:04 UTC (rev 1288) @@ -11,14 +11,14 @@
<%--
-¿·µ¬ºîÀ® +
--%>
½¾¶È°÷¤ÎÅÐÏ¿
¥æ¡¼¥¶¡¼Ì¾(ID)
¥Þ¥Í¡¼¥¸¥ã¡¼Ì¾(ID)
Í­µëµÙ²ËÆü¿ô Æü
¾õÂÖ -Í­¸ú -̵¸ú + +
- - + "/> + "/>
- - + + @@ -28,10 +28,10 @@ @@ -42,7 +42,7 @@
- Á°¤Ø + @@ -59,7 +59,7 @@ - ¼¡¤Ø +
From svnnotify ¡÷ sourceforge.jp Wed Nov 5 19:31:26 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 05 Nov 2008 19:31:26 +0900 Subject: [pal-cvs 3555] [1289] added internationalization property files & JSP files. Message-ID: <1225881086.227050.19223.nullmailer@users.sourceforge.jp> Revision: 1289 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1289 Author: takakura Date: 2008-11-05 19:31:26 +0900 (Wed, 05 Nov 2008) Log Message: ----------- added internationalization property files & JSP files. Modified Paths: -------------- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp -------------- next part -------------- Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp 2008-11-05 10:31:04 UTC (rev 1288) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp 2008-11-05 10:31:26 UTC (rev 1289) @@ -18,40 +18,40 @@
¥æ¡¼¥¶¡¼Ì¾¥Þ¥Í¡¼¥¸¥ã¡¼Ì¾  
${f:h(e.username)} ${f:h(e.manager)} - ¥¿¥¤¥à¥«¡¼¥É + <%-- - ÊÔ½¸ - ºï½ü + + --%>
- + - + - + - + - + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp 2008-11-05 10:31:04 UTC (rev 1288) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp 2008-11-05 10:31:26 UTC (rev 1289) @@ -17,49 +17,49 @@
»þ¹ïÊÔ½¸¤Î³Îǧ
ÆüÉÕ ${f:h(month)}/${f:h(date)}
¶Ð̳¾õ¶· -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + +
½Ð¼Ò»þ¹ï ${f:h(h)} @@ -67,7 +67,7 @@
Âà¼Ò»þ¹ï ${f:h(h)} @@ -83,7 +83,7 @@
µÙ·Æ»þ´Ö ${f:h(h)} @@ -99,7 +99,7 @@
¶Ð̳³°»þ´Ö ${f:h(h)} @@ -115,38 +115,38 @@
¾õÂÖ -ÊÔ½¸Ãæ -¾µÇ§ + +
¥á¥â ${f:br(f:nbsp(f:h(memo)))}
- - - - - - - - - - - - - - + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> - - + "/> + "/>
- + - + - + - + - + - + - + - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp 2008-11-05 10:31:04 UTC (rev 1288) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp 2008-11-05 10:31:26 UTC (rev 1289) @@ -6,6 +6,6 @@
-Ìá¤ë + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-05 10:31:04 UTC (rev 1288) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-05 10:31:26 UTC (rev 1289) @@ -9,50 +9,50 @@
- ½¾¶È°÷°ìÍ÷ +
»þ¹ïÊÔ½¸
ÆüÉÕ ${f:h(month)}/${f:h(date)} -(Æü) -(·î) -(²Ð) -(¿å) -(ÌÚ) -(¶â) -(ÅÚ) + + + + + + +
¶Ð̳¾õ¶· -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + +
½Ð¼Ò»þ¹ï @@ -77,7 +77,7 @@
Âà¼Ò»þ¹ï @@ -95,7 +95,7 @@
µÙ·Æ»þ´Ö @@ -113,7 +113,7 @@
¶Ð̳³°»þ´Ö @@ -131,24 +131,24 @@
¾õÂÖ -ÊÔ½¸Ãæ -¾µÇ§ + +
¥á¥â
- - + "/> + "/>
- + - +
½¾¶È°÷¾ðÊó
¥æ¡¼¥¶¡¼Ì¾ ${username}
- + - - + + - - + + - - + + - - + + - + - + - + - + @@ -63,21 +63,21 @@
·î´Ö¾ðÊó
¶Ð̳Æü¿ô${monthlyReport.workingDays} Æü${monthlyReport.workingDays}
ɸ½à¶Ð̳Æü¿ô${monthlyReport.stdWorkingDays} Æü${monthlyReport.stdWorkingDays}
µÙ²ËÆü¿ô(̵µë)${monthlyReport.holidays} Æü${monthlyReport.holidays}
µÙ²ËÆü¿ô(Í­µë)${monthlyReport.paidHolidays} Æü${monthlyReport.paidHolidays}
²ÔƯ»þ´Ö ${monthlyReport.formattedWorkingTime}
ɸ½à²ÔƯ»þ´Ö ${monthlyReport.formattedStdWorkingTime}
»Ä¶È»þ´Ö ${monthlyReport.formattedOverTime}
¿¼Ìë¶Ð̳»þ´Ö ${monthlyReport.formattedMntOverTime}
- + - + - + @@ -85,7 +85,7 @@ @@ -96,22 +96,22 @@
-Á°¤Î·î¤Ø + | -º£·î + | -¼¡¤Î·î¤Ø +
¿½ÀÁ¾õ¶·
¾õ¶· -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + + ¾µÇ§ºÑ¤ß
- +"/>
- - - - - - - + + + + + + + @@ -120,51 +120,51 @@ From svnnotify ¡÷ sourceforge.jp Thu Nov 6 10:55:39 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 10:55:39 +0900 Subject: [pal-cvs 3556] [1290] Fixed Bugs Message-ID: <1225936539.432636.31533.nullmailer@users.sourceforge.jp> Revision: 1290 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1290 Author: takakura Date: 2008-11-06 10:55:39 +0900 (Thu, 06 Nov 2008) Log Message: ----------- Fixed Bugs Modified Paths: -------------- timecard/trunk/src/main/resources/application.properties -------------- next part -------------- Modified: timecard/trunk/src/main/resources/application.properties =================================================================== --- timecard/trunk/src/main/resources/application.properties 2008-11-05 10:31:26 UTC (rev 1289) +++ timecard/trunk/src/main/resources/application.properties 2008-11-06 01:55:39 UTC (rev 1290) @@ -133,7 +133,7 @@ labels.std_working_time=Standard working time labels.over_time=Overtime labels.mnt_over_time=Midnight Overtime -labels_request_status=Request status +labels.request_status=Request status labels.status_change=Change status labels.change=Change labels.prev_month=Previous month @@ -149,5 +149,5 @@ labels.auto_fill=Auto fill labels.fix_monthly_report=Fixing monthly report -labels.recognized2=\u627f\u8a8d\u6e08\u307f -labels.recognize=\u627f\u8a8d \ No newline at end of file +labels.recognized2=Recognized +labels.recognize=Recognize \ No newline at end of file From svnnotify ¡÷ sourceforge.jp Thu Nov 6 11:05:05 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 11:05:05 +0900 Subject: [pal-cvs 3557] [1291] added groupware guide. Message-ID: <1225937105.619795.9722.nullmailer@users.sourceforge.jp> Revision: 1291 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1291 Author: shinsuke Date: 2008-11-06 11:05:05 +0900 (Thu, 06 Nov 2008) Log Message: ----------- added groupware guide. Added Paths: ----------- pal-portal/docs/ja/groupware-guide/ pal-portal/docs/ja/groupware-guide/trunk/ pal-portal/docs/ja/groupware-guide/trunk/build.properties pal-portal/docs/ja/groupware-guide/trunk/build.xml pal-portal/docs/ja/groupware-guide/trunk/src/ pal-portal/docs/ja/groupware-guide/trunk/src/tex/ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/ -------------- next part -------------- Added: pal-portal/docs/ja/groupware-guide/trunk/build.properties =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/build.properties (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/build.properties 2008-11-06 02:05:05 UTC (rev 1291) @@ -0,0 +1,8 @@ +build.dir=${basedir}/target +src.tex.dir=${basedir}/src/tex +document.name=groupware-guide +document.version=1.0 + +tex.cmd=platex +dvi2ps.cmd=pdvips +gs.cmd=gs Property changes on: pal-portal/docs/ja/groupware-guide/trunk/build.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/groupware-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/build.xml (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-06 02:05:05 UTC (rev 1291) @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: pal-portal/docs/ja/groupware-guide/trunk/build.xml ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-06 02:05:05 UTC (rev 1291) @@ -0,0 +1,64 @@ +\documentclass[titlepage]{jbook} + +\title{¥°¥ë¡¼¥×¥¦¥§¥¢¥¬¥¤¥É} +\author{Portal Application Laboratory} + +\begin{document} +\maketitle + +\chapter{¤Ï¤¸¤á¤Ë} +\section{¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ë¤Ä¤¤¤Æ} + +\subsection{ÂоÝÆɼÔ} +¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ëºî¶È¤ª¤è¤Ó¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ëºî¶È¤òôÅö¤¹¤ë¥æ¡¼¥¶¡¼¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + +\subsection{¤ªÆɤߤˤʤëÁ°¤Ë} +¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥³¥ó¥Ô¥å¡¼¥¿Áàºî¤Î´ðÁÃŪ¤ÊÃ챤¬É¬Íפˤʤê¤Þ¤¹¡£ + +\subsection{¥ª¥ó¥é¥¤¥ó¤Ç¤Î¥¢¥¯¥»¥¹} +¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{µ»½ÑŪ¤Ê¥µ¥Ý¡¼¥È¤ÎÏ¢ÍíÀè} +ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{´ØÏ¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ Web ¥µ¥¤¥È¤Î»²¾È} +Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î Web ¥µ¥¤¥È¤ÎÍ­¸úÀ­¤Ë¤Ä¤¤¤Æ¤ÏÀÕǤ¤ò»ý¤Á¤Þ¤»¤ó¡£ +Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤òÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤Ë¤Ä¤¤¤Æ¡¢Êݾڡ¢ÀÕǤ¡¢µÁ̳¤òÉ餤¤Þ¤»¤ó¡£ +Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤ÈÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤ò¡¢»ÈÍѤޤ¿¤Ï¿®ÍѤ·¤¿¤ê¡¢¤½¤ì¤Ë´ØÏ¢¤·¤ÆȯÀ¸¤Þ¤¿¤Ï¿½¤·Î©¤Æ¤é¤ì¤¿¡¢°ìÀڤλ½ý¤ä»³²¤ËÂФ·¤Æ¤ÏÀÕǤ¤Þ¤¿¤ÏµÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + +\subsection{¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤ÎÁ÷ÉÕÊýË¡} +Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î²þÁ±¤ËÅؤá¤Æ¤ª¤ê¡¢ÆɼԤ«¤é¤Î¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤Ê¤É¤ò´¿·Þ¤·¤Æ¤¤¤Þ¤¹¡£ + + +\chapter{·Ç¼¨ÈÄ} +\section{¤Ï¤¸¤á¤Ë} +TBD + +\section{»È¤¤Êý} + +\subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} +TBD + +\subsection{µ­»ö¤ÎÅê¹Æ} +TBD + +\chapter{¥Ö¥Ã¥¯¥Þ¡¼¥¯} +\section{¤Ï¤¸¤á¤Ë} +TBD + +\section{»È¤¤Êý} + +\subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} +TBD + +\chapter{VFS} +\section{¤Ï¤¸¤á¤Ë} +TBD + +\section{»È¤¤Êý} + +\subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} +TBD + +\end{document} + From svnnotify ¡÷ sourceforge.jp Thu Nov 6 11:53:06 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 11:53:06 +0900 Subject: [pal-cvs 3558] [1292] added readme. Message-ID: <1225939986.694527.21317.nullmailer@users.sourceforge.jp> Revision: 1292 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1292 Author: shinsuke Date: 2008-11-06 11:53:06 +0900 (Thu, 06 Nov 2008) Log Message: ----------- added readme. Added Paths: ----------- pal-portal/docs/ja/groupware-guide/trunk/README.txt -------------- next part -------------- Added: pal-portal/docs/ja/groupware-guide/trunk/README.txt =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/README.txt (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/README.txt 2008-11-06 02:53:06 UTC (rev 1292) @@ -0,0 +1,20 @@ +CentOS 5.x +---------- + + 1. Install tetex packages. + + # yum install -y tetex-xdvi tetex-latex tetex-afm + + +How To Build +------------ + + o Clean + + $ ant clean + + o Build + (PDF file is created in target directory.) + + $ ant build + Property changes on: pal-portal/docs/ja/groupware-guide/trunk/README.txt ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Thu Nov 6 14:51:42 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 14:51:42 +0900 Subject: [pal-cvs 3559] [1293] set a default break time, customizable minutes, set holidays, added search form. Message-ID: <1225950702.297696.7976.nullmailer@users.sourceforge.jp> Revision: 1293 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1293 Author: shinsuke Date: 2008-11-06 14:51:41 +0900 (Thu, 06 Nov 2008) Log Message: ----------- set a default break time, customizable minutes, set holidays, added search form. Modified Paths: -------------- timecard/trunk/src/main/config/erd/timecard.erd timecard/trunk/src/main/config/sql/timecard.ddl timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsEmployeeCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsEmployeeCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/EmployeeCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/EmployeeNss.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/DailyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/pager/EmployeePager.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java timecard/trunk/src/main/java/jp/sf/pal/timecard/util/TimecardUtil.java timecard/trunk/src/main/resources/dbflute.dicon timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db timecard/trunk/src/main/webapp/WEB-INF/db/timecard.index.db timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp Added Paths: ----------- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/UserInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/UserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupInfoNss.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleInfoNss.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/UserInfoNss.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/UserInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/UserInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java -------------- next part -------------- Modified: timecard/trunk/src/main/config/erd/timecard.erd =================================================================== --- timecard/trunk/src/main/config/erd/timecard.erd 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/config/erd/timecard.erd 2008-11-06 05:51:41 UTC (rev 1293) @@ -448,12 +448,683 @@ - 659 - 529 + 500 + 537 -1 -1 - + + + FK_from_employee_to_user_for_username + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + + + + + + + user_info + User Information + + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone_number + Telephone Number + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 507 + 106 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 854 + 79 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 851 + 449 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + FK_from_employee_to_user_for_manager + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + @@ -763,6 +1434,9 @@ + + + hsqldb Modified: timecard/trunk/src/main/config/sql/timecard.ddl =================================================================== --- timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-06 05:51:41 UTC (rev 1293) @@ -1,8 +1,75 @@ DROP TABLE daily_report; DROP TABLE monthly_report; DROP TABLE employee; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; /********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone_number VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** Table Name: Employee **********************************/ CREATE TABLE employee( @@ -17,7 +84,9 @@ updated_by VARCHAR(255) NOT NULL, deleted_time TIMESTAMP, deleted_by VARCHAR(255), - versionNo INTEGER DEFAULT 0 NOT NULL + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (username) REFERENCES user_info (user_id), + FOREIGN KEY (manager) REFERENCES user_info (user_id) ); /********************************** Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -67,4 +67,16 @@ public static final int WORKING_TYPE_SUBSTITUTE_HOLIDAY_AM = 111; public static final int WORKING_TYPE_SUBSTITUTE_HOLIDAY_PM = 112; + + public static final String TIME_AM_START = "time.am.start"; + + public static final String TIME_AM_END = "time.am.end"; + + public static final String TIME_PM_START = "time.pm.start"; + + public static final String TIME_PM_END = "time.pm.end"; + + public static final String TIME_LABEL_MINUTES = "time.label.minutes"; + + public static final String TIME_HOLIDAYS = "time.holidays"; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.timecard.TimecardConstants; import jp.sf.pal.timecard.common.util.ConfigUtil; import jp.sf.pal.timecard.common.util.SAStrutsUtil; import jp.sf.pal.timecard.form.config.ConfigForm; @@ -27,10 +28,18 @@ private transient HttpServletRequest request; protected String displayIndex() { - configForm.amStartTime = ConfigUtil.getString("time.am.start", "09:00"); - configForm.amEndTime = ConfigUtil.getString("time.am.end", "12:00"); - configForm.pmStartTime = ConfigUtil.getString("time.pm.start", "13:00"); - configForm.pmEndTime = ConfigUtil.getString("time.pm.end", "17:30"); + configForm.amStartTime = ConfigUtil.getString( + TimecardConstants.TIME_AM_START, "09:00"); + configForm.amEndTime = ConfigUtil.getString( + TimecardConstants.TIME_AM_END, "12:00"); + configForm.pmStartTime = ConfigUtil.getString( + TimecardConstants.TIME_PM_START, "13:00"); + configForm.pmEndTime = ConfigUtil.getString( + TimecardConstants.TIME_PM_END, "17:30"); + configForm.displayedMinutes = ConfigUtil.getString( + TimecardConstants.TIME_LABEL_MINUTES, "00\n15\n30\n45"); + configForm.holidays = ConfigUtil.getString( + TimecardConstants.TIME_HOLIDAYS, ""); return "index.jsp"; } @@ -43,10 +52,18 @@ @Execute(validator = false, input = "index.jsp") public String update() { ConfigUtil.init(request); - ConfigUtil.setProperty("time.am.start", configForm.amStartTime); - ConfigUtil.setProperty("time.am.end", configForm.amEndTime); - ConfigUtil.setProperty("time.pm.start", configForm.pmStartTime); - ConfigUtil.setProperty("time.pm.end", configForm.pmEndTime); + ConfigUtil.setProperty(TimecardConstants.TIME_AM_START, + configForm.amStartTime); + ConfigUtil.setProperty(TimecardConstants.TIME_AM_END, + configForm.amEndTime); + ConfigUtil.setProperty(TimecardConstants.TIME_PM_START, + configForm.pmStartTime); + ConfigUtil.setProperty(TimecardConstants.TIME_PM_END, + configForm.pmEndTime); + ConfigUtil.setProperty(TimecardConstants.TIME_LABEL_MINUTES, + configForm.displayedMinutes); + ConfigUtil.setProperty(TimecardConstants.TIME_HOLIDAYS, + configForm.holidays); try { ConfigUtil.save(); SAStrutsUtil.addMessage(request, "success.update_config"); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -17,7 +17,9 @@ import jp.sf.pal.timecard.dxo.DailyReportDxo; import jp.sf.pal.timecard.form.employee.EmployeeForm; import jp.sf.pal.timecard.service.ReportService; +import jp.sf.pal.timecard.util.TimecardUtil; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.seasar.struts.annotation.ActionForm; @@ -159,6 +161,13 @@ loadDailyReport(); + if (employeeForm.breakTimeHr == null + || employeeForm.breakTimeMin == null) { + long breakTime = TimecardUtil.getStdBreakTime(); + employeeForm.breakTimeHr = TimecardUtil.getHours(breakTime); + employeeForm.breakTimeMin = TimecardUtil.getMinutes(breakTime); + } + return "edit.jsp"; } @@ -326,12 +335,23 @@ session.setAttribute(HOUR_ITEMS, hourItems); List minuteItems = new ArrayList(); - for (int i = 0; i < 60; i++) { - if (i < 10) { - minuteItems.add("0" + i); - } else { - minuteItems.add(String.valueOf(i)); + String value = ConfigUtil.getString( + TimecardConstants.TIME_LABEL_MINUTES, ""); + if (!StringUtils.isEmpty(value)) { + String[] values = value.split("\r\n"); + for (int i = 0; i < values.length; i++) { + if (!StringUtils.isEmpty(values[i])) { + minuteItems.add(values[i]); + } } + } else { + for (int i = 0; i < 60; i++) { + if (i < 10) { + minuteItems.add("0" + i); + } else { + minuteItems.add(String.valueOf(i)); + } + } } session.setAttribute(MINUTE_ITEMS, minuteItems); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -50,6 +50,9 @@ // page navi employeeItems = employeeService.getEmployeeList(employeePager); + // restore from pager + employeeForm.username = employeePager.getUsername(); + return "index.jsp"; } @@ -69,8 +72,7 @@ @Execute(validator = false, input = "error.jsp") public String search() { - // TODO - // employeePager.setUsername(employeeForm.username); + employeePager.setUsername(employeeForm.username); return displayList(); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -53,6 +53,9 @@ employeePager.setManager(manager); employeeItems = employeeService.getEmployeeList(employeePager); + // restore from pager + employeeForm.username = employeePager.getUsername(); + return "index.jsp"; } @@ -72,8 +75,7 @@ @Execute(validator = false, input = "error.jsp") public String search() { - // TODO - // employeePager.setUsername(employeeForm.username); + employeePager.setUsername(employeeForm.username); return displayList(); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -31,8 +31,14 @@ "jp.sf.pal.timecard.db.bsentity.dbmeta.DailyReportDbm"); tmpMap.put("EMPLOYEE", "jp.sf.pal.timecard.db.bsentity.dbmeta.EmployeeDbm"); + tmpMap.put("GROUP_INFO", + "jp.sf.pal.timecard.db.bsentity.dbmeta.GroupInfoDbm"); tmpMap.put("MONTHLY_REPORT", "jp.sf.pal.timecard.db.bsentity.dbmeta.MonthlyReportDbm"); + tmpMap.put("ROLE_INFO", + "jp.sf.pal.timecard.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("USER_INFO", + "jp.sf.pal.timecard.db.bsentity.dbmeta.UserInfoDbm"); _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap); } @@ -44,7 +50,10 @@ tmpMap.put("DAILY_REPORT".toLowerCase(), "dailyReport"); tmpMap.put("EMPLOYEE".toLowerCase(), "employee"); + tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); tmpMap.put("MONTHLY_REPORT".toLowerCase(), "monthlyReport"); + tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); _tableDbNamePropertyNameKeyToLowerMap = Collections .unmodifiableMap(tmpMap); @@ -57,7 +66,10 @@ tmpMap.put("dailyReport".toLowerCase(), "DAILY_REPORT"); tmpMap.put("employee".toLowerCase(), "EMPLOYEE"); + tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); tmpMap.put("monthlyReport".toLowerCase(), "MONTHLY_REPORT"); + tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); _tablePropertyNameDbNameKeyToLowerMap = Collections .unmodifiableMap(tmpMap); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -22,6 +22,7 @@ import jp.sf.pal.timecard.db.exdao.EmployeeDao; import jp.sf.pal.timecard.db.exentity.Employee; import jp.sf.pal.timecard.db.exentity.MonthlyReport; +import jp.sf.pal.timecard.db.exentity.UserInfo; /** * The behavior of EMPLOYEE. @@ -43,13 +44,13 @@ * VERSIONNO * * [foreign-table] - * + * USER_INFO * * [referrer-table] * MONTHLY_REPORT * * [foreign-property] - * + * userInfoByUsername, userInfoByManager * * [referrer-property] * monthlyReportList @@ -380,6 +381,36 @@ // Pull Out Foreign // ================ + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param employeeList The list of employee. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByUsername(List employeeList) { + return helpPulloutInternally(employeeList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Employee entity) { + return entity.getUserInfoByUsername(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param employeeList The list of employee. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByManager(List employeeList) { + return helpPulloutInternally(employeeList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Employee entity) { + return entity.getUserInfoByManager(); + } + }); + } + //========================================================================== // ========= // Entity Update Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,817 @@ +package jp.sf.pal.timecard.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.timecard.db.allcommon.DaoReadable; +import jp.sf.pal.timecard.db.allcommon.DaoWritable; +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.exbhv.UserInfoBhv; +import jp.sf.pal.timecard.db.exdao.GroupInfoDao; +import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
+ * [primary-key]
+ *     GROUP_ID
+ * 
+ * [column]
+ *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfoBhv extends + jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result-bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, + delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result-bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
The conditionBean that + * the setupper provides have settings before you touch it. It is as + * follows: + * + *
+     * cb.query().setGroupId_InScope(pkList);
+     * cb.query().addOrderBy_GroupId_Asc();
+     * 
+ * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper Referrer condition setupper instance for + * registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption the option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = getBehaviorSelector().select( + UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pull Out Foreign + // ================ + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateGetCountAll() { + return getMyDao().getCountAll(); + } + + protected List delegateGetListAll() { + return getMyDao().getListAll(); + } + + protected GroupInfo delegateGetEntity(String groupId) { + return getMyDao().getEntity(groupId); + } + + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,815 @@ +package jp.sf.pal.timecard.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.timecard.db.allcommon.DaoReadable; +import jp.sf.pal.timecard.db.allcommon.DaoWritable; +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.exbhv.UserInfoBhv; +import jp.sf.pal.timecard.db.exdao.RoleInfoDao; +import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
+ * [primary-key]
+ *     ROLE_ID
+ * 
+ * [column]
+ *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfoBhv extends + jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result-bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, + delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result-bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
The conditionBean that + * the setupper provides have settings before you touch it. It is as + * follows: + * + *
+     * cb.query().setRoleId_InScope(pkList);
+     * cb.query().addOrderBy_RoleId_Asc();
+     * 
+ * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper Referrer condition setupper instance for + * registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption the option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = getBehaviorSelector().select( + UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pull Out Foreign + // ================ + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateGetCountAll() { + return getMyDao().getCountAll(); + } + + protected List delegateGetListAll() { + return getMyDao().getListAll(); + } + + protected RoleInfo delegateGetEntity(String roleId) { + return getMyDao().getEntity(roleId); + } + + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,938 @@ +package jp.sf.pal.timecard.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.timecard.db.allcommon.DaoReadable; +import jp.sf.pal.timecard.db.allcommon.DaoWritable; +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.timecard.db.cbean.EmployeeCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.exbhv.EmployeeBhv; +import jp.sf.pal.timecard.db.exdao.UserInfoDao; +import jp.sf.pal.timecard.db.exentity.Employee; +import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
+ * [primary-key]
+ *     USER_ID
+ * 
+ * [column]
+ *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     GROUP_INFO, ROLE_INFO
+ * 
+ * [referrer-table]
+ *     EMPLOYEE
+ * 
+ * [foreign-property]
+ *     groupInfo, roleInfo
+ * 
+ * [referrer-property]
+ *     employeeByUsernameList, employeeByManagerList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfoBhv extends + jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result-bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, + delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result-bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of employeeByUsernameList with the setupper for + * condition-bean of referrer.
About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
The + * conditionBean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
+     * cb.query().setUsername_InScope(pkList);
+     * cb.query().addOrderBy_Username_Asc();
+     * 
+ * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper Referrer condition setupper instance for + * registering referrer condition. (NotNull) + */ + public void loadEmployeeByUsernameList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadEmployeeByUsernameList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption the option of load-referrer. (NotNull) + */ + public void loadEmployeeByUsernameList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final EmployeeBhv referrerBhv = getBehaviorSelector().select( + EmployeeBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setEmployeeByUsernameList(referrerList); + } + + public EmployeeCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + EmployeeCB cb, List pkList) { + cb.query().setUsername_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + EmployeeCB cb) { + cb.query().addOrderBy_Username_Asc(); + } + + public List callbackReferrer_selectList( + EmployeeCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Employee entity) { + return entity.getUsername(); + } + + public void callbackReferrer_setForeignEntity( + Employee referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByUsername(baseEntity); + } + }); + } + + /** + * Load referrer of employeeByManagerList with the setupper for + * condition-bean of referrer.
About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
The + * conditionBean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
+     * cb.query().setManager_InScope(pkList);
+     * cb.query().addOrderBy_Manager_Asc();
+     * 
+ * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper Referrer condition setupper instance for + * registering referrer condition. (NotNull) + */ + public void loadEmployeeByManagerList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadEmployeeByManagerList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption the option of load-referrer. (NotNull) + */ + public void loadEmployeeByManagerList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final EmployeeBhv referrerBhv = getBehaviorSelector().select( + EmployeeBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setEmployeeByManagerList(referrerList); + } + + public EmployeeCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + EmployeeCB cb, List pkList) { + cb.query().setManager_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + EmployeeCB cb) { + cb.query().addOrderBy_Manager_Asc(); + } + + public List callbackReferrer_selectList( + EmployeeCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Employee entity) { + return entity.getManager(); + } + + public void callbackReferrer_setForeignEntity( + Employee referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByManager(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pull Out Foreign + // ================ + + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateGetCountAll() { + return getMyDao().getCountAll(); + } + + protected List delegateGetListAll() { + return getMyDao().getListAll(); + } + + protected UserInfo delegateGetEntity(String userId) { + return getMyDao().getEntity(userId); + } + + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,60 @@ +package jp.sf.pal.timecard.db.bsdao; + +import java.util.List; + +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.exentity.GroupInfo; + +/** + * The dao interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface BsGroupInfoDao extends + jp.sf.pal.timecard.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class;// For S2Dao + + public static final String getCountAll_SQL = "select count(*) from GROUP_INFO"; + + public int getCountAll(); + + public static final String getListAll_SQL = "select GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from GROUP_INFO"; + + public java.util.List getListAll(); + + public static final String getEntity_SQL = "select GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from GROUP_INFO where GROUP_INFO.GROUP_ID = /*groupId*/null"; + + public static final String getEntity_ARGS = "groupId"; + + public GroupInfo getEntity(String groupId); + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + public int insert(GroupInfo entity); + + public int updateModifiedOnly(GroupInfo entity); + + public int updateNonstrictModifiedOnly(GroupInfo entity); + + public int delete(GroupInfo entity); + + public int deleteNonstrict(GroupInfo entity); + + public int[] insertList(List entityList); + + public int[] updateList(List entityList); + + public int[] updateListNonstrict(List entityList); + + public int updateByQuery(GroupInfoCB cb, GroupInfo entity);//{DBFlute-0.7.5} + + public int[] deleteList(List entityList); + + public int[] deleteListNonstrict(List entityList); + + public int deleteByQuery(GroupInfoCB cb); +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,60 @@ +package jp.sf.pal.timecard.db.bsdao; + +import java.util.List; + +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.exentity.RoleInfo; + +/** + * The dao interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface BsRoleInfoDao extends + jp.sf.pal.timecard.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class;// For S2Dao + + public static final String getCountAll_SQL = "select count(*) from ROLE_INFO"; + + public int getCountAll(); + + public static final String getListAll_SQL = "select ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from ROLE_INFO"; + + public java.util.List getListAll(); + + public static final String getEntity_SQL = "select ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from ROLE_INFO where ROLE_INFO.ROLE_ID = /*roleId*/null"; + + public static final String getEntity_ARGS = "roleId"; + + public RoleInfo getEntity(String roleId); + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + public int insert(RoleInfo entity); + + public int updateModifiedOnly(RoleInfo entity); + + public int updateNonstrictModifiedOnly(RoleInfo entity); + + public int delete(RoleInfo entity); + + public int deleteNonstrict(RoleInfo entity); + + public int[] insertList(List entityList); + + public int[] updateList(List entityList); + + public int[] updateListNonstrict(List entityList); + + public int updateByQuery(RoleInfoCB cb, RoleInfo entity);// {DBFlute-0.7.5} + + public int[] deleteList(List entityList); + + public int[] deleteListNonstrict(List entityList); + + public int deleteByQuery(RoleInfoCB cb); +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,60 @@ +package jp.sf.pal.timecard.db.bsdao; + +import java.util.List; + +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The dao interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface BsUserInfoDao extends + jp.sf.pal.timecard.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class;// For S2Dao + + public static final String getCountAll_SQL = "select count(*) from USER_INFO"; + + public int getCountAll(); + + public static final String getListAll_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO"; + + public java.util.List getListAll(); + + public static final String getEntity_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO where USER_INFO.USER_ID = /*userId*/null"; + + public static final String getEntity_ARGS = "userId"; + + public UserInfo getEntity(String userId); + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + public int insert(UserInfo entity); + + public int updateModifiedOnly(UserInfo entity); + + public int updateNonstrictModifiedOnly(UserInfo entity); + + public int delete(UserInfo entity); + + public int deleteNonstrict(UserInfo entity); + + public int[] insertList(List entityList); + + public int[] updateList(List entityList); + + public int[] updateListNonstrict(List entityList); + + public int updateByQuery(UserInfoCB cb, UserInfo entity);// {DBFlute-0.7.5} + + public int[] deleteList(List entityList); + + public int[] deleteListNonstrict(List entityList); + + public int deleteByQuery(UserInfoCB cb); +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -70,7 +70,7 @@ /** * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F95B09D3_3E35_4F4E_81F4_295D5B036C69]} + * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} */ protected Long _id; @@ -330,14 +330,14 @@ /** * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F95B09D3_3E35_4F4E_81F4_295D5B036C69]} + * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} */ public static final String id_COLUMN = "ID"; /** * Get the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F95B09D3_3E35_4F4E_81F4_295D5B036C69]} + * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} * * @return The value of the column 'ID'. (Nullable) */ @@ -348,7 +348,7 @@ /** * Set the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F95B09D3_3E35_4F4E_81F4_295D5B036C69]} + * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} * * @param id The value of the column 'ID'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -8,6 +8,7 @@ import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.timecard.db.exentity.MonthlyReport; +import jp.sf.pal.timecard.db.exentity.UserInfo; /** * The entity of EMPLOYEE(TABLE). @@ -29,13 +30,13 @@ * VERSIONNO * * [foreign-table] - * + * USER_INFO * * [referrer-table] * MONTHLY_REPORT * * [foreign-property] - * + * userInfoByUsername, userInfoByManager * * [referrer-property] * monthlyReportList @@ -72,14 +73,20 @@ /** * The attribute of the column 'ID'. {PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_DECF6155_521A_4FFA_8951_09452601F6FA]} + * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} */ protected Integer _id; - /** The attribute of the column 'USERNAME'. {VARCHAR(255) : NotNull} */ + /** + * The attribute of the column 'USERNAME'. {VARCHAR(255) : NotNull : FK to + * USER_INFO} + */ protected String _username; - /** The attribute of the column 'MANAGER'. {VARCHAR(255) : NotNull} */ + /** + * The attribute of the column 'MANAGER'. {VARCHAR(255) : NotNull : FK to + * USER_INFO} + */ protected String _manager; /** @@ -167,6 +174,70 @@ // ========= // Foreign Property // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByUsername] + // * * * * * * * * */ + public static final int userInfoByUsername_RELNO = 0; + + public static final String userInfoByUsername_RELKEYS = "USERNAME:USER_ID"; + + /** The entity of foreign property 'userInfoByUsername'. */ + protected UserInfo _parentUserInfoByUsername; + + /** + * Get the entity of foreign property 'userInfoByUsername'. {without + * lazy-load} + * + * @return The entity of foreign property 'userInfoByUsername'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByUsername() { + return _parentUserInfoByUsername; + } + + /** + * Set the entity of foreign property 'userInfoByUsername'. + * + * @param userInfoByUsername The entity of foreign property + * 'userInfoByUsername'. (Nullable) + */ + public void setUserInfoByUsername(UserInfo userInfoByUsername) { + _parentUserInfoByUsername = userInfoByUsername; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByManager] + // * * * * * * * * */ + public static final int userInfoByManager_RELNO = 1; + + public static final String userInfoByManager_RELKEYS = "MANAGER:USER_ID"; + + /** The entity of foreign property 'userInfoByManager'. */ + protected UserInfo _parentUserInfoByManager; + + /** + * Get the entity of foreign property 'userInfoByManager'. {without + * lazy-load} + * + * @return The entity of foreign property 'userInfoByManager'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfoByManager() { + return _parentUserInfoByManager; + } + + /** + * Set the entity of foreign property 'userInfoByManager'. + * + * @param userInfoByManager The entity of foreign property + * 'userInfoByManager'. (Nullable) + */ + public void setUserInfoByManager(UserInfo userInfoByManager) { + _parentUserInfoByManager = userInfoByManager; + } + //========================================================================== // ========= // Referrer Property @@ -308,14 +379,14 @@ /** * The column annotation for S2Dao. {PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_DECF6155_521A_4FFA_8951_09452601F6FA]} + * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} */ public static final String id_COLUMN = "ID"; /** * Get the value of the column 'ID'.
{PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_DECF6155_521A_4FFA_8951_09452601F6FA]} + * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} * * @return The value of the column 'ID'. (Nullable) */ @@ -326,7 +397,7 @@ /** * Set the value of the column 'ID'.
{PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_DECF6155_521A_4FFA_8951_09452601F6FA]} + * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} * * @param id The value of the column 'ID'. (Nullable) */ @@ -335,11 +406,15 @@ this._id = id; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** + * The column annotation for S2Dao. {VARCHAR(255) : NotNull : FK to + * USER_INFO} + */ public static final String username_COLUMN = "USERNAME"; /** - * Get the value of the column 'USERNAME'.
{VARCHAR(255) : NotNull} + * Get the value of the column 'USERNAME'.
{VARCHAR(255) : NotNull : + * FK to USER_INFO} * * @return The value of the column 'USERNAME'. (Nullable) */ @@ -348,7 +423,8 @@ } /** - * Set the value of the column 'USERNAME'.
{VARCHAR(255) : NotNull} + * Set the value of the column 'USERNAME'.
{VARCHAR(255) : NotNull : + * FK to USER_INFO} * * @param username The value of the column 'USERNAME'. (Nullable) */ @@ -357,11 +433,15 @@ this._username = username; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** + * The column annotation for S2Dao. {VARCHAR(255) : NotNull : FK to + * USER_INFO} + */ public static final String manager_COLUMN = "MANAGER"; /** - * Get the value of the column 'MANAGER'.
{VARCHAR(255) : NotNull} + * Get the value of the column 'MANAGER'.
{VARCHAR(255) : NotNull : + * FK to USER_INFO} * * @return The value of the column 'MANAGER'. (Nullable) */ @@ -370,7 +450,8 @@ } /** - * Set the value of the column 'MANAGER'.
{VARCHAR(255) : NotNull} + * Set the value of the column 'MANAGER'.
{VARCHAR(255) : NotNull : + * FK to USER_INFO} * * @param manager The value of the column 'MANAGER'. (Nullable) */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,584 @@ +package jp.sf.pal.timecard.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO(TABLE). + * + *
+ * [primary-key]
+ *     GROUP_ID
+ * 
+ * [column]
+ *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** The attribute of the column 'GROUP_ID'. {PK : VARCHAR(255) : NotNull} */ + protected String _groupId; + + /** The attribute of the column 'NAME'. {VARCHAR(100)} */ + protected String _name; + + /** The attribute of the column 'DESCRIPTION'. {VARCHAR(255)} */ + protected String _description; + + /** The attribute of the column 'EMAIL'. {VARCHAR(255)} */ + protected String _email; + + /** The attribute of the column 'URL'. {VARCHAR(255)} */ + protected String _url; + + /** The attribute of the column 'TELEPHONE'. {VARCHAR(40)} */ + protected String _telephone; + + /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ + protected java.sql.Timestamp _createdTime; + + /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ + protected String _createdBy; + + /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ + protected java.sql.Timestamp _updatedTime; + + /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ + protected String _updatedBy; + + /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ + protected String _deletedBy; + + /** The attribute of the column 'VERSIONNO'. {INTEGER : NotNull} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + + /** The entity list of referrer property 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * Get the entity list of referrer property 'userInfoList'. {without + * lazy-load}
+ * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * Set the entity list of referrer property 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : VARCHAR(255) : NotNull} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * Get the value of the column 'GROUP_ID'.
{PK : VARCHAR(255) : + * NotNull} + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * Set the value of the column 'GROUP_ID'.
{PK : VARCHAR(255) : + * NotNull} + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * Get the value of the column 'NAME'.
{VARCHAR(100)} + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * Set the value of the column 'NAME'.
{VARCHAR(100)} + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * Get the value of the column 'DESCRIPTION'.
{VARCHAR(255)} + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * Set the value of the column 'DESCRIPTION'.
{VARCHAR(255)} + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * Get the value of the column 'EMAIL'.
{VARCHAR(255)} + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * Set the value of the column 'EMAIL'.
{VARCHAR(255)} + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * Get the value of the column 'URL'.
{VARCHAR(255)} + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * Set the value of the column 'URL'.
{VARCHAR(255)} + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * Get the value of the column 'TELEPHONE'.
{VARCHAR(40)} + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * Set the value of the column 'TELEPHONE'.
{VARCHAR(40)} + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * Get the value of the column 'CREATED_TIME'.
{TIMESTAMP : NotNull} + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * Set the value of the column 'CREATED_TIME'.
{TIMESTAMP : NotNull} + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * Get the value of the column 'CREATED_BY'.
{VARCHAR(255) : NotNull} + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * Set the value of the column 'CREATED_BY'.
{VARCHAR(255) : NotNull} + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * Get the value of the column 'UPDATED_TIME'.
{TIMESTAMP : NotNull} + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * Set the value of the column 'UPDATED_TIME'.
{TIMESTAMP : NotNull} + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * Get the value of the column 'UPDATED_BY'.
{VARCHAR(255) : NotNull} + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * Set the value of the column 'UPDATED_BY'.
{VARCHAR(255) : NotNull} + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * Get the value of the column 'DELETED_TIME'.
{TIMESTAMP} + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * Set the value of the column 'DELETED_TIME'.
{TIMESTAMP} + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * Get the value of the column 'DELETED_BY'.
{VARCHAR(255)} + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * Set the value of the column 'DELETED_BY'.
{VARCHAR(255)} + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {INTEGER : NotNull} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * Get the value of the column 'VERSIONNO'.
{INTEGER : NotNull} + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * Set the value of the column 'VERSIONNO'.
{INTEGER : NotNull} + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -73,7 +73,7 @@ /** * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_940A2BD3_BBE2_4599_9FBC_C0BA4C739586]} + * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} */ protected Long _id; @@ -388,14 +388,14 @@ /** * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_940A2BD3_BBE2_4599_9FBC_C0BA4C739586]} + * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} */ public static final String id_COLUMN = "ID"; /** * Get the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_940A2BD3_BBE2_4599_9FBC_C0BA4C739586]} + * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} * * @return The value of the column 'ID'. (Nullable) */ @@ -406,7 +406,7 @@ /** * Set the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_940A2BD3_BBE2_4599_9FBC_C0BA4C739586]} + * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} * * @param id The value of the column 'ID'. (Nullable) */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,584 @@ +package jp.sf.pal.timecard.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO(TABLE). + * + *
+ * [primary-key]
+ *     ROLE_ID
+ * 
+ * [column]
+ *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** The attribute of the column 'ROLE_ID'. {PK : VARCHAR(255) : NotNull} */ + protected String _roleId; + + /** The attribute of the column 'NAME'. {VARCHAR(100)} */ + protected String _name; + + /** The attribute of the column 'DESCRIPTION'. {VARCHAR(255)} */ + protected String _description; + + /** The attribute of the column 'EMAIL'. {VARCHAR(255)} */ + protected String _email; + + /** The attribute of the column 'URL'. {VARCHAR(255)} */ + protected String _url; + + /** The attribute of the column 'TELEPHONE'. {VARCHAR(40)} */ + protected String _telephone; + + /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ + protected java.sql.Timestamp _createdTime; + + /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ + protected String _createdBy; + + /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ + protected java.sql.Timestamp _updatedTime; + + /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ + protected String _updatedBy; + + /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ + protected String _deletedBy; + + /** The attribute of the column 'VERSIONNO'. {INTEGER : NotNull} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + + /** The entity list of referrer property 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * Get the entity list of referrer property 'userInfoList'. {without + * lazy-load}
+ * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * Set the entity list of referrer property 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : VARCHAR(255) : NotNull} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * Get the value of the column 'ROLE_ID'.
{PK : VARCHAR(255) : + * NotNull} + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * Set the value of the column 'ROLE_ID'.
{PK : VARCHAR(255) : + * NotNull} + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * Get the value of the column 'NAME'.
{VARCHAR(100)} + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * Set the value of the column 'NAME'.
{VARCHAR(100)} + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * Get the value of the column 'DESCRIPTION'.
{VARCHAR(255)} + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * Set the value of the column 'DESCRIPTION'.
{VARCHAR(255)} + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * Get the value of the column 'EMAIL'.
{VARCHAR(255)} + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * Set the value of the column 'EMAIL'.
{VARCHAR(255)} + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * Get the value of the column 'URL'.
{VARCHAR(255)} + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * Set the value of the column 'URL'.
{VARCHAR(255)} + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * Get the value of the column 'TELEPHONE'.
{VARCHAR(40)} + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * Set the value of the column 'TELEPHONE'.
{VARCHAR(40)} + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * Get the value of the column 'CREATED_TIME'.
{TIMESTAMP : NotNull} + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * Set the value of the column 'CREATED_TIME'.
{TIMESTAMP : NotNull} + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * Get the value of the column 'CREATED_BY'.
{VARCHAR(255) : NotNull} + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * Set the value of the column 'CREATED_BY'.
{VARCHAR(255) : NotNull} + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * Get the value of the column 'UPDATED_TIME'.
{TIMESTAMP : NotNull} + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * Set the value of the column 'UPDATED_TIME'.
{TIMESTAMP : NotNull} + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * Get the value of the column 'UPDATED_BY'.
{VARCHAR(255) : NotNull} + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * Set the value of the column 'UPDATED_BY'.
{VARCHAR(255) : NotNull} + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * Get the value of the column 'DELETED_TIME'.
{TIMESTAMP} + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * Set the value of the column 'DELETED_TIME'.
{TIMESTAMP} + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * Get the value of the column 'DELETED_BY'.
{VARCHAR(255)} + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * Set the value of the column 'DELETED_BY'.
{VARCHAR(255)} + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {INTEGER : NotNull} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * Get the value of the column 'VERSIONNO'.
{INTEGER : NotNull} + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * Set the value of the column 'VERSIONNO'.
{INTEGER : NotNull} + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,817 @@ +package jp.sf.pal.timecard.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.Employee; +import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.RoleInfo; + +/** + * The entity of USER_INFO(TABLE). + * + *
+ * [primary-key]
+ *     USER_ID
+ * 
+ * [column]
+ *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     GROUP_INFO, ROLE_INFO
+ * 
+ * [referrer-table]
+ *     EMPLOYEE
+ * 
+ * [foreign-property]
+ *     groupInfo, roleInfo
+ * 
+ * [referrer-property]
+ *     employeeByUsernameList, employeeByManagerList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** The attribute of the column 'USER_ID'. {PK : VARCHAR(255) : NotNull} */ + protected String _userId; + + /** The attribute of the column 'GIVEN_NAME'. {VARCHAR(100)} */ + protected String _givenName; + + /** The attribute of the column 'FAMILY_NAME'. {VARCHAR(100)} */ + protected String _familyName; + + /** The attribute of the column 'MIDDLE_NAME'. {VARCHAR(50)} */ + protected String _middleName; + + /** The attribute of the column 'GIVEN_NAME_DESC'. {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** The attribute of the column 'FAMILY_NAME_DESC'. {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** The attribute of the column 'EMAIL'. {VARCHAR(255)} */ + protected String _email; + + /** The attribute of the column 'URL'. {VARCHAR(255)} */ + protected String _url; + + /** The attribute of the column 'TELEPHONE_NUMBER'. {VARCHAR(40)} */ + protected String _telephoneNumber; + + /** The attribute of the column 'ROLE_ID'. {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** + * The attribute of the column 'GROUP_ID'. {VARCHAR(255) : FK to GROUP_INFO} + */ + protected String _groupId; + + /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ + protected java.sql.Timestamp _createdTime; + + /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ + protected String _createdBy; + + /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ + protected java.sql.Timestamp _updatedTime; + + /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ + protected String _updatedBy; + + /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ + protected String _deletedBy; + + /** The attribute of the column 'VERSIONNO'. {INTEGER : NotNull} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** The entity of foreign property 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * Get the entity of foreign property 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * Set the entity of foreign property 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** The entity of foreign property 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * Get the entity of foreign property 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * Set the entity of foreign property 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [employeeByUsernameList] + // * * * * * * * * */ + + /** The entity list of referrer property 'employeeByUsernameList'. */ + protected List _childrenEmployeeByUsernameList; + + /** + * Get the entity list of referrer property 'employeeByUsernameList'. + * {without lazy-load}
+ * + * @return The entity list of referrer property 'employeeByUsernameList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getEmployeeByUsernameList() { + if (_childrenEmployeeByUsernameList == null) { + _childrenEmployeeByUsernameList = new ArrayList(); + } + return _childrenEmployeeByUsernameList; + } + + /** + * Set the entity list of referrer property 'employeeByUsernameList'. + * + * @param employeeByUsernameList The entity list of referrer property + * 'employeeByUsernameList'. (Nullable) + */ + public void setEmployeeByUsernameList(List employeeByUsernameList) { + _childrenEmployeeByUsernameList = employeeByUsernameList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [employeeByManagerList] + // * * * * * * * * */ + + /** The entity list of referrer property 'employeeByManagerList'. */ + protected List _childrenEmployeeByManagerList; + + /** + * Get the entity list of referrer property 'employeeByManagerList'. + * {without lazy-load}
+ * + * @return The entity list of referrer property 'employeeByManagerList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getEmployeeByManagerList() { + if (_childrenEmployeeByManagerList == null) { + _childrenEmployeeByManagerList = new ArrayList(); + } + return _childrenEmployeeByManagerList; + } + + /** + * Set the entity list of referrer property 'employeeByManagerList'. + * + * @param employeeByManagerList The entity list of referrer property + * 'employeeByManagerList'. (Nullable) + */ + public void setEmployeeByManagerList(List employeeByManagerList) { + _childrenEmployeeByManagerList = employeeByManagerList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephoneNumber()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : VARCHAR(255) : NotNull} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * Get the value of the column 'USER_ID'.
{PK : VARCHAR(255) : + * NotNull} + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * Set the value of the column 'USER_ID'.
{PK : VARCHAR(255) : + * NotNull} + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * Get the value of the column 'GIVEN_NAME'.
{VARCHAR(100)} + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * Set the value of the column 'GIVEN_NAME'.
{VARCHAR(100)} + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * Get the value of the column 'FAMILY_NAME'.
{VARCHAR(100)} + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * Set the value of the column 'FAMILY_NAME'.
{VARCHAR(100)} + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * Get the value of the column 'MIDDLE_NAME'.
{VARCHAR(50)} + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * Set the value of the column 'MIDDLE_NAME'.
{VARCHAR(50)} + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * Get the value of the column 'GIVEN_NAME_DESC'.
{VARCHAR(100)} + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * Set the value of the column 'GIVEN_NAME_DESC'.
{VARCHAR(100)} + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * Get the value of the column 'FAMILY_NAME_DESC'.
{VARCHAR(100)} + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * Set the value of the column 'FAMILY_NAME_DESC'.
{VARCHAR(100)} + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * Get the value of the column 'EMAIL'.
{VARCHAR(255)} + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * Set the value of the column 'EMAIL'.
{VARCHAR(255)} + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * Get the value of the column 'URL'.
{VARCHAR(255)} + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * Set the value of the column 'URL'.
{VARCHAR(255)} + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephoneNumber_COLUMN = "TELEPHONE_NUMBER"; + + /** + * Get the value of the column 'TELEPHONE_NUMBER'.
{VARCHAR(40)} + * + * @return The value of the column 'TELEPHONE_NUMBER'. (Nullable) + */ + public String getTelephoneNumber() { + return _telephoneNumber; + } + + /** + * Set the value of the column 'TELEPHONE_NUMBER'.
{VARCHAR(40)} + * + * @param telephoneNumber The value of the column 'TELEPHONE_NUMBER'. + * (Nullable) + */ + public void setTelephoneNumber(String telephoneNumber) { + _modifiedProperties.addPropertyName("telephoneNumber"); + this._telephoneNumber = telephoneNumber; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * Get the value of the column 'ROLE_ID'.
{VARCHAR(255) : FK to + * ROLE_INFO} + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * Set the value of the column 'ROLE_ID'.
{VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * Get the value of the column 'GROUP_ID'.
{VARCHAR(255) : FK to + * GROUP_INFO} + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * Set the value of the column 'GROUP_ID'.
{VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * Get the value of the column 'CREATED_TIME'.
{TIMESTAMP : NotNull} + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * Set the value of the column 'CREATED_TIME'.
{TIMESTAMP : NotNull} + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * Get the value of the column 'CREATED_BY'.
{VARCHAR(255) : NotNull} + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * Set the value of the column 'CREATED_BY'.
{VARCHAR(255) : NotNull} + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * Get the value of the column 'UPDATED_TIME'.
{TIMESTAMP : NotNull} + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * Set the value of the column 'UPDATED_TIME'.
{TIMESTAMP : NotNull} + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * Get the value of the column 'UPDATED_BY'.
{VARCHAR(255) : NotNull} + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * Set the value of the column 'UPDATED_BY'.
{VARCHAR(255) : NotNull} + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * Get the value of the column 'DELETED_TIME'.
{TIMESTAMP} + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * Set the value of the column 'DELETED_TIME'.
{TIMESTAMP} + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * Get the value of the column 'DELETED_BY'.
{VARCHAR(255)} + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * Set the value of the column 'DELETED_BY'.
{VARCHAR(255)} + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {INTEGER : NotNull} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * Get the value of the column 'VERSIONNO'.
{INTEGER : NotNull} + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * Set the value of the column 'VERSIONNO'.
{INTEGER : NotNull} + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -6,6 +6,7 @@ import jp.sf.pal.timecard.db.allcommon.Entity; import jp.sf.pal.timecard.db.allcommon.dbmeta.AbstractDBMeta; import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ForeignInfo; import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ReferrerInfo; import jp.sf.pal.timecard.db.allcommon.dbmeta.info.UniqueInfo; import jp.sf.pal.timecard.db.exentity.Employee; @@ -227,7 +228,20 @@ // ----------------------------------------------------- // Foreign Property // ---------------- + public ForeignInfo foreignUserInfoByUsername() { + Map map = newLinkedHashMap(columnUsername(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByUsername", this, UserInfoDbm.getInstance(), map, + 0, false); + } + public ForeignInfo foreignUserInfoByManager() { + Map map = newLinkedHashMap(columnManager(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByManager", this, UserInfoDbm.getInstance(), map, + 1, false); + } + // ----------------------------------------------------- // Referrer Property // ----------------- Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,436 @@ +package jp.sf.pal.timecard.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.timecard.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.timecard.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.timecard.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.timecard.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.timecard.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,436 @@ +package jp.sf.pal.timecard.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.timecard.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.timecard.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.timecard.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.timecard.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.timecard.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,526 @@ +package jp.sf.pal.timecard.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephoneNumber = cci("TELEPHONE_NUMBER", + "telephoneNumber", String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephoneNumber() { + return _columnTelephoneNumber; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.timecard.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.timecard.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.timecard.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.timecard.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerEmployeeByUsernameList() { + Map map = newLinkedHashMap(columnUserId(), + EmployeeDbm.getInstance().columnUsername()); + return cri("employeeByUsernameList", this, EmployeeDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerEmployeeByManagerList() { + Map map = newLinkedHashMap(columnUserId(), + EmployeeDbm.getInstance().columnManager()); + return cri("employeeByManagerList", this, EmployeeDbm.getInstance(), + map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephoneNumber(), columnTelephoneNumber()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephoneNumber implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephoneNumber((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupInfoCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupInfoCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.timecard.db.cbean.bs.BsGroupInfoCB { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleInfoCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleInfoCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.timecard.db.cbean.bs.BsRoleInfoCB { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/UserInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/UserInfoCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/UserInfoCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.timecard.db.cbean.bs.BsUserInfoCB { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsEmployeeCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsEmployeeCB.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsEmployeeCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -9,7 +9,10 @@ import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; import jp.sf.pal.timecard.db.cbean.EmployeeCB; import jp.sf.pal.timecard.db.cbean.MonthlyReportCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.nss.UserInfoNss; /** * The base condition-bean of EMPLOYEE. @@ -160,6 +163,52 @@ // Setup Select // ============ + protected UserInfoNss _nssUserInfoByUsername; + + public UserInfoNss getNssUserInfoByUsername() { + if (_nssUserInfoByUsername == null) { + _nssUserInfoByUsername = new UserInfoNss(null); + } + return _nssUserInfoByUsername; + } + + public UserInfoNss setupSelect_UserInfoByUsername() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByUsername(); + } + }); + if (_nssUserInfoByUsername == null + || !_nssUserInfoByUsername.hasConditionQuery()) { + _nssUserInfoByUsername = new UserInfoNss(query() + .queryUserInfoByUsername()); + } + return _nssUserInfoByUsername; + } + + protected UserInfoNss _nssUserInfoByManager; + + public UserInfoNss getNssUserInfoByManager() { + if (_nssUserInfoByManager == null) { + _nssUserInfoByManager = new UserInfoNss(null); + } + return _nssUserInfoByManager; + } + + public UserInfoNss setupSelect_UserInfoByManager() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByManager(); + } + }); + if (_nssUserInfoByManager == null + || !_nssUserInfoByManager.hasConditionQuery()) { + _nssUserInfoByManager = new UserInfoNss(query() + .queryUserInfoByManager()); + } + return _nssUserInfoByManager; + } + // [DBFlute-0.7.4] //========================================================================== // ========= @@ -186,6 +235,10 @@ public static class Specification extends AbstractSpecification { protected SpQyCall _myQyCall; + protected UserInfoCB.Specification _userInfoByUsername; + + protected UserInfoCB.Specification _userInfoByManager; + public Specification(ConditionBean baseCB, SpQyCall qyCall, boolean forDeriveReferrer) { super(baseCB, qyCall, forDeriveReferrer); @@ -242,12 +295,58 @@ protected void doSpecifyRequiredColumn() { columnId();// PK + if (_myQyCall.qy().hasConditionQueryUserInfoByUsername()) { + columnUsername();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfoByManager()) { + columnManager();// FK + } } protected String getTableDbName() { return "EMPLOYEE"; } + public UserInfoCB.Specification specifyUserInfoByUsername() { + assertForeign("userInfoByUsername"); + if (_userInfoByUsername == null) { + _userInfoByUsername = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByUsername(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfoByUsername(); + } + }, _forDeriveReferrer); + } + return _userInfoByUsername; + } + + public UserInfoCB.Specification specifyUserInfoByManager() { + assertForeign("userInfoByManager"); + if (_userInfoByManager == null) { + _userInfoByManager = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByManager(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfoByManager(); + } + }, _forDeriveReferrer); + } + return _userInfoByManager; + } + public RAFunction derivedMonthlyReportList() { return new RAFunction(_baseCB, _myQyCall.qy(), Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,281 @@ +package jp.sf.pal.timecard.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
+     * cb.query().union(new UnionQuery<GroupInfoCB>() {
+     *     public void query(GroupInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
+     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
+     *     public void query(GroupInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,280 @@ +package jp.sf.pal.timecard.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
+     * cb.query().union(new UnionQuery<RoleInfoCB>() {
+     *     public void query(RoleInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
+     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
+     *     public void query(RoleInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,409 @@ +package jp.sf.pal.timecard.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.timecard.db.cbean.EmployeeCB; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.timecard.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
+     * cb.query().union(new UnionQuery<UserInfoCB>() {
+     *     public void query(UserInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
+     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
+     *     public void query(UserInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephoneNumber() { + doColumn("TELEPHONE_NUMBER"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedEmployeeByUsernameList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveEmployeeByUsernameList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedEmployeeByManagerList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveEmployeeByManagerList(function, subQuery, + aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,45 @@ +package jp.sf.pal.timecard.db.cbean.cq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,45 @@ +package jp.sf.pal.timecard.db.cbean.cq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/UserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/UserInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/UserInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,45 @@ +package jp.sf.pal.timecard.db.cbean.cq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -50,7 +50,7 @@ /** * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F95B09D3_3E35_4F4E_81F4_295D5B036C69]} + * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} * * @param id The value of id as equal. */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -10,8 +10,10 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.EmployeeCB; import jp.sf.pal.timecard.db.cbean.MonthlyReportCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.MonthlyReportCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; /** * The abstract condition-query of EMPLOYEE. @@ -50,7 +52,7 @@ /** * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : INTEGER : NotNull * : Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_DECF6155_521A_4FFA_8951_09452601F6FA]} + * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} * * @param id The value of id as equal. */ @@ -265,8 +267,8 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : NotNull + * : FK to USER_INFO} * * @param username The value of username as equal. */ @@ -376,6 +378,36 @@ regUsername(CK_NINS, cTL(usernameList)); } + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByUsername(subQuery) method. + */ + public void setUsername_InScopeSubQuery_UserInfoByUsername( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUsername_InScopeSubQuery_UserInfoByUsername(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USERNAME", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByUsername(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUsername_InScopeSubQuery_UserInfoByUsername(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USERNAME", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUsername_InScopeSubQuery_UserInfoByUsername( + jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ subQuery); + protected void regUsername(ConditionKey key, Object value) { registerQuery(key, value, getCValueUsername(), "USERNAME", "Username", "username"); @@ -389,8 +421,8 @@ abstract protected ConditionValue getCValueUsername(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : NotNull + * : FK to USER_INFO} * * @param manager The value of manager as equal. */ @@ -500,6 +532,36 @@ regManager(CK_NINS, cTL(managerList)); } + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByManager(subQuery) method. + */ + public void setManager_InScopeSubQuery_UserInfoByManager( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepManager_InScopeSubQuery_UserInfoByManager(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "MANAGER", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByManager(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepManager_InScopeSubQuery_UserInfoByManager(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "MANAGER", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepManager_InScopeSubQuery_UserInfoByManager( + jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ subQuery); + protected void regManager(ConditionKey key, Object value) { registerQuery(key, value, getCValueManager(), "MANAGER", "Manager", "manager"); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,1776 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : VARCHAR(255) : + * NotNull} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : + * NotNull} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : + * NotNull} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -52,7 +52,7 @@ /** * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_940A2BD3_BBE2_4599_9FBC_C0BA4C739586]} + * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} * * @param id The value of id as equal. */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,1775 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : VARCHAR(255) : + * NotNull} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : + * NotNull} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : + * NotNull} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,2658 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.EmployeeCB; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : VARCHAR(255) : + * NotNull} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param employeeCBquery Query. + * @deprecated Please use inScopeEmployeeByUsernameList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ employeeCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_EmployeeByUsernameList(employeeCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(employeeCBquery, "USER_ID", "USERNAME", + subQueryPropertyName); + } + + public void inScopeEmployeeByUsernameList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_EmployeeByUsernameList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USERNAME", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery); + + /** + * @param employeeCBquery Query. + * @deprecated Please use inScopeEmployeeByManagerList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_EmployeeByManagerList( + EmployeeCQ employeeCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_EmployeeByManagerList(employeeCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(employeeCBquery, "USER_ID", "MANAGER", + subQueryPropertyName); + } + + public void inScopeEmployeeByManagerList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_EmployeeByManagerList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "MANAGER", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery); + + public void notInScopeEmployeeByUsernameList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_EmployeeByUsernameList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USERNAME", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery); + + public void notInScopeEmployeeByManagerList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_EmployeeByManagerList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "MANAGER", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery); + + /** + * @param employeeCBquery Query. + * @deprecated Please use existsEmployeeByUsernameList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ employeeCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_EmployeeByUsernameList(employeeCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(employeeCBquery, "USER_ID", "USERNAME", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USERNAME from EMPLOYEE where + * ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_EmployeeByUsernameList for 'exists'. + * (NotNull) + */ + public void existsEmployeeByUsernameList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_EmployeeByUsernameList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USERNAME", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery); + + /** + * @param employeeCBquery Query. + * @deprecated Please use existsEmployeeByManagerList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_EmployeeByManagerList( + EmployeeCQ employeeCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_EmployeeByManagerList(employeeCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(employeeCBquery, "USER_ID", "MANAGER", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select MANAGER from EMPLOYEE where + * ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_EmployeeByManagerList for 'exists'. + * (NotNull) + */ + public void existsEmployeeByManagerList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_EmployeeByManagerList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "MANAGER", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USERNAME from EMPLOYEE + * where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_EmployeeByUsernameList for 'not + * exists'. (NotNull) + */ + public void notExistsEmployeeByUsernameList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_EmployeeByUsernameList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USERNAME", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select MANAGER from EMPLOYEE + * where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_EmployeeByManagerList for 'not + * exists'. (NotNull) + */ + public void notExistsEmployeeByManagerList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_EmployeeByManagerList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "MANAGER", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery); + + public void xderiveEmployeeByUsernameList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_EmployeeByUsernameList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USERNAME", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery); + + public void xderiveEmployeeByManagerList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + EmployeeCB cb = new EmployeeCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_EmployeeByManagerList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "MANAGER", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephoneNumber The value of telephoneNumber as equal. + */ + public void setTelephoneNumber_Equal(String telephoneNumber) { + regTelephoneNumber(CK_EQ, fRES(telephoneNumber)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephoneNumber The value of telephoneNumber as notEqual. + */ + public void setTelephoneNumber_NotEqual(String telephoneNumber) { + regTelephoneNumber(CK_NE, fRES(telephoneNumber)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephoneNumber The value of telephoneNumber as greaterThan. + */ + public void setTelephoneNumber_GreaterThan(String telephoneNumber) { + regTelephoneNumber(CK_GT, fRES(telephoneNumber)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephoneNumber The value of telephoneNumber as lessThan. + */ + public void setTelephoneNumber_LessThan(String telephoneNumber) { + regTelephoneNumber(CK_LT, fRES(telephoneNumber)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephoneNumber The value of telephoneNumber as greaterEqual. + */ + public void setTelephoneNumber_GreaterEqual(String telephoneNumber) { + regTelephoneNumber(CK_GE, fRES(telephoneNumber)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephoneNumber The value of telephoneNumber as lessEqual. + */ + public void setTelephoneNumber_LessEqual(String telephoneNumber) { + regTelephoneNumber(CK_LE, fRES(telephoneNumber)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephoneNumber The value of telephoneNumber as prefixSearch. + */ + public void setTelephoneNumber_PrefixSearch(String telephoneNumber) { + regTelephoneNumber(CK_PS, fRES(telephoneNumber)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephoneNumber The value of telephoneNumber as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephoneNumber_LikeSearch( + String telephoneNumber, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephoneNumber), + getCValueTelephoneNumber(), "TELEPHONE_NUMBER", + "TelephoneNumber", "telephoneNumber", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneNumberList The collection of telephoneNumber as inScope. + */ + public void setTelephoneNumber_InScope( + Collection telephoneNumberList) { + regTelephoneNumber(CK_INS, cTL(telephoneNumberList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneNumber The collection of telephoneNumber as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephoneNumber_InScope( + String telephoneNumber, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephoneNumber), + getCValueTelephoneNumber(), "TELEPHONE_NUMBER", + "TelephoneNumber", "telephoneNumber", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneNumberList The collection of telephoneNumber as + * notInScope. + */ + public void setTelephoneNumber_NotInScope( + Collection telephoneNumberList) { + regTelephoneNumber(CK_NINS, cTL(telephoneNumberList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephoneNumber_IsNull() { + regTelephoneNumber(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephoneNumber_IsNotNull() { + regTelephoneNumber(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephoneNumber(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephoneNumber(), + "TELEPHONE_NUMBER", "TelephoneNumber", "telephoneNumber"); + } + + protected void registerInlineTelephoneNumber(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephoneNumber(), + "TELEPHONE_NUMBER", "TelephoneNumber", "telephoneNumber"); + } + + abstract protected ConditionValue getCValueTelephoneNumber(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : + * NotNull} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP : NotNull} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : + * NotNull} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsEmployeeCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsEmployeeCQ.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsEmployeeCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -7,6 +7,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.MonthlyReportCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.ciq.EmployeeCIQ; /** @@ -193,6 +194,23 @@ return getUsername(); } + protected Map _username_InScopeSubQuery_UserInfoByUsernameMap; + + public Map getUsername_InScopeSubQuery_UserInfoByUsername() { + return _username_InScopeSubQuery_UserInfoByUsernameMap; + } + + public String keepUsername_InScopeSubQuery_UserInfoByUsername( + UserInfoCQ subQuery) { + if (_username_InScopeSubQuery_UserInfoByUsernameMap == null) { + _username_InScopeSubQuery_UserInfoByUsernameMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_username_InScopeSubQuery_UserInfoByUsernameMap.size() + 1); + _username_InScopeSubQuery_UserInfoByUsernameMap.put(key, subQuery); + return "username_InScopeSubQuery_UserInfoByUsername." + key; + } + public BsEmployeeCQ addOrderBy_Username_Asc() { regOBA("USERNAME"); return this; @@ -216,6 +234,23 @@ return getManager(); } + protected Map _manager_InScopeSubQuery_UserInfoByManagerMap; + + public Map getManager_InScopeSubQuery_UserInfoByManager() { + return _manager_InScopeSubQuery_UserInfoByManagerMap; + } + + public String keepManager_InScopeSubQuery_UserInfoByManager( + UserInfoCQ subQuery) { + if (_manager_InScopeSubQuery_UserInfoByManagerMap == null) { + _manager_InScopeSubQuery_UserInfoByManagerMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_manager_InScopeSubQuery_UserInfoByManagerMap.size() + 1); + _manager_InScopeSubQuery_UserInfoByManagerMap.put(key, subQuery); + return "manager_InScopeSubQuery_UserInfoByManager." + key; + } + public BsEmployeeCQ addOrderBy_Manager_Asc() { regOBA("MANAGER"); return this; @@ -453,6 +488,18 @@ // =========== protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper) { + EmployeeCQ baseQuery = (EmployeeCQ) baseQueryAsSuper; + EmployeeCQ unionQuery = (EmployeeCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryUserInfoByUsername()) { + unionQuery.queryUserInfoByUsername().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByUsername(), + unionQuery.queryUserInfoByUsername()); + } + if (baseQuery.hasConditionQueryUserInfoByManager()) { + unionQuery.queryUserInfoByManager().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByManager(), + unionQuery.queryUserInfoByManager()); + } } //========================================================================== @@ -460,6 +507,78 @@ // Foreign Query // ============= + public UserInfoCQ queryUserInfoByUsername() { + return getConditionQueryUserInfoByUsername(); + } + + protected UserInfoCQ _conditionQueryUserInfoByUsername; + + public UserInfoCQ getConditionQueryUserInfoByUsername() { + if (_conditionQueryUserInfoByUsername == null) { + _conditionQueryUserInfoByUsername = createQueryUserInfoByUsername(); + setupOuterJoin_UserInfoByUsername(); + } + return _conditionQueryUserInfoByUsername; + } + + protected void setupOuterJoin_UserInfoByUsername() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USERNAME"), + getConditionQueryUserInfoByUsername().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByUsername(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByUsername() { + String nrp = resolveNextRelationPath("EMPLOYEE", "userInfoByUsername"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByUsername"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByUsername() { + return _conditionQueryUserInfoByUsername != null; + } + + public UserInfoCQ queryUserInfoByManager() { + return getConditionQueryUserInfoByManager(); + } + + protected UserInfoCQ _conditionQueryUserInfoByManager; + + public UserInfoCQ getConditionQueryUserInfoByManager() { + if (_conditionQueryUserInfoByManager == null) { + _conditionQueryUserInfoByManager = createQueryUserInfoByManager(); + setupOuterJoin_UserInfoByManager(); + } + return _conditionQueryUserInfoByManager; + } + + protected void setupOuterJoin_UserInfoByManager() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("MANAGER"), + getConditionQueryUserInfoByManager().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByManager(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByManager() { + String nrp = resolveNextRelationPath("EMPLOYEE", "userInfoByManager"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByManager"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByManager() { + return _conditionQueryUserInfoByManager != null; + } + protected String getConditionQueryClassNameInternally() { return EmployeeCQ.class.getName(); } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,489 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
{select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
{select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,488 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
{select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
{select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,807 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
{select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
{select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_EmployeeByUsernameListMap; + + public Map getUserId_InScopeSubQuery_EmployeeByUsernameList() { + return _userId_InScopeSubQuery_EmployeeByUsernameListMap; + } + + public String keepUserId_InScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + if (_userId_InScopeSubQuery_EmployeeByUsernameListMap == null) { + _userId_InScopeSubQuery_EmployeeByUsernameListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_EmployeeByUsernameListMap.size() + 1); + _userId_InScopeSubQuery_EmployeeByUsernameListMap.put(key, subQuery); + return "userId_InScopeSubQuery_EmployeeByUsernameList." + key; + } + + protected Map _userId_InScopeSubQuery_EmployeeByManagerListMap; + + public Map getUserId_InScopeSubQuery_EmployeeByManagerList() { + return _userId_InScopeSubQuery_EmployeeByManagerListMap; + } + + public String keepUserId_InScopeSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + if (_userId_InScopeSubQuery_EmployeeByManagerListMap == null) { + _userId_InScopeSubQuery_EmployeeByManagerListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_EmployeeByManagerListMap.size() + 1); + _userId_InScopeSubQuery_EmployeeByManagerListMap.put(key, subQuery); + return "userId_InScopeSubQuery_EmployeeByManagerList." + key; + } + + protected Map _userId_NotInScopeSubQuery_EmployeeByUsernameListMap; + + public Map getUserId_NotInScopeSubQuery_EmployeeByUsernameList() { + return _userId_NotInScopeSubQuery_EmployeeByUsernameListMap; + } + + public String keepUserId_NotInScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + if (_userId_NotInScopeSubQuery_EmployeeByUsernameListMap == null) { + _userId_NotInScopeSubQuery_EmployeeByUsernameListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_EmployeeByUsernameListMap.size() + 1); + _userId_NotInScopeSubQuery_EmployeeByUsernameListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_EmployeeByUsernameList." + key; + } + + protected Map _userId_NotInScopeSubQuery_EmployeeByManagerListMap; + + public Map getUserId_NotInScopeSubQuery_EmployeeByManagerList() { + return _userId_NotInScopeSubQuery_EmployeeByManagerListMap; + } + + public String keepUserId_NotInScopeSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + if (_userId_NotInScopeSubQuery_EmployeeByManagerListMap == null) { + _userId_NotInScopeSubQuery_EmployeeByManagerListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_EmployeeByManagerListMap.size() + 1); + _userId_NotInScopeSubQuery_EmployeeByManagerListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_EmployeeByManagerList." + key; + } + + protected Map _userId_ExistsSubQuery_EmployeeByUsernameListMap; + + public Map getUserId_ExistsSubQuery_EmployeeByUsernameList() { + return _userId_ExistsSubQuery_EmployeeByUsernameListMap; + } + + public String keepUserId_ExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + if (_userId_ExistsSubQuery_EmployeeByUsernameListMap == null) { + _userId_ExistsSubQuery_EmployeeByUsernameListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_EmployeeByUsernameListMap.size() + 1); + _userId_ExistsSubQuery_EmployeeByUsernameListMap.put(key, subQuery); + return "userId_ExistsSubQuery_EmployeeByUsernameList." + key; + } + + protected Map _userId_ExistsSubQuery_EmployeeByManagerListMap; + + public Map getUserId_ExistsSubQuery_EmployeeByManagerList() { + return _userId_ExistsSubQuery_EmployeeByManagerListMap; + } + + public String keepUserId_ExistsSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + if (_userId_ExistsSubQuery_EmployeeByManagerListMap == null) { + _userId_ExistsSubQuery_EmployeeByManagerListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_EmployeeByManagerListMap.size() + 1); + _userId_ExistsSubQuery_EmployeeByManagerListMap.put(key, subQuery); + return "userId_ExistsSubQuery_EmployeeByManagerList." + key; + } + + protected Map _userId_NotExistsSubQuery_EmployeeByUsernameListMap; + + public Map getUserId_NotExistsSubQuery_EmployeeByUsernameList() { + return _userId_NotExistsSubQuery_EmployeeByUsernameListMap; + } + + public String keepUserId_NotExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + if (_userId_NotExistsSubQuery_EmployeeByUsernameListMap == null) { + _userId_NotExistsSubQuery_EmployeeByUsernameListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_EmployeeByUsernameListMap.size() + 1); + _userId_NotExistsSubQuery_EmployeeByUsernameListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_EmployeeByUsernameList." + key; + } + + protected Map _userId_NotExistsSubQuery_EmployeeByManagerListMap; + + public Map getUserId_NotExistsSubQuery_EmployeeByManagerList() { + return _userId_NotExistsSubQuery_EmployeeByManagerListMap; + } + + public String keepUserId_NotExistsSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + if (_userId_NotExistsSubQuery_EmployeeByManagerListMap == null) { + _userId_NotExistsSubQuery_EmployeeByManagerListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_EmployeeByManagerListMap.size() + 1); + _userId_NotExistsSubQuery_EmployeeByManagerListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_EmployeeByManagerList." + key; + } + + protected Map _userId_DeriveSubQuery_EmployeeByUsernameListMap; + + public Map getUserId_DeriveSubQuery_EmployeeByUsernameList() { + return _userId_DeriveSubQuery_EmployeeByUsernameListMap; + } + + public String keepUserId_DeriveSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + if (_userId_DeriveSubQuery_EmployeeByUsernameListMap == null) { + _userId_DeriveSubQuery_EmployeeByUsernameListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_EmployeeByUsernameListMap.size() + 1); + _userId_DeriveSubQuery_EmployeeByUsernameListMap.put(key, subQuery); + return "userId_DeriveSubQuery_EmployeeByUsernameList." + key; + } + + protected Map _userId_DeriveSubQuery_EmployeeByManagerListMap; + + public Map getUserId_DeriveSubQuery_EmployeeByManagerList() { + return _userId_DeriveSubQuery_EmployeeByManagerListMap; + } + + public String keepUserId_DeriveSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + if (_userId_DeriveSubQuery_EmployeeByManagerListMap == null) { + _userId_DeriveSubQuery_EmployeeByManagerListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_EmployeeByManagerListMap.size() + 1); + _userId_DeriveSubQuery_EmployeeByManagerListMap.put(key, subQuery); + return "userId_DeriveSubQuery_EmployeeByManagerList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephoneNumber; + + public ConditionValue getTelephoneNumber() { + if (_telephoneNumber == null) { + _telephoneNumber = new ConditionValue(); + } + return _telephoneNumber; + } + + protected ConditionValue getCValueTelephoneNumber() { + return getTelephoneNumber(); + } + + public BsUserInfoCQ addOrderBy_TelephoneNumber_Asc() { + regOBA("TELEPHONE_NUMBER"); + return this; + } + + public BsUserInfoCQ addOrderBy_TelephoneNumber_Desc() { + regOBD("TELEPHONE_NUMBER"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/EmployeeCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/EmployeeCIQ.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/EmployeeCIQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -7,6 +7,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.MonthlyReportCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsEmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.BsEmployeeCQ; @@ -127,10 +128,20 @@ return _myCQ.getUsername(); } + public String keepUsername_InScopeSubQuery_UserInfoByUsername( + UserInfoCQ subQuery) { + return _myCQ.keepUsername_InScopeSubQuery_UserInfoByUsername(subQuery); + } + protected ConditionValue getCValueManager() { return _myCQ.getManager(); } + public String keepManager_InScopeSubQuery_UserInfoByManager( + UserInfoCQ subQuery) { + return _myCQ.keepManager_InScopeSubQuery_UserInfoByManager(subQuery); + } + protected ConditionValue getCValuePaidHolidays() { return _myCQ.getPaidHolidays(); } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,173 @@ +package jp.sf.pal.timecard.db.cbean.cq.ciq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,172 @@ +package jp.sf.pal.timecard.db.cbean.cq.ciq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,238 @@ +package jp.sf.pal.timecard.db.cbean.cq.ciq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_EmployeeByUsernameList(subQuery); + } + + public String keepUserId_InScopeSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_EmployeeByManagerList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_EmployeeByUsernameList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_EmployeeByManagerList(subQuery); + } + + public String keepUserId_ExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_EmployeeByUsernameList( + EmployeeCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_EmployeeByManagerList( + EmployeeCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephoneNumber() { + return _myCQ.getTelephoneNumber(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/EmployeeNss.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/EmployeeNss.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/EmployeeNss.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -1,5 +1,6 @@ package jp.sf.pal.timecard.db.cbean.nss; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; /** @@ -24,7 +25,24 @@ // ========= // With Nested Foreign Table // ========================= + public UserInfoNss withUserInfoByUsername() { + _query.doNss(new EmployeeCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByUsername(); + } + }); + return new UserInfoNss(_query.queryUserInfoByUsername()); + } + public UserInfoNss withUserInfoByManager() { + _query.doNss(new EmployeeCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByManager(); + } + }); + return new UserInfoNss(_query.queryUserInfoByManager()); + } + //========================================================================== // ========= // With Nested Referrer Table Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupInfoNss.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupInfoNss.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupInfoNss.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,32 @@ +package jp.sf.pal.timecard.db.cbean.nss; + +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleInfoNss.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleInfoNss.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleInfoNss.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,32 @@ +package jp.sf.pal.timecard.db.cbean.nss; + +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/UserInfoNss.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/UserInfoNss.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/UserInfoNss.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,50 @@ +package jp.sf.pal.timecard.db.cbean.nss; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupInfoBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupInfoBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.timecard.db.bsbhv.BsGroupInfoBhv { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleInfoBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleInfoBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.timecard.db.bsbhv.BsRoleInfoBhv { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/UserInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/UserInfoBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/UserInfoBhv.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.exbhv; + +/** + * The behavior of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.timecard.db.bsbhv.BsUserInfoBhv { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupInfoDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupInfoDao.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.exdao; + +/** + * The dao interface of GROUP_INFO.
+ *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends + jp.sf.pal.timecard.db.bsdao.BsGroupInfoDao { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleInfoDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleInfoDao.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.exdao; + +/** + * The dao interface of ROLE_INFO.
+ *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.timecard.db.bsdao.BsRoleInfoDao { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/UserInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/UserInfoDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/UserInfoDao.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,14 @@ +package jp.sf.pal.timecard.db.exdao; + +/** + * The dao interface of USER_INFO.
+ *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.timecard.db.bsdao.BsUserInfoDao { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/DailyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/DailyReport.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/DailyReport.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -311,7 +311,7 @@ return String.valueOf(hour); } } else { - return "00"; + return null; } } @@ -324,7 +324,7 @@ return String.valueOf(min); } } else { - return "00"; + return null; } } } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupInfo.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupInfo.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,17 @@ +package jp.sf.pal.timecard.db.exentity; + +/** + * The entity of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.timecard.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleInfo.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleInfo.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,17 @@ +package jp.sf.pal.timecard.db.exentity; + +/** + * The entity of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.timecard.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -0,0 +1,17 @@ +package jp.sf.pal.timecard.db.exentity; + +/** + * The entity of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.timecard.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -24,4 +24,10 @@ @Required(target = "update") @Mask(mask = "\\d\\d:\\d\\d") public String pmEndTime; + + @Required(target = "update") + public String displayedMinutes; + + @Required(target = "update") + public String holidays; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/pager/EmployeePager.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/pager/EmployeePager.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/pager/EmployeePager.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -15,6 +15,11 @@ manager = null; } + public void clear() { + super.clear(); + username = null; + } + protected int getDefaultPageSize() { return 50; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -8,8 +8,11 @@ import jp.sf.pal.timecard.common.util.PagingResultBeanWrapper; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; import jp.sf.pal.timecard.db.cbean.EmployeeCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.exbhv.EmployeeBhv; +import jp.sf.pal.timecard.db.exbhv.UserInfoBhv; import jp.sf.pal.timecard.db.exentity.Employee; +import jp.sf.pal.timecard.db.exentity.UserInfo; import jp.sf.pal.timecard.dxo.PagerDxo; import jp.sf.pal.timecard.pager.EmployeePager; @@ -23,6 +26,24 @@ private PagerDxo pagerDxo; + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + public List getEmployeeList(EmployeePager employeePager) { HotdeployUtil.rebuildValue(employeePager); @@ -42,6 +63,7 @@ } cb.query().setDeletedBy_IsNull(); + cb.query().addOrderBy_Username_Asc(); cb.query().addOrderBy_UpdatedBy_Asc(); PagingResultBean employeeList = employeeBhv.selectPage(cb); @@ -71,6 +93,9 @@ Timestamp now = new Timestamp(System.currentTimeMillis()); employee.setUpdatedTime(now); + initUserInfo(employee.getUsername()); + initUserInfo(employee.getManager()); + // Employee if (isUpdate) { employeeBhv.update(employee); @@ -111,4 +136,12 @@ this.pagerDxo = pagerDxo; } + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -11,12 +11,15 @@ import jp.sf.pal.timecard.db.cbean.DailyReportCB; import jp.sf.pal.timecard.db.cbean.EmployeeCB; import jp.sf.pal.timecard.db.cbean.MonthlyReportCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.exbhv.DailyReportBhv; import jp.sf.pal.timecard.db.exbhv.EmployeeBhv; import jp.sf.pal.timecard.db.exbhv.MonthlyReportBhv; +import jp.sf.pal.timecard.db.exbhv.UserInfoBhv; import jp.sf.pal.timecard.db.exentity.DailyReport; import jp.sf.pal.timecard.db.exentity.Employee; import jp.sf.pal.timecard.db.exentity.MonthlyReport; +import jp.sf.pal.timecard.db.exentity.UserInfo; import jp.sf.pal.timecard.util.TimecardUtil; public class ReportService implements Serializable { @@ -29,6 +32,24 @@ private transient DailyReportBhv dailyReportBhv; + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + public MonthlyReport getMonthlyReport(String username, int year, int month) { MonthlyReportCB cb = new MonthlyReportCB(); @@ -51,6 +72,7 @@ Employee employee = employeeBhv.selectEntity(cb1); // TODO option if (employee == null) { + initUserInfo(username); // create employee employee = new Employee(); employee.setUsername(username); @@ -93,8 +115,9 @@ DailyReport dailyReport = new DailyReport(); dailyReport.setDate(i); dailyReport.setDayOfWeek(currentDayOfWeek); - // TODO check holiday - if (currentDayOfWeek != 0 && currentDayOfWeek != 6) { + // check holiday + if (currentDayOfWeek != 0 && currentDayOfWeek != 6 + && !TimecardUtil.checkHoliday(year, month, i)) { dailyReport .setDateType(TimecardConstants.DATE_TYPE_WORKING); dailyReport @@ -145,7 +168,30 @@ cb2.query().setMonthlyReportId_Equal(monthlyReport.getId()); cb2.query().addOrderBy_Date_Asc(); - monthlyReport.setDailyReportList(dailyReportBhv.selectList(cb2)); + List dailyReportList = dailyReportBhv.selectList(cb2); + for (DailyReport dailyReport : dailyReportList) { + if (dailyReport.getStartTime() == null + && dailyReport.getEndTime() == null + && dailyReport.getBreakTime() == null) { + // check holiday + if (dailyReport.getDayOfWeek() != 0 + && dailyReport.getDayOfWeek() != 6 + && !TimecardUtil.checkHoliday(year, month, dailyReport + .getDate())) { + dailyReport + .setDateType(TimecardConstants.DATE_TYPE_WORKING); + dailyReport + .setWorkingType(TimecardConstants.WORKING_TYPE_WORK); + } else { + dailyReport + .setDateType(TimecardConstants.DATE_TYPE_HOLIDAY); + dailyReport + .setWorkingType(TimecardConstants.WORKING_TYPE_HOLIDAY); + } + dailyReportBhv.update(dailyReport); + } + } + monthlyReport.setDailyReportList(dailyReportList); return monthlyReport; } @@ -465,6 +511,14 @@ this.dailyReportBhv = dailyReportBhv; } + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + // public void disable(Long dailyReportId, String name) { // // not delete // DailyReportCB cb = new DailyReportCB(); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/util/TimecardUtil.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/util/TimecardUtil.java 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/util/TimecardUtil.java 2008-11-06 05:51:41 UTC (rev 1293) @@ -5,10 +5,13 @@ import java.util.Date; import java.util.TimeZone; +import jp.sf.pal.timecard.TimecardConstants; import jp.sf.pal.timecard.common.util.ConfigUtil; import jp.sf.pal.timecard.common.util.DateUtil; import jp.sf.pal.timecard.db.exentity.DailyReport; +import org.apache.commons.lang.StringUtils; + public class TimecardUtil { public static String getHours(long time) { Date d = new Date(time); @@ -142,4 +145,25 @@ } return new Time(DateUtil.get(70, 0, 1, hr, min).getTime()); } + + public static boolean checkHoliday(int year, int month, int date) { + StringBuilder buf = new StringBuilder(String.valueOf(year)); + buf.append("-"); + if (month < 10) { + buf.append("0"); + } + buf.append(month); + buf.append("-"); + if (date < 10) { + buf.append("0"); + } + buf.append(date); + + String holidays = ConfigUtil.getString(TimecardConstants.TIME_HOLIDAYS, + ""); + if (!StringUtils.isEmpty(holidays)) { + return holidays.indexOf(buf.toString()) > -1; + } + return false; + } } Modified: timecard/trunk/src/main/resources/dbflute.dicon =================================================================== --- timecard/trunk/src/main/resources/dbflute.dicon 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/resources/dbflute.dicon 2008-11-06 05:51:41 UTC (rev 1293) @@ -53,10 +53,28 @@ + + + dbflute.interceptor + + + dbflute.interceptor + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.index.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-06 05:51:41 UTC (rev 1293) @@ -8,7 +8,24 @@
-
+
+ +
ÆüÉսмÒÂà¼ÒµÙ·Æ¶Ð̳ÆâÍƾõ¶·  
${month}/${dr.date} -(Æü) -(·î) -(²Ð) -(¿å) -(ÌÚ) -(¶â) -(ÅÚ) + + + + + + + ${dr.formattedStartTime} ${dr.formattedEndTime} ${dr.formattedBreakTime} ${dr.formattedWorkingTime} -¶Ð̳ -µÙÆü¶Ð̳ -µÙÆü¶Ð̳(¸áÁ°) -µÙÆü¶Ð̳(¸á¸å) -µÙÆü -µÙ²Ë -µÙ²Ë(¸áÁ°) -µÙ²Ë(¸á¸å) -Í­µëµÙ²Ë -Í­µëµÙ²Ë(¸áÁ°) -Í­µëµÙ²Ë(¸á¸å) -·ÄĤµÙ²Ë -·ÄĤµÙ²Ë(¸áÁ°) -·ÄĤµÙ²Ë(¸á¸å) -»ä½ýÉÂµÙ²Ë -»ä½ýɵٲË(¸áÁ°) -»ä½ýɵٲË(¸á¸å) -ÂåµÙ -ÂåµÙ(¸áÁ°) -ÂåµÙ(¸á¸å) + + + + + + + + + + + + + + + + + + + + -ÊÔ½¸Ãæ -¿½ÀÁ -¾µÇ§ + + + - ¾µÇ§ + <%-- - ÊÔ½¸ + --%>
+ + + + + + + + + + +
Modified: timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-06 05:51:41 UTC (rev 1293) @@ -28,6 +28,16 @@
+ + + + + + + + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp 2008-11-06 05:51:41 UTC (rev 1293) @@ -22,7 +22,15 @@ - + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-06 02:53:06 UTC (rev 1292) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-06 05:51:41 UTC (rev 1293) @@ -8,7 +8,24 @@
-
+
+ +
User ID + + +
ɽ¼¨¤¹¤ëʬ
µÙÆü +
ex. YYYY-MM-DD +
${f:h(month)}/${f:h(date)}${f:h(month)}/${f:h(date)} + + + + + + + +
+ + + + + + + + + + +
<%--
From svnnotify ¡÷ sourceforge.jp Thu Nov 6 15:30:25 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 15:30:25 +0900 Subject: [pal-cvs 3560] [1294] run platex 3 times, added version info to a filename. Message-ID: <1225953025.574325.9114.nullmailer@users.sourceforge.jp> Revision: 1294 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1294 Author: shinsuke Date: 2008-11-06 15:30:25 +0900 (Thu, 06 Nov 2008) Log Message: ----------- run platex 3 times, added version info to a filename. Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/build.xml -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-06 05:51:41 UTC (rev 1293) +++ pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-06 06:30:25 UTC (rev 1294) @@ -19,6 +19,20 @@ > + + + + + + - + From svnnotify ¡÷ sourceforge.jp Thu Nov 6 21:42:11 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 21:42:11 +0900 Subject: [pal-cvs 3561] [1295] replaced telephone_number with telephone. Message-ID: <1225975331.354535.14540.nullmailer@users.sourceforge.jp> Revision: 1295 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1295 Author: shinsuke Date: 2008-11-06 21:42:11 +0900 (Thu, 06 Nov 2008) Log Message: ----------- replaced telephone_number with telephone. Modified Paths: -------------- timecard/trunk/src/main/config/erd/timecard.erd timecard/trunk/src/main/config/sql/timecard.ddl timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db -------------- next part -------------- Modified: timecard/trunk/src/main/config/erd/timecard.erd =================================================================== --- timecard/trunk/src/main/config/erd/timecard.erd 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/config/erd/timecard.erd 2008-11-06 12:42:11 UTC (rev 1295) @@ -569,9 +569,14 @@ - telephone_number - Telephone Number - + telephone + Telephone + + VARCHAR + String + true + 12 + 40 false false Modified: timecard/trunk/src/main/config/sql/timecard.ddl =================================================================== --- timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-06 12:42:11 UTC (rev 1295) @@ -55,7 +55,7 @@ family_name_desc VARCHAR(100), email VARCHAR(255), url VARCHAR(255), - telephone_number VARCHAR(40), + telephone VARCHAR(40), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -33,7 +33,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -20,11 +20,11 @@ public int getCountAll(); - public static final String getListAll_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO"; + public static final String getListAll_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO"; public java.util.List getListAll(); - public static final String getEntity_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO where USER_INFO.USER_ID = /*userId*/null"; + public static final String getEntity_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO where USER_INFO.USER_ID = /*userId*/null"; public static final String getEntity_ARGS = "userId"; Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -70,7 +70,7 @@ /** * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} + * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} */ protected Long _id; @@ -330,14 +330,14 @@ /** * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} + * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} */ public static final String id_COLUMN = "ID"; /** * Get the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} + * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} * * @return The value of the column 'ID'. (Nullable) */ @@ -348,7 +348,7 @@ /** * Set the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} + * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} * * @param id The value of the column 'ID'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -73,7 +73,7 @@ /** * The attribute of the column 'ID'. {PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} + * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} */ protected Integer _id; @@ -379,14 +379,14 @@ /** * The column annotation for S2Dao. {PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} + * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} */ public static final String id_COLUMN = "ID"; /** * Get the value of the column 'ID'.
{PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} + * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} * * @return The value of the column 'ID'. (Nullable) */ @@ -397,7 +397,7 @@ /** * Set the value of the column 'ID'.
{PK : INC : INTEGER : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} + * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} * * @param id The value of the column 'ID'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -73,7 +73,7 @@ /** * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} + * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} */ protected Long _id; @@ -388,14 +388,14 @@ /** * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} + * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} */ public static final String id_COLUMN = "ID"; /** * Get the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} + * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} * * @return The value of the column 'ID'. (Nullable) */ @@ -406,7 +406,7 @@ /** * Set the value of the column 'ID'.
{PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} + * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} * * @param id The value of the column 'ID'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -19,7 +19,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE_NUMBER, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -92,8 +92,8 @@ /** The attribute of the column 'URL'. {VARCHAR(255)} */ protected String _url; - /** The attribute of the column 'TELEPHONE_NUMBER'. {VARCHAR(40)} */ - protected String _telephoneNumber; + /** The attribute of the column 'TELEPHONE'. {VARCHAR(40)} */ + protected String _telephone; /** The attribute of the column 'ROLE_ID'. {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -387,7 +387,7 @@ sb.append(delimiter).append(getFamilyNameDesc()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); - sb.append(delimiter).append(getTelephoneNumber()); + sb.append(delimiter).append(getTelephone()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -590,26 +590,25 @@ } /** The column annotation for S2Dao. {VARCHAR(40)} */ - public static final String telephoneNumber_COLUMN = "TELEPHONE_NUMBER"; + public static final String telephone_COLUMN = "TELEPHONE"; /** - * Get the value of the column 'TELEPHONE_NUMBER'.
{VARCHAR(40)} + * Get the value of the column 'TELEPHONE'.
{VARCHAR(40)} * - * @return The value of the column 'TELEPHONE_NUMBER'. (Nullable) + * @return The value of the column 'TELEPHONE'. (Nullable) */ - public String getTelephoneNumber() { - return _telephoneNumber; + public String getTelephone() { + return _telephone; } /** - * Set the value of the column 'TELEPHONE_NUMBER'.
{VARCHAR(40)} + * Set the value of the column 'TELEPHONE'.
{VARCHAR(40)} * - * @param telephoneNumber The value of the column 'TELEPHONE_NUMBER'. - * (Nullable) + * @param telephone The value of the column 'TELEPHONE'. (Nullable) */ - public void setTelephoneNumber(String telephoneNumber) { - _modifiedProperties.addPropertyName("telephoneNumber"); - this._telephoneNumber = telephoneNumber; + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; } /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -68,8 +68,8 @@ protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, 255, 0); - protected ColumnInfo _columnTelephoneNumber = cci("TELEPHONE_NUMBER", - "telephoneNumber", String.class, false, 40, 0); + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -130,8 +130,8 @@ return _columnUrl; } - public ColumnInfo columnTelephoneNumber() { - return _columnTelephoneNumber; + public ColumnInfo columnTelephone() { + return _columnTelephone; } public ColumnInfo columnRoleId() { @@ -395,7 +395,7 @@ setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); - setupEps(_epsMap, new EpsTelephoneNumber(), columnTelephoneNumber()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -464,9 +464,9 @@ } } - public static class EpsTelephoneNumber implements Eps { + public static class EpsTelephone implements Eps { public void setup(UserInfo e, Object v) { - e.setTelephoneNumber((String) v); + e.setTelephone((String) v); } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -277,8 +277,8 @@ doColumn("URL"); } - public void columnTelephoneNumber() { - doColumn("TELEPHONE_NUMBER"); + public void columnTelephone() { + doColumn("TELEPHONE"); } public void columnRoleId() { Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -50,7 +50,7 @@ /** * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_4702E7AF_BED5_430F_872C_0E616FCCB710]} + * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} * * @param id The value of id as equal. */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -52,7 +52,7 @@ /** * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : INTEGER : NotNull * : Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_B9D70913_E2FA_457A_9EE2_47106722A258]} + * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} * * @param id The value of id as equal. */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -52,7 +52,7 @@ /** * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_6A0692DE_1982_46B6_913E_4DD089ECE512]} + * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} * * @param id The value of id as equal. */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -1391,144 +1391,139 @@ /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} * - * @param telephoneNumber The value of telephoneNumber as equal. + * @param telephone The value of telephone as equal. */ - public void setTelephoneNumber_Equal(String telephoneNumber) { - regTelephoneNumber(CK_EQ, fRES(telephoneNumber)); + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); } /** * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. * - * @param telephoneNumber The value of telephoneNumber as notEqual. + * @param telephone The value of telephone as notEqual. */ - public void setTelephoneNumber_NotEqual(String telephoneNumber) { - regTelephoneNumber(CK_NE, fRES(telephoneNumber)); + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); } /** * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. * - * @param telephoneNumber The value of telephoneNumber as greaterThan. + * @param telephone The value of telephone as greaterThan. */ - public void setTelephoneNumber_GreaterThan(String telephoneNumber) { - regTelephoneNumber(CK_GT, fRES(telephoneNumber)); + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); } /** * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. * - * @param telephoneNumber The value of telephoneNumber as lessThan. + * @param telephone The value of telephone as lessThan. */ - public void setTelephoneNumber_LessThan(String telephoneNumber) { - regTelephoneNumber(CK_LT, fRES(telephoneNumber)); + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); } /** * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. * - * @param telephoneNumber The value of telephoneNumber as greaterEqual. + * @param telephone The value of telephone as greaterEqual. */ - public void setTelephoneNumber_GreaterEqual(String telephoneNumber) { - regTelephoneNumber(CK_GE, fRES(telephoneNumber)); + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); } /** * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. * - * @param telephoneNumber The value of telephoneNumber as lessEqual. + * @param telephone The value of telephone as lessEqual. */ - public void setTelephoneNumber_LessEqual(String telephoneNumber) { - regTelephoneNumber(CK_LE, fRES(telephoneNumber)); + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); } /** * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. * - * @param telephoneNumber The value of telephoneNumber as prefixSearch. + * @param telephone The value of telephone as prefixSearch. */ - public void setTelephoneNumber_PrefixSearch(String telephoneNumber) { - regTelephoneNumber(CK_PS, fRES(telephoneNumber)); + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); } /** * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, * SeveralRegistered. * - * @param telephoneNumber The value of telephoneNumber as likeSearch. + * @param telephone The value of telephone as likeSearch. * @param likeSearchOption The option of like-search. (NotNull) */ - public void setTelephoneNumber_LikeSearch( - String telephoneNumber, + public void setTelephone_LikeSearch( + String telephone, jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(telephoneNumber), - getCValueTelephoneNumber(), "TELEPHONE_NUMBER", - "TelephoneNumber", "telephoneNumber", likeSearchOption); + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); } /** * InScope(in ('a', 'b')). And NullOrEmptyIgnored, * NullOrEmptyElementIgnored, SeveralRegistered. * - * @param telephoneNumberList The collection of telephoneNumber as inScope. + * @param telephoneList The collection of telephone as inScope. */ - public void setTelephoneNumber_InScope( - Collection telephoneNumberList) { - regTelephoneNumber(CK_INS, cTL(telephoneNumberList)); + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); } /** * InScope(in ('a', 'b')). And NullOrEmptyIgnored, * NullOrEmptyElementIgnored, SeveralRegistered. * - * @param telephoneNumber The collection of telephoneNumber as inScope. + * @param telephone The collection of telephone as inScope. * @param inScopeOption The option of in-scope. (NotNull) */ - public void setTelephoneNumber_InScope( - String telephoneNumber, + public void setTelephone_InScope( + String telephone, jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(telephoneNumber), - getCValueTelephoneNumber(), "TELEPHONE_NUMBER", - "TelephoneNumber", "telephoneNumber", inScopeOption); + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); } /** * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, * NullOrEmptyElementIgnored, SeveralRegistered. * - * @param telephoneNumberList The collection of telephoneNumber as - * notInScope. + * @param telephoneList The collection of telephone as notInScope. */ - public void setTelephoneNumber_NotInScope( - Collection telephoneNumberList) { - regTelephoneNumber(CK_NINS, cTL(telephoneNumberList)); + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); } /** * IsNull(is null). And OnceRegistered. */ - public void setTelephoneNumber_IsNull() { - regTelephoneNumber(CK_ISN, DUMMY_OBJECT); + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); } /** * IsNotNull(is not null). And OnceRegistered. */ - public void setTelephoneNumber_IsNotNull() { - regTelephoneNumber(CK_ISNN, DUMMY_OBJECT); + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); } - protected void regTelephoneNumber(ConditionKey key, Object value) { - registerQuery(key, value, getCValueTelephoneNumber(), - "TELEPHONE_NUMBER", "TelephoneNumber", "telephoneNumber"); + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); } - protected void registerInlineTelephoneNumber(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueTelephoneNumber(), - "TELEPHONE_NUMBER", "TelephoneNumber", "telephoneNumber"); + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); } - abstract protected ConditionValue getCValueTelephoneNumber(); + abstract protected ConditionValue getCValueTelephone(); /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -428,26 +428,26 @@ return this; } - protected ConditionValue _telephoneNumber; + protected ConditionValue _telephone; - public ConditionValue getTelephoneNumber() { - if (_telephoneNumber == null) { - _telephoneNumber = new ConditionValue(); + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); } - return _telephoneNumber; + return _telephone; } - protected ConditionValue getCValueTelephoneNumber() { - return getTelephoneNumber(); + protected ConditionValue getCValueTelephone() { + return getTelephone(); } - public BsUserInfoCQ addOrderBy_TelephoneNumber_Asc() { - regOBA("TELEPHONE_NUMBER"); + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); return this; } - public BsUserInfoCQ addOrderBy_TelephoneNumber_Desc() { - regOBD("TELEPHONE_NUMBER"); + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); return this; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-06 06:30:25 UTC (rev 1294) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-06 12:42:11 UTC (rev 1295) @@ -184,8 +184,8 @@ return _myCQ.getUrl(); } - protected ConditionValue getCValueTelephoneNumber() { - return _myCQ.getTelephoneNumber(); + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); } protected ConditionValue getCValueRoleId() { Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Thu Nov 6 22:01:33 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 22:01:33 +0900 Subject: [pal-cvs 3562] [1296] created userinfo. Message-ID: <1225976493.583288.29479.nullmailer@users.sourceforge.jp> Revision: 1296 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1296 Author: shinsuke Date: 2008-11-06 22:01:33 +0900 (Thu, 06 Nov 2008) Log Message: ----------- created userinfo. Added Paths: ----------- userinfo/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Thu Nov 6 22:01:41 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 22:01:41 +0900 Subject: [pal-cvs 3563] [1297] created trunk. Message-ID: <1225976501.367358.29552.nullmailer@users.sourceforge.jp> Revision: 1297 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1297 Author: shinsuke Date: 2008-11-06 22:01:41 +0900 (Thu, 06 Nov 2008) Log Message: ----------- created trunk. Added Paths: ----------- userinfo/trunk/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Thu Nov 6 22:08:17 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 06 Nov 2008 22:08:17 +0900 Subject: [pal-cvs 3564] [1298] initial commit. Message-ID: <1225976897.996396.2778.nullmailer@users.sourceforge.jp> Revision: 1298 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1298 Author: shinsuke Date: 2008-11-06 22:08:17 +0900 (Thu, 06 Nov 2008) Log Message: ----------- initial commit. Added Paths: ----------- userinfo/trunk/.classpath userinfo/trunk/.project userinfo/trunk/.settings/ userinfo/trunk/.settings/org.eclipse.jdt.core.prefs userinfo/trunk/.settings/org.eclipse.jdt.ui.prefs userinfo/trunk/.settings/org.seasar.sastrutsplugin.prefs userinfo/trunk/dbflute/ userinfo/trunk/dbflute/_project.bat userinfo/trunk/dbflute/_project.sh userinfo/trunk/dbflute/build-userinfo.properties userinfo/trunk/dbflute/dfprop/ userinfo/trunk/dbflute/dfprop/databaseInfoMap.dfprop userinfo/trunk/dbflute/doc.bat userinfo/trunk/dbflute/doc.sh userinfo/trunk/dbflute/generate.bat userinfo/trunk/dbflute/generate.sh userinfo/trunk/dbflute/jdbc.bat userinfo/trunk/dbflute/jdbc.sh userinfo/trunk/dbflute/log/ userinfo/trunk/dbflute/log/readme.txt userinfo/trunk/dbflute/output/ userinfo/trunk/dbflute/output/doc/ userinfo/trunk/dbflute/output/doc/readme.txt userinfo/trunk/dbflute/outside-sql-test.bat userinfo/trunk/dbflute/outside-sql-test.sh userinfo/trunk/dbflute/playsql/ userinfo/trunk/dbflute/playsql/replace-schema.sql userinfo/trunk/dbflute/replace-schema.bat userinfo/trunk/dbflute/replace-schema.sh userinfo/trunk/dbflute/schema/ userinfo/trunk/dbflute/schema/readme.txt userinfo/trunk/dbflute/sql2entity.bat userinfo/trunk/dbflute/sql2entity.sh userinfo/trunk/mydbflute/ userinfo/trunk/pom.xml userinfo/trunk/src/ userinfo/trunk/src/main/ userinfo/trunk/src/main/config/ userinfo/trunk/src/main/config/erd/ userinfo/trunk/src/main/config/erd/userinfo.erd userinfo/trunk/src/main/config/sql/ userinfo/trunk/src/main/config/sql/userinfo.ddl userinfo/trunk/src/main/java/ userinfo/trunk/src/main/java/jp/ userinfo/trunk/src/main/java/jp/sf/ userinfo/trunk/src/main/java/jp/sf/pal/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonConstants.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/creator/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/creator/PagerCreator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/dxo/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/dxo/PagerDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/form/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/form/PagingResultForm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/pager/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/pager/DefaultPager.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/ConfigUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/DateUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/PagingResultBeanWrapper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/SAStrutsUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/AccessContext.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BFinder.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BehaviorSelector.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheAbstractSelector.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheBehaviorSelector.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheDaoSelector.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CallbackContext.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DBFluteConfig.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoReadable.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoSelector.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoWritable.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/Entity.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/EntityDefinedCommonColumn.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/GenMetaData.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/InternalMapContext.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/QLog.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/XLog.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/annotation/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/annotation/OutsideSql.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorReadable.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorWritable.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorReadable.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorWritable.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputResult.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionFailure.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionResult.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/load/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/load/LoadReferrerOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ConditionBeanSetupper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/EntityListSetupper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelBox.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelSetupper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionQuery.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBeanContext.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionQuery.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBeanContext.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ListResultBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/MapParameterBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/OrderByBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingInvoker.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingResultBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ResultBeanBuilder.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SelectResource.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimpleOrderByBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimplePagingBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SubQuery.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/UnionQuery.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKey.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyEqual.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyInScope.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNull.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessThan.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/ConditionOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/DateFromToOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/FromToOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/InScopeOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/LikeSearchOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/SimpleStringOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/SplitOptionParts.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/local/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/cvalue/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/cvalue/ConditionValue.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowResource.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowSetupper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/mapping/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/mapping/EntityDtoMapper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlContext.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/ProcedurePmb.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLink.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeBean.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/AbstractSqlClause.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByClause.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByElement.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClause.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDb2.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDefault.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDerby.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseH2.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseMySql.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseOracle.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/AbstractDBMeta.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMeta.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ColumnInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ForeignInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ReferrerInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/RelationInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/UniqueInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableParameterNullValueException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/DangerousResultSizeException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueParameterNullValueException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EndCommentNotFoundException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyDeletedException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyExistsException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyUpdatedException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityDuplicatedException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentConditionNotFoundException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentNotBooleanResultException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentWrongExpressionException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/OutsideSqlNotFoundException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasOverlappedException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RequiredOptionNotFoundException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/SQLFailureException.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListString.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListStringImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilder.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilderImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/GeneralCharacter.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/JapaneseCharacter.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/GeneralCharacterImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrder.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/impl/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameResult.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/impl/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingCallback.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingHeaderInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingRowResource.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingSimpleFacade.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileToken.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingCallback.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingRowResource.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileTokenImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineMakingOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineToken.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineTokenizingOption.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/impl/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/impl/LineTokenImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/CursorHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/LatestSqlProvider.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/SqlLogHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/StatementConfig.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoInterceptor.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoLatestSqlProvider.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataExtension.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/util/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/valuetype/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRowCreator.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleAssertUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleStringUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleSystemUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/TraceViewUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/ValueLabelUtil.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupInfoDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleInfoDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsUserInfoDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/UserInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/UserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupInfoNss.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleInfoNss.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/UserInfoNss.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/UserInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupInfoDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleInfoDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/UserInfoDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/GroupInfoDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/RoleInfoDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/GroupInfoForm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/RoleInfoForm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/GroupInfoPager.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/RoleInfoPager.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/UserInfoPager.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java userinfo/trunk/src/main/resources/ userinfo/trunk/src/main/resources/app.dicon userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/resources/convention.dicon userinfo/trunk/src/main/resources/creator.dicon userinfo/trunk/src/main/resources/customizer.dicon userinfo/trunk/src/main/resources/dbflute.dicon userinfo/trunk/src/main/resources/env.txt userinfo/trunk/src/main/resources/env_ut.txt userinfo/trunk/src/main/resources/jdbc.dicon userinfo/trunk/src/main/resources/s2container.dicon userinfo/trunk/src/main/webapp/ userinfo/trunk/src/main/webapp/WEB-INF/ userinfo/trunk/src/main/webapp/WEB-INF/db/ userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db userinfo/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml userinfo/trunk/src/main/webapp/WEB-INF/struts-config.xml userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml userinfo/trunk/src/main/webapp/WEB-INF/validator-rules.xml userinfo/trunk/src/main/webapp/WEB-INF/view/ userinfo/trunk/src/main/webapp/WEB-INF/view/common/ userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/config/ userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/web.xml -------------- next part -------------- Added: userinfo/trunk/.classpath =================================================================== --- userinfo/trunk/.classpath (rev 0) +++ userinfo/trunk/.classpath 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: userinfo/trunk/.classpath ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/.project =================================================================== --- userinfo/trunk/.project (rev 0) +++ userinfo/trunk/.project 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ + + userinfo + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.jdt.core.javanature + org.seasar.dolteng.eclipse.nature + + \ No newline at end of file Property changes on: userinfo/trunk/.project ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/.settings/org.eclipse.jdt.core.prefs =================================================================== --- userinfo/trunk/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ userinfo/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,261 @@ +#Mon Sep 15 07:23:10 JST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true Added: userinfo/trunk/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- userinfo/trunk/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ userinfo/trunk/.settings/org.eclipse.jdt.ui.prefs 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,5 @@ +#Mon Sep 15 07:23:26 JST 2008 +eclipse.preferences.version=1 +formatter_profile=_Seasar +formatter_settings_version=11 +org.eclipse.jdt.ui.text.custom_code_templates= Added: userinfo/trunk/.settings/org.seasar.sastrutsplugin.prefs =================================================================== --- userinfo/trunk/.settings/org.seasar.sastrutsplugin.prefs (rev 0) +++ userinfo/trunk/.settings/org.seasar.sastrutsplugin.prefs 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,3 @@ +#Tue Sep 16 06:52:57 JST 2008 +WebContentsRoot=/src/main/webapp +eclipse.preferences.version=1 Added: userinfo/trunk/dbflute/_project.bat =================================================================== --- userinfo/trunk/dbflute/_project.bat (rev 0) +++ userinfo/trunk/dbflute/_project.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,5 @@ + ¡÷ echo off + +set MY_PROJECT_NAME=userinfo + +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Property changes on: userinfo/trunk/dbflute/_project.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/_project.sh =================================================================== --- userinfo/trunk/dbflute/_project.sh (rev 0) +++ userinfo/trunk/dbflute/_project.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,5 @@ +#!/bin/sh + +export MY_PROJECT_NAME=userinfo + +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Property changes on: userinfo/trunk/dbflute/_project.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/dbflute/build-userinfo.properties =================================================================== --- userinfo/trunk/dbflute/build-userinfo.properties (rev 0) +++ userinfo/trunk/dbflute/build-userinfo.properties 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,161 @@ +# ======================================================================================= +# for All +# ======= + +# ------------------------------------------------------------------- +# P R O J E C T +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.project = userinfo + +# ------------------------------------------------------------------- +# T A R G E T D A T A B A S E +# ------------------------------------------------------------------- +# This is the target database, only considered when generating +# the SQL for your Torque project. Your possible choices are: +# +# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql, +# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2 +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.database = h2 + +# ------------------------------------------------------------------- +# T A R G E T L A N G U A G E +# ------------------------------------------------------------------- +# (Default 'java') +# The target language. Your possible choices are: +# java, csharp +# ------------------------------------------------------------------- +# @FirstProperty +#torque.targetLanguage = java + + + +# ======================================================================================= +# for OM task +# =========== + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Basic +# _/_/_/_/ +# /--------------------------------------------------------------------------- +# [Output Directory] +# java.dir: (Default '../src/main/java') +# The base output directory. +# +# If this value is '../src/main/java' and your project stype is under maven, +# you don't need to set up this property! +# +# {project} +# | +# |-dbflute_ldb +# | |-build-ldb.properties +# | |-... +# | +# |-src/main/java // *Here! +# |-src/main/resources +# |-... +# +# +# @FirstProperty +#torque.java.dir = ../src/main/java +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Package +# _/_/ +# /--------------------------------------------------------------------------- +# [EntityDao Package] +# packageBase: (Default '') +# The base directory of package. +# +# *If this property is specified and other package properties is not specified, +# Then The packages of generated class are as follows: +# +# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb +# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon +# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv +# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao +# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity +# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean +# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv +# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao +# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity +# +# *If this property is not specified, you should specify the other package properties. +# +# +# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon') +# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv') +# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao') +# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity') +# conditionBeanPackage: (Default Java:'cbean' C#:'cbean') +# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv') +# extendedDaoPackage: (Default Java:'exdao' C#:'exdao') +# extendedEntityPackage: (Default Java:'exentity' C#:'exentity') +# +# @FirstProperty +torque.packageBase = jp.sf.pal.userinfo.db +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# S2Dao Adjustment +# _/_/_/_/_/_/ +# /--------------------------------------------------------------------------- +# [S2Dao Version] +# s2daoVersion: (Default [The latest version]) +# +# @JavaOnly +torque.s2daoVersion = 1.0.48 +# ----------------/ + + + +# ======================================================================================= +# for JDBC task +# ============= + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# [Database Informaition] +# +# * * * * * * * * * * * * * * * * * * * * * * * * * +# You shuold use './dfprop/databaseInfoMap.dfprop' +# Look the file! +# * * * * * * * * * * * * * * * * * * * * * * * * * +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Adavance +# _/_/ + +# /--------------------------------------------------------------------------- +# [Sequence] +# sequenceDefinitionMap: (Default 'map:{}') +# The method 'XxxDao#selectNextVal()' is generated for its table primary key. +# +# ex) public String selectNextVal_SQL = "select gen_id(BOOK_BOOK_ID_INC, 1) from RDB$DATABASE"; +# public java.math.BigDecimal selectNextVal(); +# // This example is for the database of Firebird +# +# sequenceReturnType: (Default 'java.math.BigDecimal') +# The return type of The method 'XxxDao#selectNextVal()'. +# + +# +# *Apache Derby does not support Sequence-Object. +# But I want to test this property. +# +#torque.sequenceDefinitionMap = map:{ \ +# prodcts = PRODUCTS_PRODUCTS_ID_INC \ +# } + +#torque.sequenceReturnType = java.lang.Integer +# [Additional ForeignKey] +torque.additionalForeignKeyMap = map:{ \ +} + +#torque.isDeleteOldTableClass = true + Property changes on: userinfo/trunk/dbflute/build-userinfo.properties ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/dfprop/databaseInfoMap.dfprop =================================================================== --- userinfo/trunk/dbflute/dfprop/databaseInfoMap.dfprop (rev 0) +++ userinfo/trunk/dbflute/dfprop/databaseInfoMap.dfprop 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,18 @@ +# /--------------------------------------------------------------------------- +# [Database Information] +# databaseInfoMap: +# driver -- The class name of JDBC-Driver. +# url -- The url for connecting database. +# schema -- The schema name. +# user -- The database user name. +# password -- The database password. +# +# @FirstProperty +map:{ + ; driver = org.h2.Driver + ; url = jdbc:h2:file:../src/main/webapp/WEB-INF/db/userinfo + ; schema = + ; user = sa + ; password = +} +# ----------------/ Added: userinfo/trunk/dbflute/doc.bat =================================================================== --- userinfo/trunk/dbflute/doc.bat (rev 0) +++ userinfo/trunk/dbflute/doc.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: userinfo/trunk/dbflute/doc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/doc.sh =================================================================== --- userinfo/trunk/dbflute/doc.sh (rev 0) +++ userinfo/trunk/dbflute/doc.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Document}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH + Property changes on: userinfo/trunk/dbflute/doc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/dbflute/generate.bat =================================================================== --- userinfo/trunk/dbflute/generate.bat (rev 0) +++ userinfo/trunk/dbflute/generate.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Generate}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: userinfo/trunk/dbflute/generate.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/generate.sh =================================================================== --- userinfo/trunk/dbflute/generate.sh (rev 0) +++ userinfo/trunk/dbflute/generate.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,16 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Generate}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH + + + Property changes on: userinfo/trunk/dbflute/generate.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/dbflute/jdbc.bat =================================================================== --- userinfo/trunk/dbflute/jdbc.bat (rev 0) +++ userinfo/trunk/dbflute/jdbc.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {JDBC and Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: userinfo/trunk/dbflute/jdbc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/jdbc.sh =================================================================== --- userinfo/trunk/dbflute/jdbc.sh (rev 0) +++ userinfo/trunk/dbflute/jdbc.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties" + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {JDBC and Document}." +echo "nnnnnnnnnn/" +sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH} + + Property changes on: userinfo/trunk/dbflute/jdbc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/dbflute/log/readme.txt =================================================================== --- userinfo/trunk/dbflute/log/readme.txt (rev 0) +++ userinfo/trunk/dbflute/log/readme.txt 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1 @@ +Directory for LogFile Property changes on: userinfo/trunk/dbflute/log/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/output/doc/readme.txt =================================================================== --- userinfo/trunk/dbflute/output/doc/readme.txt (rev 0) +++ userinfo/trunk/dbflute/output/doc/readme.txt 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1 @@ +Directory for Document Property changes on: userinfo/trunk/dbflute/output/doc/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/outside-sql-test.bat =================================================================== --- userinfo/trunk/dbflute/outside-sql-test.bat (rev 0) +++ userinfo/trunk/dbflute/outside-sql-test.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Outsite-Sql-Test}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: userinfo/trunk/dbflute/outside-sql-test.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/outside-sql-test.sh =================================================================== --- userinfo/trunk/dbflute/outside-sql-test.sh (rev 0) +++ userinfo/trunk/dbflute/outside-sql-test.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Outsite-Sql-Test}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH + + Property changes on: userinfo/trunk/dbflute/outside-sql-test.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/dbflute/playsql/replace-schema.sql =================================================================== --- userinfo/trunk/dbflute/playsql/replace-schema.sql (rev 0) +++ userinfo/trunk/dbflute/playsql/replace-schema.sql 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,418 @@ +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST +; + +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP +; + +ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP +; + +ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE +; + +ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID +; + + +DROP TABLE AUTHOR +; +DROP TABLE BLACK_ACTION +; +DROP TABLE BLACK_ACTION_LOOKUP +; +DROP TABLE BLACK_LIST +; +DROP TABLE BOOK +; +DROP TABLE COLLECTION +; +DROP TABLE COLLECTION_STATUS +; +DROP TABLE COLLECTION_STATUS_LOOKUP +; +DROP TABLE GARBAGE +; +DROP TABLE GENRE +; +DROP TABLE LB_USER +; +DROP TABLE LENDING +; +DROP TABLE LENDING_COLLECTION +; +DROP TABLE LIBRARY +; +DROP TABLE NEXT_LIBRARY +; +DROP TABLE PUBLISHER +; + +CREATE TABLE AUTHOR ( + AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + AUTHOR_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION ( + BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + BLACK_LIST_ID integer NOT NULL, + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_LEVEL smallint NOT NULL, + EVIDENCE_PHOTOGRAPH blob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION_LOOKUP ( + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_ACTION_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_LIST ( + BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_ID integer NOT NULL, + BLACK_RANK char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BOOK ( + BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + ISBN_NO varchar(20) NOT NULL, + BOOK_NAME varchar(80) NOT NULL, + AUTHOR_ID integer NOT NULL, + PUBLISHER_ID integer NOT NULL, + MAX_LENDING_DATE_COUNT smallint NOT NULL, + GENRE_CODE varchar(12), + OPENING_PART clob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION ( + COLLECTION_ID integer NOT NULL, + LIBRARY_ID smallint NOT NULL, + BOOK_ID integer NOT NULL, + ARRIVAL_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS ( + COLLECTION_ID integer NOT NULL, + COLLECTION_STATUS_CODE char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS_LOOKUP ( + COLLECTION_STATUS_CODE char(3) NOT NULL, + COLLECTION_STATUS_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE GARBAGE ( + GARBAGE_MEMO varchar(50), + GARBAGE_TIME timestamp +) +; + +CREATE TABLE GENRE ( + GENRE_CODE varchar(12) NOT NULL, + GENRE_NAME varchar(80) NOT NULL, + PARENT_GENRE_CODE varchar(12), + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LB_USER ( + LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_NAME varchar(80) NOT NULL, + LIBRARY_ID smallint NOT NULL, + USER_PASSWORD varchar(50) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING ( + LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_ID smallint NOT NULL, + LB_USER_ID integer NOT NULL, + LENDING_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING_COLLECTION ( + LENDING_ID integer NOT NULL, + COLLECTION_ID integer NOT NULL, + RETURN_LIMIT_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LIBRARY ( + LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE NEXT_LIBRARY ( + LIBRARY_ID smallint NOT NULL, + NEXT_LIBRARY_ID smallint NOT NULL, + DISTANCE_KM integer NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE PUBLISHER ( + PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + PUBLISHER_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + + +ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR + PRIMARY KEY (AUTHOR_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION + PRIMARY KEY (BLACK_ACTION_ID) +; + +ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP + PRIMARY KEY (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST + PRIMARY KEY (BLACK_LIST_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK + PRIMARY KEY (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP + PRIMARY KEY (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE + PRIMARY KEY (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER + PRIMARY KEY (LB_USER_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING + PRIMARY KEY (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION + PRIMARY KEY (LENDING_ID, COLLECTION_ID) +; + +ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY + PRIMARY KEY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY + PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID) +; + +ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER + PRIMARY KEY (PUBLISHER_ID) +; + + +ALTER TABLE BOOK + ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO) +; + +ALTER TABLE COLLECTION + ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID) +; + +ALTER TABLE LENDING + ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID) +; + +ALTER TABLE BLACK_LIST + ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID) +; + +ALTER TABLE LIBRARY + ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME) +; + + + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST + FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP + FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR + FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER + FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE + FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK + FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP + FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE + FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING + FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID + FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; Added: userinfo/trunk/dbflute/replace-schema.bat =================================================================== --- userinfo/trunk/dbflute/replace-schema.bat (rev 0) +++ userinfo/trunk/dbflute/replace-schema.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Replace-Schema}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: userinfo/trunk/dbflute/replace-schema.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/replace-schema.sh =================================================================== --- userinfo/trunk/dbflute/replace-schema.sh (rev 0) +++ userinfo/trunk/dbflute/replace-schema.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Replace-Schema}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH + + Property changes on: userinfo/trunk/dbflute/replace-schema.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/dbflute/schema/readme.txt =================================================================== --- userinfo/trunk/dbflute/schema/readme.txt (rev 0) +++ userinfo/trunk/dbflute/schema/readme.txt 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1 @@ +Directory for SchemaFile Property changes on: userinfo/trunk/dbflute/schema/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/sql2entity.bat =================================================================== --- userinfo/trunk/dbflute/sql2entity.bat (rev 0) +++ userinfo/trunk/dbflute/sql2entity.bat 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Invoke Sql Directory}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: userinfo/trunk/dbflute/sql2entity.bat ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/dbflute/sql2entity.sh =================================================================== --- userinfo/trunk/dbflute/sql2entity.sh (rev 0) +++ userinfo/trunk/dbflute/sql2entity.sh 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Invoke Sql Directory}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH + + Property changes on: userinfo/trunk/dbflute/sql2entity.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: userinfo/trunk/pom.xml =================================================================== --- userinfo/trunk/pom.xml (rev 0) +++ userinfo/trunk/pom.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,302 @@ + + + 4.0.0 + jp.sf.pal + userinfo + 1.0-SNAPSHOT + war + UserInfo + + + userinfo + validate + + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-surefire-plugin + 2.3 + + + maven-deploy-plugin + + true + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.0-SNAPSHOT + + + + clean + + + + + + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + mvnrepository.com + Maven2 Repository on mvnrepository.com + http://mvnrepository.com/artifact/ + + + maven.marevol.com + Maven2 Repository on marevol.com + http://maven2.marevol.com/ + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + portlet-api + portlet-api + 1.0 + provided + + + org.apache.portals.bridges + portals-bridges-portletfilter + 1.0.4 + + + logkit + logkit + + + avalon-framework + avalon-framework + + + javax.servlet + servlet-api + + + log4j + log4j + + + + + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + + jstl + jstl + 1.1.2 + + + taglibs + standard + 1.1.2 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 1.3 + + + commons-lang + commons-lang + 2.3 + + + commons-validator + commons-validator + 1.2.0 + + + commons-logging + commons-logging + 1.0.4 + + + log4j + log4j + 1.2.13 + jar + + + + org.apache.portals.jetspeed-2 + jetspeed-api + 2.1.3 + provided + + + junit + junit + + + + + javax.servlet + servlet-api + 2.3 + provided + + + + org.seasar.container + s2-extension + 2.4.29 + + + log4j + log4j + + + junit + junit + + + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.easymock + easymock + + + junit + junit + + + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + org.easymock + easymock + + + commons-logging + commons-logging + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.1.1 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + junit + junit + + + + + + org.seasar.dao + s2-dao + 1.0.48 + + + org.seasar.dao + s2-dao-tiger + 1.0.48 + + + com.h2database + h2 + 1.0.79 + + + + Property changes on: userinfo/trunk/pom.xml ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/config/erd/userinfo.erd =================================================================== --- userinfo/trunk/src/main/config/erd/userinfo.erd (rev 0) +++ userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,660 @@ + + + + + + + user_info + User Information + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 157 + 40 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 40 + 484 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 308 + 484 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + + hsqldb + false + /home/taro/.m2/repository/com/h2database/h2/1.0.79/h2-1.0.79.jar + org.h2.Driver + jdbc:h2:tcp://localhost:9092/userinfo + sa + + + + false + + + + 2 + + + + + + \ No newline at end of file Added: userinfo/trunk/src/main/config/sql/userinfo.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/userinfo.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,68 @@ +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; + +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,333 @@ +package jp.sf.pal.userinfo.action; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.userinfo.common.CommonConstants; +import jp.sf.pal.userinfo.common.dxo.PagerDxo; +import jp.sf.pal.userinfo.common.util.ConfigUtil; +import jp.sf.pal.userinfo.common.util.SAStrutsUtil; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.dxo.GroupInfoDxo; +import jp.sf.pal.userinfo.form.GroupInfoForm; +import jp.sf.pal.userinfo.pager.GroupInfoPager; +import jp.sf.pal.userinfo.service.GroupInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class GroupInfoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(GroupInfoAction.class); + + // for list + + public List groupInfoItems; + + // for edit/confirm/delete + + @ActionForm + private GroupInfoForm groupInfoForm; + + private GroupInfoService groupInfoService; + + private GroupInfoPager groupInfoPager; + + private PagerDxo pagerDxo; + + private GroupInfoDxo groupInfoDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + groupInfoItems = groupInfoService.getGroupInfoList(groupInfoPager); + + // restore from pager + // groupInfoForm.groupInfoname = groupInfoPager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(groupInfoForm, groupInfoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // groupInfoPager.setGroupInfoname(groupInfoForm.groupInfoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + groupInfoPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{groupId}") + public String confirmpage() { + if (groupInfoForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + groupInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadGroupInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + groupInfoForm.initialize(); + groupInfoForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{groupId}") + public String editpage() { + if (groupInfoForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + groupInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadGroupInfo(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + groupInfoForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadGroupInfo(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{groupId}") + public String deletepage() { + if (groupInfoForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + groupInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadGroupInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + groupInfoForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadGroupInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + GroupInfo groupInfo = createGroupInfo(); + groupInfoService.store(groupInfo); + SAStrutsUtil.addMessage(request, "success.create_groupInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_groupInfo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + GroupInfo groupInfo = createGroupInfo(); + groupInfoService.store(groupInfo); + SAStrutsUtil.addMessage(request, "success.update_groupInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_groupInfo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + groupInfoService.disable(groupInfoForm.groupId, request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_groupInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_groupInfo"); + } + } + + private void loadGroupInfo() { + + GroupInfo groupInfo = groupInfoService + .getGroupInfo(groupInfoForm.groupId); + if (groupInfo == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_groupInfo", + new Object[] { groupInfoForm.groupId }); + } + groupInfoDxo.convertFromGroupInfoToForm(groupInfo, groupInfoForm); + + } + + private GroupInfo createGroupInfo() { + GroupInfo groupInfo; + if (groupInfoForm.mode == CommonConstants.EDIT_MODE) { + groupInfo = groupInfoService.getGroupInfo(groupInfoForm.groupId); + groupInfo.setUpdatedBy(request.getRemoteUser()); + } else { + groupInfo = new GroupInfo(); + String remoteGroupInfo = request.getRemoteUser(); + groupInfo.setUpdatedBy(remoteGroupInfo); + groupInfo.setCreatedBy(remoteGroupInfo); + } + groupInfoDxo.convertFromFormToGroupInfo(groupInfoForm, groupInfo); + + return groupInfo; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public GroupInfoForm getGroupInfoForm() { + return groupInfoForm; + } + + public void setGroupInfoForm(GroupInfoForm groupInfoForm) { + this.groupInfoForm = groupInfoForm; + } + + public GroupInfoService getGroupInfoService() { + return groupInfoService; + } + + public void setGroupInfoService(GroupInfoService groupInfoService) { + this.groupInfoService = groupInfoService; + } + + public GroupInfoPager getGroupInfoPager() { + return groupInfoPager; + } + + public void setGroupInfoPager(GroupInfoPager groupInfoPager) { + this.groupInfoPager = groupInfoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public GroupInfoDxo getGroupInfoDxo() { + return groupInfoDxo; + } + + public void setGroupInfoDxo(GroupInfoDxo groupInfoDxo) { + this.groupInfoDxo = groupInfoDxo; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,331 @@ +package jp.sf.pal.userinfo.action; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.userinfo.common.CommonConstants; +import jp.sf.pal.userinfo.common.dxo.PagerDxo; +import jp.sf.pal.userinfo.common.util.ConfigUtil; +import jp.sf.pal.userinfo.common.util.SAStrutsUtil; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.dxo.RoleInfoDxo; +import jp.sf.pal.userinfo.form.RoleInfoForm; +import jp.sf.pal.userinfo.pager.RoleInfoPager; +import jp.sf.pal.userinfo.service.RoleInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RoleInfoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(RoleInfoAction.class); + + // for list + + public List roleInfoItems; + + // for edit/confirm/delete + + @ActionForm + private RoleInfoForm roleInfoForm; + + private RoleInfoService roleInfoService; + + private RoleInfoPager roleInfoPager; + + private PagerDxo pagerDxo; + + private RoleInfoDxo roleInfoDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + roleInfoItems = roleInfoService.getRoleInfoList(roleInfoPager); + + // restore from pager + // roleInfoForm.roleInfoname = roleInfoPager.getRoleInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(roleInfoForm, roleInfoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // roleInfoPager.setRoleInfoname(roleInfoForm.roleInfoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + roleInfoPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{roleId}") + public String confirmpage() { + if (roleInfoForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + roleInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoleInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + roleInfoForm.initialize(); + roleInfoForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{roleId}") + public String editpage() { + if (roleInfoForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, roleInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoleInfo(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + roleInfoForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoleInfo(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{roleId}") + public String deletepage() { + if (roleInfoForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + roleInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoleInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + roleInfoForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoleInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + RoleInfo roleInfo = createRoleInfo(); + roleInfoService.store(roleInfo); + SAStrutsUtil.addMessage(request, "success.create_roleInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_roleInfo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + RoleInfo roleInfo = createRoleInfo(); + roleInfoService.store(roleInfo); + SAStrutsUtil.addMessage(request, "success.update_roleInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_roleInfo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + roleInfoService.disable(roleInfoForm.roleId, request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_roleInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_roleInfo"); + } + } + + private void loadRoleInfo() { + + RoleInfo roleInfo = roleInfoService.getRoleInfo(roleInfoForm.roleId); + if (roleInfo == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_roleInfo", + new Object[] { roleInfoForm.roleId }); + } + roleInfoDxo.convertFromRoleInfoToForm(roleInfo, roleInfoForm); + + } + + private RoleInfo createRoleInfo() { + RoleInfo roleInfo; + if (roleInfoForm.mode == CommonConstants.EDIT_MODE) { + roleInfo = roleInfoService.getRoleInfo(roleInfoForm.roleId); + roleInfo.setUpdatedBy(request.getRemoteUser()); + } else { + roleInfo = new RoleInfo(); + String remoteRoleInfo = request.getRemoteUser(); + roleInfo.setUpdatedBy(remoteRoleInfo); + roleInfo.setCreatedBy(remoteRoleInfo); + } + roleInfoDxo.convertFromFormToRoleInfo(roleInfoForm, roleInfo); + + return roleInfo; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RoleInfoForm getRoleInfoForm() { + return roleInfoForm; + } + + public void setRoleInfoForm(RoleInfoForm roleInfoForm) { + this.roleInfoForm = roleInfoForm; + } + + public RoleInfoService getRoleInfoService() { + return roleInfoService; + } + + public void setRoleInfoService(RoleInfoService roleInfoService) { + this.roleInfoService = roleInfoService; + } + + public RoleInfoPager getRoleInfoPager() { + return roleInfoPager; + } + + public void setRoleInfoPager(RoleInfoPager roleInfoPager) { + this.roleInfoPager = roleInfoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RoleInfoDxo getRoleInfoDxo() { + return roleInfoDxo; + } + + public void setRoleInfoDxo(RoleInfoDxo roleInfoDxo) { + this.roleInfoDxo = roleInfoDxo; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,331 @@ +package jp.sf.pal.userinfo.action; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.userinfo.common.CommonConstants; +import jp.sf.pal.userinfo.common.dxo.PagerDxo; +import jp.sf.pal.userinfo.common.util.ConfigUtil; +import jp.sf.pal.userinfo.common.util.SAStrutsUtil; +import jp.sf.pal.userinfo.db.exentity.UserInfo; +import jp.sf.pal.userinfo.dxo.UserInfoDxo; +import jp.sf.pal.userinfo.form.UserInfoForm; +import jp.sf.pal.userinfo.pager.UserInfoPager; +import jp.sf.pal.userinfo.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class UserInfoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(UserInfoAction.class); + + // for list + + public List userInfoItems; + + // for edit/confirm/delete + + @ActionForm + private UserInfoForm userInfoForm; + + private UserInfoService userInfoService; + + private UserInfoPager userInfoPager; + + private PagerDxo pagerDxo; + + private UserInfoDxo userInfoDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + userInfoItems = userInfoService.getUserInfoList(userInfoPager); + + // restore from pager + // userInfoForm.userInfoname = userInfoPager.getUserInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(userInfoForm, userInfoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // userInfoPager.setUserInfoname(userInfoForm.userInfoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + userInfoPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{userId}") + public String confirmpage() { + if (userInfoForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + userInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadUserInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + userInfoForm.initialize(); + userInfoForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{userId}") + public String editpage() { + if (userInfoForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, userInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadUserInfo(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + userInfoForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadUserInfo(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{userId}") + public String deletepage() { + if (userInfoForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + userInfoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadUserInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + userInfoForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadUserInfo(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + UserInfo userInfo = createUserInfo(); + userInfoService.store(userInfo); + SAStrutsUtil.addMessage(request, "success.create_userInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_userInfo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + UserInfo userInfo = createUserInfo(); + userInfoService.store(userInfo); + SAStrutsUtil.addMessage(request, "success.update_userInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_userInfo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + userInfoService.disable(userInfoForm.userId, request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_userInfo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_userInfo"); + } + } + + private void loadUserInfo() { + + UserInfo userInfo = userInfoService.getUserInfo(userInfoForm.userId); + if (userInfo == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_userInfo", + new Object[] { userInfoForm.userId }); + } + userInfoDxo.convertFromUserInfoToForm(userInfo, userInfoForm); + + } + + private UserInfo createUserInfo() { + UserInfo userInfo; + if (userInfoForm.mode == CommonConstants.EDIT_MODE) { + userInfo = userInfoService.getUserInfo(userInfoForm.userId); + userInfo.setUpdatedBy(request.getRemoteUser()); + } else { + userInfo = new UserInfo(); + String remoteUserInfo = request.getRemoteUser(); + userInfo.setUpdatedBy(remoteUserInfo); + userInfo.setCreatedBy(remoteUserInfo); + } + userInfoDxo.convertFromFormToUserInfo(userInfoForm, userInfo); + + return userInfo; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public UserInfoForm getUserInfoForm() { + return userInfoForm; + } + + public void setUserInfoForm(UserInfoForm userInfoForm) { + this.userInfoForm = userInfoForm; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public UserInfoPager getUserInfoPager() { + return userInfoPager; + } + + public void setUserInfoPager(UserInfoPager userInfoPager) { + this.userInfoPager = userInfoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public UserInfoDxo getUserInfoDxo() { + return userInfoDxo; + } + + public void setUserInfoDxo(UserInfoDxo userInfoDxo) { + this.userInfoDxo = userInfoDxo; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonConstants.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonConstants.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonConstants.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.common; + +public class CommonConstants { + public static final int LIST_MODE = 0; + + public static final int CREATE_MODE = 1; + + public static final int EDIT_MODE = 2; + + public static final int DELETE_MODE = 3; + + public static final int CONFIRM_MODE = 4; + + public static final String TIMESTAMP_PATTERN = "yyyy/MM/dd HH:mm:ss"; + + public static final String TRUE = "T"; + + public static final String FALSE = "F"; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.userinfo.common; + +/** + * @author shinsuke + */ +public class CommonException extends Exception { + + /** + * Serial Version UID + */ + private static final long serialVersionUID = 4564000116499132363L; + + private String messageId; + + private Object[] args; + + /** + * @return Returns the messageId. + */ + public String getMessageId() { + return messageId; + } + + /** + * @param messageId The messageId to set. + */ + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * @return Returns the args. + */ + public Object[] getArgs() { + return args; + } + + /** + * @param args The args to set. + */ + public void setArgs(Object[] args) { + this.args = args; + } + + public CommonException(String messageId) { + super(messageId); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args) { + super(messageId); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message, Throwable cause) { + super(message, cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message, + Throwable cause) { + super(message, cause); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message) { + super(message); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message) { + super(message); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, Throwable cause) { + super(cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, Throwable cause) { + super(cause); + this.messageId = messageId; + this.args = args; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/CommonException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/creator/PagerCreator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/creator/PagerCreator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/creator/PagerCreator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,29 @@ +package jp.sf.pal.userinfo.common.creator; + +import org.seasar.framework.container.ComponentCustomizer; +import org.seasar.framework.container.assembler.AutoBindingDefFactory; +import org.seasar.framework.container.creator.ComponentCreatorImpl; +import org.seasar.framework.container.deployer.InstanceDefFactory; +import org.seasar.framework.convention.NamingConvention; + +/** + * @author shinsuke + */ +public class PagerCreator extends ComponentCreatorImpl { + public static final String SUFFIX = "Pager"; + + public PagerCreator(NamingConvention namingConvention) { + super(namingConvention); + setNameSuffix(SUFFIX); + setInstanceDef(InstanceDefFactory.SESSION); + setAutoBindingDef(AutoBindingDefFactory.NONE); + } + + public ComponentCustomizer getPagerCustomizer() { + return getCustomizer(); + } + + public void setPagerCustomizer(ComponentCustomizer customizer) { + setCustomizer(customizer); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/creator/PagerCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/dxo/PagerDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/dxo/PagerDxo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/dxo/PagerDxo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,24 @@ +package jp.sf.pal.userinfo.common.dxo; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.common.form.PagingResultForm; +import jp.sf.pal.userinfo.common.pager.DefaultPager; +import jp.sf.pal.userinfo.common.util.PagingResultBeanWrapper; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface PagerDxo extends Serializable { + + @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" + + ",currentPageNumber : currentPageNumber" + + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" + + ",existNextPage : existNextPage") + public void convert(PagingResultBeanWrapper result, DefaultPager pager); + + @ExcludeNull + @ConversionRule(// "pageSize : pageSize, " + + "currentPageNumber : pageNumber") + public void convert(PagingResultForm page, DefaultPager pager); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/dxo/PagerDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/form/PagingResultForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/form/PagingResultForm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/form/PagingResultForm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,5 @@ +package jp.sf.pal.userinfo.common.form; + +public interface PagingResultForm { + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/form/PagingResultForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/pager/DefaultPager.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/pager/DefaultPager.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/pager/DefaultPager.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,101 @@ +package jp.sf.pal.userinfo.common.pager; + +import java.io.Serializable; +import java.util.List; + +public abstract class DefaultPager implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DEFAULT_PAGE_SIZE = 50; + + public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; + + private int allRecordCount; + + private int allPageCount; + + private boolean existPrePage; + + private boolean existNextPage; + + private List pageNumberList; + + private int pageSize; + + private int currentPageNumber; + + public void clear() { + pageSize = getDefaultPageSize(); + currentPageNumber = getDefaultCurrentPageNumber(); + } + + protected int getDefaultPageSize() { + return DEFAULT_PAGE_SIZE; + } + + protected int getDefaultCurrentPageNumber() { + return DEFAULT_CURRENT_PAGE_NUMBER; + } + + public int getAllRecordCount() { + return allRecordCount; + } + + public void setAllRecordCount(int allRecordCount) { + this.allRecordCount = allRecordCount; + } + + public int getAllPageCount() { + return allPageCount; + } + + public void setAllPageCount(int allPageCount) { + this.allPageCount = allPageCount; + } + + public boolean isExistPrePage() { + return existPrePage; + } + + public void setExistPrePage(boolean existPrePage) { + this.existPrePage = existPrePage; + } + + public boolean isExistNextPage() { + return existNextPage; + } + + public void setExistNextPage(boolean existNextPage) { + this.existNextPage = existNextPage; + } + + public int getPageSize() { + if (pageSize <= 0) { + pageSize = getDefaultPageSize(); + } + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNumber() { + if (currentPageNumber <= 0) { + currentPageNumber = getDefaultCurrentPageNumber(); + } + return currentPageNumber; + } + + public void setCurrentPageNumber(int currentPageNumber) { + this.currentPageNumber = currentPageNumber; + } + + public List getPageNumberList() { + return pageNumberList; + } + + public void setPageNumberList(List pageNumberList) { + this.pageNumberList = pageNumberList; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/pager/DefaultPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/ConfigUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/ConfigUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/ConfigUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,207 @@ +package jp.sf.pal.userinfo.common.util; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.XMLConfiguration; + +public class ConfigUtil { + + public static final String CONFIG_PATH = "/WEB-INF/userinfo.xml"; + + private static XMLConfiguration config; + + public static void init(HttpServletRequest request) { + if (config == null) { + synchronized (ConfigUtil.class) { + if (config == null) { + try { + config = new XMLConfiguration(SAStrutsUtil.getRealPath( + request, CONFIG_PATH)); + } catch (ConfigurationException e) { + throw new IllegalStateException( + "Could not load a config file: " + + SAStrutsUtil.getRealPath(request, + CONFIG_PATH), e); + } + } + } + } + } + + public static void save() throws ConfigurationException { + config.save(); + } + + public static void addProperty(String s, Object obj) { + config.addProperty(s, obj); + } + + public static void clear() { + config.clear(); + } + + public static void clearProperty(String s) { + config.clearProperty(s); + } + + public static boolean containsKey(String s) { + return config.containsKey(s); + } + + public static BigDecimal getBigDecimal(String s, BigDecimal bigdecimal) { + return config.getBigDecimal(s, bigdecimal); + } + + public static BigDecimal getBigDecimal(String s) { + return config.getBigDecimal(s); + } + + public static BigInteger getBigInteger(String s, BigInteger biginteger) { + return config.getBigInteger(s, biginteger); + } + + public static BigInteger getBigInteger(String s) { + return config.getBigInteger(s); + } + + public static boolean getBoolean(String s, boolean flag) { + return config.getBoolean(s, flag); + } + + public static Boolean getBoolean(String s, Boolean boolean1) { + return config.getBoolean(s, boolean1); + } + + public static boolean getBoolean(String s) { + return config.getBoolean(s); + } + + public static byte getByte(String s, byte byte0) { + return config.getByte(s, byte0); + } + + public static Byte getByte(String s, Byte byte1) { + return config.getByte(s, byte1); + } + + public static byte getByte(String s) { + return config.getByte(s); + } + + public static double getDouble(String s, double d) { + return config.getDouble(s, d); + } + + public static Double getDouble(String s, Double double1) { + return config.getDouble(s, double1); + } + + public static double getDouble(String s) { + return config.getDouble(s); + } + + public static float getFloat(String s, float f) { + return config.getFloat(s, f); + } + + public static Float getFloat(String s, Float float1) { + return config.getFloat(s, float1); + } + + public static float getFloat(String s) { + return config.getFloat(s); + } + + public static int getInt(String s, int i) { + return config.getInt(s, i); + } + + public static int getInt(String s) { + return config.getInt(s); + } + + public static Integer getInteger(String s, Integer integer) { + return config.getInteger(s, integer); + } + + public static Iterator getKeys() { + return config.getKeys(); + } + + public static Iterator getKeys(String s) { + return config.getKeys(s); + } + + public static List getList(String s, List list) { + return config.getList(s, list); + } + + public static List getList(String s) { + return config.getList(s); + } + + public static long getLong(String s, long l) { + return config.getLong(s, l); + } + + public static Long getLong(String s, Long long1) { + return config.getLong(s, long1); + } + + public static long getLong(String s) { + return config.getLong(s); + } + + public static Properties getProperties(String s) { + return config.getProperties(s); + } + + public static Object getProperty(String s) { + return config.getProperty(s); + } + + public static short getShort(String s, short word0) { + return config.getShort(s, word0); + } + + public static Short getShort(String s, Short short1) { + return config.getShort(s, short1); + } + + public static short getShort(String s) { + return config.getShort(s); + } + + public static String getString(String s, String s1) { + return config.getString(s, s1); + } + + public static String getString(String s) { + return config.getString(s); + } + + public static String[] getStringArray(String s) { + return config.getStringArray(s); + } + + public static boolean isEmpty() { + return config.isEmpty(); + } + + public static void setProperty(String s, Object obj) { + config.setProperty(s, obj); + } + + public static Configuration subset(String s) { + return config.subset(s); + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/ConfigUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/DateUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/DateUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/DateUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,251 @@ +/* + * Copyright 2004-2007 The Portal Application Laboratory Team. Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License + * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable + * law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.userinfo.common.util; + +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class DateUtil { + /** + * Logger for this class + */ + private static final Log log = LogFactory.getLog(DateUtil.class); + + /** + * Allocates a Date object and initializes it so that it represents + * midnight, local time, at the beginning of the day specified by the year, + * month, and date arguments. + * + * @param year + * @param month + * @param date + * @return + */ + public static Date get(int year, int month, int date) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int) - : year=" + year + ", month=" + + month + ", date=" + date); + } + + return get(year, month, date, 0, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the minute specified by the year, month, date, + * hrs, and min arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min); + } + + return get(year, month, date, hrs, min, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, and sec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec); + } + + return get(year, month, date, hrs, min, sec, 0); + + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, sec and millisec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @param millisec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec, int millisec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec + ", millisec=" + + millisec); + } + + Calendar cal = Calendar.getInstance(); + cal.set(year + 1900, month, date, hrs, min, sec); + cal.set(Calendar.MILLISECOND, millisec); + return cal.getTime(); + + } + + /** + * Returns a value that is the result of subtracting 1900 from the year that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getYear(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.YEAR) - 1900; + } + + /** + * Returns a number representing the month that contains or begins with the + * instant in time represented by this Date object. The value returned is + * between 0 and 11, with the value 0 representing January. + * + * @param d + * @return + */ + public static int getMonth(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MONTH); + } + + /** + * Returns the day of the month represented by this Date object. The value + * returned is between 1 and 31 representing the day of the month that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDate(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_MONTH); + } + + /** + * Returns the day of the week represented by this date. The returned value + * (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = + * Friday, 6 = Saturday) represents the day of the week that contains or + * begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDay(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + } + + /** + * Returns the hour represented by this Date object. The returned value is a + * number (0 through 23) representing the hour within the day that contains + * or begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getHours(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.HOUR_OF_DAY); + } + + /** + * Returns the number of minutes past the hour represented by this date, as + * interpreted in the local time zone. The value returned is between 0 and + * 59. + * + * @param d + * @return + */ + public static int getMinutes(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MINUTE); + } + + /** + * Returns the number of seconds past the minute represented by this date. + * The value returned is between 0 and 61. The values 60 and 61 can only + * occur on those Java Virtual Machines that take leap seconds into account. + * + * @param d + * @return + */ + public static int getSeconds(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.SECOND); + } + + public static Integer calculateAge(Date date) { + if (date == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int age = DateUtil.getYear(now) - DateUtil.getYear(date); + if (age > 0) { + if (DateUtil.getMonth(now) < DateUtil.getMonth(date)) { + if (DateUtil.getDate(now) < DateUtil.getDate(date)) { + age--; + } + } + return new Integer(age); + } + return null; + } + + public static Date calculateDate(Integer age) { + if (age == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int year = DateUtil.getYear(now) - age.intValue(); + + return DateUtil.get(year, DateUtil.getMonth(now), + DateUtil.getDate(now), 0, 0, 0, 0); + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/DateUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/PagingResultBeanWrapper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/PagingResultBeanWrapper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/PagingResultBeanWrapper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,68 @@ +package jp.sf.pal.userinfo.common.util; + +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; + +public class PagingResultBeanWrapper { + private PagingResultBean pagingResultBean; + + public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public PagingResultBean getPagingResultBean() { + return pagingResultBean; + } + + public void setPagingResultBean(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public int getAllRecordCount() { + return pagingResultBean.getAllRecordCount(); + } + + public void setAllRecordCount(int allRecordCount) { + pagingResultBean.setAllRecordCount(allRecordCount); + } + + public int getPageSize() { + return pagingResultBean.getPageSize(); + } + + public void setPageSize(int pageSize) { + pagingResultBean.setPageSize(pageSize); + } + + public int getCurrentPageNumber() { + return pagingResultBean.getCurrentPageNumber(); + } + + public void setCurrentPageNumber(int currentPageNumber) { + pagingResultBean.setCurrentPageNumber(currentPageNumber); + } + + public int getAllPageCount() { + return pagingResultBean.getAllPageCount(); + } + + public void setAllPageCount(int allPageCount) { + // nothing + } + + public boolean isExistPrePage() { + return pagingResultBean.isExistPrePage(); + } + + public void setExistPrePage(boolean existPrePage) { + // nothing + } + + public boolean isExistNextPage() { + return pagingResultBean.isExistNextPage(); + } + + public void setExistNextPage(boolean existNextPage) { + // nothing + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/PagingResultBeanWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/SAStrutsUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/SAStrutsUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/SAStrutsUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,76 @@ +package jp.sf.pal.userinfo.common.util; + +import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.seasar.struts.portlet.util.PortletUtil; +import org.seasar.struts.util.ActionMessagesUtil; + +public class SAStrutsUtil { + + public static void addMessage(HttpServletRequest request, String key) { + ActionMessages msgs = new ActionMessages(); + msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key)); + ActionMessagesUtil.saveMessages(request, msgs); + } + + public static PortletRequest getPortletRequest(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest; + } + return null; + } + + public static PortletConfig getPortletConfig(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig; + } + return null; + } + + public static PortletContext getPortletContext(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig.getPortletContext(); + } + return null; + } + + public static String getRealPath(HttpServletRequest request, String path) { + PortletContext portletContext = getPortletContext(request); + if (portletContext != null) { + return portletContext.getRealPath(path); + } + return path; + } + + public static String getRequestParameter(HttpServletRequest request, + String key) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getParameter(key); + } + return null; + } + + public static PortletSession getPortletSession(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getPortletSession(); + } + return null; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/common/util/SAStrutsUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/AccessContext.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/AccessContext.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/AccessContext.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,315 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of DB access. + * + * @author DBFlute(AutoGenerator) + */ +public class AccessContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get access-context on thread. + * + * @return The context of DB access.. (Nullable) + */ + public static AccessContext getAccessContextOnThread() { + return (AccessContext) _threadLocal.get(); + } + + /** + * Set access-context on thread. + * + * @param accessContext The context of DB access.. (NotNull) + */ + public static void setAccessContextOnThread(AccessContext accessContext) { + if (accessContext == null) { + String msg = "The argument[accessContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(accessContext); + } + + /** + * Is existing access-context on thread? + * + * @return Determination. + */ + public static boolean isExistAccessContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear access-context on thread. + */ + public static void clearAccessContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Access Information + // ================== + /** + * Get access user on thread. + *

+ * If it can't get access user from access-context, returns 'Anonymous' as + * default value! + *

+ * + * @return Access user. (NotNull) + */ + public static String getAccessUserOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessUser = userContextOnThread.getAccessUser(); + if (accessUser != null) { + return accessUser; + } + } + return "Anonymous";// as Default + } + + /** + * Get access process on thread. + *

+ * If it can't get access process from access-context, returns 'Anonymous' + * as default value! + *

+ * + * @return Access process. (NotNull) + */ + public static String getAccessProcessOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessProcess = userContextOnThread.getAccessProcess(); + if (accessProcess != null) { + return accessProcess; + } + } + return "Anonymous";// as Default + } + + /** + * Get access module on thread. + *

+ * If it can't get access module from access-context, returns 'Anonymous' as + * default value! + *

+ * + * @return Access module. (NotNull) + */ + public static String getAccessModuleOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessModule = userContextOnThread.getAccessModule(); + if (accessModule != null) { + return accessModule; + } + } + return "Anonymous";// as Default + } + + /** + * Get access date on thread. + *

+ * If it can't get access date from access-context, returns application + * current time as default value! + *

+ * + * @return Access date. (NotNull) + */ + public static java.util.Date getAccessDateOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.util.Date accessDate = userContextOnThread + .getAccessDate(); + if (accessDate != null) { + return accessDate; + } + if (userContextOnThread.getAccessDateProvider() != null) { + return userContextOnThread.getAccessDateProvider() + .getAccessDate(); + } + } + return new java.util.Date();// as Default + } + + /** + * Get access timestamp on thread. + *

+ * If it can't get access timestamp from access-context, returns application + * current time as default value! + *

+ * + * @return Access timestamp. (NotNull) + */ + public static java.sql.Timestamp getAccessTimestampOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.sql.Timestamp accessTimestamp = userContextOnThread + .getAccessTimestamp(); + if (accessTimestamp != null) { + return accessTimestamp; + } + if (userContextOnThread.getAccessTimestampProvider() != null) { + return userContextOnThread.getAccessTimestampProvider() + .getAccessTimestamp(); + } + } + return new java.sql.Timestamp(System.currentTimeMillis());// as Default + } + + /** + * Get access value on thread. + *

+ * If it can't get access value from access-context, returns null as default + * value! + *

+ * + * @param key Key. (NotNull) + * @return Access value. (Nullable) + */ + public static Object getAccessValueOnThread(String key) { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final Map accessValueMap = userContextOnThread + .getAccessValueMap(); + if (accessValueMap != null) { + return accessValueMap.get(key); + } + } + return null;// as Default + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected String accessUser; + + protected String accessProcess; + + protected String accessModule; + + protected java.util.Date accessDate; + + protected AccessDateProvider accessDateProvider; + + protected java.sql.Timestamp accessTimestamp; + + protected AccessTimestampProvider accessTimestampProvider; + + protected Map accessValueMap; + + //========================================================================== + // ========= + // Accessor + // ======== + public String getAccessUser() { + return accessUser; + } + + public void setAccessUser(String accessUser) { + this.accessUser = accessUser; + } + + public String getAccessProcess() { + return accessProcess; + } + + public void setAccessProcess(String accessProcess) { + this.accessProcess = accessProcess; + } + + public String getAccessModule() { + return accessModule; + } + + public void setAccessModule(String accessModule) { + this.accessModule = accessModule; + } + + public java.util.Date getAccessDate() { + return accessDate; + } + + public void setAccessDate(java.util.Date accessDate) { + this.accessDate = accessDate; + } + + public AccessDateProvider getAccessDateProvider() { + return accessDateProvider; + } + + public void setAccessDateProvider(AccessDateProvider accessDateProvider) { + this.accessDateProvider = accessDateProvider; + } + + public java.sql.Timestamp getAccessTimestamp() { + return accessTimestamp; + } + + public void setAccessTimestamp(java.sql.Timestamp accessTimestamp) { + this.accessTimestamp = accessTimestamp; + } + + public AccessTimestampProvider getAccessTimestampProvider() { + return accessTimestampProvider; + } + + public void setAccessTimestampProvider( + AccessTimestampProvider accessTimestampProvider) { + this.accessTimestampProvider = accessTimestampProvider; + } + + public Map getAccessValueMap() { + return accessValueMap; + } + + public void registerAccessValue(String key, Object value) { + if (accessValueMap == null) { + accessValueMap = new HashMap(); + } + accessValueMap.put(key, value); + } + + //========================================================================== + // ========= + // Provider Interface + // ================== + /** + * The provider interface of access date. + */ + public static interface AccessDateProvider { + + /** + * Get access date. + * + * @return Access date. (NotNull) + */ + public java.util.Date getAccessDate(); + } + + /** + * The provider interface of access date. + */ + public static interface AccessTimestampProvider { + + /** + * Get access timestamp. + * + * @return Access timestamp. (NotNull) + */ + public java.sql.Timestamp getAccessTimestamp(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/AccessContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BFinder.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BFinder.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BFinder.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,110 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import jp.sf.pal.userinfo.db.allcommon.bhv.BehaviorReadable; + +/** + * The entry of DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BFinder { + + //========================================================================== + // ========= + // Definition + // ========== + protected static String _dbfluteDiconName = "dbflute.dicon"; + + //========================================================================== + // ========= + // Constructor + // =========== + private BFinder() { + } + + //========================================================================== + // ========= + // Finder + // ====== + public static BEHAVIOR_TYPE find( + Class behaviorType) { + assertObjectNotNull("behaviorType", behaviorType); + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + synchronized (BFinder.class) { + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + final String configFile = _dbfluteDiconName; + if (org.seasar.framework.util.ResourceUtil + .isExist(configFile)) { + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .setConfigPath(configFile); + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .init(); + } else { + String msg = "S2Container is not initialized! Confirm your initializer and your dicon files."; + throw new IllegalStateException(msg); + } + } + } + } + final org.seasar.framework.container.S2Container container = org.seasar.framework.container.factory.SingletonS2ContainerFactory + .getContainer(); + final BEHAVIOR_TYPE behavior = (BEHAVIOR_TYPE) container + .getComponent(behaviorType); + return behavior; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public static void setDBFluteDiconName(String dbfluteDiconName) { + _dbfluteDiconName = dbfluteDiconName; + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BFinder.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BehaviorSelector.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BehaviorSelector.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BehaviorSelector.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,35 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import jp.sf.pal.userinfo.db.allcommon.bhv.BehaviorReadable; + +/** + * The interface of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorSelector { + + /** + * Initialize condition-bean meta data.
If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData(); + + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType); + + /** + * Select behavior-readable. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/BehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheAbstractSelector.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheAbstractSelector.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheAbstractSelector.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,115 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import org.seasar.framework.container.ComponentNotFoundRuntimeException; +import org.seasar.framework.container.S2Container; + +/** + * The abstract class of cache-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class CacheAbstractSelector { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The container of Seasar. */ + protected S2Container _container; + + //========================================================================== + // ========= + // Component + // ========= + public COMPONENT getComponent(Class componentType) { + assertObjectNotNull("componentType", componentType); + assertObjectNotNull("_container", _container); + try { + return (COMPONENT) _container.getComponent(componentType); + } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't + // come. + final COMPONENT component; + try { + // for HotDeploy Mode + component = (COMPONENT) _container.getRoot().getComponent( + componentType); + } catch (ComponentNotFoundRuntimeException ignored) { + throw e; + } + _container = _container.getRoot(); // Change container. + return component; + } + } + + //========================================================================== + // ========= + // Destroy + // ======= + public void destroy() { + _container = null; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected String initUncap(String str) { + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setContainer(S2Container container) { + this._container = container; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheAbstractSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheBehaviorSelector.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheBehaviorSelector.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheBehaviorSelector.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,131 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.bhv.BehaviorReadable; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.util.TraceViewUtil; + +/** + * The implementation of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheBehaviorSelector extends CacheAbstractSelector implements + BehaviorSelector { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(CacheBehaviorSelector.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The cache of behavior. (It's the generic hell!) */ + protected Map, BehaviorReadable> _behaviorCache = new LinkedHashMap, BehaviorReadable>(); + + //========================================================================== + // ========= + // Initialize + // ========== + /** + * Initialize condition-bean meta data.
If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData() { + final Map dbmetaMap = DBMetaInstanceHandler + .getDBMetaMap(); + final Collection dbmetas = dbmetaMap.values(); + long before = 0; + if (_log.isInfoEnabled()) { + before = System.currentTimeMillis(); + _log + .info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()"); + } + for (DBMeta dbmeta : dbmetas) { + final BehaviorReadable bhv = byName(dbmeta.getTableDbName()); + final DaoReadable dao = bhv.getDaoReadable(); + dao.initializeDaoMetaData("selectList"); + } + if (_log.isInfoEnabled()) { + long after = System.currentTimeMillis(); + _log.info("Initialized Count: " + dbmetas.size()); + _log.info("= = = = = = = = = =/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + "]"); + } + } + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + synchronized (_behaviorCache) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + final BEHAVIOR bhv = (BEHAVIOR) getComponent(behaviorType); + _behaviorCache.put(behaviorType, bhv); + return bhv; + } + } + + /** + * Select behavior-readable by name. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getBehaviorType(dbmeta)); + } + + /** + * Get behavior-type by dbmeta. + * + * @param dbmeta Dbmeta. (NotNull) + * @return Behavior-type. (NotNull) + */ + protected Class getBehaviorType(DBMeta dbmeta) { + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + if (behaviorTypeName == null) { + String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class behaviorType; + try { + behaviorType = (Class) Class + .forName(behaviorTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + behaviorTypeName, e); + } + return behaviorType; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheBehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheDaoSelector.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheDaoSelector.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheDaoSelector.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,66 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; + +/** + * The implementation of DAO-selector. + * + *
+ * Long long ago this object have cache of DAO and behavior.
+ * But the cache cause wrong performance when this is initialized.
+ * So now this object don't have cache.
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheDaoSelector extends CacheAbstractSelector implements + DaoSelector { + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return DAO. (NotNull) + */ + public DAO select(Class daoType) { + return (DAO) getComponent(daoType); + } + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getDaoType(dbmeta)); + } + + protected Class getDaoType(DBMeta dbmeta) { + final String daoTypeName = dbmeta.getDaoTypeName(); + if (daoTypeName == null) { + String msg = "The dbmeta.getDaoTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class daoType; + try { + daoType = (Class) Class.forName(daoTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + daoTypeName, e); + } + return daoType; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CacheDaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CallbackContext.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CallbackContext.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CallbackContext.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,75 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import jp.sf.pal.userinfo.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DBFluteConfig.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DBFluteConfig.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DBFluteConfig.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,314 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; + +/** + * @author DBFlute(AutoGenerator) + */ +public class DBFluteConfig { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(DBFluteConfig.class); + + /** Singleton instance. */ + private static final DBFluteConfig _instance = new DBFluteConfig(); + + //========================================================================== + // ========= + // Attribute + // ========= + protected StatementConfig _defaultStatementConfig; + + protected boolean _conditionBeanFormatSql = true;// This is for + + // compatibility! + + protected boolean _queryLogLevelInfo; + + protected boolean _executeStatusLogLevelInfo; + + protected boolean _useSqlLogRegistry; + + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; + + protected boolean _sqlExceptionOldStyleHandling = false;// This is for + + // compatibility! + + protected String _logDateFormat; + + protected String _logTimestampFormat; + + protected String _outsideSqlPackage; + + protected boolean _internalDebug; + + protected boolean _locked = true; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + private DBFluteConfig() { + } + + //========================================================================== + // ========= + // Singleton + // ========= + /** + * Get instance. + * + * @return Singleton instance. (NotNull) + */ + public static DBFluteConfig getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Default Statement Config + // ======================== + public StatementConfig getDefaultStatementConfig() { + return _defaultStatementConfig; + } + + public void setDefaultStatementConfig(StatementConfig defaultStatementConfig) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting defaultStatementConfig: " + + defaultStatementConfig); + } + _defaultStatementConfig = defaultStatementConfig; + } + + //========================================================================== + // ========= + // ConditionBean Format Sql + // ======================== + public boolean isConditionBeanFormatSql() { + return _conditionBeanFormatSql; + } + + /** + * @param conditionBeanFormatSql The value of the config. + * @deprecated This is for compatibility! + */ + public void setConditionBeanFormatSql(boolean conditionBeanFormatSql) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting conditionBeanFormatSql: " + + conditionBeanFormatSql); + } + _conditionBeanFormatSql = conditionBeanFormatSql; + } + + //========================================================================== + // ========= + // Query Log Level Info + // ==================== + public boolean isQueryLogLevelInfo() { + return _queryLogLevelInfo; + } + + public void setQueryLogLevelInfo(boolean queryLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting queryLogLevelInfo: " + queryLogLevelInfo); + } + _queryLogLevelInfo = queryLogLevelInfo; + } + + //========================================================================== + // ========= + // Execute Status Log Level Info + // ============================= + public boolean isExecuteStatusLogLevelInfo() { + return _executeStatusLogLevelInfo; + } + + public void setExecuteStatusLogLevelInfo(boolean executeStatusLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting executeStatusLogLevelInfo: " + + executeStatusLogLevelInfo); + } + _executeStatusLogLevelInfo = executeStatusLogLevelInfo; + } + + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return _uniqueConstraintDeterminator; + } + + public void setUniqueConstraintDeterminator( + UniqueConstraintDeterminator uniqueConstraintDeterminator) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting uniqueConstraintDeterminator: " + + uniqueConstraintDeterminator); + } + _uniqueConstraintDeterminator = uniqueConstraintDeterminator; + } + + public static interface UniqueConstraintDeterminator { + public boolean isUniqueConstraintException(Throwable t); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // SQL Exception Old Style + // ======================= + public boolean isSqlExceptionOldStyleHandling() { + return _sqlExceptionOldStyleHandling; + } + + /** + * @param sqlExceptionOldStyleHandling The value of the config. + * @deprecated This is for compatibility! + */ + public void setSqlExceptionOldStyleHandling( + boolean sqlExceptionOldStyleHandling) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting sqlExceptionOldStyleHandling: " + + sqlExceptionOldStyleHandling); + } + _sqlExceptionOldStyleHandling = sqlExceptionOldStyleHandling; + } + + //========================================================================== + // ========= + // Log Format + // ========== + public String getLogDateFormat() { + return _logDateFormat; + } + + public void setLogDateFormat(String logDateFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logDateFormat: " + logDateFormat); + } + _logDateFormat = logDateFormat; + } + + public String getLogTimestampFormat() { + return _logTimestampFormat; + } + + public void setLogTimestampFormat(String logTimestampFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logTimestampFormat: " + logTimestampFormat); + } + _logTimestampFormat = logTimestampFormat; + } + + //========================================================================== + // ========= + // OutsideSql Package + // ================== + public String getOutsideSqlPackage() { + return _outsideSqlPackage; + } + + public void setOutsideSqlPackage(String outsideSqlPackage) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting outsideSqlPackage: " + outsideSqlPackage); + } + _outsideSqlPackage = outsideSqlPackage; + } + + //========================================================================== + // ========= + // Internal Debug + // ============== + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(boolean internalDebug) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting internalDebug: " + internalDebug); + } + _internalDebug = internalDebug; + } + + //========================================================================== + // ========= + // Config Lock + // =========== + public boolean isLocked() { + return _locked; + } + + public void lock() { + if (_log.isInfoEnabled()) { + _log.info("...Locking the config of dbflute!"); + } + _locked = true; + } + + public void unlock() { + if (_log.isInfoEnabled()) { + _log.info("...Unlocking the config of dbflute!"); + } + _locked = false; + } + + protected void assertNotLocked() { + if (!isLocked()) { + return; + } + String msg = "The config of dbflute is locked! Don't access at this timing!"; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Config Clear + // ============ + public void clear() { // the only properties that update OK while executing + _defaultStatementConfig = null; + _conditionBeanFormatSql = true; // as default + _queryLogLevelInfo = false; + _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; + _logDateFormat = null; + _logTimestampFormat = null; + _internalDebug = false; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DBFluteConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoReadable.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoReadable.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoReadable.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,11 @@ +package jp.sf.pal.userinfo.db.allcommon; + +/** + * The interface of dao-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoReadable { + public void initializeDaoMetaData(String methodName);// Very Internal + // Method! +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoSelector.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoSelector.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoSelector.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,26 @@ +package jp.sf.pal.userinfo.db.allcommon; + +/** + * The interface of DAO-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoSelector { + + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return Dao. (NotNull) + */ + public DAO select(Class daoType); + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoWritable.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoWritable.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoWritable.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,70 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import java.util.List; + +/** + * The interface of dao-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoWritable extends DaoReadable { + + /** + * Insert one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Inserted count. + */ + public int create(Entity entity); + + /** + * Update one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modify(Entity entity); + + /** + * Update one entity that the type is entity-interface. (modified only) + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modifyModifiedOnly(Entity entity); + + /** + * Delete one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Deleted count. + */ + public int remove(Entity entity); + + /** + * Insert several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of inserted count. + */ + public int[] createList(List entityList); + + /** + * Update several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of updated count. + */ + public int[] modifyList(List entityList); + + /** + * Delete several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of deleted count. + */ + public int[] removeList(List entityList); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/DaoWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/Entity.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/Entity.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/Entity.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,126 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import java.util.LinkedHashSet; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of entity. + * + * @author DBFlute(AutoGenerator) + */ +public interface Entity { + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get the instance of target dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB name. + * + * @return Table DB name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property name. + * + * @return Table property name. (NotNull) + */ + public String getTablePropertyName(); + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has the value of primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKeyValue(); + + //========================================================================== + // ========= + // Modified Properties + // =================== + /** + * Get modified property names. (JavaBeansRule) + * + * @return Modified property names. (NotNull) + */ + public Set getModifiedPropertyNames(); + + /** + * Clear modified property names. + */ + public void clearModifiedPropertyNames(); + + /** + * Entity modified properties. + */ + public static class EntityModifiedProperties implements + java.io.Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Set of properties. */ + protected Set _propertiesSet = new LinkedHashSet(); + + /** + * Add property name. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void addPropertyName(String propertyName) { + _propertiesSet.add(propertyName); + } + + /** + * Get the set of properties. + * + * @return The set of properties. (NotNull) + */ + public Set getPropertyNames() { + return _propertiesSet; + } + + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _propertiesSet.isEmpty(); + } + + /** + * Clear the set of properties. + */ + public void clear() { + _propertiesSet.clear(); + } + + /** + * Remove property name from the set. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void remove(String propertyName) { + _propertiesSet.remove(propertyName); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/Entity.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/EntityDefinedCommonColumn.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/EntityDefinedCommonColumn.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/EntityDefinedCommonColumn.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon; + +/** + * The interface of entity defined common column. + * + * @author DBFlute(AutoGenerator) + */ +public interface EntityDefinedCommonColumn extends Entity { + + /** + * Disable common column auto set up. + */ + public void disableCommonColumnAutoSetup(); + + /** + * Can the entity set up common column by auto? + * + * @return Determination. + */ + public boolean canCommonColumnAutoSetup(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/EntityDefinedCommonColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/GenMetaData.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/GenMetaData.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/GenMetaData.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,258 @@ +package jp.sf.pal.userinfo.db.allcommon; + +/** + * The sigleton class that has generate-meta-data(GenMetaData). + * + * @author DBFlute(AutoGenerator) + */ +public class GenMetaData { + + /** Singleton instance. */ + private static final GenMetaData _instance = new GenMetaData(); + + /** + * Constructor. + */ + private GenMetaData() { + } + + /** + * Get instance. + * + * @return Singleton instance. + */ + public static GenMetaData getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Basic + // ===== + /** + * Get the property-value of targetLanguage. + * + * @return The property-value. + */ + public String getTargetLanguage() { + return "java"; + } + + /** + * Get the property-value of templateFileExtension. + * + * @return The property-value. + */ + public String getTemplateFileExtension() { + return "vm"; + } + + /** + * Get the property-value of classFileExtension. + * + * @return The property-value. + */ + public String getClassFileExtension() { + return "java"; + } + + /** + * Get the property-value of templateFileEncoding. + * + * @return The property-value. + */ + public String getTemplateEncoding() { + return "UTF-8"; + } + + /** + * Get the property-value of classAuthor. + * + * @return The property-value. + */ + public String getClassAuthor() { + return "DBFlute(AutoGenerator)"; + } + + //========================================================================== + // ========= + // Naming + // ====== + /** + * Is java name of table same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfTableSameAsDbName() { + return false; + } + + /** + * Is java name of column same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfColumnSameAsDbName() { + return false; + } + + //========================================================================== + // ========= + // Prefix + // ====== + /** + * Get the property-value of projectPrefix. + * + * @return The property-value. + */ + public String getProjectPrefix() { + return ""; + } + + /** + * Get the property-value of basePrefix. + * + * @return The property-value. + */ + public String getBasePrefix() { + return "Bs"; + } + + //========================================================================== + // ========= + // Package + // ======= + /** + * Get the property-value of baseCommonPackage. + * + * @return The property-value. + */ + public String getBaseCommonPackage() { + return "jp.sf.pal.userinfo.db.allcommon"; + } + + /** + * Get the property-value of baseBehaviorPackage. + * + * @return The property-value. + */ + public String getBaseBehaviorPackage() { + return "jp.sf.pal.userinfo.db.bsbhv"; + } + + /** + * Get the property-value of baseDaoPackage. + * + * @return The property-value. + */ + public String getBaseDaoPackage() { + return "jp.sf.pal.userinfo.db.bsdao"; + } + + /** + * Get the property-value of baseEntityPackage. + * + * @return The property-value. + */ + public String getBaseEntityPackage() { + return "jp.sf.pal.userinfo.db.bsentity"; + } + + /** + * Get the property-value of conditionBeanPackage. + * + * @return The property-value. + */ + public String getConditionBeanPackage() { + return "jp.sf.pal.userinfo.db.cbean"; + } + + /** + * Get the property-value of extendedDaoPackage. + * + * @return The property-value. + */ + public String getExtendedDaoPackage() { + return "jp.sf.pal.userinfo.db.exdao"; + } + + /** + * Get the property-value of extendedBehaviorPackage. + * + * @return The property-value. + */ + public String getExtendedBehaviorPackage() { + return "jp.sf.pal.userinfo.db.exbhv"; + } + + /** + * Get the property-value of extendedEntityPackage. + * + * @return The property-value. + */ + public String getExtendedEntityPackage() { + return "jp.sf.pal.userinfo.db.exentity"; + } + + //========================================================================== + // ========= + // Optimistic Lock + // =============== + /** + * Get the property-value of updateDateFieldName. + * + * @return The property-value. + */ + public String getUpdateDateFieldName() { + return ""; + } + + /** + * Get the property-value of versionNoFieldName. + * + * @return The property-value. + */ + public String getVersionNoFieldName() { + return ""; + } + + //========================================================================== + // ========= + // Extract + // ======= + /** + * Get the value of 'extractAcceptStartBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptStartBrace() { + return "@{"; + } + + /** + * Get the value of 'extractAcceptEndBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEndBrace() { + return "@}"; + } + + /** + * Get the value of 'extractAcceptDelimiter'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptDelimiter() { + return "@;"; + } + + /** + * Get the value of 'extractAcceptEqual'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEqual() { + return "@="; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/GenMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/InternalMapContext.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/InternalMapContext.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/InternalMapContext.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,64 @@ +package jp.sf.pal.userinfo.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of internal map. + * + * @author DBFlute(AutoGenerator) + */ +public class InternalMapContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal> threadLocal = new ThreadLocal>(); + + protected static void initialize() { + if (threadLocal.get() != null) { + return; + } + threadLocal.set(new HashMap()); + } + + /** + * Get the value of the object by the key. + * + * @param key The key of the object. (NotNull) + * @return The value of the object. (Nullable) + */ + public static Object getObject(String key) { + initialize(); + return threadLocal.get().get(key); + } + + /** + * Set the value of the object. + * + * @param key The key of the object. (NotNull) + * @param value The value of the object. (Nullable) + */ + public static void setObject(String key, Object value) { + initialize(); + threadLocal.get().put(key, value); + } + + /** + * Is existing internal-map-context on thread? + * + * @return Determination. + */ + public static boolean isExistInternalMapContextOnThread() { + return (threadLocal.get() != null); + } + + /** + * Clear internal-map-context on thread. + */ + public static void clearInternalMapContextOnThread() { + threadLocal.set(null); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/InternalMapContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/QLog.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/QLog.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/QLog.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,39 @@ +package jp.sf.pal.userinfo.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class QLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(QLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String sql) {// Very Internal + if (isQueryLogLevelInfo()) { + _log.info(sql); + } else { + _log.debug(sql); + } + } + + public static boolean isLogEnabled() { + if (isQueryLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isQueryLogLevelInfo() { + return DBFluteConfig.getInstance().isQueryLogLevelInfo(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/QLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/XLog.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/XLog.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/XLog.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,39 @@ +package jp.sf.pal.userinfo.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class XLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(XLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String msg) {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + _log.info(msg); + } else { + _log.debug(msg); + } + } + + public static boolean isLogEnabled() {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isExecuteStatusLogLevelInfo() { + return DBFluteConfig.getInstance().isExecuteStatusLogLevelInfo(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/XLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/annotation/OutsideSql.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/annotation/OutsideSql.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/annotation/OutsideSql.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,18 @@ +package jp.sf.pal.userinfo.db.allcommon.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + ¡÷ Inherited + ¡÷ Retention(RetentionPolicy.RUNTIME) + ¡÷ Target(ElementType.METHOD) +public @interface OutsideSql { + boolean dynamicBinding() default false; + + boolean offsetByCursor() default false; + + boolean limitByCursor() default false; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/annotation/OutsideSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorReadable.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,973 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.BehaviorSelector; +import jp.sf.pal.userinfo.db.allcommon.DaoSelector; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.batch.TokenFileOutputOption; +import jp.sf.pal.userinfo.db.allcommon.bhv.batch.TokenFileOutputResult; +import jp.sf.pal.userinfo.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelBox; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.executor.OutsideSqlBasicExecutor; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBehaviorReadable implements BehaviorReadable { + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * Behavior-selector instance. It's basically referred at loadReferrer. + * (Required for loadReferrer) + */ + protected BehaviorSelector _behaviorSelector; + + /** + * Dao-selector instance. It's basically referred at loadReferrer. (Required + * for OutsideSql) + */ + protected DaoSelector _daoSelector; + + //========================================================================== + // =========== + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll() { + return callGetCountAll(); + } + + //========================================================================== + // =========== + // Count Read + // ========== + /** + * The implementation. + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return callReadCount(cb); + } + + //========================================================================== + // =========== + // Entity Read + // =========== + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + //========================================================================== + // =========== + // Entity Read Internal Helper + // =========================== + protected ENTITY helpSelectEntityInternally( + CB cb, InternalSelectEntityCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.userinfo.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityCallback { + public List callbackSelectList(CB cb); + } + + protected ENTITY helpSelectEntityWithDeletedCheckInternally( + CB cb, + InternalSelectEntityWithDeletedCheckCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.userinfo.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityWithDeletedCheckCallback { + public List callbackSelectList(CB cb); + } + + //========================================================================== + // =========== + // List Read + // ========= + /** + * The implementation. + * + * @param cb Condition-bean. + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, callReadList(cb)); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return readCount(cb); + } + + public List paging() { + return readList(cb); + } + }; + return invoker.invokePaging(handler); + } + + /** + * Assert that the entity is not deleted. + * + * @param entity Selected entity. (Nullable) + * @param searchKey4Log Search-key for Logging. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + protected void assertEntityNotDeleted( + jp.sf.pal.userinfo.db.allcommon.Entity entity, Object searchKey4Log) { + if (entity == null) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is not deleted. + * + * @param ls Selected list. (Nullable) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + */ + protected void assertEntityNotDeleted(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is selected as one. + * + * @param ls Selected list. (NotNull) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + */ + protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", searchKey4Log, null); + } + } + + private void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + private void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Various Select + // ============== + public OutsideSqlBasicExecutor outsideSql() { + assertDaoSelectorNotNull("outsideSql"); + final OutsideSqlDao outsideSqlDao = _daoSelector + .select(OutsideSqlDao.class); + return new OutsideSqlBasicExecutor(outsideSqlDao, getTableDbName()); + } + + private void assertDaoSelectorNotNull(String methodName) { + if (_daoSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of dao as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Create value-label list. + * + * @param The type of entity. + * @param entityList The list of entity. (NotNull) + * @param valueLabelSetupper Value-label-setupper. (NotNull) + * @return Value-label list. (NotNull) + */ + public List> createValueLabelList( + List entityList, + ValueLabelSetupper valueLabelSetupper) { + final List> valueLabelList = new ArrayList>(); + final ValueLabelBox box = new ValueLabelBox(); + for (ENTITY entity : entityList) { + final Map valueLabel = new HashMap(); + valueLabelSetupper.setup(box, entity); + valueLabel.put("value", box.getValue()); + valueLabel.put("label", box.getLabel()); + valueLabelList.add(valueLabel); + } + return valueLabelList; + } + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal() { + try { + final Method method = getClass().getMethod("selectNextVal", + new Class[] {}); + Object sequenceObject = method.invoke(this, new Object[] {}); + if (sequenceObject instanceof java.math.BigDecimal) { + return (java.math.BigDecimal) sequenceObject; + } + return (java.math.BigDecimal) helpConvertingSequenceObject( + java.math.BigDecimal.class, sequenceObject); + } catch (NoSuchMethodException e) { + throw new RuntimeException("The table does not have sequence: " + + getTableDbName(), e); + } catch (Exception e) { + throw new RuntimeException( + "The selectNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + } + + protected Object helpConvertingSequenceObject(Class resultClass, + Object sequenceObject) { + try { + final Constructor constructor = resultClass + .getConstructor(new Class[] { String.class }); + return constructor.newInstance(new Object[] { sequenceObject + .toString() }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + try { + final Method method = resultClass.getMethod("valueOf", + new Class[] { long.class }); + return method.invoke(null, new Object[] { Long + .valueOf(sequenceObject.toString()) }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + String msg = "Cannot convert sequenceObject to resultClass:"; + msg = msg + " resultClass=" + resultClass + " sequenceObjectType=" + + sequenceObject.getClass(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Load Referrer Internal Helper + // ============================= + /** + * Help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void helpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, + callback); + } + + /** + * Do help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void doHelpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + + // - - - - - - - - - - - + // Assert pre-condition + // - - - - - - - - - - - + assertBehaviorSelectorNotNull("loadReferrer"); + assertObjectNotNull("localEntityList", localEntityList); + assertObjectNotNull("loadReferrerOption", loadReferrerOption); + if (localEntityList.isEmpty()) { + return; + } + + // - - - - - - - - - - - - - - + // Prepare temporary container + // - - - - - - - - - - - - - - + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK primaryKeyValue = callback + .callbackBase_getPrimaryKeyValue(localEntity); + pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); + } + + // - - - - - - - - - - - - - - - - + // Prepare referrer condition bean + // - - - - - - - - - - - - - - - - + final REFERRER_CB cb; + if (loadReferrerOption.getReferrerConditionBean() != null) { + cb = loadReferrerOption.getReferrerConditionBean(); + } else { + cb = callback.callbackReferrer_newMyConditionBean(); + } + + // - - - - - - - - - - - - - - + // Select the list of referrer + // - - - - - - - - - - - - - - + callback.callbackReferrer_queryForeignKeyInScope(cb, pkList); + loadReferrerOption + .delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb); + if (!loadReferrerOption.isStopOrderByKey()) { + callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb); + cb.getSqlComponentOfOrderByClause() + .exchangeFirstOrderByElementForLastOne(); + } + loadReferrerOption.delegateConditionBeanSettingUp(cb); + final List referrerList = callback + .callbackReferrer_selectList(cb); + loadReferrerOption.delegateEntitySettingUp(referrerList); + + // - - - - - - - - - - - - - - - - - - - - - - - - + // Create the map of {primary key / referrer list} + // - - - - - - - - - - - - - - - - - - - - - - - - + final Map> pkReferrerListMap = new LinkedHashMap>(); + for (REFERRER_ENTITY referrerEntity : referrerList) { + final PK referrerListKey; + { + final PK foreignKeyValue = callback + .callbackReferrer_getForeignKeyValue(referrerEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); + } + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); + } + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); + + // for Reverse Reference. + final LOCAL_ENTITY localEntity = pkLocalEntityMap + .get(referrerListKey); + callback.callbackReferrer_setForeignEntity(referrerEntity, + localEntity); + } + + // - - - - - - - - - - - - - - - - - - + // Relate referrer list to base entity + // - - - - - - - - - - - - - - - - - - + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK referrerListKey; + { + final PK primaryKey = callback + .callbackBase_getPrimaryKeyValue(localEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); + } + if (pkReferrerListMap.containsKey(referrerListKey)) { + callback.callbackBase_setReferrerList(localEntity, + pkReferrerListMap.get(referrerListKey)); + } else { + callback.callbackBase_setReferrerList(localEntity, + new ArrayList()); + } + } + } + + /** + * To lower case for primary key if the value is string. + * + * @param The type of primary key. + * @param value The value of primary key. (Nullable) + * @return The value of primary key. (Nullable) + */ + protected PK toLowerCasePrimaryKeyIfString(PK value) { + return (PK) toLowerCaseIfString(value); + } + + /** + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer conditionBean. + * @param The type of referrer entity. + */ + protected static interface InternalLoadReferrerCallback { + // For Base + public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity); + + public void callbackBase_setReferrerList(LOCAL_ENTITY entity, + List referrerList); + + // For Referrer + public REFERRER_CB callbackReferrer_newMyConditionBean(); + + public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, + List pkList); + + public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb); + + public List callbackReferrer_selectList(REFERRER_CB cb); + + public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity); + + public void callbackReferrer_setForeignEntity( + REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); + } + + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + + private void assertBehaviorSelectorNotNull(String methodName) { + if (_behaviorSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of behavior as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Pullout Internal Helper + // ======================= + protected List helpPulloutInternally( + List localEntityList, + InternalPulloutCallback callback) { + assertObjectNotNull("localEntityList", localEntityList); + final Set foreignSet = new LinkedHashSet(); + for (LOCAL_ENTITY entity : localEntityList) { + final FOREIGN_ENTITY foreignEntity = callback + .callbackGetForeignEntity(entity); + if (foreignEntity == null || foreignSet.contains(foreignEntity)) { + continue; + } + foreignSet.add(foreignEntity); + } + return new ArrayList(foreignSet); + } + + protected static interface InternalPulloutCallback { + public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity); + } + + //========================================================================== + // ========= + // Token File + // ========== + public TokenFileOutputExecutor tokenFileOutput() + throws java.io.FileNotFoundException, java.io.IOException { + return new TokenFileOutputExecutor(); + } + + public class TokenFileOutputExecutor { + /** + * Output token-file from this table records. + * + * @param cb Condition-bean. (NotNull) + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileOutputOption token-file-output-option. (NotNull and + * Required{delimiter and encoding}) + * @return Token-file-output-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileOutputResult outputTokenFile(ConditionBean cb, + String filename, TokenFileOutputOption tokenFileOutputOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertConditionBeanNotNull(cb); + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption); + + final List ls = readList(cb); + List> rowList = new ArrayList>(); + for (java.util.Iterator ite = ls.iterator(); ite.hasNext();) { + final Entity entity = (Entity) ite.next(); + final List valueList = getDBMeta() + .convertToColumnStringValueList(entity); + rowList.add(valueList); + } + final FileMakingSimpleFacade fileMakingSimpleFacade = new FileMakingSimpleFacadeImpl(); + final FileMakingOption fileMakingOption = tokenFileOutputOption + .getFileMakingOption(); + final FileMakingHeaderInfo fileMakingHeaderInfo = new FileMakingHeaderInfo(); + final List columnDbNameList = new ArrayList(); + for (final java.util.Iterator ite = getDBMeta().getColumnInfoList() + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + fileMakingHeaderInfo.setColumnNameList(columnDbNameList); + fileMakingOption.setFileMakingHeaderInfo(fileMakingHeaderInfo); + fileMakingSimpleFacade.makeFromRowList(filename, rowList, + fileMakingOption); + final TokenFileOutputResult tokeFileOutputResult = new TokenFileOutputResult(); + tokeFileOutputResult.setSelectedList(ls); + return tokeFileOutputResult; + } + } + + //========================================================================== + // ========= + // Delegate Method + // =============== + /** + * The implementation. + * + * @return All count. + */ + protected int callGetCountAll() { + return readCount(newConditionBean()); + } + + /** + * The implementation. + * + * @return All list. (NotNull) + */ + protected List callGetListAll() { + return readList(newConditionBean()); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read count. (NotNull) + */ + protected int callReadCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final java.lang.reflect.Method mtd = getMethod(getDaoReadable() + .getClass(), "selectCount", types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return ((Integer) result).intValue(); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read list. If the select result is zero, it returns empty list. + * (NotNull) + */ + protected List callReadList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return (List) result; + } + + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + private Object invoke(Method method, Object target, Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + protected abstract boolean hasVersionNoValue(Entity entity); + + protected abstract boolean hasUpdateDateValue(Entity entity); + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * To lower case if the type is String. + * + * @param obj Object. (Nullable) + * @return Lower object. (Nullable) + */ + protected Object toLowerCaseIfString(Object obj) { + if (obj != null && obj instanceof String) { + return ((String) obj).toLowerCase(); + } + return obj; + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected ENTITY helpDowncastInternally( + Entity entity, Class clazz) { + assertObjectNotNull("entity", entity); + assertObjectNotNull("clazz", clazz); + try { + return (ENTITY) entity; + } catch (ClassCastException e) { + String msg = "The entity should be " + clazz.getSimpleName() + + " but it was: " + entity.getClass(); + throw new RuntimeException(msg, e); + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNull(Entity entity) { + assertObjectNotNull("entity", entity); + } + + /** + * Assert that the condition-bean is not null. + * + * @param cb Condition-bean. (NotNull) + */ + protected void assertConditionBeanNotNull( + jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean cb) { + assertObjectNotNull("cb", cb); + } + + /** + * Assert that the entity has primary-key value. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNullAndHasPrimaryKeyValue(Entity entity) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + String msg = "The entity must should primary-key: entity=" + entity; + throw new IllegalArgumentException(msg + entity); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert List + // ----------- + /** + * Assert that the list is empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (!ls.isEmpty()) { + String msg = "The list should be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list is not empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndNotEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (ls.isEmpty()) { + String msg = "The list should not be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list having only one. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndHasOnlyOne(List ls) { + assertObjectNotNull("ls", ls); + if (ls.size() != 1) { + String msg = "The list should contain only one object: ls=" + + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the selector of behavior. + * + * @return The select of behavior. (Nullable: But normally NotNull) + */ + protected BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + /** + * Set the selector of behavior. + * + * @param behaviorSelector The selector of behavior. (NotNull) + */ + public void setBehaviorSelector(BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + /** + * Get the selector of DAO. + * + * @return The select of DAO. (Nullable: But normally NotNull) + */ + protected DaoSelector getDaoSelector() { + return _daoSelector; + } + + /** + * Set the selector of DAO. + * + * @param daoSelector The selector of DAO. (NotNull) + */ + public void setDaoSelector(DaoSelector daoSelector) { + _daoSelector = daoSelector; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorWritable.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorWritable.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,997 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.batch.TokenFileReflectionFailure; +import jp.sf.pal.userinfo.db.allcommon.bhv.batch.TokenFileReflectionOption; +import jp.sf.pal.userinfo.db.allcommon.bhv.batch.TokenFileReflectionResult; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.userinfo.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.impl.FileTokenImpl; + +/** + * The abstract class of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractBehaviorWritable extends AbstractBehaviorReadable + implements BehaviorWritable { + + //========================================================================== + // ========= + // Entity Update + // ============= + // ----------------------------------------------------- + // Create + // ------ + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(Entity entity) { + doCreate(entity); + } + + protected abstract void doCreate(Entity entity); + + // ----------------------------------------------------- + // Modify + // ------ + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(Entity entity) { + doModify(entity); + } + + protected abstract void doModify(Entity entity); + + /** + * Modify non strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity) { + doModifyNonstrict(entity); + } + + protected abstract void doModifyNonstrict(Entity entity); + + // ----------------------------------------------------- + // Create or Modify + // ---------------- + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.userinfo.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdate(entity); + } + + protected abstract void doCreateOrUpdate(Entity entity); + + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.userinfo.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdateNonstrict(entity); + } + + protected abstract void doCreateOrUpdateNonstrict(Entity entity); + + // ----------------------------------------------------- + // Remove + // ------ + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.userinfo.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + callRemove(entity); + } + + protected abstract void doRemove(Entity entity); + + //========================================================================== + // ========= + // Entity Update Internal Helper + // ============================= + // ----------------------------------------------------- + // Update + // ------ + protected void helpUpdateInternally(ENTITY entity, + InternalUpdateCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int updatedCount = callback.callbackDelegateUpdate(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalUpdateCallback { + public int callbackDelegateUpdate(ENTITY entity); + } + + protected void helpUpdateNonstrictInternally( + ENTITY entity, InternalUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + final int updatedCount = callback + .callbackDelegateUpdateNonstrict(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + } + } + + protected static interface InternalUpdateNonstrictCallback { + public int callbackDelegateUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // InsertOrUpdate + // -------------- + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + RuntimeException exception = null; + try { + callback.callbackUpdate(entity); + } catch (jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException e) { + if (e.getRows() == 0) { + exception = e; + } + } catch (jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException e) { + exception = e; + } catch (OptimisticLockColumnValueNullException e) { + exception = e; + } + if (exception != null) { + final CB_TYPE cb = callback.callbackNewMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta() + .extractPrimaryKeyMapString(entity)); + if (callback.callbackSelectCount(cb) == 0) { + callback.callbackInsert(entity); + } else { + throw exception; + } + } + } + } + + protected static interface InternalInsertOrUpdateCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdate(ENTITY entity); + + public CB_TYPE callbackNewMyConditionBean(); + + public int callbackSelectCount(CB_TYPE cb); + } + + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + try { + callback.callbackUpdateNonstrict(entity); + } catch (jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException e) { + callback.callbackInsert(entity); + } catch (jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException e) { + callback.callbackInsert(entity); + } + } + } + + protected static interface InternalInsertOrUpdateNonstrictCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // Delete + // ------ + protected void helpDeleteInternally(ENTITY entity, + InternalDeleteCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int deletedCount = callback.callbackDelegateDelete(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteCallback { + public int callbackDelegateDelete(ENTITY entity); + } + + protected void helpDeleteNonstrictInternally( + ENTITY entity, InternalDeleteNonstrictCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + protected void helpDeleteNonstrictIgnoreDeletedInternally( + ENTITY entity, + InternalDeleteNonstrictIgnoreDeletedCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + return; + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + //========================================================================== + // ========= + // Lump Update + // =========== + /** + * Lump create the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callCreateList(entityList); + } + + /** + * Lump Modify the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpModify(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callModifyList(entityList); + } + + /** + * Lump remove the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpRemove(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callRemoveList(entityList); + } + + /** + * Inject sequence to primary key if it needs. + * + * @param entity Entity. (NotNull) + */ + protected void injectSequenceToPrimaryKeyIfNeeds(Entity entity) { + final DBMeta dbmeta = entity.getDBMeta(); + if (!dbmeta.hasSequence() || dbmeta.hasTwoOrMorePrimaryKeys() + || entity.hasPrimaryKeyValue()) { + return; + } + final java.math.BigDecimal sequenceValue = readNextVal(); + final String columnDbName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final java.util.Map map = new java.util.HashMap(); + map.put(columnDbName, sequenceValue.toString()); + dbmeta.acceptPrimaryKeyMap(entity, map); + } + + //========================================================================== + // =========== + // Token File + // ========== + public TokenFileReflectionExecutor tokenFileReflection() { + return new TokenFileReflectionExecutor(); + } + + public class TokenFileReflectionExecutor { + + /** + * Reflect(insert or update) token-file to this table. + * + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile(String filename, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(filename, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + /** + * Reflect(insert or update) token-file to this table. + * + * @param inputStream Input stream. (NotNull and NotClosed) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile( + java.io.InputStream inputStream, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(inputStream, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + protected void assertFileTokenReflectionOption( + TokenFileReflectionOption tokenFileReflectionOption) { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + } + + protected TokenFileReflectionResult buildTokenFileReflectionResult() { + final TokenFileReflectionResult result = new TokenFileReflectionResult(); + final java.util.List failureList = new java.util.ArrayList(); + result.setFailureList(failureList); + return result; + } + + protected FileTokenizingCallback buildFileTokenReflectionFileTokenizingCallback( + TokenFileReflectionOption tokenFileReflectionOption, + final TokenFileReflectionResult result) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + final boolean interruptIfError = tokenFileReflectionOption + .isInterruptIfError(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final java.util.List failureList = result + .getFailureList(); + assertObjectNotNull("failureList", failureList); + + final FileTokenizingCallback fileTokenizingCallback = new FileTokenizingCallback() { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource) { + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = fileTokenizingRowResource + .getFileTokenizingHeaderInfo(); + final java.util.List columnNameList = fileTokenizingHeaderInfo + .getColumnNameList(); + final java.util.List valueList = fileTokenizingRowResource + .getValueList(); + + // Set up columnNameList of result object. + if (result.getColumnNameList() == null) { + result.setColumnNameList(columnNameList); + } + + Entity entity = null; + try { + // Create entity by the list of value composed of + // String. + entity = createEntityByStringValueList(columnNameList, + valueList); + + // Create or modify as non-strict. + doCreateOrUpdateNonstrict(entity); + + // Increment successCount of result object. + result.incrementSuccessCount(); + } catch (RuntimeException e) { + if (interruptIfError) { + throw e; + } + final TokenFileReflectionFailure failure = new TokenFileReflectionFailure(); + failure.setColumnNameList(columnNameList); + failure.setValueList(valueList); + failure.setRowString(fileTokenizingRowResource + .getRowString()); + failure.setRowNumber(fileTokenizingRowResource + .getRowNumber()); + failure.setLineNumber(fileTokenizingRowResource + .getLineNumber()); + if (entity != null) { + failure.setEntity(entity); + } + failure.setException(e); + failureList.add(failure); + } + } + }; + return fileTokenizingCallback; + } + + protected Entity createEntityByStringValueList( + java.util.List columnNameList, + java.util.List valueList) { + final MapStringBuilder builder = new MapStringBuilderImpl(); + builder.setMsMapMark(MAP_STRING_MAP_MARK); + builder.setMsStartBrace(MAP_STRING_START_BRACE); + builder.setMsEndBrace(MAP_STRING_END_BRACE); + builder.setMsDelimiter(MAP_STRING_DELIMITER); + builder.setMsEqual(MAP_STRING_EQUAL); + builder.setColumnNameList(columnNameList); + final String mapString = builder.buildFromList(valueList); + + final Entity entity = getDBMeta().newEntity(); + getDBMeta().acceptColumnValueMapString(entity, mapString); + return entity; + } + + protected FileTokenizingOption buildFileTokenReflectionFileTokenizingOption( + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + final FileTokenizingOption fileTokenizingOption = new FileTokenizingOption(); + fileTokenizingOption.setEncoding(encoding); + fileTokenizingOption.setDelimiter(delimiter); + if (tokenFileReflectionOption.isHandleEmptyAsNull()) { + fileTokenizingOption.handleEmptyAsNull(); + } + return fileTokenizingOption; + } + } + + //========================================================================== + // =========== + // Delegate Method + // =============== + // ----------------------------------------------------- + // Insert + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Inserted count. + */ + protected int callCreate(Entity entity) { + if (!processBeforeInsert(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().create(entity); + } + + /** + * Process before insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeInsert(Entity entity) { + if (!determineExecuteInsert(entity)) { + return false; + } + assertEntityNotNull(entity);// If this table use identity, the entity + // does not have primary-key. + frameworkFilterEntityOfInsert(entity); + filterEntityOfInsert(entity); + assertEntityOfInsert(entity); + return true; + } + + // ----------------------------------------------------- + // Update + // ------ + /** + * The implementation. {modified only} + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Updated count. + */ + protected int callModify(Entity entity) { + if (!processBeforeUpdate(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().modifyModifiedOnly(entity); + } + + /** + * Process before update. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeUpdate(Entity entity) { + if (!determineExecuteUpdate(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfUpdate(entity); + filterEntityOfUpdate(entity); + assertEntityOfUpdate(entity); + return true; + } + + // ----------------------------------------------------- + // Delete + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Deleted count. + */ + protected int callRemove(Entity entity) { + if (!processBeforeDelete(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().remove(entity); + } + + /** + * Process before delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeDelete(Entity entity) { + if (!determineExecuteDelete(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfDelete(entity); + filterEntityOfDelete(entity); + assertEntityOfDelete(entity); + return true; + } + + // ----------------------------------------------------- + // Pre-Process Insert + // ------------------ + /** + * Determine execution of insert. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteInsert(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfInsert(Entity targetEntity) { + injectSequenceToPrimaryKeyIfNeeds(targetEntity); + setupCommonColumnOfInsertIfNeeds(targetEntity); + } + + /** + * Set up common columns of insert if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfInsertIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfInsert(Entity targetEntity) { + } + + /** + * Assert the entity of insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfInsert(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Update + // ------------------ + /** + * Determine execution of update. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteUpdate(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfUpdate(Entity targetEntity) { + setupCommonColumnOfUpdateIfNeeds(targetEntity); + } + + /** + * Set up common columns of update if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfUpdateIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfUpdate(Entity targetEntity) { + } + + /** + * Assert the entity of update. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfUpdate(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Delete + // ------------------ + /** + * Determine execution of delete. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteDelete(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfDelete(Entity targetEntity) { + } + + /** + * Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfDelete(Entity targetEntity) { + } + + /** + * Assert the entity of delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfDelete(Entity entity) { + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Inserted count. + */ + public int[] callCreateList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeInsertInternally(entityList); + return getDaoWritable().createList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Updated count. + */ + public int[] callModifyList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeUpdateInternally(entityList); + return getDaoWritable().modifyList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Deleted count. + */ + public int[] callRemoveList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeDeleteInternally(entityList); + return getDaoWritable().removeList(entityList); + } + + protected void assertEntityHasVersionNoValue(Entity entity) { + if (!getDBMeta().hasVersionNo()) { + return; + } + if (hasVersionNoValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'version no' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'version no' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'version no' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + protected void assertEntityHasUpdateDateValue(Entity entity) { + if (!getDBMeta().hasUpdateDate()) { + return; + } + if (hasUpdateDateValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'update date' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'update date' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'update date' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + public static class OptimisticLockColumnValueNullException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public OptimisticLockColumnValueNullException(String msg) { + super(msg); + } + } + + //========================================================================== + // ========= + // Delegate Method Internal Helper + // =============================== + protected List helpFilterBeforeInsertInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeInsert(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeUpdateInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeUpdate(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeDeleteInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeDelete(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/AbstractBehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorReadable.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorReadable.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorReadable.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,176 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorReadable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table name + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Dao Accessor + // ============ + /** + * Get dao-readable. + * + * @return Dao-readable. (NotNull) + */ + public DaoReadable getDaoReadable(); + + //========================================================================== + // ========= + // New Instance + // ============ + /** + * New entity. + * + * @return Entity. (NotNull) + */ + public Entity newEntity(); + + /** + * New condition-bean. + * + * @return Condition-bean. (NotNull) + */ + public ConditionBean newConditionBean(); + + //========================================================================== + // ========= + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll(); + + //========================================================================== + // ========= + // Basic Read Count + // ================ + /** + * Read count by condition-bean. + * + *
+     * If the argument 'condition-bean' is effective about fetch-scope,
+     * this method invoke select count ignoring the fetch-scope.
+     * 
+ * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read Entity + // ================= + /** + * Read entity by condition-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb); + + /** + * Read simple entity by condition-bean with deleted check. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read List + // =============== + /** + * Read list as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb); + + /** + * Read page as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb); + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorWritable.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorWritable.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorWritable.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,149 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv; + +import jp.sf.pal.userinfo.db.allcommon.DaoWritable; +import jp.sf.pal.userinfo.db.allcommon.Entity; + +/** + * The interface of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorWritable extends BehaviorReadable { + + /** + * Get dao-writable. + * + * @return Dao-writable. (NotNull) + */ + public DaoWritable getDaoWritable(); + + //========================================================================== + // =========== + // Basic Entity Update + // =================== + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(jp.sf.pal.userinfo.db.allcommon.Entity entity); + + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(jp.sf.pal.userinfo.db.allcommon.Entity entity); + + /** + * Modify non-strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity); + + /** + * Create or modify.
{modify: modified only}
This method is + * faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.userinfo.db.allcommon.Entity entity); + + /** + * Create or modify non-strict.
{modify: modified only}
This + * method is faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.userinfo.db.allcommon.Entity entity); + + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.userinfo.db.allcommon.Entity entity); + + //========================================================================== + // =========== + // Basic Batch Update + // ================== + /** + * Lump create the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList); + + /** + * Lump Modify the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpModify(java.util.List entityList); + + /** + * Lump remove the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpRemove(java.util.List entityList); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/BehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,90 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.batch; + +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileMakingOption _fileMakingOption = new FileMakingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileOutputOption delimitateByComma() { + _fileMakingOption.delimitateByComma(); + return this; + } + + public TokenFileOutputOption delimitateByTab() { + _fileMakingOption.delimitateByTab(); + return this; + } + + public TokenFileOutputOption encodeAsUTF8() { + _fileMakingOption.encodeAsUTF8(); + return this; + } + + public TokenFileOutputOption encodeAsWindows31J() { + _fileMakingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileOutputOption separateCrLf() { + _fileMakingOption.separateCrLf(); + return this; + } + + public TokenFileOutputOption separateLf() { + _fileMakingOption.separateLf(); + return this; + } + + public TokenFileOutputOption goodByeDoubleQuotation() { + _fileMakingOption.goodByeDoubleQuotation(); + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _fileMakingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileMakingOption.setDelimiter(encoding); + } + + public String getDelimiter() { + return _fileMakingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileMakingOption.setDelimiter(delimiter); + } + + public String getLineSeparator() { + return _fileMakingOption.getLineSeparator(); + } + + public void setLineSeparator(String lineSeparator) { + _fileMakingOption.setLineSeparator(lineSeparator); + } + + public boolean isGoodByeDoubleQuotation() { + return _fileMakingOption.isGoodByeDoubleQuotation(); + } + + public FileMakingOption getFileMakingOption() { + return _fileMakingOption; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputResult.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputResult.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputResult.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,27 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.batch; + +import jp.sf.pal.userinfo.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _selectedList; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getSelectedList() { + return _selectedList; + } + + public void setSelectedList(java.util.List selectedList) { + _selectedList = selectedList; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileOutputResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionFailure.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionFailure.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionFailure.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,89 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.batch; + +import jp.sf.pal.userinfo.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionFailure { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + protected Entity _entity; + + protected Exception _exception; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } + + public Entity getEntity() { + return _entity; + } + + public void setEntity(Entity value) { + _entity = value; + } + + public Exception getException() { + return _exception; + } + + public void setException(Exception value) { + _exception = value; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionFailure.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,79 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.batch; + +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _interruptIfError; + + protected FileTokenizingOption _fileTokenizingOption = new FileTokenizingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileReflectionOption delimitateByComma() { + _fileTokenizingOption.delimitateByComma(); + return this; + } + + public TokenFileReflectionOption delimitateByTab() { + _fileTokenizingOption.delimitateByTab(); + return this; + } + + public TokenFileReflectionOption encodeAsUTF8() { + _fileTokenizingOption.encodeAsUTF8(); + return this; + } + + public TokenFileReflectionOption encodeAsWindows31J() { + _fileTokenizingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileReflectionOption handleEmptyAsNull() { + _fileTokenizingOption.handleEmptyAsNull(); + return this; + } + + public TokenFileReflectionOption interruptIfError() { + _interruptIfError = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _fileTokenizingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileTokenizingOption.setDelimiter(delimiter); + } + + public String getEncoding() { + return _fileTokenizingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileTokenizingOption.setDelimiter(encoding); + } + + public boolean isHandleEmptyAsNull() { + return _fileTokenizingOption.isHandleEmptyAsNull(); + } + + public boolean isInterruptIfError() { + return _interruptIfError; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionResult.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionResult.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionResult.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,54 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.batch; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected int _successCount; + + protected java.util.List _failureList; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public void incrementSuccessCount() { + ++_successCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public int getSuccessCount() { + return _successCount; + } + + public void setSuccessCount(int successCount) { + _successCount = successCount; + } + + public java.util.List getFailureList() { + return _failureList; + } + + public void setFailureList( + java.util.List failureList) { + this._failureList = failureList; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/batch/TokenFileReflectionResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/load/LoadReferrerOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,146 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.load; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.EntityListSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; + +/** + * The class of load referrer option. + * + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @author DBFlute(AutoGenerator) + */ +public class LoadReferrerOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ConditionBeanSetupper _conditionBeanSetupper; + + protected EntityListSetupper _entityListSetupper; + + protected REFERRER_CONDITION_BEAN _referrerConditionBean; + + protected boolean _toLastKeyCondition; + + protected boolean _stopOrderByKey; + + //========================================================================== + // ========= + // Constructor + // =========== + public LoadReferrerOption() { + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper, + EntityListSetupper entityListSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + this._entityListSetupper = entityListSetupper; + } + + public LoadReferrerOption( + LoadReferrerOption option) { + this._conditionBeanSetupper = option._conditionBeanSetupper; + this._entityListSetupper = option._entityListSetupper; + this._referrerConditionBean = option._referrerConditionBean; + this._toLastKeyCondition = option._toLastKeyCondition; + this._stopOrderByKey = option._stopOrderByKey; + } + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + /** + * Specify that the key condition is added as last condition.
This + * method is valid only after you use reffererConditionBean and add your + * original condition to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption toLastKeyCondition() { + _toLastKeyCondition = true; + return this; + } + + /** + * Specify that it stops adding order-by of the key.
This method is + * valid only after you use reffererConditionBean and add your original + * order-by to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption stopOrderByKey() { + _stopOrderByKey = true; + return this; + } + + public void delegateKeyConditionExchangingFirstWhereClauseForLastOne( + REFERRER_CONDITION_BEAN cb) {// Internal + if (!_toLastKeyCondition) { + cb.getSqlClause().exchangeFirstWhereClauseForLastOne(); + } + } + + public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal + if (_conditionBeanSetupper != null) { + _conditionBeanSetupper.setup(cb); + } + } + + public void delegateEntitySettingUp(List entityList) {// Internal + if (_entityListSetupper != null) { + _entityListSetupper.setup(entityList); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ConditionBeanSetupper getConditionBeanSetupper() { + return _conditionBeanSetupper; + } + + public void setConditionBeanSetupper( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public EntityListSetupper getEntityListSetupper() { + return _entityListSetupper; + } + + public void setEntityListSetupper( + EntityListSetupper entityListSetupper) { + this._entityListSetupper = entityListSetupper; + } + + public REFERRER_CONDITION_BEAN getReferrerConditionBean() { + return _referrerConditionBean; + } + + public void setReferrerConditionBean( + REFERRER_CONDITION_BEAN referrerConditionBean) { + this._referrerConditionBean = referrerConditionBean; + } + + public boolean isToLastKeyCondition() { + return _toLastKeyCondition; + } + + public boolean isStopOrderByKey() { + return _stopOrderByKey; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/load/LoadReferrerOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ConditionBeanSetupper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ConditionBeanSetupper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ConditionBeanSetupper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.setup; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; + +/** + * The interface of condition-bean setupper. + * + * @param The type of condition-bean. + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBeanSetupper { + + /** + * Set up condition. + * + * @param cb Condition-bean. (NotNull) + */ + public void setup(CONDITION_BEAN cb); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ConditionBeanSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/EntityListSetupper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.setup; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.Entity; + +/** + * The interface of entity list setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface EntityListSetupper { + + /** + * Set up the list of entity. + * + * @param entityList The list of entity. (NotNull) + */ + public void setup(List entityList); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/EntityListSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelBox.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelBox.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelBox.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,26 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.setup; + +/** + * The class of Value-Label Box. + * + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelBox { + + protected Object _value; + + protected String _label; + + public void setValueLabel(Object value, String label) { + this._value = value; + this._label = label; + } + + public Object getValue() { + return _value; + } + + public String getLabel() { + return _label; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelBox.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelSetupper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelSetupper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelSetupper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,20 @@ +package jp.sf.pal.userinfo.db.allcommon.bhv.setup; + +import jp.sf.pal.userinfo.db.allcommon.Entity; + +/** + * The interface of Value-Label Setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface ValueLabelSetupper { + + /** + * Set up value-label. + * + * @param box Value-label box. (NotNull) + * @param entity Entity. (NotNull) + */ + public void setup(ValueLabelBox box, ENTITY entity); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/bhv/setup/ValueLabelSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1199 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.WhereClauseSimpleFilter; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.MapListString; +import jp.sf.pal.userinfo.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * The condition-bean as abstract. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionBean implements ConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause(this); + } + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check + // logics by these purpose types. + protected boolean _forDeriveReferrer; + + protected boolean _forUnion; + + protected boolean _forExistsSubQuery; + + protected boolean _forInScopeSubQuery; + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * The implementation. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Where Clause Filter + // =================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + this._sqlClause.addWhereClauseSimpleFilter(whereClauseSimpleFilter); + } + + //========================================================================== + // ========= + // ConditionQuery + // ============== + /** + * Get condition query as interface. At the future, change public to + * protected. + * + * @return Instance of query as interface. (NotNull) + */ + abstract public ConditionQuery getConditionQueryAsInterface(); + + /** + * The implementation. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ() { + return getConditionQueryAsInterface(); + } + + //========================================================================== + // ========= + // Accept PrimaryKey + // ================= + /** + * The implementation. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] must not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + acceptPrimaryKeyMap(mapListString.generateMap(primaryKeyMapString)); + } + + protected void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException("The value should not be null: " + + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + protected long parseDateStringAsMillis(Object value, String propertyName, + String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = (String) value; + if (valueString.indexOf("-") >= 0 + && valueString.indexOf("-") != valueString.lastIndexOf("-")) { + return java.sql.Timestamp.valueOf(valueString).getTime(); + } else { + return getParseDateFormat().parse((String) value).getTime(); + } + } catch (java.text.ParseException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } + } + + private java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateTimeInstance(); + } + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) {// Very Internal! + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table left outer join ... on ... + * [from-hint] where ...} + * + * @return from-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * The implementation. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * The implementation. + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective() { + return getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + // Do nothing! + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return _sqlClause.getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Limit Select + // ============ + /** Is limit-select PK only? */ + protected boolean _isLimitSelectPKOnly; + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly() { + return _isLimitSelectPKOnly; + } + + /** + * Limit select PK only. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly() { + _isLimitSelectPKOnly = true; + return this; + } + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off() { + _isLimitSelectPKOnly = false; + return this; + } + + //========================================================================== + // ========= + // Lock Setting + // ============ + /** + * The implementation. + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate() { + getSqlClause().lockForUpdate(); + return this; + } + + //========================================================================== + // ========= + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = true; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().ignoreIncludedSelectColumn(); + } + + getSqlClause().ignoreOrderBy(); + getSqlClause().ignoreFetchScope(); + return this; + } + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = false; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().makeIncludedSelectColumnEffective(); + } + + getSqlClause().makeOrderByEffective(); + getSqlClause().makeFetchScopeEffective(); + return this; + } + + /** Is set up various things for select-count-ignore-fetch-scope? */ + protected boolean _isSelectCountIgnoreFetchScope; + + /** + * Is set up various things for select-count-ignore-fetch-scope? This method + * is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope() { + return _isSelectCountIgnoreFetchScope; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected static abstract class AbstractSpecification { + protected ConditionBean _baseCB; + + protected SpQyCall _qyCall; + + protected CQ _query; + + protected boolean _forDeriveReferrer; + + protected boolean alreadySpecifyRequiredColumn; + + /** + * @param baseCB The condition-bean of base level. (NotNull) + * @param qyCall The callback for condition-query. (NotNull) + * @param forDeriveReferrer Is this for derive referrer? + */ + protected AbstractSpecification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + _baseCB = baseCB; + _qyCall = qyCall; + _forDeriveReferrer = forDeriveReferrer; + } + + protected void doColumn(String columnName) { + assertColumn(columnName); + if (_query == null) { + _query = _qyCall.qy(); + } + if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) { + alreadySpecifyRequiredColumn = true; + doSpecifyRequiredColumn(); + } + String relationPath = _query.getRelationPath() != null ? _query + .getRelationPath() : ""; + final String tableAliasName; + if (_query.isBaseQuery(_query)) { + tableAliasName = _baseCB.getSqlClause() + .getLocalTableAliasName(); + } else { + tableAliasName = _baseCB.getSqlClause().resolveJoinAliasName( + relationPath, _query.getNestLevel()); + } + _baseCB.getSqlClause().specifySelectColumn(tableAliasName, + columnName); + } + + protected void assertColumn(String columnName) { + if (_query == null && !_qyCall.has()) { + throwSpecifyColumnNotSetupSelectColumnException(columnName); + } + } + + protected void assertForeign(String foreignPropertyName) { + if (_forDeriveReferrer) { + throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); + } + } + + protected abstract void doSpecifyRequiredColumn(); + + protected abstract String getTableDbName(); + + protected void throwSpecifyColumnNotSetupSelectColumnException( + String columnName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You specified the column that had Not been Set up!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName(); // *No!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + " cb.setupSelect_MemberStatus(); // *Point!" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName();" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + + _baseCB.getClass().getName() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Column]" + getLineSeparator() + + getTableDbName() + "." + columnName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifyColumnNotSetupSelectColumnException(msg); + } + + protected void throwDeriveReferrerInvalidForeignSpecificationException( + String foreignPropertyName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "You specified a foreign table column in spite of derive-sub-query!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified a local table column at condition-bean for derive-sub-query." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Foreign Property]" + getLineSeparator() + + foreignPropertyName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidForeignSpecificationException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + protected static interface SpQyCall { + public boolean has(); + + public CQ qy(); + } + + public static class SpecifyColumnNotSetupSelectColumnException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifyColumnNotSetupSelectColumnException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerInvalidForeignSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidForeignSpecificationException(String msg) { + super(msg); + } + } + + public static class RAFunction { + protected ConditionBean _baseCB; + + protected LOCAL_CQ _localCQ; + + protected RAQSetupper _querySetupper; + + public RAFunction(ConditionBean baseCB, LOCAL_CQ localCQ, + RAQSetupper querySetupper) { + _baseCB = baseCB; + _localCQ = localCQ; + _querySetupper = querySetupper; + } + + public void max(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("max", subQuery, _localCQ, aliasName.trim()); + } + + public void min(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("min", subQuery, _localCQ, aliasName.trim()); + } + + public void sum(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("sum", subQuery, _localCQ, aliasName.trim()); + } + + public void avg(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("avg", subQuery, _localCQ, aliasName.trim()); + } + + public void count(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("count", subQuery, _localCQ, aliasName.trim()); + } + + protected void assertAliasName(String aliasName) { + if (aliasName == null || aliasName.trim().length() == 0) { + throwDeriveReferrerInvalidAliasNameException(); + } + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_baseCB + .getTableDbName()); + Method[] methods = dbmeta.getEntityType().getMethods(); + String targetMethodName = "set" + + replaceString(aliasName, "_", "").toLowerCase(); + boolean existsSetterMethod = false; + for (Method method : methods) { + if (!method.getName().startsWith("set")) { + continue; + } + if (targetMethodName.equals(method.getName().toLowerCase())) { + existsSetterMethod = true; + break; + } + } + if (!existsSetterMethod) { + throwDeriveReferrerEntityPropertyNotFoundException(aliasName, + dbmeta.getEntityType()); + } + } + + protected void throwDeriveReferrerInvalidAliasNameException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The alias name for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Local Table]" + getLineSeparator() + + _localCQ.getTableDbName() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidAliasNameException(msg); + } + + protected void throwDeriveReferrerEntityPropertyNotFoundException( + String aliasName, Class entityType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "A property for derive-referrer was Not Found in the entity!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should implement a property(setter and getter) in the entity." + + getLineSeparator(); + msg = msg + + "Or you should confirm whether the alias name has typo or not." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [ConditionBean Invoking]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Extended Entity]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " // At the entity of Purchase..." + + getLineSeparator(); + msg = msg + " protected Date _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " public Date getLatestPurchaseDatetime() {" + + getLineSeparator(); + msg = msg + " return _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + + getLineSeparator(); + msg = msg + + " _latestPurchaseDatetime = latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entityType + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerEntityPropertyNotFoundException(msg); + } + + protected String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + public static interface RAQSetupper { + public void setup(String function, SubQuery subQuery, + LOCAL_CQ cq, String aliasName); + } + + public static class DeriveReferrerInvalidAliasNameException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidAliasNameException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerEntityPropertyNotFoundException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerEntityPropertyNotFoundException(String msg) { + super(msg); + } + } + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected void doSetupSelect(SsCall callback) { + String foreignPropertyName = callback.qf().getForeignPropertyName(); + assertSetupSelectBeforeUnion(foreignPropertyName); + limitSelect_Off(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + String localRelationPath = localCQ().getRelationPath(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, localRelationPath); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + protected static interface SsCall { + public ConditionQuery qf(); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + protected void assertPrimaryKeyMap( + Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] must not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] must not be empty."; + throw new IllegalArgumentException(msg); + } + List columnInfoList = DBMetaInstanceHandler.findDBMeta( + getTableDbName()).getPrimaryUniqueInfo().getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnDbName = columnInfo.getColumnDbName(); + if (!primaryKeyMap.containsKey(columnDbName)) { + String msg = "The primaryKeyMap must have the value of " + + columnDbName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + } + + protected void assertSetupSelectBeforeUnion(String foreignPropertyName) { + if (hasUnionQueryOrUnionAllQuery()) { + throwSetupSelectAfterUnionException( + this.getClass().getSimpleName(), foreignPropertyName); + } + } + + protected void throwSetupSelectAfterUnionException(String className, + String foreignPropertyName) { + String methodName = "setupSelect_" + initCap(foreignPropertyName) + + "()"; + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You should NOT call " + methodName + + " after calling union()!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + methodName + " should be called before calling union()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " " + className + " cb = new " + className + "();" + + getLineSeparator(); + msg = msg + " cb." + methodName + "; // You shuold call here!" + + getLineSeparator(); + msg = msg + " cb.query().setXxx...;" + getLineSeparator(); + msg = msg + " cb.union(new UnionQuery<" + className + ">() {" + + getLineSeparator(); + msg = msg + " public void query(" + className + " unionCB) {" + + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " });" + getLineSeparator(); + msg = msg + + " // You should not call setupSelect after calling union()!" + + getLineSeparator(); + msg = msg + " // cb." + methodName + ";" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SetupSelect Method]" + getLineSeparator() + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean SQL]" + getLineSeparator() + toDisplaySql() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql() { + return ConditionBeanContext.convertConditionBean2DisplaySql(this); + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Purpose Type + // ============ + public void xsetupForDeriveReferrer() { + _forDeriveReferrer = true; + } + + public void xsetupForUnion() { + _forUnion = true; + } + + public void xsetupForExistsSubQuery() { + _forExistsSubQuery = true; + } + + public void xsetupForInScopeSubQuery() { + _forInScopeSubQuery = true; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * The override. + * + * @return SQL for display. (NotNull) + */ + public String toString() { + try { + return toDisplaySql(); + } catch (RuntimeException e) { + return getSqlClause().getClause(); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionQuery.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionQuery.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionQuery.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1666 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; +import jp.sf.pal.userinfo.db.allcommon.util.TraceViewUtil; + +/** + * The abstract class of condition-query. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionQuery implements ConditionQuery { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final ConditionKey CK_EQ = ConditionKey.CK_EQUAL; + + protected static final ConditionKey CK_NE = ConditionKey.CK_NOT_EQUAL; + + protected static final ConditionKey CK_GE = ConditionKey.CK_GREATER_EQUAL; + + protected static final ConditionKey CK_GT = ConditionKey.CK_GREATER_THAN; + + protected static final ConditionKey CK_LE = ConditionKey.CK_LESS_EQUAL; + + protected static final ConditionKey CK_LT = ConditionKey.CK_LESS_THAN; + + protected static final ConditionKey CK_PS = ConditionKey.CK_PREFIX_SEARCH; + + protected static final ConditionKey CK_LS = ConditionKey.CK_LIKE_SEARCH; + + protected static final ConditionKey CK_INS = ConditionKey.CK_IN_SCOPE; + + protected static final ConditionKey CK_NINS = ConditionKey.CK_NOT_IN_SCOPE; + + protected static final ConditionKey CK_ISN = ConditionKey.CK_IS_NULL; + + protected static final ConditionKey CK_ISNN = ConditionKey.CK_IS_NOT_NULL; + + /** Condition value for DUMMY. */ + protected static final ConditionValue DUMMY_CONDITION_VALUE = new ConditionValue(); + + /** Object for DUMMY. */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** The property of condition-query. */ + protected static final String CQ_PROPERTY = "conditionQuery"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause. */ + protected final SqlClause _sqlClause; + + /** My alias name. */ + protected final String _aliasName; + + /** The level of nest. */ + protected final int _nestLevel; + + /** The level of subQuery. */ + protected int _subQueryLevel; + + // ----------------------------------------------------- + // Foreign Info + // ------------ + /** The property name of foreign. */ + protected String _foreignPropertyName; + + /** The path of relation. */ + protected String _relationPath; + + /** The query of child. */ + protected final ConditionQuery _childQuery; + + // ----------------------------------------------------- + // Inline + // ------ + /** Is it the inline for on-clause. (Property for Inline Only) */ + protected boolean _onClauseInline; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query. (Nullable: If null, this is base + * instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public AbstractConditionQuery(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + _childQuery = childQuery; + _sqlClause = sqlClause; + _aliasName = aliasName; + _nestLevel = nestLevel; + } + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery() { + return _childQuery; + } + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName() { + return _aliasName; + } + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel() { + return _nestLevel; + } + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel() { + return _nestLevel + 1; + } + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query) { + return (query.getChildQuery() == null); + } + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel() { + return _subQueryLevel; + } + + // ----------------------------------------------------- + // Real Name + // --------- + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. + */ + public String getRealAliasName() { + return getAliasName(); + } + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. This should not contain + * comma. (NotNull) + * @return Real column name. + */ + public String getRealColumnName(String columnName) { + assertColumnName(columnName); + return buildRealColumnName(getRealAliasName(), columnName); + } + + /** + * Build real column name. + * + * @param aliasName Alias name. (NotNull) + * @param columnName Column name. (NotNull) + * @return Real column name. (NotNull) + */ + protected String buildRealColumnName(String aliasName, String columnName) { + return aliasName + "." + columnName; + } + + // ----------------------------------------------------- + // Foreign Info + // ------------ + public String getForeignPropertyName() { + return _foreignPropertyName; + } + + public void xsetForeignPropertyName(String foreignPropertyName) { + this._foreignPropertyName = foreignPropertyName; + } + + public String getRelationPath() { + return _relationPath; + } + + public void xsetRelationPath(String relationPath) { + this._relationPath = relationPath; + } + + // ----------------------------------------------------- + // Inline + // ------ + public void xsetOnClauseInline(boolean onClauseInline) { + _onClauseInline = onClauseInline; + } + + //========================================================================== + // ========= + // Location + // ======== + /** + * Get location. + * + * @param columnPropertyName Column property name. + * @param key Condition key. + * @return Next nest level. + */ + protected String getLocation(String columnPropertyName, ConditionKey key) { + return getLocationBase(columnPropertyName) + "." + + key.getConditionKey(); + } + + protected String getLocationBase() { + final StringBuffer sb = new StringBuffer(); + ConditionQuery query = this; + while (true) { + if (query.isBaseQuery(query)) { + sb.insert(0, CQ_PROPERTY + "."); + break; + } else { + final String foreignPropertyName = query + .getForeignPropertyName(); + if (foreignPropertyName == null) { + String msg = "The foreignPropertyName of the query should not be null:"; + msg = msg + " query=" + query; + throw new IllegalStateException(msg); + } + sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + "."); + } + query = query.getChildQuery(); + } + return sb.toString(); + } + + protected String getLocationBase(String columnPropertyName) { + return getLocationBase() + columnPropertyName; + } + + //========================================================================== + // ========= + // Union Query + // =========== + /** The map of union query. */ + protected Map _unionQueryMap; + + /** + * Get the map of union query. + * + * @return The map of union query. (NotNull) + */ + public Map getUnionQueryMap() {// for Internal + if (_unionQueryMap == null) { + _unionQueryMap = new LinkedHashMap(); + } + return _unionQueryMap; + } + + /** + * Set union query. {Internal} + * + * @param unionQuery Union query. (NotNull) + */ + public void xsetUnionQuery(ConditionQuery unionQuery) { + xsetupUnion(unionQuery, false, getUnionQueryMap()); + } + + /** The map of union all query. */ + protected Map _unionAllQueryMap; + + /** + * Get the map of union all query. + * + * @return The map of union all query. (NotNull) + */ + public Map getUnionAllQueryMap() {// for Internal + if (_unionAllQueryMap == null) { + _unionAllQueryMap = new LinkedHashMap(); + } + return _unionAllQueryMap; + } + + /** + * Set union all query. {Internal} + * + * @param unionAllQuery Union all query. (NotNull) + */ + public void xsetUnionAllQuery(ConditionQuery unionAllQuery) { + xsetupUnion(unionAllQuery, true, getUnionAllQueryMap()); + } + + protected void xsetupUnion(ConditionQuery unionQuery, boolean unionAll, + Map unionQueryMap) { + if (unionQuery == null) { + String msg = "The argument[unionQuery] should not be null."; + throw new IllegalArgumentException(msg); + } + reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation! + getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect + // IncludedSelectColumn + // ! + if (getSqlClause().isFormatClauseEffective()) { + unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect + // FormatClause + // ! + } + String key = (unionAll ? "unionAllQuery" : "unionQuery") + + unionQueryMap.size(); + unionQueryMap.put(key, unionQuery); + registerUnionQuery(unionQuery, unionAll, (unionAll ? "unionAllQueryMap" + : "unionQueryMap") + + "." + key); + } + + /** + * Reflect relation on union query. + * + * @param baseQueryAsSuper Base query as super. (NotNull) + * @param unionQueryAsSuper Union query as super. (NotNull) + */ + abstract protected void reflectRelationOnUnionQuery( + ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper); + + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery() { + return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) + || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty()); + } + + /** + * Get the list of union query. + * + * @return The list of union query. (NotNull) + */ + public List getUnionQueryList() { + if (_unionQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionQueryMap.values()); + } + + /** + * Get the list of union all query. + * + * @return The list of union all query. (NotNull) + */ + public List getUnionAllQueryList() { + if (_unionAllQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionAllQueryMap.values()); + } + + //========================================================================== + // ========= + // Register + // ======== + // ----------------------------------------------------- + // Include-As-Mine + // --------------- + /** + * Register included-select-column. + * + * @param aliasName Alias name. This should not contain comma. (NotNull) + * @param realColumnName Real column name. This should not contain comma. + * (NotNull) + * @deprecated Unsupported! + */ + protected void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + throw new UnsupportedOperationException(); + } + + // ----------------------------------------------------- + // Query + // ----- + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName); + } + } + + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + + // ----------------------------------------------------- + // FromTo Query + // ------------ + protected void registerFromToQuery(java.util.Date fromDate, + java.util.Date toDate, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, FromToOption option) { + { + final java.util.Date filteredFromDate = option + .filterFromDate(fromDate); + final ConditionKey fromKey = option.getFromDateConditionKey(); + if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(fromKey, + filteredFromDate, cvalue, colName, capPropName, + uncapPropName); + } + } + { + final java.util.Date filteredToDate = option.filterToDate(toDate); + final ConditionKey toKey = option.getToDateConditionKey(); + if (toKey.isValidRegistration(cvalue, filteredToDate, toKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(toKey, + filteredToDate, cvalue, colName, capPropName, + uncapPropName); + } + } + } + + // ----------------------------------------------------- + // LikeSearch Query + // ---------------- + @SuppressWarnings("deprecation") + protected void registerLikeSearchQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, LikeSearchOption option) { + final String validationMsg = key.getConditionKey() + " of " + + getRealAliasName() + "." + colName; + if (!key.isValidRegistration(cvalue, value, validationMsg)) { + return; + } + if (option == null) { + throwLikeSearchOptionNotFoundException(capPropName, value); + return;// Unreachable! + } + if (value == null || !option.isSplit()) { + // As Normal Condition. + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + return; + } + // - - - - - - - - - + // Use splitByXxx(). + // - - - - - - - - - + final String[] strArray = option.generateSplitValueArray(value); + if (!option.isAsOrSplit()) { + // As 'and' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + setupConditionValueAndRegisterWhereClause(key, currentValue, + cvalue, colName, capPropName, uncapPropName, option); + + // Callback for LikeAsOr! + final List callbackList = option + .getLikeAsOrCallbackList(); + if (!callbackList.isEmpty()) { + getSqlClause().makeAdditionalConditionAsOrEffective(); + for (Iterator ite = callbackList + .iterator(); ite.hasNext();) { + final LikeSearchOption.LikeAsOrCallback likeAsOrCallback = (LikeSearchOption.LikeAsOrCallback) ite + .next(); + final String additionalTargetPropertyName = likeAsOrCallback + .getAdditionalTargetPropertyName(); + final String filteredValue = likeAsOrCallback + .filterValue(currentValue); + final LikeSearchOption optionDeepCopy = (LikeSearchOption) option + .createDeepCopy(); + optionDeepCopy.clearLikeAsOrCallback(); + final LikeSearchOption filteredOption = likeAsOrCallback + .filterOption(optionDeepCopy); + invokeSetterLikeSearch(additionalTargetPropertyName, + filteredValue, filteredOption); + } + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + } else { + // As 'or' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + if (i == 0) { + setupConditionValueAndRegisterWhereClause(key, + currentValue, cvalue, colName, capPropName, + uncapPropName, option); + } else { + getSqlClause().makeAdditionalConditionAsOrEffective(); + invokeSetterLikeSearch(uncapPropName, currentValue, option); + } + } + + // @jflute -- Callback for LikeAsOr! + // final List callbackList = + // option.getLikeAsOrCallbackList(); + // ... + + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + + protected void throwLikeSearchOptionNotFoundException(String capPropName, + String value) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = getClass().getSimpleName(); + final String methodName = "set" + capPropName + "_LikeSearch('" + value + + "', likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new RequiredOptionNotFoundException(msg); + } + + protected void invokeSetterLikeSearch(String columnFlexibleName, + Object value, LikeSearchOption option) { + if (value == null) { + return; + } + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "set" + columnCapPropName + "_LikeSearch"; + Method method = null; + try { + method = this.getClass().getMethod(methodName, + new Class[] { value.getClass(), LikeSearchOption.class }); + } catch (NoSuchMethodException e) { + String msg = "The columnFlexibleName is not existing in this table: columnFlexibleName=" + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + method.invoke(this, new Object[] { value, option }); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + // ----------------------------------------------------- + // InScope Query + // ------------- + protected void registerInScopeQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, InScopeOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + if (value != null && option.isSplit()) { + final String[] strArray = option.generateSplitValueArray(value); + final List realValueList = new ArrayList(); + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + realValueList.add(currentValue); + } + setupConditionValueAndRegisterWhereClause(key, realValueList, + cvalue, colName, capPropName, uncapPropName, option); + } else { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + } + + // ----------------------------------------------------- + // Inline Query + // ------------ + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key));// If Java, it is necessary to use uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, + _onClauseInline); + } + } + } + + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key), option);// If Java, it is necessary to use + // uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue, option); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, option, + _onClauseInline); + } + } + } + + // ----------------------------------------------------- + // InScopeSubQuery + // --------------- + // {Modified at DBFlute-0.7.5} + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String inScopeOption) { + assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery); + inScopeOption = inScopeOption != null ? inScopeOption + " " : ""; + String realColumnName = getInScopeSubQueryRealColumnName(columnName); + String subQueryClause = getInScopeSubQuerySql(subQuery, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = realColumnName + " " + inScopeOption + "in (" + beginMark + + subQueryClause + ln + endIndent + ")" + endMark; + } else { + clause = realColumnName + " " + inScopeOption + "in (" + + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + protected String getInScopeSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getInScopeSubQuerySql(ConditionQuery subQuery, + String relatedColumnName, String propertyName) { + String selectClause = "select " + + getSqlClause().getLocalTableAliasName() + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + return selectClause + " " + fromWhereClause; + } + + // ----------------------------------------------------- + // ExistsSubQuery + // -------------- + // {Modified at DBFlute-0.7.5} + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String existsOption) { + assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery); + existsOption = existsOption != null ? existsOption + " " : ""; + String realColumnName = getExistsSubQueryRealColumnName(columnName); + String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = existsOption + "exists (" + beginMark + subQueryClause + + ln + endIndent + ")" + endMark; + } else { + clause = existsOption + "exists (" + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // *Unsupport ExistsSubQuery as inline because it's so dangerous. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + protected String getExistsSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getExistsSubQuerySql(ConditionQuery subQuery, + String realColumnName, String relatedColumnName, String propertyName) { + int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + String tableAliasName = "dfsublocal_" + subQueryLevel; + String selectClause = "select " + tableAliasName + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + String joinCondition = tableAliasName + "." + relatedColumnName + " = " + + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + // [DBFlute-0.7.4] + // ----------------------------------------------------- + // DeriveSubQuery + // -------------- + protected void registerDeriveSubQuery(String function, + ConditionQuery subQuery, String columnName, + String relatedColumnName, String propertyName, String aliasName) { + assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery); + final String realColumnName = getDeriveSubQueryRealColumnName(columnName); + final String subQueryClause = getDeriveSubQuerySql(function, subQuery, + realColumnName, relatedColumnName, propertyName, aliasName); + final String clause; + if (getSqlClause().isFormatClauseEffective()) { + final String ln = getLineSeparator(); + final int subQueryLevel = subQuery.getSubQueryLevel(); + final String subQueryIdentity = propertyName + "[" + subQueryLevel + + "]"; + final String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + final String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + final String endIndent = " "; + clause = "(" + beginMark + subQueryClause + ln + endIndent + + ") as " + aliasName + endMark; + } else { + clause = "(" + subQueryClause + ") as " + aliasName; + } + getSqlClause().specifyDeriveSubQuery(aliasName, clause); + } + + protected String getDeriveSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getDeriveSubQuerySql(String function, + ConditionQuery subQuery, String realColumnName, + String relatedColumnName, String propertyName, String aliasName) { + final int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + final String tableAliasName = "dfsublocal_" + subQueryLevel; + final String deriveColumnName = subQuery.getSqlClause() + .getSpecifiedColumnNameAsOne(); + if (deriveColumnName == null || deriveColumnName.trim().length() == 0) { + throwDeriveReferrerInvalidColumnSpecificationException(function, + aliasName); + } + assertDeriveReferrerColumnType(function, subQuery, deriveColumnName); + subQuery.getSqlClause().clearSpecifiedSelectColumn(); + final String selectClause = "select " + function + "(" + tableAliasName + + "." + deriveColumnName + ")"; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + final String joinCondition = tableAliasName + "." + relatedColumnName + + " = " + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + protected void throwDeriveReferrerInvalidColumnSpecificationException( + String function, String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The specified the column for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + " You should call specify().column[TargetColumn]() only once." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " // *No! It's empty!" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime(); // *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidColumnSpecificationException(msg); + } + + public static class DeriveReferrerInvalidColumnSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidColumnSpecificationException(String msg) { + super(msg); + } + } + + protected void assertDeriveReferrerColumnType(String function, + ConditionQuery subQuery, String deriveColumnName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(subQuery + .getTableDbName()); + final Class deriveColumnType = dbmeta.findColumnInfo( + deriveColumnName).getPropertyType(); + if ("sum".equalsIgnoreCase(function) + || "avg".equalsIgnoreCase(function)) { + if (!Number.class.isAssignableFrom(deriveColumnType)) { + throwDeriveReferrerUnmatchedColumnTypeException(function, + deriveColumnName, deriveColumnType); + } + } + } + + protected void throwDeriveReferrerUnmatchedColumnTypeException( + String function, String deriveColumnName, Class deriveColumnType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The type of the specified the column unmatched with the function!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should confirm the list as follow:" + + getLineSeparator(); + msg = msg + " max() : String, Number, Date" + getLineSeparator(); + msg = msg + " min() : String, Number, Date" + getLineSeparator(); + msg = msg + " sum() : Number" + getLineSeparator(); + msg = msg + " avg() : Number" + getLineSeparator(); + msg = msg + " count() : String, Number, Date" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Function]" + getLineSeparator() + function + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + + "(" + deriveColumnType.getName() + ")" + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerUnmatchedColumnTypeException(msg); + } + + public static class DeriveReferrerUnmatchedColumnTypeException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerUnmatchedColumnTypeException(String msg) { + super(msg); + } + } + + // ----------------------------------------------------- + // Where Clause + // ------------ + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If + // Java + // , + // it + // is + // necessary + // to + // use + // uncapPropName + // ! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue); + } + + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), + option);// If Java, it is necessary to use uncapPropName! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue, option); + } + + protected void registerWhereClause(String whereClause) { + getSqlClause().registerWhereClause(whereClause); + } + + protected void registerInlineWhereClause(String whereClause) { + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(whereClause); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), whereClause, _onClauseInline); + } + } + + // ----------------------------------------------------- + // Union Query + // ----------- + public void registerUnionQuery(ConditionQuery unionQuery, boolean unionAll, + String unionQueryPropertyName) { + final String unionQueryClause = getUnionQuerySql(unionQuery, + unionQueryPropertyName); + + // At the future, building SQL will be moved to sqlClause. + getSqlClause().registerUnionQuery(unionQueryClause, unionAll); + } + + protected String getUnionQuerySql(ConditionQuery unionQuery, + String unionQueryPropertyName) { + final String fromClause = unionQuery.getSqlClause().getFromClause(); + final String whereClause = unionQuery.getSqlClause().getWhereClause(); + final String unionQueryClause; + if (whereClause.trim().length() <= 0) { + unionQueryClause = fromClause + " " + + getSqlClause().getUnionWhereClauseMark(); + } else { + final int whereIndex = whereClause.indexOf("where "); + if (whereIndex < 0) { + String msg = "The whereClause should have 'where' string: " + + whereClause; + throw new IllegalStateException(msg); + } + final int clauseIndex = whereIndex + "where ".length(); + final String mark = getSqlClause() + .getUnionWhereFirstConditionMark(); + unionQueryClause = fromClause + " " + + whereClause.substring(0, clauseIndex) + mark + + whereClause.substring(clauseIndex); + } + final String oldStr = ".conditionQuery."; + final String newStr = ".conditionQuery." + unionQueryPropertyName + "."; + return replaceString(unionQueryClause, oldStr, newStr);// Very + // Important! + } + + // ----------------------------------------------------- + // OrderBy + // ------- + public void withNullsFirst() {// is User Public! + getSqlClause().addNullsFirstToPreviousOrderBy(); + } + + public void withNullsLast() {// is User Public! + getSqlClause().addNullsLastToPreviousOrderBy(); + } + + protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, true); + } + + protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, false); + } + + protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException( + String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The aliasName was Not Found in specified alias names." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified an alias name that is the same as one in specify-derived-referrer." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg); + } + + public static class SpecifiedDerivedOrderByAliasNameNotFoundException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) { + super(msg); + } + } + + protected void registerOrderBy(String columnName, boolean ascOrDesc) { + getSqlClause().registerOrderBy(getRealColumnName(columnName), null, + ascOrDesc); + } + + protected void regOBA(String columnName) { + registerOrderBy(columnName, true); + } + + protected void regOBD(String columnName) { + registerOrderBy(columnName, false); + } + + //========================================================================== + // ========= + // Name Resolver + // ============= + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param nestLevel Nest level. + * @return Resolved join alias name. (NotNull) + */ + protected String resolveJoinAliasName(String relationPath, int nestLevel) { + return getSqlClause().resolveJoinAliasName(relationPath, nestLevel); + } + + protected String resolveNestLevelExpression(String name) { + return getSqlClause().resolveNestLevelExpression(name, getNestLevel()); + } + + protected String resolveNextRelationPath(String tableName, + String relationPropertyName) { + final int relationNo = getSqlClause().resolveRelationNo(tableName, + relationPropertyName); + String nextRelationPath = "_" + relationNo; + if (_relationPath != null) { + nextRelationPath = _relationPath + nextRelationPath; + } + return nextRelationPath; + } + + //========================================================================== + // ========= + // Fixed Condition + // =============== + protected String prepareFixedCondition(String fixedCondition, + String localAliasName, String foreignAliasName) { + fixedCondition = replaceString(fixedCondition, "$$alias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$localAlias$$", + localAliasName); + return fixedCondition; + } + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "get" + columnCapPropName; + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, columnFlexibleName); + return (ConditionValue) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", + conditionKeyName); + if (value == null) { + return; + } + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "set" + columnCapPropName + "_" + + initCap(conditionKeyName); + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] { value.getClass() }, propertyName); + helpInvokingCQMethod(cq, method, new Object[] { value }); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of a column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final String ascDesc = isAsc ? "Asc" : "Desc"; + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "addOrderBy_" + columnCapPropName + "_" + + ascDesc; + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] {}, propertyName); + helpInvokingCQMethod(cq, method, new Object[] {}); + } + + /** + * The implementation. + * + * @param foreignPropertyName The property name of foreign. (NotNull and + * NotEmpty) + * @return The conditionQuery of foreign as interface. (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = "query" + initCap(foreignPropertyName); + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, foreignPropertyName); + return (ConditionQuery) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + private PropertyNameCQContainer helpExtractingPropertyNameCQContainer( + String name) { + final String[] strings = name.split("\\."); + final int length = strings.length; + String propertyName = null; + ConditionQuery cq = this; + int index = 0; + for (String element : strings) { + if (length == (index + 1)) {// at last loop! + propertyName = element; + break; + } + cq = cq.invokeForeignCQ(element); + ++index; + } + return new PropertyNameCQContainer(propertyName, cq); + } + + private static class PropertyNameCQContainer { + protected String _propertyName; + + protected ConditionQuery _cq; + + public PropertyNameCQContainer(String propertyName, ConditionQuery cq) { + this._propertyName = propertyName; + this._cq = cq; + } + + public String getPropertyName() { + return _propertyName; + } + + public ConditionQuery getConditionQuery() { + return _cq; + } + } + + private Method helpGettingCQMethod(ConditionQuery cq, String methodName, + Class[] argTypes, String property) { + try { + return cq.getClass().getMethod(methodName, argTypes); + } catch (NoSuchMethodException e) { + String msg = "The method is not existing:"; + msg = msg + " methodName=" + methodName; + msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes); + msg = msg + " tableName=" + cq.getTableDbName(); + msg = msg + " property=" + property; + throw new IllegalStateException(msg, e); + } + } + + private Object helpInvokingCQMethod(ConditionQuery cq, Method method, + Object[] args) { + try { + return method.invoke(cq, args); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e.getCause()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String fRES(String value) { + return filterRemoveEmptyString(value); + } + + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + private String filterRemoveEmptyString(String value) { + return ((value != null && !"".equals(value)) ? value : null); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + protected List cTL( + Collection col) { + return convertToList(col); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + private List convertToList( + Collection col) { + if (col == null) { + return null; + } + if (col instanceof List) { + return filterRemoveNullOrEmptyValueFromList((List) col); + } + return filterRemoveNullOrEmptyValueFromList(new ArrayList( + col)); + } + + private List filterRemoveNullOrEmptyValueFromList( + List ls) { + if (ls == null) { + return null; + } + List newList = new ArrayList(); + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final PROPERTY_TYPE element = ite.next(); + if (element == null) { + continue; + } + if (element instanceof String) { + if (((String) element).length() == 0) { + continue; + } + } + newList.add(element); + } + return newList; + } + + public void doNss(NssCall callback) {// Very Internal + String foreignPropertyName = callback.qf().getForeignPropertyName(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, getRelationPath()); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + public static interface NssCall {// Very Internal + public ConditionQuery qf(); + } + + protected void registerOuterJoin(ConditionQuery cq, + Map joinOnMap) { + getSqlClause().registerOuterJoin(cq.getTableSqlName(), + cq.getRealAliasName(), joinOnMap); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected String convertObjectArrayToStringView(Object[] objArray) { + return TraceViewUtil.convertObjectArrayToStringView(objArray); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the column-name is not null and is not empty and does not + * contain comma. + * + * @param columnName Column-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertColumnName(String columnName) { + if (columnName == null) { + String msg = "The columnName should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnName.trim().length() == 0) { + String msg = "The columnName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (columnName.indexOf(",") >= 0) { + String msg = "The columnName should not contain comma ',': " + + columnName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the alias-name is not null and is not empty and does not + * contain comma. + * + * @param aliasName Alias-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertAliasName(String aliasName) { + if (aliasName == null) { + String msg = "The aliasName should not be null."; + throw new IllegalArgumentException(msg); + } + if (aliasName.trim().length() == 0) { + String msg = "The aliasName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (aliasName.indexOf(",") >= 0) { + String msg = "The aliasName should not contain comma ',': " + + aliasName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return getClass().getSimpleName() + ":{aliasName=" + _aliasName + + ", nestLevel=" + _nestLevel + ", subQueryLevel=" + + _subQueryLevel + ", foreignPropertyName=" + + _foreignPropertyName + ", relationPath=" + _relationPath + + ", onClauseInline=" + _onClauseInline + "}"; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/AbstractConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,226 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; + +/** + * The interface of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBean extends PagingBean { + + //========================================================================== + // =========== + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get SQL-clause instance. + * + * @return SQL-clause. (NotNull) + */ + public SqlClause getSqlClause(); + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + /** + * Accept primary-key map-string. + * + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap( + java.util.Map primaryKeyMap); + + /** + * Accept primary-key map-string. Delimiter is at-mark and semicolon. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString); + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + /** + * Add order-by PrimaryKey asc. {order by primaryKey1 asc, primaryKey2 + * asc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Asc(); + + /** + * Add order-by PrimaryKey desc. {order by primaryKey1 desc, primaryKey2 + * desc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Desc(); + + //========================================================================== + // ========= + // Query + // ===== + /** + * Get condition-query as interface. + * + * @return Instance of query as interface. (NotNull) + * @deprecated + */ + public ConditionQuery getConditionQueryAsInterface(); + + /** + * Get the conditionQuery of the local table as interface. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ(); + + //========================================================================== + // ========= + // Union Query + // =========== + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery(); + + //========================================================================== + // ========= + // Limit Select + // ============ + /** + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly(); + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off(); + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly(); + + //========================================================================== + // =========== + // Lock Setting + // ============ + /** + * Lock for update. + *

+ * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

+ * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate(); + + //========================================================================== + // =========== + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope(); + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope(); + + /** + * Is set up various things for select-count-ignore-fetch-scope? {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope(); + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig); + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig(); + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBeanContext.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBeanContext.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,428 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.DBFluteConfig; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseDb2; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseDerby; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseFirebird; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseH2; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseMySql; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseOracle; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClausePostgreSql; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClauseSqlServer; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The context of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionBeanContext { + + /** Log instance. */ + private static final Log _log = LogFactory + .getLog(ConditionBeanContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get condition-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static ConditionBean getConditionBeanOnThread() { + return (ConditionBean) _threadLocal.get(); + } + + /** + * Set condition-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setConditionBeanOnThread(ConditionBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing condition-bean on thread? + * + * @return Determination. + */ + public static boolean isExistConditionBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear condition-bean on thread. + */ + public static void clearConditionBeanOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Initialize against the ClassLoader Headache + // =========================================== + @SuppressWarnings("unused") + public static void initialize() { + boolean debugEnabled = _log.isDebugEnabled(); + // Against the ClassLoader Headache! + final StringBuilder sb = new StringBuilder(); + { + final Class clazz = jp.sf.pal.userinfo.db.allcommon.cbean.SimplePagingBean.class; + if (debugEnabled) { + sb.append( + " ...Loading class of " + clazz.getName() + " by " + + clazz.getClassLoader().getClass()).append( + getLineSeparator()); + } + } + { + Class clazz = jp.sf.pal.userinfo.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.userinfo.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingOption.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingRowEndDeterminer.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingRowResource.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingRowSetupper.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.PageNumberLink.class; + clazz = jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper.class; + clazz = jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler.class; + if (debugEnabled) { + sb.append(" ...Loading class of ...and so on"); + } + } + if (debugEnabled) { + _log.debug("{Initialize against the ClassLoader Headache}" + + getLineSeparator() + sb); + } + } + + //========================================================================== + // ========= + // Type Determination + // ================== + /** + * Is the argument condition-bean? + * + * @param dtoInstance DTO instance. + * @return Determination. + */ + public static boolean isTheArgumentConditionBean(final Object dtoInstance) { + if (dtoInstance instanceof ConditionBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type condition-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeConditionBean(final Class dtoClass) { + if (ConditionBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ========= + // Product Name + // ============ + public static final String DB_NAME_DERBY = "derby"; + + public static final String DB_NAME_H2 = "h2"; + + public static final String DB_NAME_ORACLE = "oracle"; + + public static final String DB_NAME_MYSQL = "mysql"; + + public static final String DB_NAME_POSTGRESQL = "postgresql"; + + public static final String DB_NAME_FIREBIRD = "firebird"; + + public static final String DB_NAME_MSSQL = "mssql"; + + public static final String DB_NAME_SYBASE = "sybase"; + + public static final String DB_NAME_DB2 = "db2"; + + protected static final Map _driverHintDatabaseProductNameMap; + static { + final Map tmpMap = Collections + .synchronizedMap(new LinkedHashMap()); + tmpMap.put("org.apache.derby", DB_NAME_DERBY); + tmpMap.put("org.h2", DB_NAME_H2); + tmpMap.put("oracle", DB_NAME_ORACLE); + tmpMap.put("mysql", DB_NAME_MYSQL); + tmpMap.put("postgresql", DB_NAME_POSTGRESQL); + tmpMap.put("firebird", DB_NAME_FIREBIRD); + tmpMap.put("sqlserver", DB_NAME_MSSQL); + tmpMap.put("sybase", DB_NAME_SYBASE); + tmpMap.put("db2", DB_NAME_DB2); + _driverHintDatabaseProductNameMap = java.util.Collections + .unmodifiableMap(tmpMap); + } + + public static boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + final java.util.Set keySet = _driverHintDatabaseProductNameMap + .keySet(); + for (final java.util.Iterator ite = keySet.iterator(); ite + .hasNext();) { + final String driverHint = (String) ite.next(); + if (driverClassName.indexOf(driverHint) >= 0) { + final String databaseProductName = (String) _driverHintDatabaseProductNameMap + .get(driverHint); + setDatabaseProductName(databaseProductName); + return true; + } + } + return false; + } + + /** The database product name. */ + private static String _databaseProductName; + + /** + * Get database product name. + * + * @return Database product name. + */ + public static String getDatabaseProductName() { + return _databaseProductName; + } + + /** + * Set database product name. + * + * @param name Database product name. (NotNull) + */ + public static void setDatabaseProductName(String name) { + if (_databaseProductName != null) { + String msg = "Already set up: current=" + _databaseProductName + + " your=" + name; + throw new IllegalStateException(msg); + } + _databaseProductName = name; + } + + //========================================================================== + // ========= + // SqlClause Creator + // ================= + /** + * Create SQL-clause. {for condition-bean} + * + * @param cb Condition-bean. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(ConditionBean cb) { + final String tableSqlName = cb.getTableSqlName(); + final SqlClause sqlClause = createSqlClause(tableSqlName); + if (DBFluteConfig.getInstance().isConditionBeanFormatSql()) { + sqlClause.makeFormatClauseEffective(); + } + return sqlClause; + } + + /** + * Create SQL-clause. {for SimplePagingBean} + * + * @param tableDbName The DB name of table. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(String tableDbName) { + final String databaseProductName = getDatabaseProductName(); + if (databaseProductName == null) { + return new SqlClauseH2(tableDbName); + } + final String name = databaseProductName.toLowerCase(); + if (name.equalsIgnoreCase(DB_NAME_DERBY)) { + return new SqlClauseDerby(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_H2)) { + return new SqlClauseH2(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_ORACLE)) { + return new SqlClauseOracle(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_FIREBIRD)) { + return new SqlClauseFirebird(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MYSQL)) { + return new SqlClauseMySql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_POSTGRESQL)) { + return new SqlClausePostgreSql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MSSQL)) { + return new SqlClauseSqlServer(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_DB2)) { + return new SqlClauseDb2(tableDbName); + } else { + return new SqlClauseH2(tableDbName); + } + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwEntityAlreadyDeletedException(Object searchKey4Log) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity was Not Found! it has already been deleted!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target record on your database." + + getLineSeparator(); + msg = msg + + "Does the target record really created before this operation?" + + getLineSeparator(); + msg = msg + "Has the target record been deleted by other thread?" + + getLineSeparator(); + msg = msg + + "It is precondition that the record exists on your database." + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } + + public static void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + + resultCountString + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm your search condition. Does it really select the only one?" + + getLineSeparator(); + msg = msg + + "Please confirm your database. Does it really exist the only one?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + if (cause != null) { + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException( + msg, cause); + } else { + throw new jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + //========================================================================== + // ========= + // Display SQL + // =========== + public static String convertConditionBean2DisplaySql(ConditionBean cb) { + final String twoWaySql; + if (cb.isLimitSelect_PKOnly()) { + twoWaySql = cb.getSqlClause().getClausePKOnly(); + } else { + twoWaySql = cb.getSqlClause().getClause(); + } + return InternalSqlParser.convertTwoWaySql2DisplaySql(twoWaySql, cb); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public static boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return createSqlClause("dummy").isUniqueConstraintException(sqlState, + errorCode); + } + + // [DBFlute-0.7.8] + //========================================================================== + // ========= + // Database Type + // ============= + /** + * Is the database Oracle? + * + * @return Is the database Oracle? + */ + public static boolean isOracle() { + return createSqlClause("dummy") instanceof SqlClauseOracle; + } + + /** + * Is the database PostgreSQL? + * + * @return Is the database PostgreSQL? + */ + public static boolean isPostgreSql() { + return createSqlClause("dummy") instanceof SqlClausePostgreSql; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionQuery.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionQuery.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionQuery.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,153 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The condition-query as interface. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface ConditionQuery { + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. (NotNull) + */ + public String getRealAliasName(); + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. (NotNull) + * @return Real column name. (NotNull) + */ + public String getRealColumnName(String columnName); + + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery(); + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause(); + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName(); + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel(); + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel(); + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query); + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel(); + + /** + * Get the property name of foreign relation. + * + * @return The property name of foreign relation. (NotNull) + */ + public String getForeignPropertyName(); + + /** + * Get the path of foreign relation. + * + * @return The path of foreign relation. (NotNull) + */ + public String getRelationPath(); + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * Invoke getting value. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName); + + /** + * Invoke setting query. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value); + + /** + * Invoke adding orderBy. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc); + + /** + * Invoke getting foreign conditionQuery. + * + * @param foreignPropertyName The property name of the foreign relation. + * (NotNull and NotEmpty) + * @return The conditionQuery of the foreign relation as interface. + * (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,62 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +/** + * The bean of fetch narrowing. + * + * @author DBFlute(AutoGenerator) + */ +public interface FetchNarrowingBean { + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective(); + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing(); + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing(); + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBeanContext.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBeanContext.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBeanContext.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,79 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +/** + * Fetch-Narrowing-Bean context. (referring to s2pager) + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingBeanContext { + + /** The thread-local for this. */ + private static ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get fetch-narrowing-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static FetchNarrowingBean getFetchNarrowingBeanOnThread() { + return (FetchNarrowingBean) _threadLocal.get(); + } + + /** + * Set fetch-narrowing-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setFetchNarrowingBeanOnThread(FetchNarrowingBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing fetch-narrowing-bean on thread? + * + * @return Determination. + */ + public static boolean isExistFetchNarrowingBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear fetch-narrowing-bean on thread. + */ + public static void clearFetchNarrowingBeanOnThread() { + _threadLocal.set(null); + } + + /** + * Is the argument fetch-narrowing-bean? + * + * @param dtoInstance Dto instance. + * @return Determination. + */ + public static boolean isTheArgumentFetchNarrowingBean( + final Object dtoInstance) { + if (dtoInstance instanceof FetchNarrowingBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type fetch-narrowing-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeFetchNarrowingBean(final Class dtoClass) { + if (FetchNarrowingBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/FetchNarrowingBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ListResultBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ListResultBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ListResultBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,392 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; +import jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingRowResource; +import jp.sf.pal.userinfo.db.allcommon.cbean.grouping.GroupingRowSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The result bean for list. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class ListResultBean implements List, Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + protected String _tableDbName; + + /** The value of all record count. */ + protected int _allRecordCount; + + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); + + /** The clause of order-by. (NotNull) */ + protected OrderByClause _orderByClause = new OrderByClause(); + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public ListResultBean() { + } + + //========================================================================== + // ========= + // Grouping + // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ + public List groupingList( + GroupingRowSetupper groupingRowSetupper, + GroupingOption groupingOption) { + final List groupingList = new ArrayList(); + GroupingRowEndDeterminer rowEndDeterminer = groupingOption + .getGroupingRowEndDeterminer(); + if (rowEndDeterminer == null) { + rowEndDeterminer = new GroupingRowEndDeterminer() { + public boolean determine( + GroupingRowResource rowResource, + ENTITY nextEntity) { + return rowResource.isSizeUpBreakCount(); + } + }; // as Default + } + GroupingRowResource rowResource = new GroupingRowResource(); + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; + for (ENTITY entity : _selectedList) { + // Set up row resource. + rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); + + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + break; + } + + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); + + // Do at row end. + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + + // Initialize! + rowResource = new GroupingRowResource(); + rowElementIndex = 0; + ++allElementIndex; + continue; + } + ++rowElementIndex; + ++allElementIndex; + } + return groupingList; + } + + //========================================================================== + // ========= + // Mapping + // ======= + public ListResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean mappingList = new ListResultBean(); + for (ENTITY entity : _selectedList) { + mappingList.add(entityDtoMapper.map(entity)); + } + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + return mappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has this result selected? + * + * @return Determination. {Whether table DB name is not null} + */ + public boolean isSelectedResult() { + return _tableDbName != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return Hash-code from primary-keys. + */ + public int hashCode() { + if (_selectedList == null) { + return super.hashCode(); + } + return _selectedList.hashCode(); + } + + /** + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (_selectedList == null) { + return false; + } + if (other == null) { + return false; + } + if (!(other instanceof List)) { + return false; + } + return _selectedList.equals(other); + } + + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // List Elements + // ============= + public boolean add(ENTITY o) { + return _selectedList.add(o); + } + + public boolean addAll(Collection c) { + return _selectedList.addAll(c); + } + + public void clear() { + _selectedList.clear(); + } + + public boolean contains(Object o) { + return _selectedList.contains(o); + } + + public boolean containsAll(Collection c) { + return _selectedList.containsAll(c); + } + + public boolean isEmpty() { + return _selectedList.isEmpty(); + } + + public Iterator iterator() { + return _selectedList.iterator(); + } + + public boolean remove(Object o) { + return _selectedList.remove(o); + } + + public boolean removeAll(Collection c) { + return _selectedList.removeAll(c); + } + + public boolean retainAll(Collection c) { + return _selectedList.retainAll(c); + } + + public int size() { + return _selectedList.size(); + } + + public Object[] toArray() { + return _selectedList.toArray(); + } + + public TYPE[] toArray(TYPE[] a) { + return _selectedList.toArray(a); + } + + public void add(int index, ENTITY element) { + _selectedList.add(index, element); + } + + public boolean addAll(int index, Collection c) { + return _selectedList.addAll(index, c); + } + + public ENTITY get(int index) { + return _selectedList.get(index); + } + + public int indexOf(Object o) { + return _selectedList.indexOf(o); + } + + public int lastIndexOf(Object o) { + return _selectedList.lastIndexOf(o); + } + + public ListIterator listIterator() { + return _selectedList.listIterator(); + } + + public ListIterator listIterator(int index) { + return _selectedList.listIterator(index); + } + + public ENTITY remove(int index) { + return _selectedList.remove(index); + } + + public ENTITY set(int index, ENTITY element) { + return _selectedList.set(index, element); + } + + public List subList(int fromIndex, int toIndex) { + return _selectedList.subList(fromIndex, toIndex); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of tableDbName. + * + * @return The value of tableDbName. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + public String getTableDbName() { + return _tableDbName; + } + + /** + * Set the value of tableDbName. + * + * @param tableDbName The value of tableDbName. (NotNull) + */ + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } + + /** + * Get the value of allRecordCount. + * + * @return The value of allRecordCount. + */ + public int getAllRecordCount() { + return _allRecordCount; + } + + /** + * Set the value of allRecordCount. + * + * @param allRecordCount The value of allRecordCount. + */ + public void setAllRecordCount(int allRecordCount) { + _allRecordCount = allRecordCount; + } + + /** + * Get the value of selectedList. + * + * @return Selected list. (NotNull) + */ + public List getSelectedList() { + return _selectedList; + } + + /** + * Set the value of selectedList. + * + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) + */ + public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list + _selectedList = selectedList; + } + + /** + * Get the value of orderByClause. + * + * @return The value of orderByClause. (NotNull) + */ + public OrderByClause getOrderByClause() { + return _orderByClause; + } + + /** + * Set the value of orderByClause. + * + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) + */ + public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list + _orderByClause = orderByClause; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ListResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/MapParameterBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/MapParameterBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/MapParameterBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,18 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.util.Map; + +/** + * The bean of map parameter. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapParameterBean { + + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/MapParameterBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/OrderByBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/OrderByBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/OrderByBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,46 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The order-by-bean as interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface OrderByBean extends SelectResource { + + /** + * Get sql component of order-by clause. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause(); + + /** + * Get order-by clause. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause(); + + /** + * Clear order-by. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy(); + + /** + * Ignore order-by. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy(); + + /** + * Make order-by effective. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/OrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,163 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +/** + * The bean of paging. + * + * @author DBFlute(AutoGenerator) + */ +public interface PagingBean extends FetchNarrowingBean, OrderByBean { + + //========================================================================== + // ========= + // Paging Determination + // ==================== + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Is the execution for paging(NOT count)? + * + * @return Determination. + */ + public boolean isPaging(); + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * Is the count executed later? + * + * @return Determination. + */ + public boolean isCountLater(); + + //========================================================================== + // ========= + // Paging Setting + // ============== + /** + * Set up paging resources. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber); + + /** + * Set whether the execution for paging(NOT count). {INTERNAL METHOD} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging); + + //========================================================================== + // ========= + // Fetch Setting + // ============= + /** + * Fetch first.
If you invoke this, your SQL returns [fetch-size] + * records from first. + * + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize); + + /** + * Fetch scope.
If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index]. + * + * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus) + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page.
When you invoke this, it is normally necessary to + * invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
But you + * also can use default-fetch-size without invoking 'fetchFirst()' or + * 'fetchScope()'.
If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index] calculated by [fetch-page-number]. + * + * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & + * NotZero: If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber); + + //========================================================================== + // ========= + // Fetch Property + // ============== + /** + * Get fetch-start-index. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch-size. + * + * @return Fetch-size. + */ + public int getFetchSize(); + + /** + * Get fetch-page-number. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective(); + + //========================================================================== + // ========= + // Hint Property + // ============= + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint(); + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint(); + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,33 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.util.List; + +/** + * The handler of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface PagingHandler { + + /** + * Get the bean of paging. + * + * @return The bean of paging. (NotNull) + */ + public PagingBean getPagingBean(); + + /** + * Execute SQL for count. + * + * @return The count of execution. + */ + public int count(); + + /** + * Execute SQL for paging. + * + * @return The list of entity. (NotNull) + */ + public List paging(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingInvoker.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingInvoker.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingInvoker.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,116 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.util.List; + +/** + * The invoker of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class PagingInvoker { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + protected boolean _countLater; + + //========================================================================== + // ========= + // Constructor + // =========== + public PagingInvoker(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke select-page by handler. + * + * @param handler The handler of paging. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean invokePaging(PagingHandler handler) { + assertObjectNotNull("handler", handler); + final PagingBean pagingBean = handler.getPagingBean(); + assertObjectNotNull("handler.getPagingBean()", pagingBean); + if (!pagingBean.isFetchScopeEffective()) { + String msg = "The paging bean is not effective about fetch-scope!"; + msg = msg + + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!)."; + msg = msg + " The paging bean is: " + pagingBean; + throw new IllegalStateException(msg); + } + final int allRecordCount; + final List selectedList; + if (_countLater) { + selectedList = handler.paging(); + allRecordCount = handler.count(); + } else { + allRecordCount = handler.count(); + selectedList = handler.paging(); + } + final PagingResultBean rb = new ResultBeanBuilder( + _tableDbName).buildPagingResultBean(pagingBean, allRecordCount, + selectedList); + if (isNecessaryToReadPageAgain(rb)) { + pagingBean.fetchPage(rb.getAllPageCount()); + final int reAllRecordCount = handler.count(); + final java.util.List reSelectedList = handler.paging(); + return new ResultBeanBuilder(_tableDbName) + .buildPagingResultBean(pagingBean, reAllRecordCount, + reSelectedList); + } else { + return rb; + } + } + + /** + * Is it necessary to read page again? + * + * @param rb The result bean of paging. (NotNull) + * @return Determination. + */ + protected boolean isNecessaryToReadPageAgain(PagingResultBean rb) { + return rb.getAllRecordCount() > 0 && rb.getSelectedList().isEmpty(); + } + + //========================================================================== + // ========= + // Option + // ====== + public PagingInvoker countLater() { + _countLater = true; + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingInvoker.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingResultBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingResultBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingResultBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,375 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import jp.sf.pal.userinfo.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.group.PageGroupBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.group.PageGroupOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.range.PageRangeBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.range.PageRangeOption; + +/** + * The result bean of paging. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class PagingResultBean extends ListResultBean { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Page Basic Info + // --------------- + /** The value of current page number. */ + protected int _pageSize; + + /** The value of current page number. */ + protected int _currentPageNumber; + + // ----------------------------------------------------- + // Page Group + // ---------- + /** The value of page-group bean. */ + protected PageGroupBean _pageGroupBean; + + /** The value of page-group option. */ + protected PageGroupOption _pageGroupOption; + + // ----------------------------------------------------- + // Page Range + // ---------- + /** The value of page-range bean. */ + protected PageRangeBean _pageRangeBean; + + /** The value of page-range option. */ + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public PagingResultBean() { + } + + //========================================================================== + // ========= + // Calculated Property + // =================== + /** + * Get the value of allPageCount that is calculated. + * + * @return The value of allPageCount. + */ + public int getAllPageCount() { + return calculateAllPageCount(_allRecordCount, _pageSize); + } + + /** + * Get the value of currentStartRecordNumber that is calculated. + * + * @return The value of currentStartRecordNumber. + */ + public int getCurrentStartRecordNumber() { + return calculateCurrentStartRecordNumber(_currentPageNumber, _pageSize); + } + + /** + * Get the value of currentEndRecordNumber that is calculated. + * + * @return The value of currentEndRecordNumber. + */ + public int getCurrentEndRecordNumber() { + return calculateCurrentEndRecordNumber(_currentPageNumber, _pageSize); + } + + //========================================================================== + // ========= + // Page Group/Range + // ================ + // ----------------------------------------------------- + // Page Group + // ---------- + /** + * Get the value of pageGroupSize. + * + * @return The value of pageGroupSize. + */ + public int getPageGroupSize() { + return _pageGroupOption != null ? _pageGroupOption.getPageGroupSize() + : 0; + } + + /** + * Set the value of pageGroupSize. + * + * @param pageGroupSize The value of pageGroupSize. + */ + public void setPageGroupSize(int pageGroupSize) { + final PageGroupOption option = new PageGroupOption(); + option.setPageGroupSize(pageGroupSize); + setPageGroupOption(option); + } + + /** + * Set the value of pageGroupOption. + * + * @param pageGroupOption The value of pageGroupOption. (Nullable) + */ + public void setPageGroupOption(PageGroupOption pageGroupOption) { + _pageGroupOption = pageGroupOption; + } + + /** + * Get the value of pageGroupBean. + * + * @return The value of pageGroupBean. (NotNull) + */ + public PageGroupBean pageGroup() { + assertPageGroupValid(); + if (_pageGroupBean == null) { + _pageGroupBean = new PageGroupBean(); + } + _pageGroupBean.setPageGroupOption(_pageGroupOption); + _pageGroupBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageGroupBean.setAllPageCount(getAllPageCount()); + return _pageGroupBean; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + // ----------------------------------------------------- + // Page Range + // ---------- + /** + * Get the value of pageRangeSize. + * + * @return The value of pageRangeSize. + */ + public int getPageRangeSize() { + return _pageRangeOption != null ? _pageRangeOption.getPageRangeSize() + : 0; + } + + /** + * Set the value of pageRangeSize. + * + * @param pageRangeSize The value of pageRangeSize. + */ + public void setPageRangeSize(int pageRangeSize) { + final PageRangeOption option = new PageRangeOption(); + option.setPageRangeSize(pageRangeSize); + setPageRangeOption(option); + } + + /** + * Set the value of pageRangeOption. + * + * @param pageRangeOption The value of pageRangeOption. (Nullable) + */ + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + /** + * Get the value of pageRangeBean. + * + * @return The value of pageRangeBean. (NotNull) + */ + public PageRangeBean pageRange() { + assertPageRangeValid(); + if (_pageRangeBean == null) { + _pageRangeBean = new PageRangeBean(); + } + _pageRangeBean.setPageRangeOption(_pageRangeOption); + _pageRangeBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageRangeBean.setAllPageCount(getAllPageCount()); + return _pageRangeBean; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is existing previous page? Using values are currentPageNumber. + * + * @return Determination. + */ + public boolean isExistPrePage() { + return (_allRecordCount > 0 && _currentPageNumber > 1); + } + + /** + * Is existing next page? Using values are currentPageNumber and + * allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPage() { + return (_allRecordCount > 0 && _currentPageNumber < getAllPageCount()); + } + + //========================================================================== + // ========= + // Mapping + // ======= + public PagingResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean ls = super.mappingList(entityDtoMapper); + final PagingResultBean mappingList = new PagingResultBean(); + mappingList.setSelectedList(ls.getSelectedList()); + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + mappingList.setPageSize(getPageSize()); + mappingList.setCurrentPageNumber(getCurrentPageNumber()); + mappingList.setPageRangeOption(_pageRangeOption); + mappingList.setPageGroupOption(_pageGroupOption); + return mappingList; + } + + //========================================================================== + // ========= + // Calculate(Internal) + // =================== + /** + * Calculate all page count. + * + * @param allRecordCount All record count. + * @param pageSize Fetch-size. + * @return All page count. + */ + protected int calculateAllPageCount(int allRecordCount, int pageSize) { + if (allRecordCount == 0) { + return 1; + } + int pageCountBase = (allRecordCount / pageSize); + if (allRecordCount % pageSize > 0) { + pageCountBase++; + } + return pageCountBase; + } + + protected int calculateCurrentStartRecordNumber(int currentPageNumber, + int pageSize) { + return ((currentPageNumber - 1) * pageSize) + 1; + } + + protected int calculateCurrentEndRecordNumber(int currentPageNumber, + int pageSize) { + return calculateCurrentStartRecordNumber(currentPageNumber, pageSize) + + _selectedList.size() - 1; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); + sb.append(" of ").append(getAllRecordCount()); + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() + .size()) : null); + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of pageSize. + * + * @return The value of pageSize. + */ + public int getPageSize() { + return _pageSize; + } + + /** + * Set the value of pageSize. + * + * @param pageSize The value of pageSize. + */ + public void setPageSize(int pageSize) { + _pageSize = pageSize; + } + + /** + * Get the value of currentPageNumber. + * + * @return The value of currentPageNumber. + */ + public int getCurrentPageNumber() { + return _currentPageNumber; + } + + /** + * Set the value of currentPageNumber. + * + * @param currentPageNumber The value of currentPageNumber. + */ + public void setCurrentPageNumber(int currentPageNumber) { + _currentPageNumber = currentPageNumber; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/PagingResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ResultBeanBuilder.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,81 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.util.List; + +/** + * The builder of result bean. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class ResultBeanBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public ResultBeanBuilder(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Builder + // ======= + /** + * Build the result bean of list without order-by clause. {for Various} + * + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, + List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); + return rb; + } + + /** + * Build the result bean of paging. {for Paging} + * + * @param pb The bean of paging. (NotNull) + * @param allRecordCount All record count. + * @param selectedList The list of selected entity. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean buildPagingResultBean(PagingBean pb, + int allRecordCount, List selectedList) { + PagingResultBean rb = new PagingResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(allRecordCount); + rb.setSelectedList(selectedList); + rb.setOrderByClause(pb.getSqlComponentOfOrderByClause()); + rb.setPageSize(pb.getFetchSize()); + rb.setCurrentPageNumber(pb.getFetchPageNumber()); + return rb; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ResultBeanBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SelectResource.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SelectResource.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SelectResource.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +/** + * The select-resource as marker-interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface SelectResource { + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SelectResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimpleOrderByBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimpleOrderByBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimpleOrderByBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,165 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * @deprecated + */ +public class SimpleOrderByBean implements OrderByBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public SimpleOrderByBean() { + } + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get sql-clause. + * + * @return Sql clause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Select Resource + // =============== + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + throw new UnsupportedOperationException(); + } + + //========================================================================== + // ========= + // OrderBy + // ======= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + /** + * Register order-by-asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByAsc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, true); + return this; + } + + /** + * Register order-by-desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByDesc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, false); + return this; + } + + /** + * Reverse order-by or Override order-by asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByAsc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, true); + return this; + } + + /** + * Reverse order-by or Override order-by desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByDesc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, false); + return this; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimpleOrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimplePagingBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimplePagingBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimplePagingBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,419 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The simple pagingBean. + * + * @author DBFlute(AutoGenerator) + */ +public class SimplePagingBean implements PagingBean, MapParameterBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + /** The map of parameter. (Nullable) */ + protected Map _parameterMap; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** Is the execution for paging(NOT count)? */ + protected boolean _paging = true; + + /** Is the count executed later? */ + protected boolean _countLater; + + /** Is fetch narrowing valid? */ + protected boolean _fetchNarrowing = true; + + /** The map for parameter. */ + protected Map _map; + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + return _paging; + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + return _countLater; + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. {INTERNAL METHOD: Don't Invoke This!} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) { + if (paging) { + getSqlClause().makeFetchScopeEffective(); + } else { + getSqlClause().ignoreFetchScope(); + } + this._paging = paging; + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * Get fetch-narrowing start-index. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * Get fetch-narrowing size. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _fetchNarrowing && getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + _fetchNarrowing = false; + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + _fetchNarrowing = true; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Implementation of SelectResource + // ================================ + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of MapParameterBean + // ================================== + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap() { + return _parameterMap; + } + + /** + * Add the parameter to the map. + * + * @param key The key of parameter. (NotNull) + * @param value The value of parameter. (Nullable) + */ + public void addParameter(String key, Object value) { + if (_parameterMap == null) { + _parameterMap = new LinkedHashMap(); + } + _parameterMap.put(key, value); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // SqlClause + // --------- + /** + * Get sqlClause. + * + * @return SqlClause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SimplePagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SubQuery.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SubQuery.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SubQuery.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,5 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +public interface SubQuery { + public void query(SUB_CB subCB); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/SubQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/UnionQuery.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/UnionQuery.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/UnionQuery.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,5 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean; + +public interface UnionQuery { + public void query(UNION_CB unionCB); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/UnionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKey.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKey.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKey.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,307 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The abstract class of condition-key. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class ConditionKey { + + /** Mark of replaced value. */ + public static final String MARK_OF_REPLACED_VALUE = "ReplacedValue"; + + /** The condition key of equal. */ + public static final ConditionKey CK_EQUAL = new ConditionKeyEqual(); + + /** The condition key of notEqual. */ + public static final ConditionKey CK_NOT_EQUAL = new ConditionKeyNotEqual(); + + /** The condition key of greaterThan. */ + public static final ConditionKey CK_GREATER_THAN = new ConditionKeyGreaterThan(); + + /** The condition key of lessrThan. */ + public static final ConditionKey CK_LESS_THAN = new ConditionKeyLessThan(); + + /** The condition key of greaterEqual. */ + public static final ConditionKey CK_GREATER_EQUAL = new ConditionKeyGreaterEqual(); + + /** The condition key of lessEqual. */ + public static final ConditionKey CK_LESS_EQUAL = new ConditionKeyLessEqual(); + + /** The condition key of prefixSearch. */ + public static final ConditionKey CK_PREFIX_SEARCH = new ConditionKeyPrefixSearch(); + + /** The condition key of likeSearch. */ + public static final ConditionKey CK_LIKE_SEARCH = new ConditionKeyLikeSearch(); + + /** The condition key of inScope. */ + public static final ConditionKey CK_IN_SCOPE = new ConditionKeyInScope(); + + /** The condition key of notInScope. */ + public static final ConditionKey CK_NOT_IN_SCOPE = new ConditionKeyNotInScope(); + + /** The condition key of isNull. */ + public static final ConditionKey CK_IS_NULL = new ConditionKeyIsNull(); + + /** The condition key of isNotNull. */ + public static final ConditionKey CK_IS_NOT_NULL = new ConditionKeyIsNotNull(); + + /** Dummy-object for IsNull and IsNotNull and so on... */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** Condition-key. */ + protected String _conditionKey; + + /** Operand. */ + protected String _operand; + + /** + * Get condition-key. + * + * @return Condition-key. + */ + public String getConditionKey() { + return _conditionKey; + } + + /** + * Get operand. + * + * @return Operand. + */ + public String getOperand() { + return _operand; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + abstract public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName); + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value); + return this; + } + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value, option); + return this; + } + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value); + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option); + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location); + return conditionValue; + } + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @param option Condition option. (NotNull) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location, option); + return conditionValue; + } + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location); + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location, + ConditionOption option); + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null"; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param rearOption Rear option. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClauseWithRearOption(String columnName, + String location, String rearOption) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null" + rearOption; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param dummyValue Dummy value. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location, + String dummyValue) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/" + dummyValue; + } + + /** + * Build clause without value. + * + * @param columnName Column name. (NotNull) + * @return Clause without value. (NotNull) + */ + protected String buildClauseWithoutValue(String columnName) { + return columnName + " " + getOperand(); + } + + /** + * Get wild-card. + * + * @return Wild-card. + */ + protected String getWildCard() { + return "%"; + } + + /** + * The override. Returns hash-code of this condition-key string. + * + * @return HashCode. + */ + public int hashCode() { + return getConditionKey().hashCode(); + } + + /** + * The override. If the condition-key of the other is same as this one, + * returns true. + * + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (other instanceof ConditionKey) { + if (this.getConditionKey().equals( + ((ConditionKey) other).getConditionKey())) { + return true; + } + } + return false; + } + + /** + * The override. + * + * @return View-string of condition key information. + */ + public String toString() { + return "ConditionKey: " + getConditionKey() + " " + getOperand() + + " wild-card=[" + getWildCard() + "]"; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKey.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyEqual.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyEqual.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyEqual.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,108 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of equal. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyEqual() { + _conditionKey = "equal"; + _operand = "="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasEqual()) { + if (conditionValue.equalEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getEqual() == null) { + return; + } + conditionList + .add(buildBindClause(columnName, value.getEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setEqual(value).setEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,109 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterEqual() { + _conditionKey = "greaterEqual"; + _operand = ">="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterEqual()) { + if (conditionValue.equalGreaterEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterEqual(value).setGreaterEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,109 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterThan.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterThan() { + _conditionKey = "greaterThan"; + _operand = ">"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterThan()) { + if (conditionValue.equalGreaterThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterThan(value).setGreaterThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyInScope.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyInScope.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyInScope.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,127 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of inScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyInScope() { + _conditionKey = "inScope"; + _operand = "in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasInScope()) { + if (conditionValue.equalInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue.overrideInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof InScopeOption)) { + String msg = "The argument[option] should be InScopeOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setInScope((java.util.List) value) + .setInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setInScope((java.util.List) value, + (InScopeOption) option).setInScopeLocation(location); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,100 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNotNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNotNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyIsNotNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNotNull() { + _conditionKey = "isNotNull"; + _operand = "is not null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNotNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNotNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNotNull(DUMMY_OBJECT) + .setIsNotNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNull.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNull.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNull.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,98 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyIsNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNull() { + _conditionKey = "isNull"; + _operand = "is null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNull(DUMMY_OBJECT).setIsNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyIsNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,109 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyLessEqual() { + _conditionKey = "lessEqual"; + _operand = "<="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessEqual()) { + if (conditionValue.equalLessEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessEqual(value).setLessEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessThan.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessThan.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessThan.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,109 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessThan.class); + + /** + * Constructor. + */ + protected ConditionKeyLessThan() { + _conditionKey = "lessThan"; + _operand = "<"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessThan()) { + if (conditionValue.equalLessThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessThan(value).setLessThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLessThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,104 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The condition-key of likeSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLikeSearch extends ConditionKey { + + /** + * Constructor. + */ + protected ConditionKeyLikeSearch() { + _conditionKey = "likeSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value) { + throw new UnsupportedOperationException( + "doAddWhereClause without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof LikeSearchOption)) { + String msg = "The argument[option] should be LikeSearchOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + final LikeSearchOption myOption = (LikeSearchOption) option; + conditionList.add(buildBindClauseWithRearOption(columnName, value + .getLikeSearchLocation(), myOption.getRearOption())); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + throw new UnsupportedOperationException( + "doSetupConditionValue without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setLikeSearch((String) value, (LikeSearchOption) option) + .setLikeSearchLocation(location); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,109 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyNotEqual() { + _conditionKey = "notEqual"; + _operand = "!="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasNotEqual()) { + if (conditionValue.equalNotEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideNotEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotEqual(value).setNotEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,117 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notInScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyNotInScope() { + _conditionKey = "notInScope"; + _operand = "not in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasNotInScope()) { + if (conditionValue.equalNotInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue + .overrideNotInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotInScope((java.util.List) value) + .setNotInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,111 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.ckey; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of prefixSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyPrefixSearch extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyPrefixSearch.class); + + /** + * Constructor. + */ + protected ConditionKeyPrefixSearch() { + _conditionKey = "prefixSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasPrefixSearch()) { + if (conditionValue.equalPrefixSearch(value + getWildCard())) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overridePrefixSearch(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getPrefixSearch() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getPrefixSearchLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setPrefixSearch( + (value != null ? value + getWildCard() : null)) + .setPrefixSearchLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/ConditionOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/ConditionOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/ConditionOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,10 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionOption { + public String getRearOption(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/ConditionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/DateFromToOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/DateFromToOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/DateFromToOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,27 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption; + +/** + * The option of date-from-to. + * + *
+ * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
+ * 
+ *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+ *   new DateFromToOption(); 
+ *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
+ *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * 
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public class DateFromToOption extends FromToOption { + + //========================================================================== + // ========= + // Constructor + // =========== + public DateFromToOption() { + compareAsDate(); + } +} Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/FromToOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/FromToOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/FromToOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,160 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption; + +/** + * The option of from-to. + * + *
+ * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
+ * 
+ *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+ *   new FromToOption().compareAsDate(); 
+ *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
+ *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+ * 
+ *   new FromToOption(); 
+ *     --> column >= '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
+ * 
+ *   new FromToOption().greaterThan(); 
+ *     --> column > '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
+ * 
+ *   new FromToOption().lessThan(); 
+ *     --> column >= '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
+ * 
+ *   new FromToOption().greaterThan().lessThan(); 
+ *     --> column > '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
+ * 
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public class FromToOption implements ConditionOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected boolean _fromDateGreaterThan; + + protected boolean _toDateLessThan; + + protected boolean _compareAsDate; + + //========================================================================== + // ========= + // Interface Implementation + // ======================== + public String getRearOption() { + String msg = "Thie option does not use getRearOption()!"; + throw new UnsupportedOperationException(msg); + } + + //========================================================================== + // ========= + // Main + // ==== + public FromToOption greaterThan() { + _fromDateGreaterThan = true; + return this; + } + + public FromToOption lessThan() { + _toDateLessThan = true; + return this; + } + + /** + * Compare as date. + * + *
+     * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
+     * 
+     *   new FromToOption().compareAsDate();
+     *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
+     * 
+     * This method ignore greaterThan() and lessThan().
+     * 
+ * + * @return this. (NotNull) + */ + public FromToOption compareAsDate() { + _compareAsDate = true; + return this; + } + + //========================================================================== + // ========= + // Internal Main + // ============= + public java.util.Date filterFromDate(java.util.Date fromDate) { + if (fromDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(fromDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + final java.util.Date cloneDate = (java.util.Date) fromDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return fromDate; + } + + public java.util.Date filterToDate(java.util.Date toDate) { + if (toDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(toDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + addCalendarNextDay(cal);// Key Point! + final java.util.Date cloneDate = (java.util.Date) toDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return toDate; + } + + public jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey getFromDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL; + } + if (_fromDateGreaterThan) { + return jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_THAN;// Default + // ! + } else { + return jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL;// Default + // ! + } + } + + public jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey getToDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN; + } + if (_toDateLessThan) { + return jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN;// Default + // ! + } else { + return jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_EQUAL;// Default + // ! + } + } + + //========================================================================== + // ========= + // Calendar Helper + // =============== + protected void addCalendarNextDay(java.util.Calendar cal) { + cal.add(java.util.Calendar.DAY_OF_MONTH, 1); + } + + protected void clearCalendarHourMinuteSecondMilli(java.util.Calendar cal) { + cal.clear(java.util.Calendar.MILLISECOND); + cal.clear(java.util.Calendar.SECOND); + cal.clear(java.util.Calendar.MINUTE); + cal.set(java.util.Calendar.HOUR_OF_DAY, cal + .getActualMinimum(java.util.Calendar.HOUR_OF_DAY)); + } +} Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/InScopeOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/InScopeOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/InScopeOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,95 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of in-scope-option. + * + * @author DBFlute(AutoGenerator) + */ +public class InScopeOption extends SimpleStringOption { + + //========================================================================== + // =========== + // Split + // ===== + public InScopeOption splitBySpace() { + return (InScopeOption) doSplitBySpace(); + } + + public InScopeOption splitBySpace(int splitLimitCount) { + return (InScopeOption) doSplitBySpace(splitLimitCount); + } + + public InScopeOption splitBySpaceContainsDoubleByte() { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(); + } + + public InScopeOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public InScopeOption splitByPipeLine() { + return (InScopeOption) doSplitByPipeLine(); + } + + public InScopeOption splitByPipeLine(int splitLimitCount) { + return (InScopeOption) doSplitByPipeLine(splitLimitCount); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + public InScopeOption toUpperCase() { + return (InScopeOption) doToUpperCase(); + } + + public InScopeOption toLowerCase() { + return (InScopeOption) doToLowerCase(); + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + public InScopeOption toSingleByteSpace() { + return (InScopeOption) doToSingleByteSpace(); + } + + public InScopeOption toSingleByteAlphabetNumber() { + return (InScopeOption) doToSingleByteAlphabetNumber(); + } + + public InScopeOption toSingleByteAlphabetNumberMark() { + return (InScopeOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // =========== + // Real Value + // ========== + public java.util.List generateRealValueList( + java.util.List valueList) { + final java.util.List resultList = new java.util.ArrayList(); + for (final java.util.Iterator ite = valueList.iterator(); ite + .hasNext();) { + final String value = ite.next(); + resultList.add(generateRealValue(value)); + } + return resultList; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/InScopeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/LikeSearchOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/LikeSearchOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/LikeSearchOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,281 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of like-search-option. + * + * @author DBFlute(AutoGenerator) + */ +public class LikeSearchOption extends SimpleStringOption { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String LIKE_PREFIX = "prefix"; + + protected static final String LIKE_SUFFIX = "suffix"; + + protected static final String LIKE_CONTAIN = "contain"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _like; + + protected String _escape; + + protected boolean _asOrSplit; + + protected List _likeAsOrCallbackList; + + //========================================================================== + // ========= + // Rear Option + // =========== + public String getRearOption() { + if (_escape == null || _escape.trim().length() == 0) { + return ""; + } + return " escape '" + _escape + "'"; + } + + //========================================================================== + // ========= + // AsOr + // ==== + /** @deprecated */ + public static interface LikeAsOrCallback { + public String getAdditionalTargetPropertyName(); + + public String filterValue(String currentValue); + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback); + } + + /** @deprecated */ + public static abstract class DefaultLikeAsOrCallback implements + LikeAsOrCallback { + public String filterValue(String currentValue) { + return currentValue; + } + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback) { + return optionDeepCopyWithoutCallback; + } + } + + public boolean hasLikeAsOrCallback() { + return _likeAsOrCallbackList != null + && !_likeAsOrCallbackList.isEmpty(); + } + + public List getLikeAsOrCallbackList() { + if (_likeAsOrCallbackList == null) { + _likeAsOrCallbackList = new ArrayList(); + } + return _likeAsOrCallbackList; + } + + /** + * @param likeAsOrCallback Callback. + * @deprecated + */ + public void addLikeAsOrCallback(LikeAsOrCallback likeAsOrCallback) { + getLikeAsOrCallbackList().add(likeAsOrCallback); + } + + public void clearLikeAsOrCallback() { + getLikeAsOrCallbackList().clear(); + } + + //========================================================================== + // ========= + // Like + // ==== + public LikeSearchOption likePrefix() { + _like = LIKE_PREFIX; + return this; + } + + public LikeSearchOption likeSuffix() { + _like = LIKE_SUFFIX; + return this; + } + + public LikeSearchOption likeContain() { + _like = LIKE_CONTAIN; + return this; + } + + //========================================================================== + // ========= + // Escape + // ====== + public LikeSearchOption escapeByPipeLine() { + _escape = "|"; + return this; + } + + public LikeSearchOption escapeByAtMark() { + _escape = "@"; + return this; + } + + public LikeSearchOption escapeBySlash() { + _escape = "/"; + return this; + } + + public LikeSearchOption escapeByBackSlash() { + _escape = "\\"; + return this; + } + + //========================================================================== + // ========= + // Split + // ===== + public LikeSearchOption splitBySpace() { + return (LikeSearchOption) doSplitBySpace(); + } + + public LikeSearchOption splitBySpace(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpace(splitLimitCount); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte() { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public LikeSearchOption splitByPipeLine() { + return (LikeSearchOption) doSplitByPipeLine(); + } + + public LikeSearchOption splitByPipeLine(int splitLimitCount) { + return (LikeSearchOption) doSplitByPipeLine(splitLimitCount); + } + + public LikeSearchOption asOrSplit() { + _asOrSplit = true; + return this; + } + + public boolean isAsOrSplit() { + return _asOrSplit; + } + + //========================================================================== + // ========= + // To Upper/Lower Case + // =================== + public LikeSearchOption toUpperCase() { + return (LikeSearchOption) doToUpperCase(); + } + + public LikeSearchOption toLowerCase() { + return (LikeSearchOption) doToLowerCase(); + } + + //========================================================================== + // ========= + // To Single Byte + // ============== + public LikeSearchOption toSingleByteSpace() { + return (LikeSearchOption) doToSingleByteSpace(); + } + + public LikeSearchOption toSingleByteAlphabetNumber() { + return (LikeSearchOption) doToSingleByteAlphabetNumber(); + } + + public LikeSearchOption toSingleByteAlphabetNumberMark() { + return (LikeSearchOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // ========= + // To Double Byte + // ============== + + //========================================================================== + // ========= + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // ========= + // Real Value + // ========== + public String generateRealValue(String value) { + value = super.generateRealValue(value); + + // Escape + if (_escape != null && _escape.trim().length() != 0) { + String tmp = replace(value, _escape, _escape + _escape); + tmp = replace(tmp, "%", _escape + "%"); + tmp = replace(tmp, "_", _escape + "_"); + value = tmp; + } + final String wildCard = "%"; + if (_like == null || _like.trim().length() == 0) { + return value; + } else if (_like.equals(LIKE_PREFIX)) { + return value + wildCard; + } else if (_like.equals(LIKE_SUFFIX)) { + return wildCard + value; + } else if (_like.equals(LIKE_CONTAIN)) { + return wildCard + value + wildCard; + } else { + String msg = "The like was wrong string: " + _like; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // DeepCopy + // ======== + public Object createDeepCopy() { + final LikeSearchOption deepCopy = (LikeSearchOption) super + .createDeepCopy(); + deepCopy._like = _like; + deepCopy._escape = _escape; + if (hasLikeAsOrCallback()) { + for (Iterator ite = _likeAsOrCallbackList + .iterator(); ite.hasNext();) { + deepCopy.addLikeAsOrCallback((LikeAsOrCallback) ite.next()); + } + } + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new LikeSearchOption(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "like=" + _like + ", escape=" + _escape + ", split=" + isSplit() + + ", asOrSplit = " + _asOrSplit; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/LikeSearchOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/SimpleStringOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/SimpleStringOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/SimpleStringOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,192 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.SplitOptionParts; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.ToSingleByteOptionParts; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.ToUpperLowerCaseOptionParts; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; + +/** + * The class of simple-string-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringOption implements ConditionOption { + + protected SplitOptionParts _splitOptionParts; + + protected ToUpperLowerCaseOptionParts _toUpperLowerCaseOptionParts; + + protected ToSingleByteOptionParts _toSingleByteCaseOptionParts; + + protected JapaneseOptionPartsAgent _japaneseOptionPartsAgent; + + //========================================================================== + // =========== + // Rear Option + // =========== + public String getRearOption() { + return ""; + } + + //========================================================================== + // =========== + // Split + // ===== + protected SimpleStringOption doSplitBySpace() { + getSplitOptionParts().splitBySpace(); + return this; + } + + protected SimpleStringOption doSplitBySpace(int splitLimitCount) { + getSplitOptionParts().splitBySpace(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte() { + getSplitOptionParts().splitBySpaceContainsDoubleByte(); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte( + int splitLimitCount) { + getSplitOptionParts().splitBySpaceContainsDoubleByte(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitByPipeLine() { + getSplitOptionParts().splitByPipeLine(); + return this; + } + + protected SimpleStringOption doSplitByPipeLine(int splitLimitCount) { + getSplitOptionParts().splitByPipeLine(splitLimitCount); + return this; + } + + protected SplitOptionParts getSplitOptionParts() { + if (_splitOptionParts == null) { + _splitOptionParts = new SplitOptionParts(); + } + return _splitOptionParts; + } + + public boolean isSplit() { + return getSplitOptionParts().isSplit(); + } + + public String[] generateSplitValueArray(String value) { + return getSplitOptionParts().generateSplitValueArray(value); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + protected SimpleStringOption doToUpperCase() { + getToUpperLowerCaseOptionParts().toUpperCase(); + return this; + } + + protected SimpleStringOption doToLowerCase() { + getToUpperLowerCaseOptionParts().toLowerCase(); + return this; + } + + protected ToUpperLowerCaseOptionParts getToUpperLowerCaseOptionParts() { + if (_toUpperLowerCaseOptionParts == null) { + _toUpperLowerCaseOptionParts = new ToUpperLowerCaseOptionParts(); + } + return _toUpperLowerCaseOptionParts; + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + protected SimpleStringOption doToSingleByteSpace() { + getToSingleByteOptionParts().toSingleByteSpace(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumber() { + getToSingleByteOptionParts().toSingleByteAlphabetNumber(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumberMark() { + getToSingleByteOptionParts().toSingleByteAlphabetNumberMark(); + return this; + } + + protected ToSingleByteOptionParts getToSingleByteOptionParts() { + if (_toSingleByteCaseOptionParts == null) { + _toSingleByteCaseOptionParts = new ToSingleByteOptionParts(); + } + return _toSingleByteCaseOptionParts; + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + protected JapaneseOptionPartsAgent doLocalJapanese() { + return getJapaneseOptionPartsAgent(); + } + + protected JapaneseOptionPartsAgent getJapaneseOptionPartsAgent() { + if (_japaneseOptionPartsAgent == null) { + _japaneseOptionPartsAgent = new JapaneseOptionPartsAgent(); + } + return _japaneseOptionPartsAgent; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + value = getToUpperLowerCaseOptionParts().generateRealValue(value); + value = getToSingleByteOptionParts().generateRealValue(value); + value = getJapaneseOptionPartsAgent().generateRealValue(value); + return value; + } + + //========================================================================== + // =========== + // General Helper + // ============== + protected String replace(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SimpleStringOption deepCopy = newDeepCopyInstance(); + deepCopy._splitOptionParts = _splitOptionParts != null ? (SplitOptionParts) _splitOptionParts + .createDeepCopy() + : null; + deepCopy._toUpperLowerCaseOptionParts = _toUpperLowerCaseOptionParts != null ? (ToUpperLowerCaseOptionParts) _toUpperLowerCaseOptionParts + .createDeepCopy() + : null; + deepCopy._toSingleByteCaseOptionParts = _toSingleByteCaseOptionParts != null ? (ToSingleByteOptionParts) _toSingleByteCaseOptionParts + .createDeepCopy() + : null; + deepCopy._japaneseOptionPartsAgent = _japaneseOptionPartsAgent != null ? (JapaneseOptionPartsAgent) _japaneseOptionPartsAgent + .createDeepCopy() + : null; + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new SimpleStringOption(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/SimpleStringOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/SplitOptionParts.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/SplitOptionParts.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/SplitOptionParts.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,161 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SplitOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _split; + + protected String _splitContainedDelimiter; + + protected int _splitLimitCount; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isSplit() { + return _split != null; + } + + public void splitBySpace() { + _split = " "; + } + + public void splitBySpace(int splitLimitCount) { + _split = " "; + _splitLimitCount = splitLimitCount; + } + + public void splitBySpaceContainsDoubleByte() { + _split = " "; + _splitContainedDelimiter = "\u3000"; + } + + public void splitBySpaceContainsDoubleByte(int splitLimitCount) { + _split = " "; + _splitContainedDelimiter = "\u3000"; + _splitLimitCount = splitLimitCount; + } + + public void splitByPipeLine() { + _split = "|"; + } + + public void splitByPipeLine(int splitLimitCount) { + _split = "|"; + _splitLimitCount = splitLimitCount; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String[] generateSplitValueArray(String value) { + if (value == null) { + String msg = "The argument[value] should not be null of empty: " + + value; + throw new IllegalArgumentException(msg); + } + value = repalceContainedDelimiterToRealDelimiter(value); + final java.util.StringTokenizer st = new java.util.StringTokenizer( + value, _split); + final String[] tokenizedValues = new String[st.countTokens()]; + int count = 0; + while (st.hasMoreTokens()) { + tokenizedValues[count] = st.nextToken(); + count++; + } + final String[] values = removeInvalidValue(tokenizedValues); + if (_splitLimitCount > 0 && values.length > _splitLimitCount) { + final String[] realValues = new String[_splitLimitCount]; + for (int i = 0; i < values.length; i++) { + if (i == _splitLimitCount) { + break; + } + realValues[i] = values[i]; + } + return realValues; + } else { + return values; + } + + } + + protected String repalceContainedDelimiterToRealDelimiter(String value) { + if (value == null) { + return value; + } + if (_splitContainedDelimiter == null) { + return value; + } + if (_split == null) { + return value; + } + return replace(value, _splitContainedDelimiter, _split); + } + + protected String[] removeInvalidValue(String[] values) { + final java.util.List ls = new java.util.ArrayList(); + for (int i = 0; i < values.length; i++) { + final String value = values[i]; + if (value == null || value.equals("")) {// Don't trim!!! + continue; + } + ls.add(value); + } + final String[] resultArray = new String[ls.size()]; + for (int i = 0; i < ls.size(); i++) { + resultArray[i] = (String) ls.get(i); + } + return resultArray; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected final String replace(String text, String fromText, String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SplitOptionParts deepCopy = new SplitOptionParts(); + deepCopy._split = _split; + deepCopy._splitContainedDelimiter = _splitContainedDelimiter; + deepCopy._splitLimitCount = _splitLimitCount; + return deepCopy; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/SplitOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,88 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts; + +import jp.sf.pal.userinfo.db.allcommon.helper.character.GeneralCharacter; +import jp.sf.pal.userinfo.db.allcommon.helper.character.impl.GeneralCharacterImpl; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class ToSingleByteOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toSingleByteSpace; + + protected boolean _toSingleByteAlphabetNumber; + + protected boolean _toSingleByteAlphabetNumberMark; + + private GeneralCharacter _generalCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToSingleByteSpace() { + return _toSingleByteSpace; + } + + public void toSingleByteSpace() { + _toSingleByteSpace = true; + } + + public void toSingleByteAlphabetNumber() { + _toSingleByteAlphabetNumber = true; + } + + public void toSingleByteAlphabetNumberMark() { + _toSingleByteAlphabetNumberMark = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Single Byte + if (_toSingleByteSpace) { + value = (value != null ? value.replaceAll("\u3000", " ") : value); + } + if (_toSingleByteAlphabetNumberMark) { + value = getGeneralCharacter().toSingleByteAlphabetNumberMark(value); + } else if (_toSingleByteAlphabetNumber) { + value = getGeneralCharacter().toSingleByteAlphabetNumber(value); + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected GeneralCharacter getGeneralCharacter() { + if (_generalCharacter == null) { + _generalCharacter = new GeneralCharacterImpl(); + } + return _generalCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToSingleByteOptionParts deepCopy = new ToSingleByteOptionParts(); + deepCopy._toSingleByteSpace = _toSingleByteSpace; + deepCopy._toSingleByteAlphabetNumber = _toSingleByteAlphabetNumber; + deepCopy._toSingleByteAlphabetNumberMark = _toSingleByteAlphabetNumberMark; + return deepCopy; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,61 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts; + +/** + * The class of condition-option-parts about toUpperCase/toLowerCase. + * + * @author DBFlute(AutoGenerator) + */ +public class ToUpperLowerCaseOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toUpperCase; + + protected boolean _toLowerCase; + + //========================================================================== + // =========== + // Main + // ==== + public void toUpperCase() { + _toUpperCase = true; + _toLowerCase = false; + } + + public void toLowerCase() { + _toUpperCase = false; + _toLowerCase = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Upper/Lower Case + if (_toUpperCase) { + value = (value != null ? value.toUpperCase() : value); + } + if (_toLowerCase) { + value = (value != null ? value.toLowerCase() : value); + } + return value; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToUpperLowerCaseOptionParts deepCopy = new ToUpperLowerCaseOptionParts(); + deepCopy._toUpperCase = _toUpperCase; + deepCopy._toLowerCase = _toLowerCase; + return deepCopy; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,87 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.coption.parts.local; + +import jp.sf.pal.userinfo.db.allcommon.helper.character.JapaneseCharacter; +import jp.sf.pal.userinfo.db.allcommon.helper.character.impl.JapaneseCharacterImpl; + +/** + * The class of condition-option-parts-agent. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseOptionPartsAgent { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toDoubleByteKatakana; + + protected boolean _removeLastLongVowel; + + private JapaneseCharacter _japaneseCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToDoubleByteKatakana() { + return _toDoubleByteKatakana; + } + + public void toDoubleByteKatakana() { + _toDoubleByteKatakana = true; + } + + public boolean isRemoveLastLongVowel() { + return _removeLastLongVowel; + } + + public void removeLastLongVowel() { + _removeLastLongVowel = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Double Byte + if (_toDoubleByteKatakana) { + value = getJapaneseCharacter().toDoubleByteKatakana(value); + } + + // Remove + if (_removeLastLongVowel) { + if (value != null && value.endsWith("\u30fc")) { + value = value.substring(0, value.length() - "\u30fc".length()); + } + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected JapaneseCharacter getJapaneseCharacter() { + if (_japaneseCharacter == null) { + _japaneseCharacter = new JapaneseCharacterImpl(); + } + return _japaneseCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final JapaneseOptionPartsAgent deepCopy = new JapaneseOptionPartsAgent(); + deepCopy._toDoubleByteKatakana = _toDoubleByteKatakana; + deepCopy._removeLastLongVowel = _removeLastLongVowel; + return deepCopy; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/cvalue/ConditionValue.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/cvalue/ConditionValue.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/cvalue/ConditionValue.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1218 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.cvalue; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption; + +/** + * Condition value. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionValue { + + //========================================================================== + // ========= + // Equal + // ===== + /** Value of equal. */ + protected Object _equalValue; + + /** + * Get the value of equal. + * + * @return The value of equal. (Nullable) + */ + public Object getEqual() { + return filterValue(_equalValue); + } + + /** + * Set the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqual(Object value) { + _equalValue = value; + return this; + } + + /** + * Does it has the value of equal? + * + * @return Determination. (NotNull) + */ + public boolean hasEqual() { + return _equalValue != null; + } + + /** + * Does the value equal the value of equal? + * + * @param value The value of equal. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalEqual(Object value) { + return hasEqual() ? _equalValue.equals(value) : value == null; + } + + /** + * Override the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideEqual(Object value) { + _equalValue = value; + return this; + } + + /** Location of equal. */ + protected String _equalLocation; + + /** + * Get the location of equal. + * + * @return The location of equal. (Nullable) + */ + public String getEqualLocation() { + return _equalLocation; + } + + /** + * Set the location of equal. + * + * @param location The location of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqualLocation(String location) { + _equalLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not Equal + // ========= + /** Value of notEqual. */ + protected Object _notEqualValue; + + /** + * Get the value of notEqual. + * + * @return The value of notEqual. (Nullable) + */ + public Object getNotEqual() { + return filterValue(_notEqualValue); + } + + /** + * Set the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** + * Does it has the value of notEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasNotEqual() { + return _notEqualValue != null; + } + + /** + * Does the value equal the value of notEqual? + * + * @param value The value of notEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotEqual(Object value) { + return hasNotEqual() ? _notEqualValue.equals(value) : value == null; + } + + /** + * Override the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** Location of notEqual. */ + protected String _notEqualLocation; + + /** + * Get the location of notEqual. + * + * @return The location of notEqual. (Nullable) + */ + public String getNotEqualLocation() { + return _notEqualLocation; + } + + /** + * Set the location of notEqual. + * + * @param location The location of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqualLocation(String location) { + _notEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Than + // ============ + /** Value of greaterThan. */ + protected Object _greaterThanValue; + + /** + * Get the value of greaterThan. + * + * @return The value of greaterThan. (Nullable) + */ + public Object getGreaterThan() { + return filterValue(_greaterThanValue); + } + + /** + * Set the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** + * Does it has the value of greaterThan? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterThan() { + return _greaterThanValue != null; + } + + /** + * Does the value equal the value of greaterThan? + * + * @param value The value of greaterThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterThan(Object value) { + return hasGreaterThan() ? _greaterThanValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** Location of GreaterThan. */ + protected String _greaterThanLocation; + + /** + * Get the location of greaterThan. + * + * @return The location of greaterThan. (Nullable) + */ + public String getGreaterThanLocation() { + return _greaterThanLocation; + } + + /** + * Set the location of greaterThan. + * + * @param location The location of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThanLocation(String location) { + _greaterThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Than + // ========= + /** Value of lessThan. */ + protected Object _lessThanValue; + + /** + * Get the value of lessThan. + * + * @return The value of lessThan. (Nullable) + */ + public Object getLessThan() { + return filterValue(_lessThanValue); + } + + /** + * Set the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** + * Does it has the value of lessThan? + * + * @return Determination. (NotNull) + */ + public boolean hasLessThan() { + return _lessThanValue != null; + } + + /** + * Does the value equal the value of lessThan? + * + * @param value The value of lessThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessThan(Object value) { + return hasLessThan() ? _lessThanValue.equals(value) : value == null; + } + + /** + * Override the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** Location of lessThan. */ + protected String _lessThanLocation; + + /** + * Get the location of lessThan. + * + * @return The location of lessThan. (Nullable) + */ + public String getLessThanLocation() { + return _lessThanLocation; + } + + /** + * Set the location of lessThan. + * + * @param location The location of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThanLocation(String location) { + _lessThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Equal + // ============= + /** Value of greaterEqual. */ + protected Object _greaterEqualValue; + + /** + * Get the value of greaterEqual. + * + * @return The value of greaterEqual. (Nullable) + */ + public Object getGreaterEqual() { + return filterValue(_greaterEqualValue); + } + + /** + * Set the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** + * Does it has the value of greaterEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterEqual() { + return _greaterEqualValue != null; + } + + /** + * Does the value equal the value of greaterEqual? + * + * @param value The value of greaterEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterEqual(Object value) { + return hasGreaterEqual() ? _greaterEqualValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** Location of greaterEqual. */ + protected String _greaterEqualLocation; + + /** + * Get the location of greaterEqual. + * + * @return The location of greaterEqual. (Nullable) + */ + public String getGreaterEqualLocation() { + return _greaterEqualLocation; + } + + /** + * Set the location of greaterEqual. + * + * @param location The location of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqualLocation(String location) { + _greaterEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Equal + // ========== + /** Value of lessEqual. */ + protected Object _lessEqualValue; + + /** + * Get the value of lessEqual. + * + * @return The value of lessEqual. (Nullable) + */ + public Object getLessEqual() { + return filterValue(_lessEqualValue); + } + + /** + * Set the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** + * Does it has the value of lessEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasLessEqual() { + return _lessEqualValue != null; + } + + /** + * Does the value equal the value of lessEqual? + * + * @param value The value of lessEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessEqual(Object value) { + return hasLessEqual() ? _lessEqualValue.equals(value) : value == null; + } + + /** + * Override the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** Location of lessEqual. */ + protected String _lessEqualLocation; + + /** + * Get the location of lessEqual. + * + * @return The location of lessEqual. (Nullable) + */ + public String getLessEqualLocation() { + return _lessEqualLocation; + } + + /** + * Set the location of lessEqual. + * + * @param location The location of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqualLocation(String location) { + _lessEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Prefix Search + // ============= + /** Value of prefixSearch. */ + protected Object _prefixSearch; + + /** + * Get the value of prefixSearch. + * + * @return The value of prefixSearch. (Nullable) + */ + public Object getPrefixSearch() { + return filterValue(_prefixSearch); + } + + /** + * Set the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** + * Does it has the value of prefixSearch? + * + * @return Determination. (NotNull) + */ + public boolean hasPrefixSearch() { + return _prefixSearch != null; + } + + /** + * Does the value equal the value of prefixSearch? + * + * @param value The value of prefixSearch. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalPrefixSearch(Object value) { + return hasPrefixSearch() ? _prefixSearch.equals(value) : value == null; + } + + /** + * Override the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overridePrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** Location of prefixSearch. */ + protected String _prefixSearchLocation; + + /** + * Get the location of prefixSearch. + * + * @return The location of prefixSearch. (Nullable) + */ + public String getPrefixSearchLocation() { + return _prefixSearchLocation; + } + + /** + * Set the location of prefixSearch. + * + * @param location The location of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearchLocation(String location) { + _prefixSearchLocation = location; + return this; + } + + //========================================================================== + // ========= + // Like Search + // =========== + /** Value of likeSearch. */ + protected List _likeSearch; + + /** Value of likeSearch for spare. */ + protected List _likeSearch4Spare; + + /** + * Get the value of likeSearch. + * + * @return The value of likeSearch. (Nullable) + */ + public String getLikeSearch() { + if (_likeSearch == null) { + return null; + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + final LikeSearchValue likeSearchValue = (LikeSearchValue) _likeSearch + .remove(0); + return (String) filterValue(likeSearchValue.generateRealValue()); + } + + /** + * Set the value of likeSearch. + * + * @param value The value of likeSearch. (Nullable) + * @param option The option of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearch(String value, LikeSearchOption option) { + if (_likeSearch == null) { + _likeSearch = new ArrayList(); + _likeSearch4Spare = new ArrayList(); + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + LikeSearchValue likeSearchValue = new LikeSearchValue(value, option); + _likeSearch.add(likeSearchValue); + _likeSearch4Spare.add(likeSearchValue); + return this; + } + + /** Location of likeSearch. */ + protected String _likeSearchLocation; + + /** + * Get the location of likeSearch. + * + * @return The location of likeSearch. (Nullable) + */ + public String getLikeSearchLocation() { + return _likeSearchLocation; + } + + /** + * Set the location of likeSearch. + * + * @param location The location of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearchLocation(String location) { + _likeSearchLocation = location; + return this; + } + + protected static class LikeSearchValue { + protected String _value; + + protected LikeSearchOption _option; + + public LikeSearchValue(String value, LikeSearchOption option) { + _value = value; + _option = option; + } + + public String getValue() { + return _value; + } + + public LikeSearchOption getOption() { + return _option; + } + + public String generateRealValue() { + if (_option == null) { + return _value; + } + return _option.generateRealValue(_value); + } + } + + //========================================================================== + // ========= + // In Scope + // ======== + /** Value of inScope. */ + protected List _inScope; + + protected InScopeOption _inScopeOption; + + /** + * Get the value of inScope. + * + * @return The value of inScope. (Nullable) + */ + @SuppressWarnings("unchecked") + public List getInScope() { + if (_inScopeOption != null) { + return filterValue(_inScopeOption + .generateRealValueList((List) _inScope)); + } + return filterValue(_inScope); + } + + /** + * Set the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScope(List value) { + _inScope = value; + return this; + } + + public ConditionValue setInScope(List value, InScopeOption option) { + _inScope = value; + _inScopeOption = option; + return this; + } + + /** + * Does it has the value of inScope? + * + * @return Determination. (NotNull) + */ + public boolean hasInScope() { + return _inScope != null; + } + + /** + * Does the value equal the value of inScope? + * + * @param value The value of inScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalInScope(List value) { + return hasInScope() ? _inScope.equals(value) : value == null; + } + + /** + * Override the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideInScope(List value) { + _inScope = value; + return this; + } + + /** Location of InScope. */ + protected String _inScopeLocation; + + /** + * Get the location of inScope. + * + * @return The location of inScope. (Nullable) + */ + public String getInScopeLocation() { + return _inScopeLocation; + } + + /** + * Set the location of inScope. + * + * @param location The location of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScopeLocation(String location) { + _inScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not In Scope + // ============ + /** Value of notInScope. */ + protected List _notInScope; + + /** + * Get the value of notInScope. + * + * @return The value of notInScope. (Nullable) + */ + public List getNotInScope() { + return filterValue(_notInScope); + } + + /** + * Set the value of notInScope. + * + * @param value The value of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScope(List value) { + _notInScope = value; + return this; + } + + /** + * Does it has the value of inNotScope? + * + * @return Determination. (NotNull) + */ + public boolean hasNotInScope() { + return _notInScope != null; + } + + /** + * Does the value equal the value of inNotScope? + * + * @param value The value of inNotScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotInScope(List value) { + return hasNotInScope() ? _notInScope.equals(value) : value == null; + } + + /** + * Override the value of inNotScope. + * + * @param value The value of inNotScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotInScope(List value) { + _notInScope = value; + return this; + } + + /** Location of notInScope. */ + protected String _notInScopeLocation; + + /** + * Get the location of notInScope. + * + * @return The location of notInScope. (Nullable) + */ + public String getNotInScopeLocation() { + return _notInScopeLocation; + } + + /** + * Set the location of notInScope. + * + * @param location The location of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScopeLocation(String location) { + _notInScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Null + // ======= + /** Value of isNull. */ + protected Object _isNullValue; + + /** + * Get the value of isNull. + * + * @return The value of isNull. (Nullable) + */ + public Object getIsNull() { + return _isNullValue; + } + + /** + * Set the value of isNull. + * + * @param value The value of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNull(Object value) { + _isNullValue = value; + return this; + } + + /** + * Does it has the value of isNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNull() { + return _isNullValue != null; + } + + /** Location of isNull. */ + protected String _isNullLocation; + + /** + * Get the location of isNull. + * + * @return The location of isNull. (Nullable) + */ + public String getIsNullLocation() { + return _isNullLocation; + } + + /** + * Set the location of isNull. + * + * @param location The location of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNullLocation(String location) { + _isNullLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Not Null + // =========== + /** Value of isNotNull. */ + protected Object _isNotNullValue; + + /** + * Get the value of isNotNull. + * + * @return The value of isNotNull. (Nullable) + */ + public Object getIsNotNull() { + return _isNotNullValue; + } + + /** + * Set the value of isNotNull. + * + * @param value The value of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNull(Object value) { + _isNotNullValue = value; + return this; + } + + /** + * Does it has the value of isNotNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNotNull() { + return _isNotNullValue != null; + } + + /** Location of isNotNull. */ + protected String _isNotNullLocation; + + /** + * Get the location of isNotNull. + * + * @return The location of isNotNull. (Nullable) + */ + public String getIsNotNullLocation() { + return _isNotNullLocation; + } + + /** + * Set the location of isNotNull. + * + * @param location The location of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNullLocation(String location) { + _isNotNullLocation = location; + return this; + } + + //========================================================================== + // =========== + // Filter + // ====== + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param value Value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected Object filterValue(Object value) { + if (value == null) { + return value; + } + if (value instanceof java.sql.Time) { + return value; + } + if (value instanceof java.sql.Timestamp) { + return value; + } + if (value instanceof java.util.Date + || value instanceof java.util.Calendar) { + return SqlDateConversionUtil.toDate(value); + } else { + return value; + } + } + + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param valueList Value-list. (Nullable) + * @return Filtered value-list. (Nullable) + */ + protected List filterValue(List valueList) { + if (valueList == null || valueList.isEmpty()) { + return valueList; + } + final List resultList = new ArrayList(); + for (Iterator ite = valueList.iterator(); ite.hasNext();) { + Object value = ite.next(); + resultList.add(filterValue(value)); + } + return resultList; + } + + protected static class SqlDateConversionUtil { + + private SqlDateConversionUtil() { + } + + public static java.sql.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.sql.Date toDate(Object o, String pattern) { + if (o instanceof java.sql.Date) { + return (java.sql.Date) o; + } + java.util.Date date = DateConversionUtil.toDate(o, pattern); + if (date != null) { + return new java.sql.Date(date.getTime()); + } + return null; + } + } + + protected static class DateConversionUtil { + + private DateConversionUtil() { + } + + public static java.util.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.util.Date toDate(Object o, String pattern) { + if (o == null) { + return null; + } else if (o instanceof String) { + return toDate((String) o, pattern); + } else if (o instanceof java.util.Date) { + return (java.util.Date) o; + } else if (o instanceof java.util.Calendar) { + return ((java.util.Calendar) o).getTime(); + } else { + return toDate(o.toString(), pattern); + } + } + + public static java.util.Date toDate(String s, String pattern) { + return toDate(s, pattern, java.util.Locale.getDefault()); + } + + public static java.util.Date toDate(String s, String pattern, + java.util.Locale locale) { + java.text.SimpleDateFormat sdf = getDateFormat(s, pattern, locale); + try { + return sdf.parse(s); + } catch (java.text.ParseException ex) { + throw new RuntimeException(ex); + } + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + String pattern, java.util.Locale locale) { + if (pattern != null) { + return new java.text.SimpleDateFormat(pattern); + } + return getDateFormat(s, locale); + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + java.util.Locale locale) { + String pattern = getPattern(locale); + String shortPattern = removeDelimiter(pattern); + String delimitor = findDelimiter(s); + if (delimitor == null) { + if (s.length() == shortPattern.length()) { + return new java.text.SimpleDateFormat(shortPattern); + } + if (s.length() == shortPattern.length() + 2) { + return new java.text.SimpleDateFormat(InternalStringUtil + .replace(shortPattern, "yy", "yyyy")); + } + } else { + String[] array = InternalStringUtil.split(s, delimitor); + for (int i = 0; i < array.length; ++i) { + if (array[i].length() == 4) { + pattern = InternalStringUtil.replace(pattern, "yy", + "yyyy"); + break; + } + } + return new java.text.SimpleDateFormat(pattern); + } + return new java.text.SimpleDateFormat(); + } + + public static java.text.SimpleDateFormat getDateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getPattern(locale)); + } + + public static java.text.SimpleDateFormat getY4DateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getY4Pattern(locale)); + } + + public static String getY4Pattern(java.util.Locale locale) { + String pattern = getPattern(locale); + if (pattern.indexOf("yyyy") < 0) { + pattern = InternalStringUtil.replace(pattern, "yy", "yyyy"); + } + return pattern; + } + + public static String getPattern(java.util.Locale locale) { + java.text.SimpleDateFormat df = (java.text.SimpleDateFormat) java.text.DateFormat + .getDateInstance(java.text.DateFormat.SHORT, locale); + String pattern = df.toPattern(); + int index = pattern.indexOf(' '); + if (index > 0) { + pattern = pattern.substring(0, index); + } + if (pattern.indexOf("MM") < 0) { + pattern = InternalStringUtil.replace(pattern, "M", "MM"); + } + if (pattern.indexOf("dd") < 0) { + pattern = InternalStringUtil.replace(pattern, "d", "dd"); + } + return pattern; + } + + public static String findDelimiter(String value) { + for (int i = 0; i < value.length(); ++i) { + char c = value.charAt(i); + if (Character.isDigit(c)) { + continue; + } + return Character.toString(c); + } + return null; + } + + public static String removeDelimiter(String pattern) { + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < pattern.length(); ++i) { + char c = pattern.charAt(i); + if (c == 'y' || c == 'M' || c == 'd') { + buf.append(c); + } + } + return buf.toString(); + } + } + + protected static class InternalStringUtil { + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new java.util.ArrayList(); + java.util.StringTokenizer st = new java.util.StringTokenizer(str, + delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/cvalue/ConditionValue.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,55 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.grouping; + +/** + * The class of option for grouping. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected int _elementCount; + + protected GroupingRowEndDeterminer _groupingRowEndDeterminer; + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { + } + + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public int getElementCount() { + return this._elementCount; + } + + public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { + return this._groupingRowEndDeterminer; + } + + public void setGroupingRowEndDeterminer( + GroupingRowEndDeterminer groupingRowEndDeterminer) { + this._groupingRowEndDeterminer = groupingRowEndDeterminer; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,24 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.grouping; + +/** + * The interface of grouping end(switch point) determiner. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowEndDeterminer { + + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowResource.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,93 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.grouping; + +import java.util.ArrayList; +import java.util.List; + +/** + * The class of row resource for grouping making. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _groupingRowList = new ArrayList(); + + protected int _elementCurrentIndex; + + protected int _breakCount; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } + + //========================================================================== + // =========== + // Accessor + // ======== + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { + return this._groupingRowList; + } + + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ + public void addGroupingRowList(ENTITY groupingRow) { + this._groupingRowList.add(groupingRow); + } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowSetupper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.grouping; + +/** + * The setupper of grouping row. + * + * @param The type of row. + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowSetupper { + + /** + * Set up the instance of grouping row. + * + * @param groupingRowResource Grouping row resource. (NotNull) + * @return The instance of grouping row. (NotNull) + */ + public ROW setup(GroupingRowResource groupingRowResource); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/grouping/GroupingRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/mapping/EntityDtoMapper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/mapping/EntityDtoMapper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/mapping/EntityDtoMapper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.mapping; + +/** + * The mapper of entity-to-dto. + * + * @param The type of entity. + * @param The type of dto. + * @author DBFlute(AutoGenerator) + */ +public interface EntityDtoMapper { + + /** + * Map entity to data transfer object. + * + * @param entity Entity. (NotNull) + * @return Data transfer object. (NotNull) + */ + public DTO map(ENTITY entity); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/mapping/EntityDtoMapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlContext.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlContext.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlContext.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,427 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.userinfo.db.allcommon.DBFluteConfig; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.framework.util.InputStreamReaderUtil; +import org.seasar.framework.util.ReaderUtil; +import org.seasar.framework.util.ResourceUtil; + +/** + * The context of outside-SQL. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlContext { + + /** Log instance. */ + private static final Log _log = LogFactory.getLog(OutsideSqlContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get outside-SQL context on thread. + * + * @return Outside-SQL context. (Nullable) + */ + public static OutsideSqlContext getOutsideSqlContextOnThread() { + return (OutsideSqlContext) _threadLocal.get(); + } + + /** + * Set outside-SQL context on thread. + * + * @param outsideSqlContext Outside-SQL context. (NotNull) + */ + public static void setOutsideSqlContextOnThread( + OutsideSqlContext outsideSqlContext) { + if (outsideSqlContext == null) { + String msg = "The argument[outsideSqlContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(outsideSqlContext); + } + + /** + * Is existing outside-SQL context on thread? + * + * @return Determination. + */ + public static boolean isExistOutsideSqlContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear outside-SQL context on thread. + */ + public static void clearOutsideSqlContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public static String generateSpecifiedOutsideSqlUniqueKey( + String methodName, String path, Object pmb, + OutsideSqlOption option, Object resultTypeSpecification) { + final String pmbKey = (pmb != null ? pmb.getClass().getName() : "null"); + final String resultKey = (resultTypeSpecification != null ? ":" + + resultTypeSpecification : "null"); + final String tableDbName = option.getTableDbName(); + final String generatedUniqueKey = option.generateUniqueKey(); + return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + + ":" + generatedUniqueKey + resultKey; + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwOutsideSqlNotFoundException(String path) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The outsideSql was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target file of outsideSql on your classpath." + + getLineSeparator(); + msg = msg + + "And please confirm the file name and the file path STRICTLY!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified OutsideSql Path]" + getLineSeparator() + path + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException( + msg); + } + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected boolean _dynamicBinding; + + protected boolean _offsetByCursorForcedly; + + protected boolean _limitByCursorForcedly; + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + /** The path of outside-sql. (The mark of Specified-OutsideSql) */ + protected String _outsideSqlPath; + + protected Object _parameterBean; + + protected Object _resultTypeSpecification; + + protected String _methodName; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + /** The DB name of table for using behavior-SQL-path. (Nullable) */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Read SQL + // ======== + /** + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The filtered outside-SQL. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readFilteredOutsideSql(String sqlFileEncoding, + String dbmsSuffix) { + final String sql = readOutsideSql(sqlFileEncoding, dbmsSuffix); + return replaceOutsideSqlBindCharacterOnLineComment(sql); + } + + protected String replaceOutsideSqlBindCharacterOnLineComment(String sql) { + final String bindCharacter = "?"; + if (sql.indexOf(bindCharacter) < 0) { + return sql; + } + final String lineSeparator = "\n"; + if (sql.indexOf(lineSeparator) < 0) { + return sql; + } + final String lineCommentMark = "--"; + if (sql.indexOf(lineCommentMark) < 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split(lineSeparator); + for (String line : lines) { + final int lineCommentIndex = line.indexOf("--"); + if (lineCommentIndex < 0) { + sb.append(line).append(lineSeparator); + continue; + } + final String lineComment = line.substring(lineCommentIndex); + if (lineComment.contains("ELSE") + || !lineComment.contains(bindCharacter)) { + sb.append(line).append(lineSeparator); + continue; + } + + if (_log.isDebugEnabled()) { + _log.debug("...Replacing bind character on line comment: " + + lineComment); + } + final String filteredLineComment = replaceString(lineComment, + bindCharacter, "Q"); + sb.append(line.substring(0, lineCommentIndex)).append( + filteredLineComment).append(lineSeparator); + } + return sb.toString(); + } + + /** + * Read outside-sql path. Required attribute is 'outsideSqlPath'. + * + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The text of SQL. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readOutsideSql(String sqlFileEncoding, String dbmsSuffix) { + final String standardPath = _outsideSqlPath; + final String dbmsPath = buildDbmsPath(standardPath, dbmsSuffix); + String sql; + if (isExistResource(dbmsPath)) { + sql = readText(dbmsPath, sqlFileEncoding); + } else if (isExistResource(standardPath)) { + sql = readText(standardPath, sqlFileEncoding); + } else { + throwOutsideSqlNotFoundException(standardPath); + return null; // Non Reachable. + } + return removeInitialUnicodeBomIfNeeds(sqlFileEncoding, sql); + } + + protected String buildDbmsPath(String standardPath, String dbmsSuffix) { + final String dbmsPath; + final int lastIndexOfDot = standardPath.lastIndexOf("."); + if (lastIndexOfDot >= 0 + && !standardPath.substring(lastIndexOfDot).contains("/")) { + final String base = standardPath.substring(0, lastIndexOfDot); + dbmsPath = base + dbmsSuffix + + standardPath.substring(lastIndexOfDot); + } else { + dbmsPath = standardPath + dbmsSuffix; + } + return dbmsPath; + } + + protected String removeInitialUnicodeBomIfNeeds(String sqlFileEncoding, + String sql) { + if ("UTF-8".equalsIgnoreCase(sqlFileEncoding) && sql.length() > 0 + && sql.charAt(0) == '\uFEFF') { + sql = sql.substring(1); + } + return sql; + } + + //========================================================================== + // ========= + // Behavior Query Path + // =================== + public void setupBehaviorQueryPathIfNeeds() { + if (!isBehaviorQueryPathEnabled()) { + return; + } + if (_outsideSqlPath.contains(":")) { + final String subDirectoryValue = _outsideSqlPath.substring(0, + _outsideSqlPath.lastIndexOf(":")); + final String subDirectoryPath = replaceString(subDirectoryValue, + ":", "/"); + final String behaviorQueryPath = _outsideSqlPath + .substring(_outsideSqlPath.lastIndexOf(":") + ":".length()); + final String behaviorClassPath = replaceString( + buildBehaviorSqlPackageName(), ".", "/"); + final String behaviorPackagePath = behaviorClassPath.substring(0, + behaviorClassPath.lastIndexOf("/")); + final String behaviorClassName = behaviorClassPath + .substring(behaviorClassPath.lastIndexOf("/") + + "/".length()); + _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + + "/" + behaviorClassName + "_" + behaviorQueryPath + + ".sql"; + } else { + _outsideSqlPath = replaceString(buildBehaviorSqlPackageName(), ".", + "/") + + "_" + _outsideSqlPath + ".sql"; + } + } + + protected String buildBehaviorSqlPackageName() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableDbName); + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + final String outsideSqlPackage = DBFluteConfig.getInstance() + .getOutsideSqlPackage(); + if (outsideSqlPackage != null && outsideSqlPackage.trim().length() > 0) { + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + ".".length()); + String tmp = behaviorTypeName.substring(0, behaviorTypeName + .lastIndexOf(".")); + final String exbhvName = tmp.contains(".") ? tmp.substring(tmp + .lastIndexOf(".") + + ".".length()) : tmp; + return outsideSqlPackage + "." + exbhvName + "." + + behaviorClassName; + } else { + return behaviorTypeName; + } + } + + protected boolean isBehaviorQueryPathEnabled() { + if (isProcedure()) {// [DBFlute-0.7.5] + return false; + } + return _outsideSqlPath != null && !_outsideSqlPath.contains("/") + && !_outsideSqlPath.contains(".") && _tableDbName != null; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean isSpecifiedOutsideSql() { + return _outsideSqlPath != null; + } + + // [DBFlute-0.7.5] + public boolean isProcedure() { + return _methodName != null && _methodName.startsWith("call"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected boolean isExistResource(String path) { + return ResourceUtil.isExist(path); + } + + protected String readText(final String path, String sqlFileEncoding) { + final java.io.InputStream is = ResourceUtil.getResourceAsStream(path); + final java.io.Reader reader = InputStreamReaderUtil.create(is, + sqlFileEncoding); + return ReaderUtil.readText(reader); + } + + protected static String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public void setDynamicBinding(boolean dynamicBinding) { + this._dynamicBinding = dynamicBinding; + } + + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public void setOffsetByCursorForcedly(boolean offsetByCursorForcedly) { + this._offsetByCursorForcedly = offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public void setLimitByCursorForcedly(boolean limitByCursorForcedly) { + this._limitByCursorForcedly = limitByCursorForcedly; + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + public String getOutsideSqlPath() { + return _outsideSqlPath; + } + + public void setOutsideSqlPath(String outsideSqlPath) { + this._outsideSqlPath = outsideSqlPath; + } + + public Object getParameterBean() { + return _parameterBean; + } + + public void setParameterBean(Object parameterBean) { + this._parameterBean = parameterBean; + } + + public Object getResultTypeSpecification() { + return _resultTypeSpecification; + } + + public void setResultTypeSpecification(Object resultTypeSpecification) { + this._resultTypeSpecification = resultTypeSpecification; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + this._methodName = methodName; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + this._statementConfig = statementConfig; + } + + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + this._tableDbName = tableDbName; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,37 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler; + +/** + * The dao of outside-sql. + * + * @author DBFlute(AutoGenerator) + */ +public interface OutsideSqlDao extends DaoReadable { + + //========================================================================== + // ========= + // Select + // ====== + List selectList(String path, Object pmb, + OutsideSqlOption option, Class entityType); + + Object selectCursor(String path, Object pmb, + OutsideSqlOption option, CursorHandler handler); + + //========================================================================== + // ========= + // Execute + // ======= + int execute(String path, Object pmb, OutsideSqlOption option); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Call + // ==== + void call(String path, Object pmb, OutsideSqlOption option); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,116 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; + +/** + * The option of outside-SQL. It contains various information about execution. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlOption { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Option + // ------ + protected String _pagingRequestType = "non"; + + protected boolean _dynamicBinding; + + /** The configuration of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // ----------------------------------------------------- + // Information + // ----------- + /** The DB name of table. It is not related with the options of outside-SQL. */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void autoPaging() { + _pagingRequestType = "auto"; + } + + public void manualPaging() { + _pagingRequestType = "manual"; + } + + public void dynamicBinding() { + _dynamicBinding = true; + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public String generateUniqueKey() { + return "{" + _pagingRequestType + "/" + _dynamicBinding + "}"; + } + + //========================================================================== + // ========= + // Copy + // ==== + public OutsideSqlOption copyOptionWithoutPaging() { + final OutsideSqlOption copyOption = new OutsideSqlOption(); + if (isDynamicBinding()) { + copyOption.dynamicBinding(); + } + copyOption.setTableDbName(_tableDbName); + return copyOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Option + // ------ + public boolean isAutoPaging() { + return "auto".equals(_pagingRequestType); + } + + public boolean isManualPaging() { + return "manual".equals(_pagingRequestType); + } + + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + // ----------------------------------------------------- + // Information + // ----------- + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/OutsideSqlOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/ProcedurePmb.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/ProcedurePmb.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/ProcedurePmb.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,16 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql; + +/** + * The parameter-bean for procedure. + * + * @author DBFlute(AutoGenerator) + */ +public interface ProcedurePmb { + + /** + * Get the value of procedure name. + * + * @return The value of procedure name. (NotNull) + */ + public String getProcedureName(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/ProcedurePmb.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,251 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.ProcedurePmb; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; + +/** + * The executor of outside-sql.
+ * + *
+ * {Basic}
+ *   o selectList()
+ *   o execute()
+ *   o call()
+ * 
+ * {Entity}
+ *   o entityHandling().selectEntity()
+ *   o entityHandling().selectEntityWithDeletedCheck()
+ * 
+ * {Cursor}
+ *   o cursorHandling().selectCursor()
+ * 
+ * {Paging}
+ *   o autoPaging().selectList()
+ *   o autoPaging().selectPage()
+ *   o manualPaging().selectList()
+ *   o manualPaging().selectPage()
+ * 
+ * {Option -- Dynamic}
+ *   o dynamicBinding().selectList()
+ * 
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlBasicExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outside-sql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** Table DB name. (NotNull) */ + protected final String _tableDbName; + + /** Is it dynamic binding? */ + protected boolean _dynamicBinding; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlBasicExecutor(OutsideSqlDao outsideSqlDao, + String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the list of the entity. + * + * @param The type of entity for element. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The element type of entity. (NotNull) + * @return The result bean of selected list. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, Object pmb, + Class entityType) { + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + //========================================================================== + // ========= + // Execute + // ======= + /** + * Execute. {Insert/Update/Delete/Etc...} + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @return The count of execution. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public int execute(String path, Object pmb) { + return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Procedure Call + // ============== + /** + * Call stored procedure. + * + * @param pmb The parameter-bean for procedure. (NotNull) + */ + public void call(ProcedurePmb pmb) { + if (pmb == null) { + throw new IllegalArgumentException( + "The argument of call() 'pmb' should not be null!"); + } + _outsideSqlDao.call(pmb.getProcedureName(), pmb, + createOutsideSqlOption()); + } + + //========================================================================== + // ========= + // Option + // ====== + // ----------------------------------------------------- + // Result Handling + // --------------- + /** + * Specify cursor handling.
+ * + *
+     * # ex) Your Program
+     * #
+     * # executor.cursorHandling().selectCursor(path, pmb, handler);
+     * #
+     * 
+ * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlCursorExecutor cursorHandling() { + return new OutsideSqlCursorExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + /** + * Specify entity handling.
+ * + *
+     * # ex) Your Program
+     * #
+     * # executor.entityHandling().selectEntityWithDeletedCheck(path, pmb, Xxx.class);
+     * #
+     * 
+ * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlEntityExecutor entityHandling() { + return new OutsideSqlEntityExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + // ----------------------------------------------------- + // Paging + // ------ + /** + * Option of autoPaging.
If you invoke this, you don't need to write + * paging condition on your SQL.
+ * + *
+     * # ex) Your SQL {MySQL}
+     * #
+     * # select member.MEMBER_ID, member...
+     * #   from Member member
+     * #  where ...
+     * #  order by ...
+     * # -- limit 40, 20        *Here is unnecessary!
+     * #
+     * 
+ * + * @return The executor of paging that the paging mode is auto. (NotNull) + */ + public OutsideSqlPagingExecutor autoPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.autoPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + /** + * Option of manualPaging.
If you invoke this, you need to write + * paging condition on your SQL.
+ * + *
+     * # ex) Your SQL {MySQL}
+     * #
+     * # select member.MEMBER_ID, member...
+     * #   from Member member
+     * #  where ...
+     * #  order by ...
+     * #  limit 40, 20        *Here is necessary!
+     * #
+     * 
+ * + * @return The executor of paging that the paging mode is manual. (NotNull) + */ + public OutsideSqlPagingExecutor manualPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.manualPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + // ----------------------------------------------------- + // Dynamic Binding + // --------------- + public OutsideSqlBasicExecutor dynamicBinding() { + _dynamicBinding = true; + return this; + } + + // ----------------------------------------------------- + // Statement Config + // ---------------- + public OutsideSqlBasicExecutor configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + return this; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected OutsideSqlOption createOutsideSqlOption() { + final OutsideSqlOption option = new OutsideSqlOption(); + option.setStatementConfig(_statementConfig); + if (_dynamicBinding) { + option.dynamicBinding(); + } + option.setTableDbName(_tableDbName);// as information + return option; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,69 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.executor; + +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlCursorExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlCursorExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public Object selectCursor(String path, PARAMETER_BEAN pmb, + CursorHandler handler) { + return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, + handler); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + public OutsideSqlCursorExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,155 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlEntityExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlEntityExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select entity. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, + Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls.isEmpty()) { + return null; + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + /** + * Select entity with deleted check. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted(not found). + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntityWithDeletedCheck(String path, + PARAMETER_BEAN pmb, Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(buildSearch4LogString(path, pmb, + entityType)); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + protected String buildSearch4LogString(String path, + PARAMETER_BEAN pmb, Class entityType) { + String tmp = "Table = " + _outsideSqlOption.getTableDbName() + + getLineSeparator(); + tmp = tmp + "Path = " + path + getLineSeparator(); + tmp = tmp + "Pmb = " + + (pmb != null ? pmb.getClass().getSimpleName() : "null") + ":" + + pmb + getLineSeparator(); + tmp = tmp + "Entity = " + + (entityType != null ? entityType.getSimpleName() : "null") + + getLineSeparator(); + tmp = tmp + "Option = " + _outsideSqlOption; + return tmp; + } + + // ----------------------------------------------------- + // Helper + // ------ + protected void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + protected void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlEntityExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlEntityExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,221 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DBFluteConfig; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; + +/** + * The paging executor of outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlPagingExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outsideSql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** The option of outsideSql. (NotNull) */ + protected final OutsideSqlOption _outsideSqlOption; + + /** The DB name of table. (NotNull) */ + protected final String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlPagingExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption, String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select list with paging. + *

+ * The SQL should have Paging without Count.
You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
+ * + *

+     * - - - - - - - - - - - - - - - - - - - - - - -
+     * ex) Your Correct SQL {MySQL and manualPaging}
+     * - - - - - - - - - - - - - - - - - - - - - - -
+     * # select member.MEMBER_ID
+     * #      , member.MEMBER_NAME
+     * #      , memberStatus.MEMBER_STATUS_NAME
+     * #   from MEMBER member
+     * #     left outer join MEMBER_STATUS memberStatus
+     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
+     * #  /[*]BEGIN[*]/where
+     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
+     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
+     * #  /[*]END[*]/
+     * #  order by member.UPDATE_DATETIME desc
+     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
+     * # 
+     * o [*] is easy escape to Java Doc Comment.
+     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
+     * 
+ * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { + setupScrollableCursorIfNeeds(); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + /** + * Select page. + *

+ * The SQL should have Count and Paging.
You can realize by + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
It returns false when it executes Count. And it + * returns true when it executes Paging.
+ * + *

+     * - - - - - - - - - - - - - - - - - - - - - - -
+     * ex) Your Correct SQL {MySQL and manualPaging}
+     * - - - - - - - - - - - - - - - - - - - - - - -
+     * # /[*]IF pmb.isPaging()[*]/
+     * # select member.MEMBER_ID
+     * #      , member.MEMBER_NAME
+     * #      , memberStatus.MEMBER_STATUS_NAME
+     * # -- ELSE select count(*)
+     * # /[*]END[*]/
+     * #   from MEMBER member
+     * #     /[*]IF pmb.isPaging()[*]/
+     * #     left outer join MEMBER_STATUS memberStatus
+     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
+     * #     /[*]END[*]/
+     * #  /[*]BEGIN[*]/where
+     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
+     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
+     * #  /[*]END[*]/
+     * #  /[*]IF pmb.isPaging()[*]/
+     * #  order by member.UPDATE_DATETIME desc
+     * #  /[*]END[*]/
+     * #  /[*]IF pmb.isPaging()[*]/
+     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
+     * #  /[*]END[*]/
+     * # 
+     * o [*] is easy escape to Java Doc Comment.
+     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
+     * 
+     * - - - - - - - - - - - - - - - - - - - - - - - - -
+     * ex) Wrong SQL {part 1}
+     *     -- Line comment before ELSE comment --
+     * - - - - - - - - - - - - - - - - - - - - - - - - -
+     * # /[*]IF pmb.isPaging()[*]/
+     * # select member.MEMBER_ID
+     * #      , member.MEMBER_NAME -- The name of member...    *NG
+     * #      -- The status name of member...                  *NG
+     * #      , memberStatus.MEMBER_STATUS_NAME
+     * # -- ELSE select count(*)
+     * # /[*]END[*]/
+     * # ...
+     * o It's S2Dao's restriction...Sorry
+     * 
+ * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paging. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public PagingResultBean selectPage(final String path, + final PagingBean pmb, final Class entityType) { + final OutsideSqlOption countOption = _outsideSqlOption + .copyOptionWithoutPaging(); + final OutsideSqlEntityExecutor countExecutor = new OutsideSqlEntityExecutor( + _outsideSqlDao, countOption); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return pmb; + } + + public int count() { + pmb.xsetPaging(false); + return countExecutor.selectEntityWithDeletedCheck(path, pmb, + Integer.class); + } + + public List paging() { + pmb.xsetPaging(true); + return selectList(path, pmb, entityType); + } + }; + final PagingInvoker invoker = new PagingInvoker( + _tableDbName); + if (pmb.isCountLater()) { + invoker.countLater(); + } + return invoker.invokePaging(handler); + } + + protected void setupScrollableCursorIfNeeds() { + if (!_outsideSqlOption.isAutoPaging()) { + return; + } + StatementConfig statementConfig = _outsideSqlOption + .getStatementConfig(); + if (statementConfig != null + && statementConfig.getResultSetType() != null) { + return; + } + StatementConfig defaultStatementConfig = DBFluteConfig.getInstance() + .getDefaultStatementConfig(); + if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + return; + } + if (statementConfig == null) { + statementConfig = new StatementConfig(); + configure(statementConfig); + } + statementConfig.typeScrollInsensitive(); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlPagingExecutor configure(StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlPagingExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLink.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLink.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLink.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,91 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi; + +/** + * The class of page number link. + * + * @author DBFlute(AutoGenerator) + */ +public class PageNumberLink implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageNumberElement; + + protected boolean _current; + + protected String _pageNumberLinkHref; + + //========================================================================== + // ========= + // Constructor + // =========== + public PageNumberLink() { + } + + //========================================================================== + // ========= + // Initializer + // =========== + public PageNumberLink initialize(int pageNumberElement, boolean current, + String pageNumberLinkHref) { + setPageNumberElement(pageNumberElement); + setCurrent(current); + setPageNumberLinkHref(pageNumberLinkHref); + return this; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuffer sb = new StringBuffer(); + + sb.append(" pageNumberElement=").append(_pageNumberElement); + sb.append(" pageNumberLinkHref=").append(_pageNumberLinkHref); + sb.append(" current=").append(_current); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageNumberElement() { + return _pageNumberElement; + } + + public void setPageNumberElement(int pageNumberElement) { + this._pageNumberElement = pageNumberElement; + } + + public boolean isCurrent() { + return _current; + } + + public void setCurrent(boolean current) { + this._current = current; + } + + public String getPageNumberLinkHref() { + return _pageNumberLinkHref; + } + + public void setPageNumberLinkHref(String pageNumberLinkHref) { + this._pageNumberLinkHref = pageNumberLinkHref; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLink.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi; + +/** + * The setupper of page number link. + * + * @param The type of link. + * @author DBFlute(AutoGenerator) + */ +public interface PageNumberLinkSetupper { + + /** + * Set up page number link. + * + * @param pageNumberElement Page number element. + * @param current Is current page? + * @return Page number link. (NotNull) + */ + public LINK setup(int pageNumberElement, boolean current); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,215 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.group; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageGroupOption _pageGroupOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Calculate start page number. + * + * @return Start page number. + */ + public int calculateStartPageNumber() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int currentPageNumber = _currentPageNumber; + + int currentPageGroupNumber = (currentPageNumber / pageGroupSize); + if ((currentPageNumber % pageGroupSize) == 0) { + currentPageGroupNumber--; + } + final int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1; + if (!(currentPageNumber >= currentPageGroupStartPageNumber)) { + String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:"; + msg = msg + " currentPageNumber=" + currentPageNumber; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + return currentPageGroupStartPageNumber; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int allPageCount = _allPageCount; + final int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + final int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + pageGroupSize; + + final List resultList = new ArrayList(); + for (int i = currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + return resultList; + } + + /** + * Create the array of page number. + * + * @return The array of page number. (NotNUll) + */ + public int[] createPageNumberArray() { + assertPageGroupValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page-group? Using values are currentPageNumber and + * pageGroupSize. + * + * @return Determination. + */ + public boolean isExistPrePageGroup() { + assertPageGroupValid(); + return (_currentPageNumber > _pageGroupOption.getPageGroupSize()); + } + + /** + * Is existing next page-group? Using values are currentPageNumber and + * pageGroupSize and allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPageGroup() { + assertPageGroupValid(); + int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + _pageGroupOption.getPageGroupSize(); + return (nextPageGroupStartPageNumber <= _allPageCount); + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageGroupOption=").append(_pageGroupOption); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageGroupOption(PageGroupOption pageGroupOption) { + this._pageGroupOption = pageGroupOption; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,50 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.group; + +/** + * The option of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageGroupSize; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageGroupSize=").append(_pageGroupSize); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageGroupSize() { + return _pageGroupSize; + } + + public void setPageGroupSize(int pageGroupSize) { + this._pageGroupSize = pageGroupSize; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/group/PageGroupOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeBean.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeBean.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeBean.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,202 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.range; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageRangeValid(); + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + final int allPageCount = _allPageCount; + final int currentPageNumber = _currentPageNumber; + + final List resultList = new ArrayList(); + for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) { + if (i < 1) { + continue; + } + resultList.add(new Integer(i)); + } + + resultList.add(new Integer(currentPageNumber)); + + final int endPageNumber = (currentPageNumber + pageRangeSize); + for (int i = currentPageNumber + 1; i <= endPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + + final boolean fillLimit = _pageRangeOption.isFillLimit(); + final int limitSize = (pageRangeSize * 2) + 1; + if (fillLimit && !resultList.isEmpty() && resultList.size() < limitSize) { + final Integer firstElements = (Integer) resultList.get(0); + final Integer lastElements = (Integer) resultList.get(resultList + .size() - 1); + if (firstElements.intValue() > 1) { + for (int i = firstElements.intValue() - 1; resultList.size() < limitSize + && i > 0; i--) { + resultList.add(0, new Integer(i)); + } + } + for (int i = lastElements.intValue() + 1; resultList.size() < limitSize + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + } + return resultList; + } + + /** + * Get the array of page number. + * + * @return The array of page number. (NotNull) + */ + public int[] createPageNumberArray() { + assertPageRangeValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page range? + * + * @return Determination. + */ + public boolean isExistPrePageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[0] > 1; + } + + /** + * Is existing next page range? + * + * @return Determination. + */ + public boolean isExistNextPageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[array.length - 1] < _allPageCount; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageRangeOption=").append(_pageRangeOption); + + return sb.toString(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,61 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.pagenavi.range; + +/** + * The option of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageRangeSize; + + protected boolean _fillLimit; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageRangeSize=").append(_pageRangeSize); + sb.append(" fillLimit=").append(_fillLimit); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageRangeSize() { + return _pageRangeSize; + } + + public void setPageRangeSize(int pageRangeSize) { + this._pageRangeSize = pageRangeSize; + } + + public boolean isFillLimit() { + return _fillLimit; + } + + public void setFillLimit(boolean fillLimit) { + this._fillLimit = fillLimit; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/pagenavi/range/PageRangeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/AbstractSqlClause.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/AbstractSqlClause.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/AbstractSqlClause.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1799 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of SqlClause. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractSqlClause implements SqlClause { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String SELECT_HINT = "/*$dto.selectHint*/"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Basic + // ----- + /** Target table name. */ + protected final String _tableName; + + // ----------------------------------------------------- + // Clause Resource + // --------------- + /** + * Selected select column map. map:{tableAliasName : map:{columnName : + * selectColumnInfo}} + */ + protected Map> _selectedSelectColumnMap = new LinkedHashMap>(); + + /** + * Specified select column map. map:{ tableAliasName = map:{ columnName : + * null } } + */ + protected Map> _specifiedSelectColumnMap;// [ + + // DBFlute + // - + // 0.7.4 + // ] + + /** Specified derive sub-query map. */ + protected Map _specifiedDeriveSubQueryMap;// [DBFlute-0.7.4] + + /** Included select column map. */ + protected Map _includedSelectColumnMap = new LinkedHashMap(); + + /** + * The map of real column and alias of select clause. map:{realColumnName : + * aliasName} + */ + protected Map _selectClauseRealColumnAliasMap = new HashMap();// Without + + // linked + // ! + + /** Outer join map. */ + protected Map _outerJoinMap = new LinkedHashMap(); + + /** Where list. */ + protected List _whereList = new ArrayList(); + + /** Inline where list for BaseTable. */ + protected List _baseTableInlineWhereList = new ArrayList(); + + /** Order-by clause. */ + protected final OrderByClause _orderByClause = new OrderByClause(); + + /** Union clause list. */ + protected List _unionQueryInfoList = new ArrayList(); + + /** Is included-select-column effective? Default value is false. */ + protected boolean _isIncludedSelectColumnEffective = false; + + /** Is order-by effective? Default value is false. */ + protected boolean _isOrderByEffective = false; + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** Fetch start index. (for fetchXxx()) */ + protected int _fetchStartIndex = 0; + + /** Fetch size. (for fetchXxx()) */ + protected int _fetchSize = 0; + + /** Fetch page number. (for fetchXxx()) This value should be plus. */ + protected int _fetchPageNumber = 1; + + /** Is fetch-narrowing effective? Default value is false. */ + protected boolean _isFetchScopeEffective = false; + + // ----------------------------------------------------- + // AdditionalConditionAsOr + // ----------------------- + /** Is additional condition as or effective? */ + protected boolean _isAdditionalConditionAsOrEffective = false; + + // ----------------------------------------------------- + // WhereClauseSimpleFilter + // ----------------------- + /** The filter for where clause. */ + protected List _whereClauseSimpleFilterList; + + // ----------------------------------------------------- + // Selected Foreign Info + // --------------------- + /** The information of selected foreign table. */ + protected Map _selectedForeignInfo; + + // ----------------------------------------------------- + // Optional Info + // ------------- + protected boolean _formatClause; + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractSqlClause(String tableName) { + if (tableName == null) { + String msg = "Argument[tableName] must not be null."; + throw new IllegalArgumentException(msg); + } + _tableName = tableName; + } + + //========================================================================== + // ========= + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + public String getClause() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClause()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(false)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + public String getClausePKOnly() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClausePKOnly()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(true)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + protected String buildClauseWithoutMainSelect(boolean pkonly) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(getWhereClause()); + String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() + : getSelectClause()); + + // Delete template mark! (At the future this will be unnecessary.) + unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required + // ! + unionClause = replaceString(unionClause, + getUnionWhereFirstConditionMark(), "");// Required! + + sb.append(unionClause); + if (_isOrderByEffective && !_orderByClause.isEmpty()) { + sb.append(" "); + sb.append(getOrderByClause()); + } + sb.append(" "); + sb.append(getSqlSuffix()); + return sb.toString(); + } + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + public String getClauseFromWhereWithUnionTemplate() { + return buildClauseFromWhereAsTemplate(false); + } + + public String getClauseFromWhereWithWhereUnionTemplate() { + return buildClauseFromWhereAsTemplate(true); + } + + protected String buildClauseFromWhereAsTemplate(boolean template) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(buildWhereClause(template)); + sb.append(buildUnionClause(getUnionSelectClauseMark())); + return sb.toString(); + } + + protected String buildUnionClause(String selectClause) { + StringBuilder sb = new StringBuilder(); + for (final Iterator ite = _unionQueryInfoList + .iterator(); ite.hasNext();) { + final UnionQueryInfo unionQueryInfo = (UnionQueryInfo) ite.next(); + final String unionQueryClause = unionQueryInfo + .getUnionQueryClause(); + final boolean unionAll = unionQueryInfo.isUnionAll(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(unionAll ? " union all " : " union "); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(selectClause).append(" ").append(unionQueryClause); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // Clause Parts + // ============ + public String getSelectClause() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + List columnInfoList = dbmeta.getColumnInfoList(); + + // [DBFlute-0.7.4] + Map localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(getLocalTableAliasName()) + : null; + boolean existsSpecifiedLocal = localSpecifiedMap != null + && !localSpecifiedMap.isEmpty(); + + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedLocal + && !localSpecifiedMap.containsKey(columnName)) { + continue; + } + + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + Set tableAliasNameSet = _selectedSelectColumnMap.keySet(); + for (String tableAliasName : tableAliasNameSet) { + Map map = _selectedSelectColumnMap + .get(tableAliasName); + Collection selectColumnInfoList = map + .values(); + + // [DBFlute-0.7.4] + Map foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(tableAliasName) + : null; + boolean existsSpecifiedForeign = foreginSpecifiedMap != null + && !foreginSpecifiedMap.isEmpty(); + + for (SelectedSelectColumnInfo selectColumnInfo : selectColumnInfoList) { + String realColumnName = selectColumnInfo.buildRealColumnName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedForeign + && !foreginSpecifiedMap.containsKey(selectColumnInfo + .getColumnName())) { + continue; + } + + sb.append(", ").append(realColumnName).append(" as ").append( + selectColumnInfo.getColumnAliasName()); + _selectClauseRealColumnAliasMap.put(realColumnName, + selectColumnInfo.getColumnAliasName()); + } + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectClausePKOnly() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + UniqueInfo uniqueInfo = dbmeta.getPrimaryUniqueInfo(); + List columnInfoList = uniqueInfo.getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectHint() { + return createSelectHint(); + } + + public String getIncludedSelectColumnClause() { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _includedSelectColumnMap.keySet() + .iterator(); ite.hasNext(); count++) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sb.append(", ").append(realColumnName).append(" as ").append( + aliasName); + _selectClauseRealColumnAliasMap.put(realColumnName, aliasName); + } + return sb.toString(); + } + + public String getFromClause() { + StringBuilder sb = new StringBuilder(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("from "); + if (_baseTableInlineWhereList.isEmpty()) { + sb.append(_tableName).append(" dflocal"); + } else { + sb.append( + getInlineViewClause(_tableName, _baseTableInlineWhereList)) + .append(" dflocal"); + } + sb.append(getFromBaseTableHint()); + sb.append(getLeftOuterJoinClause()); + return sb.toString(); + } + + protected String getLeftOuterJoinClause() { + StringBuilder sb = new StringBuilder(); + for (Iterator ite = _outerJoinMap.keySet().iterator(); ite + .hasNext();) { + String aliasName = ite.next(); + LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + String joinTableName = joinInfo.getJoinTableName(); + List inlineWhereClauseList = joinInfo + .getInlineWhereClauseList(); + List additionalOnClauseList = joinInfo + .getAdditionalOnClauseList(); + Map joinOnMap = joinInfo.getJoinOnMap(); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" left outer join "); + if (inlineWhereClauseList.isEmpty()) { + sb.append(joinTableName); + } else { + sb.append(getInlineViewClause(joinTableName, + inlineWhereClauseList)); + } + sb.append(" ").append(aliasName).append(" on "); + int count = 0; + Set localColumnNameSet = joinOnMap.keySet(); + for (String localColumnName : localColumnNameSet) { + String foreignColumnName = (String) joinOnMap + .get(localColumnName); + if (count > 0) { + sb.append(" and "); + } + if (localColumnName.equals("$$fixedCondition$$")) { + sb.append(foreignColumnName); + } else { + sb.append(localColumnName).append(" = ").append( + foreignColumnName); + } + ++count; + } + for (String additionalOnClause : additionalOnClauseList) { + sb.append(" and ").append(additionalOnClause); + } + } + return sb.toString(); + } + + protected String getInlineViewClause(String joinTableName, + List inlineWhereClauseList) { + StringBuilder sb = new StringBuilder(); + sb.append("(select * from ").append(joinTableName).append(" where "); + int count = 0; + for (final Iterator ite = inlineWhereClauseList.iterator(); ite + .hasNext();) { + String clauseElement = ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count > 0) { + sb.append(" and "); + } + sb.append(clauseElement); + ++count; + } + sb.append(")"); + return sb.toString(); + } + + public String getFromBaseTableHint() { + return createFromBaseTableHint(); + } + + public String getFromHint() { + return createFromHint(); + } + + public String getWhereClause() { + return buildWhereClause(false); + } + + protected String buildWhereClause(boolean template) { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _whereList.iterator(); ite.hasNext(); count++) { + String clauseElement = (String) ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count == 0) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("where ").append( + template ? getWhereFirstConditionMark() : "").append( + clauseElement); + } else { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" and ").append(clauseElement); + } + } + if (template && sb.length() == 0) { + sb.append(getWhereClauseMark()); + } + return sb.toString(); + } + + public String getOrderByClause() { + String orderByClause = null; + if (!_unionQueryInfoList.isEmpty()) { + if (_selectClauseRealColumnAliasMap == null + || _selectClauseRealColumnAliasMap.isEmpty()) { + String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + + toString(); + throw new IllegalStateException(msg); + } + orderByClause = _orderByClause + .getOrderByClause(_selectClauseRealColumnAliasMap); + } else { + orderByClause = _orderByClause.getOrderByClause(); + } + if (isFormatClauseEffective() && orderByClause != null + && orderByClause.trim().length() > 0) { + return getLineSeparator() + " " + orderByClause; + } else { + return orderByClause; + } + } + + public String getSqlSuffix() { + String sqlSuffix = createSqlSuffix(); + if (isFormatClauseEffective() && sqlSuffix != null + && sqlSuffix.trim().length() > 0) { + return getLineSeparator() + sqlSuffix; + } else { + return sqlSuffix; + } + } + + //========================================================================== + // ========= + // Copy Parts + // ========== + public void copyIncludedSelectColumn(SqlClause sqlClause) { + Set keySet = _includedSelectColumnMap.keySet(); + for (Iterator ite = keySet.iterator(); ite.hasNext();) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sqlClause.registerIncludedSelectColumn(aliasName, realColumnName); + } + } + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected select column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath) { + _selectedSelectColumnMap + .put(foreignTableAliasName, createSelectedSelectColumnInfo( + foreignTableAliasName, localTableName, + foreignPropertyName, localRelationPath)); + } + + protected Map createSelectedSelectColumnInfo( + String foreignTableAliasName, String localTableName, + String foreignPropertyName, String localRelationPath) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + final int relationNo = foreignInfo.getRelationNo(); + String nextRelationPath = "_" + relationNo; + if (localRelationPath != null) { + nextRelationPath = localRelationPath + nextRelationPath; + } + final Map resultMap = new LinkedHashMap(); + final DBMeta foreignDBMeta = foreignInfo.getForeignDBMeta(); + final List columnInfoList = foreignDBMeta + .getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + final String columnDbName = columnInfo.getColumnDbName(); + final SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo(); + selectColumnInfo.setTableAliasName(foreignTableAliasName); + selectColumnInfo.setColumnName(columnDbName); + selectColumnInfo + .setColumnAliasName(columnDbName + nextRelationPath); + resultMap.put(columnDbName, selectColumnInfo); + } + return resultMap; + } + + public static class SelectedSelectColumnInfo { + protected String tableAliasName; + + protected String columnName; + + protected String columnAliasName; + + public String buildRealColumnName() { + if (tableAliasName != null) { + return tableAliasName + "." + columnName; + } else { + return columnName; + } + } + + public String getTableAliasName() { + return tableAliasName; + } + + public void setTableAliasName(String tableAliasName) { + this.tableAliasName = tableAliasName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnAliasName() { + return columnAliasName; + } + + public void setColumnAliasName(String columnAliasName) { + this.columnAliasName = columnAliasName; + } + } + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + public void ignoreIncludedSelectColumn() { + _isIncludedSelectColumnEffective = false; + } + + public void makeIncludedSelectColumnEffective() { + if (!_includedSelectColumnMap.isEmpty()) { + _isIncludedSelectColumnEffective = true; + } + } + + public void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + _isIncludedSelectColumnEffective = true; + _includedSelectColumnMap.put(aliasName, realColumnName); + } + + //========================================================================== + // ========= + // OuterJoin + // ========= + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap) { + assertAlreadyOuterJoin(aliasName); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + final LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo(); + joinInfo.setAliasName(aliasName); + joinInfo.setJoinTableName(joinTableName); + joinInfo.setJoinOnMap(joinOnMap); + _outerJoinMap.put(aliasName, joinInfo); + } + + protected static class LeftOuterJoinInfo { + protected String _aliasName; + + protected String _joinTableName; + + protected List _inlineWhereClauseList = new ArrayList(); + + protected List _additionalOnClauseList = new ArrayList(); + + protected Map _joinOnMap; + + protected boolean _onClauseInline; + + public String getAliasName() { + return _aliasName; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public String getJoinTableName() { + return _joinTableName; + } + + public void setJoinTableName(String value) { + _joinTableName = value; + } + + public List getInlineWhereClauseList() { + return _inlineWhereClauseList; + } + + public void addInlineWhereClause(String value) { + _inlineWhereClauseList.add(value); + } + + public List getAdditionalOnClauseList() { + return _additionalOnClauseList; + } + + public void addAdditionalOnClause(String value) { + _additionalOnClauseList.add(value); + } + + public Map getJoinOnMap() { + return _joinOnMap; + } + + public void setJoinOnMap(Map value) { + _joinOnMap = value; + } + + public boolean isOnClauseInline() { + return _onClauseInline; + } + + public void setOnClauseInline(boolean value) { + _onClauseInline = value; + } + } + + protected void assertAlreadyOuterJoin(String aliasName) { + if (_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have already registered in outer join: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + protected void assertJoinOnMapNotEmpty(Map joinOnMap, + String aliasName) { + if (joinOnMap.isEmpty()) { + String msg = "The joinOnMap should not be empty: aliasName=" + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Where + // ===== + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + key.addWhereClause(_whereList, columnFullName, value); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + assertObjectNotNull("option of " + columnFullName, option); + key.addWhereClause(_whereList, columnFullName, value, option); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String clause) { + assertStringNotNullAndNotTrimmedEmpty("clause", clause); + _whereList.add(clause); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void exchangeFirstWhereClauseForLastOne() { + if (_whereList.size() > 1) { + final String first = (String) _whereList.get(0); + final String last = (String) _whereList.get(_whereList.size() - 1); + _whereList.set(0, last); + _whereList.set(_whereList.size() - 1, first); + } + } + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + key.addWhereClause(_baseTableInlineWhereList, columnName, value); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + assertObjectNotNull("option of " + columnName, option); + key + .addWhereClause(_baseTableInlineWhereList, columnName, value, + option); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String value) { + _baseTableInlineWhereList.add(value); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value); + } + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + joinInfo.addAdditionalOnClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + joinInfo.addInlineWhereClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + protected void assertNotYetOuterJoin(String aliasName) { + if (!_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have not registered in outer join yet: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective() { + _isAdditionalConditionAsOrEffective = true; + } + + public void ignoreAdditionalConditionAsOr() { + _isAdditionalConditionAsOrEffective = false; + } + + protected void arrangeWhereListAdditionalConditionAsOr( + List whereList) { + if (_isAdditionalConditionAsOrEffective) { + if (whereList.size() < 2) { + String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + + toString(); + throw new IllegalStateException(msg); + } + final String lastWhereClause = (String) whereList.remove(whereList + .size() - 1); + final String preWhereClause = (String) whereList.remove(whereList + .size() - 1); + if (preWhereClause.startsWith("(") && preWhereClause.endsWith(")")) { + final String plainClause = preWhereClause.substring("(" + .length(), preWhereClause.length() - ")".length()); + whereList.add("(" + plainClause + " or " + lastWhereClause + + ")"); + } else { + whereList.add("(" + preWhereClause + " or " + lastWhereClause + + ")"); + } + } + } + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause() { + return _orderByClause; + } + + public SqlClause clearOrderBy() { + _isOrderByEffective = false; + _orderByClause.clear(); + return this; + } + + public SqlClause ignoreOrderBy() { + _isOrderByEffective = false; + return this; + } + + public SqlClause makeOrderByEffective() { + if (!_orderByClause.isEmpty()) { + _isOrderByEffective = true; + } + return this; + } + + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + _isOrderByEffective = true; + if (!_orderByClause.isSameOrderByColumn(orderByProperty)) { + clearOrderBy(); + registerOrderBy(orderByProperty, registeredOrderByProperty, + ascOrDesc); + } else { + _orderByClause.reverseAll(); + } + } + + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + try { + _isOrderByEffective = true; + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, + "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + + if (registeredOrderByProperty == null + || registeredOrderByProperty.trim().length() == 0) { + registeredOrderByProperty = orderByProperty; + } + + final List registeredOrderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer( + registeredOrderByProperty, "/"); + while (st.hasMoreElements()) { + registeredOrderByList.add(st.nextToken()); + } + } + + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite + .hasNext();) { + String orderBy = ite.next(); + String registeredOrderBy = (String) registeredOrderByList + .get(count); + + _isOrderByEffective = true; + String aliasName = null; + String columnName = null; + String registeredAliasName = null; + String registeredColumnName = null; + + if (orderBy.indexOf(".") < 0) { + columnName = orderBy; + } else { + aliasName = orderBy.substring(0, orderBy.lastIndexOf(".")); + columnName = orderBy + .substring(orderBy.lastIndexOf(".") + 1); + } + + if (registeredOrderBy.indexOf(".") < 0) { + registeredColumnName = registeredOrderBy; + } else { + registeredAliasName = registeredOrderBy.substring(0, + registeredOrderBy.lastIndexOf(".")); + registeredColumnName = registeredOrderBy + .substring(registeredOrderBy.lastIndexOf(".") + 1); + } + + OrderByElement element = new OrderByElement(); + element.setAliasName(aliasName); + element.setColumnName(columnName); + element.setRegisteredAliasName(registeredAliasName); + element.setRegisteredColumnName(registeredColumnName); + if (ascOrDesc) { + element.setupAsc(); + } else { + element.setupDesc(); + } + _orderByClause.addOrderByElement(element); + + count++; + } + } catch (RuntimeException e) { + String msg = "registerOrderBy() threw the exception: orderByProperty=" + + orderByProperty; + msg = msg + " registeredColumnFullName=" + + registeredOrderByProperty; + msg = msg + " ascOrDesc=" + ascOrDesc; + msg = msg + " sqlClause=" + this.toString(); + throw new RuntimeException(msg, e); + } + } + + public void addNullsFirstToPreviousOrderBy() { + _orderByClause + .addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + public void addNullsLastToPreviousOrderBy() { + _orderByClause + .addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() {// As + // Default + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + return orderByElementClause + " nulls " + + (nullsFirst ? "first" : "last"); + } + }; + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper + // For + // Nulls + // Unsupported + // Database + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + final String thenNumber = nullsFirst ? "1" : "0"; + final String elseNumber = nullsFirst ? "0" : "1"; + final String caseWhen = "case when " + columnName + + " is not null then " + thenNumber + " else " + + elseNumber + " end asc"; + return caseWhen + ", " + orderByElementClause; + } + }; + } + + //========================================================================== + // ========= + // UnionQuery + // ========== + public void registerUnionQuery(String unionQueryClause, boolean unionAll) { + assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", + unionQueryClause); + final UnionQueryInfo unionQueryInfo = new UnionQueryInfo(); + unionQueryInfo.setUnionQueryClause(unionQueryClause); + unionQueryInfo.setUnionAll(unionAll); + _unionQueryInfoList.add(unionQueryInfo); + } + + protected static class UnionQueryInfo { + protected String _unionQueryClause; + + protected boolean _unionAll; + + public String getUnionQueryClause() { + return _unionQueryClause; + } + + public void setUnionQueryClause(String unionQueryClause) { + _unionQueryClause = unionQueryClause; + } + + public boolean isUnionAll() { + return _unionAll; + } + + public void setUnionAll(boolean unionAll) { + _unionAll = unionAll; + } + } + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize) { + _isFetchScopeEffective = true; + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = 0; + _fetchSize = fetchSize; + _fetchPageNumber = 1; + doClearFetchPageClause(); + doFetchFirst(); + return this; + } + + /** + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize) { + _isFetchScopeEffective = true; + if (fetchStartIndex < 0) { + String msg = "Argument[fetchStartIndex] must be plus or zero: " + + fetchStartIndex; + throw new IllegalArgumentException(msg); + } + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = fetchStartIndex; + _fetchSize = fetchSize; + return fetchPage(1); + } + + /** + * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If + * minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber) { + _isFetchScopeEffective = true; + if (fetchPageNumber <= 0) { + fetchPageNumber = 1; + } + if (_fetchSize <= 0) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Fetch size should not be minus or zero!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "When you invoke this method, it is necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. " + + getLineSeparator(); + msg = msg + + "Please confirm your program. Does it really invoke 'fetchPage()' with 'fetchFirst()' or 'fetchScope()'?" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchPage(3);" + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchFirst(20); // The size of page" + + getLineSeparator(); + msg = msg + " cb.fetchPage(3); // The number of target page" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Actual Parameter Value]" + getLineSeparator(); + msg = msg + "fetchSize=" + _fetchSize + getLineSeparator(); + msg = msg + "fetchPageNumber=" + fetchPageNumber + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + _fetchPageNumber = fetchPageNumber; + if (_fetchPageNumber == 1 && _fetchStartIndex == 0) { + return fetchFirst(_fetchSize); + } + doClearFetchPageClause(); + doFetchPage(); + return this; + } + + abstract protected void doFetchFirst(); + + abstract protected void doFetchPage(); + + abstract protected void doClearFetchPageClause(); + + public int getFetchStartIndex() { + return _fetchStartIndex; + } + + public int getFetchSize() { + return _fetchSize; + } + + public int getFetchPageNumber() { + return _fetchPageNumber; + } + + /** + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1)); + } + + /** + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * _fetchPageNumber); + } + + public boolean isFetchScopeEffective() { + return _isFetchScopeEffective; + } + + public SqlClause ignoreFetchScope() { + _isFetchScopeEffective = false; + doClearFetchPageClause(); + return this; + } + + public SqlClause makeFetchScopeEffective() { + if (getFetchSize() > 0 && getFetchPageNumber() > 0) { + fetchPage(getFetchPageNumber()); + } + return this; + } + + public boolean isFetchStartIndexSupported() { + return true; // Default + } + + public boolean isFetchSizeSupported() { + return true; // Default + } + + abstract protected String createSelectHint(); + + abstract protected String createFromBaseTableHint(); + + abstract protected String createFromHint(); + + abstract protected String createSqlSuffix(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * The implementation. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getFetchSize(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _isFetchScopeEffective; + } + + //========================================================================== + // ========= + // Resolver + // ======== + public String resolveJoinAliasName(String relationPath, int cqNestNo) { + return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo); + } + + public String resolveNestLevelExpression(String name, int cqNestNo) { + // if (cqNestNo > 1) { + // return name + "_n" + cqNestNo; + // } else { + // return name; + // } + return name; + } + + public int resolveRelationNo(String localTableName, + String foreignPropertyName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + return foreignInfo.getRelationNo(); + } + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName() { + return "dflocal"; + } + + public String getForeignTableAliasPrefix() { + return "dfrelation"; + } + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark() { + return "#df:whereClause#"; + } + + public String getWhereFirstConditionMark() { + return "#df:whereFirstCondition#"; + } + + public String getUnionSelectClauseMark() { + return "#df:unionSelectClause#"; + } + + public String getUnionWhereClauseMark() { + return "#df:unionWhereClause#"; + } + + public String getUnionWhereFirstConditionMark() { + return "#df:unionWhereFirstCondition#"; + } + + //========================================================================== + // =========== + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + if (_whereClauseSimpleFilterList == null) { + _whereClauseSimpleFilterList = new ArrayList(); + } + _whereClauseSimpleFilterList.add(whereClauseSimpleFilter); + } + + protected String filterWhereClauseSimply(String clauseElement) { + if (_whereClauseSimpleFilterList == null + || _whereClauseSimpleFilterList.isEmpty()) { + return clauseElement; + } + for (final Iterator ite = _whereClauseSimpleFilterList + .iterator(); ite.hasNext();) { + final WhereClauseSimpleFilter filter = ite.next(); + if (filter == null) { + String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + + _whereClauseSimpleFilterList; + throw new IllegalStateException(msg); + } + clauseElement = filter.filterClauseElement(clauseElement); + } + return clauseElement; + } + + //========================================================================== + // =========== + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty() { + if (_selectedForeignInfo == null) { + return true; + } + return _selectedForeignInfo.isEmpty(); + } + + public boolean hasSelectedForeignInfo(String relationPath) { + if (_selectedForeignInfo == null) { + return false; + } + return _selectedForeignInfo.containsKey(relationPath); + } + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName) { + if (_selectedForeignInfo == null) { + _selectedForeignInfo = new HashMap(); + } + _selectedForeignInfo.put(relationPath, foreignPropertyName); + } + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective() { + return _formatClause; + } + + public void makeFormatClauseEffective() { + _formatClause = true; + } + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity) { + return getSubQueryBeginMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + public String resolveSubQueryEndMark(String subQueryIdentity) { + return getSubQueryEndMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + protected String getSubQueryBeginMarkPrefix() { + return "--df:SubQueryBegin#"; + } + + protected String getSubQueryEndMarkPrefix() { + return "--df:SubQueryEnd#"; + } + + protected String getSubQueryIdentityTerminal() { + return "#IdentityTerminal#"; + } + + public String filterSubQueryIndent(String sql) { + return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql; + } + + protected String filterSubQueryIndent(String sql, String preIndent) { + if (!isFormatClauseEffective()) { + return sql; + } + final String lineSeparator = getLineSeparator(); + if (!sql.contains(getSubQueryBeginMarkPrefix())) { + return sql; + } + final String[] lines = sql.split(lineSeparator); + final String beginMarkPrefix = getSubQueryBeginMarkPrefix(); + final String endMarkPrefix = getSubQueryEndMarkPrefix(); + final String identityTerminal = getSubQueryIdentityTerminal(); + final int terminalLength = identityTerminal.length(); + StringBuilder mainSb = new StringBuilder(); + StringBuilder subSb = null; + boolean throughBegin = false; + boolean throughBeginFirst = false; + String subQueryIdentity = null; + String indent = null; + for (String line : lines) { + if (!throughBegin) { + if (line.contains(beginMarkPrefix)) { + throughBegin = true; + subSb = new StringBuilder(); + final int markIndex = line.indexOf(beginMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subQueryIdentity = line.substring(markIndex + + beginMarkPrefix.length(), terminalIndex); + subSb.append(clause); + indent = buildSpaceBar(markIndex - preIndent.length()); + } else { + mainSb.append(line).append(getLineSeparator()); + } + } else { + // - - - - - - - - + // In begin to end + // - - - - - - - - + if (line.contains(endMarkPrefix + subQueryIdentity)) {// The end + final int markIndex = line.indexOf(endMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subSb.append(clause).append(getLineSeparator()); + final String currentSql = filterSubQueryIndent(subSb + .toString(), preIndent + indent); + mainSb.append(currentSql); + throughBegin = false; + throughBeginFirst = false; + } else { + if (!throughBeginFirst) { + subSb.append(line.trim()).append(getLineSeparator()); + throughBeginFirst = true; + } else { + subSb.append(indent).append(line).append( + getLineSeparator()); + } + } + } + } + final String filteredSql = mainSb.toString(); + + if (throughBegin) { + String msg = "End Mark Not Found!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + if (filteredSql.contains(beginMarkPrefix)) { + String msg = "Any begin marks are not filtered!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + return filteredSql; + } + + protected String buildSpaceBar(int size) { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < size; i++) { + sb.append(" "); + } + return sb.toString(); + } + + public static class SubQueryIndentFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SubQueryIndentFailureException(String msg) { + super(msg); + } + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName) { + if (_specifiedSelectColumnMap == null) { + _specifiedSelectColumnMap = new HashMap>(); + } + if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) { + _specifiedSelectColumnMap.put(tableAliasName, + new HashMap()); + } + Map elementMap = _specifiedSelectColumnMap + .get(tableAliasName); + elementMap.put(columnName, null); // The value is dummy for extension at + // the future. + _specifiedSelectColumnMap.put(tableAliasName, elementMap); + } + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) { + if (_specifiedDeriveSubQueryMap == null) { + _specifiedDeriveSubQueryMap = new LinkedHashMap(); + } + _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery); + } + + public boolean hasSpecifiedDeriveSubQuery(String aliasName) { + if (_specifiedDeriveSubQueryMap == null) { + return false; + } + return _specifiedDeriveSubQueryMap.containsKey(aliasName); + } + + public String getSpecifiedColumnNameAsOne() { + if (_specifiedSelectColumnMap != null + && _specifiedSelectColumnMap.size() == 1) { + Map elementMap = _specifiedSelectColumnMap + .get(_specifiedSelectColumnMap.keySet().iterator().next()); + if (elementMap != null && elementMap.size() == 1) { + return elementMap.keySet().iterator().next(); + } + } + return null; + } + + public void clearSpecifiedSelectColumn() { + if (_specifiedSelectColumnMap != null) { + _specifiedSelectColumnMap.clear(); + _specifiedSelectColumnMap = null; + } + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + public String getClauseQueryUpdate(Map columnParameterMap) { + if (columnParameterMap.isEmpty()) { + return null; + } + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryUpdate() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("update ").append(_tableName).append(ln); + int index = 0; + // It is guaranteed that the map has one or more elements. + for (String columnName : columnParameterMap.keySet()) { + final String parameter = columnParameterMap.get(columnName); + if (index == 0) { + sb.append(" set ").append(columnName).append(" = ").append( + parameter).append(ln); + } else { + sb.append(" , ").append(columnName).append(" = ").append( + parameter).append(ln); + } + ++index; + } + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("where ")); + sb.append(" ").append(subQuery); + return sb.toString(); + } + } + + public String getClauseQueryDelete() { + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryDelete() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("delete from ").append(_tableName).append(ln); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("from ")); + return "delete " + subQuery; + } + } + + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return true; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return false; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + return DBMetaInstanceHandler.findDBMeta(_tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String replaceString(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/AbstractSqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByClause.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByClause.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByClause.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,281 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByClause implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _orderByList = new ArrayList(); + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. + */ + public OrderByClause() { + } + + //========================================================================== + // =========== + // Manipulation + // ============ + /** + * Add order-by element. + * + * @param orderByElement Order-by element. (NotNull) + */ + public void addOrderByElement(OrderByElement orderByElement) { + _orderByList.add(orderByElement); + } + + /** + * Insert first order-by element . + * + * @param orderByElement Order-by element. (NotNull) + */ + public void insertFirstOrderByElement(OrderByElement orderByElement) { + _orderByList.add(0, orderByElement); + } + + public void reverseAll() { + for (Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + ite.next().reverse(); + } + } + + public void exchangeFirstOrderByElementForLastOne() { + if (_orderByList.size() > 1) { + final OrderByElement first = _orderByList.get(0); + final OrderByElement last = _orderByList + .get(_orderByList.size() - 1); + _orderByList.set(0, last); + _orderByList.set(_orderByList.size() - 1, first); + } + } + + public void addNullsFirstToPreviousOrderByElement( + OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, true); + } + + public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, false); + } + + public static interface OrderByNullsSetupper { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst); + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public List getOrderByList() { + return _orderByList; + } + + public String getOrderByClause() { + return getOrderByClause(null); + } + + public String getOrderByClause( + Map selectClauseRealColumnAliasMap) { + if (_orderByList.isEmpty()) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + final String delimiter = ", "; + for (final Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + final OrderByElement element = ite.next(); + sb.append(delimiter); + if (selectClauseRealColumnAliasMap != null) { + sb.append(element + .getElementClause(selectClauseRealColumnAliasMap)); + } else { + sb.append(element.getElementClause()); + } + } + sb.delete(0, delimiter.length()).insert(0, "order by "); + return sb.toString(); + } + + public boolean isSameOrderByColumn(String orderByProperty) { + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + if (_orderByList.size() != orderByList.size()) { + return false; + } + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite.hasNext();) { + final String columnFullName = ite.next(); + final OrderByElement element = (OrderByElement) _orderByList + .get(count); + if (!element.getColumnFullName().equals(columnFullName)) { + return false; + } + count++; + } + return true; + } + + //========================================================================== + // =========== + // First Element + // ============= + public boolean isFirstElementAsc() { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new IllegalStateException(msg); + } + final OrderByElement element = (OrderByElement) _orderByList.get(0); + return element.isAsc(); + } + + public boolean isFirstElementDesc() { + return !isFirstElementAsc(); + } + + public boolean isSameAsFirstElementAliasName(String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementColumnName(String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + /** + * @param expectedAliasName Expected alias-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredAliasName( + String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getRegisteredAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredColumnName( + String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getRegisteredColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + //========================================================================== + // =========== + // Delegate of List + // ================ + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _orderByList.isEmpty(); + } + + /** + * Get iterator of order-by list. + * + * @return Determination. + */ + public Iterator iterator() { + return _orderByList.iterator(); + } + + /** + * Clear order-by list. + */ + public void clear() { + _orderByList.clear(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view string of all-columns value. (NotNUll) + */ + public String toString() { + return _orderByList.toString(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByElement.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByElement.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByElement.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,273 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByElement implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + /** The value of alias name. */ + protected String _aliasName; + + /** The value of column name. */ + protected String _columnName; + + /** The value of registered alias name. */ + protected String _registeredAliasName; + + /** The value of registered column name. */ + protected String _registeredColumnName; + + /** The value of ascDesc. */ + protected String _ascDesc = "asc"; + + /** The setupper of order-by nulls. */ + protected OrderByClause.OrderByNullsSetupper _orderByNullsSetupper; + + /** Is nulls ordered first? */ + protected boolean _nullsFirst; + + //========================================================================== + // =========== + // Manipulation + // ============ + public void setupAsc() { + _ascDesc = "asc"; + } + + public void setupDesc() { + _ascDesc = "desc"; + } + + public void reverse() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + _ascDesc = "desc"; + } else if (_ascDesc.equals("desc")) { + _ascDesc = "asc"; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public boolean isAsc() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + return true; + } else if (_ascDesc.equals("desc")) { + return false; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + public String getColumnFullName() { + final StringBuilder sb = new StringBuilder(); + if (_aliasName != null) { + sb.append(_aliasName).append("."); + } + if (_columnName == null) { + String msg = "The attribute[columnName] should not be null."; + throw new IllegalStateException(msg); + } + sb.append(_columnName); + return sb.toString(); + } + + public String getElementClause() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + sb.append(getColumnFullName()).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(getColumnFullName(), sb + .toString(), _nullsFirst); + } else { + return sb.toString(); + } + } + + public String getElementClause( + Map selectClauseRealColumnAliasMap) { + if (selectClauseRealColumnAliasMap == null) { + String msg = "The argument[selectClauseRealColumnAliasMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + final String columnAlias = selectClauseRealColumnAliasMap + .get(getColumnFullName()); + if (columnAlias == null || columnAlias.trim().length() == 0) { + throwOrderByColumnNotFoundException(getColumnFullName(), + selectClauseRealColumnAliasMap); + } + sb.append(columnAlias).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(columnAlias, sb.toString(), + _nullsFirst); + } else { + return sb.toString(); + } + } + + protected void throwOrderByColumnNotFoundException(String columnName, + Map selectClauseRealColumnAliasMap) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The column for order-by was Not Found in select-clause!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "If you use 'union()' or 'unionAll()', Check your condition-bean!" + + getLineSeparator(); + msg = msg + "Order-by for union can use only columns on select-clause." + + getLineSeparator(); + msg = msg + + "So the rule when using union is little difference from the one when NOT using." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " [before (x)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *NG!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [after (o)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.setupSelect_Bbb();// *Point!" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *OK!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + + "Or else if you DON'T use 'union()' or 'unionAll()', This is the Framework Exception!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Column]" + getLineSeparator(); + msg = msg + columnName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Internal Object]" + getLineSeparator(); + msg = msg + "selectClauseRealColumnAliasMap=" + + selectClauseRealColumnAliasMap + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view-string of all-columns value. (NotNull) + */ + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{aliasName=").append(_aliasName); + sb.append(" columnName=").append(_columnName); + sb.append(" registeredAliasName=").append(_registeredAliasName); + sb.append(" registeredColumnName=").append(_registeredColumnName); + sb.append(" ascDesc=").append(_ascDesc).append("}"); + return sb.toString(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getAliasName() { + return _aliasName; + } + + public String getColumnName() { + return _columnName; + } + + public String getRegisteredAliasName() { + return _registeredAliasName; + } + + public String getRegisteredColumnName() { + return _registeredColumnName; + } + + public String getAscDesc() { + return _ascDesc; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public void setColumnName(String value) { + _columnName = value; + } + + public void setRegisteredAliasName(String value) { + _registeredAliasName = value; + } + + public void setRegisteredColumnName(String value) { + _registeredColumnName = value; + } + + public void setAscDesc(String value) { + _ascDesc = value; + } + + public void setOrderByNullsSetupper( + OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) { + _orderByNullsSetupper = value; + _nullsFirst = nullsFirst; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/OrderByElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClause.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClause.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClause.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,624 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The interface of SQL-clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlClause { + + //========================================================================== + // =========== + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + /** + * Get the clause of all parts. + * + *
+     * # select [base-table-columns], [join-table-columns]
+     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
+     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
+     * #  order by [base-table].[column] asc, [join-alias].[column] desc
+     * #  for update
+     * 
+ * + * @return The clause of all parts. (NotNull) + */ + public String getClause(); + + /** + * Get clause of all parts as PK-only. + * + *
+     * # select [base-table-columns], [join-table-columns]
+     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
+     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
+     * #  order by [base-table].[column] asc, [join-alias].[column] desc
+     * #  for update
+     * 
+ * + * @return The clause of all parts as PK-Only. (NotNull) + */ + public String getClausePKOnly(); + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + /** + * Get from-where clause without select and orderBy and sqlSuffix. For + * subQuery and selectCount. + *

+ * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark in clause. + *

+ * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithUnionTemplate(); + + /** + * Get from-where clause without select and orderBy and sqlSuffix as + * template. For subQuery and selectCount. + *

+ * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark and WhereClauseMark and + * WhereFirstConditionMark in clause. + *

+ * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithWhereUnionTemplate(); + + //========================================================================== + // =========== + // Clause Parts + // ============ + /** + * Get the clause of 'select'. This is an internal method. + * + * @return The clause of select. {[select ...] from table...} (NotNull) + */ + public String getSelectClause(); + + /** + * Get The clause of 'select' as PK-only. This is an internal method. + * + * @return The clause of select PK-only. {[select ...] from table...} + * (NotNull) + */ + public String getSelectClausePKOnly(); + + /** + * Get the hint of 'select'. This is an internal method. + * + * @return The hint of 'select'. {select [select-hint] * from table...} + * (NotNull) + */ + public String getSelectHint(); + + /** + * Get the clause of included-select-column. This is an internal method. + * + * @return The clause of included-select-column. {select ... , + * [included-select-column clause] from table...} (NotNull) + */ + public String getIncludedSelectColumnClause(); + + /** + * Get the clause of 'from'. This is an internal method. + * + * @return The clause of 'from'. (NotNull) + */ + public String getFromClause(); + + /** + * Get the clause of from-base-table. This is an internal method. + * + * @return The hint of from-base-table. {select * from table + * [from-base-table-hint] where ...} (NotNull) + */ + public String getFromBaseTableHint(); + + /** + * Get the hint of 'from'. This is an internal method. + * + * @return The hint of 'from'. {select * from table left outer join ... on + * ... [from-hint] where ...} (NotNull) + */ + public String getFromHint(); + + /** + * Get the clause of 'where'. This is an internal method. + * + * @return The clause of 'where'. (NotNull) + */ + public String getWhereClause(); + + /** + * Get the clause of 'order-by'. This is an internal method. + * + * @return The clause of 'order-by'. (NotNull) + */ + public String getOrderByClause(); + + /** + * Get the suffix of SQL. This is an internal method. + * + * @return The suffix of SQL. {select * from table where ... order by ... + * [sql-suffix]} (NotNull) + */ + public String getSqlSuffix(); + + //========================================================================== + // ========= + // Copy Parts + // ========== + /** + * Copy included-select-column. + * + * @param sqlClause SQL-clause. (NotNull) + */ + public void copyIncludedSelectColumn(SqlClause sqlClause); + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected-select-column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath); + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + /** + * Ignore included-select-column. + */ + public void ignoreIncludedSelectColumn(); + + /** + * Make included-select-column effective. + */ + public void makeIncludedSelectColumnEffective(); + + /** + * Register included-select-column. + * + * @param aliasName The alias name of the included-select-column. (NotNull) + * @param realColumnName The real column name of the included-select-column. + * (NotNull) + */ + public void registerIncludedSelectColumn(String aliasName, + String realColumnName); + + //========================================================================== + // ========= + // OuterJoin + // ========= + /** + * Register outer-join. + * + * @param joinTableName The name of join table. {left outer join + * [joinTableName]} (NotNull) + * @param aliasName The alias name of join table. {left outer join + * joinTableName [aliasName]} (NotNull and Unique per invoking + * method) + * @param joinOnMap Map that has conditions of on-clause. (NotNull) + */ + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap); + + //========================================================================== + // ========= + // Where + // ===== + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value); + + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + * @param option Condition-option. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option); + + /** + * Register 'where' clause. + * + * @param clause The clause of 'where'. (NotNull) + */ + public void registerWhereClause(String clause); + + /** + * Exchange first The clause of 'where' for last one. + */ + public void exchangeFirstWhereClauseForLastOne(); + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value); + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option); + + public void registerBaseTableInlineWhereClause(String value); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline); + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective(); + + public void ignoreAdditionalConditionAsOr(); + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause(); + + public SqlClause clearOrderBy(); + + public SqlClause ignoreOrderBy(); + + public SqlClause makeOrderByEffective(); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + public void addNullsFirstToPreviousOrderBy(); + + public void addNullsLastToPreviousOrderBy(); + + //========================================================================== + // ========= + // Union + // ===== + public void registerUnionQuery(String unionClause, boolean unionAll); + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * Fetch first. + * + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize); + + /** + * Fetch scope. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page. + *

+ * When you invoke this, it is normally necessary to invoke 'fetchFirst()' + * or 'fetchScope()' ahead of that. But you also can use default-fetch-size + * without invoking 'fetchFirst()' or 'fetchScope()'. If you invoke this, + * your SQL returns [fetch-size] records from [fetch-start-index] calculated + * by [fetch-page-number]. + *

+ * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber); + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchSize(); + + /** + * Get fetch page number. + * + * @return Fetch page number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective(); + + /** + * Ignore fetch-scope. + * + * @return this. (NotNull) + */ + public SqlClause ignoreFetchScope(); + + /** + * Make fetch-scope effective. + * + * @return this. (NotNull) + */ + public SqlClause makeFetchScopeEffective(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchSizeSupported(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * Is fetch-narrowing effective? + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Get fetch-narrowing skip-start-index. + * + * @return Skip-start-index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch-narrowing loop-count. + * + * @return Loop-count. + */ + public int getFetchNarrowingLoopCount(); + + //========================================================================== + // ========= + // Lock + // ==== + /** + * Lock for update. + *

+ * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

+ * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate(); + + //========================================================================== + // ========= + // Resolver + // ======== + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved join alias name. (NotNull) + */ + public String resolveJoinAliasName(String relationPath, int cqNestNo); + + /** + * Resolve nest level expression. + * + * @param name Name. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved name about nest level. (NotNull) + */ + public String resolveNestLevelExpression(String name, int cqNestNo); + + /** + * Resolve relation no. + * + * @param baseTableName The table name of base. (NotNull) + * @param foreignPropertyName The property name of foreign. (NotNull) + * @return Resolved relation no. + */ + public int resolveRelationNo(String baseTableName, + String foreignPropertyName); + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName(); + + public String getForeignTableAliasPrefix(); + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark(); + + public String getWhereFirstConditionMark(); + + public String getUnionSelectClauseMark(); + + public String getUnionWhereClauseMark(); + + public String getUnionWhereFirstConditionMark(); + + //========================================================================== + // ========= + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter); + + //========================================================================== + // ========= + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty(); + + public boolean hasSelectedForeignInfo(String relationPath); + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName); + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective(); + + public void makeFormatClauseEffective(); + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity); + + public String resolveSubQueryEndMark(String subQueryIdentity); + + public String filterSubQueryIndent(String sql); + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName); + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery); + + public boolean hasSpecifiedDeriveSubQuery(String aliasName); + + public String getSpecifiedColumnNameAsOne(); + + public void clearSpecifiedSelectColumn(); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + /** + * @param columnParameterMap The map of column parameters. (NotNull) + * @return The clause of query update. (Nullable: If columnParameterMap is + * empty, return null) + */ + public String getClauseQueryUpdate(Map columnParameterMap); + + public String getClauseQueryDelete(); + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDb2.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDb2.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDb2.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,165 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for DB2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDb2 extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as sql-suffix. */ + protected String _fetchFirstSqlSuffix = ""; + + /** String of lock as from-hint. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDb2(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } else { + _fetchFirstSqlSuffix = " fetch first " + getPageEndIndex() + + " rows only"; + } + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doClearFetchPageClause() { + _fetchFirstSqlSuffix = ""; + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with RS"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchFirstSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } + + // [DBFlute-0.7.9] + //========================================================================== + // ========= + // DB2 Dependency + // ============== + public void lockWithRR() { + _lockSqlSuffix = " with RR"; + } + + public void lockWithRS() { + _lockSqlSuffix = " with RS"; + } + + public void lockWithCS() { + _lockSqlSuffix = " with CS"; + } + + public void lockWithUR() { + _lockSqlSuffix = " with UR"; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDb2.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDefault.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDefault.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDefault.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,113 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDefault extends AbstractSqlClause { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDefault(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + + toString(); + throw new UnsupportedOperationException(msg); + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDefault.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDerby.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDerby.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDerby.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,136 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDerby extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDerby(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseDerby.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Firebird. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseFirebird extends AbstractSqlClause { + + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseFirebird(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseH2.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseH2.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseH2.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,104 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for H2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseH2 extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseH2(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getFetchSize() + " offset " + + getPageStartIndex(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23001".equals(sqlState); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseH2.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,111 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Interbase. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseInterbase extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseInterbase(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseMySql.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseMySql.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseMySql.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,135 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MySQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseMySql extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseMySql(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getPageStartIndex() + ", " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update Override + // ===================== + @Override + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return false; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1062; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseMySql.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseOracle.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseOracle.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseOracle.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,182 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * SqlClause for Oracle. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseOracle extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseOracle(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // Database Original Override + // ========================== + @Override + protected String buildUnionClause(String selectClause) { + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Remove select-hint comment from select clause of union + // for fetch-scope with union(). + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + selectClause = replaceString(selectClause, SELECT_HINT, ""); + return super.buildUnionClause(selectClause); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) { + return; + } + String ln = null; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } else { + ln = ""; + } + _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + + ln + "select"; + _fetchScopeSqlSuffix = ""; + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + + getPageStartIndex(); + } + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + + getPageEndIndex(); + } else { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + _fetchScopeSqlSuffix = ""; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + if (dbmeta.hasPrimaryKey()) { + final String primaryKeyColumnName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + primaryKeyColumnName; + } else { + final String randomColumnName = ((ColumnInfo) dbmeta + .getColumnInfoList().get(0)).getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + randomColumnName; + } + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseOracle.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,104 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for PostreSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClausePostgreSql extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClausePostgreSql(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " offset " + getPageStartIndex() + " limit " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,147 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MSSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseSqlServer extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as select-hint. */ + protected String _fetchFirstSelectHint = ""; + + /** String of lock as from-hint. */ + protected String _lockFromHint = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseSqlServer(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } else { + _fetchFirstSelectHint = " top " + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchFirstSelectHint = ""; + } + + /** + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. {Implement} + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockFromHint = " with (updlock)"; + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchFirstSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return _lockFromHint; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 2627; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,146 @@ +package jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * The interface of simple filter for where clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface WhereClauseSimpleFilter { + + public static final String BIND_COMMENT_BEGIN_PART = "/*dto"; + + public static final String BIND_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_BEGIN_PART = "/*$dto"; + + public static final String EMBEDDED_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_QUOTED_BEGIN_PART = "'/*$dto"; + + public static final String EMBEDDED_COMMENT_QUOTED_END_PART = "*/'dummy''"; + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement); + + /** + * The simple filter for where clause to embedded.
*Attension -- + * Target column is not perfect. This class determines by column name only! + * So when the column name of base table is same as the column name of join + * table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedSimpleFilter implements + WhereClauseSimpleFilter { + + protected java.util.Set _filterTargetColumnInfoSet; + + public WhereClauseToEmbeddedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + this._filterTargetColumnInfoSet = new java.util.HashSet(); + this._filterTargetColumnInfoSet.add(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + this._filterTargetColumnInfoSet = filterTargetColumnInfoSet; + } + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement) { + if (_filterTargetColumnInfoSet == null + || _filterTargetColumnInfoSet.isEmpty()) { + return toEmbedded(clauseElement); + } + for (final java.util.Iterator ite = _filterTargetColumnInfoSet + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (isTargetClause(clauseElement, columnInfo.getColumnDbName())) { + return toEmbedded(clauseElement); + } + } + return clauseElement; + } + + protected boolean isTargetClause(String clauseElement, + final String columnDbName) { + return clauseElement.indexOf("." + columnDbName + " ") >= 0; + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_END_PART); + return clauseElement; + } + + protected final String replace(String text, String fromText, + String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + } + + /** + * The simple filter for where clause to embedded and quoted.
+ * *Attension -- Target column is not perfect. This class determines by + * column name only! So when the column name of base table is same as the + * column name of join table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedQuotedSimpleFilter extends + WhereClauseToEmbeddedSimpleFilter { + + public WhereClauseToEmbeddedQuotedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + super(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedQuotedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + super(filterTargetColumnInfoSet); + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_QUOTED_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_QUOTED_END_PART); + return clauseElement; + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/AbstractDBMeta.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/AbstractDBMeta.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/AbstractDBMeta.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1250 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.MapListString; +import jp.sf.pal.userinfo.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.userinfo.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.userinfo.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractDBMeta implements DBMeta { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _columnInfoList; + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName) { + if (!hasFlexibleName(columnFlexibleName)) { + return false; + } + final String propertyName = findPropertyName(columnFlexibleName); + return hasMethod("column" + initCap(propertyName)); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + if (!hasColumn(columnFlexibleName)) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName(); + throw new IllegalArgumentException(msg); + } + String methodName = "column" + + initCap(findPropertyName(columnFlexibleName)); + Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ColumnInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) {// createColumnInfo() + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits); + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {// createColumnInfo + // ( + // ) + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits, optimisticLockType); + } + + /** + * The implementation. + * + * @return The list of columns. (NotNull and NotEmpty) + */ + public List getColumnInfoList() { + if (_columnInfoList != null) { + return _columnInfoList; + } + synchronized (this) { + if (_columnInfoList != null) { + return _columnInfoList; + } + Method[] methods = this.getClass().getMethods(); + _columnInfoList = newArrayList(); + String prefix = "column"; + Class returnType = ColumnInfo.class; + Object[] args = new Object[] {}; + try { + for (Method method : methods) { + if (method.getName().startsWith(prefix) + && returnType.equals(method.getReturnType())) { + _columnInfoList.add((ColumnInfo) method.invoke(this, + args)); + } + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return _columnInfoList; + } + } + + protected void initializeColumnInfoList() { + getColumnInfoList();// Ignore return value because of initialization + // only! + } + + //========================================================================== + // =========== + // Name Handling + // ============= + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return true; + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return true; + } + return false; + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get(key); + } + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + final String dbNameKeyToLower = ((String) getDbNamePropertyNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey( + dbNameKeyToLower)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get( + dbNameKeyToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get(key); + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + final String dbNameToLower = ((String) getPropertyNameDbNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(dbNameToLower)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get( + dbNameToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + protected UniqueInfo createPrimaryUniqueInfo() { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + return uniqueInfo; + } + + protected UniqueInfo createPrimaryUniqueInfo(ColumnInfo uniqueColumnInfo) { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + uniqueInfo.addUniqueColumnList(uniqueColumnInfo); + return uniqueInfo; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + /** + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return The information of relation. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("relationPropertyName", + relationPropertyName); + return hasForeign(relationPropertyName) ? (RelationInfo) findForeignInfo(relationPropertyName) + : (RelationInfo) findReferrerInfo(relationPropertyName); + } + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + return hasMethod(methodName); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropertyName) { + return findForeignInfo(foreignPropertyName).getForeignDBMeta(); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign information. (NotNull) + */ + public jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo findForeignInfo( + String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found foreign by foreignPropertyName: foreignPropertyName=" + + foreignPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ForeignInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ForeignInfo cfi(String propName, DBMeta localDbm, + DBMeta foreignDbm, + Map localForeignColumnInfoMap, int relNo, + boolean oneToOne) {// createForeignInfo() + final ForeignInfo foreignInfo = new ForeignInfo(); + foreignInfo.setForeignPropertyName(propName); + foreignInfo.setLocalDBMeta(localDbm); + foreignInfo.setForeignDBMeta(foreignDbm); + foreignInfo.setLocalForeignColumnInfoMap(localForeignColumnInfoMap); + foreignInfo.setRelationNo(relNo); + foreignInfo.setOneToOne(oneToOne); + return foreignInfo; + } + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + return hasMethod(methodName); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + return findReferrerInfo(referrerPropertyName).getReferrerDBMeta(); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found referrer by referrerPropertyName: referrerPropertyName=" + + referrerPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ReferrerInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ReferrerInfo cri(String propName, DBMeta localDbm, + DBMeta referrerDbm, + Map localReferrerColumnInfoMap, + boolean oneToOne) {// createReferrerInfo() + final ReferrerInfo referrerInfo = new ReferrerInfo(); + referrerInfo.setReferrerPropertyName(propName); + referrerInfo.setLocalDBMeta(localDbm); + referrerInfo.setReferrerDBMeta(referrerDbm); + referrerInfo.setLocalReferrerColumnInfoMap(localReferrerColumnInfoMap); + referrerInfo.setOneToOne(oneToOne); + return referrerInfo; + } + + // ----------------------------------------------------- + // Common Logic + // ------------ + protected String buildRelationInfoGetterMethodNameInitCap( + String targetName, String relationPropertyName) { + return targetName + relationPropertyName.substring(0, 1).toUpperCase() + + relationPropertyName.substring(1); + } + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + protected static abstract class AbstractRelationTrace implements + RelationTrace { + + /** The list of relation. */ + protected List _relationList; + + /** The list of relation trace. */ + protected List _relationTraceList; + + /** The list of relation info as trace. */ + protected List _traceRelationInfoList; + + /** The column info as trace. */ + protected ColumnInfo _traceColumnInfo; + + /** The handler of fixed relation trace. */ + protected RelationTraceFixHandler _relationTraceFixHandler; + + /** + * Constructor for first step. + * + * @param relationTraceFixHandler The handler of fixed relation trace. + * (Nullable) + */ + public AbstractRelationTrace( + RelationTraceFixHandler relationTraceFixHandler) { + this(new ArrayList(), + new ArrayList()); + this._relationTraceFixHandler = relationTraceFixHandler; + } + + /** + * Constructor for relation step. + * + * @param relationList The list of relation. (NotNull) + * @param relationTraceList The list of relation trace. (NotNull) + */ + public AbstractRelationTrace(List relationList, + List relationTraceList) { + this._relationList = relationList; + this._relationTraceList = relationTraceList; + this._relationTraceList.add(this); + } + + /** + * The implementation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation() { + return _traceRelationInfoList; + } + + /** + * The implementation. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn() { + return _traceColumnInfo; + } + + /** + * Fix trace. + * + * @param traceRelationInfoList The trace of relation as the list of + * relation info. (NotNull) + * @param traceColumnInfo The trace of column as column info. (Nullable) + * @return Relation trace(result). (NotNull) + */ + protected RelationTrace fixTrace( + List traceRelationInfoList, + ColumnInfo traceColumnInfo) { + final AbstractRelationTrace localRelationTrace = (AbstractRelationTrace) _relationTraceList + .get(0); + localRelationTrace.setTraceRelation(traceRelationInfoList); + localRelationTrace.setTraceColumn(traceColumnInfo); + localRelationTrace.recycle(); + localRelationTrace.handleFixedRelationTrace(); + return localRelationTrace; + } + + protected void setTraceRelation(List traceRelationInfoList) { + this._traceRelationInfoList = traceRelationInfoList; + } + + protected void setTraceColumn(ColumnInfo traceColumn) { + this._traceColumnInfo = traceColumn; + } + + /** + * The implementation. + */ + protected void recycle() { + this._relationList = new ArrayList(); + this._relationTraceList = new ArrayList(); + this._relationTraceList.add(this); + } + + protected void handleFixedRelationTrace() { + if (_relationTraceFixHandler != null) { + _relationTraceFixHandler.handleFixedTrace(this); + } + } + } + + //========================================================================== + // ========= + // Map String + // ========== + /** + * The implementation. + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString() { + return MapStringUtil.createMapListString(); + } + + /** + * The implementation. + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder() { + final List columnDbNameList = new ArrayList(); + for (final Iterator ite = getColumnInfoList().iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + return MapStringUtil.createMapStringBuilder(columnDbNameList); + } + + //========================================================================== + // ========= + // Various Info + // ============ + // These methods is expected to override if it needs. + public boolean hasSequence() { + return false; + } + + public String getSequenceNextValSql() { + return null; + } + + public boolean hasVersionNo() { + return false; + } + + public ColumnInfo getVersionNoColumnInfo() { + return null; + } + + public boolean hasUpdateDate() { + return false; + } + + public ColumnInfo getUpdateDateColumnInfo() { + return null; + } + + public boolean hasCommonColumn() { + return false; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + protected void doAcceptPrimaryKeyMap(ENTITY entity, + Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected void doAcceptColumnValueMap( + ENTITY entity, Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected String doExtractPrimaryKeyMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + protected String doExtractColumnValueMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getColumnInfoList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + // ----------------------------------------------------- + // Convert + // ------- + protected Map doConvertToColumnValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + protected Map doConvertToColumnStringValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, helpGettingColumnStringValue(value)); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected void setupEps( + Map> entityPropertySetupperMap, + Eps setupper, ColumnInfo columnInfo) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + registerEntityPropertySetupper(columnName, propertyName, setupper, + entityPropertySetupperMap); + } + + protected void registerEntityPropertySetupper( + String columnName, String propertyName, Eps setupper, + Map> entityPropertySetupperMap) { + entityPropertySetupperMap.put(columnName, setupper); + entityPropertySetupperMap.put(propertyName, setupper); + entityPropertySetupperMap.put(columnName.toLowerCase(), setupper); + entityPropertySetupperMap.put(propertyName.toLowerCase(), setupper); + } + + protected Eps findEps( + Map> entityPropertySetupperMap, + String propertyName) { + Eps setupper = entityPropertySetupperMap.get(propertyName); + if (setupper == null) { + String msg = "The propertyName was Not Found in the map of setupper of entity property:"; + msg = msg + " propertyName=" + propertyName + + " _entityPropertySetupperMap.keySet()=" + + entityPropertySetupperMap.keySet(); + throw new IllegalStateException(msg); + } + return setupper; + } + + //========================================================================== + // ========= + // Util Class + // ========== + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringUtil { + + public static void acceptPrimaryKeyMapString( + String primaryKeyMapString, Entity entity) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptPrimaryKeyMap(entity, + mapListString.generateMap(primaryKeyMapString)); + } + + public static void acceptColumnValueMapString( + String columnValueMapString, Entity entity) { + if (columnValueMapString == null) { + String msg = "The argument[columnValueMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!columnValueMapString.trim().startsWith(prefix)) { + columnValueMapString = prefix + columnValueMapString; + } + if (!columnValueMapString.trim().endsWith(suffix)) { + columnValueMapString = columnValueMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptColumnValueMap(entity, + mapListString.generateMap(columnValueMapString)); + } + + public static String extractPrimaryKeyMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractPrimaryKeyMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static String extractColumnValueMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractColumnValueMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException( + "The value should not be null: " + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + public static long parseDateStringAsMillis(Object value, + String propertyName, String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = filterTimestampValue(((String) value) + .trim()); + return java.sql.Timestamp.valueOf(valueString).getTime(); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + + " threw the exception: value=[" + value + "]", e); + } + } + + public static String filterTimestampValue(String value) { + value = value.trim(); + if (value.indexOf("/") == 4 && value.lastIndexOf("/") == 7) { + value = value.replaceAll("/", "-"); + } + if (value.indexOf("-") == 4 && value.lastIndexOf("-") == 7) { + if (value.length() == "2007-07-09".length()) { + value = value + " 00:00:00"; + } + } + return value; + } + + public static String formatDate(java.util.Date value) { + return getFormatDateFormat().format(value); + } + + public static String formatTimestamp(java.sql.Timestamp value) { + return getFormatDateFormat().format(value); + } + + public static java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateInstance(); + } + + public static java.text.DateFormat getFormatDateFormat() { + return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + } + + public static MapListString createMapListString() { + final MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + return mapListString; + } + + public static MapStringBuilder createMapStringBuilder( + List columnNameList) { + MapStringBuilder mapStringBuilder = new MapStringBuilderImpl(); + mapStringBuilder.setMsMapMark(MAP_STRING_MAP_MARK); + mapStringBuilder.setMsStartBrace(MAP_STRING_START_BRACE); + mapStringBuilder.setMsEndBrace(MAP_STRING_END_BRACE); + mapStringBuilder.setMsEqual(MAP_STRING_EQUAL); + mapStringBuilder.setMsDelimiter(MAP_STRING_DELIMITER); + mapStringBuilder.setColumnNameList(columnNameList); + return mapStringBuilder; + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapAssertUtil { + public static void assertPrimaryKeyMapNotNullAndNotEmpty( + java.util.Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + + public static void assertColumnExistingInPrimaryKeyMap( + java.util.Map primaryKeyMap, + String columnName) { + if (!primaryKeyMap.containsKey(columnName)) { + String msg = "The primaryKeyMap must have the value of " + + columnName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + + public static void assertColumnValueMapNotNullAndNotEmpty( + java.util.Map columnValueMap) { + if (columnValueMap == null) { + String msg = "The argument[columnValueMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnValueMap.isEmpty()) { + String msg = "The argument[columnValueMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringValueAnalyzer { + protected java.util.Map _valueMap; + + protected java.util.Set _modifiedPropertyNames; + + protected String _columnName; + + protected String _uncapPropName; + + protected String _propertyName; + + public MapStringValueAnalyzer( + java.util.Map valueMap, + java.util.Set modifiedPropertyNames) { + this._valueMap = valueMap; + this._modifiedPropertyNames = modifiedPropertyNames; + } + + public boolean init(String columnName, String uncapPropName, + String propertyName) { + this._columnName = columnName; + this._uncapPropName = uncapPropName; + this._propertyName = propertyName; + return _valueMap.containsKey(_columnName); + } + + public COLUMN_TYPE analyzeString( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + helpCheckingTypeString(obj, _uncapPropName, javaType.getName()); + return (COLUMN_TYPE) obj; + } + + public COLUMN_TYPE analyzeNumber( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, + String.class, obj.toString()); + } + + public COLUMN_TYPE analyzeDate(Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, long.class, + helpParsingDateString(obj, _uncapPropName, javaType + .getName())); + } + + public COLUMN_TYPE analyzeOther( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + return (COLUMN_TYPE) obj; + } + + private void helpCheckingTypeString(Object value, String uncapPropName, + String typeName) { + MapStringUtil.checkTypeString(value, uncapPropName, typeName); + } + + private long helpParsingDateString(Object value, String uncapPropName, + String typeName) { + return MapStringUtil.parseDateStringAsMillis(value, uncapPropName, + typeName); + } + + protected Object newInstanceByConstructor(Class targetType, + Class argType, Object arg) { + java.lang.reflect.Constructor constructor; + try { + constructor = targetType + .getConstructor(new Class[] { argType }); + } catch (SecurityException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (NoSuchMethodException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + try { + return constructor.newInstance(new Object[] { arg }); + } catch (IllegalArgumentException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (InstantiationException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (IllegalAccessException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (java.lang.reflect.InvocationTargetException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected ENTITY downcast(Entity entity) { + checkDowncast(entity); + return (ENTITY) entity; + } + + protected void checkDowncast(Entity entity) { + assertObjectNotNull("entity", entity); + Class entityType = getEntityType(); + Class targetType = entity.getClass(); + if (!entityType.isAssignableFrom(targetType)) { + String name = entityType.getSimpleName(); + String msg = "The entity should be " + name + " but it was: " + + targetType; + throw new IllegalStateException(msg); + } + } + + protected void helpAppendingColumnValueString(StringBuilder sb, + String delimiter, String equal, String colName, Object value) { + sb.append(delimiter).append(colName).append(equal); + sb.append(helpGettingColumnStringValue(value)); + } + + protected String helpGettingColumnStringValue(Object value) { + if (value instanceof java.sql.Timestamp) { + return (value != null ? helpFormatingTimestamp((java.sql.Timestamp) value) + : ""); + } else if (value instanceof java.util.Date) { + return (value != null ? helpFormatingDate((java.util.Date) value) + : ""); + } else { + return (value != null ? value.toString() : ""); + } + } + + protected String helpFormatingDate(java.util.Date date) { + return MapStringUtil.formatDate(date); + } + + protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) { + return MapStringUtil.formatTimestamp(timestamp); + } + + protected Map setupKeyToLowerMap(boolean dbNameKey) { + final Map map; + if (dbNameKey) { + map = newLinkedHashMap(getTableDbName().toLowerCase(), + getTablePropertyName()); + } else { + map = newLinkedHashMap(getTablePropertyName().toLowerCase(), + getTableDbName()); + } + Method[] methods = this.getClass().getMethods(); + String columnInfoMethodPrefix = "column"; + try { + for (Method method : methods) { + String name = method.getName(); + if (!name.startsWith(columnInfoMethodPrefix)) { + continue; + } + ColumnInfo columnInfo = (ColumnInfo) method.invoke(this); + String dbName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + if (dbNameKey) { + map.put(dbName.toLowerCase(), propertyName); + } else { + map.put(propertyName.toLowerCase(), dbName); + } + } + return Collections.unmodifiableMap(map); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // String Handling + // --------------- + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String initUncap(String str) { + return SimpleStringUtil.initUncap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected HashMap newHashMap() { + return new HashMap(); + } + + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + protected LinkedHashMap newLinkedHashMap(KEY key, + VALUE value) { + LinkedHashMap map = newLinkedHashMap(); + map.put(key, value); + return map; + } + + protected ArrayList newArrayList() { + return new ArrayList(); + } + + protected ArrayList newArrayList( + Collection collection) { + return new ArrayList(collection); + } + + // ----------------------------------------------------- + // Reflection Handling + // ------------------- + private Set _cachedMethodNames = new HashSet(); // for + + // performance + + protected boolean hasMethod(String methodName) { + assertStringNotNullAndNotTrimmedEmpty("methodName", methodName); + if (_cachedMethodNames.isEmpty()) { + synchronized (_cachedMethodNames) { + if (_cachedMethodNames.isEmpty()) { + final Method[] methods = this.getClass().getMethods(); + for (Method method : methods) { + _cachedMethodNames.add(method.getName()); + } + } + } + } + return _cachedMethodNames.contains(methodName); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the argument is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the string is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/AbstractDBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMeta.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMeta.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMeta.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,601 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.MapListString; +import jp.sf.pal.userinfo.db.allcommon.helper.MapStringBuilder; + +/** + * The interface of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface DBMeta { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Info + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property-name(JavaBeansRule). + * + * @return Table property-name(JavaBeansRule). (NotNull) + */ + public String getTablePropertyName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // Name Handling + // ============= + /** + * Has object of flexible name? {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName); + + /** + * Find db name by flexible name. {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName); + + /** + * Find property name(JavaBeansRule) by flexible name. {Target objects are + * TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName); + + //========================================================================== + // ========= + // Name Map + // ======== + /** + * Get the key-to-lower map of DB name(lower) and property name. + * + * @return The key-to-lower map of DB name(lower) and property name. + * (NotNull) + */ + public Map getDbNamePropertyNameKeyToLowerMap(); + + /** + * Get the key-to-lower map of property name(lower) and db name. + * + * @return The key-to-lower map of property name(lower) and db name. + * (NotNull) + */ + public Map getPropertyNameDbNameKeyToLowerMap(); + + //========================================================================== + // ========= + // Type Name + // ========= + /** + * Get the type-name of entity. + * + * @return The type-name of entity. (NotNull) + */ + public String getEntityTypeName(); + + /** + * Get the type-name of condition-bean. + * + * @return The type-name of condition-bean. (Nullable: If the condition-bean + * does not exist) + */ + public String getConditionBeanTypeName(); + + /** + * Get the type-name of dao. + * + * @return The type-name of dao. (Nullable: If the dao does not exist) + */ + public String getDaoTypeName(); + + /** + * Get the type-name of behavior. + * + * @return The type-name of behavior. (Nullable: If the behavior does not + * exist) + */ + public String getBehaviorTypeName(); + + //========================================================================== + // ========= + // Object Type + // =========== + /** + * Get the type of entity. + * + * @return The type of entity. (NotNull) + */ + public Class getEntityType(); + + //========================================================================== + // ========= + // Object Instance + // =============== + /** + * New the instance of entity. + * + * @return The instance of entity. (NotNull) + */ + public Entity newEntity(); + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * @return The list of DB name of column. (NotNull and NotEmpty) + */ + public List getColumnInfoList(); + + /** + * Has column? + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName); + + /** + * Find the information of the column by the flexible name of the column. + * + *
+     * If the table name is 'BOOK_ID', you can find the dbmeta by ...(as follows)
+     *     'BOOK_ID', 'BOok_iD', 'book_id'
+     *     , 'BookId', 'bookid', 'bOoKiD'
+     * 
+ * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName); + + //========================================================================== + // ========= + // Unique Info + // =========== + /** + * Get primary unique info. + * + * @return Primary unique info. (NotNull) + */ + public UniqueInfo getPrimaryUniqueInfo(); + + /** + * Has primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKey(); + + /** + * Has two or more primary-keys? + * + * @return Determination. + */ + public boolean hasTwoOrMorePrimaryKeys(); + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Relation Element + // ---------------- + /** + * Find relation info. + * + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return Relation info. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName); + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * Has foreign? + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropName); + + /** + * Find foreign dbmeta. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropName); + + /** + * Find foreign info. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign info. (NotNull) + */ + public ForeignInfo findForeignInfo(String foreignPropName); + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * Has referrer? + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName); + + /** + * Find referrer dbmeta. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName); + + /** + * Find referrer information. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName); + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + public static interface RelationTrace { + + /** + * Get the trace of relation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation(); + + /** + * Get the trace of column. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn(); + } + + public static interface RelationTraceFixHandler { + public void handleFixedTrace(RelationTrace relationTrace); + } + + //========================================================================== + // ========= + // Sequence Info + // ============= + /** + * Has sequence? + * + * @return Determination. + */ + public boolean hasSequence(); + + /** + * Get the SQL string for getting next value of sequence. + * + * @return The SQL string for getting next value of sequence. (Nullable: If + * it does not have sequence, returns null.) + */ + public String getSequenceNextValSql(); + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + /** + * Has version no? + * + * @return Determination. + */ + public boolean hasVersionNo(); + + /** + * Get the column information of version no. + * + * @return The column information of version no. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getVersionNoColumnInfo(); + + /** + * Has update date? + * + * @return Determination. + */ + public boolean hasUpdateDate(); + + /** + * Get the column information of update date. + * + * @return The column information of update date. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getUpdateDateColumnInfo(); + + //========================================================================== + // ========= + // Common Column Info + // ================== + /** + * Has common column? + * + * @return Determination. + */ + public boolean hasCommonColumn(); + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + /** + * Accept primary-key map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap); + + /** + * Accept primary-key map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMapString Primary-key map-string. (NotNull) + */ + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString); + + /** + * Accept column-value map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMap Column-value map. (NotNull and NotEmpty) + */ + public void acceptColumnValueMap(Entity entity, + Map columnValueMap); + + /** + * Accept column-value map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMapString Column-value map-string. (NotNull) + */ + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString); + + // ----------------------------------------------------- + // Extract + // ------- + /** + * Extract primary-key map-string. Delimiter is at-mark and semicolon. + *

+ * + *

+     * ex) Uses that this method have.
+     *   final String primaryKeyMapString = LdBookDbm.extractPrimaryKeyMapString(entity);
+     *   final LdBook entity = dao.selectEntity(new LdBookCB().acceptPrimaryKeyMapString(primaryKeyMapString));
+     *   ... // as primary key for condition.
+     * 
+ * + * @param entity Target entity. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity); + + /** + * Extract primary-key map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + /** + * Extract column-value map-string. Delimiter is at-mark and semicolon. + * + * @param entity Target entity. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity); + + /** + * Extract column-value map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + // ----------------------------------------------------- + // Convert + // ------- + /** + * Convert entity to column value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column value. (NotNull) + */ + public List convertToColumnValueList(Entity entity); + + /** + * Convert entity to column value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column value. (NotNull) + */ + public Map convertToColumnValueMap(Entity entity); + + /** + * Convert entity to column string-value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column string-value. (NotNull) + */ + public List convertToColumnStringValueList(Entity entity); + + /** + * Convert entity to column string-value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column string-value. (NotNull) + */ + public Map convertToColumnStringValueMap(Entity entity); + + //========================================================================== + // ========= + // Map String + // ========== + /** + * Create map list string that is prepared. (for INTERNAL) + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString(); + + /** + * Create map string builder that is prepared. (for INTERNAL) + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder(); + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + /** + * Has the setupper of entity property by the name of property?
+ * Comparing is so flexible. {Ignore cases and underscore} + * + * @param propertyName The name of the property. (NotNull) + * @return Determination. + */ + public boolean hasEntityPropertySetupper(String propertyName); + + /** + * Set up entity property. (for INTERNAL) + * + * @param propertyName The name of the property. (NotNull) + * @param entity The entity for the property. (NotNull) + * @param value The value of the property. (Nullable) + */ + public void setupEntityProperty(String propertyName, Object entity, + Object value); + + /** + * The setupper of entity property.
This class is for Internal. Don't + * use this! + * + * @param The type of entity. + */ + public interface Eps { + + /** + * @param entity Entity. (NotNull) + * @param value Value. (Nullable) + */ + void setup(ENTITY_TYPE entity, Object value); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public static enum OptimisticLockType { + NONE, VERSION_NO, UPDATE_DATE + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,216 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.util.SimpleAssertUtil; + +/** + * DBMeta instance handler. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class DBMetaInstanceHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Table DB-name instance map. */ + protected static final Map _tableDbNameInstanceMap = new LinkedHashMap(); + + /** The map of table DB-name and class name. */ + protected static final Map _tableDbNameClassNameMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO", + "jp.sf.pal.userinfo.db.bsentity.dbmeta.GroupInfoDbm"); + tmpMap.put("ROLE_INFO", + "jp.sf.pal.userinfo.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("USER_INFO", + "jp.sf.pal.userinfo.db.bsentity.dbmeta.UserInfoDbm"); + + _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of DB-name and property-name for table. */ + protected static final Map _tableDbNamePropertyNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); + tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); + + _tableDbNamePropertyNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of property-name and DB-name for table. */ + protected static final Map _tablePropertyNameDbNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); + tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); + + _tablePropertyNameDbNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + protected static DBMeta getDBMeta(String className) { + try { + Class clazz = Class.forName(className); + java.lang.reflect.Method methoz = clazz.getMethod("getInstance", + (Class[]) null); + Object result = methoz.invoke(null, (Object[]) null); + return (DBMeta) result; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * @return The initialized map that contains all instances of dbmeta. + * (NotNull & NotEmpty) + */ + public static Map getDBMetaMap() { + initializeDBMetaMap(); + return _tableDbNameInstanceMap; + } + + protected static void initializeDBMetaMap() { + if (isInitialized()) { + return; + } + final Set tableDbNameSet = _tableDbNameClassNameMap.keySet(); + for (String tableDbName : tableDbNameSet) { + findDBMeta(tableDbName); // Initialize! + } + if (!isInitialized()) { + String msg = "Failed to initialize tableDbNameInstanceMap:"; + msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap; + throw new IllegalStateException(msg); + } + } + + protected static boolean isInitialized() { + return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap + .size(); + } + + //========================================================================== + // ========= + // Main Method + // =========== + /** + * Find dbmeta by table flexible-name. + * + *
+     * If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)
+     *     'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'
+     *     , 'OrderDetail', 'orderdetail', 'oRderDetaIl'
+     * 
+ * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return The instance of dbmeta. (NotNull) + * @exception DBMetaNotFoundException When the dbmeta is not found. + */ + public static DBMeta findDBMeta(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) { + return byTableDbName(tableFlexibleName); + } + String toLowerKey = tableFlexibleName.toLowerCase(); + if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) { + String propertyName = (String) _tableDbNamePropertyNameKeyToLowerMap + .get(toLowerKey); + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(propertyName.toLowerCase()); + return byTableDbName(dbName); + } + if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) { + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(toLowerKey); + return byTableDbName(dbName); + } + final int dotLastIndex = tableFlexibleName.lastIndexOf("."); + if (dotLastIndex >= 0) { + try { + return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1)); + } catch (DBMetaNotFoundException e) { + // Nothing + } + } + String msg = "The instance map returned null by the key: key=" + + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + + public static class DBMetaNotFoundException extends IllegalStateException { + private static final long serialVersionUID = 1L; + + public DBMetaNotFoundException(String msg) { + super(msg); + } + } + + /** + * Get instance by table DB-name. + * + * @param tableDbName Table DB-name. (NotNull) + * @return Instance. (NotNull) + */ + protected static DBMeta byTableDbName(String tableDbName) { + assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName); + DBMeta instance = getCachedDBMeta(tableDbName); + if (instance == null) { + String msg = "The instance map returned null by the key: key=" + + tableDbName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + return instance; + } + + protected static DBMeta getCachedDBMeta(String tableName) {// For lazy-load! + // Thank you + // koyak! + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + synchronized (_tableDbNameInstanceMap) { + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + String entityName = _tableDbNameClassNameMap.get(tableName); + _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName)); + } + return _tableDbNameInstanceMap.get(tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // Assert Object + // ------------- + protected static void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,915 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.RelationInfo; + +/** + * The arranger of hierarchy. + * + *
+ * ex) LIBRARY Hierarchy
+ * 
+ * LIBRARY
+ *  |1
+ *  |--* NEXT_LIBRARY (Referrer)
+ *  |       |*
+ *  |       |--1 LIBRARY (Foreign)
+ *  |
+ *  |--* COLLECTION (Referrer)
+ *  |       |1 
+ *  |       |--1 COLLECTION_STATUS (Referrer)
+ *  |       |       |*
+ *  |       |       |--1 COLLECTION_STATUS_LOOKUP (Foreign)
+ *  |       |
+ *  |       |--1 BOOK (Foreign)
+ *  |       |     |*
+ *  |       |     |--1 AUTHOR (Foreign)
+ *  |       |     |--1 PUBLISER (Foreign)
+ *  |       |     |--1 GENRE (Foreign)
+ *  |       |           |*
+ *  |       |           |--1 GENRE (Foreign)
+ *  |       |
+ *  |       |--* LENDING_COLLECTION (Referrer)
+ *  |       |
+ *  |
+ *  |--* LIBRARY_USER (Referrer)
+ *         |*  |1
+ *         |   |--* LENDING (Referrer)
+ *         |         |1
+ *         |         |--* LENDING_COLLECTION (Referrer)
+ *         |
+ *         |--1 LB_USER (Foreign)
+ *                 |1
+ *                 |--* BLACK_LIST (Referrer)
+ *                         |1
+ *                         |--* BLACK_ACTION (Referrer)
+ *                                 |*
+ *                                 |--1 BLACK_ACTION_LOOKUP (Foreign)
+ *          
+ *          
+ * ex) The SQL of LIBRARY Hierarchy as FLAT
+ * 
+ * select library.LIBRARY_ID as LIBRARY_ID
+ *      , library.LIBRARY_NAME as LIBRARY_NAME
+ *      , library.R_USER as R_USER
+ *      , library.R_TIMESTAMP as R_TIMESTAMP
+ *      , nextBase.LIBRARY_ID as BASE_LIBRARY_ID
+ *      , nextBase.NEXT_LIBRARY_ID as NEXT_LIBRARY_ID
+ *      , nextBaseNextLibrary.LIBRARY_ID as NEXT_LIBRARY_NEXT_LIBRARY_ID
+ *      , nextBaseNextLibrary.LIBRARY_NAME as NEXT_LIBRARY_NEXT_LIBRARY_NAME
+ *      , collection.COLLECTION_ID as COLLECTION_ID
+ *      , collection.ARRIVAL_DATE as COLLECTION_ARRIVAL_DATE
+ *      , collectionStatus.COLLECTION_ID as COLLECTION_STATUS_ID
+ *      , collectionStatus.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
+ *      , collectionStatusLookup.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
+ *      , collectionStatusLookup.COLLECTION_STATUS_NAME as COLLECTION_STATUS_NAME
+ *      , book.BOOK_ID as COLLECTION_BOOK_ID
+ *      , book.BOOK_NAME as COLLECTION_BOOK_NAME
+ *      , author.AUTHOR_ID as COLLECTION_BOOK_AUTHOR_ID
+ *      , author.AUTHOR_NAME as COLLECTION_BOOK_AUTHOR_NAME
+ *      , libraryUser.LIBRARY_ID as LIBRARY_USER_LIBRARY_ID 
+ *      , libraryUser.LB_USER_ID as LIBRARY_USER_LB_USER_ID
+ *      , lending.LIBRARY_ID as LENDING_LIBRARY_ID
+ *      , lending.LB_USER_ID as LENDING_LB_USER_ID
+ *      , lending.LENDING_DATE as LENDING_DATE
+ *      , lending.U_USER as LENDING_U_USER
+ *      , lending.U_MODULE as LENDING_U_MODULE
+ *      , lbUser.LB_USER_ID as LB_USER_ID
+ *      , lbUser.LB_USER_NAME as LB_USER_NAME
+ *   from LIBRARY library
+ *     left outer join NEXT_LIBRARY nextBase on library.LIBRARY_ID = nextBase.LIBRARY_ID
+ *       left outer join LIBRARY nextBaseNextLibrary on nextBase.NEXT_LIBRARY_ID = nextBaseNextLibrary.LIBRARY_ID
+ *     left outer join COLLECTION collection on library.LIBRARY_ID = collection.LIBRARY_ID
+ *       left outer join COLLECTION_STATUS collectionStatus on collection.COLLECTION_ID = collectionStatus.COLLECTION_ID
+ *         left outer join COLLECTION_STATUS_LOOKUP collectionStatusLookup on collectionStatus.COLLECTION_STATUS_CODE = collectionStatusLookup.COLLECTION_STATUS_CODE
+ *       left outer join BOOK book on collection.BOOK_ID = book.BOOK_ID
+ *         left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID
+ *     left outer join LIBRARY_USER libraryUser on library.LIBRARY_ID = libraryUser.LIBRARY_ID
+ *       left outer join LENDING lending on libraryUser.LIBRARY_ID = lending.LIBRARY_ID and libraryUser.LB_USER_ID = lending.LB_USER_ID
+ *       left outer join LB_USER lbUser on libraryUser.LB_USER_ID = lbUser.LB_USER_ID
+ * 
+ * 
+ * ex) Invoking Hierarchy Arranger
+ * 
+ * private List<Library> makeLibraryList() {
+ *     final HierarchyRequest<Library> request = createHierarchyRequest(createFlatLibraryList());
+ *     return new HierarchyArranger<Library>().arrangeHierarchy(request);
+ * }
+ * 
+ * 
+ * ex) Creating Hierarchy Request
+ * 
+ * private HierarchyRequest<Library> createHierarchsyRequest(java.util.List>HierarchyFlatLibrary> flatLibraryList) {
+ * 
+ *     // Define dbmeta.
+ *     final HierarchyFlatLibraryDbm sourceDbm = HierarchyFlatLibraryDbm.getInstance();
+ * 
+ *     // Define hierarychy request as library.
+ *     final HierarchyRequest<Library> request = new HierarchyRequest<Library>(Library.class);
+ * 
+ *     // Register the list of source iterator. (by calling creator for flat library list)
+ *     request.registerSourceList(flatLibraryList);
+ * 
+ *     // Create relation trace.
+ *     final LibraryRelationTrace trace = LibraryDbm.getInstance().createRelationTrace(null);
+ *     
+ *     // Register column [libraryId]
+ *     request.mapping(sourceDbm.columnLibraryId(), trace.columnLibraryId());
+ * 
+ *     // Register column [libraryName]
+ *     request.mapping(sourceDbm.columnLibraryName(), trace.columnLibraryName());
+ * 
+ *     // Register column [RUser]
+ *     request.mapping(sourceDbm.columnRUser(), trace.columnRUser());
+ * 
+ *     // Register column [RTimestamp]
+ *     request.mapping(sourceDbm.columnRTimestamp(), trace.columnRTimestamp());
+ * 
+ *     // Register column [baseLibraryId]
+ *     request.mapping(sourceDbm.columnBaseLibraryId(), trace.referrerNextLibraryByBaseIdList().columnLibraryId());
+ * 
+ *     // Register column [nextLibraryId]
+ *     request.mapping(sourceDbm.columnNextLibraryId(), trace.referrerNextLibraryByBaseIdList().columnNextLibraryId());
+ * 
+ *     // Register column [nextLibraryNextLibraryId]
+ *     request.mapping(sourceDbm.columnNextLibraryNextLibraryId(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryId());
+ * 
+ *     // Register column [nextLibraryNextLibraryName]
+ *     request.mapping(sourceDbm.columnNextLibraryNextLibraryName(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryName());
+ * 
+ *     // Register column [collectionId]
+ *     request.mapping(sourceDbm.columnCollectionId(), trace.referrerCollectionList().columnCollectionId());
+ * 
+ *     // Register column [arrivalDate]
+ *     request.mapping(sourceDbm.columnCollectionArrivalDate(), trace.referrerCollectionList().columnArrivalDate());
+ * 
+ *     // Register column [collectionStatusId]
+ *     request.mapping(sourceDbm.columnCollectionStatusId(), trace.referrerCollectionList().foreignCollectionStatusAsOne().columnCollectionId());
+ * 
+ *     // Register column [collectionStatusCode]
+ *     request.mapping(sourceDbm.columnCollectionStatusCode(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusCode());
+ * 
+ *     // Register column [collectionStatusName]
+ *     request.mapping(sourceDbm.columnCollectionStatusName(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusName());
+ * 
+ *     // Register column [collectionBookId]
+ *     request.mapping(sourceDbm.columnCollectionBookId(), trace.referrerCollectionList().foreignBook().columnBookId());
+ * 
+ *     // Register column [collectionBookName]
+ *     request.mapping(sourceDbm.columnCollectionBookName(), trace.referrerCollectionList().foreignBook().columnBookName());
+ * 
+ *     // Register column [collectionBookAuthorId]
+ *     request.mapping(sourceDbm.columnCollectionBookAuthorId(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorId());
+ * 
+ *     // Register column [collectionBookAuthorName]
+ *     request.mapping(sourceDbm.columnCollectionBookAuthorName(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorName());
+ * 
+ *     // Register column [libraryUserLibraryId]
+ *     request.mapping(sourceDbm.columnLibraryUserLibraryId(), trace.referrerLibraryUserList().columnLibraryId());
+ * 
+ *     // Register column [libraryUserLbUserId]
+ *     request.mapping(sourceDbm.columnLibraryUserLbUserId(), trace.referrerLibraryUserList().columnLbUserId());
+ * 
+ *     // Register column [lendingLibraryId]
+ *     request.mapping(sourceDbm.columnLendingLibraryId(), trace.referrerLibraryUserList().referrerLendingList().columnLibraryId());
+ * 
+ *     // Register column [lendingLbUserId]
+ *     request.mapping(sourceDbm.columnLendingLbUserId(), trace.referrerLibraryUserList().referrerLendingList().columnLbUserId());
+ * 
+ *     // Register column [lendingDate]
+ *     request.mapping(sourceDbm.columnLendingDate(), trace.referrerLibraryUserList().referrerLendingList().columnLendingDate());
+ * 
+ *     // Register column [lendingUUser]
+ *     request.mapping(sourceDbm.columnLendingUUser(), trace.referrerLibraryUserList().referrerLendingList().columnUUser());
+ * 
+ *     // Register column [lendingUModule]
+ *     request.mapping(sourceDbm.columnLendingUModule(), trace.referrerLibraryUserList().referrerLendingList().columnUModule());
+ * 
+ *     // Register column [lbUserId]
+ *     request.mapping(sourceDbm.columnLbUserId(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserId());
+ * 
+ *     // Register column [lbUserName]
+ *     request.mapping(sourceDbm.columnLbUserName(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserName());
+ * 
+ *     return request;
+ * }
+ * 
+ * private java.util.List>HierarchyFlatLibrary> createFlatLibraryList() {
+ *     (...select and get list)
+ *     return flatLibraryList;
+ * }
+ * 
+ * 
+ * === Relation Trace Tips ===
+ * 
+ *   RelationTrace.f + [Code Assist] -- go to Foreign
+ *   RelationTrace.r + [Code Assist] -- go to Referrer
+ * RelationTrace.c + [Code Assist] -- end relation by Column
+ * 
+ * 
+ * 
+ * @author DBFlute(AutoGenerator)
+ * @param  The type of local entity extends Entity
+ */
+ ¡÷ SuppressWarnings("unchecked")
+public class HierarchyArranger {
+
+    //==========================================================================
+    // =========
+    // Main
+    // ====
+    /**
+     * Arrange hierarchy.
+     * 
+     * @param request Hierarchy request. (NotNull)
+     * @return The list of local entity. (NotNull)
+     */
+    public List arrangeHierarchy(
+            HierarchyRequest request) {
+        final List localTableList = new ArrayList();
+        final Map alreadyRegisteredEntityMap = new HashMap();
+
+        // ============
+        // Record Loop!
+        // ============
+        final HierarchySourceIterator sourceIterator = request
+                .getSourceIterator();
+        while (sourceIterator.hasNext()) {
+            final HierarchySourceRow sourceRow = sourceIterator.next();
+            final TopInfo topInfo = new TopInfo();
+            topInfo.setHierarchyRequest(request);
+            topInfo.setSourceRow(sourceRow);
+            topInfo.setAlreadyRegisteredEntityMap(alreadyRegisteredEntityMap);
+
+            final Map primaryKeyMap = extractTopPrimaryKeyMapFromSource(topInfo);
+            final String alreadyRegisteredKey = buildTopAlreadyRegisteredKey(primaryKeyMap);
+            if (alreadyRegisteredEntityMap.containsKey(alreadyRegisteredKey)) {
+                final Entity localEntity = alreadyRegisteredEntityMap
+                        .get(alreadyRegisteredKey);
+                topInfo.setLocalEntity(localEntity);
+            } else {
+                // Make local entity and register it to the result list.
+                final LOCAL_ENTITY localEntity = newLocalEntity(request
+                        .getDestinationDBMeta());
+                topInfo.setLocalEntity(localEntity);
+                localTableList.add(localEntity);
+                alreadyRegisteredEntityMap.put(alreadyRegisteredKey,
+                        localEntity);
+            }
+
+            // ============
+            // Column Loop!
+            // ============
+            doColumnLoop(topInfo);
+        }
+
+        // Clear modified properties.
+        final java.util.Set alreadyRegisteredEntityKeySet = alreadyRegisteredEntityMap
+                .keySet();
+        for (String key : alreadyRegisteredEntityKeySet) {
+            final Entity currentRegisteredEntity = alreadyRegisteredEntityMap
+                    .get(key);
+            currentRegisteredEntity.clearModifiedPropertyNames();
+        }
+
+        return localTableList;
+    }
+
+    /**
+     * Build top already-registered key.
+     * 
+     * @param primaryKeyMap The map of primary key. (NotNull)
+     * @return Top already-registered key. (NotNull)
+     */
+    protected String buildTopAlreadyRegisteredKey(
+            Map primaryKeyMap) {
+        return HierarchyRequestElement.TOP_KEY + ":" + primaryKeyMap;
+    }
+
+    /**
+     * Do column loop.
+     * 
+     * @param topInfo The information object of top that has generics of the
+     *            type of local entity. (NotNull)
+     */
+    protected void doColumnLoop(TopInfo topInfo) {
+        final HierarchyRequest request = topInfo
+                .getHierarchyRequest();
+        final Entity localEntity = topInfo.getLocalEntity();
+        final List requestElementList = request
+                .getRequestElementList();
+
+        // ============
+        // Column Loop!
+        // ============
+        for (HierarchyRequestElement requestElement : requestElementList) {
+            final List relationPropertyNameList = requestElement
+                    .getRelationPropertyNameList();
+
+            // If the column belongs to local entity, inject the value to entity
+            // and continue loop.
+            if (relationPropertyNameList == null
+                    || relationPropertyNameList.isEmpty()) {
+                final HierarchySourceColumn sourceColumn = requestElement
+                        .getSourceColumnInfo();
+                final HierarchySourceRow sourceRow = topInfo.getSourceRow();
+                final Object sourceColumnValue = extractColumnValueFromSource(
+                        sourceRow, sourceColumn);
+                final ColumnInfo destinationColumnInfo = requestElement
+                        .getDestinationColumnInfo();
+                injectColumnValueToDestinationIfNotNull(localEntity,
+                        destinationColumnInfo, sourceColumnValue);
+                continue;
+            }
+
+            // ==============
+            // Relation Loop!
+            // ==============
+            doRelationLoop(topInfo, requestElement, relationPropertyNameList);
+        }
+    }
+
+    /**
+     * Do relation loop.
+     * 
+     * @param topInfo The information object of top that has generics of local
+     *            entity. (NotNull)
+     * @param requestElement The element of request. This is relation loop
+     *            resource. (NotNull)
+     * @param relationPropNameList The list of relation property name that has
+     *            generics of string. (NotNull)
+     */
+    protected void doRelationLoop(TopInfo topInfo,
+            HierarchyRequestElement requestElement,
+            java.util.List relationPropNameList) {
+        final HierarchyRequest request = topInfo
+                .getHierarchyRequest();
+        final Map alreadyRegisteredEntityMap = topInfo
+                .getAlreadyRegisteredEntityMap();
+
+        // Temporary variables for local
+        Entity localEntity = topInfo.getLocalEntity();// as Default
+        DBMeta localDBMeta = request.getDestinationDBMeta();// as Default
+        String localRelationPath = HierarchyRequestElement.TOP_KEY;// as Default
+
+        // ==============
+        // Relation Loop!
+        // ==============
+        final StringBuilder relationPropKeyStringBuilder = new StringBuilder();
+        int relationLoopCount = 0;
+        for (String relationPropName : relationPropNameList) {
+            if (relationPropKeyStringBuilder.length() > 0) {
+                relationPropKeyStringBuilder.append("_");
+            }
+            relationPropKeyStringBuilder.append(relationPropName);
+            final String targetRelationPath = relationPropKeyStringBuilder
+                    .toString();
+            final RelationInfo relationInfo = localDBMeta
+                    .findRelationInfo(relationPropName);
+
+            final Map targetPrimaryKeyMap;
+            final String alreadyRegisteredEntityKey;
+            if (!relationInfo.isReferrer()) {
+                // =======
+                // Foreign
+                // =======
+                final ForeignInfo foreignInfo = localDBMeta
+                        .findForeignInfo(relationPropName);
+                final String foreignPropName = foreignInfo
+                        .getForeignPropertyName();
+
+                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                // - - - -
+                // If the value of primary key does not exist, break this
+                // relation path!
+                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                // - - - -
+                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
+                    break;
+                }
+
+                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
+                        targetRelationPath);
+                alreadyRegisteredEntityKey = targetRelationPath + ":"
+                        + targetPrimaryKeyMap.toString();
+                if (!alreadyRegisteredEntityMap
+                        .containsKey(alreadyRegisteredEntityKey)) {
+                    // - - - - - - - - - - - - - - - - - - - - - - -
+                    // Initialize the foreign entity and inject it.
+                    // - - - - - - - - - - - - - - - - - - - - - - -
+                    final Entity foreignEntity = foreignInfo.getForeignDBMeta()
+                            .newEntity();
+                    injectForeignEntity(localEntity, foreignPropName,
+                            foreignEntity);
+
+                    // - - - - - - - - - - - - - - - - - -
+                    // Initialize primary key of foreign.
+                    // - - - - - - - - - - - - - - - - - -
+                    injectForeignPrimaryKey(foreignEntity, targetPrimaryKeyMap);
+
+                    // - - - - - - - - - - - - - - - - - -
+                    // Initialize foreign key of local.
+                    // - - - - - - - - - - - - - - - - - -
+                    injectLocalForeignKey(topInfo, localEntity, foreignInfo,
+                            targetRelationPath);
+
+                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                    // -
+                    // Put foreign entity to the map of
+                    // already-registered-entity.
+                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                    // -
+                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
+                            .toString(), foreignEntity);
+                } else {
+                    // - - - - - - - - - - - - - -
+                    // Inject the foreign entity.
+                    // - - - - - - - - - - - - - -
+                    final Entity foreignEntity = alreadyRegisteredEntityMap
+                            .get(alreadyRegisteredEntityKey);
+                    injectForeignEntity(localEntity, foreignPropName,
+                            foreignEntity);
+                }
+            } else {
+                // =======
+                // Referrer
+                // =======
+                final ReferrerInfo referrerInfo = localDBMeta
+                        .findReferrerInfo(relationPropName);
+
+                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                // - - - - - - -
+                // Extract referrer list from current local entity and
+                // initialize it if needs.
+                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                // - - - - - - -
+                List referrerList = extractReferrerList(localEntity,
+                        referrerInfo);
+                if (referrerList == null) {
+                    String msg = "The referrer list should not be null: localEntity="
+                            + localEntity + " referrerInfo=" + referrerInfo;
+                    throw new IllegalStateException(msg);
+                }
+
+                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                // - - - -
+                // If the value of primary key does not exist, break this
+                // relation path!
+                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                // - - - -
+                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
+                    break;
+                }
+
+                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
+                        targetRelationPath);
+                alreadyRegisteredEntityKey = targetRelationPath + ":"
+                        + targetPrimaryKeyMap.toString();
+                if (!alreadyRegisteredEntityMap
+                        .containsKey(alreadyRegisteredEntityKey)) {
+                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                    // - - - - - - - - - - - - - - - -
+                    // Initialize referrer entity and register it to the list of
+                    // referrer with primary key value.
+                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                    // - - - - - - - - - - - - - - - -
+                    final Entity referrerEntity = relationInfo
+                            .getTargetDBMeta().newEntity();
+                    referrerList.add(referrerEntity);
+
+                    // - - - - - - - - - - - - - - - - - -
+                    // Initialize primary key of referrer.
+                    // - - - - - - - - - - - - - - - - - -
+                    injectReferrerPrimaryKey(referrerEntity,
+                            targetPrimaryKeyMap);
+
+                    // - - - - - - - - - - - - - - - - - -
+                    // Initialize foreign key of referrer.
+                    // - - - - - - - - - - - - - - - - - -
+                    injectReferrerForeignKey(topInfo, referrerEntity,
+                            referrerInfo, localRelationPath);
+
+                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                    // -
+                    // Put referrer entity to the map of
+                    // already-registered-entity.
+                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+                    // -
+                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
+                            .toString(), referrerEntity);
+                }
+            }
+
+            // - - - - - - - - - - - - - - - - - -
+            // Set next value to current element.
+            // - - - - - - - - - - - - - - - - - -
+            localEntity = alreadyRegisteredEntityMap
+                    .get(alreadyRegisteredEntityKey);
+            localDBMeta = localEntity.getDBMeta();
+            localRelationPath = targetRelationPath;
+
+            if (relationLoopCount == (relationPropNameList.size() - 1)) {// The
+                // last
+                // loop
+                // !
+                // - - - - - - - - - - - -
+                // Here is the last loop!
+                // - - - - - - - - - - - -
+                doLastLoopInjection(topInfo, requestElement, localEntity,
+                        targetPrimaryKeyMap);
+            }
+            ++relationLoopCount;
+        }
+    }
+
+    /**
+     * Is not existing primary key at the relation path?.
+     * 
+     * @param topInfo The information object of top that has generics of local
+     *            entity. (NotNull)
+     * @param relationPath The path of relation. (NotNull)
+     * @return Determination.
+     */
+    protected boolean isNotExistPrimaryKey(TopInfo topInfo,
+            String relationPath) {
+        final Map primaryKeyMap = extractPrimaryKeyMapFromSource(
+                topInfo, relationPath);
+        final Set keySet = primaryKeyMap.keySet();
+        for (String key : keySet) {
+            final Object value = primaryKeyMap.get(key);
+            if (value == null) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Do last loop injection.
+     * 
+     * @param topInfo The information object of top that has generics of local
+     *            entity. (NotNull)
+     * @param requestElement The element of request. This is relation loop
+     *            resource. (NotNull)
+     * @param localEntity The interface of local entity. (NotNull)
+     * @param primaryKeyMap The map of primary key. (NotNull)
+     */
+    protected void doLastLoopInjection(TopInfo topInfo,
+            HierarchyRequestElement requestElement, Entity localEntity,
+            Map primaryKeyMap) {
+        final ColumnInfo destinationColumnInfo = requestElement
+                .getDestinationColumnInfo();
+        if (!primaryKeyMap.containsKey(destinationColumnInfo.getColumnDbName())) {// The
+            // column
+            // is
+            // primary
+            // key
+            // !
+            final HierarchySourceRow sourceRow = topInfo.getSourceRow();
+            final HierarchySourceColumn sourceColumnInfo = requestElement
+                    .getSourceColumnInfo();
+            final Object sourceColumnValue = extractColumnValueFromSource(
+                    sourceRow, sourceColumnInfo);
+            if (sourceColumnValue != null) {
+                injectColumnValueToDestinationIfNotNull(localEntity,
+                        destinationColumnInfo, sourceColumnValue);
+            }
+        }
+    }
+
+    //==========================================================================
+    // =========
+    // Extract Logic
+    // =============
+    protected Map extractTopPrimaryKeyMapFromSource(
+            TopInfo topInfo) {
+        return extractPrimaryKeyMapFromSource(topInfo,
+                HierarchyRequestElement.TOP_KEY);
+    }
+
+    protected Map extractPrimaryKeyMapFromSource(
+            TopInfo topInfo, String relationPath) {
+        final HierarchyRequest request = topInfo
+                .getHierarchyRequest();
+        final HierarchySourceRow sourceRow = topInfo.getSourceRow();
+        final java.util.List primaryKeyElement = request
+                .findPrimaryKeyElement(relationPath);
+        final java.util.Map primaryKeyMap = new java.util.LinkedHashMap();
+        for (HierarchyRequestElement element : primaryKeyElement) {
+            final HierarchySourceColumn sourcePrimaryKey = element
+                    .getSourceColumnInfo();
+            final Object sourcePrimaryKeyValue = extractColumnValueFromSource(
+                    sourceRow, sourcePrimaryKey);
+            primaryKeyMap.put(element.getDestinationColumnInfo()
+                    .getColumnDbName(), sourcePrimaryKeyValue);
+        }
+        return primaryKeyMap;
+    }
+
+    protected Object extractColumnValueFromSource(HierarchySourceRow sourceRow,
+            HierarchySourceColumn sourceColumn) {
+        return sourceRow.extractColumnValue(sourceColumn);
+    }
+
+    @SuppressWarnings("unchecked")
+    protected java.util.List extractReferrerList(Entity entity,
+            ReferrerInfo referrerInfo) {
+        return (java.util.List) invoke(referrerInfo.findGetter(),
+                entity, new Object[] {});
+    }
+
+    //==========================================================================
+    // =========
+    // Inject Logic
+    // ============
+    /**
+     * @param entity Entity. (NotNull)
+     * @param columnInfo Column info. (NotNull)
+     * @param columnValue Column value. (NotNull)
+     */
+    protected void injectColumnValueToDestinationIfNotNull(Entity entity,
+            ColumnInfo columnInfo, final Object columnValue) {
+        if (columnValue != null) {
+            injectColumnValueToDestination(entity,
+                    columnInfo.getColumnDbName(), columnValue);
+        }
+    }
+
+    protected void injectColumnValueToDestination(Entity entity,
+            String columnDbName, final Object columnValue) {
+        if (columnValue == null) {
+            String msg = "The argument[columnValue] should not be null: ";
+            msg = msg + " table=" + entity.getTableDbName() + " column="
+                    + columnDbName;
+            throw new IllegalStateException(msg);
+        }
+        invoke(entity.getDBMeta().findColumnInfo(columnDbName).findSetter(),
+                entity, new Object[] { columnValue });
+    }
+
+    protected void injectColumnValueMapToDestination(Entity entity,
+            final Map columnValueMap) {
+        final Set columnNameSet = columnValueMap.keySet();
+        for (String columnName : columnNameSet) {
+            final Object columnValue = columnValueMap.get(columnName);
+            injectColumnValueToDestination(entity, columnName, columnValue);
+        }
+    }
+
+    protected void injectForeignEntity(Entity entity, String foreignPropName,
+            Entity foreignEntity) {
+        final String capPropReferrerName = initCap(foreignPropName);
+        final Method method = findMethod(entity.getClass(), "set"
+                + capPropReferrerName, new Class[] { foreignEntity.getDBMeta()
+                .getEntityType() });
+        invoke(method, entity, new Object[] { foreignEntity });
+    }
+
+    protected void injectReferrerList(Entity entity, ReferrerInfo referrerInfo,
+            java.util.List referrerList) {
+        invoke(referrerInfo.findSetter(), entity, new Object[] { referrerList });
+    }
+
+    protected void injectForeignPrimaryKey(Entity foreignEntity,
+            Map foreigPrimaryKeyMap) {
+        injectColumnValueMapToDestination(foreignEntity, foreigPrimaryKeyMap);
+    }
+
+    protected void injectReferrerPrimaryKey(Entity referrerEntity,
+            Map referrerPrimaryKeyMap) {
+        injectColumnValueMapToDestination(referrerEntity, referrerPrimaryKeyMap);
+    }
+
+    protected void injectLocalForeignKey(TopInfo topInfo,
+            Entity localEntity, ForeignInfo foreignInfo,
+            String foreignRelationPath) {
+        final HierarchyRequest request = topInfo
+                .getHierarchyRequest();
+        final Map foreignPrimaryKeyMap = extractPrimaryKeyMapFromSource(
+                topInfo, foreignRelationPath);
+        final List primaryKeyElementList = request
+                .findPrimaryKeyElement(foreignRelationPath);
+        final Map localForeignKeyMap = new HashMap();
+        for (HierarchyRequestElement foreignElement : primaryKeyElementList) {
+            final String foreignPrimaryKeyColumnName = foreignElement
+                    .getDestinationColumnInfo().getColumnDbName();
+            final ColumnInfo localForeignKeyInfo = foreignInfo
+                    .findLocalByForeign(foreignPrimaryKeyColumnName);
+            final Object localForeignKeyValue = foreignPrimaryKeyMap
+                    .get(foreignPrimaryKeyColumnName);
+            localForeignKeyMap.put(localForeignKeyInfo.getColumnDbName(),
+                    localForeignKeyValue);
+        }
+        injectColumnValueMapToDestination(localEntity, localForeignKeyMap);
+    }
+
+    protected void injectReferrerForeignKey(TopInfo topInfo,
+            Entity referrerEntity, ReferrerInfo referrerInfo,
+            String localRelationPath) {
+        final HierarchyRequest request = topInfo
+                .getHierarchyRequest();
+        final Map localPrimaryKeyMap = extractPrimaryKeyMapFromSource(
+                topInfo, localRelationPath);
+        final List primaryKeyElementList = request
+                .findPrimaryKeyElement(localRelationPath);
+        final Map referrerForeignKeyMap = new HashMap();
+        for (HierarchyRequestElement localElement : primaryKeyElementList) {
+            final String localPrimaryKeyName = localElement
+                    .getDestinationColumnInfo().getColumnDbName();
+            final ColumnInfo referrerForeignKeyInfo = referrerInfo
+                    .findReferrerByLocal(localPrimaryKeyName);
+            final Object referrerForeignKeyValue = localPrimaryKeyMap
+                    .get(localPrimaryKeyName);
+            referrerForeignKeyMap.put(referrerForeignKeyInfo.getColumnDbName(),
+                    referrerForeignKeyValue);
+        }
+        injectColumnValueMapToDestination(referrerEntity, referrerForeignKeyMap);
+    }
+
+    //==========================================================================
+    // =========
+    // Other Logic
+    // ===========
+    @SuppressWarnings("unchecked")
+    protected LOCAL_ENTITY newLocalEntity(final DBMeta destinationDBMeta) {
+        final LOCAL_ENTITY localEntity;
+        try {
+            localEntity = (LOCAL_ENTITY) destinationDBMeta.getEntityType()
+                    .newInstance();
+        } catch (InstantiationException e) {
+            throw new IllegalStateException(e);
+        } catch (IllegalAccessException e) {
+            throw new IllegalStateException(e);
+        }
+        return localEntity;
+    }
+
+    //==========================================================================
+    // =========
+    // Helper
+    // ======
+    protected String initCap(final String name) {
+        final String capPropReferrerName = name.substring(0, 1).toUpperCase()
+                + name.substring(1);
+        return capPropReferrerName;
+    }
+
+    private java.lang.reflect.Method findMethod(Class clazz, String methodName,
+            Class[] argTypes) {
+        try {
+            return clazz.getMethod(methodName, argTypes);
+        } catch (NoSuchMethodException ex) {
+            String msg = "class=" + clazz + " method=" + methodName + "-"
+                    + java.util.Arrays.asList(argTypes);
+            throw new RuntimeException(msg, ex);
+        }
+    }
+
+    private Object invoke(java.lang.reflect.Method method, Object target,
+            Object[] args) {
+        try {
+            return method.invoke(target, args);
+        } catch (RuntimeException e) {
+            final String lineSeparator = System.getProperty("line.separator");
+            final Class[] parameterTypes = method.getParameterTypes();
+            String msg = "Invoking method threw the exception:" + lineSeparator;
+            msg = msg
+                    + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * *"
+                    + lineSeparator;
+            msg = msg + "[" + method.getDeclaringClass().getSimpleName() + "."
+                    + method.getName() + "()]" + lineSeparator;
+            msg = msg + " methodArgTypes     = {"
+                    + createTypeViewFromTypeArray(parameterTypes) + "}"
+                    + lineSeparator;
+            msg = msg + " specifiedArgValues = {"
+                    + createValueViewFromValueArray(args) + "}" + lineSeparator;
+            msg = msg + " specifiedArgTypes  = {"
+                    + createTypeViewFromValueArray(args) + "}" + lineSeparator;
+            if (parameterTypes.length > 0 && args.length > 0 && args[0] != null
+                    && !parameterTypes[0].equals(args[0].getClass())) {
+                msg = msg + " " + lineSeparator;
+                final String compareString = "{" + parameterTypes[0] + " -- "
+                        + args[0].getClass() + "}";
+                msg = msg + " *Warning! The argType is ummatched: "
+                        + compareString + lineSeparator;
+            }
+            msg = msg + "* * * * * * * * * */" + lineSeparator;
+            throw new RuntimeException(msg, e);
+        } catch (java.lang.reflect.InvocationTargetException ex) {
+            Throwable t = ex.getCause();
+            if (t instanceof RuntimeException) {
+                throw (RuntimeException) t;
+            }
+            if (t instanceof Error) {
+                throw (Error) t;
+            }
+            String msg = "target=" + target + " method=" + method + "-"
+                    + java.util.Arrays.asList(args);
+            throw new RuntimeException(msg, ex);
+        } catch (IllegalAccessException ex) {
+            String msg = "target=" + target + " method=" + method + "-"
+                    + java.util.Arrays.asList(args);
+            throw new RuntimeException(msg, ex);
+        }
+    }
+
+    private String createValueViewFromValueArray(Object[] array) {
+        final StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < array.length; i++) {
+            final Object value = array[i];
+            if (sb.length() == 0) {
+                sb.append(value);
+            } else {
+                sb.append(", ").append(value);
+            }
+        }
+        return sb.toString();
+    }
+
+    private String createTypeViewFromValueArray(Object[] array) {
+        final StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < array.length; i++) {
+            final Object value = array[i];
+            final String typeName = value != null ? value.getClass()
+                    .getSimpleName() : "null";
+            if (sb.length() == 0) {
+                sb.append(typeName);
+            } else {
+                sb.append(", ").append(typeName);
+            }
+        }
+        return sb.toString();
+    }
+
+    private String createTypeViewFromTypeArray(Class[] array) {
+        final StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < array.length; i++) {
+            final Class type = array[i];
+            if (sb.length() == 0) {
+                sb.append(type.getSimpleName());
+            } else {
+                sb.append(", ").append(type.getSimpleName());
+            }
+        }
+        return sb.toString();
+    }
+
+    //==========================================================================
+    // =========
+    // Info Class
+    // ==========
+    protected static class TopInfo {
+        private HierarchyRequest hierarchyRequest;
+
+        private HierarchySourceRow sourceRow;
+
+        private Entity localEntity;
+
+        private Map alreadyRegisteredEntityMap;
+
+        public HierarchySourceRow getSourceRow() {
+            return sourceRow;
+        }
+
+        public void setSourceRow(HierarchySourceRow sourceRow) {
+            this.sourceRow = sourceRow;
+        }
+
+        public Entity getLocalEntity() {
+            return localEntity;
+        }
+
+        public void setLocalEntity(Entity localEntity) {
+            this.localEntity = localEntity;
+        }
+
+        public Map getAlreadyRegisteredEntityMap() {
+            return alreadyRegisteredEntityMap;
+        }
+
+        public void setAlreadyRegisteredEntityMap(
+                Map alreadyRegisteredEntityMap) {
+            this.alreadyRegisteredEntityMap = alreadyRegisteredEntityMap;
+        }
+
+        public HierarchyRequest getHierarchyRequest() {
+            return hierarchyRequest;
+        }
+
+        public void setHierarchyRequest(
+                HierarchyRequest hierarchyRequest) {
+            this.hierarchyRequest = hierarchyRequest;
+        }
+    }
+}

Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	                        (rev 0)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	2008-11-06 13:08:17 UTC (rev 1298)
@@ -0,0 +1,94 @@
+package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy;
+
+import jp.sf.pal.userinfo.db.allcommon.Entity;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo;
+
+/**
+ * The basic request of hierarchy.
+ * 
+ * @author DBFlute(AutoGenerator)
+ * @param  The type of local entity.
+ * @param  The type of local relation trace.
+ */
+ ¡÷ SuppressWarnings("unchecked")
+public class HierarchyBasicRequest
+        extends HierarchyRequest {
+
+    //==========================================================================
+    // =========
+    // Attribute
+    // =========
+    protected ColumnInfo _currentSourceColumnInfo;
+
+    //==========================================================================
+    // =========
+    // Constructor
+    // ===========
+    /**
+     * Constructor.
+     * 
+     * @param localEntityType The type of local entity. (NotNull)
+     */
+    public HierarchyBasicRequest(Class localEntityType) {
+        super(localEntityType);
+    }
+
+    //==========================================================================
+    // =========
+    // Easy-to-Use
+    // ===========
+    // -----------------------------------------------------
+    // public
+    // ------
+    /**
+     * Set up source.
+     * 
+     * @param sourceColumnInfo The column info of source. (NotNull)
+     * @return Destination relation trace. (NotNull)
+     */
+    public DestinationRelationTrace src(
+            ColumnInfo sourceColumnInfo) {
+        this._currentSourceColumnInfo = sourceColumnInfo;
+        final HierarchyBasicRequest outer = this;
+        return new DestinationRelationTrace() {
+            public LOCAL_RELATION_TRACE dst() {
+                return outer.dst();
+            }
+        };
+    }
+
+    /**
+     * Set up destination.
+     * 
+     * @return Local relation trace. (NotNull)
+     */
+    public LOCAL_RELATION_TRACE dst() {
+        final DBMeta.RelationTraceFixHandler handler = new DBMeta.RelationTraceFixHandler() {
+            public void handleFixedTrace(DBMeta.RelationTrace relationTrace) {
+                mapping(_currentSourceColumnInfo, relationTrace);
+            }
+        };
+        final Object target = destinationDBMeta;
+        java.lang.reflect.Method method = null;
+        try {
+            method = target.getClass().getMethod("createRelationTrace",
+                    new Class[] { DBMeta.RelationTraceFixHandler.class });
+        } catch (NoSuchMethodException e) {
+            String msg = "Not found method: method=createRelationTrace(DBMeta.RelationTraceFixHandler)";
+            throw new IllegalStateException(msg, e);
+        }
+        try {
+            return (LOCAL_RELATION_TRACE) method.invoke(target,
+                    new Object[] { handler });
+        } catch (IllegalAccessException e) {
+            throw new IllegalStateException(e);
+        } catch (java.lang.reflect.InvocationTargetException e) {
+            throw new IllegalStateException(e.getCause());
+        }
+    }
+
+    public static interface DestinationRelationTrace {
+        public LOCAL_RELATION_TRACE dst();
+    }
+}


Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	                        (rev 0)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	2008-11-06 13:08:17 UTC (rev 1298)
@@ -0,0 +1,347 @@
+package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jp.sf.pal.userinfo.db.allcommon.Entity;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityColumn;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityListIterator;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo;
+import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.RelationInfo;
+
+/**
+ * The request of hierarchy.
+ * 
+ * @author DBFlute(AutoGenerator)
+ * @param  The type of local entity.
+ */
+ ¡÷ SuppressWarnings("unchecked")
+public class HierarchyRequest {
+
+    //==========================================================================
+    // =========
+    // Attribute
+    // =========
+    /** The dbmeta of desination. */
+    protected DBMeta destinationDBMeta;
+
+    /** The iterator of hierarychy source. */
+    protected HierarchySourceIterator sourceIterator;
+
+    /** The list of request element. */
+    protected List requestElementList = new ArrayList();
+
+    /** The set of already registered source column info for check. */
+    protected java.util.Set alreadyRegisteredSourceColumnInfoSet4Check = new java.util.HashSet();
+
+    /** First source column info for check. */
+    protected ColumnInfo firstSourceColumnInfo4Check;
+
+    //==========================================================================
+    // =========
+    // Constructor
+    // ===========
+    /**
+     * Constructor.
+     * 
+     * @param localEntityType The type of local entity. (NotNull)
+     */
+    public HierarchyRequest(Class localEntityType) {
+        LOCAL_ENTITY localEntity;
+        try {
+            localEntity = localEntityType.newInstance();
+        } catch (InstantiationException e) {
+            String msg = "localEntityType.newInstance() threw the InstantiationException:";
+            msg = msg + " localEntityType=" + localEntityType;
+            throw new IllegalStateException(msg, e);
+        } catch (IllegalAccessException e) {
+            String msg = "localEntityType.newInstance() threw the IllegalAccessException:";
+            msg = msg + " localEntityType=" + localEntityType;
+            throw new IllegalStateException(msg, e);
+        }
+        destinationDBMeta = localEntity.getDBMeta();
+    }
+
+    //==========================================================================
+    // =========
+    // Easy-to-Use
+    // ===========
+    // -----------------------------------------------------
+    // public
+    // ------
+    /**
+     * Register the list of source. 
This method uses the default source + * iterator. + * + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + */ + public void registerSourceList(java.util.List sourceList) { + sourceIterator = createDefaultSourceIterator(sourceList); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumn The column of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumn, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(ColumnInfo sourceColumnInfo, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumnInfo, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + // ----------------------------------------------------- + // internal + // ------- + /** + * Set up element. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Set up element.
This method uses the default source column. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(ColumnInfo sourceColumnInfo, + ColumnInfo destinationColumnInfo) { + if (alreadyRegisteredSourceColumnInfoSet4Check + .contains(sourceColumnInfo)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The source column has already been registered:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + " sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + " registeredColumnInfo=" + + alreadyRegisteredSourceColumnInfoSet4Check + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + alreadyRegisteredSourceColumnInfoSet4Check.add(sourceColumnInfo); + assertSameSourceDBMeta(sourceColumnInfo); + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + final HierarchySourceColumn sourceColumn = createDefaultSourceColumn(sourceColumnInfo); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Make relatetion by the list of relation info. + * + * @param relationInfoList The list of relation info. (NotNull) + */ + protected void addRelationToLastElement(List relationInfoList) { + if (requestElementList.isEmpty()) { + String msg = "You shuold invoke mapping() before invoking relation()!"; + throw new IllegalStateException(msg); + } + for (RelationInfo relationInfo : relationInfoList) { + final int lastIndex = requestElementList.size() - 1; + final HierarchyRequestElement element = (HierarchyRequestElement) requestElementList + .get(lastIndex); + element.relation(relationInfo); + } + } + + /** + * Assert same source dbmeta. + * + * @param sourceColumnInfo The column info of source. (NotNull) + */ + protected void assertSameSourceDBMeta(ColumnInfo sourceColumnInfo) { + if (firstSourceColumnInfo4Check == null) { + firstSourceColumnInfo4Check = sourceColumnInfo; + return; + } + final DBMeta expectedDBMeta = firstSourceColumnInfo4Check.getDBMeta(); + final DBMeta actualDBMeta = sourceColumnInfo.getDBMeta(); + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The dbmeta of sourceColumnInfo is difference from"; + msg = msg + " the one of Your First Source Column Info:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + "firstSourceColumnInfo4Check=" + + firstSourceColumnInfo4Check + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Assert same source dbmeta. + * + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void assertSameLocalDestinationDBMeta( + ColumnInfo destinationColumnInfo) { + if (!requestElementList.isEmpty()) { + final HierarchyRequestElement currentElement = currentElement(); + final List relationInfoList = currentElement + .getRelationInfoList(); + if (relationInfoList.isEmpty()) { + final DBMeta actualDBMeta = currentElement() + .getDestinationDBMeta(); + final DBMeta expectedDBMeta = destinationDBMeta; + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong destinationColumnInfo!" + + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The dbmeta of destinationColumnInfo is difference from"; + msg = msg + " the one of Your Local Entity:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "destinationColumnInfo=" + + currentElement.getDestinationColumnInfo() + + getLineSeparator(); + msg = msg + "localEntity=" + + destinationDBMeta.getEntityTypeName() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + } + } + + /** + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + * @return Default source iterator. (NotNull) + */ + protected HierarchySourceIterator createDefaultSourceIterator( + java.util.List sourceList) { + return new HierarchySourceEntityListIterator(sourceList); + } + + /** + * @param sourceColumnInfo The column info of source. (NotNull) + * @return Default source column. (NotNull) + */ + protected HierarchySourceColumn createDefaultSourceColumn( + ColumnInfo sourceColumnInfo) { + return new HierarchySourceEntityColumn(sourceColumnInfo); + } + + /** + * Get current element. + * + * @return Current element. (NotNull) + */ + protected HierarchyRequestElement currentElement() { + final int lastIndex = requestElementList.size() - 1; + return (HierarchyRequestElement) requestElementList.get(lastIndex); + } + + // ----------------------------------------------------- + // Internal + // -------- + /** + * @param relationPropertyKey Relation Property key. (NotNull) + * @return The list of request element. (NotNull) + */ + public List findPrimaryKeyElement( + String relationPropertyKey) { + final List resultList = new ArrayList(); + for (HierarchyRequestElement element : requestElementList) { + if (!relationPropertyKey.equals(element.getRelationPropertyKey())) { + continue; + } + final ColumnInfo destinationColumnInfo = element + .getDestinationColumnInfo(); + if (!destinationColumnInfo.isPrimary()) { + continue; + } + resultList.add(element); + } + if (resultList.isEmpty()) { + String msg = "Not found primary key element by relationPropertyKey in requestElementList: "; + msg = msg + " relationPropertyKey=" + relationPropertyKey + + " requestElementList=" + requestElementList; + throw new IllegalStateException(msg); + } + return resultList; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public List getRequestElementList() { + return requestElementList; + } + + public void addRequestElementList(HierarchyRequestElement element) { + this.requestElementList.add(element); + } + + public HierarchySourceIterator getSourceIterator() { + return sourceIterator; + } + + public void setSourceIterator(HierarchySourceIterator sourceIterator) { + this.sourceIterator = sourceIterator; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,132 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.RelationInfo; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class HierarchyRequestElement { + + //========================================================================== + // ========= + // Definition + // ========== + /** Top key. */ + public static final String TOP_KEY = "$top$"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** The column of source. */ + protected HierarchySourceColumn sourceColumn; + + /** The dbmeta of destination. */ + protected DBMeta destinationDBMeta; + + /** The column info of destination. */ + protected ColumnInfo destinationColumnInfo; + + /** The list of relation info. */ + protected java.util.List relationInfoList = new java.util.ArrayList(); + + /** the list of relation property name. */ + protected java.util.List relationPropertyNameList = new java.util.ArrayList(); + + /** Relation property key. Default value is TOP_KEY. */ + protected String relationPropertyKey = TOP_KEY; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + // ----------------------------------------------------- + // Internal + // -------- + /** + * Make mapping between the source column and the destination one. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + this.sourceColumn = sourceColumn; + this.destinationColumnInfo = destinationColumnInfo; + } + + /** + * Make relatetion by relation info. + * + * @param relationInfo Relation info. (NotNull) + */ + public void relation(RelationInfo relationInfo) { + addRelationInfoList(relationInfo); + } + + protected void addRelationInfoList(RelationInfo relationInfo) { + relationInfoList.add(relationInfo); + addRelationPropertyNameList(relationInfo.getRelationPropertyName()); + } + + protected void addRelationPropertyNameList(String relationPropertyName) { + relationPropertyNameList.add(relationPropertyName); + setupRelationPropertyKey(); + } + + protected void setupRelationPropertyKey() { + final StringBuilder sb = new StringBuilder(); + for (String relationPropertyName : relationPropertyNameList) { + if (sb.length() > 0) { + sb.append("_"); + } + sb.append(relationPropertyName); + } + this.relationPropertyKey = sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public HierarchySourceColumn getSourceColumnInfo() { + return sourceColumn; + } + + public void setSourceColumnInfo(HierarchySourceColumn sourceColumn) { + this.sourceColumn = sourceColumn; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public ColumnInfo getDestinationColumnInfo() { + return destinationColumnInfo; + } + + public java.util.List getRelationInfoList() { + return relationInfoList; + } + + public List getRelationPropertyNameList() { + return relationPropertyNameList; + } + + public String getRelationPropertyKey() { + return relationPropertyKey; + } + + public String toString() { + return sourceColumn + "," + destinationColumnInfo; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,10 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceColumn { + + public String getColumnName(); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceIterator { + + public boolean hasNext(); + + public HierarchySourceRow next(); + + public HierarchySourceRow current(); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,10 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceRow { + + public Object extractColumnValue(HierarchySourceColumn columnInfo); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,24 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityColumn implements HierarchySourceColumn { + + protected ColumnInfo columnInfo; + + public HierarchySourceEntityColumn(ColumnInfo columnInfo) { + this.columnInfo = columnInfo; + } + + public String getColumnName() { + return columnInfo.getColumnDbName(); + } + + public java.lang.reflect.Method findGetter() { + return columnInfo.findGetter(); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,24 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceEntityListIterator extends + HierarchySourceListIterator { + + /** + * Constructor. + * + * @param sourceRowList The list of source row. (NotNull) + */ + public HierarchySourceEntityListIterator( + java.util.List sourceRowList) { + super(sourceRowList, new HierarchySourceRowSetupper() { + public jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source) { + return new HierarchySourceEntityRow(source); + } + }); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,48 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityRow implements + jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceRow { + + protected Object sourceBean; + + public HierarchySourceEntityRow(Object sourceBean) { + this.sourceBean = sourceBean; + } + + public Object extractColumnValue( + jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn columnInfo) { + if (!(columnInfo instanceof HierarchySourceEntityColumn)) { + String msg = "The column info should be HierarchySourceEntityColumn! but: " + + columnInfo; + throw new IllegalStateException(msg); + } + final HierarchySourceEntityColumn sourceEntityColumn = (HierarchySourceEntityColumn) columnInfo; + return invoke(sourceEntityColumn.findGetter(), sourceBean, + new Object[] {}); + } + + private Object invoke(java.lang.reflect.Method method, Object target, + Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,40 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceListIterator + implements + jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceIterator { + + protected java.util.List sourceRowList; + + protected HierarchySourceRowSetupper sourceRowSetupper; + + protected java.util.Iterator sourceBeanListIterator; + + protected jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceRow currentSourceEntity; + + public HierarchySourceListIterator( + java.util.List sourceRowList, + HierarchySourceRowSetupper sourceRowSetupper) { + this.sourceRowList = sourceRowList; + this.sourceRowSetupper = sourceRowSetupper; + this.sourceBeanListIterator = sourceRowList.iterator(); + } + + public boolean hasNext() { + return this.sourceBeanListIterator.hasNext(); + } + + public jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceRow next() { + this.currentSourceEntity = this.sourceRowSetupper + .setup(this.sourceBeanListIterator.next()); + return this.currentSourceEntity; + } + + public jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceRow current() { + return this.currentSourceEntity; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,11 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public interface HierarchySourceRowSetupper { + + public jp.sf.pal.userinfo.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ColumnInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ColumnInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ColumnInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,217 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.info; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta.OptimisticLockType; + +/** + * The information of column. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ColumnInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected String columnDbName; + + protected String propertyName; + + protected Class propertyType; + + protected boolean primary; + + protected Integer columnSize; + + protected Integer columnDecimalDigits; + + protected OptimisticLockType optimisticLockType; + + //========================================================================== + // ========= + // Constructor + // =========== + public ColumnInfo(DBMeta dbmeta, String columnDbName) { + this(dbmeta, columnDbName, null, null, false, null, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, columnDecimalDigits, OptimisticLockType.NONE); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) { + this.dbmeta = dbmeta; + this.columnDbName = columnDbName; + this.propertyName = propertyName; + this.propertyType = propertyType; + this.primary = primary; + this.columnSize = columnSize; + this.columnDecimalDigits = columnDecimalDigits; + this.optimisticLockType = optimisticLockType; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.propertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(dbmeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { this.propertyType }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(dbmeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public boolean isOptimisticLock() { + return isVersionNo() || isUpdateDate(); + } + + public boolean isVersionNo() { + return OptimisticLockType.VERSION_NO == optimisticLockType; + } + + public boolean isUpdateDate() { + return OptimisticLockType.UPDATE_DATE == optimisticLockType; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + public int hashCode() { + return dbmeta.hashCode() + columnDbName.hashCode(); + } + + public boolean equals(Object obj) { + if (!(obj instanceof ColumnInfo)) { + return false; + } + final ColumnInfo target = (ColumnInfo) obj; + if (this.dbmeta == null || target.getDBMeta() == null) { + return false; + } + if (!this.dbmeta.equals(target.getDBMeta())) { + return false; + } + if (this.columnDbName == null || target.getColumnDbName() == null) { + return false; + } + if (!this.columnDbName.equals(target.getColumnDbName())) { + return false; + } + return true; + } + + public String toString() { + return dbmeta.getTableDbName() + "." + columnDbName; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public String getColumnDbName() { + return this.columnDbName; + } + + public void setColumnDbName(String columnDbName) { + this.columnDbName = columnDbName; + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public Class getPropertyType() { + return this.propertyType; + } + + public void setPropertyType(Class propertyType) { + this.propertyType = propertyType; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } + + public Integer getColumnSize() { + return this.columnSize; + } + + public void setColumnSize(Integer columnSize) { + this.columnSize = columnSize; + } + + public Integer getColumnDecimalDigits() { + return this.columnDecimalDigits; + } + + public void setColumnDecimalDigits(Integer columnDecimalDigits) { + this.columnDecimalDigits = columnDecimalDigits; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ColumnInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ForeignInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ForeignInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ForeignInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,175 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.info; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +/** + * The class of foreign information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ForeignInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String foreignPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta foreignDBMeta; + + protected java.util.Map localForeignColumnInfoMap; + + protected java.util.Map foreignLocalColumnInfoMap; + + protected int relationNo; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByForeign(String foreignColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(foreignDBMeta, + foreignColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) foreignLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:"; + msg = msg + " foreignColumnDbName=" + foreignColumnDbName + + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.foreignPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getForeignPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getForeignDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalForeignColumnInfoMap(); + } + + public boolean isReferrer() { + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getForeignPropertyName() { + return foreignPropertyName; + } + + public void setForeignPropertyName(String foreignPropertyName) { + this.foreignPropertyName = foreignPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getForeignDBMeta() { + return foreignDBMeta; + } + + public void setForeignDBMeta(DBMeta foreignDBMeta) { + this.foreignDBMeta = foreignDBMeta; + } + + public java.util.Map getLocalForeignColumnInfoMap() { + return localForeignColumnInfoMap; + } + + public void setLocalForeignColumnInfoMap( + java.util.Map localForeignColumnInfoMap) { + this.localForeignColumnInfoMap = localForeignColumnInfoMap; + final java.util.Set keySet = localForeignColumnInfoMap.keySet(); + foreignLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localForeignColumnInfoMap + .get(key); + foreignLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getForeignLocalColumnInfoMap() { + return foreignLocalColumnInfoMap; + } + + public int getRelationNo() { + return relationNo; + } + + public void setRelationNo(int relationNo) { + this.relationNo = relationNo; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ForeignInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ReferrerInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ReferrerInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ReferrerInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,181 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.info; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referrer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ReferrerInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String referrerPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta referrerDBMeta; + + protected java.util.Map localReferrerColumnInfoMap; + + protected java.util.Map referrerLocalColumnInfoMap; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByReferrer(String referrerColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(referrerDBMeta, + referrerColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) referrerLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:"; + msg = msg + " referrerColumnDbName=" + referrerColumnDbName + + " referrerLocalColumnInfoMap=" + + referrerLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + public ColumnInfo findReferrerByLocal(String localColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(localDBMeta, + localColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) localReferrerColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:"; + msg = msg + " localColumnDbName=" + localColumnDbName + + " localReferrerColumnInfoMap=" + + localReferrerColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.referrerPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getReferrerPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getReferrerDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalReferrerColumnInfoMap(); + } + + public boolean isReferrer() { + return true; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getReferrerPropertyName() { + return referrerPropertyName; + } + + public void setReferrerPropertyName(String referrerPropertyName) { + this.referrerPropertyName = referrerPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getReferrerDBMeta() { + return referrerDBMeta; + } + + public void setReferrerDBMeta(DBMeta referrerDBMeta) { + this.referrerDBMeta = referrerDBMeta; + } + + public java.util.Map getLocalReferrerColumnInfoMap() { + return localReferrerColumnInfoMap; + } + + public void setLocalReferrerColumnInfoMap( + java.util.Map localReferrerColumnInfoMap) { + this.localReferrerColumnInfoMap = localReferrerColumnInfoMap; + final java.util.Set keySet = localReferrerColumnInfoMap.keySet(); + referrerLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localReferrerColumnInfoMap + .get(key); + referrerLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getReferrerLocalColumnInfoMap() { + return referrerLocalColumnInfoMap; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/ReferrerInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/RelationInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/RelationInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/RelationInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,24 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.info; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RelationInfo { + + public String getRelationPropertyName(); + + public DBMeta getLocalDBMeta(); + + public DBMeta getTargetDBMeta(); + + public java.util.Map getLocalTargetColumnInfoMap(); + + public boolean isOneToOne(); + + public boolean isReferrer(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/RelationInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/UniqueInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/UniqueInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/UniqueInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,77 @@ +package jp.sf.pal.userinfo.db.allcommon.dbmeta.info; + +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +/** + * The class of unique info. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UniqueInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected java.util.List uniqueColumnList = new java.util.ArrayList(); + + protected boolean primary; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public boolean containsColumn(String columnName) { + for (final java.util.Iterator ite = uniqueColumnList.iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (columnInfo.getColumnDbName().equals(columnName)) { + return true; + } + } + return false; + } + + public boolean containsColumn(ColumnInfo column) { + return containsColumn(column.getColumnDbName()); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public java.util.List getUniqueColumnList() { + return uniqueColumnList; + } + + public void addUniqueColumnList(ColumnInfo uniqueColumn) { + this.uniqueColumnList.add(uniqueColumn); + } + + public ColumnInfo getFirstColumn() { + return (ColumnInfo) this.uniqueColumnList.get(0); + } + + public boolean isTwoOrMore() { + return this.uniqueColumnList.size() > 1; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/info/UniqueInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the entity has already been updated by other thread in + * batch update. + * + * @author DBFlute(AutoGenerator) + */ +public class BatchEntityAlreadyUpdatedException extends + EntityAlreadyUpdatedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected Integer _batchUpdateCount; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows(Update count per One entity). + * @param batchUpdateCount Batch update count(Total). + */ + public BatchEntityAlreadyUpdatedException(Object bean, int rows, + Integer batchUpdateCount) { + super(bean, rows); + _batchUpdateCount = batchUpdateCount; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Integer getBatchUpdateCount() { + return _batchUpdateCount; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,34 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the property on bind variable comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public BindVariableCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableParameterNullValueException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableParameterNullValueException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableParameterNullValueException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the value of bind variable is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/BindVariableParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/DangerousResultSizeException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/DangerousResultSizeException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/DangerousResultSizeException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,36 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the result size is dangerous. + * + * @author DBFlute(AutoGenerator) + */ +public class DangerousResultSizeException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** + * Constructor. + * + * @param msg Exception message. + * @param safetyMaxResultSize Safety max result size. + * @param selectedCount Selected count. + */ + public DangerousResultSizeException(String msg, int safetyMaxResultSize) { + super(msg); + this._safetyMaxResultSize = safetyMaxResultSize; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/DangerousResultSizeException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,34 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the property on embedded value comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueParameterNullValueException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueParameterNullValueException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueParameterNullValueException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the value of embedded value is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EmbeddedValueParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EndCommentNotFoundException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EndCommentNotFoundException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EndCommentNotFoundException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the end comment is not found about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EndCommentNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EndCommentNotFoundException(String msg) { + super(msg); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EndCommentNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyDeletedException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyDeletedException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyDeletedException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,22 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the entity has already been deleted by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyDeletedException extends + RecordHasAlreadyBeenDeletedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityAlreadyDeletedException(String msg) { + super(msg); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyExistsException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyExistsException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyExistsException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,25 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the entity already exists on the database. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyExistsException extends SQLFailureException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public EntityAlreadyExistsException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyExistsException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyUpdatedException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyUpdatedException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyUpdatedException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,38 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; + +/** + * The exception of when the entity has already been updated by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyUpdatedException extends + NotSingleRowUpdatedRuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows. + */ + public EntityAlreadyUpdatedException(Object bean, int rows) { + super(bean, rows); + } + + /** + * Constructor. + * + * @param e NotSingleRowUpdatedRuntimeException. (NotNull) + */ + public EntityAlreadyUpdatedException(NotSingleRowUpdatedRuntimeException e) { + super(e.getBean(), e.getRows()); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityDuplicatedException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityDuplicatedException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityDuplicatedException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,31 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the entity has been duplicated. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityDuplicatedException extends RecordHasOverlappedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityDuplicatedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public EntityDuplicatedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/EntityDuplicatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentConditionNotFoundException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentConditionNotFoundException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentConditionNotFoundException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,23 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the condition of IF comment is not found about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentConditionNotFoundException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentConditionNotFoundException(String msg) { + super(msg); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentConditionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentNotBooleanResultException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentNotBooleanResultException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentNotBooleanResultException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,33 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the result of IF comment is not boolean about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentNotBooleanResultException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentNotBooleanResultException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentNotBooleanResultException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentNotBooleanResultException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentWrongExpressionException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentWrongExpressionException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentWrongExpressionException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,31 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the IF comment has a wrong expression about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentWrongExpressionException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentWrongExpressionException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentWrongExpressionException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/IfCommentWrongExpressionException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/OutsideSqlNotFoundException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/OutsideSqlNotFoundException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/OutsideSqlNotFoundException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,31 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the outside-sql is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public OutsideSqlNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public OutsideSqlNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/OutsideSqlNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,22 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception when the record has already been deleted (by other thread).
This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasAlreadyBeenDeletedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasAlreadyBeenDeletedException(String msg) { + super(msg); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasOverlappedException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasOverlappedException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasOverlappedException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,31 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception when the record has overlapped. This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasOverlappedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasOverlappedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RecordHasOverlappedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RecordHasOverlappedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RequiredOptionNotFoundException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RequiredOptionNotFoundException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RequiredOptionNotFoundException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,31 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +/** + * The exception of when the required option is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class RequiredOptionNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RequiredOptionNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RequiredOptionNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/RequiredOptionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/SQLFailureException.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/SQLFailureException.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/SQLFailureException.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,31 @@ +package jp.sf.pal.userinfo.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the SQL failed to execute. + * + * @author DBFlute(AutoGenerator) + */ +public class SQLFailureException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + protected SQLException sqlEx; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public SQLFailureException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } + + public SQLException getSQLException() { + return sqlEx; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/exception/SQLFailureException.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListString.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListString.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListString.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,105 @@ +package jp.sf.pal.userinfo.db.allcommon.helper; + +import java.util.List; +import java.util.Map; + +/** + * MapList-String. + *

+ * + *

+ * # Interface that offers generation of map and list from the following character strings (map list string). 
+ * # 
+ * #   ex) map:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
+ * #   ex) list:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
+ * #
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public interface MapListString { + + /** Default of map-mark. */ + public static final String DEFAULT_MAP_MARK = "map:"; + + /** Default of list-mark. */ + public static final String DEFAULT_LIST_MARK = "list:"; + + /** Default of start-brace. */ + public static final String DEFAULT_START_BRACE = "{"; + + /** Default of end-brace. */ + public static final String DEFAULT_END_BRACE = "}"; + + /** Default of delimter. */ + public static final String DEFAULT_DELIMITER = ";"; + + /** Default of equal. */ + public static final String DEFAULT_EQUAL = "="; + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map-mark. (NotNull) + */ + public void setMapMark(String mapMark); + + /** + * Set list-mark. + * + * @param listMark List-mark. (NotNull) + */ + public void setListMark(String listMark); + + /** + * Set start brace. + * + * @param startBrace Start brace. (NotNull) + */ + public void setStartBrace(String startBrace); + + /** + * Set end brace. + * + * @param endBrace End brace. (NotNull) + */ + public void setEndBrace(String endBrace); + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public void setDelimiter(String delimiter); + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal); + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public Map generateMap(String mapString); + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public List generateList(String listString); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListString.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListStringImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListStringImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListStringImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1079 @@ +package jp.sf.pal.userinfo.db.allcommon.helper; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * The implementation of MapList-String. + * + * @author DBFlute(AutoGenerator) + */ +public class MapListStringImpl implements MapListString { + + /** Line separator. */ + public static final String NEW_LINE = System.getProperty("line.separator"); + + /** Map-mark. */ + protected String _mapMark; + + /** List-mark. */ + protected String _listMark; + + /** Start-brace. */ + protected String _startBrace; + + /** End-brace. */ + protected String _endBrace; + + /** Delimiter. */ + protected String _delimiter; + + /** Equal. */ + protected String _equal; + + /** Top string. */ + protected String _topString; + + /** Remainder string. */ + protected String _remainderString; + + /** + * Constructor. + */ + public MapListStringImpl() { + _mapMark = DEFAULT_MAP_MARK; + _listMark = DEFAULT_LIST_MARK; + _startBrace = DEFAULT_START_BRACE; + _endBrace = DEFAULT_END_BRACE; + _delimiter = DEFAULT_DELIMITER; + _equal = DEFAULT_EQUAL; + } + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map mark. (NotNull) + */ + public void setMapMark(String mapMark) { + _mapMark = mapMark; + } + + /** + * Set list-mark. + * + * @param listMark List mark. (NotNull) + */ + public void setListMark(String listMark) { + _listMark = listMark; + } + + /** + * Set start-brace. + * + * @param startBrace Start-brace. (NotNull) + */ + public synchronized void setStartBrace(String startBrace) { + _startBrace = startBrace; + } + + /** + * Set end-brace. + * + * @param endBrace End-brace. (NotNull) + */ + public synchronized void setEndBrace(String endBrace) { + _endBrace = endBrace; + } + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public synchronized void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal) { + _equal = equal; + } + + //************************************************************************** + // ************************** + // Main Method + // *********** + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. {Implement} + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public synchronized Map generateMap(String mapString) { + assertMapString(mapString); + + _topString = mapString; + _remainderString = mapString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixMapMarkAndStartBrace(); + + final Map generatedMap = newStringObjectMap(); + parseRemainderMapString(generatedMap); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # generatedMap --> " + + generatedMap; + throw new IllegalStateException(msg); + } + return generatedMap; + } + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public synchronized List generateList(String listString) { + assertListString(listString); + + _topString = listString; + _remainderString = listString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixListMarkAndStartBrace(); + + final List generatedList = newObjectList(); + parseRemainderListString(generatedList); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # generatedList --> " + + generatedList; + throw new IllegalStateException(msg); + } + return generatedList; + } + + //========================================================================== + // ================ + // Parse + // ===== + /** + * Parse remainder map string. + * + * @param currentMap current map. + */ + protected void parseRemainderMapString(final Map currentMap) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the key of the map. + // *** + + final int equalIndex = _remainderString.indexOf(_equal); + assertEqualIndex(_remainderString, equalIndex, _topString, + currentMap); + final String mapKey = _remainderString.substring(0, equalIndex) + .trim(); + removePrefixTargetIndexPlus(equalIndex, _equal.length()); + removeBothSideSpaceAndTabAndNewLine(); + + // *** Now, _remainderString should starts with the value of the + // map. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBracekIndex(_remainderString, endBraceIndex, _topString, + currentMap); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1,key2=value2} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String mapValue = _remainderString.substring(0, + delimiterIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Because the map element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1}, key2=value2} + final String mapValue = _remainderString + .substring(0, endBraceIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Analyzing map is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Parse remainder list string. + * + * @param currentList current list. + */ + protected void parseRemainderListString(final List currentList) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the value of the + // list. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBraceIndex(_remainderString, endBraceIndex, _topString, + currentList); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1,value2,value3} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String listValue = _remainderString.substring(0, + delimiterIndex); + currentList.add(filterMapListValue(listValue)); + + // Because the list element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1}, value2, } + final String listValue = _remainderString.substring(0, + endBraceIndex); + currentList.add(filterMapListValue(listValue)); + + // Analyzing list is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Initialize at loop beginning. + * + * @return Is return? + */ + protected boolean initializeAtLoopBeginning() { + // Remove prefix delimiter. (Result string is always trimmed.) + removePrefixAllDelimiter(); + + // If the remainder string is empty-string, Analyzing is over! + if (_remainderString.equals("")) { + return true; + } + + // If the remainder string starts with end-brace, Analyzing current map + // is over! + // And then remove the end-brace. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close after parse nest map list. + * + * @return Is return? + */ + protected boolean closingAfterParseNestMapList() { + // If the remainder string starts with end-brace, remove it and return + // true. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close by end-brace index. + * + * @param endBraceIndex End-brace index. + */ + protected void closingByEndBraceIndex(int endBraceIndex) { + // Remove the value that was finished analyzing and end-brace. + _remainderString = _remainderString.substring(endBraceIndex); + removePrefixEndBrace(); + } + + //************************************************************************** + // ************************** + // StateFul Method + // *************** + + //========================================================================== + // ================ + // Remove + // ====== + /** + * Remove prefix map-mark and start-brace. + */ + protected void removePrefixMapMarkAndStartBrace() { + removePrefix(_mapMark + _startBrace); + } + + /** + * Remove prefix list-mark and start-brace. + */ + protected void removePrefixListMarkAndStartBrace() { + removePrefix(_listMark + _startBrace); + } + + /** + * Remove prefix delimiter. + */ + protected void removePrefixDelimiter() { + removePrefix(_delimiter); + } + + /** + * Remove prefix end-brace. + */ + protected void removePrefixEndBrace() { + removePrefix(_endBrace); + } + + /** + * Remove prefix. + * + * @param prefixString Prefix string. (NotNull) + */ + protected void removePrefix(String prefixString) { + if (_remainderString == null) { + String msg = "Argument[remainderString] must not be null: " + + _remainderString; + throw new IllegalArgumentException(msg); + } + if (prefixString == null) { + String msg = "Argument[prefixString] must not be null: " + + prefixString; + throw new IllegalArgumentException(msg); + } + + removeBothSideSpaceAndTabAndNewLine(); + + if (_remainderString.length() < prefixString.length()) { + String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString=" + + prefixString; + throw new IllegalArgumentException(msg); + } + if (!_remainderString.startsWith(prefixString)) { + String msg = "Argument[remainderString] must start with Argument[prefixString:]"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString --> " + + prefixString; + throw new IllegalArgumentException(msg); + } + + _remainderString = _remainderString.substring(prefixString.length()); + removeBothSideSpaceAndTabAndNewLine(); + } + + /** + * Remove prefix and delimiter. + */ + protected void removePrefixAllDelimiter() { + removeBothSideSpaceAndTabAndNewLine(); + + while (true) { + if (!isStartsWithDelimiter(_remainderString)) { + break; + } + + if (isStartsWithDelimiter(_remainderString)) { + removePrefixDelimiter(); + removeBothSideSpaceAndTabAndNewLine(); + } + } + } + + /** + * Remove both side space and tab and new-line. + */ + protected void removeBothSideSpaceAndTabAndNewLine() { + _remainderString = _remainderString.trim(); + } + + /** + * Remove prefix (target index plus one). + * + * @param index Index. + * @param plusCount Plus count. + */ + protected void removePrefixTargetIndexPlus(int index, int plusCount) { + _remainderString = _remainderString.substring(index + plusCount); + } + + //************************************************************************** + // ************************** + // StateLess Method + // **************** + + //========================================================================== + // ================ + // Assert + // ====== + /** + * Assert map-string. + * + * @param mapString Map-string. (NotNull) + */ + protected void assertMapString(String mapString) { + if (mapString == null) { + String msg = "Argument[mapString] must not be null: "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + mapString = mapString.trim(); + if (!isStartsWithMapPrefix(mapString)) { + String msg = "Argument[mapString] must start with '" + _mapMark + + _startBrace + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + if (!isEndsWithEndBrace(mapString)) { + String msg = "Argument[mapString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + + final int startBraceCount = getDelimiterCount(mapString, _startBrace); + final int endBraceCount = getDelimiterCount(mapString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert list-string. + * + * @param listString List-string. (NotNull) + */ + protected void assertListString(String listString) { + if (listString == null) { + String msg = "Argument[listString] must not be null: "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + listString = listString.trim(); + if (!isStartsWithListPrefix(listString)) { + String msg = "Argument[listString] must start with '" + _mapMark + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + if (!isEndsWithEndBrace(listString)) { + String msg = "Argument[listString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + + final int startBraceCount = getDelimiterCount(listString, _startBrace); + final int endBraceCount = getDelimiterCount(listString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert equal-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param equalIndex Equal-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEqualIndex(String remainderMapString, int equalIndex, + String mapString4Log, Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (equalIndex < 0) { + String msg = "Argument[equalIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < equalIndex) { + String msg = "Argument[remainderMapString] length must be larger than equalIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + equalIndex, equalIndex + _equal.length()); + if (!expectedAsEndMark.equals(_equal)) { + String msg = "Argument[remainderMapString] must have '" + _equal + + "' at Argument[equalIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEndBracekIndex(String remainderMapString, + int endBraceIndex, String mapString4Log, + Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> =" + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < endBraceIndex) { + String msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndMark.equals(_endBrace)) { + String msg = "Argument[remainderMapString] must have '" + _endBrace + + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderListString Remainder list-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param listString4Log List-string for log. (NotNull) + * @param currentList4Log Current-list for log. (NotNull) + */ + protected void assertEndBraceIndex(String remainderListString, + int endBraceIndex, String listString4Log, List currentList4Log) { + if (remainderListString == null) { + String msg = "Argument[remainderListString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderListString.length() < endBraceIndex) { + String msg = "Argument[remainderListString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndBrace = remainderListString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndBrace.equals(_endBrace)) { + String msg = "Argument[remainderListString] must have '" + + _endBrace + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + + expectedAsEndBrace; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ================ + // Filter + // ====== + /** + * Filter map or list value. + *

+ * + *

+     * # The value is trimmed.
+     * # If the value is null, this returns null.
+     * # If the value is 'null', this returns null.
+     * # If the trimmed value is empty string, this returns null.
+     * 
+ * + * @param value value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String filterMapListValue(String value) { + if (value == null) { + return null; + } + value = value.trim(); + return (("".equals(value) || "null".equals(value)) ? null : value); + } + + //========================================================================== + // ================ + // Judgement + // ========= + /** + * Does it start with map-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithMapPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_mapMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with list-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithListPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_listMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with delimiter? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithDelimiter(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_delimiter)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it end with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isEndsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.endsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ================ + // Other + // ===== + /** + * Setup nest map. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(Map currentMap, + String mapKey) { + final Map nestMap = newStringObjectMap(); + currentMap.put(mapKey, nestMap); + return nestMap; + } + + /** + * Setup nest map. + * + * @param currentList Current-list. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(List currentList) { + final Map nestMap = newStringObjectMap(); + currentList.add(nestMap); + return nestMap; + } + + /** + * Setup nest list. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(Map currentMap, + String mapKey) { + final List nestList = newObjectList(); + currentMap.put(mapKey, nestList); + return nestList; + } + + /** + * Setup nest list. + * + * @param currentList Current-list. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(List currentList) { + final List nestList = newObjectList(); + currentList.add(nestList); + return nestList; + } + + /** + * New string-object-map. + * + * @return String-object-map. (NotNull) + */ + protected Map newStringObjectMap() { + return new LinkedHashMap(); + } + + /** + * New object-list. + * + * @return String-object-list. (NotNull) + */ + protected List newObjectList() { + return new ArrayList(); + } + + /** + * Get new-line and indent. + * + * @return New-line and indent. (NotNull) + */ + protected String getNewLineAndIndent() { + return NEW_LINE + " "; + } + + /** + * Get count that target string exist in the base string. + * + * @param targetString Target string. + * @param delimiter Delimiter + * @return Delimiter count that _remainderString contains. + */ + protected int getDelimiterCount(String targetString, String delimiter) { + int result = 0; + for (int i = 0;;) { + if (targetString.indexOf(delimiter, i) != -1) { + result++; + i = targetString.indexOf(delimiter, i) + 1; + } else { + break; + } + } + if (result == 0) { + result = -1; + } + return result; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapListStringImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilder.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilder.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilder.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,78 @@ +package jp.sf.pal.userinfo.db.allcommon.helper; + +/** + * The interface of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapStringBuilder { + + //========================================================================== + // =========== + // Setter + // ====== + public void setColumnNames(String[] columnNames); + + public void setColumnNameList(java.util.List columnNameList); + + public void setMsMapMark(String value); + + public void setMsStartBrace(String value); + + public void setMsEndBrace(String value); + + public void setMsDelimiter(String value); + + public void setMsEqual(String value); + + //========================================================================== + // =========== + // Main + // ==== + public String buildByDelimiter(String values, String delimiter); + + public String buildFromList(java.util.List valueList); + + //========================================================================== + // =========== + // Exception Static Class + // ====================== + public static class DifferentDelimiterCountException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //====================================================================== + // =============== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + //====================================================================== + // =============== + // Constructor + // =========== + public DifferentDelimiterCountException(String msg, + java.util.List columnNameList, + java.util.List valueList) { + super(msg); + _columnNameList = columnNameList; + _valueList = valueList; + } + + //====================================================================== + // =============== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilderImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilderImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilderImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,183 @@ +package jp.sf.pal.userinfo.db.allcommon.helper; + +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * The implementation of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public class MapStringBuilderImpl implements MapStringBuilder { + + protected java.util.List _columnNameList; + + protected String _msMapMark; + + protected String _msStartBrace; + + protected String _msEndBrace; + + protected String _msDelimiter; + + protected String _msEqual; + + protected boolean _trimDoubleQuotation; + + public void setColumnNames(String[] columnNames) { + _columnNameList = java.util.Arrays.asList(columnNames); + } + + public void setColumnNameList(java.util.List columnNameList) { + _columnNameList = columnNameList; + } + + public void setMsMapMark(String value) { + _msMapMark = value; + } + + public void setMsStartBrace(String value) { + _msStartBrace = value; + } + + public void setMsEndBrace(String value) { + _msEndBrace = value; + } + + public void setMsDelimiter(String value) { + _msDelimiter = value; + } + + public void setMsEqual(String value) { + _msEqual = value; + } + + public void trimDoubleQuotation() { + _trimDoubleQuotation = true; + } + + public String buildByDelimiter(String values, String delimiter) { + if (values == null) { + String msg = "The argument[values] should not be null."; + throw new IllegalArgumentException(msg); + } + if (delimiter == null) { + String msg = "The argument[delimiter] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + + final java.util.List valueList = tokenize(values, delimiter); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + public String buildFromList(java.util.List valueList) { + if (valueList == null) { + String msg = "The argument[valueList] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + protected java.util.List tokenize(String value, String delimiter) { + final LineToken lineToken = new LineTokenImpl(); + final LineTokenizingOption lineTokenizingOption = new LineTokenizingOption(); + lineTokenizingOption.setDelimiter(delimiter); + if (_trimDoubleQuotation) { + lineTokenizingOption.trimDoubleQuotation(); + } + return lineToken.tokenize(value, lineTokenizingOption); + } + + protected void assertStringComponent() { + if (_columnNameList == null) { + String msg = "The columnNameList should not be null."; + throw new IllegalStateException(msg); + } + if (_columnNameList.isEmpty()) { + String msg = "The columnNameList should not be empty."; + throw new IllegalStateException(msg); + } + if (_msMapMark == null) { + String msg = "The msMapMark should not be null."; + throw new IllegalStateException(msg); + } + if (_msStartBrace == null) { + String msg = "The msStartBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msEndBrace == null) { + String msg = "The msEndBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msDelimiter == null) { + String msg = "The msDelimiter should not be null."; + throw new IllegalStateException(msg); + } + if (_msEqual == null) { + String msg = "The msEqual should not be null."; + throw new IllegalStateException(msg); + } + } + + protected void assertColumnValueList(java.util.List columnNameList, + java.util.List valueList) { + if (columnNameList.size() != valueList.size()) { + String msg = "The length of columnNameList and valueList are difference. (" + + columnNameList.size() + ", " + valueList.size() + ")"; + msg = msg + " columnNameList=" + columnNameList; + msg = msg + " valueList=" + valueList; + throw new DifferentDelimiterCountException(msg, columnNameList, + valueList); + } + } + + protected static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + final StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/MapStringBuilderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/GeneralCharacter.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/GeneralCharacter.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/GeneralCharacter.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.character; + +/** + * The interface of general character. + * + * @author DBFlute(AutoGenerator) + */ +public interface GeneralCharacter { + + public String toSingleByteAlphabet(String s); + + public String toSingleByteNumber(String s); + + public String toSingleByteAlphabetNumber(String target); + + public String toSingleByteAlphabetNumberMark(String target); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/GeneralCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/JapaneseCharacter.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/JapaneseCharacter.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/JapaneseCharacter.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,11 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.character; + +/** + * The interface of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public interface JapaneseCharacter { + + public String toDoubleByteKatakana(String target); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/JapaneseCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/GeneralCharacterImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/GeneralCharacterImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,101 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.character.impl; + +import jp.sf.pal.userinfo.db.allcommon.helper.character.GeneralCharacter; + +/** + * The implementation of general character. + * + * @author DBFlute(AutoGenerator) + */ +public class GeneralCharacterImpl implements GeneralCharacter { + + public String toSingleByteAlphabet(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumberMark(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(target.length()); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff01 && currentChar <= 0xff5e) { + sb.append(toSingleByteCharacter(currentChar)); + + // It needs to append more mark... + } else if (currentChar == '\u2019' || currentChar == '\u2018' + || currentChar == '\u2032') { + sb.append('\''); + } else if (currentChar == '\u201d' || currentChar == '\u201c' + || currentChar == '\u2033') { + sb.append('\"'); + } else if (currentChar == '\uffe5') { + sb.append('\\'); + } else if (currentChar == '\u2010') { + sb.append('-'); + } else if (currentChar == '\uff5e') { + sb.append('~'); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + protected char toSingleByteCharacter(final char currentChar) { + return (char) (currentChar - 0xfee0); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/GeneralCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,96 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.character.impl; + +import jp.sf.pal.userinfo.db.allcommon.helper.character.JapaneseCharacter; + +/** + * The implementation of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseCharacterImpl implements JapaneseCharacter { + + // Double-byte Katakana + protected static final String TABLE_ZENKANA = "\u3002\u300c\u300d\u3001\u30fb\u30f2\u30a1\u30a3\u30a5" + + "\u30a7\u30a9\u30e3\u30e5\u30e7\u30c3\u30fc\u30a2\u30a4" + + "\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5" + + "\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8" + + "\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8" + + "\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f3\u309b\u309c"; + + // (uff71 - uff9d) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA = "\u30a2\u30a4\u30f4\u30a8\u30aa" + + "\u30ac\u30ae\u30b0\u30b2\u30b4" + + "\u30b6\u30b8\u30ba\u30bc\u30be" + + "\u30c0\u30c2\u30c5\u30c7\u30c9" + + "\u30ca\u30cb\u30cc\u30cd\u30ce" + + "\u30d0\u30d3\u30d6\u30d9\u30dc" + + "\u30de\u30df\u30e0\u30e1\u30e2" + + "\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed" + "\u30ef\u30f3"; + + // (uff66 - uff6f) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA = "\u30fa\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7"; + + // (u30cf - u30dd) + protected static final String DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA = "\u30d1\u30d4\u30d7\u30da\u30dd"; + + public String toDoubleByteKatakana(String target) { + if (target == null) { + return target; + } + + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + final char nextChar; + if (i < target.length() - 1) { + nextChar = target.charAt(i + 1); + } else { + nextChar = ' '; + } + + if (isVoicedSoundKatakana(currentChar, nextChar)) { + if (currentChar >= 0xff66 && currentChar <= 0xff6f) {// Voiced + // sound + // special + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA + .charAt(currentChar - 0xff66)); + i++; + } else if (currentChar >= 0xff71 && currentChar <= 0xff9d) {// Voiced + // sound + // normal + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA + .charAt(currentChar - 0xff71)); + i++; + } + + } else if (isSemiVoicedSoundKatakana(currentChar, nextChar)) { + sb.append(DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA + .charAt(currentChar - 0xff8a)); + i++; + } else if (currentChar != 0xff9e && currentChar != 0xff9f) { + if (currentChar >= 0xff61 && currentChar <= 0xff9f) { + sb.append(TABLE_ZENKANA.charAt(currentChar - 0xff61)); + } else { + sb.append(currentChar); + } + } + } + return sb.toString(); + } + + protected boolean isVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return ((currentChar >= 0xff66 && currentChar <= 0xff6f) || (currentChar >= 0xff71 && (currentChar <= 0xff9d))) + && (nextChar == 0xff9e); + } + + protected boolean isSemiVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return (currentChar >= 0xff8a && currentChar <= 0xff8e) + && (nextChar == 0xff9f); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrder.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrder.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrder.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,20 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface AccordingToOrder { + + /** + * Order the unordered list. + * + * @param option The option of according-to-order. (NotNull) + * @param unorderedList The unordered list. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + void order(List unorderedList, + AccordingToOrderOption option); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrder.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.collection.order; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public interface AccordingToOrderIdExtractor { + + /** + * Extract ID from the element instance. + * + * @param element Element instance. (NotNull) + * @return Extracted ID. (NotNull) + */ + ID_TYPE extractId(ELEMENT_TYPE element); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,50 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public class AccordingToOrderOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _orderedUniqueIdList; + + protected AccordingToOrderIdExtractor _idExtractor; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void setupOrderedResource(List orderedUniqueIdList, + AccordingToOrderIdExtractor idExtractor) { + setOrderedUniqueIdList(orderedUniqueIdList); + setIdExtractor(idExtractor); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public List getOrderedUniqueIdList() { + return _orderedUniqueIdList; + } + + public void setOrderedUniqueIdList(List orderedUniqueIdList) { + this._orderedUniqueIdList = orderedUniqueIdList; + } + + public AccordingToOrderIdExtractor getIdExtractor() { + return _idExtractor; + } + + public void setIdExtractor( + AccordingToOrderIdExtractor idExtractor) { + _idExtractor = idExtractor; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/AccordingToOrderOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.collection.order.impl; + +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.helper.collection.order.AccordingToOrder; +import jp.sf.pal.userinfo.db.allcommon.helper.collection.order.AccordingToOrderIdExtractor; +import jp.sf.pal.userinfo.db.allcommon.helper.collection.order.AccordingToOrderOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class AccordingToOrderImpl implements AccordingToOrder { + + //========================================================================== + // ========= + // Main + // ==== + /** + * The implementation. + * + * @param unorderedList The unordered list. (NotNull) + * @param option The option of according-to-order. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + public void order( + final List unorderedList, + final AccordingToOrderOption option) { + assertObjectNotNull("unorderedList", unorderedList); + if (unorderedList.isEmpty()) { + return; + } + assertObjectNotNull("option", option); + final List orderedUniqueIdList = option + .getOrderedUniqueIdList(); + assertObjectNotNull("option.getOrderedUniqueIdList()", + orderedUniqueIdList); + if (orderedUniqueIdList.isEmpty()) { + return; + } + final AccordingToOrderIdExtractor idExtractor = option + .getIdExtractor(); + assertObjectNotNull("option.getIdExtractor()", idExtractor); + + final Map idIndexMap = new LinkedHashMap(); + int index = 0; + for (ID_TYPE id : orderedUniqueIdList) { + if (idIndexMap.containsKey(id)) { + String msg = "The id was duplicated: id=" + id + + " orderedUniqueIdList=" + orderedUniqueIdList; + throw new IllegalStateException(msg); + } + idIndexMap.put(id, index); + ++index; + } + final Comparator comp = new Comparator() { + public int compare(ELEMENT_TYPE o1, ELEMENT_TYPE o2) { + final ID_TYPE id1 = idExtractor.extractId(o1); + final ID_TYPE id2 = idExtractor.extractId(o2); + assertObjectNotNull("id1 of " + o1, id1); + assertObjectNotNull("id2 of " + o2, id2); + final Integer index1 = idIndexMap.get(id1); + final Integer index2 = idIndexMap.get(id2); + if (index1 != null && index2 != null) { + return index1.compareTo(index2); + } + if (index1 == null && index2 == null) { + return 0; + } + return index1 == null ? 1 : -1; + } + }; + Collections.sort(unorderedList, comp); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractingResource { + + public boolean isTargetElement(String className, String methodName); + + public String filterSimpleClassName(String simpleClassName); + + public boolean isUseAdditionalInfo(); + + public int getStartIndex(); + + public int getLoopSize(); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,16 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractor { + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameResult.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameResult.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameResult.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,86 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameResult { + + //========================================================================== + // ================ + // Attribute + // ========= + protected String _simpleClassName; + + protected String _methodName; + + protected String _invokeName; + + protected int _foundIndex; + + protected int _foundFirstIndex; + + //========================================================================== + // ================ + // Manipulation + // ============ + public int getNextStartIndex() { + return _foundIndex + 1; + } + + public void beEmptyResult() { + _simpleClassName = null; + _invokeName = ""; // As Default + } + + //========================================================================== + // ================ + // Determination + // ============= + public boolean isEmptyResult() { + return _simpleClassName == null; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public String getSimpleClassName() { + return _simpleClassName; + } + + public void setSimpleClassName(String simpleClassName) { + _simpleClassName = simpleClassName; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + _methodName = methodName; + } + + public String getInvokeName() { + return _invokeName; + } + + public void setInvokeName(String invokeName) { + _invokeName = invokeName; + } + + public int getFoundIndex() { + return _foundIndex; + } + + public void setFoundIndex(int foundIndex) { + _foundIndex = foundIndex; + } + + public int getFoundFirstIndex() { + return _foundFirstIndex; + } + + public void setFoundFirstIndex(int foundFirstIndex) { + _foundFirstIndex = foundFirstIndex; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/InvokeNameResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.impl; + +import jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.InvokeNameExtractor; +import jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.InvokeNameResult; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameExtractorImpl implements InvokeNameExtractor { + + //========================================================================== + // ================ + // Attribute + // ========= + protected StackTraceElement[] _stackTrace; + + //========================================================================== + // ================ + // Main + // ==== + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return Invoke name. (NotNull: If not found, returns empty string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource) { + if (_stackTrace == null) { + String msg = "The attribute 'stackTrace' should not be null: resource=" + + resource; + throw new IllegalStateException(msg); + } + String targetSimpleClassName = null; + String targetMethodName = null; + int lineNumber = 0; + int foundIndex = -1; // The minus one means 'Not Found'. + int foundFirstIndex = -1; // The minus one means 'Not Found'. + boolean onTarget = false; + for (int i = resource.getStartIndex(); i < _stackTrace.length; i++) { + final StackTraceElement element = _stackTrace[i]; + if (i > resource.getStartIndex() + resource.getLoopSize()) { + break; + } + final String className = element.getClassName(); + if (className.startsWith("sun.") || className.startsWith("java.")) { + if (onTarget) { + break; + } + continue; + } + final String methodName = element.getMethodName(); + if (resource.isTargetElement(className, methodName)) { + if (methodName.equals("invoke")) { + continue; + } + targetSimpleClassName = className.substring(className + .lastIndexOf(".") + 1); + targetMethodName = methodName; + if (resource.isUseAdditionalInfo()) { + lineNumber = element.getLineNumber(); + } + foundIndex = i; + if (foundFirstIndex == -1) { + foundFirstIndex = i; + } + onTarget = true; + continue; + } + if (onTarget) { + break; + } + } + final InvokeNameResult result = new InvokeNameResult(); + if (targetSimpleClassName == null) { + result.beEmptyResult(); // Not Found! It sets empty result. + return result; + } + final String filteredClassName = resource + .filterSimpleClassName(targetSimpleClassName); + result.setSimpleClassName(resource + .filterSimpleClassName(targetSimpleClassName)); + result.setMethodName(targetMethodName); + if (lineNumber > 0) { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "():" + lineNumber + " --> "); + } else { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "() --> "); + } + result.setFoundIndex(foundIndex); + result.setFoundFirstIndex(foundFirstIndex); + return result; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public void setStackTrace(StackTraceElement[] stackTrace) { + _stackTrace = stackTrace; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingCallback.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingCallback.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingCallback.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingCallback { + + /** + * Get file-making header information. + * + *
+     * You should return your row resource for file-making.
+     * It continues invoking until this method returns null.
+     * 
+ * + * @return File-making header information. (Nullable) + */ + public FileMakingRowResource getRowResource(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingHeaderInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingHeaderInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingHeaderInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,23 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingHeaderInfo { + + protected List columnNameList = new java.util.ArrayList(); + + public List getColumnNameList() { + return columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this.columnNameList = columnNameList; + } + + public boolean isEmpty() { + return this.columnNameList.isEmpty(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,107 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Encoding. (Required) */ + protected String _encoding; + + /** Delimiter. (Required) */ + protected String _delimiter; + + /** Line separator. (NotRequired) */ + protected String _lineSeparator; + + /** Good bye double quotation. (NotRequired) */ + protected boolean _goodByeDoubleQuotation; + + /** File-making header information. (NotRequired) */ + protected FileMakingHeaderInfo _fileMakingHeaderInfo; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileMakingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileMakingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileMakingOption separateCrLf() { + _lineSeparator = "\r\n"; + return this; + } + + public FileMakingOption separateLf() { + _lineSeparator = "\n"; + return this; + } + + public FileMakingOption goodByeDoubleQuotation() { + _goodByeDoubleQuotation = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getLineSeparator() { + return _lineSeparator; + } + + public void setLineSeparator(String lineSeparator) { + _lineSeparator = lineSeparator; + } + + public boolean isGoodByeDoubleQuotation() { + return _goodByeDoubleQuotation; + } + + public FileMakingHeaderInfo getFileMakingHeaderInfo() { + return _fileMakingHeaderInfo; + } + + public void setFileMakingHeaderInfo( + FileMakingHeaderInfo fileMakingHeaderInfo) { + _fileMakingHeaderInfo = fileMakingHeaderInfo; + } + +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingRowResource.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingRowResource.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingRowResource.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,47 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _valueList; + + protected java.util.LinkedHashMap _nameValueMap; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getValueList() { + return _valueList; + } + + /** + * Set the list of value. {Priority One} + * + * @param valueList The list of value. (NotNull and NotEmpty) + */ + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public java.util.LinkedHashMap getNameValueMap() { + return _nameValueMap; + } + + /** + * Set the map of name and value. {Priority Two}
If valueList is set, + * This nameValueMap is ignored. + * + * @param nameValueMap The map of name and value. (NotNull and NotEmpty) + */ + public void setNameValueMap( + java.util.LinkedHashMap nameValueMap) { + this._nameValueMap = nameValueMap; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingSimpleFacade.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingSimpleFacade.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingSimpleFacade.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,37 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingSimpleFacade { + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileMakingSimpleFacade.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileToken.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileToken.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileToken.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,78 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * File-Token. + * + * @author DBFlute(AutoGenerator) + */ +public interface FileToken { + + /** + * Tokenize token-file data of a specified file. + * + * @param filename Input target file name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Tokenize token-file data of a specified file. + * + *
+     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
+     * These objects are closed. (Invoking close() at finally)
+     * 
+ * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + * @param filename Output target file name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + *
+     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
+     * These objects are closed. (Invoking close() at finally)
+     * 
+ * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingCallback.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingCallback.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingCallback.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,9 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileTokenizingCallback { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingHeaderInfo { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _columnNameList = new java.util.ArrayList(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + protected String _columnNameRowString; + + public boolean isEmpty() { + return this._columnNameList.isEmpty(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this._columnNameList = columnNameList; + } + + public String getColumnNameRowString() { + return _columnNameRowString; + } + + public void setColumnNameRowString(String columnNameRowString) { + _columnNameRowString = columnNameRowString; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,81 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _encoding; + + protected String _delimiter; + + protected boolean _beginFirstLine; + + protected boolean _handleEmptyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileTokenizingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileTokenizingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileTokenizingOption beginFirstLine() { + _beginFirstLine = true; + return this; + } + + public FileTokenizingOption handleEmptyAsNull() { + _handleEmptyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public boolean isBeginFirstLine() { + return _beginFirstLine; + } + + public boolean isHandleEmptyAsNull() { + return _handleEmptyAsNull; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingRowResource.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingRowResource.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingRowResource.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,68 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileTokenizingHeaderInfo fileTokenizingHeaderInfo; + + protected java.util.List valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + //========================================================================== + // =========== + // Accessor + // ======== + public FileTokenizingHeaderInfo getFileTokenizingHeaderInfo() { + return fileTokenizingHeaderInfo; + } + + public void setFirstLineInfo( + FileTokenizingHeaderInfo fileTokenizingHeaderInfo) { + this.fileTokenizingHeaderInfo = fileTokenizingHeaderInfo; + } + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(java.util.List valueList) { + this.valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/FileTokenizingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,85 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file.impl; + +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileToken; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingSimpleFacadeImpl implements FileMakingSimpleFacade { + + protected FileToken _fileToken = new FileTokenImpl(); + + public void setFileToken(FileToken fileToken) { + this._fileToken = fileToken; + } + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + _fileToken.make(filename, fileMakingCallback, fileMakingOption); + } + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); + _fileToken.make(baos, fileMakingCallback, fileMakingOption); + return baos.toByteArray(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileTokenImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileTokenImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileTokenImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,565 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.file.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenImpl implements FileToken { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Line-token for help. */ + protected final LineToken _lineToken = new LineTokenImpl(); + + //========================================================================== + // =========== + // Main + // ==== + /** + * Tokenize token-file data of a specified file. + * + * @param filename File name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileInputStream fis = null; + try { + fis = new java.io.FileInputStream(filename); + tokenize(fis, fileTokenizingCallback, fileTokenizingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (fis != null) { + fis.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + /** + * Tokenize token-file data of a specified file. + * + *
+     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
+     * These objects are closed. (Invoking close() at finally)
+     * 
+ * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertObjectNotNull("fileTokenizingCallback", fileTokenizingCallback); + assertObjectNotNull("fileTokenizingOption", fileTokenizingOption); + final String delimiter = fileTokenizingOption.getDelimiter(); + final String encoding = fileTokenizingOption.getEncoding(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + java.io.InputStreamReader ir = null; + java.io.BufferedReader br = null; + + String lineString = null; + String preContinueString = ""; + final List temporaryValueList = new ArrayList(); + final List filteredValueList = new ArrayList(); + + try { + ir = new java.io.InputStreamReader(inputStream, encoding); + br = new java.io.BufferedReader(ir); + + FileTokenizingHeaderInfo fileTokenizingHeaderInfo = null; + int count = -1; + int rowNumber = 1; + int lineNumber = 0; + while (true) { + ++count; + if ("".equals(preContinueString)) { + lineNumber = count + 1; + } + + lineString = br.readLine(); + if (lineString == null) { + break; + } + if (count == 0) { + if (fileTokenizingOption.isBeginFirstLine()) { + fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo();// As + // empty + } else { + fileTokenizingHeaderInfo = analyzeHeaderInfo(delimiter, + lineString); + continue; + } + } + final String rowString; + if (preContinueString.equals("")) { + rowString = lineString; + } else { + final String lineSeparator = System + .getProperty("line.separator"); + rowString = preContinueString + lineSeparator + lineString; + } + final ValueLineInfo valueLineInfo = arrangeValueList(rowString, + delimiter); + final List ls = valueLineInfo.getValueList(); + if (valueLineInfo.isContinueNextLine()) { + preContinueString = (String) ls.remove(ls.size() - 1); + temporaryValueList.addAll(ls); + continue; + } + temporaryValueList.addAll(ls); + + try { + final FileTokenizingRowResource fileTokenizingRowResource = new FileTokenizingRowResource(); + fileTokenizingRowResource + .setFirstLineInfo(fileTokenizingHeaderInfo); + + if (fileTokenizingOption.isHandleEmptyAsNull()) { + for (final Iterator ite = temporaryValueList + .iterator(); ite.hasNext();) { + final String value = (String) ite.next(); + if ("".equals(value)) { + filteredValueList.add(null); + } else { + filteredValueList.add(value); + } + } + fileTokenizingRowResource + .setValueList(filteredValueList); + } else { + fileTokenizingRowResource + .setValueList(temporaryValueList); + } + + fileTokenizingRowResource.setRowString(rowString); + fileTokenizingRowResource.setRowNumber(rowNumber); + fileTokenizingRowResource.setLineNumber(lineNumber); + fileTokenizingCallback + .handleRowResource(fileTokenizingRowResource); + } finally { + ++rowNumber; + temporaryValueList.clear(); + filteredValueList.clear(); + preContinueString = ""; + } + } + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (ir != null) { + ir.close(); + } + if (br != null) { + br.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + protected ValueLineInfo arrangeValueList(final String lineString, + String delimiter) { + final List valueList = new ArrayList(); + + // Don't use split! + // final String[] values = lineString.split(delimiter); + final LineTokenizingOption tokenizingOption = new LineTokenizingOption(); + tokenizingOption.setDelimiter(delimiter); + final List list = _lineToken.tokenize(lineString, + tokenizingOption); + final String[] values = (String[]) list + .toArray(new String[list.size()]); + for (int i = 0; i < values.length; i++) { + valueList.add(values[i]); + } + return arrangeValueList(valueList, delimiter); + } + + protected ValueLineInfo arrangeValueList(List valueList, + String delimiter) { + final ValueLineInfo valueLineInfo = new ValueLineInfo(); + final ArrayList resultList = new ArrayList(); + String preString = ""; + for (int i = 0; i < valueList.size(); i++) { + final String value = (String) valueList.get(i); + if (value == null) { + continue; + } + if (i == valueList.size() - 1) {// The last loop + if (preString.equals("")) { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(value); + break; + } else if (isRearQOnly(value)) { + resultList.add(value); + break; + } else if (isNotBothQ(value)) { + resultList.add(value); + break; + } else { + resultList.add(removeDoubleQuotation(value)); + break; + } + } else { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } else if (isNotBothQ(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } + } + } + + if (preString.equals("")) { + if (isFrontQOnly(value)) { + preString = value; + continue; + } else if (isRearQOnly(value)) { + preString = value; + continue; + } else if (isNotBothQ(value)) { + resultList.add(value); + } else { + resultList.add(removeDoubleQuotation(value)); + } + } else { + if (isFrontQOnly(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } else if (isNotBothQ(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } + } + preString = ""; + } + valueLineInfo.setValueList(resultList); + return valueLineInfo; + } + + protected String connectPreString(String preString, String delimiter, + String value) { + if (preString.equals("")) { + return value; + } else { + return preString + delimiter + value; + } + } + + protected boolean isNotBothQ(final String value) { + return !value.startsWith("\"") && !value.endsWith("\""); + } + + protected boolean isRearQOnly(final String value) { + return !value.startsWith("\"") && value.endsWith("\""); + } + + protected boolean isFrontQOnly(final String value) { + return value.startsWith("\"") && !value.endsWith("\""); + } + + protected String removeDoubleQuotation(String value) { + if (!value.startsWith("\"") && !value.endsWith("\"")) { + return value; + } + if (value.startsWith("\"")) { + value = value.substring(1); + } + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected String removeRightDoubleQuotation(String value) { + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected FileTokenizingHeaderInfo analyzeHeaderInfo(String delimiter, + final String lineString) { + final java.util.List columnNameList = new ArrayList(); + final String[] values = lineString.split(delimiter); + for (int i = 0; i < values.length; i++) { + final String value = values[i].trim();// Trimming is Header Only!; + if (value.startsWith("\"") && value.endsWith("\"")) { + columnNameList.add(value.substring(1, value.length() - 1)); + } else { + columnNameList.add(value); + } + } + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo(); + fileTokenizingHeaderInfo.setColumnNameList(columnNameList); + fileTokenizingHeaderInfo.setColumnNameRowString(lineString); + return fileTokenizingHeaderInfo; + } + + public static class ValueLineInfo { + protected java.util.List valueList; + + protected boolean continueNextLine; + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(List valueList) { + this.valueList = valueList; + } + + public boolean isContinueNextLine() { + return continueNextLine; + } + + public void setContinueNextLine(boolean continueNextLine) { + this.continueNextLine = continueNextLine; + } + } + + /** + * Make token-file from specified row resources. + * + * @param filename File name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileOutputStream fos = null; + try { + fos = new java.io.FileOutputStream(filename); + make(fos, fileMakingCallback, fileMakingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (fos != null) { + fos.close(); + } + } + } + + /** + * Make token-file from specified row resources. + * + *
+     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
+     * These objects are closed. (Invoking close() at finally)
+     * 
+ * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("outputStream", outputStream); + assertObjectNotNull("fileMakingCallback", fileMakingCallback); + assertObjectNotNull("fileMakingOption", fileMakingOption); + final String encoding = fileMakingOption.getEncoding(); + final String delimiter = fileMakingOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final String lineSeparator; + if (fileMakingOption.getLineSeparator() != null + && !fileMakingOption.getLineSeparator().equals("")) { + lineSeparator = fileMakingOption.getLineSeparator(); + } else { + lineSeparator = System.getProperty("line.separator");// Default! + } + + java.io.BufferedOutputStream bos = null; + java.io.Writer writer = null; + try { + bos = new java.io.BufferedOutputStream(outputStream); + writer = new java.io.OutputStreamWriter(bos, encoding); + + boolean headerDone = false; + + // Make header. + final FileMakingHeaderInfo fileMakingHeaderInfo = fileMakingOption + .getFileMakingHeaderInfo(); + if (fileMakingHeaderInfo != null) { + final List columnNameList = fileMakingHeaderInfo + .getColumnNameList(); + if (columnNameList != null && !columnNameList.isEmpty()) { + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + } + + // Make row. + FileMakingRowResource rowResource = null; + while (true) { + rowResource = fileMakingCallback.getRowResource(); + if (rowResource == null) { + break;// The End! + } + final java.util.List valueList; + if (rowResource.getValueList() != null) { + valueList = rowResource.getValueList(); + } else { + final java.util.LinkedHashMap nameValueMap = rowResource + .getNameValueMap(); + if (!headerDone) { + final java.util.List columnNameList = new java.util.ArrayList( + nameValueMap.keySet()); + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + valueList = new ArrayList(nameValueMap.values()); + } + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + if (!fileMakingOption.isGoodByeDoubleQuotation()) { + lineMakingOption.quoteByDoubleQuotation(); + } + final String lineString = _lineToken.make(valueList, + lineMakingOption); + writer.write(lineString + lineSeparator); + } + writer.flush(); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (bos != null) { + bos.close(); + } + if (writer != null) { + writer.close(); + } + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/file/impl/FileTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineMakingOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineMakingOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineMakingOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,49 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineMakingOption { + + protected String _delimiter; + + protected boolean _quoteByDoubleQuotation; + + protected boolean _trimSpace; + + public LineMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public LineMakingOption quoteByDoubleQuotation() { + _quoteByDoubleQuotation = true; + return this; + } + + public boolean isQuoteByDoubleQuotation() { + return _quoteByDoubleQuotation; + } + + public LineMakingOption trimSpace() { + _trimSpace = true; + return this; + } + + public boolean isTrimSpace() { + return _trimSpace; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineToken.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineToken.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineToken.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,13 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface LineToken { + + public java.util.List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption); + + public String make(java.util.List valueList, + LineMakingOption lineMakingOption); +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineTokenizingOption.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineTokenizingOption.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineTokenizingOption.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,61 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _delimiter; + + protected boolean _trimDoubleQuotation; + + protected boolean _handleEmtpyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public LineTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public LineTokenizingOption trimDoubleQuotation() { + _trimDoubleQuotation = true; + return this; + } + + public LineTokenizingOption handleEmtpyAsNull() { + _handleEmtpyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public boolean isTrimDoubleQuotation() { + return _trimDoubleQuotation; + } + + public boolean isHandleEmtpyAsNull() { + return _handleEmtpyAsNull; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/LineTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/impl/LineTokenImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/impl/LineTokenImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,136 @@ +package jp.sf.pal.userinfo.db.allcommon.helper.token.line.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.userinfo.db.allcommon.helper.token.line.LineTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenImpl implements LineToken { + + //========================================================================== + // ========= + // Tokenize Line + // ============= + public List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption) { + final String delimiter = lineTokenizingOption.getDelimiter(); + final List list = new ArrayList(); + int i = 0; + int j = lineString.indexOf(delimiter); + for (int h = 0; j >= 0; h++) { + final String pureValue = lineString.substring(i, j); + if (lineTokenizingOption.isTrimDoubleQuotation()) { + final String before = pureValue; + if (before.length() > 1 && before.startsWith("\"") + && before.endsWith("\"")) { + final String after = before.substring(1, + before.length() - 1); + list.add(filterHandlingEmptyAsNull(after, + lineTokenizingOption)); + } else { + list.add(filterHandlingEmptyAsNull(before, + lineTokenizingOption)); + } + } else { + list.add(filterHandlingEmptyAsNull(pureValue, + lineTokenizingOption)); + } + i = j + delimiter.length(); + j = lineString.indexOf(delimiter, i); + } + list.add(filterHandlingEmptyAsNull(lineString.substring(i), + lineTokenizingOption)); + return list; + } + + protected String filterHandlingEmptyAsNull(String target, + LineTokenizingOption lineTokenizingOption) { + if (target == null) { + return null; + } + if (lineTokenizingOption.isHandleEmtpyAsNull() && "".equals(target)) { + return null; + } + return target; + } + + //========================================================================== + // ========= + // Make Line + // ========= + public String make(java.util.List valueList, + LineMakingOption lineMakingOption) { + assertObjectNotNull("valueList", valueList); + assertObjectNotNull("lineMakingOption", lineMakingOption); + final String delimiter = lineMakingOption.getDelimiter(); + assertObjectNotNull("lineMakingOption.getDelimiter()", delimiter); + return createLineString(valueList, delimiter, lineMakingOption + .isQuoteByDoubleQuotation(), lineMakingOption.isTrimSpace()); + } + + protected String createLineString(List valueList, String delimiter, + boolean quoteByDoubleQuotation, boolean trimSpace) { + final StringBuffer sb = new StringBuffer(); + for (final Iterator ite = valueList.iterator(); ite.hasNext();) { + String value = (String) ite.next(); + value = (value != null ? value : ""); + if (trimSpace) { + value = value.trim(); + } + if (quoteByDoubleQuotation) { + sb.append(delimiter).append("\"").append(value).append("\""); + } else { + sb.append(delimiter).append(value); + } + } + sb.delete(0, delimiter.length()); + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/helper/token/line/impl/LineTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/CursorHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/CursorHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/CursorHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,19 @@ +package jp.sf.pal.userinfo.db.allcommon.jdbc; + +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * The handler of cursor. + * + * @author DBFlute(AutoGenerator) + */ +public interface CursorHandler { + + /** + * @param resultSet Result set. (NotNull) + * @return Result + * @throws java.sql.SQLException + */ + Object handle(ResultSet resultSet) throws SQLException; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/CursorHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/LatestSqlProvider.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/LatestSqlProvider.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/LatestSqlProvider.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon.jdbc; + +/** + * The provider of latest SQL. + * + * @author DBFlute(AutoGenerator) + */ +public interface LatestSqlProvider { + + /** + * Get display SQL. + * + * @return Display SQL. (Nullable: If it was not found, returns null.) + */ + public String getDisplaySql(); + + /** + * Clear the cache of SQL. + */ + public void clearSqlCache(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/LatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/SqlLogHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/SqlLogHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/SqlLogHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,18 @@ +package jp.sf.pal.userinfo.db.allcommon.jdbc; + +/** + * The handler of SQL log. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlLogHandler { + + /** + * @param executedSql The executed SQL. (NotNull) + * @param displaySql The SQL for display. (NotNull) + * @param args The arguments of the SQL. (Nullable) + * @param argTypes The argument types of the SQL. (Nullable) + */ + void handle(String executedSql, String displaySql, Object[] args, + Class[] argTypes); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/SqlLogHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/StatementConfig.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/StatementConfig.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/StatementConfig.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,135 @@ +package jp.sf.pal.userinfo.db.allcommon.jdbc; + +import java.sql.ResultSet; + +/** + * The config of statement. + * + * @author DBFlute(AutoGenerator) + */ +public class StatementConfig { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + protected Integer _resultSetType; + + // ----------------------------------------------------- + // Statement Option + // ---------------- + protected Integer _queryTimeout; + + protected Integer _fetchSize; + + protected Integer _maxRows; + + //========================================================================== + // ========= + // Setting Interface + // ================= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public StatementConfig typeForwardOnly() { + _resultSetType = ResultSet.TYPE_FORWARD_ONLY; + return this; + } + + public StatementConfig typeScrollInsensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + return this; + } + + public StatementConfig typeScrollSensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_SENSITIVE; + return this; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public StatementConfig queryTimeout(int queryTimeout) { + this._queryTimeout = queryTimeout; + return this; + } + + public StatementConfig fetchSize(int fetchSize) { + this._fetchSize = fetchSize; + return this; + } + + public StatementConfig maxRows(int maxRows) { + this._maxRows = maxRows; + return this; + } + + //========================================================================== + // ========= + // Determination + // ============= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public boolean hasResultSetType() { + return _resultSetType != null; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public boolean hasStatementOptions() { + return hasQueryTimeout() || hasFetchSize() || hasMaxRows(); + } + + public boolean hasQueryTimeout() { + return _queryTimeout != null; + } + + public boolean hasFetchSize() { + return _fetchSize != null; + } + + public boolean hasMaxRows() { + return _maxRows != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{" + _resultSetType + ", " + _queryTimeout + ", " + _fetchSize + + ", " + _maxRows + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public Integer getResultSetType() { + return _resultSetType; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public Integer getQueryTimeout() { + return _queryTimeout; + } + + public Integer getFetchSize() { + return _fetchSize; + } + + public Integer getMaxRows() { + return _maxRows; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/jdbc/StatementConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,125 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.ResultSetFactory; + +/** + * This is unused in DBFlute so this is very NORMAL result-set-factory for + * S2Dao. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetFactory implements ResultSetFactory { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public FetchNarrowingResultSetFactory() { + } + + //========================================================================== + // ========= + // Main + // ==== + /** + * Get result set. + * + * @param statement Statement. (NotNull) + * @return Result set for procedure executing of s2dao. (NotNull) + */ + public ResultSet getResultSet(Statement statement) { // Unused in DBFlute + return doGetResultSet(statement); + } + + /** + * Create result set. + * + * @param ps Prepared statement. (NotNull) + * @return Result set. (NotNull) + */ + public ResultSet createResultSet(PreparedStatement ps) { // Unused in + // DBFlute + return executeQuery(ps); + + // *Move to InternalBasicSelectHandler + // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // return resultSet; + // } + // final FetchNarrowingBean cb = + // FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread(); + // if (!isUseFetchNarrowingResultSetWrapper(cb)) { + // return resultSet; + // } + // final FetchNarrowingResultSetWrapper wrapper; + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + // outsideSqlContext.isOffsetByCursorForcedly(), + // outsideSqlContext.isLimitByCursorForcedly()); + // } else { + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + // false); + // } + // return wrapper; + } + + // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean + // cb) { + // if (cb.getSafetyMaxResultSize() > 0) { + // return true; + // } + // if (!cb.isFetchNarrowingEffective()) { + // return false;// It is not necessary to control. + // } + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // if (outsideSqlContext.isOffsetByCursorForcedly() || + // outsideSqlContext.isLimitByCursorForcedly()) { + // return true; + // } + // } + // if (cb.isFetchNarrowingSkipStartIndexEffective() || + // cb.isFetchNarrowingLoopCountEffective()) { + // return true; + // } + // return false; + // } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected ResultSet doGetResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected ResultSet executeQuery(PreparedStatement ps) { + try { + return ps.executeQuery(); + } catch (SQLException e) { + handleSQLException(e, ps); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,237 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.userinfo.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.impl.ResultSetWrapper; + +/** + * The wrapper of fetch narrowing result set. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetWrapper extends ResultSetWrapper { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The real result set. (NotNull) */ + protected ResultSet _resultSet; + + /** The bean of fetch narrowing. (NotNull) */ + protected FetchNarrowingBean _fetchNarrowingBean; + + /** The counter of fetch. */ + protected long _fetchCounter; + + /** the counter of request. */ + protected long _requestCounter; + + /** Does it offset by cursor forcedly? */ + protected boolean _offsetByCursorForcedly; + + /** Does it limit by cursor forcedly? */ + protected boolean _limitByCursorForcedly; + + /** Does it skip to cursor end? */ + protected boolean _skipToCursorEnd; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param resultSet Original result set. (NotNull) + * @param fetchNarrowingBean Fetch-narrowing-bean. (NotNull) + * @param offsetByCursorForcedly Offset by cursor forcedly. + * @param limitByCursorForcedly Limit by cursor forcedly. + */ + public FetchNarrowingResultSetWrapper(ResultSet resultSet, + FetchNarrowingBean fetchNarrowingBean, + boolean offsetByCursorForcedly, boolean limitByCursorForcedly) { + super(resultSet); + + _resultSet = resultSet; + _fetchNarrowingBean = fetchNarrowingBean; + _offsetByCursorForcedly = offsetByCursorForcedly; + _limitByCursorForcedly = limitByCursorForcedly; + + skip(); + } + + //========================================================================== + // ========= + // Skip + // ==== + /** + * Skip to start-index. + */ + protected void skip() { + if (!isAvailableSkipRecord()) { + return; + } + final int skipStartIndex = getFetchNarrowingSkipStartIndex(); + if (isScrollableCursor()) { + try { + if (0 == skipStartIndex) { + _resultSet.beforeFirst(); + } else { + _resultSet.absolute(skipStartIndex); + } + _fetchCounter = _resultSet.getRow(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } else { + try { + while (true) { + if (_fetchCounter >= skipStartIndex) { + break; + } + if (!_resultSet.next()) { + _skipToCursorEnd = true;// [DBFLUTE-243] + break; + } + ++_fetchCounter; + } + } catch (SQLException e) { + handleSQLException(e, null); + } + } + } + + protected boolean isAvailableSkipRecord() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isOffsetByCursorForcedly()) { + return true; + } + if (isFetchNarrowingSkipStartIndexEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Next + // ==== + /** + * Next. + * + * @return Does the result set have next record? + * @throws SQLException + */ + public boolean next() throws SQLException { + final boolean hasNext = super.next(); + ++_requestCounter; + if (!isAvailableLimitLoopCount()) { + checkSafetyResult(hasNext); + return hasNext; + } + + if (hasNext + && _fetchCounter < getFetchNarrowingSkipStartIndex() + + getFetchNarrowingLoopCount()) { + ++_fetchCounter; + checkSafetyResult(true); + return true; + } else { + return false; + } + } + + protected boolean isAvailableLimitLoopCount() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isLimitByCursorForcedly()) { + return true; + } + if (isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + protected void checkSafetyResult(boolean hasNext) { + if (hasNext && getSafetyMaxResultSize() > 0 + && _requestCounter > (getSafetyMaxResultSize() + 1)) { + String msg = "You have already been in Danger Zone!"; + msg = msg + + " Please confirm your query or data of table: safetyMaxResultSize=" + + getSafetyMaxResultSize(); + throw new jp.sf.pal.userinfo.db.allcommon.exception.DangerousResultSizeException( + msg, getSafetyMaxResultSize()); + } + } + + //========================================================================== + // ========= + // Fetch Option + // ============ + protected boolean isFetchNarrowingEffective() { + return _fetchNarrowingBean.isFetchNarrowingEffective(); + } + + protected boolean isFetchNarrowingSkipStartIndexEffective() { + return _fetchNarrowingBean.isFetchNarrowingSkipStartIndexEffective(); + } + + protected boolean isFetchNarrowingLoopCountEffective() { + return _fetchNarrowingBean.isFetchNarrowingLoopCountEffective(); + } + + protected int getFetchNarrowingSkipStartIndex() { + return _fetchNarrowingBean.getFetchNarrowingSkipStartIndex(); + } + + protected int getFetchNarrowingLoopCount() { + return _fetchNarrowingBean.getFetchNarrowingLoopCount(); + } + + public int getSafetyMaxResultSize() { + return _fetchNarrowingBean.getSafetyMaxResultSize(); + } + + protected boolean isScrollableCursor() { + try { + return !(_resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY); + } catch (SQLException e) { + handleSQLException(e, null); + return false;// Unreachable! + } + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public boolean isSkipToCursorEnd() { + return _skipToCursorEnd; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,116 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.impl.BeanMetaDataFactoryImpl; +import org.seasar.dao.impl.BeanMetaDataImpl; + +/** + * BeanMetaDataFactoryImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2BeanMetaDataFactoryImpl extends BeanMetaDataFactoryImpl { + + protected Map, BeanMetaData> _metaMap = Collections + .synchronizedMap(new HashMap, BeanMetaData>()); + + @Override + public BeanMetaData createBeanMetaData(Class beanClass) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass); + } + } + + @Override + public BeanMetaData createBeanMetaData(Class beanClass, + int relationNestLevel) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass, relationNestLevel); + } + } + + @Override + public BeanMetaData createBeanMetaData(DatabaseMetaData dbMetaData, + Class beanClass, int relationNestLevel) { + final BeanMetaData cachedMeta = findOrCreateCachedMetaIfNeeds( + dbMetaData, beanClass, relationNestLevel); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, + relationNestLevel); + } + } + + protected BeanMetaData findCachedMeta(Class beanClass) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } + } + return null; + } + + protected BeanMetaData findOrCreateCachedMetaIfNeeds( + DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, 0); + } + } + return null; + } + + @Override + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + @Override + public void initialize() { + final Class myBeanClass = getBeanClass(); + if (isDBFluteEntity(myBeanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(myBeanClass); + if (cachedMeta == null) { + _metaMap.put(myBeanClass, this); + } + } + super.initialize(); + } + }; + } + + protected boolean isDBFluteEntity(Class beanClass) { + return Entity.class.isAssignableFrom(beanClass); + } + + protected BeanMetaData getMetaFromCache(Class beanClass) { + return _metaMap.get(beanClass); + } + + /** + * Get the limit nest level of relation. + * + * @return The limit nest level of relation. + */ + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible to old version DBFlute + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoInterceptor.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoInterceptor.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1027 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.InternalMapContext; +import jp.sf.pal.userinfo.db.allcommon.XLog; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.InvokeNameResult; +import jp.sf.pal.userinfo.db.allcommon.helper.stacktrace.impl.InvokeNameExtractorImpl; +import jp.sf.pal.userinfo.db.allcommon.util.TraceViewUtil; + +import org.aopalliance.intercept.MethodInvocation; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; + +/** + * The interceptor of S2Dao for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoInterceptor extends + org.seasar.framework.aop.interceptors.AbstractInterceptor { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoInterceptor.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The factory of DAO meta data. */ + protected DaoMetaDataFactory _daoMetaDataFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param daoMetaDataFactory The factory of DAO meta data. (NotNull) + */ + public S2DaoInterceptor(DaoMetaDataFactory daoMetaDataFactory) { + _daoMetaDataFactory = daoMetaDataFactory; + } + + //========================================================================== + // ========= + // Execute Status Log + // ================== + protected void log(String msg) { + XLog.log(msg); + } + + protected boolean isLogEnabled() { + return XLog.isLogEnabled(); + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + public Object invoke(MethodInvocation invocation) throws Throwable { + clearThreadLocal(); + try { + return dispatchInvoking(invocation); + } finally { + clearThreadLocal(); + } + } + + /** + * Dispatch invoking the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + protected Object dispatchInvoking(MethodInvocation invocation) + throws Throwable { + final Method method = invocation.getMethod(); + if (!isAbstract(method)) { + return invocation.proceed(); + } + + // - - - - - - - - - - - - - + // Initialize DAO meta data + // - - - - - - - - - - - - - + if (method.getName().equals("initializeDaoMetaData")) { + initializeSqlCommand(invocation); + return null;// The end! (Initilization Only) + } + + // - - - - - - - - - - - - + // Preprocess outside-SQL + // - - - - - - - - - - - - + preprocessOutsideSql(invocation); + + // - - - - - - - - - - - - - + // Preprocess condition-bean + // - - - - - - - - - - - - - + final ConditionBean cb = preprocessConditionBean(invocation); + + // - - - - - - - - - - + // Set up SQL-command + // - - - - - - - - - - + final SqlCommand cmd; + try { + long beforeCmd = 0; + if (isLogEnabled()) { + beforeCmd = System.currentTimeMillis(); + } + cmd = findSqlCommand(invocation); + if (isLogEnabled()) { + final long afterCmd = System.currentTimeMillis(); + if (beforeCmd != afterCmd) { + logSqlCommand(invocation, cmd, beforeCmd, afterCmd); + } + } + } finally { + if (isLogEnabled()) { + logInvocation(invocation); + } + } + + long before = 0; + if (isLogEnabled()) { + before = System.currentTimeMillis(); + } + + // - - - - - - - - - - + // Execute SQL-command + // - - - - - - - - - - + Object ret = null; + try { + ret = cmd.execute(invocation.getArguments()); + } catch (Exception e) { + if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) { + throw new EntityAlreadyUpdatedException( + (NotSingleRowUpdatedRuntimeException) e); + } + throw e; + } finally { + postprocessConditionBean(invocation, cb); + } + final Class retType = method.getReturnType(); + assertRetType(retType, ret); + + if (isLogEnabled()) { + final long after = System.currentTimeMillis(); + logReturn(invocation, retType, ret, before, after); + } + + // - - - - - - - - - - + // Convert and Return! + // - - - - - - - - - - + if (retType.isPrimitive()) { + return org.seasar.framework.util.NumberConversionUtil + .convertPrimitiveWrapper(retType, ret); + } else if (Number.class.isAssignableFrom(retType)) { + return org.seasar.framework.util.NumberConversionUtil + .convertNumber(retType, ret); + } else { + return ret; + } + } + + //========================================================================== + // ========= + // SqlCommand + // ========== + protected void initializeSqlCommand(MethodInvocation invocation) { + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + return;// Do nothing! + } else { + final Object[] arguments = invocation.getArguments(); + if (arguments != null && arguments.length > 0 + && arguments[0] instanceof String) { + final String methodName = (String) arguments[0]; + try { + dmd.getSqlCommand(methodName); + } catch (MethodNotFoundRuntimeException ignored) { + // Do nothing! + if (isLogEnabled()) { + log("Not Found the method: " + methodName + " msg=" + + ignored.getMessage()); + } + } + return; + } else { + String msg = "The method should have one string argument as method name: " + + invocation; + throw new IllegalStateException(msg); + } + } + } + + protected SqlCommand findSqlCommand(MethodInvocation invocation) { + final SqlCommand cmd; + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + cmd = dmd + .getSqlCommand(generateSpecifiedOutsideSqlUniqueKey(invocation)); + } else { + cmd = dmd.getSqlCommand(invocation.getMethod().getName()); + } + return cmd; + } + + protected String generateSpecifiedOutsideSqlUniqueKey( + MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + final String path = (String) args[0]; + final Object pmb = args[1]; + final OutsideSqlOption option = (OutsideSqlOption) args[2]; + Object resultTypeSpecification = null; + if (args.length > 3) { + resultTypeSpecification = args[3]; + } + return OutsideSqlContext.generateSpecifiedOutsideSqlUniqueKey( + invocation.getMethod().getName(), path, pmb, option, + resultTypeSpecification); + } + + //========================================================================== + // ========= + // Log Invocation + // ============== + protected void logInvocation(MethodInvocation invocation) { + final StackTraceElement[] stackTrace = new Exception().getStackTrace(); + final InvokeNameResult behaviorResult = extractBehaviorInvokeName(stackTrace); + + final String invokeClassName; + final String invokeMethodName; + if (!behaviorResult.isEmptyResult()) { + invokeClassName = behaviorResult.getSimpleClassName(); + invokeMethodName = behaviorResult.getMethodName(); + } else { + final Method method = invocation.getMethod(); + invokeClassName = extractInvocationExpression(method); + invokeMethodName = method.getName(); + } + final String expWithoutKakko = buildInvocationExpressionWithoutKakko( + invocation, invokeClassName, invokeMethodName); + + // Save behavior invoke name for error message. + putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()"); + + final String equalBorder = buildFitBorder("", "=", expWithoutKakko, + false); + final String invocationExpression = expWithoutKakko + "()"; + + log("/=====================================================" + + equalBorder + "=="); + log(" " + + invocationExpression); + log(" " + + equalBorder + "=/"); + + logPath(invocation, stackTrace, behaviorResult); + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (!outsideSqlContext.isProcedure()) {// [DBFlute-0.7.5] + Object[] args = invocation.getArguments(); + if (outsideSqlContext != null) { + log("path: " + outsideSqlContext.getOutsideSqlPath()); + } else { + log("path: " + getOutsideSqlPath(args)); + } + log("option: " + getOutsideSqlOption(args)); + } + } + } + + protected String buildInvocationExpressionWithoutKakko( + MethodInvocation invocation, String invokeClassName, + String invokeMethodName) { + if (invokeClassName.contains("OutsideSql") + && invokeClassName.endsWith("Executor")) { // OutsideSql + // Executor Handling + try { + final String originalName = invokeClassName; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final String tableDbName = outsideSqlContext + .getTableDbName(); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableDbName); + final String behaviorTypeName = dbmeta + .getBehaviorTypeName(); + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + + ".".length()); + invokeClassName = behaviorClassName + ".outsideSql()"; + if (originalName.endsWith("OutsideSqlEntityExecutor")) { + invokeClassName = invokeClassName + ".entityHandling()"; + } else if (originalName + .endsWith("OutsideSqlPagingExecutor")) { + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + invokeClassName = invokeClassName + ".autoPaging()"; + } else { + invokeClassName = invokeClassName + + ".manualPaging()"; + } + } else if (originalName + .endsWith("OutsideSqlCursorExecutor")) { + invokeClassName = invokeClassName + ".cursorHandling()"; + } + } else { + invokeClassName = "OutsideSql"; + } + } catch (RuntimeException ignored) { + log("Ignored exception occurred: msg=" + ignored.getMessage()); + } + } + String invocationExpressionWithoutKakko = invokeClassName + "." + + invokeMethodName; + if ("selectPage".equals(invokeMethodName)) { // Special Handling! + boolean resultTypeInteger = false; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + if (resultTypeSpecification != null + && resultTypeSpecification instanceof Class) { + final Class resultType = (Class) resultTypeSpecification; + if (Integer.class.isAssignableFrom(resultType)) { + resultTypeInteger = true; + } + } + } + if (resultTypeInteger + || "selectCount".equals(invocation.getMethod().getName())) { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():count"; + } else { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():paging"; + } + } + return invocationExpressionWithoutKakko; + } + + protected void logPath(MethodInvocation invocation, + StackTraceElement[] stackTrace, InvokeNameResult behaviorResult) { + final int bhvNextIndex = behaviorResult.getNextStartIndex(); + final InvokeNameResult clientResult = extractClientInvokeName( + stackTrace, bhvNextIndex); + final int clientFirstIndex = clientResult.getFoundFirstIndex(); + final InvokeNameResult byPassResult = extractByPassInvokeName( + stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex); + + final String clientInvokeName = clientResult.getInvokeName(); + final String byPassInvokeName = byPassResult.getInvokeName(); + final String behaviorInvokeName = behaviorResult.getInvokeName(); + if (clientInvokeName.trim().length() == 0 + && byPassInvokeName.trim().length() == 0) { + return; + } + + // Save client invoke name for error message. + if (!clientResult.isEmptyResult()) { + putObjectToMapContext("df:ClientInvokeName", clientInvokeName); + } + // Save by-pass invoke name for error message. + if (!byPassResult.isEmptyResult()) { + putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName); + } + + log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "..."); + } + + protected String buildFitBorder(String prefix, String element, + String lengthTargetString, boolean space) { + final int length = space ? lengthTargetString.length() / 2 + : lengthTargetString.length(); + final StringBuffer sb = new StringBuffer(); + sb.append(prefix); + for (int i = 0; i < length; i++) { + sb.append(element); + if (space) { + sb.append(" "); + } + } + if (space) { + sb.append(element); + } + return sb.toString(); + } + + protected InvokeNameResult extractClientInvokeName( + StackTraceElement[] stackTrace, final int startIndex) { + final List suffixList = Arrays.asList(new String[] { "Page", + "Action" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractByPassInvokeName( + StackTraceElement[] stackTrace, final int startIndex, + final int loopSize) { + final List suffixList = Arrays.asList(new String[] { "Service", + "ServiceImpl", "Facade", "FacadeImpl" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return loopSize >= 0 ? loopSize : 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractBehaviorInvokeName( + StackTraceElement[] stackTrace) { + final List suffixList = Arrays.asList(new String[] { "Bhv", + "BehaviorReadable", "BehaviorWritable", "PagingInvoker" }); + final List keywordList = Arrays.asList(new String[] { "Bhv$", + "BehaviorReadable$", "BehaviorWritable$" }); + final List ousideSql1List = Arrays + .asList(new String[] { "OutsideSql" }); + final List ousideSql2List = Arrays + .asList(new String[] { "Executor" }); + final List ousideSql3List = Arrays + .asList(new String[] { "Executor$" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + if (isClassNameEndsWith(className, suffixList)) { + return true; + } + if (isClassNameContains(className, keywordList)) { + return true; + } + if (isClassNameContains(className, ousideSql1List) + && (isClassNameEndsWith(className, ousideSql2List) || isClassNameContains( + className, ousideSql3List))) { + return true; + } + return false; + } + + public String filterSimpleClassName(String simpleClassName) { + return removeBasePrefixFromSimpleClassName(simpleClassName); + } + + public boolean isUseAdditionalInfo() { + return false; + } + + public int getStartIndex() { + return 0; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected boolean isClassNameEndsWith(String className, + List suffixList) { + for (String suffix : suffixList) { + if (className.endsWith(suffix)) { + return true; + } + } + return false; + } + + protected boolean isClassNameContains(String className, + List keywordList) { + for (String keyword : keywordList) { + if (className.contains(keyword)) { + return true; + } + } + return false; + } + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @param stackTrace Stack log. (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + protected InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource, + StackTraceElement[] stackTrace) { + final InvokeNameExtractorImpl extractor = new InvokeNameExtractorImpl(); + extractor.setStackTrace(stackTrace); + return extractor.extractInvokeName(resource); + } + + /** + * @param method The invoked method. (NotNull) + * @return The expression of invocation. (NotNull) + */ + protected String extractInvocationExpression(Method method) { + final Class declaringClass = method.getDeclaringClass(); + return removeBasePrefixFromSimpleClassName(declaringClass + .getSimpleName()); + } + + /** + * @param simpleClassName The simple class name. (NotNull) + * @return The simple class name removed the base prefix. (NotNull) + */ + protected String removeBasePrefixFromSimpleClassName(String simpleClassName) { + if (!simpleClassName.startsWith("Bs")) { + return simpleClassName; + } + final int prefixLength = "Bs".length(); + if (!Character.isUpperCase(simpleClassName.substring(prefixLength) + .charAt(0))) { + return simpleClassName; + } + if (simpleClassName.length() <= prefixLength) { + return simpleClassName; + } + return "" + simpleClassName.substring(prefixLength); + } + + //========================================================================== + // ========= + // Log SqlCommand + // ============== + protected void logSqlCommand(MethodInvocation invocation, SqlCommand cmd, + long beforeCmd, long afterCmd) { + log("SqlCommand Initialization Cost: [" + + TraceViewUtil.convertToPerformanceView(afterCmd - beforeCmd) + + "]"); + } + + protected void assertRetType(Class retType, Object ret) { + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof java.util.List)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof Entity)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } + } + + //========================================================================== + // ========= + // Log Return + // ========== + protected void logReturn( + org.aopalliance.intercept.MethodInvocation invocation, + Class retType, Object ret, long before, long after) + throws Throwable { + try { + final String daoResultPrefix = "===========/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + " - "; + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected list: null]"); + } else { + final java.util.List ls = (java.util.List) ret; + if (ls.isEmpty()) { + log(daoResultPrefix + "Selected list: 0]"); + } else if (ls.size() == 1 && ls.get(0) instanceof Number) { + log(daoResultPrefix + "Selected count: " + ls.get(0) + + "]"); + } else { + log(daoResultPrefix + "Selected list: " + ls.size() + + " first=" + ls.get(0) + "]"); + } + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (int[].class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final int[] resultArray = (int[]) ret; + if (resultArray.length == 0) { + log(daoResultPrefix + "All updated count: 0]"); + } else { + final StringBuilder sb = new StringBuilder(); + boolean resultExpressionScope = true; + int resultCount = 0; + int loopCount = 0; + for (int element : resultArray) { + resultCount = resultCount + element; + if (resultExpressionScope) { + if (loopCount <= 10) { + if (sb.length() == 0) { + sb.append(element); + } else { + sb.append(",").append(element); + } + } else { + sb.append(",").append("..."); + resultExpressionScope = false; + } + } + ++loopCount; + } + sb.insert(0, "{").append("}"); + log(daoResultPrefix + "All updated count: " + + resultCount + " result=" + sb + "]"); + } + } + } else { + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + log(daoResultPrefix + "Selected count: " + ret + "]"); + } else { + log(daoResultPrefix + "Result: " + ret + "]"); + } + } + log(" "); + } catch (Exception e) { + String msg = "Result object debug threw the exception: methodName="; + msg = msg + invocation.getMethod().getName() + " retType=" + + retType; + msg = msg + " ret=" + ret; + _log.warn(msg, e); + throw e; + } + } + + //========================================================================== + // ========= + // Pre Post Process + // ================ + // ----------------------------------------------------- + // OutsideSql + // ---------- + protected void preprocessOutsideSql(MethodInvocation invocation) { + final Class outsideSqlType = jp.sf.pal.userinfo.db.allcommon.annotation.OutsideSql.class; + final jp.sf.pal.userinfo.db.allcommon.annotation.OutsideSql outsideSql = invocation + .getMethod().getAnnotation(outsideSqlType); + + // Traditional OutsideSql + if (outsideSql != null + && (outsideSql.dynamicBinding() || outsideSql.offsetByCursor() + || outsideSql.offsetByCursor() || outsideSql + .limitByCursor())) { + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(outsideSql.dynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(outsideSql + .offsetByCursor()); + outsideSqlContext.setLimitByCursorForcedly(outsideSql + .limitByCursor()); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return; + } + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(args[0] + .getClass())) { + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) args[0]); + } + return; + } + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + if (isOutsideSqlDaoMethodSelect(invocation)) { + setupOutsideSqlContextSelect(invocation); + } else { + setupOutsideSqlContextExecute(invocation); + } + return; + } + } + + protected boolean isSpecifiedOutsideSql(MethodInvocation invocation) { + return OutsideSqlDao.class.isAssignableFrom(getTargetClass(invocation)); + } + + // - - - - - - - - - - - - + // Select + // - - - + protected boolean isOutsideSqlDaoMethodSelect(MethodInvocation invocation) { + return invocation.getMethod().getName().startsWith("select"); + } + + protected void setupOutsideSqlContextSelect(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 4) { + String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final Object resultTypeSpecification = args[3]; + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setResultTypeSpecification(resultTypeSpecification); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupOutsideSqlContextExecute(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Common + // - - - + protected String getOutsideSqlPath(Object[] args) { + return (String) args[0]; + } + + protected Object getOutsideSqlParameterBean(Object[] args) { + return args[1]; + } + + protected OutsideSqlOption getOutsideSqlOption(Object[] args) { + return (OutsideSqlOption) args[2]; + } + + protected void setupOutsideSqlFetchNarrowingBean(Object pmb, + OutsideSqlOption option) { + if (pmb == null + || !FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(pmb + .getClass())) { + return; + } + final FetchNarrowingBean fetchNarrowingBean = (FetchNarrowingBean) pmb; + if (option.isManualPaging()) { + fetchNarrowingBean.ignoreFetchNarrowing(); + } + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread(fetchNarrowingBean); + } + + // ----------------------------------------------------- + // ConditionBean + // ------------- + /** + * Pre-process conditionBean. + *

+ * If this method is condition bean select target, make dynamic SQL. Else + * nothing. + * + * @param invocation Method invocation. (NotNull) + * @return ConditionBean. (Nullable) + */ + protected ConditionBean preprocessConditionBean(MethodInvocation invocation) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (outsideSqlContext != null) { + return null; // Because it has already finished setting up + // fetchNarrowingBean for outsideSql here. + } + + final ConditionBean cb; + { + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return null; + } + final Object arg0 = args[0]; + if (arg0 == null) { + return null; + } + if (!ConditionBeanContext.isTheTypeConditionBean(arg0.getClass())) {// The + // argument + // is + // not + // condition + // - + // bean + // ... + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(arg0 + .getClass()) + && !isSelectCountIgnoreFetchScopeMethod(invocation)) { + // Fetch-narrowing-bean and Not select count! + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) arg0); + } + return null; + } + cb = (ConditionBean) arg0; + } + + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xsetupSelectCountIgnoreFetchScope(); + } else { + FetchNarrowingBeanContext.setFetchNarrowingBeanOnThread(cb); + } + + ConditionBeanContext.setConditionBeanOnThread(cb); + return cb; + } + + /** + * Post-process condition-bean. + * + * @param invocation Method invocation. (NotNull) + * @param cb Condition-bean. (Nullable) + */ + protected void postprocessConditionBean(MethodInvocation invocation, + ConditionBean cb) { + if (cb == null) { + return; + } + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xafterCareSelectCountIgnoreFetchScope(); + } + } + + // ----------------------------------------------------- + // Clear Thread Local + // ------------------ + protected void clearThreadLocal() { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + OutsideSqlContext.clearOutsideSqlContextOnThread(); + } + if (FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + // Because there is possible that fetch narrowing has been ignored + // for manualPaging of outsideSql. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread() + .restoreIgnoredFetchNarrowing(); + + FetchNarrowingBeanContext.clearFetchNarrowingBeanOnThread(); + } + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + ConditionBeanContext.clearConditionBeanOnThread(); + } + if (InternalMapContext.isExistInternalMapContextOnThread()) { + InternalMapContext.clearInternalMapContextOnThread(); + } + } + + //========================================================================== + // ========= + // Context Helper + // ============== + protected OutsideSqlContext getOutsideSqlContext() { + if (!OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + return null; + } + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + return outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql(); + } + + protected void putObjectToMapContext(String key, Object value) { + InternalMapContext.setObject(key, value); + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is select count ignore-fetch-scope method? + * + * @param invocation Method invocation. (NotNull) + * @return Determination. + */ + protected boolean isSelectCountIgnoreFetchScopeMethod( + MethodInvocation invocation) { + final String name = invocation.getMethod().getName(); + return name.startsWith("readCount") || name.startsWith("selectCount"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Is the method abstract? + * + * @param method Method. (NotNull) + * @return Determination. (NotNull) + */ + public boolean isAbstract(Method method) { + final int mod = method.getModifiers(); + return Modifier.isAbstract(mod); + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoInterceptor.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoLatestSqlProvider.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoLatestSqlProvider.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,20 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import jp.sf.pal.userinfo.db.allcommon.jdbc.LatestSqlProvider; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +/** + * The provider of latest SQL as S2Dao. This instance should be singleton. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoLatestSqlProvider implements LatestSqlProvider { + + public String getDisplaySql() { + return InternalSqlLogRegistry.peekCompleteSql(); + } + + public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoLatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataExtension.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1460 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.BehaviorSelector; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.annotation.OutsideSql; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException; +import jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException; +import jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException; +import jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.rshandler.InternalBeanArrayMetaDataResultSetHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.rshandler.InternalBeanListMetaDataResultSetHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteAutoStaticCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteBatchAutoStaticCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteQueryAutoDynamicCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalInsertAutoDynamicCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalInsertBatchAutoStaticCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalProcedureCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateAutoDynamicCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateBatchAutoStaticCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateDynamicCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateModifiedOnlyCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateQueryAutoDynamicCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.SqlCommand; +import org.seasar.dao.TableNaming; +import org.seasar.dao.dbms.DbmsManager; +import org.seasar.dao.impl.BeanMetaDataImpl; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.impl.ResultSetHandlerFactoryImpl; +import org.seasar.dao.impl.SelectDynamicCommand; +import org.seasar.dao.impl.UpdateAutoStaticCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.MethodUtil; + +/** + * The extension of DaoMetaDataImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoMetaDataExtension extends DaoMetaDataImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataExtension.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** Bean enhancer. */ + protected BeanEnhancer beanEnhancer; + + /** The factory of annotation reader. */ + protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory; + + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The selector of behavior. {Since DBFlute-0.7.1} */ + protected BehaviorSelector _behaviorSelector; + + /** The lock monitor of method initialization. */ + protected Object _methodInitializationLockMonitor = new Object(); + + /** The determination of internal debug. {Since DBFlute-0.6.2} */ + protected boolean _internalDebug; + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataExtension() { + } + + //========================================================================== + // ========= + // Initialize Override + // =================== + @Override + public void initialize() { + beanClass = daoAnnotationReader.getBeanClass(); + daoInterface = getDaoInterface(daoClass); + daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final Connection conn = getConnection();// It is first impact to + // Database! + try { + final DatabaseMetaData dbMetaData = getMetaData(conn); + dbms = DbmsManager.getDbms(getDatabaseProductName(dbMetaData)); + } finally { + close(conn); + } + this.beanMetaData = beanMetaDataFactory.createBeanMetaData( + daoInterface, beanClass); + checkSingleRowUpdateForAll = daoAnnotationReader + .isCheckSingleRowUpdate(); + + // Comment out for lazy-load! + // setupSqlCommand(); + } + + //========================================================================== + // ========= + // SqlCommand Setup Override + // ========================= + @Override + public SqlCommand getSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + synchronized (_methodInitializationLockMonitor) { + cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + if (_log.isDebugEnabled()) { + _log + .debug("...Getting sqlCommand as cache because the previous thread have already initilized."); + } + return cmd; + } + if (_log.isDebugEnabled()) { + _log.debug("...Initializing sqlCommand for " + methodName + + "()."); + } + cmd = initializeSqlCommand(methodName); + } + return cmd; + } + + protected SqlCommand initializeSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql()) { + return initializeSpecifiedOutsideSqlCommand(methodName, + outsideSqlContext); + } + } + final Method[] methods = daoBeanDesc.getMethods(methodName); + if (methods.length == 1 && MethodUtil.isAbstract(methods[0])) { + setupMethod(methods[0]); + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + throw new MethodNotFoundRuntimeException(daoClass, methodName, null); + } + + protected SqlCommand initializeSpecifiedOutsideSqlCommand( + String sqlCommandKey, OutsideSqlContext outsideSqlContext) + throws MethodNotFoundRuntimeException { + final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext + .getMethodName());// By real method name. + if (methods.length == 1 + && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) { + final Method method = methods[0]; + if (isOutsideSqlDaoMethodSelect(method)) { + setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, + outsideSqlContext); + } else if (isOutsideSqlDaoMethodCall(method)) { + setupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, + outsideSqlContext); + } else { + setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, + outsideSqlContext); + } + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey); + if (cmd != null) { + return cmd; + } + String msg = "Internal Error! The sql-command is not found:"; + msg = msg + " sqlCommandKey=" + sqlCommandKey; + msg = msg + " sqlCommands=" + sqlCommands; + throw new IllegalStateException(msg); + } + + protected boolean isOutsideSqlDaoMethodSelect(Method method) { + return method.getName().startsWith("select"); + } + + protected boolean isOutsideSqlDaoMethodCall(Method method) { + return method.getName().startsWith("call"); + } + + //========================================================================== + // ========= + // Assert Override + // =============== + @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override + protected void setupMethodByAuto(Method method) { + final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); + if (outsideSql != null) { + String msg = "This method '" + method.getName() + + "()' should use Outside Sql but the file was not found!"; + msg = msg + " Expected sql file name is '" + + method.getDeclaringClass().getSimpleName() + "_" + + method.getName() + ".sql'"; + throw new IllegalStateException(msg); + } + super.setupMethodByAuto(method); + } + + //========================================================================== + // ========= + // ConditionBean Override + // ====================== + @Override + protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. + final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); + final String[] argNames = daoAnnotationReader.getArgNames(method); + final String query = daoAnnotationReader.getQuery(method); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + final Class[] types = method.getParameterTypes(); + final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, + query); + cmd.setArgNames(argNames); + cmd.setArgTypes(types); + putSqlCommand(method.getName(), cmd); + return true; + } + + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + // For condition-bean! + protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); + return cmd; + } + + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + //========================================================================== + // ========= + // Insert and Update and Delete By Auto Override + // ============================================= + // ----------------------------------------------------- + // Insert + // ------ + @Override + protected void setupInsertMethodByAuto(final Method method) { + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand command; + if (isUpdateSignatureForBean(method)) { + final InternalInsertAutoDynamicCommand cmd = new InternalInsertAutoDynamicCommand(); + cmd.setBeanMetaData(getBeanMetaData()); + cmd.setDataSource(dataSource); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd.setPropertyNames(propertyNames); + cmd.setStatementFactory(statementFactory); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + command = cmd; + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + final InternalInsertBatchAutoStaticCommand cmd = new InternalInsertBatchAutoStaticCommand( + dataSource, statementFactory, getBeanMetaData(), + propertyNames, returningRows); + command = cmd; + } + putSqlCommand(method.getName(), command); + } + + // ----------------------------------------------------- + // Update + // ------ + @Override + protected void setupUpdateMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalUpdateQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + if (isUnlessNull(method.getName())) { + cmd = createInternalUpdateAutoDynamicCommand(method, + propertyNames); + } else if (isModifiedOnly(method.getName())) { + cmd = createInternalUpdateModifiedOnlyCommand(method, + propertyNames); + } else { + cmd = createInternalUpdateAutoStaticCommand(method, + propertyNames); + } + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalUpdateBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand( + final Method method, final String[] propertyNames) { + final UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand( + dataSource, statementFactory, beanMetaData, propertyNames); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand createInternalUpdateAutoDynamicCommand( + Method method, String[] propertyNames) { + final InternalUpdateAutoDynamicCommand cmd = newUpdateAutoDynamicCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand newUpdateAutoDynamicCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateAutoDynamicCommand(ds, sf); + } + + protected InternalUpdateModifiedOnlyCommand createInternalUpdateModifiedOnlyCommand( + final Method method, final String[] propertyNames) { + final InternalUpdateModifiedOnlyCommand cmd = newInternalUpdateModifiedOnlyCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateModifiedOnlyCommand newInternalUpdateModifiedOnlyCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateModifiedOnlyCommand(ds, sf); + } + + protected InternalUpdateBatchAutoStaticCommand createInternalUpdateBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalUpdateBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows, isUpdateVersionNoAutoIncrementOnMemory(method)) { + @Override + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Delete + // ------ + @Override + protected void setupDeleteMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalDeleteQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + cmd = createInternalDeleteAutoStaticCommand(method, propertyNames); + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalDeleteBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected InternalDeleteAutoStaticCommand createInternalDeleteAutoStaticCommand( + final Method method, final String[] propertyNames) { + final InternalDeleteAutoStaticCommand cmd = new InternalDeleteAutoStaticCommand( + dataSource, statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + return cmd; + } + + protected InternalDeleteBatchAutoStaticCommand createInternalDeleteBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalDeleteBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows) { + @Override + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Common Helper + // ------------- + protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) { + if (isNonstrictMethod(method)) { + return createNonConcurrencyBmdFactory().createBeanMetaData( + getBeanClass()); + } else { + return getBeanMetaData(); + } + } + + protected boolean isUpdateVersionNoAutoIncrementOnMemory(Method method) { + return !isNonstrictMethod(method); + } + + protected boolean isNonstrictMethod(Method method) { + return method.getName().contains("Nonstrict"); + } + + protected BeanMetaDataFactory createNonConcurrencyBmdFactory() { + final S2BeanMetaDataFactoryImpl nonConcurrencyBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + public boolean hasVersionNoPropertyType() { + return false; + } + + public boolean hasTimestampPropertyType() { + return false; + } + }; + } + }; + nonConcurrencyBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + nonConcurrencyBmdFactory + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + nonConcurrencyBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + nonConcurrencyBmdFactory.setTableNaming(this.tableNaming); + nonConcurrencyBmdFactory.setDataSource(this.dataSource); + nonConcurrencyBmdFactory + .setDaoNamingConvention(this.daoNamingConvention); + nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer); + return nonConcurrencyBmdFactory; + } + + protected boolean isFirstArgumentConditionBean(final Method method) { + final Class[] pmbTypes = method.getParameterTypes(); + return pmbTypes.length > 0 + && ConditionBean.class.isAssignableFrom(pmbTypes[0]); + } + + protected void handleBatchUpdateResultWithOptimisticLock( + PreparedStatement ps, List list, int[] result, Method method) + throws SQLException { + if (ConditionBeanContext.isOracle()) { + final int updateCount = ps.getUpdateCount(); + handleBatchUpdateResultWithOptimisticLockByUpdateCount(list, + updateCount, method); + } else { + handleBatchUpdateResultWithOptimisticLockByResult(list, result, + method); + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByUpdateCount( + List list, int updateCount, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (updateCount < 0) { + return;// for Safety! + } + final int entityCount = list.size(); + if (updateCount < entityCount) { + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " updateCount=" + updateCount; + msg = msg + " entityCount=" + entityCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(0), 0, + updateCount); + } + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByResult( + List list, Object result, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (!(result instanceof int[])) { + return;// for Safety! + } + final int[] updatedCountArray = (int[]) result; + final int entityCount = list.size(); + int index = 0; + boolean alreadyUpdated = false; + for (int oneUpdateCount : updatedCountArray) { + if (entityCount <= index) { + break;// for Safety! + } + if (oneUpdateCount == 0) { + alreadyUpdated = true; + break; + } else if (oneUpdateCount > 1) { + String msg = "The entity updated two or more records in batch update:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updatedCount=" + oneUpdateCount; + msg = msg + " allEntities=" + list; + throw new EntityDuplicatedException(msg); + } + ++index; + } + if (alreadyUpdated) { + int updateCount = 0; + for (int oneUpdateCount : updatedCountArray) { + updateCount = updateCount + oneUpdateCount; + } + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updateCount=" + updateCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(index), + 0, updateCount); + } + } + } + + //========================================================================== + // ========= + // OutsideSql Override + // =================== + // ----------------------------------------------------- + // Normal OutsideSql + // ----------------- + @Override + protected void setupSelectMethodByManual(Method method, String sql) { + final Class[] pmbTypes = method.getParameterTypes(); + final String[] argNames = this.daoAnnotationReader.getArgNames(method); + final Class[] argTypes; + if (pmbTypes != null + && pmbTypes.length > 0 + && CursorHandler.class + .isAssignableFrom(pmbTypes[pmbTypes.length - 1])) { + argTypes = new Class[pmbTypes.length - 1]; + for (int i = 0; i < pmbTypes.length - 1; i++) { + argTypes[i] = pmbTypes[i]; + } + } else { + argTypes = pmbTypes; + } + final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method); + registerSqlCommand(method.getName(), method, sql, argNames, argTypes, + myBeanMetaData); + } + + protected BeanMetaData getOutsideSqlBeanMetaData(Method method) { + final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method); + if (beanClass4SelectMethodByManual.equals(getBeanClass())) { + return getBeanMetaData(); + } + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + // - - - - - - - - - - - - + // Select + // - - - + protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + // - - - - - - - - - - - - - - - - + // Create customized BeanMetaData. + // - - - - - - - - - - - - - - - - + final Class lastestArguementType = method.getParameterTypes()[method + .getParameterTypes().length - 1]; + final ResultSetHandler myResultSetHandler; + if (Class.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // EntityHandling + // - - - - - - - - + final Class customizeEntityType = (Class) resultTypeSpecification; + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType); + if (List.class.isAssignableFrom(method.getReturnType())) { + myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + myBeanMetaData, customizeEntityType); + } else { + throw new UnsupportedOperationException( + "The return type of method is unsupported: method.getReturnType()=" + + method.getReturnType()); + // myResultSetHandler = + // createSpecifiedOutsideSqlCustomizeBeanResultSetHandler + // (myBeanMetaData, customizeEntityType); + } + } else if (CursorHandler.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // CursorHandling + // - - - - - - - - + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method); + myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData); + } else { + String msg = "The lastestArguementType is unsupported:"; + msg = msg + " lastestArguementType=" + lastestArguementType; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + + // - - - - - - - - - - - + // Register Sql-Command. + // - - - - - - - - - - - + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + myResultSetHandler); + } + + protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData( + Class clazz) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(clazz); + } + + /** + * Create the handler of result set of specified outside-sql for the list of + * customize bean. + * + * @param specifiedBeanMetaData Specified bean meta data. (NotNull) + * @param customizeEntityType The type of customize entity. (NotNull) + * @return The handler of result set. (NotNull) + */ + protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + BeanMetaData specifiedBeanMetaData, Class customizeEntityType) { + final ValueType valueType = ValueTypes + .getValueType(customizeEntityType); + if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { + return new InternalObjectListResultSetHandler(valueType); + } + final InternalRowCreator rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData); + final InternalRelationRowCreator relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData); + return new InternalBeanListMetaDataResultSetHandler( + specifiedBeanMetaData, rowCreator, relationRowCreator); + } + + protected InternalRowCreator createSpecifiedOutsideSqlInternalRowCreator( + BeanMetaData bmd) { + final Class clazz = bmd.getBeanClass(); + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createSpecifiedOutsideSqlInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); + } + + protected class InternalObjectListResultSetHandler implements + ResultSetHandler { + private ValueType valueType; + + public InternalObjectListResultSetHandler(ValueType valueType) { + this.valueType = valueType; + } + + public Object handle(ResultSet rs) throws SQLException { + final List ret = new ArrayList(); + while (rs.next()) { + ret.add(valueType.getValue(rs, 1)); + } + return ret; + } + } + + protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData( + Method method) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler( + BeanMetaData specifiedBeanMetaData) { + return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This + // is + // dummy + // for + // cursor + // handling + // ! + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + final InternalUpdateDynamicCommand cmd = new InternalUpdateDynamicCommand( + dataSource, statementFactory) { + @Override + public Object execute(Object[] args) { + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + Object arg = args[1]; + return super.execute(new Object[] { arg }); + } + }; + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + // - - - - - - - - - - - - + // Call Procedure + // - - - - - - - + protected void setupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final Object pmb = outsideSqlContext.getParameterBean(); + final String procedureName = outsideSqlContext.getOutsideSqlPath(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final InternalProcedureMetaDataFactory factory = createInternalProcedureMetaDataFactory(); + factory.setValueTypeFactory(valueTypeFactory); + final Class pmbType = pmb != null ? pmb.getClass() : null; + final InternalProcedureMetaData metaData = factory + .createProcedureMetaData(procedureName, pmbType); + final InternalProcedureCommand cmd = createInternalProcedureCommand( + method, metaData); + putSqlCommand(sqlCommandKey, cmd); + } + + protected InternalProcedureMetaDataFactory createInternalProcedureMetaDataFactory() { + return new InternalProcedureMetaDataFactory(); + } + + protected InternalProcedureCommand createInternalProcedureCommand( + Method method, InternalProcedureMetaData metaData) { + final ResultSetHandler resultSetHandler = createResultSetHandler(method); + return new InternalProcedureCommand(dataSource, resultSetHandler, + statementFactory, metaData); + } + + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() { + final S2BeanMetaDataFactoryImpl originalBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return newOutsideSqlCustomizeBeanMetaDataImpl(); + } + }; + originalBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + originalBmdFactory + .setPropertyTypeFactoryBuilder(createOutsideSqlPropertyTypeFactoryBuilder()); + originalBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + originalBmdFactory.setTableNaming(this.tableNaming); + originalBmdFactory.setDataSource(this.dataSource); + originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention); + originalBmdFactory.setBeanEnhancer(this.beanEnhancer); + return originalBmdFactory; + } + + protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() { + return new OutsideSqlCustomizeBeanMetaDataImpl(); + } + + protected static class OutsideSqlCustomizeBeanMetaDataImpl extends + BeanMetaDataImpl { + // Though nothing to override, it uses original class just in case. + } + + protected S2DaoPropertyTypeFactoryBuilderExtension createOutsideSqlPropertyTypeFactoryBuilder() { + final S2DaoPropertyTypeFactoryBuilderExtension impl = new S2DaoPropertyTypeFactoryBuilderExtension(); + if (columnNaming == null) { + String msg = "Internal Error! The columnNaming should not be null! {Failed to Injection!}"; + throw new IllegalStateException(msg); + } + impl.setColumnNaming(columnNaming); + impl.setValueTypeFactory(valueTypeFactory); + return impl; + } + + protected Class getOutsideSqlDefaultBeanClass(Method method) { + final Class retType = method.getReturnType(); + if (java.util.List.class.isAssignableFrom(retType)) { + final Class elementType = InternalMethodUtil + .getElementTypeOfListFromReturnMethod(method); + if (elementType != null) { + return elementType; + } else { + return getBeanClass(); + } + } else if (retType.isArray()) { + return retType.getComponentType(); + } else if (retType.isPrimitive() + || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) { + return getBeanClass(); + } else { + return retType; + } + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + BeanMetaData myBeanMetaData) { + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + createResultSetHandler(myBeanMetaData, method)); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + ResultSetHandler myResultSetHandler) { + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(myResultSetHandler); + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + S2DaoSelectDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + InternalUpdateDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + //========================================================================== + // ========= + // Common Handlnig + // =============== + @Override + protected void putSqlCommand(String methodName, SqlCommand cmd) { + sqlCommands.put(methodName, cmd); + } + + protected boolean isCheckSingleRowUpdate(Method method) { + return checkSingleRowUpdateForAll + & daoAnnotationReader.isCheckSingleRowUpdate(method); + } + + //========================================================================== + // ========= + // Customize SelectDynamicCommand Creation + // ======================================= + /** + * Create the customize select dynamic command that is for all select SQL on + * DBFlute. + * + * @param handler The handler of result set. (NotNull) + * @return The customize select dynamic command. (NotNull) + */ + protected S2DaoSelectDynamicCommand createCustomizeSelectDynamicCommand( + ResultSetHandler handler) { + return new S2DaoSelectDynamicCommand(dataSource, statementFactory, + handler); + } + + //========================================================================== + // ========= + // ResultSetHandler Override + // ========================= + @Override + protected ResultSetHandler createResultSetHandler(Method method) { + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, beanMetaData, method); + } + + protected ResultSetHandler createResultSetHandler( + BeanMetaData specifiedBeanMetaData, Method method) {// For specified + // BeanMetaData + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, specifiedBeanMetaData, method); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected DatabaseMetaData getMetaData(Connection conn) { + try { + return conn.getMetaData(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected String getDatabaseProductName(DatabaseMetaData dbMetaData) { + try { + return dbMetaData.getDatabaseProductName(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Exception Handlnig + // ================== + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // ResultSetHandlerFactoryImpl Extension + // ===================================== + public static class ResultSetHandlerFactoryExtension extends + ResultSetHandlerFactoryImpl { + public ResultSetHandlerFactoryExtension() { + super(); + } + + @Override + protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25) + return createInternalRowCreator(null); + } + + @Override + protected RelationRowCreator createRelationRowCreator() { + return createInternalRelationRowCreator(null); + } + + @Override + protected ResultSetHandler createBeanListMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanListMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + @Override + protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanArrayMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + protected InternalRowCreator createInternalRowCreator(BeanMetaData bmd) { + final Class clazz = bmd != null ? bmd.getBeanClass() : null; + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); // Not yet implemented + // about performance + // tuning! + } + } + + //========================================================================== + // ========= + // Vert Internal + // ============= + protected static class InternalMethodUtil { + public static Class getElementTypeOfListFromReturnMethod(Method method) { + return InternalReflectionUtil + .getElementTypeOfListFromReturnType(method); + } + } + + protected static class InternalReflectionUtil { + public static Class getElementTypeOfList(final Type parameterizedList) { + if (!(parameterizedList instanceof ParameterizedType)) { + return null; + } + final ParameterizedType parameterizedType = ParameterizedType.class + .cast(parameterizedList); + final Type rawType = parameterizedType.getRawType(); + if (!(rawType instanceof Class)) { + return null; + } + final Class rawClass = Class.class.cast(rawType); + if (!rawClass.isAssignableFrom(List.class)) { + return null; + } + final Type[] actualTypeArgument = parameterizedType + .getActualTypeArguments(); + if (actualTypeArgument == null || actualTypeArgument.length != 1) { + return null; + } + if (!(actualTypeArgument[0] instanceof Class)) { + return null; + } + return Class.class.cast(actualTypeArgument[0]); + } + + public static Class getElementTypeOfListFromParameterType( + final Method method, final int parameterPosition) { + final Type[] pmbTypes = method.getGenericParameterTypes(); + return getElementTypeOfList(pmbTypes[parameterPosition]); + } + + public static Class getElementTypeOfListFromReturnType( + final Method method) { + return getElementTypeOfList(method.getGenericReturnType()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Sql File Encoding + // ----------------- + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + // ----------------------------------------------------- + // Bean Enhancer + // ------------- + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Annotation Reader Factory + // ------------------------- + public void setAnnotationReaderFactory( + org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + public BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + public void setBehaviorSelector(final BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(final boolean internalDebug) { + this._internalDebug = internalDebug; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,655 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import jp.sf.pal.userinfo.db.allcommon.DBFluteConfig; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +import org.seasar.dao.AnnotationReaderFactory; +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.DaoAnnotationReader; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.DaoNamingConvention; +import org.seasar.dao.DtoMetaDataFactory; +import org.seasar.dao.ProcedureMetaDataFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.ResultSetHandlerFactory; +import org.seasar.dao.TableNaming; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.pager.PagingSqlRewriter; +import org.seasar.extension.jdbc.ResultSetFactory; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.Disposable; +import org.seasar.framework.util.DisposableUtil; + +/** + * The implementation of DaoMetaDataFactory for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoMetaDataFactoryImpl implements DaoMetaDataFactory, Disposable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataFactoryImpl.class); + + // ----------------------------------------------------- + // For Logging + // ----------- + /** The binding annotation for xaDataSource. {bindingType=may} */ + public static final String xaDataSource_BINDING = "bindingType=may"; + + // ----------------------------------------------------- + // Factory Basic + // ------------- + public static final String dataSource_BINDING = "bindingType=must"; + + public static final String annotationReaderFactory_BINDING = "bindingType=must"; + + public static final String valueTypeFactory_BINDING = "bindingType=must"; + + public static final String beanMetaDataFactory_BINDING = "bindingType=must"; + + public static final String daoNamingConvention_BINDING = "bindingType=must"; + + public static final String resultSetHandlerFactory_BINDING = "bindingType=must"; + + public static final String dtoMetaDataFactory_BINDING = "bindingType=must"; + + public static final String procedureMetaDataFactory_BINDING = "bindingType=must"; + + public static final String pagingSQLRewriter_BINDING = "bindingType=may"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Factory Basic + // ------------- + protected DataSource dataSource; + + protected AnnotationReaderFactory annotationReaderFactory; + + protected ValueTypeFactory valueTypeFactory; + + protected BeanMetaDataFactory beanMetaDataFactory; + + protected DaoNamingConvention daoNamingConvention; + + protected ResultSetHandlerFactory resultSetHandlerFactory; + + protected DtoMetaDataFactory dtoMetaDataFactory; + + protected ProcedureMetaDataFactory procedureMetaDataFactory; + + protected PagingSqlRewriter pagingSqlRewriter; + + protected Map daoMetaDataCache = new HashMap(); + + protected boolean initialized; + + protected boolean useDaoClassForLog; + + protected String sqlFileEncoding; + + protected BeanEnhancer beanEnhancer; + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The lock monitor of DAO meta data initialization. */ + protected Object _daoMetaDataInitializationLockMonitor = new Object(); + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataFactoryImpl(DataSource dataSource, + AnnotationReaderFactory annotationReaderFactory, + XADataSource xaDataSource) { + this.dataSource = dataSource; + this.annotationReaderFactory = annotationReaderFactory; + + _log + .info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}"); + showInformation(dataSource, xaDataSource); + + // Stop the LinkageError! + ConditionBeanContext.initialize(); + + initializeDatabaseProductNameOfContext(xaDataSource); + + handleSqlLogRegistry(); + + DBFluteConfig.getInstance().lock(); + _log.info("* * * * */"); + } + + protected void showInformation(javax.sql.DataSource dataSource, + javax.sql.XADataSource xaDataSource) { + final StringBuilder sb = new StringBuilder(); + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + final String url = xaDataSourceImpl.getURL(); + final String user = xaDataSourceImpl.getUser(); + sb.append(" [XADataSource]:").append(getLineSeparator()); + sb.append(" driver = " + driverClassName).append( + getLineSeparator()); + sb.append(" url = " + url).append(getLineSeparator()); + sb.append(" user = " + user); + } + _log.info("{Injection Information}" + getLineSeparator() + sb); + } + + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + + // ----------------------------------------------------- + // Database Product Name + // --------------------- + protected void initializeDatabaseProductNameOfContext( + javax.sql.XADataSource xaDataSource) { + if (getDatabaseProductNameFromContext() != null) { + return; + } + + // From JDBC Driver! + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + if (driverClassName != null) { + if (setupDatabaseProductNameByDriverClassName(driverClassName)) { + _log + .info("...Initializing database product name from driverClassName: " + + getDatabaseProductNameFromContext()); + return; + } + } + } + + _log.info("...Initializing database product name as default: H2"); + setDatabaseProductNameToContext("H2"); + } + + protected String getDatabaseProductNameFromContext() { + return ConditionBeanContext.getDatabaseProductName(); + } + + protected void setDatabaseProductNameToContext(String name) { + ConditionBeanContext.setDatabaseProductName(name); + } + + protected boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + return ConditionBeanContext + .setupDatabaseProductNameByDriverClassName(driverClassName); + } + + //========================================================================== + // ========= + // Implementation + // ============== + @SuppressWarnings("unchecked") + public DaoMetaData getDaoMetaData(final Class daoClass) { + if (!initialized) { + DisposableUtil.add(this); + initialized = true; + } + final String key = daoClass.getName(); + + // [A] + DaoMetaData dmd = getSynchronizedDaoMetaDataCache(key); + + // [B] + if (dmd != null) { + return dmd; + } + + // [C] + synchronized (_daoMetaDataInitializationLockMonitor) {// One Thread Only + // Entered + // [D] + dmd = getSynchronizedDaoMetaDataCache(key); + // [E] + if (dmd != null) { + // The second thread that stops at [C] can find + // because the first thread have already initialized. + if (_log.isDebugEnabled()) { + _log + .debug("...Getting daoMetaData as cache because the previous thread have already initilized."); + } + return dmd; + } + // [F] + if (_log.isDebugEnabled()) { + _log.debug("...Creating daoMetaData for " + + daoClass.getSimpleName() + "."); + } + final DaoMetaData dmdi = createDaoMetaData(daoClass); + putSynchronizedDaoMetaDataCache(key, dmdi); + } + // [G] + dmd = getSynchronizedDaoMetaDataCache(key); + if (dmd != null) { + return dmd; + } + String msg = "The cache should have data meta data here: key=" + key + + " cache=" + daoMetaDataCache; + throw new IllegalStateException(msg); + } + + @SuppressWarnings("unchecked") + protected void putSynchronizedDaoMetaDataCache(String key, DaoMetaData dmd) { + synchronized (daoMetaDataCache) { + daoMetaDataCache.put(key, dmd); + } + } + + protected DaoMetaData getSynchronizedDaoMetaDataCache(String key) { + DaoMetaData dmd = null; + synchronized (daoMetaDataCache) { + dmd = (DaoMetaData) daoMetaDataCache.get(key); + } + return dmd; + } + + //========================================================================== + // ========= + // DataMetaData Creation + // ===================== + protected DaoMetaData createDaoMetaData(final Class daoClass) { + final BeanDesc daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final DaoAnnotationReader daoAnnotationReader = annotationReaderFactory + .createDaoAnnotationReader(daoBeanDesc); + + final DaoMetaDataImpl daoMetaData = createDaoMetaDataExtension(); + daoMetaData.setDaoClass(daoClass); + daoMetaData.setDataSource(dataSource); + daoMetaData.setStatementFactory(createCustomizeStatememtFactory()); + daoMetaData.setResultSetFactory(createCustomizeResultSetFactory()); + daoMetaData.setValueTypeFactory(valueTypeFactory); + daoMetaData.setBeanMetaDataFactory(getBeanMetaDataFactory()); + daoMetaData.setDaoNamingConvention(getDaoNamingConvention()); + daoMetaData.setUseDaoClassForLog(useDaoClassForLog); + daoMetaData.setDaoAnnotationReader(daoAnnotationReader); + daoMetaData.setProcedureMetaDataFactory(procedureMetaDataFactory); + daoMetaData.setDtoMetaDataFactory(dtoMetaDataFactory); + daoMetaData.setResultSetHandlerFactory(resultSetHandlerFactory); + if (sqlFileEncoding != null) { + daoMetaData.setSqlFileEncoding(sqlFileEncoding); + } + if (pagingSqlRewriter != null) { + daoMetaData.setPagingSQLRewriter(pagingSqlRewriter); + } + daoMetaData.initialize(); + return daoMetaData; + } + + protected S2DaoMetaDataExtension createDaoMetaDataExtension() { + final S2DaoMetaDataExtension dmdExtension = newDaoMetaDataExtension(); + dmdExtension.setBeanEnhancer(beanEnhancer); + dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory); + dmdExtension.setColumnNaming(this.columnNaming); + dmdExtension + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + dmdExtension + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + dmdExtension.setTableNaming(tableNaming); + dmdExtension.setInternalDebug(DBFluteConfig.getInstance() + .isInternalDebug()); + return dmdExtension; + } + + protected S2DaoMetaDataExtension newDaoMetaDataExtension() { + return new S2DaoMetaDataExtension(); + } + + //========================================================================== + // ========= + // Result Set Factory + // ================== + /** + * Create the customize result set factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected ResultSetFactory createCustomizeResultSetFactory() { + return new FetchNarrowingResultSetFactory(); + } + + //========================================================================== + // ========= + // Statement Factory + // ================= + /** + * Create the customize statement factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected StatementFactory createCustomizeStatememtFactory() { + final StatementConfig defaultStatementConfig = DBFluteConfig + .getInstance().getDefaultStatementConfig(); + final boolean internalDebug = DBFluteConfig.getInstance() + .isInternalDebug(); + return new StatementFactory() { + public PreparedStatement createPreparedStatement(Connection con, + String sql) { + try { + final StatementConfig config = findStatementConfigOnThread(); + ; + final int resultSetType; + if (config != null && config.hasResultSetType()) { + resultSetType = config.getResultSetType(); + } else if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + resultSetType = defaultStatementConfig + .getResultSetType(); + } else { + resultSetType = java.sql.ResultSet.TYPE_FORWARD_ONLY; + } + final int resultSetConcurrency = java.sql.ResultSet.CONCUR_READ_ONLY; + if (internalDebug) { + _log.debug("...Creating prepareStatement(sql, " + + resultSetType + ", " + resultSetConcurrency + + ")"); + } + final PreparedStatement ps = con.prepareStatement(sql, + resultSetType, resultSetConcurrency); + if (config != null && config.hasStatementOptions()) { + if (internalDebug) { + _log + .debug("...Setting statement config as request: " + + config); + } + reflectStatementOptions(config, ps); + } else { + reflectDefaultOptionsToStatementIfNeeds(ps); + } + return ps; + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + public CallableStatement createCallableStatement(Connection conn, + String sql) { + return prepareCall(conn, sql); + } + + protected StatementConfig findStatementConfigOnThread() { + final StatementConfig config; + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + config = cb.getStatementConfig(); + } else if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + config = context.getStatementConfig(); + } else { + config = null; + } + return config; + } + + protected void reflectDefaultOptionsToStatementIfNeeds( + PreparedStatement ps) { + if (defaultStatementConfig != null + && defaultStatementConfig.hasStatementOptions()) { + if (internalDebug) { + _log.debug("...Setting statement config as default: " + + defaultStatementConfig); + } + reflectStatementOptions(defaultStatementConfig, ps); + return; + } + } + + protected void reflectStatementOptions(StatementConfig config, + PreparedStatement ps) { + try { + if (config.hasQueryTimeout()) { + ps.setQueryTimeout(config.getQueryTimeout()); + } + if (config.hasFetchSize()) { + ps.setFetchSize(config.getFetchSize()); + } + if (config.hasMaxRows()) { + ps.setMaxRows(config.getMaxRows()); + } + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + + protected CallableStatement prepareCall(Connection conn, String sql) { + try { + return conn.prepareCall(sql); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, + Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + }; + } + + //========================================================================== + // ========= + // Dispose + // ======= + public synchronized void dispose() { + daoMetaDataCache.clear(); + initialized = false; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return System.getProperty("line.separator"); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Factory Basic + // ------------- + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected BeanMetaDataFactory getBeanMetaDataFactory() { + return beanMetaDataFactory; + } + + public void setBeanMetaDataFactory( + final BeanMetaDataFactory beanMetaDataFactory) { + this.beanMetaDataFactory = beanMetaDataFactory; + } + + public DaoNamingConvention getDaoNamingConvention() { + return daoNamingConvention; + } + + public void setDaoNamingConvention( + final DaoNamingConvention daoNamingConvention) { + this.daoNamingConvention = daoNamingConvention; + } + + public void setAnnotationReaderFactory( + final AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + public void setDataSource(final DataSource dataSource) { + this.dataSource = dataSource; + } + + public void setUseDaoClassForLog(final boolean userDaoClassForLog) { + useDaoClassForLog = userDaoClassForLog; + } + + public void setResultSetHandlerFactory( + final ResultSetHandlerFactory resultSetHandlerFactory) { + this.resultSetHandlerFactory = resultSetHandlerFactory; + } + + public void setDtoMetaDataFactory( + final DtoMetaDataFactory dtoMetaDataFactory) { + this.dtoMetaDataFactory = dtoMetaDataFactory; + } + + public void setProcedureMetaDataFactory( + ProcedureMetaDataFactory procedureMetaDataFactory) { + this.procedureMetaDataFactory = procedureMetaDataFactory; + } + + public void setPagingSQLRewriter(final PagingSqlRewriter pagingSqlRewriter) { + this.pagingSqlRewriter = pagingSqlRewriter; + } + + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + public void setSqlFileEncoding(final String encoding) { + sqlFileEncoding = encoding; + } + + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,215 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanAnnotationReader; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.Dbms; +import org.seasar.dao.PropertyTypeFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.AbstractPropertyTypeFactory; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; + +/** + * The factory builder of property type for S2Dao. {Since S2Dao-1.0.47} + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoPropertyTypeFactoryBuilderExtension implements + PropertyTypeFactoryBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected ColumnNaming columnNaming; + + //========================================================================== + // ========= + // Build + // ===== + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming); + } + + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader, Dbms dbms, + DatabaseMetaData databaseMetaData) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming, dbms); + } + + //========================================================================== + // ========= + // Extension Class + // =============== + protected static class FastPropertyTypeFactoryExtension extends + AbstractPropertyTypeFactory { + + protected DBMeta _dbmeta; + + protected String[] _noPersisteneProps; + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming); + initializeResources(); + } + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming, + Dbms dbms) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming, dbms); + initializeResources(); + } + + protected void initializeResources() { + if (isEntity()) { + _dbmeta = findDBMeta(); + } + _noPersisteneProps = beanAnnotationReader.getNoPersisteneProps(); + } + + protected boolean isEntity() { + return Entity.class.isAssignableFrom(beanClass); + } + + protected boolean hasDBMeta() { + return _dbmeta != null; + } + + protected DBMeta findDBMeta() { + try { + final Entity entity = (Entity) beanClass.newInstance(); + return entity.getDBMeta(); + } catch (Exception e) { + String msg = "beanClass.newInstance() threw the exception: beanClass=" + + beanClass; + throw new RuntimeException(msg, e); + } + } + + public PropertyType[] createBeanPropertyTypes(String tableName) { + final List list = new ArrayList(); + final BeanDesc beanDesc = getBeanDesc(); + for (int i = 0; i < beanDesc.getPropertyDescSize(); ++i) { + final PropertyDesc pd = beanDesc.getPropertyDesc(i); + + // Read-only property is unnecessary! + if (!pd.hasWriteMethod()) { + continue; + } + + // Relation property is unnecessary! + if (isRelation(pd)) { + continue; + } + + final PropertyType pt = createPropertyType(pd); + pt.setPrimaryKey(isPrimaryKey(pd)); + pt.setPersistent(isPersistent(pt)); + list.add(pt); + } + return list.toArray(new PropertyType[list.size()]); + } + + @Override + protected boolean isRelation(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() + && (_dbmeta.hasForeign(propertyName) || _dbmeta + .hasReferrer(propertyName))) { + return true; + } + return hasRelationNoAnnotation(propertyDesc); + } + + protected boolean hasRelationNoAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.hasRelationNo(propertyDesc); + } + + @Override + protected boolean isPrimaryKey(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() && _dbmeta.hasPrimaryKey() + && _dbmeta.hasColumn(propertyName)) { + if (_dbmeta.findColumnInfo(propertyName).isPrimary()) { + return true; + } + } + return hasIdAnnotation(propertyDesc); + } + + protected boolean hasIdAnnotation(PropertyDesc propertyDesc) { + final Dbms dbms = getDbms(); + return beanAnnotationReader.getId(propertyDesc, dbms) != null; + } + + @Override + protected boolean isPersistent(PropertyType propertyType) { + final String propertyName = propertyType.getPropertyName(); + final PropertyDesc propertyDesc = propertyType.getPropertyDesc(); + if ((hasDBMeta() && _dbmeta.hasColumn(propertyName)) + || hasColumnAnnotation(propertyDesc)) { + if (!isElementOfNoPersistentProps(propertyDesc)) { + return true; + } + } + return false; + } + + protected boolean hasColumnAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.getColumnAnnotation(propertyDesc) != null; + } + + protected boolean isElementOfNoPersistentProps(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + final String[] props = _noPersisteneProps; + if (props != null && props.length >= 0) { + for (int i = 0; i < props.length; ++i) { + if (props[i].equals(propertyName)) { + return true; + } + } + } + return false; + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ValueTypeFactory getValueTypeFactory() { + return valueTypeFactory; + } + + public void setValueTypeFactory(ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,491 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand.InternalAbstractDynamicCommand; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalBasicSelectHandler; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * SelectDynamicCommand for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoSelectDynamicCommand extends InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The handler of resultSet. */ + protected ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param dataSource Data source. + * @param statementFactory The factory of statement. + * @param resultSetHandler The handler of resultSet. + */ + public S2DaoSelectDynamicCommand(DataSource dataSource, + StatementFactory statementFactory, ResultSetHandler resultSetHandler) { + super(dataSource, statementFactory); + this.resultSetHandler = resultSetHandler; + } + + //========================================================================== + // ========= + // Very Important Extension + // ======================== + // ----------------------------------------------------- + // SelectDynamicCommand Creation + // ----------------------------- + protected S2DaoSelectDynamicCommand createMySelectDynamicCommand() { + return new S2DaoSelectDynamicCommand(getDataSource(), + getStatementFactory(), resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + // ----------------------------------------------------- + // Top Execute + // ----------- + /** + * @param args The array of argument. (Nullable) + * @return The object of execution result. (Nullable) + */ + public Object execute(Object[] args) { + // - - - - - - - - - - - - + // This is top execution. + // - - - - - - - - - - - - + + if (!ConditionBeanContext.isExistConditionBeanOnThread()) { + // - - - - - - - - - - + // Execute outsideSql. + // - - - - - - - - - - + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isDynamicBinding()) { + return executeOutsideSqlAsDynamic(args, outsideSqlContext); + } else { + return executeOutsideSqlAsStatic(args, outsideSqlContext); + } + } + + // - - - - - - - - - + // Execute default. + // - - - - - - - - - + return executeDefault(args); + } + + // - - - - - - - - - - - - + // Execute conditionBean. + // - - - - - - - - - - - - + final List bindVariableList = new ArrayList(4); + final List bindVariableTypeList = new ArrayList(4); + + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String finalClause; + if (cb.hasUnionQueryOrUnionAllQuery()) { + final String realClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + if (cb.isSelectCountIgnoreFetchScope()) { + // If the query uses union and it selects count, the way of + // select-count is as follows. + finalClause = "select count(*) from (" + realClause + + ") dfmain"; + } else { + finalClause = realClause; + } + } else { + if (cb.isSelectCountIgnoreFetchScope()) { + finalClause = setupRealSelectCountClause(args, + bindVariableList, bindVariableTypeList); + } else { + finalClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + } + } + + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + finalClause, this.resultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + // ----------------------------------------------------- + // Default Execute + // --------------- + /** + * Execute default. + * + * @param args The array of argument. (Nullable) + * @return Result. (Nullable) + */ + protected Object executeDefault(Object args[]) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs = filterArgumentsForResultSetHandler(args); + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + // ----------------------------------------------------- + // OutsideSql Execute + // ------------------ + /** + * Execute outsideSql as static. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsStatic(Object[] args, + OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + /** + * Execute outsideSql as Dynamic. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsDynamic(Object[] args, + OutsideSqlContext outsideSqlContext) { + final Object firstArg; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + firstArg = parameterBean; + } else { + firstArg = args[0]; + } + String filteredSql = getSql(); + if (firstArg != null) { + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(firstArg + .getClass()); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + // Resolve embedded comment for parsing bind variable comment in + // embedded comment. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + for (int i = 0; i < beanDesc.getPropertyDescSize(); i++) { + final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(i); + final Class propertyType = propertyDesc.getPropertyType(); + if (!propertyType.equals(String.class)) { + continue; + } + final String outsideSqlPiece = (String) propertyDesc + .getValue(firstArg); + if (outsideSqlPiece == null) { + continue; + } + final String embeddedComment = "/*$pmb." + + propertyDesc.getPropertyName() + "*/"; + filteredSql = replaceString(filteredSql, embeddedComment, + outsideSqlPiece); + } + } + final S2DaoSelectDynamicCommand outsideSqlCommand = createMySelectDynamicCommand(); + if (outsideSqlContext.isSpecifiedOutsideSql()) { + outsideSqlCommand.setArgNames(new String[] { "pmb" }); + outsideSqlCommand + .setArgTypes(new Class[] { firstArg != null ? firstArg + .getClass() : Object.class }); + } else { + outsideSqlCommand.setArgNames(getArgNames()); + outsideSqlCommand.setArgTypes(getArgTypes()); + } + outsideSqlCommand.setSql(filteredSql); + + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = outsideSqlCommand + .apply(filteredArgs); + final java.util.List bindVariableList = new java.util.ArrayList(); + final java.util.List bindVariableTypeList = new java.util.ArrayList(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + protected Object[] filterArgumentsForResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return args; + } + final Object[] filteredArgs; + if (args[args.length - 1] instanceof jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler) { + filteredArgs = new Object[args.length - 1]; + for (int i = 0; i < args.length - 1; i++) { + filteredArgs[i] = args[i]; + } + } else { + filteredArgs = args; + } + return filteredArgs; + } + + protected ResultSetHandler findSpecifiedResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return this.resultSetHandler; + } + if (args[args.length - 1] instanceof jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler) { + final jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler cursorHandler = (jp.sf.pal.userinfo.db.allcommon.jdbc.CursorHandler) args[args.length - 1]; + return new ResultSetHandler() { + public Object handle(java.sql.ResultSet rs) + throws java.sql.SQLException { + return cursorHandler.handle(rs); + } + }; + } + if (getArgTypes().length + 1 == args.length + && args[args.length - 1] == null) { + String msg = "System Level Exception!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The size of arg types have not been same as the size of arg objects:"; + msg = msg + " argTypes=" + getArgTypes().length + " args=" + + args.length + getLineSeparator(); + msg = msg + + "If the arguments contain ResultSetHandler, the argument value should not be null!" + + getLineSeparator(); + for (int i = 0; i < args.length - 1; i++) { + msg = msg + " args[" + i + "] -- " + args[i] + + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + return this.resultSetHandler; + } + + // ----------------------------------------------------- + // Setup Clause + // ------------ + protected String setupRealClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realClause; + { + final S2DaoSelectDynamicCommand dynamicCommand = createMySelectDynamicCommand(); + dynamicCommand.setArgNames(getArgNames()); + dynamicCommand.setArgTypes(getArgTypes()); + if (cb.isLimitSelect_PKOnly()) { + dynamicCommand.setSql(cb.getSqlClause().getClausePKOnly()); + } else { + dynamicCommand.setSql(cb.getSqlClause().getClause()); + } + final CommandContext ctx = dynamicCommand.apply(args); + realClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realClause; + } + + protected String setupRealSelectCountClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realSelectCountClause; + { + final S2DaoSelectDynamicCommand selectCountCommand = createMySelectDynamicCommand(); + selectCountCommand.setArgNames(getArgNames()); + selectCountCommand.setArgTypes(getArgTypes()); + final String selectClause = "select count(*)"; + String fromWhereClause = cb.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + final String sql = cb.getSqlClause().filterSubQueryIndent( + selectClause + " " + fromWhereClause); + selectCountCommand.setSql(sql); + + final CommandContext ctx = selectCountCommand.apply(args); + realSelectCountClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realSelectCountClause; + } + + protected InternalBasicSelectHandler createBasicSelectHandler( + String realSql, ResultSetHandler specifiedResultSetHandler) { + return newBasicSelectHandler(realSql, specifiedResultSetHandler, + getStatementFactory()); + } + + protected InternalBasicSelectHandler newBasicSelectHandler(String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + return new InternalBasicSelectHandler(getDataSource(), sql, + resultSetHandler, statementFactory) { + @Override + protected void bindArgs(java.sql.PreparedStatement ps, + Object[] args, Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + final ValueType valueType = findValueType(argTypes[i], + args[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (java.sql.SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected ValueType findValueType(Class argType, Object arg) { + ValueType valueType = ValueTypes.getValueType(arg); + if (valueType != null) { + return valueType; + } + valueType = ValueTypes.getValueType(argType); + if (valueType != null) { + return valueType; + } + String msg = "Unknown type¡§argType=" + argType + " args=" + arg; + throw new IllegalStateException(msg); + } + }; + } + + // ----------------------------------------------------- + // Setup Helper + // ------------ + protected Class[] toClassArray(List bindVariableTypeList) { + final Class[] bindVariableTypesArray = new Class[bindVariableTypeList + .size()]; + for (int i = 0; i < bindVariableTypeList.size(); i++) { + final Class bindVariableType = (Class) bindVariableTypeList.get(i); + bindVariableTypesArray[i] = bindVariableType; + } + return bindVariableTypesArray; + } + + protected void addBindVariableInfo(CommandContext ctx, + List bindVariableList, List bindVariableTypeList) { + final Object[] bindVariables = ctx.getBindVariables(); + addBindVariableList(bindVariableList, bindVariables); + final Class[] bindVariableTypes = ctx.getBindVariableTypes(); + addBindVariableTypeList(bindVariableTypeList, bindVariableTypes); + } + + protected void addBindVariableList(List bindVariableList, + Object[] bindVariables) { + for (int i = 0; i < bindVariables.length; i++) { + bindVariableList.add(bindVariables[i]); + } + } + + protected void addBindVariableTypeList(List bindVariableTypeList, + Class[] bindVariableTypes) { + for (int i = 0; i < bindVariableTypes.length; i++) { + bindVariableTypeList.add(bindVariableTypes[i]); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,130 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractBeanMetaDataResultSetHandler extends + InternalAbstractDtoMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + protected RelationRowCreator relationRowCreator; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalAbstractBeanMetaDataResultSetHandler( + BeanMetaData beanMetaData, RowCreator rowCreator, + RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator); + this.beanMetaData = beanMetaData; + this.relationRowCreator = relationRowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + return rowCreator.createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + final Class beanClass = beanMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of relation property cache. Map{String(relationNoSuffix), + * Map{String(columnName), PropertyType}} (NotNull) + * @throws SQLException + */ + protected Map createRelationPropertyCache(Set columnNames) + throws SQLException { + return relationRowCreator + .createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param rpt The type of relation property. (NotNull) + * @param columnNames The set of column name. (NotNull) + * @param relKeyValues The map of rel key values. (Nullable) + * @param relationPropertyCache The map of relation property cache. + * Map{String(relationNoSuffix), Map{String(columnName), + * PropertyType}} (NotNull) + * @return Created relation row. (Nullable) + * @throws SQLException + */ + protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt, + Set columnNames, Map relKeyValues, Map relationPropertyCache) + throws SQLException { + return relationRowCreator.createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + } + + /** + * @param row The row of result list. (NotNull) + */ + protected void postCreateRow(final Object row) { + if (row instanceof Entity) { // DBFlute Target + ((Entity) row).clearModifiedPropertyNames(); + } else { // Basically Unreachable + final BeanMetaData bmd = getBeanMetaData(); + final Set names = bmd.getModifiedPropertyNames(row); + names.clear(); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,89 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import org.seasar.dao.DtoMetaData; +import org.seasar.dao.RowCreator; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.framework.util.CaseInsensitiveSet; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractDtoMetaDataResultSetHandler implements + ResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DtoMetaData dtoMetaData; + + protected RowCreator rowCreator; // [DAO-118] (2007/08/25) + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param dtoMetaData Dto meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + */ + public InternalAbstractDtoMetaDataResultSetHandler(DtoMetaData dtoMetaData, + RowCreator rowCreator) { + this.dtoMetaData = dtoMetaData; + this.rowCreator = rowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + return rowCreator.createPropertyCache(columnNames, dtoMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + final Class beanClass = dtoMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + protected Set createColumnNames(final ResultSetMetaData rsmd) + throws SQLException { + final int count = rsmd.getColumnCount(); + final Set columnNames = new CaseInsensitiveSet(); + for (int i = 0; i < count; ++i) { + final String columnName = rsmd.getColumnLabel(i + 1); + final int pos = columnName.lastIndexOf('.'); // [DAO-41] + if (-1 < pos) { + columnNames.add(columnName.substring(pos + 1)); + } else { + columnNames.add(columnName); + } + } + return columnNames; + } + + public DtoMetaData getDtoMetaData() { + return dtoMetaData; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,42 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.rshandler; + +import java.lang.reflect.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanArrayMetaDataResultSetHandler extends + InternalBeanListMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanArrayMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + List list = (List) super.handle(rs); + return list.toArray((Object[]) Array.newInstance(getBeanMetaData() + .getBeanClass(), list.size())); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,236 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.impl.RelationKey; +import org.seasar.dao.impl.RelationRowCache; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanListMetaDataResultSetHandler extends + InternalAbstractBeanMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanListMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; + + final List list = new ArrayList(); + final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); + final boolean hasCB = hasConditionBean(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + + while (rs.next()) { + if (columnNames == null) { + columnNames = createColumnNames(rs.getMetaData()); + } + if (propertyCache == null) { + propertyCache = createPropertyCache(columnNames); + } + + // Create row instance of base table by row property cache. + final Object row = createRow(rs, propertyCache); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { + postCreateRow(row); + list.add(row); + continue; + } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } + for (int i = 0; i < relSize; ++i) { + final RelationPropertyType rpt = getBeanMetaData() + .getRelationPropertyType(i); + if (rpt == null) { + continue; + } + + // Do only selected foreign property for performance if + // condition-bean exists. + if (hasCB + && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) { + continue; + } + + final Map relKeyValues = new HashMap(); + final RelationKey relKey = createRelationKey(rs, rpt, + columnNames, relKeyValues); + Object relationRow = null; + if (relKey != null) { + relationRow = relRowCache.getRelationRow(i, relKey); + if (relationRow == null) { // when no cache + relationRow = createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + if (relationRow != null) { + relRowCache.addRelationRow(i, relKey, relationRow); + postCreateRow(relationRow); + } + } + } + if (relationRow != null) { + final PropertyDesc pd = rpt.getPropertyDesc(); + pd.setValue(row, relationRow); + } + } + postCreateRow(row); + list.add(row); + } + return list; + } + + protected RelationKey createRelationKey(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues) + throws SQLException { + final List keyList = new ArrayList(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final ValueType valueType; + String columnName = rpt.getMyKey(i); + if (columnNames.contains(columnName)) { + final PropertyType pt = getBeanMetaData() + .getPropertyTypeByColumnName(columnName); + valueType = pt.getValueType(); + } else { + final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt + .getYourKey(i)); + columnName = pt.getColumnName() + buildRelationNoSuffix(rpt); + if (columnNames.contains(columnName)) { + valueType = pt.getValueType(); + } else { + return null; + } + } + final Object value = valueType.getValue(rs, columnName); + if (value == null) { + return null; + } + relKeyValues.put(columnName, value); + keyList.add(value); + } + if (keyList.size() > 0) { + Object[] keys = keyList.toArray(); + return new RelationKey(keys); + } else { + return null; + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean isSelectedForeignInfoEmpty() { + if (!hasConditionBean()) { + return true; + } + ConditionBean cb = ConditionBeanContext.getConditionBeanOnThread(); + if (cb.getSqlClause().isSelectedForeignInfoEmpty()) { + return true; + } + return false; + } + + /** + * Has it selected foreign information? You should call hasConditionBean() + * before calling this! + * + * @param relationNoSuffix The suffix of relation NO. (NotNull) + * @return Determination. + */ + protected boolean hasSelectedForeignInfo(String relationNoSuffix) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) { + return true; + } + return false; + } + + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ + protected String buildRelationNoSuffix(RelationPropertyType rpt) { + return "_" + rpt.getRelationNo(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,227 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.PrimaryKeyNotFoundRuntimeException; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoStaticCommand extends + InternalAbstractStaticCommand { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final boolean DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY = true; + + //========================================================================== + // ========= + // Attribute + // ========= + private PropertyType[] propertyTypes; + + private boolean checkSingleRowUpdate = true; + + protected boolean versionNoAutoIncrementOnMemory = DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData); + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + setupPropertyTypes(propertyNames); + setupSql(); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + InternalAbstractAutoHandler handler = createAutoHandler(); + handler.setSql(getSql()); + handler.setLoggingMessageSqlArgs(args); + int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw createNotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } + + protected NotSingleRowUpdatedRuntimeException createNotSingleRowUpdatedRuntimeException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected abstract InternalAbstractAutoHandler createAutoHandler(); + + protected abstract void setupPropertyTypes(String[] propertyNames); + + protected void setupInsertPropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (isInsertTarget(pt)) { + types.add(pt); + } + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected boolean isInsertTarget(PropertyType propertyType) { + if (propertyType.isPrimaryKey()) { + String name = propertyType.getPropertyName(); + final IdentifierGenerator generator = getBeanMetaData() + .getIdentifierGenerator(name); + return generator.isSelfGenerate(); + } + return true; + } + + protected void setupUpdatePropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (pt.isPrimaryKey()) { + continue; + } + types.add(pt); + } + if (types.size() == 0) { + throw new SRuntimeException("EDAO0020"); + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected void setupDeletePropertyTypes(String[] propertyNames) { + } + + protected abstract void setupSql(); + + protected void setupInsertSql() { + BeanMetaData bmd = getBeanMetaData(); + StringBuilder sb = new StringBuilder(100); + sb.append("insert into "); + sb.append(bmd.getTableName()); + sb.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append(pt.getColumnName()); + sb.append(", "); + } + } + sb.setLength(sb.length() - 2); + sb.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append("?, "); + } + } + sb.setLength(sb.length() - 2); + sb.append(")"); + setSql(sb.toString()); + } + + protected void setupUpdateSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(getBeanMetaData().getTableName()); + sb.append(" set "); + String versionNoPropertyName = getBeanMetaData() + .getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName) + && !versionNoAutoIncrementOnMemory) { + sb.append(pt.getColumnName()).append(" = ").append( + pt.getColumnName()).append(" + 1, "); + continue; + } + sb.append(pt.getColumnName()).append(" = ?, "); + } + sb.setLength(sb.length() - 2); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void setupDeleteSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("delete from "); + sb.append(getBeanMetaData().getTableName()); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void checkPrimaryKey() { + BeanMetaData bmd = getBeanMetaData(); + if (bmd.getPrimaryKeySize() == 0) { + throw new PrimaryKeyNotFoundRuntimeException(bmd.getBeanClass()); + } + } + + protected void setupUpdateWhere(StringBuilder sb) { + BeanMetaData bmd = getBeanMetaData(); + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,64 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final boolean returningRows; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + versionNoAutoIncrementOnMemory); + this.returningRows = returningRows; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final InternalAbstractBatchAutoHandler handler = createBatchAutoHandler(); + + // It is unnecessary! + // injectDaoClass(handler); + + handler.setSql(getSql()); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(args); + if (this.returningRows) { + return handler.executeBatch(args); + } else { + final int updatedRows = handler.execute(args); + return new Integer(updatedRows); + } + } + + protected abstract InternalAbstractBatchAutoHandler createBatchAutoHandler(); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,83 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractDynamicCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected Node rootNode; + + protected String[] argNames = new String[0]; + + protected Class[] argTypes = new Class[0]; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Sql Handling + // ============ + public void setSql(String sql) { + super.setSql(sql); + this.rootNode = createInternalSqlParser(sql).parse(); + } + + protected InternalSqlParser createInternalSqlParser(String sql) { + return new InternalSqlParser(sql); + } + + public CommandContext apply(Object[] args) {// It is necessary to be public! + final CommandContext ctx = createCommandContext(args); + rootNode.accept(ctx); + return ctx; + } + + protected CommandContext createCommandContext(Object[] args) { + return createCommandContextCreator().createCommandContext(args); + } + + protected InternalCommandContextCreator createCommandContextCreator() { + return new InternalCommandContextCreator(argNames, argTypes); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String[] getArgNames() { + return argNames; + } + + public void setArgNames(String[] argNames) { + this.argNames = argNames; + } + + public Class[] getArgTypes() { + return argTypes; + } + + public void setArgTypes(Class[] argTypes) { + this.argTypes = argTypes; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,52 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractSqlCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private StatementFactory statementFactory; + + private String sql; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractSqlCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,37 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractStaticCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,46 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + super(dataSource, statementFactory, beanMetaData, propertyNames); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return new InternalDeleteAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,57 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return newInternalBatchAutoHandler(); + } + + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + String[] argNames = new String[] { "dto" }; + Class[] argTypes = new Class[] { cb.getClass() }; + String twoWaySql = buildQueryDeleteTwoWaySql(cb); + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + if (args == null || args.length == 0) { + String msg = "The arguments should have one argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + protected String buildQueryDeleteTwoWaySql(ConditionBean cb) { + return cb.getSqlClause().getClauseQueryDelete(); + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,172 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalInsertAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + protected BeanMetaData beanMetaData; + + protected String[] propertyNames; + + protected boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoDynamicCommand() { + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createInsertPropertyTypes(bmd, + bean, getPropertyNames()); + final String sql = createInsertSql(bmd, propertyTypes); + final InternalInsertAutoHandler handler = new InternalInsertAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler.setSql(sql); + handler.setLoggingMessageSqlArgs(args); + final int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw new NotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + protected String createInsertSql(BeanMetaData bmd, + PropertyType[] propertyTypes) { + StringBuffer buf = new StringBuffer(100); + buf.append("insert into "); + buf.append(bmd.getTableName()); + buf.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + buf.append(", "); + } + buf.append(columnName); + } + buf.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + if (i > 0) { + buf.append(", "); + } + buf.append("?"); + } + buf.append(")"); + return buf.toString(); + } + + protected PropertyType[] createInsertPropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + + if (0 == propertyNames.length) { + throw new SRuntimeException("EDAO0024", new Object[] { bean + .getClass().getName() }); + } + List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey()) { + final IdentifierGenerator generator = bmd + .getIdentifierGenerator(pt.getPropertyName()); + if (!generator.isSelfGenerate()) { + continue; + } + } else { + if (pt.getPropertyDesc().getValue(bean) == null) { + final String propertyName = pt.getPropertyName(); + if (!propertyName.equalsIgnoreCase(timestampPropertyName) + && !propertyName + .equalsIgnoreCase(versionNoPropertyName)) { + continue; + } + } + } + types.add(pt); + } + if (types.isEmpty()) { + throw new SRuntimeException("EDAO0014"); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + protected DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + protected StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + protected BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + protected String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,53 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalInsertBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return new InternalInsertBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupInsertSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupInsertPropertyTypes(propertyNames); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,83 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalProcedureHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected ResultSetHandler resultSetHandler; + + protected StatementFactory statementFactory; + + protected InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureCommand(DataSource dataSource, + ResultSetHandler resultSetHandler, + StatementFactory statementFactory, + InternalProcedureMetaData procedureMetaData) { + this.dataSource = dataSource; + this.resultSetHandler = resultSetHandler; + this.statementFactory = statementFactory; + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(final Object[] args) { + final InternalProcedureHandler handler = newArgumentDtoProcedureHandler(); + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + final Object pmb = outsideSqlContext.getParameterBean(); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(...); + return handler.execute(new Object[] { pmb }); + } + + protected InternalProcedureHandler newArgumentDtoProcedureHandler() { + return new InternalProcedureHandler(dataSource, + createSql(procedureMetaData), resultSetHandler, + statementFactory, procedureMetaData); + } + + protected String createSql(final InternalProcedureMetaData procedureMetaData) { + final StringBuilder sb = new StringBuilder(); + sb.append("{"); + int size = procedureMetaData.parameterTypes().size(); + if (procedureMetaData.hasReturnParameterType()) { + sb.append("? = "); + size--; + } + sb.append("call ").append(procedureMetaData.getProcedureName()).append( + "("); + for (int i = 0; i < size; i++) { + sb.append("?, "); + } + if (size > 0) { + sb.setLength(sb.length() - 2); + } + sb.append(")}"); + return sb.toString(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,233 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.NoUpdatePropertyTypeRuntimeException; +import org.seasar.dao.impl.AbstractSqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoDynamicCommand extends AbstractSqlCommand { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalUpdateAutoDynamicCommand.class); + + private static final Integer NO_UPDATE = new Integer(0); + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + private String[] propertyNames; + + private boolean checkSingleRowUpdate = true; + + private boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createUpdatePropertyTypes(bmd, + bean, getPropertyNames()); + if (propertyTypes.length == 0) { + if (_log.isDebugEnabled()) { + _log.debug(createNoUpdateLogMessage(bean, bmd)); + } + return NO_UPDATE; + } + InternalUpdateAutoHandler handler = createInternalUpdateAutoHandler( + bmd, propertyTypes); + handler.setSql(createUpdateSql(bmd, propertyTypes, bean)); + handler.setLoggingMessageSqlArgs(args); + int i = handler.execute(args); + + // [Comment Out]: This statement moved to the handler at + // [DBFlute-0.8.0]. + // if (isCheckSingleRowUpdate() && i < 1) { + // throw createNotSingleRowUpdatedRuntimeException(args[0], i); + // } + + return new Integer(i); + } + + protected InternalUpdateAutoHandler createInternalUpdateAutoHandler( + BeanMetaData bmd, PropertyType[] propertyTypes) { + InternalUpdateAutoHandler handler = new InternalUpdateAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + handler.setCheckSingleRowUpdate(isCheckSingleRowUpdate()); //[DBFlute-0.8 + // .0] + return handler; + } + + protected PropertyType[] createUpdatePropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || pt.getPropertyDesc().getValue(bean) != null) { + types.add(pt); + } + } + } + if (types.isEmpty()) { + throw new NoUpdatePropertyTypeRuntimeException(); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + protected String createNoUpdateLogMessage(final Object bean, + final BeanMetaData bmd) { + final StringBuffer sb = new StringBuffer(); + sb.append("skip UPDATE: table=").append(bmd.getTableName()); + final int size = bmd.getPrimaryKeySize(); + for (int i = 0; i < size; i++) { + if (i == 0) { + sb.append(", key{"); + } else { + sb.append(", "); + } + final String keyName = bmd.getPrimaryKey(i); + sb.append(keyName).append("="); + sb.append(bmd.getPropertyTypeByColumnName(keyName) + .getPropertyDesc().getValue(bean)); + if (i == size - 1) { + sb.append("}"); + } + } + final String s = new String(sb); + return s; + } + + /** + * Create update SQL. The update is by the primary keys. + * + * @param bmd The meta data of bean. (NotNull & RequiredPrimaryKeys) + * @param propertyTypes The types of property for update. (NotNull) + * @param bean A bean for update for handling version no and so on. + * (NotNull) + * @return The update SQL. (NotNull) + */ + protected String createUpdateSql(BeanMetaData bmd, + PropertyType[] propertyTypes, Object bean) { + if (bmd.getPrimaryKeySize() == 0) { + String msg = "The table '" + bmd.getTableName() + + "' does not have primary keys!"; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(bmd.getTableName()); + sb.append(" set "); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + sb.append(", "); + } + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + final Object versionNo = pt.getPropertyDesc().getValue(bean); + if (versionNo == null) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + } + sb.append(columnName).append(" = ?"); + } + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + return sb.toString(); + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } + + protected void setupVersionNoAutoIncrementOnQuery(StringBuilder sb, + String columnName) { + sb.append(columnName).append(" = ").append(columnName).append(" + 1"); + } + + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,61 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, versionNoAutoIncrementOnMemory); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + InternalUpdateBatchAutoHandler handler = newInternalBatchAutoHandler(); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + return handler; + } + + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupUpdateSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupUpdatePropertyTypes(propertyNames); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,38 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalBasicUpdateHandler; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateDynamicCommand extends + InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object args[]) { + final CommandContext ctx = apply(args); + final InternalBasicUpdateHandler updateHandler = new InternalBasicUpdateHandler( + getDataSource(), ctx.getSql(), getStatementFactory()); + Object[] bindVariables = ctx.getBindVariables(); + updateHandler.setLoggingMessageSqlArgs(bindVariables); + return new Integer(updateHandler.execute(bindVariables, ctx + .getBindVariableTypes())); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,55 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateModifiedOnlyCommand extends + InternalUpdateAutoDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateModifiedOnlyCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // No.1 Point Override + // =================== + @Override + protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, + final Object bean, final String[] propertyNames) { + final Set modifiedPropertyNames = getBeanMetaData() + .getModifiedPropertyNames(bean); + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + final PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + final String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || modifiedPropertyNames.contains(propertyName)) { + types.add(pt); + } + } + } + final PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,229 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlcommand; + +import java.lang.reflect.Method; +import java.sql.Timestamp; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + Entity entity = extractEntityWithCheck(args); + String[] argNames = new String[] { "dto", "entity" }; + Class[] argTypes = new Class[] { cb.getClass(), entity.getClass() }; + String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity); + if (twoWaySql == null) { + return 0;// No execute! + } + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + assertArgument(args); + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of first argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected Entity extractEntityWithCheck(Object[] args) { + assertArgument(args); + Object secondArg = args[1]; + if (!(secondArg instanceof Entity)) { + String msg = "The type of second argument should be " + + Entity.class + "! But:"; + msg = msg + " type=" + secondArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (Entity) secondArg; + } + + protected void assertArgument(Object[] args) { + if (args == null || args.length <= 1) { + String msg = "The arguments should have two argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + /** + * @param cb Condition-bean. (NotNull) + * @param entity Entity. (NotNull) + * @return The two-way SQL of query update. (Nullable: If the set of + * modified properties is empty, return null.) + */ + protected String buildQueryUpdateTwoWaySql(ConditionBean cb, Entity entity) { + Map columnParameterMap = new LinkedHashMap(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(entity + .getTableDbName()); + Set modifiedPropertyNames = entity.getModifiedPropertyNames(); + if (modifiedPropertyNames.isEmpty()) { + return null; + } + String currentPropertyName = null; + try { + for (String propertyName : modifiedPropertyNames) { + currentPropertyName = propertyName; + ColumnInfo columnInfo = dbmeta.findColumnInfo(propertyName); + String columnName = columnInfo.getColumnDbName(); + Method getter = columnInfo.findGetter(); + Object value = getter.invoke(entity, (Object[]) null); + if (value != null) { + columnParameterMap.put(columnName, "/*entity." + + propertyName + "*/null"); + } else { + columnParameterMap.put(columnName, "null"); + } + } + if (dbmeta.hasVersionNo()) { + ColumnInfo columnInfo = dbmeta.getVersionNoColumnInfo(); + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, columnName + " + 1"); + } + if (dbmeta.hasUpdateDate()) { + ColumnInfo columnInfo = dbmeta.getUpdateDateColumnInfo(); + Method setter = columnInfo.findSetter(); + if (Timestamp.class.isAssignableFrom(columnInfo + .getPropertyType())) { + setter.invoke(entity, new Timestamp(System + .currentTimeMillis())); + } else { + setter.invoke(entity, new Date()); + } + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, "/*entity." + + columnInfo.getPropertyName() + "*/null"); + } + } catch (Exception e) { + throwQueryUpdateFailureException(cb, entity, currentPropertyName, e); + } + return cb.getSqlClause().getClauseQueryUpdate(columnParameterMap); + } + + protected void throwQueryUpdateFailureException(ConditionBean cb, + Entity entity, String propertyName, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "queryUpdate() failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Doubtful Property Name]" + getLineSeparator() + + propertyName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + cb + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new QueryUpdateFailureException(msg, e); + } + + public static class QueryUpdateFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public QueryUpdateFailureException(String msg, Exception e) { + super(msg, e); + } + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,271 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.util.IntegerConversionUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BeanMetaData beanMetaData; + + protected Object[] bindVariables; + + protected ValueType[] bindVariableValueTypes; + + protected Timestamp timestamp; + + protected Integer versionNo; + + protected PropertyType[] propertyTypes; + + protected boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + this.propertyTypes = propertyTypes; + } + + public int execute(Object[] args) { + Connection connection = getConnection(); + try { + return execute(connection, args[0]); + } finally { + close(connection); + } + } + + public int execute(Object[] args, Class[] argTypes) { + return execute(args); + } + + protected int execute(Connection connection, Object bean) { + preUpdateBean(bean); + setupBindVariables(bean); + logSql(bindVariables, getArgTypes(bindVariables)); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, bindVariables, bindVariableValueTypes); + ret = executeUpdate(ps); + } finally { + close(ps); + } + postUpdateBean(bean, ret); + return ret; + } + + protected void bindArgs(PreparedStatement ps, Object[] args, + ValueType[] valueTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = valueTypes[i]; + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected void preUpdateBean(Object bean) { + } + + protected void postUpdateBean(Object bean, int ret) { + } + + protected abstract void setupBindVariables(Object bean); + + protected void setupInsertBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + setVersionNo(new Integer(0)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupUpdateBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + continue;// because of always 'VERSION_NO = VERSION_NO + 1' + } + Object value = pt.getPropertyDesc().getValue(bean); + if (value == null) { + continue;// because of 'VERSION_NO = VERSION_NO + 1' + } + int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1; + setVersionNo(new Integer(intValue)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupDeleteBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void addAutoUpdateWhereBindVariables(List varList, + List varValueTypeList, Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + PropertyType pt = bmd.getPropertyTypeByColumnName(bmd + .getPrimaryKey(i)); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + } + + protected void updateTimestampIfNeed(Object bean) { + if (getTimestamp() != null) { + PropertyDesc pd = getBeanMetaData().getTimestampPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getTimestamp()); + } + } + + protected void updateVersionNoIfNeed(Object bean) { + if (getVersionNo() != null) { + PropertyDesc pd = getBeanMetaData().getVersionNoPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getVersionNo()); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + protected Object[] getBindVariables() { + return bindVariables; + } + + protected void setBindVariables(Object[] bindVariables) { + this.bindVariables = bindVariables; + } + + protected ValueType[] getBindVariableValueTypes() { + return bindVariableValueTypes; + } + + protected void setBindVariableValueTypes(ValueType[] bindVariableValueTypes) { + this.bindVariableValueTypes = bindVariableValueTypes; + } + + protected Timestamp getTimestamp() { + return timestamp; + } + + protected void setTimestamp(Timestamp timestamp) { + this.timestamp = timestamp; + } + + protected Integer getVersionNo() { + return versionNo; + } + + protected void setVersionNo(Integer versionNo) { + this.versionNo = versionNo; + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,137 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoHandler extends + InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalAbstractBatchAutoHandler.class); + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int[] execute(List list, Class[] argTypes) { + return execute(list); + } + + public int[] execute(List list) { + if (list == null) { + throw new IllegalArgumentException("list"); + } + if (list.isEmpty()) { + if (_log.isDebugEnabled()) { + _log.debug("Skip executeBatch() bacause of the empty list."); + } + return new int[0]; + } + final Connection connection = getConnection(); + try { + final PreparedStatement ps = prepareStatement(connection); + try { + for (Iterator iter = list.iterator(); iter.hasNext();) { + final Object bean = (Object) iter.next(); + prepareBatchElement(ps, bean); + } + return executeBatch(ps, list); + } finally { + close(ps); + } + } finally { + close(connection); + } + // Reflection to bean is unsupported at batch update. + // postBatchUpdateBean(...); + } + + public int execute(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + int[] ret = execute(list); + int updatedRow = 0; + for (int i = 0; i < ret.length; i++) { + if (ret[i] > 0) { + updatedRow += ret[i]; + } + } + return updatedRow; + } + + public int[] executeBatch(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + return execute(list); + } + + protected void prepareBatchElement(PreparedStatement ps, Object bean) { + setupBindVariables(bean); + logSql(getBindVariables(), getArgTypes(getBindVariables())); + bindArgs(ps, getBindVariables(), getBindVariableValueTypes()); + addBatch(ps); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected int[] executeBatch(PreparedStatement ps, List list) { + try { + return ps.executeBatch(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return null; // Unreachable! + } + } + + protected void addBatch(PreparedStatement ps) { + try { + ps.addBatch(); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,623 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.CallbackContext; +import jp.sf.pal.userinfo.db.allcommon.DBFluteConfig; +import jp.sf.pal.userinfo.db.allcommon.InternalMapContext; +import jp.sf.pal.userinfo.db.allcommon.QLog; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException; +import jp.sf.pal.userinfo.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.userinfo.db.allcommon.jdbc.SqlLogHandler; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.exception.SQLRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private String sql; + + private StatementFactory statementFactory; + + private Object[] loggingMessageSqlArgs; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicHandler(DataSource ds, StatementFactory statementFactory) { + setDataSource(ds); + setStatementFactory(statementFactory); + } + + public InternalBasicHandler(DataSource ds, String sql, + StatementFactory statementFactory) { + setDataSource(ds); + setSql(sql); + setStatementFactory(statementFactory); + } + + //========================================================================== + // ========= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- + protected void bindArgs(PreparedStatement ps, Object[] args, + Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = getValueType(argTypes[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected Class[] getArgTypes(Object[] args) { + if (args == null) { + return null; + } + Class[] argTypes = new Class[args.length]; + for (int i = 0; i < args.length; ++i) { + Object arg = args[i]; + if (arg != null) { + argTypes[i] = arg.getClass(); + } + } + return argTypes; + } + + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } + } + + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); + } + + protected void log(String msg) { + QLog.log(msg); + } + + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; + } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); + } + + protected boolean isContainsLineSeparatorInSql() { + return sql != null ? sql.contains(getLineSeparator()) : false; + } + + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + protected void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + String completeSql = buildLoggingMessageSql(); + new SQLExceptionHandler().handleSQLException(e, statement, + uniqueConstraintValid, completeSql); + } + + protected String buildLoggingMessageSql() { + String completeSql = null; + if (sql != null && loggingMessageSqlArgs != null) { + try { + completeSql = getCompleteSql(loggingMessageSqlArgs); + } catch (RuntimeException ignored) { + } + } + return completeSql; + } + + public static class SQLExceptionHandler { + + public void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + handleSQLException(e, statement, uniqueConstraintValid, null); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid, String completeSql) { + if (isSqlExceptionOldStyleHandling()) { + throw new SQLRuntimeException(e); + } + if (uniqueConstraintValid && isUniqueConstraintException(e)) { + throwEntityAlreadyExistsException(e, statement, completeSql); + } + throwSQLFailureException(e, statement, completeSql); + } + + protected boolean isUniqueConstraintException(SQLException e) { + DBFluteConfig.UniqueConstraintDeterminator determinator = getUniqueConstraintDeterminator(); + if (determinator != null) { + return determinator.isUniqueConstraintException(e); + } + return ConditionBeanContext.isUniqueConstraintException( + extractSQLState(e), e.getErrorCode()); + } + + protected DBFluteConfig.UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return DBFluteConfig.getInstance() + .getUniqueConstraintDeterminator(); + } + + protected boolean isSqlExceptionOldStyleHandling() { + return DBFluteConfig.getInstance().isSqlExceptionOldStyleHandling(); + } + + protected void throwEntityAlreadyExistsException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity already exists on the database!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the primary key whether it already exists on the database." + + getLineSeparator(); + msg = msg + "And confirm the unique constraint for other columns." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new EntityAlreadyExistsException(msg, e); + } + + protected void throwSQLFailureException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The SQL failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the SQLException message." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new SQLFailureException(msg, e); + } + + protected String extractSQLState(SQLException e) { + String sqlState = e.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next + SQLException nextEx = e.getNextException(); + if (nextEx == null) { + return null; + } + sqlState = nextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx == null) { + return null; + } + sqlState = nextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next Next + SQLException nextNextNextEx = nextNextEx.getNextException(); + if (nextNextNextEx == null) { + return null; + } + sqlState = nextNextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // It doesn't use recursive call by design because JDBC is + // unpredictable fellow. + return null; + } + + protected String extractBehaviorInvokeName() { + final Object behaviorInvokeName = InternalMapContext + .getObject("df:BehaviorInvokeName"); + if (behaviorInvokeName == null) { + return null; + } + final Object clientInvokeName = InternalMapContext + .getObject("df:ClientInvokeName"); + final Object byPassInvokeName = InternalMapContext + .getObject("df:ByPassInvokeName"); + final StringBuilder sb = new StringBuilder(); + boolean existsPath = false; + if (clientInvokeName != null) { + existsPath = true; + sb.append(clientInvokeName); + } + if (byPassInvokeName != null) { + existsPath = true; + sb.append(byPassInvokeName); + } + sb.append(behaviorInvokeName); + if (existsPath) { + sb.append("..."); + } + return sb.toString(); + } + + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected ConditionBean getConditionBean() { + return ConditionBeanContext.getConditionBeanOnThread(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected OutsideSqlContext getOutsideSqlContext() { + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected PreparedStatement prepareStatement(Connection conn) { + if (sql == null) { + throw new IllegalStateException("The sql should not be null!"); + } + return statementFactory.createPreparedStatement(conn, sql); + } + + protected int executeUpdate(PreparedStatement ps) { + try { + return ps.executeUpdate(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return 0;// Unreachable! + } + } + + protected void setFetchSize(Statement statement, int fetchSize) { + if (statement == null) { + return; + } + try { + statement.setFetchSize(fetchSize); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void setMaxRows(Statement statement, int maxRows) { + if (statement == null) { + return; + } + try { + statement.setMaxRows(maxRows); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(Statement statement) { + if (statement == null) { + return; + } + try { + statement.close(); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(ResultSet resultSet) { + if (resultSet == null) { + return; + } + try { + resultSet.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) { + this.loggingMessageSqlArgs = loggingMessageSqlArgs; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,146 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.userinfo.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.userinfo.db.allcommon.s2dao.FetchNarrowingResultSetWrapper; + +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicSelectHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicSelectHandler(DataSource dataSource, String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + super(dataSource, statementFactory); + setSql(sql); + setResultSetHandler(resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public Object execute(Object[] args, Class[] argTypes) { + Connection conn = getConnection(); + try { + return execute(conn, args, argTypes); + } finally { + close(conn); + } + } + + @SuppressWarnings("unchecked") + public Object execute(Connection conn, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = null; + try { + ps = prepareStatement(conn); + bindArgs(ps, args, argTypes); + return execute(ps); + } catch (SQLException e) { + handleSQLException(e, ps); + return null; // Unreachable! + } finally { + close(ps); + } + } + + protected Object execute(PreparedStatement ps) throws SQLException { + if (resultSetHandler == null) { + throw new IllegalStateException( + "The resultSetHandler should not be null!"); + } + ResultSet resultSet = null; + try { + resultSet = createResultSet(ps); + return resultSetHandler.handle(resultSet); + } finally { + close(resultSet); + } + } + + protected ResultSet createResultSet(PreparedStatement ps) + throws SQLException { + final ResultSet resultSet = ps.executeQuery(); + if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + return resultSet; + } + final FetchNarrowingBean cb = FetchNarrowingBeanContext + .getFetchNarrowingBeanOnThread(); + if (!isUseFetchNarrowingResultSetWrapper(cb)) { + return resultSet; + } + final FetchNarrowingResultSetWrapper wrapper; + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + outsideSqlContext.isOffsetByCursorForcedly(), + outsideSqlContext.isLimitByCursorForcedly()); + } else { + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + false); + } + return wrapper; + } + + protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { + if (cb.getSafetyMaxResultSize() > 0) { + return true; + } + if (!cb.isFetchNarrowingEffective()) { + return false; // It is not necessary to control. + } + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + return true; + } + } + if (cb.isFetchNarrowingSkipStartIndexEffective() + || cb.isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ResultSetHandler getResultSetHandler() { + return resultSetHandler; + } + + public void setResultSetHandler(ResultSetHandler resultSetHandler) { + this.resultSetHandler = resultSetHandler; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,53 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicUpdateHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicUpdateHandler(DataSource dataSource, String sql, + StatementFactory statementFactory) { + super(dataSource, sql, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public int execute(Object[] args, Class[] argTypes) { + Connection connection = getConnection(); + try { + return execute(connection, args, argTypes); + } finally { + close(connection); + } + } + + @SuppressWarnings("unchecked") + public int execute(Connection connection, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = prepareStatement(connection); + try { + bindArgs(ps, args, argTypes); + return executeUpdate(ps); + } finally { + close(ps); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,60 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CommandContext commandContext; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextHandler(DataSource dataSource, + StatementFactory statementFactory, CommandContext commandContext) { + super(dataSource, statementFactory); + this.commandContext = commandContext; + setSql(commandContext.getSql()); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + final Connection connection = getConnection(); + try { + return execute(connection, commandContext); + } finally { + close(connection); + } + } + + protected int execute(Connection connection, CommandContext context) { + logSql(context.getBindVariables(), getArgTypes(context + .getBindVariables())); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, context.getBindVariables(), context + .getBindVariableTypes()); + ret = executeUpdate(ps); + } finally { + close(ps); + } + return ret; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,33 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,34 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,58 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void preUpdateBean(Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (!generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,34 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,262 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various.InternalProcedureParameterType; + +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.impl.PropertyTypeImpl; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.util.CaseInsensitiveMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureHandler extends InternalBasicSelectHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureHandler(final DataSource dataSource, + final String sql, final ResultSetHandler resultSetHandler, + final StatementFactory statementFactory, + final InternalProcedureMetaData procedureMetaData) { + super(dataSource, sql, resultSetHandler, statementFactory); + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + @SuppressWarnings("unchecked") + public Object execute(final Connection connection, final Object[] args, + final Class[] argTypes) { + final Object dto = getArgumentDto(args); + logSql(args, argTypes); + CallableStatement cs = null; + try { + cs = prepareCallableStatement(connection); + bindArgs(cs, dto); + Object returnValue = null; + if (cs.execute()) { + final ResultSet resultSet = cs.getResultSet(); + if (resultSet != null) { + final ResultSetHandler handler = createReturnResultSetHandler(resultSet); + try { + returnValue = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + } + return handleOutParameters(cs, dto, returnValue); + } catch (SQLException e) { + handleSQLException(e, cs); + return null;// Unreachable! + } finally { + close(cs); + } + } + + protected ResultSetHandler createReturnResultSetHandler(ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + @Override + protected String getCompleteSql(final Object[] args) {// for Procedure Call + String sql = getSql(); + Object dto = getArgumentDto(args); + if (args == null || dto == null) { + return sql; + } + StringBuilder sb = new StringBuilder(100); + int pos = 0; + int pos2 = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + if ((pos2 = sql.indexOf('?', pos)) < 0) { + break; + } + sb.append(sql.substring(pos, pos2)); + pos = pos2 + 1; + if (ppt.isInType()) { + sb.append(getBindVariableText(ppt.getValue(dto))); + } else { + sb.append(sql.substring(pos2, pos)); + } + } + sb.append(sql.substring(pos)); + return sb.toString(); + } + + protected CallableStatement prepareCallableStatement( + final Connection connection) { + if (getSql() == null) { + throw new IllegalStateException("The SQL should not be null!"); + } + return getStatementFactory().createCallableStatement(connection, + getSql()); + } + + protected void bindArgs(final CallableStatement cs, final Object dto) + throws SQLException { + if (dto == null) { + return; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + valueType.registerOutParameter(cs, i + 1); + } + if (ppt.isInType()) { + final Object value = ppt.getValue(dto); + valueType.bindValue(cs, i + 1, value); + } + ++i; + } + } + + protected Object handleResultSet(final CallableStatement cs) + throws SQLException { + ResultSet rs = null; + try { + rs = getResultSet(cs); + return getResultSetHandler().handle(rs); + } finally { + close(rs); + } + } + + protected ResultSet getResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected Object handleOutParameters(final CallableStatement cs, + final Object dto, Object returnValue) throws SQLException { + if (dto == null) { + return null; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + Object value = valueType.getValue(cs, i + 1); + if (value instanceof ResultSet) { + final ResultSet resultSet = (ResultSet) value; + final ResultSetHandler handler = createOutParameterResultSetHandler( + ppt, resultSet); + try { + value = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + ppt.setValue(dto, value); + } else if (ppt.isReturnType()) { + ppt.setValue(dto, returnValue); + } + ++i; + } + return dto; + } + + protected Object getArgumentDto(Object[] args) { + if (args.length == 0) { + return null; + } + if (args.length == 1) { + if (args[0] == null) { + throw new IllegalArgumentException( + "args[0] should not be null!"); + } + return args[0]; + } + throw new IllegalArgumentException("args"); + } + + protected ResultSetHandler createOutParameterResultSetHandler( + InternalProcedureParameterType ppt, ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + //========================================================================== + // ========= + // Map Result Set Handler + // ====================== + protected static abstract class InternalAbstractMapResultSetHandler + implements ResultSetHandler { + + @SuppressWarnings("unchecked") + protected Map createRow(ResultSet rs, + PropertyType[] propertyTypes) throws SQLException { + Map row = new CaseInsensitiveMap(); + for (int i = 0; i < propertyTypes.length; ++i) { + Object value = propertyTypes[i].getValueType().getValue(rs, + i + 1); + row.put(propertyTypes[i].getPropertyName(), value); + } + return row; + } + + protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) + throws SQLException { + int count = rsmd.getColumnCount(); + PropertyType[] propertyTypes = new PropertyType[count]; + for (int i = 0; i < count; ++i) { + String propertyName = rsmd.getColumnLabel(i + 1); + ValueType valueType = ValueTypes.getValueType(rsmd + .getColumnType(i + 1)); + propertyTypes[i] = new PropertyTypeImpl(propertyName, valueType); + } + return propertyTypes; + } + } + + protected static class InternalMapListResultSetHandler extends + InternalAbstractMapResultSetHandler { + + public Object handle(ResultSet resultSet) throws SQLException { + PropertyType[] propertyTypes = createPropertyTypes(resultSet + .getMetaData()); + List> list = new ArrayList>(); + while (resultSet.next()) { + list.add(createRow(resultSet, propertyTypes)); + } + return list; + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,67 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + private boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + if (isCheckSingleRowUpdate() && ret < 1) { + throw createEntityAlreadyUpdatedException(bean, ret); + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } + + protected EntityAlreadyUpdatedException createEntityAlreadyUpdatedException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,34 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,55 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqllog; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLog { + + //========================================================================== + // ========= + // Attribute + // ========= + private String rawSql; + + private String completeSql; + + private Object[] bindArgs; + + private Class[] bindArgTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlLog(String rawSql, String completeSql, Object[] bindArgs, + Class[] bindArgTypes) { + this.rawSql = rawSql; + this.completeSql = completeSql; + this.bindArgs = bindArgs; + this.bindArgTypes = bindArgTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Object[] getBindArgs() { + return bindArgs; + } + + public Class[] getBindArgTypes() { + return bindArgTypes; + } + + public String getCompleteSql() { + return completeSql; + } + + public String getRawSql() { + return rawSql; + } + + public String toString() { + return rawSql; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,277 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqllog; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLogRegistry { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalSqlLogRegistry.class); + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String NAME_SqlLogRegistryLocator = "org.seasar.extension.jdbc.SqlLogRegistryLocator"; + + protected static final String NAME_getInstance = "getInstance"; + + protected static final String NAME_setInstance = "setInstance"; + + protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; + + protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; + static { + forNameContainerSqlLogRegistryLocator(); + } + + //========================================================================== + // ========= + // Public Entry + // ============ + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + + public static Object findContainerSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return null; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_getInstance, (Class[]) null); + return method.invoke(null, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_getInstance=" + NAME_getInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void closeRegistration() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Closing the registry of sqlLog."); + method.invoke(null, new Object[] { null }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void push(String rawSql, String completeSql, + Object[] bindArgs, Class[] bindArgTypes, Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + throw new IllegalArgumentException( + "sqlLogRegistry should not be null!"); + } + final Object sqlLogImpl = createContainerSqlLogImpl(rawSql, + completeSql, bindArgs, bindArgTypes); + reflectSqlLogToContainerSqlLogRegistry(sqlLogImpl, sqlLogRegistry); + } + + public static String peekCompleteSql() { + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return null; + } + final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry); + if (sqlLog == null) { + return null; + } + return extractCompleteSqlFromContainerSqlLog(sqlLog); + } + + //========================================================================== + // ========= + // Container Reflection + // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static Object createContainerSqlLogImpl(String rawSql, + String completeSql, Object[] bindArgs, Class[] bindArgTypes) { + try { + final Class sqlLogImplType = Class.forName(NAME_SqlLogImpl); + final Class[] argTypes = new Class[] { String.class, + String.class, Object[].class, Class[].class }; + final Constructor constructor = sqlLogImplType + .getConstructor(argTypes); + return constructor.newInstance(new Object[] { rawSql, completeSql, + bindArgs, bindArgTypes }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.createContainerSqlLogImpl() threw the exception:"; + msg = msg + " completeSql=" + completeSql; + msg = msg + " NAME_SqlLogImpl=" + NAME_SqlLogImpl; + throw new IllegalStateException(msg, e); + } + } + + protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLog, + Object sqlLogRegistry) { + if (sqlLog == null || sqlLogRegistry == null) { + return; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Class sqlLogType = Class.forName(NAME_SqlLog); + final Method method = sqlLogRegistryType.getMethod("add", + new Class[] { sqlLogType }); + method.invoke(sqlLogRegistry, new Object[] { sqlLog }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.reflectToContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + + sqlLogRegistry; + msg = msg + " NAME_SqlLog=" + NAME_SqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Object findLastContainerSqlLog(Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + return null; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Method method = sqlLogRegistryType.getMethod("getLast", + (Class[]) null); + return method.invoke(sqlLogRegistry, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findLastContainerSqlLog() threw the exception:"; + msg = msg + " sqlLogRegistry=" + sqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) { + if (sqlLog == null) { + return null; + } + try { + final Class sqlLogType = sqlLog.getClass(); + final Method method = sqlLogType.getMethod("getCompleteSql", + (Class[]) null); + return (String) method.invoke(sqlLog, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.extractCompleteSqlFromContainerSqlLog() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Class forNameContainerSqlLogRegistryLocator() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryLocator); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistry() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistry); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,53 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.context.CommandContextImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextCreator { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String[] argNames; + + protected Class[] argTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextCreator(String[] argNames, Class[] argTypes) { + this.argNames = (argNames != null ? argNames : new String[0]); + this.argTypes = (argTypes != null ? argTypes : new Class[0]); + } + + //========================================================================== + // ========= + // Create + // ====== + public CommandContext createCommandContext(Object[] args) { + final CommandContext ctx = new CommandContextImpl(); + if (args != null) { + for (int i = 0; i < args.length; ++i) { + Class argType = null; + if (args[i] != null) { + if (i < argTypes.length) { + argType = argTypes[i]; + } else if (args[i] != null) { + argType = args[i].getClass(); + } + } + if (i < argNames.length) { + ctx.addArg(argNames[i], args[i], argType); + } else { + ctx.addArg("$" + (i + 1), args[i], argType); + } + } + } + return ctx; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1290 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser; + +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Stack; +import java.util.StringTokenizer; + +import jp.sf.pal.userinfo.db.allcommon.cbean.MapParameterBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.userinfo.db.allcommon.exception.BindVariableCommentNotFoundPropertyException; +import jp.sf.pal.userinfo.db.allcommon.exception.BindVariableParameterNullValueException; +import jp.sf.pal.userinfo.db.allcommon.exception.EmbeddedValueCommentNotFoundPropertyException; +import jp.sf.pal.userinfo.db.allcommon.exception.EmbeddedValueParameterNullValueException; +import jp.sf.pal.userinfo.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.userinfo.db.allcommon.exception.IfCommentConditionNotFoundException; +import jp.sf.pal.userinfo.db.allcommon.exception.IfCommentNotBooleanResultException; +import jp.sf.pal.userinfo.db.allcommon.exception.IfCommentWrongExpressionException; +import jp.sf.pal.userinfo.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.userinfo.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.node.AbstractNode; +import org.seasar.dao.node.BeginNode; +import org.seasar.dao.node.ContainerNode; +import org.seasar.dao.node.ElseNode; +import org.seasar.dao.node.PrefixSqlNode; +import org.seasar.dao.node.SqlNode; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.OgnlUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlParser { + + //========================================================================== + // ========= + // Attribute + // ========= + protected InternalSqlTokenizer tokenizer; + + protected Stack nodeStack = new Stack(); + + protected String specifiedSql;// Extension! + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlParser(String sql) { + sql = sql.trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); + } + specifiedSql = sql;// Extension! + tokenizer = new InternalSqlTokenizer(sql); + } + + //========================================================================== + // ========= + // Parse + // ===== + public Node parse() { + push(new ContainerNode()); + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + parseToken(); + } + return pop(); + } + + protected void parseToken() { + switch (tokenizer.getTokenType()) { + case InternalSqlTokenizer.SQL: + parseSql(); + break; + case InternalSqlTokenizer.COMMENT: + parseComment(); + break; + case InternalSqlTokenizer.ELSE: + parseElse(); + break; + case InternalSqlTokenizer.BIND_VARIABLE: + parseBindVariable(); + break; + } + } + + protected void parseSql() { + String sql = tokenizer.getToken(); + if (isElseMode()) { + sql = InternalStringUtil.replace(sql, "--", ""); + } + Node node = peek(); + if ((node instanceof InternalIfNode || node instanceof ElseNode) + && node.getChildSize() == 0) { + + InternalSqlTokenizer st = new InternalSqlTokenizer(sql); + st.skipWhitespace(); + String token = st.skipToken(); + st.skipWhitespace(); + if (sql.startsWith(",")) { + if (sql.startsWith(", ")) { + node.addChild(new PrefixSqlNode(", ", sql.substring(2))); + } else { + node.addChild(new PrefixSqlNode(",", sql.substring(1))); + } + } else if ("AND".equalsIgnoreCase(token) + || "OR".equalsIgnoreCase(token)) { + node.addChild(new PrefixSqlNode(st.getBefore(), st.getAfter())); + } else { + node.addChild(new SqlNode(sql)); + } + } else { + node.addChild(new SqlNode(sql)); + } + } + + protected void parseComment() { + final String comment = tokenizer.getToken(); + if (isTargetComment(comment)) { + if (isIfComment(comment)) { + parseIf(); + } else if (isBeginComment(comment)) { + parseBegin(); + } else if (isEndComment(comment)) { + return; + } else { + parseCommentBindVariable(); + } + } else if (comment != null && 0 < comment.length()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + // [UnderReview]: Should I resolve bind character on scope + // comment(normal comment)? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + String before = tokenizer.getBefore(); + peek().addChild( + new SqlNode(before.substring(before.lastIndexOf("/*")))); + } + } + + protected void parseIf() { + final String condition = tokenizer.getToken().substring(2).trim(); + if (InternalStringUtil.isEmpty(condition)) { + throwIfCommentConditionNotFoundException(); + } + final ContainerNode ifNode = createIfNode(condition); + peek().addChild(ifNode); + push(ifNode); + parseEnd(); + } + + protected void throwIfCommentConditionNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The condition of IF comment was Not Found!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the IF comment expression." + + getLineSeparator(); + msg = msg + + "It may exist the IF comment that DOESN'T have a condition." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + tokenizer.getToken() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentConditionNotFoundException(msg); + } + + protected void parseBegin() { + BeginNode beginNode = new BeginNode(); + peek().addChild(beginNode); + push(beginNode); + parseEnd(); + } + + protected void parseEnd() { + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + if (tokenizer.getTokenType() == InternalSqlTokenizer.COMMENT + && isEndComment(tokenizer.getToken())) { + pop(); + return; + } + parseToken(); + } + throwEndCommentNotFoundException(); + } + + protected void throwEndCommentNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new EndCommentNotFoundException(msg); + } + + protected void parseElse() { + final Node parent = peek(); + if (!(parent instanceof InternalIfNode)) { + return; + } + final InternalIfNode ifNode = (InternalIfNode) pop(); + final InternalElseNode elseNode = new InternalElseNode(); + ifNode.setElseNode(elseNode); + push(elseNode); + tokenizer.skipWhitespace(); + } + + protected void parseCommentBindVariable() { + final String expr = tokenizer.getToken(); + final String s = tokenizer.skipToken(); + if (expr.startsWith("$")) { + peek().addChild(createEmbeddedValueNode(expr.substring(1), s));// Extension + // ! + } else { + peek().addChild(createBindVariableNode(expr, s));// Extension! + } + } + + protected void parseBindVariable() { + final String expr = tokenizer.getToken(); + peek().addChild(createBindVariableNode(expr, null));// Extension! + } + + protected Node pop() { + return (Node) nodeStack.pop(); + } + + protected Node peek() { + return (Node) nodeStack.peek(); + } + + protected void push(Node node) { + nodeStack.push(node); + } + + protected boolean isElseMode() { + for (int i = 0; i < nodeStack.size(); ++i) { + if (nodeStack.get(i) instanceof InternalElseNode) { + return true; + } + } + return false; + } + + private static boolean isTargetComment(String comment) { + return comment != null && comment.length() > 0 + && Character.isJavaIdentifierStart(comment.charAt(0)); + } + + private static boolean isIfComment(String comment) { + return comment.startsWith("IF"); + } + + private static boolean isBeginComment(String content) { + return content != null && "BEGIN".equals(content); + } + + private static boolean isEndComment(String content) { + return content != null && "END".equals(content); + } + + protected AbstractNode createBindVariableNode(String expr, String testValue) {// Extension + // ! + return new InternalBindVariableNode(expr, testValue, specifiedSql); + } + + protected AbstractNode createEmbeddedValueNode(String expr, String testValue) {// Extension + // ! + return new InternalEmbeddedValueNode(expr, testValue, specifiedSql); + } + + protected ContainerNode createIfNode(String expr) {// Extension! + return new InternalIfNode(expr, specifiedSql); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // ========= + // Extension + // ========= + // ----------------------------------------------------- + // BindVariableNode + // ---------------- + protected static class InternalBindVariableNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalBindVariableNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + bindArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + bindArray(ctx, valueAndType.getTargetValue()); + } else { + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, true); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, true); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void bindArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + Class clazz = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + clazz = currentElement.getClass(); + break; + } + } + if (clazz == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql("?", currentElement, clazz); + existsValidElements = true; + } else { + ctx.addSql(", ?", currentElement, clazz); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, true); + } + } + + // ----------------------------------------------------- + // EmbeddedValueNode + // ----------------- + protected static class InternalEmbeddedValueNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalEmbeddedValueNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + // [UnderReview]: Should I make an original exception instead of + // this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + embedArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + embedArray(ctx, valueAndType.getTargetValue()); + } else { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + // [UnderReview]: Should I make an original exception + // instead of this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, false); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, false); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void embedArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + String quote = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + quote = !(currentElement instanceof Number) ? "'" : ""; + break; + } + } + if (quote == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql(quote + currentElement + quote); + existsValidElements = true; + } else { + ctx.addSql(", " + quote + currentElement + quote); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, false); + } + } + + // ----------------------------------------------------- + // Value and Type + // -------------- + protected static class InternalValueAndType { + public Object _targetValue; + + public Class _targetType; + + protected String _rearOption; + + public boolean isValidRearOption() { + return _targetValue != null && _rearOption != null + && _rearOption.trim().length() > 0; + } + + public String buildRearOptionOnSql() { + return " " + _rearOption.trim() + " "; + } + + public Object getTargetValue() { + return _targetValue; + } + + public void setTargetValue(Object targetValue) { + this._targetValue = targetValue; + } + + public Class getTargetType() { + return _targetType; + } + + public void setTargetType(Class targetType) { + this._targetType = targetType; + } + + public String getRearOption() { + return _rearOption; + } + + public void setRearOption(String rearOption) { + this._rearOption = rearOption; + } + } + + protected static class InternalValueAndTypeSetuper { + protected String _expression; + + protected String[] _names; + + protected String _specifiedSql; + + protected boolean _bind; + + public InternalValueAndTypeSetuper(String expression, String[] names, + String specifiedSql, boolean bind) { + this._expression = expression; + this._names = names; + this._specifiedSql = specifiedSql; + this._bind = bind; + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + Object value = valueAndType.getTargetValue(); + Class clazz = valueAndType.getTargetType(); + + // LikeSearchOption handling here is for OutsideSql. + LikeSearchOption likeSearchOption = null; + String rearOption = null; + + for (int pos = 1; pos < _names.length; ++pos) { + if (value == null) { + break; + } + final String currentName = _names[pos]; + if (pos == 1) {// at the First Loop + final BeanDesc beanDesc = BeanDescFactory + .getBeanDesc(clazz); + if (hasLikeSearchOption(beanDesc, currentName)) { + likeSearchOption = getLikeSearchOption(beanDesc, + currentName, value); + } + } + if (Map.class.isInstance(value)) { + final Map map = (Map) value; + value = map.get(_names[pos]); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : clazz); + continue; + } + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz); + if (beanDesc.hasPropertyDesc(currentName)) { + final PropertyDesc pd = beanDesc + .getPropertyDesc(currentName); + value = getPropertyValue(clazz, value, currentName, pd); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : pd + .getPropertyType()); + continue; + } + final String methodName = "get" + initCap(currentName); + if (beanDesc.hasMethod(methodName)) {// Is this unused??? + final Method method = beanDesc.getMethod(methodName); + value = invokeGetter(method, value); + clazz = method.getReturnType(); + continue; + } + if (pos == 1 && MapParameterBean.class.isAssignableFrom(clazz)) { + final MapParameterBean pmb = (MapParameterBean) value; + final Map map = pmb.getParameterMap(); + final Object elementValue = (map != null ? map + .get(_names[pos]) : null); + if (elementValue != null) { + value = elementValue; + clazz = value.getClass(); + continue; + } + } + throwBindOrEmbeddedCommentNotFoundPropertyException( + _expression, clazz, currentName, _specifiedSql, _bind); + } + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + valueAndType.setRearOption(rearOption); + } + + // for OutsideSql + protected boolean isLastLoop4LikeSearch(int pos, + LikeSearchOption likeSearchOption) { + return _names.length == (pos + 1) && likeSearchOption != null; + } + + protected boolean isValidStringValue(Object value) { + return value != null && value instanceof String + && ((String) value).length() > 0; + } + + // for OutsideSql + protected boolean hasLikeSearchOption(BeanDesc beanDesc, + String currentName) { + return beanDesc.hasPropertyDesc(currentName + + "InternalLikeSearchOption"); + } + + // for OutsideSql + protected LikeSearchOption getLikeSearchOption(BeanDesc beanDesc, + String currentName, Object resourceBean) { + final PropertyDesc pb = beanDesc.getPropertyDesc(currentName + + "InternalLikeSearchOption"); + final LikeSearchOption option = (LikeSearchOption) pb + .getValue(resourceBean); + if (option == null) { + throwLikeSearchOptionNotFoundException(resourceBean, + currentName); + } + if (option.isSplit()) { + throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + option, resourceBean, currentName); + } + return option; + } + + // for OutsideSql + protected void throwLikeSearchOptionNotFoundException( + Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new RequiredOptionNotFoundException(msg); + } + + // for OutsideSql + protected void throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + LikeSearchOption option, Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + + " likeSearchOption.splitBySpace(); // *No! Don't invoke this!" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target LikeSearchOption]" + getLineSeparator() + + option + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + protected Object getPropertyValue(Class beanType, Object beanValue, + String currentName, PropertyDesc pd) { + try { + return pd.getValue(beanValue); + } catch (RuntimeException e) { + throwPropertyHandlingFailureException(beanType, beanValue, + currentName, _expression, _specifiedSql, _bind, e); + return null;// Unreachable! + } + } + + protected void throwPropertyHandlingFailureException(Class beanType, + Object beanValue, String currentName, String expression, + String specifiedSql, boolean bind, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The handlig of the property was failed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "This is the Framework Exception!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Type]" + getLineSeparator() + beanType + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Value]" + getLineSeparator() + beanValue + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Property Name]" + getLineSeparator() + currentName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalStateException(msg, e); + } + + protected String initCap(String name) { + return SimpleStringUtil.initCap(name); + } + + protected Object invokeGetter(Method method, Object target) { + try { + return method.invoke(target, (Object[]) null); + } catch (IllegalArgumentException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + protected void throwBindOrEmbeddedCommentNotFoundPropertyException( + String expression, Class targetType, + String notFoundProperty, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The property on the " + + (bind ? "bind variable" : "embedded value") + + " comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "Abd has the property had misspelling?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[NotFound Property]" + getLineSeparator() + + (targetType != null ? targetType.getName() + "#" : "") + + notFoundProperty + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableCommentNotFoundPropertyException(msg); + } else { + throw new EmbeddedValueCommentNotFoundPropertyException(msg); + } + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // Exception Provider + // ------------------ + protected static class ParameterCommentExceptionProvider { + public static void throwBindOrEmbeddedParameterNullValueException( + String expression, Class targetType, String specifiedSql, + boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of " + + (bind ? "bind variable" : "embedded value") + + " was Null!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Is it within the scope of your assumption?" + + getLineSeparator(); + msg = msg + + "If the answer is YES, please confirm your application logic about the parameter." + + getLineSeparator(); + msg = msg + + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + + getLineSeparator(); + msg = msg + " --> For example:" + getLineSeparator(); + msg = msg + " before (x) -- XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Parameter Property Type]" + getLineSeparator() + + targetType + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableParameterNullValueException(msg); + } else { + throw new EmbeddedValueParameterNullValueException(msg); + } + } + + public static void throwBindOrEmbeddedParameterEmptyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was empty!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + public static void throwBindOrEmbeddedParameterNullOnlyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was 'Null Only List'!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // IfNode + // ------ + protected static class InternalIfNode extends ContainerNode { + private String _expression; + + private Object _parsedExpression; + + private InternalElseNode _elseNode; + + private String _specifiedSql; + + public InternalIfNode(String expression, String specifiedSql) { + this._expression = expression; + this._parsedExpression = OgnlUtil.parseExpression(expression); + this._specifiedSql = specifiedSql; + } + + public String getExpression() { + return _expression; + } + + public InternalElseNode getElseNode() { + return _elseNode; + } + + public void setElseNode(InternalElseNode elseNode) { + this._elseNode = elseNode; + } + + public void accept(CommandContext ctx) { + Object result = null; + try { + result = OgnlUtil.getValue(_parsedExpression, ctx); + } catch (RuntimeException e) { + if (!_expression.contains("pmb.")) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + final String replaced = InternalStringUtil.replace(_expression, + "pmb.", "pmb.parameterMap."); + final Object secondParsedExpression = OgnlUtil + .parseExpression(replaced); + try { + result = OgnlUtil.getValue(secondParsedExpression, ctx); + } catch (RuntimeException ignored) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + if (result == null) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + _parsedExpression = secondParsedExpression; + } + if (result != null && result instanceof Boolean) { + if (((Boolean) result).booleanValue()) { + super.accept(ctx); + ctx.setEnabled(true); + } else if (_elseNode != null) { + _elseNode.accept(ctx); + ctx.setEnabled(true); + } + } else { + throwIfCommentNotBooleanResultException(_expression, result, + _specifiedSql); + } + } + + protected void throwIfCommentWrongExpressionException( + String expression, RuntimeException cause, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "And confirm the IF comment of your specified SQL." + + getLineSeparator(); + msg = msg + " For example, correct IF comment is as below:" + + getLineSeparator(); + msg = msg + " /*IF pmb.xxxId != null*/XXX_ID = .../*END*/" + + getLineSeparator(); + msg = msg + " /*IF pmb.isPaging()*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null && pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null || pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Cause Message]" + getLineSeparator(); + msg = msg + cause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + cause.getMessage() + getLineSeparator(); + final Throwable nestedCause = cause.getCause(); + if (nestedCause != null) { + msg = msg + nestedCause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + nestedCause.getMessage() + + getLineSeparator(); + } + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentWrongExpressionException(msg, cause); + } + + protected void throwIfCommentNotBooleanResultException( + String expression, Object result, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The boolean expression on IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the grammar of your IF comment. Does it really express boolean?" + + getLineSeparator(); + msg = msg + + "And confirm the existence of your property on your arguments if you use parameterMap." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Result Value]" + getLineSeparator() + + result + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentNotBooleanResultException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // ElseNode + // -------- + protected static class InternalElseNode extends ContainerNode { + public void accept(CommandContext ctx) { + super.accept(ctx); + ctx.setEnabled(true); + } + } + + // ----------------------------------------------------- + // StringUtil + // ---------- + protected static class InternalStringUtil { + + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new ArrayList(); + StringTokenizer st = new StringTokenizer(str, delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } + + //========================================================================== + // ========= + // Convert + // ======= + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + Object arg) { + final String[] argNames = new String[] { "dto" }; + final Class[] argTypes = new Class[] { arg.getClass() }; + final Object[] args = new Object[] { arg }; + return convertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args); + } + + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + final CommandContext context; + { + final InternalSqlParser parser = new InternalSqlParser(twoWaySql); + final Node node = parser.parse(); + final InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + final String preparedSql = context.getSql(); + return InternalBindVariableUtil.getCompleteSql(preparedSql, context + .getBindVariables()); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,301 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.sqlparser; + +import jp.sf.pal.userinfo.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlTokenizer { + + //========================================================================== + // ========= + // Definition + // ========== + public static final int SQL = 1; + + public static final int COMMENT = 2; + + public static final int ELSE = 3; + + public static final int BIND_VARIABLE = 4; + + public static final int EOF = 99; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String sql; + + protected int position = 0; + + protected String token; + + protected int tokenType = SQL; + + protected int nextTokenType = SQL; + + protected int bindVariableNum = 0; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlTokenizer(String sql) { + this.sql = sql; + } + + //========================================================================== + // ========= + // Tokenize + // ======== + public int next() { + if (position >= sql.length()) { + token = null; + tokenType = EOF; + nextTokenType = EOF; + return tokenType; + } + switch (nextTokenType) { + case SQL: + parseSql(); + break; + case COMMENT: + parseComment(); + break; + case ELSE: + parseElse(); + break; + case BIND_VARIABLE: + parseBindVariable(); + break; + default: + parseEof(); + break; + } + return tokenType; + } + + protected void parseSql() { + int commentStartPos = sql.indexOf("/*", position); + int commentStartPos2 = sql.indexOf("#*", position); + if (0 < commentStartPos2 && commentStartPos2 < commentStartPos) { + commentStartPos = commentStartPos2; + } + int lineCommentStartPos = sql.indexOf("--", position); + int bindVariableStartPos = sql.indexOf("?", position); + int elseCommentStartPos = -1; + int elseCommentLength = -1; + if (lineCommentStartPos >= 0) { + int skipPos = skipWhitespace(lineCommentStartPos + 2); + if (skipPos + 4 < sql.length() + && "ELSE".equals(sql.substring(skipPos, skipPos + 4))) { + elseCommentStartPos = lineCommentStartPos; + elseCommentLength = skipPos + 4 - lineCommentStartPos; + } + } + int nextStartPos = getNextStartPos(commentStartPos, + elseCommentStartPos, bindVariableStartPos); + if (nextStartPos < 0) { + token = sql.substring(position); + nextTokenType = EOF; + position = sql.length(); + tokenType = SQL; + } else { + token = sql.substring(position, nextStartPos); + tokenType = SQL; + boolean needNext = nextStartPos == position; + if (nextStartPos == commentStartPos) { + nextTokenType = COMMENT; + position = commentStartPos + 2; + } else if (nextStartPos == elseCommentStartPos) { + nextTokenType = ELSE; + position = elseCommentStartPos + elseCommentLength; + } else if (nextStartPos == bindVariableStartPos) { + nextTokenType = BIND_VARIABLE; + position = bindVariableStartPos; + } + if (needNext) { + next(); + } + } + } + + protected int getNextStartPos(int commentStartPos, int elseCommentStartPos, + int bindVariableStartPos) { + int nextStartPos = -1; + if (commentStartPos >= 0) { + nextStartPos = commentStartPos; + } + if (elseCommentStartPos >= 0 + && (nextStartPos < 0 || elseCommentStartPos < nextStartPos)) { + nextStartPos = elseCommentStartPos; + } + if (bindVariableStartPos >= 0 + && (nextStartPos < 0 || bindVariableStartPos < nextStartPos)) { + nextStartPos = bindVariableStartPos; + } + return nextStartPos; + } + + protected String nextBindVariableName() { + return "$" + ++bindVariableNum; + } + + protected void parseComment() { + int commentEndPos = sql.indexOf("*/", position); + int commentEndPos2 = sql.indexOf("*#", position); + if (0 < commentEndPos2 && commentEndPos2 < commentEndPos) { + commentEndPos = commentEndPos2; + } + if (commentEndPos < 0) { + throwEndCommentNotFoundException(sql.substring(position)); + } + token = sql.substring(position, commentEndPos); + nextTokenType = SQL; + position = commentEndPos + 2; + tokenType = COMMENT; + } + + protected void throwEndCommentNotFoundException(String expression) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[End Comment Expected Place]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + sql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new EndCommentNotFoundException(msg); + } + + protected void parseBindVariable() { + token = nextBindVariableName(); + nextTokenType = SQL; + position += 1; + tokenType = BIND_VARIABLE; + } + + protected void parseElse() { + token = null; + nextTokenType = SQL; + tokenType = ELSE; + } + + protected void parseEof() { + token = null; + tokenType = EOF; + nextTokenType = EOF; + } + + public String skipToken() { + int index = sql.length(); + char quote = position < sql.length() ? sql.charAt(position) : '\0'; + boolean quoting = quote == '\'' || quote == '('; + if (quote == '(') { + quote = ')'; + } + for (int i = quoting ? position + 1 : position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if ((Character.isWhitespace(c) || c == ',' || c == ')' || c == '(') + && !quoting) { + index = i; + break; + } else if (c == '/' && i + 1 < sql.length() + && sql.charAt(i + 1) == '*') { + index = i; + break; + } else if (c == '-' && i + 1 < sql.length() + && sql.charAt(i + 1) == '-') { + index = i; + break; + } else if (quoting && quote == '\'' && c == '\'' + && (i + 1 >= sql.length() || sql.charAt(i + 1) != '\'')) { + index = i + 1; + break; + } else if (quoting && c == quote) { + index = i + 1; + break; + } + } + token = sql.substring(position, index); + tokenType = SQL; + nextTokenType = SQL; + position = index; + return token; + } + + public String skipWhitespace() { + int index = skipWhitespace(position); + token = sql.substring(position, index); + position = index; + return token; + } + + protected int skipWhitespace(int position) { + int index = sql.length(); + for (int i = position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if (!Character.isWhitespace(c)) { + index = i; + break; + } + } + return index; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPosition() { + return position; + } + + public String getToken() { + return token; + } + + public String getBefore() { + return sql.substring(0, position); + } + + public String getAfter() { + return sql.substring(position); + } + + public int getTokenType() { + return tokenType; + } + + public int getNextTokenType() { + return nextTokenType; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,304 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import jp.sf.pal.userinfo.db.allcommon.DBFluteConfig; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBindVariableUtil { + + //========================================================================== + // ========= + // Definition + // ========== + private static final String NULL = "null"; + + //========================================================================== + // ========= + // Constructor + // =========== + private InternalBindVariableUtil() { + } + + public static String getCompleteSql(String sql, Object[] args) { + if (args == null || args.length == 0) { + return sql; + } + return getCompleteSql(sql, args, new ValueType[args.length]); + } + + public static String getCompleteSql(String sql, Object[] args, + ValueType[] valueTypes) { + if (args == null || args.length == 0) { + return sql; + } + StringBuffer buf = new StringBuffer(sql.length() + args.length * 15); + int pos = 0; + int pos2 = 0; + int pos3 = 0; + int pos4 = 0; + int pos5 = 0; + int pos6 = 0; + int index = 0; + while (true) { + pos = sql.indexOf('?', pos2); + pos3 = sql.indexOf('\'', pos2); + pos4 = sql.indexOf('\'', pos3 + 1); + pos5 = sql.indexOf("/*", pos2); + pos6 = sql.indexOf("*/", pos5 + 1); + if (pos > 0) { + if (pos3 >= 0 && pos3 < pos && pos < pos4) { + buf.append(sql.substring(pos2, pos4 + 1)); + pos2 = pos4 + 1; + } else if (pos5 >= 0 && pos5 < pos && pos < pos6) { + buf.append(sql.substring(pos2, pos6 + 1)); + pos2 = pos6 + 1; + } else { + if (args.length <= index) { + String msg = "The size of bind arguments is illegal:"; + msg = msg + " size=" + args.length + " sql=" + sql; + throw new IllegalStateException(msg); + } + buf.append(sql.substring(pos2, pos)); + buf.append(getBindVariableText(args[index], + valueTypes[index])); + pos2 = pos + 1; + index++; + } + } else { + buf.append(sql.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String getBindVariableText(Object bindVariable) { + if (bindVariable instanceof String) { + return quote(bindVariable.toString()); + } else if (bindVariable instanceof Number) { + return bindVariable.toString(); + } else if (bindVariable instanceof Time) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Timestamp) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogTimestampFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof java.util.Date) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogDateFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Boolean) { + return bindVariable.toString(); + } else if (bindVariable == null) { + return NULL; + } else { + return quote(bindVariable.toString()); + } + } + + protected static String getLogDateFormat() { + String logDateFormat = DBFluteConfig.getInstance().getLogDateFormat(); + return logDateFormat != null ? logDateFormat : "yyyy-MM-dd"; + } + + protected static String getLogTimestampFormat() { + String logTimestampFormat = DBFluteConfig.getInstance() + .getLogTimestampFormat(); + return logTimestampFormat != null ? logTimestampFormat + : "yyyy-MM-dd HH:mm:ss"; + } + + // For various seasar's version. + protected static final Class[] TOTEXT_ARGUMENT_TYPES = new Class[] { Object.class }; + + protected static final Method TOTEXT_METHOD; + static { + Method method = null; + try { + method = ValueType.class.getMethod("toText", TOTEXT_ARGUMENT_TYPES); + } catch (SecurityException e) { + } catch (NoSuchMethodException e) { + } + TOTEXT_METHOD = method; + } + + public static String getBindVariableText(Object bindVariable, + ValueType valueType) { + if (valueType != null && TOTEXT_METHOD != null) { + try { + return (String) TOTEXT_METHOD.invoke(valueType, + new Object[] { bindVariable }); + } catch (IllegalArgumentException e) { + String msg = "ValueType.toText() threw the IllegalArgumentException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (IllegalAccessException e) { + String msg = "ValueType.toText() threw the IllegalAccessException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (InvocationTargetException e) { + if (e.getTargetException() instanceof RuntimeException) { + throw (RuntimeException) e.getTargetException(); + } else { + String msg = "ValueType.toText() threw the exception:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e.getTargetException()); + } + } + } + return getBindVariableText(bindVariable); + } + + public static String nullText() { + return NULL; + } + + public static String toText(Number value) { + if (value == null) { + return NULL; + } + return value.toString(); + } + + public static String toText(Boolean value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + public static String toText(String value) { + if (value == null) { + return NULL; + } + return quote(value); + } + + public static String toText(Date value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addDate(buf, calendar); + return quote(buf.toString()); + } + + public static String toText(Time value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addTime(buf, calendar); + addTimeDecimalPart(buf, calendar.get(Calendar.MILLISECOND)); + return quote(buf.toString()); + } + + public static String toText(Timestamp value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(30); + addDate(buf, calendar); + addTime(buf, calendar); + addTimeDecimalPart(buf, value.getNanos()); + return quote(buf.toString()); + } + + public static String toText(byte[] value) { + if (value == null) { + return NULL; + } + return quote(value.toString() + "(byteLength=" + + Integer.toString(value.length) + ")"); + } + + /** + * {@link Object}¤Îʸ»úÎóɽ¸½¤òÊÖ¤·¤Þ¤¹¡£ + * + * @param value ÃÍ + * @return ʸ»úÎóɽ¸½ + */ + public static String toText(Object value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + // yyyy-mm-dd + protected static void addDate(StringBuilder buf, Calendar calendar) { + int year = calendar.get(Calendar.YEAR); + buf.append(year); + buf.append('-'); + int month = calendar.get(Calendar.MONTH) + 1; + if (month < 10) { + buf.append('0'); + } + buf.append(month); + buf.append('-'); + int date = calendar.get(Calendar.DATE); + if (date < 10) { + buf.append('0'); + } + buf.append(date); + } + + // hh:mm:ss + protected static void addTime(StringBuilder buf, Calendar calendar) { + if (buf.length() > 0) { + buf.append(' '); + } + int hour = calendar.get(Calendar.HOUR_OF_DAY); + if (hour < 10) { + buf.append('0'); + } + buf.append(hour); + buf.append(':'); + int minute = calendar.get(Calendar.MINUTE); + if (minute < 10) { + buf.append('0'); + } + buf.append(minute); + buf.append(':'); + int second = calendar.get(Calendar.SECOND); + if (second < 10) { + buf.append('0'); + } + buf.append(second); + } + + // .000 + protected static void addTimeDecimalPart(StringBuilder buf, int decimalPart) { + if (decimalPart == 0) { + return; + } + if (buf.length() > 0) { + buf.append('.'); + } + buf.append(decimalPart); + } + + // 'text' + protected static String quote(String text) { + return "'" + text + "'"; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,137 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,101 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various; + +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaData { + + //========================================================================== + // ========= + // Attribute + // ========= + private String procedureName; + + private Map unorderedMap = createUnorderedMap(); + + private Map parameterTypes = createParameterTypes(); + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureMetaData(final String procedureName) { + this.procedureName = procedureName; + } + + //========================================================================== + // ========= + // Factory + // ======= + protected Map createUnorderedMap() { + return new HashMap(); + } + + protected Map createParameterTypes() { + return new TreeMap( + new ParameterComparator()); + } + + protected class ParameterComparator implements Comparator { + public int compare(String o1, String o2) { + final int oneGreaterThanTwo = 1; + final int twoGreaterThanOne = -1; + final InternalProcedureParameterType parameterType1 = unorderedMap + .get(o1); + final InternalProcedureParameterType parameterType2 = unorderedMap + .get(o2); + if (parameterType1.isReturnType()) { + return twoGreaterThanOne; // Return type is prior + } + if (parameterType2.isReturnType()) { + return oneGreaterThanTwo; // Return type is prior + } + final Integer parameterIndex1 = parameterType1.getParameterIndex(); + final Integer parameterIndex2 = parameterType2.getParameterIndex(); + if (parameterIndex1 == null && parameterIndex2 == null) { + return oneGreaterThanTwo; // No changes + } + if (parameterIndex1 != null && parameterIndex2 == null) { + return twoGreaterThanOne; // Not null is prior + } + if (parameterIndex1 == null && parameterIndex2 != null) { + return oneGreaterThanTwo; // Not null is prior + } + return parameterIndex1.compareTo(parameterIndex2); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getProcedureName() { + return procedureName; + } + + public Collection parameterTypes() { + return parameterTypes.values(); + } + + public void addParameterType( + final InternalProcedureParameterType parameterType) { + final String name = parameterType.getParameterName(); + unorderedMap.put(name, parameterType); + parameterTypes.put(name, parameterType); + if (parameterType.isReturnType()) { + returnType = true; + } + } + + public boolean hasReturnParameterType() { + return returnType; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,232 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; + +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.util.TypeUtil; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaDataFactory { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); + + //========================================================================== + // ========= + // Main + // ==== + public InternalProcedureMetaData createProcedureMetaData( + final String procedureName, final Class pmbType) { + final InternalProcedureMetaData metaData = new InternalProcedureMetaData( + procedureName); + if (pmbType == null) { + return metaData; + } else { + if (!isDtoType(pmbType)) { + throw new IllegalStateException( + "The pmb type was Not DTO type: " + pmbType.getName()); + } + } + final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); + + // *Point + final Stack> stack = new Stack>(); + for (Class clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz + .getSuperclass()) { + stack.push(clazz); + } + for (; !stack.isEmpty();) { + final Class clazz = stack.pop(); + registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields()); + } + + return metaData; + } + + protected void registerParameterType(InternalProcedureMetaData metaData, + BeanDesc pmbDesc, Field[] fields) { + for (Field field : fields) { + if (!isInstanceField(field)) { + continue; + } + final InternalProcedureParameterType ppt = getProcedureParameterType( + pmbDesc, field); + if (ppt == null) { + continue; + } + metaData.addParameterType(ppt); + } + } + + protected InternalProcedureParameterType getProcedureParameterType( + final BeanDesc dtoDesc, final Field field) { + final String procedureParameter = annotationReader + .getProcedureParameter(dtoDesc, field); + if (procedureParameter == null) { + return null; + } + final String type = extractParameterType(procedureParameter); + field.setAccessible(true); + final InternalProcedureParameterType ppt = new InternalProcedureParameterType( + field); + if (type.equalsIgnoreCase("in")) { + ppt.setInType(true); + } else if (type.equalsIgnoreCase("out")) { + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("inout")) { + ppt.setInType(true); + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("return")) { + ppt.setOutType(true); + ppt.setReturnType(true); + } else { + String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterType=" + type; + throw new IllegalStateException(msg); + } + final Integer index = extractParameterIndex(procedureParameter, field); + ppt.setParameterIndex(index); + final ValueType valueType = getValueType(dtoDesc, field); + ppt.setValueType(valueType); + return ppt; + } + + protected String extractParameterType(String procedureParameter) { + if (procedureParameter.contains(",")) { + return procedureParameter.substring(0, + procedureParameter.indexOf(",")).trim(); + } + return procedureParameter.trim(); + } + + protected Integer extractParameterIndex(String procedureParameter, + Field field) { + if (procedureParameter.contains(",")) { + String tmp = procedureParameter.substring( + procedureParameter.indexOf(",") + ",".length()).trim(); + try { + return Integer.valueOf(tmp); + } catch (NumberFormatException e) { + String msg = "The parameter index should be number:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + + procedureParameter; + throw new IllegalStateException(msg, e); + } + } + return null; + } + + protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) { + final String name = annotationReader.getValueType(dtoDesc, field); + if (name != null) { + return valueTypeFactory.getValueTypeByName(name); + } + final Class type = field.getType(); + if (List.class.isAssignableFrom(type)) {// is for out parameter cursor. + if (ConditionBeanContext.isOracle()) { + return ValueTypes.ORACLE_RESULT_SET; + } else if (ConditionBeanContext.isPostgreSql()) { + return ValueTypes.POSTGRE_RESULT_SET; + } else { + return ValueTypes.SERIALIZABLE_BYTE_ARRAY; + } + } + return valueTypeFactory.getValueTypeByClass(type); + } + + protected boolean isInstanceField(final Field field) { + final int mod = field.getModifiers(); + return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); + } + + protected boolean isDtoType(final Class clazz) { + return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); + } + + protected boolean isContainerType(final Class clazz) { + if (clazz == null) { + throw new NullPointerException("clazz"); + } + return Collection.class.isAssignableFrom(clazz) + || Map.class.isAssignableFrom(clazz) || clazz.isArray(); + } + + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected static class InternalFieldProcedureAnnotationReader { + protected String PROCEDURE_PARAMETER_SUFFIX; + + protected String VALUE_TYPE_SUFFIX; + + public InternalFieldProcedureAnnotationReader() { + PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; + VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; + } + + public String getProcedureParameter(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + public String getValueType(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + VALUE_TYPE_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + protected String removeInstanceVariablePrefix(String fieldName) { + return fieldName.startsWith("_") ? fieldName + .substring("_".length()) : fieldName; + } + + protected Object getValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,112 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureParameterType { + + //========================================================================== + // ========= + // Attribute + // ========= + private String parameterName; + + private Integer parameterIndex; + + private Field field; + + private ValueType valueType; + + private boolean inType; + + private boolean outType; + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureParameterType(Field field) { + this.field = field; + this.parameterName = field.getName(); + } + + //========================================================================== + // ========= + // Field Value + // =========== + public Object getValue(Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + public void setValue(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + String msg = "The setting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getParameterName() { + return parameterName; + } + + public Integer getParameterIndex() { + return parameterIndex; + } + + public void setParameterIndex(Integer parameterIndex) { + this.parameterIndex = parameterIndex; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(final ValueType valueType) { + this.valueType = valueType; + } + + public boolean isInType() { + return inType; + } + + public void setInType(final boolean inType) { + this.inType = inType; + } + + public boolean isOutType() { + return outType; + } + + public void setOutType(final boolean outType) { + this.outType = outType; + } + + public boolean isReturnType() { + return returnType; + } + + public void setReturnType(final boolean returnType) { + this.returnType = returnType; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,327 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.impl.RelationRowCreationResource; +import org.seasar.dao.impl.RelationRowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRelationRowCreator extends RelationRowCreatorImpl { + + @Override + protected Object createRelationRow(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + if (!res.hasPropertyCacheElement()) { + return null; + } + setupRelationKeyValue(res); + setupRelationAllValue(res); + return res.getRow(); + } + + @Override + protected void setupRelationKeyValue(RelationRowCreationResource res) { + final RelationPropertyType rpt = res.getRelationPropertyType(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + final DBMeta dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName()); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); + + if (!res.containsColumnName(columnName)) { + continue; + } + if (!res.hasRowInstance()) { + final Object row; + if (dbmeta != null) { + row = dbmeta.newEntity(); + } else { + row = newRelationRow(rpt); + } + res.setRow(row); + } + if (!res.containsRelKeyValueIfExists(columnName)) { + continue; + } + final Object value = res.extractRelKeyValue(columnName); + if (value == null) { + continue; + } + + final String yourKey = rpt.getYourKey(i); + final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey); + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + continue; + } + } + + protected Object createRelationRowInstance(DBMeta dbmeta) { + if (dbmeta != null) { + return dbmeta.newEntity(); + } + return null; + } + + protected DBMeta findDBMeta(Class rowType, String tableName) { + return InternalRowCreator.findDBMeta(rowType, tableName); + } + + @SuppressWarnings("unchecked") + @Override + protected void setupRelationAllValue(RelationRowCreationResource res) + throws SQLException { + final Map propertyCacheElement = res.extractPropertyCacheElement(); + final Set columnNameCacheElementKeySet = propertyCacheElement.keySet(); + for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite + .hasNext();) { + final String columnName = (String) ite.next(); + final PropertyType pt = (PropertyType) propertyCacheElement + .get(columnName); + res.setCurrentPropertyType(pt); + if (!isValidRelationPerPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + setupRelationProperty(res); + } + if (!isValidRelationAfterPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + res.clearValidValueCount(); + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + setupNextRelationRow(res); + } + } + + @Override + protected void registerRelationValue(RelationRowCreationResource res, + String columnName) throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + Object value = null; + if (res.containsRelKeyValueIfExists(columnName)) { + value = res.extractRelKeyValue(columnName); + } else { + final ValueType valueType = pt.getValueType(); + value = valueType.getValue(res.getResultSet(), columnName); + } + + if (value != null) { + res.incrementValidValueCount(); + final DBMeta dbmeta = findDBMeta(res.getRow()); + final String propertyName = pt.getPropertyName(); + if (dbmeta != null + && dbmeta.hasEntityPropertySetupper(propertyName)) { + dbmeta.setupEntityProperty(propertyName, res.getRow(), value); + } else { + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + } + } + } + + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + protected DBMeta findDBMeta(Object row) { + return InternalRowCreator.findDBMeta(row); + } + + @Override + protected void setupPropertyCache(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + res.initializePropertyCacheElement(); + + // Do only selected foreign property for performance if condition-bean + // exists. + if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) { + return; + } + + // Set up property cache about current beanMetaData. + final BeanMetaData nextBmd = res.getRelationBeanMetaData(); + for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { + final PropertyType pt = nextBmd.getPropertyType(i); + res.setCurrentPropertyType(pt); + if (!isTargetProperty(res)) { + continue; + } + setupPropertyCacheElement(res); + } + + // Set up next relation. + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + res.backupRelationPropertyType(); + res.incrementCurrentRelationNestLevel(); + try { + setupNextPropertyCache(res, nextBmd); + } finally { + res.restoreRelationPropertyType(); + res.decrementCurrentRelationNestLevel(); + } + } + } + + @Override + protected boolean isTargetProperty(RelationRowCreationResource res) + throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + if (!pt.getPropertyDesc().hasWriteMethod()) { + return false; + } + if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() + .getPropertyType())) { + return false; + } + return true; + } + + @Override + protected boolean isCreateDeadLink() { + return false; + } + + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForRow(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues, + Map relationPropertyCache) throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setResultSet(rs); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelKeyValues(relKeyValues); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix("");// as Default + res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); + res.setLimitRelationNestLevel(getLimitRelationNestLevel()); + res.setCurrentRelationNestLevel(1);// as Default + res.setCreateDeadLink(isCreateDeadLink()); + return res; + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForPropertyCache( + RelationPropertyType rpt, Set columnNames, + Map relationPropertyCache, String baseSuffix, + String relationNoSuffix, int limitRelationNestLevel) + throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix(baseSuffix); + res.setRelationNoSuffix(relationNoSuffix); + res.setLimitRelationNestLevel(limitRelationNestLevel); + res.setCurrentRelationNestLevel(1);// as Default + return res; + } + + protected boolean isConditionBeanSelectedRelation( + RelationRowCreationResource res) { + if (hasConditionBean(res)) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo( + res.getRelationNoSuffix())) { + return true; + } + } + return false; + } + + protected boolean hasConditionBean(RelationRowCreationResource res) { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) { + return true; + } + return false; + } + + protected static class RelationRowCreationResourceExtension extends + RelationRowCreationResource { + protected Stack backupRelationPropertyType = new Stack(); + + protected Stack backupBaseSuffix = new Stack(); + + protected Stack backupRelationSuffix = new Stack(); + + @Override + public void backupRelationPropertyType() { + backupRelationPropertyType.push(getRelationPropertyType()); + } + + @Override + public void restoreRelationPropertyType() { + setRelationPropertyType(backupRelationPropertyType.pop()); + } + + @Override + public void backupSuffixAndPrepare(String baseSuffix, + String additionalRelationNoSuffix) { + backupBaseSuffixExtension(); + backupRelationNoSuffixExtension(); + setBaseSuffix(baseSuffix); + addRelationNoSuffix(additionalRelationNoSuffix); + } + + @Override + public void restoreSuffix() { + restoreBaseSuffixExtension(); + restoreRelationNoSuffixExtension(); + } + + protected void backupBaseSuffixExtension() { + backupBaseSuffix.push(getBaseSuffix()); + } + + protected void restoreBaseSuffixExtension() { + setBaseSuffix(backupBaseSuffix.pop()); + } + + protected void backupRelationNoSuffixExtension() { + backupRelationSuffix.push(getRelationNoSuffix()); + } + + protected void restoreRelationNoSuffixExtension() { + setRelationNoSuffix(backupRelationSuffix.pop()); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRowCreator.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRowCreator.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRowCreator.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,289 @@ +package jp.sf.pal.userinfo.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.InternalMapContext; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.impl.RowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRowCreator extends RowCreatorImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalRowCreator.class); + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta _dbmeta; + + //========================================================================== + // ========= + // Constructor + // =========== + protected InternalRowCreator() { + } + + /** + * @param beanClass The class of target bean to find DB-meta. (Nullable) + * @return The instance of internal row creator. (NotNull) + */ + public static InternalRowCreator createInternalRowCreator(Class beanClass) { + final InternalRowCreator rowCreator = new InternalRowCreator(); + if (beanClass != null) { + rowCreator.setDBMeta(findDBMetaByClass(beanClass)); + } + return rowCreator; + } + + //========================================================================== + // ========= + // Main + // ==== + @SuppressWarnings("unchecked") + @Override + public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) + throws SQLException { + final Set columnNameSet = propertyCache.keySet(); + String columnName = null; + PropertyType pt = null; + String propertyName = null; + final Object row; + final DBMeta dbmeta; + if (_dbmeta != null) { + dbmeta = _dbmeta; + row = dbmeta.newEntity(); + } else { + row = newBean(beanClass); + dbmeta = findDBMeta(row); + } + try { + if (dbmeta != null) { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + if (dbmeta.hasEntityPropertySetupper(propertyName)) { + final ValueType valueType = pt.getValueType(); + final Object value = valueType.getValue(rs, columnName); + dbmeta.setupEntityProperty(propertyName, row, value); + } else { + registerValue(rs, row, pt, columnName); + } + } + } else { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + registerValue(rs, row, pt, columnName); + } + } + return row; + } catch (ClassCastException e) { + if (_log.isWarnEnabled()) { + String msg = ClassCastException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName + " dbmeta"); + } + throwNonsenseClassCastException(row, dbmeta, e); + return null; // Unreachable! + } catch (SQLException e) { + if (_log.isWarnEnabled()) { + String msg = SQLException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName); + } + throw e; + } + } + + protected void throwNonsenseClassCastException(Object entity, + DBMeta dbmeta, ClassCastException e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "This exception may be from ClassLoader Headache about HotDeploy." + + getLineSeparator(); + msg = msg + + "Please add the ignore-package setting to convention.dicon like as follows:" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + + getLineSeparator(); + msg = msg + " ¡Écom.example.xxx.dbflute¡É" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + + entity.getClass().getClassLoader() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + + dbmeta.getClass().getClassLoader() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new NonsenseClassCastException(msg, e); + } + + public static class NonsenseClassCastException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public NonsenseClassCastException(String msg, ClassCastException e) { + super(msg, e); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Object row) { + return DBMetaCacheHandler.findDBMeta(row); + } + + /** + * @param rowType The type of row. (NotNull) + * @param tableName The name of table. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Class rowType, String tableName) { + return DBMetaCacheHandler.findDBMeta(rowType, tableName); + } + + protected static class DBMetaCacheHandler { + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + public static DBMeta findDBMeta(Object row) { + if (!(row instanceof Entity)) { + return null; + } + final Entity entity = (Entity) row; + DBMeta dbmeta = findCachedDBMeta(entity.getClass()); + if (dbmeta != null) { + return dbmeta; + } + dbmeta = entity.getDBMeta(); + cacheDBMeta(entity, dbmeta); + return dbmeta; + } + + public static DBMeta findDBMeta(Class rowType, String tableName) { + DBMeta dbmeta = findCachedDBMeta(rowType); + if (dbmeta != null) { + return dbmeta; + } + try { + dbmeta = DBMetaInstanceHandler.findDBMeta(tableName); + } catch (DBMetaInstanceHandler.DBMetaNotFoundException ignored) { + return null; + } + cacheDBMeta(rowType, dbmeta); + return dbmeta; + } + + protected static DBMeta findCachedDBMeta(Class rowType) { + Map, DBMeta> dbmetaCache = findDBMetaCache(); + if (dbmetaCache == null) { + dbmetaCache = new HashMap, DBMeta>(); + InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); + } + return dbmetaCache.get(rowType); + } + + protected static void cacheDBMeta(Entity entity, DBMeta dbmeta) { + cacheDBMeta(entity.getClass(), dbmeta); + } + + protected static void cacheDBMeta(Class type, DBMeta dbmeta) { + final Map, DBMeta> dbmetaCache = findDBMetaCache(); + dbmetaCache.put(type, dbmeta); + } + + @SuppressWarnings("unchecked") + protected static Map, DBMeta> findDBMetaCache() { + return (Map, DBMeta>) InternalMapContext + .getObject(DBMETA_CACHE_KEY); + } + } + + protected static DBMeta findDBMetaByClass(Class beanClass) { + final Object instance = newInstance(beanClass); + if (!(instance instanceof Entity)) { + return null; + } + return ((Entity) instance).getDBMeta(); + } + + protected static Object newInstance(Class clazz) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setDBMeta(DBMeta dbmeta) { + this._dbmeta = dbmeta; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/s2dao/internal/various/InternalRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleAssertUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleAssertUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleAssertUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,54 @@ +package jp.sf.pal.userinfo.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleAssertUtil { + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + public static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + public static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleAssertUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleStringUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleStringUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleStringUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,67 @@ +package jp.sf.pal.userinfo.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringUtil { + + //========================================================================== + // ========= + // String + // ====== + public static String replace(String text, String fromText, String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + int pos = 0; + int pos2 = 0; + do { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + sb.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + sb.append(text.substring(pos2, pos)); + sb.append(toText); + pos2 = pos + fromText.length(); + } else { + sb.append(text.substring(pos2)); + return sb.toString(); + } + } while (true); + } + + public static String initCap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + + public static String initUncap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleStringUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleSystemUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleSystemUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleSystemUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleSystemUtil { + + //========================================================================== + // ========= + // System + // ====== + public static String getLineSeparator() { + // /- - - - - - - - - - - - - - - - - - - - - - + // Because 'CR + LF' caused many trouble! + // And Now 'LF' have little trouble. + // + // return System.getProperty("line.separator"); + // - - - - - - - - - -/ + return "\n"; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/SimpleSystemUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/TraceViewUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/TraceViewUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/TraceViewUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,67 @@ +package jp.sf.pal.userinfo.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TraceViewUtil { + + /** + * Convert to performance view. + * + * @param afterMinusBefore The value of after-minus-before millisecond. + * @return Performance view. (ex. 1m23s456ms) (NotNull) + */ + public static String convertToPerformanceView(long afterMinusBefore) { + if (afterMinusBefore < 0) { + return String.valueOf(afterMinusBefore); + } + + long sec = afterMinusBefore / 1000; + final long min = sec / 60; + sec = sec % 60; + final long mil = afterMinusBefore % 1000; + + final StringBuffer sb = new StringBuffer(); + if (min >= 10) { // Minute + sb.append(min).append("m"); + } else if (min < 10 && min >= 0) { + sb.append("0").append(min).append("m"); + } + if (sec >= 10) { // Second + sb.append(sec).append("s"); + } else if (sec < 10 && sec >= 0) { + sb.append("0").append(sec).append("s"); + } + if (mil >= 100) { // Millisecond + sb.append(mil).append("ms"); + } else if (mil < 100 && mil >= 10) { + sb.append("0").append(mil).append("ms"); + } else if (mil < 10 && mil >= 0) { + sb.append("00").append(mil).append("ms"); + } + + return sb.toString(); + } + + /** + * Convert object array to string view. + * + * @param objArray The array of object. (Nullable) + * @return The string divided with comma. (NotNull: If the argument is null, + * returns empty string.) + */ + public static String convertObjectArrayToStringView(Object[] objArray) { + if (objArray == null) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < objArray.length; i++) { + if (i == 0) { + sb.append(objArray[i]); + } else { + sb.append(", ").append(objArray[i]); + } + } + return sb.toString(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/TraceViewUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/ValueLabelUtil.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/ValueLabelUtil.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/ValueLabelUtil.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,65 @@ +package jp.sf.pal.userinfo.db.allcommon.util; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelUtil { + + /** + * Find the label by the value from the list of value label. + * + * @param valueLabelList The list of value label. (NotNull and NotEmpty) + * @param value Value. (NotNull) + * @return Label. (NotNull) + */ + public static String findLabel(List> valueLabelList, + Object value) { + if (valueLabelList == null) { + String msg = "The arguement[valueLabelList] should not be null."; + throw new IllegalArgumentException(msg); + } + if (valueLabelList.isEmpty()) { + String msg = "The arguement[valueLabelList] should not be empty."; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The arguement[value] should not be null."; + throw new IllegalArgumentException(msg); + } + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + if (value.equals(currentValue)) { + return (String) elementMap.get("label"); + } + } + String msg = "Not found label by the value: value=" + value + + " valueLabelList=" + valueLabelList; + throw new IllegalStateException(msg); + } + + public static Map createValueLabelMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentValue, currentLabel); + } + return resultMap; + } + + public static Map createLabelValueMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentLabel, currentValue); + } + return resultMap; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/util/ValueLabelUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,803 @@ +package jp.sf.pal.userinfo.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.DaoWritable; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv; +import jp.sf.pal.userinfo.db.exdao.GroupInfoDao; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
+ * [primary-key]
+ *     GROUP_ID
+ * 
+ * [column]
+ *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.userinfo.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
+     * cb.query().setGroupId_InScope(pkList);
+     * cb.query().addOrderBy_GroupId_Asc();
+     * 
+ * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,801 @@ +package jp.sf.pal.userinfo.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.DaoWritable; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv; +import jp.sf.pal.userinfo.db.exdao.RoleInfoDao; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
+ * [primary-key]
+ *     ROLE_ID
+ * 
+ * [column]
+ *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.userinfo.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
+     * cb.query().setRoleId_InScope(pkList);
+     * cb.query().addOrderBy_RoleId_Asc();
+     * 
+ * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,738 @@ +package jp.sf.pal.userinfo.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.DaoWritable; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exdao.UserInfoDao; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
+ * [primary-key]
+ *     USER_ID
+ * 
+ * [column]
+ *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     GROUP_INFO, ROLE_INFO
+ * 
+ * [referrer-table]
+ *     
+ * 
+ * [foreign-property]
+ *     groupInfo, roleInfo
+ * 
+ * [referrer-property]
+ * 
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.userinfo.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupInfoDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupInfoDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupInfoDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.bsdao; + +import java.util.List; + +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.userinfo.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleInfoDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleInfoDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleInfoDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.bsdao; + +import java.util.List; + +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends + jp.sf.pal.userinfo.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsUserInfoDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsUserInfoDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsUserInfoDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.bsdao; + +import java.util.List; + +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends + jp.sf.pal.userinfo.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,580 @@ +package jp.sf.pal.userinfo.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
+ * + *
+ * [primary-key]
+ *     GROUP_ID
+ * 
+ * [column]
+ *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
+ * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
+ * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
+ * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
+ * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
+ * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
+ * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
+ * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
+ * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
+ * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
+ * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
+ * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
+ * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
+ * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
+ * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
+ * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
+ * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
+ * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
+ * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
+ * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
+ * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
+ * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
+ * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
+ * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
+ * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,580 @@ +package jp.sf.pal.userinfo.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
+ * + *
+ * [primary-key]
+ *     ROLE_ID
+ * 
+ * [column]
+ *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     
+ * 
+ * [referrer-table]
+ *     USER_INFO
+ * 
+ * [foreign-property]
+ *     
+ * 
+ * [referrer-property]
+ *     userInfoList
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
+ * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
+ * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
+ * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
+ * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
+ * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
+ * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
+ * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
+ * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
+ * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
+ * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
+ * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
+ * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
+ * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
+ * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
+ * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
+ * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
+ * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
+ * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
+ * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
+ * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
+ * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
+ * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
+ * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
+ * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,742 @@ +package jp.sf.pal.userinfo.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; + +/** + * The entity of USER_INFO that the type is TABLE.
+ * + *
+ * [primary-key]
+ *     USER_ID
+ * 
+ * [column]
+ *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
+ * 
+ * [sequence]
+ *     
+ * 
+ * [identity]
+ *     
+ * 
+ * [version-no]
+ *     VERSIONNO
+ * 
+ * [foreign-table]
+ *     GROUP_INFO, ROLE_INFO
+ * 
+ * [referrer-table]
+ *     
+ * 
+ * [foreign-property]
+ *     groupInfo, roleInfo
+ * 
+ * [referrer-property]
+ * 
+ * 
+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
+ * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
+ * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
+ * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
+ * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
+ * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
+ * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
+ * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
+ * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
+ * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
+ * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
+ * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
+ * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
+ * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
+ * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
+ * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
+ * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
+ * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
+ * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
+ * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
+ * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
+ * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
+ * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
+ * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
+ * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
+ * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
+ * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
+ * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
+ * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
+ * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
+ * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
+ * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
+ * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
+ * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
+ * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,440 @@ +package jp.sf.pal.userinfo.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.userinfo.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.userinfo.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.userinfo.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.userinfo.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,440 @@ +package jp.sf.pal.userinfo.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.userinfo.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.userinfo.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.userinfo.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.userinfo.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,516 @@ +package jp.sf.pal.userinfo.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.userinfo.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.userinfo.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.userinfo.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.userinfo.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupInfoCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupInfoCB.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.userinfo.db.cbean.bs.BsGroupInfoCB { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleInfoCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleInfoCB.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.userinfo.db.cbean.bs.BsRoleInfoCB { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/UserInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/UserInfoCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/UserInfoCB.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.userinfo.db.cbean.bs.BsUserInfoCB { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,281 @@ +package jp.sf.pal.userinfo.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
+     * cb.query().union(new UnionQuery<GroupInfoCB>() {
+     *     public void query(GroupInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
+     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
+     *     public void query(GroupInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,280 @@ +package jp.sf.pal.userinfo.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
+     * cb.query().union(new UnionQuery<RoleInfoCB>() {
+     *     public void query(RoleInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
+     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
+     *     public void query(RoleInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,384 @@ +package jp.sf.pal.userinfo.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.userinfo.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
+     * cb.query().union(new UnionQuery<UserInfoCB>() {
+     *     public void query(UserInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
+     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
+     *     public void query(UserInfoCB unionCB) {
+     *         unionCB.query().setXxx...
+     *     }
+     * });
+     * 
+ * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.cbean.cq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.cbean.cq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/UserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/UserInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/UserInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.cbean.cq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1776 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,1775 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,2413 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,489 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
{select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
{select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,488 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
{select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
{select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,636 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
{select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
{select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,173 @@ +package jp.sf.pal.userinfo.db.cbean.cq.ciq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,172 @@ +package jp.sf.pal.userinfo.db.cbean.cq.ciq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,178 @@ +package jp.sf.pal.userinfo.db.cbean.cq.ciq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupInfoNss.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupInfoNss.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupInfoNss.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,32 @@ +package jp.sf.pal.userinfo.db.cbean.nss; + +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleInfoNss.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleInfoNss.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleInfoNss.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,32 @@ +package jp.sf.pal.userinfo.db.cbean.nss; + +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/UserInfoNss.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/UserInfoNss.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/UserInfoNss.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,50 @@ +package jp.sf.pal.userinfo.db.cbean.nss; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupInfoBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupInfoBhv.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.userinfo.db.bsbhv.BsGroupInfoBhv { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleInfoBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleInfoBhv.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.userinfo.db.bsbhv.BsRoleInfoBhv { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/UserInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/UserInfoBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/UserInfoBhv.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.exbhv; + +/** + * The behavior of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.userinfo.db.bsbhv.BsUserInfoBhv { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupInfoDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupInfoDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupInfoDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.exdao; + +/** + * The dao interface of GROUP_INFO.
+ *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends + jp.sf.pal.userinfo.db.bsdao.BsGroupInfoDao { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleInfoDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleInfoDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleInfoDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.exdao; + +/** + * The dao interface of ROLE_INFO.
+ *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.userinfo.db.bsdao.BsRoleInfoDao { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/UserInfoDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/UserInfoDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/UserInfoDao.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,14 @@ +package jp.sf.pal.userinfo.db.exdao; + +/** + * The dao interface of USER_INFO.
+ *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.userinfo.db.bsdao.BsUserInfoDao { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.exentity; + +/** + * The entity of GROUP_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.userinfo.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.exentity; + +/** + * The entity of ROLE_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.userinfo.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.exentity; + +/** + * The entity of USER_INFO. + *

+ * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

+ * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.userinfo.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/GroupInfoDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/GroupInfoDxo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/GroupInfoDxo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,54 @@ +package jp.sf.pal.userinfo.dxo; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.form.GroupInfoForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface GroupInfoDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("groupId : groupId" // + + ", name : name" // + + ", description : description" // + + ", email : email" // + + ", url : url" // + + ", telephone : telephone" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromGroupInfoToForm(GroupInfo groupInfo, + GroupInfoForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "name : name" // + + ", description : description" // + + ", email : email" // + + ", url : url" // + + ", telephone : telephone" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToGroupInfo(GroupInfoForm form, + GroupInfo groupInfo); + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/GroupInfoDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/RoleInfoDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/RoleInfoDxo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/RoleInfoDxo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,52 @@ +package jp.sf.pal.userinfo.dxo; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.form.RoleInfoForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface RoleInfoDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("roleId : roleId" // + + ", name : name" // + + ", description : description" // + + ", email : email" // + + ", url : url" // + + ", telephone : telephone" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromRoleInfoToForm(RoleInfo roleInfo, RoleInfoForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "name : name" // + + ", description : description" // + + ", email : email" // + + ", url : url" // + + ", telephone : telephone" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToRoleInfo(RoleInfoForm form, RoleInfo roleInfo); + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/RoleInfoDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,62 @@ +package jp.sf.pal.userinfo.dxo; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.db.exentity.UserInfo; +import jp.sf.pal.userinfo.form.UserInfoForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface UserInfoDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("userId : userId" // + + ", givenName : givenName" // + + ", familyName : familyName" // + + ", middleName : middleName" // + + ", givenNameDesc : givenNameDesc" // + + ", familyNameDesc : familyNameDesc" // + + ", email : email" // + + ", url : url" // + + ", telephone : telephone" // + + ", roleId : roleId" // + + ", groupId : groupId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromUserInfoToForm(UserInfo userInfo, UserInfoForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "givenName : givenName" // + + ", familyName : familyName" // + + ", middleName : middleName" // + + ", givenNameDesc : givenNameDesc" // + + ", familyNameDesc : familyNameDesc" // + + ", email : email" // + + ", url : url" // + + ", telephone : telephone" // + + ", roleId : roleId" // + + ", groupId : groupId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToUserInfo(UserInfoForm form, UserInfo userInfo); + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/GroupInfoForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/GroupInfoForm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/GroupInfoForm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,73 @@ +package jp.sf.pal.userinfo.form; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class GroupInfoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6969085674310253357L; + + @IntegerType + public int mode; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 255) + public String groupId; + + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 255) + public String description; + + @Maxbytelength(maxbytelength = 255) + public String email; + + @Maxbytelength(maxbytelength = 255) + public String url; + + @Maxbytelength(maxbytelength = 40) + public String telephone; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + groupId = null; + name = null; + description = null; + email = null; + url = null; + telephone = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/GroupInfoForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/RoleInfoForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/RoleInfoForm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/RoleInfoForm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,73 @@ +package jp.sf.pal.userinfo.form; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RoleInfoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 143961973189344137L; + + @IntegerType + public int mode; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 255) + public String roleId; + + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 255) + public String description; + + @Maxbytelength(maxbytelength = 255) + public String email; + + @Maxbytelength(maxbytelength = 255) + public String url; + + @Maxbytelength(maxbytelength = 40) + public String telephone; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + roleId = null; + name = null; + description = null; + email = null; + url = null; + telephone = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/RoleInfoForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,93 @@ +package jp.sf.pal.userinfo.form; + +import java.io.Serializable; + +import jp.sf.pal.userinfo.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class UserInfoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 3722284856801387318L; + + @IntegerType + public int mode; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Maxbytelength(maxbytelength = 100) + public String givenName; + + @Maxbytelength(maxbytelength = 100) + public String familyName; + + @Maxbytelength(maxbytelength = 50) + public String middleName; + + @Maxbytelength(maxbytelength = 100) + public String givenNameDesc; + + @Maxbytelength(maxbytelength = 100) + public String familyNameDesc; + + @Maxbytelength(maxbytelength = 255) + public String email; + + @Maxbytelength(maxbytelength = 255) + public String url; + + @Maxbytelength(maxbytelength = 40) + public String telephone; + + @Maxbytelength(maxbytelength = 255) + public String roleId; + + @Maxbytelength(maxbytelength = 255) + public String groupId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + userId = null; + givenName = null; + familyName = null; + middleName = null; + givenNameDesc = null; + familyNameDesc = null; + email = null; + url = null; + telephone = null; + roleId = null; + groupId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/GroupInfoPager.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/GroupInfoPager.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/GroupInfoPager.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.pager; + +import jp.sf.pal.userinfo.common.pager.DefaultPager; + +public class GroupInfoPager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + public GroupInfoPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/GroupInfoPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/RoleInfoPager.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/RoleInfoPager.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/RoleInfoPager.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.pager; + +import jp.sf.pal.userinfo.common.pager.DefaultPager; + +public class RoleInfoPager extends DefaultPager { + + private static final long serialVersionUID = -1518841728377756219L; + + public RoleInfoPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/RoleInfoPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/UserInfoPager.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/UserInfoPager.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/UserInfoPager.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ +package jp.sf.pal.userinfo.pager; + +import jp.sf.pal.userinfo.common.pager.DefaultPager; + +public class UserInfoPager extends DefaultPager { + + private static final long serialVersionUID = -1518841728377756219L; + + public UserInfoPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/pager/UserInfoPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +package jp.sf.pal.userinfo.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.userinfo.common.dxo.PagerDxo; +import jp.sf.pal.userinfo.common.util.PagingResultBeanWrapper; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.exbhv.GroupInfoBhv; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.pager.GroupInfoPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class GroupInfoService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient GroupInfoBhv groupInfoBhv; + + private PagerDxo pagerDxo; + + public List getGroupInfoList(GroupInfoPager groupInfoPager) { + + HotdeployUtil.rebuildValue(groupInfoPager); + + GroupInfoCB cb = new GroupInfoCB(); + + cb.fetchFirst(groupInfoPager.getPageSize()); + cb.fetchPage(groupInfoPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_GroupId_Asc(); + + PagingResultBean groupInfoList = groupInfoBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), + groupInfoPager); + groupInfoList.setPageRangeSize(5); + groupInfoPager.setPageNumberList(groupInfoList.pageRange() + .createPageNumberList()); + + return groupInfoList; + } + + public GroupInfo getGroupInfo(String groupId) { + GroupInfoCB cb = new GroupInfoCB(); + + // setup + + cb.query().setGroupId_Equal(groupId); + return groupInfoBhv.selectEntity(cb); + } + + public void store(GroupInfo groupInfo) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + groupInfo.setUpdatedTime(now); + + if (groupInfo.getCreatedTime() == null) { + // create + groupInfo.setCreatedTime(now); + } + groupInfoBhv.insertOrUpdate(groupInfo); + } + + public void disable(String groupId, String name) { + // not delete + GroupInfoCB cb = new GroupInfoCB(); + + cb.query().setGroupId_Equal(groupId); + GroupInfo groupInfo = groupInfoBhv.selectEntity(cb); + + // TODO throw an exception + + groupInfo.setDeletedBy(name); + groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); + groupInfoBhv.update(groupInfo); + } + + public GroupInfoBhv getGroupInfoBhv() { + return groupInfoBhv; + } + + public void setGroupInfoBhv(GroupInfoBhv messageBhv) { + this.groupInfoBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,103 @@ +package jp.sf.pal.userinfo.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.userinfo.common.dxo.PagerDxo; +import jp.sf.pal.userinfo.common.util.PagingResultBeanWrapper; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.exbhv.RoleInfoBhv; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.pager.RoleInfoPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class RoleInfoService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient RoleInfoBhv roleInfoBhv; + + private PagerDxo pagerDxo; + + public List getRoleInfoList(RoleInfoPager roleInfoPager) { + + HotdeployUtil.rebuildValue(roleInfoPager); + + RoleInfoCB cb = new RoleInfoCB(); + + cb.fetchFirst(roleInfoPager.getPageSize()); + cb.fetchPage(roleInfoPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_RoleId_Asc(); + + PagingResultBean roleInfoList = roleInfoBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(roleInfoList), + roleInfoPager); + roleInfoList.setPageRangeSize(5); + roleInfoPager.setPageNumberList(roleInfoList.pageRange() + .createPageNumberList()); + + return roleInfoList; + } + + public RoleInfo getRoleInfo(String roleId) { + RoleInfoCB cb = new RoleInfoCB(); + + // setup + + cb.query().setRoleId_Equal(roleId); + return roleInfoBhv.selectEntity(cb); + } + + public void store(RoleInfo roleInfo) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + roleInfo.setUpdatedTime(now); + + if (roleInfo.getCreatedTime() == null) { + // create + roleInfo.setCreatedTime(now); + } + roleInfoBhv.insertOrUpdate(roleInfo); + } + + public void disable(String roleId, String name) { + // not delete + RoleInfoCB cb = new RoleInfoCB(); + + cb.query().setRoleId_Equal(roleId); + RoleInfo roleInfo = roleInfoBhv.selectEntity(cb); + + // TODO throw an exception + + roleInfo.setDeletedBy(name); + roleInfo.setDeletedTime(new Timestamp(new Date().getTime())); + roleInfoBhv.update(roleInfo); + } + + public RoleInfoBhv getRoleInfoBhv() { + return roleInfoBhv; + } + + public void setRoleInfoBhv(RoleInfoBhv messageBhv) { + this.roleInfoBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,111 @@ +package jp.sf.pal.userinfo.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.userinfo.common.dxo.PagerDxo; +import jp.sf.pal.userinfo.common.util.PagingResultBeanWrapper; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv; +import jp.sf.pal.userinfo.db.exentity.UserInfo; +import jp.sf.pal.userinfo.pager.UserInfoPager; + +import org.apache.commons.lang.StringUtils; +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class UserInfoService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient UserInfoBhv userInfoBhv; + + private PagerDxo pagerDxo; + + public List getUserInfoList(UserInfoPager userInfoPager) { + + HotdeployUtil.rebuildValue(userInfoPager); + + UserInfoCB cb = new UserInfoCB(); + + cb.fetchFirst(userInfoPager.getPageSize()); + cb.fetchPage(userInfoPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_UserId_Asc(); + + PagingResultBean userInfoList = userInfoBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(userInfoList), + userInfoPager); + userInfoList.setPageRangeSize(5); + userInfoPager.setPageNumberList(userInfoList.pageRange() + .createPageNumberList()); + + return userInfoList; + } + + public UserInfo getUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + cb.query().setUserId_Equal(userId); + return userInfoBhv.selectEntity(cb); + } + + public void store(UserInfo userInfo) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + userInfo.setUpdatedTime(now); + + if (StringUtils.isEmpty(userInfo.getGroupId())) { + userInfo.setGroupId(null); + } + if (StringUtils.isEmpty(userInfo.getRoleId())) { + userInfo.setRoleId(null); + } + + if (userInfo.getCreatedTime() == null) { + // create + userInfo.setCreatedTime(now); + } + userInfoBhv.insertOrUpdate(userInfo); + } + + public void disable(String userId, String name) { + // not delete + UserInfoCB cb = new UserInfoCB(); + + cb.query().setUserId_Equal(userId); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + + // TODO throw an exception + + userInfo.setDeletedBy(name); + userInfo.setDeletedTime(new Timestamp(new Date().getTime())); + userInfoBhv.update(userInfo); + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv messageBhv) { + this.userInfoBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/app.dicon =================================================================== --- userinfo/trunk/src/main/resources/app.dicon (rev 0) +++ userinfo/trunk/src/main/resources/app.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,11 @@ + + + + + + + + + + Added: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties (rev 0) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,52 @@ +errors.header=
    +errors.footer=
+errors.prefix=
  • +errors.suffix=
  • +msg.header=
      +msg.footer=
    + +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.required.other={0} is required ({1}). +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +success.update_config=Updated configuration. +success.create_userInfo=Created a user information. +success.update_userInfo=Updated the user information. +success.delete_userInfo=Deleted the user information. +success.create_roleInfo=Created a role information. +success.update_roleInfo=Updated the role information. +success.delete_roleInfo=Deleted the role information. +success.create_groupInfo=Created a group information. +success.update_groupInfo=Updated the group information. +success.delete_groupInfo=Deleted the group information. + +errors.failed_to_update_config=Failed to update the configuration. +errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). +errors.failed_to_create_userInfo=Failed to create a new user information. +errors.failed_to_update_userInfo=Failed to update the user information. +errors.failed_to_delete_userInfo=Failed to delete the user information. +errors.could_not_find_userInfo=Could not find the user information({0}). +errors.failed_to_create_roleInfo=Failed to create a new role information. +errors.failed_to_update_roleInfo=Failed to update the role information. +errors.failed_to_delete_roleInfo=Failed to delete the role information. +errors.could_not_find_roleInfo=Could not find the role information({0}). +errors.failed_to_create_groupInfo=Failed to create a new group information. +errors.failed_to_update_groupInfo=Failed to update the group information. +errors.failed_to_delete_groupInfo=Failed to delete the group information. +errors.could_not_find_groupInfo=Could not find the group information({0}). + Property changes on: userinfo/trunk/src/main/resources/application.properties ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/convention.dicon =================================================================== --- userinfo/trunk/src/main/resources/convention.dicon (rev 0) +++ userinfo/trunk/src/main/resources/convention.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,21 @@ + + + + + + "jp.sf.pal.userinfo" + + + "jp.sf.pal.userinfo.common" + + + "jp.sf.pal.userinfo.common.util" + + + + Added: userinfo/trunk/src/main/resources/creator.dicon =================================================================== --- userinfo/trunk/src/main/resources/creator.dicon (rev 0) +++ userinfo/trunk/src/main/resources/creator.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + Added: userinfo/trunk/src/main/resources/customizer.dicon =================================================================== --- userinfo/trunk/src/main/resources/customizer.dicon (rev 0) +++ userinfo/trunk/src/main/resources/customizer.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,58 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + + + + + + + + + traceCustomizer + + + s2DxoCustomizer + + + + + + + Added: userinfo/trunk/src/main/resources/dbflute.dicon =================================================================== --- userinfo/trunk/src/main/resources/dbflute.dicon (rev 0) +++ userinfo/trunk/src/main/resources/dbflute.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,63 @@ + + + + + + + + + "UTF-8" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + Added: userinfo/trunk/src/main/resources/env.txt =================================================================== --- userinfo/trunk/src/main/resources/env.txt (rev 0) +++ userinfo/trunk/src/main/resources/env.txt 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1 @@ +product Property changes on: userinfo/trunk/src/main/resources/env.txt ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/env_ut.txt =================================================================== --- userinfo/trunk/src/main/resources/env_ut.txt (rev 0) +++ userinfo/trunk/src/main/resources/env_ut.txt 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1 @@ +ut \ No newline at end of file Property changes on: userinfo/trunk/src/main/resources/env_ut.txt ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/jdbc.dicon =================================================================== --- userinfo/trunk/src/main/resources/jdbc.dicon (rev 0) +++ userinfo/trunk/src/main/resources/jdbc.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,160 @@ + + + + + + + + + + + + 100 + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:file:" + container.getComponent(@java.lang.Class ¡÷ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/userinfo") + + + "sa" + "" + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + Added: userinfo/trunk/src/main/resources/s2container.dicon =================================================================== --- userinfo/trunk/src/main/resources/s2container.dicon (rev 0) +++ userinfo/trunk/src/main/resources/s2container.dicon 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db =================================================================== (Binary files differ) Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db =================================================================== (Binary files differ) Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db =================================================================== (Binary files differ) Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: userinfo/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,55 @@ + + + + UserInfo + PAL Project + + UserInfoConfig + admin + + + UserInfoManager + admin + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,47 @@ + + + + UserInfoConfig + UserInfo: UserInfo Configuration + Edit configurations. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /config/ + + 0 + + text/html + VIEW + + en + ja + + UserInfo Configuration + Config + UserInfo,URL + + + + UserInfoManager + UserInfo: UserInfo Manager + Edit user information. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /userInfo/ + + 0 + + text/html + VIEW + + en + ja + + UserInfo Manager + UserInfos + UserInfo,URL + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/struts-config.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/struts-config.xml ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,3 @@ + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/validator-rules.xml ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,9 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> + +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,44 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + +

    User ID + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    ÀßÄê¾ðÊó
    ¸áÁ°¶Ð̳³«»Ï»þ´Ö
    ¸áÁ°¶Ð̳½ªÎ»»þ´Ö
    ¸á¸å¶Ð̳½ªÎ»»þ´Ö
    ¸á¸å¶Ð̳½ªÎ»»þ´Ö
    + +
    + +
    +
    + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,87 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirmation of Group Info
    Group ID${f:h(groupId)}
    Name${f:h(name)}
    Description${f:h(description)}
    Email${f:h(email)}
    URL${f:h(url)}
    Telephone Number${f:h(telephone)}
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,72 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Group Detail
    Group ID
    Name
    Description
    Email
    URL
    Telephone Number
    + + +
    +
    +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,27 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,84 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Group +
    + + + + + + + + + + + + + + + + + +
    Group IDName 
    ${f:h(g.groupId)}${f:h(g.name)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${groupInfoPager.currentPageNumber}/${groupInfoPager.allPageCount} (${groupInfoPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,87 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirmation of Role Info
    Role ID${f:h(roleId)}
    Name${f:h(name)}
    Description${f:h(description)}
    Email${f:h(email)}
    URL${f:h(url)}
    Telephone Number${f:h(telephone)}
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,72 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Role Detail
    Role ID
    Name
    Description
    Email
    URL
    Telephone Number
    + + +
    +
    +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,27 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,84 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Role +
    + + + + + + + + + + + + + + + + + +
    Role IDName 
    ${f:h(r.roleId)}${f:h(r.name)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${roleInfoPager.currentPageNumber}/${roleInfoPager.allPageCount} (${roleInfoPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,115 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirmation of User Info
    User ID${f:h(userId)}
    Given Name${f:h(givenName)}
    Given Name(Desc)${f:h(givenNameDesc)}
    Family Name${f:h(familyName)}
    Family Name(Desc)${f:h(familyNameDesc)}
    Middle Name${f:h(middleName)}
    Email${f:h(email)}
    URL${f:h(url)}
    Telephone Number${f:h(telephone)}
    Role + +None + +
    Group + +None + +
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,102 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    User Detail
    User ID
    Given Name
    Given Name(Desc)
    Family Name
    Family Name(Desc)
    Middle Name
    Email
    URL
    Telephone Number
    Role + + + + +
    Group + + + + +
    + + +
    +
    +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,27 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,88 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • User
    • +
    • +
    • Role
    • +
    • +
    • Group
    • +
    • +
    +
    + + +
    + +
    +
    +Create New User +
    + + + + + + + + + + + + + + + + + + + + + +
    User IDGiven NameFamily NameEmail 
    ${f:h(u.userId)}${f:h(u.givenName)}${f:h(u.familyName)}${f:h(u.email)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${userInfoPager.currentPageNumber}/${userInfoPager.allPageCount} (${userInfoPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/web.xml (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-06 13:08:17 UTC (rev 1298) @@ -0,0 +1,168 @@ + + + + UserInfo + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + encodingfilter + /* + + + portletRequestFilter + /* + INCLUDE + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + routingfilter + /* + REQUEST + + + portletRoutingfilter + /* + INCLUDE + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + 1 + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + s2container + /s2container + + + + index.html + index.htm + index.jsp + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Fri Nov 7 09:42:13 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 07 Nov 2008 09:42:13 +0900 Subject: [pal-cvs 3565] [1299] added mysql scheme. Message-ID: <1226018533.807341.944.nullmailer@users.sourceforge.jp> Revision: 1299 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1299 Author: shinsuke Date: 2008-11-07 09:42:13 +0900 (Fri, 07 Nov 2008) Log Message: ----------- added mysql scheme. Added Paths: ----------- timecard/trunk/src/main/config/erd/mysql/ timecard/trunk/src/main/config/erd/mysql/timecard.erd timecard/trunk/src/main/config/sql/mysql/ timecard/trunk/src/main/config/sql/mysql/timecard.ddl -------------- next part -------------- Added: timecard/trunk/src/main/config/erd/mysql/timecard.erd =================================================================== --- timecard/trunk/src/main/config/erd/mysql/timecard.erd (rev 0) +++ timecard/trunk/src/main/config/erd/mysql/timecard.erd 2008-11-07 00:42:13 UTC (rev 1299) @@ -0,0 +1,1466 @@ + + + + + + + monthly_report + Monthly Report + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + true + + + + year + Year + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + month + Month + + 10 + true + false + + false + + + + status + Status + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 1 + + + working_days + Working Days + + DOUBLE + Real + false + 8 + + 10 + true + false + + false + 0 + + + std_working_days + Standard Working Days + + 10 + true + false + + false + 0 + + + holidays + Holidays + + 10 + true + false + + false + 0 + + + paid_holidays + Paid Holidays + + 10 + true + false + + false + 0 + + + working_time + Working Time + + BIGINT + Integer + true + -5 + + 20 + true + false + + false + 0 + + + std_working_time + Standard Working Time + + 20 + true + false + + false + 0 + + + over_time + Overtime Hours + + BIGINT + Integer + true + -5 + + 20 + true + false + + false + 0 + + + mnt_over_time + Midnight Overtime Hours + + 20 + true + false + + false + 0 + + + employee_id + Employee ID + + 10 + true + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + 0 + + + + + 48 + 465 + -1 + -1 + + + + FK_from_monthly_report_to_employee + + + + id + ID + + INTEGER + Integer + false + 4 + + 19 + true + true + + true + + + + + + + + + + employee + Employee + + + + + username + Username + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + manager + Manager + + 255 + true + false + + false + + + + paid_holidays + Paid Holidays + + 200 + true + false + + false + 0 + + + is_available + Is available + + 1 + true + false + + false + 'T' + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created_by + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted by + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + 0 + + + + + 500 + 537 + -1 + -1 + + + + FK_from_employee_to_user_for_username + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + + + + + + + user_info + User Information + + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 507 + 106 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 854 + 79 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 851 + 449 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + FK_from_employee_to_user_for_manager + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + FK_from_daily_report_to_daily_report + + + + + monthly_report_id + Monthly Report ID + + BIGINT + Integer + true + -5 + + 20 + true + false + + false + 0 + + + + + + + daily_report + Daily Report + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + true + + + + date + Date + + 255 + true + false + + false + + + + day_of_week + Day Of Week + + 10 + true + false + + false + + + + date_type + Date Type + + 10 + true + false + + false + + + + working_type + Wokring Type + + 10 + true + false + + false + 1 + + + status + Status + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 1 + + + start_time + Start Time + + TIME + Time + false + 92 + + 10 + false + false + + false + + + + end_time + End Time + + 10 + false + false + + false + + + + break_time + Break Time + + 10 + false + false + + false + + + + otj_time + Off-the-job Time + + 10 + false + false + + false + + + + working_time + Working Time + + 20 + false + false + + false + + + + memo + Memo + + 200 + false + false + + false + + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created_by + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + versionNo + Version No + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 0 + + + + + 40 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + + + MySQL + false + + sun.jdbc.odbc.JdbcOdbc + + + + + + false + + + + 2 + + + + + + \ No newline at end of file Added: timecard/trunk/src/main/config/sql/mysql/timecard.ddl =================================================================== --- timecard/trunk/src/main/config/sql/mysql/timecard.ddl (rev 0) +++ timecard/trunk/src/main/config/sql/mysql/timecard.ddl 2008-11-07 00:42:13 UTC (rev 1299) @@ -0,0 +1,143 @@ +DROP TABLE daily_report; +DROP TABLE monthly_report; +DROP TABLE employee; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; + +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Employee +**********************************/ +CREATE TABLE employee( + id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, + username VARCHAR(255) NOT NULL, + manager VARCHAR(255) NOT NULL, + paid_holidays DOUBLE NOT NULL DEFAULT 0, + is_available VARCHAR(1) NOT NULL DEFAULT 'T', + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL DEFAULT 0, + FOREIGN KEY (username) REFERENCES user_info (user_id), + FOREIGN KEY (manager) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Monthly Report +**********************************/ +CREATE TABLE monthly_report( + id BIGINT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, + year INTEGER NOT NULL, + month INTEGER NOT NULL, + status INTEGER NOT NULL DEFAULT 1, + working_days DOUBLE NOT NULL DEFAULT 0, + std_working_days DOUBLE NOT NULL DEFAULT 0, + holidays DOUBLE NOT NULL DEFAULT 0, + paid_holidays DOUBLE NOT NULL DEFAULT 0, + working_time BIGINT(20) NOT NULL DEFAULT 0, + std_working_time BIGINT(20) NOT NULL DEFAULT 0, + over_time BIGINT(20) NOT NULL DEFAULT 0, + mnt_over_time BIGINT(20) NOT NULL DEFAULT 0, + employee_id INTEGER NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL DEFAULT 0, + FOREIGN KEY (employee_id) REFERENCES employee (id) +); + +/********************************** +Table Name: Daily Report +**********************************/ +CREATE TABLE daily_report( + id BIGINT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, + date INTEGER NOT NULL, + day_of_week INTEGER NOT NULL, + date_type INTEGER NOT NULL, + working_type INTEGER NOT NULL DEFAULT 1, + status INTEGER NOT NULL DEFAULT 1, + start_time TIME, + end_time TIME, + break_time TIME, + otj_time TIME, + working_time BIGINT(20), + memo VARCHAR(200), + monthly_report_id BIGINT(20) NOT NULL DEFAULT 0, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + versionNo INTEGER NOT NULL DEFAULT 0, + FOREIGN KEY (monthly_report_id) REFERENCES monthly_report (id) +); + From svnnotify ¡÷ sourceforge.jp Fri Nov 7 12:32:26 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 07 Nov 2008 12:32:26 +0900 Subject: [pal-cvs 3566] [1300] updated schema, added config pages, updated ui. Message-ID: <1226028746.878713.22289.nullmailer@users.sourceforge.jp> Revision: 1300 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1300 Author: shinsuke Date: 2008-11-07 12:32:26 +0900 (Fri, 07 Nov 2008) Log Message: ----------- updated schema, added config pages, updated ui. Modified Paths: -------------- userinfo/trunk/src/main/config/erd/userinfo.erd userinfo/trunk/src/main/config/sql/userinfo.ddl userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java userinfo/trunk/src/main/resources/dbflute.dicon userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp Added Paths: ----------- userinfo/trunk/mydbflute/README.txt userinfo/trunk/src/main/java/jp/sf/pal/userinfo/UserInfoConstants.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupMappingBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleMappingBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupMappingDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleMappingDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupMapping.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleMapping.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupMappingDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleMappingDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupMappingCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleMappingCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupMappingCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleMappingCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupMappingCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleMappingCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupMappingCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleMappingCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupMappingCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleMappingCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupMappingNss.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleMappingNss.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupMappingBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleMappingBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupMappingDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleMappingDao.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/ConfigForm.java -------------- next part -------------- Added: userinfo/trunk/mydbflute/README.txt =================================================================== --- userinfo/trunk/mydbflute/README.txt (rev 0) +++ userinfo/trunk/mydbflute/README.txt 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: userinfo/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/config/erd/userinfo.erd =================================================================== --- userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-07 03:32:26 UTC (rev 1300) @@ -234,8 +234,8 @@ - 157 - 40 + 185 + 199 -1 -1 @@ -403,13 +403,124 @@ 40 - 484 + 643 -1 -1 + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 44 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + @@ -593,14 +704,120 @@ - 308 - 484 + 364 + 643 -1 -1 + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 372 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + @@ -623,7 +840,10 @@ - + + + + @@ -636,6 +856,8 @@ + + hsqldb Modified: userinfo/trunk/src/main/config/sql/userinfo.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-07 03:32:26 UTC (rev 1300) @@ -1,3 +1,5 @@ +DROP TABLE role_mapping; +DROP TABLE group_mapping; DROP TABLE user_info; DROP TABLE role_info; DROP TABLE group_info; @@ -66,3 +68,25 @@ FOREIGN KEY (role_id) REFERENCES role_info (role_id) ); +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/UserInfoConstants.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/UserInfoConstants.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/UserInfoConstants.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,9 @@ +package jp.sf.pal.userinfo; + +public class UserInfoConstants { + + public static final String ROLE_AVAILABLE = "features.role"; + + public static final String GROUP_AVAILABLE = "features.group"; + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/UserInfoConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,78 @@ +package jp.sf.pal.userinfo.action; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.userinfo.UserInfoConstants; +import jp.sf.pal.userinfo.common.util.ConfigUtil; +import jp.sf.pal.userinfo.common.util.SAStrutsUtil; +import jp.sf.pal.userinfo.form.ConfigForm; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class ConfigAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(ConfigAction.class); + + @ActionForm + private ConfigForm configForm; + + private transient HttpServletRequest request; + + protected String displayIndex() { + configForm.roleAvailable = ConfigUtil.getString( + UserInfoConstants.ROLE_AVAILABLE, "true"); + configForm.groupAvailable = ConfigUtil.getString( + UserInfoConstants.GROUP_AVAILABLE, "true"); + return "index.jsp"; + } + + @Execute(validator = false, input = "index.jsp") + public String index() { + ConfigUtil.init(request); + return displayIndex(); + } + + @Execute(validator = false, input = "index.jsp") + public String update() { + ConfigUtil.init(request); + ConfigUtil.setProperty(UserInfoConstants.ROLE_AVAILABLE, + configForm.roleAvailable); + ConfigUtil.setProperty(UserInfoConstants.GROUP_AVAILABLE, + configForm.groupAvailable); + try { + ConfigUtil.save(); + SAStrutsUtil.addMessage(request, "success.update_config"); + + return displayIndex(); + } catch (ConfigurationException e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_config"); + } + } + + public ConfigForm getConfigForm() { + return configForm; + } + + public void setConfigForm(ConfigForm configForm) { + this.configForm = configForm; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.userinfo.UserInfoConstants; import jp.sf.pal.userinfo.common.CommonConstants; import jp.sf.pal.userinfo.common.dxo.PagerDxo; import jp.sf.pal.userinfo.common.util.ConfigUtil; @@ -276,6 +277,14 @@ private void loadDetailsPageParameters() { } + public boolean isRoleAvailable() { + return ConfigUtil.getBoolean(UserInfoConstants.ROLE_AVAILABLE, true); + } + + public boolean isGroupAvailable() { + return ConfigUtil.getBoolean(UserInfoConstants.GROUP_AVAILABLE, true); + } + /** * @return the request */ Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.userinfo.UserInfoConstants; import jp.sf.pal.userinfo.common.CommonConstants; import jp.sf.pal.userinfo.common.dxo.PagerDxo; import jp.sf.pal.userinfo.common.util.ConfigUtil; @@ -274,6 +275,14 @@ private void loadDetailsPageParameters() { } + public boolean isRoleAvailable() { + return ConfigUtil.getBoolean(UserInfoConstants.ROLE_AVAILABLE, true); + } + + public boolean isGroupAvailable() { + return ConfigUtil.getBoolean(UserInfoConstants.GROUP_AVAILABLE, true); + } + /** * @return the request */ Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -5,14 +5,19 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.userinfo.UserInfoConstants; import jp.sf.pal.userinfo.common.CommonConstants; import jp.sf.pal.userinfo.common.dxo.PagerDxo; import jp.sf.pal.userinfo.common.util.ConfigUtil; import jp.sf.pal.userinfo.common.util.SAStrutsUtil; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; import jp.sf.pal.userinfo.db.exentity.UserInfo; import jp.sf.pal.userinfo.dxo.UserInfoDxo; import jp.sf.pal.userinfo.form.UserInfoForm; import jp.sf.pal.userinfo.pager.UserInfoPager; +import jp.sf.pal.userinfo.service.GroupInfoService; +import jp.sf.pal.userinfo.service.RoleInfoService; import jp.sf.pal.userinfo.service.UserInfoService; import org.apache.commons.logging.Log; @@ -38,6 +43,10 @@ private UserInfoService userInfoService; + private RoleInfoService roleInfoService; + + private GroupInfoService groupInfoService; + private UserInfoPager userInfoPager; private PagerDxo pagerDxo; @@ -274,6 +283,22 @@ private void loadDetailsPageParameters() { } + public List getRoleInfoItems() { + return roleInfoService.getRoleInfoList(); + } + + public List getGroupInfoItems() { + return groupInfoService.getGroupInfoList(); + } + + public boolean isRoleAvailable() { + return ConfigUtil.getBoolean(UserInfoConstants.ROLE_AVAILABLE, true); + } + + public boolean isGroupAvailable() { + return ConfigUtil.getBoolean(UserInfoConstants.GROUP_AVAILABLE, true); + } + /** * @return the request */ @@ -328,4 +353,20 @@ this.userInfoDxo = userInfoDxo; } + public RoleInfoService getRoleInfoService() { + return roleInfoService; + } + + public void setRoleInfoService(RoleInfoService roleInfoService) { + this.roleInfoService = roleInfoService; + } + + public GroupInfoService getGroupInfoService() { + return groupInfoService; + } + + public void setGroupInfoService(GroupInfoService groupInfoService) { + this.groupInfoService = groupInfoService; + } + } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -29,8 +29,12 @@ tmpMap.put("GROUP_INFO", "jp.sf.pal.userinfo.db.bsentity.dbmeta.GroupInfoDbm"); + tmpMap.put("GROUP_MAPPING", + "jp.sf.pal.userinfo.db.bsentity.dbmeta.GroupMappingDbm"); tmpMap.put("ROLE_INFO", "jp.sf.pal.userinfo.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("ROLE_MAPPING", + "jp.sf.pal.userinfo.db.bsentity.dbmeta.RoleMappingDbm"); tmpMap.put("USER_INFO", "jp.sf.pal.userinfo.db.bsentity.dbmeta.UserInfoDbm"); @@ -43,7 +47,9 @@ Map tmpMap = new LinkedHashMap(); tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); + tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping"); tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); _tableDbNamePropertyNameKeyToLowerMap = Collections @@ -56,7 +62,9 @@ Map tmpMap = new LinkedHashMap(); tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); + tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING"); tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); _tablePropertyNameDbNameKeyToLowerMap = Collections Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupInfoBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -18,10 +18,13 @@ import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.userinfo.db.bsentity.dbmeta.GroupInfoDbm; import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.GroupMappingBhv; import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv; import jp.sf.pal.userinfo.db.exdao.GroupInfoDao; import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; import jp.sf.pal.userinfo.db.exentity.UserInfo; /** @@ -47,13 +50,13 @@ * * * [referrer-table] - * USER_INFO + * GROUP_MAPPING, USER_INFO * * [foreign-property] * * * [referrer-property] - * userInfoList + * groupMappingList, userInfoList * * * @author DBFlute(AutoGenerator) @@ -282,6 +285,97 @@ // Load Referrer // ============= /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** * Load referrer of userInfoList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and * others too) is treated as case-insensitive.
    The condition-bean Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupMappingBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,602 @@ +package jp.sf.pal.userinfo.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.DaoWritable; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; +import jp.sf.pal.userinfo.db.exdao.GroupMappingDao; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.userinfo.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleInfoBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -18,10 +18,13 @@ import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.userinfo.db.bsentity.dbmeta.RoleInfoDbm; import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.RoleMappingBhv; import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv; import jp.sf.pal.userinfo.db.exdao.RoleInfoDao; import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; import jp.sf.pal.userinfo.db.exentity.UserInfo; /** @@ -47,13 +50,13 @@ * * * [referrer-table] - * USER_INFO + * ROLE_MAPPING, USER_INFO * * [foreign-property] * * * [referrer-property] - * userInfoList + * roleMappingList, userInfoList * * * @author DBFlute(AutoGenerator) @@ -282,6 +285,97 @@ // Load Referrer // ============= /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** * Load referrer of userInfoList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and * others too) is treated as case-insensitive.
    The condition-bean Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleMappingBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,597 @@ +package jp.sf.pal.userinfo.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.userinfo.db.allcommon.DaoReadable; +import jp.sf.pal.userinfo.db.allcommon.DaoWritable; +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; +import jp.sf.pal.userinfo.db.exdao.RoleMappingDao; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.userinfo.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.userinfo.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -5,6 +5,8 @@ import jp.sf.pal.userinfo.db.allcommon.DaoReadable; import jp.sf.pal.userinfo.db.allcommon.DaoWritable; import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ConditionBeanSetupper; import jp.sf.pal.userinfo.db.allcommon.bhv.setup.ValueLabelSetupper; import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; import jp.sf.pal.userinfo.db.allcommon.cbean.ListResultBean; @@ -15,10 +17,16 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.userinfo.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.GroupMappingBhv; +import jp.sf.pal.userinfo.db.exbhv.RoleMappingBhv; import jp.sf.pal.userinfo.db.exdao.UserInfoDao; import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; import jp.sf.pal.userinfo.db.exentity.UserInfo; /** @@ -44,13 +52,13 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * + * GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * + * groupMappingList, roleMappingList * * * @author DBFlute(AutoGenerator) @@ -278,7 +286,188 @@ // ========= // Load Referrer // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + //========================================================================== // ========= // Pullout Foreign Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupMappingDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupMappingDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupMappingDao.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,37 @@ +package jp.sf.pal.userinfo.db.bsdao; + +import java.util.List; + +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.userinfo.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleMappingDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleMappingDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleMappingDao.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,37 @@ +package jp.sf.pal.userinfo.db.bsdao; + +import java.util.List; + +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.userinfo.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupInfo.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -7,6 +7,7 @@ import jp.sf.pal.userinfo.db.allcommon.Entity; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; import jp.sf.pal.userinfo.db.exentity.UserInfo; /** @@ -32,13 +33,13 @@ * * * [referrer-table] - * USER_INFO + * GROUP_MAPPING, USER_INFO * * [foreign-property] * * * [referrer-property] - * userInfoList + * groupMappingList, userInfoList * * * @author DBFlute(AutoGenerator) @@ -159,6 +160,36 @@ // Referrer Property // ================= // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [userInfoList] // * * * * * * * * */ /** USER_INFO as 'userInfoList'. */ Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupMapping.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupMapping.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupMapping.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,356 @@ +package jp.sf.pal.userinfo.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleInfo.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -7,6 +7,7 @@ import jp.sf.pal.userinfo.db.allcommon.Entity; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; import jp.sf.pal.userinfo.db.exentity.UserInfo; /** @@ -32,13 +33,13 @@ * * * [referrer-table] - * USER_INFO + * ROLE_MAPPING, USER_INFO * * [foreign-property] * * * [referrer-property] - * userInfoList + * roleMappingList, userInfoList * * * @author DBFlute(AutoGenerator) @@ -159,6 +160,36 @@ // Referrer Property // ================= // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [userInfoList] // * * * * * * * * */ /** USER_INFO as 'userInfoList'. */ Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleMapping.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleMapping.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleMapping.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,356 @@ +package jp.sf.pal.userinfo.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -1,12 +1,16 @@ package jp.sf.pal.userinfo.db.bsentity; +import java.util.ArrayList; +import java.util.List; import java.util.Set; import jp.sf.pal.userinfo.db.allcommon.Entity; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.userinfo.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.userinfo.db.exentity.GroupInfo; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; import jp.sf.pal.userinfo.db.exentity.RoleInfo; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; /** * The entity of USER_INFO that the type is TABLE.
    @@ -31,13 +35,13 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * + * GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * + * groupMappingList, roleMappingList * * * @author DBFlute(AutoGenerator) @@ -232,7 +236,66 @@ // ========= // Referrer Property // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + //========================================================================== // ========= // Determination Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -242,6 +242,13 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + public ReferrerInfo referrerUserInfoList() { Map map = newLinkedHashMap(columnGroupId(), UserInfoDbm.getInstance().columnGroupId()); Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,299 @@ +package jp.sf.pal.userinfo.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.userinfo.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.userinfo.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.userinfo.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.userinfo.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -242,6 +242,13 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + public ReferrerInfo referrerUserInfoList() { Map map = newLinkedHashMap(columnRoleId(), UserInfoDbm.getInstance().columnRoleId()); Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,299 @@ +package jp.sf.pal.userinfo.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.Entity; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.userinfo.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.userinfo.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.userinfo.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.userinfo.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -7,6 +7,7 @@ import jp.sf.pal.userinfo.db.allcommon.dbmeta.AbstractDBMeta; import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ColumnInfo; import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.ReferrerInfo; import jp.sf.pal.userinfo.db.allcommon.dbmeta.info.UniqueInfo; import jp.sf.pal.userinfo.db.exentity.UserInfo; @@ -288,7 +289,20 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + //========================================================================== // ========= // Various Info Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupMappingCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupMappingCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupMappingCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.userinfo.db.cbean.bs.BsGroupMappingCB { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleMappingCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleMappingCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleMappingCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.userinfo.db.cbean.bs.BsRoleMappingCB { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupInfoCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -8,6 +8,7 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; @@ -254,6 +255,19 @@ return "GROUP_INFO"; } + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + public RAFunction derivedUserInfoList() { return new RAFunction(_baseCB, _myQyCall .qy(), new RAQSetupper() { Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupMappingCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,325 @@ +package jp.sf.pal.userinfo.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.userinfo.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleInfoCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -8,6 +8,7 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; @@ -253,6 +254,17 @@ return "ROLE_INFO"; } + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + public RAFunction derivedUserInfoList() { return new RAFunction(_baseCB, _myQyCall .qy(), new RAQSetupper() { Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleMappingCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,325 @@ +package jp.sf.pal.userinfo.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.userinfo.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -8,7 +8,9 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; import jp.sf.pal.userinfo.db.allcommon.cbean.UnionQuery; import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; @@ -367,6 +369,30 @@ } return _roleInfo; } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } } // Very Internal (for Suppressing Warn about 'Not Use Import') Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupMappingCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupMappingCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.cbean.cq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleMappingCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleMappingCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,45 @@ +package jp.sf.pal.userinfo.db.cbean.cq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -9,8 +9,10 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; /** @@ -160,6 +162,36 @@ } /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use inScopeUserInfoList(subQuery) method. */ @@ -189,6 +221,20 @@ abstract public String keepGroupId_InScopeSubQuery_UserInfoList( UserInfoCQ subQuery); + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + public void notInScopeUserInfoList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); UserInfoCB cb = new UserInfoCB(); @@ -204,6 +250,43 @@ UserInfoCQ subQuery); /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use existsUserInfoList(subQuery) method. */ @@ -242,6 +325,28 @@ /** * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from * USER_INFO where ...)} * * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList @@ -261,6 +366,21 @@ abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( UserInfoCQ subQuery); + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + public void xderiveUserInfoList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,465 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -9,8 +9,10 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; /** @@ -160,6 +162,36 @@ } /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use inScopeUserInfoList(subQuery) method. */ @@ -189,6 +221,20 @@ abstract public String keepRoleId_InScopeSubQuery_UserInfoList( UserInfoCQ subQuery); + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + public void notInScopeUserInfoList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); UserInfoCB cb = new UserInfoCB(); @@ -204,6 +250,43 @@ UserInfoCQ subQuery); /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use existsUserInfoList(subQuery) method. */ @@ -240,6 +323,27 @@ UserInfoCQ subQuery); /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO * where ...)} * @@ -260,6 +364,21 @@ abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( UserInfoCQ subQuery); + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + public void xderiveUserInfoList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,464 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.userinfo.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.SubQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; +import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -9,10 +9,14 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.GroupInfoCB; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; import jp.sf.pal.userinfo.db.cbean.RoleInfoCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; /** @@ -162,6 +166,241 @@ } /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * IsNull(is null). And OnceRegistered. */ public void setUserId_IsNull() { Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -6,6 +6,7 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.ciq.GroupInfoCIQ; @@ -85,6 +86,23 @@ return getGroupId(); } + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + protected Map _groupId_InScopeSubQuery_UserInfoListMap; public Map getGroupId_InScopeSubQuery_UserInfoList() { @@ -101,6 +119,23 @@ return "groupId_InScopeSubQuery_UserInfoList." + key; } + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; public Map getGroupId_NotInScopeSubQuery_UserInfoList() { @@ -118,6 +153,23 @@ return "groupId_NotInScopeSubQuery_UserInfoList." + key; } + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + protected Map _groupId_ExistsSubQuery_UserInfoListMap; public Map getGroupId_ExistsSubQuery_UserInfoList() { @@ -134,6 +186,23 @@ return "groupId_ExistsSubQuery_UserInfoList." + key; } + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; public Map getGroupId_NotExistsSubQuery_UserInfoList() { @@ -150,6 +219,23 @@ return "groupId_NotExistsSubQuery_UserInfoList." + key; } + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + protected Map _groupId_DeriveSubQuery_UserInfoListMap; public Map getGroupId_DeriveSubQuery_UserInfoList() { Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,291 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -6,6 +6,7 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.ciq.RoleInfoCIQ; @@ -85,6 +86,23 @@ return getRoleId(); } + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + protected Map _roleId_InScopeSubQuery_UserInfoListMap; public Map getRoleId_InScopeSubQuery_UserInfoList() { @@ -101,6 +119,23 @@ return "roleId_InScopeSubQuery_UserInfoList." + key; } + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; public Map getRoleId_NotInScopeSubQuery_UserInfoList() { @@ -117,6 +152,23 @@ return "roleId_NotInScopeSubQuery_UserInfoList." + key; } + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + protected Map _roleId_ExistsSubQuery_UserInfoListMap; public Map getRoleId_ExistsSubQuery_UserInfoList() { @@ -133,6 +185,23 @@ return "roleId_ExistsSubQuery_UserInfoList." + key; } + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; public Map getRoleId_NotExistsSubQuery_UserInfoList() { @@ -149,6 +218,23 @@ return "roleId_NotExistsSubQuery_UserInfoList." + key; } + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + protected Map _roleId_DeriveSubQuery_UserInfoListMap; public Map getRoleId_DeriveSubQuery_UserInfoList() { Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,291 @@ +package jp.sf.pal.userinfo.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -6,7 +6,9 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.ciq.UserInfoCIQ; @@ -86,6 +88,176 @@ return getUserId(); } + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + public BsUserInfoCQ addOrderBy_UserId_Asc() { regOBA("USER_ID"); return this; Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -6,6 +6,7 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsGroupInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.bs.BsGroupInfoCQ; @@ -95,25 +96,53 @@ return _myCQ.getGroupId(); } + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); } + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + public String keepGroupId_NotInScopeSubQuery_UserInfoList( UserInfoCQ subQuery) { return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); } + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "DeriveSubQuery at inline() is unsupported! Sorry!"); Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,118 @@ +package jp.sf.pal.userinfo.db.cbean.cq.ciq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -6,6 +6,7 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsRoleInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.bs.BsRoleInfoCQ; @@ -95,24 +96,52 @@ return _myCQ.getRoleId(); } + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); } + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); } + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "DeriveSubQuery at inline() is unsupported! Sorry!"); Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,118 @@ +package jp.sf.pal.userinfo.db.cbean.cq.ciq; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.userinfo.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.userinfo.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -6,7 +6,9 @@ import jp.sf.pal.userinfo.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.userinfo.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.userinfo.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.userinfo.db.cbean.cq.UserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.bs.AbstractBsUserInfoCQ; import jp.sf.pal.userinfo.db.cbean.cq.bs.BsUserInfoCQ; @@ -96,6 +98,62 @@ return _myCQ.getUserId(); } + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + protected ConditionValue getCValueGivenName() { return _myCQ.getGivenName(); } Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupMappingNss.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupMappingNss.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupMappingNss.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,50 @@ +package jp.sf.pal.userinfo.db.cbean.nss; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleMappingNss.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleMappingNss.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleMappingNss.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,50 @@ +package jp.sf.pal.userinfo.db.cbean.nss; + +import jp.sf.pal.userinfo.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.userinfo.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupMappingBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupMappingBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupMappingBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.userinfo.db.bsbhv.BsGroupMappingBhv { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleMappingBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleMappingBhv.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleMappingBhv.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends + jp.sf.pal.userinfo.db.bsbhv.BsRoleMappingBhv { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupMappingDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupMappingDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupMappingDao.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.userinfo.db.bsdao.BsGroupMappingDao { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleMappingDao.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleMappingDao.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleMappingDao.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,15 @@ +package jp.sf.pal.userinfo.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.userinfo.db.bsdao.BsRoleMappingDao { +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends jp.sf.pal.userinfo.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.userinfo.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/ConfigForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/ConfigForm.java (rev 0) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/ConfigForm.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -0,0 +1,17 @@ +package jp.sf.pal.userinfo.form; + +import java.io.Serializable; + +import org.seasar.struts.annotation.Required; + +public class ConfigForm implements Serializable { + + private static final long serialVersionUID = 2108115319030589706L; + + @Required(target = "update") + public String roleAvailable; + + @Required(target = "update") + public String groupAvailable; + +} Property changes on: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/ConfigForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -50,6 +50,20 @@ return groupInfoList; } + public List getGroupInfoList() { + + GroupInfoCB cb = new GroupInfoCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_GroupId_Asc(); + + return groupInfoBhv.selectList(cb); + + } + public GroupInfo getGroupInfo(String groupId) { GroupInfoCB cb = new GroupInfoCB(); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-07 03:32:26 UTC (rev 1300) @@ -50,6 +50,19 @@ return roleInfoList; } + public List getRoleInfoList() { + + RoleInfoCB cb = new RoleInfoCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_RoleId_Asc(); + + return roleInfoBhv.selectList(cb); + } + public RoleInfo getRoleInfo(String roleId) { RoleInfoCB cb = new RoleInfoCB(); Modified: userinfo/trunk/src/main/resources/dbflute.dicon =================================================================== --- userinfo/trunk/src/main/resources/dbflute.dicon 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/resources/dbflute.dicon 2008-11-07 03:32:26 UTC (rev 1300) @@ -48,12 +48,24 @@ + + + dbflute.interceptor + + + dbflute.interceptor + + + dbflute.interceptor + + + dbflute.interceptor Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/userinfo.xml 2008-11-07 03:32:26 UTC (rev 1300) @@ -1,3 +1,7 @@ + +true +true + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,24 +10,26 @@
    - + - - + + - - + + - - - - - - - - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,9 +10,11 @@
    • -
    • User
    • +
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
    • Group
    • @@ -22,15 +24,14 @@
      -
      -
      +
    ÀßÄê¾ðÊóConfiguration
    ¸áÁ°¶Ð̳³«»Ï»þ´ÖRole + + Enabled + Disabled + +
    ¸áÁ°¶Ð̳½ªÎ»»þ´ÖGroup + + Enabled + Disabled + +
    ¸á¸å¶Ð̳½ªÎ»»þ´Ö
    ¸á¸å¶Ð̳½ªÎ»»þ´Ö
    - + @@ -81,7 +82,6 @@ - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,9 +10,11 @@
    • -
    • User
    • +
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
    • Group
    • @@ -22,15 +24,14 @@
      -
      -
      +
    Confirmation of Group Info
    Group IDGroup ID ${f:h(groupId)}
    - + @@ -66,7 +67,6 @@ - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -9,9 +9,11 @@
    • -
    • User
    • +
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
    • Group
    • Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,9 +10,11 @@
      • -
      • User
      • +
      • User
      • +
      • -
      • Role
      • +
      • Role
      • +
      • Group
      • @@ -22,7 +24,7 @@
        -
        +
        Create New Group
        Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,11 +10,13 @@
        • -
        • User
        • +
        • User
        • Role
        • +
        • -
        • Group
        • +
        • Group
        • +
        @@ -22,15 +24,14 @@
        -
        -
    Group Detail
    Group IDGroup ID
    +
    - + @@ -81,7 +82,6 @@ - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,11 +10,13 @@
    • -
    • User
    • +
    • User
    • Role
    • +
    • -
    • Group
    • +
    • Group
    • +
    @@ -22,15 +24,14 @@
    -
    -
    +
    Confirmation of Role Info
    Role IDRole ID ${f:h(roleId)}
    - + @@ -66,7 +67,6 @@ - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -9,11 +9,13 @@
    • -
    • User
    • +
    • User
    • Role
    • +
    • -
    • Group
    • +
    • Group
    • +
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,11 +10,13 @@
    • -
    • User
    • +
    • User
    • Role
    • +
    • -
    • Group
    • +
    • Group
    • +
    @@ -22,7 +24,7 @@
    -
    +
    Create New Role
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -11,10 +11,14 @@
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
      +
    • -
    • Group
    • +
    • Group
    • +
    @@ -22,15 +26,14 @@
    -
    -
    +
    Role Detail
    Role IDRole ID
    - + @@ -65,22 +68,30 @@ + + + + @@ -109,7 +120,6 @@ - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -11,10 +11,14 @@
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
      +
    • -
    • Group
    • +
    • Group
    • +
    @@ -22,15 +26,14 @@
    -
    -
    +
    Confirmation of User Info
    User IDUser ID ${f:h(userId)}
    Telephone Number ${f:h(telephone)}
    Role - -None + + ${f:h(r.name)} + +None
    Group - -None + + ${f:h(g.name)} + +None
    - + @@ -65,24 +68,32 @@ + - + + + - + + @@ -96,7 +107,6 @@ - Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -10,10 +10,14 @@
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
      +
    • -
    • Group
    • +
    • Group
    • +
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-07 00:42:13 UTC (rev 1299) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-07 03:32:26 UTC (rev 1300) @@ -11,10 +11,14 @@
    • User
    • +
    • -
    • Role
    • +
    • Role
    • +
      +
    • -
    • Group
    • +
    • Group
    • +
    @@ -22,7 +26,7 @@
    -
    +
    Create New User
    From svnnotify ¡÷ sourceforge.jp Sat Nov 8 08:31:35 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 08 Nov 2008 08:31:35 +0900 Subject: [pal-cvs 3567] [1301] created addresslist. Message-ID: <1226100695.850523.10900.nullmailer@users.sourceforge.jp> Revision: 1301 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1301 Author: shinsuke Date: 2008-11-08 08:31:35 +0900 (Sat, 08 Nov 2008) Log Message: ----------- created addresslist. Added Paths: ----------- addresslist/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Sat Nov 8 08:31:45 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 08 Nov 2008 08:31:45 +0900 Subject: [pal-cvs 3568] [1302] created trunk. Message-ID: <1226100705.340158.10959.nullmailer@users.sourceforge.jp> Revision: 1302 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1302 Author: shinsuke Date: 2008-11-08 08:31:45 +0900 (Sat, 08 Nov 2008) Log Message: ----------- created trunk. Added Paths: ----------- addresslist/trunk/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Sat Nov 8 08:42:10 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 08 Nov 2008 08:42:10 +0900 Subject: [pal-cvs 3569] [1303] initial commit. Message-ID: <1226101330.229615.19592.nullmailer@users.sourceforge.jp> Revision: 1303 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1303 Author: shinsuke Date: 2008-11-08 08:42:09 +0900 (Sat, 08 Nov 2008) Log Message: ----------- initial commit. Added Paths: ----------- addresslist/trunk/.classpath addresslist/trunk/.project addresslist/trunk/.settings/ addresslist/trunk/.settings/org.eclipse.jdt.core.prefs addresslist/trunk/.settings/org.eclipse.jdt.ui.prefs addresslist/trunk/.settings/org.seasar.sastrutsplugin.prefs addresslist/trunk/dbflute/ addresslist/trunk/dbflute/_project.bat addresslist/trunk/dbflute/_project.sh addresslist/trunk/dbflute/build-addresslist.properties addresslist/trunk/dbflute/dfprop/ addresslist/trunk/dbflute/dfprop/databaseInfoMap.dfprop addresslist/trunk/dbflute/doc.bat addresslist/trunk/dbflute/doc.sh addresslist/trunk/dbflute/generate.bat addresslist/trunk/dbflute/generate.sh addresslist/trunk/dbflute/jdbc.bat addresslist/trunk/dbflute/jdbc.sh addresslist/trunk/dbflute/log/ addresslist/trunk/dbflute/log/readme.txt addresslist/trunk/dbflute/output/ addresslist/trunk/dbflute/output/doc/ addresslist/trunk/dbflute/output/doc/readme.txt addresslist/trunk/dbflute/outside-sql-test.bat addresslist/trunk/dbflute/outside-sql-test.sh addresslist/trunk/dbflute/playsql/ addresslist/trunk/dbflute/playsql/replace-schema.sql addresslist/trunk/dbflute/replace-schema.bat addresslist/trunk/dbflute/replace-schema.sh addresslist/trunk/dbflute/schema/ addresslist/trunk/dbflute/schema/readme.txt addresslist/trunk/dbflute/sql2entity.bat addresslist/trunk/dbflute/sql2entity.sh addresslist/trunk/mydbflute/ addresslist/trunk/mydbflute/README.txt addresslist/trunk/pom.xml addresslist/trunk/src/ addresslist/trunk/src/main/ addresslist/trunk/src/main/config/ addresslist/trunk/src/main/config/erd/ addresslist/trunk/src/main/config/erd/addresslist.erd addresslist/trunk/src/main/config/sql/ addresslist/trunk/src/main/config/sql/addresslist.ddl addresslist/trunk/src/main/java/ addresslist/trunk/src/main/java/jp/ addresslist/trunk/src/main/java/jp/sf/ addresslist/trunk/src/main/java/jp/sf/pal/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonConstants.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/creator/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/creator/PagerCreator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/dxo/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/dxo/PagerDxo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/form/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/form/PagingResultForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/pager/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/pager/DefaultPager.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/ConfigUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/DateUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/PagingResultBeanWrapper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/SAStrutsUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/AccessContext.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BFinder.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BehaviorSelector.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheAbstractSelector.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheBehaviorSelector.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheDaoSelector.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CallbackContext.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DBFluteConfig.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoReadable.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoSelector.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoWritable.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/Entity.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/EntityDefinedCommonColumn.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/GenMetaData.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/InternalMapContext.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/QLog.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/XLog.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/annotation/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/annotation/OutsideSql.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorReadable.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorWritable.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorReadable.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorWritable.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputResult.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionResult.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/load/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/load/LoadReferrerOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ConditionBeanSetupper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/EntityListSetupper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelBox.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelSetupper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionQuery.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBeanContext.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionQuery.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBeanContext.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ListResultBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/MapParameterBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/OrderByBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingInvoker.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingResultBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ResultBeanBuilder.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SelectResource.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimpleOrderByBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimplePagingBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SubQuery.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/UnionQuery.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKey.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyEqual.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyInScope.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/ConditionOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/DateFromToOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/FromToOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/InScopeOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/LikeSearchOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/SimpleStringOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/SplitOptionParts.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/local/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/cvalue/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/cvalue/ConditionValue.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowResource.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowSetupper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/mapping/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/mapping/EntityDtoMapper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/ProcedurePmb.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLink.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByClause.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByElement.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClause.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseH2.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/AbstractDBMeta.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMeta.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMetaInstanceHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ColumnInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ForeignInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ReferrerInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/RelationInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/UniqueInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableParameterNullValueException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/DangerousResultSizeException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EndCommentNotFoundException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyDeletedException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyExistsException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyUpdatedException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityDuplicatedException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentConditionNotFoundException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentNotBooleanResultException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentWrongExpressionException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/OutsideSqlNotFoundException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasOverlappedException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RequiredOptionNotFoundException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/SQLFailureException.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListString.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListStringImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilder.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilderImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/GeneralCharacter.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/JapaneseCharacter.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrder.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/impl/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameResult.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/impl/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingCallback.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingRowResource.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileToken.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingCallback.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingRowResource.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileTokenImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineMakingOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineToken.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineTokenizingOption.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/impl/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/impl/LineTokenImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/CursorHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/LatestSqlProvider.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/SqlLogHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/StatementConfig.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoInterceptor.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataExtension.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/util/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/valuetype/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRowCreator.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleAssertUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleStringUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleSystemUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/TraceViewUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/ValueLabelUtil.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCompanyBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsContactBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCustomBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupMappingBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPersonBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPostalBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleMappingBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCompanyDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsContactDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCustomDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupInfoDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupMappingDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPersonDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPostalDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleInfoDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleMappingDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsUserInfoDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCompany.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsContact.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCustom.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupMapping.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPerson.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPostal.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleMapping.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CompanyDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/ContactDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CustomDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupInfoDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupMappingDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PersonDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PostalDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleInfoDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleMappingDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CompanyCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/ContactCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CustomCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupMappingCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PersonCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PostalCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleMappingCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/UserInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCompanyCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsContactCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCustomCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupMappingCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPersonCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPostalCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleMappingCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CompanyCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ContactCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CustomCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupMappingCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PersonCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PostalCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleMappingCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/UserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCompanyCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsContactCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCustomCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPersonCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPostalCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCompanyCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsContactCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCustomCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupMappingCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPersonCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPostalCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleMappingCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CompanyCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/ContactCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CustomCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupInfoCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupMappingCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PersonCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PostalCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleInfoCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleMappingCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CompanyNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/ContactNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CustomNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupInfoNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupMappingNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PersonNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PostalNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleInfoNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleMappingNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/UserInfoNss.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CompanyBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/ContactBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CustomBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupMappingBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PersonBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PostalBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleMappingBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/UserInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CompanyDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/ContactDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CustomDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupInfoDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupMappingDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PersonDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PostalDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleInfoDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleMappingDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/UserInfoDao.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Company.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Contact.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Custom.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupMapping.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Postal.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleMapping.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/CompanyForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/CompanyPager.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/PersonPager.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java addresslist/trunk/src/main/resources/ addresslist/trunk/src/main/resources/app.dicon addresslist/trunk/src/main/resources/application.properties addresslist/trunk/src/main/resources/convention.dicon addresslist/trunk/src/main/resources/creator.dicon addresslist/trunk/src/main/resources/customizer.dicon addresslist/trunk/src/main/resources/dbflute.dicon addresslist/trunk/src/main/resources/env.txt addresslist/trunk/src/main/resources/env_ut.txt addresslist/trunk/src/main/resources/jdbc.dicon addresslist/trunk/src/main/resources/s2container.dicon addresslist/trunk/src/main/webapp/ addresslist/trunk/src/main/webapp/WEB-INF/ addresslist/trunk/src/main/webapp/WEB-INF/addresslist.xml addresslist/trunk/src/main/webapp/WEB-INF/db/ addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.1.log.db addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.index.db addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml addresslist/trunk/src/main/webapp/WEB-INF/struts-config.xml addresslist/trunk/src/main/webapp/WEB-INF/validator-rules.xml addresslist/trunk/src/main/webapp/WEB-INF/view/ addresslist/trunk/src/main/webapp/WEB-INF/view/common/ addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/config/ addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/web.xml -------------- next part -------------- Added: addresslist/trunk/.classpath =================================================================== --- addresslist/trunk/.classpath (rev 0) +++ addresslist/trunk/.classpath 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: addresslist/trunk/.classpath ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/.project =================================================================== --- addresslist/trunk/.project (rev 0) +++ addresslist/trunk/.project 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ + + addresslist + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.jdt.core.javanature + org.seasar.dolteng.eclipse.nature + + \ No newline at end of file Property changes on: addresslist/trunk/.project ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/.settings/org.eclipse.jdt.core.prefs =================================================================== --- addresslist/trunk/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ addresslist/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,261 @@ +#Mon Sep 15 07:23:10 JST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true Added: addresslist/trunk/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- addresslist/trunk/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ addresslist/trunk/.settings/org.eclipse.jdt.ui.prefs 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ +#Mon Sep 15 07:23:26 JST 2008 +eclipse.preferences.version=1 +formatter_profile=_Seasar +formatter_settings_version=11 +org.eclipse.jdt.ui.text.custom_code_templates= Added: addresslist/trunk/.settings/org.seasar.sastrutsplugin.prefs =================================================================== --- addresslist/trunk/.settings/org.seasar.sastrutsplugin.prefs (rev 0) +++ addresslist/trunk/.settings/org.seasar.sastrutsplugin.prefs 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,3 @@ +#Tue Sep 16 06:52:57 JST 2008 +WebContentsRoot=/src/main/webapp +eclipse.preferences.version=1 Added: addresslist/trunk/dbflute/_project.bat =================================================================== --- addresslist/trunk/dbflute/_project.bat (rev 0) +++ addresslist/trunk/dbflute/_project.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ + ¡÷ echo off + +set MY_PROJECT_NAME=addresslist + +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Property changes on: addresslist/trunk/dbflute/_project.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/_project.sh =================================================================== --- addresslist/trunk/dbflute/_project.sh (rev 0) +++ addresslist/trunk/dbflute/_project.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ +#!/bin/sh + +export MY_PROJECT_NAME=addresslist + +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Property changes on: addresslist/trunk/dbflute/_project.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/dbflute/build-addresslist.properties =================================================================== --- addresslist/trunk/dbflute/build-addresslist.properties (rev 0) +++ addresslist/trunk/dbflute/build-addresslist.properties 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,161 @@ +# ======================================================================================= +# for All +# ======= + +# ------------------------------------------------------------------- +# P R O J E C T +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.project = addresslist + +# ------------------------------------------------------------------- +# T A R G E T D A T A B A S E +# ------------------------------------------------------------------- +# This is the target database, only considered when generating +# the SQL for your Torque project. Your possible choices are: +# +# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql, +# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2 +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.database = h2 + +# ------------------------------------------------------------------- +# T A R G E T L A N G U A G E +# ------------------------------------------------------------------- +# (Default 'java') +# The target language. Your possible choices are: +# java, csharp +# ------------------------------------------------------------------- +# @FirstProperty +#torque.targetLanguage = java + + + +# ======================================================================================= +# for OM task +# =========== + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Basic +# _/_/_/_/ +# /--------------------------------------------------------------------------- +# [Output Directory] +# java.dir: (Default '../src/main/java') +# The base output directory. +# +# If this value is '../src/main/java' and your project stype is under maven, +# you don't need to set up this property! +# +# {project} +# | +# |-dbflute_ldb +# | |-build-ldb.properties +# | |-... +# | +# |-src/main/java // *Here! +# |-src/main/resources +# |-... +# +# +# @FirstProperty +#torque.java.dir = ../src/main/java +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Package +# _/_/ +# /--------------------------------------------------------------------------- +# [EntityDao Package] +# packageBase: (Default '') +# The base directory of package. +# +# *If this property is specified and other package properties is not specified, +# Then The packages of generated class are as follows: +# +# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb +# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon +# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv +# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao +# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity +# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean +# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv +# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao +# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity +# +# *If this property is not specified, you should specify the other package properties. +# +# +# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon') +# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv') +# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao') +# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity') +# conditionBeanPackage: (Default Java:'cbean' C#:'cbean') +# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv') +# extendedDaoPackage: (Default Java:'exdao' C#:'exdao') +# extendedEntityPackage: (Default Java:'exentity' C#:'exentity') +# +# @FirstProperty +torque.packageBase = jp.sf.pal.addresslist.db +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# S2Dao Adjustment +# _/_/_/_/_/_/ +# /--------------------------------------------------------------------------- +# [S2Dao Version] +# s2daoVersion: (Default [The latest version]) +# +# @JavaOnly +torque.s2daoVersion = 1.0.48 +# ----------------/ + + + +# ======================================================================================= +# for JDBC task +# ============= + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# [Database Informaition] +# +# * * * * * * * * * * * * * * * * * * * * * * * * * +# You shuold use './dfprop/databaseInfoMap.dfprop' +# Look the file! +# * * * * * * * * * * * * * * * * * * * * * * * * * +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Adavance +# _/_/ + +# /--------------------------------------------------------------------------- +# [Sequence] +# sequenceDefinitionMap: (Default 'map:{}') +# The method 'XxxDao#selectNextVal()' is generated for its table primary key. +# +# ex) public String selectNextVal_SQL = "select gen_id(BOOK_BOOK_ID_INC, 1) from RDB$DATABASE"; +# public java.math.BigDecimal selectNextVal(); +# // This example is for the database of Firebird +# +# sequenceReturnType: (Default 'java.math.BigDecimal') +# The return type of The method 'XxxDao#selectNextVal()'. +# + +# +# *Apache Derby does not support Sequence-Object. +# But I want to test this property. +# +#torque.sequenceDefinitionMap = map:{ \ +# prodcts = PRODUCTS_PRODUCTS_ID_INC \ +# } + +#torque.sequenceReturnType = java.lang.Integer +# [Additional ForeignKey] +torque.additionalForeignKeyMap = map:{ \ +} + +torque.isDeleteOldTableClass = true + Property changes on: addresslist/trunk/dbflute/build-addresslist.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/dfprop/databaseInfoMap.dfprop =================================================================== --- addresslist/trunk/dbflute/dfprop/databaseInfoMap.dfprop (rev 0) +++ addresslist/trunk/dbflute/dfprop/databaseInfoMap.dfprop 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,18 @@ +# /--------------------------------------------------------------------------- +# [Database Information] +# databaseInfoMap: +# driver -- The class name of JDBC-Driver. +# url -- The url for connecting database. +# schema -- The schema name. +# user -- The database user name. +# password -- The database password. +# +# @FirstProperty +map:{ + ; driver = org.h2.Driver + ; url = jdbc:h2:file:../src/main/webapp/WEB-INF/db/addresslist + ; schema = + ; user = sa + ; password = +} +# ----------------/ Added: addresslist/trunk/dbflute/doc.bat =================================================================== --- addresslist/trunk/dbflute/doc.bat (rev 0) +++ addresslist/trunk/dbflute/doc.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: addresslist/trunk/dbflute/doc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/doc.sh =================================================================== --- addresslist/trunk/dbflute/doc.sh (rev 0) +++ addresslist/trunk/dbflute/doc.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Document}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH + Property changes on: addresslist/trunk/dbflute/doc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/dbflute/generate.bat =================================================================== --- addresslist/trunk/dbflute/generate.bat (rev 0) +++ addresslist/trunk/dbflute/generate.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Generate}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: addresslist/trunk/dbflute/generate.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/generate.sh =================================================================== --- addresslist/trunk/dbflute/generate.sh (rev 0) +++ addresslist/trunk/dbflute/generate.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,16 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Generate}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH + + + Property changes on: addresslist/trunk/dbflute/generate.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/dbflute/jdbc.bat =================================================================== --- addresslist/trunk/dbflute/jdbc.bat (rev 0) +++ addresslist/trunk/dbflute/jdbc.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {JDBC and Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: addresslist/trunk/dbflute/jdbc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/jdbc.sh =================================================================== --- addresslist/trunk/dbflute/jdbc.sh (rev 0) +++ addresslist/trunk/dbflute/jdbc.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties" + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {JDBC and Document}." +echo "nnnnnnnnnn/" +sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH} + + Property changes on: addresslist/trunk/dbflute/jdbc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/dbflute/log/readme.txt =================================================================== --- addresslist/trunk/dbflute/log/readme.txt (rev 0) +++ addresslist/trunk/dbflute/log/readme.txt 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1 @@ +Directory for LogFile Property changes on: addresslist/trunk/dbflute/log/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/output/doc/readme.txt =================================================================== --- addresslist/trunk/dbflute/output/doc/readme.txt (rev 0) +++ addresslist/trunk/dbflute/output/doc/readme.txt 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1 @@ +Directory for Document Property changes on: addresslist/trunk/dbflute/output/doc/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/outside-sql-test.bat =================================================================== --- addresslist/trunk/dbflute/outside-sql-test.bat (rev 0) +++ addresslist/trunk/dbflute/outside-sql-test.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Outsite-Sql-Test}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: addresslist/trunk/dbflute/outside-sql-test.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/outside-sql-test.sh =================================================================== --- addresslist/trunk/dbflute/outside-sql-test.sh (rev 0) +++ addresslist/trunk/dbflute/outside-sql-test.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Outsite-Sql-Test}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH + + Property changes on: addresslist/trunk/dbflute/outside-sql-test.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/dbflute/playsql/replace-schema.sql =================================================================== --- addresslist/trunk/dbflute/playsql/replace-schema.sql (rev 0) +++ addresslist/trunk/dbflute/playsql/replace-schema.sql 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,418 @@ +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST +; + +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP +; + +ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP +; + +ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE +; + +ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID +; + + +DROP TABLE AUTHOR +; +DROP TABLE BLACK_ACTION +; +DROP TABLE BLACK_ACTION_LOOKUP +; +DROP TABLE BLACK_LIST +; +DROP TABLE BOOK +; +DROP TABLE COLLECTION +; +DROP TABLE COLLECTION_STATUS +; +DROP TABLE COLLECTION_STATUS_LOOKUP +; +DROP TABLE GARBAGE +; +DROP TABLE GENRE +; +DROP TABLE LB_USER +; +DROP TABLE LENDING +; +DROP TABLE LENDING_COLLECTION +; +DROP TABLE LIBRARY +; +DROP TABLE NEXT_LIBRARY +; +DROP TABLE PUBLISHER +; + +CREATE TABLE AUTHOR ( + AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + AUTHOR_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION ( + BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + BLACK_LIST_ID integer NOT NULL, + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_LEVEL smallint NOT NULL, + EVIDENCE_PHOTOGRAPH blob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION_LOOKUP ( + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_ACTION_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_LIST ( + BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_ID integer NOT NULL, + BLACK_RANK char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BOOK ( + BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + ISBN_NO varchar(20) NOT NULL, + BOOK_NAME varchar(80) NOT NULL, + AUTHOR_ID integer NOT NULL, + PUBLISHER_ID integer NOT NULL, + MAX_LENDING_DATE_COUNT smallint NOT NULL, + GENRE_CODE varchar(12), + OPENING_PART clob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION ( + COLLECTION_ID integer NOT NULL, + LIBRARY_ID smallint NOT NULL, + BOOK_ID integer NOT NULL, + ARRIVAL_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS ( + COLLECTION_ID integer NOT NULL, + COLLECTION_STATUS_CODE char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS_LOOKUP ( + COLLECTION_STATUS_CODE char(3) NOT NULL, + COLLECTION_STATUS_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE GARBAGE ( + GARBAGE_MEMO varchar(50), + GARBAGE_TIME timestamp +) +; + +CREATE TABLE GENRE ( + GENRE_CODE varchar(12) NOT NULL, + GENRE_NAME varchar(80) NOT NULL, + PARENT_GENRE_CODE varchar(12), + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LB_USER ( + LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_NAME varchar(80) NOT NULL, + LIBRARY_ID smallint NOT NULL, + USER_PASSWORD varchar(50) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING ( + LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_ID smallint NOT NULL, + LB_USER_ID integer NOT NULL, + LENDING_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING_COLLECTION ( + LENDING_ID integer NOT NULL, + COLLECTION_ID integer NOT NULL, + RETURN_LIMIT_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LIBRARY ( + LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE NEXT_LIBRARY ( + LIBRARY_ID smallint NOT NULL, + NEXT_LIBRARY_ID smallint NOT NULL, + DISTANCE_KM integer NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE PUBLISHER ( + PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + PUBLISHER_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + + +ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR + PRIMARY KEY (AUTHOR_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION + PRIMARY KEY (BLACK_ACTION_ID) +; + +ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP + PRIMARY KEY (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST + PRIMARY KEY (BLACK_LIST_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK + PRIMARY KEY (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP + PRIMARY KEY (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE + PRIMARY KEY (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER + PRIMARY KEY (LB_USER_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING + PRIMARY KEY (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION + PRIMARY KEY (LENDING_ID, COLLECTION_ID) +; + +ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY + PRIMARY KEY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY + PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID) +; + +ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER + PRIMARY KEY (PUBLISHER_ID) +; + + +ALTER TABLE BOOK + ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO) +; + +ALTER TABLE COLLECTION + ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID) +; + +ALTER TABLE LENDING + ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID) +; + +ALTER TABLE BLACK_LIST + ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID) +; + +ALTER TABLE LIBRARY + ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME) +; + + + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST + FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP + FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR + FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER + FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE + FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK + FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP + FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE + FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING + FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID + FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; Added: addresslist/trunk/dbflute/replace-schema.bat =================================================================== --- addresslist/trunk/dbflute/replace-schema.bat (rev 0) +++ addresslist/trunk/dbflute/replace-schema.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Replace-Schema}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: addresslist/trunk/dbflute/replace-schema.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/replace-schema.sh =================================================================== --- addresslist/trunk/dbflute/replace-schema.sh (rev 0) +++ addresslist/trunk/dbflute/replace-schema.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Replace-Schema}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH + + Property changes on: addresslist/trunk/dbflute/replace-schema.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/dbflute/schema/readme.txt =================================================================== --- addresslist/trunk/dbflute/schema/readme.txt (rev 0) +++ addresslist/trunk/dbflute/schema/readme.txt 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1 @@ +Directory for SchemaFile Property changes on: addresslist/trunk/dbflute/schema/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/sql2entity.bat =================================================================== --- addresslist/trunk/dbflute/sql2entity.bat (rev 0) +++ addresslist/trunk/dbflute/sql2entity.bat 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Invoke Sql Directory}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: addresslist/trunk/dbflute/sql2entity.bat ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/dbflute/sql2entity.sh =================================================================== --- addresslist/trunk/dbflute/sql2entity.sh (rev 0) +++ addresslist/trunk/dbflute/sql2entity.sh 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Invoke Sql Directory}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH + + Property changes on: addresslist/trunk/dbflute/sql2entity.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: addresslist/trunk/mydbflute/README.txt =================================================================== --- addresslist/trunk/mydbflute/README.txt (rev 0) +++ addresslist/trunk/mydbflute/README.txt 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: addresslist/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/pom.xml =================================================================== --- addresslist/trunk/pom.xml (rev 0) +++ addresslist/trunk/pom.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,302 @@ + + + 4.0.0 + jp.sf.pal + addresslist + 1.0-SNAPSHOT + war + AddressList + + + addresslist + validate + + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-surefire-plugin + 2.3 + + + maven-deploy-plugin + + true + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.0-SNAPSHOT + + + + clean + + + + + + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + mvnrepository.com + Maven2 Repository on mvnrepository.com + http://mvnrepository.com/artifact/ + + + maven.marevol.com + Maven2 Repository on marevol.com + http://maven2.marevol.com/ + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + portlet-api + portlet-api + 1.0 + provided + + + org.apache.portals.bridges + portals-bridges-portletfilter + 1.0.4 + + + logkit + logkit + + + avalon-framework + avalon-framework + + + javax.servlet + servlet-api + + + log4j + log4j + + + + + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + + jstl + jstl + 1.1.2 + + + taglibs + standard + 1.1.2 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 1.3 + + + commons-lang + commons-lang + 2.3 + + + commons-validator + commons-validator + 1.2.0 + + + commons-logging + commons-logging + 1.0.4 + + + log4j + log4j + 1.2.13 + jar + + + + org.apache.portals.jetspeed-2 + jetspeed-api + 2.1.3 + provided + + + junit + junit + + + + + javax.servlet + servlet-api + 2.3 + provided + + + + org.seasar.container + s2-extension + 2.4.29 + + + log4j + log4j + + + junit + junit + + + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.easymock + easymock + + + junit + junit + + + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + org.easymock + easymock + + + commons-logging + commons-logging + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.1.1 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + junit + junit + + + + + + org.seasar.dao + s2-dao + 1.0.48 + + + org.seasar.dao + s2-dao-tiger + 1.0.48 + + + com.h2database + h2 + 1.0.79 + + + + Property changes on: addresslist/trunk/pom.xml ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/config/erd/addresslist.erd =================================================================== --- addresslist/trunk/src/main/config/erd/addresslist.erd (rev 0) +++ addresslist/trunk/src/main/config/erd/addresslist.erd 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1864 @@ + + + + + + + user_info + User Information + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 407 + 1353 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 40 + 1797 + -1 + -1 + + + + + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 44 + 795 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 586 + 1797 + -1 + -1 + + + + + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 594 + 795 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + FK_from_person_user_to_user + + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + false + false + + false + + + + + + + + person + Person + + + + id + ID + + BIGINT + Integer + true + -5 + + 19 + true + true + + true + + + + + given_name + Given Name + + 100 + false + false + + false + + + + given_name_desc + Given Name Description + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + name_prefix + Name Prefix + + 30 + false + false + + false + + + + name_suffix + Name Suffix + + 30 + false + false + + false + + + + nickname + Nickname + + 100 + false + false + + false + + + + job_title + Job Title + + 50 + false + false + + false + + + + is_public + Is Public? + + VARCHAR + String + true + 12 + + 1 + false + false + + false + 'T' + + + company_id + company_id + + BIGINT + Integer + true + -5 + + 19 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + TIMESTAMP + Datetime + false + 93 + + 23 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 23 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 1 + + + + + 432 + 313 + -1 + -1 + + + + FK_from_person_to_company + + + + id + ID + + 19 + true + true + + true + + + + + + + + + + company + Company + + + + + user_id + User ID + + 255 + false + false + + false + + + + name + Name + + 200 + false + false + + false + + + + name_desc + Name Description + + 200 + false + false + + false + + + + department + Department + + 200 + false + false + + false + + + + building + Blg. + + 200 + false + false + + false + + + + street + Street + + 200 + false + false + + false + + + + city + City + + 100 + false + false + + false + + + + state + State + + 100 + false + false + + false + + + + postal_code + Postal Code + + 30 + false + false + + false + + + + country + Country + + 200 + false + false + + false + + + + telephone1 + Telephone 1 + + 40 + false + false + + false + + + + telephone2 + Telephone 2 + + 40 + false + false + + false + + + + fax1 + FAX 1 + + 40 + false + false + + false + + + + fax2 + FAX 2 + + 40 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + is_public + Is Public? + + 1 + false + false + + false + 'T' + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 23 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 23 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 1 + + + + + 305 + 795 + -1 + -1 + + + + FK_from_company_user_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + FK_from_custom_to_person + + + + + person_id + Person ID + + BIGINT + Integer + true + -5 + + 19 + true + false + + false + + + + + + + + custom + Custom + + + + id + ID + + 19 + true + true + + true + + + + + value + Value + + VARCHAR + String + true + 12 + + 255 + false + false + + false + + + + sort_order + Sort Order + + INTEGER + Integer + false + 4 + + 255 + true + false + + false + + + + + + 181 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + FK_from_contact_to_person + + + + + person_id + Person ID + + 19 + true + false + + false + + + + + + + + contact + Contact + + + + id + ID + + 19 + true + true + + true + + + + + name + Name + + VARCHAR + String + true + 12 + + 20 + true + false + + false + + + + value + Value + + 255 + false + false + + false + + + + + + 449 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + FK_from_postal_to_person + + + + + person_id + Person ID + + 19 + true + true + + false + + + + + + + + postal + Postal + + + + + building + Blg. + + 200 + false + false + + false + + + + street + Street + + 200 + false + false + + false + + + + city + City + + 100 + false + false + + false + + + + state + State + + 100 + false + false + + false + + + + postal_code + Postal Code + + 30 + false + false + + false + + + + country + Country + + 100 + false + false + + false + + + + + + 717 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + hsqldb + false + /home/taro/.m2/repository/com/h2database/h2/1.0.79/h2-1.0.79.jar + org.h2.Driver + jdbc:h2:file:/home/taro/addresslist/src/main/webapp/WEB-INF/db/addresslist + sa + + + + false + + + + 2 + + + + + + Added: addresslist/trunk/src/main/config/sql/addresslist.ddl =================================================================== --- addresslist/trunk/src/main/config/sql/addresslist.ddl (rev 0) +++ addresslist/trunk/src/main/config/sql/addresslist.ddl 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,192 @@ +DROP TABLE postal; +DROP TABLE contact; +DROP TABLE custom; +DROP TABLE person; +DROP TABLE company; +DROP TABLE role_mapping; +DROP TABLE group_mapping; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; + +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Company +**********************************/ +CREATE TABLE company( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255), + name VARCHAR(200), + name_desc VARCHAR(200), + department VARCHAR(200), + building VARCHAR(200), + street VARCHAR(200), + city VARCHAR(100), + state VARCHAR(100), + postal_code VARCHAR(30), + country VARCHAR(200), + telephone1 VARCHAR(40), + telephone2 VARCHAR(40), + fax1 VARCHAR(40), + fax2 VARCHAR(40), + url VARCHAR(255), + is_public VARCHAR(1) DEFAULT 'T', + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 1 NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Person +**********************************/ +CREATE TABLE person( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255), + given_name VARCHAR(100), + given_name_desc VARCHAR(100), + family_name VARCHAR(100), + family_name_desc VARCHAR(100), + middle_name VARCHAR(50), + name_prefix VARCHAR(30), + name_suffix VARCHAR(30), + nickname VARCHAR(100), + job_title VARCHAR(50), + is_public VARCHAR(1) DEFAULT 'T', + company_id BIGINT(19), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 1 NOT NULL, + FOREIGN KEY (company_id) REFERENCES company (id), + FOREIGN KEY (user_id) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Custom +**********************************/ +CREATE TABLE custom( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + person_id BIGINT(19) NOT NULL, + value VARCHAR(255), + sort_order INTEGER NOT NULL, + FOREIGN KEY (person_id) REFERENCES person (id) +); + +/********************************** +Table Name: Contact +**********************************/ +CREATE TABLE contact( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + person_id BIGINT(19) NOT NULL, + name VARCHAR(20) NOT NULL, + value VARCHAR(255), + FOREIGN KEY (person_id) REFERENCES person (id) +); + +/********************************** +Table Name: Postal +**********************************/ +CREATE TABLE postal( + person_id BIGINT(19) NOT NULL PRIMARY KEY, + building VARCHAR(200), + street VARCHAR(200), + city VARCHAR(100), + state VARCHAR(100), + postal_code VARCHAR(30), + country VARCHAR(100), + FOREIGN KEY (person_id) REFERENCES person (id) +); + Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ +package jp.sf.pal.addresslist; + +public class AddressListConstants { + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,334 @@ +package jp.sf.pal.addresslist.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.addresslist.common.CommonConstants; +import jp.sf.pal.addresslist.common.dxo.PagerDxo; +import jp.sf.pal.addresslist.common.util.ConfigUtil; +import jp.sf.pal.addresslist.common.util.SAStrutsUtil; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.dxo.CompanyDxo; +import jp.sf.pal.addresslist.form.user.CompanyForm; +import jp.sf.pal.addresslist.pager.CompanyPager; +import jp.sf.pal.addresslist.service.CompanyService; +import jp.sf.pal.addresslist.util.AddressListUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CompanyAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CompanyAction.class); + + // for list + + public List companyItems; + + // for edit/confirm/delete + + @ActionForm + private CompanyForm companyForm; + + private CompanyService companyService; + + private CompanyPager companyPager; + + private PagerDxo pagerDxo; + + private CompanyDxo companyDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + String userId = AddressListUtil.getUserId(request); + // TODO public? + companyItems = companyService.getCompanyList(companyPager, userId); + + // restore from pager + // companyForm.companyname = companyPager.getCompanyname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(companyForm, companyPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // companyPager.setCompanyname(companyForm.companyname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + companyPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (companyForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + companyForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + companyForm.initialize(); + companyForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (companyForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, companyForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + companyForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (companyForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + companyForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + companyForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Company company = createCompany(); + companyService.store(company); + SAStrutsUtil.addMessage(request, "success.create_company"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_company"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Company company = createCompany(); + companyService.store(company); + SAStrutsUtil.addMessage(request, "success.update_company"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_company"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + Long id = Long.parseLong(companyForm.id); + companyService.disable(id, request.getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_company"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_company"); + } + } + + private void loadCompany() { + String userId = AddressListUtil.getUserId(request); + Long id = Long.parseLong(companyForm.id); + Company company = companyService.getCompany(id, userId); + if (company == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_company", + new Object[] { companyForm.id }); + } + companyDxo.convertFromCompanyToForm(company, companyForm); + + } + + private Company createCompany() { + String userId = AddressListUtil.getUserId(request); + Company company; + if (companyForm.mode == CommonConstants.EDIT_MODE) { + Long id = Long.parseLong(companyForm.id); + company = companyService.getCompany(id, userId); + company.setUpdatedBy(userId); + } else { + company = new Company(); + company.setUserId(userId); + company.setUpdatedBy(userId); + company.setCreatedBy(userId); + } + companyDxo.convertFromFormToCompany(companyForm, company); + + return company; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CompanyForm getCompanyForm() { + return companyForm; + } + + public void setCompanyForm(CompanyForm companyForm) { + this.companyForm = companyForm; + } + + public CompanyService getCompanyService() { + return companyService; + } + + public void setCompanyService(CompanyService companyService) { + this.companyService = companyService; + } + + public CompanyPager getCompanyPager() { + return companyPager; + } + + public void setCompanyPager(CompanyPager companyPager) { + this.companyPager = companyPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CompanyDxo getCompanyDxo() { + return companyDxo; + } + + public void setCompanyDxo(CompanyDxo companyDxo) { + this.companyDxo = companyDxo; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,365 @@ +package jp.sf.pal.addresslist.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.addresslist.common.CommonConstants; +import jp.sf.pal.addresslist.common.dxo.PagerDxo; +import jp.sf.pal.addresslist.common.util.ConfigUtil; +import jp.sf.pal.addresslist.common.util.SAStrutsUtil; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.dxo.PersonDxo; +import jp.sf.pal.addresslist.form.user.PersonForm; +import jp.sf.pal.addresslist.pager.PersonPager; +import jp.sf.pal.addresslist.service.CompanyService; +import jp.sf.pal.addresslist.service.PersonService; +import jp.sf.pal.addresslist.util.AddressListUtil; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class PersonAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(PersonAction.class); + + // for list + + public List personItems; + + // for edit/confirm/delete + public Company company; + + @ActionForm + private PersonForm personForm; + + private PersonService personService; + + private CompanyService companyService; + + private PersonPager personPager; + + private PagerDxo pagerDxo; + + private PersonDxo personDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + String userId = AddressListUtil.getUserId(request); + // TODO public? + personItems = personService.getPersonList(personPager, userId); + + // restore from pager + // personForm.personname = personPager.getPersonname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(personForm, personPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // personPager.setPersonname(personForm.personname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + personPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + loadDetailsPageParameters(); + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (personForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + personForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + personForm.initialize(); + personForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (personForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, personForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + personForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + loadDetailsPageParameters(); + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (personForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, personForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + personForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Person person = createPerson(); + personService.store(person); + SAStrutsUtil.addMessage(request, "success.create_person"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_person"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Person person = createPerson(); + personService.store(person); + SAStrutsUtil.addMessage(request, "success.update_person"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_person"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + Long id = Long.parseLong(personForm.id); + personService.disable(id, request.getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_person"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_person"); + } + } + + private void loadPerson() { + String userId = AddressListUtil.getUserId(request); + Long id = Long.parseLong(personForm.id); + Person person = personService.getPerson(id, userId); + if (person == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_person", + new Object[] { personForm.id }); + } + personDxo.convertFromPersonToForm(person, personForm); + + } + + private Person createPerson() { + String userId = AddressListUtil.getUserId(request); + Person person; + if (personForm.mode == CommonConstants.EDIT_MODE) { + Long id = Long.parseLong(personForm.id); + person = personService.getPerson(id, userId); + if (person == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_person", + new Object[] { personForm.id }); + } + person.setUpdatedBy(userId); + } else { + person = new Person(); + person.setUserId(userId); + person.setUpdatedBy(userId); + person.setCreatedBy(userId); + } + personDxo.convertFromFormToPerson(personForm, person); + + return person; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + if (!StringUtils.isEmpty(personForm.companyId)) { + String userId = AddressListUtil.getUserId(request); + Long companyId = Long.parseLong(personForm.companyId); + company = companyService.getCompany(companyId, userId); + } + } + + public List getCompanyItems() { + String userId = AddressListUtil.getUserId(request); + return companyService.getCompanyList(userId); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public PersonForm getPersonForm() { + return personForm; + } + + public void setPersonForm(PersonForm personForm) { + this.personForm = personForm; + } + + public PersonService getPersonService() { + return personService; + } + + public void setPersonService(PersonService personService) { + this.personService = personService; + } + + public PersonPager getPersonPager() { + return personPager; + } + + public void setPersonPager(PersonPager personPager) { + this.personPager = personPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public PersonDxo getPersonDxo() { + return personDxo; + } + + public void setPersonDxo(PersonDxo personDxo) { + this.personDxo = personDxo; + } + + public CompanyService getCompanyService() { + return companyService; + } + + public void setCompanyService(CompanyService companyService) { + this.companyService = companyService; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonConstants.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonConstants.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonConstants.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.common; + +public class CommonConstants { + public static final int LIST_MODE = 0; + + public static final int CREATE_MODE = 1; + + public static final int EDIT_MODE = 2; + + public static final int DELETE_MODE = 3; + + public static final int CONFIRM_MODE = 4; + + public static final String TIMESTAMP_PATTERN = "yyyy/MM/dd HH:mm:ss"; + + public static final String TRUE = "T"; + + public static final String FALSE = "F"; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.addresslist.common; + +/** + * @author shinsuke + */ +public class CommonException extends Exception { + + /** + * Serial Version UID + */ + private static final long serialVersionUID = 4564000116499132363L; + + private String messageId; + + private Object[] args; + + /** + * @return Returns the messageId. + */ + public String getMessageId() { + return messageId; + } + + /** + * @param messageId The messageId to set. + */ + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * @return Returns the args. + */ + public Object[] getArgs() { + return args; + } + + /** + * @param args The args to set. + */ + public void setArgs(Object[] args) { + this.args = args; + } + + public CommonException(String messageId) { + super(messageId); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args) { + super(messageId); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message, Throwable cause) { + super(message, cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message, + Throwable cause) { + super(message, cause); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message) { + super(message); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message) { + super(message); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, Throwable cause) { + super(cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, Throwable cause) { + super(cause); + this.messageId = messageId; + this.args = args; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/CommonException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/creator/PagerCreator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/creator/PagerCreator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/creator/PagerCreator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,29 @@ +package jp.sf.pal.addresslist.common.creator; + +import org.seasar.framework.container.ComponentCustomizer; +import org.seasar.framework.container.assembler.AutoBindingDefFactory; +import org.seasar.framework.container.creator.ComponentCreatorImpl; +import org.seasar.framework.container.deployer.InstanceDefFactory; +import org.seasar.framework.convention.NamingConvention; + +/** + * @author shinsuke + */ +public class PagerCreator extends ComponentCreatorImpl { + public static final String SUFFIX = "Pager"; + + public PagerCreator(NamingConvention namingConvention) { + super(namingConvention); + setNameSuffix(SUFFIX); + setInstanceDef(InstanceDefFactory.SESSION); + setAutoBindingDef(AutoBindingDefFactory.NONE); + } + + public ComponentCustomizer getPagerCustomizer() { + return getCustomizer(); + } + + public void setPagerCustomizer(ComponentCustomizer customizer) { + setCustomizer(customizer); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/creator/PagerCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/dxo/PagerDxo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/dxo/PagerDxo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/dxo/PagerDxo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,24 @@ +package jp.sf.pal.addresslist.common.dxo; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.common.form.PagingResultForm; +import jp.sf.pal.addresslist.common.pager.DefaultPager; +import jp.sf.pal.addresslist.common.util.PagingResultBeanWrapper; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface PagerDxo extends Serializable { + + @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" + + ",currentPageNumber : currentPageNumber" + + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" + + ",existNextPage : existNextPage") + public void convert(PagingResultBeanWrapper result, DefaultPager pager); + + @ExcludeNull + @ConversionRule(// "pageSize : pageSize, " + + "currentPageNumber : pageNumber") + public void convert(PagingResultForm page, DefaultPager pager); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/dxo/PagerDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/form/PagingResultForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/form/PagingResultForm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/form/PagingResultForm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ +package jp.sf.pal.addresslist.common.form; + +public interface PagingResultForm { + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/form/PagingResultForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/pager/DefaultPager.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/pager/DefaultPager.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/pager/DefaultPager.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,101 @@ +package jp.sf.pal.addresslist.common.pager; + +import java.io.Serializable; +import java.util.List; + +public abstract class DefaultPager implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DEFAULT_PAGE_SIZE = 50; + + public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; + + private int allRecordCount; + + private int allPageCount; + + private boolean existPrePage; + + private boolean existNextPage; + + private List pageNumberList; + + private int pageSize; + + private int currentPageNumber; + + public void clear() { + pageSize = getDefaultPageSize(); + currentPageNumber = getDefaultCurrentPageNumber(); + } + + protected int getDefaultPageSize() { + return DEFAULT_PAGE_SIZE; + } + + protected int getDefaultCurrentPageNumber() { + return DEFAULT_CURRENT_PAGE_NUMBER; + } + + public int getAllRecordCount() { + return allRecordCount; + } + + public void setAllRecordCount(int allRecordCount) { + this.allRecordCount = allRecordCount; + } + + public int getAllPageCount() { + return allPageCount; + } + + public void setAllPageCount(int allPageCount) { + this.allPageCount = allPageCount; + } + + public boolean isExistPrePage() { + return existPrePage; + } + + public void setExistPrePage(boolean existPrePage) { + this.existPrePage = existPrePage; + } + + public boolean isExistNextPage() { + return existNextPage; + } + + public void setExistNextPage(boolean existNextPage) { + this.existNextPage = existNextPage; + } + + public int getPageSize() { + if (pageSize <= 0) { + pageSize = getDefaultPageSize(); + } + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNumber() { + if (currentPageNumber <= 0) { + currentPageNumber = getDefaultCurrentPageNumber(); + } + return currentPageNumber; + } + + public void setCurrentPageNumber(int currentPageNumber) { + this.currentPageNumber = currentPageNumber; + } + + public List getPageNumberList() { + return pageNumberList; + } + + public void setPageNumberList(List pageNumberList) { + this.pageNumberList = pageNumberList; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/pager/DefaultPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/ConfigUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/ConfigUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/ConfigUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,207 @@ +package jp.sf.pal.addresslist.common.util; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.XMLConfiguration; + +public class ConfigUtil { + + public static final String CONFIG_PATH = "/WEB-INF/addresslist.xml"; + + private static XMLConfiguration config; + + public static void init(HttpServletRequest request) { + if (config == null) { + synchronized (ConfigUtil.class) { + if (config == null) { + try { + config = new XMLConfiguration(SAStrutsUtil.getRealPath( + request, CONFIG_PATH)); + } catch (ConfigurationException e) { + throw new IllegalStateException( + "Could not load a config file: " + + SAStrutsUtil.getRealPath(request, + CONFIG_PATH), e); + } + } + } + } + } + + public static void save() throws ConfigurationException { + config.save(); + } + + public static void addProperty(String s, Object obj) { + config.addProperty(s, obj); + } + + public static void clear() { + config.clear(); + } + + public static void clearProperty(String s) { + config.clearProperty(s); + } + + public static boolean containsKey(String s) { + return config.containsKey(s); + } + + public static BigDecimal getBigDecimal(String s, BigDecimal bigdecimal) { + return config.getBigDecimal(s, bigdecimal); + } + + public static BigDecimal getBigDecimal(String s) { + return config.getBigDecimal(s); + } + + public static BigInteger getBigInteger(String s, BigInteger biginteger) { + return config.getBigInteger(s, biginteger); + } + + public static BigInteger getBigInteger(String s) { + return config.getBigInteger(s); + } + + public static boolean getBoolean(String s, boolean flag) { + return config.getBoolean(s, flag); + } + + public static Boolean getBoolean(String s, Boolean boolean1) { + return config.getBoolean(s, boolean1); + } + + public static boolean getBoolean(String s) { + return config.getBoolean(s); + } + + public static byte getByte(String s, byte byte0) { + return config.getByte(s, byte0); + } + + public static Byte getByte(String s, Byte byte1) { + return config.getByte(s, byte1); + } + + public static byte getByte(String s) { + return config.getByte(s); + } + + public static double getDouble(String s, double d) { + return config.getDouble(s, d); + } + + public static Double getDouble(String s, Double double1) { + return config.getDouble(s, double1); + } + + public static double getDouble(String s) { + return config.getDouble(s); + } + + public static float getFloat(String s, float f) { + return config.getFloat(s, f); + } + + public static Float getFloat(String s, Float float1) { + return config.getFloat(s, float1); + } + + public static float getFloat(String s) { + return config.getFloat(s); + } + + public static int getInt(String s, int i) { + return config.getInt(s, i); + } + + public static int getInt(String s) { + return config.getInt(s); + } + + public static Integer getInteger(String s, Integer integer) { + return config.getInteger(s, integer); + } + + public static Iterator getKeys() { + return config.getKeys(); + } + + public static Iterator getKeys(String s) { + return config.getKeys(s); + } + + public static List getList(String s, List list) { + return config.getList(s, list); + } + + public static List getList(String s) { + return config.getList(s); + } + + public static long getLong(String s, long l) { + return config.getLong(s, l); + } + + public static Long getLong(String s, Long long1) { + return config.getLong(s, long1); + } + + public static long getLong(String s) { + return config.getLong(s); + } + + public static Properties getProperties(String s) { + return config.getProperties(s); + } + + public static Object getProperty(String s) { + return config.getProperty(s); + } + + public static short getShort(String s, short word0) { + return config.getShort(s, word0); + } + + public static Short getShort(String s, Short short1) { + return config.getShort(s, short1); + } + + public static short getShort(String s) { + return config.getShort(s); + } + + public static String getString(String s, String s1) { + return config.getString(s, s1); + } + + public static String getString(String s) { + return config.getString(s); + } + + public static String[] getStringArray(String s) { + return config.getStringArray(s); + } + + public static boolean isEmpty() { + return config.isEmpty(); + } + + public static void setProperty(String s, Object obj) { + config.setProperty(s, obj); + } + + public static Configuration subset(String s) { + return config.subset(s); + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/ConfigUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/DateUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/DateUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/DateUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,251 @@ +/* + * Copyright 2004-2007 The Portal Application Laboratory Team. Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License + * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable + * law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.addresslist.common.util; + +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class DateUtil { + /** + * Logger for this class + */ + private static final Log log = LogFactory.getLog(DateUtil.class); + + /** + * Allocates a Date object and initializes it so that it represents + * midnight, local time, at the beginning of the day specified by the year, + * month, and date arguments. + * + * @param year + * @param month + * @param date + * @return + */ + public static Date get(int year, int month, int date) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int) - : year=" + year + ", month=" + + month + ", date=" + date); + } + + return get(year, month, date, 0, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the minute specified by the year, month, date, + * hrs, and min arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min); + } + + return get(year, month, date, hrs, min, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, and sec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec); + } + + return get(year, month, date, hrs, min, sec, 0); + + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, sec and millisec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @param millisec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec, int millisec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec + ", millisec=" + + millisec); + } + + Calendar cal = Calendar.getInstance(); + cal.set(year + 1900, month, date, hrs, min, sec); + cal.set(Calendar.MILLISECOND, millisec); + return cal.getTime(); + + } + + /** + * Returns a value that is the result of subtracting 1900 from the year that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getYear(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.YEAR) - 1900; + } + + /** + * Returns a number representing the month that contains or begins with the + * instant in time represented by this Date object. The value returned is + * between 0 and 11, with the value 0 representing January. + * + * @param d + * @return + */ + public static int getMonth(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MONTH); + } + + /** + * Returns the day of the month represented by this Date object. The value + * returned is between 1 and 31 representing the day of the month that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDate(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_MONTH); + } + + /** + * Returns the day of the week represented by this date. The returned value + * (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = + * Friday, 6 = Saturday) represents the day of the week that contains or + * begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDay(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + } + + /** + * Returns the hour represented by this Date object. The returned value is a + * number (0 through 23) representing the hour within the day that contains + * or begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getHours(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.HOUR_OF_DAY); + } + + /** + * Returns the number of minutes past the hour represented by this date, as + * interpreted in the local time zone. The value returned is between 0 and + * 59. + * + * @param d + * @return + */ + public static int getMinutes(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MINUTE); + } + + /** + * Returns the number of seconds past the minute represented by this date. + * The value returned is between 0 and 61. The values 60 and 61 can only + * occur on those Java Virtual Machines that take leap seconds into account. + * + * @param d + * @return + */ + public static int getSeconds(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.SECOND); + } + + public static Integer calculateAge(Date date) { + if (date == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int age = DateUtil.getYear(now) - DateUtil.getYear(date); + if (age > 0) { + if (DateUtil.getMonth(now) < DateUtil.getMonth(date)) { + if (DateUtil.getDate(now) < DateUtil.getDate(date)) { + age--; + } + } + return new Integer(age); + } + return null; + } + + public static Date calculateDate(Integer age) { + if (age == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int year = DateUtil.getYear(now) - age.intValue(); + + return DateUtil.get(year, DateUtil.getMonth(now), + DateUtil.getDate(now), 0, 0, 0, 0); + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/DateUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/PagingResultBeanWrapper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/PagingResultBeanWrapper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/PagingResultBeanWrapper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,68 @@ +package jp.sf.pal.addresslist.common.util; + +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; + +public class PagingResultBeanWrapper { + private PagingResultBean pagingResultBean; + + public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public PagingResultBean getPagingResultBean() { + return pagingResultBean; + } + + public void setPagingResultBean(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public int getAllRecordCount() { + return pagingResultBean.getAllRecordCount(); + } + + public void setAllRecordCount(int allRecordCount) { + pagingResultBean.setAllRecordCount(allRecordCount); + } + + public int getPageSize() { + return pagingResultBean.getPageSize(); + } + + public void setPageSize(int pageSize) { + pagingResultBean.setPageSize(pageSize); + } + + public int getCurrentPageNumber() { + return pagingResultBean.getCurrentPageNumber(); + } + + public void setCurrentPageNumber(int currentPageNumber) { + pagingResultBean.setCurrentPageNumber(currentPageNumber); + } + + public int getAllPageCount() { + return pagingResultBean.getAllPageCount(); + } + + public void setAllPageCount(int allPageCount) { + // nothing + } + + public boolean isExistPrePage() { + return pagingResultBean.isExistPrePage(); + } + + public void setExistPrePage(boolean existPrePage) { + // nothing + } + + public boolean isExistNextPage() { + return pagingResultBean.isExistNextPage(); + } + + public void setExistNextPage(boolean existNextPage) { + // nothing + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/PagingResultBeanWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/SAStrutsUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/SAStrutsUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/SAStrutsUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,76 @@ +package jp.sf.pal.addresslist.common.util; + +import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.seasar.struts.portlet.util.PortletUtil; +import org.seasar.struts.util.ActionMessagesUtil; + +public class SAStrutsUtil { + + public static void addMessage(HttpServletRequest request, String key) { + ActionMessages msgs = new ActionMessages(); + msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key)); + ActionMessagesUtil.saveMessages(request, msgs); + } + + public static PortletRequest getPortletRequest(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest; + } + return null; + } + + public static PortletConfig getPortletConfig(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig; + } + return null; + } + + public static PortletContext getPortletContext(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig.getPortletContext(); + } + return null; + } + + public static String getRealPath(HttpServletRequest request, String path) { + PortletContext portletContext = getPortletContext(request); + if (portletContext != null) { + return portletContext.getRealPath(path); + } + return path; + } + + public static String getRequestParameter(HttpServletRequest request, + String key) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getParameter(key); + } + return null; + } + + public static PortletSession getPortletSession(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getPortletSession(); + } + return null; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/common/util/SAStrutsUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/AccessContext.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/AccessContext.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/AccessContext.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,315 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of DB access. + * + * @author DBFlute(AutoGenerator) + */ +public class AccessContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get access-context on thread. + * + * @return The context of DB access.. (Nullable) + */ + public static AccessContext getAccessContextOnThread() { + return (AccessContext) _threadLocal.get(); + } + + /** + * Set access-context on thread. + * + * @param accessContext The context of DB access.. (NotNull) + */ + public static void setAccessContextOnThread(AccessContext accessContext) { + if (accessContext == null) { + String msg = "The argument[accessContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(accessContext); + } + + /** + * Is existing access-context on thread? + * + * @return Determination. + */ + public static boolean isExistAccessContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear access-context on thread. + */ + public static void clearAccessContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Access Information + // ================== + /** + * Get access user on thread. + *

    + * If it can't get access user from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access user. (NotNull) + */ + public static String getAccessUserOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessUser = userContextOnThread.getAccessUser(); + if (accessUser != null) { + return accessUser; + } + } + return "Anonymous";// as Default + } + + /** + * Get access process on thread. + *

    + * If it can't get access process from access-context, returns 'Anonymous' + * as default value! + *

    + * + * @return Access process. (NotNull) + */ + public static String getAccessProcessOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessProcess = userContextOnThread.getAccessProcess(); + if (accessProcess != null) { + return accessProcess; + } + } + return "Anonymous";// as Default + } + + /** + * Get access module on thread. + *

    + * If it can't get access module from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access module. (NotNull) + */ + public static String getAccessModuleOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessModule = userContextOnThread.getAccessModule(); + if (accessModule != null) { + return accessModule; + } + } + return "Anonymous";// as Default + } + + /** + * Get access date on thread. + *

    + * If it can't get access date from access-context, returns application + * current time as default value! + *

    + * + * @return Access date. (NotNull) + */ + public static java.util.Date getAccessDateOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.util.Date accessDate = userContextOnThread + .getAccessDate(); + if (accessDate != null) { + return accessDate; + } + if (userContextOnThread.getAccessDateProvider() != null) { + return userContextOnThread.getAccessDateProvider() + .getAccessDate(); + } + } + return new java.util.Date();// as Default + } + + /** + * Get access timestamp on thread. + *

    + * If it can't get access timestamp from access-context, returns application + * current time as default value! + *

    + * + * @return Access timestamp. (NotNull) + */ + public static java.sql.Timestamp getAccessTimestampOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.sql.Timestamp accessTimestamp = userContextOnThread + .getAccessTimestamp(); + if (accessTimestamp != null) { + return accessTimestamp; + } + if (userContextOnThread.getAccessTimestampProvider() != null) { + return userContextOnThread.getAccessTimestampProvider() + .getAccessTimestamp(); + } + } + return new java.sql.Timestamp(System.currentTimeMillis());// as Default + } + + /** + * Get access value on thread. + *

    + * If it can't get access value from access-context, returns null as default + * value! + *

    + * + * @param key Key. (NotNull) + * @return Access value. (Nullable) + */ + public static Object getAccessValueOnThread(String key) { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final Map accessValueMap = userContextOnThread + .getAccessValueMap(); + if (accessValueMap != null) { + return accessValueMap.get(key); + } + } + return null;// as Default + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected String accessUser; + + protected String accessProcess; + + protected String accessModule; + + protected java.util.Date accessDate; + + protected AccessDateProvider accessDateProvider; + + protected java.sql.Timestamp accessTimestamp; + + protected AccessTimestampProvider accessTimestampProvider; + + protected Map accessValueMap; + + //========================================================================== + // ========= + // Accessor + // ======== + public String getAccessUser() { + return accessUser; + } + + public void setAccessUser(String accessUser) { + this.accessUser = accessUser; + } + + public String getAccessProcess() { + return accessProcess; + } + + public void setAccessProcess(String accessProcess) { + this.accessProcess = accessProcess; + } + + public String getAccessModule() { + return accessModule; + } + + public void setAccessModule(String accessModule) { + this.accessModule = accessModule; + } + + public java.util.Date getAccessDate() { + return accessDate; + } + + public void setAccessDate(java.util.Date accessDate) { + this.accessDate = accessDate; + } + + public AccessDateProvider getAccessDateProvider() { + return accessDateProvider; + } + + public void setAccessDateProvider(AccessDateProvider accessDateProvider) { + this.accessDateProvider = accessDateProvider; + } + + public java.sql.Timestamp getAccessTimestamp() { + return accessTimestamp; + } + + public void setAccessTimestamp(java.sql.Timestamp accessTimestamp) { + this.accessTimestamp = accessTimestamp; + } + + public AccessTimestampProvider getAccessTimestampProvider() { + return accessTimestampProvider; + } + + public void setAccessTimestampProvider( + AccessTimestampProvider accessTimestampProvider) { + this.accessTimestampProvider = accessTimestampProvider; + } + + public Map getAccessValueMap() { + return accessValueMap; + } + + public void registerAccessValue(String key, Object value) { + if (accessValueMap == null) { + accessValueMap = new HashMap(); + } + accessValueMap.put(key, value); + } + + //========================================================================== + // ========= + // Provider Interface + // ================== + /** + * The provider interface of access date. + */ + public static interface AccessDateProvider { + + /** + * Get access date. + * + * @return Access date. (NotNull) + */ + public java.util.Date getAccessDate(); + } + + /** + * The provider interface of access date. + */ + public static interface AccessTimestampProvider { + + /** + * Get access timestamp. + * + * @return Access timestamp. (NotNull) + */ + public java.sql.Timestamp getAccessTimestamp(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/AccessContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BFinder.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BFinder.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BFinder.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,110 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import jp.sf.pal.addresslist.db.allcommon.bhv.BehaviorReadable; + +/** + * The entry of DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BFinder { + + //========================================================================== + // ========= + // Definition + // ========== + protected static String _dbfluteDiconName = "dbflute.dicon"; + + //========================================================================== + // ========= + // Constructor + // =========== + private BFinder() { + } + + //========================================================================== + // ========= + // Finder + // ====== + public static BEHAVIOR_TYPE find( + Class behaviorType) { + assertObjectNotNull("behaviorType", behaviorType); + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + synchronized (BFinder.class) { + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + final String configFile = _dbfluteDiconName; + if (org.seasar.framework.util.ResourceUtil + .isExist(configFile)) { + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .setConfigPath(configFile); + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .init(); + } else { + String msg = "S2Container is not initialized! Confirm your initializer and your dicon files."; + throw new IllegalStateException(msg); + } + } + } + } + final org.seasar.framework.container.S2Container container = org.seasar.framework.container.factory.SingletonS2ContainerFactory + .getContainer(); + final BEHAVIOR_TYPE behavior = (BEHAVIOR_TYPE) container + .getComponent(behaviorType); + return behavior; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public static void setDBFluteDiconName(String dbfluteDiconName) { + _dbfluteDiconName = dbfluteDiconName; + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BFinder.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BehaviorSelector.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BehaviorSelector.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BehaviorSelector.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,35 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import jp.sf.pal.addresslist.db.allcommon.bhv.BehaviorReadable; + +/** + * The interface of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorSelector { + + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData(); + + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType); + + /** + * Select behavior-readable. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/BehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheAbstractSelector.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheAbstractSelector.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheAbstractSelector.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,115 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import org.seasar.framework.container.ComponentNotFoundRuntimeException; +import org.seasar.framework.container.S2Container; + +/** + * The abstract class of cache-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class CacheAbstractSelector { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The container of Seasar. */ + protected S2Container _container; + + //========================================================================== + // ========= + // Component + // ========= + public COMPONENT getComponent(Class componentType) { + assertObjectNotNull("componentType", componentType); + assertObjectNotNull("_container", _container); + try { + return (COMPONENT) _container.getComponent(componentType); + } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't + // come. + final COMPONENT component; + try { + // for HotDeploy Mode + component = (COMPONENT) _container.getRoot().getComponent( + componentType); + } catch (ComponentNotFoundRuntimeException ignored) { + throw e; + } + _container = _container.getRoot(); // Change container. + return component; + } + } + + //========================================================================== + // ========= + // Destroy + // ======= + public void destroy() { + _container = null; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected String initUncap(String str) { + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setContainer(S2Container container) { + this._container = container; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheAbstractSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheBehaviorSelector.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheBehaviorSelector.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheBehaviorSelector.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,131 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.bhv.BehaviorReadable; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.util.TraceViewUtil; + +/** + * The implementation of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheBehaviorSelector extends CacheAbstractSelector implements + BehaviorSelector { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(CacheBehaviorSelector.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The cache of behavior. (It's the generic hell!) */ + protected Map, BehaviorReadable> _behaviorCache = new LinkedHashMap, BehaviorReadable>(); + + //========================================================================== + // ========= + // Initialize + // ========== + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData() { + final Map dbmetaMap = DBMetaInstanceHandler + .getDBMetaMap(); + final Collection dbmetas = dbmetaMap.values(); + long before = 0; + if (_log.isInfoEnabled()) { + before = System.currentTimeMillis(); + _log + .info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()"); + } + for (DBMeta dbmeta : dbmetas) { + final BehaviorReadable bhv = byName(dbmeta.getTableDbName()); + final DaoReadable dao = bhv.getDaoReadable(); + dao.initializeDaoMetaData("selectList"); + } + if (_log.isInfoEnabled()) { + long after = System.currentTimeMillis(); + _log.info("Initialized Count: " + dbmetas.size()); + _log.info("= = = = = = = = = =/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + "]"); + } + } + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + synchronized (_behaviorCache) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + final BEHAVIOR bhv = (BEHAVIOR) getComponent(behaviorType); + _behaviorCache.put(behaviorType, bhv); + return bhv; + } + } + + /** + * Select behavior-readable by name. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getBehaviorType(dbmeta)); + } + + /** + * Get behavior-type by dbmeta. + * + * @param dbmeta Dbmeta. (NotNull) + * @return Behavior-type. (NotNull) + */ + protected Class getBehaviorType(DBMeta dbmeta) { + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + if (behaviorTypeName == null) { + String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class behaviorType; + try { + behaviorType = (Class) Class + .forName(behaviorTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + behaviorTypeName, e); + } + return behaviorType; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheBehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheDaoSelector.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheDaoSelector.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheDaoSelector.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,66 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; + +/** + * The implementation of DAO-selector. + * + *
    + * Long long ago this object have cache of DAO and behavior.
    + * But the cache cause wrong performance when this is initialized.
    + * So now this object don't have cache.
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheDaoSelector extends CacheAbstractSelector implements + DaoSelector { + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return DAO. (NotNull) + */ + public DAO select(Class daoType) { + return (DAO) getComponent(daoType); + } + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getDaoType(dbmeta)); + } + + protected Class getDaoType(DBMeta dbmeta) { + final String daoTypeName = dbmeta.getDaoTypeName(); + if (daoTypeName == null) { + String msg = "The dbmeta.getDaoTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class daoType; + try { + daoType = (Class) Class.forName(daoTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + daoTypeName, e); + } + return daoType; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CacheDaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CallbackContext.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CallbackContext.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CallbackContext.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,75 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import jp.sf.pal.addresslist.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DBFluteConfig.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DBFluteConfig.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DBFluteConfig.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,314 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; + +/** + * @author DBFlute(AutoGenerator) + */ +public class DBFluteConfig { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(DBFluteConfig.class); + + /** Singleton instance. */ + private static final DBFluteConfig _instance = new DBFluteConfig(); + + //========================================================================== + // ========= + // Attribute + // ========= + protected StatementConfig _defaultStatementConfig; + + protected boolean _conditionBeanFormatSql = true;// This is for + + // compatibility! + + protected boolean _queryLogLevelInfo; + + protected boolean _executeStatusLogLevelInfo; + + protected boolean _useSqlLogRegistry; + + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; + + protected boolean _sqlExceptionOldStyleHandling = false;// This is for + + // compatibility! + + protected String _logDateFormat; + + protected String _logTimestampFormat; + + protected String _outsideSqlPackage; + + protected boolean _internalDebug; + + protected boolean _locked = true; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + private DBFluteConfig() { + } + + //========================================================================== + // ========= + // Singleton + // ========= + /** + * Get instance. + * + * @return Singleton instance. (NotNull) + */ + public static DBFluteConfig getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Default Statement Config + // ======================== + public StatementConfig getDefaultStatementConfig() { + return _defaultStatementConfig; + } + + public void setDefaultStatementConfig(StatementConfig defaultStatementConfig) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting defaultStatementConfig: " + + defaultStatementConfig); + } + _defaultStatementConfig = defaultStatementConfig; + } + + //========================================================================== + // ========= + // ConditionBean Format Sql + // ======================== + public boolean isConditionBeanFormatSql() { + return _conditionBeanFormatSql; + } + + /** + * @param conditionBeanFormatSql The value of the config. + * @deprecated This is for compatibility! + */ + public void setConditionBeanFormatSql(boolean conditionBeanFormatSql) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting conditionBeanFormatSql: " + + conditionBeanFormatSql); + } + _conditionBeanFormatSql = conditionBeanFormatSql; + } + + //========================================================================== + // ========= + // Query Log Level Info + // ==================== + public boolean isQueryLogLevelInfo() { + return _queryLogLevelInfo; + } + + public void setQueryLogLevelInfo(boolean queryLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting queryLogLevelInfo: " + queryLogLevelInfo); + } + _queryLogLevelInfo = queryLogLevelInfo; + } + + //========================================================================== + // ========= + // Execute Status Log Level Info + // ============================= + public boolean isExecuteStatusLogLevelInfo() { + return _executeStatusLogLevelInfo; + } + + public void setExecuteStatusLogLevelInfo(boolean executeStatusLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting executeStatusLogLevelInfo: " + + executeStatusLogLevelInfo); + } + _executeStatusLogLevelInfo = executeStatusLogLevelInfo; + } + + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return _uniqueConstraintDeterminator; + } + + public void setUniqueConstraintDeterminator( + UniqueConstraintDeterminator uniqueConstraintDeterminator) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting uniqueConstraintDeterminator: " + + uniqueConstraintDeterminator); + } + _uniqueConstraintDeterminator = uniqueConstraintDeterminator; + } + + public static interface UniqueConstraintDeterminator { + public boolean isUniqueConstraintException(Throwable t); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // SQL Exception Old Style + // ======================= + public boolean isSqlExceptionOldStyleHandling() { + return _sqlExceptionOldStyleHandling; + } + + /** + * @param sqlExceptionOldStyleHandling The value of the config. + * @deprecated This is for compatibility! + */ + public void setSqlExceptionOldStyleHandling( + boolean sqlExceptionOldStyleHandling) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting sqlExceptionOldStyleHandling: " + + sqlExceptionOldStyleHandling); + } + _sqlExceptionOldStyleHandling = sqlExceptionOldStyleHandling; + } + + //========================================================================== + // ========= + // Log Format + // ========== + public String getLogDateFormat() { + return _logDateFormat; + } + + public void setLogDateFormat(String logDateFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logDateFormat: " + logDateFormat); + } + _logDateFormat = logDateFormat; + } + + public String getLogTimestampFormat() { + return _logTimestampFormat; + } + + public void setLogTimestampFormat(String logTimestampFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logTimestampFormat: " + logTimestampFormat); + } + _logTimestampFormat = logTimestampFormat; + } + + //========================================================================== + // ========= + // OutsideSql Package + // ================== + public String getOutsideSqlPackage() { + return _outsideSqlPackage; + } + + public void setOutsideSqlPackage(String outsideSqlPackage) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting outsideSqlPackage: " + outsideSqlPackage); + } + _outsideSqlPackage = outsideSqlPackage; + } + + //========================================================================== + // ========= + // Internal Debug + // ============== + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(boolean internalDebug) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting internalDebug: " + internalDebug); + } + _internalDebug = internalDebug; + } + + //========================================================================== + // ========= + // Config Lock + // =========== + public boolean isLocked() { + return _locked; + } + + public void lock() { + if (_log.isInfoEnabled()) { + _log.info("...Locking the config of dbflute!"); + } + _locked = true; + } + + public void unlock() { + if (_log.isInfoEnabled()) { + _log.info("...Unlocking the config of dbflute!"); + } + _locked = false; + } + + protected void assertNotLocked() { + if (!isLocked()) { + return; + } + String msg = "The config of dbflute is locked! Don't access at this timing!"; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Config Clear + // ============ + public void clear() { // the only properties that update OK while executing + _defaultStatementConfig = null; + _conditionBeanFormatSql = true; // as default + _queryLogLevelInfo = false; + _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; + _logDateFormat = null; + _logTimestampFormat = null; + _internalDebug = false; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DBFluteConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoReadable.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoReadable.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoReadable.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,11 @@ +package jp.sf.pal.addresslist.db.allcommon; + +/** + * The interface of dao-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoReadable { + public void initializeDaoMetaData(String methodName);// Very Internal + // Method! +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoSelector.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoSelector.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoSelector.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,26 @@ +package jp.sf.pal.addresslist.db.allcommon; + +/** + * The interface of DAO-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoSelector { + + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return Dao. (NotNull) + */ + public DAO select(Class daoType); + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoWritable.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoWritable.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoWritable.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,70 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import java.util.List; + +/** + * The interface of dao-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoWritable extends DaoReadable { + + /** + * Insert one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Inserted count. + */ + public int create(Entity entity); + + /** + * Update one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modify(Entity entity); + + /** + * Update one entity that the type is entity-interface. (modified only) + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modifyModifiedOnly(Entity entity); + + /** + * Delete one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Deleted count. + */ + public int remove(Entity entity); + + /** + * Insert several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of inserted count. + */ + public int[] createList(List entityList); + + /** + * Update several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of updated count. + */ + public int[] modifyList(List entityList); + + /** + * Delete several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of deleted count. + */ + public int[] removeList(List entityList); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/DaoWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/Entity.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/Entity.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/Entity.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,126 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import java.util.LinkedHashSet; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of entity. + * + * @author DBFlute(AutoGenerator) + */ +public interface Entity { + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get the instance of target dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB name. + * + * @return Table DB name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property name. + * + * @return Table property name. (NotNull) + */ + public String getTablePropertyName(); + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has the value of primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKeyValue(); + + //========================================================================== + // ========= + // Modified Properties + // =================== + /** + * Get modified property names. (JavaBeansRule) + * + * @return Modified property names. (NotNull) + */ + public Set getModifiedPropertyNames(); + + /** + * Clear modified property names. + */ + public void clearModifiedPropertyNames(); + + /** + * Entity modified properties. + */ + public static class EntityModifiedProperties implements + java.io.Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Set of properties. */ + protected Set _propertiesSet = new LinkedHashSet(); + + /** + * Add property name. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void addPropertyName(String propertyName) { + _propertiesSet.add(propertyName); + } + + /** + * Get the set of properties. + * + * @return The set of properties. (NotNull) + */ + public Set getPropertyNames() { + return _propertiesSet; + } + + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _propertiesSet.isEmpty(); + } + + /** + * Clear the set of properties. + */ + public void clear() { + _propertiesSet.clear(); + } + + /** + * Remove property name from the set. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void remove(String propertyName) { + _propertiesSet.remove(propertyName); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/Entity.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/EntityDefinedCommonColumn.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/EntityDefinedCommonColumn.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/EntityDefinedCommonColumn.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon; + +/** + * The interface of entity defined common column. + * + * @author DBFlute(AutoGenerator) + */ +public interface EntityDefinedCommonColumn extends Entity { + + /** + * Disable common column auto set up. + */ + public void disableCommonColumnAutoSetup(); + + /** + * Can the entity set up common column by auto? + * + * @return Determination. + */ + public boolean canCommonColumnAutoSetup(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/EntityDefinedCommonColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/GenMetaData.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/GenMetaData.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/GenMetaData.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,258 @@ +package jp.sf.pal.addresslist.db.allcommon; + +/** + * The sigleton class that has generate-meta-data(GenMetaData). + * + * @author DBFlute(AutoGenerator) + */ +public class GenMetaData { + + /** Singleton instance. */ + private static final GenMetaData _instance = new GenMetaData(); + + /** + * Constructor. + */ + private GenMetaData() { + } + + /** + * Get instance. + * + * @return Singleton instance. + */ + public static GenMetaData getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Basic + // ===== + /** + * Get the property-value of targetLanguage. + * + * @return The property-value. + */ + public String getTargetLanguage() { + return "java"; + } + + /** + * Get the property-value of templateFileExtension. + * + * @return The property-value. + */ + public String getTemplateFileExtension() { + return "vm"; + } + + /** + * Get the property-value of classFileExtension. + * + * @return The property-value. + */ + public String getClassFileExtension() { + return "java"; + } + + /** + * Get the property-value of templateFileEncoding. + * + * @return The property-value. + */ + public String getTemplateEncoding() { + return "UTF-8"; + } + + /** + * Get the property-value of classAuthor. + * + * @return The property-value. + */ + public String getClassAuthor() { + return "DBFlute(AutoGenerator)"; + } + + //========================================================================== + // ========= + // Naming + // ====== + /** + * Is java name of table same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfTableSameAsDbName() { + return false; + } + + /** + * Is java name of column same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfColumnSameAsDbName() { + return false; + } + + //========================================================================== + // ========= + // Prefix + // ====== + /** + * Get the property-value of projectPrefix. + * + * @return The property-value. + */ + public String getProjectPrefix() { + return ""; + } + + /** + * Get the property-value of basePrefix. + * + * @return The property-value. + */ + public String getBasePrefix() { + return "Bs"; + } + + //========================================================================== + // ========= + // Package + // ======= + /** + * Get the property-value of baseCommonPackage. + * + * @return The property-value. + */ + public String getBaseCommonPackage() { + return "jp.sf.pal.addresslist.db.allcommon"; + } + + /** + * Get the property-value of baseBehaviorPackage. + * + * @return The property-value. + */ + public String getBaseBehaviorPackage() { + return "jp.sf.pal.addresslist.db.bsbhv"; + } + + /** + * Get the property-value of baseDaoPackage. + * + * @return The property-value. + */ + public String getBaseDaoPackage() { + return "jp.sf.pal.addresslist.db.bsdao"; + } + + /** + * Get the property-value of baseEntityPackage. + * + * @return The property-value. + */ + public String getBaseEntityPackage() { + return "jp.sf.pal.addresslist.db.bsentity"; + } + + /** + * Get the property-value of conditionBeanPackage. + * + * @return The property-value. + */ + public String getConditionBeanPackage() { + return "jp.sf.pal.addresslist.db.cbean"; + } + + /** + * Get the property-value of extendedDaoPackage. + * + * @return The property-value. + */ + public String getExtendedDaoPackage() { + return "jp.sf.pal.addresslist.db.exdao"; + } + + /** + * Get the property-value of extendedBehaviorPackage. + * + * @return The property-value. + */ + public String getExtendedBehaviorPackage() { + return "jp.sf.pal.addresslist.db.exbhv"; + } + + /** + * Get the property-value of extendedEntityPackage. + * + * @return The property-value. + */ + public String getExtendedEntityPackage() { + return "jp.sf.pal.addresslist.db.exentity"; + } + + //========================================================================== + // ========= + // Optimistic Lock + // =============== + /** + * Get the property-value of updateDateFieldName. + * + * @return The property-value. + */ + public String getUpdateDateFieldName() { + return ""; + } + + /** + * Get the property-value of versionNoFieldName. + * + * @return The property-value. + */ + public String getVersionNoFieldName() { + return ""; + } + + //========================================================================== + // ========= + // Extract + // ======= + /** + * Get the value of 'extractAcceptStartBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptStartBrace() { + return "@{"; + } + + /** + * Get the value of 'extractAcceptEndBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEndBrace() { + return "@}"; + } + + /** + * Get the value of 'extractAcceptDelimiter'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptDelimiter() { + return "@;"; + } + + /** + * Get the value of 'extractAcceptEqual'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEqual() { + return "@="; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/GenMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/InternalMapContext.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/InternalMapContext.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/InternalMapContext.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,64 @@ +package jp.sf.pal.addresslist.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of internal map. + * + * @author DBFlute(AutoGenerator) + */ +public class InternalMapContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal> threadLocal = new ThreadLocal>(); + + protected static void initialize() { + if (threadLocal.get() != null) { + return; + } + threadLocal.set(new HashMap()); + } + + /** + * Get the value of the object by the key. + * + * @param key The key of the object. (NotNull) + * @return The value of the object. (Nullable) + */ + public static Object getObject(String key) { + initialize(); + return threadLocal.get().get(key); + } + + /** + * Set the value of the object. + * + * @param key The key of the object. (NotNull) + * @param value The value of the object. (Nullable) + */ + public static void setObject(String key, Object value) { + initialize(); + threadLocal.get().put(key, value); + } + + /** + * Is existing internal-map-context on thread? + * + * @return Determination. + */ + public static boolean isExistInternalMapContextOnThread() { + return (threadLocal.get() != null); + } + + /** + * Clear internal-map-context on thread. + */ + public static void clearInternalMapContextOnThread() { + threadLocal.set(null); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/InternalMapContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/QLog.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/QLog.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/QLog.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,39 @@ +package jp.sf.pal.addresslist.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class QLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(QLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String sql) {// Very Internal + if (isQueryLogLevelInfo()) { + _log.info(sql); + } else { + _log.debug(sql); + } + } + + public static boolean isLogEnabled() { + if (isQueryLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isQueryLogLevelInfo() { + return DBFluteConfig.getInstance().isQueryLogLevelInfo(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/QLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/XLog.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/XLog.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/XLog.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,39 @@ +package jp.sf.pal.addresslist.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class XLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(XLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String msg) {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + _log.info(msg); + } else { + _log.debug(msg); + } + } + + public static boolean isLogEnabled() {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isExecuteStatusLogLevelInfo() { + return DBFluteConfig.getInstance().isExecuteStatusLogLevelInfo(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/XLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/annotation/OutsideSql.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/annotation/OutsideSql.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/annotation/OutsideSql.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,18 @@ +package jp.sf.pal.addresslist.db.allcommon.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + ¡÷ Inherited + ¡÷ Retention(RetentionPolicy.RUNTIME) + ¡÷ Target(ElementType.METHOD) +public @interface OutsideSql { + boolean dynamicBinding() default false; + + boolean offsetByCursor() default false; + + boolean limitByCursor() default false; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/annotation/OutsideSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorReadable.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,974 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.BehaviorSelector; +import jp.sf.pal.addresslist.db.allcommon.DaoSelector; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.batch.TokenFileOutputOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.batch.TokenFileOutputResult; +import jp.sf.pal.addresslist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelBox; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.executor.OutsideSqlBasicExecutor; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBehaviorReadable implements BehaviorReadable { + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * Behavior-selector instance. It's basically referred at loadReferrer. + * (Required for loadReferrer) + */ + protected BehaviorSelector _behaviorSelector; + + /** + * Dao-selector instance. It's basically referred at loadReferrer. (Required + * for OutsideSql) + */ + protected DaoSelector _daoSelector; + + //========================================================================== + // =========== + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll() { + return callGetCountAll(); + } + + //========================================================================== + // =========== + // Count Read + // ========== + /** + * The implementation. + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return callReadCount(cb); + } + + //========================================================================== + // =========== + // Entity Read + // =========== + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + //========================================================================== + // =========== + // Entity Read Internal Helper + // =========================== + protected ENTITY helpSelectEntityInternally( + CB cb, InternalSelectEntityCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.addresslist.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityCallback { + public List callbackSelectList(CB cb); + } + + protected ENTITY helpSelectEntityWithDeletedCheckInternally( + CB cb, + InternalSelectEntityWithDeletedCheckCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.addresslist.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityWithDeletedCheckCallback { + public List callbackSelectList(CB cb); + } + + //========================================================================== + // =========== + // List Read + // ========= + /** + * The implementation. + * + * @param cb Condition-bean. + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, callReadList(cb)); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return readCount(cb); + } + + public List paging() { + return readList(cb); + } + }; + return invoker.invokePaging(handler); + } + + /** + * Assert that the entity is not deleted. + * + * @param entity Selected entity. (Nullable) + * @param searchKey4Log Search-key for Logging. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + protected void assertEntityNotDeleted( + jp.sf.pal.addresslist.db.allcommon.Entity entity, + Object searchKey4Log) { + if (entity == null) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is not deleted. + * + * @param ls Selected list. (Nullable) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + */ + protected void assertEntityNotDeleted(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is selected as one. + * + * @param ls Selected list. (NotNull) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + */ + protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", searchKey4Log, null); + } + } + + private void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + private void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Various Select + // ============== + public OutsideSqlBasicExecutor outsideSql() { + assertDaoSelectorNotNull("outsideSql"); + final OutsideSqlDao outsideSqlDao = _daoSelector + .select(OutsideSqlDao.class); + return new OutsideSqlBasicExecutor(outsideSqlDao, getTableDbName()); + } + + private void assertDaoSelectorNotNull(String methodName) { + if (_daoSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of dao as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Create value-label list. + * + * @param The type of entity. + * @param entityList The list of entity. (NotNull) + * @param valueLabelSetupper Value-label-setupper. (NotNull) + * @return Value-label list. (NotNull) + */ + public List> createValueLabelList( + List entityList, + ValueLabelSetupper valueLabelSetupper) { + final List> valueLabelList = new ArrayList>(); + final ValueLabelBox box = new ValueLabelBox(); + for (ENTITY entity : entityList) { + final Map valueLabel = new HashMap(); + valueLabelSetupper.setup(box, entity); + valueLabel.put("value", box.getValue()); + valueLabel.put("label", box.getLabel()); + valueLabelList.add(valueLabel); + } + return valueLabelList; + } + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal() { + try { + final Method method = getClass().getMethod("selectNextVal", + new Class[] {}); + Object sequenceObject = method.invoke(this, new Object[] {}); + if (sequenceObject instanceof java.math.BigDecimal) { + return (java.math.BigDecimal) sequenceObject; + } + return (java.math.BigDecimal) helpConvertingSequenceObject( + java.math.BigDecimal.class, sequenceObject); + } catch (NoSuchMethodException e) { + throw new RuntimeException("The table does not have sequence: " + + getTableDbName(), e); + } catch (Exception e) { + throw new RuntimeException( + "The selectNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + } + + protected Object helpConvertingSequenceObject(Class resultClass, + Object sequenceObject) { + try { + final Constructor constructor = resultClass + .getConstructor(new Class[] { String.class }); + return constructor.newInstance(new Object[] { sequenceObject + .toString() }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + try { + final Method method = resultClass.getMethod("valueOf", + new Class[] { long.class }); + return method.invoke(null, new Object[] { Long + .valueOf(sequenceObject.toString()) }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + String msg = "Cannot convert sequenceObject to resultClass:"; + msg = msg + " resultClass=" + resultClass + " sequenceObjectType=" + + sequenceObject.getClass(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Load Referrer Internal Helper + // ============================= + /** + * Help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void helpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, + callback); + } + + /** + * Do help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void doHelpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + + // - - - - - - - - - - - + // Assert pre-condition + // - - - - - - - - - - - + assertBehaviorSelectorNotNull("loadReferrer"); + assertObjectNotNull("localEntityList", localEntityList); + assertObjectNotNull("loadReferrerOption", loadReferrerOption); + if (localEntityList.isEmpty()) { + return; + } + + // - - - - - - - - - - - - - - + // Prepare temporary container + // - - - - - - - - - - - - - - + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK primaryKeyValue = callback + .callbackBase_getPrimaryKeyValue(localEntity); + pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); + } + + // - - - - - - - - - - - - - - - - + // Prepare referrer condition bean + // - - - - - - - - - - - - - - - - + final REFERRER_CB cb; + if (loadReferrerOption.getReferrerConditionBean() != null) { + cb = loadReferrerOption.getReferrerConditionBean(); + } else { + cb = callback.callbackReferrer_newMyConditionBean(); + } + + // - - - - - - - - - - - - - - + // Select the list of referrer + // - - - - - - - - - - - - - - + callback.callbackReferrer_queryForeignKeyInScope(cb, pkList); + loadReferrerOption + .delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb); + if (!loadReferrerOption.isStopOrderByKey()) { + callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb); + cb.getSqlComponentOfOrderByClause() + .exchangeFirstOrderByElementForLastOne(); + } + loadReferrerOption.delegateConditionBeanSettingUp(cb); + final List referrerList = callback + .callbackReferrer_selectList(cb); + loadReferrerOption.delegateEntitySettingUp(referrerList); + + // - - - - - - - - - - - - - - - - - - - - - - - - + // Create the map of {primary key / referrer list} + // - - - - - - - - - - - - - - - - - - - - - - - - + final Map> pkReferrerListMap = new LinkedHashMap>(); + for (REFERRER_ENTITY referrerEntity : referrerList) { + final PK referrerListKey; + { + final PK foreignKeyValue = callback + .callbackReferrer_getForeignKeyValue(referrerEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); + } + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); + } + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); + + // for Reverse Reference. + final LOCAL_ENTITY localEntity = pkLocalEntityMap + .get(referrerListKey); + callback.callbackReferrer_setForeignEntity(referrerEntity, + localEntity); + } + + // - - - - - - - - - - - - - - - - - - + // Relate referrer list to base entity + // - - - - - - - - - - - - - - - - - - + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK referrerListKey; + { + final PK primaryKey = callback + .callbackBase_getPrimaryKeyValue(localEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); + } + if (pkReferrerListMap.containsKey(referrerListKey)) { + callback.callbackBase_setReferrerList(localEntity, + pkReferrerListMap.get(referrerListKey)); + } else { + callback.callbackBase_setReferrerList(localEntity, + new ArrayList()); + } + } + } + + /** + * To lower case for primary key if the value is string. + * + * @param The type of primary key. + * @param value The value of primary key. (Nullable) + * @return The value of primary key. (Nullable) + */ + protected PK toLowerCasePrimaryKeyIfString(PK value) { + return (PK) toLowerCaseIfString(value); + } + + /** + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer conditionBean. + * @param The type of referrer entity. + */ + protected static interface InternalLoadReferrerCallback { + // For Base + public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity); + + public void callbackBase_setReferrerList(LOCAL_ENTITY entity, + List referrerList); + + // For Referrer + public REFERRER_CB callbackReferrer_newMyConditionBean(); + + public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, + List pkList); + + public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb); + + public List callbackReferrer_selectList(REFERRER_CB cb); + + public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity); + + public void callbackReferrer_setForeignEntity( + REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); + } + + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + + private void assertBehaviorSelectorNotNull(String methodName) { + if (_behaviorSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of behavior as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Pullout Internal Helper + // ======================= + protected List helpPulloutInternally( + List localEntityList, + InternalPulloutCallback callback) { + assertObjectNotNull("localEntityList", localEntityList); + final Set foreignSet = new LinkedHashSet(); + for (LOCAL_ENTITY entity : localEntityList) { + final FOREIGN_ENTITY foreignEntity = callback + .callbackGetForeignEntity(entity); + if (foreignEntity == null || foreignSet.contains(foreignEntity)) { + continue; + } + foreignSet.add(foreignEntity); + } + return new ArrayList(foreignSet); + } + + protected static interface InternalPulloutCallback { + public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity); + } + + //========================================================================== + // ========= + // Token File + // ========== + public TokenFileOutputExecutor tokenFileOutput() + throws java.io.FileNotFoundException, java.io.IOException { + return new TokenFileOutputExecutor(); + } + + public class TokenFileOutputExecutor { + /** + * Output token-file from this table records. + * + * @param cb Condition-bean. (NotNull) + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileOutputOption token-file-output-option. (NotNull and + * Required{delimiter and encoding}) + * @return Token-file-output-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileOutputResult outputTokenFile(ConditionBean cb, + String filename, TokenFileOutputOption tokenFileOutputOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertConditionBeanNotNull(cb); + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption); + + final List ls = readList(cb); + List> rowList = new ArrayList>(); + for (java.util.Iterator ite = ls.iterator(); ite.hasNext();) { + final Entity entity = (Entity) ite.next(); + final List valueList = getDBMeta() + .convertToColumnStringValueList(entity); + rowList.add(valueList); + } + final FileMakingSimpleFacade fileMakingSimpleFacade = new FileMakingSimpleFacadeImpl(); + final FileMakingOption fileMakingOption = tokenFileOutputOption + .getFileMakingOption(); + final FileMakingHeaderInfo fileMakingHeaderInfo = new FileMakingHeaderInfo(); + final List columnDbNameList = new ArrayList(); + for (final java.util.Iterator ite = getDBMeta().getColumnInfoList() + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + fileMakingHeaderInfo.setColumnNameList(columnDbNameList); + fileMakingOption.setFileMakingHeaderInfo(fileMakingHeaderInfo); + fileMakingSimpleFacade.makeFromRowList(filename, rowList, + fileMakingOption); + final TokenFileOutputResult tokeFileOutputResult = new TokenFileOutputResult(); + tokeFileOutputResult.setSelectedList(ls); + return tokeFileOutputResult; + } + } + + //========================================================================== + // ========= + // Delegate Method + // =============== + /** + * The implementation. + * + * @return All count. + */ + protected int callGetCountAll() { + return readCount(newConditionBean()); + } + + /** + * The implementation. + * + * @return All list. (NotNull) + */ + protected List callGetListAll() { + return readList(newConditionBean()); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read count. (NotNull) + */ + protected int callReadCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final java.lang.reflect.Method mtd = getMethod(getDaoReadable() + .getClass(), "selectCount", types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return ((Integer) result).intValue(); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read list. If the select result is zero, it returns empty list. + * (NotNull) + */ + protected List callReadList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return (List) result; + } + + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + private Object invoke(Method method, Object target, Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + protected abstract boolean hasVersionNoValue(Entity entity); + + protected abstract boolean hasUpdateDateValue(Entity entity); + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * To lower case if the type is String. + * + * @param obj Object. (Nullable) + * @return Lower object. (Nullable) + */ + protected Object toLowerCaseIfString(Object obj) { + if (obj != null && obj instanceof String) { + return ((String) obj).toLowerCase(); + } + return obj; + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected ENTITY helpDowncastInternally( + Entity entity, Class clazz) { + assertObjectNotNull("entity", entity); + assertObjectNotNull("clazz", clazz); + try { + return (ENTITY) entity; + } catch (ClassCastException e) { + String msg = "The entity should be " + clazz.getSimpleName() + + " but it was: " + entity.getClass(); + throw new RuntimeException(msg, e); + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNull(Entity entity) { + assertObjectNotNull("entity", entity); + } + + /** + * Assert that the condition-bean is not null. + * + * @param cb Condition-bean. (NotNull) + */ + protected void assertConditionBeanNotNull( + jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean cb) { + assertObjectNotNull("cb", cb); + } + + /** + * Assert that the entity has primary-key value. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNullAndHasPrimaryKeyValue(Entity entity) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + String msg = "The entity must should primary-key: entity=" + entity; + throw new IllegalArgumentException(msg + entity); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert List + // ----------- + /** + * Assert that the list is empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (!ls.isEmpty()) { + String msg = "The list should be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list is not empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndNotEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (ls.isEmpty()) { + String msg = "The list should not be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list having only one. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndHasOnlyOne(List ls) { + assertObjectNotNull("ls", ls); + if (ls.size() != 1) { + String msg = "The list should contain only one object: ls=" + + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the selector of behavior. + * + * @return The select of behavior. (Nullable: But normally NotNull) + */ + protected BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + /** + * Set the selector of behavior. + * + * @param behaviorSelector The selector of behavior. (NotNull) + */ + public void setBehaviorSelector(BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + /** + * Get the selector of DAO. + * + * @return The select of DAO. (Nullable: But normally NotNull) + */ + protected DaoSelector getDaoSelector() { + return _daoSelector; + } + + /** + * Set the selector of DAO. + * + * @param daoSelector The selector of DAO. (NotNull) + */ + public void setDaoSelector(DaoSelector daoSelector) { + _daoSelector = daoSelector; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorWritable.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorWritable.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,997 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.batch.TokenFileReflectionFailure; +import jp.sf.pal.addresslist.db.allcommon.bhv.batch.TokenFileReflectionOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.batch.TokenFileReflectionResult; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.addresslist.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.impl.FileTokenImpl; + +/** + * The abstract class of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractBehaviorWritable extends AbstractBehaviorReadable + implements BehaviorWritable { + + //========================================================================== + // ========= + // Entity Update + // ============= + // ----------------------------------------------------- + // Create + // ------ + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(Entity entity) { + doCreate(entity); + } + + protected abstract void doCreate(Entity entity); + + // ----------------------------------------------------- + // Modify + // ------ + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(Entity entity) { + doModify(entity); + } + + protected abstract void doModify(Entity entity); + + /** + * Modify non strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity) { + doModifyNonstrict(entity); + } + + protected abstract void doModifyNonstrict(Entity entity); + + // ----------------------------------------------------- + // Create or Modify + // ---------------- + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.addresslist.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdate(entity); + } + + protected abstract void doCreateOrUpdate(Entity entity); + + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.addresslist.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdateNonstrict(entity); + } + + protected abstract void doCreateOrUpdateNonstrict(Entity entity); + + // ----------------------------------------------------- + // Remove + // ------ + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.addresslist.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + callRemove(entity); + } + + protected abstract void doRemove(Entity entity); + + //========================================================================== + // ========= + // Entity Update Internal Helper + // ============================= + // ----------------------------------------------------- + // Update + // ------ + protected void helpUpdateInternally(ENTITY entity, + InternalUpdateCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int updatedCount = callback.callbackDelegateUpdate(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalUpdateCallback { + public int callbackDelegateUpdate(ENTITY entity); + } + + protected void helpUpdateNonstrictInternally( + ENTITY entity, InternalUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + final int updatedCount = callback + .callbackDelegateUpdateNonstrict(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + } + } + + protected static interface InternalUpdateNonstrictCallback { + public int callbackDelegateUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // InsertOrUpdate + // -------------- + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + RuntimeException exception = null; + try { + callback.callbackUpdate(entity); + } catch (jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException e) { + if (e.getRows() == 0) { + exception = e; + } + } catch (jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException e) { + exception = e; + } catch (OptimisticLockColumnValueNullException e) { + exception = e; + } + if (exception != null) { + final CB_TYPE cb = callback.callbackNewMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta() + .extractPrimaryKeyMapString(entity)); + if (callback.callbackSelectCount(cb) == 0) { + callback.callbackInsert(entity); + } else { + throw exception; + } + } + } + } + + protected static interface InternalInsertOrUpdateCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdate(ENTITY entity); + + public CB_TYPE callbackNewMyConditionBean(); + + public int callbackSelectCount(CB_TYPE cb); + } + + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + try { + callback.callbackUpdateNonstrict(entity); + } catch (jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException e) { + callback.callbackInsert(entity); + } catch (jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException e) { + callback.callbackInsert(entity); + } + } + } + + protected static interface InternalInsertOrUpdateNonstrictCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // Delete + // ------ + protected void helpDeleteInternally(ENTITY entity, + InternalDeleteCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int deletedCount = callback.callbackDelegateDelete(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteCallback { + public int callbackDelegateDelete(ENTITY entity); + } + + protected void helpDeleteNonstrictInternally( + ENTITY entity, InternalDeleteNonstrictCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + protected void helpDeleteNonstrictIgnoreDeletedInternally( + ENTITY entity, + InternalDeleteNonstrictIgnoreDeletedCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + return; + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + //========================================================================== + // ========= + // Lump Update + // =========== + /** + * Lump create the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callCreateList(entityList); + } + + /** + * Lump Modify the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpModify(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callModifyList(entityList); + } + + /** + * Lump remove the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpRemove(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callRemoveList(entityList); + } + + /** + * Inject sequence to primary key if it needs. + * + * @param entity Entity. (NotNull) + */ + protected void injectSequenceToPrimaryKeyIfNeeds(Entity entity) { + final DBMeta dbmeta = entity.getDBMeta(); + if (!dbmeta.hasSequence() || dbmeta.hasTwoOrMorePrimaryKeys() + || entity.hasPrimaryKeyValue()) { + return; + } + final java.math.BigDecimal sequenceValue = readNextVal(); + final String columnDbName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final java.util.Map map = new java.util.HashMap(); + map.put(columnDbName, sequenceValue.toString()); + dbmeta.acceptPrimaryKeyMap(entity, map); + } + + //========================================================================== + // =========== + // Token File + // ========== + public TokenFileReflectionExecutor tokenFileReflection() { + return new TokenFileReflectionExecutor(); + } + + public class TokenFileReflectionExecutor { + + /** + * Reflect(insert or update) token-file to this table. + * + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile(String filename, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(filename, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + /** + * Reflect(insert or update) token-file to this table. + * + * @param inputStream Input stream. (NotNull and NotClosed) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile( + java.io.InputStream inputStream, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(inputStream, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + protected void assertFileTokenReflectionOption( + TokenFileReflectionOption tokenFileReflectionOption) { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + } + + protected TokenFileReflectionResult buildTokenFileReflectionResult() { + final TokenFileReflectionResult result = new TokenFileReflectionResult(); + final java.util.List failureList = new java.util.ArrayList(); + result.setFailureList(failureList); + return result; + } + + protected FileTokenizingCallback buildFileTokenReflectionFileTokenizingCallback( + TokenFileReflectionOption tokenFileReflectionOption, + final TokenFileReflectionResult result) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + final boolean interruptIfError = tokenFileReflectionOption + .isInterruptIfError(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final java.util.List failureList = result + .getFailureList(); + assertObjectNotNull("failureList", failureList); + + final FileTokenizingCallback fileTokenizingCallback = new FileTokenizingCallback() { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource) { + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = fileTokenizingRowResource + .getFileTokenizingHeaderInfo(); + final java.util.List columnNameList = fileTokenizingHeaderInfo + .getColumnNameList(); + final java.util.List valueList = fileTokenizingRowResource + .getValueList(); + + // Set up columnNameList of result object. + if (result.getColumnNameList() == null) { + result.setColumnNameList(columnNameList); + } + + Entity entity = null; + try { + // Create entity by the list of value composed of + // String. + entity = createEntityByStringValueList(columnNameList, + valueList); + + // Create or modify as non-strict. + doCreateOrUpdateNonstrict(entity); + + // Increment successCount of result object. + result.incrementSuccessCount(); + } catch (RuntimeException e) { + if (interruptIfError) { + throw e; + } + final TokenFileReflectionFailure failure = new TokenFileReflectionFailure(); + failure.setColumnNameList(columnNameList); + failure.setValueList(valueList); + failure.setRowString(fileTokenizingRowResource + .getRowString()); + failure.setRowNumber(fileTokenizingRowResource + .getRowNumber()); + failure.setLineNumber(fileTokenizingRowResource + .getLineNumber()); + if (entity != null) { + failure.setEntity(entity); + } + failure.setException(e); + failureList.add(failure); + } + } + }; + return fileTokenizingCallback; + } + + protected Entity createEntityByStringValueList( + java.util.List columnNameList, + java.util.List valueList) { + final MapStringBuilder builder = new MapStringBuilderImpl(); + builder.setMsMapMark(MAP_STRING_MAP_MARK); + builder.setMsStartBrace(MAP_STRING_START_BRACE); + builder.setMsEndBrace(MAP_STRING_END_BRACE); + builder.setMsDelimiter(MAP_STRING_DELIMITER); + builder.setMsEqual(MAP_STRING_EQUAL); + builder.setColumnNameList(columnNameList); + final String mapString = builder.buildFromList(valueList); + + final Entity entity = getDBMeta().newEntity(); + getDBMeta().acceptColumnValueMapString(entity, mapString); + return entity; + } + + protected FileTokenizingOption buildFileTokenReflectionFileTokenizingOption( + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + final FileTokenizingOption fileTokenizingOption = new FileTokenizingOption(); + fileTokenizingOption.setEncoding(encoding); + fileTokenizingOption.setDelimiter(delimiter); + if (tokenFileReflectionOption.isHandleEmptyAsNull()) { + fileTokenizingOption.handleEmptyAsNull(); + } + return fileTokenizingOption; + } + } + + //========================================================================== + // =========== + // Delegate Method + // =============== + // ----------------------------------------------------- + // Insert + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Inserted count. + */ + protected int callCreate(Entity entity) { + if (!processBeforeInsert(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().create(entity); + } + + /** + * Process before insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeInsert(Entity entity) { + if (!determineExecuteInsert(entity)) { + return false; + } + assertEntityNotNull(entity);// If this table use identity, the entity + // does not have primary-key. + frameworkFilterEntityOfInsert(entity); + filterEntityOfInsert(entity); + assertEntityOfInsert(entity); + return true; + } + + // ----------------------------------------------------- + // Update + // ------ + /** + * The implementation. {modified only} + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Updated count. + */ + protected int callModify(Entity entity) { + if (!processBeforeUpdate(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().modifyModifiedOnly(entity); + } + + /** + * Process before update. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeUpdate(Entity entity) { + if (!determineExecuteUpdate(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfUpdate(entity); + filterEntityOfUpdate(entity); + assertEntityOfUpdate(entity); + return true; + } + + // ----------------------------------------------------- + // Delete + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Deleted count. + */ + protected int callRemove(Entity entity) { + if (!processBeforeDelete(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().remove(entity); + } + + /** + * Process before delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeDelete(Entity entity) { + if (!determineExecuteDelete(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfDelete(entity); + filterEntityOfDelete(entity); + assertEntityOfDelete(entity); + return true; + } + + // ----------------------------------------------------- + // Pre-Process Insert + // ------------------ + /** + * Determine execution of insert. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteInsert(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfInsert(Entity targetEntity) { + injectSequenceToPrimaryKeyIfNeeds(targetEntity); + setupCommonColumnOfInsertIfNeeds(targetEntity); + } + + /** + * Set up common columns of insert if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfInsertIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfInsert(Entity targetEntity) { + } + + /** + * Assert the entity of insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfInsert(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Update + // ------------------ + /** + * Determine execution of update. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteUpdate(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfUpdate(Entity targetEntity) { + setupCommonColumnOfUpdateIfNeeds(targetEntity); + } + + /** + * Set up common columns of update if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfUpdateIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfUpdate(Entity targetEntity) { + } + + /** + * Assert the entity of update. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfUpdate(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Delete + // ------------------ + /** + * Determine execution of delete. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteDelete(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfDelete(Entity targetEntity) { + } + + /** + * Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfDelete(Entity targetEntity) { + } + + /** + * Assert the entity of delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfDelete(Entity entity) { + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Inserted count. + */ + public int[] callCreateList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeInsertInternally(entityList); + return getDaoWritable().createList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Updated count. + */ + public int[] callModifyList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeUpdateInternally(entityList); + return getDaoWritable().modifyList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Deleted count. + */ + public int[] callRemoveList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeDeleteInternally(entityList); + return getDaoWritable().removeList(entityList); + } + + protected void assertEntityHasVersionNoValue(Entity entity) { + if (!getDBMeta().hasVersionNo()) { + return; + } + if (hasVersionNoValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'version no' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'version no' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'version no' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + protected void assertEntityHasUpdateDateValue(Entity entity) { + if (!getDBMeta().hasUpdateDate()) { + return; + } + if (hasUpdateDateValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'update date' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'update date' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'update date' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + public static class OptimisticLockColumnValueNullException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public OptimisticLockColumnValueNullException(String msg) { + super(msg); + } + } + + //========================================================================== + // ========= + // Delegate Method Internal Helper + // =============================== + protected List helpFilterBeforeInsertInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeInsert(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeUpdateInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeUpdate(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeDeleteInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeDelete(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/AbstractBehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorReadable.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorReadable.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorReadable.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,176 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorReadable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table name + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Dao Accessor + // ============ + /** + * Get dao-readable. + * + * @return Dao-readable. (NotNull) + */ + public DaoReadable getDaoReadable(); + + //========================================================================== + // ========= + // New Instance + // ============ + /** + * New entity. + * + * @return Entity. (NotNull) + */ + public Entity newEntity(); + + /** + * New condition-bean. + * + * @return Condition-bean. (NotNull) + */ + public ConditionBean newConditionBean(); + + //========================================================================== + // ========= + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll(); + + //========================================================================== + // ========= + // Basic Read Count + // ================ + /** + * Read count by condition-bean. + * + *
    +     * If the argument 'condition-bean' is effective about fetch-scope,
    +     * this method invoke select count ignoring the fetch-scope.
    +     * 
    + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read Entity + // ================= + /** + * Read entity by condition-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb); + + /** + * Read simple entity by condition-bean with deleted check. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read List + // =============== + /** + * Read list as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb); + + /** + * Read page as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb); + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorWritable.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorWritable.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorWritable.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,149 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv; + +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; + +/** + * The interface of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorWritable extends BehaviorReadable { + + /** + * Get dao-writable. + * + * @return Dao-writable. (NotNull) + */ + public DaoWritable getDaoWritable(); + + //========================================================================== + // =========== + // Basic Entity Update + // =================== + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(jp.sf.pal.addresslist.db.allcommon.Entity entity); + + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(jp.sf.pal.addresslist.db.allcommon.Entity entity); + + /** + * Modify non-strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity); + + /** + * Create or modify.
    {modify: modified only}
    This method is + * faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.addresslist.db.allcommon.Entity entity); + + /** + * Create or modify non-strict.
    {modify: modified only}
    This + * method is faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.addresslist.db.allcommon.Entity entity); + + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.addresslist.db.allcommon.Entity entity); + + //========================================================================== + // =========== + // Basic Batch Update + // ================== + /** + * Lump create the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList); + + /** + * Lump Modify the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpModify(java.util.List entityList); + + /** + * Lump remove the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpRemove(java.util.List entityList); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/BehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,90 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.batch; + +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileMakingOption _fileMakingOption = new FileMakingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileOutputOption delimitateByComma() { + _fileMakingOption.delimitateByComma(); + return this; + } + + public TokenFileOutputOption delimitateByTab() { + _fileMakingOption.delimitateByTab(); + return this; + } + + public TokenFileOutputOption encodeAsUTF8() { + _fileMakingOption.encodeAsUTF8(); + return this; + } + + public TokenFileOutputOption encodeAsWindows31J() { + _fileMakingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileOutputOption separateCrLf() { + _fileMakingOption.separateCrLf(); + return this; + } + + public TokenFileOutputOption separateLf() { + _fileMakingOption.separateLf(); + return this; + } + + public TokenFileOutputOption goodByeDoubleQuotation() { + _fileMakingOption.goodByeDoubleQuotation(); + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _fileMakingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileMakingOption.setDelimiter(encoding); + } + + public String getDelimiter() { + return _fileMakingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileMakingOption.setDelimiter(delimiter); + } + + public String getLineSeparator() { + return _fileMakingOption.getLineSeparator(); + } + + public void setLineSeparator(String lineSeparator) { + _fileMakingOption.setLineSeparator(lineSeparator); + } + + public boolean isGoodByeDoubleQuotation() { + return _fileMakingOption.isGoodByeDoubleQuotation(); + } + + public FileMakingOption getFileMakingOption() { + return _fileMakingOption; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputResult.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputResult.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputResult.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,27 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.batch; + +import jp.sf.pal.addresslist.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _selectedList; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getSelectedList() { + return _selectedList; + } + + public void setSelectedList(java.util.List selectedList) { + _selectedList = selectedList; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileOutputResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,89 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.batch; + +import jp.sf.pal.addresslist.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionFailure { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + protected Entity _entity; + + protected Exception _exception; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } + + public Entity getEntity() { + return _entity; + } + + public void setEntity(Entity value) { + _entity = value; + } + + public Exception getException() { + return _exception; + } + + public void setException(Exception value) { + _exception = value; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,79 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.batch; + +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _interruptIfError; + + protected FileTokenizingOption _fileTokenizingOption = new FileTokenizingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileReflectionOption delimitateByComma() { + _fileTokenizingOption.delimitateByComma(); + return this; + } + + public TokenFileReflectionOption delimitateByTab() { + _fileTokenizingOption.delimitateByTab(); + return this; + } + + public TokenFileReflectionOption encodeAsUTF8() { + _fileTokenizingOption.encodeAsUTF8(); + return this; + } + + public TokenFileReflectionOption encodeAsWindows31J() { + _fileTokenizingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileReflectionOption handleEmptyAsNull() { + _fileTokenizingOption.handleEmptyAsNull(); + return this; + } + + public TokenFileReflectionOption interruptIfError() { + _interruptIfError = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _fileTokenizingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileTokenizingOption.setDelimiter(delimiter); + } + + public String getEncoding() { + return _fileTokenizingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileTokenizingOption.setDelimiter(encoding); + } + + public boolean isHandleEmptyAsNull() { + return _fileTokenizingOption.isHandleEmptyAsNull(); + } + + public boolean isInterruptIfError() { + return _interruptIfError; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionResult.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionResult.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionResult.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,54 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.batch; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected int _successCount; + + protected java.util.List _failureList; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public void incrementSuccessCount() { + ++_successCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public int getSuccessCount() { + return _successCount; + } + + public void setSuccessCount(int successCount) { + _successCount = successCount; + } + + public java.util.List getFailureList() { + return _failureList; + } + + public void setFailureList( + java.util.List failureList) { + this._failureList = failureList; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/batch/TokenFileReflectionResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/load/LoadReferrerOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,146 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.load; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.EntityListSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; + +/** + * The class of load referrer option. + * + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @author DBFlute(AutoGenerator) + */ +public class LoadReferrerOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ConditionBeanSetupper _conditionBeanSetupper; + + protected EntityListSetupper _entityListSetupper; + + protected REFERRER_CONDITION_BEAN _referrerConditionBean; + + protected boolean _toLastKeyCondition; + + protected boolean _stopOrderByKey; + + //========================================================================== + // ========= + // Constructor + // =========== + public LoadReferrerOption() { + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper, + EntityListSetupper entityListSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + this._entityListSetupper = entityListSetupper; + } + + public LoadReferrerOption( + LoadReferrerOption option) { + this._conditionBeanSetupper = option._conditionBeanSetupper; + this._entityListSetupper = option._entityListSetupper; + this._referrerConditionBean = option._referrerConditionBean; + this._toLastKeyCondition = option._toLastKeyCondition; + this._stopOrderByKey = option._stopOrderByKey; + } + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + /** + * Specify that the key condition is added as last condition.
    This + * method is valid only after you use reffererConditionBean and add your + * original condition to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption toLastKeyCondition() { + _toLastKeyCondition = true; + return this; + } + + /** + * Specify that it stops adding order-by of the key.
    This method is + * valid only after you use reffererConditionBean and add your original + * order-by to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption stopOrderByKey() { + _stopOrderByKey = true; + return this; + } + + public void delegateKeyConditionExchangingFirstWhereClauseForLastOne( + REFERRER_CONDITION_BEAN cb) {// Internal + if (!_toLastKeyCondition) { + cb.getSqlClause().exchangeFirstWhereClauseForLastOne(); + } + } + + public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal + if (_conditionBeanSetupper != null) { + _conditionBeanSetupper.setup(cb); + } + } + + public void delegateEntitySettingUp(List entityList) {// Internal + if (_entityListSetupper != null) { + _entityListSetupper.setup(entityList); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ConditionBeanSetupper getConditionBeanSetupper() { + return _conditionBeanSetupper; + } + + public void setConditionBeanSetupper( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public EntityListSetupper getEntityListSetupper() { + return _entityListSetupper; + } + + public void setEntityListSetupper( + EntityListSetupper entityListSetupper) { + this._entityListSetupper = entityListSetupper; + } + + public REFERRER_CONDITION_BEAN getReferrerConditionBean() { + return _referrerConditionBean; + } + + public void setReferrerConditionBean( + REFERRER_CONDITION_BEAN referrerConditionBean) { + this._referrerConditionBean = referrerConditionBean; + } + + public boolean isToLastKeyCondition() { + return _toLastKeyCondition; + } + + public boolean isStopOrderByKey() { + return _stopOrderByKey; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/load/LoadReferrerOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ConditionBeanSetupper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ConditionBeanSetupper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ConditionBeanSetupper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.setup; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; + +/** + * The interface of condition-bean setupper. + * + * @param The type of condition-bean. + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBeanSetupper { + + /** + * Set up condition. + * + * @param cb Condition-bean. (NotNull) + */ + public void setup(CONDITION_BEAN cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ConditionBeanSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/EntityListSetupper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.setup; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.Entity; + +/** + * The interface of entity list setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface EntityListSetupper { + + /** + * Set up the list of entity. + * + * @param entityList The list of entity. (NotNull) + */ + public void setup(List entityList); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/EntityListSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelBox.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelBox.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelBox.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,26 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.setup; + +/** + * The class of Value-Label Box. + * + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelBox { + + protected Object _value; + + protected String _label; + + public void setValueLabel(Object value, String label) { + this._value = value; + this._label = label; + } + + public Object getValue() { + return _value; + } + + public String getLabel() { + return _label; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelBox.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelSetupper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelSetupper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelSetupper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,20 @@ +package jp.sf.pal.addresslist.db.allcommon.bhv.setup; + +import jp.sf.pal.addresslist.db.allcommon.Entity; + +/** + * The interface of Value-Label Setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface ValueLabelSetupper { + + /** + * Set up value-label. + * + * @param box Value-label box. (NotNull) + * @param entity Entity. (NotNull) + */ + public void setup(ValueLabelBox box, ENTITY entity); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/bhv/setup/ValueLabelSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1199 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.WhereClauseSimpleFilter; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.MapListString; +import jp.sf.pal.addresslist.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * The condition-bean as abstract. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionBean implements ConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause(this); + } + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check + // logics by these purpose types. + protected boolean _forDeriveReferrer; + + protected boolean _forUnion; + + protected boolean _forExistsSubQuery; + + protected boolean _forInScopeSubQuery; + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * The implementation. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Where Clause Filter + // =================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + this._sqlClause.addWhereClauseSimpleFilter(whereClauseSimpleFilter); + } + + //========================================================================== + // ========= + // ConditionQuery + // ============== + /** + * Get condition query as interface. At the future, change public to + * protected. + * + * @return Instance of query as interface. (NotNull) + */ + abstract public ConditionQuery getConditionQueryAsInterface(); + + /** + * The implementation. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ() { + return getConditionQueryAsInterface(); + } + + //========================================================================== + // ========= + // Accept PrimaryKey + // ================= + /** + * The implementation. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] must not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + acceptPrimaryKeyMap(mapListString.generateMap(primaryKeyMapString)); + } + + protected void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException("The value should not be null: " + + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + protected long parseDateStringAsMillis(Object value, String propertyName, + String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = (String) value; + if (valueString.indexOf("-") >= 0 + && valueString.indexOf("-") != valueString.lastIndexOf("-")) { + return java.sql.Timestamp.valueOf(valueString).getTime(); + } else { + return getParseDateFormat().parse((String) value).getTime(); + } + } catch (java.text.ParseException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } + } + + private java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateTimeInstance(); + } + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) {// Very Internal! + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table left outer join ... on ... + * [from-hint] where ...} + * + * @return from-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * The implementation. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * The implementation. + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective() { + return getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + // Do nothing! + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return _sqlClause.getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Limit Select + // ============ + /** Is limit-select PK only? */ + protected boolean _isLimitSelectPKOnly; + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly() { + return _isLimitSelectPKOnly; + } + + /** + * Limit select PK only. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly() { + _isLimitSelectPKOnly = true; + return this; + } + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off() { + _isLimitSelectPKOnly = false; + return this; + } + + //========================================================================== + // ========= + // Lock Setting + // ============ + /** + * The implementation. + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate() { + getSqlClause().lockForUpdate(); + return this; + } + + //========================================================================== + // ========= + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = true; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().ignoreIncludedSelectColumn(); + } + + getSqlClause().ignoreOrderBy(); + getSqlClause().ignoreFetchScope(); + return this; + } + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = false; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().makeIncludedSelectColumnEffective(); + } + + getSqlClause().makeOrderByEffective(); + getSqlClause().makeFetchScopeEffective(); + return this; + } + + /** Is set up various things for select-count-ignore-fetch-scope? */ + protected boolean _isSelectCountIgnoreFetchScope; + + /** + * Is set up various things for select-count-ignore-fetch-scope? This method + * is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope() { + return _isSelectCountIgnoreFetchScope; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected static abstract class AbstractSpecification { + protected ConditionBean _baseCB; + + protected SpQyCall _qyCall; + + protected CQ _query; + + protected boolean _forDeriveReferrer; + + protected boolean alreadySpecifyRequiredColumn; + + /** + * @param baseCB The condition-bean of base level. (NotNull) + * @param qyCall The callback for condition-query. (NotNull) + * @param forDeriveReferrer Is this for derive referrer? + */ + protected AbstractSpecification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + _baseCB = baseCB; + _qyCall = qyCall; + _forDeriveReferrer = forDeriveReferrer; + } + + protected void doColumn(String columnName) { + assertColumn(columnName); + if (_query == null) { + _query = _qyCall.qy(); + } + if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) { + alreadySpecifyRequiredColumn = true; + doSpecifyRequiredColumn(); + } + String relationPath = _query.getRelationPath() != null ? _query + .getRelationPath() : ""; + final String tableAliasName; + if (_query.isBaseQuery(_query)) { + tableAliasName = _baseCB.getSqlClause() + .getLocalTableAliasName(); + } else { + tableAliasName = _baseCB.getSqlClause().resolveJoinAliasName( + relationPath, _query.getNestLevel()); + } + _baseCB.getSqlClause().specifySelectColumn(tableAliasName, + columnName); + } + + protected void assertColumn(String columnName) { + if (_query == null && !_qyCall.has()) { + throwSpecifyColumnNotSetupSelectColumnException(columnName); + } + } + + protected void assertForeign(String foreignPropertyName) { + if (_forDeriveReferrer) { + throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); + } + } + + protected abstract void doSpecifyRequiredColumn(); + + protected abstract String getTableDbName(); + + protected void throwSpecifyColumnNotSetupSelectColumnException( + String columnName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You specified the column that had Not been Set up!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName(); // *No!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + " cb.setupSelect_MemberStatus(); // *Point!" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName();" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + + _baseCB.getClass().getName() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Column]" + getLineSeparator() + + getTableDbName() + "." + columnName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifyColumnNotSetupSelectColumnException(msg); + } + + protected void throwDeriveReferrerInvalidForeignSpecificationException( + String foreignPropertyName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "You specified a foreign table column in spite of derive-sub-query!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified a local table column at condition-bean for derive-sub-query." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Foreign Property]" + getLineSeparator() + + foreignPropertyName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidForeignSpecificationException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + protected static interface SpQyCall { + public boolean has(); + + public CQ qy(); + } + + public static class SpecifyColumnNotSetupSelectColumnException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifyColumnNotSetupSelectColumnException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerInvalidForeignSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidForeignSpecificationException(String msg) { + super(msg); + } + } + + public static class RAFunction { + protected ConditionBean _baseCB; + + protected LOCAL_CQ _localCQ; + + protected RAQSetupper _querySetupper; + + public RAFunction(ConditionBean baseCB, LOCAL_CQ localCQ, + RAQSetupper querySetupper) { + _baseCB = baseCB; + _localCQ = localCQ; + _querySetupper = querySetupper; + } + + public void max(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("max", subQuery, _localCQ, aliasName.trim()); + } + + public void min(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("min", subQuery, _localCQ, aliasName.trim()); + } + + public void sum(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("sum", subQuery, _localCQ, aliasName.trim()); + } + + public void avg(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("avg", subQuery, _localCQ, aliasName.trim()); + } + + public void count(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("count", subQuery, _localCQ, aliasName.trim()); + } + + protected void assertAliasName(String aliasName) { + if (aliasName == null || aliasName.trim().length() == 0) { + throwDeriveReferrerInvalidAliasNameException(); + } + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_baseCB + .getTableDbName()); + Method[] methods = dbmeta.getEntityType().getMethods(); + String targetMethodName = "set" + + replaceString(aliasName, "_", "").toLowerCase(); + boolean existsSetterMethod = false; + for (Method method : methods) { + if (!method.getName().startsWith("set")) { + continue; + } + if (targetMethodName.equals(method.getName().toLowerCase())) { + existsSetterMethod = true; + break; + } + } + if (!existsSetterMethod) { + throwDeriveReferrerEntityPropertyNotFoundException(aliasName, + dbmeta.getEntityType()); + } + } + + protected void throwDeriveReferrerInvalidAliasNameException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The alias name for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Local Table]" + getLineSeparator() + + _localCQ.getTableDbName() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidAliasNameException(msg); + } + + protected void throwDeriveReferrerEntityPropertyNotFoundException( + String aliasName, Class entityType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "A property for derive-referrer was Not Found in the entity!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should implement a property(setter and getter) in the entity." + + getLineSeparator(); + msg = msg + + "Or you should confirm whether the alias name has typo or not." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [ConditionBean Invoking]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Extended Entity]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " // At the entity of Purchase..." + + getLineSeparator(); + msg = msg + " protected Date _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " public Date getLatestPurchaseDatetime() {" + + getLineSeparator(); + msg = msg + " return _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + + getLineSeparator(); + msg = msg + + " _latestPurchaseDatetime = latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entityType + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerEntityPropertyNotFoundException(msg); + } + + protected String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + public static interface RAQSetupper { + public void setup(String function, SubQuery subQuery, + LOCAL_CQ cq, String aliasName); + } + + public static class DeriveReferrerInvalidAliasNameException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidAliasNameException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerEntityPropertyNotFoundException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerEntityPropertyNotFoundException(String msg) { + super(msg); + } + } + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected void doSetupSelect(SsCall callback) { + String foreignPropertyName = callback.qf().getForeignPropertyName(); + assertSetupSelectBeforeUnion(foreignPropertyName); + limitSelect_Off(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + String localRelationPath = localCQ().getRelationPath(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, localRelationPath); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + protected static interface SsCall { + public ConditionQuery qf(); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + protected void assertPrimaryKeyMap( + Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] must not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] must not be empty."; + throw new IllegalArgumentException(msg); + } + List columnInfoList = DBMetaInstanceHandler.findDBMeta( + getTableDbName()).getPrimaryUniqueInfo().getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnDbName = columnInfo.getColumnDbName(); + if (!primaryKeyMap.containsKey(columnDbName)) { + String msg = "The primaryKeyMap must have the value of " + + columnDbName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + } + + protected void assertSetupSelectBeforeUnion(String foreignPropertyName) { + if (hasUnionQueryOrUnionAllQuery()) { + throwSetupSelectAfterUnionException( + this.getClass().getSimpleName(), foreignPropertyName); + } + } + + protected void throwSetupSelectAfterUnionException(String className, + String foreignPropertyName) { + String methodName = "setupSelect_" + initCap(foreignPropertyName) + + "()"; + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You should NOT call " + methodName + + " after calling union()!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + methodName + " should be called before calling union()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " " + className + " cb = new " + className + "();" + + getLineSeparator(); + msg = msg + " cb." + methodName + "; // You shuold call here!" + + getLineSeparator(); + msg = msg + " cb.query().setXxx...;" + getLineSeparator(); + msg = msg + " cb.union(new UnionQuery<" + className + ">() {" + + getLineSeparator(); + msg = msg + " public void query(" + className + " unionCB) {" + + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " });" + getLineSeparator(); + msg = msg + + " // You should not call setupSelect after calling union()!" + + getLineSeparator(); + msg = msg + " // cb." + methodName + ";" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SetupSelect Method]" + getLineSeparator() + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean SQL]" + getLineSeparator() + toDisplaySql() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql() { + return ConditionBeanContext.convertConditionBean2DisplaySql(this); + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Purpose Type + // ============ + public void xsetupForDeriveReferrer() { + _forDeriveReferrer = true; + } + + public void xsetupForUnion() { + _forUnion = true; + } + + public void xsetupForExistsSubQuery() { + _forExistsSubQuery = true; + } + + public void xsetupForInScopeSubQuery() { + _forInScopeSubQuery = true; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * The override. + * + * @return SQL for display. (NotNull) + */ + public String toString() { + try { + return toDisplaySql(); + } catch (RuntimeException e) { + return getSqlClause().getClause(); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionQuery.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionQuery.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionQuery.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1666 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; +import jp.sf.pal.addresslist.db.allcommon.util.TraceViewUtil; + +/** + * The abstract class of condition-query. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionQuery implements ConditionQuery { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final ConditionKey CK_EQ = ConditionKey.CK_EQUAL; + + protected static final ConditionKey CK_NE = ConditionKey.CK_NOT_EQUAL; + + protected static final ConditionKey CK_GE = ConditionKey.CK_GREATER_EQUAL; + + protected static final ConditionKey CK_GT = ConditionKey.CK_GREATER_THAN; + + protected static final ConditionKey CK_LE = ConditionKey.CK_LESS_EQUAL; + + protected static final ConditionKey CK_LT = ConditionKey.CK_LESS_THAN; + + protected static final ConditionKey CK_PS = ConditionKey.CK_PREFIX_SEARCH; + + protected static final ConditionKey CK_LS = ConditionKey.CK_LIKE_SEARCH; + + protected static final ConditionKey CK_INS = ConditionKey.CK_IN_SCOPE; + + protected static final ConditionKey CK_NINS = ConditionKey.CK_NOT_IN_SCOPE; + + protected static final ConditionKey CK_ISN = ConditionKey.CK_IS_NULL; + + protected static final ConditionKey CK_ISNN = ConditionKey.CK_IS_NOT_NULL; + + /** Condition value for DUMMY. */ + protected static final ConditionValue DUMMY_CONDITION_VALUE = new ConditionValue(); + + /** Object for DUMMY. */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** The property of condition-query. */ + protected static final String CQ_PROPERTY = "conditionQuery"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause. */ + protected final SqlClause _sqlClause; + + /** My alias name. */ + protected final String _aliasName; + + /** The level of nest. */ + protected final int _nestLevel; + + /** The level of subQuery. */ + protected int _subQueryLevel; + + // ----------------------------------------------------- + // Foreign Info + // ------------ + /** The property name of foreign. */ + protected String _foreignPropertyName; + + /** The path of relation. */ + protected String _relationPath; + + /** The query of child. */ + protected final ConditionQuery _childQuery; + + // ----------------------------------------------------- + // Inline + // ------ + /** Is it the inline for on-clause. (Property for Inline Only) */ + protected boolean _onClauseInline; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query. (Nullable: If null, this is base + * instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public AbstractConditionQuery(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + _childQuery = childQuery; + _sqlClause = sqlClause; + _aliasName = aliasName; + _nestLevel = nestLevel; + } + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery() { + return _childQuery; + } + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName() { + return _aliasName; + } + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel() { + return _nestLevel; + } + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel() { + return _nestLevel + 1; + } + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query) { + return (query.getChildQuery() == null); + } + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel() { + return _subQueryLevel; + } + + // ----------------------------------------------------- + // Real Name + // --------- + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. + */ + public String getRealAliasName() { + return getAliasName(); + } + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. This should not contain + * comma. (NotNull) + * @return Real column name. + */ + public String getRealColumnName(String columnName) { + assertColumnName(columnName); + return buildRealColumnName(getRealAliasName(), columnName); + } + + /** + * Build real column name. + * + * @param aliasName Alias name. (NotNull) + * @param columnName Column name. (NotNull) + * @return Real column name. (NotNull) + */ + protected String buildRealColumnName(String aliasName, String columnName) { + return aliasName + "." + columnName; + } + + // ----------------------------------------------------- + // Foreign Info + // ------------ + public String getForeignPropertyName() { + return _foreignPropertyName; + } + + public void xsetForeignPropertyName(String foreignPropertyName) { + this._foreignPropertyName = foreignPropertyName; + } + + public String getRelationPath() { + return _relationPath; + } + + public void xsetRelationPath(String relationPath) { + this._relationPath = relationPath; + } + + // ----------------------------------------------------- + // Inline + // ------ + public void xsetOnClauseInline(boolean onClauseInline) { + _onClauseInline = onClauseInline; + } + + //========================================================================== + // ========= + // Location + // ======== + /** + * Get location. + * + * @param columnPropertyName Column property name. + * @param key Condition key. + * @return Next nest level. + */ + protected String getLocation(String columnPropertyName, ConditionKey key) { + return getLocationBase(columnPropertyName) + "." + + key.getConditionKey(); + } + + protected String getLocationBase() { + final StringBuffer sb = new StringBuffer(); + ConditionQuery query = this; + while (true) { + if (query.isBaseQuery(query)) { + sb.insert(0, CQ_PROPERTY + "."); + break; + } else { + final String foreignPropertyName = query + .getForeignPropertyName(); + if (foreignPropertyName == null) { + String msg = "The foreignPropertyName of the query should not be null:"; + msg = msg + " query=" + query; + throw new IllegalStateException(msg); + } + sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + "."); + } + query = query.getChildQuery(); + } + return sb.toString(); + } + + protected String getLocationBase(String columnPropertyName) { + return getLocationBase() + columnPropertyName; + } + + //========================================================================== + // ========= + // Union Query + // =========== + /** The map of union query. */ + protected Map _unionQueryMap; + + /** + * Get the map of union query. + * + * @return The map of union query. (NotNull) + */ + public Map getUnionQueryMap() {// for Internal + if (_unionQueryMap == null) { + _unionQueryMap = new LinkedHashMap(); + } + return _unionQueryMap; + } + + /** + * Set union query. {Internal} + * + * @param unionQuery Union query. (NotNull) + */ + public void xsetUnionQuery(ConditionQuery unionQuery) { + xsetupUnion(unionQuery, false, getUnionQueryMap()); + } + + /** The map of union all query. */ + protected Map _unionAllQueryMap; + + /** + * Get the map of union all query. + * + * @return The map of union all query. (NotNull) + */ + public Map getUnionAllQueryMap() {// for Internal + if (_unionAllQueryMap == null) { + _unionAllQueryMap = new LinkedHashMap(); + } + return _unionAllQueryMap; + } + + /** + * Set union all query. {Internal} + * + * @param unionAllQuery Union all query. (NotNull) + */ + public void xsetUnionAllQuery(ConditionQuery unionAllQuery) { + xsetupUnion(unionAllQuery, true, getUnionAllQueryMap()); + } + + protected void xsetupUnion(ConditionQuery unionQuery, boolean unionAll, + Map unionQueryMap) { + if (unionQuery == null) { + String msg = "The argument[unionQuery] should not be null."; + throw new IllegalArgumentException(msg); + } + reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation! + getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect + // IncludedSelectColumn + // ! + if (getSqlClause().isFormatClauseEffective()) { + unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect + // FormatClause + // ! + } + String key = (unionAll ? "unionAllQuery" : "unionQuery") + + unionQueryMap.size(); + unionQueryMap.put(key, unionQuery); + registerUnionQuery(unionQuery, unionAll, (unionAll ? "unionAllQueryMap" + : "unionQueryMap") + + "." + key); + } + + /** + * Reflect relation on union query. + * + * @param baseQueryAsSuper Base query as super. (NotNull) + * @param unionQueryAsSuper Union query as super. (NotNull) + */ + abstract protected void reflectRelationOnUnionQuery( + ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper); + + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery() { + return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) + || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty()); + } + + /** + * Get the list of union query. + * + * @return The list of union query. (NotNull) + */ + public List getUnionQueryList() { + if (_unionQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionQueryMap.values()); + } + + /** + * Get the list of union all query. + * + * @return The list of union all query. (NotNull) + */ + public List getUnionAllQueryList() { + if (_unionAllQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionAllQueryMap.values()); + } + + //========================================================================== + // ========= + // Register + // ======== + // ----------------------------------------------------- + // Include-As-Mine + // --------------- + /** + * Register included-select-column. + * + * @param aliasName Alias name. This should not contain comma. (NotNull) + * @param realColumnName Real column name. This should not contain comma. + * (NotNull) + * @deprecated Unsupported! + */ + protected void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + throw new UnsupportedOperationException(); + } + + // ----------------------------------------------------- + // Query + // ----- + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName); + } + } + + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + + // ----------------------------------------------------- + // FromTo Query + // ------------ + protected void registerFromToQuery(java.util.Date fromDate, + java.util.Date toDate, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, FromToOption option) { + { + final java.util.Date filteredFromDate = option + .filterFromDate(fromDate); + final ConditionKey fromKey = option.getFromDateConditionKey(); + if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(fromKey, + filteredFromDate, cvalue, colName, capPropName, + uncapPropName); + } + } + { + final java.util.Date filteredToDate = option.filterToDate(toDate); + final ConditionKey toKey = option.getToDateConditionKey(); + if (toKey.isValidRegistration(cvalue, filteredToDate, toKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(toKey, + filteredToDate, cvalue, colName, capPropName, + uncapPropName); + } + } + } + + // ----------------------------------------------------- + // LikeSearch Query + // ---------------- + @SuppressWarnings("deprecation") + protected void registerLikeSearchQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, LikeSearchOption option) { + final String validationMsg = key.getConditionKey() + " of " + + getRealAliasName() + "." + colName; + if (!key.isValidRegistration(cvalue, value, validationMsg)) { + return; + } + if (option == null) { + throwLikeSearchOptionNotFoundException(capPropName, value); + return;// Unreachable! + } + if (value == null || !option.isSplit()) { + // As Normal Condition. + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + return; + } + // - - - - - - - - - + // Use splitByXxx(). + // - - - - - - - - - + final String[] strArray = option.generateSplitValueArray(value); + if (!option.isAsOrSplit()) { + // As 'and' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + setupConditionValueAndRegisterWhereClause(key, currentValue, + cvalue, colName, capPropName, uncapPropName, option); + + // Callback for LikeAsOr! + final List callbackList = option + .getLikeAsOrCallbackList(); + if (!callbackList.isEmpty()) { + getSqlClause().makeAdditionalConditionAsOrEffective(); + for (Iterator ite = callbackList + .iterator(); ite.hasNext();) { + final LikeSearchOption.LikeAsOrCallback likeAsOrCallback = (LikeSearchOption.LikeAsOrCallback) ite + .next(); + final String additionalTargetPropertyName = likeAsOrCallback + .getAdditionalTargetPropertyName(); + final String filteredValue = likeAsOrCallback + .filterValue(currentValue); + final LikeSearchOption optionDeepCopy = (LikeSearchOption) option + .createDeepCopy(); + optionDeepCopy.clearLikeAsOrCallback(); + final LikeSearchOption filteredOption = likeAsOrCallback + .filterOption(optionDeepCopy); + invokeSetterLikeSearch(additionalTargetPropertyName, + filteredValue, filteredOption); + } + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + } else { + // As 'or' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + if (i == 0) { + setupConditionValueAndRegisterWhereClause(key, + currentValue, cvalue, colName, capPropName, + uncapPropName, option); + } else { + getSqlClause().makeAdditionalConditionAsOrEffective(); + invokeSetterLikeSearch(uncapPropName, currentValue, option); + } + } + + // @jflute -- Callback for LikeAsOr! + // final List callbackList = + // option.getLikeAsOrCallbackList(); + // ... + + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + + protected void throwLikeSearchOptionNotFoundException(String capPropName, + String value) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = getClass().getSimpleName(); + final String methodName = "set" + capPropName + "_LikeSearch('" + value + + "', likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new RequiredOptionNotFoundException(msg); + } + + protected void invokeSetterLikeSearch(String columnFlexibleName, + Object value, LikeSearchOption option) { + if (value == null) { + return; + } + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "set" + columnCapPropName + "_LikeSearch"; + Method method = null; + try { + method = this.getClass().getMethod(methodName, + new Class[] { value.getClass(), LikeSearchOption.class }); + } catch (NoSuchMethodException e) { + String msg = "The columnFlexibleName is not existing in this table: columnFlexibleName=" + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + method.invoke(this, new Object[] { value, option }); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + // ----------------------------------------------------- + // InScope Query + // ------------- + protected void registerInScopeQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, InScopeOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + if (value != null && option.isSplit()) { + final String[] strArray = option.generateSplitValueArray(value); + final List realValueList = new ArrayList(); + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + realValueList.add(currentValue); + } + setupConditionValueAndRegisterWhereClause(key, realValueList, + cvalue, colName, capPropName, uncapPropName, option); + } else { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + } + + // ----------------------------------------------------- + // Inline Query + // ------------ + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key));// If Java, it is necessary to use uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, + _onClauseInline); + } + } + } + + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key), option);// If Java, it is necessary to use + // uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue, option); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, option, + _onClauseInline); + } + } + } + + // ----------------------------------------------------- + // InScopeSubQuery + // --------------- + // {Modified at DBFlute-0.7.5} + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String inScopeOption) { + assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery); + inScopeOption = inScopeOption != null ? inScopeOption + " " : ""; + String realColumnName = getInScopeSubQueryRealColumnName(columnName); + String subQueryClause = getInScopeSubQuerySql(subQuery, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = realColumnName + " " + inScopeOption + "in (" + beginMark + + subQueryClause + ln + endIndent + ")" + endMark; + } else { + clause = realColumnName + " " + inScopeOption + "in (" + + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + protected String getInScopeSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getInScopeSubQuerySql(ConditionQuery subQuery, + String relatedColumnName, String propertyName) { + String selectClause = "select " + + getSqlClause().getLocalTableAliasName() + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + return selectClause + " " + fromWhereClause; + } + + // ----------------------------------------------------- + // ExistsSubQuery + // -------------- + // {Modified at DBFlute-0.7.5} + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String existsOption) { + assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery); + existsOption = existsOption != null ? existsOption + " " : ""; + String realColumnName = getExistsSubQueryRealColumnName(columnName); + String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = existsOption + "exists (" + beginMark + subQueryClause + + ln + endIndent + ")" + endMark; + } else { + clause = existsOption + "exists (" + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // *Unsupport ExistsSubQuery as inline because it's so dangerous. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + protected String getExistsSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getExistsSubQuerySql(ConditionQuery subQuery, + String realColumnName, String relatedColumnName, String propertyName) { + int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + String tableAliasName = "dfsublocal_" + subQueryLevel; + String selectClause = "select " + tableAliasName + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + String joinCondition = tableAliasName + "." + relatedColumnName + " = " + + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + // [DBFlute-0.7.4] + // ----------------------------------------------------- + // DeriveSubQuery + // -------------- + protected void registerDeriveSubQuery(String function, + ConditionQuery subQuery, String columnName, + String relatedColumnName, String propertyName, String aliasName) { + assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery); + final String realColumnName = getDeriveSubQueryRealColumnName(columnName); + final String subQueryClause = getDeriveSubQuerySql(function, subQuery, + realColumnName, relatedColumnName, propertyName, aliasName); + final String clause; + if (getSqlClause().isFormatClauseEffective()) { + final String ln = getLineSeparator(); + final int subQueryLevel = subQuery.getSubQueryLevel(); + final String subQueryIdentity = propertyName + "[" + subQueryLevel + + "]"; + final String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + final String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + final String endIndent = " "; + clause = "(" + beginMark + subQueryClause + ln + endIndent + + ") as " + aliasName + endMark; + } else { + clause = "(" + subQueryClause + ") as " + aliasName; + } + getSqlClause().specifyDeriveSubQuery(aliasName, clause); + } + + protected String getDeriveSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getDeriveSubQuerySql(String function, + ConditionQuery subQuery, String realColumnName, + String relatedColumnName, String propertyName, String aliasName) { + final int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + final String tableAliasName = "dfsublocal_" + subQueryLevel; + final String deriveColumnName = subQuery.getSqlClause() + .getSpecifiedColumnNameAsOne(); + if (deriveColumnName == null || deriveColumnName.trim().length() == 0) { + throwDeriveReferrerInvalidColumnSpecificationException(function, + aliasName); + } + assertDeriveReferrerColumnType(function, subQuery, deriveColumnName); + subQuery.getSqlClause().clearSpecifiedSelectColumn(); + final String selectClause = "select " + function + "(" + tableAliasName + + "." + deriveColumnName + ")"; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + final String joinCondition = tableAliasName + "." + relatedColumnName + + " = " + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + protected void throwDeriveReferrerInvalidColumnSpecificationException( + String function, String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The specified the column for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + " You should call specify().column[TargetColumn]() only once." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " // *No! It's empty!" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime(); // *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidColumnSpecificationException(msg); + } + + public static class DeriveReferrerInvalidColumnSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidColumnSpecificationException(String msg) { + super(msg); + } + } + + protected void assertDeriveReferrerColumnType(String function, + ConditionQuery subQuery, String deriveColumnName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(subQuery + .getTableDbName()); + final Class deriveColumnType = dbmeta.findColumnInfo( + deriveColumnName).getPropertyType(); + if ("sum".equalsIgnoreCase(function) + || "avg".equalsIgnoreCase(function)) { + if (!Number.class.isAssignableFrom(deriveColumnType)) { + throwDeriveReferrerUnmatchedColumnTypeException(function, + deriveColumnName, deriveColumnType); + } + } + } + + protected void throwDeriveReferrerUnmatchedColumnTypeException( + String function, String deriveColumnName, Class deriveColumnType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The type of the specified the column unmatched with the function!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should confirm the list as follow:" + + getLineSeparator(); + msg = msg + " max() : String, Number, Date" + getLineSeparator(); + msg = msg + " min() : String, Number, Date" + getLineSeparator(); + msg = msg + " sum() : Number" + getLineSeparator(); + msg = msg + " avg() : Number" + getLineSeparator(); + msg = msg + " count() : String, Number, Date" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Function]" + getLineSeparator() + function + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + + "(" + deriveColumnType.getName() + ")" + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerUnmatchedColumnTypeException(msg); + } + + public static class DeriveReferrerUnmatchedColumnTypeException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerUnmatchedColumnTypeException(String msg) { + super(msg); + } + } + + // ----------------------------------------------------- + // Where Clause + // ------------ + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If + // Java + // , + // it + // is + // necessary + // to + // use + // uncapPropName + // ! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue); + } + + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), + option);// If Java, it is necessary to use uncapPropName! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue, option); + } + + protected void registerWhereClause(String whereClause) { + getSqlClause().registerWhereClause(whereClause); + } + + protected void registerInlineWhereClause(String whereClause) { + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(whereClause); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), whereClause, _onClauseInline); + } + } + + // ----------------------------------------------------- + // Union Query + // ----------- + public void registerUnionQuery(ConditionQuery unionQuery, boolean unionAll, + String unionQueryPropertyName) { + final String unionQueryClause = getUnionQuerySql(unionQuery, + unionQueryPropertyName); + + // At the future, building SQL will be moved to sqlClause. + getSqlClause().registerUnionQuery(unionQueryClause, unionAll); + } + + protected String getUnionQuerySql(ConditionQuery unionQuery, + String unionQueryPropertyName) { + final String fromClause = unionQuery.getSqlClause().getFromClause(); + final String whereClause = unionQuery.getSqlClause().getWhereClause(); + final String unionQueryClause; + if (whereClause.trim().length() <= 0) { + unionQueryClause = fromClause + " " + + getSqlClause().getUnionWhereClauseMark(); + } else { + final int whereIndex = whereClause.indexOf("where "); + if (whereIndex < 0) { + String msg = "The whereClause should have 'where' string: " + + whereClause; + throw new IllegalStateException(msg); + } + final int clauseIndex = whereIndex + "where ".length(); + final String mark = getSqlClause() + .getUnionWhereFirstConditionMark(); + unionQueryClause = fromClause + " " + + whereClause.substring(0, clauseIndex) + mark + + whereClause.substring(clauseIndex); + } + final String oldStr = ".conditionQuery."; + final String newStr = ".conditionQuery." + unionQueryPropertyName + "."; + return replaceString(unionQueryClause, oldStr, newStr);// Very + // Important! + } + + // ----------------------------------------------------- + // OrderBy + // ------- + public void withNullsFirst() {// is User Public! + getSqlClause().addNullsFirstToPreviousOrderBy(); + } + + public void withNullsLast() {// is User Public! + getSqlClause().addNullsLastToPreviousOrderBy(); + } + + protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, true); + } + + protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, false); + } + + protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException( + String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The aliasName was Not Found in specified alias names." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified an alias name that is the same as one in specify-derived-referrer." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg); + } + + public static class SpecifiedDerivedOrderByAliasNameNotFoundException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) { + super(msg); + } + } + + protected void registerOrderBy(String columnName, boolean ascOrDesc) { + getSqlClause().registerOrderBy(getRealColumnName(columnName), null, + ascOrDesc); + } + + protected void regOBA(String columnName) { + registerOrderBy(columnName, true); + } + + protected void regOBD(String columnName) { + registerOrderBy(columnName, false); + } + + //========================================================================== + // ========= + // Name Resolver + // ============= + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param nestLevel Nest level. + * @return Resolved join alias name. (NotNull) + */ + protected String resolveJoinAliasName(String relationPath, int nestLevel) { + return getSqlClause().resolveJoinAliasName(relationPath, nestLevel); + } + + protected String resolveNestLevelExpression(String name) { + return getSqlClause().resolveNestLevelExpression(name, getNestLevel()); + } + + protected String resolveNextRelationPath(String tableName, + String relationPropertyName) { + final int relationNo = getSqlClause().resolveRelationNo(tableName, + relationPropertyName); + String nextRelationPath = "_" + relationNo; + if (_relationPath != null) { + nextRelationPath = _relationPath + nextRelationPath; + } + return nextRelationPath; + } + + //========================================================================== + // ========= + // Fixed Condition + // =============== + protected String prepareFixedCondition(String fixedCondition, + String localAliasName, String foreignAliasName) { + fixedCondition = replaceString(fixedCondition, "$$alias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$localAlias$$", + localAliasName); + return fixedCondition; + } + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "get" + columnCapPropName; + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, columnFlexibleName); + return (ConditionValue) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", + conditionKeyName); + if (value == null) { + return; + } + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "set" + columnCapPropName + "_" + + initCap(conditionKeyName); + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] { value.getClass() }, propertyName); + helpInvokingCQMethod(cq, method, new Object[] { value }); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of a column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final String ascDesc = isAsc ? "Asc" : "Desc"; + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "addOrderBy_" + columnCapPropName + "_" + + ascDesc; + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] {}, propertyName); + helpInvokingCQMethod(cq, method, new Object[] {}); + } + + /** + * The implementation. + * + * @param foreignPropertyName The property name of foreign. (NotNull and + * NotEmpty) + * @return The conditionQuery of foreign as interface. (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = "query" + initCap(foreignPropertyName); + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, foreignPropertyName); + return (ConditionQuery) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + private PropertyNameCQContainer helpExtractingPropertyNameCQContainer( + String name) { + final String[] strings = name.split("\\."); + final int length = strings.length; + String propertyName = null; + ConditionQuery cq = this; + int index = 0; + for (String element : strings) { + if (length == (index + 1)) {// at last loop! + propertyName = element; + break; + } + cq = cq.invokeForeignCQ(element); + ++index; + } + return new PropertyNameCQContainer(propertyName, cq); + } + + private static class PropertyNameCQContainer { + protected String _propertyName; + + protected ConditionQuery _cq; + + public PropertyNameCQContainer(String propertyName, ConditionQuery cq) { + this._propertyName = propertyName; + this._cq = cq; + } + + public String getPropertyName() { + return _propertyName; + } + + public ConditionQuery getConditionQuery() { + return _cq; + } + } + + private Method helpGettingCQMethod(ConditionQuery cq, String methodName, + Class[] argTypes, String property) { + try { + return cq.getClass().getMethod(methodName, argTypes); + } catch (NoSuchMethodException e) { + String msg = "The method is not existing:"; + msg = msg + " methodName=" + methodName; + msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes); + msg = msg + " tableName=" + cq.getTableDbName(); + msg = msg + " property=" + property; + throw new IllegalStateException(msg, e); + } + } + + private Object helpInvokingCQMethod(ConditionQuery cq, Method method, + Object[] args) { + try { + return method.invoke(cq, args); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e.getCause()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String fRES(String value) { + return filterRemoveEmptyString(value); + } + + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + private String filterRemoveEmptyString(String value) { + return ((value != null && !"".equals(value)) ? value : null); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + protected List cTL( + Collection col) { + return convertToList(col); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + private List convertToList( + Collection col) { + if (col == null) { + return null; + } + if (col instanceof List) { + return filterRemoveNullOrEmptyValueFromList((List) col); + } + return filterRemoveNullOrEmptyValueFromList(new ArrayList( + col)); + } + + private List filterRemoveNullOrEmptyValueFromList( + List ls) { + if (ls == null) { + return null; + } + List newList = new ArrayList(); + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final PROPERTY_TYPE element = ite.next(); + if (element == null) { + continue; + } + if (element instanceof String) { + if (((String) element).length() == 0) { + continue; + } + } + newList.add(element); + } + return newList; + } + + public void doNss(NssCall callback) {// Very Internal + String foreignPropertyName = callback.qf().getForeignPropertyName(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, getRelationPath()); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + public static interface NssCall {// Very Internal + public ConditionQuery qf(); + } + + protected void registerOuterJoin(ConditionQuery cq, + Map joinOnMap) { + getSqlClause().registerOuterJoin(cq.getTableSqlName(), + cq.getRealAliasName(), joinOnMap); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected String convertObjectArrayToStringView(Object[] objArray) { + return TraceViewUtil.convertObjectArrayToStringView(objArray); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the column-name is not null and is not empty and does not + * contain comma. + * + * @param columnName Column-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertColumnName(String columnName) { + if (columnName == null) { + String msg = "The columnName should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnName.trim().length() == 0) { + String msg = "The columnName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (columnName.indexOf(",") >= 0) { + String msg = "The columnName should not contain comma ',': " + + columnName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the alias-name is not null and is not empty and does not + * contain comma. + * + * @param aliasName Alias-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertAliasName(String aliasName) { + if (aliasName == null) { + String msg = "The aliasName should not be null."; + throw new IllegalArgumentException(msg); + } + if (aliasName.trim().length() == 0) { + String msg = "The aliasName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (aliasName.indexOf(",") >= 0) { + String msg = "The aliasName should not contain comma ',': " + + aliasName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return getClass().getSimpleName() + ":{aliasName=" + _aliasName + + ", nestLevel=" + _nestLevel + ", subQueryLevel=" + + _subQueryLevel + ", foreignPropertyName=" + + _foreignPropertyName + ", relationPath=" + _relationPath + + ", onClauseInline=" + _onClauseInline + "}"; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/AbstractConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,226 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; + +/** + * The interface of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBean extends PagingBean { + + //========================================================================== + // =========== + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get SQL-clause instance. + * + * @return SQL-clause. (NotNull) + */ + public SqlClause getSqlClause(); + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + /** + * Accept primary-key map-string. + * + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap( + java.util.Map primaryKeyMap); + + /** + * Accept primary-key map-string. Delimiter is at-mark and semicolon. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString); + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + /** + * Add order-by PrimaryKey asc. {order by primaryKey1 asc, primaryKey2 + * asc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Asc(); + + /** + * Add order-by PrimaryKey desc. {order by primaryKey1 desc, primaryKey2 + * desc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Desc(); + + //========================================================================== + // ========= + // Query + // ===== + /** + * Get condition-query as interface. + * + * @return Instance of query as interface. (NotNull) + * @deprecated + */ + public ConditionQuery getConditionQueryAsInterface(); + + /** + * Get the conditionQuery of the local table as interface. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ(); + + //========================================================================== + // ========= + // Union Query + // =========== + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery(); + + //========================================================================== + // ========= + // Limit Select + // ============ + /** + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly(); + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off(); + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly(); + + //========================================================================== + // =========== + // Lock Setting + // ============ + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate(); + + //========================================================================== + // =========== + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope(); + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope(); + + /** + * Is set up various things for select-count-ignore-fetch-scope? {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope(); + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig); + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig(); + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBeanContext.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBeanContext.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,428 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.DBFluteConfig; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseDb2; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseDerby; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseFirebird; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseH2; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseMySql; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseOracle; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClausePostgreSql; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClauseSqlServer; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The context of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionBeanContext { + + /** Log instance. */ + private static final Log _log = LogFactory + .getLog(ConditionBeanContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get condition-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static ConditionBean getConditionBeanOnThread() { + return (ConditionBean) _threadLocal.get(); + } + + /** + * Set condition-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setConditionBeanOnThread(ConditionBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing condition-bean on thread? + * + * @return Determination. + */ + public static boolean isExistConditionBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear condition-bean on thread. + */ + public static void clearConditionBeanOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Initialize against the ClassLoader Headache + // =========================================== + @SuppressWarnings("unused") + public static void initialize() { + boolean debugEnabled = _log.isDebugEnabled(); + // Against the ClassLoader Headache! + final StringBuilder sb = new StringBuilder(); + { + final Class clazz = jp.sf.pal.addresslist.db.allcommon.cbean.SimplePagingBean.class; + if (debugEnabled) { + sb.append( + " ...Loading class of " + clazz.getName() + " by " + + clazz.getClassLoader().getClass()).append( + getLineSeparator()); + } + } + { + Class clazz = jp.sf.pal.addresslist.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.addresslist.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingOption.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingRowEndDeterminer.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingRowResource.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingRowSetupper.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.PageNumberLink.class; + clazz = jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper.class; + clazz = jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler.class; + if (debugEnabled) { + sb.append(" ...Loading class of ...and so on"); + } + } + if (debugEnabled) { + _log.debug("{Initialize against the ClassLoader Headache}" + + getLineSeparator() + sb); + } + } + + //========================================================================== + // ========= + // Type Determination + // ================== + /** + * Is the argument condition-bean? + * + * @param dtoInstance DTO instance. + * @return Determination. + */ + public static boolean isTheArgumentConditionBean(final Object dtoInstance) { + if (dtoInstance instanceof ConditionBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type condition-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeConditionBean(final Class dtoClass) { + if (ConditionBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ========= + // Product Name + // ============ + public static final String DB_NAME_DERBY = "derby"; + + public static final String DB_NAME_H2 = "h2"; + + public static final String DB_NAME_ORACLE = "oracle"; + + public static final String DB_NAME_MYSQL = "mysql"; + + public static final String DB_NAME_POSTGRESQL = "postgresql"; + + public static final String DB_NAME_FIREBIRD = "firebird"; + + public static final String DB_NAME_MSSQL = "mssql"; + + public static final String DB_NAME_SYBASE = "sybase"; + + public static final String DB_NAME_DB2 = "db2"; + + protected static final Map _driverHintDatabaseProductNameMap; + static { + final Map tmpMap = Collections + .synchronizedMap(new LinkedHashMap()); + tmpMap.put("org.apache.derby", DB_NAME_DERBY); + tmpMap.put("org.h2", DB_NAME_H2); + tmpMap.put("oracle", DB_NAME_ORACLE); + tmpMap.put("mysql", DB_NAME_MYSQL); + tmpMap.put("postgresql", DB_NAME_POSTGRESQL); + tmpMap.put("firebird", DB_NAME_FIREBIRD); + tmpMap.put("sqlserver", DB_NAME_MSSQL); + tmpMap.put("sybase", DB_NAME_SYBASE); + tmpMap.put("db2", DB_NAME_DB2); + _driverHintDatabaseProductNameMap = java.util.Collections + .unmodifiableMap(tmpMap); + } + + public static boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + final java.util.Set keySet = _driverHintDatabaseProductNameMap + .keySet(); + for (final java.util.Iterator ite = keySet.iterator(); ite + .hasNext();) { + final String driverHint = (String) ite.next(); + if (driverClassName.indexOf(driverHint) >= 0) { + final String databaseProductName = (String) _driverHintDatabaseProductNameMap + .get(driverHint); + setDatabaseProductName(databaseProductName); + return true; + } + } + return false; + } + + /** The database product name. */ + private static String _databaseProductName; + + /** + * Get database product name. + * + * @return Database product name. + */ + public static String getDatabaseProductName() { + return _databaseProductName; + } + + /** + * Set database product name. + * + * @param name Database product name. (NotNull) + */ + public static void setDatabaseProductName(String name) { + if (_databaseProductName != null) { + String msg = "Already set up: current=" + _databaseProductName + + " your=" + name; + throw new IllegalStateException(msg); + } + _databaseProductName = name; + } + + //========================================================================== + // ========= + // SqlClause Creator + // ================= + /** + * Create SQL-clause. {for condition-bean} + * + * @param cb Condition-bean. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(ConditionBean cb) { + final String tableSqlName = cb.getTableSqlName(); + final SqlClause sqlClause = createSqlClause(tableSqlName); + if (DBFluteConfig.getInstance().isConditionBeanFormatSql()) { + sqlClause.makeFormatClauseEffective(); + } + return sqlClause; + } + + /** + * Create SQL-clause. {for SimplePagingBean} + * + * @param tableDbName The DB name of table. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(String tableDbName) { + final String databaseProductName = getDatabaseProductName(); + if (databaseProductName == null) { + return new SqlClauseH2(tableDbName); + } + final String name = databaseProductName.toLowerCase(); + if (name.equalsIgnoreCase(DB_NAME_DERBY)) { + return new SqlClauseDerby(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_H2)) { + return new SqlClauseH2(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_ORACLE)) { + return new SqlClauseOracle(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_FIREBIRD)) { + return new SqlClauseFirebird(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MYSQL)) { + return new SqlClauseMySql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_POSTGRESQL)) { + return new SqlClausePostgreSql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MSSQL)) { + return new SqlClauseSqlServer(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_DB2)) { + return new SqlClauseDb2(tableDbName); + } else { + return new SqlClauseH2(tableDbName); + } + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwEntityAlreadyDeletedException(Object searchKey4Log) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity was Not Found! it has already been deleted!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target record on your database." + + getLineSeparator(); + msg = msg + + "Does the target record really created before this operation?" + + getLineSeparator(); + msg = msg + "Has the target record been deleted by other thread?" + + getLineSeparator(); + msg = msg + + "It is precondition that the record exists on your database." + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } + + public static void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + + resultCountString + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm your search condition. Does it really select the only one?" + + getLineSeparator(); + msg = msg + + "Please confirm your database. Does it really exist the only one?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + if (cause != null) { + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException( + msg, cause); + } else { + throw new jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + //========================================================================== + // ========= + // Display SQL + // =========== + public static String convertConditionBean2DisplaySql(ConditionBean cb) { + final String twoWaySql; + if (cb.isLimitSelect_PKOnly()) { + twoWaySql = cb.getSqlClause().getClausePKOnly(); + } else { + twoWaySql = cb.getSqlClause().getClause(); + } + return InternalSqlParser.convertTwoWaySql2DisplaySql(twoWaySql, cb); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public static boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return createSqlClause("dummy").isUniqueConstraintException(sqlState, + errorCode); + } + + // [DBFlute-0.7.8] + //========================================================================== + // ========= + // Database Type + // ============= + /** + * Is the database Oracle? + * + * @return Is the database Oracle? + */ + public static boolean isOracle() { + return createSqlClause("dummy") instanceof SqlClauseOracle; + } + + /** + * Is the database PostgreSQL? + * + * @return Is the database PostgreSQL? + */ + public static boolean isPostgreSql() { + return createSqlClause("dummy") instanceof SqlClausePostgreSql; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionQuery.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionQuery.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionQuery.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,153 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The condition-query as interface. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface ConditionQuery { + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. (NotNull) + */ + public String getRealAliasName(); + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. (NotNull) + * @return Real column name. (NotNull) + */ + public String getRealColumnName(String columnName); + + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery(); + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause(); + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName(); + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel(); + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel(); + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query); + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel(); + + /** + * Get the property name of foreign relation. + * + * @return The property name of foreign relation. (NotNull) + */ + public String getForeignPropertyName(); + + /** + * Get the path of foreign relation. + * + * @return The path of foreign relation. (NotNull) + */ + public String getRelationPath(); + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * Invoke getting value. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName); + + /** + * Invoke setting query. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value); + + /** + * Invoke adding orderBy. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc); + + /** + * Invoke getting foreign conditionQuery. + * + * @param foreignPropertyName The property name of the foreign relation. + * (NotNull and NotEmpty) + * @return The conditionQuery of the foreign relation as interface. + * (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,62 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +/** + * The bean of fetch narrowing. + * + * @author DBFlute(AutoGenerator) + */ +public interface FetchNarrowingBean { + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective(); + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing(); + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing(); + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBeanContext.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBeanContext.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBeanContext.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,79 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +/** + * Fetch-Narrowing-Bean context. (referring to s2pager) + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingBeanContext { + + /** The thread-local for this. */ + private static ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get fetch-narrowing-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static FetchNarrowingBean getFetchNarrowingBeanOnThread() { + return (FetchNarrowingBean) _threadLocal.get(); + } + + /** + * Set fetch-narrowing-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setFetchNarrowingBeanOnThread(FetchNarrowingBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing fetch-narrowing-bean on thread? + * + * @return Determination. + */ + public static boolean isExistFetchNarrowingBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear fetch-narrowing-bean on thread. + */ + public static void clearFetchNarrowingBeanOnThread() { + _threadLocal.set(null); + } + + /** + * Is the argument fetch-narrowing-bean? + * + * @param dtoInstance Dto instance. + * @return Determination. + */ + public static boolean isTheArgumentFetchNarrowingBean( + final Object dtoInstance) { + if (dtoInstance instanceof FetchNarrowingBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type fetch-narrowing-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeFetchNarrowingBean(final Class dtoClass) { + if (FetchNarrowingBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/FetchNarrowingBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ListResultBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ListResultBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ListResultBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,392 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; +import jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingRowResource; +import jp.sf.pal.addresslist.db.allcommon.cbean.grouping.GroupingRowSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The result bean for list. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class ListResultBean implements List, Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + protected String _tableDbName; + + /** The value of all record count. */ + protected int _allRecordCount; + + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); + + /** The clause of order-by. (NotNull) */ + protected OrderByClause _orderByClause = new OrderByClause(); + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public ListResultBean() { + } + + //========================================================================== + // ========= + // Grouping + // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ + public List groupingList( + GroupingRowSetupper groupingRowSetupper, + GroupingOption groupingOption) { + final List groupingList = new ArrayList(); + GroupingRowEndDeterminer rowEndDeterminer = groupingOption + .getGroupingRowEndDeterminer(); + if (rowEndDeterminer == null) { + rowEndDeterminer = new GroupingRowEndDeterminer() { + public boolean determine( + GroupingRowResource rowResource, + ENTITY nextEntity) { + return rowResource.isSizeUpBreakCount(); + } + }; // as Default + } + GroupingRowResource rowResource = new GroupingRowResource(); + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; + for (ENTITY entity : _selectedList) { + // Set up row resource. + rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); + + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + break; + } + + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); + + // Do at row end. + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + + // Initialize! + rowResource = new GroupingRowResource(); + rowElementIndex = 0; + ++allElementIndex; + continue; + } + ++rowElementIndex; + ++allElementIndex; + } + return groupingList; + } + + //========================================================================== + // ========= + // Mapping + // ======= + public ListResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean mappingList = new ListResultBean(); + for (ENTITY entity : _selectedList) { + mappingList.add(entityDtoMapper.map(entity)); + } + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + return mappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has this result selected? + * + * @return Determination. {Whether table DB name is not null} + */ + public boolean isSelectedResult() { + return _tableDbName != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return Hash-code from primary-keys. + */ + public int hashCode() { + if (_selectedList == null) { + return super.hashCode(); + } + return _selectedList.hashCode(); + } + + /** + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (_selectedList == null) { + return false; + } + if (other == null) { + return false; + } + if (!(other instanceof List)) { + return false; + } + return _selectedList.equals(other); + } + + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // List Elements + // ============= + public boolean add(ENTITY o) { + return _selectedList.add(o); + } + + public boolean addAll(Collection c) { + return _selectedList.addAll(c); + } + + public void clear() { + _selectedList.clear(); + } + + public boolean contains(Object o) { + return _selectedList.contains(o); + } + + public boolean containsAll(Collection c) { + return _selectedList.containsAll(c); + } + + public boolean isEmpty() { + return _selectedList.isEmpty(); + } + + public Iterator iterator() { + return _selectedList.iterator(); + } + + public boolean remove(Object o) { + return _selectedList.remove(o); + } + + public boolean removeAll(Collection c) { + return _selectedList.removeAll(c); + } + + public boolean retainAll(Collection c) { + return _selectedList.retainAll(c); + } + + public int size() { + return _selectedList.size(); + } + + public Object[] toArray() { + return _selectedList.toArray(); + } + + public TYPE[] toArray(TYPE[] a) { + return _selectedList.toArray(a); + } + + public void add(int index, ENTITY element) { + _selectedList.add(index, element); + } + + public boolean addAll(int index, Collection c) { + return _selectedList.addAll(index, c); + } + + public ENTITY get(int index) { + return _selectedList.get(index); + } + + public int indexOf(Object o) { + return _selectedList.indexOf(o); + } + + public int lastIndexOf(Object o) { + return _selectedList.lastIndexOf(o); + } + + public ListIterator listIterator() { + return _selectedList.listIterator(); + } + + public ListIterator listIterator(int index) { + return _selectedList.listIterator(index); + } + + public ENTITY remove(int index) { + return _selectedList.remove(index); + } + + public ENTITY set(int index, ENTITY element) { + return _selectedList.set(index, element); + } + + public List subList(int fromIndex, int toIndex) { + return _selectedList.subList(fromIndex, toIndex); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of tableDbName. + * + * @return The value of tableDbName. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + public String getTableDbName() { + return _tableDbName; + } + + /** + * Set the value of tableDbName. + * + * @param tableDbName The value of tableDbName. (NotNull) + */ + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } + + /** + * Get the value of allRecordCount. + * + * @return The value of allRecordCount. + */ + public int getAllRecordCount() { + return _allRecordCount; + } + + /** + * Set the value of allRecordCount. + * + * @param allRecordCount The value of allRecordCount. + */ + public void setAllRecordCount(int allRecordCount) { + _allRecordCount = allRecordCount; + } + + /** + * Get the value of selectedList. + * + * @return Selected list. (NotNull) + */ + public List getSelectedList() { + return _selectedList; + } + + /** + * Set the value of selectedList. + * + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) + */ + public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list + _selectedList = selectedList; + } + + /** + * Get the value of orderByClause. + * + * @return The value of orderByClause. (NotNull) + */ + public OrderByClause getOrderByClause() { + return _orderByClause; + } + + /** + * Set the value of orderByClause. + * + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) + */ + public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list + _orderByClause = orderByClause; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ListResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/MapParameterBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/MapParameterBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/MapParameterBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,18 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.util.Map; + +/** + * The bean of map parameter. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapParameterBean { + + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/MapParameterBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/OrderByBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/OrderByBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/OrderByBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,46 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The order-by-bean as interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface OrderByBean extends SelectResource { + + /** + * Get sql component of order-by clause. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause(); + + /** + * Get order-by clause. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause(); + + /** + * Clear order-by. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy(); + + /** + * Ignore order-by. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy(); + + /** + * Make order-by effective. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/OrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,163 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +/** + * The bean of paging. + * + * @author DBFlute(AutoGenerator) + */ +public interface PagingBean extends FetchNarrowingBean, OrderByBean { + + //========================================================================== + // ========= + // Paging Determination + // ==================== + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Is the execution for paging(NOT count)? + * + * @return Determination. + */ + public boolean isPaging(); + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * Is the count executed later? + * + * @return Determination. + */ + public boolean isCountLater(); + + //========================================================================== + // ========= + // Paging Setting + // ============== + /** + * Set up paging resources. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber); + + /** + * Set whether the execution for paging(NOT count). {INTERNAL METHOD} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging); + + //========================================================================== + // ========= + // Fetch Setting + // ============= + /** + * Fetch first.
    If you invoke this, your SQL returns [fetch-size] + * records from first. + * + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize); + + /** + * Fetch scope.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index]. + * + * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus) + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page.
    When you invoke this, it is normally necessary to + * invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
    But you + * also can use default-fetch-size without invoking 'fetchFirst()' or + * 'fetchScope()'.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index] calculated by [fetch-page-number]. + * + * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & + * NotZero: If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber); + + //========================================================================== + // ========= + // Fetch Property + // ============== + /** + * Get fetch-start-index. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch-size. + * + * @return Fetch-size. + */ + public int getFetchSize(); + + /** + * Get fetch-page-number. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective(); + + //========================================================================== + // ========= + // Hint Property + // ============= + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint(); + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint(); + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,33 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.util.List; + +/** + * The handler of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface PagingHandler { + + /** + * Get the bean of paging. + * + * @return The bean of paging. (NotNull) + */ + public PagingBean getPagingBean(); + + /** + * Execute SQL for count. + * + * @return The count of execution. + */ + public int count(); + + /** + * Execute SQL for paging. + * + * @return The list of entity. (NotNull) + */ + public List paging(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingInvoker.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingInvoker.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingInvoker.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,116 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.util.List; + +/** + * The invoker of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class PagingInvoker { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + protected boolean _countLater; + + //========================================================================== + // ========= + // Constructor + // =========== + public PagingInvoker(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke select-page by handler. + * + * @param handler The handler of paging. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean invokePaging(PagingHandler handler) { + assertObjectNotNull("handler", handler); + final PagingBean pagingBean = handler.getPagingBean(); + assertObjectNotNull("handler.getPagingBean()", pagingBean); + if (!pagingBean.isFetchScopeEffective()) { + String msg = "The paging bean is not effective about fetch-scope!"; + msg = msg + + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!)."; + msg = msg + " The paging bean is: " + pagingBean; + throw new IllegalStateException(msg); + } + final int allRecordCount; + final List selectedList; + if (_countLater) { + selectedList = handler.paging(); + allRecordCount = handler.count(); + } else { + allRecordCount = handler.count(); + selectedList = handler.paging(); + } + final PagingResultBean rb = new ResultBeanBuilder( + _tableDbName).buildPagingResultBean(pagingBean, allRecordCount, + selectedList); + if (isNecessaryToReadPageAgain(rb)) { + pagingBean.fetchPage(rb.getAllPageCount()); + final int reAllRecordCount = handler.count(); + final java.util.List reSelectedList = handler.paging(); + return new ResultBeanBuilder(_tableDbName) + .buildPagingResultBean(pagingBean, reAllRecordCount, + reSelectedList); + } else { + return rb; + } + } + + /** + * Is it necessary to read page again? + * + * @param rb The result bean of paging. (NotNull) + * @return Determination. + */ + protected boolean isNecessaryToReadPageAgain(PagingResultBean rb) { + return rb.getAllRecordCount() > 0 && rb.getSelectedList().isEmpty(); + } + + //========================================================================== + // ========= + // Option + // ====== + public PagingInvoker countLater() { + _countLater = true; + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingInvoker.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingResultBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingResultBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingResultBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,375 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import jp.sf.pal.addresslist.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.group.PageGroupBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.group.PageGroupOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.range.PageRangeBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.range.PageRangeOption; + +/** + * The result bean of paging. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class PagingResultBean extends ListResultBean { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Page Basic Info + // --------------- + /** The value of current page number. */ + protected int _pageSize; + + /** The value of current page number. */ + protected int _currentPageNumber; + + // ----------------------------------------------------- + // Page Group + // ---------- + /** The value of page-group bean. */ + protected PageGroupBean _pageGroupBean; + + /** The value of page-group option. */ + protected PageGroupOption _pageGroupOption; + + // ----------------------------------------------------- + // Page Range + // ---------- + /** The value of page-range bean. */ + protected PageRangeBean _pageRangeBean; + + /** The value of page-range option. */ + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public PagingResultBean() { + } + + //========================================================================== + // ========= + // Calculated Property + // =================== + /** + * Get the value of allPageCount that is calculated. + * + * @return The value of allPageCount. + */ + public int getAllPageCount() { + return calculateAllPageCount(_allRecordCount, _pageSize); + } + + /** + * Get the value of currentStartRecordNumber that is calculated. + * + * @return The value of currentStartRecordNumber. + */ + public int getCurrentStartRecordNumber() { + return calculateCurrentStartRecordNumber(_currentPageNumber, _pageSize); + } + + /** + * Get the value of currentEndRecordNumber that is calculated. + * + * @return The value of currentEndRecordNumber. + */ + public int getCurrentEndRecordNumber() { + return calculateCurrentEndRecordNumber(_currentPageNumber, _pageSize); + } + + //========================================================================== + // ========= + // Page Group/Range + // ================ + // ----------------------------------------------------- + // Page Group + // ---------- + /** + * Get the value of pageGroupSize. + * + * @return The value of pageGroupSize. + */ + public int getPageGroupSize() { + return _pageGroupOption != null ? _pageGroupOption.getPageGroupSize() + : 0; + } + + /** + * Set the value of pageGroupSize. + * + * @param pageGroupSize The value of pageGroupSize. + */ + public void setPageGroupSize(int pageGroupSize) { + final PageGroupOption option = new PageGroupOption(); + option.setPageGroupSize(pageGroupSize); + setPageGroupOption(option); + } + + /** + * Set the value of pageGroupOption. + * + * @param pageGroupOption The value of pageGroupOption. (Nullable) + */ + public void setPageGroupOption(PageGroupOption pageGroupOption) { + _pageGroupOption = pageGroupOption; + } + + /** + * Get the value of pageGroupBean. + * + * @return The value of pageGroupBean. (NotNull) + */ + public PageGroupBean pageGroup() { + assertPageGroupValid(); + if (_pageGroupBean == null) { + _pageGroupBean = new PageGroupBean(); + } + _pageGroupBean.setPageGroupOption(_pageGroupOption); + _pageGroupBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageGroupBean.setAllPageCount(getAllPageCount()); + return _pageGroupBean; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + // ----------------------------------------------------- + // Page Range + // ---------- + /** + * Get the value of pageRangeSize. + * + * @return The value of pageRangeSize. + */ + public int getPageRangeSize() { + return _pageRangeOption != null ? _pageRangeOption.getPageRangeSize() + : 0; + } + + /** + * Set the value of pageRangeSize. + * + * @param pageRangeSize The value of pageRangeSize. + */ + public void setPageRangeSize(int pageRangeSize) { + final PageRangeOption option = new PageRangeOption(); + option.setPageRangeSize(pageRangeSize); + setPageRangeOption(option); + } + + /** + * Set the value of pageRangeOption. + * + * @param pageRangeOption The value of pageRangeOption. (Nullable) + */ + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + /** + * Get the value of pageRangeBean. + * + * @return The value of pageRangeBean. (NotNull) + */ + public PageRangeBean pageRange() { + assertPageRangeValid(); + if (_pageRangeBean == null) { + _pageRangeBean = new PageRangeBean(); + } + _pageRangeBean.setPageRangeOption(_pageRangeOption); + _pageRangeBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageRangeBean.setAllPageCount(getAllPageCount()); + return _pageRangeBean; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is existing previous page? Using values are currentPageNumber. + * + * @return Determination. + */ + public boolean isExistPrePage() { + return (_allRecordCount > 0 && _currentPageNumber > 1); + } + + /** + * Is existing next page? Using values are currentPageNumber and + * allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPage() { + return (_allRecordCount > 0 && _currentPageNumber < getAllPageCount()); + } + + //========================================================================== + // ========= + // Mapping + // ======= + public PagingResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean ls = super.mappingList(entityDtoMapper); + final PagingResultBean mappingList = new PagingResultBean(); + mappingList.setSelectedList(ls.getSelectedList()); + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + mappingList.setPageSize(getPageSize()); + mappingList.setCurrentPageNumber(getCurrentPageNumber()); + mappingList.setPageRangeOption(_pageRangeOption); + mappingList.setPageGroupOption(_pageGroupOption); + return mappingList; + } + + //========================================================================== + // ========= + // Calculate(Internal) + // =================== + /** + * Calculate all page count. + * + * @param allRecordCount All record count. + * @param pageSize Fetch-size. + * @return All page count. + */ + protected int calculateAllPageCount(int allRecordCount, int pageSize) { + if (allRecordCount == 0) { + return 1; + } + int pageCountBase = (allRecordCount / pageSize); + if (allRecordCount % pageSize > 0) { + pageCountBase++; + } + return pageCountBase; + } + + protected int calculateCurrentStartRecordNumber(int currentPageNumber, + int pageSize) { + return ((currentPageNumber - 1) * pageSize) + 1; + } + + protected int calculateCurrentEndRecordNumber(int currentPageNumber, + int pageSize) { + return calculateCurrentStartRecordNumber(currentPageNumber, pageSize) + + _selectedList.size() - 1; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); + sb.append(" of ").append(getAllRecordCount()); + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() + .size()) : null); + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of pageSize. + * + * @return The value of pageSize. + */ + public int getPageSize() { + return _pageSize; + } + + /** + * Set the value of pageSize. + * + * @param pageSize The value of pageSize. + */ + public void setPageSize(int pageSize) { + _pageSize = pageSize; + } + + /** + * Get the value of currentPageNumber. + * + * @return The value of currentPageNumber. + */ + public int getCurrentPageNumber() { + return _currentPageNumber; + } + + /** + * Set the value of currentPageNumber. + * + * @param currentPageNumber The value of currentPageNumber. + */ + public void setCurrentPageNumber(int currentPageNumber) { + _currentPageNumber = currentPageNumber; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/PagingResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ResultBeanBuilder.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,81 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.util.List; + +/** + * The builder of result bean. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class ResultBeanBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public ResultBeanBuilder(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Builder + // ======= + /** + * Build the result bean of list without order-by clause. {for Various} + * + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, + List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); + return rb; + } + + /** + * Build the result bean of paging. {for Paging} + * + * @param pb The bean of paging. (NotNull) + * @param allRecordCount All record count. + * @param selectedList The list of selected entity. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean buildPagingResultBean(PagingBean pb, + int allRecordCount, List selectedList) { + PagingResultBean rb = new PagingResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(allRecordCount); + rb.setSelectedList(selectedList); + rb.setOrderByClause(pb.getSqlComponentOfOrderByClause()); + rb.setPageSize(pb.getFetchSize()); + rb.setCurrentPageNumber(pb.getFetchPageNumber()); + return rb; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ResultBeanBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SelectResource.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SelectResource.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SelectResource.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +/** + * The select-resource as marker-interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface SelectResource { + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SelectResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimpleOrderByBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimpleOrderByBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimpleOrderByBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,165 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * @deprecated + */ +public class SimpleOrderByBean implements OrderByBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public SimpleOrderByBean() { + } + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get sql-clause. + * + * @return Sql clause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Select Resource + // =============== + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + throw new UnsupportedOperationException(); + } + + //========================================================================== + // ========= + // OrderBy + // ======= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + /** + * Register order-by-asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByAsc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, true); + return this; + } + + /** + * Register order-by-desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByDesc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, false); + return this; + } + + /** + * Reverse order-by or Override order-by asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByAsc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, true); + return this; + } + + /** + * Reverse order-by or Override order-by desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByDesc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, false); + return this; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimpleOrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimplePagingBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimplePagingBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimplePagingBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,419 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The simple pagingBean. + * + * @author DBFlute(AutoGenerator) + */ +public class SimplePagingBean implements PagingBean, MapParameterBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + /** The map of parameter. (Nullable) */ + protected Map _parameterMap; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** Is the execution for paging(NOT count)? */ + protected boolean _paging = true; + + /** Is the count executed later? */ + protected boolean _countLater; + + /** Is fetch narrowing valid? */ + protected boolean _fetchNarrowing = true; + + /** The map for parameter. */ + protected Map _map; + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + return _paging; + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + return _countLater; + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. {INTERNAL METHOD: Don't Invoke This!} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) { + if (paging) { + getSqlClause().makeFetchScopeEffective(); + } else { + getSqlClause().ignoreFetchScope(); + } + this._paging = paging; + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * Get fetch-narrowing start-index. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * Get fetch-narrowing size. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _fetchNarrowing && getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + _fetchNarrowing = false; + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + _fetchNarrowing = true; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Implementation of SelectResource + // ================================ + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of MapParameterBean + // ================================== + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap() { + return _parameterMap; + } + + /** + * Add the parameter to the map. + * + * @param key The key of parameter. (NotNull) + * @param value The value of parameter. (Nullable) + */ + public void addParameter(String key, Object value) { + if (_parameterMap == null) { + _parameterMap = new LinkedHashMap(); + } + _parameterMap.put(key, value); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // SqlClause + // --------- + /** + * Get sqlClause. + * + * @return SqlClause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SimplePagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SubQuery.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SubQuery.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SubQuery.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +public interface SubQuery { + public void query(SUB_CB subCB); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/SubQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/UnionQuery.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/UnionQuery.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/UnionQuery.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,5 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean; + +public interface UnionQuery { + public void query(UNION_CB unionCB); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/UnionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKey.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKey.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKey.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,307 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The abstract class of condition-key. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class ConditionKey { + + /** Mark of replaced value. */ + public static final String MARK_OF_REPLACED_VALUE = "ReplacedValue"; + + /** The condition key of equal. */ + public static final ConditionKey CK_EQUAL = new ConditionKeyEqual(); + + /** The condition key of notEqual. */ + public static final ConditionKey CK_NOT_EQUAL = new ConditionKeyNotEqual(); + + /** The condition key of greaterThan. */ + public static final ConditionKey CK_GREATER_THAN = new ConditionKeyGreaterThan(); + + /** The condition key of lessrThan. */ + public static final ConditionKey CK_LESS_THAN = new ConditionKeyLessThan(); + + /** The condition key of greaterEqual. */ + public static final ConditionKey CK_GREATER_EQUAL = new ConditionKeyGreaterEqual(); + + /** The condition key of lessEqual. */ + public static final ConditionKey CK_LESS_EQUAL = new ConditionKeyLessEqual(); + + /** The condition key of prefixSearch. */ + public static final ConditionKey CK_PREFIX_SEARCH = new ConditionKeyPrefixSearch(); + + /** The condition key of likeSearch. */ + public static final ConditionKey CK_LIKE_SEARCH = new ConditionKeyLikeSearch(); + + /** The condition key of inScope. */ + public static final ConditionKey CK_IN_SCOPE = new ConditionKeyInScope(); + + /** The condition key of notInScope. */ + public static final ConditionKey CK_NOT_IN_SCOPE = new ConditionKeyNotInScope(); + + /** The condition key of isNull. */ + public static final ConditionKey CK_IS_NULL = new ConditionKeyIsNull(); + + /** The condition key of isNotNull. */ + public static final ConditionKey CK_IS_NOT_NULL = new ConditionKeyIsNotNull(); + + /** Dummy-object for IsNull and IsNotNull and so on... */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** Condition-key. */ + protected String _conditionKey; + + /** Operand. */ + protected String _operand; + + /** + * Get condition-key. + * + * @return Condition-key. + */ + public String getConditionKey() { + return _conditionKey; + } + + /** + * Get operand. + * + * @return Operand. + */ + public String getOperand() { + return _operand; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + abstract public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName); + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value); + return this; + } + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value, option); + return this; + } + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value); + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option); + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location); + return conditionValue; + } + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @param option Condition option. (NotNull) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location, option); + return conditionValue; + } + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location); + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location, + ConditionOption option); + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null"; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param rearOption Rear option. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClauseWithRearOption(String columnName, + String location, String rearOption) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null" + rearOption; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param dummyValue Dummy value. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location, + String dummyValue) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/" + dummyValue; + } + + /** + * Build clause without value. + * + * @param columnName Column name. (NotNull) + * @return Clause without value. (NotNull) + */ + protected String buildClauseWithoutValue(String columnName) { + return columnName + " " + getOperand(); + } + + /** + * Get wild-card. + * + * @return Wild-card. + */ + protected String getWildCard() { + return "%"; + } + + /** + * The override. Returns hash-code of this condition-key string. + * + * @return HashCode. + */ + public int hashCode() { + return getConditionKey().hashCode(); + } + + /** + * The override. If the condition-key of the other is same as this one, + * returns true. + * + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (other instanceof ConditionKey) { + if (this.getConditionKey().equals( + ((ConditionKey) other).getConditionKey())) { + return true; + } + } + return false; + } + + /** + * The override. + * + * @return View-string of condition key information. + */ + public String toString() { + return "ConditionKey: " + getConditionKey() + " " + getOperand() + + " wild-card=[" + getWildCard() + "]"; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKey.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyEqual.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyEqual.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyEqual.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,108 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of equal. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyEqual() { + _conditionKey = "equal"; + _operand = "="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasEqual()) { + if (conditionValue.equalEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getEqual() == null) { + return; + } + conditionList + .add(buildBindClause(columnName, value.getEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setEqual(value).setEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,109 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterEqual() { + _conditionKey = "greaterEqual"; + _operand = ">="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterEqual()) { + if (conditionValue.equalGreaterEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterEqual(value).setGreaterEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,109 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterThan.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterThan() { + _conditionKey = "greaterThan"; + _operand = ">"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterThan()) { + if (conditionValue.equalGreaterThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterThan(value).setGreaterThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyInScope.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyInScope.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyInScope.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,127 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of inScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyInScope() { + _conditionKey = "inScope"; + _operand = "in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasInScope()) { + if (conditionValue.equalInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue.overrideInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof InScopeOption)) { + String msg = "The argument[option] should be InScopeOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setInScope((java.util.List) value) + .setInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setInScope((java.util.List) value, + (InScopeOption) option).setInScopeLocation(location); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,100 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNotNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNotNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyIsNotNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNotNull() { + _conditionKey = "isNotNull"; + _operand = "is not null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNotNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNotNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNotNull(DUMMY_OBJECT) + .setIsNotNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,98 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyIsNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNull() { + _conditionKey = "isNull"; + _operand = "is null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNull(DUMMY_OBJECT).setIsNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,109 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyLessEqual() { + _conditionKey = "lessEqual"; + _operand = "<="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessEqual()) { + if (conditionValue.equalLessEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessEqual(value).setLessEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,109 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessThan.class); + + /** + * Constructor. + */ + protected ConditionKeyLessThan() { + _conditionKey = "lessThan"; + _operand = "<"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessThan()) { + if (conditionValue.equalLessThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessThan(value).setLessThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,104 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The condition-key of likeSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLikeSearch extends ConditionKey { + + /** + * Constructor. + */ + protected ConditionKeyLikeSearch() { + _conditionKey = "likeSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value) { + throw new UnsupportedOperationException( + "doAddWhereClause without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof LikeSearchOption)) { + String msg = "The argument[option] should be LikeSearchOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + final LikeSearchOption myOption = (LikeSearchOption) option; + conditionList.add(buildBindClauseWithRearOption(columnName, value + .getLikeSearchLocation(), myOption.getRearOption())); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + throw new UnsupportedOperationException( + "doSetupConditionValue without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setLikeSearch((String) value, (LikeSearchOption) option) + .setLikeSearchLocation(location); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,109 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyNotEqual() { + _conditionKey = "notEqual"; + _operand = "!="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasNotEqual()) { + if (conditionValue.equalNotEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideNotEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotEqual(value).setNotEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,117 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notInScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyNotInScope() { + _conditionKey = "notInScope"; + _operand = "not in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasNotInScope()) { + if (conditionValue.equalNotInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue + .overrideNotInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotInScope((java.util.List) value) + .setNotInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,111 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.ckey; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of prefixSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyPrefixSearch extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyPrefixSearch.class); + + /** + * Constructor. + */ + protected ConditionKeyPrefixSearch() { + _conditionKey = "prefixSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasPrefixSearch()) { + if (conditionValue.equalPrefixSearch(value + getWildCard())) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overridePrefixSearch(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getPrefixSearch() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getPrefixSearchLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setPrefixSearch( + (value != null ? value + getWildCard() : null)) + .setPrefixSearchLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/ConditionOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/ConditionOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/ConditionOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,10 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionOption { + public String getRearOption(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/ConditionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/DateFromToOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/DateFromToOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/DateFromToOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,27 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption; + +/** + * The option of date-from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new DateFromToOption(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class DateFromToOption extends FromToOption { + + //========================================================================== + // ========= + // Constructor + // =========== + public DateFromToOption() { + compareAsDate(); + } +} Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/FromToOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/FromToOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/FromToOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,160 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption; + +/** + * The option of from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new FromToOption().compareAsDate(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + * 
    + *   new FromToOption(); 
    + *     --> column >= '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().lessThan(); 
    + *     --> column >= '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan().lessThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class FromToOption implements ConditionOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected boolean _fromDateGreaterThan; + + protected boolean _toDateLessThan; + + protected boolean _compareAsDate; + + //========================================================================== + // ========= + // Interface Implementation + // ======================== + public String getRearOption() { + String msg = "Thie option does not use getRearOption()!"; + throw new UnsupportedOperationException(msg); + } + + //========================================================================== + // ========= + // Main + // ==== + public FromToOption greaterThan() { + _fromDateGreaterThan = true; + return this; + } + + public FromToOption lessThan() { + _toDateLessThan = true; + return this; + } + + /** + * Compare as date. + * + *
    +     * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    +     * 
    +     *   new FromToOption().compareAsDate();
    +     *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    +     * 
    +     * This method ignore greaterThan() and lessThan().
    +     * 
    + * + * @return this. (NotNull) + */ + public FromToOption compareAsDate() { + _compareAsDate = true; + return this; + } + + //========================================================================== + // ========= + // Internal Main + // ============= + public java.util.Date filterFromDate(java.util.Date fromDate) { + if (fromDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(fromDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + final java.util.Date cloneDate = (java.util.Date) fromDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return fromDate; + } + + public java.util.Date filterToDate(java.util.Date toDate) { + if (toDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(toDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + addCalendarNextDay(cal);// Key Point! + final java.util.Date cloneDate = (java.util.Date) toDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return toDate; + } + + public jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey getFromDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL; + } + if (_fromDateGreaterThan) { + return jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_THAN;// Default + // ! + } else { + return jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL;// Default + // ! + } + } + + public jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey getToDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN; + } + if (_toDateLessThan) { + return jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN;// Default + // ! + } else { + return jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_EQUAL;// Default + // ! + } + } + + //========================================================================== + // ========= + // Calendar Helper + // =============== + protected void addCalendarNextDay(java.util.Calendar cal) { + cal.add(java.util.Calendar.DAY_OF_MONTH, 1); + } + + protected void clearCalendarHourMinuteSecondMilli(java.util.Calendar cal) { + cal.clear(java.util.Calendar.MILLISECOND); + cal.clear(java.util.Calendar.SECOND); + cal.clear(java.util.Calendar.MINUTE); + cal.set(java.util.Calendar.HOUR_OF_DAY, cal + .getActualMinimum(java.util.Calendar.HOUR_OF_DAY)); + } +} Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/InScopeOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/InScopeOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/InScopeOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,95 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of in-scope-option. + * + * @author DBFlute(AutoGenerator) + */ +public class InScopeOption extends SimpleStringOption { + + //========================================================================== + // =========== + // Split + // ===== + public InScopeOption splitBySpace() { + return (InScopeOption) doSplitBySpace(); + } + + public InScopeOption splitBySpace(int splitLimitCount) { + return (InScopeOption) doSplitBySpace(splitLimitCount); + } + + public InScopeOption splitBySpaceContainsDoubleByte() { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(); + } + + public InScopeOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public InScopeOption splitByPipeLine() { + return (InScopeOption) doSplitByPipeLine(); + } + + public InScopeOption splitByPipeLine(int splitLimitCount) { + return (InScopeOption) doSplitByPipeLine(splitLimitCount); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + public InScopeOption toUpperCase() { + return (InScopeOption) doToUpperCase(); + } + + public InScopeOption toLowerCase() { + return (InScopeOption) doToLowerCase(); + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + public InScopeOption toSingleByteSpace() { + return (InScopeOption) doToSingleByteSpace(); + } + + public InScopeOption toSingleByteAlphabetNumber() { + return (InScopeOption) doToSingleByteAlphabetNumber(); + } + + public InScopeOption toSingleByteAlphabetNumberMark() { + return (InScopeOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // =========== + // Real Value + // ========== + public java.util.List generateRealValueList( + java.util.List valueList) { + final java.util.List resultList = new java.util.ArrayList(); + for (final java.util.Iterator ite = valueList.iterator(); ite + .hasNext();) { + final String value = ite.next(); + resultList.add(generateRealValue(value)); + } + return resultList; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/InScopeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/LikeSearchOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/LikeSearchOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/LikeSearchOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,281 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of like-search-option. + * + * @author DBFlute(AutoGenerator) + */ +public class LikeSearchOption extends SimpleStringOption { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String LIKE_PREFIX = "prefix"; + + protected static final String LIKE_SUFFIX = "suffix"; + + protected static final String LIKE_CONTAIN = "contain"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _like; + + protected String _escape; + + protected boolean _asOrSplit; + + protected List _likeAsOrCallbackList; + + //========================================================================== + // ========= + // Rear Option + // =========== + public String getRearOption() { + if (_escape == null || _escape.trim().length() == 0) { + return ""; + } + return " escape '" + _escape + "'"; + } + + //========================================================================== + // ========= + // AsOr + // ==== + /** @deprecated */ + public static interface LikeAsOrCallback { + public String getAdditionalTargetPropertyName(); + + public String filterValue(String currentValue); + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback); + } + + /** @deprecated */ + public static abstract class DefaultLikeAsOrCallback implements + LikeAsOrCallback { + public String filterValue(String currentValue) { + return currentValue; + } + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback) { + return optionDeepCopyWithoutCallback; + } + } + + public boolean hasLikeAsOrCallback() { + return _likeAsOrCallbackList != null + && !_likeAsOrCallbackList.isEmpty(); + } + + public List getLikeAsOrCallbackList() { + if (_likeAsOrCallbackList == null) { + _likeAsOrCallbackList = new ArrayList(); + } + return _likeAsOrCallbackList; + } + + /** + * @param likeAsOrCallback Callback. + * @deprecated + */ + public void addLikeAsOrCallback(LikeAsOrCallback likeAsOrCallback) { + getLikeAsOrCallbackList().add(likeAsOrCallback); + } + + public void clearLikeAsOrCallback() { + getLikeAsOrCallbackList().clear(); + } + + //========================================================================== + // ========= + // Like + // ==== + public LikeSearchOption likePrefix() { + _like = LIKE_PREFIX; + return this; + } + + public LikeSearchOption likeSuffix() { + _like = LIKE_SUFFIX; + return this; + } + + public LikeSearchOption likeContain() { + _like = LIKE_CONTAIN; + return this; + } + + //========================================================================== + // ========= + // Escape + // ====== + public LikeSearchOption escapeByPipeLine() { + _escape = "|"; + return this; + } + + public LikeSearchOption escapeByAtMark() { + _escape = "@"; + return this; + } + + public LikeSearchOption escapeBySlash() { + _escape = "/"; + return this; + } + + public LikeSearchOption escapeByBackSlash() { + _escape = "\\"; + return this; + } + + //========================================================================== + // ========= + // Split + // ===== + public LikeSearchOption splitBySpace() { + return (LikeSearchOption) doSplitBySpace(); + } + + public LikeSearchOption splitBySpace(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpace(splitLimitCount); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte() { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public LikeSearchOption splitByPipeLine() { + return (LikeSearchOption) doSplitByPipeLine(); + } + + public LikeSearchOption splitByPipeLine(int splitLimitCount) { + return (LikeSearchOption) doSplitByPipeLine(splitLimitCount); + } + + public LikeSearchOption asOrSplit() { + _asOrSplit = true; + return this; + } + + public boolean isAsOrSplit() { + return _asOrSplit; + } + + //========================================================================== + // ========= + // To Upper/Lower Case + // =================== + public LikeSearchOption toUpperCase() { + return (LikeSearchOption) doToUpperCase(); + } + + public LikeSearchOption toLowerCase() { + return (LikeSearchOption) doToLowerCase(); + } + + //========================================================================== + // ========= + // To Single Byte + // ============== + public LikeSearchOption toSingleByteSpace() { + return (LikeSearchOption) doToSingleByteSpace(); + } + + public LikeSearchOption toSingleByteAlphabetNumber() { + return (LikeSearchOption) doToSingleByteAlphabetNumber(); + } + + public LikeSearchOption toSingleByteAlphabetNumberMark() { + return (LikeSearchOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // ========= + // To Double Byte + // ============== + + //========================================================================== + // ========= + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // ========= + // Real Value + // ========== + public String generateRealValue(String value) { + value = super.generateRealValue(value); + + // Escape + if (_escape != null && _escape.trim().length() != 0) { + String tmp = replace(value, _escape, _escape + _escape); + tmp = replace(tmp, "%", _escape + "%"); + tmp = replace(tmp, "_", _escape + "_"); + value = tmp; + } + final String wildCard = "%"; + if (_like == null || _like.trim().length() == 0) { + return value; + } else if (_like.equals(LIKE_PREFIX)) { + return value + wildCard; + } else if (_like.equals(LIKE_SUFFIX)) { + return wildCard + value; + } else if (_like.equals(LIKE_CONTAIN)) { + return wildCard + value + wildCard; + } else { + String msg = "The like was wrong string: " + _like; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // DeepCopy + // ======== + public Object createDeepCopy() { + final LikeSearchOption deepCopy = (LikeSearchOption) super + .createDeepCopy(); + deepCopy._like = _like; + deepCopy._escape = _escape; + if (hasLikeAsOrCallback()) { + for (Iterator ite = _likeAsOrCallbackList + .iterator(); ite.hasNext();) { + deepCopy.addLikeAsOrCallback((LikeAsOrCallback) ite.next()); + } + } + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new LikeSearchOption(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "like=" + _like + ", escape=" + _escape + ", split=" + isSplit() + + ", asOrSplit = " + _asOrSplit; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/LikeSearchOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/SimpleStringOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/SimpleStringOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/SimpleStringOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,192 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.SplitOptionParts; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.ToSingleByteOptionParts; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.ToUpperLowerCaseOptionParts; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; + +/** + * The class of simple-string-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringOption implements ConditionOption { + + protected SplitOptionParts _splitOptionParts; + + protected ToUpperLowerCaseOptionParts _toUpperLowerCaseOptionParts; + + protected ToSingleByteOptionParts _toSingleByteCaseOptionParts; + + protected JapaneseOptionPartsAgent _japaneseOptionPartsAgent; + + //========================================================================== + // =========== + // Rear Option + // =========== + public String getRearOption() { + return ""; + } + + //========================================================================== + // =========== + // Split + // ===== + protected SimpleStringOption doSplitBySpace() { + getSplitOptionParts().splitBySpace(); + return this; + } + + protected SimpleStringOption doSplitBySpace(int splitLimitCount) { + getSplitOptionParts().splitBySpace(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte() { + getSplitOptionParts().splitBySpaceContainsDoubleByte(); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte( + int splitLimitCount) { + getSplitOptionParts().splitBySpaceContainsDoubleByte(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitByPipeLine() { + getSplitOptionParts().splitByPipeLine(); + return this; + } + + protected SimpleStringOption doSplitByPipeLine(int splitLimitCount) { + getSplitOptionParts().splitByPipeLine(splitLimitCount); + return this; + } + + protected SplitOptionParts getSplitOptionParts() { + if (_splitOptionParts == null) { + _splitOptionParts = new SplitOptionParts(); + } + return _splitOptionParts; + } + + public boolean isSplit() { + return getSplitOptionParts().isSplit(); + } + + public String[] generateSplitValueArray(String value) { + return getSplitOptionParts().generateSplitValueArray(value); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + protected SimpleStringOption doToUpperCase() { + getToUpperLowerCaseOptionParts().toUpperCase(); + return this; + } + + protected SimpleStringOption doToLowerCase() { + getToUpperLowerCaseOptionParts().toLowerCase(); + return this; + } + + protected ToUpperLowerCaseOptionParts getToUpperLowerCaseOptionParts() { + if (_toUpperLowerCaseOptionParts == null) { + _toUpperLowerCaseOptionParts = new ToUpperLowerCaseOptionParts(); + } + return _toUpperLowerCaseOptionParts; + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + protected SimpleStringOption doToSingleByteSpace() { + getToSingleByteOptionParts().toSingleByteSpace(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumber() { + getToSingleByteOptionParts().toSingleByteAlphabetNumber(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumberMark() { + getToSingleByteOptionParts().toSingleByteAlphabetNumberMark(); + return this; + } + + protected ToSingleByteOptionParts getToSingleByteOptionParts() { + if (_toSingleByteCaseOptionParts == null) { + _toSingleByteCaseOptionParts = new ToSingleByteOptionParts(); + } + return _toSingleByteCaseOptionParts; + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + protected JapaneseOptionPartsAgent doLocalJapanese() { + return getJapaneseOptionPartsAgent(); + } + + protected JapaneseOptionPartsAgent getJapaneseOptionPartsAgent() { + if (_japaneseOptionPartsAgent == null) { + _japaneseOptionPartsAgent = new JapaneseOptionPartsAgent(); + } + return _japaneseOptionPartsAgent; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + value = getToUpperLowerCaseOptionParts().generateRealValue(value); + value = getToSingleByteOptionParts().generateRealValue(value); + value = getJapaneseOptionPartsAgent().generateRealValue(value); + return value; + } + + //========================================================================== + // =========== + // General Helper + // ============== + protected String replace(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SimpleStringOption deepCopy = newDeepCopyInstance(); + deepCopy._splitOptionParts = _splitOptionParts != null ? (SplitOptionParts) _splitOptionParts + .createDeepCopy() + : null; + deepCopy._toUpperLowerCaseOptionParts = _toUpperLowerCaseOptionParts != null ? (ToUpperLowerCaseOptionParts) _toUpperLowerCaseOptionParts + .createDeepCopy() + : null; + deepCopy._toSingleByteCaseOptionParts = _toSingleByteCaseOptionParts != null ? (ToSingleByteOptionParts) _toSingleByteCaseOptionParts + .createDeepCopy() + : null; + deepCopy._japaneseOptionPartsAgent = _japaneseOptionPartsAgent != null ? (JapaneseOptionPartsAgent) _japaneseOptionPartsAgent + .createDeepCopy() + : null; + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new SimpleStringOption(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/SimpleStringOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/SplitOptionParts.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/SplitOptionParts.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/SplitOptionParts.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,161 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SplitOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _split; + + protected String _splitContainedDelimiter; + + protected int _splitLimitCount; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isSplit() { + return _split != null; + } + + public void splitBySpace() { + _split = " "; + } + + public void splitBySpace(int splitLimitCount) { + _split = " "; + _splitLimitCount = splitLimitCount; + } + + public void splitBySpaceContainsDoubleByte() { + _split = " "; + _splitContainedDelimiter = "\u3000"; + } + + public void splitBySpaceContainsDoubleByte(int splitLimitCount) { + _split = " "; + _splitContainedDelimiter = "\u3000"; + _splitLimitCount = splitLimitCount; + } + + public void splitByPipeLine() { + _split = "|"; + } + + public void splitByPipeLine(int splitLimitCount) { + _split = "|"; + _splitLimitCount = splitLimitCount; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String[] generateSplitValueArray(String value) { + if (value == null) { + String msg = "The argument[value] should not be null of empty: " + + value; + throw new IllegalArgumentException(msg); + } + value = repalceContainedDelimiterToRealDelimiter(value); + final java.util.StringTokenizer st = new java.util.StringTokenizer( + value, _split); + final String[] tokenizedValues = new String[st.countTokens()]; + int count = 0; + while (st.hasMoreTokens()) { + tokenizedValues[count] = st.nextToken(); + count++; + } + final String[] values = removeInvalidValue(tokenizedValues); + if (_splitLimitCount > 0 && values.length > _splitLimitCount) { + final String[] realValues = new String[_splitLimitCount]; + for (int i = 0; i < values.length; i++) { + if (i == _splitLimitCount) { + break; + } + realValues[i] = values[i]; + } + return realValues; + } else { + return values; + } + + } + + protected String repalceContainedDelimiterToRealDelimiter(String value) { + if (value == null) { + return value; + } + if (_splitContainedDelimiter == null) { + return value; + } + if (_split == null) { + return value; + } + return replace(value, _splitContainedDelimiter, _split); + } + + protected String[] removeInvalidValue(String[] values) { + final java.util.List ls = new java.util.ArrayList(); + for (int i = 0; i < values.length; i++) { + final String value = values[i]; + if (value == null || value.equals("")) {// Don't trim!!! + continue; + } + ls.add(value); + } + final String[] resultArray = new String[ls.size()]; + for (int i = 0; i < ls.size(); i++) { + resultArray[i] = (String) ls.get(i); + } + return resultArray; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected final String replace(String text, String fromText, String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SplitOptionParts deepCopy = new SplitOptionParts(); + deepCopy._split = _split; + deepCopy._splitContainedDelimiter = _splitContainedDelimiter; + deepCopy._splitLimitCount = _splitLimitCount; + return deepCopy; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/SplitOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,88 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts; + +import jp.sf.pal.addresslist.db.allcommon.helper.character.GeneralCharacter; +import jp.sf.pal.addresslist.db.allcommon.helper.character.impl.GeneralCharacterImpl; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class ToSingleByteOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toSingleByteSpace; + + protected boolean _toSingleByteAlphabetNumber; + + protected boolean _toSingleByteAlphabetNumberMark; + + private GeneralCharacter _generalCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToSingleByteSpace() { + return _toSingleByteSpace; + } + + public void toSingleByteSpace() { + _toSingleByteSpace = true; + } + + public void toSingleByteAlphabetNumber() { + _toSingleByteAlphabetNumber = true; + } + + public void toSingleByteAlphabetNumberMark() { + _toSingleByteAlphabetNumberMark = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Single Byte + if (_toSingleByteSpace) { + value = (value != null ? value.replaceAll("\u3000", " ") : value); + } + if (_toSingleByteAlphabetNumberMark) { + value = getGeneralCharacter().toSingleByteAlphabetNumberMark(value); + } else if (_toSingleByteAlphabetNumber) { + value = getGeneralCharacter().toSingleByteAlphabetNumber(value); + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected GeneralCharacter getGeneralCharacter() { + if (_generalCharacter == null) { + _generalCharacter = new GeneralCharacterImpl(); + } + return _generalCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToSingleByteOptionParts deepCopy = new ToSingleByteOptionParts(); + deepCopy._toSingleByteSpace = _toSingleByteSpace; + deepCopy._toSingleByteAlphabetNumber = _toSingleByteAlphabetNumber; + deepCopy._toSingleByteAlphabetNumberMark = _toSingleByteAlphabetNumberMark; + return deepCopy; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,61 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts; + +/** + * The class of condition-option-parts about toUpperCase/toLowerCase. + * + * @author DBFlute(AutoGenerator) + */ +public class ToUpperLowerCaseOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toUpperCase; + + protected boolean _toLowerCase; + + //========================================================================== + // =========== + // Main + // ==== + public void toUpperCase() { + _toUpperCase = true; + _toLowerCase = false; + } + + public void toLowerCase() { + _toUpperCase = false; + _toLowerCase = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Upper/Lower Case + if (_toUpperCase) { + value = (value != null ? value.toUpperCase() : value); + } + if (_toLowerCase) { + value = (value != null ? value.toLowerCase() : value); + } + return value; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToUpperLowerCaseOptionParts deepCopy = new ToUpperLowerCaseOptionParts(); + deepCopy._toUpperCase = _toUpperCase; + deepCopy._toLowerCase = _toLowerCase; + return deepCopy; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,87 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.coption.parts.local; + +import jp.sf.pal.addresslist.db.allcommon.helper.character.JapaneseCharacter; +import jp.sf.pal.addresslist.db.allcommon.helper.character.impl.JapaneseCharacterImpl; + +/** + * The class of condition-option-parts-agent. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseOptionPartsAgent { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toDoubleByteKatakana; + + protected boolean _removeLastLongVowel; + + private JapaneseCharacter _japaneseCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToDoubleByteKatakana() { + return _toDoubleByteKatakana; + } + + public void toDoubleByteKatakana() { + _toDoubleByteKatakana = true; + } + + public boolean isRemoveLastLongVowel() { + return _removeLastLongVowel; + } + + public void removeLastLongVowel() { + _removeLastLongVowel = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Double Byte + if (_toDoubleByteKatakana) { + value = getJapaneseCharacter().toDoubleByteKatakana(value); + } + + // Remove + if (_removeLastLongVowel) { + if (value != null && value.endsWith("\u30fc")) { + value = value.substring(0, value.length() - "\u30fc".length()); + } + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected JapaneseCharacter getJapaneseCharacter() { + if (_japaneseCharacter == null) { + _japaneseCharacter = new JapaneseCharacterImpl(); + } + return _japaneseCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final JapaneseOptionPartsAgent deepCopy = new JapaneseOptionPartsAgent(); + deepCopy._toDoubleByteKatakana = _toDoubleByteKatakana; + deepCopy._removeLastLongVowel = _removeLastLongVowel; + return deepCopy; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/cvalue/ConditionValue.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/cvalue/ConditionValue.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/cvalue/ConditionValue.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1218 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.cvalue; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption; + +/** + * Condition value. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionValue { + + //========================================================================== + // ========= + // Equal + // ===== + /** Value of equal. */ + protected Object _equalValue; + + /** + * Get the value of equal. + * + * @return The value of equal. (Nullable) + */ + public Object getEqual() { + return filterValue(_equalValue); + } + + /** + * Set the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqual(Object value) { + _equalValue = value; + return this; + } + + /** + * Does it has the value of equal? + * + * @return Determination. (NotNull) + */ + public boolean hasEqual() { + return _equalValue != null; + } + + /** + * Does the value equal the value of equal? + * + * @param value The value of equal. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalEqual(Object value) { + return hasEqual() ? _equalValue.equals(value) : value == null; + } + + /** + * Override the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideEqual(Object value) { + _equalValue = value; + return this; + } + + /** Location of equal. */ + protected String _equalLocation; + + /** + * Get the location of equal. + * + * @return The location of equal. (Nullable) + */ + public String getEqualLocation() { + return _equalLocation; + } + + /** + * Set the location of equal. + * + * @param location The location of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqualLocation(String location) { + _equalLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not Equal + // ========= + /** Value of notEqual. */ + protected Object _notEqualValue; + + /** + * Get the value of notEqual. + * + * @return The value of notEqual. (Nullable) + */ + public Object getNotEqual() { + return filterValue(_notEqualValue); + } + + /** + * Set the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** + * Does it has the value of notEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasNotEqual() { + return _notEqualValue != null; + } + + /** + * Does the value equal the value of notEqual? + * + * @param value The value of notEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotEqual(Object value) { + return hasNotEqual() ? _notEqualValue.equals(value) : value == null; + } + + /** + * Override the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** Location of notEqual. */ + protected String _notEqualLocation; + + /** + * Get the location of notEqual. + * + * @return The location of notEqual. (Nullable) + */ + public String getNotEqualLocation() { + return _notEqualLocation; + } + + /** + * Set the location of notEqual. + * + * @param location The location of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqualLocation(String location) { + _notEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Than + // ============ + /** Value of greaterThan. */ + protected Object _greaterThanValue; + + /** + * Get the value of greaterThan. + * + * @return The value of greaterThan. (Nullable) + */ + public Object getGreaterThan() { + return filterValue(_greaterThanValue); + } + + /** + * Set the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** + * Does it has the value of greaterThan? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterThan() { + return _greaterThanValue != null; + } + + /** + * Does the value equal the value of greaterThan? + * + * @param value The value of greaterThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterThan(Object value) { + return hasGreaterThan() ? _greaterThanValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** Location of GreaterThan. */ + protected String _greaterThanLocation; + + /** + * Get the location of greaterThan. + * + * @return The location of greaterThan. (Nullable) + */ + public String getGreaterThanLocation() { + return _greaterThanLocation; + } + + /** + * Set the location of greaterThan. + * + * @param location The location of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThanLocation(String location) { + _greaterThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Than + // ========= + /** Value of lessThan. */ + protected Object _lessThanValue; + + /** + * Get the value of lessThan. + * + * @return The value of lessThan. (Nullable) + */ + public Object getLessThan() { + return filterValue(_lessThanValue); + } + + /** + * Set the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** + * Does it has the value of lessThan? + * + * @return Determination. (NotNull) + */ + public boolean hasLessThan() { + return _lessThanValue != null; + } + + /** + * Does the value equal the value of lessThan? + * + * @param value The value of lessThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessThan(Object value) { + return hasLessThan() ? _lessThanValue.equals(value) : value == null; + } + + /** + * Override the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** Location of lessThan. */ + protected String _lessThanLocation; + + /** + * Get the location of lessThan. + * + * @return The location of lessThan. (Nullable) + */ + public String getLessThanLocation() { + return _lessThanLocation; + } + + /** + * Set the location of lessThan. + * + * @param location The location of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThanLocation(String location) { + _lessThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Equal + // ============= + /** Value of greaterEqual. */ + protected Object _greaterEqualValue; + + /** + * Get the value of greaterEqual. + * + * @return The value of greaterEqual. (Nullable) + */ + public Object getGreaterEqual() { + return filterValue(_greaterEqualValue); + } + + /** + * Set the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** + * Does it has the value of greaterEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterEqual() { + return _greaterEqualValue != null; + } + + /** + * Does the value equal the value of greaterEqual? + * + * @param value The value of greaterEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterEqual(Object value) { + return hasGreaterEqual() ? _greaterEqualValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** Location of greaterEqual. */ + protected String _greaterEqualLocation; + + /** + * Get the location of greaterEqual. + * + * @return The location of greaterEqual. (Nullable) + */ + public String getGreaterEqualLocation() { + return _greaterEqualLocation; + } + + /** + * Set the location of greaterEqual. + * + * @param location The location of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqualLocation(String location) { + _greaterEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Equal + // ========== + /** Value of lessEqual. */ + protected Object _lessEqualValue; + + /** + * Get the value of lessEqual. + * + * @return The value of lessEqual. (Nullable) + */ + public Object getLessEqual() { + return filterValue(_lessEqualValue); + } + + /** + * Set the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** + * Does it has the value of lessEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasLessEqual() { + return _lessEqualValue != null; + } + + /** + * Does the value equal the value of lessEqual? + * + * @param value The value of lessEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessEqual(Object value) { + return hasLessEqual() ? _lessEqualValue.equals(value) : value == null; + } + + /** + * Override the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** Location of lessEqual. */ + protected String _lessEqualLocation; + + /** + * Get the location of lessEqual. + * + * @return The location of lessEqual. (Nullable) + */ + public String getLessEqualLocation() { + return _lessEqualLocation; + } + + /** + * Set the location of lessEqual. + * + * @param location The location of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqualLocation(String location) { + _lessEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Prefix Search + // ============= + /** Value of prefixSearch. */ + protected Object _prefixSearch; + + /** + * Get the value of prefixSearch. + * + * @return The value of prefixSearch. (Nullable) + */ + public Object getPrefixSearch() { + return filterValue(_prefixSearch); + } + + /** + * Set the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** + * Does it has the value of prefixSearch? + * + * @return Determination. (NotNull) + */ + public boolean hasPrefixSearch() { + return _prefixSearch != null; + } + + /** + * Does the value equal the value of prefixSearch? + * + * @param value The value of prefixSearch. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalPrefixSearch(Object value) { + return hasPrefixSearch() ? _prefixSearch.equals(value) : value == null; + } + + /** + * Override the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overridePrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** Location of prefixSearch. */ + protected String _prefixSearchLocation; + + /** + * Get the location of prefixSearch. + * + * @return The location of prefixSearch. (Nullable) + */ + public String getPrefixSearchLocation() { + return _prefixSearchLocation; + } + + /** + * Set the location of prefixSearch. + * + * @param location The location of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearchLocation(String location) { + _prefixSearchLocation = location; + return this; + } + + //========================================================================== + // ========= + // Like Search + // =========== + /** Value of likeSearch. */ + protected List _likeSearch; + + /** Value of likeSearch for spare. */ + protected List _likeSearch4Spare; + + /** + * Get the value of likeSearch. + * + * @return The value of likeSearch. (Nullable) + */ + public String getLikeSearch() { + if (_likeSearch == null) { + return null; + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + final LikeSearchValue likeSearchValue = (LikeSearchValue) _likeSearch + .remove(0); + return (String) filterValue(likeSearchValue.generateRealValue()); + } + + /** + * Set the value of likeSearch. + * + * @param value The value of likeSearch. (Nullable) + * @param option The option of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearch(String value, LikeSearchOption option) { + if (_likeSearch == null) { + _likeSearch = new ArrayList(); + _likeSearch4Spare = new ArrayList(); + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + LikeSearchValue likeSearchValue = new LikeSearchValue(value, option); + _likeSearch.add(likeSearchValue); + _likeSearch4Spare.add(likeSearchValue); + return this; + } + + /** Location of likeSearch. */ + protected String _likeSearchLocation; + + /** + * Get the location of likeSearch. + * + * @return The location of likeSearch. (Nullable) + */ + public String getLikeSearchLocation() { + return _likeSearchLocation; + } + + /** + * Set the location of likeSearch. + * + * @param location The location of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearchLocation(String location) { + _likeSearchLocation = location; + return this; + } + + protected static class LikeSearchValue { + protected String _value; + + protected LikeSearchOption _option; + + public LikeSearchValue(String value, LikeSearchOption option) { + _value = value; + _option = option; + } + + public String getValue() { + return _value; + } + + public LikeSearchOption getOption() { + return _option; + } + + public String generateRealValue() { + if (_option == null) { + return _value; + } + return _option.generateRealValue(_value); + } + } + + //========================================================================== + // ========= + // In Scope + // ======== + /** Value of inScope. */ + protected List _inScope; + + protected InScopeOption _inScopeOption; + + /** + * Get the value of inScope. + * + * @return The value of inScope. (Nullable) + */ + @SuppressWarnings("unchecked") + public List getInScope() { + if (_inScopeOption != null) { + return filterValue(_inScopeOption + .generateRealValueList((List) _inScope)); + } + return filterValue(_inScope); + } + + /** + * Set the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScope(List value) { + _inScope = value; + return this; + } + + public ConditionValue setInScope(List value, InScopeOption option) { + _inScope = value; + _inScopeOption = option; + return this; + } + + /** + * Does it has the value of inScope? + * + * @return Determination. (NotNull) + */ + public boolean hasInScope() { + return _inScope != null; + } + + /** + * Does the value equal the value of inScope? + * + * @param value The value of inScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalInScope(List value) { + return hasInScope() ? _inScope.equals(value) : value == null; + } + + /** + * Override the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideInScope(List value) { + _inScope = value; + return this; + } + + /** Location of InScope. */ + protected String _inScopeLocation; + + /** + * Get the location of inScope. + * + * @return The location of inScope. (Nullable) + */ + public String getInScopeLocation() { + return _inScopeLocation; + } + + /** + * Set the location of inScope. + * + * @param location The location of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScopeLocation(String location) { + _inScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not In Scope + // ============ + /** Value of notInScope. */ + protected List _notInScope; + + /** + * Get the value of notInScope. + * + * @return The value of notInScope. (Nullable) + */ + public List getNotInScope() { + return filterValue(_notInScope); + } + + /** + * Set the value of notInScope. + * + * @param value The value of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScope(List value) { + _notInScope = value; + return this; + } + + /** + * Does it has the value of inNotScope? + * + * @return Determination. (NotNull) + */ + public boolean hasNotInScope() { + return _notInScope != null; + } + + /** + * Does the value equal the value of inNotScope? + * + * @param value The value of inNotScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotInScope(List value) { + return hasNotInScope() ? _notInScope.equals(value) : value == null; + } + + /** + * Override the value of inNotScope. + * + * @param value The value of inNotScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotInScope(List value) { + _notInScope = value; + return this; + } + + /** Location of notInScope. */ + protected String _notInScopeLocation; + + /** + * Get the location of notInScope. + * + * @return The location of notInScope. (Nullable) + */ + public String getNotInScopeLocation() { + return _notInScopeLocation; + } + + /** + * Set the location of notInScope. + * + * @param location The location of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScopeLocation(String location) { + _notInScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Null + // ======= + /** Value of isNull. */ + protected Object _isNullValue; + + /** + * Get the value of isNull. + * + * @return The value of isNull. (Nullable) + */ + public Object getIsNull() { + return _isNullValue; + } + + /** + * Set the value of isNull. + * + * @param value The value of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNull(Object value) { + _isNullValue = value; + return this; + } + + /** + * Does it has the value of isNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNull() { + return _isNullValue != null; + } + + /** Location of isNull. */ + protected String _isNullLocation; + + /** + * Get the location of isNull. + * + * @return The location of isNull. (Nullable) + */ + public String getIsNullLocation() { + return _isNullLocation; + } + + /** + * Set the location of isNull. + * + * @param location The location of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNullLocation(String location) { + _isNullLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Not Null + // =========== + /** Value of isNotNull. */ + protected Object _isNotNullValue; + + /** + * Get the value of isNotNull. + * + * @return The value of isNotNull. (Nullable) + */ + public Object getIsNotNull() { + return _isNotNullValue; + } + + /** + * Set the value of isNotNull. + * + * @param value The value of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNull(Object value) { + _isNotNullValue = value; + return this; + } + + /** + * Does it has the value of isNotNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNotNull() { + return _isNotNullValue != null; + } + + /** Location of isNotNull. */ + protected String _isNotNullLocation; + + /** + * Get the location of isNotNull. + * + * @return The location of isNotNull. (Nullable) + */ + public String getIsNotNullLocation() { + return _isNotNullLocation; + } + + /** + * Set the location of isNotNull. + * + * @param location The location of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNullLocation(String location) { + _isNotNullLocation = location; + return this; + } + + //========================================================================== + // =========== + // Filter + // ====== + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param value Value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected Object filterValue(Object value) { + if (value == null) { + return value; + } + if (value instanceof java.sql.Time) { + return value; + } + if (value instanceof java.sql.Timestamp) { + return value; + } + if (value instanceof java.util.Date + || value instanceof java.util.Calendar) { + return SqlDateConversionUtil.toDate(value); + } else { + return value; + } + } + + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param valueList Value-list. (Nullable) + * @return Filtered value-list. (Nullable) + */ + protected List filterValue(List valueList) { + if (valueList == null || valueList.isEmpty()) { + return valueList; + } + final List resultList = new ArrayList(); + for (Iterator ite = valueList.iterator(); ite.hasNext();) { + Object value = ite.next(); + resultList.add(filterValue(value)); + } + return resultList; + } + + protected static class SqlDateConversionUtil { + + private SqlDateConversionUtil() { + } + + public static java.sql.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.sql.Date toDate(Object o, String pattern) { + if (o instanceof java.sql.Date) { + return (java.sql.Date) o; + } + java.util.Date date = DateConversionUtil.toDate(o, pattern); + if (date != null) { + return new java.sql.Date(date.getTime()); + } + return null; + } + } + + protected static class DateConversionUtil { + + private DateConversionUtil() { + } + + public static java.util.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.util.Date toDate(Object o, String pattern) { + if (o == null) { + return null; + } else if (o instanceof String) { + return toDate((String) o, pattern); + } else if (o instanceof java.util.Date) { + return (java.util.Date) o; + } else if (o instanceof java.util.Calendar) { + return ((java.util.Calendar) o).getTime(); + } else { + return toDate(o.toString(), pattern); + } + } + + public static java.util.Date toDate(String s, String pattern) { + return toDate(s, pattern, java.util.Locale.getDefault()); + } + + public static java.util.Date toDate(String s, String pattern, + java.util.Locale locale) { + java.text.SimpleDateFormat sdf = getDateFormat(s, pattern, locale); + try { + return sdf.parse(s); + } catch (java.text.ParseException ex) { + throw new RuntimeException(ex); + } + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + String pattern, java.util.Locale locale) { + if (pattern != null) { + return new java.text.SimpleDateFormat(pattern); + } + return getDateFormat(s, locale); + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + java.util.Locale locale) { + String pattern = getPattern(locale); + String shortPattern = removeDelimiter(pattern); + String delimitor = findDelimiter(s); + if (delimitor == null) { + if (s.length() == shortPattern.length()) { + return new java.text.SimpleDateFormat(shortPattern); + } + if (s.length() == shortPattern.length() + 2) { + return new java.text.SimpleDateFormat(InternalStringUtil + .replace(shortPattern, "yy", "yyyy")); + } + } else { + String[] array = InternalStringUtil.split(s, delimitor); + for (int i = 0; i < array.length; ++i) { + if (array[i].length() == 4) { + pattern = InternalStringUtil.replace(pattern, "yy", + "yyyy"); + break; + } + } + return new java.text.SimpleDateFormat(pattern); + } + return new java.text.SimpleDateFormat(); + } + + public static java.text.SimpleDateFormat getDateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getPattern(locale)); + } + + public static java.text.SimpleDateFormat getY4DateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getY4Pattern(locale)); + } + + public static String getY4Pattern(java.util.Locale locale) { + String pattern = getPattern(locale); + if (pattern.indexOf("yyyy") < 0) { + pattern = InternalStringUtil.replace(pattern, "yy", "yyyy"); + } + return pattern; + } + + public static String getPattern(java.util.Locale locale) { + java.text.SimpleDateFormat df = (java.text.SimpleDateFormat) java.text.DateFormat + .getDateInstance(java.text.DateFormat.SHORT, locale); + String pattern = df.toPattern(); + int index = pattern.indexOf(' '); + if (index > 0) { + pattern = pattern.substring(0, index); + } + if (pattern.indexOf("MM") < 0) { + pattern = InternalStringUtil.replace(pattern, "M", "MM"); + } + if (pattern.indexOf("dd") < 0) { + pattern = InternalStringUtil.replace(pattern, "d", "dd"); + } + return pattern; + } + + public static String findDelimiter(String value) { + for (int i = 0; i < value.length(); ++i) { + char c = value.charAt(i); + if (Character.isDigit(c)) { + continue; + } + return Character.toString(c); + } + return null; + } + + public static String removeDelimiter(String pattern) { + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < pattern.length(); ++i) { + char c = pattern.charAt(i); + if (c == 'y' || c == 'M' || c == 'd') { + buf.append(c); + } + } + return buf.toString(); + } + } + + protected static class InternalStringUtil { + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new java.util.ArrayList(); + java.util.StringTokenizer st = new java.util.StringTokenizer(str, + delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/cvalue/ConditionValue.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,55 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.grouping; + +/** + * The class of option for grouping. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected int _elementCount; + + protected GroupingRowEndDeterminer _groupingRowEndDeterminer; + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { + } + + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public int getElementCount() { + return this._elementCount; + } + + public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { + return this._groupingRowEndDeterminer; + } + + public void setGroupingRowEndDeterminer( + GroupingRowEndDeterminer groupingRowEndDeterminer) { + this._groupingRowEndDeterminer = groupingRowEndDeterminer; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,24 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.grouping; + +/** + * The interface of grouping end(switch point) determiner. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowEndDeterminer { + + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowResource.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,93 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.grouping; + +import java.util.ArrayList; +import java.util.List; + +/** + * The class of row resource for grouping making. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _groupingRowList = new ArrayList(); + + protected int _elementCurrentIndex; + + protected int _breakCount; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } + + //========================================================================== + // =========== + // Accessor + // ======== + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { + return this._groupingRowList; + } + + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ + public void addGroupingRowList(ENTITY groupingRow) { + this._groupingRowList.add(groupingRow); + } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowSetupper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.grouping; + +/** + * The setupper of grouping row. + * + * @param The type of row. + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowSetupper { + + /** + * Set up the instance of grouping row. + * + * @param groupingRowResource Grouping row resource. (NotNull) + * @return The instance of grouping row. (NotNull) + */ + public ROW setup(GroupingRowResource groupingRowResource); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/grouping/GroupingRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/mapping/EntityDtoMapper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/mapping/EntityDtoMapper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/mapping/EntityDtoMapper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.mapping; + +/** + * The mapper of entity-to-dto. + * + * @param The type of entity. + * @param The type of dto. + * @author DBFlute(AutoGenerator) + */ +public interface EntityDtoMapper { + + /** + * Map entity to data transfer object. + * + * @param entity Entity. (NotNull) + * @return Data transfer object. (NotNull) + */ + public DTO map(ENTITY entity); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/mapping/EntityDtoMapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,427 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.addresslist.db.allcommon.DBFluteConfig; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.framework.util.InputStreamReaderUtil; +import org.seasar.framework.util.ReaderUtil; +import org.seasar.framework.util.ResourceUtil; + +/** + * The context of outside-SQL. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlContext { + + /** Log instance. */ + private static final Log _log = LogFactory.getLog(OutsideSqlContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get outside-SQL context on thread. + * + * @return Outside-SQL context. (Nullable) + */ + public static OutsideSqlContext getOutsideSqlContextOnThread() { + return (OutsideSqlContext) _threadLocal.get(); + } + + /** + * Set outside-SQL context on thread. + * + * @param outsideSqlContext Outside-SQL context. (NotNull) + */ + public static void setOutsideSqlContextOnThread( + OutsideSqlContext outsideSqlContext) { + if (outsideSqlContext == null) { + String msg = "The argument[outsideSqlContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(outsideSqlContext); + } + + /** + * Is existing outside-SQL context on thread? + * + * @return Determination. + */ + public static boolean isExistOutsideSqlContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear outside-SQL context on thread. + */ + public static void clearOutsideSqlContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public static String generateSpecifiedOutsideSqlUniqueKey( + String methodName, String path, Object pmb, + OutsideSqlOption option, Object resultTypeSpecification) { + final String pmbKey = (pmb != null ? pmb.getClass().getName() : "null"); + final String resultKey = (resultTypeSpecification != null ? ":" + + resultTypeSpecification : "null"); + final String tableDbName = option.getTableDbName(); + final String generatedUniqueKey = option.generateUniqueKey(); + return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + + ":" + generatedUniqueKey + resultKey; + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwOutsideSqlNotFoundException(String path) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The outsideSql was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target file of outsideSql on your classpath." + + getLineSeparator(); + msg = msg + + "And please confirm the file name and the file path STRICTLY!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified OutsideSql Path]" + getLineSeparator() + path + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException( + msg); + } + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected boolean _dynamicBinding; + + protected boolean _offsetByCursorForcedly; + + protected boolean _limitByCursorForcedly; + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + /** The path of outside-sql. (The mark of Specified-OutsideSql) */ + protected String _outsideSqlPath; + + protected Object _parameterBean; + + protected Object _resultTypeSpecification; + + protected String _methodName; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + /** The DB name of table for using behavior-SQL-path. (Nullable) */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Read SQL + // ======== + /** + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The filtered outside-SQL. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readFilteredOutsideSql(String sqlFileEncoding, + String dbmsSuffix) { + final String sql = readOutsideSql(sqlFileEncoding, dbmsSuffix); + return replaceOutsideSqlBindCharacterOnLineComment(sql); + } + + protected String replaceOutsideSqlBindCharacterOnLineComment(String sql) { + final String bindCharacter = "?"; + if (sql.indexOf(bindCharacter) < 0) { + return sql; + } + final String lineSeparator = "\n"; + if (sql.indexOf(lineSeparator) < 0) { + return sql; + } + final String lineCommentMark = "--"; + if (sql.indexOf(lineCommentMark) < 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split(lineSeparator); + for (String line : lines) { + final int lineCommentIndex = line.indexOf("--"); + if (lineCommentIndex < 0) { + sb.append(line).append(lineSeparator); + continue; + } + final String lineComment = line.substring(lineCommentIndex); + if (lineComment.contains("ELSE") + || !lineComment.contains(bindCharacter)) { + sb.append(line).append(lineSeparator); + continue; + } + + if (_log.isDebugEnabled()) { + _log.debug("...Replacing bind character on line comment: " + + lineComment); + } + final String filteredLineComment = replaceString(lineComment, + bindCharacter, "Q"); + sb.append(line.substring(0, lineCommentIndex)).append( + filteredLineComment).append(lineSeparator); + } + return sb.toString(); + } + + /** + * Read outside-sql path. Required attribute is 'outsideSqlPath'. + * + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The text of SQL. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readOutsideSql(String sqlFileEncoding, String dbmsSuffix) { + final String standardPath = _outsideSqlPath; + final String dbmsPath = buildDbmsPath(standardPath, dbmsSuffix); + String sql; + if (isExistResource(dbmsPath)) { + sql = readText(dbmsPath, sqlFileEncoding); + } else if (isExistResource(standardPath)) { + sql = readText(standardPath, sqlFileEncoding); + } else { + throwOutsideSqlNotFoundException(standardPath); + return null; // Non Reachable. + } + return removeInitialUnicodeBomIfNeeds(sqlFileEncoding, sql); + } + + protected String buildDbmsPath(String standardPath, String dbmsSuffix) { + final String dbmsPath; + final int lastIndexOfDot = standardPath.lastIndexOf("."); + if (lastIndexOfDot >= 0 + && !standardPath.substring(lastIndexOfDot).contains("/")) { + final String base = standardPath.substring(0, lastIndexOfDot); + dbmsPath = base + dbmsSuffix + + standardPath.substring(lastIndexOfDot); + } else { + dbmsPath = standardPath + dbmsSuffix; + } + return dbmsPath; + } + + protected String removeInitialUnicodeBomIfNeeds(String sqlFileEncoding, + String sql) { + if ("UTF-8".equalsIgnoreCase(sqlFileEncoding) && sql.length() > 0 + && sql.charAt(0) == '\uFEFF') { + sql = sql.substring(1); + } + return sql; + } + + //========================================================================== + // ========= + // Behavior Query Path + // =================== + public void setupBehaviorQueryPathIfNeeds() { + if (!isBehaviorQueryPathEnabled()) { + return; + } + if (_outsideSqlPath.contains(":")) { + final String subDirectoryValue = _outsideSqlPath.substring(0, + _outsideSqlPath.lastIndexOf(":")); + final String subDirectoryPath = replaceString(subDirectoryValue, + ":", "/"); + final String behaviorQueryPath = _outsideSqlPath + .substring(_outsideSqlPath.lastIndexOf(":") + ":".length()); + final String behaviorClassPath = replaceString( + buildBehaviorSqlPackageName(), ".", "/"); + final String behaviorPackagePath = behaviorClassPath.substring(0, + behaviorClassPath.lastIndexOf("/")); + final String behaviorClassName = behaviorClassPath + .substring(behaviorClassPath.lastIndexOf("/") + + "/".length()); + _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + + "/" + behaviorClassName + "_" + behaviorQueryPath + + ".sql"; + } else { + _outsideSqlPath = replaceString(buildBehaviorSqlPackageName(), ".", + "/") + + "_" + _outsideSqlPath + ".sql"; + } + } + + protected String buildBehaviorSqlPackageName() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableDbName); + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + final String outsideSqlPackage = DBFluteConfig.getInstance() + .getOutsideSqlPackage(); + if (outsideSqlPackage != null && outsideSqlPackage.trim().length() > 0) { + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + ".".length()); + String tmp = behaviorTypeName.substring(0, behaviorTypeName + .lastIndexOf(".")); + final String exbhvName = tmp.contains(".") ? tmp.substring(tmp + .lastIndexOf(".") + + ".".length()) : tmp; + return outsideSqlPackage + "." + exbhvName + "." + + behaviorClassName; + } else { + return behaviorTypeName; + } + } + + protected boolean isBehaviorQueryPathEnabled() { + if (isProcedure()) {// [DBFlute-0.7.5] + return false; + } + return _outsideSqlPath != null && !_outsideSqlPath.contains("/") + && !_outsideSqlPath.contains(".") && _tableDbName != null; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean isSpecifiedOutsideSql() { + return _outsideSqlPath != null; + } + + // [DBFlute-0.7.5] + public boolean isProcedure() { + return _methodName != null && _methodName.startsWith("call"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected boolean isExistResource(String path) { + return ResourceUtil.isExist(path); + } + + protected String readText(final String path, String sqlFileEncoding) { + final java.io.InputStream is = ResourceUtil.getResourceAsStream(path); + final java.io.Reader reader = InputStreamReaderUtil.create(is, + sqlFileEncoding); + return ReaderUtil.readText(reader); + } + + protected static String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public void setDynamicBinding(boolean dynamicBinding) { + this._dynamicBinding = dynamicBinding; + } + + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public void setOffsetByCursorForcedly(boolean offsetByCursorForcedly) { + this._offsetByCursorForcedly = offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public void setLimitByCursorForcedly(boolean limitByCursorForcedly) { + this._limitByCursorForcedly = limitByCursorForcedly; + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + public String getOutsideSqlPath() { + return _outsideSqlPath; + } + + public void setOutsideSqlPath(String outsideSqlPath) { + this._outsideSqlPath = outsideSqlPath; + } + + public Object getParameterBean() { + return _parameterBean; + } + + public void setParameterBean(Object parameterBean) { + this._parameterBean = parameterBean; + } + + public Object getResultTypeSpecification() { + return _resultTypeSpecification; + } + + public void setResultTypeSpecification(Object resultTypeSpecification) { + this._resultTypeSpecification = resultTypeSpecification; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + this._methodName = methodName; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + this._statementConfig = statementConfig; + } + + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + this._tableDbName = tableDbName; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler; + +/** + * The dao of outside-sql. + * + * @author DBFlute(AutoGenerator) + */ +public interface OutsideSqlDao extends DaoReadable { + + //========================================================================== + // ========= + // Select + // ====== + List selectList(String path, Object pmb, + OutsideSqlOption option, Class entityType); + + Object selectCursor(String path, Object pmb, + OutsideSqlOption option, CursorHandler handler); + + //========================================================================== + // ========= + // Execute + // ======= + int execute(String path, Object pmb, OutsideSqlOption option); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Call + // ==== + void call(String path, Object pmb, OutsideSqlOption option); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,116 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; + +/** + * The option of outside-SQL. It contains various information about execution. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlOption { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Option + // ------ + protected String _pagingRequestType = "non"; + + protected boolean _dynamicBinding; + + /** The configuration of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // ----------------------------------------------------- + // Information + // ----------- + /** The DB name of table. It is not related with the options of outside-SQL. */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void autoPaging() { + _pagingRequestType = "auto"; + } + + public void manualPaging() { + _pagingRequestType = "manual"; + } + + public void dynamicBinding() { + _dynamicBinding = true; + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public String generateUniqueKey() { + return "{" + _pagingRequestType + "/" + _dynamicBinding + "}"; + } + + //========================================================================== + // ========= + // Copy + // ==== + public OutsideSqlOption copyOptionWithoutPaging() { + final OutsideSqlOption copyOption = new OutsideSqlOption(); + if (isDynamicBinding()) { + copyOption.dynamicBinding(); + } + copyOption.setTableDbName(_tableDbName); + return copyOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Option + // ------ + public boolean isAutoPaging() { + return "auto".equals(_pagingRequestType); + } + + public boolean isManualPaging() { + return "manual".equals(_pagingRequestType); + } + + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + // ----------------------------------------------------- + // Information + // ----------- + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/ProcedurePmb.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/ProcedurePmb.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/ProcedurePmb.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,16 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql; + +/** + * The parameter-bean for procedure. + * + * @author DBFlute(AutoGenerator) + */ +public interface ProcedurePmb { + + /** + * Get the value of procedure name. + * + * @return The value of procedure name. (NotNull) + */ + public String getProcedureName(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/ProcedurePmb.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,251 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.ProcedurePmb; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; + +/** + * The executor of outside-sql.
    + * + *
    + * {Basic}
    + *   o selectList()
    + *   o execute()
    + *   o call()
    + * 
    + * {Entity}
    + *   o entityHandling().selectEntity()
    + *   o entityHandling().selectEntityWithDeletedCheck()
    + * 
    + * {Cursor}
    + *   o cursorHandling().selectCursor()
    + * 
    + * {Paging}
    + *   o autoPaging().selectList()
    + *   o autoPaging().selectPage()
    + *   o manualPaging().selectList()
    + *   o manualPaging().selectPage()
    + * 
    + * {Option -- Dynamic}
    + *   o dynamicBinding().selectList()
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlBasicExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outside-sql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** Table DB name. (NotNull) */ + protected final String _tableDbName; + + /** Is it dynamic binding? */ + protected boolean _dynamicBinding; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlBasicExecutor(OutsideSqlDao outsideSqlDao, + String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the list of the entity. + * + * @param The type of entity for element. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The element type of entity. (NotNull) + * @return The result bean of selected list. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, Object pmb, + Class entityType) { + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + //========================================================================== + // ========= + // Execute + // ======= + /** + * Execute. {Insert/Update/Delete/Etc...} + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @return The count of execution. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public int execute(String path, Object pmb) { + return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Procedure Call + // ============== + /** + * Call stored procedure. + * + * @param pmb The parameter-bean for procedure. (NotNull) + */ + public void call(ProcedurePmb pmb) { + if (pmb == null) { + throw new IllegalArgumentException( + "The argument of call() 'pmb' should not be null!"); + } + _outsideSqlDao.call(pmb.getProcedureName(), pmb, + createOutsideSqlOption()); + } + + //========================================================================== + // ========= + // Option + // ====== + // ----------------------------------------------------- + // Result Handling + // --------------- + /** + * Specify cursor handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.cursorHandling().selectCursor(path, pmb, handler);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlCursorExecutor cursorHandling() { + return new OutsideSqlCursorExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + /** + * Specify entity handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.entityHandling().selectEntityWithDeletedCheck(path, pmb, Xxx.class);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlEntityExecutor entityHandling() { + return new OutsideSqlEntityExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + // ----------------------------------------------------- + // Paging + // ------ + /** + * Option of autoPaging.
    If you invoke this, you don't need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * # -- limit 40, 20        *Here is unnecessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is auto. (NotNull) + */ + public OutsideSqlPagingExecutor autoPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.autoPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + /** + * Option of manualPaging.
    If you invoke this, you need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * #  limit 40, 20        *Here is necessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is manual. (NotNull) + */ + public OutsideSqlPagingExecutor manualPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.manualPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + // ----------------------------------------------------- + // Dynamic Binding + // --------------- + public OutsideSqlBasicExecutor dynamicBinding() { + _dynamicBinding = true; + return this; + } + + // ----------------------------------------------------- + // Statement Config + // ---------------- + public OutsideSqlBasicExecutor configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + return this; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected OutsideSqlOption createOutsideSqlOption() { + final OutsideSqlOption option = new OutsideSqlOption(); + option.setStatementConfig(_statementConfig); + if (_dynamicBinding) { + option.dynamicBinding(); + } + option.setTableDbName(_tableDbName);// as information + return option; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,69 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.executor; + +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlCursorExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlCursorExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public Object selectCursor(String path, PARAMETER_BEAN pmb, + CursorHandler handler) { + return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, + handler); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + public OutsideSqlCursorExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,155 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlEntityExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlEntityExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select entity. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, + Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls.isEmpty()) { + return null; + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + /** + * Select entity with deleted check. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted(not found). + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntityWithDeletedCheck(String path, + PARAMETER_BEAN pmb, Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(buildSearch4LogString(path, pmb, + entityType)); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + protected String buildSearch4LogString(String path, + PARAMETER_BEAN pmb, Class entityType) { + String tmp = "Table = " + _outsideSqlOption.getTableDbName() + + getLineSeparator(); + tmp = tmp + "Path = " + path + getLineSeparator(); + tmp = tmp + "Pmb = " + + (pmb != null ? pmb.getClass().getSimpleName() : "null") + ":" + + pmb + getLineSeparator(); + tmp = tmp + "Entity = " + + (entityType != null ? entityType.getSimpleName() : "null") + + getLineSeparator(); + tmp = tmp + "Option = " + _outsideSqlOption; + return tmp; + } + + // ----------------------------------------------------- + // Helper + // ------ + protected void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + protected void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlEntityExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlEntityExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,221 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DBFluteConfig; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; + +/** + * The paging executor of outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlPagingExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outsideSql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** The option of outsideSql. (NotNull) */ + protected final OutsideSqlOption _outsideSqlOption; + + /** The DB name of table. (NotNull) */ + protected final String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlPagingExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption, String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { + setupScrollableCursorIfNeeds(); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + /** + * Select page. + *

    + * The SQL should have Count and Paging.
    You can realize by + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * #   from MEMBER member
    +     * #     /[*]IF pmb.isPaging()[*]/
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #     /[*]END[*]/
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * #  /[*]END[*]/
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Wrong SQL {part 1}
    +     *     -- Line comment before ELSE comment --
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME -- The name of member...    *NG
    +     * #      -- The status name of member...                  *NG
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * # ...
    +     * o It's S2Dao's restriction...Sorry
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paging. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public PagingResultBean selectPage(final String path, + final PagingBean pmb, final Class entityType) { + final OutsideSqlOption countOption = _outsideSqlOption + .copyOptionWithoutPaging(); + final OutsideSqlEntityExecutor countExecutor = new OutsideSqlEntityExecutor( + _outsideSqlDao, countOption); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return pmb; + } + + public int count() { + pmb.xsetPaging(false); + return countExecutor.selectEntityWithDeletedCheck(path, pmb, + Integer.class); + } + + public List paging() { + pmb.xsetPaging(true); + return selectList(path, pmb, entityType); + } + }; + final PagingInvoker invoker = new PagingInvoker( + _tableDbName); + if (pmb.isCountLater()) { + invoker.countLater(); + } + return invoker.invokePaging(handler); + } + + protected void setupScrollableCursorIfNeeds() { + if (!_outsideSqlOption.isAutoPaging()) { + return; + } + StatementConfig statementConfig = _outsideSqlOption + .getStatementConfig(); + if (statementConfig != null + && statementConfig.getResultSetType() != null) { + return; + } + StatementConfig defaultStatementConfig = DBFluteConfig.getInstance() + .getDefaultStatementConfig(); + if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + return; + } + if (statementConfig == null) { + statementConfig = new StatementConfig(); + configure(statementConfig); + } + statementConfig.typeScrollInsensitive(); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlPagingExecutor configure(StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlPagingExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLink.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLink.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLink.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,91 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi; + +/** + * The class of page number link. + * + * @author DBFlute(AutoGenerator) + */ +public class PageNumberLink implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageNumberElement; + + protected boolean _current; + + protected String _pageNumberLinkHref; + + //========================================================================== + // ========= + // Constructor + // =========== + public PageNumberLink() { + } + + //========================================================================== + // ========= + // Initializer + // =========== + public PageNumberLink initialize(int pageNumberElement, boolean current, + String pageNumberLinkHref) { + setPageNumberElement(pageNumberElement); + setCurrent(current); + setPageNumberLinkHref(pageNumberLinkHref); + return this; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuffer sb = new StringBuffer(); + + sb.append(" pageNumberElement=").append(_pageNumberElement); + sb.append(" pageNumberLinkHref=").append(_pageNumberLinkHref); + sb.append(" current=").append(_current); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageNumberElement() { + return _pageNumberElement; + } + + public void setPageNumberElement(int pageNumberElement) { + this._pageNumberElement = pageNumberElement; + } + + public boolean isCurrent() { + return _current; + } + + public void setCurrent(boolean current) { + this._current = current; + } + + public String getPageNumberLinkHref() { + return _pageNumberLinkHref; + } + + public void setPageNumberLinkHref(String pageNumberLinkHref) { + this._pageNumberLinkHref = pageNumberLinkHref; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLink.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi; + +/** + * The setupper of page number link. + * + * @param The type of link. + * @author DBFlute(AutoGenerator) + */ +public interface PageNumberLinkSetupper { + + /** + * Set up page number link. + * + * @param pageNumberElement Page number element. + * @param current Is current page? + * @return Page number link. (NotNull) + */ + public LINK setup(int pageNumberElement, boolean current); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,215 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.group; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageGroupOption _pageGroupOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Calculate start page number. + * + * @return Start page number. + */ + public int calculateStartPageNumber() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int currentPageNumber = _currentPageNumber; + + int currentPageGroupNumber = (currentPageNumber / pageGroupSize); + if ((currentPageNumber % pageGroupSize) == 0) { + currentPageGroupNumber--; + } + final int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1; + if (!(currentPageNumber >= currentPageGroupStartPageNumber)) { + String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:"; + msg = msg + " currentPageNumber=" + currentPageNumber; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + return currentPageGroupStartPageNumber; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int allPageCount = _allPageCount; + final int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + final int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + pageGroupSize; + + final List resultList = new ArrayList(); + for (int i = currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + return resultList; + } + + /** + * Create the array of page number. + * + * @return The array of page number. (NotNUll) + */ + public int[] createPageNumberArray() { + assertPageGroupValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page-group? Using values are currentPageNumber and + * pageGroupSize. + * + * @return Determination. + */ + public boolean isExistPrePageGroup() { + assertPageGroupValid(); + return (_currentPageNumber > _pageGroupOption.getPageGroupSize()); + } + + /** + * Is existing next page-group? Using values are currentPageNumber and + * pageGroupSize and allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPageGroup() { + assertPageGroupValid(); + int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + _pageGroupOption.getPageGroupSize(); + return (nextPageGroupStartPageNumber <= _allPageCount); + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageGroupOption=").append(_pageGroupOption); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageGroupOption(PageGroupOption pageGroupOption) { + this._pageGroupOption = pageGroupOption; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,50 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.group; + +/** + * The option of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageGroupSize; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageGroupSize=").append(_pageGroupSize); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageGroupSize() { + return _pageGroupSize; + } + + public void setPageGroupSize(int pageGroupSize) { + this._pageGroupSize = pageGroupSize; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,202 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.range; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageRangeValid(); + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + final int allPageCount = _allPageCount; + final int currentPageNumber = _currentPageNumber; + + final List resultList = new ArrayList(); + for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) { + if (i < 1) { + continue; + } + resultList.add(new Integer(i)); + } + + resultList.add(new Integer(currentPageNumber)); + + final int endPageNumber = (currentPageNumber + pageRangeSize); + for (int i = currentPageNumber + 1; i <= endPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + + final boolean fillLimit = _pageRangeOption.isFillLimit(); + final int limitSize = (pageRangeSize * 2) + 1; + if (fillLimit && !resultList.isEmpty() && resultList.size() < limitSize) { + final Integer firstElements = (Integer) resultList.get(0); + final Integer lastElements = (Integer) resultList.get(resultList + .size() - 1); + if (firstElements.intValue() > 1) { + for (int i = firstElements.intValue() - 1; resultList.size() < limitSize + && i > 0; i--) { + resultList.add(0, new Integer(i)); + } + } + for (int i = lastElements.intValue() + 1; resultList.size() < limitSize + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + } + return resultList; + } + + /** + * Get the array of page number. + * + * @return The array of page number. (NotNull) + */ + public int[] createPageNumberArray() { + assertPageRangeValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page range? + * + * @return Determination. + */ + public boolean isExistPrePageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[0] > 1; + } + + /** + * Is existing next page range? + * + * @return Determination. + */ + public boolean isExistNextPageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[array.length - 1] < _allPageCount; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageRangeOption=").append(_pageRangeOption); + + return sb.toString(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,61 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.pagenavi.range; + +/** + * The option of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageRangeSize; + + protected boolean _fillLimit; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageRangeSize=").append(_pageRangeSize); + sb.append(" fillLimit=").append(_fillLimit); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageRangeSize() { + return _pageRangeSize; + } + + public void setPageRangeSize(int pageRangeSize) { + this._pageRangeSize = pageRangeSize; + } + + public boolean isFillLimit() { + return _fillLimit; + } + + public void setFillLimit(boolean fillLimit) { + this._fillLimit = fillLimit; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1799 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of SqlClause. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractSqlClause implements SqlClause { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String SELECT_HINT = "/*$dto.selectHint*/"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Basic + // ----- + /** Target table name. */ + protected final String _tableName; + + // ----------------------------------------------------- + // Clause Resource + // --------------- + /** + * Selected select column map. map:{tableAliasName : map:{columnName : + * selectColumnInfo}} + */ + protected Map> _selectedSelectColumnMap = new LinkedHashMap>(); + + /** + * Specified select column map. map:{ tableAliasName = map:{ columnName : + * null } } + */ + protected Map> _specifiedSelectColumnMap;// [ + + // DBFlute + // - + // 0.7.4 + // ] + + /** Specified derive sub-query map. */ + protected Map _specifiedDeriveSubQueryMap;// [DBFlute-0.7.4] + + /** Included select column map. */ + protected Map _includedSelectColumnMap = new LinkedHashMap(); + + /** + * The map of real column and alias of select clause. map:{realColumnName : + * aliasName} + */ + protected Map _selectClauseRealColumnAliasMap = new HashMap();// Without + + // linked + // ! + + /** Outer join map. */ + protected Map _outerJoinMap = new LinkedHashMap(); + + /** Where list. */ + protected List _whereList = new ArrayList(); + + /** Inline where list for BaseTable. */ + protected List _baseTableInlineWhereList = new ArrayList(); + + /** Order-by clause. */ + protected final OrderByClause _orderByClause = new OrderByClause(); + + /** Union clause list. */ + protected List _unionQueryInfoList = new ArrayList(); + + /** Is included-select-column effective? Default value is false. */ + protected boolean _isIncludedSelectColumnEffective = false; + + /** Is order-by effective? Default value is false. */ + protected boolean _isOrderByEffective = false; + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** Fetch start index. (for fetchXxx()) */ + protected int _fetchStartIndex = 0; + + /** Fetch size. (for fetchXxx()) */ + protected int _fetchSize = 0; + + /** Fetch page number. (for fetchXxx()) This value should be plus. */ + protected int _fetchPageNumber = 1; + + /** Is fetch-narrowing effective? Default value is false. */ + protected boolean _isFetchScopeEffective = false; + + // ----------------------------------------------------- + // AdditionalConditionAsOr + // ----------------------- + /** Is additional condition as or effective? */ + protected boolean _isAdditionalConditionAsOrEffective = false; + + // ----------------------------------------------------- + // WhereClauseSimpleFilter + // ----------------------- + /** The filter for where clause. */ + protected List _whereClauseSimpleFilterList; + + // ----------------------------------------------------- + // Selected Foreign Info + // --------------------- + /** The information of selected foreign table. */ + protected Map _selectedForeignInfo; + + // ----------------------------------------------------- + // Optional Info + // ------------- + protected boolean _formatClause; + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractSqlClause(String tableName) { + if (tableName == null) { + String msg = "Argument[tableName] must not be null."; + throw new IllegalArgumentException(msg); + } + _tableName = tableName; + } + + //========================================================================== + // ========= + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + public String getClause() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClause()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(false)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + public String getClausePKOnly() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClausePKOnly()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(true)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + protected String buildClauseWithoutMainSelect(boolean pkonly) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(getWhereClause()); + String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() + : getSelectClause()); + + // Delete template mark! (At the future this will be unnecessary.) + unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required + // ! + unionClause = replaceString(unionClause, + getUnionWhereFirstConditionMark(), "");// Required! + + sb.append(unionClause); + if (_isOrderByEffective && !_orderByClause.isEmpty()) { + sb.append(" "); + sb.append(getOrderByClause()); + } + sb.append(" "); + sb.append(getSqlSuffix()); + return sb.toString(); + } + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + public String getClauseFromWhereWithUnionTemplate() { + return buildClauseFromWhereAsTemplate(false); + } + + public String getClauseFromWhereWithWhereUnionTemplate() { + return buildClauseFromWhereAsTemplate(true); + } + + protected String buildClauseFromWhereAsTemplate(boolean template) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(buildWhereClause(template)); + sb.append(buildUnionClause(getUnionSelectClauseMark())); + return sb.toString(); + } + + protected String buildUnionClause(String selectClause) { + StringBuilder sb = new StringBuilder(); + for (final Iterator ite = _unionQueryInfoList + .iterator(); ite.hasNext();) { + final UnionQueryInfo unionQueryInfo = (UnionQueryInfo) ite.next(); + final String unionQueryClause = unionQueryInfo + .getUnionQueryClause(); + final boolean unionAll = unionQueryInfo.isUnionAll(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(unionAll ? " union all " : " union "); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(selectClause).append(" ").append(unionQueryClause); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // Clause Parts + // ============ + public String getSelectClause() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + List columnInfoList = dbmeta.getColumnInfoList(); + + // [DBFlute-0.7.4] + Map localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(getLocalTableAliasName()) + : null; + boolean existsSpecifiedLocal = localSpecifiedMap != null + && !localSpecifiedMap.isEmpty(); + + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedLocal + && !localSpecifiedMap.containsKey(columnName)) { + continue; + } + + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + Set tableAliasNameSet = _selectedSelectColumnMap.keySet(); + for (String tableAliasName : tableAliasNameSet) { + Map map = _selectedSelectColumnMap + .get(tableAliasName); + Collection selectColumnInfoList = map + .values(); + + // [DBFlute-0.7.4] + Map foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(tableAliasName) + : null; + boolean existsSpecifiedForeign = foreginSpecifiedMap != null + && !foreginSpecifiedMap.isEmpty(); + + for (SelectedSelectColumnInfo selectColumnInfo : selectColumnInfoList) { + String realColumnName = selectColumnInfo.buildRealColumnName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedForeign + && !foreginSpecifiedMap.containsKey(selectColumnInfo + .getColumnName())) { + continue; + } + + sb.append(", ").append(realColumnName).append(" as ").append( + selectColumnInfo.getColumnAliasName()); + _selectClauseRealColumnAliasMap.put(realColumnName, + selectColumnInfo.getColumnAliasName()); + } + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectClausePKOnly() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + UniqueInfo uniqueInfo = dbmeta.getPrimaryUniqueInfo(); + List columnInfoList = uniqueInfo.getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectHint() { + return createSelectHint(); + } + + public String getIncludedSelectColumnClause() { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _includedSelectColumnMap.keySet() + .iterator(); ite.hasNext(); count++) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sb.append(", ").append(realColumnName).append(" as ").append( + aliasName); + _selectClauseRealColumnAliasMap.put(realColumnName, aliasName); + } + return sb.toString(); + } + + public String getFromClause() { + StringBuilder sb = new StringBuilder(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("from "); + if (_baseTableInlineWhereList.isEmpty()) { + sb.append(_tableName).append(" dflocal"); + } else { + sb.append( + getInlineViewClause(_tableName, _baseTableInlineWhereList)) + .append(" dflocal"); + } + sb.append(getFromBaseTableHint()); + sb.append(getLeftOuterJoinClause()); + return sb.toString(); + } + + protected String getLeftOuterJoinClause() { + StringBuilder sb = new StringBuilder(); + for (Iterator ite = _outerJoinMap.keySet().iterator(); ite + .hasNext();) { + String aliasName = ite.next(); + LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + String joinTableName = joinInfo.getJoinTableName(); + List inlineWhereClauseList = joinInfo + .getInlineWhereClauseList(); + List additionalOnClauseList = joinInfo + .getAdditionalOnClauseList(); + Map joinOnMap = joinInfo.getJoinOnMap(); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" left outer join "); + if (inlineWhereClauseList.isEmpty()) { + sb.append(joinTableName); + } else { + sb.append(getInlineViewClause(joinTableName, + inlineWhereClauseList)); + } + sb.append(" ").append(aliasName).append(" on "); + int count = 0; + Set localColumnNameSet = joinOnMap.keySet(); + for (String localColumnName : localColumnNameSet) { + String foreignColumnName = (String) joinOnMap + .get(localColumnName); + if (count > 0) { + sb.append(" and "); + } + if (localColumnName.equals("$$fixedCondition$$")) { + sb.append(foreignColumnName); + } else { + sb.append(localColumnName).append(" = ").append( + foreignColumnName); + } + ++count; + } + for (String additionalOnClause : additionalOnClauseList) { + sb.append(" and ").append(additionalOnClause); + } + } + return sb.toString(); + } + + protected String getInlineViewClause(String joinTableName, + List inlineWhereClauseList) { + StringBuilder sb = new StringBuilder(); + sb.append("(select * from ").append(joinTableName).append(" where "); + int count = 0; + for (final Iterator ite = inlineWhereClauseList.iterator(); ite + .hasNext();) { + String clauseElement = ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count > 0) { + sb.append(" and "); + } + sb.append(clauseElement); + ++count; + } + sb.append(")"); + return sb.toString(); + } + + public String getFromBaseTableHint() { + return createFromBaseTableHint(); + } + + public String getFromHint() { + return createFromHint(); + } + + public String getWhereClause() { + return buildWhereClause(false); + } + + protected String buildWhereClause(boolean template) { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _whereList.iterator(); ite.hasNext(); count++) { + String clauseElement = (String) ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count == 0) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("where ").append( + template ? getWhereFirstConditionMark() : "").append( + clauseElement); + } else { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" and ").append(clauseElement); + } + } + if (template && sb.length() == 0) { + sb.append(getWhereClauseMark()); + } + return sb.toString(); + } + + public String getOrderByClause() { + String orderByClause = null; + if (!_unionQueryInfoList.isEmpty()) { + if (_selectClauseRealColumnAliasMap == null + || _selectClauseRealColumnAliasMap.isEmpty()) { + String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + + toString(); + throw new IllegalStateException(msg); + } + orderByClause = _orderByClause + .getOrderByClause(_selectClauseRealColumnAliasMap); + } else { + orderByClause = _orderByClause.getOrderByClause(); + } + if (isFormatClauseEffective() && orderByClause != null + && orderByClause.trim().length() > 0) { + return getLineSeparator() + " " + orderByClause; + } else { + return orderByClause; + } + } + + public String getSqlSuffix() { + String sqlSuffix = createSqlSuffix(); + if (isFormatClauseEffective() && sqlSuffix != null + && sqlSuffix.trim().length() > 0) { + return getLineSeparator() + sqlSuffix; + } else { + return sqlSuffix; + } + } + + //========================================================================== + // ========= + // Copy Parts + // ========== + public void copyIncludedSelectColumn(SqlClause sqlClause) { + Set keySet = _includedSelectColumnMap.keySet(); + for (Iterator ite = keySet.iterator(); ite.hasNext();) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sqlClause.registerIncludedSelectColumn(aliasName, realColumnName); + } + } + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected select column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath) { + _selectedSelectColumnMap + .put(foreignTableAliasName, createSelectedSelectColumnInfo( + foreignTableAliasName, localTableName, + foreignPropertyName, localRelationPath)); + } + + protected Map createSelectedSelectColumnInfo( + String foreignTableAliasName, String localTableName, + String foreignPropertyName, String localRelationPath) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + final int relationNo = foreignInfo.getRelationNo(); + String nextRelationPath = "_" + relationNo; + if (localRelationPath != null) { + nextRelationPath = localRelationPath + nextRelationPath; + } + final Map resultMap = new LinkedHashMap(); + final DBMeta foreignDBMeta = foreignInfo.getForeignDBMeta(); + final List columnInfoList = foreignDBMeta + .getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + final String columnDbName = columnInfo.getColumnDbName(); + final SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo(); + selectColumnInfo.setTableAliasName(foreignTableAliasName); + selectColumnInfo.setColumnName(columnDbName); + selectColumnInfo + .setColumnAliasName(columnDbName + nextRelationPath); + resultMap.put(columnDbName, selectColumnInfo); + } + return resultMap; + } + + public static class SelectedSelectColumnInfo { + protected String tableAliasName; + + protected String columnName; + + protected String columnAliasName; + + public String buildRealColumnName() { + if (tableAliasName != null) { + return tableAliasName + "." + columnName; + } else { + return columnName; + } + } + + public String getTableAliasName() { + return tableAliasName; + } + + public void setTableAliasName(String tableAliasName) { + this.tableAliasName = tableAliasName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnAliasName() { + return columnAliasName; + } + + public void setColumnAliasName(String columnAliasName) { + this.columnAliasName = columnAliasName; + } + } + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + public void ignoreIncludedSelectColumn() { + _isIncludedSelectColumnEffective = false; + } + + public void makeIncludedSelectColumnEffective() { + if (!_includedSelectColumnMap.isEmpty()) { + _isIncludedSelectColumnEffective = true; + } + } + + public void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + _isIncludedSelectColumnEffective = true; + _includedSelectColumnMap.put(aliasName, realColumnName); + } + + //========================================================================== + // ========= + // OuterJoin + // ========= + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap) { + assertAlreadyOuterJoin(aliasName); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + final LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo(); + joinInfo.setAliasName(aliasName); + joinInfo.setJoinTableName(joinTableName); + joinInfo.setJoinOnMap(joinOnMap); + _outerJoinMap.put(aliasName, joinInfo); + } + + protected static class LeftOuterJoinInfo { + protected String _aliasName; + + protected String _joinTableName; + + protected List _inlineWhereClauseList = new ArrayList(); + + protected List _additionalOnClauseList = new ArrayList(); + + protected Map _joinOnMap; + + protected boolean _onClauseInline; + + public String getAliasName() { + return _aliasName; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public String getJoinTableName() { + return _joinTableName; + } + + public void setJoinTableName(String value) { + _joinTableName = value; + } + + public List getInlineWhereClauseList() { + return _inlineWhereClauseList; + } + + public void addInlineWhereClause(String value) { + _inlineWhereClauseList.add(value); + } + + public List getAdditionalOnClauseList() { + return _additionalOnClauseList; + } + + public void addAdditionalOnClause(String value) { + _additionalOnClauseList.add(value); + } + + public Map getJoinOnMap() { + return _joinOnMap; + } + + public void setJoinOnMap(Map value) { + _joinOnMap = value; + } + + public boolean isOnClauseInline() { + return _onClauseInline; + } + + public void setOnClauseInline(boolean value) { + _onClauseInline = value; + } + } + + protected void assertAlreadyOuterJoin(String aliasName) { + if (_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have already registered in outer join: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + protected void assertJoinOnMapNotEmpty(Map joinOnMap, + String aliasName) { + if (joinOnMap.isEmpty()) { + String msg = "The joinOnMap should not be empty: aliasName=" + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Where + // ===== + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + key.addWhereClause(_whereList, columnFullName, value); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + assertObjectNotNull("option of " + columnFullName, option); + key.addWhereClause(_whereList, columnFullName, value, option); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String clause) { + assertStringNotNullAndNotTrimmedEmpty("clause", clause); + _whereList.add(clause); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void exchangeFirstWhereClauseForLastOne() { + if (_whereList.size() > 1) { + final String first = (String) _whereList.get(0); + final String last = (String) _whereList.get(_whereList.size() - 1); + _whereList.set(0, last); + _whereList.set(_whereList.size() - 1, first); + } + } + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + key.addWhereClause(_baseTableInlineWhereList, columnName, value); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + assertObjectNotNull("option of " + columnName, option); + key + .addWhereClause(_baseTableInlineWhereList, columnName, value, + option); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String value) { + _baseTableInlineWhereList.add(value); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value); + } + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + joinInfo.addAdditionalOnClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + joinInfo.addInlineWhereClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + protected void assertNotYetOuterJoin(String aliasName) { + if (!_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have not registered in outer join yet: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective() { + _isAdditionalConditionAsOrEffective = true; + } + + public void ignoreAdditionalConditionAsOr() { + _isAdditionalConditionAsOrEffective = false; + } + + protected void arrangeWhereListAdditionalConditionAsOr( + List whereList) { + if (_isAdditionalConditionAsOrEffective) { + if (whereList.size() < 2) { + String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + + toString(); + throw new IllegalStateException(msg); + } + final String lastWhereClause = (String) whereList.remove(whereList + .size() - 1); + final String preWhereClause = (String) whereList.remove(whereList + .size() - 1); + if (preWhereClause.startsWith("(") && preWhereClause.endsWith(")")) { + final String plainClause = preWhereClause.substring("(" + .length(), preWhereClause.length() - ")".length()); + whereList.add("(" + plainClause + " or " + lastWhereClause + + ")"); + } else { + whereList.add("(" + preWhereClause + " or " + lastWhereClause + + ")"); + } + } + } + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause() { + return _orderByClause; + } + + public SqlClause clearOrderBy() { + _isOrderByEffective = false; + _orderByClause.clear(); + return this; + } + + public SqlClause ignoreOrderBy() { + _isOrderByEffective = false; + return this; + } + + public SqlClause makeOrderByEffective() { + if (!_orderByClause.isEmpty()) { + _isOrderByEffective = true; + } + return this; + } + + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + _isOrderByEffective = true; + if (!_orderByClause.isSameOrderByColumn(orderByProperty)) { + clearOrderBy(); + registerOrderBy(orderByProperty, registeredOrderByProperty, + ascOrDesc); + } else { + _orderByClause.reverseAll(); + } + } + + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + try { + _isOrderByEffective = true; + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, + "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + + if (registeredOrderByProperty == null + || registeredOrderByProperty.trim().length() == 0) { + registeredOrderByProperty = orderByProperty; + } + + final List registeredOrderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer( + registeredOrderByProperty, "/"); + while (st.hasMoreElements()) { + registeredOrderByList.add(st.nextToken()); + } + } + + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite + .hasNext();) { + String orderBy = ite.next(); + String registeredOrderBy = (String) registeredOrderByList + .get(count); + + _isOrderByEffective = true; + String aliasName = null; + String columnName = null; + String registeredAliasName = null; + String registeredColumnName = null; + + if (orderBy.indexOf(".") < 0) { + columnName = orderBy; + } else { + aliasName = orderBy.substring(0, orderBy.lastIndexOf(".")); + columnName = orderBy + .substring(orderBy.lastIndexOf(".") + 1); + } + + if (registeredOrderBy.indexOf(".") < 0) { + registeredColumnName = registeredOrderBy; + } else { + registeredAliasName = registeredOrderBy.substring(0, + registeredOrderBy.lastIndexOf(".")); + registeredColumnName = registeredOrderBy + .substring(registeredOrderBy.lastIndexOf(".") + 1); + } + + OrderByElement element = new OrderByElement(); + element.setAliasName(aliasName); + element.setColumnName(columnName); + element.setRegisteredAliasName(registeredAliasName); + element.setRegisteredColumnName(registeredColumnName); + if (ascOrDesc) { + element.setupAsc(); + } else { + element.setupDesc(); + } + _orderByClause.addOrderByElement(element); + + count++; + } + } catch (RuntimeException e) { + String msg = "registerOrderBy() threw the exception: orderByProperty=" + + orderByProperty; + msg = msg + " registeredColumnFullName=" + + registeredOrderByProperty; + msg = msg + " ascOrDesc=" + ascOrDesc; + msg = msg + " sqlClause=" + this.toString(); + throw new RuntimeException(msg, e); + } + } + + public void addNullsFirstToPreviousOrderBy() { + _orderByClause + .addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + public void addNullsLastToPreviousOrderBy() { + _orderByClause + .addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() {// As + // Default + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + return orderByElementClause + " nulls " + + (nullsFirst ? "first" : "last"); + } + }; + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper + // For + // Nulls + // Unsupported + // Database + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + final String thenNumber = nullsFirst ? "1" : "0"; + final String elseNumber = nullsFirst ? "0" : "1"; + final String caseWhen = "case when " + columnName + + " is not null then " + thenNumber + " else " + + elseNumber + " end asc"; + return caseWhen + ", " + orderByElementClause; + } + }; + } + + //========================================================================== + // ========= + // UnionQuery + // ========== + public void registerUnionQuery(String unionQueryClause, boolean unionAll) { + assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", + unionQueryClause); + final UnionQueryInfo unionQueryInfo = new UnionQueryInfo(); + unionQueryInfo.setUnionQueryClause(unionQueryClause); + unionQueryInfo.setUnionAll(unionAll); + _unionQueryInfoList.add(unionQueryInfo); + } + + protected static class UnionQueryInfo { + protected String _unionQueryClause; + + protected boolean _unionAll; + + public String getUnionQueryClause() { + return _unionQueryClause; + } + + public void setUnionQueryClause(String unionQueryClause) { + _unionQueryClause = unionQueryClause; + } + + public boolean isUnionAll() { + return _unionAll; + } + + public void setUnionAll(boolean unionAll) { + _unionAll = unionAll; + } + } + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize) { + _isFetchScopeEffective = true; + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = 0; + _fetchSize = fetchSize; + _fetchPageNumber = 1; + doClearFetchPageClause(); + doFetchFirst(); + return this; + } + + /** + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize) { + _isFetchScopeEffective = true; + if (fetchStartIndex < 0) { + String msg = "Argument[fetchStartIndex] must be plus or zero: " + + fetchStartIndex; + throw new IllegalArgumentException(msg); + } + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = fetchStartIndex; + _fetchSize = fetchSize; + return fetchPage(1); + } + + /** + * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If + * minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber) { + _isFetchScopeEffective = true; + if (fetchPageNumber <= 0) { + fetchPageNumber = 1; + } + if (_fetchSize <= 0) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Fetch size should not be minus or zero!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "When you invoke this method, it is necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. " + + getLineSeparator(); + msg = msg + + "Please confirm your program. Does it really invoke 'fetchPage()' with 'fetchFirst()' or 'fetchScope()'?" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchPage(3);" + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchFirst(20); // The size of page" + + getLineSeparator(); + msg = msg + " cb.fetchPage(3); // The number of target page" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Actual Parameter Value]" + getLineSeparator(); + msg = msg + "fetchSize=" + _fetchSize + getLineSeparator(); + msg = msg + "fetchPageNumber=" + fetchPageNumber + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + _fetchPageNumber = fetchPageNumber; + if (_fetchPageNumber == 1 && _fetchStartIndex == 0) { + return fetchFirst(_fetchSize); + } + doClearFetchPageClause(); + doFetchPage(); + return this; + } + + abstract protected void doFetchFirst(); + + abstract protected void doFetchPage(); + + abstract protected void doClearFetchPageClause(); + + public int getFetchStartIndex() { + return _fetchStartIndex; + } + + public int getFetchSize() { + return _fetchSize; + } + + public int getFetchPageNumber() { + return _fetchPageNumber; + } + + /** + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1)); + } + + /** + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * _fetchPageNumber); + } + + public boolean isFetchScopeEffective() { + return _isFetchScopeEffective; + } + + public SqlClause ignoreFetchScope() { + _isFetchScopeEffective = false; + doClearFetchPageClause(); + return this; + } + + public SqlClause makeFetchScopeEffective() { + if (getFetchSize() > 0 && getFetchPageNumber() > 0) { + fetchPage(getFetchPageNumber()); + } + return this; + } + + public boolean isFetchStartIndexSupported() { + return true; // Default + } + + public boolean isFetchSizeSupported() { + return true; // Default + } + + abstract protected String createSelectHint(); + + abstract protected String createFromBaseTableHint(); + + abstract protected String createFromHint(); + + abstract protected String createSqlSuffix(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * The implementation. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getFetchSize(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _isFetchScopeEffective; + } + + //========================================================================== + // ========= + // Resolver + // ======== + public String resolveJoinAliasName(String relationPath, int cqNestNo) { + return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo); + } + + public String resolveNestLevelExpression(String name, int cqNestNo) { + // if (cqNestNo > 1) { + // return name + "_n" + cqNestNo; + // } else { + // return name; + // } + return name; + } + + public int resolveRelationNo(String localTableName, + String foreignPropertyName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + return foreignInfo.getRelationNo(); + } + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName() { + return "dflocal"; + } + + public String getForeignTableAliasPrefix() { + return "dfrelation"; + } + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark() { + return "#df:whereClause#"; + } + + public String getWhereFirstConditionMark() { + return "#df:whereFirstCondition#"; + } + + public String getUnionSelectClauseMark() { + return "#df:unionSelectClause#"; + } + + public String getUnionWhereClauseMark() { + return "#df:unionWhereClause#"; + } + + public String getUnionWhereFirstConditionMark() { + return "#df:unionWhereFirstCondition#"; + } + + //========================================================================== + // =========== + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + if (_whereClauseSimpleFilterList == null) { + _whereClauseSimpleFilterList = new ArrayList(); + } + _whereClauseSimpleFilterList.add(whereClauseSimpleFilter); + } + + protected String filterWhereClauseSimply(String clauseElement) { + if (_whereClauseSimpleFilterList == null + || _whereClauseSimpleFilterList.isEmpty()) { + return clauseElement; + } + for (final Iterator ite = _whereClauseSimpleFilterList + .iterator(); ite.hasNext();) { + final WhereClauseSimpleFilter filter = ite.next(); + if (filter == null) { + String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + + _whereClauseSimpleFilterList; + throw new IllegalStateException(msg); + } + clauseElement = filter.filterClauseElement(clauseElement); + } + return clauseElement; + } + + //========================================================================== + // =========== + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty() { + if (_selectedForeignInfo == null) { + return true; + } + return _selectedForeignInfo.isEmpty(); + } + + public boolean hasSelectedForeignInfo(String relationPath) { + if (_selectedForeignInfo == null) { + return false; + } + return _selectedForeignInfo.containsKey(relationPath); + } + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName) { + if (_selectedForeignInfo == null) { + _selectedForeignInfo = new HashMap(); + } + _selectedForeignInfo.put(relationPath, foreignPropertyName); + } + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective() { + return _formatClause; + } + + public void makeFormatClauseEffective() { + _formatClause = true; + } + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity) { + return getSubQueryBeginMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + public String resolveSubQueryEndMark(String subQueryIdentity) { + return getSubQueryEndMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + protected String getSubQueryBeginMarkPrefix() { + return "--df:SubQueryBegin#"; + } + + protected String getSubQueryEndMarkPrefix() { + return "--df:SubQueryEnd#"; + } + + protected String getSubQueryIdentityTerminal() { + return "#IdentityTerminal#"; + } + + public String filterSubQueryIndent(String sql) { + return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql; + } + + protected String filterSubQueryIndent(String sql, String preIndent) { + if (!isFormatClauseEffective()) { + return sql; + } + final String lineSeparator = getLineSeparator(); + if (!sql.contains(getSubQueryBeginMarkPrefix())) { + return sql; + } + final String[] lines = sql.split(lineSeparator); + final String beginMarkPrefix = getSubQueryBeginMarkPrefix(); + final String endMarkPrefix = getSubQueryEndMarkPrefix(); + final String identityTerminal = getSubQueryIdentityTerminal(); + final int terminalLength = identityTerminal.length(); + StringBuilder mainSb = new StringBuilder(); + StringBuilder subSb = null; + boolean throughBegin = false; + boolean throughBeginFirst = false; + String subQueryIdentity = null; + String indent = null; + for (String line : lines) { + if (!throughBegin) { + if (line.contains(beginMarkPrefix)) { + throughBegin = true; + subSb = new StringBuilder(); + final int markIndex = line.indexOf(beginMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subQueryIdentity = line.substring(markIndex + + beginMarkPrefix.length(), terminalIndex); + subSb.append(clause); + indent = buildSpaceBar(markIndex - preIndent.length()); + } else { + mainSb.append(line).append(getLineSeparator()); + } + } else { + // - - - - - - - - + // In begin to end + // - - - - - - - - + if (line.contains(endMarkPrefix + subQueryIdentity)) {// The end + final int markIndex = line.indexOf(endMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subSb.append(clause).append(getLineSeparator()); + final String currentSql = filterSubQueryIndent(subSb + .toString(), preIndent + indent); + mainSb.append(currentSql); + throughBegin = false; + throughBeginFirst = false; + } else { + if (!throughBeginFirst) { + subSb.append(line.trim()).append(getLineSeparator()); + throughBeginFirst = true; + } else { + subSb.append(indent).append(line).append( + getLineSeparator()); + } + } + } + } + final String filteredSql = mainSb.toString(); + + if (throughBegin) { + String msg = "End Mark Not Found!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + if (filteredSql.contains(beginMarkPrefix)) { + String msg = "Any begin marks are not filtered!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + return filteredSql; + } + + protected String buildSpaceBar(int size) { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < size; i++) { + sb.append(" "); + } + return sb.toString(); + } + + public static class SubQueryIndentFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SubQueryIndentFailureException(String msg) { + super(msg); + } + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName) { + if (_specifiedSelectColumnMap == null) { + _specifiedSelectColumnMap = new HashMap>(); + } + if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) { + _specifiedSelectColumnMap.put(tableAliasName, + new HashMap()); + } + Map elementMap = _specifiedSelectColumnMap + .get(tableAliasName); + elementMap.put(columnName, null); // The value is dummy for extension at + // the future. + _specifiedSelectColumnMap.put(tableAliasName, elementMap); + } + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) { + if (_specifiedDeriveSubQueryMap == null) { + _specifiedDeriveSubQueryMap = new LinkedHashMap(); + } + _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery); + } + + public boolean hasSpecifiedDeriveSubQuery(String aliasName) { + if (_specifiedDeriveSubQueryMap == null) { + return false; + } + return _specifiedDeriveSubQueryMap.containsKey(aliasName); + } + + public String getSpecifiedColumnNameAsOne() { + if (_specifiedSelectColumnMap != null + && _specifiedSelectColumnMap.size() == 1) { + Map elementMap = _specifiedSelectColumnMap + .get(_specifiedSelectColumnMap.keySet().iterator().next()); + if (elementMap != null && elementMap.size() == 1) { + return elementMap.keySet().iterator().next(); + } + } + return null; + } + + public void clearSpecifiedSelectColumn() { + if (_specifiedSelectColumnMap != null) { + _specifiedSelectColumnMap.clear(); + _specifiedSelectColumnMap = null; + } + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + public String getClauseQueryUpdate(Map columnParameterMap) { + if (columnParameterMap.isEmpty()) { + return null; + } + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryUpdate() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("update ").append(_tableName).append(ln); + int index = 0; + // It is guaranteed that the map has one or more elements. + for (String columnName : columnParameterMap.keySet()) { + final String parameter = columnParameterMap.get(columnName); + if (index == 0) { + sb.append(" set ").append(columnName).append(" = ").append( + parameter).append(ln); + } else { + sb.append(" , ").append(columnName).append(" = ").append( + parameter).append(ln); + } + ++index; + } + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("where ")); + sb.append(" ").append(subQuery); + return sb.toString(); + } + } + + public String getClauseQueryDelete() { + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryDelete() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("delete from ").append(_tableName).append(ln); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("from ")); + return "delete " + subQuery; + } + } + + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return true; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return false; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + return DBMetaInstanceHandler.findDBMeta(_tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String replaceString(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByClause.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByClause.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByClause.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,281 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByClause implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _orderByList = new ArrayList(); + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. + */ + public OrderByClause() { + } + + //========================================================================== + // =========== + // Manipulation + // ============ + /** + * Add order-by element. + * + * @param orderByElement Order-by element. (NotNull) + */ + public void addOrderByElement(OrderByElement orderByElement) { + _orderByList.add(orderByElement); + } + + /** + * Insert first order-by element . + * + * @param orderByElement Order-by element. (NotNull) + */ + public void insertFirstOrderByElement(OrderByElement orderByElement) { + _orderByList.add(0, orderByElement); + } + + public void reverseAll() { + for (Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + ite.next().reverse(); + } + } + + public void exchangeFirstOrderByElementForLastOne() { + if (_orderByList.size() > 1) { + final OrderByElement first = _orderByList.get(0); + final OrderByElement last = _orderByList + .get(_orderByList.size() - 1); + _orderByList.set(0, last); + _orderByList.set(_orderByList.size() - 1, first); + } + } + + public void addNullsFirstToPreviousOrderByElement( + OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, true); + } + + public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, false); + } + + public static interface OrderByNullsSetupper { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst); + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public List getOrderByList() { + return _orderByList; + } + + public String getOrderByClause() { + return getOrderByClause(null); + } + + public String getOrderByClause( + Map selectClauseRealColumnAliasMap) { + if (_orderByList.isEmpty()) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + final String delimiter = ", "; + for (final Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + final OrderByElement element = ite.next(); + sb.append(delimiter); + if (selectClauseRealColumnAliasMap != null) { + sb.append(element + .getElementClause(selectClauseRealColumnAliasMap)); + } else { + sb.append(element.getElementClause()); + } + } + sb.delete(0, delimiter.length()).insert(0, "order by "); + return sb.toString(); + } + + public boolean isSameOrderByColumn(String orderByProperty) { + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + if (_orderByList.size() != orderByList.size()) { + return false; + } + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite.hasNext();) { + final String columnFullName = ite.next(); + final OrderByElement element = (OrderByElement) _orderByList + .get(count); + if (!element.getColumnFullName().equals(columnFullName)) { + return false; + } + count++; + } + return true; + } + + //========================================================================== + // =========== + // First Element + // ============= + public boolean isFirstElementAsc() { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new IllegalStateException(msg); + } + final OrderByElement element = (OrderByElement) _orderByList.get(0); + return element.isAsc(); + } + + public boolean isFirstElementDesc() { + return !isFirstElementAsc(); + } + + public boolean isSameAsFirstElementAliasName(String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementColumnName(String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + /** + * @param expectedAliasName Expected alias-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredAliasName( + String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getRegisteredAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredColumnName( + String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getRegisteredColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + //========================================================================== + // =========== + // Delegate of List + // ================ + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _orderByList.isEmpty(); + } + + /** + * Get iterator of order-by list. + * + * @return Determination. + */ + public Iterator iterator() { + return _orderByList.iterator(); + } + + /** + * Clear order-by list. + */ + public void clear() { + _orderByList.clear(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view string of all-columns value. (NotNUll) + */ + public String toString() { + return _orderByList.toString(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByElement.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByElement.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByElement.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,273 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByElement implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + /** The value of alias name. */ + protected String _aliasName; + + /** The value of column name. */ + protected String _columnName; + + /** The value of registered alias name. */ + protected String _registeredAliasName; + + /** The value of registered column name. */ + protected String _registeredColumnName; + + /** The value of ascDesc. */ + protected String _ascDesc = "asc"; + + /** The setupper of order-by nulls. */ + protected OrderByClause.OrderByNullsSetupper _orderByNullsSetupper; + + /** Is nulls ordered first? */ + protected boolean _nullsFirst; + + //========================================================================== + // =========== + // Manipulation + // ============ + public void setupAsc() { + _ascDesc = "asc"; + } + + public void setupDesc() { + _ascDesc = "desc"; + } + + public void reverse() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + _ascDesc = "desc"; + } else if (_ascDesc.equals("desc")) { + _ascDesc = "asc"; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public boolean isAsc() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + return true; + } else if (_ascDesc.equals("desc")) { + return false; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + public String getColumnFullName() { + final StringBuilder sb = new StringBuilder(); + if (_aliasName != null) { + sb.append(_aliasName).append("."); + } + if (_columnName == null) { + String msg = "The attribute[columnName] should not be null."; + throw new IllegalStateException(msg); + } + sb.append(_columnName); + return sb.toString(); + } + + public String getElementClause() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + sb.append(getColumnFullName()).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(getColumnFullName(), sb + .toString(), _nullsFirst); + } else { + return sb.toString(); + } + } + + public String getElementClause( + Map selectClauseRealColumnAliasMap) { + if (selectClauseRealColumnAliasMap == null) { + String msg = "The argument[selectClauseRealColumnAliasMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + final String columnAlias = selectClauseRealColumnAliasMap + .get(getColumnFullName()); + if (columnAlias == null || columnAlias.trim().length() == 0) { + throwOrderByColumnNotFoundException(getColumnFullName(), + selectClauseRealColumnAliasMap); + } + sb.append(columnAlias).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(columnAlias, sb.toString(), + _nullsFirst); + } else { + return sb.toString(); + } + } + + protected void throwOrderByColumnNotFoundException(String columnName, + Map selectClauseRealColumnAliasMap) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The column for order-by was Not Found in select-clause!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "If you use 'union()' or 'unionAll()', Check your condition-bean!" + + getLineSeparator(); + msg = msg + "Order-by for union can use only columns on select-clause." + + getLineSeparator(); + msg = msg + + "So the rule when using union is little difference from the one when NOT using." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " [before (x)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *NG!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [after (o)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.setupSelect_Bbb();// *Point!" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *OK!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + + "Or else if you DON'T use 'union()' or 'unionAll()', This is the Framework Exception!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Column]" + getLineSeparator(); + msg = msg + columnName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Internal Object]" + getLineSeparator(); + msg = msg + "selectClauseRealColumnAliasMap=" + + selectClauseRealColumnAliasMap + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view-string of all-columns value. (NotNull) + */ + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{aliasName=").append(_aliasName); + sb.append(" columnName=").append(_columnName); + sb.append(" registeredAliasName=").append(_registeredAliasName); + sb.append(" registeredColumnName=").append(_registeredColumnName); + sb.append(" ascDesc=").append(_ascDesc).append("}"); + return sb.toString(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getAliasName() { + return _aliasName; + } + + public String getColumnName() { + return _columnName; + } + + public String getRegisteredAliasName() { + return _registeredAliasName; + } + + public String getRegisteredColumnName() { + return _registeredColumnName; + } + + public String getAscDesc() { + return _ascDesc; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public void setColumnName(String value) { + _columnName = value; + } + + public void setRegisteredAliasName(String value) { + _registeredAliasName = value; + } + + public void setRegisteredColumnName(String value) { + _registeredColumnName = value; + } + + public void setAscDesc(String value) { + _ascDesc = value; + } + + public void setOrderByNullsSetupper( + OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) { + _orderByNullsSetupper = value; + _nullsFirst = nullsFirst; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/OrderByElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClause.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClause.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClause.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,624 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The interface of SQL-clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlClause { + + //========================================================================== + // =========== + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + /** + * Get the clause of all parts. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts. (NotNull) + */ + public String getClause(); + + /** + * Get clause of all parts as PK-only. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts as PK-Only. (NotNull) + */ + public String getClausePKOnly(); + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + /** + * Get from-where clause without select and orderBy and sqlSuffix. For + * subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithUnionTemplate(); + + /** + * Get from-where clause without select and orderBy and sqlSuffix as + * template. For subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark and WhereClauseMark and + * WhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithWhereUnionTemplate(); + + //========================================================================== + // =========== + // Clause Parts + // ============ + /** + * Get the clause of 'select'. This is an internal method. + * + * @return The clause of select. {[select ...] from table...} (NotNull) + */ + public String getSelectClause(); + + /** + * Get The clause of 'select' as PK-only. This is an internal method. + * + * @return The clause of select PK-only. {[select ...] from table...} + * (NotNull) + */ + public String getSelectClausePKOnly(); + + /** + * Get the hint of 'select'. This is an internal method. + * + * @return The hint of 'select'. {select [select-hint] * from table...} + * (NotNull) + */ + public String getSelectHint(); + + /** + * Get the clause of included-select-column. This is an internal method. + * + * @return The clause of included-select-column. {select ... , + * [included-select-column clause] from table...} (NotNull) + */ + public String getIncludedSelectColumnClause(); + + /** + * Get the clause of 'from'. This is an internal method. + * + * @return The clause of 'from'. (NotNull) + */ + public String getFromClause(); + + /** + * Get the clause of from-base-table. This is an internal method. + * + * @return The hint of from-base-table. {select * from table + * [from-base-table-hint] where ...} (NotNull) + */ + public String getFromBaseTableHint(); + + /** + * Get the hint of 'from'. This is an internal method. + * + * @return The hint of 'from'. {select * from table left outer join ... on + * ... [from-hint] where ...} (NotNull) + */ + public String getFromHint(); + + /** + * Get the clause of 'where'. This is an internal method. + * + * @return The clause of 'where'. (NotNull) + */ + public String getWhereClause(); + + /** + * Get the clause of 'order-by'. This is an internal method. + * + * @return The clause of 'order-by'. (NotNull) + */ + public String getOrderByClause(); + + /** + * Get the suffix of SQL. This is an internal method. + * + * @return The suffix of SQL. {select * from table where ... order by ... + * [sql-suffix]} (NotNull) + */ + public String getSqlSuffix(); + + //========================================================================== + // ========= + // Copy Parts + // ========== + /** + * Copy included-select-column. + * + * @param sqlClause SQL-clause. (NotNull) + */ + public void copyIncludedSelectColumn(SqlClause sqlClause); + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected-select-column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath); + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + /** + * Ignore included-select-column. + */ + public void ignoreIncludedSelectColumn(); + + /** + * Make included-select-column effective. + */ + public void makeIncludedSelectColumnEffective(); + + /** + * Register included-select-column. + * + * @param aliasName The alias name of the included-select-column. (NotNull) + * @param realColumnName The real column name of the included-select-column. + * (NotNull) + */ + public void registerIncludedSelectColumn(String aliasName, + String realColumnName); + + //========================================================================== + // ========= + // OuterJoin + // ========= + /** + * Register outer-join. + * + * @param joinTableName The name of join table. {left outer join + * [joinTableName]} (NotNull) + * @param aliasName The alias name of join table. {left outer join + * joinTableName [aliasName]} (NotNull and Unique per invoking + * method) + * @param joinOnMap Map that has conditions of on-clause. (NotNull) + */ + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap); + + //========================================================================== + // ========= + // Where + // ===== + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value); + + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + * @param option Condition-option. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option); + + /** + * Register 'where' clause. + * + * @param clause The clause of 'where'. (NotNull) + */ + public void registerWhereClause(String clause); + + /** + * Exchange first The clause of 'where' for last one. + */ + public void exchangeFirstWhereClauseForLastOne(); + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value); + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option); + + public void registerBaseTableInlineWhereClause(String value); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline); + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective(); + + public void ignoreAdditionalConditionAsOr(); + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause(); + + public SqlClause clearOrderBy(); + + public SqlClause ignoreOrderBy(); + + public SqlClause makeOrderByEffective(); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + public void addNullsFirstToPreviousOrderBy(); + + public void addNullsLastToPreviousOrderBy(); + + //========================================================================== + // ========= + // Union + // ===== + public void registerUnionQuery(String unionClause, boolean unionAll); + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * Fetch first. + * + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize); + + /** + * Fetch scope. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page. + *

    + * When you invoke this, it is normally necessary to invoke 'fetchFirst()' + * or 'fetchScope()' ahead of that. But you also can use default-fetch-size + * without invoking 'fetchFirst()' or 'fetchScope()'. If you invoke this, + * your SQL returns [fetch-size] records from [fetch-start-index] calculated + * by [fetch-page-number]. + *

    + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber); + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchSize(); + + /** + * Get fetch page number. + * + * @return Fetch page number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective(); + + /** + * Ignore fetch-scope. + * + * @return this. (NotNull) + */ + public SqlClause ignoreFetchScope(); + + /** + * Make fetch-scope effective. + * + * @return this. (NotNull) + */ + public SqlClause makeFetchScopeEffective(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchSizeSupported(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * Is fetch-narrowing effective? + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Get fetch-narrowing skip-start-index. + * + * @return Skip-start-index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch-narrowing loop-count. + * + * @return Loop-count. + */ + public int getFetchNarrowingLoopCount(); + + //========================================================================== + // ========= + // Lock + // ==== + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate(); + + //========================================================================== + // ========= + // Resolver + // ======== + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved join alias name. (NotNull) + */ + public String resolveJoinAliasName(String relationPath, int cqNestNo); + + /** + * Resolve nest level expression. + * + * @param name Name. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved name about nest level. (NotNull) + */ + public String resolveNestLevelExpression(String name, int cqNestNo); + + /** + * Resolve relation no. + * + * @param baseTableName The table name of base. (NotNull) + * @param foreignPropertyName The property name of foreign. (NotNull) + * @return Resolved relation no. + */ + public int resolveRelationNo(String baseTableName, + String foreignPropertyName); + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName(); + + public String getForeignTableAliasPrefix(); + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark(); + + public String getWhereFirstConditionMark(); + + public String getUnionSelectClauseMark(); + + public String getUnionWhereClauseMark(); + + public String getUnionWhereFirstConditionMark(); + + //========================================================================== + // ========= + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter); + + //========================================================================== + // ========= + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty(); + + public boolean hasSelectedForeignInfo(String relationPath); + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName); + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective(); + + public void makeFormatClauseEffective(); + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity); + + public String resolveSubQueryEndMark(String subQueryIdentity); + + public String filterSubQueryIndent(String sql); + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName); + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery); + + public boolean hasSpecifiedDeriveSubQuery(String aliasName); + + public String getSpecifiedColumnNameAsOne(); + + public void clearSpecifiedSelectColumn(); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + /** + * @param columnParameterMap The map of column parameters. (NotNull) + * @return The clause of query update. (Nullable: If columnParameterMap is + * empty, return null) + */ + public String getClauseQueryUpdate(Map columnParameterMap); + + public String getClauseQueryDelete(); + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,165 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for DB2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDb2 extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as sql-suffix. */ + protected String _fetchFirstSqlSuffix = ""; + + /** String of lock as from-hint. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDb2(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } else { + _fetchFirstSqlSuffix = " fetch first " + getPageEndIndex() + + " rows only"; + } + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doClearFetchPageClause() { + _fetchFirstSqlSuffix = ""; + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with RS"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchFirstSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } + + // [DBFlute-0.7.9] + //========================================================================== + // ========= + // DB2 Dependency + // ============== + public void lockWithRR() { + _lockSqlSuffix = " with RR"; + } + + public void lockWithRS() { + _lockSqlSuffix = " with RS"; + } + + public void lockWithCS() { + _lockSqlSuffix = " with CS"; + } + + public void lockWithUR() { + _lockSqlSuffix = " with UR"; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,113 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDefault extends AbstractSqlClause { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDefault(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + + toString(); + throw new UnsupportedOperationException(msg); + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,136 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDerby extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDerby(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,103 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Firebird. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseFirebird extends AbstractSqlClause { + + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseFirebird(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseH2.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseH2.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseH2.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,104 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for H2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseH2 extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseH2(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getFetchSize() + " offset " + + getPageStartIndex(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23001".equals(sqlState); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseH2.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,111 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Interbase. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseInterbase extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseInterbase(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,135 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MySQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseMySql extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseMySql(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getPageStartIndex() + ", " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update Override + // ===================== + @Override + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return false; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1062; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,182 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * SqlClause for Oracle. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseOracle extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseOracle(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // Database Original Override + // ========================== + @Override + protected String buildUnionClause(String selectClause) { + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Remove select-hint comment from select clause of union + // for fetch-scope with union(). + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + selectClause = replaceString(selectClause, SELECT_HINT, ""); + return super.buildUnionClause(selectClause); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) { + return; + } + String ln = null; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } else { + ln = ""; + } + _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + + ln + "select"; + _fetchScopeSqlSuffix = ""; + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + + getPageStartIndex(); + } + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + + getPageEndIndex(); + } else { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + _fetchScopeSqlSuffix = ""; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + if (dbmeta.hasPrimaryKey()) { + final String primaryKeyColumnName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + primaryKeyColumnName; + } else { + final String randomColumnName = ((ColumnInfo) dbmeta + .getColumnInfoList().get(0)).getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + randomColumnName; + } + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,104 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for PostreSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClausePostgreSql extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClausePostgreSql(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " offset " + getPageStartIndex() + " limit " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,147 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MSSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseSqlServer extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as select-hint. */ + protected String _fetchFirstSelectHint = ""; + + /** String of lock as from-hint. */ + protected String _lockFromHint = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseSqlServer(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } else { + _fetchFirstSelectHint = " top " + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchFirstSelectHint = ""; + } + + /** + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. {Implement} + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockFromHint = " with (updlock)"; + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchFirstSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return _lockFromHint; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 2627; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,146 @@ +package jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * The interface of simple filter for where clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface WhereClauseSimpleFilter { + + public static final String BIND_COMMENT_BEGIN_PART = "/*dto"; + + public static final String BIND_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_BEGIN_PART = "/*$dto"; + + public static final String EMBEDDED_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_QUOTED_BEGIN_PART = "'/*$dto"; + + public static final String EMBEDDED_COMMENT_QUOTED_END_PART = "*/'dummy''"; + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement); + + /** + * The simple filter for where clause to embedded.
    *Attension -- + * Target column is not perfect. This class determines by column name only! + * So when the column name of base table is same as the column name of join + * table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedSimpleFilter implements + WhereClauseSimpleFilter { + + protected java.util.Set _filterTargetColumnInfoSet; + + public WhereClauseToEmbeddedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + this._filterTargetColumnInfoSet = new java.util.HashSet(); + this._filterTargetColumnInfoSet.add(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + this._filterTargetColumnInfoSet = filterTargetColumnInfoSet; + } + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement) { + if (_filterTargetColumnInfoSet == null + || _filterTargetColumnInfoSet.isEmpty()) { + return toEmbedded(clauseElement); + } + for (final java.util.Iterator ite = _filterTargetColumnInfoSet + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (isTargetClause(clauseElement, columnInfo.getColumnDbName())) { + return toEmbedded(clauseElement); + } + } + return clauseElement; + } + + protected boolean isTargetClause(String clauseElement, + final String columnDbName) { + return clauseElement.indexOf("." + columnDbName + " ") >= 0; + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_END_PART); + return clauseElement; + } + + protected final String replace(String text, String fromText, + String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + } + + /** + * The simple filter for where clause to embedded and quoted.
    + * *Attension -- Target column is not perfect. This class determines by + * column name only! So when the column name of base table is same as the + * column name of join table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedQuotedSimpleFilter extends + WhereClauseToEmbeddedSimpleFilter { + + public WhereClauseToEmbeddedQuotedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + super(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedQuotedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + super(filterTargetColumnInfoSet); + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_QUOTED_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_QUOTED_END_PART); + return clauseElement; + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/AbstractDBMeta.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/AbstractDBMeta.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/AbstractDBMeta.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1250 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.MapListString; +import jp.sf.pal.addresslist.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.addresslist.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.addresslist.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractDBMeta implements DBMeta { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _columnInfoList; + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName) { + if (!hasFlexibleName(columnFlexibleName)) { + return false; + } + final String propertyName = findPropertyName(columnFlexibleName); + return hasMethod("column" + initCap(propertyName)); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + if (!hasColumn(columnFlexibleName)) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName(); + throw new IllegalArgumentException(msg); + } + String methodName = "column" + + initCap(findPropertyName(columnFlexibleName)); + Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ColumnInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) {// createColumnInfo() + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits); + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {// createColumnInfo + // ( + // ) + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits, optimisticLockType); + } + + /** + * The implementation. + * + * @return The list of columns. (NotNull and NotEmpty) + */ + public List getColumnInfoList() { + if (_columnInfoList != null) { + return _columnInfoList; + } + synchronized (this) { + if (_columnInfoList != null) { + return _columnInfoList; + } + Method[] methods = this.getClass().getMethods(); + _columnInfoList = newArrayList(); + String prefix = "column"; + Class returnType = ColumnInfo.class; + Object[] args = new Object[] {}; + try { + for (Method method : methods) { + if (method.getName().startsWith(prefix) + && returnType.equals(method.getReturnType())) { + _columnInfoList.add((ColumnInfo) method.invoke(this, + args)); + } + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return _columnInfoList; + } + } + + protected void initializeColumnInfoList() { + getColumnInfoList();// Ignore return value because of initialization + // only! + } + + //========================================================================== + // =========== + // Name Handling + // ============= + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return true; + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return true; + } + return false; + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get(key); + } + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + final String dbNameKeyToLower = ((String) getDbNamePropertyNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey( + dbNameKeyToLower)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get( + dbNameKeyToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get(key); + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + final String dbNameToLower = ((String) getPropertyNameDbNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(dbNameToLower)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get( + dbNameToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + protected UniqueInfo createPrimaryUniqueInfo() { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + return uniqueInfo; + } + + protected UniqueInfo createPrimaryUniqueInfo(ColumnInfo uniqueColumnInfo) { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + uniqueInfo.addUniqueColumnList(uniqueColumnInfo); + return uniqueInfo; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + /** + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return The information of relation. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("relationPropertyName", + relationPropertyName); + return hasForeign(relationPropertyName) ? (RelationInfo) findForeignInfo(relationPropertyName) + : (RelationInfo) findReferrerInfo(relationPropertyName); + } + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + return hasMethod(methodName); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropertyName) { + return findForeignInfo(foreignPropertyName).getForeignDBMeta(); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign information. (NotNull) + */ + public jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo findForeignInfo( + String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found foreign by foreignPropertyName: foreignPropertyName=" + + foreignPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ForeignInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ForeignInfo cfi(String propName, DBMeta localDbm, + DBMeta foreignDbm, + Map localForeignColumnInfoMap, int relNo, + boolean oneToOne) {// createForeignInfo() + final ForeignInfo foreignInfo = new ForeignInfo(); + foreignInfo.setForeignPropertyName(propName); + foreignInfo.setLocalDBMeta(localDbm); + foreignInfo.setForeignDBMeta(foreignDbm); + foreignInfo.setLocalForeignColumnInfoMap(localForeignColumnInfoMap); + foreignInfo.setRelationNo(relNo); + foreignInfo.setOneToOne(oneToOne); + return foreignInfo; + } + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + return hasMethod(methodName); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + return findReferrerInfo(referrerPropertyName).getReferrerDBMeta(); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found referrer by referrerPropertyName: referrerPropertyName=" + + referrerPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ReferrerInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ReferrerInfo cri(String propName, DBMeta localDbm, + DBMeta referrerDbm, + Map localReferrerColumnInfoMap, + boolean oneToOne) {// createReferrerInfo() + final ReferrerInfo referrerInfo = new ReferrerInfo(); + referrerInfo.setReferrerPropertyName(propName); + referrerInfo.setLocalDBMeta(localDbm); + referrerInfo.setReferrerDBMeta(referrerDbm); + referrerInfo.setLocalReferrerColumnInfoMap(localReferrerColumnInfoMap); + referrerInfo.setOneToOne(oneToOne); + return referrerInfo; + } + + // ----------------------------------------------------- + // Common Logic + // ------------ + protected String buildRelationInfoGetterMethodNameInitCap( + String targetName, String relationPropertyName) { + return targetName + relationPropertyName.substring(0, 1).toUpperCase() + + relationPropertyName.substring(1); + } + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + protected static abstract class AbstractRelationTrace implements + RelationTrace { + + /** The list of relation. */ + protected List _relationList; + + /** The list of relation trace. */ + protected List _relationTraceList; + + /** The list of relation info as trace. */ + protected List _traceRelationInfoList; + + /** The column info as trace. */ + protected ColumnInfo _traceColumnInfo; + + /** The handler of fixed relation trace. */ + protected RelationTraceFixHandler _relationTraceFixHandler; + + /** + * Constructor for first step. + * + * @param relationTraceFixHandler The handler of fixed relation trace. + * (Nullable) + */ + public AbstractRelationTrace( + RelationTraceFixHandler relationTraceFixHandler) { + this(new ArrayList(), + new ArrayList()); + this._relationTraceFixHandler = relationTraceFixHandler; + } + + /** + * Constructor for relation step. + * + * @param relationList The list of relation. (NotNull) + * @param relationTraceList The list of relation trace. (NotNull) + */ + public AbstractRelationTrace(List relationList, + List relationTraceList) { + this._relationList = relationList; + this._relationTraceList = relationTraceList; + this._relationTraceList.add(this); + } + + /** + * The implementation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation() { + return _traceRelationInfoList; + } + + /** + * The implementation. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn() { + return _traceColumnInfo; + } + + /** + * Fix trace. + * + * @param traceRelationInfoList The trace of relation as the list of + * relation info. (NotNull) + * @param traceColumnInfo The trace of column as column info. (Nullable) + * @return Relation trace(result). (NotNull) + */ + protected RelationTrace fixTrace( + List traceRelationInfoList, + ColumnInfo traceColumnInfo) { + final AbstractRelationTrace localRelationTrace = (AbstractRelationTrace) _relationTraceList + .get(0); + localRelationTrace.setTraceRelation(traceRelationInfoList); + localRelationTrace.setTraceColumn(traceColumnInfo); + localRelationTrace.recycle(); + localRelationTrace.handleFixedRelationTrace(); + return localRelationTrace; + } + + protected void setTraceRelation(List traceRelationInfoList) { + this._traceRelationInfoList = traceRelationInfoList; + } + + protected void setTraceColumn(ColumnInfo traceColumn) { + this._traceColumnInfo = traceColumn; + } + + /** + * The implementation. + */ + protected void recycle() { + this._relationList = new ArrayList(); + this._relationTraceList = new ArrayList(); + this._relationTraceList.add(this); + } + + protected void handleFixedRelationTrace() { + if (_relationTraceFixHandler != null) { + _relationTraceFixHandler.handleFixedTrace(this); + } + } + } + + //========================================================================== + // ========= + // Map String + // ========== + /** + * The implementation. + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString() { + return MapStringUtil.createMapListString(); + } + + /** + * The implementation. + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder() { + final List columnDbNameList = new ArrayList(); + for (final Iterator ite = getColumnInfoList().iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + return MapStringUtil.createMapStringBuilder(columnDbNameList); + } + + //========================================================================== + // ========= + // Various Info + // ============ + // These methods is expected to override if it needs. + public boolean hasSequence() { + return false; + } + + public String getSequenceNextValSql() { + return null; + } + + public boolean hasVersionNo() { + return false; + } + + public ColumnInfo getVersionNoColumnInfo() { + return null; + } + + public boolean hasUpdateDate() { + return false; + } + + public ColumnInfo getUpdateDateColumnInfo() { + return null; + } + + public boolean hasCommonColumn() { + return false; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + protected void doAcceptPrimaryKeyMap(ENTITY entity, + Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected void doAcceptColumnValueMap( + ENTITY entity, Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected String doExtractPrimaryKeyMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + protected String doExtractColumnValueMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getColumnInfoList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + // ----------------------------------------------------- + // Convert + // ------- + protected Map doConvertToColumnValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + protected Map doConvertToColumnStringValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, helpGettingColumnStringValue(value)); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected void setupEps( + Map> entityPropertySetupperMap, + Eps setupper, ColumnInfo columnInfo) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + registerEntityPropertySetupper(columnName, propertyName, setupper, + entityPropertySetupperMap); + } + + protected void registerEntityPropertySetupper( + String columnName, String propertyName, Eps setupper, + Map> entityPropertySetupperMap) { + entityPropertySetupperMap.put(columnName, setupper); + entityPropertySetupperMap.put(propertyName, setupper); + entityPropertySetupperMap.put(columnName.toLowerCase(), setupper); + entityPropertySetupperMap.put(propertyName.toLowerCase(), setupper); + } + + protected Eps findEps( + Map> entityPropertySetupperMap, + String propertyName) { + Eps setupper = entityPropertySetupperMap.get(propertyName); + if (setupper == null) { + String msg = "The propertyName was Not Found in the map of setupper of entity property:"; + msg = msg + " propertyName=" + propertyName + + " _entityPropertySetupperMap.keySet()=" + + entityPropertySetupperMap.keySet(); + throw new IllegalStateException(msg); + } + return setupper; + } + + //========================================================================== + // ========= + // Util Class + // ========== + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringUtil { + + public static void acceptPrimaryKeyMapString( + String primaryKeyMapString, Entity entity) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptPrimaryKeyMap(entity, + mapListString.generateMap(primaryKeyMapString)); + } + + public static void acceptColumnValueMapString( + String columnValueMapString, Entity entity) { + if (columnValueMapString == null) { + String msg = "The argument[columnValueMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!columnValueMapString.trim().startsWith(prefix)) { + columnValueMapString = prefix + columnValueMapString; + } + if (!columnValueMapString.trim().endsWith(suffix)) { + columnValueMapString = columnValueMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptColumnValueMap(entity, + mapListString.generateMap(columnValueMapString)); + } + + public static String extractPrimaryKeyMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractPrimaryKeyMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static String extractColumnValueMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractColumnValueMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException( + "The value should not be null: " + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + public static long parseDateStringAsMillis(Object value, + String propertyName, String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = filterTimestampValue(((String) value) + .trim()); + return java.sql.Timestamp.valueOf(valueString).getTime(); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + + " threw the exception: value=[" + value + "]", e); + } + } + + public static String filterTimestampValue(String value) { + value = value.trim(); + if (value.indexOf("/") == 4 && value.lastIndexOf("/") == 7) { + value = value.replaceAll("/", "-"); + } + if (value.indexOf("-") == 4 && value.lastIndexOf("-") == 7) { + if (value.length() == "2007-07-09".length()) { + value = value + " 00:00:00"; + } + } + return value; + } + + public static String formatDate(java.util.Date value) { + return getFormatDateFormat().format(value); + } + + public static String formatTimestamp(java.sql.Timestamp value) { + return getFormatDateFormat().format(value); + } + + public static java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateInstance(); + } + + public static java.text.DateFormat getFormatDateFormat() { + return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + } + + public static MapListString createMapListString() { + final MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + return mapListString; + } + + public static MapStringBuilder createMapStringBuilder( + List columnNameList) { + MapStringBuilder mapStringBuilder = new MapStringBuilderImpl(); + mapStringBuilder.setMsMapMark(MAP_STRING_MAP_MARK); + mapStringBuilder.setMsStartBrace(MAP_STRING_START_BRACE); + mapStringBuilder.setMsEndBrace(MAP_STRING_END_BRACE); + mapStringBuilder.setMsEqual(MAP_STRING_EQUAL); + mapStringBuilder.setMsDelimiter(MAP_STRING_DELIMITER); + mapStringBuilder.setColumnNameList(columnNameList); + return mapStringBuilder; + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapAssertUtil { + public static void assertPrimaryKeyMapNotNullAndNotEmpty( + java.util.Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + + public static void assertColumnExistingInPrimaryKeyMap( + java.util.Map primaryKeyMap, + String columnName) { + if (!primaryKeyMap.containsKey(columnName)) { + String msg = "The primaryKeyMap must have the value of " + + columnName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + + public static void assertColumnValueMapNotNullAndNotEmpty( + java.util.Map columnValueMap) { + if (columnValueMap == null) { + String msg = "The argument[columnValueMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnValueMap.isEmpty()) { + String msg = "The argument[columnValueMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringValueAnalyzer { + protected java.util.Map _valueMap; + + protected java.util.Set _modifiedPropertyNames; + + protected String _columnName; + + protected String _uncapPropName; + + protected String _propertyName; + + public MapStringValueAnalyzer( + java.util.Map valueMap, + java.util.Set modifiedPropertyNames) { + this._valueMap = valueMap; + this._modifiedPropertyNames = modifiedPropertyNames; + } + + public boolean init(String columnName, String uncapPropName, + String propertyName) { + this._columnName = columnName; + this._uncapPropName = uncapPropName; + this._propertyName = propertyName; + return _valueMap.containsKey(_columnName); + } + + public COLUMN_TYPE analyzeString( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + helpCheckingTypeString(obj, _uncapPropName, javaType.getName()); + return (COLUMN_TYPE) obj; + } + + public COLUMN_TYPE analyzeNumber( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, + String.class, obj.toString()); + } + + public COLUMN_TYPE analyzeDate(Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, long.class, + helpParsingDateString(obj, _uncapPropName, javaType + .getName())); + } + + public COLUMN_TYPE analyzeOther( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + return (COLUMN_TYPE) obj; + } + + private void helpCheckingTypeString(Object value, String uncapPropName, + String typeName) { + MapStringUtil.checkTypeString(value, uncapPropName, typeName); + } + + private long helpParsingDateString(Object value, String uncapPropName, + String typeName) { + return MapStringUtil.parseDateStringAsMillis(value, uncapPropName, + typeName); + } + + protected Object newInstanceByConstructor(Class targetType, + Class argType, Object arg) { + java.lang.reflect.Constructor constructor; + try { + constructor = targetType + .getConstructor(new Class[] { argType }); + } catch (SecurityException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (NoSuchMethodException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + try { + return constructor.newInstance(new Object[] { arg }); + } catch (IllegalArgumentException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (InstantiationException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (IllegalAccessException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (java.lang.reflect.InvocationTargetException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected ENTITY downcast(Entity entity) { + checkDowncast(entity); + return (ENTITY) entity; + } + + protected void checkDowncast(Entity entity) { + assertObjectNotNull("entity", entity); + Class entityType = getEntityType(); + Class targetType = entity.getClass(); + if (!entityType.isAssignableFrom(targetType)) { + String name = entityType.getSimpleName(); + String msg = "The entity should be " + name + " but it was: " + + targetType; + throw new IllegalStateException(msg); + } + } + + protected void helpAppendingColumnValueString(StringBuilder sb, + String delimiter, String equal, String colName, Object value) { + sb.append(delimiter).append(colName).append(equal); + sb.append(helpGettingColumnStringValue(value)); + } + + protected String helpGettingColumnStringValue(Object value) { + if (value instanceof java.sql.Timestamp) { + return (value != null ? helpFormatingTimestamp((java.sql.Timestamp) value) + : ""); + } else if (value instanceof java.util.Date) { + return (value != null ? helpFormatingDate((java.util.Date) value) + : ""); + } else { + return (value != null ? value.toString() : ""); + } + } + + protected String helpFormatingDate(java.util.Date date) { + return MapStringUtil.formatDate(date); + } + + protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) { + return MapStringUtil.formatTimestamp(timestamp); + } + + protected Map setupKeyToLowerMap(boolean dbNameKey) { + final Map map; + if (dbNameKey) { + map = newLinkedHashMap(getTableDbName().toLowerCase(), + getTablePropertyName()); + } else { + map = newLinkedHashMap(getTablePropertyName().toLowerCase(), + getTableDbName()); + } + Method[] methods = this.getClass().getMethods(); + String columnInfoMethodPrefix = "column"; + try { + for (Method method : methods) { + String name = method.getName(); + if (!name.startsWith(columnInfoMethodPrefix)) { + continue; + } + ColumnInfo columnInfo = (ColumnInfo) method.invoke(this); + String dbName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + if (dbNameKey) { + map.put(dbName.toLowerCase(), propertyName); + } else { + map.put(propertyName.toLowerCase(), dbName); + } + } + return Collections.unmodifiableMap(map); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // String Handling + // --------------- + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String initUncap(String str) { + return SimpleStringUtil.initUncap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected HashMap newHashMap() { + return new HashMap(); + } + + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + protected LinkedHashMap newLinkedHashMap(KEY key, + VALUE value) { + LinkedHashMap map = newLinkedHashMap(); + map.put(key, value); + return map; + } + + protected ArrayList newArrayList() { + return new ArrayList(); + } + + protected ArrayList newArrayList( + Collection collection) { + return new ArrayList(collection); + } + + // ----------------------------------------------------- + // Reflection Handling + // ------------------- + private Set _cachedMethodNames = new HashSet(); // for + + // performance + + protected boolean hasMethod(String methodName) { + assertStringNotNullAndNotTrimmedEmpty("methodName", methodName); + if (_cachedMethodNames.isEmpty()) { + synchronized (_cachedMethodNames) { + if (_cachedMethodNames.isEmpty()) { + final Method[] methods = this.getClass().getMethods(); + for (Method method : methods) { + _cachedMethodNames.add(method.getName()); + } + } + } + } + return _cachedMethodNames.contains(methodName); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the argument is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the string is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/AbstractDBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMeta.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMeta.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMeta.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,601 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.MapListString; +import jp.sf.pal.addresslist.db.allcommon.helper.MapStringBuilder; + +/** + * The interface of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface DBMeta { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Info + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property-name(JavaBeansRule). + * + * @return Table property-name(JavaBeansRule). (NotNull) + */ + public String getTablePropertyName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // Name Handling + // ============= + /** + * Has object of flexible name? {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName); + + /** + * Find db name by flexible name. {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName); + + /** + * Find property name(JavaBeansRule) by flexible name. {Target objects are + * TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName); + + //========================================================================== + // ========= + // Name Map + // ======== + /** + * Get the key-to-lower map of DB name(lower) and property name. + * + * @return The key-to-lower map of DB name(lower) and property name. + * (NotNull) + */ + public Map getDbNamePropertyNameKeyToLowerMap(); + + /** + * Get the key-to-lower map of property name(lower) and db name. + * + * @return The key-to-lower map of property name(lower) and db name. + * (NotNull) + */ + public Map getPropertyNameDbNameKeyToLowerMap(); + + //========================================================================== + // ========= + // Type Name + // ========= + /** + * Get the type-name of entity. + * + * @return The type-name of entity. (NotNull) + */ + public String getEntityTypeName(); + + /** + * Get the type-name of condition-bean. + * + * @return The type-name of condition-bean. (Nullable: If the condition-bean + * does not exist) + */ + public String getConditionBeanTypeName(); + + /** + * Get the type-name of dao. + * + * @return The type-name of dao. (Nullable: If the dao does not exist) + */ + public String getDaoTypeName(); + + /** + * Get the type-name of behavior. + * + * @return The type-name of behavior. (Nullable: If the behavior does not + * exist) + */ + public String getBehaviorTypeName(); + + //========================================================================== + // ========= + // Object Type + // =========== + /** + * Get the type of entity. + * + * @return The type of entity. (NotNull) + */ + public Class getEntityType(); + + //========================================================================== + // ========= + // Object Instance + // =============== + /** + * New the instance of entity. + * + * @return The instance of entity. (NotNull) + */ + public Entity newEntity(); + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * @return The list of DB name of column. (NotNull and NotEmpty) + */ + public List getColumnInfoList(); + + /** + * Has column? + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName); + + /** + * Find the information of the column by the flexible name of the column. + * + *
    +     * If the table name is 'BOOK_ID', you can find the dbmeta by ...(as follows)
    +     *     'BOOK_ID', 'BOok_iD', 'book_id'
    +     *     , 'BookId', 'bookid', 'bOoKiD'
    +     * 
    + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName); + + //========================================================================== + // ========= + // Unique Info + // =========== + /** + * Get primary unique info. + * + * @return Primary unique info. (NotNull) + */ + public UniqueInfo getPrimaryUniqueInfo(); + + /** + * Has primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKey(); + + /** + * Has two or more primary-keys? + * + * @return Determination. + */ + public boolean hasTwoOrMorePrimaryKeys(); + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Relation Element + // ---------------- + /** + * Find relation info. + * + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return Relation info. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName); + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * Has foreign? + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropName); + + /** + * Find foreign dbmeta. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropName); + + /** + * Find foreign info. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign info. (NotNull) + */ + public ForeignInfo findForeignInfo(String foreignPropName); + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * Has referrer? + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName); + + /** + * Find referrer dbmeta. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName); + + /** + * Find referrer information. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName); + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + public static interface RelationTrace { + + /** + * Get the trace of relation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation(); + + /** + * Get the trace of column. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn(); + } + + public static interface RelationTraceFixHandler { + public void handleFixedTrace(RelationTrace relationTrace); + } + + //========================================================================== + // ========= + // Sequence Info + // ============= + /** + * Has sequence? + * + * @return Determination. + */ + public boolean hasSequence(); + + /** + * Get the SQL string for getting next value of sequence. + * + * @return The SQL string for getting next value of sequence. (Nullable: If + * it does not have sequence, returns null.) + */ + public String getSequenceNextValSql(); + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + /** + * Has version no? + * + * @return Determination. + */ + public boolean hasVersionNo(); + + /** + * Get the column information of version no. + * + * @return The column information of version no. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getVersionNoColumnInfo(); + + /** + * Has update date? + * + * @return Determination. + */ + public boolean hasUpdateDate(); + + /** + * Get the column information of update date. + * + * @return The column information of update date. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getUpdateDateColumnInfo(); + + //========================================================================== + // ========= + // Common Column Info + // ================== + /** + * Has common column? + * + * @return Determination. + */ + public boolean hasCommonColumn(); + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + /** + * Accept primary-key map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap); + + /** + * Accept primary-key map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMapString Primary-key map-string. (NotNull) + */ + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString); + + /** + * Accept column-value map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMap Column-value map. (NotNull and NotEmpty) + */ + public void acceptColumnValueMap(Entity entity, + Map columnValueMap); + + /** + * Accept column-value map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMapString Column-value map-string. (NotNull) + */ + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString); + + // ----------------------------------------------------- + // Extract + // ------- + /** + * Extract primary-key map-string. Delimiter is at-mark and semicolon. + *

    + * + *

    +     * ex) Uses that this method have.
    +     *   final String primaryKeyMapString = LdBookDbm.extractPrimaryKeyMapString(entity);
    +     *   final LdBook entity = dao.selectEntity(new LdBookCB().acceptPrimaryKeyMapString(primaryKeyMapString));
    +     *   ... // as primary key for condition.
    +     * 
    + * + * @param entity Target entity. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity); + + /** + * Extract primary-key map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + /** + * Extract column-value map-string. Delimiter is at-mark and semicolon. + * + * @param entity Target entity. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity); + + /** + * Extract column-value map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + // ----------------------------------------------------- + // Convert + // ------- + /** + * Convert entity to column value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column value. (NotNull) + */ + public List convertToColumnValueList(Entity entity); + + /** + * Convert entity to column value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column value. (NotNull) + */ + public Map convertToColumnValueMap(Entity entity); + + /** + * Convert entity to column string-value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column string-value. (NotNull) + */ + public List convertToColumnStringValueList(Entity entity); + + /** + * Convert entity to column string-value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column string-value. (NotNull) + */ + public Map convertToColumnStringValueMap(Entity entity); + + //========================================================================== + // ========= + // Map String + // ========== + /** + * Create map list string that is prepared. (for INTERNAL) + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString(); + + /** + * Create map string builder that is prepared. (for INTERNAL) + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder(); + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + /** + * Has the setupper of entity property by the name of property?
    + * Comparing is so flexible. {Ignore cases and underscore} + * + * @param propertyName The name of the property. (NotNull) + * @return Determination. + */ + public boolean hasEntityPropertySetupper(String propertyName); + + /** + * Set up entity property. (for INTERNAL) + * + * @param propertyName The name of the property. (NotNull) + * @param entity The entity for the property. (NotNull) + * @param value The value of the property. (Nullable) + */ + public void setupEntityProperty(String propertyName, Object entity, + Object value); + + /** + * The setupper of entity property.
    This class is for Internal. Don't + * use this! + * + * @param The type of entity. + */ + public interface Eps { + + /** + * @param entity Entity. (NotNull) + * @param value Value. (Nullable) + */ + void setup(ENTITY_TYPE entity, Object value); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public static enum OptimisticLockType { + NONE, VERSION_NO, UPDATE_DATE + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMetaInstanceHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,244 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.util.SimpleAssertUtil; + +/** + * DBMeta instance handler. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class DBMetaInstanceHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Table DB-name instance map. */ + protected static final Map _tableDbNameInstanceMap = new LinkedHashMap(); + + /** The map of table DB-name and class name. */ + protected static final Map _tableDbNameClassNameMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("COMPANY", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.CompanyDbm"); + tmpMap.put("CONTACT", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.ContactDbm"); + tmpMap.put("CUSTOM", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.CustomDbm"); + tmpMap.put("GROUP_INFO", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.GroupInfoDbm"); + tmpMap.put("GROUP_MAPPING", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.GroupMappingDbm"); + tmpMap.put("PERSON", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.PersonDbm"); + tmpMap.put("POSTAL", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.PostalDbm"); + tmpMap.put("ROLE_INFO", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("ROLE_MAPPING", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.RoleMappingDbm"); + tmpMap.put("USER_INFO", + "jp.sf.pal.addresslist.db.bsentity.dbmeta.UserInfoDbm"); + + _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of DB-name and property-name for table. */ + protected static final Map _tableDbNamePropertyNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("COMPANY".toLowerCase(), "company"); + tmpMap.put("CONTACT".toLowerCase(), "contact"); + tmpMap.put("CUSTOM".toLowerCase(), "custom"); + tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); + tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); + tmpMap.put("PERSON".toLowerCase(), "person"); + tmpMap.put("POSTAL".toLowerCase(), "postal"); + tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping"); + tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); + + _tableDbNamePropertyNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of property-name and DB-name for table. */ + protected static final Map _tablePropertyNameDbNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("company".toLowerCase(), "COMPANY"); + tmpMap.put("contact".toLowerCase(), "CONTACT"); + tmpMap.put("custom".toLowerCase(), "CUSTOM"); + tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); + tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); + tmpMap.put("person".toLowerCase(), "PERSON"); + tmpMap.put("postal".toLowerCase(), "POSTAL"); + tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING"); + tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); + + _tablePropertyNameDbNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + protected static DBMeta getDBMeta(String className) { + try { + Class clazz = Class.forName(className); + java.lang.reflect.Method methoz = clazz.getMethod("getInstance", + (Class[]) null); + Object result = methoz.invoke(null, (Object[]) null); + return (DBMeta) result; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * @return The initialized map that contains all instances of dbmeta. + * (NotNull & NotEmpty) + */ + public static Map getDBMetaMap() { + initializeDBMetaMap(); + return _tableDbNameInstanceMap; + } + + protected static void initializeDBMetaMap() { + if (isInitialized()) { + return; + } + final Set tableDbNameSet = _tableDbNameClassNameMap.keySet(); + for (String tableDbName : tableDbNameSet) { + findDBMeta(tableDbName); // Initialize! + } + if (!isInitialized()) { + String msg = "Failed to initialize tableDbNameInstanceMap:"; + msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap; + throw new IllegalStateException(msg); + } + } + + protected static boolean isInitialized() { + return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap + .size(); + } + + //========================================================================== + // ========= + // Main Method + // =========== + /** + * Find dbmeta by table flexible-name. + * + *
    +     * If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)
    +     *     'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'
    +     *     , 'OrderDetail', 'orderdetail', 'oRderDetaIl'
    +     * 
    + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return The instance of dbmeta. (NotNull) + * @exception DBMetaNotFoundException When the dbmeta is not found. + */ + public static DBMeta findDBMeta(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) { + return byTableDbName(tableFlexibleName); + } + String toLowerKey = tableFlexibleName.toLowerCase(); + if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) { + String propertyName = (String) _tableDbNamePropertyNameKeyToLowerMap + .get(toLowerKey); + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(propertyName.toLowerCase()); + return byTableDbName(dbName); + } + if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) { + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(toLowerKey); + return byTableDbName(dbName); + } + final int dotLastIndex = tableFlexibleName.lastIndexOf("."); + if (dotLastIndex >= 0) { + try { + return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1)); + } catch (DBMetaNotFoundException e) { + // Nothing + } + } + String msg = "The instance map returned null by the key: key=" + + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + + public static class DBMetaNotFoundException extends IllegalStateException { + private static final long serialVersionUID = 1L; + + public DBMetaNotFoundException(String msg) { + super(msg); + } + } + + /** + * Get instance by table DB-name. + * + * @param tableDbName Table DB-name. (NotNull) + * @return Instance. (NotNull) + */ + protected static DBMeta byTableDbName(String tableDbName) { + assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName); + DBMeta instance = getCachedDBMeta(tableDbName); + if (instance == null) { + String msg = "The instance map returned null by the key: key=" + + tableDbName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + return instance; + } + + protected static DBMeta getCachedDBMeta(String tableName) {// For lazy-load! + // Thank you + // koyak! + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + synchronized (_tableDbNameInstanceMap) { + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + String entityName = _tableDbNameClassNameMap.get(tableName); + _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName)); + } + return _tableDbNameInstanceMap.get(tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // Assert Object + // ------------- + protected static void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/DBMetaInstanceHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,915 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.RelationInfo; + +/** + * The arranger of hierarchy. + * + *
    + * ex) LIBRARY Hierarchy
    + * 
    + * LIBRARY
    + *  |1
    + *  |--* NEXT_LIBRARY (Referrer)
    + *  |       |*
    + *  |       |--1 LIBRARY (Foreign)
    + *  |
    + *  |--* COLLECTION (Referrer)
    + *  |       |1 
    + *  |       |--1 COLLECTION_STATUS (Referrer)
    + *  |       |       |*
    + *  |       |       |--1 COLLECTION_STATUS_LOOKUP (Foreign)
    + *  |       |
    + *  |       |--1 BOOK (Foreign)
    + *  |       |     |*
    + *  |       |     |--1 AUTHOR (Foreign)
    + *  |       |     |--1 PUBLISER (Foreign)
    + *  |       |     |--1 GENRE (Foreign)
    + *  |       |           |*
    + *  |       |           |--1 GENRE (Foreign)
    + *  |       |
    + *  |       |--* LENDING_COLLECTION (Referrer)
    + *  |       |
    + *  |
    + *  |--* LIBRARY_USER (Referrer)
    + *         |*  |1
    + *         |   |--* LENDING (Referrer)
    + *         |         |1
    + *         |         |--* LENDING_COLLECTION (Referrer)
    + *         |
    + *         |--1 LB_USER (Foreign)
    + *                 |1
    + *                 |--* BLACK_LIST (Referrer)
    + *                         |1
    + *                         |--* BLACK_ACTION (Referrer)
    + *                                 |*
    + *                                 |--1 BLACK_ACTION_LOOKUP (Foreign)
    + *          
    + *          
    + * ex) The SQL of LIBRARY Hierarchy as FLAT
    + * 
    + * select library.LIBRARY_ID as LIBRARY_ID
    + *      , library.LIBRARY_NAME as LIBRARY_NAME
    + *      , library.R_USER as R_USER
    + *      , library.R_TIMESTAMP as R_TIMESTAMP
    + *      , nextBase.LIBRARY_ID as BASE_LIBRARY_ID
    + *      , nextBase.NEXT_LIBRARY_ID as NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_ID as NEXT_LIBRARY_NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_NAME as NEXT_LIBRARY_NEXT_LIBRARY_NAME
    + *      , collection.COLLECTION_ID as COLLECTION_ID
    + *      , collection.ARRIVAL_DATE as COLLECTION_ARRIVAL_DATE
    + *      , collectionStatus.COLLECTION_ID as COLLECTION_STATUS_ID
    + *      , collectionStatus.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_NAME as COLLECTION_STATUS_NAME
    + *      , book.BOOK_ID as COLLECTION_BOOK_ID
    + *      , book.BOOK_NAME as COLLECTION_BOOK_NAME
    + *      , author.AUTHOR_ID as COLLECTION_BOOK_AUTHOR_ID
    + *      , author.AUTHOR_NAME as COLLECTION_BOOK_AUTHOR_NAME
    + *      , libraryUser.LIBRARY_ID as LIBRARY_USER_LIBRARY_ID 
    + *      , libraryUser.LB_USER_ID as LIBRARY_USER_LB_USER_ID
    + *      , lending.LIBRARY_ID as LENDING_LIBRARY_ID
    + *      , lending.LB_USER_ID as LENDING_LB_USER_ID
    + *      , lending.LENDING_DATE as LENDING_DATE
    + *      , lending.U_USER as LENDING_U_USER
    + *      , lending.U_MODULE as LENDING_U_MODULE
    + *      , lbUser.LB_USER_ID as LB_USER_ID
    + *      , lbUser.LB_USER_NAME as LB_USER_NAME
    + *   from LIBRARY library
    + *     left outer join NEXT_LIBRARY nextBase on library.LIBRARY_ID = nextBase.LIBRARY_ID
    + *       left outer join LIBRARY nextBaseNextLibrary on nextBase.NEXT_LIBRARY_ID = nextBaseNextLibrary.LIBRARY_ID
    + *     left outer join COLLECTION collection on library.LIBRARY_ID = collection.LIBRARY_ID
    + *       left outer join COLLECTION_STATUS collectionStatus on collection.COLLECTION_ID = collectionStatus.COLLECTION_ID
    + *         left outer join COLLECTION_STATUS_LOOKUP collectionStatusLookup on collectionStatus.COLLECTION_STATUS_CODE = collectionStatusLookup.COLLECTION_STATUS_CODE
    + *       left outer join BOOK book on collection.BOOK_ID = book.BOOK_ID
    + *         left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID
    + *     left outer join LIBRARY_USER libraryUser on library.LIBRARY_ID = libraryUser.LIBRARY_ID
    + *       left outer join LENDING lending on libraryUser.LIBRARY_ID = lending.LIBRARY_ID and libraryUser.LB_USER_ID = lending.LB_USER_ID
    + *       left outer join LB_USER lbUser on libraryUser.LB_USER_ID = lbUser.LB_USER_ID
    + * 
    + * 
    + * ex) Invoking Hierarchy Arranger
    + * 
    + * private List<Library> makeLibraryList() {
    + *     final HierarchyRequest<Library> request = createHierarchyRequest(createFlatLibraryList());
    + *     return new HierarchyArranger<Library>().arrangeHierarchy(request);
    + * }
    + * 
    + * 
    + * ex) Creating Hierarchy Request
    + * 
    + * private HierarchyRequest<Library> createHierarchsyRequest(java.util.List>HierarchyFlatLibrary> flatLibraryList) {
    + * 
    + *     // Define dbmeta.
    + *     final HierarchyFlatLibraryDbm sourceDbm = HierarchyFlatLibraryDbm.getInstance();
    + * 
    + *     // Define hierarychy request as library.
    + *     final HierarchyRequest<Library> request = new HierarchyRequest<Library>(Library.class);
    + * 
    + *     // Register the list of source iterator. (by calling creator for flat library list)
    + *     request.registerSourceList(flatLibraryList);
    + * 
    + *     // Create relation trace.
    + *     final LibraryRelationTrace trace = LibraryDbm.getInstance().createRelationTrace(null);
    + *     
    + *     // Register column [libraryId]
    + *     request.mapping(sourceDbm.columnLibraryId(), trace.columnLibraryId());
    + * 
    + *     // Register column [libraryName]
    + *     request.mapping(sourceDbm.columnLibraryName(), trace.columnLibraryName());
    + * 
    + *     // Register column [RUser]
    + *     request.mapping(sourceDbm.columnRUser(), trace.columnRUser());
    + * 
    + *     // Register column [RTimestamp]
    + *     request.mapping(sourceDbm.columnRTimestamp(), trace.columnRTimestamp());
    + * 
    + *     // Register column [baseLibraryId]
    + *     request.mapping(sourceDbm.columnBaseLibraryId(), trace.referrerNextLibraryByBaseIdList().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryId(), trace.referrerNextLibraryByBaseIdList().columnNextLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryId(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryName]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryName(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryName());
    + * 
    + *     // Register column [collectionId]
    + *     request.mapping(sourceDbm.columnCollectionId(), trace.referrerCollectionList().columnCollectionId());
    + * 
    + *     // Register column [arrivalDate]
    + *     request.mapping(sourceDbm.columnCollectionArrivalDate(), trace.referrerCollectionList().columnArrivalDate());
    + * 
    + *     // Register column [collectionStatusId]
    + *     request.mapping(sourceDbm.columnCollectionStatusId(), trace.referrerCollectionList().foreignCollectionStatusAsOne().columnCollectionId());
    + * 
    + *     // Register column [collectionStatusCode]
    + *     request.mapping(sourceDbm.columnCollectionStatusCode(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusCode());
    + * 
    + *     // Register column [collectionStatusName]
    + *     request.mapping(sourceDbm.columnCollectionStatusName(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusName());
    + * 
    + *     // Register column [collectionBookId]
    + *     request.mapping(sourceDbm.columnCollectionBookId(), trace.referrerCollectionList().foreignBook().columnBookId());
    + * 
    + *     // Register column [collectionBookName]
    + *     request.mapping(sourceDbm.columnCollectionBookName(), trace.referrerCollectionList().foreignBook().columnBookName());
    + * 
    + *     // Register column [collectionBookAuthorId]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorId(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorId());
    + * 
    + *     // Register column [collectionBookAuthorName]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorName(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorName());
    + * 
    + *     // Register column [libraryUserLibraryId]
    + *     request.mapping(sourceDbm.columnLibraryUserLibraryId(), trace.referrerLibraryUserList().columnLibraryId());
    + * 
    + *     // Register column [libraryUserLbUserId]
    + *     request.mapping(sourceDbm.columnLibraryUserLbUserId(), trace.referrerLibraryUserList().columnLbUserId());
    + * 
    + *     // Register column [lendingLibraryId]
    + *     request.mapping(sourceDbm.columnLendingLibraryId(), trace.referrerLibraryUserList().referrerLendingList().columnLibraryId());
    + * 
    + *     // Register column [lendingLbUserId]
    + *     request.mapping(sourceDbm.columnLendingLbUserId(), trace.referrerLibraryUserList().referrerLendingList().columnLbUserId());
    + * 
    + *     // Register column [lendingDate]
    + *     request.mapping(sourceDbm.columnLendingDate(), trace.referrerLibraryUserList().referrerLendingList().columnLendingDate());
    + * 
    + *     // Register column [lendingUUser]
    + *     request.mapping(sourceDbm.columnLendingUUser(), trace.referrerLibraryUserList().referrerLendingList().columnUUser());
    + * 
    + *     // Register column [lendingUModule]
    + *     request.mapping(sourceDbm.columnLendingUModule(), trace.referrerLibraryUserList().referrerLendingList().columnUModule());
    + * 
    + *     // Register column [lbUserId]
    + *     request.mapping(sourceDbm.columnLbUserId(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserId());
    + * 
    + *     // Register column [lbUserName]
    + *     request.mapping(sourceDbm.columnLbUserName(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserName());
    + * 
    + *     return request;
    + * }
    + * 
    + * private java.util.List>HierarchyFlatLibrary> createFlatLibraryList() {
    + *     (...select and get list)
    + *     return flatLibraryList;
    + * }
    + * 
    + * 
    + * === Relation Trace Tips ===
    + * 
    + *   RelationTrace.f + [Code Assist] -- go to Foreign
    + *   RelationTrace.r + [Code Assist] -- go to Referrer
    + * RelationTrace.c + [Code Assist] -- end relation by Column
    + * 
    + * 
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity extends Entity
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyArranger {
    +
    +    //==========================================================================
    +    // =========
    +    // Main
    +    // ====
    +    /**
    +     * Arrange hierarchy.
    +     * 
    +     * @param request Hierarchy request. (NotNull)
    +     * @return The list of local entity. (NotNull)
    +     */
    +    public List arrangeHierarchy(
    +            HierarchyRequest request) {
    +        final List localTableList = new ArrayList();
    +        final Map alreadyRegisteredEntityMap = new HashMap();
    +
    +        // ============
    +        // Record Loop!
    +        // ============
    +        final HierarchySourceIterator sourceIterator = request
    +                .getSourceIterator();
    +        while (sourceIterator.hasNext()) {
    +            final HierarchySourceRow sourceRow = sourceIterator.next();
    +            final TopInfo topInfo = new TopInfo();
    +            topInfo.setHierarchyRequest(request);
    +            topInfo.setSourceRow(sourceRow);
    +            topInfo.setAlreadyRegisteredEntityMap(alreadyRegisteredEntityMap);
    +
    +            final Map primaryKeyMap = extractTopPrimaryKeyMapFromSource(topInfo);
    +            final String alreadyRegisteredKey = buildTopAlreadyRegisteredKey(primaryKeyMap);
    +            if (alreadyRegisteredEntityMap.containsKey(alreadyRegisteredKey)) {
    +                final Entity localEntity = alreadyRegisteredEntityMap
    +                        .get(alreadyRegisteredKey);
    +                topInfo.setLocalEntity(localEntity);
    +            } else {
    +                // Make local entity and register it to the result list.
    +                final LOCAL_ENTITY localEntity = newLocalEntity(request
    +                        .getDestinationDBMeta());
    +                topInfo.setLocalEntity(localEntity);
    +                localTableList.add(localEntity);
    +                alreadyRegisteredEntityMap.put(alreadyRegisteredKey,
    +                        localEntity);
    +            }
    +
    +            // ============
    +            // Column Loop!
    +            // ============
    +            doColumnLoop(topInfo);
    +        }
    +
    +        // Clear modified properties.
    +        final java.util.Set alreadyRegisteredEntityKeySet = alreadyRegisteredEntityMap
    +                .keySet();
    +        for (String key : alreadyRegisteredEntityKeySet) {
    +            final Entity currentRegisteredEntity = alreadyRegisteredEntityMap
    +                    .get(key);
    +            currentRegisteredEntity.clearModifiedPropertyNames();
    +        }
    +
    +        return localTableList;
    +    }
    +
    +    /**
    +     * Build top already-registered key.
    +     * 
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     * @return Top already-registered key. (NotNull)
    +     */
    +    protected String buildTopAlreadyRegisteredKey(
    +            Map primaryKeyMap) {
    +        return HierarchyRequestElement.TOP_KEY + ":" + primaryKeyMap;
    +    }
    +
    +    /**
    +     * Do column loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of the
    +     *            type of local entity. (NotNull)
    +     */
    +    protected void doColumnLoop(TopInfo topInfo) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Entity localEntity = topInfo.getLocalEntity();
    +        final List requestElementList = request
    +                .getRequestElementList();
    +
    +        // ============
    +        // Column Loop!
    +        // ============
    +        for (HierarchyRequestElement requestElement : requestElementList) {
    +            final List relationPropertyNameList = requestElement
    +                    .getRelationPropertyNameList();
    +
    +            // If the column belongs to local entity, inject the value to entity
    +            // and continue loop.
    +            if (relationPropertyNameList == null
    +                    || relationPropertyNameList.isEmpty()) {
    +                final HierarchySourceColumn sourceColumn = requestElement
    +                        .getSourceColumnInfo();
    +                final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +                final Object sourceColumnValue = extractColumnValueFromSource(
    +                        sourceRow, sourceColumn);
    +                final ColumnInfo destinationColumnInfo = requestElement
    +                        .getDestinationColumnInfo();
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +                continue;
    +            }
    +
    +            // ==============
    +            // Relation Loop!
    +            // ==============
    +            doRelationLoop(topInfo, requestElement, relationPropertyNameList);
    +        }
    +    }
    +
    +    /**
    +     * Do relation loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param relationPropNameList The list of relation property name that has
    +     *            generics of string. (NotNull)
    +     */
    +    protected void doRelationLoop(TopInfo topInfo,
    +            HierarchyRequestElement requestElement,
    +            java.util.List relationPropNameList) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map alreadyRegisteredEntityMap = topInfo
    +                .getAlreadyRegisteredEntityMap();
    +
    +        // Temporary variables for local
    +        Entity localEntity = topInfo.getLocalEntity();// as Default
    +        DBMeta localDBMeta = request.getDestinationDBMeta();// as Default
    +        String localRelationPath = HierarchyRequestElement.TOP_KEY;// as Default
    +
    +        // ==============
    +        // Relation Loop!
    +        // ==============
    +        final StringBuilder relationPropKeyStringBuilder = new StringBuilder();
    +        int relationLoopCount = 0;
    +        for (String relationPropName : relationPropNameList) {
    +            if (relationPropKeyStringBuilder.length() > 0) {
    +                relationPropKeyStringBuilder.append("_");
    +            }
    +            relationPropKeyStringBuilder.append(relationPropName);
    +            final String targetRelationPath = relationPropKeyStringBuilder
    +                    .toString();
    +            final RelationInfo relationInfo = localDBMeta
    +                    .findRelationInfo(relationPropName);
    +
    +            final Map targetPrimaryKeyMap;
    +            final String alreadyRegisteredEntityKey;
    +            if (!relationInfo.isReferrer()) {
    +                // =======
    +                // Foreign
    +                // =======
    +                final ForeignInfo foreignInfo = localDBMeta
    +                        .findForeignInfo(relationPropName);
    +                final String foreignPropName = foreignInfo
    +                        .getForeignPropertyName();
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    // Initialize the foreign entity and inject it.
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = foreignInfo.getForeignDBMeta()
    +                            .newEntity();
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of foreign.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectForeignPrimaryKey(foreignEntity, targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of local.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectLocalForeignKey(topInfo, localEntity, foreignInfo,
    +                            targetRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put foreign entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), foreignEntity);
    +                } else {
    +                    // - - - - - - - - - - - - - -
    +                    // Inject the foreign entity.
    +                    // - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = alreadyRegisteredEntityMap
    +                            .get(alreadyRegisteredEntityKey);
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +                }
    +            } else {
    +                // =======
    +                // Referrer
    +                // =======
    +                final ReferrerInfo referrerInfo = localDBMeta
    +                        .findReferrerInfo(relationPropName);
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                // Extract referrer list from current local entity and
    +                // initialize it if needs.
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                List referrerList = extractReferrerList(localEntity,
    +                        referrerInfo);
    +                if (referrerList == null) {
    +                    String msg = "The referrer list should not be null: localEntity="
    +                            + localEntity + " referrerInfo=" + referrerInfo;
    +                    throw new IllegalStateException(msg);
    +                }
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    // Initialize referrer entity and register it to the list of
    +                    // referrer with primary key value.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    final Entity referrerEntity = relationInfo
    +                            .getTargetDBMeta().newEntity();
    +                    referrerList.add(referrerEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerPrimaryKey(referrerEntity,
    +                            targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerForeignKey(topInfo, referrerEntity,
    +                            referrerInfo, localRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put referrer entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), referrerEntity);
    +                }
    +            }
    +
    +            // - - - - - - - - - - - - - - - - - -
    +            // Set next value to current element.
    +            // - - - - - - - - - - - - - - - - - -
    +            localEntity = alreadyRegisteredEntityMap
    +                    .get(alreadyRegisteredEntityKey);
    +            localDBMeta = localEntity.getDBMeta();
    +            localRelationPath = targetRelationPath;
    +
    +            if (relationLoopCount == (relationPropNameList.size() - 1)) {// The
    +                // last
    +                // loop
    +                // !
    +                // - - - - - - - - - - - -
    +                // Here is the last loop!
    +                // - - - - - - - - - - - -
    +                doLastLoopInjection(topInfo, requestElement, localEntity,
    +                        targetPrimaryKeyMap);
    +            }
    +            ++relationLoopCount;
    +        }
    +    }
    +
    +    /**
    +     * Is not existing primary key at the relation path?.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param relationPath The path of relation. (NotNull)
    +     * @return Determination.
    +     */
    +    protected boolean isNotExistPrimaryKey(TopInfo topInfo,
    +            String relationPath) {
    +        final Map primaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, relationPath);
    +        final Set keySet = primaryKeyMap.keySet();
    +        for (String key : keySet) {
    +            final Object value = primaryKeyMap.get(key);
    +            if (value == null) {
    +                return true;
    +            }
    +        }
    +        return false;
    +    }
    +
    +    /**
    +     * Do last loop injection.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param localEntity The interface of local entity. (NotNull)
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     */
    +    protected void doLastLoopInjection(TopInfo topInfo,
    +            HierarchyRequestElement requestElement, Entity localEntity,
    +            Map primaryKeyMap) {
    +        final ColumnInfo destinationColumnInfo = requestElement
    +                .getDestinationColumnInfo();
    +        if (!primaryKeyMap.containsKey(destinationColumnInfo.getColumnDbName())) {// The
    +            // column
    +            // is
    +            // primary
    +            // key
    +            // !
    +            final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +            final HierarchySourceColumn sourceColumnInfo = requestElement
    +                    .getSourceColumnInfo();
    +            final Object sourceColumnValue = extractColumnValueFromSource(
    +                    sourceRow, sourceColumnInfo);
    +            if (sourceColumnValue != null) {
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +            }
    +        }
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Extract Logic
    +    // =============
    +    protected Map extractTopPrimaryKeyMapFromSource(
    +            TopInfo topInfo) {
    +        return extractPrimaryKeyMapFromSource(topInfo,
    +                HierarchyRequestElement.TOP_KEY);
    +    }
    +
    +    protected Map extractPrimaryKeyMapFromSource(
    +            TopInfo topInfo, String relationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +        final java.util.List primaryKeyElement = request
    +                .findPrimaryKeyElement(relationPath);
    +        final java.util.Map primaryKeyMap = new java.util.LinkedHashMap();
    +        for (HierarchyRequestElement element : primaryKeyElement) {
    +            final HierarchySourceColumn sourcePrimaryKey = element
    +                    .getSourceColumnInfo();
    +            final Object sourcePrimaryKeyValue = extractColumnValueFromSource(
    +                    sourceRow, sourcePrimaryKey);
    +            primaryKeyMap.put(element.getDestinationColumnInfo()
    +                    .getColumnDbName(), sourcePrimaryKeyValue);
    +        }
    +        return primaryKeyMap;
    +    }
    +
    +    protected Object extractColumnValueFromSource(HierarchySourceRow sourceRow,
    +            HierarchySourceColumn sourceColumn) {
    +        return sourceRow.extractColumnValue(sourceColumn);
    +    }
    +
    +    @SuppressWarnings("unchecked")
    +    protected java.util.List extractReferrerList(Entity entity,
    +            ReferrerInfo referrerInfo) {
    +        return (java.util.List) invoke(referrerInfo.findGetter(),
    +                entity, new Object[] {});
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Inject Logic
    +    // ============
    +    /**
    +     * @param entity Entity. (NotNull)
    +     * @param columnInfo Column info. (NotNull)
    +     * @param columnValue Column value. (NotNull)
    +     */
    +    protected void injectColumnValueToDestinationIfNotNull(Entity entity,
    +            ColumnInfo columnInfo, final Object columnValue) {
    +        if (columnValue != null) {
    +            injectColumnValueToDestination(entity,
    +                    columnInfo.getColumnDbName(), columnValue);
    +        }
    +    }
    +
    +    protected void injectColumnValueToDestination(Entity entity,
    +            String columnDbName, final Object columnValue) {
    +        if (columnValue == null) {
    +            String msg = "The argument[columnValue] should not be null: ";
    +            msg = msg + " table=" + entity.getTableDbName() + " column="
    +                    + columnDbName;
    +            throw new IllegalStateException(msg);
    +        }
    +        invoke(entity.getDBMeta().findColumnInfo(columnDbName).findSetter(),
    +                entity, new Object[] { columnValue });
    +    }
    +
    +    protected void injectColumnValueMapToDestination(Entity entity,
    +            final Map columnValueMap) {
    +        final Set columnNameSet = columnValueMap.keySet();
    +        for (String columnName : columnNameSet) {
    +            final Object columnValue = columnValueMap.get(columnName);
    +            injectColumnValueToDestination(entity, columnName, columnValue);
    +        }
    +    }
    +
    +    protected void injectForeignEntity(Entity entity, String foreignPropName,
    +            Entity foreignEntity) {
    +        final String capPropReferrerName = initCap(foreignPropName);
    +        final Method method = findMethod(entity.getClass(), "set"
    +                + capPropReferrerName, new Class[] { foreignEntity.getDBMeta()
    +                .getEntityType() });
    +        invoke(method, entity, new Object[] { foreignEntity });
    +    }
    +
    +    protected void injectReferrerList(Entity entity, ReferrerInfo referrerInfo,
    +            java.util.List referrerList) {
    +        invoke(referrerInfo.findSetter(), entity, new Object[] { referrerList });
    +    }
    +
    +    protected void injectForeignPrimaryKey(Entity foreignEntity,
    +            Map foreigPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(foreignEntity, foreigPrimaryKeyMap);
    +    }
    +
    +    protected void injectReferrerPrimaryKey(Entity referrerEntity,
    +            Map referrerPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(referrerEntity, referrerPrimaryKeyMap);
    +    }
    +
    +    protected void injectLocalForeignKey(TopInfo topInfo,
    +            Entity localEntity, ForeignInfo foreignInfo,
    +            String foreignRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map foreignPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, foreignRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(foreignRelationPath);
    +        final Map localForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement foreignElement : primaryKeyElementList) {
    +            final String foreignPrimaryKeyColumnName = foreignElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo localForeignKeyInfo = foreignInfo
    +                    .findLocalByForeign(foreignPrimaryKeyColumnName);
    +            final Object localForeignKeyValue = foreignPrimaryKeyMap
    +                    .get(foreignPrimaryKeyColumnName);
    +            localForeignKeyMap.put(localForeignKeyInfo.getColumnDbName(),
    +                    localForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(localEntity, localForeignKeyMap);
    +    }
    +
    +    protected void injectReferrerForeignKey(TopInfo topInfo,
    +            Entity referrerEntity, ReferrerInfo referrerInfo,
    +            String localRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map localPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, localRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(localRelationPath);
    +        final Map referrerForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement localElement : primaryKeyElementList) {
    +            final String localPrimaryKeyName = localElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo referrerForeignKeyInfo = referrerInfo
    +                    .findReferrerByLocal(localPrimaryKeyName);
    +            final Object referrerForeignKeyValue = localPrimaryKeyMap
    +                    .get(localPrimaryKeyName);
    +            referrerForeignKeyMap.put(referrerForeignKeyInfo.getColumnDbName(),
    +                    referrerForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(referrerEntity, referrerForeignKeyMap);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Other Logic
    +    // ===========
    +    @SuppressWarnings("unchecked")
    +    protected LOCAL_ENTITY newLocalEntity(final DBMeta destinationDBMeta) {
    +        final LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = (LOCAL_ENTITY) destinationDBMeta.getEntityType()
    +                    .newInstance();
    +        } catch (InstantiationException e) {
    +            throw new IllegalStateException(e);
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        }
    +        return localEntity;
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Helper
    +    // ======
    +    protected String initCap(final String name) {
    +        final String capPropReferrerName = name.substring(0, 1).toUpperCase()
    +                + name.substring(1);
    +        return capPropReferrerName;
    +    }
    +
    +    private java.lang.reflect.Method findMethod(Class clazz, String methodName,
    +            Class[] argTypes) {
    +        try {
    +            return clazz.getMethod(methodName, argTypes);
    +        } catch (NoSuchMethodException ex) {
    +            String msg = "class=" + clazz + " method=" + methodName + "-"
    +                    + java.util.Arrays.asList(argTypes);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private Object invoke(java.lang.reflect.Method method, Object target,
    +            Object[] args) {
    +        try {
    +            return method.invoke(target, args);
    +        } catch (RuntimeException e) {
    +            final String lineSeparator = System.getProperty("line.separator");
    +            final Class[] parameterTypes = method.getParameterTypes();
    +            String msg = "Invoking method threw the exception:" + lineSeparator;
    +            msg = msg
    +                    + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * *"
    +                    + lineSeparator;
    +            msg = msg + "[" + method.getDeclaringClass().getSimpleName() + "."
    +                    + method.getName() + "()]" + lineSeparator;
    +            msg = msg + " methodArgTypes     = {"
    +                    + createTypeViewFromTypeArray(parameterTypes) + "}"
    +                    + lineSeparator;
    +            msg = msg + " specifiedArgValues = {"
    +                    + createValueViewFromValueArray(args) + "}" + lineSeparator;
    +            msg = msg + " specifiedArgTypes  = {"
    +                    + createTypeViewFromValueArray(args) + "}" + lineSeparator;
    +            if (parameterTypes.length > 0 && args.length > 0 && args[0] != null
    +                    && !parameterTypes[0].equals(args[0].getClass())) {
    +                msg = msg + " " + lineSeparator;
    +                final String compareString = "{" + parameterTypes[0] + " -- "
    +                        + args[0].getClass() + "}";
    +                msg = msg + " *Warning! The argType is ummatched: "
    +                        + compareString + lineSeparator;
    +            }
    +            msg = msg + "* * * * * * * * * */" + lineSeparator;
    +            throw new RuntimeException(msg, e);
    +        } catch (java.lang.reflect.InvocationTargetException ex) {
    +            Throwable t = ex.getCause();
    +            if (t instanceof RuntimeException) {
    +                throw (RuntimeException) t;
    +            }
    +            if (t instanceof Error) {
    +                throw (Error) t;
    +            }
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        } catch (IllegalAccessException ex) {
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private String createValueViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(value);
    +            } else {
    +                sb.append(", ").append(value);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            final String typeName = value != null ? value.getClass()
    +                    .getSimpleName() : "null";
    +            if (sb.length() == 0) {
    +                sb.append(typeName);
    +            } else {
    +                sb.append(", ").append(typeName);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromTypeArray(Class[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Class type = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(type.getSimpleName());
    +            } else {
    +                sb.append(", ").append(type.getSimpleName());
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Info Class
    +    // ==========
    +    protected static class TopInfo {
    +        private HierarchyRequest hierarchyRequest;
    +
    +        private HierarchySourceRow sourceRow;
    +
    +        private Entity localEntity;
    +
    +        private Map alreadyRegisteredEntityMap;
    +
    +        public HierarchySourceRow getSourceRow() {
    +            return sourceRow;
    +        }
    +
    +        public void setSourceRow(HierarchySourceRow sourceRow) {
    +            this.sourceRow = sourceRow;
    +        }
    +
    +        public Entity getLocalEntity() {
    +            return localEntity;
    +        }
    +
    +        public void setLocalEntity(Entity localEntity) {
    +            this.localEntity = localEntity;
    +        }
    +
    +        public Map getAlreadyRegisteredEntityMap() {
    +            return alreadyRegisteredEntityMap;
    +        }
    +
    +        public void setAlreadyRegisteredEntityMap(
    +                Map alreadyRegisteredEntityMap) {
    +            this.alreadyRegisteredEntityMap = alreadyRegisteredEntityMap;
    +        }
    +
    +        public HierarchyRequest getHierarchyRequest() {
    +            return hierarchyRequest;
    +        }
    +
    +        public void setHierarchyRequest(
    +                HierarchyRequest hierarchyRequest) {
    +            this.hierarchyRequest = hierarchyRequest;
    +        }
    +    }
    +}
    
    Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ===================================================================
    --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	                        (rev 0)
    +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	2008-11-07 23:42:09 UTC (rev 1303)
    @@ -0,0 +1,94 @@
    +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy;
    +
    +import jp.sf.pal.addresslist.db.allcommon.Entity;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo;
    +
    +/**
    + * The basic request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + * @param  The type of local relation trace.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyBasicRequest
    +        extends HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    protected ColumnInfo _currentSourceColumnInfo;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyBasicRequest(Class localEntityType) {
    +        super(localEntityType);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Set up source.
    +     * 
    +     * @param sourceColumnInfo The column info of source. (NotNull)
    +     * @return Destination relation trace. (NotNull)
    +     */
    +    public DestinationRelationTrace src(
    +            ColumnInfo sourceColumnInfo) {
    +        this._currentSourceColumnInfo = sourceColumnInfo;
    +        final HierarchyBasicRequest outer = this;
    +        return new DestinationRelationTrace() {
    +            public LOCAL_RELATION_TRACE dst() {
    +                return outer.dst();
    +            }
    +        };
    +    }
    +
    +    /**
    +     * Set up destination.
    +     * 
    +     * @return Local relation trace. (NotNull)
    +     */
    +    public LOCAL_RELATION_TRACE dst() {
    +        final DBMeta.RelationTraceFixHandler handler = new DBMeta.RelationTraceFixHandler() {
    +            public void handleFixedTrace(DBMeta.RelationTrace relationTrace) {
    +                mapping(_currentSourceColumnInfo, relationTrace);
    +            }
    +        };
    +        final Object target = destinationDBMeta;
    +        java.lang.reflect.Method method = null;
    +        try {
    +            method = target.getClass().getMethod("createRelationTrace",
    +                    new Class[] { DBMeta.RelationTraceFixHandler.class });
    +        } catch (NoSuchMethodException e) {
    +            String msg = "Not found method: method=createRelationTrace(DBMeta.RelationTraceFixHandler)";
    +            throw new IllegalStateException(msg, e);
    +        }
    +        try {
    +            return (LOCAL_RELATION_TRACE) method.invoke(target,
    +                    new Object[] { handler });
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        } catch (java.lang.reflect.InvocationTargetException e) {
    +            throw new IllegalStateException(e.getCause());
    +        }
    +    }
    +
    +    public static interface DestinationRelationTrace {
    +        public LOCAL_RELATION_TRACE dst();
    +    }
    +}
    
    
    Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ___________________________________________________________________
    Name: svn:eol-style
       + native
    
    Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java
    ===================================================================
    --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	                        (rev 0)
    +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	2008-11-07 23:42:09 UTC (rev 1303)
    @@ -0,0 +1,347 @@
    +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import jp.sf.pal.addresslist.db.allcommon.Entity;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityColumn;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityListIterator;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo;
    +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.RelationInfo;
    +
    +/**
    + * The request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    /** The dbmeta of desination. */
    +    protected DBMeta destinationDBMeta;
    +
    +    /** The iterator of hierarychy source. */
    +    protected HierarchySourceIterator sourceIterator;
    +
    +    /** The list of request element. */
    +    protected List requestElementList = new ArrayList();
    +
    +    /** The set of already registered source column info for check. */
    +    protected java.util.Set alreadyRegisteredSourceColumnInfoSet4Check = new java.util.HashSet();
    +
    +    /** First source column info for check. */
    +    protected ColumnInfo firstSourceColumnInfo4Check;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyRequest(Class localEntityType) {
    +        LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = localEntityType.newInstance();
    +        } catch (InstantiationException e) {
    +            String msg = "localEntityType.newInstance() threw the InstantiationException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        } catch (IllegalAccessException e) {
    +            String msg = "localEntityType.newInstance() threw the IllegalAccessException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        }
    +        destinationDBMeta = localEntity.getDBMeta();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Register the list of source. 
    This method uses the default source + * iterator. + * + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + */ + public void registerSourceList(java.util.List sourceList) { + sourceIterator = createDefaultSourceIterator(sourceList); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumn The column of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumn, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(ColumnInfo sourceColumnInfo, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumnInfo, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + // ----------------------------------------------------- + // internal + // ------- + /** + * Set up element. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Set up element.
    This method uses the default source column. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(ColumnInfo sourceColumnInfo, + ColumnInfo destinationColumnInfo) { + if (alreadyRegisteredSourceColumnInfoSet4Check + .contains(sourceColumnInfo)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The source column has already been registered:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + " sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + " registeredColumnInfo=" + + alreadyRegisteredSourceColumnInfoSet4Check + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + alreadyRegisteredSourceColumnInfoSet4Check.add(sourceColumnInfo); + assertSameSourceDBMeta(sourceColumnInfo); + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + final HierarchySourceColumn sourceColumn = createDefaultSourceColumn(sourceColumnInfo); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Make relatetion by the list of relation info. + * + * @param relationInfoList The list of relation info. (NotNull) + */ + protected void addRelationToLastElement(List relationInfoList) { + if (requestElementList.isEmpty()) { + String msg = "You shuold invoke mapping() before invoking relation()!"; + throw new IllegalStateException(msg); + } + for (RelationInfo relationInfo : relationInfoList) { + final int lastIndex = requestElementList.size() - 1; + final HierarchyRequestElement element = (HierarchyRequestElement) requestElementList + .get(lastIndex); + element.relation(relationInfo); + } + } + + /** + * Assert same source dbmeta. + * + * @param sourceColumnInfo The column info of source. (NotNull) + */ + protected void assertSameSourceDBMeta(ColumnInfo sourceColumnInfo) { + if (firstSourceColumnInfo4Check == null) { + firstSourceColumnInfo4Check = sourceColumnInfo; + return; + } + final DBMeta expectedDBMeta = firstSourceColumnInfo4Check.getDBMeta(); + final DBMeta actualDBMeta = sourceColumnInfo.getDBMeta(); + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The dbmeta of sourceColumnInfo is difference from"; + msg = msg + " the one of Your First Source Column Info:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + "firstSourceColumnInfo4Check=" + + firstSourceColumnInfo4Check + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Assert same source dbmeta. + * + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void assertSameLocalDestinationDBMeta( + ColumnInfo destinationColumnInfo) { + if (!requestElementList.isEmpty()) { + final HierarchyRequestElement currentElement = currentElement(); + final List relationInfoList = currentElement + .getRelationInfoList(); + if (relationInfoList.isEmpty()) { + final DBMeta actualDBMeta = currentElement() + .getDestinationDBMeta(); + final DBMeta expectedDBMeta = destinationDBMeta; + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong destinationColumnInfo!" + + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The dbmeta of destinationColumnInfo is difference from"; + msg = msg + " the one of Your Local Entity:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "destinationColumnInfo=" + + currentElement.getDestinationColumnInfo() + + getLineSeparator(); + msg = msg + "localEntity=" + + destinationDBMeta.getEntityTypeName() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + } + } + + /** + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + * @return Default source iterator. (NotNull) + */ + protected HierarchySourceIterator createDefaultSourceIterator( + java.util.List sourceList) { + return new HierarchySourceEntityListIterator(sourceList); + } + + /** + * @param sourceColumnInfo The column info of source. (NotNull) + * @return Default source column. (NotNull) + */ + protected HierarchySourceColumn createDefaultSourceColumn( + ColumnInfo sourceColumnInfo) { + return new HierarchySourceEntityColumn(sourceColumnInfo); + } + + /** + * Get current element. + * + * @return Current element. (NotNull) + */ + protected HierarchyRequestElement currentElement() { + final int lastIndex = requestElementList.size() - 1; + return (HierarchyRequestElement) requestElementList.get(lastIndex); + } + + // ----------------------------------------------------- + // Internal + // -------- + /** + * @param relationPropertyKey Relation Property key. (NotNull) + * @return The list of request element. (NotNull) + */ + public List findPrimaryKeyElement( + String relationPropertyKey) { + final List resultList = new ArrayList(); + for (HierarchyRequestElement element : requestElementList) { + if (!relationPropertyKey.equals(element.getRelationPropertyKey())) { + continue; + } + final ColumnInfo destinationColumnInfo = element + .getDestinationColumnInfo(); + if (!destinationColumnInfo.isPrimary()) { + continue; + } + resultList.add(element); + } + if (resultList.isEmpty()) { + String msg = "Not found primary key element by relationPropertyKey in requestElementList: "; + msg = msg + " relationPropertyKey=" + relationPropertyKey + + " requestElementList=" + requestElementList; + throw new IllegalStateException(msg); + } + return resultList; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public List getRequestElementList() { + return requestElementList; + } + + public void addRequestElementList(HierarchyRequestElement element) { + this.requestElementList.add(element); + } + + public HierarchySourceIterator getSourceIterator() { + return sourceIterator; + } + + public void setSourceIterator(HierarchySourceIterator sourceIterator) { + this.sourceIterator = sourceIterator; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,132 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.RelationInfo; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class HierarchyRequestElement { + + //========================================================================== + // ========= + // Definition + // ========== + /** Top key. */ + public static final String TOP_KEY = "$top$"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** The column of source. */ + protected HierarchySourceColumn sourceColumn; + + /** The dbmeta of destination. */ + protected DBMeta destinationDBMeta; + + /** The column info of destination. */ + protected ColumnInfo destinationColumnInfo; + + /** The list of relation info. */ + protected java.util.List relationInfoList = new java.util.ArrayList(); + + /** the list of relation property name. */ + protected java.util.List relationPropertyNameList = new java.util.ArrayList(); + + /** Relation property key. Default value is TOP_KEY. */ + protected String relationPropertyKey = TOP_KEY; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + // ----------------------------------------------------- + // Internal + // -------- + /** + * Make mapping between the source column and the destination one. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + this.sourceColumn = sourceColumn; + this.destinationColumnInfo = destinationColumnInfo; + } + + /** + * Make relatetion by relation info. + * + * @param relationInfo Relation info. (NotNull) + */ + public void relation(RelationInfo relationInfo) { + addRelationInfoList(relationInfo); + } + + protected void addRelationInfoList(RelationInfo relationInfo) { + relationInfoList.add(relationInfo); + addRelationPropertyNameList(relationInfo.getRelationPropertyName()); + } + + protected void addRelationPropertyNameList(String relationPropertyName) { + relationPropertyNameList.add(relationPropertyName); + setupRelationPropertyKey(); + } + + protected void setupRelationPropertyKey() { + final StringBuilder sb = new StringBuilder(); + for (String relationPropertyName : relationPropertyNameList) { + if (sb.length() > 0) { + sb.append("_"); + } + sb.append(relationPropertyName); + } + this.relationPropertyKey = sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public HierarchySourceColumn getSourceColumnInfo() { + return sourceColumn; + } + + public void setSourceColumnInfo(HierarchySourceColumn sourceColumn) { + this.sourceColumn = sourceColumn; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public ColumnInfo getDestinationColumnInfo() { + return destinationColumnInfo; + } + + public java.util.List getRelationInfoList() { + return relationInfoList; + } + + public List getRelationPropertyNameList() { + return relationPropertyNameList; + } + + public String getRelationPropertyKey() { + return relationPropertyKey; + } + + public String toString() { + return sourceColumn + "," + destinationColumnInfo; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,10 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceColumn { + + public String getColumnName(); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceIterator { + + public boolean hasNext(); + + public HierarchySourceRow next(); + + public HierarchySourceRow current(); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,10 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceRow { + + public Object extractColumnValue(HierarchySourceColumn columnInfo); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,24 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityColumn implements HierarchySourceColumn { + + protected ColumnInfo columnInfo; + + public HierarchySourceEntityColumn(ColumnInfo columnInfo) { + this.columnInfo = columnInfo; + } + + public String getColumnName() { + return columnInfo.getColumnDbName(); + } + + public java.lang.reflect.Method findGetter() { + return columnInfo.findGetter(); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,24 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceEntityListIterator extends + HierarchySourceListIterator { + + /** + * Constructor. + * + * @param sourceRowList The list of source row. (NotNull) + */ + public HierarchySourceEntityListIterator( + java.util.List sourceRowList) { + super(sourceRowList, new HierarchySourceRowSetupper() { + public jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source) { + return new HierarchySourceEntityRow(source); + } + }); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,48 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityRow implements + jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow { + + protected Object sourceBean; + + public HierarchySourceEntityRow(Object sourceBean) { + this.sourceBean = sourceBean; + } + + public Object extractColumnValue( + jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn columnInfo) { + if (!(columnInfo instanceof HierarchySourceEntityColumn)) { + String msg = "The column info should be HierarchySourceEntityColumn! but: " + + columnInfo; + throw new IllegalStateException(msg); + } + final HierarchySourceEntityColumn sourceEntityColumn = (HierarchySourceEntityColumn) columnInfo; + return invoke(sourceEntityColumn.findGetter(), sourceBean, + new Object[] {}); + } + + private Object invoke(java.lang.reflect.Method method, Object target, + Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,40 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceListIterator + implements + jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceIterator { + + protected java.util.List sourceRowList; + + protected HierarchySourceRowSetupper sourceRowSetupper; + + protected java.util.Iterator sourceBeanListIterator; + + protected jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow currentSourceEntity; + + public HierarchySourceListIterator( + java.util.List sourceRowList, + HierarchySourceRowSetupper sourceRowSetupper) { + this.sourceRowList = sourceRowList; + this.sourceRowSetupper = sourceRowSetupper; + this.sourceBeanListIterator = sourceRowList.iterator(); + } + + public boolean hasNext() { + return this.sourceBeanListIterator.hasNext(); + } + + public jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow next() { + this.currentSourceEntity = this.sourceRowSetupper + .setup(this.sourceBeanListIterator.next()); + return this.currentSourceEntity; + } + + public jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow current() { + return this.currentSourceEntity; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,11 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public interface HierarchySourceRowSetupper { + + public jp.sf.pal.addresslist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ColumnInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ColumnInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ColumnInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,217 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.info; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta.OptimisticLockType; + +/** + * The information of column. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ColumnInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected String columnDbName; + + protected String propertyName; + + protected Class propertyType; + + protected boolean primary; + + protected Integer columnSize; + + protected Integer columnDecimalDigits; + + protected OptimisticLockType optimisticLockType; + + //========================================================================== + // ========= + // Constructor + // =========== + public ColumnInfo(DBMeta dbmeta, String columnDbName) { + this(dbmeta, columnDbName, null, null, false, null, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, columnDecimalDigits, OptimisticLockType.NONE); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) { + this.dbmeta = dbmeta; + this.columnDbName = columnDbName; + this.propertyName = propertyName; + this.propertyType = propertyType; + this.primary = primary; + this.columnSize = columnSize; + this.columnDecimalDigits = columnDecimalDigits; + this.optimisticLockType = optimisticLockType; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.propertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(dbmeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { this.propertyType }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(dbmeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public boolean isOptimisticLock() { + return isVersionNo() || isUpdateDate(); + } + + public boolean isVersionNo() { + return OptimisticLockType.VERSION_NO == optimisticLockType; + } + + public boolean isUpdateDate() { + return OptimisticLockType.UPDATE_DATE == optimisticLockType; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + public int hashCode() { + return dbmeta.hashCode() + columnDbName.hashCode(); + } + + public boolean equals(Object obj) { + if (!(obj instanceof ColumnInfo)) { + return false; + } + final ColumnInfo target = (ColumnInfo) obj; + if (this.dbmeta == null || target.getDBMeta() == null) { + return false; + } + if (!this.dbmeta.equals(target.getDBMeta())) { + return false; + } + if (this.columnDbName == null || target.getColumnDbName() == null) { + return false; + } + if (!this.columnDbName.equals(target.getColumnDbName())) { + return false; + } + return true; + } + + public String toString() { + return dbmeta.getTableDbName() + "." + columnDbName; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public String getColumnDbName() { + return this.columnDbName; + } + + public void setColumnDbName(String columnDbName) { + this.columnDbName = columnDbName; + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public Class getPropertyType() { + return this.propertyType; + } + + public void setPropertyType(Class propertyType) { + this.propertyType = propertyType; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } + + public Integer getColumnSize() { + return this.columnSize; + } + + public void setColumnSize(Integer columnSize) { + this.columnSize = columnSize; + } + + public Integer getColumnDecimalDigits() { + return this.columnDecimalDigits; + } + + public void setColumnDecimalDigits(Integer columnDecimalDigits) { + this.columnDecimalDigits = columnDecimalDigits; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ColumnInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ForeignInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ForeignInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ForeignInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,175 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.info; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of foreign information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ForeignInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String foreignPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta foreignDBMeta; + + protected java.util.Map localForeignColumnInfoMap; + + protected java.util.Map foreignLocalColumnInfoMap; + + protected int relationNo; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByForeign(String foreignColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(foreignDBMeta, + foreignColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) foreignLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:"; + msg = msg + " foreignColumnDbName=" + foreignColumnDbName + + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.foreignPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getForeignPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getForeignDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalForeignColumnInfoMap(); + } + + public boolean isReferrer() { + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getForeignPropertyName() { + return foreignPropertyName; + } + + public void setForeignPropertyName(String foreignPropertyName) { + this.foreignPropertyName = foreignPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getForeignDBMeta() { + return foreignDBMeta; + } + + public void setForeignDBMeta(DBMeta foreignDBMeta) { + this.foreignDBMeta = foreignDBMeta; + } + + public java.util.Map getLocalForeignColumnInfoMap() { + return localForeignColumnInfoMap; + } + + public void setLocalForeignColumnInfoMap( + java.util.Map localForeignColumnInfoMap) { + this.localForeignColumnInfoMap = localForeignColumnInfoMap; + final java.util.Set keySet = localForeignColumnInfoMap.keySet(); + foreignLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localForeignColumnInfoMap + .get(key); + foreignLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getForeignLocalColumnInfoMap() { + return foreignLocalColumnInfoMap; + } + + public int getRelationNo() { + return relationNo; + } + + public void setRelationNo(int relationNo) { + this.relationNo = relationNo; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ForeignInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ReferrerInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ReferrerInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ReferrerInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,181 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.info; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referrer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ReferrerInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String referrerPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta referrerDBMeta; + + protected java.util.Map localReferrerColumnInfoMap; + + protected java.util.Map referrerLocalColumnInfoMap; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByReferrer(String referrerColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(referrerDBMeta, + referrerColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) referrerLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:"; + msg = msg + " referrerColumnDbName=" + referrerColumnDbName + + " referrerLocalColumnInfoMap=" + + referrerLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + public ColumnInfo findReferrerByLocal(String localColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(localDBMeta, + localColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) localReferrerColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:"; + msg = msg + " localColumnDbName=" + localColumnDbName + + " localReferrerColumnInfoMap=" + + localReferrerColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.referrerPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getReferrerPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getReferrerDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalReferrerColumnInfoMap(); + } + + public boolean isReferrer() { + return true; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getReferrerPropertyName() { + return referrerPropertyName; + } + + public void setReferrerPropertyName(String referrerPropertyName) { + this.referrerPropertyName = referrerPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getReferrerDBMeta() { + return referrerDBMeta; + } + + public void setReferrerDBMeta(DBMeta referrerDBMeta) { + this.referrerDBMeta = referrerDBMeta; + } + + public java.util.Map getLocalReferrerColumnInfoMap() { + return localReferrerColumnInfoMap; + } + + public void setLocalReferrerColumnInfoMap( + java.util.Map localReferrerColumnInfoMap) { + this.localReferrerColumnInfoMap = localReferrerColumnInfoMap; + final java.util.Set keySet = localReferrerColumnInfoMap.keySet(); + referrerLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localReferrerColumnInfoMap + .get(key); + referrerLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getReferrerLocalColumnInfoMap() { + return referrerLocalColumnInfoMap; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/ReferrerInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/RelationInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/RelationInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/RelationInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,24 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.info; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RelationInfo { + + public String getRelationPropertyName(); + + public DBMeta getLocalDBMeta(); + + public DBMeta getTargetDBMeta(); + + public java.util.Map getLocalTargetColumnInfoMap(); + + public boolean isOneToOne(); + + public boolean isReferrer(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/RelationInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/UniqueInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/UniqueInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/UniqueInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,77 @@ +package jp.sf.pal.addresslist.db.allcommon.dbmeta.info; + +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of unique info. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UniqueInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected java.util.List uniqueColumnList = new java.util.ArrayList(); + + protected boolean primary; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public boolean containsColumn(String columnName) { + for (final java.util.Iterator ite = uniqueColumnList.iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (columnInfo.getColumnDbName().equals(columnName)) { + return true; + } + } + return false; + } + + public boolean containsColumn(ColumnInfo column) { + return containsColumn(column.getColumnDbName()); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public java.util.List getUniqueColumnList() { + return uniqueColumnList; + } + + public void addUniqueColumnList(ColumnInfo uniqueColumn) { + this.uniqueColumnList.add(uniqueColumn); + } + + public ColumnInfo getFirstColumn() { + return (ColumnInfo) this.uniqueColumnList.get(0); + } + + public boolean isTwoOrMore() { + return this.uniqueColumnList.size() > 1; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/dbmeta/info/UniqueInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the entity has already been updated by other thread in + * batch update. + * + * @author DBFlute(AutoGenerator) + */ +public class BatchEntityAlreadyUpdatedException extends + EntityAlreadyUpdatedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected Integer _batchUpdateCount; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows(Update count per One entity). + * @param batchUpdateCount Batch update count(Total). + */ + public BatchEntityAlreadyUpdatedException(Object bean, int rows, + Integer batchUpdateCount) { + super(bean, rows); + _batchUpdateCount = batchUpdateCount; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Integer getBatchUpdateCount() { + return _batchUpdateCount; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,34 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the property on bind variable comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public BindVariableCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableParameterNullValueException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableParameterNullValueException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableParameterNullValueException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the value of bind variable is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/BindVariableParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/DangerousResultSizeException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/DangerousResultSizeException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/DangerousResultSizeException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,36 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the result size is dangerous. + * + * @author DBFlute(AutoGenerator) + */ +public class DangerousResultSizeException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** + * Constructor. + * + * @param msg Exception message. + * @param safetyMaxResultSize Safety max result size. + * @param selectedCount Selected count. + */ + public DangerousResultSizeException(String msg, int safetyMaxResultSize) { + super(msg); + this._safetyMaxResultSize = safetyMaxResultSize; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/DangerousResultSizeException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,34 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the property on embedded value comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the value of embedded value is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EndCommentNotFoundException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EndCommentNotFoundException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EndCommentNotFoundException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the end comment is not found about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EndCommentNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EndCommentNotFoundException(String msg) { + super(msg); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EndCommentNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyDeletedException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyDeletedException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyDeletedException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,22 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the entity has already been deleted by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyDeletedException extends + RecordHasAlreadyBeenDeletedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityAlreadyDeletedException(String msg) { + super(msg); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyExistsException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyExistsException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyExistsException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,25 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the entity already exists on the database. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyExistsException extends SQLFailureException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public EntityAlreadyExistsException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyExistsException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyUpdatedException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyUpdatedException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyUpdatedException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,38 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; + +/** + * The exception of when the entity has already been updated by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyUpdatedException extends + NotSingleRowUpdatedRuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows. + */ + public EntityAlreadyUpdatedException(Object bean, int rows) { + super(bean, rows); + } + + /** + * Constructor. + * + * @param e NotSingleRowUpdatedRuntimeException. (NotNull) + */ + public EntityAlreadyUpdatedException(NotSingleRowUpdatedRuntimeException e) { + super(e.getBean(), e.getRows()); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityDuplicatedException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityDuplicatedException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityDuplicatedException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,31 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the entity has been duplicated. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityDuplicatedException extends RecordHasOverlappedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityDuplicatedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public EntityDuplicatedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/EntityDuplicatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentConditionNotFoundException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentConditionNotFoundException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentConditionNotFoundException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,23 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the condition of IF comment is not found about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentConditionNotFoundException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentConditionNotFoundException(String msg) { + super(msg); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentConditionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentNotBooleanResultException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentNotBooleanResultException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentNotBooleanResultException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,33 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the result of IF comment is not boolean about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentNotBooleanResultException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentNotBooleanResultException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentNotBooleanResultException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentNotBooleanResultException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentWrongExpressionException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentWrongExpressionException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentWrongExpressionException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,31 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the IF comment has a wrong expression about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentWrongExpressionException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentWrongExpressionException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentWrongExpressionException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/IfCommentWrongExpressionException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/OutsideSqlNotFoundException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/OutsideSqlNotFoundException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/OutsideSqlNotFoundException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,31 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the outside-sql is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public OutsideSqlNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public OutsideSqlNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/OutsideSqlNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,22 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception when the record has already been deleted (by other thread).
    This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasAlreadyBeenDeletedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasAlreadyBeenDeletedException(String msg) { + super(msg); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasOverlappedException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasOverlappedException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasOverlappedException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,31 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception when the record has overlapped. This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasOverlappedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasOverlappedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RecordHasOverlappedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RecordHasOverlappedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RequiredOptionNotFoundException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RequiredOptionNotFoundException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RequiredOptionNotFoundException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,31 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +/** + * The exception of when the required option is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class RequiredOptionNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RequiredOptionNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RequiredOptionNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/RequiredOptionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/SQLFailureException.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/SQLFailureException.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/SQLFailureException.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,31 @@ +package jp.sf.pal.addresslist.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the SQL failed to execute. + * + * @author DBFlute(AutoGenerator) + */ +public class SQLFailureException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + protected SQLException sqlEx; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public SQLFailureException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } + + public SQLException getSQLException() { + return sqlEx; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/exception/SQLFailureException.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListString.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListString.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListString.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,105 @@ +package jp.sf.pal.addresslist.db.allcommon.helper; + +import java.util.List; +import java.util.Map; + +/** + * MapList-String. + *

    + * + *

    + * # Interface that offers generation of map and list from the following character strings (map list string). 
    + * # 
    + * #   ex) map:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #   ex) list:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public interface MapListString { + + /** Default of map-mark. */ + public static final String DEFAULT_MAP_MARK = "map:"; + + /** Default of list-mark. */ + public static final String DEFAULT_LIST_MARK = "list:"; + + /** Default of start-brace. */ + public static final String DEFAULT_START_BRACE = "{"; + + /** Default of end-brace. */ + public static final String DEFAULT_END_BRACE = "}"; + + /** Default of delimter. */ + public static final String DEFAULT_DELIMITER = ";"; + + /** Default of equal. */ + public static final String DEFAULT_EQUAL = "="; + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map-mark. (NotNull) + */ + public void setMapMark(String mapMark); + + /** + * Set list-mark. + * + * @param listMark List-mark. (NotNull) + */ + public void setListMark(String listMark); + + /** + * Set start brace. + * + * @param startBrace Start brace. (NotNull) + */ + public void setStartBrace(String startBrace); + + /** + * Set end brace. + * + * @param endBrace End brace. (NotNull) + */ + public void setEndBrace(String endBrace); + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public void setDelimiter(String delimiter); + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal); + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public Map generateMap(String mapString); + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public List generateList(String listString); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListString.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListStringImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListStringImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListStringImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1079 @@ +package jp.sf.pal.addresslist.db.allcommon.helper; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * The implementation of MapList-String. + * + * @author DBFlute(AutoGenerator) + */ +public class MapListStringImpl implements MapListString { + + /** Line separator. */ + public static final String NEW_LINE = System.getProperty("line.separator"); + + /** Map-mark. */ + protected String _mapMark; + + /** List-mark. */ + protected String _listMark; + + /** Start-brace. */ + protected String _startBrace; + + /** End-brace. */ + protected String _endBrace; + + /** Delimiter. */ + protected String _delimiter; + + /** Equal. */ + protected String _equal; + + /** Top string. */ + protected String _topString; + + /** Remainder string. */ + protected String _remainderString; + + /** + * Constructor. + */ + public MapListStringImpl() { + _mapMark = DEFAULT_MAP_MARK; + _listMark = DEFAULT_LIST_MARK; + _startBrace = DEFAULT_START_BRACE; + _endBrace = DEFAULT_END_BRACE; + _delimiter = DEFAULT_DELIMITER; + _equal = DEFAULT_EQUAL; + } + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map mark. (NotNull) + */ + public void setMapMark(String mapMark) { + _mapMark = mapMark; + } + + /** + * Set list-mark. + * + * @param listMark List mark. (NotNull) + */ + public void setListMark(String listMark) { + _listMark = listMark; + } + + /** + * Set start-brace. + * + * @param startBrace Start-brace. (NotNull) + */ + public synchronized void setStartBrace(String startBrace) { + _startBrace = startBrace; + } + + /** + * Set end-brace. + * + * @param endBrace End-brace. (NotNull) + */ + public synchronized void setEndBrace(String endBrace) { + _endBrace = endBrace; + } + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public synchronized void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal) { + _equal = equal; + } + + //************************************************************************** + // ************************** + // Main Method + // *********** + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. {Implement} + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public synchronized Map generateMap(String mapString) { + assertMapString(mapString); + + _topString = mapString; + _remainderString = mapString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixMapMarkAndStartBrace(); + + final Map generatedMap = newStringObjectMap(); + parseRemainderMapString(generatedMap); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # generatedMap --> " + + generatedMap; + throw new IllegalStateException(msg); + } + return generatedMap; + } + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public synchronized List generateList(String listString) { + assertListString(listString); + + _topString = listString; + _remainderString = listString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixListMarkAndStartBrace(); + + final List generatedList = newObjectList(); + parseRemainderListString(generatedList); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # generatedList --> " + + generatedList; + throw new IllegalStateException(msg); + } + return generatedList; + } + + //========================================================================== + // ================ + // Parse + // ===== + /** + * Parse remainder map string. + * + * @param currentMap current map. + */ + protected void parseRemainderMapString(final Map currentMap) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the key of the map. + // *** + + final int equalIndex = _remainderString.indexOf(_equal); + assertEqualIndex(_remainderString, equalIndex, _topString, + currentMap); + final String mapKey = _remainderString.substring(0, equalIndex) + .trim(); + removePrefixTargetIndexPlus(equalIndex, _equal.length()); + removeBothSideSpaceAndTabAndNewLine(); + + // *** Now, _remainderString should starts with the value of the + // map. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBracekIndex(_remainderString, endBraceIndex, _topString, + currentMap); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1,key2=value2} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String mapValue = _remainderString.substring(0, + delimiterIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Because the map element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1}, key2=value2} + final String mapValue = _remainderString + .substring(0, endBraceIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Analyzing map is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Parse remainder list string. + * + * @param currentList current list. + */ + protected void parseRemainderListString(final List currentList) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the value of the + // list. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBraceIndex(_remainderString, endBraceIndex, _topString, + currentList); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1,value2,value3} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String listValue = _remainderString.substring(0, + delimiterIndex); + currentList.add(filterMapListValue(listValue)); + + // Because the list element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1}, value2, } + final String listValue = _remainderString.substring(0, + endBraceIndex); + currentList.add(filterMapListValue(listValue)); + + // Analyzing list is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Initialize at loop beginning. + * + * @return Is return? + */ + protected boolean initializeAtLoopBeginning() { + // Remove prefix delimiter. (Result string is always trimmed.) + removePrefixAllDelimiter(); + + // If the remainder string is empty-string, Analyzing is over! + if (_remainderString.equals("")) { + return true; + } + + // If the remainder string starts with end-brace, Analyzing current map + // is over! + // And then remove the end-brace. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close after parse nest map list. + * + * @return Is return? + */ + protected boolean closingAfterParseNestMapList() { + // If the remainder string starts with end-brace, remove it and return + // true. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close by end-brace index. + * + * @param endBraceIndex End-brace index. + */ + protected void closingByEndBraceIndex(int endBraceIndex) { + // Remove the value that was finished analyzing and end-brace. + _remainderString = _remainderString.substring(endBraceIndex); + removePrefixEndBrace(); + } + + //************************************************************************** + // ************************** + // StateFul Method + // *************** + + //========================================================================== + // ================ + // Remove + // ====== + /** + * Remove prefix map-mark and start-brace. + */ + protected void removePrefixMapMarkAndStartBrace() { + removePrefix(_mapMark + _startBrace); + } + + /** + * Remove prefix list-mark and start-brace. + */ + protected void removePrefixListMarkAndStartBrace() { + removePrefix(_listMark + _startBrace); + } + + /** + * Remove prefix delimiter. + */ + protected void removePrefixDelimiter() { + removePrefix(_delimiter); + } + + /** + * Remove prefix end-brace. + */ + protected void removePrefixEndBrace() { + removePrefix(_endBrace); + } + + /** + * Remove prefix. + * + * @param prefixString Prefix string. (NotNull) + */ + protected void removePrefix(String prefixString) { + if (_remainderString == null) { + String msg = "Argument[remainderString] must not be null: " + + _remainderString; + throw new IllegalArgumentException(msg); + } + if (prefixString == null) { + String msg = "Argument[prefixString] must not be null: " + + prefixString; + throw new IllegalArgumentException(msg); + } + + removeBothSideSpaceAndTabAndNewLine(); + + if (_remainderString.length() < prefixString.length()) { + String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString=" + + prefixString; + throw new IllegalArgumentException(msg); + } + if (!_remainderString.startsWith(prefixString)) { + String msg = "Argument[remainderString] must start with Argument[prefixString:]"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString --> " + + prefixString; + throw new IllegalArgumentException(msg); + } + + _remainderString = _remainderString.substring(prefixString.length()); + removeBothSideSpaceAndTabAndNewLine(); + } + + /** + * Remove prefix and delimiter. + */ + protected void removePrefixAllDelimiter() { + removeBothSideSpaceAndTabAndNewLine(); + + while (true) { + if (!isStartsWithDelimiter(_remainderString)) { + break; + } + + if (isStartsWithDelimiter(_remainderString)) { + removePrefixDelimiter(); + removeBothSideSpaceAndTabAndNewLine(); + } + } + } + + /** + * Remove both side space and tab and new-line. + */ + protected void removeBothSideSpaceAndTabAndNewLine() { + _remainderString = _remainderString.trim(); + } + + /** + * Remove prefix (target index plus one). + * + * @param index Index. + * @param plusCount Plus count. + */ + protected void removePrefixTargetIndexPlus(int index, int plusCount) { + _remainderString = _remainderString.substring(index + plusCount); + } + + //************************************************************************** + // ************************** + // StateLess Method + // **************** + + //========================================================================== + // ================ + // Assert + // ====== + /** + * Assert map-string. + * + * @param mapString Map-string. (NotNull) + */ + protected void assertMapString(String mapString) { + if (mapString == null) { + String msg = "Argument[mapString] must not be null: "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + mapString = mapString.trim(); + if (!isStartsWithMapPrefix(mapString)) { + String msg = "Argument[mapString] must start with '" + _mapMark + + _startBrace + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + if (!isEndsWithEndBrace(mapString)) { + String msg = "Argument[mapString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + + final int startBraceCount = getDelimiterCount(mapString, _startBrace); + final int endBraceCount = getDelimiterCount(mapString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert list-string. + * + * @param listString List-string. (NotNull) + */ + protected void assertListString(String listString) { + if (listString == null) { + String msg = "Argument[listString] must not be null: "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + listString = listString.trim(); + if (!isStartsWithListPrefix(listString)) { + String msg = "Argument[listString] must start with '" + _mapMark + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + if (!isEndsWithEndBrace(listString)) { + String msg = "Argument[listString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + + final int startBraceCount = getDelimiterCount(listString, _startBrace); + final int endBraceCount = getDelimiterCount(listString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert equal-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param equalIndex Equal-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEqualIndex(String remainderMapString, int equalIndex, + String mapString4Log, Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (equalIndex < 0) { + String msg = "Argument[equalIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < equalIndex) { + String msg = "Argument[remainderMapString] length must be larger than equalIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + equalIndex, equalIndex + _equal.length()); + if (!expectedAsEndMark.equals(_equal)) { + String msg = "Argument[remainderMapString] must have '" + _equal + + "' at Argument[equalIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEndBracekIndex(String remainderMapString, + int endBraceIndex, String mapString4Log, + Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> =" + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < endBraceIndex) { + String msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndMark.equals(_endBrace)) { + String msg = "Argument[remainderMapString] must have '" + _endBrace + + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderListString Remainder list-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param listString4Log List-string for log. (NotNull) + * @param currentList4Log Current-list for log. (NotNull) + */ + protected void assertEndBraceIndex(String remainderListString, + int endBraceIndex, String listString4Log, List currentList4Log) { + if (remainderListString == null) { + String msg = "Argument[remainderListString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderListString.length() < endBraceIndex) { + String msg = "Argument[remainderListString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndBrace = remainderListString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndBrace.equals(_endBrace)) { + String msg = "Argument[remainderListString] must have '" + + _endBrace + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + + expectedAsEndBrace; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ================ + // Filter + // ====== + /** + * Filter map or list value. + *

    + * + *

    +     * # The value is trimmed.
    +     * # If the value is null, this returns null.
    +     * # If the value is 'null', this returns null.
    +     * # If the trimmed value is empty string, this returns null.
    +     * 
    + * + * @param value value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String filterMapListValue(String value) { + if (value == null) { + return null; + } + value = value.trim(); + return (("".equals(value) || "null".equals(value)) ? null : value); + } + + //========================================================================== + // ================ + // Judgement + // ========= + /** + * Does it start with map-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithMapPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_mapMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with list-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithListPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_listMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with delimiter? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithDelimiter(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_delimiter)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it end with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isEndsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.endsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ================ + // Other + // ===== + /** + * Setup nest map. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(Map currentMap, + String mapKey) { + final Map nestMap = newStringObjectMap(); + currentMap.put(mapKey, nestMap); + return nestMap; + } + + /** + * Setup nest map. + * + * @param currentList Current-list. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(List currentList) { + final Map nestMap = newStringObjectMap(); + currentList.add(nestMap); + return nestMap; + } + + /** + * Setup nest list. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(Map currentMap, + String mapKey) { + final List nestList = newObjectList(); + currentMap.put(mapKey, nestList); + return nestList; + } + + /** + * Setup nest list. + * + * @param currentList Current-list. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(List currentList) { + final List nestList = newObjectList(); + currentList.add(nestList); + return nestList; + } + + /** + * New string-object-map. + * + * @return String-object-map. (NotNull) + */ + protected Map newStringObjectMap() { + return new LinkedHashMap(); + } + + /** + * New object-list. + * + * @return String-object-list. (NotNull) + */ + protected List newObjectList() { + return new ArrayList(); + } + + /** + * Get new-line and indent. + * + * @return New-line and indent. (NotNull) + */ + protected String getNewLineAndIndent() { + return NEW_LINE + " "; + } + + /** + * Get count that target string exist in the base string. + * + * @param targetString Target string. + * @param delimiter Delimiter + * @return Delimiter count that _remainderString contains. + */ + protected int getDelimiterCount(String targetString, String delimiter) { + int result = 0; + for (int i = 0;;) { + if (targetString.indexOf(delimiter, i) != -1) { + result++; + i = targetString.indexOf(delimiter, i) + 1; + } else { + break; + } + } + if (result == 0) { + result = -1; + } + return result; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapListStringImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilder.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilder.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilder.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,78 @@ +package jp.sf.pal.addresslist.db.allcommon.helper; + +/** + * The interface of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapStringBuilder { + + //========================================================================== + // =========== + // Setter + // ====== + public void setColumnNames(String[] columnNames); + + public void setColumnNameList(java.util.List columnNameList); + + public void setMsMapMark(String value); + + public void setMsStartBrace(String value); + + public void setMsEndBrace(String value); + + public void setMsDelimiter(String value); + + public void setMsEqual(String value); + + //========================================================================== + // =========== + // Main + // ==== + public String buildByDelimiter(String values, String delimiter); + + public String buildFromList(java.util.List valueList); + + //========================================================================== + // =========== + // Exception Static Class + // ====================== + public static class DifferentDelimiterCountException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //====================================================================== + // =============== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + //====================================================================== + // =============== + // Constructor + // =========== + public DifferentDelimiterCountException(String msg, + java.util.List columnNameList, + java.util.List valueList) { + super(msg); + _columnNameList = columnNameList; + _valueList = valueList; + } + + //====================================================================== + // =============== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilderImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilderImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilderImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,183 @@ +package jp.sf.pal.addresslist.db.allcommon.helper; + +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * The implementation of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public class MapStringBuilderImpl implements MapStringBuilder { + + protected java.util.List _columnNameList; + + protected String _msMapMark; + + protected String _msStartBrace; + + protected String _msEndBrace; + + protected String _msDelimiter; + + protected String _msEqual; + + protected boolean _trimDoubleQuotation; + + public void setColumnNames(String[] columnNames) { + _columnNameList = java.util.Arrays.asList(columnNames); + } + + public void setColumnNameList(java.util.List columnNameList) { + _columnNameList = columnNameList; + } + + public void setMsMapMark(String value) { + _msMapMark = value; + } + + public void setMsStartBrace(String value) { + _msStartBrace = value; + } + + public void setMsEndBrace(String value) { + _msEndBrace = value; + } + + public void setMsDelimiter(String value) { + _msDelimiter = value; + } + + public void setMsEqual(String value) { + _msEqual = value; + } + + public void trimDoubleQuotation() { + _trimDoubleQuotation = true; + } + + public String buildByDelimiter(String values, String delimiter) { + if (values == null) { + String msg = "The argument[values] should not be null."; + throw new IllegalArgumentException(msg); + } + if (delimiter == null) { + String msg = "The argument[delimiter] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + + final java.util.List valueList = tokenize(values, delimiter); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + public String buildFromList(java.util.List valueList) { + if (valueList == null) { + String msg = "The argument[valueList] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + protected java.util.List tokenize(String value, String delimiter) { + final LineToken lineToken = new LineTokenImpl(); + final LineTokenizingOption lineTokenizingOption = new LineTokenizingOption(); + lineTokenizingOption.setDelimiter(delimiter); + if (_trimDoubleQuotation) { + lineTokenizingOption.trimDoubleQuotation(); + } + return lineToken.tokenize(value, lineTokenizingOption); + } + + protected void assertStringComponent() { + if (_columnNameList == null) { + String msg = "The columnNameList should not be null."; + throw new IllegalStateException(msg); + } + if (_columnNameList.isEmpty()) { + String msg = "The columnNameList should not be empty."; + throw new IllegalStateException(msg); + } + if (_msMapMark == null) { + String msg = "The msMapMark should not be null."; + throw new IllegalStateException(msg); + } + if (_msStartBrace == null) { + String msg = "The msStartBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msEndBrace == null) { + String msg = "The msEndBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msDelimiter == null) { + String msg = "The msDelimiter should not be null."; + throw new IllegalStateException(msg); + } + if (_msEqual == null) { + String msg = "The msEqual should not be null."; + throw new IllegalStateException(msg); + } + } + + protected void assertColumnValueList(java.util.List columnNameList, + java.util.List valueList) { + if (columnNameList.size() != valueList.size()) { + String msg = "The length of columnNameList and valueList are difference. (" + + columnNameList.size() + ", " + valueList.size() + ")"; + msg = msg + " columnNameList=" + columnNameList; + msg = msg + " valueList=" + valueList; + throw new DifferentDelimiterCountException(msg, columnNameList, + valueList); + } + } + + protected static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + final StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/MapStringBuilderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/GeneralCharacter.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/GeneralCharacter.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/GeneralCharacter.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.character; + +/** + * The interface of general character. + * + * @author DBFlute(AutoGenerator) + */ +public interface GeneralCharacter { + + public String toSingleByteAlphabet(String s); + + public String toSingleByteNumber(String s); + + public String toSingleByteAlphabetNumber(String target); + + public String toSingleByteAlphabetNumberMark(String target); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/GeneralCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/JapaneseCharacter.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/JapaneseCharacter.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/JapaneseCharacter.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,11 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.character; + +/** + * The interface of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public interface JapaneseCharacter { + + public String toDoubleByteKatakana(String target); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/JapaneseCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,101 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.character.impl; + +import jp.sf.pal.addresslist.db.allcommon.helper.character.GeneralCharacter; + +/** + * The implementation of general character. + * + * @author DBFlute(AutoGenerator) + */ +public class GeneralCharacterImpl implements GeneralCharacter { + + public String toSingleByteAlphabet(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumberMark(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(target.length()); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff01 && currentChar <= 0xff5e) { + sb.append(toSingleByteCharacter(currentChar)); + + // It needs to append more mark... + } else if (currentChar == '\u2019' || currentChar == '\u2018' + || currentChar == '\u2032') { + sb.append('\''); + } else if (currentChar == '\u201d' || currentChar == '\u201c' + || currentChar == '\u2033') { + sb.append('\"'); + } else if (currentChar == '\uffe5') { + sb.append('\\'); + } else if (currentChar == '\u2010') { + sb.append('-'); + } else if (currentChar == '\uff5e') { + sb.append('~'); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + protected char toSingleByteCharacter(final char currentChar) { + return (char) (currentChar - 0xfee0); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,96 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.character.impl; + +import jp.sf.pal.addresslist.db.allcommon.helper.character.JapaneseCharacter; + +/** + * The implementation of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseCharacterImpl implements JapaneseCharacter { + + // Double-byte Katakana + protected static final String TABLE_ZENKANA = "\u3002\u300c\u300d\u3001\u30fb\u30f2\u30a1\u30a3\u30a5" + + "\u30a7\u30a9\u30e3\u30e5\u30e7\u30c3\u30fc\u30a2\u30a4" + + "\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5" + + "\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8" + + "\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8" + + "\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f3\u309b\u309c"; + + // (uff71 - uff9d) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA = "\u30a2\u30a4\u30f4\u30a8\u30aa" + + "\u30ac\u30ae\u30b0\u30b2\u30b4" + + "\u30b6\u30b8\u30ba\u30bc\u30be" + + "\u30c0\u30c2\u30c5\u30c7\u30c9" + + "\u30ca\u30cb\u30cc\u30cd\u30ce" + + "\u30d0\u30d3\u30d6\u30d9\u30dc" + + "\u30de\u30df\u30e0\u30e1\u30e2" + + "\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed" + "\u30ef\u30f3"; + + // (uff66 - uff6f) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA = "\u30fa\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7"; + + // (u30cf - u30dd) + protected static final String DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA = "\u30d1\u30d4\u30d7\u30da\u30dd"; + + public String toDoubleByteKatakana(String target) { + if (target == null) { + return target; + } + + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + final char nextChar; + if (i < target.length() - 1) { + nextChar = target.charAt(i + 1); + } else { + nextChar = ' '; + } + + if (isVoicedSoundKatakana(currentChar, nextChar)) { + if (currentChar >= 0xff66 && currentChar <= 0xff6f) {// Voiced + // sound + // special + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA + .charAt(currentChar - 0xff66)); + i++; + } else if (currentChar >= 0xff71 && currentChar <= 0xff9d) {// Voiced + // sound + // normal + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA + .charAt(currentChar - 0xff71)); + i++; + } + + } else if (isSemiVoicedSoundKatakana(currentChar, nextChar)) { + sb.append(DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA + .charAt(currentChar - 0xff8a)); + i++; + } else if (currentChar != 0xff9e && currentChar != 0xff9f) { + if (currentChar >= 0xff61 && currentChar <= 0xff9f) { + sb.append(TABLE_ZENKANA.charAt(currentChar - 0xff61)); + } else { + sb.append(currentChar); + } + } + } + return sb.toString(); + } + + protected boolean isVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return ((currentChar >= 0xff66 && currentChar <= 0xff6f) || (currentChar >= 0xff71 && (currentChar <= 0xff9d))) + && (nextChar == 0xff9e); + } + + protected boolean isSemiVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return (currentChar >= 0xff8a && currentChar <= 0xff8e) + && (nextChar == 0xff9f); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrder.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrder.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrder.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,20 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface AccordingToOrder { + + /** + * Order the unordered list. + * + * @param option The option of according-to-order. (NotNull) + * @param unorderedList The unordered list. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + void order(List unorderedList, + AccordingToOrderOption option); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrder.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.collection.order; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public interface AccordingToOrderIdExtractor { + + /** + * Extract ID from the element instance. + * + * @param element Element instance. (NotNull) + * @return Extracted ID. (NotNull) + */ + ID_TYPE extractId(ELEMENT_TYPE element); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,50 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public class AccordingToOrderOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _orderedUniqueIdList; + + protected AccordingToOrderIdExtractor _idExtractor; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void setupOrderedResource(List orderedUniqueIdList, + AccordingToOrderIdExtractor idExtractor) { + setOrderedUniqueIdList(orderedUniqueIdList); + setIdExtractor(idExtractor); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public List getOrderedUniqueIdList() { + return _orderedUniqueIdList; + } + + public void setOrderedUniqueIdList(List orderedUniqueIdList) { + this._orderedUniqueIdList = orderedUniqueIdList; + } + + public AccordingToOrderIdExtractor getIdExtractor() { + return _idExtractor; + } + + public void setIdExtractor( + AccordingToOrderIdExtractor idExtractor) { + _idExtractor = idExtractor; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/AccordingToOrderOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,103 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.collection.order.impl; + +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.helper.collection.order.AccordingToOrder; +import jp.sf.pal.addresslist.db.allcommon.helper.collection.order.AccordingToOrderIdExtractor; +import jp.sf.pal.addresslist.db.allcommon.helper.collection.order.AccordingToOrderOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class AccordingToOrderImpl implements AccordingToOrder { + + //========================================================================== + // ========= + // Main + // ==== + /** + * The implementation. + * + * @param unorderedList The unordered list. (NotNull) + * @param option The option of according-to-order. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + public void order( + final List unorderedList, + final AccordingToOrderOption option) { + assertObjectNotNull("unorderedList", unorderedList); + if (unorderedList.isEmpty()) { + return; + } + assertObjectNotNull("option", option); + final List orderedUniqueIdList = option + .getOrderedUniqueIdList(); + assertObjectNotNull("option.getOrderedUniqueIdList()", + orderedUniqueIdList); + if (orderedUniqueIdList.isEmpty()) { + return; + } + final AccordingToOrderIdExtractor idExtractor = option + .getIdExtractor(); + assertObjectNotNull("option.getIdExtractor()", idExtractor); + + final Map idIndexMap = new LinkedHashMap(); + int index = 0; + for (ID_TYPE id : orderedUniqueIdList) { + if (idIndexMap.containsKey(id)) { + String msg = "The id was duplicated: id=" + id + + " orderedUniqueIdList=" + orderedUniqueIdList; + throw new IllegalStateException(msg); + } + idIndexMap.put(id, index); + ++index; + } + final Comparator comp = new Comparator() { + public int compare(ELEMENT_TYPE o1, ELEMENT_TYPE o2) { + final ID_TYPE id1 = idExtractor.extractId(o1); + final ID_TYPE id2 = idExtractor.extractId(o2); + assertObjectNotNull("id1 of " + o1, id1); + assertObjectNotNull("id2 of " + o2, id2); + final Integer index1 = idIndexMap.get(id1); + final Integer index2 = idIndexMap.get(id2); + if (index1 != null && index2 != null) { + return index1.compareTo(index2); + } + if (index1 == null && index2 == null) { + return 0; + } + return index1 == null ? 1 : -1; + } + }; + Collections.sort(unorderedList, comp); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractingResource { + + public boolean isTargetElement(String className, String methodName); + + public String filterSimpleClassName(String simpleClassName); + + public boolean isUseAdditionalInfo(); + + public int getStartIndex(); + + public int getLoopSize(); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,16 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractor { + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameResult.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameResult.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameResult.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,86 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameResult { + + //========================================================================== + // ================ + // Attribute + // ========= + protected String _simpleClassName; + + protected String _methodName; + + protected String _invokeName; + + protected int _foundIndex; + + protected int _foundFirstIndex; + + //========================================================================== + // ================ + // Manipulation + // ============ + public int getNextStartIndex() { + return _foundIndex + 1; + } + + public void beEmptyResult() { + _simpleClassName = null; + _invokeName = ""; // As Default + } + + //========================================================================== + // ================ + // Determination + // ============= + public boolean isEmptyResult() { + return _simpleClassName == null; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public String getSimpleClassName() { + return _simpleClassName; + } + + public void setSimpleClassName(String simpleClassName) { + _simpleClassName = simpleClassName; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + _methodName = methodName; + } + + public String getInvokeName() { + return _invokeName; + } + + public void setInvokeName(String invokeName) { + _invokeName = invokeName; + } + + public int getFoundIndex() { + return _foundIndex; + } + + public void setFoundIndex(int foundIndex) { + _foundIndex = foundIndex; + } + + public int getFoundFirstIndex() { + return _foundFirstIndex; + } + + public void setFoundFirstIndex(int foundFirstIndex) { + _foundFirstIndex = foundFirstIndex; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/InvokeNameResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,103 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.impl; + +import jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.InvokeNameExtractor; +import jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.InvokeNameResult; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameExtractorImpl implements InvokeNameExtractor { + + //========================================================================== + // ================ + // Attribute + // ========= + protected StackTraceElement[] _stackTrace; + + //========================================================================== + // ================ + // Main + // ==== + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return Invoke name. (NotNull: If not found, returns empty string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource) { + if (_stackTrace == null) { + String msg = "The attribute 'stackTrace' should not be null: resource=" + + resource; + throw new IllegalStateException(msg); + } + String targetSimpleClassName = null; + String targetMethodName = null; + int lineNumber = 0; + int foundIndex = -1; // The minus one means 'Not Found'. + int foundFirstIndex = -1; // The minus one means 'Not Found'. + boolean onTarget = false; + for (int i = resource.getStartIndex(); i < _stackTrace.length; i++) { + final StackTraceElement element = _stackTrace[i]; + if (i > resource.getStartIndex() + resource.getLoopSize()) { + break; + } + final String className = element.getClassName(); + if (className.startsWith("sun.") || className.startsWith("java.")) { + if (onTarget) { + break; + } + continue; + } + final String methodName = element.getMethodName(); + if (resource.isTargetElement(className, methodName)) { + if (methodName.equals("invoke")) { + continue; + } + targetSimpleClassName = className.substring(className + .lastIndexOf(".") + 1); + targetMethodName = methodName; + if (resource.isUseAdditionalInfo()) { + lineNumber = element.getLineNumber(); + } + foundIndex = i; + if (foundFirstIndex == -1) { + foundFirstIndex = i; + } + onTarget = true; + continue; + } + if (onTarget) { + break; + } + } + final InvokeNameResult result = new InvokeNameResult(); + if (targetSimpleClassName == null) { + result.beEmptyResult(); // Not Found! It sets empty result. + return result; + } + final String filteredClassName = resource + .filterSimpleClassName(targetSimpleClassName); + result.setSimpleClassName(resource + .filterSimpleClassName(targetSimpleClassName)); + result.setMethodName(targetMethodName); + if (lineNumber > 0) { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "():" + lineNumber + " --> "); + } else { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "() --> "); + } + result.setFoundIndex(foundIndex); + result.setFoundFirstIndex(foundFirstIndex); + return result; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public void setStackTrace(StackTraceElement[] stackTrace) { + _stackTrace = stackTrace; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingCallback.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingCallback.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingCallback.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingCallback { + + /** + * Get file-making header information. + * + *
    +     * You should return your row resource for file-making.
    +     * It continues invoking until this method returns null.
    +     * 
    + * + * @return File-making header information. (Nullable) + */ + public FileMakingRowResource getRowResource(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,23 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingHeaderInfo { + + protected List columnNameList = new java.util.ArrayList(); + + public List getColumnNameList() { + return columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this.columnNameList = columnNameList; + } + + public boolean isEmpty() { + return this.columnNameList.isEmpty(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,107 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Encoding. (Required) */ + protected String _encoding; + + /** Delimiter. (Required) */ + protected String _delimiter; + + /** Line separator. (NotRequired) */ + protected String _lineSeparator; + + /** Good bye double quotation. (NotRequired) */ + protected boolean _goodByeDoubleQuotation; + + /** File-making header information. (NotRequired) */ + protected FileMakingHeaderInfo _fileMakingHeaderInfo; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileMakingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileMakingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileMakingOption separateCrLf() { + _lineSeparator = "\r\n"; + return this; + } + + public FileMakingOption separateLf() { + _lineSeparator = "\n"; + return this; + } + + public FileMakingOption goodByeDoubleQuotation() { + _goodByeDoubleQuotation = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getLineSeparator() { + return _lineSeparator; + } + + public void setLineSeparator(String lineSeparator) { + _lineSeparator = lineSeparator; + } + + public boolean isGoodByeDoubleQuotation() { + return _goodByeDoubleQuotation; + } + + public FileMakingHeaderInfo getFileMakingHeaderInfo() { + return _fileMakingHeaderInfo; + } + + public void setFileMakingHeaderInfo( + FileMakingHeaderInfo fileMakingHeaderInfo) { + _fileMakingHeaderInfo = fileMakingHeaderInfo; + } + +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingRowResource.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingRowResource.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingRowResource.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,47 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _valueList; + + protected java.util.LinkedHashMap _nameValueMap; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getValueList() { + return _valueList; + } + + /** + * Set the list of value. {Priority One} + * + * @param valueList The list of value. (NotNull and NotEmpty) + */ + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public java.util.LinkedHashMap getNameValueMap() { + return _nameValueMap; + } + + /** + * Set the map of name and value. {Priority Two}
    If valueList is set, + * This nameValueMap is ignored. + * + * @param nameValueMap The map of name and value. (NotNull and NotEmpty) + */ + public void setNameValueMap( + java.util.LinkedHashMap nameValueMap) { + this._nameValueMap = nameValueMap; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingSimpleFacade { + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileToken.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileToken.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileToken.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,78 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * File-Token. + * + * @author DBFlute(AutoGenerator) + */ +public interface FileToken { + + /** + * Tokenize token-file data of a specified file. + * + * @param filename Input target file name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + * @param filename Output target file name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingCallback.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingCallback.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingCallback.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,9 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileTokenizingCallback { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingHeaderInfo { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _columnNameList = new java.util.ArrayList(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + protected String _columnNameRowString; + + public boolean isEmpty() { + return this._columnNameList.isEmpty(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this._columnNameList = columnNameList; + } + + public String getColumnNameRowString() { + return _columnNameRowString; + } + + public void setColumnNameRowString(String columnNameRowString) { + _columnNameRowString = columnNameRowString; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,81 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _encoding; + + protected String _delimiter; + + protected boolean _beginFirstLine; + + protected boolean _handleEmptyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileTokenizingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileTokenizingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileTokenizingOption beginFirstLine() { + _beginFirstLine = true; + return this; + } + + public FileTokenizingOption handleEmptyAsNull() { + _handleEmptyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public boolean isBeginFirstLine() { + return _beginFirstLine; + } + + public boolean isHandleEmptyAsNull() { + return _handleEmptyAsNull; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingRowResource.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingRowResource.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingRowResource.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,68 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileTokenizingHeaderInfo fileTokenizingHeaderInfo; + + protected java.util.List valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + //========================================================================== + // =========== + // Accessor + // ======== + public FileTokenizingHeaderInfo getFileTokenizingHeaderInfo() { + return fileTokenizingHeaderInfo; + } + + public void setFirstLineInfo( + FileTokenizingHeaderInfo fileTokenizingHeaderInfo) { + this.fileTokenizingHeaderInfo = fileTokenizingHeaderInfo; + } + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(java.util.List valueList) { + this.valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/FileTokenizingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,85 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file.impl; + +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileToken; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingSimpleFacadeImpl implements FileMakingSimpleFacade { + + protected FileToken _fileToken = new FileTokenImpl(); + + public void setFileToken(FileToken fileToken) { + this._fileToken = fileToken; + } + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + _fileToken.make(filename, fileMakingCallback, fileMakingOption); + } + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); + _fileToken.make(baos, fileMakingCallback, fileMakingOption); + return baos.toByteArray(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileTokenImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileTokenImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileTokenImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,565 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.file.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenImpl implements FileToken { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Line-token for help. */ + protected final LineToken _lineToken = new LineTokenImpl(); + + //========================================================================== + // =========== + // Main + // ==== + /** + * Tokenize token-file data of a specified file. + * + * @param filename File name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileInputStream fis = null; + try { + fis = new java.io.FileInputStream(filename); + tokenize(fis, fileTokenizingCallback, fileTokenizingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (fis != null) { + fis.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertObjectNotNull("fileTokenizingCallback", fileTokenizingCallback); + assertObjectNotNull("fileTokenizingOption", fileTokenizingOption); + final String delimiter = fileTokenizingOption.getDelimiter(); + final String encoding = fileTokenizingOption.getEncoding(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + java.io.InputStreamReader ir = null; + java.io.BufferedReader br = null; + + String lineString = null; + String preContinueString = ""; + final List temporaryValueList = new ArrayList(); + final List filteredValueList = new ArrayList(); + + try { + ir = new java.io.InputStreamReader(inputStream, encoding); + br = new java.io.BufferedReader(ir); + + FileTokenizingHeaderInfo fileTokenizingHeaderInfo = null; + int count = -1; + int rowNumber = 1; + int lineNumber = 0; + while (true) { + ++count; + if ("".equals(preContinueString)) { + lineNumber = count + 1; + } + + lineString = br.readLine(); + if (lineString == null) { + break; + } + if (count == 0) { + if (fileTokenizingOption.isBeginFirstLine()) { + fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo();// As + // empty + } else { + fileTokenizingHeaderInfo = analyzeHeaderInfo(delimiter, + lineString); + continue; + } + } + final String rowString; + if (preContinueString.equals("")) { + rowString = lineString; + } else { + final String lineSeparator = System + .getProperty("line.separator"); + rowString = preContinueString + lineSeparator + lineString; + } + final ValueLineInfo valueLineInfo = arrangeValueList(rowString, + delimiter); + final List ls = valueLineInfo.getValueList(); + if (valueLineInfo.isContinueNextLine()) { + preContinueString = (String) ls.remove(ls.size() - 1); + temporaryValueList.addAll(ls); + continue; + } + temporaryValueList.addAll(ls); + + try { + final FileTokenizingRowResource fileTokenizingRowResource = new FileTokenizingRowResource(); + fileTokenizingRowResource + .setFirstLineInfo(fileTokenizingHeaderInfo); + + if (fileTokenizingOption.isHandleEmptyAsNull()) { + for (final Iterator ite = temporaryValueList + .iterator(); ite.hasNext();) { + final String value = (String) ite.next(); + if ("".equals(value)) { + filteredValueList.add(null); + } else { + filteredValueList.add(value); + } + } + fileTokenizingRowResource + .setValueList(filteredValueList); + } else { + fileTokenizingRowResource + .setValueList(temporaryValueList); + } + + fileTokenizingRowResource.setRowString(rowString); + fileTokenizingRowResource.setRowNumber(rowNumber); + fileTokenizingRowResource.setLineNumber(lineNumber); + fileTokenizingCallback + .handleRowResource(fileTokenizingRowResource); + } finally { + ++rowNumber; + temporaryValueList.clear(); + filteredValueList.clear(); + preContinueString = ""; + } + } + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (ir != null) { + ir.close(); + } + if (br != null) { + br.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + protected ValueLineInfo arrangeValueList(final String lineString, + String delimiter) { + final List valueList = new ArrayList(); + + // Don't use split! + // final String[] values = lineString.split(delimiter); + final LineTokenizingOption tokenizingOption = new LineTokenizingOption(); + tokenizingOption.setDelimiter(delimiter); + final List list = _lineToken.tokenize(lineString, + tokenizingOption); + final String[] values = (String[]) list + .toArray(new String[list.size()]); + for (int i = 0; i < values.length; i++) { + valueList.add(values[i]); + } + return arrangeValueList(valueList, delimiter); + } + + protected ValueLineInfo arrangeValueList(List valueList, + String delimiter) { + final ValueLineInfo valueLineInfo = new ValueLineInfo(); + final ArrayList resultList = new ArrayList(); + String preString = ""; + for (int i = 0; i < valueList.size(); i++) { + final String value = (String) valueList.get(i); + if (value == null) { + continue; + } + if (i == valueList.size() - 1) {// The last loop + if (preString.equals("")) { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(value); + break; + } else if (isRearQOnly(value)) { + resultList.add(value); + break; + } else if (isNotBothQ(value)) { + resultList.add(value); + break; + } else { + resultList.add(removeDoubleQuotation(value)); + break; + } + } else { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } else if (isNotBothQ(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } + } + } + + if (preString.equals("")) { + if (isFrontQOnly(value)) { + preString = value; + continue; + } else if (isRearQOnly(value)) { + preString = value; + continue; + } else if (isNotBothQ(value)) { + resultList.add(value); + } else { + resultList.add(removeDoubleQuotation(value)); + } + } else { + if (isFrontQOnly(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } else if (isNotBothQ(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } + } + preString = ""; + } + valueLineInfo.setValueList(resultList); + return valueLineInfo; + } + + protected String connectPreString(String preString, String delimiter, + String value) { + if (preString.equals("")) { + return value; + } else { + return preString + delimiter + value; + } + } + + protected boolean isNotBothQ(final String value) { + return !value.startsWith("\"") && !value.endsWith("\""); + } + + protected boolean isRearQOnly(final String value) { + return !value.startsWith("\"") && value.endsWith("\""); + } + + protected boolean isFrontQOnly(final String value) { + return value.startsWith("\"") && !value.endsWith("\""); + } + + protected String removeDoubleQuotation(String value) { + if (!value.startsWith("\"") && !value.endsWith("\"")) { + return value; + } + if (value.startsWith("\"")) { + value = value.substring(1); + } + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected String removeRightDoubleQuotation(String value) { + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected FileTokenizingHeaderInfo analyzeHeaderInfo(String delimiter, + final String lineString) { + final java.util.List columnNameList = new ArrayList(); + final String[] values = lineString.split(delimiter); + for (int i = 0; i < values.length; i++) { + final String value = values[i].trim();// Trimming is Header Only!; + if (value.startsWith("\"") && value.endsWith("\"")) { + columnNameList.add(value.substring(1, value.length() - 1)); + } else { + columnNameList.add(value); + } + } + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo(); + fileTokenizingHeaderInfo.setColumnNameList(columnNameList); + fileTokenizingHeaderInfo.setColumnNameRowString(lineString); + return fileTokenizingHeaderInfo; + } + + public static class ValueLineInfo { + protected java.util.List valueList; + + protected boolean continueNextLine; + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(List valueList) { + this.valueList = valueList; + } + + public boolean isContinueNextLine() { + return continueNextLine; + } + + public void setContinueNextLine(boolean continueNextLine) { + this.continueNextLine = continueNextLine; + } + } + + /** + * Make token-file from specified row resources. + * + * @param filename File name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileOutputStream fos = null; + try { + fos = new java.io.FileOutputStream(filename); + make(fos, fileMakingCallback, fileMakingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (fos != null) { + fos.close(); + } + } + } + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("outputStream", outputStream); + assertObjectNotNull("fileMakingCallback", fileMakingCallback); + assertObjectNotNull("fileMakingOption", fileMakingOption); + final String encoding = fileMakingOption.getEncoding(); + final String delimiter = fileMakingOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final String lineSeparator; + if (fileMakingOption.getLineSeparator() != null + && !fileMakingOption.getLineSeparator().equals("")) { + lineSeparator = fileMakingOption.getLineSeparator(); + } else { + lineSeparator = System.getProperty("line.separator");// Default! + } + + java.io.BufferedOutputStream bos = null; + java.io.Writer writer = null; + try { + bos = new java.io.BufferedOutputStream(outputStream); + writer = new java.io.OutputStreamWriter(bos, encoding); + + boolean headerDone = false; + + // Make header. + final FileMakingHeaderInfo fileMakingHeaderInfo = fileMakingOption + .getFileMakingHeaderInfo(); + if (fileMakingHeaderInfo != null) { + final List columnNameList = fileMakingHeaderInfo + .getColumnNameList(); + if (columnNameList != null && !columnNameList.isEmpty()) { + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + } + + // Make row. + FileMakingRowResource rowResource = null; + while (true) { + rowResource = fileMakingCallback.getRowResource(); + if (rowResource == null) { + break;// The End! + } + final java.util.List valueList; + if (rowResource.getValueList() != null) { + valueList = rowResource.getValueList(); + } else { + final java.util.LinkedHashMap nameValueMap = rowResource + .getNameValueMap(); + if (!headerDone) { + final java.util.List columnNameList = new java.util.ArrayList( + nameValueMap.keySet()); + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + valueList = new ArrayList(nameValueMap.values()); + } + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + if (!fileMakingOption.isGoodByeDoubleQuotation()) { + lineMakingOption.quoteByDoubleQuotation(); + } + final String lineString = _lineToken.make(valueList, + lineMakingOption); + writer.write(lineString + lineSeparator); + } + writer.flush(); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (bos != null) { + bos.close(); + } + if (writer != null) { + writer.close(); + } + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/file/impl/FileTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineMakingOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineMakingOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineMakingOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,49 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineMakingOption { + + protected String _delimiter; + + protected boolean _quoteByDoubleQuotation; + + protected boolean _trimSpace; + + public LineMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public LineMakingOption quoteByDoubleQuotation() { + _quoteByDoubleQuotation = true; + return this; + } + + public boolean isQuoteByDoubleQuotation() { + return _quoteByDoubleQuotation; + } + + public LineMakingOption trimSpace() { + _trimSpace = true; + return this; + } + + public boolean isTrimSpace() { + return _trimSpace; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineToken.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineToken.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineToken.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,13 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface LineToken { + + public java.util.List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption); + + public String make(java.util.List valueList, + LineMakingOption lineMakingOption); +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineTokenizingOption.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineTokenizingOption.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineTokenizingOption.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,61 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _delimiter; + + protected boolean _trimDoubleQuotation; + + protected boolean _handleEmtpyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public LineTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public LineTokenizingOption trimDoubleQuotation() { + _trimDoubleQuotation = true; + return this; + } + + public LineTokenizingOption handleEmtpyAsNull() { + _handleEmtpyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public boolean isTrimDoubleQuotation() { + return _trimDoubleQuotation; + } + + public boolean isHandleEmtpyAsNull() { + return _handleEmtpyAsNull; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/LineTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/impl/LineTokenImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/impl/LineTokenImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,136 @@ +package jp.sf.pal.addresslist.db.allcommon.helper.token.line.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.addresslist.db.allcommon.helper.token.line.LineTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenImpl implements LineToken { + + //========================================================================== + // ========= + // Tokenize Line + // ============= + public List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption) { + final String delimiter = lineTokenizingOption.getDelimiter(); + final List list = new ArrayList(); + int i = 0; + int j = lineString.indexOf(delimiter); + for (int h = 0; j >= 0; h++) { + final String pureValue = lineString.substring(i, j); + if (lineTokenizingOption.isTrimDoubleQuotation()) { + final String before = pureValue; + if (before.length() > 1 && before.startsWith("\"") + && before.endsWith("\"")) { + final String after = before.substring(1, + before.length() - 1); + list.add(filterHandlingEmptyAsNull(after, + lineTokenizingOption)); + } else { + list.add(filterHandlingEmptyAsNull(before, + lineTokenizingOption)); + } + } else { + list.add(filterHandlingEmptyAsNull(pureValue, + lineTokenizingOption)); + } + i = j + delimiter.length(); + j = lineString.indexOf(delimiter, i); + } + list.add(filterHandlingEmptyAsNull(lineString.substring(i), + lineTokenizingOption)); + return list; + } + + protected String filterHandlingEmptyAsNull(String target, + LineTokenizingOption lineTokenizingOption) { + if (target == null) { + return null; + } + if (lineTokenizingOption.isHandleEmtpyAsNull() && "".equals(target)) { + return null; + } + return target; + } + + //========================================================================== + // ========= + // Make Line + // ========= + public String make(java.util.List valueList, + LineMakingOption lineMakingOption) { + assertObjectNotNull("valueList", valueList); + assertObjectNotNull("lineMakingOption", lineMakingOption); + final String delimiter = lineMakingOption.getDelimiter(); + assertObjectNotNull("lineMakingOption.getDelimiter()", delimiter); + return createLineString(valueList, delimiter, lineMakingOption + .isQuoteByDoubleQuotation(), lineMakingOption.isTrimSpace()); + } + + protected String createLineString(List valueList, String delimiter, + boolean quoteByDoubleQuotation, boolean trimSpace) { + final StringBuffer sb = new StringBuffer(); + for (final Iterator ite = valueList.iterator(); ite.hasNext();) { + String value = (String) ite.next(); + value = (value != null ? value : ""); + if (trimSpace) { + value = value.trim(); + } + if (quoteByDoubleQuotation) { + sb.append(delimiter).append("\"").append(value).append("\""); + } else { + sb.append(delimiter).append(value); + } + } + sb.delete(0, delimiter.length()); + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/helper/token/line/impl/LineTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/CursorHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/CursorHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/CursorHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,19 @@ +package jp.sf.pal.addresslist.db.allcommon.jdbc; + +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * The handler of cursor. + * + * @author DBFlute(AutoGenerator) + */ +public interface CursorHandler { + + /** + * @param resultSet Result set. (NotNull) + * @return Result + * @throws java.sql.SQLException + */ + Object handle(ResultSet resultSet) throws SQLException; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/CursorHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/LatestSqlProvider.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/LatestSqlProvider.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/LatestSqlProvider.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon.jdbc; + +/** + * The provider of latest SQL. + * + * @author DBFlute(AutoGenerator) + */ +public interface LatestSqlProvider { + + /** + * Get display SQL. + * + * @return Display SQL. (Nullable: If it was not found, returns null.) + */ + public String getDisplaySql(); + + /** + * Clear the cache of SQL. + */ + public void clearSqlCache(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/LatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/SqlLogHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/SqlLogHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/SqlLogHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,18 @@ +package jp.sf.pal.addresslist.db.allcommon.jdbc; + +/** + * The handler of SQL log. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlLogHandler { + + /** + * @param executedSql The executed SQL. (NotNull) + * @param displaySql The SQL for display. (NotNull) + * @param args The arguments of the SQL. (Nullable) + * @param argTypes The argument types of the SQL. (Nullable) + */ + void handle(String executedSql, String displaySql, Object[] args, + Class[] argTypes); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/SqlLogHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/StatementConfig.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/StatementConfig.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/StatementConfig.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,135 @@ +package jp.sf.pal.addresslist.db.allcommon.jdbc; + +import java.sql.ResultSet; + +/** + * The config of statement. + * + * @author DBFlute(AutoGenerator) + */ +public class StatementConfig { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + protected Integer _resultSetType; + + // ----------------------------------------------------- + // Statement Option + // ---------------- + protected Integer _queryTimeout; + + protected Integer _fetchSize; + + protected Integer _maxRows; + + //========================================================================== + // ========= + // Setting Interface + // ================= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public StatementConfig typeForwardOnly() { + _resultSetType = ResultSet.TYPE_FORWARD_ONLY; + return this; + } + + public StatementConfig typeScrollInsensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + return this; + } + + public StatementConfig typeScrollSensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_SENSITIVE; + return this; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public StatementConfig queryTimeout(int queryTimeout) { + this._queryTimeout = queryTimeout; + return this; + } + + public StatementConfig fetchSize(int fetchSize) { + this._fetchSize = fetchSize; + return this; + } + + public StatementConfig maxRows(int maxRows) { + this._maxRows = maxRows; + return this; + } + + //========================================================================== + // ========= + // Determination + // ============= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public boolean hasResultSetType() { + return _resultSetType != null; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public boolean hasStatementOptions() { + return hasQueryTimeout() || hasFetchSize() || hasMaxRows(); + } + + public boolean hasQueryTimeout() { + return _queryTimeout != null; + } + + public boolean hasFetchSize() { + return _fetchSize != null; + } + + public boolean hasMaxRows() { + return _maxRows != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{" + _resultSetType + ", " + _queryTimeout + ", " + _fetchSize + + ", " + _maxRows + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public Integer getResultSetType() { + return _resultSetType; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public Integer getQueryTimeout() { + return _queryTimeout; + } + + public Integer getFetchSize() { + return _fetchSize; + } + + public Integer getMaxRows() { + return _maxRows; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/jdbc/StatementConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,125 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.ResultSetFactory; + +/** + * This is unused in DBFlute so this is very NORMAL result-set-factory for + * S2Dao. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetFactory implements ResultSetFactory { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public FetchNarrowingResultSetFactory() { + } + + //========================================================================== + // ========= + // Main + // ==== + /** + * Get result set. + * + * @param statement Statement. (NotNull) + * @return Result set for procedure executing of s2dao. (NotNull) + */ + public ResultSet getResultSet(Statement statement) { // Unused in DBFlute + return doGetResultSet(statement); + } + + /** + * Create result set. + * + * @param ps Prepared statement. (NotNull) + * @return Result set. (NotNull) + */ + public ResultSet createResultSet(PreparedStatement ps) { // Unused in + // DBFlute + return executeQuery(ps); + + // *Move to InternalBasicSelectHandler + // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // return resultSet; + // } + // final FetchNarrowingBean cb = + // FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread(); + // if (!isUseFetchNarrowingResultSetWrapper(cb)) { + // return resultSet; + // } + // final FetchNarrowingResultSetWrapper wrapper; + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + // outsideSqlContext.isOffsetByCursorForcedly(), + // outsideSqlContext.isLimitByCursorForcedly()); + // } else { + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + // false); + // } + // return wrapper; + } + + // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean + // cb) { + // if (cb.getSafetyMaxResultSize() > 0) { + // return true; + // } + // if (!cb.isFetchNarrowingEffective()) { + // return false;// It is not necessary to control. + // } + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // if (outsideSqlContext.isOffsetByCursorForcedly() || + // outsideSqlContext.isLimitByCursorForcedly()) { + // return true; + // } + // } + // if (cb.isFetchNarrowingSkipStartIndexEffective() || + // cb.isFetchNarrowingLoopCountEffective()) { + // return true; + // } + // return false; + // } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected ResultSet doGetResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected ResultSet executeQuery(PreparedStatement ps) { + try { + return ps.executeQuery(); + } catch (SQLException e) { + handleSQLException(e, ps); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,237 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.addresslist.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.impl.ResultSetWrapper; + +/** + * The wrapper of fetch narrowing result set. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetWrapper extends ResultSetWrapper { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The real result set. (NotNull) */ + protected ResultSet _resultSet; + + /** The bean of fetch narrowing. (NotNull) */ + protected FetchNarrowingBean _fetchNarrowingBean; + + /** The counter of fetch. */ + protected long _fetchCounter; + + /** the counter of request. */ + protected long _requestCounter; + + /** Does it offset by cursor forcedly? */ + protected boolean _offsetByCursorForcedly; + + /** Does it limit by cursor forcedly? */ + protected boolean _limitByCursorForcedly; + + /** Does it skip to cursor end? */ + protected boolean _skipToCursorEnd; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param resultSet Original result set. (NotNull) + * @param fetchNarrowingBean Fetch-narrowing-bean. (NotNull) + * @param offsetByCursorForcedly Offset by cursor forcedly. + * @param limitByCursorForcedly Limit by cursor forcedly. + */ + public FetchNarrowingResultSetWrapper(ResultSet resultSet, + FetchNarrowingBean fetchNarrowingBean, + boolean offsetByCursorForcedly, boolean limitByCursorForcedly) { + super(resultSet); + + _resultSet = resultSet; + _fetchNarrowingBean = fetchNarrowingBean; + _offsetByCursorForcedly = offsetByCursorForcedly; + _limitByCursorForcedly = limitByCursorForcedly; + + skip(); + } + + //========================================================================== + // ========= + // Skip + // ==== + /** + * Skip to start-index. + */ + protected void skip() { + if (!isAvailableSkipRecord()) { + return; + } + final int skipStartIndex = getFetchNarrowingSkipStartIndex(); + if (isScrollableCursor()) { + try { + if (0 == skipStartIndex) { + _resultSet.beforeFirst(); + } else { + _resultSet.absolute(skipStartIndex); + } + _fetchCounter = _resultSet.getRow(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } else { + try { + while (true) { + if (_fetchCounter >= skipStartIndex) { + break; + } + if (!_resultSet.next()) { + _skipToCursorEnd = true;// [DBFLUTE-243] + break; + } + ++_fetchCounter; + } + } catch (SQLException e) { + handleSQLException(e, null); + } + } + } + + protected boolean isAvailableSkipRecord() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isOffsetByCursorForcedly()) { + return true; + } + if (isFetchNarrowingSkipStartIndexEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Next + // ==== + /** + * Next. + * + * @return Does the result set have next record? + * @throws SQLException + */ + public boolean next() throws SQLException { + final boolean hasNext = super.next(); + ++_requestCounter; + if (!isAvailableLimitLoopCount()) { + checkSafetyResult(hasNext); + return hasNext; + } + + if (hasNext + && _fetchCounter < getFetchNarrowingSkipStartIndex() + + getFetchNarrowingLoopCount()) { + ++_fetchCounter; + checkSafetyResult(true); + return true; + } else { + return false; + } + } + + protected boolean isAvailableLimitLoopCount() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isLimitByCursorForcedly()) { + return true; + } + if (isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + protected void checkSafetyResult(boolean hasNext) { + if (hasNext && getSafetyMaxResultSize() > 0 + && _requestCounter > (getSafetyMaxResultSize() + 1)) { + String msg = "You have already been in Danger Zone!"; + msg = msg + + " Please confirm your query or data of table: safetyMaxResultSize=" + + getSafetyMaxResultSize(); + throw new jp.sf.pal.addresslist.db.allcommon.exception.DangerousResultSizeException( + msg, getSafetyMaxResultSize()); + } + } + + //========================================================================== + // ========= + // Fetch Option + // ============ + protected boolean isFetchNarrowingEffective() { + return _fetchNarrowingBean.isFetchNarrowingEffective(); + } + + protected boolean isFetchNarrowingSkipStartIndexEffective() { + return _fetchNarrowingBean.isFetchNarrowingSkipStartIndexEffective(); + } + + protected boolean isFetchNarrowingLoopCountEffective() { + return _fetchNarrowingBean.isFetchNarrowingLoopCountEffective(); + } + + protected int getFetchNarrowingSkipStartIndex() { + return _fetchNarrowingBean.getFetchNarrowingSkipStartIndex(); + } + + protected int getFetchNarrowingLoopCount() { + return _fetchNarrowingBean.getFetchNarrowingLoopCount(); + } + + public int getSafetyMaxResultSize() { + return _fetchNarrowingBean.getSafetyMaxResultSize(); + } + + protected boolean isScrollableCursor() { + try { + return !(_resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY); + } catch (SQLException e) { + handleSQLException(e, null); + return false;// Unreachable! + } + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public boolean isSkipToCursorEnd() { + return _skipToCursorEnd; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,116 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.impl.BeanMetaDataFactoryImpl; +import org.seasar.dao.impl.BeanMetaDataImpl; + +/** + * BeanMetaDataFactoryImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2BeanMetaDataFactoryImpl extends BeanMetaDataFactoryImpl { + + protected Map, BeanMetaData> _metaMap = Collections + .synchronizedMap(new HashMap, BeanMetaData>()); + + @Override + public BeanMetaData createBeanMetaData(Class beanClass) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass); + } + } + + @Override + public BeanMetaData createBeanMetaData(Class beanClass, + int relationNestLevel) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass, relationNestLevel); + } + } + + @Override + public BeanMetaData createBeanMetaData(DatabaseMetaData dbMetaData, + Class beanClass, int relationNestLevel) { + final BeanMetaData cachedMeta = findOrCreateCachedMetaIfNeeds( + dbMetaData, beanClass, relationNestLevel); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, + relationNestLevel); + } + } + + protected BeanMetaData findCachedMeta(Class beanClass) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } + } + return null; + } + + protected BeanMetaData findOrCreateCachedMetaIfNeeds( + DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, 0); + } + } + return null; + } + + @Override + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + @Override + public void initialize() { + final Class myBeanClass = getBeanClass(); + if (isDBFluteEntity(myBeanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(myBeanClass); + if (cachedMeta == null) { + _metaMap.put(myBeanClass, this); + } + } + super.initialize(); + } + }; + } + + protected boolean isDBFluteEntity(Class beanClass) { + return Entity.class.isAssignableFrom(beanClass); + } + + protected BeanMetaData getMetaFromCache(Class beanClass) { + return _metaMap.get(beanClass); + } + + /** + * Get the limit nest level of relation. + * + * @return The limit nest level of relation. + */ + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible to old version DBFlute + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoInterceptor.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoInterceptor.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1027 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.InternalMapContext; +import jp.sf.pal.addresslist.db.allcommon.XLog; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.InvokeNameResult; +import jp.sf.pal.addresslist.db.allcommon.helper.stacktrace.impl.InvokeNameExtractorImpl; +import jp.sf.pal.addresslist.db.allcommon.util.TraceViewUtil; + +import org.aopalliance.intercept.MethodInvocation; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; + +/** + * The interceptor of S2Dao for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoInterceptor extends + org.seasar.framework.aop.interceptors.AbstractInterceptor { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoInterceptor.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The factory of DAO meta data. */ + protected DaoMetaDataFactory _daoMetaDataFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param daoMetaDataFactory The factory of DAO meta data. (NotNull) + */ + public S2DaoInterceptor(DaoMetaDataFactory daoMetaDataFactory) { + _daoMetaDataFactory = daoMetaDataFactory; + } + + //========================================================================== + // ========= + // Execute Status Log + // ================== + protected void log(String msg) { + XLog.log(msg); + } + + protected boolean isLogEnabled() { + return XLog.isLogEnabled(); + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + public Object invoke(MethodInvocation invocation) throws Throwable { + clearThreadLocal(); + try { + return dispatchInvoking(invocation); + } finally { + clearThreadLocal(); + } + } + + /** + * Dispatch invoking the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + protected Object dispatchInvoking(MethodInvocation invocation) + throws Throwable { + final Method method = invocation.getMethod(); + if (!isAbstract(method)) { + return invocation.proceed(); + } + + // - - - - - - - - - - - - - + // Initialize DAO meta data + // - - - - - - - - - - - - - + if (method.getName().equals("initializeDaoMetaData")) { + initializeSqlCommand(invocation); + return null;// The end! (Initilization Only) + } + + // - - - - - - - - - - - - + // Preprocess outside-SQL + // - - - - - - - - - - - - + preprocessOutsideSql(invocation); + + // - - - - - - - - - - - - - + // Preprocess condition-bean + // - - - - - - - - - - - - - + final ConditionBean cb = preprocessConditionBean(invocation); + + // - - - - - - - - - - + // Set up SQL-command + // - - - - - - - - - - + final SqlCommand cmd; + try { + long beforeCmd = 0; + if (isLogEnabled()) { + beforeCmd = System.currentTimeMillis(); + } + cmd = findSqlCommand(invocation); + if (isLogEnabled()) { + final long afterCmd = System.currentTimeMillis(); + if (beforeCmd != afterCmd) { + logSqlCommand(invocation, cmd, beforeCmd, afterCmd); + } + } + } finally { + if (isLogEnabled()) { + logInvocation(invocation); + } + } + + long before = 0; + if (isLogEnabled()) { + before = System.currentTimeMillis(); + } + + // - - - - - - - - - - + // Execute SQL-command + // - - - - - - - - - - + Object ret = null; + try { + ret = cmd.execute(invocation.getArguments()); + } catch (Exception e) { + if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) { + throw new EntityAlreadyUpdatedException( + (NotSingleRowUpdatedRuntimeException) e); + } + throw e; + } finally { + postprocessConditionBean(invocation, cb); + } + final Class retType = method.getReturnType(); + assertRetType(retType, ret); + + if (isLogEnabled()) { + final long after = System.currentTimeMillis(); + logReturn(invocation, retType, ret, before, after); + } + + // - - - - - - - - - - + // Convert and Return! + // - - - - - - - - - - + if (retType.isPrimitive()) { + return org.seasar.framework.util.NumberConversionUtil + .convertPrimitiveWrapper(retType, ret); + } else if (Number.class.isAssignableFrom(retType)) { + return org.seasar.framework.util.NumberConversionUtil + .convertNumber(retType, ret); + } else { + return ret; + } + } + + //========================================================================== + // ========= + // SqlCommand + // ========== + protected void initializeSqlCommand(MethodInvocation invocation) { + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + return;// Do nothing! + } else { + final Object[] arguments = invocation.getArguments(); + if (arguments != null && arguments.length > 0 + && arguments[0] instanceof String) { + final String methodName = (String) arguments[0]; + try { + dmd.getSqlCommand(methodName); + } catch (MethodNotFoundRuntimeException ignored) { + // Do nothing! + if (isLogEnabled()) { + log("Not Found the method: " + methodName + " msg=" + + ignored.getMessage()); + } + } + return; + } else { + String msg = "The method should have one string argument as method name: " + + invocation; + throw new IllegalStateException(msg); + } + } + } + + protected SqlCommand findSqlCommand(MethodInvocation invocation) { + final SqlCommand cmd; + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + cmd = dmd + .getSqlCommand(generateSpecifiedOutsideSqlUniqueKey(invocation)); + } else { + cmd = dmd.getSqlCommand(invocation.getMethod().getName()); + } + return cmd; + } + + protected String generateSpecifiedOutsideSqlUniqueKey( + MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + final String path = (String) args[0]; + final Object pmb = args[1]; + final OutsideSqlOption option = (OutsideSqlOption) args[2]; + Object resultTypeSpecification = null; + if (args.length > 3) { + resultTypeSpecification = args[3]; + } + return OutsideSqlContext.generateSpecifiedOutsideSqlUniqueKey( + invocation.getMethod().getName(), path, pmb, option, + resultTypeSpecification); + } + + //========================================================================== + // ========= + // Log Invocation + // ============== + protected void logInvocation(MethodInvocation invocation) { + final StackTraceElement[] stackTrace = new Exception().getStackTrace(); + final InvokeNameResult behaviorResult = extractBehaviorInvokeName(stackTrace); + + final String invokeClassName; + final String invokeMethodName; + if (!behaviorResult.isEmptyResult()) { + invokeClassName = behaviorResult.getSimpleClassName(); + invokeMethodName = behaviorResult.getMethodName(); + } else { + final Method method = invocation.getMethod(); + invokeClassName = extractInvocationExpression(method); + invokeMethodName = method.getName(); + } + final String expWithoutKakko = buildInvocationExpressionWithoutKakko( + invocation, invokeClassName, invokeMethodName); + + // Save behavior invoke name for error message. + putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()"); + + final String equalBorder = buildFitBorder("", "=", expWithoutKakko, + false); + final String invocationExpression = expWithoutKakko + "()"; + + log("/=====================================================" + + equalBorder + "=="); + log(" " + + invocationExpression); + log(" " + + equalBorder + "=/"); + + logPath(invocation, stackTrace, behaviorResult); + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (!outsideSqlContext.isProcedure()) {// [DBFlute-0.7.5] + Object[] args = invocation.getArguments(); + if (outsideSqlContext != null) { + log("path: " + outsideSqlContext.getOutsideSqlPath()); + } else { + log("path: " + getOutsideSqlPath(args)); + } + log("option: " + getOutsideSqlOption(args)); + } + } + } + + protected String buildInvocationExpressionWithoutKakko( + MethodInvocation invocation, String invokeClassName, + String invokeMethodName) { + if (invokeClassName.contains("OutsideSql") + && invokeClassName.endsWith("Executor")) { // OutsideSql + // Executor Handling + try { + final String originalName = invokeClassName; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final String tableDbName = outsideSqlContext + .getTableDbName(); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableDbName); + final String behaviorTypeName = dbmeta + .getBehaviorTypeName(); + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + + ".".length()); + invokeClassName = behaviorClassName + ".outsideSql()"; + if (originalName.endsWith("OutsideSqlEntityExecutor")) { + invokeClassName = invokeClassName + ".entityHandling()"; + } else if (originalName + .endsWith("OutsideSqlPagingExecutor")) { + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + invokeClassName = invokeClassName + ".autoPaging()"; + } else { + invokeClassName = invokeClassName + + ".manualPaging()"; + } + } else if (originalName + .endsWith("OutsideSqlCursorExecutor")) { + invokeClassName = invokeClassName + ".cursorHandling()"; + } + } else { + invokeClassName = "OutsideSql"; + } + } catch (RuntimeException ignored) { + log("Ignored exception occurred: msg=" + ignored.getMessage()); + } + } + String invocationExpressionWithoutKakko = invokeClassName + "." + + invokeMethodName; + if ("selectPage".equals(invokeMethodName)) { // Special Handling! + boolean resultTypeInteger = false; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + if (resultTypeSpecification != null + && resultTypeSpecification instanceof Class) { + final Class resultType = (Class) resultTypeSpecification; + if (Integer.class.isAssignableFrom(resultType)) { + resultTypeInteger = true; + } + } + } + if (resultTypeInteger + || "selectCount".equals(invocation.getMethod().getName())) { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():count"; + } else { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():paging"; + } + } + return invocationExpressionWithoutKakko; + } + + protected void logPath(MethodInvocation invocation, + StackTraceElement[] stackTrace, InvokeNameResult behaviorResult) { + final int bhvNextIndex = behaviorResult.getNextStartIndex(); + final InvokeNameResult clientResult = extractClientInvokeName( + stackTrace, bhvNextIndex); + final int clientFirstIndex = clientResult.getFoundFirstIndex(); + final InvokeNameResult byPassResult = extractByPassInvokeName( + stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex); + + final String clientInvokeName = clientResult.getInvokeName(); + final String byPassInvokeName = byPassResult.getInvokeName(); + final String behaviorInvokeName = behaviorResult.getInvokeName(); + if (clientInvokeName.trim().length() == 0 + && byPassInvokeName.trim().length() == 0) { + return; + } + + // Save client invoke name for error message. + if (!clientResult.isEmptyResult()) { + putObjectToMapContext("df:ClientInvokeName", clientInvokeName); + } + // Save by-pass invoke name for error message. + if (!byPassResult.isEmptyResult()) { + putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName); + } + + log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "..."); + } + + protected String buildFitBorder(String prefix, String element, + String lengthTargetString, boolean space) { + final int length = space ? lengthTargetString.length() / 2 + : lengthTargetString.length(); + final StringBuffer sb = new StringBuffer(); + sb.append(prefix); + for (int i = 0; i < length; i++) { + sb.append(element); + if (space) { + sb.append(" "); + } + } + if (space) { + sb.append(element); + } + return sb.toString(); + } + + protected InvokeNameResult extractClientInvokeName( + StackTraceElement[] stackTrace, final int startIndex) { + final List suffixList = Arrays.asList(new String[] { "Page", + "Action" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractByPassInvokeName( + StackTraceElement[] stackTrace, final int startIndex, + final int loopSize) { + final List suffixList = Arrays.asList(new String[] { "Service", + "ServiceImpl", "Facade", "FacadeImpl" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return loopSize >= 0 ? loopSize : 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractBehaviorInvokeName( + StackTraceElement[] stackTrace) { + final List suffixList = Arrays.asList(new String[] { "Bhv", + "BehaviorReadable", "BehaviorWritable", "PagingInvoker" }); + final List keywordList = Arrays.asList(new String[] { "Bhv$", + "BehaviorReadable$", "BehaviorWritable$" }); + final List ousideSql1List = Arrays + .asList(new String[] { "OutsideSql" }); + final List ousideSql2List = Arrays + .asList(new String[] { "Executor" }); + final List ousideSql3List = Arrays + .asList(new String[] { "Executor$" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + if (isClassNameEndsWith(className, suffixList)) { + return true; + } + if (isClassNameContains(className, keywordList)) { + return true; + } + if (isClassNameContains(className, ousideSql1List) + && (isClassNameEndsWith(className, ousideSql2List) || isClassNameContains( + className, ousideSql3List))) { + return true; + } + return false; + } + + public String filterSimpleClassName(String simpleClassName) { + return removeBasePrefixFromSimpleClassName(simpleClassName); + } + + public boolean isUseAdditionalInfo() { + return false; + } + + public int getStartIndex() { + return 0; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected boolean isClassNameEndsWith(String className, + List suffixList) { + for (String suffix : suffixList) { + if (className.endsWith(suffix)) { + return true; + } + } + return false; + } + + protected boolean isClassNameContains(String className, + List keywordList) { + for (String keyword : keywordList) { + if (className.contains(keyword)) { + return true; + } + } + return false; + } + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @param stackTrace Stack log. (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + protected InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource, + StackTraceElement[] stackTrace) { + final InvokeNameExtractorImpl extractor = new InvokeNameExtractorImpl(); + extractor.setStackTrace(stackTrace); + return extractor.extractInvokeName(resource); + } + + /** + * @param method The invoked method. (NotNull) + * @return The expression of invocation. (NotNull) + */ + protected String extractInvocationExpression(Method method) { + final Class declaringClass = method.getDeclaringClass(); + return removeBasePrefixFromSimpleClassName(declaringClass + .getSimpleName()); + } + + /** + * @param simpleClassName The simple class name. (NotNull) + * @return The simple class name removed the base prefix. (NotNull) + */ + protected String removeBasePrefixFromSimpleClassName(String simpleClassName) { + if (!simpleClassName.startsWith("Bs")) { + return simpleClassName; + } + final int prefixLength = "Bs".length(); + if (!Character.isUpperCase(simpleClassName.substring(prefixLength) + .charAt(0))) { + return simpleClassName; + } + if (simpleClassName.length() <= prefixLength) { + return simpleClassName; + } + return "" + simpleClassName.substring(prefixLength); + } + + //========================================================================== + // ========= + // Log SqlCommand + // ============== + protected void logSqlCommand(MethodInvocation invocation, SqlCommand cmd, + long beforeCmd, long afterCmd) { + log("SqlCommand Initialization Cost: [" + + TraceViewUtil.convertToPerformanceView(afterCmd - beforeCmd) + + "]"); + } + + protected void assertRetType(Class retType, Object ret) { + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof java.util.List)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof Entity)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } + } + + //========================================================================== + // ========= + // Log Return + // ========== + protected void logReturn( + org.aopalliance.intercept.MethodInvocation invocation, + Class retType, Object ret, long before, long after) + throws Throwable { + try { + final String daoResultPrefix = "===========/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + " - "; + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected list: null]"); + } else { + final java.util.List ls = (java.util.List) ret; + if (ls.isEmpty()) { + log(daoResultPrefix + "Selected list: 0]"); + } else if (ls.size() == 1 && ls.get(0) instanceof Number) { + log(daoResultPrefix + "Selected count: " + ls.get(0) + + "]"); + } else { + log(daoResultPrefix + "Selected list: " + ls.size() + + " first=" + ls.get(0) + "]"); + } + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (int[].class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final int[] resultArray = (int[]) ret; + if (resultArray.length == 0) { + log(daoResultPrefix + "All updated count: 0]"); + } else { + final StringBuilder sb = new StringBuilder(); + boolean resultExpressionScope = true; + int resultCount = 0; + int loopCount = 0; + for (int element : resultArray) { + resultCount = resultCount + element; + if (resultExpressionScope) { + if (loopCount <= 10) { + if (sb.length() == 0) { + sb.append(element); + } else { + sb.append(",").append(element); + } + } else { + sb.append(",").append("..."); + resultExpressionScope = false; + } + } + ++loopCount; + } + sb.insert(0, "{").append("}"); + log(daoResultPrefix + "All updated count: " + + resultCount + " result=" + sb + "]"); + } + } + } else { + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + log(daoResultPrefix + "Selected count: " + ret + "]"); + } else { + log(daoResultPrefix + "Result: " + ret + "]"); + } + } + log(" "); + } catch (Exception e) { + String msg = "Result object debug threw the exception: methodName="; + msg = msg + invocation.getMethod().getName() + " retType=" + + retType; + msg = msg + " ret=" + ret; + _log.warn(msg, e); + throw e; + } + } + + //========================================================================== + // ========= + // Pre Post Process + // ================ + // ----------------------------------------------------- + // OutsideSql + // ---------- + protected void preprocessOutsideSql(MethodInvocation invocation) { + final Class outsideSqlType = jp.sf.pal.addresslist.db.allcommon.annotation.OutsideSql.class; + final jp.sf.pal.addresslist.db.allcommon.annotation.OutsideSql outsideSql = invocation + .getMethod().getAnnotation(outsideSqlType); + + // Traditional OutsideSql + if (outsideSql != null + && (outsideSql.dynamicBinding() || outsideSql.offsetByCursor() + || outsideSql.offsetByCursor() || outsideSql + .limitByCursor())) { + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(outsideSql.dynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(outsideSql + .offsetByCursor()); + outsideSqlContext.setLimitByCursorForcedly(outsideSql + .limitByCursor()); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return; + } + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(args[0] + .getClass())) { + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) args[0]); + } + return; + } + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + if (isOutsideSqlDaoMethodSelect(invocation)) { + setupOutsideSqlContextSelect(invocation); + } else { + setupOutsideSqlContextExecute(invocation); + } + return; + } + } + + protected boolean isSpecifiedOutsideSql(MethodInvocation invocation) { + return OutsideSqlDao.class.isAssignableFrom(getTargetClass(invocation)); + } + + // - - - - - - - - - - - - + // Select + // - - - + protected boolean isOutsideSqlDaoMethodSelect(MethodInvocation invocation) { + return invocation.getMethod().getName().startsWith("select"); + } + + protected void setupOutsideSqlContextSelect(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 4) { + String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final Object resultTypeSpecification = args[3]; + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setResultTypeSpecification(resultTypeSpecification); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupOutsideSqlContextExecute(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Common + // - - - + protected String getOutsideSqlPath(Object[] args) { + return (String) args[0]; + } + + protected Object getOutsideSqlParameterBean(Object[] args) { + return args[1]; + } + + protected OutsideSqlOption getOutsideSqlOption(Object[] args) { + return (OutsideSqlOption) args[2]; + } + + protected void setupOutsideSqlFetchNarrowingBean(Object pmb, + OutsideSqlOption option) { + if (pmb == null + || !FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(pmb + .getClass())) { + return; + } + final FetchNarrowingBean fetchNarrowingBean = (FetchNarrowingBean) pmb; + if (option.isManualPaging()) { + fetchNarrowingBean.ignoreFetchNarrowing(); + } + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread(fetchNarrowingBean); + } + + // ----------------------------------------------------- + // ConditionBean + // ------------- + /** + * Pre-process conditionBean. + *

    + * If this method is condition bean select target, make dynamic SQL. Else + * nothing. + * + * @param invocation Method invocation. (NotNull) + * @return ConditionBean. (Nullable) + */ + protected ConditionBean preprocessConditionBean(MethodInvocation invocation) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (outsideSqlContext != null) { + return null; // Because it has already finished setting up + // fetchNarrowingBean for outsideSql here. + } + + final ConditionBean cb; + { + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return null; + } + final Object arg0 = args[0]; + if (arg0 == null) { + return null; + } + if (!ConditionBeanContext.isTheTypeConditionBean(arg0.getClass())) {// The + // argument + // is + // not + // condition + // - + // bean + // ... + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(arg0 + .getClass()) + && !isSelectCountIgnoreFetchScopeMethod(invocation)) { + // Fetch-narrowing-bean and Not select count! + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) arg0); + } + return null; + } + cb = (ConditionBean) arg0; + } + + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xsetupSelectCountIgnoreFetchScope(); + } else { + FetchNarrowingBeanContext.setFetchNarrowingBeanOnThread(cb); + } + + ConditionBeanContext.setConditionBeanOnThread(cb); + return cb; + } + + /** + * Post-process condition-bean. + * + * @param invocation Method invocation. (NotNull) + * @param cb Condition-bean. (Nullable) + */ + protected void postprocessConditionBean(MethodInvocation invocation, + ConditionBean cb) { + if (cb == null) { + return; + } + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xafterCareSelectCountIgnoreFetchScope(); + } + } + + // ----------------------------------------------------- + // Clear Thread Local + // ------------------ + protected void clearThreadLocal() { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + OutsideSqlContext.clearOutsideSqlContextOnThread(); + } + if (FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + // Because there is possible that fetch narrowing has been ignored + // for manualPaging of outsideSql. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread() + .restoreIgnoredFetchNarrowing(); + + FetchNarrowingBeanContext.clearFetchNarrowingBeanOnThread(); + } + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + ConditionBeanContext.clearConditionBeanOnThread(); + } + if (InternalMapContext.isExistInternalMapContextOnThread()) { + InternalMapContext.clearInternalMapContextOnThread(); + } + } + + //========================================================================== + // ========= + // Context Helper + // ============== + protected OutsideSqlContext getOutsideSqlContext() { + if (!OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + return null; + } + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + return outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql(); + } + + protected void putObjectToMapContext(String key, Object value) { + InternalMapContext.setObject(key, value); + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is select count ignore-fetch-scope method? + * + * @param invocation Method invocation. (NotNull) + * @return Determination. + */ + protected boolean isSelectCountIgnoreFetchScopeMethod( + MethodInvocation invocation) { + final String name = invocation.getMethod().getName(); + return name.startsWith("readCount") || name.startsWith("selectCount"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Is the method abstract? + * + * @param method Method. (NotNull) + * @return Determination. (NotNull) + */ + public boolean isAbstract(Method method) { + final int mod = method.getModifiers(); + return Modifier.isAbstract(mod); + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoInterceptor.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,20 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import jp.sf.pal.addresslist.db.allcommon.jdbc.LatestSqlProvider; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +/** + * The provider of latest SQL as S2Dao. This instance should be singleton. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoLatestSqlProvider implements LatestSqlProvider { + + public String getDisplaySql() { + return InternalSqlLogRegistry.peekCompleteSql(); + } + + public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataExtension.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1460 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.BehaviorSelector; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.annotation.OutsideSql; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException; +import jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException; +import jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException; +import jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.rshandler.InternalBeanArrayMetaDataResultSetHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.rshandler.InternalBeanListMetaDataResultSetHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteAutoStaticCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteBatchAutoStaticCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteQueryAutoDynamicCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalInsertAutoDynamicCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalInsertBatchAutoStaticCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalProcedureCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateAutoDynamicCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateBatchAutoStaticCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateDynamicCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateModifiedOnlyCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateQueryAutoDynamicCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.SqlCommand; +import org.seasar.dao.TableNaming; +import org.seasar.dao.dbms.DbmsManager; +import org.seasar.dao.impl.BeanMetaDataImpl; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.impl.ResultSetHandlerFactoryImpl; +import org.seasar.dao.impl.SelectDynamicCommand; +import org.seasar.dao.impl.UpdateAutoStaticCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.MethodUtil; + +/** + * The extension of DaoMetaDataImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoMetaDataExtension extends DaoMetaDataImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataExtension.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** Bean enhancer. */ + protected BeanEnhancer beanEnhancer; + + /** The factory of annotation reader. */ + protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory; + + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The selector of behavior. {Since DBFlute-0.7.1} */ + protected BehaviorSelector _behaviorSelector; + + /** The lock monitor of method initialization. */ + protected Object _methodInitializationLockMonitor = new Object(); + + /** The determination of internal debug. {Since DBFlute-0.6.2} */ + protected boolean _internalDebug; + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataExtension() { + } + + //========================================================================== + // ========= + // Initialize Override + // =================== + @Override + public void initialize() { + beanClass = daoAnnotationReader.getBeanClass(); + daoInterface = getDaoInterface(daoClass); + daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final Connection conn = getConnection();// It is first impact to + // Database! + try { + final DatabaseMetaData dbMetaData = getMetaData(conn); + dbms = DbmsManager.getDbms(getDatabaseProductName(dbMetaData)); + } finally { + close(conn); + } + this.beanMetaData = beanMetaDataFactory.createBeanMetaData( + daoInterface, beanClass); + checkSingleRowUpdateForAll = daoAnnotationReader + .isCheckSingleRowUpdate(); + + // Comment out for lazy-load! + // setupSqlCommand(); + } + + //========================================================================== + // ========= + // SqlCommand Setup Override + // ========================= + @Override + public SqlCommand getSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + synchronized (_methodInitializationLockMonitor) { + cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + if (_log.isDebugEnabled()) { + _log + .debug("...Getting sqlCommand as cache because the previous thread have already initilized."); + } + return cmd; + } + if (_log.isDebugEnabled()) { + _log.debug("...Initializing sqlCommand for " + methodName + + "()."); + } + cmd = initializeSqlCommand(methodName); + } + return cmd; + } + + protected SqlCommand initializeSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql()) { + return initializeSpecifiedOutsideSqlCommand(methodName, + outsideSqlContext); + } + } + final Method[] methods = daoBeanDesc.getMethods(methodName); + if (methods.length == 1 && MethodUtil.isAbstract(methods[0])) { + setupMethod(methods[0]); + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + throw new MethodNotFoundRuntimeException(daoClass, methodName, null); + } + + protected SqlCommand initializeSpecifiedOutsideSqlCommand( + String sqlCommandKey, OutsideSqlContext outsideSqlContext) + throws MethodNotFoundRuntimeException { + final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext + .getMethodName());// By real method name. + if (methods.length == 1 + && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) { + final Method method = methods[0]; + if (isOutsideSqlDaoMethodSelect(method)) { + setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, + outsideSqlContext); + } else if (isOutsideSqlDaoMethodCall(method)) { + setupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, + outsideSqlContext); + } else { + setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, + outsideSqlContext); + } + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey); + if (cmd != null) { + return cmd; + } + String msg = "Internal Error! The sql-command is not found:"; + msg = msg + " sqlCommandKey=" + sqlCommandKey; + msg = msg + " sqlCommands=" + sqlCommands; + throw new IllegalStateException(msg); + } + + protected boolean isOutsideSqlDaoMethodSelect(Method method) { + return method.getName().startsWith("select"); + } + + protected boolean isOutsideSqlDaoMethodCall(Method method) { + return method.getName().startsWith("call"); + } + + //========================================================================== + // ========= + // Assert Override + // =============== + @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override + protected void setupMethodByAuto(Method method) { + final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); + if (outsideSql != null) { + String msg = "This method '" + method.getName() + + "()' should use Outside Sql but the file was not found!"; + msg = msg + " Expected sql file name is '" + + method.getDeclaringClass().getSimpleName() + "_" + + method.getName() + ".sql'"; + throw new IllegalStateException(msg); + } + super.setupMethodByAuto(method); + } + + //========================================================================== + // ========= + // ConditionBean Override + // ====================== + @Override + protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. + final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); + final String[] argNames = daoAnnotationReader.getArgNames(method); + final String query = daoAnnotationReader.getQuery(method); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + final Class[] types = method.getParameterTypes(); + final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, + query); + cmd.setArgNames(argNames); + cmd.setArgTypes(types); + putSqlCommand(method.getName(), cmd); + return true; + } + + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + // For condition-bean! + protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); + return cmd; + } + + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + //========================================================================== + // ========= + // Insert and Update and Delete By Auto Override + // ============================================= + // ----------------------------------------------------- + // Insert + // ------ + @Override + protected void setupInsertMethodByAuto(final Method method) { + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand command; + if (isUpdateSignatureForBean(method)) { + final InternalInsertAutoDynamicCommand cmd = new InternalInsertAutoDynamicCommand(); + cmd.setBeanMetaData(getBeanMetaData()); + cmd.setDataSource(dataSource); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd.setPropertyNames(propertyNames); + cmd.setStatementFactory(statementFactory); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + command = cmd; + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + final InternalInsertBatchAutoStaticCommand cmd = new InternalInsertBatchAutoStaticCommand( + dataSource, statementFactory, getBeanMetaData(), + propertyNames, returningRows); + command = cmd; + } + putSqlCommand(method.getName(), command); + } + + // ----------------------------------------------------- + // Update + // ------ + @Override + protected void setupUpdateMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalUpdateQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + if (isUnlessNull(method.getName())) { + cmd = createInternalUpdateAutoDynamicCommand(method, + propertyNames); + } else if (isModifiedOnly(method.getName())) { + cmd = createInternalUpdateModifiedOnlyCommand(method, + propertyNames); + } else { + cmd = createInternalUpdateAutoStaticCommand(method, + propertyNames); + } + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalUpdateBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand( + final Method method, final String[] propertyNames) { + final UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand( + dataSource, statementFactory, beanMetaData, propertyNames); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand createInternalUpdateAutoDynamicCommand( + Method method, String[] propertyNames) { + final InternalUpdateAutoDynamicCommand cmd = newUpdateAutoDynamicCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand newUpdateAutoDynamicCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateAutoDynamicCommand(ds, sf); + } + + protected InternalUpdateModifiedOnlyCommand createInternalUpdateModifiedOnlyCommand( + final Method method, final String[] propertyNames) { + final InternalUpdateModifiedOnlyCommand cmd = newInternalUpdateModifiedOnlyCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateModifiedOnlyCommand newInternalUpdateModifiedOnlyCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateModifiedOnlyCommand(ds, sf); + } + + protected InternalUpdateBatchAutoStaticCommand createInternalUpdateBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalUpdateBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows, isUpdateVersionNoAutoIncrementOnMemory(method)) { + @Override + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Delete + // ------ + @Override + protected void setupDeleteMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalDeleteQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + cmd = createInternalDeleteAutoStaticCommand(method, propertyNames); + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalDeleteBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected InternalDeleteAutoStaticCommand createInternalDeleteAutoStaticCommand( + final Method method, final String[] propertyNames) { + final InternalDeleteAutoStaticCommand cmd = new InternalDeleteAutoStaticCommand( + dataSource, statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + return cmd; + } + + protected InternalDeleteBatchAutoStaticCommand createInternalDeleteBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalDeleteBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows) { + @Override + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Common Helper + // ------------- + protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) { + if (isNonstrictMethod(method)) { + return createNonConcurrencyBmdFactory().createBeanMetaData( + getBeanClass()); + } else { + return getBeanMetaData(); + } + } + + protected boolean isUpdateVersionNoAutoIncrementOnMemory(Method method) { + return !isNonstrictMethod(method); + } + + protected boolean isNonstrictMethod(Method method) { + return method.getName().contains("Nonstrict"); + } + + protected BeanMetaDataFactory createNonConcurrencyBmdFactory() { + final S2BeanMetaDataFactoryImpl nonConcurrencyBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + public boolean hasVersionNoPropertyType() { + return false; + } + + public boolean hasTimestampPropertyType() { + return false; + } + }; + } + }; + nonConcurrencyBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + nonConcurrencyBmdFactory + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + nonConcurrencyBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + nonConcurrencyBmdFactory.setTableNaming(this.tableNaming); + nonConcurrencyBmdFactory.setDataSource(this.dataSource); + nonConcurrencyBmdFactory + .setDaoNamingConvention(this.daoNamingConvention); + nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer); + return nonConcurrencyBmdFactory; + } + + protected boolean isFirstArgumentConditionBean(final Method method) { + final Class[] pmbTypes = method.getParameterTypes(); + return pmbTypes.length > 0 + && ConditionBean.class.isAssignableFrom(pmbTypes[0]); + } + + protected void handleBatchUpdateResultWithOptimisticLock( + PreparedStatement ps, List list, int[] result, Method method) + throws SQLException { + if (ConditionBeanContext.isOracle()) { + final int updateCount = ps.getUpdateCount(); + handleBatchUpdateResultWithOptimisticLockByUpdateCount(list, + updateCount, method); + } else { + handleBatchUpdateResultWithOptimisticLockByResult(list, result, + method); + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByUpdateCount( + List list, int updateCount, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (updateCount < 0) { + return;// for Safety! + } + final int entityCount = list.size(); + if (updateCount < entityCount) { + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " updateCount=" + updateCount; + msg = msg + " entityCount=" + entityCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(0), 0, + updateCount); + } + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByResult( + List list, Object result, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (!(result instanceof int[])) { + return;// for Safety! + } + final int[] updatedCountArray = (int[]) result; + final int entityCount = list.size(); + int index = 0; + boolean alreadyUpdated = false; + for (int oneUpdateCount : updatedCountArray) { + if (entityCount <= index) { + break;// for Safety! + } + if (oneUpdateCount == 0) { + alreadyUpdated = true; + break; + } else if (oneUpdateCount > 1) { + String msg = "The entity updated two or more records in batch update:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updatedCount=" + oneUpdateCount; + msg = msg + " allEntities=" + list; + throw new EntityDuplicatedException(msg); + } + ++index; + } + if (alreadyUpdated) { + int updateCount = 0; + for (int oneUpdateCount : updatedCountArray) { + updateCount = updateCount + oneUpdateCount; + } + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updateCount=" + updateCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(index), + 0, updateCount); + } + } + } + + //========================================================================== + // ========= + // OutsideSql Override + // =================== + // ----------------------------------------------------- + // Normal OutsideSql + // ----------------- + @Override + protected void setupSelectMethodByManual(Method method, String sql) { + final Class[] pmbTypes = method.getParameterTypes(); + final String[] argNames = this.daoAnnotationReader.getArgNames(method); + final Class[] argTypes; + if (pmbTypes != null + && pmbTypes.length > 0 + && CursorHandler.class + .isAssignableFrom(pmbTypes[pmbTypes.length - 1])) { + argTypes = new Class[pmbTypes.length - 1]; + for (int i = 0; i < pmbTypes.length - 1; i++) { + argTypes[i] = pmbTypes[i]; + } + } else { + argTypes = pmbTypes; + } + final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method); + registerSqlCommand(method.getName(), method, sql, argNames, argTypes, + myBeanMetaData); + } + + protected BeanMetaData getOutsideSqlBeanMetaData(Method method) { + final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method); + if (beanClass4SelectMethodByManual.equals(getBeanClass())) { + return getBeanMetaData(); + } + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + // - - - - - - - - - - - - + // Select + // - - - + protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + // - - - - - - - - - - - - - - - - + // Create customized BeanMetaData. + // - - - - - - - - - - - - - - - - + final Class lastestArguementType = method.getParameterTypes()[method + .getParameterTypes().length - 1]; + final ResultSetHandler myResultSetHandler; + if (Class.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // EntityHandling + // - - - - - - - - + final Class customizeEntityType = (Class) resultTypeSpecification; + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType); + if (List.class.isAssignableFrom(method.getReturnType())) { + myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + myBeanMetaData, customizeEntityType); + } else { + throw new UnsupportedOperationException( + "The return type of method is unsupported: method.getReturnType()=" + + method.getReturnType()); + // myResultSetHandler = + // createSpecifiedOutsideSqlCustomizeBeanResultSetHandler + // (myBeanMetaData, customizeEntityType); + } + } else if (CursorHandler.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // CursorHandling + // - - - - - - - - + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method); + myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData); + } else { + String msg = "The lastestArguementType is unsupported:"; + msg = msg + " lastestArguementType=" + lastestArguementType; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + + // - - - - - - - - - - - + // Register Sql-Command. + // - - - - - - - - - - - + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + myResultSetHandler); + } + + protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData( + Class clazz) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(clazz); + } + + /** + * Create the handler of result set of specified outside-sql for the list of + * customize bean. + * + * @param specifiedBeanMetaData Specified bean meta data. (NotNull) + * @param customizeEntityType The type of customize entity. (NotNull) + * @return The handler of result set. (NotNull) + */ + protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + BeanMetaData specifiedBeanMetaData, Class customizeEntityType) { + final ValueType valueType = ValueTypes + .getValueType(customizeEntityType); + if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { + return new InternalObjectListResultSetHandler(valueType); + } + final InternalRowCreator rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData); + final InternalRelationRowCreator relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData); + return new InternalBeanListMetaDataResultSetHandler( + specifiedBeanMetaData, rowCreator, relationRowCreator); + } + + protected InternalRowCreator createSpecifiedOutsideSqlInternalRowCreator( + BeanMetaData bmd) { + final Class clazz = bmd.getBeanClass(); + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createSpecifiedOutsideSqlInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); + } + + protected class InternalObjectListResultSetHandler implements + ResultSetHandler { + private ValueType valueType; + + public InternalObjectListResultSetHandler(ValueType valueType) { + this.valueType = valueType; + } + + public Object handle(ResultSet rs) throws SQLException { + final List ret = new ArrayList(); + while (rs.next()) { + ret.add(valueType.getValue(rs, 1)); + } + return ret; + } + } + + protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData( + Method method) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler( + BeanMetaData specifiedBeanMetaData) { + return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This + // is + // dummy + // for + // cursor + // handling + // ! + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + final InternalUpdateDynamicCommand cmd = new InternalUpdateDynamicCommand( + dataSource, statementFactory) { + @Override + public Object execute(Object[] args) { + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + Object arg = args[1]; + return super.execute(new Object[] { arg }); + } + }; + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + // - - - - - - - - - - - - + // Call Procedure + // - - - - - - - + protected void setupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final Object pmb = outsideSqlContext.getParameterBean(); + final String procedureName = outsideSqlContext.getOutsideSqlPath(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final InternalProcedureMetaDataFactory factory = createInternalProcedureMetaDataFactory(); + factory.setValueTypeFactory(valueTypeFactory); + final Class pmbType = pmb != null ? pmb.getClass() : null; + final InternalProcedureMetaData metaData = factory + .createProcedureMetaData(procedureName, pmbType); + final InternalProcedureCommand cmd = createInternalProcedureCommand( + method, metaData); + putSqlCommand(sqlCommandKey, cmd); + } + + protected InternalProcedureMetaDataFactory createInternalProcedureMetaDataFactory() { + return new InternalProcedureMetaDataFactory(); + } + + protected InternalProcedureCommand createInternalProcedureCommand( + Method method, InternalProcedureMetaData metaData) { + final ResultSetHandler resultSetHandler = createResultSetHandler(method); + return new InternalProcedureCommand(dataSource, resultSetHandler, + statementFactory, metaData); + } + + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() { + final S2BeanMetaDataFactoryImpl originalBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return newOutsideSqlCustomizeBeanMetaDataImpl(); + } + }; + originalBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + originalBmdFactory + .setPropertyTypeFactoryBuilder(createOutsideSqlPropertyTypeFactoryBuilder()); + originalBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + originalBmdFactory.setTableNaming(this.tableNaming); + originalBmdFactory.setDataSource(this.dataSource); + originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention); + originalBmdFactory.setBeanEnhancer(this.beanEnhancer); + return originalBmdFactory; + } + + protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() { + return new OutsideSqlCustomizeBeanMetaDataImpl(); + } + + protected static class OutsideSqlCustomizeBeanMetaDataImpl extends + BeanMetaDataImpl { + // Though nothing to override, it uses original class just in case. + } + + protected S2DaoPropertyTypeFactoryBuilderExtension createOutsideSqlPropertyTypeFactoryBuilder() { + final S2DaoPropertyTypeFactoryBuilderExtension impl = new S2DaoPropertyTypeFactoryBuilderExtension(); + if (columnNaming == null) { + String msg = "Internal Error! The columnNaming should not be null! {Failed to Injection!}"; + throw new IllegalStateException(msg); + } + impl.setColumnNaming(columnNaming); + impl.setValueTypeFactory(valueTypeFactory); + return impl; + } + + protected Class getOutsideSqlDefaultBeanClass(Method method) { + final Class retType = method.getReturnType(); + if (java.util.List.class.isAssignableFrom(retType)) { + final Class elementType = InternalMethodUtil + .getElementTypeOfListFromReturnMethod(method); + if (elementType != null) { + return elementType; + } else { + return getBeanClass(); + } + } else if (retType.isArray()) { + return retType.getComponentType(); + } else if (retType.isPrimitive() + || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) { + return getBeanClass(); + } else { + return retType; + } + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + BeanMetaData myBeanMetaData) { + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + createResultSetHandler(myBeanMetaData, method)); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + ResultSetHandler myResultSetHandler) { + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(myResultSetHandler); + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + S2DaoSelectDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + InternalUpdateDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + //========================================================================== + // ========= + // Common Handlnig + // =============== + @Override + protected void putSqlCommand(String methodName, SqlCommand cmd) { + sqlCommands.put(methodName, cmd); + } + + protected boolean isCheckSingleRowUpdate(Method method) { + return checkSingleRowUpdateForAll + & daoAnnotationReader.isCheckSingleRowUpdate(method); + } + + //========================================================================== + // ========= + // Customize SelectDynamicCommand Creation + // ======================================= + /** + * Create the customize select dynamic command that is for all select SQL on + * DBFlute. + * + * @param handler The handler of result set. (NotNull) + * @return The customize select dynamic command. (NotNull) + */ + protected S2DaoSelectDynamicCommand createCustomizeSelectDynamicCommand( + ResultSetHandler handler) { + return new S2DaoSelectDynamicCommand(dataSource, statementFactory, + handler); + } + + //========================================================================== + // ========= + // ResultSetHandler Override + // ========================= + @Override + protected ResultSetHandler createResultSetHandler(Method method) { + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, beanMetaData, method); + } + + protected ResultSetHandler createResultSetHandler( + BeanMetaData specifiedBeanMetaData, Method method) {// For specified + // BeanMetaData + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, specifiedBeanMetaData, method); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected DatabaseMetaData getMetaData(Connection conn) { + try { + return conn.getMetaData(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected String getDatabaseProductName(DatabaseMetaData dbMetaData) { + try { + return dbMetaData.getDatabaseProductName(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Exception Handlnig + // ================== + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // ResultSetHandlerFactoryImpl Extension + // ===================================== + public static class ResultSetHandlerFactoryExtension extends + ResultSetHandlerFactoryImpl { + public ResultSetHandlerFactoryExtension() { + super(); + } + + @Override + protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25) + return createInternalRowCreator(null); + } + + @Override + protected RelationRowCreator createRelationRowCreator() { + return createInternalRelationRowCreator(null); + } + + @Override + protected ResultSetHandler createBeanListMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanListMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + @Override + protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanArrayMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + protected InternalRowCreator createInternalRowCreator(BeanMetaData bmd) { + final Class clazz = bmd != null ? bmd.getBeanClass() : null; + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); // Not yet implemented + // about performance + // tuning! + } + } + + //========================================================================== + // ========= + // Vert Internal + // ============= + protected static class InternalMethodUtil { + public static Class getElementTypeOfListFromReturnMethod(Method method) { + return InternalReflectionUtil + .getElementTypeOfListFromReturnType(method); + } + } + + protected static class InternalReflectionUtil { + public static Class getElementTypeOfList(final Type parameterizedList) { + if (!(parameterizedList instanceof ParameterizedType)) { + return null; + } + final ParameterizedType parameterizedType = ParameterizedType.class + .cast(parameterizedList); + final Type rawType = parameterizedType.getRawType(); + if (!(rawType instanceof Class)) { + return null; + } + final Class rawClass = Class.class.cast(rawType); + if (!rawClass.isAssignableFrom(List.class)) { + return null; + } + final Type[] actualTypeArgument = parameterizedType + .getActualTypeArguments(); + if (actualTypeArgument == null || actualTypeArgument.length != 1) { + return null; + } + if (!(actualTypeArgument[0] instanceof Class)) { + return null; + } + return Class.class.cast(actualTypeArgument[0]); + } + + public static Class getElementTypeOfListFromParameterType( + final Method method, final int parameterPosition) { + final Type[] pmbTypes = method.getGenericParameterTypes(); + return getElementTypeOfList(pmbTypes[parameterPosition]); + } + + public static Class getElementTypeOfListFromReturnType( + final Method method) { + return getElementTypeOfList(method.getGenericReturnType()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Sql File Encoding + // ----------------- + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + // ----------------------------------------------------- + // Bean Enhancer + // ------------- + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Annotation Reader Factory + // ------------------------- + public void setAnnotationReaderFactory( + org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + public BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + public void setBehaviorSelector(final BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(final boolean internalDebug) { + this._internalDebug = internalDebug; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,655 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import jp.sf.pal.addresslist.db.allcommon.DBFluteConfig; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +import org.seasar.dao.AnnotationReaderFactory; +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.DaoAnnotationReader; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.DaoNamingConvention; +import org.seasar.dao.DtoMetaDataFactory; +import org.seasar.dao.ProcedureMetaDataFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.ResultSetHandlerFactory; +import org.seasar.dao.TableNaming; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.pager.PagingSqlRewriter; +import org.seasar.extension.jdbc.ResultSetFactory; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.Disposable; +import org.seasar.framework.util.DisposableUtil; + +/** + * The implementation of DaoMetaDataFactory for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoMetaDataFactoryImpl implements DaoMetaDataFactory, Disposable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataFactoryImpl.class); + + // ----------------------------------------------------- + // For Logging + // ----------- + /** The binding annotation for xaDataSource. {bindingType=may} */ + public static final String xaDataSource_BINDING = "bindingType=may"; + + // ----------------------------------------------------- + // Factory Basic + // ------------- + public static final String dataSource_BINDING = "bindingType=must"; + + public static final String annotationReaderFactory_BINDING = "bindingType=must"; + + public static final String valueTypeFactory_BINDING = "bindingType=must"; + + public static final String beanMetaDataFactory_BINDING = "bindingType=must"; + + public static final String daoNamingConvention_BINDING = "bindingType=must"; + + public static final String resultSetHandlerFactory_BINDING = "bindingType=must"; + + public static final String dtoMetaDataFactory_BINDING = "bindingType=must"; + + public static final String procedureMetaDataFactory_BINDING = "bindingType=must"; + + public static final String pagingSQLRewriter_BINDING = "bindingType=may"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Factory Basic + // ------------- + protected DataSource dataSource; + + protected AnnotationReaderFactory annotationReaderFactory; + + protected ValueTypeFactory valueTypeFactory; + + protected BeanMetaDataFactory beanMetaDataFactory; + + protected DaoNamingConvention daoNamingConvention; + + protected ResultSetHandlerFactory resultSetHandlerFactory; + + protected DtoMetaDataFactory dtoMetaDataFactory; + + protected ProcedureMetaDataFactory procedureMetaDataFactory; + + protected PagingSqlRewriter pagingSqlRewriter; + + protected Map daoMetaDataCache = new HashMap(); + + protected boolean initialized; + + protected boolean useDaoClassForLog; + + protected String sqlFileEncoding; + + protected BeanEnhancer beanEnhancer; + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The lock monitor of DAO meta data initialization. */ + protected Object _daoMetaDataInitializationLockMonitor = new Object(); + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataFactoryImpl(DataSource dataSource, + AnnotationReaderFactory annotationReaderFactory, + XADataSource xaDataSource) { + this.dataSource = dataSource; + this.annotationReaderFactory = annotationReaderFactory; + + _log + .info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}"); + showInformation(dataSource, xaDataSource); + + // Stop the LinkageError! + ConditionBeanContext.initialize(); + + initializeDatabaseProductNameOfContext(xaDataSource); + + handleSqlLogRegistry(); + + DBFluteConfig.getInstance().lock(); + _log.info("* * * * */"); + } + + protected void showInformation(javax.sql.DataSource dataSource, + javax.sql.XADataSource xaDataSource) { + final StringBuilder sb = new StringBuilder(); + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + final String url = xaDataSourceImpl.getURL(); + final String user = xaDataSourceImpl.getUser(); + sb.append(" [XADataSource]:").append(getLineSeparator()); + sb.append(" driver = " + driverClassName).append( + getLineSeparator()); + sb.append(" url = " + url).append(getLineSeparator()); + sb.append(" user = " + user); + } + _log.info("{Injection Information}" + getLineSeparator() + sb); + } + + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + + // ----------------------------------------------------- + // Database Product Name + // --------------------- + protected void initializeDatabaseProductNameOfContext( + javax.sql.XADataSource xaDataSource) { + if (getDatabaseProductNameFromContext() != null) { + return; + } + + // From JDBC Driver! + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + if (driverClassName != null) { + if (setupDatabaseProductNameByDriverClassName(driverClassName)) { + _log + .info("...Initializing database product name from driverClassName: " + + getDatabaseProductNameFromContext()); + return; + } + } + } + + _log.info("...Initializing database product name as default: H2"); + setDatabaseProductNameToContext("H2"); + } + + protected String getDatabaseProductNameFromContext() { + return ConditionBeanContext.getDatabaseProductName(); + } + + protected void setDatabaseProductNameToContext(String name) { + ConditionBeanContext.setDatabaseProductName(name); + } + + protected boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + return ConditionBeanContext + .setupDatabaseProductNameByDriverClassName(driverClassName); + } + + //========================================================================== + // ========= + // Implementation + // ============== + @SuppressWarnings("unchecked") + public DaoMetaData getDaoMetaData(final Class daoClass) { + if (!initialized) { + DisposableUtil.add(this); + initialized = true; + } + final String key = daoClass.getName(); + + // [A] + DaoMetaData dmd = getSynchronizedDaoMetaDataCache(key); + + // [B] + if (dmd != null) { + return dmd; + } + + // [C] + synchronized (_daoMetaDataInitializationLockMonitor) {// One Thread Only + // Entered + // [D] + dmd = getSynchronizedDaoMetaDataCache(key); + // [E] + if (dmd != null) { + // The second thread that stops at [C] can find + // because the first thread have already initialized. + if (_log.isDebugEnabled()) { + _log + .debug("...Getting daoMetaData as cache because the previous thread have already initilized."); + } + return dmd; + } + // [F] + if (_log.isDebugEnabled()) { + _log.debug("...Creating daoMetaData for " + + daoClass.getSimpleName() + "."); + } + final DaoMetaData dmdi = createDaoMetaData(daoClass); + putSynchronizedDaoMetaDataCache(key, dmdi); + } + // [G] + dmd = getSynchronizedDaoMetaDataCache(key); + if (dmd != null) { + return dmd; + } + String msg = "The cache should have data meta data here: key=" + key + + " cache=" + daoMetaDataCache; + throw new IllegalStateException(msg); + } + + @SuppressWarnings("unchecked") + protected void putSynchronizedDaoMetaDataCache(String key, DaoMetaData dmd) { + synchronized (daoMetaDataCache) { + daoMetaDataCache.put(key, dmd); + } + } + + protected DaoMetaData getSynchronizedDaoMetaDataCache(String key) { + DaoMetaData dmd = null; + synchronized (daoMetaDataCache) { + dmd = (DaoMetaData) daoMetaDataCache.get(key); + } + return dmd; + } + + //========================================================================== + // ========= + // DataMetaData Creation + // ===================== + protected DaoMetaData createDaoMetaData(final Class daoClass) { + final BeanDesc daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final DaoAnnotationReader daoAnnotationReader = annotationReaderFactory + .createDaoAnnotationReader(daoBeanDesc); + + final DaoMetaDataImpl daoMetaData = createDaoMetaDataExtension(); + daoMetaData.setDaoClass(daoClass); + daoMetaData.setDataSource(dataSource); + daoMetaData.setStatementFactory(createCustomizeStatememtFactory()); + daoMetaData.setResultSetFactory(createCustomizeResultSetFactory()); + daoMetaData.setValueTypeFactory(valueTypeFactory); + daoMetaData.setBeanMetaDataFactory(getBeanMetaDataFactory()); + daoMetaData.setDaoNamingConvention(getDaoNamingConvention()); + daoMetaData.setUseDaoClassForLog(useDaoClassForLog); + daoMetaData.setDaoAnnotationReader(daoAnnotationReader); + daoMetaData.setProcedureMetaDataFactory(procedureMetaDataFactory); + daoMetaData.setDtoMetaDataFactory(dtoMetaDataFactory); + daoMetaData.setResultSetHandlerFactory(resultSetHandlerFactory); + if (sqlFileEncoding != null) { + daoMetaData.setSqlFileEncoding(sqlFileEncoding); + } + if (pagingSqlRewriter != null) { + daoMetaData.setPagingSQLRewriter(pagingSqlRewriter); + } + daoMetaData.initialize(); + return daoMetaData; + } + + protected S2DaoMetaDataExtension createDaoMetaDataExtension() { + final S2DaoMetaDataExtension dmdExtension = newDaoMetaDataExtension(); + dmdExtension.setBeanEnhancer(beanEnhancer); + dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory); + dmdExtension.setColumnNaming(this.columnNaming); + dmdExtension + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + dmdExtension + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + dmdExtension.setTableNaming(tableNaming); + dmdExtension.setInternalDebug(DBFluteConfig.getInstance() + .isInternalDebug()); + return dmdExtension; + } + + protected S2DaoMetaDataExtension newDaoMetaDataExtension() { + return new S2DaoMetaDataExtension(); + } + + //========================================================================== + // ========= + // Result Set Factory + // ================== + /** + * Create the customize result set factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected ResultSetFactory createCustomizeResultSetFactory() { + return new FetchNarrowingResultSetFactory(); + } + + //========================================================================== + // ========= + // Statement Factory + // ================= + /** + * Create the customize statement factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected StatementFactory createCustomizeStatememtFactory() { + final StatementConfig defaultStatementConfig = DBFluteConfig + .getInstance().getDefaultStatementConfig(); + final boolean internalDebug = DBFluteConfig.getInstance() + .isInternalDebug(); + return new StatementFactory() { + public PreparedStatement createPreparedStatement(Connection con, + String sql) { + try { + final StatementConfig config = findStatementConfigOnThread(); + ; + final int resultSetType; + if (config != null && config.hasResultSetType()) { + resultSetType = config.getResultSetType(); + } else if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + resultSetType = defaultStatementConfig + .getResultSetType(); + } else { + resultSetType = java.sql.ResultSet.TYPE_FORWARD_ONLY; + } + final int resultSetConcurrency = java.sql.ResultSet.CONCUR_READ_ONLY; + if (internalDebug) { + _log.debug("...Creating prepareStatement(sql, " + + resultSetType + ", " + resultSetConcurrency + + ")"); + } + final PreparedStatement ps = con.prepareStatement(sql, + resultSetType, resultSetConcurrency); + if (config != null && config.hasStatementOptions()) { + if (internalDebug) { + _log + .debug("...Setting statement config as request: " + + config); + } + reflectStatementOptions(config, ps); + } else { + reflectDefaultOptionsToStatementIfNeeds(ps); + } + return ps; + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + public CallableStatement createCallableStatement(Connection conn, + String sql) { + return prepareCall(conn, sql); + } + + protected StatementConfig findStatementConfigOnThread() { + final StatementConfig config; + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + config = cb.getStatementConfig(); + } else if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + config = context.getStatementConfig(); + } else { + config = null; + } + return config; + } + + protected void reflectDefaultOptionsToStatementIfNeeds( + PreparedStatement ps) { + if (defaultStatementConfig != null + && defaultStatementConfig.hasStatementOptions()) { + if (internalDebug) { + _log.debug("...Setting statement config as default: " + + defaultStatementConfig); + } + reflectStatementOptions(defaultStatementConfig, ps); + return; + } + } + + protected void reflectStatementOptions(StatementConfig config, + PreparedStatement ps) { + try { + if (config.hasQueryTimeout()) { + ps.setQueryTimeout(config.getQueryTimeout()); + } + if (config.hasFetchSize()) { + ps.setFetchSize(config.getFetchSize()); + } + if (config.hasMaxRows()) { + ps.setMaxRows(config.getMaxRows()); + } + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + + protected CallableStatement prepareCall(Connection conn, String sql) { + try { + return conn.prepareCall(sql); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, + Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + }; + } + + //========================================================================== + // ========= + // Dispose + // ======= + public synchronized void dispose() { + daoMetaDataCache.clear(); + initialized = false; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return System.getProperty("line.separator"); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Factory Basic + // ------------- + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected BeanMetaDataFactory getBeanMetaDataFactory() { + return beanMetaDataFactory; + } + + public void setBeanMetaDataFactory( + final BeanMetaDataFactory beanMetaDataFactory) { + this.beanMetaDataFactory = beanMetaDataFactory; + } + + public DaoNamingConvention getDaoNamingConvention() { + return daoNamingConvention; + } + + public void setDaoNamingConvention( + final DaoNamingConvention daoNamingConvention) { + this.daoNamingConvention = daoNamingConvention; + } + + public void setAnnotationReaderFactory( + final AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + public void setDataSource(final DataSource dataSource) { + this.dataSource = dataSource; + } + + public void setUseDaoClassForLog(final boolean userDaoClassForLog) { + useDaoClassForLog = userDaoClassForLog; + } + + public void setResultSetHandlerFactory( + final ResultSetHandlerFactory resultSetHandlerFactory) { + this.resultSetHandlerFactory = resultSetHandlerFactory; + } + + public void setDtoMetaDataFactory( + final DtoMetaDataFactory dtoMetaDataFactory) { + this.dtoMetaDataFactory = dtoMetaDataFactory; + } + + public void setProcedureMetaDataFactory( + ProcedureMetaDataFactory procedureMetaDataFactory) { + this.procedureMetaDataFactory = procedureMetaDataFactory; + } + + public void setPagingSQLRewriter(final PagingSqlRewriter pagingSqlRewriter) { + this.pagingSqlRewriter = pagingSqlRewriter; + } + + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + public void setSqlFileEncoding(final String encoding) { + sqlFileEncoding = encoding; + } + + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,215 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanAnnotationReader; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.Dbms; +import org.seasar.dao.PropertyTypeFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.AbstractPropertyTypeFactory; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; + +/** + * The factory builder of property type for S2Dao. {Since S2Dao-1.0.47} + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoPropertyTypeFactoryBuilderExtension implements + PropertyTypeFactoryBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected ColumnNaming columnNaming; + + //========================================================================== + // ========= + // Build + // ===== + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming); + } + + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader, Dbms dbms, + DatabaseMetaData databaseMetaData) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming, dbms); + } + + //========================================================================== + // ========= + // Extension Class + // =============== + protected static class FastPropertyTypeFactoryExtension extends + AbstractPropertyTypeFactory { + + protected DBMeta _dbmeta; + + protected String[] _noPersisteneProps; + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming); + initializeResources(); + } + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming, + Dbms dbms) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming, dbms); + initializeResources(); + } + + protected void initializeResources() { + if (isEntity()) { + _dbmeta = findDBMeta(); + } + _noPersisteneProps = beanAnnotationReader.getNoPersisteneProps(); + } + + protected boolean isEntity() { + return Entity.class.isAssignableFrom(beanClass); + } + + protected boolean hasDBMeta() { + return _dbmeta != null; + } + + protected DBMeta findDBMeta() { + try { + final Entity entity = (Entity) beanClass.newInstance(); + return entity.getDBMeta(); + } catch (Exception e) { + String msg = "beanClass.newInstance() threw the exception: beanClass=" + + beanClass; + throw new RuntimeException(msg, e); + } + } + + public PropertyType[] createBeanPropertyTypes(String tableName) { + final List list = new ArrayList(); + final BeanDesc beanDesc = getBeanDesc(); + for (int i = 0; i < beanDesc.getPropertyDescSize(); ++i) { + final PropertyDesc pd = beanDesc.getPropertyDesc(i); + + // Read-only property is unnecessary! + if (!pd.hasWriteMethod()) { + continue; + } + + // Relation property is unnecessary! + if (isRelation(pd)) { + continue; + } + + final PropertyType pt = createPropertyType(pd); + pt.setPrimaryKey(isPrimaryKey(pd)); + pt.setPersistent(isPersistent(pt)); + list.add(pt); + } + return list.toArray(new PropertyType[list.size()]); + } + + @Override + protected boolean isRelation(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() + && (_dbmeta.hasForeign(propertyName) || _dbmeta + .hasReferrer(propertyName))) { + return true; + } + return hasRelationNoAnnotation(propertyDesc); + } + + protected boolean hasRelationNoAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.hasRelationNo(propertyDesc); + } + + @Override + protected boolean isPrimaryKey(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() && _dbmeta.hasPrimaryKey() + && _dbmeta.hasColumn(propertyName)) { + if (_dbmeta.findColumnInfo(propertyName).isPrimary()) { + return true; + } + } + return hasIdAnnotation(propertyDesc); + } + + protected boolean hasIdAnnotation(PropertyDesc propertyDesc) { + final Dbms dbms = getDbms(); + return beanAnnotationReader.getId(propertyDesc, dbms) != null; + } + + @Override + protected boolean isPersistent(PropertyType propertyType) { + final String propertyName = propertyType.getPropertyName(); + final PropertyDesc propertyDesc = propertyType.getPropertyDesc(); + if ((hasDBMeta() && _dbmeta.hasColumn(propertyName)) + || hasColumnAnnotation(propertyDesc)) { + if (!isElementOfNoPersistentProps(propertyDesc)) { + return true; + } + } + return false; + } + + protected boolean hasColumnAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.getColumnAnnotation(propertyDesc) != null; + } + + protected boolean isElementOfNoPersistentProps(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + final String[] props = _noPersisteneProps; + if (props != null && props.length >= 0) { + for (int i = 0; i < props.length; ++i) { + if (props[i].equals(propertyName)) { + return true; + } + } + } + return false; + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ValueTypeFactory getValueTypeFactory() { + return valueTypeFactory; + } + + public void setValueTypeFactory(ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,491 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand.InternalAbstractDynamicCommand; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicSelectHandler; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * SelectDynamicCommand for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoSelectDynamicCommand extends InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The handler of resultSet. */ + protected ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param dataSource Data source. + * @param statementFactory The factory of statement. + * @param resultSetHandler The handler of resultSet. + */ + public S2DaoSelectDynamicCommand(DataSource dataSource, + StatementFactory statementFactory, ResultSetHandler resultSetHandler) { + super(dataSource, statementFactory); + this.resultSetHandler = resultSetHandler; + } + + //========================================================================== + // ========= + // Very Important Extension + // ======================== + // ----------------------------------------------------- + // SelectDynamicCommand Creation + // ----------------------------- + protected S2DaoSelectDynamicCommand createMySelectDynamicCommand() { + return new S2DaoSelectDynamicCommand(getDataSource(), + getStatementFactory(), resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + // ----------------------------------------------------- + // Top Execute + // ----------- + /** + * @param args The array of argument. (Nullable) + * @return The object of execution result. (Nullable) + */ + public Object execute(Object[] args) { + // - - - - - - - - - - - - + // This is top execution. + // - - - - - - - - - - - - + + if (!ConditionBeanContext.isExistConditionBeanOnThread()) { + // - - - - - - - - - - + // Execute outsideSql. + // - - - - - - - - - - + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isDynamicBinding()) { + return executeOutsideSqlAsDynamic(args, outsideSqlContext); + } else { + return executeOutsideSqlAsStatic(args, outsideSqlContext); + } + } + + // - - - - - - - - - + // Execute default. + // - - - - - - - - - + return executeDefault(args); + } + + // - - - - - - - - - - - - + // Execute conditionBean. + // - - - - - - - - - - - - + final List bindVariableList = new ArrayList(4); + final List bindVariableTypeList = new ArrayList(4); + + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String finalClause; + if (cb.hasUnionQueryOrUnionAllQuery()) { + final String realClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + if (cb.isSelectCountIgnoreFetchScope()) { + // If the query uses union and it selects count, the way of + // select-count is as follows. + finalClause = "select count(*) from (" + realClause + + ") dfmain"; + } else { + finalClause = realClause; + } + } else { + if (cb.isSelectCountIgnoreFetchScope()) { + finalClause = setupRealSelectCountClause(args, + bindVariableList, bindVariableTypeList); + } else { + finalClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + } + } + + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + finalClause, this.resultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + // ----------------------------------------------------- + // Default Execute + // --------------- + /** + * Execute default. + * + * @param args The array of argument. (Nullable) + * @return Result. (Nullable) + */ + protected Object executeDefault(Object args[]) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs = filterArgumentsForResultSetHandler(args); + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + // ----------------------------------------------------- + // OutsideSql Execute + // ------------------ + /** + * Execute outsideSql as static. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsStatic(Object[] args, + OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + /** + * Execute outsideSql as Dynamic. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsDynamic(Object[] args, + OutsideSqlContext outsideSqlContext) { + final Object firstArg; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + firstArg = parameterBean; + } else { + firstArg = args[0]; + } + String filteredSql = getSql(); + if (firstArg != null) { + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(firstArg + .getClass()); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + // Resolve embedded comment for parsing bind variable comment in + // embedded comment. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + for (int i = 0; i < beanDesc.getPropertyDescSize(); i++) { + final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(i); + final Class propertyType = propertyDesc.getPropertyType(); + if (!propertyType.equals(String.class)) { + continue; + } + final String outsideSqlPiece = (String) propertyDesc + .getValue(firstArg); + if (outsideSqlPiece == null) { + continue; + } + final String embeddedComment = "/*$pmb." + + propertyDesc.getPropertyName() + "*/"; + filteredSql = replaceString(filteredSql, embeddedComment, + outsideSqlPiece); + } + } + final S2DaoSelectDynamicCommand outsideSqlCommand = createMySelectDynamicCommand(); + if (outsideSqlContext.isSpecifiedOutsideSql()) { + outsideSqlCommand.setArgNames(new String[] { "pmb" }); + outsideSqlCommand + .setArgTypes(new Class[] { firstArg != null ? firstArg + .getClass() : Object.class }); + } else { + outsideSqlCommand.setArgNames(getArgNames()); + outsideSqlCommand.setArgTypes(getArgTypes()); + } + outsideSqlCommand.setSql(filteredSql); + + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = outsideSqlCommand + .apply(filteredArgs); + final java.util.List bindVariableList = new java.util.ArrayList(); + final java.util.List bindVariableTypeList = new java.util.ArrayList(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + protected Object[] filterArgumentsForResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return args; + } + final Object[] filteredArgs; + if (args[args.length - 1] instanceof jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler) { + filteredArgs = new Object[args.length - 1]; + for (int i = 0; i < args.length - 1; i++) { + filteredArgs[i] = args[i]; + } + } else { + filteredArgs = args; + } + return filteredArgs; + } + + protected ResultSetHandler findSpecifiedResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return this.resultSetHandler; + } + if (args[args.length - 1] instanceof jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler) { + final jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler cursorHandler = (jp.sf.pal.addresslist.db.allcommon.jdbc.CursorHandler) args[args.length - 1]; + return new ResultSetHandler() { + public Object handle(java.sql.ResultSet rs) + throws java.sql.SQLException { + return cursorHandler.handle(rs); + } + }; + } + if (getArgTypes().length + 1 == args.length + && args[args.length - 1] == null) { + String msg = "System Level Exception!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The size of arg types have not been same as the size of arg objects:"; + msg = msg + " argTypes=" + getArgTypes().length + " args=" + + args.length + getLineSeparator(); + msg = msg + + "If the arguments contain ResultSetHandler, the argument value should not be null!" + + getLineSeparator(); + for (int i = 0; i < args.length - 1; i++) { + msg = msg + " args[" + i + "] -- " + args[i] + + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + return this.resultSetHandler; + } + + // ----------------------------------------------------- + // Setup Clause + // ------------ + protected String setupRealClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realClause; + { + final S2DaoSelectDynamicCommand dynamicCommand = createMySelectDynamicCommand(); + dynamicCommand.setArgNames(getArgNames()); + dynamicCommand.setArgTypes(getArgTypes()); + if (cb.isLimitSelect_PKOnly()) { + dynamicCommand.setSql(cb.getSqlClause().getClausePKOnly()); + } else { + dynamicCommand.setSql(cb.getSqlClause().getClause()); + } + final CommandContext ctx = dynamicCommand.apply(args); + realClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realClause; + } + + protected String setupRealSelectCountClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realSelectCountClause; + { + final S2DaoSelectDynamicCommand selectCountCommand = createMySelectDynamicCommand(); + selectCountCommand.setArgNames(getArgNames()); + selectCountCommand.setArgTypes(getArgTypes()); + final String selectClause = "select count(*)"; + String fromWhereClause = cb.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + final String sql = cb.getSqlClause().filterSubQueryIndent( + selectClause + " " + fromWhereClause); + selectCountCommand.setSql(sql); + + final CommandContext ctx = selectCountCommand.apply(args); + realSelectCountClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realSelectCountClause; + } + + protected InternalBasicSelectHandler createBasicSelectHandler( + String realSql, ResultSetHandler specifiedResultSetHandler) { + return newBasicSelectHandler(realSql, specifiedResultSetHandler, + getStatementFactory()); + } + + protected InternalBasicSelectHandler newBasicSelectHandler(String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + return new InternalBasicSelectHandler(getDataSource(), sql, + resultSetHandler, statementFactory) { + @Override + protected void bindArgs(java.sql.PreparedStatement ps, + Object[] args, Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + final ValueType valueType = findValueType(argTypes[i], + args[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (java.sql.SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected ValueType findValueType(Class argType, Object arg) { + ValueType valueType = ValueTypes.getValueType(arg); + if (valueType != null) { + return valueType; + } + valueType = ValueTypes.getValueType(argType); + if (valueType != null) { + return valueType; + } + String msg = "Unknown type¡§argType=" + argType + " args=" + arg; + throw new IllegalStateException(msg); + } + }; + } + + // ----------------------------------------------------- + // Setup Helper + // ------------ + protected Class[] toClassArray(List bindVariableTypeList) { + final Class[] bindVariableTypesArray = new Class[bindVariableTypeList + .size()]; + for (int i = 0; i < bindVariableTypeList.size(); i++) { + final Class bindVariableType = (Class) bindVariableTypeList.get(i); + bindVariableTypesArray[i] = bindVariableType; + } + return bindVariableTypesArray; + } + + protected void addBindVariableInfo(CommandContext ctx, + List bindVariableList, List bindVariableTypeList) { + final Object[] bindVariables = ctx.getBindVariables(); + addBindVariableList(bindVariableList, bindVariables); + final Class[] bindVariableTypes = ctx.getBindVariableTypes(); + addBindVariableTypeList(bindVariableTypeList, bindVariableTypes); + } + + protected void addBindVariableList(List bindVariableList, + Object[] bindVariables) { + for (int i = 0; i < bindVariables.length; i++) { + bindVariableList.add(bindVariables[i]); + } + } + + protected void addBindVariableTypeList(List bindVariableTypeList, + Class[] bindVariableTypes) { + for (int i = 0; i < bindVariableTypes.length; i++) { + bindVariableTypeList.add(bindVariableTypes[i]); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,130 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractBeanMetaDataResultSetHandler extends + InternalAbstractDtoMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + protected RelationRowCreator relationRowCreator; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalAbstractBeanMetaDataResultSetHandler( + BeanMetaData beanMetaData, RowCreator rowCreator, + RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator); + this.beanMetaData = beanMetaData; + this.relationRowCreator = relationRowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + return rowCreator.createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + final Class beanClass = beanMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of relation property cache. Map{String(relationNoSuffix), + * Map{String(columnName), PropertyType}} (NotNull) + * @throws SQLException + */ + protected Map createRelationPropertyCache(Set columnNames) + throws SQLException { + return relationRowCreator + .createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param rpt The type of relation property. (NotNull) + * @param columnNames The set of column name. (NotNull) + * @param relKeyValues The map of rel key values. (Nullable) + * @param relationPropertyCache The map of relation property cache. + * Map{String(relationNoSuffix), Map{String(columnName), + * PropertyType}} (NotNull) + * @return Created relation row. (Nullable) + * @throws SQLException + */ + protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt, + Set columnNames, Map relKeyValues, Map relationPropertyCache) + throws SQLException { + return relationRowCreator.createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + } + + /** + * @param row The row of result list. (NotNull) + */ + protected void postCreateRow(final Object row) { + if (row instanceof Entity) { // DBFlute Target + ((Entity) row).clearModifiedPropertyNames(); + } else { // Basically Unreachable + final BeanMetaData bmd = getBeanMetaData(); + final Set names = bmd.getModifiedPropertyNames(row); + names.clear(); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,89 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import org.seasar.dao.DtoMetaData; +import org.seasar.dao.RowCreator; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.framework.util.CaseInsensitiveSet; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractDtoMetaDataResultSetHandler implements + ResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DtoMetaData dtoMetaData; + + protected RowCreator rowCreator; // [DAO-118] (2007/08/25) + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param dtoMetaData Dto meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + */ + public InternalAbstractDtoMetaDataResultSetHandler(DtoMetaData dtoMetaData, + RowCreator rowCreator) { + this.dtoMetaData = dtoMetaData; + this.rowCreator = rowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + return rowCreator.createPropertyCache(columnNames, dtoMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + final Class beanClass = dtoMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + protected Set createColumnNames(final ResultSetMetaData rsmd) + throws SQLException { + final int count = rsmd.getColumnCount(); + final Set columnNames = new CaseInsensitiveSet(); + for (int i = 0; i < count; ++i) { + final String columnName = rsmd.getColumnLabel(i + 1); + final int pos = columnName.lastIndexOf('.'); // [DAO-41] + if (-1 < pos) { + columnNames.add(columnName.substring(pos + 1)); + } else { + columnNames.add(columnName); + } + } + return columnNames; + } + + public DtoMetaData getDtoMetaData() { + return dtoMetaData; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,42 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.rshandler; + +import java.lang.reflect.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanArrayMetaDataResultSetHandler extends + InternalBeanListMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanArrayMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + List list = (List) super.handle(rs); + return list.toArray((Object[]) Array.newInstance(getBeanMetaData() + .getBeanClass(), list.size())); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,236 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.impl.RelationKey; +import org.seasar.dao.impl.RelationRowCache; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanListMetaDataResultSetHandler extends + InternalAbstractBeanMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanListMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; + + final List list = new ArrayList(); + final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); + final boolean hasCB = hasConditionBean(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + + while (rs.next()) { + if (columnNames == null) { + columnNames = createColumnNames(rs.getMetaData()); + } + if (propertyCache == null) { + propertyCache = createPropertyCache(columnNames); + } + + // Create row instance of base table by row property cache. + final Object row = createRow(rs, propertyCache); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { + postCreateRow(row); + list.add(row); + continue; + } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } + for (int i = 0; i < relSize; ++i) { + final RelationPropertyType rpt = getBeanMetaData() + .getRelationPropertyType(i); + if (rpt == null) { + continue; + } + + // Do only selected foreign property for performance if + // condition-bean exists. + if (hasCB + && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) { + continue; + } + + final Map relKeyValues = new HashMap(); + final RelationKey relKey = createRelationKey(rs, rpt, + columnNames, relKeyValues); + Object relationRow = null; + if (relKey != null) { + relationRow = relRowCache.getRelationRow(i, relKey); + if (relationRow == null) { // when no cache + relationRow = createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + if (relationRow != null) { + relRowCache.addRelationRow(i, relKey, relationRow); + postCreateRow(relationRow); + } + } + } + if (relationRow != null) { + final PropertyDesc pd = rpt.getPropertyDesc(); + pd.setValue(row, relationRow); + } + } + postCreateRow(row); + list.add(row); + } + return list; + } + + protected RelationKey createRelationKey(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues) + throws SQLException { + final List keyList = new ArrayList(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final ValueType valueType; + String columnName = rpt.getMyKey(i); + if (columnNames.contains(columnName)) { + final PropertyType pt = getBeanMetaData() + .getPropertyTypeByColumnName(columnName); + valueType = pt.getValueType(); + } else { + final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt + .getYourKey(i)); + columnName = pt.getColumnName() + buildRelationNoSuffix(rpt); + if (columnNames.contains(columnName)) { + valueType = pt.getValueType(); + } else { + return null; + } + } + final Object value = valueType.getValue(rs, columnName); + if (value == null) { + return null; + } + relKeyValues.put(columnName, value); + keyList.add(value); + } + if (keyList.size() > 0) { + Object[] keys = keyList.toArray(); + return new RelationKey(keys); + } else { + return null; + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean isSelectedForeignInfoEmpty() { + if (!hasConditionBean()) { + return true; + } + ConditionBean cb = ConditionBeanContext.getConditionBeanOnThread(); + if (cb.getSqlClause().isSelectedForeignInfoEmpty()) { + return true; + } + return false; + } + + /** + * Has it selected foreign information? You should call hasConditionBean() + * before calling this! + * + * @param relationNoSuffix The suffix of relation NO. (NotNull) + * @return Determination. + */ + protected boolean hasSelectedForeignInfo(String relationNoSuffix) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) { + return true; + } + return false; + } + + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ + protected String buildRelationNoSuffix(RelationPropertyType rpt) { + return "_" + rpt.getRelationNo(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,227 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.PrimaryKeyNotFoundRuntimeException; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoStaticCommand extends + InternalAbstractStaticCommand { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final boolean DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY = true; + + //========================================================================== + // ========= + // Attribute + // ========= + private PropertyType[] propertyTypes; + + private boolean checkSingleRowUpdate = true; + + protected boolean versionNoAutoIncrementOnMemory = DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData); + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + setupPropertyTypes(propertyNames); + setupSql(); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + InternalAbstractAutoHandler handler = createAutoHandler(); + handler.setSql(getSql()); + handler.setLoggingMessageSqlArgs(args); + int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw createNotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } + + protected NotSingleRowUpdatedRuntimeException createNotSingleRowUpdatedRuntimeException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected abstract InternalAbstractAutoHandler createAutoHandler(); + + protected abstract void setupPropertyTypes(String[] propertyNames); + + protected void setupInsertPropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (isInsertTarget(pt)) { + types.add(pt); + } + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected boolean isInsertTarget(PropertyType propertyType) { + if (propertyType.isPrimaryKey()) { + String name = propertyType.getPropertyName(); + final IdentifierGenerator generator = getBeanMetaData() + .getIdentifierGenerator(name); + return generator.isSelfGenerate(); + } + return true; + } + + protected void setupUpdatePropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (pt.isPrimaryKey()) { + continue; + } + types.add(pt); + } + if (types.size() == 0) { + throw new SRuntimeException("EDAO0020"); + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected void setupDeletePropertyTypes(String[] propertyNames) { + } + + protected abstract void setupSql(); + + protected void setupInsertSql() { + BeanMetaData bmd = getBeanMetaData(); + StringBuilder sb = new StringBuilder(100); + sb.append("insert into "); + sb.append(bmd.getTableName()); + sb.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append(pt.getColumnName()); + sb.append(", "); + } + } + sb.setLength(sb.length() - 2); + sb.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append("?, "); + } + } + sb.setLength(sb.length() - 2); + sb.append(")"); + setSql(sb.toString()); + } + + protected void setupUpdateSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(getBeanMetaData().getTableName()); + sb.append(" set "); + String versionNoPropertyName = getBeanMetaData() + .getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName) + && !versionNoAutoIncrementOnMemory) { + sb.append(pt.getColumnName()).append(" = ").append( + pt.getColumnName()).append(" + 1, "); + continue; + } + sb.append(pt.getColumnName()).append(" = ?, "); + } + sb.setLength(sb.length() - 2); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void setupDeleteSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("delete from "); + sb.append(getBeanMetaData().getTableName()); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void checkPrimaryKey() { + BeanMetaData bmd = getBeanMetaData(); + if (bmd.getPrimaryKeySize() == 0) { + throw new PrimaryKeyNotFoundRuntimeException(bmd.getBeanClass()); + } + } + + protected void setupUpdateWhere(StringBuilder sb) { + BeanMetaData bmd = getBeanMetaData(); + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,64 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final boolean returningRows; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + versionNoAutoIncrementOnMemory); + this.returningRows = returningRows; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final InternalAbstractBatchAutoHandler handler = createBatchAutoHandler(); + + // It is unnecessary! + // injectDaoClass(handler); + + handler.setSql(getSql()); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(args); + if (this.returningRows) { + return handler.executeBatch(args); + } else { + final int updatedRows = handler.execute(args); + return new Integer(updatedRows); + } + } + + protected abstract InternalAbstractBatchAutoHandler createBatchAutoHandler(); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,83 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractDynamicCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected Node rootNode; + + protected String[] argNames = new String[0]; + + protected Class[] argTypes = new Class[0]; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Sql Handling + // ============ + public void setSql(String sql) { + super.setSql(sql); + this.rootNode = createInternalSqlParser(sql).parse(); + } + + protected InternalSqlParser createInternalSqlParser(String sql) { + return new InternalSqlParser(sql); + } + + public CommandContext apply(Object[] args) {// It is necessary to be public! + final CommandContext ctx = createCommandContext(args); + rootNode.accept(ctx); + return ctx; + } + + protected CommandContext createCommandContext(Object[] args) { + return createCommandContextCreator().createCommandContext(args); + } + + protected InternalCommandContextCreator createCommandContextCreator() { + return new InternalCommandContextCreator(argNames, argTypes); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String[] getArgNames() { + return argNames; + } + + public void setArgNames(String[] argNames) { + this.argNames = argNames; + } + + public Class[] getArgTypes() { + return argTypes; + } + + public void setArgTypes(Class[] argTypes) { + this.argTypes = argTypes; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,52 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractSqlCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private StatementFactory statementFactory; + + private String sql; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractSqlCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractStaticCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,46 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + super(dataSource, statementFactory, beanMetaData, propertyNames); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return new InternalDeleteAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,57 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return newInternalBatchAutoHandler(); + } + + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,103 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + String[] argNames = new String[] { "dto" }; + Class[] argTypes = new Class[] { cb.getClass() }; + String twoWaySql = buildQueryDeleteTwoWaySql(cb); + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + if (args == null || args.length == 0) { + String msg = "The arguments should have one argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + protected String buildQueryDeleteTwoWaySql(ConditionBean cb) { + return cb.getSqlClause().getClauseQueryDelete(); + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,172 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalInsertAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + protected BeanMetaData beanMetaData; + + protected String[] propertyNames; + + protected boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoDynamicCommand() { + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createInsertPropertyTypes(bmd, + bean, getPropertyNames()); + final String sql = createInsertSql(bmd, propertyTypes); + final InternalInsertAutoHandler handler = new InternalInsertAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler.setSql(sql); + handler.setLoggingMessageSqlArgs(args); + final int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw new NotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + protected String createInsertSql(BeanMetaData bmd, + PropertyType[] propertyTypes) { + StringBuffer buf = new StringBuffer(100); + buf.append("insert into "); + buf.append(bmd.getTableName()); + buf.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + buf.append(", "); + } + buf.append(columnName); + } + buf.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + if (i > 0) { + buf.append(", "); + } + buf.append("?"); + } + buf.append(")"); + return buf.toString(); + } + + protected PropertyType[] createInsertPropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + + if (0 == propertyNames.length) { + throw new SRuntimeException("EDAO0024", new Object[] { bean + .getClass().getName() }); + } + List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey()) { + final IdentifierGenerator generator = bmd + .getIdentifierGenerator(pt.getPropertyName()); + if (!generator.isSelfGenerate()) { + continue; + } + } else { + if (pt.getPropertyDesc().getValue(bean) == null) { + final String propertyName = pt.getPropertyName(); + if (!propertyName.equalsIgnoreCase(timestampPropertyName) + && !propertyName + .equalsIgnoreCase(versionNoPropertyName)) { + continue; + } + } + } + types.add(pt); + } + if (types.isEmpty()) { + throw new SRuntimeException("EDAO0014"); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + protected DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + protected StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + protected BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + protected String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,53 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalInsertBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return new InternalInsertBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupInsertSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupInsertPropertyTypes(propertyNames); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,83 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalProcedureHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected ResultSetHandler resultSetHandler; + + protected StatementFactory statementFactory; + + protected InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureCommand(DataSource dataSource, + ResultSetHandler resultSetHandler, + StatementFactory statementFactory, + InternalProcedureMetaData procedureMetaData) { + this.dataSource = dataSource; + this.resultSetHandler = resultSetHandler; + this.statementFactory = statementFactory; + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(final Object[] args) { + final InternalProcedureHandler handler = newArgumentDtoProcedureHandler(); + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + final Object pmb = outsideSqlContext.getParameterBean(); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(...); + return handler.execute(new Object[] { pmb }); + } + + protected InternalProcedureHandler newArgumentDtoProcedureHandler() { + return new InternalProcedureHandler(dataSource, + createSql(procedureMetaData), resultSetHandler, + statementFactory, procedureMetaData); + } + + protected String createSql(final InternalProcedureMetaData procedureMetaData) { + final StringBuilder sb = new StringBuilder(); + sb.append("{"); + int size = procedureMetaData.parameterTypes().size(); + if (procedureMetaData.hasReturnParameterType()) { + sb.append("? = "); + size--; + } + sb.append("call ").append(procedureMetaData.getProcedureName()).append( + "("); + for (int i = 0; i < size; i++) { + sb.append("?, "); + } + if (size > 0) { + sb.setLength(sb.length() - 2); + } + sb.append(")}"); + return sb.toString(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,233 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.NoUpdatePropertyTypeRuntimeException; +import org.seasar.dao.impl.AbstractSqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoDynamicCommand extends AbstractSqlCommand { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalUpdateAutoDynamicCommand.class); + + private static final Integer NO_UPDATE = new Integer(0); + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + private String[] propertyNames; + + private boolean checkSingleRowUpdate = true; + + private boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createUpdatePropertyTypes(bmd, + bean, getPropertyNames()); + if (propertyTypes.length == 0) { + if (_log.isDebugEnabled()) { + _log.debug(createNoUpdateLogMessage(bean, bmd)); + } + return NO_UPDATE; + } + InternalUpdateAutoHandler handler = createInternalUpdateAutoHandler( + bmd, propertyTypes); + handler.setSql(createUpdateSql(bmd, propertyTypes, bean)); + handler.setLoggingMessageSqlArgs(args); + int i = handler.execute(args); + + // [Comment Out]: This statement moved to the handler at + // [DBFlute-0.8.0]. + // if (isCheckSingleRowUpdate() && i < 1) { + // throw createNotSingleRowUpdatedRuntimeException(args[0], i); + // } + + return new Integer(i); + } + + protected InternalUpdateAutoHandler createInternalUpdateAutoHandler( + BeanMetaData bmd, PropertyType[] propertyTypes) { + InternalUpdateAutoHandler handler = new InternalUpdateAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + handler.setCheckSingleRowUpdate(isCheckSingleRowUpdate()); //[DBFlute-0.8 + // .0] + return handler; + } + + protected PropertyType[] createUpdatePropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || pt.getPropertyDesc().getValue(bean) != null) { + types.add(pt); + } + } + } + if (types.isEmpty()) { + throw new NoUpdatePropertyTypeRuntimeException(); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + protected String createNoUpdateLogMessage(final Object bean, + final BeanMetaData bmd) { + final StringBuffer sb = new StringBuffer(); + sb.append("skip UPDATE: table=").append(bmd.getTableName()); + final int size = bmd.getPrimaryKeySize(); + for (int i = 0; i < size; i++) { + if (i == 0) { + sb.append(", key{"); + } else { + sb.append(", "); + } + final String keyName = bmd.getPrimaryKey(i); + sb.append(keyName).append("="); + sb.append(bmd.getPropertyTypeByColumnName(keyName) + .getPropertyDesc().getValue(bean)); + if (i == size - 1) { + sb.append("}"); + } + } + final String s = new String(sb); + return s; + } + + /** + * Create update SQL. The update is by the primary keys. + * + * @param bmd The meta data of bean. (NotNull & RequiredPrimaryKeys) + * @param propertyTypes The types of property for update. (NotNull) + * @param bean A bean for update for handling version no and so on. + * (NotNull) + * @return The update SQL. (NotNull) + */ + protected String createUpdateSql(BeanMetaData bmd, + PropertyType[] propertyTypes, Object bean) { + if (bmd.getPrimaryKeySize() == 0) { + String msg = "The table '" + bmd.getTableName() + + "' does not have primary keys!"; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(bmd.getTableName()); + sb.append(" set "); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + sb.append(", "); + } + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + final Object versionNo = pt.getPropertyDesc().getValue(bean); + if (versionNo == null) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + } + sb.append(columnName).append(" = ?"); + } + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + return sb.toString(); + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } + + protected void setupVersionNoAutoIncrementOnQuery(StringBuilder sb, + String columnName) { + sb.append(columnName).append(" = ").append(columnName).append(" + 1"); + } + + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,61 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, versionNoAutoIncrementOnMemory); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + InternalUpdateBatchAutoHandler handler = newInternalBatchAutoHandler(); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + return handler; + } + + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupUpdateSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupUpdatePropertyTypes(propertyNames); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,38 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicUpdateHandler; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateDynamicCommand extends + InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object args[]) { + final CommandContext ctx = apply(args); + final InternalBasicUpdateHandler updateHandler = new InternalBasicUpdateHandler( + getDataSource(), ctx.getSql(), getStatementFactory()); + Object[] bindVariables = ctx.getBindVariables(); + updateHandler.setLoggingMessageSqlArgs(bindVariables); + return new Integer(updateHandler.execute(bindVariables, ctx + .getBindVariableTypes())); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,55 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateModifiedOnlyCommand extends + InternalUpdateAutoDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateModifiedOnlyCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // No.1 Point Override + // =================== + @Override + protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, + final Object bean, final String[] propertyNames) { + final Set modifiedPropertyNames = getBeanMetaData() + .getModifiedPropertyNames(bean); + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + final PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + final String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || modifiedPropertyNames.contains(propertyName)) { + types.add(pt); + } + } + } + final PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,229 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlcommand; + +import java.lang.reflect.Method; +import java.sql.Timestamp; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + Entity entity = extractEntityWithCheck(args); + String[] argNames = new String[] { "dto", "entity" }; + Class[] argTypes = new Class[] { cb.getClass(), entity.getClass() }; + String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity); + if (twoWaySql == null) { + return 0;// No execute! + } + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + assertArgument(args); + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of first argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected Entity extractEntityWithCheck(Object[] args) { + assertArgument(args); + Object secondArg = args[1]; + if (!(secondArg instanceof Entity)) { + String msg = "The type of second argument should be " + + Entity.class + "! But:"; + msg = msg + " type=" + secondArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (Entity) secondArg; + } + + protected void assertArgument(Object[] args) { + if (args == null || args.length <= 1) { + String msg = "The arguments should have two argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + /** + * @param cb Condition-bean. (NotNull) + * @param entity Entity. (NotNull) + * @return The two-way SQL of query update. (Nullable: If the set of + * modified properties is empty, return null.) + */ + protected String buildQueryUpdateTwoWaySql(ConditionBean cb, Entity entity) { + Map columnParameterMap = new LinkedHashMap(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(entity + .getTableDbName()); + Set modifiedPropertyNames = entity.getModifiedPropertyNames(); + if (modifiedPropertyNames.isEmpty()) { + return null; + } + String currentPropertyName = null; + try { + for (String propertyName : modifiedPropertyNames) { + currentPropertyName = propertyName; + ColumnInfo columnInfo = dbmeta.findColumnInfo(propertyName); + String columnName = columnInfo.getColumnDbName(); + Method getter = columnInfo.findGetter(); + Object value = getter.invoke(entity, (Object[]) null); + if (value != null) { + columnParameterMap.put(columnName, "/*entity." + + propertyName + "*/null"); + } else { + columnParameterMap.put(columnName, "null"); + } + } + if (dbmeta.hasVersionNo()) { + ColumnInfo columnInfo = dbmeta.getVersionNoColumnInfo(); + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, columnName + " + 1"); + } + if (dbmeta.hasUpdateDate()) { + ColumnInfo columnInfo = dbmeta.getUpdateDateColumnInfo(); + Method setter = columnInfo.findSetter(); + if (Timestamp.class.isAssignableFrom(columnInfo + .getPropertyType())) { + setter.invoke(entity, new Timestamp(System + .currentTimeMillis())); + } else { + setter.invoke(entity, new Date()); + } + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, "/*entity." + + columnInfo.getPropertyName() + "*/null"); + } + } catch (Exception e) { + throwQueryUpdateFailureException(cb, entity, currentPropertyName, e); + } + return cb.getSqlClause().getClauseQueryUpdate(columnParameterMap); + } + + protected void throwQueryUpdateFailureException(ConditionBean cb, + Entity entity, String propertyName, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "queryUpdate() failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Doubtful Property Name]" + getLineSeparator() + + propertyName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + cb + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new QueryUpdateFailureException(msg, e); + } + + public static class QueryUpdateFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public QueryUpdateFailureException(String msg, Exception e) { + super(msg, e); + } + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,271 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.util.IntegerConversionUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BeanMetaData beanMetaData; + + protected Object[] bindVariables; + + protected ValueType[] bindVariableValueTypes; + + protected Timestamp timestamp; + + protected Integer versionNo; + + protected PropertyType[] propertyTypes; + + protected boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + this.propertyTypes = propertyTypes; + } + + public int execute(Object[] args) { + Connection connection = getConnection(); + try { + return execute(connection, args[0]); + } finally { + close(connection); + } + } + + public int execute(Object[] args, Class[] argTypes) { + return execute(args); + } + + protected int execute(Connection connection, Object bean) { + preUpdateBean(bean); + setupBindVariables(bean); + logSql(bindVariables, getArgTypes(bindVariables)); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, bindVariables, bindVariableValueTypes); + ret = executeUpdate(ps); + } finally { + close(ps); + } + postUpdateBean(bean, ret); + return ret; + } + + protected void bindArgs(PreparedStatement ps, Object[] args, + ValueType[] valueTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = valueTypes[i]; + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected void preUpdateBean(Object bean) { + } + + protected void postUpdateBean(Object bean, int ret) { + } + + protected abstract void setupBindVariables(Object bean); + + protected void setupInsertBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + setVersionNo(new Integer(0)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupUpdateBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + continue;// because of always 'VERSION_NO = VERSION_NO + 1' + } + Object value = pt.getPropertyDesc().getValue(bean); + if (value == null) { + continue;// because of 'VERSION_NO = VERSION_NO + 1' + } + int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1; + setVersionNo(new Integer(intValue)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupDeleteBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void addAutoUpdateWhereBindVariables(List varList, + List varValueTypeList, Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + PropertyType pt = bmd.getPropertyTypeByColumnName(bmd + .getPrimaryKey(i)); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + } + + protected void updateTimestampIfNeed(Object bean) { + if (getTimestamp() != null) { + PropertyDesc pd = getBeanMetaData().getTimestampPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getTimestamp()); + } + } + + protected void updateVersionNoIfNeed(Object bean) { + if (getVersionNo() != null) { + PropertyDesc pd = getBeanMetaData().getVersionNoPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getVersionNo()); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + protected Object[] getBindVariables() { + return bindVariables; + } + + protected void setBindVariables(Object[] bindVariables) { + this.bindVariables = bindVariables; + } + + protected ValueType[] getBindVariableValueTypes() { + return bindVariableValueTypes; + } + + protected void setBindVariableValueTypes(ValueType[] bindVariableValueTypes) { + this.bindVariableValueTypes = bindVariableValueTypes; + } + + protected Timestamp getTimestamp() { + return timestamp; + } + + protected void setTimestamp(Timestamp timestamp) { + this.timestamp = timestamp; + } + + protected Integer getVersionNo() { + return versionNo; + } + + protected void setVersionNo(Integer versionNo) { + this.versionNo = versionNo; + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,137 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoHandler extends + InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalAbstractBatchAutoHandler.class); + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int[] execute(List list, Class[] argTypes) { + return execute(list); + } + + public int[] execute(List list) { + if (list == null) { + throw new IllegalArgumentException("list"); + } + if (list.isEmpty()) { + if (_log.isDebugEnabled()) { + _log.debug("Skip executeBatch() bacause of the empty list."); + } + return new int[0]; + } + final Connection connection = getConnection(); + try { + final PreparedStatement ps = prepareStatement(connection); + try { + for (Iterator iter = list.iterator(); iter.hasNext();) { + final Object bean = (Object) iter.next(); + prepareBatchElement(ps, bean); + } + return executeBatch(ps, list); + } finally { + close(ps); + } + } finally { + close(connection); + } + // Reflection to bean is unsupported at batch update. + // postBatchUpdateBean(...); + } + + public int execute(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + int[] ret = execute(list); + int updatedRow = 0; + for (int i = 0; i < ret.length; i++) { + if (ret[i] > 0) { + updatedRow += ret[i]; + } + } + return updatedRow; + } + + public int[] executeBatch(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + return execute(list); + } + + protected void prepareBatchElement(PreparedStatement ps, Object bean) { + setupBindVariables(bean); + logSql(getBindVariables(), getArgTypes(getBindVariables())); + bindArgs(ps, getBindVariables(), getBindVariableValueTypes()); + addBatch(ps); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected int[] executeBatch(PreparedStatement ps, List list) { + try { + return ps.executeBatch(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return null; // Unreachable! + } + } + + protected void addBatch(PreparedStatement ps) { + try { + ps.addBatch(); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,623 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.CallbackContext; +import jp.sf.pal.addresslist.db.allcommon.DBFluteConfig; +import jp.sf.pal.addresslist.db.allcommon.InternalMapContext; +import jp.sf.pal.addresslist.db.allcommon.QLog; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException; +import jp.sf.pal.addresslist.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.addresslist.db.allcommon.jdbc.SqlLogHandler; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.exception.SQLRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private String sql; + + private StatementFactory statementFactory; + + private Object[] loggingMessageSqlArgs; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicHandler(DataSource ds, StatementFactory statementFactory) { + setDataSource(ds); + setStatementFactory(statementFactory); + } + + public InternalBasicHandler(DataSource ds, String sql, + StatementFactory statementFactory) { + setDataSource(ds); + setSql(sql); + setStatementFactory(statementFactory); + } + + //========================================================================== + // ========= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- + protected void bindArgs(PreparedStatement ps, Object[] args, + Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = getValueType(argTypes[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected Class[] getArgTypes(Object[] args) { + if (args == null) { + return null; + } + Class[] argTypes = new Class[args.length]; + for (int i = 0; i < args.length; ++i) { + Object arg = args[i]; + if (arg != null) { + argTypes[i] = arg.getClass(); + } + } + return argTypes; + } + + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } + } + + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); + } + + protected void log(String msg) { + QLog.log(msg); + } + + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; + } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); + } + + protected boolean isContainsLineSeparatorInSql() { + return sql != null ? sql.contains(getLineSeparator()) : false; + } + + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + protected void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + String completeSql = buildLoggingMessageSql(); + new SQLExceptionHandler().handleSQLException(e, statement, + uniqueConstraintValid, completeSql); + } + + protected String buildLoggingMessageSql() { + String completeSql = null; + if (sql != null && loggingMessageSqlArgs != null) { + try { + completeSql = getCompleteSql(loggingMessageSqlArgs); + } catch (RuntimeException ignored) { + } + } + return completeSql; + } + + public static class SQLExceptionHandler { + + public void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + handleSQLException(e, statement, uniqueConstraintValid, null); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid, String completeSql) { + if (isSqlExceptionOldStyleHandling()) { + throw new SQLRuntimeException(e); + } + if (uniqueConstraintValid && isUniqueConstraintException(e)) { + throwEntityAlreadyExistsException(e, statement, completeSql); + } + throwSQLFailureException(e, statement, completeSql); + } + + protected boolean isUniqueConstraintException(SQLException e) { + DBFluteConfig.UniqueConstraintDeterminator determinator = getUniqueConstraintDeterminator(); + if (determinator != null) { + return determinator.isUniqueConstraintException(e); + } + return ConditionBeanContext.isUniqueConstraintException( + extractSQLState(e), e.getErrorCode()); + } + + protected DBFluteConfig.UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return DBFluteConfig.getInstance() + .getUniqueConstraintDeterminator(); + } + + protected boolean isSqlExceptionOldStyleHandling() { + return DBFluteConfig.getInstance().isSqlExceptionOldStyleHandling(); + } + + protected void throwEntityAlreadyExistsException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity already exists on the database!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the primary key whether it already exists on the database." + + getLineSeparator(); + msg = msg + "And confirm the unique constraint for other columns." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new EntityAlreadyExistsException(msg, e); + } + + protected void throwSQLFailureException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The SQL failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the SQLException message." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new SQLFailureException(msg, e); + } + + protected String extractSQLState(SQLException e) { + String sqlState = e.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next + SQLException nextEx = e.getNextException(); + if (nextEx == null) { + return null; + } + sqlState = nextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx == null) { + return null; + } + sqlState = nextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next Next + SQLException nextNextNextEx = nextNextEx.getNextException(); + if (nextNextNextEx == null) { + return null; + } + sqlState = nextNextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // It doesn't use recursive call by design because JDBC is + // unpredictable fellow. + return null; + } + + protected String extractBehaviorInvokeName() { + final Object behaviorInvokeName = InternalMapContext + .getObject("df:BehaviorInvokeName"); + if (behaviorInvokeName == null) { + return null; + } + final Object clientInvokeName = InternalMapContext + .getObject("df:ClientInvokeName"); + final Object byPassInvokeName = InternalMapContext + .getObject("df:ByPassInvokeName"); + final StringBuilder sb = new StringBuilder(); + boolean existsPath = false; + if (clientInvokeName != null) { + existsPath = true; + sb.append(clientInvokeName); + } + if (byPassInvokeName != null) { + existsPath = true; + sb.append(byPassInvokeName); + } + sb.append(behaviorInvokeName); + if (existsPath) { + sb.append("..."); + } + return sb.toString(); + } + + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected ConditionBean getConditionBean() { + return ConditionBeanContext.getConditionBeanOnThread(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected OutsideSqlContext getOutsideSqlContext() { + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected PreparedStatement prepareStatement(Connection conn) { + if (sql == null) { + throw new IllegalStateException("The sql should not be null!"); + } + return statementFactory.createPreparedStatement(conn, sql); + } + + protected int executeUpdate(PreparedStatement ps) { + try { + return ps.executeUpdate(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return 0;// Unreachable! + } + } + + protected void setFetchSize(Statement statement, int fetchSize) { + if (statement == null) { + return; + } + try { + statement.setFetchSize(fetchSize); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void setMaxRows(Statement statement, int maxRows) { + if (statement == null) { + return; + } + try { + statement.setMaxRows(maxRows); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(Statement statement) { + if (statement == null) { + return; + } + try { + statement.close(); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(ResultSet resultSet) { + if (resultSet == null) { + return; + } + try { + resultSet.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) { + this.loggingMessageSqlArgs = loggingMessageSqlArgs; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,146 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.addresslist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.addresslist.db.allcommon.s2dao.FetchNarrowingResultSetWrapper; + +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicSelectHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicSelectHandler(DataSource dataSource, String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + super(dataSource, statementFactory); + setSql(sql); + setResultSetHandler(resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public Object execute(Object[] args, Class[] argTypes) { + Connection conn = getConnection(); + try { + return execute(conn, args, argTypes); + } finally { + close(conn); + } + } + + @SuppressWarnings("unchecked") + public Object execute(Connection conn, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = null; + try { + ps = prepareStatement(conn); + bindArgs(ps, args, argTypes); + return execute(ps); + } catch (SQLException e) { + handleSQLException(e, ps); + return null; // Unreachable! + } finally { + close(ps); + } + } + + protected Object execute(PreparedStatement ps) throws SQLException { + if (resultSetHandler == null) { + throw new IllegalStateException( + "The resultSetHandler should not be null!"); + } + ResultSet resultSet = null; + try { + resultSet = createResultSet(ps); + return resultSetHandler.handle(resultSet); + } finally { + close(resultSet); + } + } + + protected ResultSet createResultSet(PreparedStatement ps) + throws SQLException { + final ResultSet resultSet = ps.executeQuery(); + if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + return resultSet; + } + final FetchNarrowingBean cb = FetchNarrowingBeanContext + .getFetchNarrowingBeanOnThread(); + if (!isUseFetchNarrowingResultSetWrapper(cb)) { + return resultSet; + } + final FetchNarrowingResultSetWrapper wrapper; + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + outsideSqlContext.isOffsetByCursorForcedly(), + outsideSqlContext.isLimitByCursorForcedly()); + } else { + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + false); + } + return wrapper; + } + + protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { + if (cb.getSafetyMaxResultSize() > 0) { + return true; + } + if (!cb.isFetchNarrowingEffective()) { + return false; // It is not necessary to control. + } + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + return true; + } + } + if (cb.isFetchNarrowingSkipStartIndexEffective() + || cb.isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ResultSetHandler getResultSetHandler() { + return resultSetHandler; + } + + public void setResultSetHandler(ResultSetHandler resultSetHandler) { + this.resultSetHandler = resultSetHandler; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,53 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicUpdateHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicUpdateHandler(DataSource dataSource, String sql, + StatementFactory statementFactory) { + super(dataSource, sql, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public int execute(Object[] args, Class[] argTypes) { + Connection connection = getConnection(); + try { + return execute(connection, args, argTypes); + } finally { + close(connection); + } + } + + @SuppressWarnings("unchecked") + public int execute(Connection connection, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = prepareStatement(connection); + try { + bindArgs(ps, args, argTypes); + return executeUpdate(ps); + } finally { + close(ps); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,60 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CommandContext commandContext; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextHandler(DataSource dataSource, + StatementFactory statementFactory, CommandContext commandContext) { + super(dataSource, statementFactory); + this.commandContext = commandContext; + setSql(commandContext.getSql()); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + final Connection connection = getConnection(); + try { + return execute(connection, commandContext); + } finally { + close(connection); + } + } + + protected int execute(Connection connection, CommandContext context) { + logSql(context.getBindVariables(), getArgTypes(context + .getBindVariables())); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, context.getBindVariables(), context + .getBindVariableTypes()); + ret = executeUpdate(ps); + } finally { + close(ps); + } + return ret; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,33 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,34 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,58 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void preUpdateBean(Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (!generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,34 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,262 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various.InternalProcedureParameterType; + +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.impl.PropertyTypeImpl; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.util.CaseInsensitiveMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureHandler extends InternalBasicSelectHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureHandler(final DataSource dataSource, + final String sql, final ResultSetHandler resultSetHandler, + final StatementFactory statementFactory, + final InternalProcedureMetaData procedureMetaData) { + super(dataSource, sql, resultSetHandler, statementFactory); + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + @SuppressWarnings("unchecked") + public Object execute(final Connection connection, final Object[] args, + final Class[] argTypes) { + final Object dto = getArgumentDto(args); + logSql(args, argTypes); + CallableStatement cs = null; + try { + cs = prepareCallableStatement(connection); + bindArgs(cs, dto); + Object returnValue = null; + if (cs.execute()) { + final ResultSet resultSet = cs.getResultSet(); + if (resultSet != null) { + final ResultSetHandler handler = createReturnResultSetHandler(resultSet); + try { + returnValue = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + } + return handleOutParameters(cs, dto, returnValue); + } catch (SQLException e) { + handleSQLException(e, cs); + return null;// Unreachable! + } finally { + close(cs); + } + } + + protected ResultSetHandler createReturnResultSetHandler(ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + @Override + protected String getCompleteSql(final Object[] args) {// for Procedure Call + String sql = getSql(); + Object dto = getArgumentDto(args); + if (args == null || dto == null) { + return sql; + } + StringBuilder sb = new StringBuilder(100); + int pos = 0; + int pos2 = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + if ((pos2 = sql.indexOf('?', pos)) < 0) { + break; + } + sb.append(sql.substring(pos, pos2)); + pos = pos2 + 1; + if (ppt.isInType()) { + sb.append(getBindVariableText(ppt.getValue(dto))); + } else { + sb.append(sql.substring(pos2, pos)); + } + } + sb.append(sql.substring(pos)); + return sb.toString(); + } + + protected CallableStatement prepareCallableStatement( + final Connection connection) { + if (getSql() == null) { + throw new IllegalStateException("The SQL should not be null!"); + } + return getStatementFactory().createCallableStatement(connection, + getSql()); + } + + protected void bindArgs(final CallableStatement cs, final Object dto) + throws SQLException { + if (dto == null) { + return; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + valueType.registerOutParameter(cs, i + 1); + } + if (ppt.isInType()) { + final Object value = ppt.getValue(dto); + valueType.bindValue(cs, i + 1, value); + } + ++i; + } + } + + protected Object handleResultSet(final CallableStatement cs) + throws SQLException { + ResultSet rs = null; + try { + rs = getResultSet(cs); + return getResultSetHandler().handle(rs); + } finally { + close(rs); + } + } + + protected ResultSet getResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected Object handleOutParameters(final CallableStatement cs, + final Object dto, Object returnValue) throws SQLException { + if (dto == null) { + return null; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + Object value = valueType.getValue(cs, i + 1); + if (value instanceof ResultSet) { + final ResultSet resultSet = (ResultSet) value; + final ResultSetHandler handler = createOutParameterResultSetHandler( + ppt, resultSet); + try { + value = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + ppt.setValue(dto, value); + } else if (ppt.isReturnType()) { + ppt.setValue(dto, returnValue); + } + ++i; + } + return dto; + } + + protected Object getArgumentDto(Object[] args) { + if (args.length == 0) { + return null; + } + if (args.length == 1) { + if (args[0] == null) { + throw new IllegalArgumentException( + "args[0] should not be null!"); + } + return args[0]; + } + throw new IllegalArgumentException("args"); + } + + protected ResultSetHandler createOutParameterResultSetHandler( + InternalProcedureParameterType ppt, ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + //========================================================================== + // ========= + // Map Result Set Handler + // ====================== + protected static abstract class InternalAbstractMapResultSetHandler + implements ResultSetHandler { + + @SuppressWarnings("unchecked") + protected Map createRow(ResultSet rs, + PropertyType[] propertyTypes) throws SQLException { + Map row = new CaseInsensitiveMap(); + for (int i = 0; i < propertyTypes.length; ++i) { + Object value = propertyTypes[i].getValueType().getValue(rs, + i + 1); + row.put(propertyTypes[i].getPropertyName(), value); + } + return row; + } + + protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) + throws SQLException { + int count = rsmd.getColumnCount(); + PropertyType[] propertyTypes = new PropertyType[count]; + for (int i = 0; i < count; ++i) { + String propertyName = rsmd.getColumnLabel(i + 1); + ValueType valueType = ValueTypes.getValueType(rsmd + .getColumnType(i + 1)); + propertyTypes[i] = new PropertyTypeImpl(propertyName, valueType); + } + return propertyTypes; + } + } + + protected static class InternalMapListResultSetHandler extends + InternalAbstractMapResultSetHandler { + + public Object handle(ResultSet resultSet) throws SQLException { + PropertyType[] propertyTypes = createPropertyTypes(resultSet + .getMetaData()); + List> list = new ArrayList>(); + while (resultSet.next()) { + list.add(createRow(resultSet, propertyTypes)); + } + return list; + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,67 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + private boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + if (isCheckSingleRowUpdate() && ret < 1) { + throw createEntityAlreadyUpdatedException(bean, ret); + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } + + protected EntityAlreadyUpdatedException createEntityAlreadyUpdatedException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,34 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,55 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqllog; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLog { + + //========================================================================== + // ========= + // Attribute + // ========= + private String rawSql; + + private String completeSql; + + private Object[] bindArgs; + + private Class[] bindArgTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlLog(String rawSql, String completeSql, Object[] bindArgs, + Class[] bindArgTypes) { + this.rawSql = rawSql; + this.completeSql = completeSql; + this.bindArgs = bindArgs; + this.bindArgTypes = bindArgTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Object[] getBindArgs() { + return bindArgs; + } + + public Class[] getBindArgTypes() { + return bindArgTypes; + } + + public String getCompleteSql() { + return completeSql; + } + + public String getRawSql() { + return rawSql; + } + + public String toString() { + return rawSql; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,277 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqllog; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLogRegistry { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalSqlLogRegistry.class); + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String NAME_SqlLogRegistryLocator = "org.seasar.extension.jdbc.SqlLogRegistryLocator"; + + protected static final String NAME_getInstance = "getInstance"; + + protected static final String NAME_setInstance = "setInstance"; + + protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; + + protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; + static { + forNameContainerSqlLogRegistryLocator(); + } + + //========================================================================== + // ========= + // Public Entry + // ============ + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + + public static Object findContainerSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return null; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_getInstance, (Class[]) null); + return method.invoke(null, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_getInstance=" + NAME_getInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void closeRegistration() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Closing the registry of sqlLog."); + method.invoke(null, new Object[] { null }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void push(String rawSql, String completeSql, + Object[] bindArgs, Class[] bindArgTypes, Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + throw new IllegalArgumentException( + "sqlLogRegistry should not be null!"); + } + final Object sqlLogImpl = createContainerSqlLogImpl(rawSql, + completeSql, bindArgs, bindArgTypes); + reflectSqlLogToContainerSqlLogRegistry(sqlLogImpl, sqlLogRegistry); + } + + public static String peekCompleteSql() { + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return null; + } + final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry); + if (sqlLog == null) { + return null; + } + return extractCompleteSqlFromContainerSqlLog(sqlLog); + } + + //========================================================================== + // ========= + // Container Reflection + // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static Object createContainerSqlLogImpl(String rawSql, + String completeSql, Object[] bindArgs, Class[] bindArgTypes) { + try { + final Class sqlLogImplType = Class.forName(NAME_SqlLogImpl); + final Class[] argTypes = new Class[] { String.class, + String.class, Object[].class, Class[].class }; + final Constructor constructor = sqlLogImplType + .getConstructor(argTypes); + return constructor.newInstance(new Object[] { rawSql, completeSql, + bindArgs, bindArgTypes }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.createContainerSqlLogImpl() threw the exception:"; + msg = msg + " completeSql=" + completeSql; + msg = msg + " NAME_SqlLogImpl=" + NAME_SqlLogImpl; + throw new IllegalStateException(msg, e); + } + } + + protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLog, + Object sqlLogRegistry) { + if (sqlLog == null || sqlLogRegistry == null) { + return; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Class sqlLogType = Class.forName(NAME_SqlLog); + final Method method = sqlLogRegistryType.getMethod("add", + new Class[] { sqlLogType }); + method.invoke(sqlLogRegistry, new Object[] { sqlLog }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.reflectToContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + + sqlLogRegistry; + msg = msg + " NAME_SqlLog=" + NAME_SqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Object findLastContainerSqlLog(Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + return null; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Method method = sqlLogRegistryType.getMethod("getLast", + (Class[]) null); + return method.invoke(sqlLogRegistry, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findLastContainerSqlLog() threw the exception:"; + msg = msg + " sqlLogRegistry=" + sqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) { + if (sqlLog == null) { + return null; + } + try { + final Class sqlLogType = sqlLog.getClass(); + final Method method = sqlLogType.getMethod("getCompleteSql", + (Class[]) null); + return (String) method.invoke(sqlLog, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.extractCompleteSqlFromContainerSqlLog() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Class forNameContainerSqlLogRegistryLocator() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryLocator); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistry() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistry); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,53 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.context.CommandContextImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextCreator { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String[] argNames; + + protected Class[] argTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextCreator(String[] argNames, Class[] argTypes) { + this.argNames = (argNames != null ? argNames : new String[0]); + this.argTypes = (argTypes != null ? argTypes : new Class[0]); + } + + //========================================================================== + // ========= + // Create + // ====== + public CommandContext createCommandContext(Object[] args) { + final CommandContext ctx = new CommandContextImpl(); + if (args != null) { + for (int i = 0; i < args.length; ++i) { + Class argType = null; + if (args[i] != null) { + if (i < argTypes.length) { + argType = argTypes[i]; + } else if (args[i] != null) { + argType = args[i].getClass(); + } + } + if (i < argNames.length) { + ctx.addArg(argNames[i], args[i], argType); + } else { + ctx.addArg("$" + (i + 1), args[i], argType); + } + } + } + return ctx; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1290 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser; + +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Stack; +import java.util.StringTokenizer; + +import jp.sf.pal.addresslist.db.allcommon.cbean.MapParameterBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.addresslist.db.allcommon.exception.BindVariableCommentNotFoundPropertyException; +import jp.sf.pal.addresslist.db.allcommon.exception.BindVariableParameterNullValueException; +import jp.sf.pal.addresslist.db.allcommon.exception.EmbeddedValueCommentNotFoundPropertyException; +import jp.sf.pal.addresslist.db.allcommon.exception.EmbeddedValueParameterNullValueException; +import jp.sf.pal.addresslist.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.addresslist.db.allcommon.exception.IfCommentConditionNotFoundException; +import jp.sf.pal.addresslist.db.allcommon.exception.IfCommentNotBooleanResultException; +import jp.sf.pal.addresslist.db.allcommon.exception.IfCommentWrongExpressionException; +import jp.sf.pal.addresslist.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.addresslist.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.node.AbstractNode; +import org.seasar.dao.node.BeginNode; +import org.seasar.dao.node.ContainerNode; +import org.seasar.dao.node.ElseNode; +import org.seasar.dao.node.PrefixSqlNode; +import org.seasar.dao.node.SqlNode; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.OgnlUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlParser { + + //========================================================================== + // ========= + // Attribute + // ========= + protected InternalSqlTokenizer tokenizer; + + protected Stack nodeStack = new Stack(); + + protected String specifiedSql;// Extension! + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlParser(String sql) { + sql = sql.trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); + } + specifiedSql = sql;// Extension! + tokenizer = new InternalSqlTokenizer(sql); + } + + //========================================================================== + // ========= + // Parse + // ===== + public Node parse() { + push(new ContainerNode()); + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + parseToken(); + } + return pop(); + } + + protected void parseToken() { + switch (tokenizer.getTokenType()) { + case InternalSqlTokenizer.SQL: + parseSql(); + break; + case InternalSqlTokenizer.COMMENT: + parseComment(); + break; + case InternalSqlTokenizer.ELSE: + parseElse(); + break; + case InternalSqlTokenizer.BIND_VARIABLE: + parseBindVariable(); + break; + } + } + + protected void parseSql() { + String sql = tokenizer.getToken(); + if (isElseMode()) { + sql = InternalStringUtil.replace(sql, "--", ""); + } + Node node = peek(); + if ((node instanceof InternalIfNode || node instanceof ElseNode) + && node.getChildSize() == 0) { + + InternalSqlTokenizer st = new InternalSqlTokenizer(sql); + st.skipWhitespace(); + String token = st.skipToken(); + st.skipWhitespace(); + if (sql.startsWith(",")) { + if (sql.startsWith(", ")) { + node.addChild(new PrefixSqlNode(", ", sql.substring(2))); + } else { + node.addChild(new PrefixSqlNode(",", sql.substring(1))); + } + } else if ("AND".equalsIgnoreCase(token) + || "OR".equalsIgnoreCase(token)) { + node.addChild(new PrefixSqlNode(st.getBefore(), st.getAfter())); + } else { + node.addChild(new SqlNode(sql)); + } + } else { + node.addChild(new SqlNode(sql)); + } + } + + protected void parseComment() { + final String comment = tokenizer.getToken(); + if (isTargetComment(comment)) { + if (isIfComment(comment)) { + parseIf(); + } else if (isBeginComment(comment)) { + parseBegin(); + } else if (isEndComment(comment)) { + return; + } else { + parseCommentBindVariable(); + } + } else if (comment != null && 0 < comment.length()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + // [UnderReview]: Should I resolve bind character on scope + // comment(normal comment)? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + String before = tokenizer.getBefore(); + peek().addChild( + new SqlNode(before.substring(before.lastIndexOf("/*")))); + } + } + + protected void parseIf() { + final String condition = tokenizer.getToken().substring(2).trim(); + if (InternalStringUtil.isEmpty(condition)) { + throwIfCommentConditionNotFoundException(); + } + final ContainerNode ifNode = createIfNode(condition); + peek().addChild(ifNode); + push(ifNode); + parseEnd(); + } + + protected void throwIfCommentConditionNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The condition of IF comment was Not Found!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the IF comment expression." + + getLineSeparator(); + msg = msg + + "It may exist the IF comment that DOESN'T have a condition." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + tokenizer.getToken() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentConditionNotFoundException(msg); + } + + protected void parseBegin() { + BeginNode beginNode = new BeginNode(); + peek().addChild(beginNode); + push(beginNode); + parseEnd(); + } + + protected void parseEnd() { + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + if (tokenizer.getTokenType() == InternalSqlTokenizer.COMMENT + && isEndComment(tokenizer.getToken())) { + pop(); + return; + } + parseToken(); + } + throwEndCommentNotFoundException(); + } + + protected void throwEndCommentNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new EndCommentNotFoundException(msg); + } + + protected void parseElse() { + final Node parent = peek(); + if (!(parent instanceof InternalIfNode)) { + return; + } + final InternalIfNode ifNode = (InternalIfNode) pop(); + final InternalElseNode elseNode = new InternalElseNode(); + ifNode.setElseNode(elseNode); + push(elseNode); + tokenizer.skipWhitespace(); + } + + protected void parseCommentBindVariable() { + final String expr = tokenizer.getToken(); + final String s = tokenizer.skipToken(); + if (expr.startsWith("$")) { + peek().addChild(createEmbeddedValueNode(expr.substring(1), s));// Extension + // ! + } else { + peek().addChild(createBindVariableNode(expr, s));// Extension! + } + } + + protected void parseBindVariable() { + final String expr = tokenizer.getToken(); + peek().addChild(createBindVariableNode(expr, null));// Extension! + } + + protected Node pop() { + return (Node) nodeStack.pop(); + } + + protected Node peek() { + return (Node) nodeStack.peek(); + } + + protected void push(Node node) { + nodeStack.push(node); + } + + protected boolean isElseMode() { + for (int i = 0; i < nodeStack.size(); ++i) { + if (nodeStack.get(i) instanceof InternalElseNode) { + return true; + } + } + return false; + } + + private static boolean isTargetComment(String comment) { + return comment != null && comment.length() > 0 + && Character.isJavaIdentifierStart(comment.charAt(0)); + } + + private static boolean isIfComment(String comment) { + return comment.startsWith("IF"); + } + + private static boolean isBeginComment(String content) { + return content != null && "BEGIN".equals(content); + } + + private static boolean isEndComment(String content) { + return content != null && "END".equals(content); + } + + protected AbstractNode createBindVariableNode(String expr, String testValue) {// Extension + // ! + return new InternalBindVariableNode(expr, testValue, specifiedSql); + } + + protected AbstractNode createEmbeddedValueNode(String expr, String testValue) {// Extension + // ! + return new InternalEmbeddedValueNode(expr, testValue, specifiedSql); + } + + protected ContainerNode createIfNode(String expr) {// Extension! + return new InternalIfNode(expr, specifiedSql); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // ========= + // Extension + // ========= + // ----------------------------------------------------- + // BindVariableNode + // ---------------- + protected static class InternalBindVariableNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalBindVariableNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + bindArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + bindArray(ctx, valueAndType.getTargetValue()); + } else { + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, true); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, true); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void bindArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + Class clazz = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + clazz = currentElement.getClass(); + break; + } + } + if (clazz == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql("?", currentElement, clazz); + existsValidElements = true; + } else { + ctx.addSql(", ?", currentElement, clazz); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, true); + } + } + + // ----------------------------------------------------- + // EmbeddedValueNode + // ----------------- + protected static class InternalEmbeddedValueNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalEmbeddedValueNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + // [UnderReview]: Should I make an original exception instead of + // this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + embedArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + embedArray(ctx, valueAndType.getTargetValue()); + } else { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + // [UnderReview]: Should I make an original exception + // instead of this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, false); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, false); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void embedArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + String quote = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + quote = !(currentElement instanceof Number) ? "'" : ""; + break; + } + } + if (quote == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql(quote + currentElement + quote); + existsValidElements = true; + } else { + ctx.addSql(", " + quote + currentElement + quote); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, false); + } + } + + // ----------------------------------------------------- + // Value and Type + // -------------- + protected static class InternalValueAndType { + public Object _targetValue; + + public Class _targetType; + + protected String _rearOption; + + public boolean isValidRearOption() { + return _targetValue != null && _rearOption != null + && _rearOption.trim().length() > 0; + } + + public String buildRearOptionOnSql() { + return " " + _rearOption.trim() + " "; + } + + public Object getTargetValue() { + return _targetValue; + } + + public void setTargetValue(Object targetValue) { + this._targetValue = targetValue; + } + + public Class getTargetType() { + return _targetType; + } + + public void setTargetType(Class targetType) { + this._targetType = targetType; + } + + public String getRearOption() { + return _rearOption; + } + + public void setRearOption(String rearOption) { + this._rearOption = rearOption; + } + } + + protected static class InternalValueAndTypeSetuper { + protected String _expression; + + protected String[] _names; + + protected String _specifiedSql; + + protected boolean _bind; + + public InternalValueAndTypeSetuper(String expression, String[] names, + String specifiedSql, boolean bind) { + this._expression = expression; + this._names = names; + this._specifiedSql = specifiedSql; + this._bind = bind; + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + Object value = valueAndType.getTargetValue(); + Class clazz = valueAndType.getTargetType(); + + // LikeSearchOption handling here is for OutsideSql. + LikeSearchOption likeSearchOption = null; + String rearOption = null; + + for (int pos = 1; pos < _names.length; ++pos) { + if (value == null) { + break; + } + final String currentName = _names[pos]; + if (pos == 1) {// at the First Loop + final BeanDesc beanDesc = BeanDescFactory + .getBeanDesc(clazz); + if (hasLikeSearchOption(beanDesc, currentName)) { + likeSearchOption = getLikeSearchOption(beanDesc, + currentName, value); + } + } + if (Map.class.isInstance(value)) { + final Map map = (Map) value; + value = map.get(_names[pos]); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : clazz); + continue; + } + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz); + if (beanDesc.hasPropertyDesc(currentName)) { + final PropertyDesc pd = beanDesc + .getPropertyDesc(currentName); + value = getPropertyValue(clazz, value, currentName, pd); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : pd + .getPropertyType()); + continue; + } + final String methodName = "get" + initCap(currentName); + if (beanDesc.hasMethod(methodName)) {// Is this unused??? + final Method method = beanDesc.getMethod(methodName); + value = invokeGetter(method, value); + clazz = method.getReturnType(); + continue; + } + if (pos == 1 && MapParameterBean.class.isAssignableFrom(clazz)) { + final MapParameterBean pmb = (MapParameterBean) value; + final Map map = pmb.getParameterMap(); + final Object elementValue = (map != null ? map + .get(_names[pos]) : null); + if (elementValue != null) { + value = elementValue; + clazz = value.getClass(); + continue; + } + } + throwBindOrEmbeddedCommentNotFoundPropertyException( + _expression, clazz, currentName, _specifiedSql, _bind); + } + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + valueAndType.setRearOption(rearOption); + } + + // for OutsideSql + protected boolean isLastLoop4LikeSearch(int pos, + LikeSearchOption likeSearchOption) { + return _names.length == (pos + 1) && likeSearchOption != null; + } + + protected boolean isValidStringValue(Object value) { + return value != null && value instanceof String + && ((String) value).length() > 0; + } + + // for OutsideSql + protected boolean hasLikeSearchOption(BeanDesc beanDesc, + String currentName) { + return beanDesc.hasPropertyDesc(currentName + + "InternalLikeSearchOption"); + } + + // for OutsideSql + protected LikeSearchOption getLikeSearchOption(BeanDesc beanDesc, + String currentName, Object resourceBean) { + final PropertyDesc pb = beanDesc.getPropertyDesc(currentName + + "InternalLikeSearchOption"); + final LikeSearchOption option = (LikeSearchOption) pb + .getValue(resourceBean); + if (option == null) { + throwLikeSearchOptionNotFoundException(resourceBean, + currentName); + } + if (option.isSplit()) { + throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + option, resourceBean, currentName); + } + return option; + } + + // for OutsideSql + protected void throwLikeSearchOptionNotFoundException( + Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new RequiredOptionNotFoundException(msg); + } + + // for OutsideSql + protected void throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + LikeSearchOption option, Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + + " likeSearchOption.splitBySpace(); // *No! Don't invoke this!" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target LikeSearchOption]" + getLineSeparator() + + option + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + protected Object getPropertyValue(Class beanType, Object beanValue, + String currentName, PropertyDesc pd) { + try { + return pd.getValue(beanValue); + } catch (RuntimeException e) { + throwPropertyHandlingFailureException(beanType, beanValue, + currentName, _expression, _specifiedSql, _bind, e); + return null;// Unreachable! + } + } + + protected void throwPropertyHandlingFailureException(Class beanType, + Object beanValue, String currentName, String expression, + String specifiedSql, boolean bind, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The handlig of the property was failed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "This is the Framework Exception!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Type]" + getLineSeparator() + beanType + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Value]" + getLineSeparator() + beanValue + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Property Name]" + getLineSeparator() + currentName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalStateException(msg, e); + } + + protected String initCap(String name) { + return SimpleStringUtil.initCap(name); + } + + protected Object invokeGetter(Method method, Object target) { + try { + return method.invoke(target, (Object[]) null); + } catch (IllegalArgumentException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + protected void throwBindOrEmbeddedCommentNotFoundPropertyException( + String expression, Class targetType, + String notFoundProperty, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The property on the " + + (bind ? "bind variable" : "embedded value") + + " comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "Abd has the property had misspelling?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[NotFound Property]" + getLineSeparator() + + (targetType != null ? targetType.getName() + "#" : "") + + notFoundProperty + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableCommentNotFoundPropertyException(msg); + } else { + throw new EmbeddedValueCommentNotFoundPropertyException(msg); + } + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // Exception Provider + // ------------------ + protected static class ParameterCommentExceptionProvider { + public static void throwBindOrEmbeddedParameterNullValueException( + String expression, Class targetType, String specifiedSql, + boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of " + + (bind ? "bind variable" : "embedded value") + + " was Null!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Is it within the scope of your assumption?" + + getLineSeparator(); + msg = msg + + "If the answer is YES, please confirm your application logic about the parameter." + + getLineSeparator(); + msg = msg + + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + + getLineSeparator(); + msg = msg + " --> For example:" + getLineSeparator(); + msg = msg + " before (x) -- XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Parameter Property Type]" + getLineSeparator() + + targetType + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableParameterNullValueException(msg); + } else { + throw new EmbeddedValueParameterNullValueException(msg); + } + } + + public static void throwBindOrEmbeddedParameterEmptyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was empty!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + public static void throwBindOrEmbeddedParameterNullOnlyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was 'Null Only List'!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // IfNode + // ------ + protected static class InternalIfNode extends ContainerNode { + private String _expression; + + private Object _parsedExpression; + + private InternalElseNode _elseNode; + + private String _specifiedSql; + + public InternalIfNode(String expression, String specifiedSql) { + this._expression = expression; + this._parsedExpression = OgnlUtil.parseExpression(expression); + this._specifiedSql = specifiedSql; + } + + public String getExpression() { + return _expression; + } + + public InternalElseNode getElseNode() { + return _elseNode; + } + + public void setElseNode(InternalElseNode elseNode) { + this._elseNode = elseNode; + } + + public void accept(CommandContext ctx) { + Object result = null; + try { + result = OgnlUtil.getValue(_parsedExpression, ctx); + } catch (RuntimeException e) { + if (!_expression.contains("pmb.")) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + final String replaced = InternalStringUtil.replace(_expression, + "pmb.", "pmb.parameterMap."); + final Object secondParsedExpression = OgnlUtil + .parseExpression(replaced); + try { + result = OgnlUtil.getValue(secondParsedExpression, ctx); + } catch (RuntimeException ignored) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + if (result == null) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + _parsedExpression = secondParsedExpression; + } + if (result != null && result instanceof Boolean) { + if (((Boolean) result).booleanValue()) { + super.accept(ctx); + ctx.setEnabled(true); + } else if (_elseNode != null) { + _elseNode.accept(ctx); + ctx.setEnabled(true); + } + } else { + throwIfCommentNotBooleanResultException(_expression, result, + _specifiedSql); + } + } + + protected void throwIfCommentWrongExpressionException( + String expression, RuntimeException cause, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "And confirm the IF comment of your specified SQL." + + getLineSeparator(); + msg = msg + " For example, correct IF comment is as below:" + + getLineSeparator(); + msg = msg + " /*IF pmb.xxxId != null*/XXX_ID = .../*END*/" + + getLineSeparator(); + msg = msg + " /*IF pmb.isPaging()*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null && pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null || pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Cause Message]" + getLineSeparator(); + msg = msg + cause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + cause.getMessage() + getLineSeparator(); + final Throwable nestedCause = cause.getCause(); + if (nestedCause != null) { + msg = msg + nestedCause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + nestedCause.getMessage() + + getLineSeparator(); + } + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentWrongExpressionException(msg, cause); + } + + protected void throwIfCommentNotBooleanResultException( + String expression, Object result, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The boolean expression on IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the grammar of your IF comment. Does it really express boolean?" + + getLineSeparator(); + msg = msg + + "And confirm the existence of your property on your arguments if you use parameterMap." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Result Value]" + getLineSeparator() + + result + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentNotBooleanResultException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // ElseNode + // -------- + protected static class InternalElseNode extends ContainerNode { + public void accept(CommandContext ctx) { + super.accept(ctx); + ctx.setEnabled(true); + } + } + + // ----------------------------------------------------- + // StringUtil + // ---------- + protected static class InternalStringUtil { + + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new ArrayList(); + StringTokenizer st = new StringTokenizer(str, delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } + + //========================================================================== + // ========= + // Convert + // ======= + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + Object arg) { + final String[] argNames = new String[] { "dto" }; + final Class[] argTypes = new Class[] { arg.getClass() }; + final Object[] args = new Object[] { arg }; + return convertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args); + } + + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + final CommandContext context; + { + final InternalSqlParser parser = new InternalSqlParser(twoWaySql); + final Node node = parser.parse(); + final InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + final String preparedSql = context.getSql(); + return InternalBindVariableUtil.getCompleteSql(preparedSql, context + .getBindVariables()); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,301 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.sqlparser; + +import jp.sf.pal.addresslist.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlTokenizer { + + //========================================================================== + // ========= + // Definition + // ========== + public static final int SQL = 1; + + public static final int COMMENT = 2; + + public static final int ELSE = 3; + + public static final int BIND_VARIABLE = 4; + + public static final int EOF = 99; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String sql; + + protected int position = 0; + + protected String token; + + protected int tokenType = SQL; + + protected int nextTokenType = SQL; + + protected int bindVariableNum = 0; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlTokenizer(String sql) { + this.sql = sql; + } + + //========================================================================== + // ========= + // Tokenize + // ======== + public int next() { + if (position >= sql.length()) { + token = null; + tokenType = EOF; + nextTokenType = EOF; + return tokenType; + } + switch (nextTokenType) { + case SQL: + parseSql(); + break; + case COMMENT: + parseComment(); + break; + case ELSE: + parseElse(); + break; + case BIND_VARIABLE: + parseBindVariable(); + break; + default: + parseEof(); + break; + } + return tokenType; + } + + protected void parseSql() { + int commentStartPos = sql.indexOf("/*", position); + int commentStartPos2 = sql.indexOf("#*", position); + if (0 < commentStartPos2 && commentStartPos2 < commentStartPos) { + commentStartPos = commentStartPos2; + } + int lineCommentStartPos = sql.indexOf("--", position); + int bindVariableStartPos = sql.indexOf("?", position); + int elseCommentStartPos = -1; + int elseCommentLength = -1; + if (lineCommentStartPos >= 0) { + int skipPos = skipWhitespace(lineCommentStartPos + 2); + if (skipPos + 4 < sql.length() + && "ELSE".equals(sql.substring(skipPos, skipPos + 4))) { + elseCommentStartPos = lineCommentStartPos; + elseCommentLength = skipPos + 4 - lineCommentStartPos; + } + } + int nextStartPos = getNextStartPos(commentStartPos, + elseCommentStartPos, bindVariableStartPos); + if (nextStartPos < 0) { + token = sql.substring(position); + nextTokenType = EOF; + position = sql.length(); + tokenType = SQL; + } else { + token = sql.substring(position, nextStartPos); + tokenType = SQL; + boolean needNext = nextStartPos == position; + if (nextStartPos == commentStartPos) { + nextTokenType = COMMENT; + position = commentStartPos + 2; + } else if (nextStartPos == elseCommentStartPos) { + nextTokenType = ELSE; + position = elseCommentStartPos + elseCommentLength; + } else if (nextStartPos == bindVariableStartPos) { + nextTokenType = BIND_VARIABLE; + position = bindVariableStartPos; + } + if (needNext) { + next(); + } + } + } + + protected int getNextStartPos(int commentStartPos, int elseCommentStartPos, + int bindVariableStartPos) { + int nextStartPos = -1; + if (commentStartPos >= 0) { + nextStartPos = commentStartPos; + } + if (elseCommentStartPos >= 0 + && (nextStartPos < 0 || elseCommentStartPos < nextStartPos)) { + nextStartPos = elseCommentStartPos; + } + if (bindVariableStartPos >= 0 + && (nextStartPos < 0 || bindVariableStartPos < nextStartPos)) { + nextStartPos = bindVariableStartPos; + } + return nextStartPos; + } + + protected String nextBindVariableName() { + return "$" + ++bindVariableNum; + } + + protected void parseComment() { + int commentEndPos = sql.indexOf("*/", position); + int commentEndPos2 = sql.indexOf("*#", position); + if (0 < commentEndPos2 && commentEndPos2 < commentEndPos) { + commentEndPos = commentEndPos2; + } + if (commentEndPos < 0) { + throwEndCommentNotFoundException(sql.substring(position)); + } + token = sql.substring(position, commentEndPos); + nextTokenType = SQL; + position = commentEndPos + 2; + tokenType = COMMENT; + } + + protected void throwEndCommentNotFoundException(String expression) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[End Comment Expected Place]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + sql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new EndCommentNotFoundException(msg); + } + + protected void parseBindVariable() { + token = nextBindVariableName(); + nextTokenType = SQL; + position += 1; + tokenType = BIND_VARIABLE; + } + + protected void parseElse() { + token = null; + nextTokenType = SQL; + tokenType = ELSE; + } + + protected void parseEof() { + token = null; + tokenType = EOF; + nextTokenType = EOF; + } + + public String skipToken() { + int index = sql.length(); + char quote = position < sql.length() ? sql.charAt(position) : '\0'; + boolean quoting = quote == '\'' || quote == '('; + if (quote == '(') { + quote = ')'; + } + for (int i = quoting ? position + 1 : position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if ((Character.isWhitespace(c) || c == ',' || c == ')' || c == '(') + && !quoting) { + index = i; + break; + } else if (c == '/' && i + 1 < sql.length() + && sql.charAt(i + 1) == '*') { + index = i; + break; + } else if (c == '-' && i + 1 < sql.length() + && sql.charAt(i + 1) == '-') { + index = i; + break; + } else if (quoting && quote == '\'' && c == '\'' + && (i + 1 >= sql.length() || sql.charAt(i + 1) != '\'')) { + index = i + 1; + break; + } else if (quoting && c == quote) { + index = i + 1; + break; + } + } + token = sql.substring(position, index); + tokenType = SQL; + nextTokenType = SQL; + position = index; + return token; + } + + public String skipWhitespace() { + int index = skipWhitespace(position); + token = sql.substring(position, index); + position = index; + return token; + } + + protected int skipWhitespace(int position) { + int index = sql.length(); + for (int i = position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if (!Character.isWhitespace(c)) { + index = i; + break; + } + } + return index; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPosition() { + return position; + } + + public String getToken() { + return token; + } + + public String getBefore() { + return sql.substring(0, position); + } + + public String getAfter() { + return sql.substring(position); + } + + public int getTokenType() { + return tokenType; + } + + public int getNextTokenType() { + return nextTokenType; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,304 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import jp.sf.pal.addresslist.db.allcommon.DBFluteConfig; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBindVariableUtil { + + //========================================================================== + // ========= + // Definition + // ========== + private static final String NULL = "null"; + + //========================================================================== + // ========= + // Constructor + // =========== + private InternalBindVariableUtil() { + } + + public static String getCompleteSql(String sql, Object[] args) { + if (args == null || args.length == 0) { + return sql; + } + return getCompleteSql(sql, args, new ValueType[args.length]); + } + + public static String getCompleteSql(String sql, Object[] args, + ValueType[] valueTypes) { + if (args == null || args.length == 0) { + return sql; + } + StringBuffer buf = new StringBuffer(sql.length() + args.length * 15); + int pos = 0; + int pos2 = 0; + int pos3 = 0; + int pos4 = 0; + int pos5 = 0; + int pos6 = 0; + int index = 0; + while (true) { + pos = sql.indexOf('?', pos2); + pos3 = sql.indexOf('\'', pos2); + pos4 = sql.indexOf('\'', pos3 + 1); + pos5 = sql.indexOf("/*", pos2); + pos6 = sql.indexOf("*/", pos5 + 1); + if (pos > 0) { + if (pos3 >= 0 && pos3 < pos && pos < pos4) { + buf.append(sql.substring(pos2, pos4 + 1)); + pos2 = pos4 + 1; + } else if (pos5 >= 0 && pos5 < pos && pos < pos6) { + buf.append(sql.substring(pos2, pos6 + 1)); + pos2 = pos6 + 1; + } else { + if (args.length <= index) { + String msg = "The size of bind arguments is illegal:"; + msg = msg + " size=" + args.length + " sql=" + sql; + throw new IllegalStateException(msg); + } + buf.append(sql.substring(pos2, pos)); + buf.append(getBindVariableText(args[index], + valueTypes[index])); + pos2 = pos + 1; + index++; + } + } else { + buf.append(sql.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String getBindVariableText(Object bindVariable) { + if (bindVariable instanceof String) { + return quote(bindVariable.toString()); + } else if (bindVariable instanceof Number) { + return bindVariable.toString(); + } else if (bindVariable instanceof Time) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Timestamp) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogTimestampFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof java.util.Date) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogDateFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Boolean) { + return bindVariable.toString(); + } else if (bindVariable == null) { + return NULL; + } else { + return quote(bindVariable.toString()); + } + } + + protected static String getLogDateFormat() { + String logDateFormat = DBFluteConfig.getInstance().getLogDateFormat(); + return logDateFormat != null ? logDateFormat : "yyyy-MM-dd"; + } + + protected static String getLogTimestampFormat() { + String logTimestampFormat = DBFluteConfig.getInstance() + .getLogTimestampFormat(); + return logTimestampFormat != null ? logTimestampFormat + : "yyyy-MM-dd HH:mm:ss"; + } + + // For various seasar's version. + protected static final Class[] TOTEXT_ARGUMENT_TYPES = new Class[] { Object.class }; + + protected static final Method TOTEXT_METHOD; + static { + Method method = null; + try { + method = ValueType.class.getMethod("toText", TOTEXT_ARGUMENT_TYPES); + } catch (SecurityException e) { + } catch (NoSuchMethodException e) { + } + TOTEXT_METHOD = method; + } + + public static String getBindVariableText(Object bindVariable, + ValueType valueType) { + if (valueType != null && TOTEXT_METHOD != null) { + try { + return (String) TOTEXT_METHOD.invoke(valueType, + new Object[] { bindVariable }); + } catch (IllegalArgumentException e) { + String msg = "ValueType.toText() threw the IllegalArgumentException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (IllegalAccessException e) { + String msg = "ValueType.toText() threw the IllegalAccessException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (InvocationTargetException e) { + if (e.getTargetException() instanceof RuntimeException) { + throw (RuntimeException) e.getTargetException(); + } else { + String msg = "ValueType.toText() threw the exception:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e.getTargetException()); + } + } + } + return getBindVariableText(bindVariable); + } + + public static String nullText() { + return NULL; + } + + public static String toText(Number value) { + if (value == null) { + return NULL; + } + return value.toString(); + } + + public static String toText(Boolean value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + public static String toText(String value) { + if (value == null) { + return NULL; + } + return quote(value); + } + + public static String toText(Date value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addDate(buf, calendar); + return quote(buf.toString()); + } + + public static String toText(Time value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addTime(buf, calendar); + addTimeDecimalPart(buf, calendar.get(Calendar.MILLISECOND)); + return quote(buf.toString()); + } + + public static String toText(Timestamp value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(30); + addDate(buf, calendar); + addTime(buf, calendar); + addTimeDecimalPart(buf, value.getNanos()); + return quote(buf.toString()); + } + + public static String toText(byte[] value) { + if (value == null) { + return NULL; + } + return quote(value.toString() + "(byteLength=" + + Integer.toString(value.length) + ")"); + } + + /** + * {@link Object}¤Îʸ»úÎóɽ¸½¤òÊÖ¤·¤Þ¤¹¡£ + * + * @param value ÃÍ + * @return ʸ»úÎóɽ¸½ + */ + public static String toText(Object value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + // yyyy-mm-dd + protected static void addDate(StringBuilder buf, Calendar calendar) { + int year = calendar.get(Calendar.YEAR); + buf.append(year); + buf.append('-'); + int month = calendar.get(Calendar.MONTH) + 1; + if (month < 10) { + buf.append('0'); + } + buf.append(month); + buf.append('-'); + int date = calendar.get(Calendar.DATE); + if (date < 10) { + buf.append('0'); + } + buf.append(date); + } + + // hh:mm:ss + protected static void addTime(StringBuilder buf, Calendar calendar) { + if (buf.length() > 0) { + buf.append(' '); + } + int hour = calendar.get(Calendar.HOUR_OF_DAY); + if (hour < 10) { + buf.append('0'); + } + buf.append(hour); + buf.append(':'); + int minute = calendar.get(Calendar.MINUTE); + if (minute < 10) { + buf.append('0'); + } + buf.append(minute); + buf.append(':'); + int second = calendar.get(Calendar.SECOND); + if (second < 10) { + buf.append('0'); + } + buf.append(second); + } + + // .000 + protected static void addTimeDecimalPart(StringBuilder buf, int decimalPart) { + if (decimalPart == 0) { + return; + } + if (buf.length() > 0) { + buf.append('.'); + } + buf.append(decimalPart); + } + + // 'text' + protected static String quote(String text) { + return "'" + text + "'"; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,137 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,101 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various; + +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaData { + + //========================================================================== + // ========= + // Attribute + // ========= + private String procedureName; + + private Map unorderedMap = createUnorderedMap(); + + private Map parameterTypes = createParameterTypes(); + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureMetaData(final String procedureName) { + this.procedureName = procedureName; + } + + //========================================================================== + // ========= + // Factory + // ======= + protected Map createUnorderedMap() { + return new HashMap(); + } + + protected Map createParameterTypes() { + return new TreeMap( + new ParameterComparator()); + } + + protected class ParameterComparator implements Comparator { + public int compare(String o1, String o2) { + final int oneGreaterThanTwo = 1; + final int twoGreaterThanOne = -1; + final InternalProcedureParameterType parameterType1 = unorderedMap + .get(o1); + final InternalProcedureParameterType parameterType2 = unorderedMap + .get(o2); + if (parameterType1.isReturnType()) { + return twoGreaterThanOne; // Return type is prior + } + if (parameterType2.isReturnType()) { + return oneGreaterThanTwo; // Return type is prior + } + final Integer parameterIndex1 = parameterType1.getParameterIndex(); + final Integer parameterIndex2 = parameterType2.getParameterIndex(); + if (parameterIndex1 == null && parameterIndex2 == null) { + return oneGreaterThanTwo; // No changes + } + if (parameterIndex1 != null && parameterIndex2 == null) { + return twoGreaterThanOne; // Not null is prior + } + if (parameterIndex1 == null && parameterIndex2 != null) { + return oneGreaterThanTwo; // Not null is prior + } + return parameterIndex1.compareTo(parameterIndex2); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getProcedureName() { + return procedureName; + } + + public Collection parameterTypes() { + return parameterTypes.values(); + } + + public void addParameterType( + final InternalProcedureParameterType parameterType) { + final String name = parameterType.getParameterName(); + unorderedMap.put(name, parameterType); + parameterTypes.put(name, parameterType); + if (parameterType.isReturnType()) { + returnType = true; + } + } + + public boolean hasReturnParameterType() { + return returnType; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,232 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; + +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.util.TypeUtil; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaDataFactory { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); + + //========================================================================== + // ========= + // Main + // ==== + public InternalProcedureMetaData createProcedureMetaData( + final String procedureName, final Class pmbType) { + final InternalProcedureMetaData metaData = new InternalProcedureMetaData( + procedureName); + if (pmbType == null) { + return metaData; + } else { + if (!isDtoType(pmbType)) { + throw new IllegalStateException( + "The pmb type was Not DTO type: " + pmbType.getName()); + } + } + final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); + + // *Point + final Stack> stack = new Stack>(); + for (Class clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz + .getSuperclass()) { + stack.push(clazz); + } + for (; !stack.isEmpty();) { + final Class clazz = stack.pop(); + registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields()); + } + + return metaData; + } + + protected void registerParameterType(InternalProcedureMetaData metaData, + BeanDesc pmbDesc, Field[] fields) { + for (Field field : fields) { + if (!isInstanceField(field)) { + continue; + } + final InternalProcedureParameterType ppt = getProcedureParameterType( + pmbDesc, field); + if (ppt == null) { + continue; + } + metaData.addParameterType(ppt); + } + } + + protected InternalProcedureParameterType getProcedureParameterType( + final BeanDesc dtoDesc, final Field field) { + final String procedureParameter = annotationReader + .getProcedureParameter(dtoDesc, field); + if (procedureParameter == null) { + return null; + } + final String type = extractParameterType(procedureParameter); + field.setAccessible(true); + final InternalProcedureParameterType ppt = new InternalProcedureParameterType( + field); + if (type.equalsIgnoreCase("in")) { + ppt.setInType(true); + } else if (type.equalsIgnoreCase("out")) { + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("inout")) { + ppt.setInType(true); + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("return")) { + ppt.setOutType(true); + ppt.setReturnType(true); + } else { + String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterType=" + type; + throw new IllegalStateException(msg); + } + final Integer index = extractParameterIndex(procedureParameter, field); + ppt.setParameterIndex(index); + final ValueType valueType = getValueType(dtoDesc, field); + ppt.setValueType(valueType); + return ppt; + } + + protected String extractParameterType(String procedureParameter) { + if (procedureParameter.contains(",")) { + return procedureParameter.substring(0, + procedureParameter.indexOf(",")).trim(); + } + return procedureParameter.trim(); + } + + protected Integer extractParameterIndex(String procedureParameter, + Field field) { + if (procedureParameter.contains(",")) { + String tmp = procedureParameter.substring( + procedureParameter.indexOf(",") + ",".length()).trim(); + try { + return Integer.valueOf(tmp); + } catch (NumberFormatException e) { + String msg = "The parameter index should be number:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + + procedureParameter; + throw new IllegalStateException(msg, e); + } + } + return null; + } + + protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) { + final String name = annotationReader.getValueType(dtoDesc, field); + if (name != null) { + return valueTypeFactory.getValueTypeByName(name); + } + final Class type = field.getType(); + if (List.class.isAssignableFrom(type)) {// is for out parameter cursor. + if (ConditionBeanContext.isOracle()) { + return ValueTypes.ORACLE_RESULT_SET; + } else if (ConditionBeanContext.isPostgreSql()) { + return ValueTypes.POSTGRE_RESULT_SET; + } else { + return ValueTypes.SERIALIZABLE_BYTE_ARRAY; + } + } + return valueTypeFactory.getValueTypeByClass(type); + } + + protected boolean isInstanceField(final Field field) { + final int mod = field.getModifiers(); + return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); + } + + protected boolean isDtoType(final Class clazz) { + return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); + } + + protected boolean isContainerType(final Class clazz) { + if (clazz == null) { + throw new NullPointerException("clazz"); + } + return Collection.class.isAssignableFrom(clazz) + || Map.class.isAssignableFrom(clazz) || clazz.isArray(); + } + + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected static class InternalFieldProcedureAnnotationReader { + protected String PROCEDURE_PARAMETER_SUFFIX; + + protected String VALUE_TYPE_SUFFIX; + + public InternalFieldProcedureAnnotationReader() { + PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; + VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; + } + + public String getProcedureParameter(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + public String getValueType(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + VALUE_TYPE_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + protected String removeInstanceVariablePrefix(String fieldName) { + return fieldName.startsWith("_") ? fieldName + .substring("_".length()) : fieldName; + } + + protected Object getValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,112 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureParameterType { + + //========================================================================== + // ========= + // Attribute + // ========= + private String parameterName; + + private Integer parameterIndex; + + private Field field; + + private ValueType valueType; + + private boolean inType; + + private boolean outType; + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureParameterType(Field field) { + this.field = field; + this.parameterName = field.getName(); + } + + //========================================================================== + // ========= + // Field Value + // =========== + public Object getValue(Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + public void setValue(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + String msg = "The setting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getParameterName() { + return parameterName; + } + + public Integer getParameterIndex() { + return parameterIndex; + } + + public void setParameterIndex(Integer parameterIndex) { + this.parameterIndex = parameterIndex; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(final ValueType valueType) { + this.valueType = valueType; + } + + public boolean isInType() { + return inType; + } + + public void setInType(final boolean inType) { + this.inType = inType; + } + + public boolean isOutType() { + return outType; + } + + public void setOutType(final boolean outType) { + this.outType = outType; + } + + public boolean isReturnType() { + return returnType; + } + + public void setReturnType(final boolean returnType) { + this.returnType = returnType; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,327 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.impl.RelationRowCreationResource; +import org.seasar.dao.impl.RelationRowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRelationRowCreator extends RelationRowCreatorImpl { + + @Override + protected Object createRelationRow(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + if (!res.hasPropertyCacheElement()) { + return null; + } + setupRelationKeyValue(res); + setupRelationAllValue(res); + return res.getRow(); + } + + @Override + protected void setupRelationKeyValue(RelationRowCreationResource res) { + final RelationPropertyType rpt = res.getRelationPropertyType(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + final DBMeta dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName()); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); + + if (!res.containsColumnName(columnName)) { + continue; + } + if (!res.hasRowInstance()) { + final Object row; + if (dbmeta != null) { + row = dbmeta.newEntity(); + } else { + row = newRelationRow(rpt); + } + res.setRow(row); + } + if (!res.containsRelKeyValueIfExists(columnName)) { + continue; + } + final Object value = res.extractRelKeyValue(columnName); + if (value == null) { + continue; + } + + final String yourKey = rpt.getYourKey(i); + final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey); + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + continue; + } + } + + protected Object createRelationRowInstance(DBMeta dbmeta) { + if (dbmeta != null) { + return dbmeta.newEntity(); + } + return null; + } + + protected DBMeta findDBMeta(Class rowType, String tableName) { + return InternalRowCreator.findDBMeta(rowType, tableName); + } + + @SuppressWarnings("unchecked") + @Override + protected void setupRelationAllValue(RelationRowCreationResource res) + throws SQLException { + final Map propertyCacheElement = res.extractPropertyCacheElement(); + final Set columnNameCacheElementKeySet = propertyCacheElement.keySet(); + for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite + .hasNext();) { + final String columnName = (String) ite.next(); + final PropertyType pt = (PropertyType) propertyCacheElement + .get(columnName); + res.setCurrentPropertyType(pt); + if (!isValidRelationPerPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + setupRelationProperty(res); + } + if (!isValidRelationAfterPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + res.clearValidValueCount(); + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + setupNextRelationRow(res); + } + } + + @Override + protected void registerRelationValue(RelationRowCreationResource res, + String columnName) throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + Object value = null; + if (res.containsRelKeyValueIfExists(columnName)) { + value = res.extractRelKeyValue(columnName); + } else { + final ValueType valueType = pt.getValueType(); + value = valueType.getValue(res.getResultSet(), columnName); + } + + if (value != null) { + res.incrementValidValueCount(); + final DBMeta dbmeta = findDBMeta(res.getRow()); + final String propertyName = pt.getPropertyName(); + if (dbmeta != null + && dbmeta.hasEntityPropertySetupper(propertyName)) { + dbmeta.setupEntityProperty(propertyName, res.getRow(), value); + } else { + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + } + } + } + + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + protected DBMeta findDBMeta(Object row) { + return InternalRowCreator.findDBMeta(row); + } + + @Override + protected void setupPropertyCache(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + res.initializePropertyCacheElement(); + + // Do only selected foreign property for performance if condition-bean + // exists. + if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) { + return; + } + + // Set up property cache about current beanMetaData. + final BeanMetaData nextBmd = res.getRelationBeanMetaData(); + for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { + final PropertyType pt = nextBmd.getPropertyType(i); + res.setCurrentPropertyType(pt); + if (!isTargetProperty(res)) { + continue; + } + setupPropertyCacheElement(res); + } + + // Set up next relation. + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + res.backupRelationPropertyType(); + res.incrementCurrentRelationNestLevel(); + try { + setupNextPropertyCache(res, nextBmd); + } finally { + res.restoreRelationPropertyType(); + res.decrementCurrentRelationNestLevel(); + } + } + } + + @Override + protected boolean isTargetProperty(RelationRowCreationResource res) + throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + if (!pt.getPropertyDesc().hasWriteMethod()) { + return false; + } + if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() + .getPropertyType())) { + return false; + } + return true; + } + + @Override + protected boolean isCreateDeadLink() { + return false; + } + + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForRow(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues, + Map relationPropertyCache) throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setResultSet(rs); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelKeyValues(relKeyValues); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix("");// as Default + res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); + res.setLimitRelationNestLevel(getLimitRelationNestLevel()); + res.setCurrentRelationNestLevel(1);// as Default + res.setCreateDeadLink(isCreateDeadLink()); + return res; + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForPropertyCache( + RelationPropertyType rpt, Set columnNames, + Map relationPropertyCache, String baseSuffix, + String relationNoSuffix, int limitRelationNestLevel) + throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix(baseSuffix); + res.setRelationNoSuffix(relationNoSuffix); + res.setLimitRelationNestLevel(limitRelationNestLevel); + res.setCurrentRelationNestLevel(1);// as Default + return res; + } + + protected boolean isConditionBeanSelectedRelation( + RelationRowCreationResource res) { + if (hasConditionBean(res)) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo( + res.getRelationNoSuffix())) { + return true; + } + } + return false; + } + + protected boolean hasConditionBean(RelationRowCreationResource res) { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) { + return true; + } + return false; + } + + protected static class RelationRowCreationResourceExtension extends + RelationRowCreationResource { + protected Stack backupRelationPropertyType = new Stack(); + + protected Stack backupBaseSuffix = new Stack(); + + protected Stack backupRelationSuffix = new Stack(); + + @Override + public void backupRelationPropertyType() { + backupRelationPropertyType.push(getRelationPropertyType()); + } + + @Override + public void restoreRelationPropertyType() { + setRelationPropertyType(backupRelationPropertyType.pop()); + } + + @Override + public void backupSuffixAndPrepare(String baseSuffix, + String additionalRelationNoSuffix) { + backupBaseSuffixExtension(); + backupRelationNoSuffixExtension(); + setBaseSuffix(baseSuffix); + addRelationNoSuffix(additionalRelationNoSuffix); + } + + @Override + public void restoreSuffix() { + restoreBaseSuffixExtension(); + restoreRelationNoSuffixExtension(); + } + + protected void backupBaseSuffixExtension() { + backupBaseSuffix.push(getBaseSuffix()); + } + + protected void restoreBaseSuffixExtension() { + setBaseSuffix(backupBaseSuffix.pop()); + } + + protected void backupRelationNoSuffixExtension() { + backupRelationSuffix.push(getRelationNoSuffix()); + } + + protected void restoreRelationNoSuffixExtension() { + setRelationNoSuffix(backupRelationSuffix.pop()); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRowCreator.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRowCreator.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRowCreator.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,289 @@ +package jp.sf.pal.addresslist.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.InternalMapContext; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.impl.RowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRowCreator extends RowCreatorImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalRowCreator.class); + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta _dbmeta; + + //========================================================================== + // ========= + // Constructor + // =========== + protected InternalRowCreator() { + } + + /** + * @param beanClass The class of target bean to find DB-meta. (Nullable) + * @return The instance of internal row creator. (NotNull) + */ + public static InternalRowCreator createInternalRowCreator(Class beanClass) { + final InternalRowCreator rowCreator = new InternalRowCreator(); + if (beanClass != null) { + rowCreator.setDBMeta(findDBMetaByClass(beanClass)); + } + return rowCreator; + } + + //========================================================================== + // ========= + // Main + // ==== + @SuppressWarnings("unchecked") + @Override + public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) + throws SQLException { + final Set columnNameSet = propertyCache.keySet(); + String columnName = null; + PropertyType pt = null; + String propertyName = null; + final Object row; + final DBMeta dbmeta; + if (_dbmeta != null) { + dbmeta = _dbmeta; + row = dbmeta.newEntity(); + } else { + row = newBean(beanClass); + dbmeta = findDBMeta(row); + } + try { + if (dbmeta != null) { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + if (dbmeta.hasEntityPropertySetupper(propertyName)) { + final ValueType valueType = pt.getValueType(); + final Object value = valueType.getValue(rs, columnName); + dbmeta.setupEntityProperty(propertyName, row, value); + } else { + registerValue(rs, row, pt, columnName); + } + } + } else { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + registerValue(rs, row, pt, columnName); + } + } + return row; + } catch (ClassCastException e) { + if (_log.isWarnEnabled()) { + String msg = ClassCastException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName + " dbmeta"); + } + throwNonsenseClassCastException(row, dbmeta, e); + return null; // Unreachable! + } catch (SQLException e) { + if (_log.isWarnEnabled()) { + String msg = SQLException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName); + } + throw e; + } + } + + protected void throwNonsenseClassCastException(Object entity, + DBMeta dbmeta, ClassCastException e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "This exception may be from ClassLoader Headache about HotDeploy." + + getLineSeparator(); + msg = msg + + "Please add the ignore-package setting to convention.dicon like as follows:" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + + getLineSeparator(); + msg = msg + " ¡Écom.example.xxx.dbflute¡É" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + + entity.getClass().getClassLoader() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + + dbmeta.getClass().getClassLoader() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new NonsenseClassCastException(msg, e); + } + + public static class NonsenseClassCastException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public NonsenseClassCastException(String msg, ClassCastException e) { + super(msg, e); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Object row) { + return DBMetaCacheHandler.findDBMeta(row); + } + + /** + * @param rowType The type of row. (NotNull) + * @param tableName The name of table. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Class rowType, String tableName) { + return DBMetaCacheHandler.findDBMeta(rowType, tableName); + } + + protected static class DBMetaCacheHandler { + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + public static DBMeta findDBMeta(Object row) { + if (!(row instanceof Entity)) { + return null; + } + final Entity entity = (Entity) row; + DBMeta dbmeta = findCachedDBMeta(entity.getClass()); + if (dbmeta != null) { + return dbmeta; + } + dbmeta = entity.getDBMeta(); + cacheDBMeta(entity, dbmeta); + return dbmeta; + } + + public static DBMeta findDBMeta(Class rowType, String tableName) { + DBMeta dbmeta = findCachedDBMeta(rowType); + if (dbmeta != null) { + return dbmeta; + } + try { + dbmeta = DBMetaInstanceHandler.findDBMeta(tableName); + } catch (DBMetaInstanceHandler.DBMetaNotFoundException ignored) { + return null; + } + cacheDBMeta(rowType, dbmeta); + return dbmeta; + } + + protected static DBMeta findCachedDBMeta(Class rowType) { + Map, DBMeta> dbmetaCache = findDBMetaCache(); + if (dbmetaCache == null) { + dbmetaCache = new HashMap, DBMeta>(); + InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); + } + return dbmetaCache.get(rowType); + } + + protected static void cacheDBMeta(Entity entity, DBMeta dbmeta) { + cacheDBMeta(entity.getClass(), dbmeta); + } + + protected static void cacheDBMeta(Class type, DBMeta dbmeta) { + final Map, DBMeta> dbmetaCache = findDBMetaCache(); + dbmetaCache.put(type, dbmeta); + } + + @SuppressWarnings("unchecked") + protected static Map, DBMeta> findDBMetaCache() { + return (Map, DBMeta>) InternalMapContext + .getObject(DBMETA_CACHE_KEY); + } + } + + protected static DBMeta findDBMetaByClass(Class beanClass) { + final Object instance = newInstance(beanClass); + if (!(instance instanceof Entity)) { + return null; + } + return ((Entity) instance).getDBMeta(); + } + + protected static Object newInstance(Class clazz) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setDBMeta(DBMeta dbmeta) { + this._dbmeta = dbmeta; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/s2dao/internal/various/InternalRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleAssertUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleAssertUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleAssertUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,54 @@ +package jp.sf.pal.addresslist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleAssertUtil { + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + public static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + public static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleAssertUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleStringUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleStringUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleStringUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,67 @@ +package jp.sf.pal.addresslist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringUtil { + + //========================================================================== + // ========= + // String + // ====== + public static String replace(String text, String fromText, String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + int pos = 0; + int pos2 = 0; + do { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + sb.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + sb.append(text.substring(pos2, pos)); + sb.append(toText); + pos2 = pos + fromText.length(); + } else { + sb.append(text.substring(pos2)); + return sb.toString(); + } + } while (true); + } + + public static String initCap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + + public static String initUncap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleStringUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleSystemUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleSystemUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleSystemUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleSystemUtil { + + //========================================================================== + // ========= + // System + // ====== + public static String getLineSeparator() { + // /- - - - - - - - - - - - - - - - - - - - - - + // Because 'CR + LF' caused many trouble! + // And Now 'LF' have little trouble. + // + // return System.getProperty("line.separator"); + // - - - - - - - - - -/ + return "\n"; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/SimpleSystemUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/TraceViewUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/TraceViewUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/TraceViewUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,67 @@ +package jp.sf.pal.addresslist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TraceViewUtil { + + /** + * Convert to performance view. + * + * @param afterMinusBefore The value of after-minus-before millisecond. + * @return Performance view. (ex. 1m23s456ms) (NotNull) + */ + public static String convertToPerformanceView(long afterMinusBefore) { + if (afterMinusBefore < 0) { + return String.valueOf(afterMinusBefore); + } + + long sec = afterMinusBefore / 1000; + final long min = sec / 60; + sec = sec % 60; + final long mil = afterMinusBefore % 1000; + + final StringBuffer sb = new StringBuffer(); + if (min >= 10) { // Minute + sb.append(min).append("m"); + } else if (min < 10 && min >= 0) { + sb.append("0").append(min).append("m"); + } + if (sec >= 10) { // Second + sb.append(sec).append("s"); + } else if (sec < 10 && sec >= 0) { + sb.append("0").append(sec).append("s"); + } + if (mil >= 100) { // Millisecond + sb.append(mil).append("ms"); + } else if (mil < 100 && mil >= 10) { + sb.append("0").append(mil).append("ms"); + } else if (mil < 10 && mil >= 0) { + sb.append("00").append(mil).append("ms"); + } + + return sb.toString(); + } + + /** + * Convert object array to string view. + * + * @param objArray The array of object. (Nullable) + * @return The string divided with comma. (NotNull: If the argument is null, + * returns empty string.) + */ + public static String convertObjectArrayToStringView(Object[] objArray) { + if (objArray == null) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < objArray.length; i++) { + if (i == 0) { + sb.append(objArray[i]); + } else { + sb.append(", ").append(objArray[i]); + } + } + return sb.toString(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/TraceViewUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/ValueLabelUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/ValueLabelUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/ValueLabelUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,65 @@ +package jp.sf.pal.addresslist.db.allcommon.util; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelUtil { + + /** + * Find the label by the value from the list of value label. + * + * @param valueLabelList The list of value label. (NotNull and NotEmpty) + * @param value Value. (NotNull) + * @return Label. (NotNull) + */ + public static String findLabel(List> valueLabelList, + Object value) { + if (valueLabelList == null) { + String msg = "The arguement[valueLabelList] should not be null."; + throw new IllegalArgumentException(msg); + } + if (valueLabelList.isEmpty()) { + String msg = "The arguement[valueLabelList] should not be empty."; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The arguement[value] should not be null."; + throw new IllegalArgumentException(msg); + } + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + if (value.equals(currentValue)) { + return (String) elementMap.get("label"); + } + } + String msg = "Not found label by the value: value=" + value + + " valueLabelList=" + valueLabelList; + throw new IllegalStateException(msg); + } + + public static Map createValueLabelMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentValue, currentLabel); + } + return resultMap; + } + + public static Map createLabelValueMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentLabel, currentValue); + } + return resultMap; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/allcommon/util/ValueLabelUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCompanyBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCompanyBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCompanyBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,813 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.CompanyDbm; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.exbhv.PersonBhv; +import jp.sf.pal.addresslist.db.exdao.CompanyDao; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of COMPANY. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, NAME, NAME_DESC, DEPARTMENT, BUILDING, STREET, CITY, STATE, POSTAL_CODE, COUNTRY, TELEPHONE1, TELEPHONE2, FAX1, FAX2, URL, IS_PUBLIC, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     PERSON
    + * 
    + * [foreign-property]
    + *     userInfo
    + * 
    + * [referrer-property]
    + *     personList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsCompanyBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected CompanyDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "COMPANY"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return CompanyDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public CompanyDbm getMyDBMeta() { + return CompanyDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public CompanyDao getMyDao() { + return _dao; + } + + public void setMyDao(CompanyDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Company newMyEntity() { + return new Company(); + } + + public CompanyCB newMyConditionBean() { + return new CompanyCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Company. (NotNull) + * @return The selected count. + */ + public int selectCount(CompanyCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Company. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Company selectEntity(final CompanyCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(CompanyCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Company. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Company selectEntityWithDeletedCheck(final CompanyCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(CompanyCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Company selectByPKValueWithDeletedCheck(Long id) { + Company entity = new Company(); + entity.setId(id); + final CompanyCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Company. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(CompanyCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Company. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final CompanyCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Company. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + CompanyCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of personList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setCompanyId_InScope(pkList);
    +     * cb.query().addOrderBy_CompanyId_Asc();
    +     * 
    + * + * @param companyList The entity list of company. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadPersonList(List companyList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("companyList", companyList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (companyList.isEmpty()) { + return; + } + loadPersonList(companyList, new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param companyList The entity list of company. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadPersonList(List companyList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("companyList", companyList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (companyList.isEmpty()) { + return; + } + final PersonBhv referrerBhv = xgetBSFLR().select(PersonBhv.class); + helpLoadReferrerInternally( + companyList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue(Company entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList(Company entity, + List referrerList) { + entity.setPersonList(referrerList); + } + + public PersonCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + PersonCB cb, List pkList) { + cb.query().setCompanyId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + PersonCB cb) { + cb.query().addOrderBy_CompanyId_Asc(); + } + + public List callbackReferrer_selectList(PersonCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + Person entity) { + return entity.getCompanyId(); + } + + public void callbackReferrer_setForeignEntity( + Person referrerEntity, Company baseEntity) { + referrerEntity.setCompany(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param companyList The list of company. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List companyList) { + return helpPulloutInternally(companyList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Company entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param company The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Company company) { + assertEntityNotNull(company); + delegateInsert(company); + } + + @Override + protected void doCreate(Entity company) { + insert((Company) company); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param company The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Company company) { + helpUpdateInternally(company, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Company entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Company) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param company The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final Company company) { + helpUpdateNonstrictInternally(company, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(Company entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((Company) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param company The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Company company) { + helpInsertOrUpdateInternally(company, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Company entity) { + insert(entity); + } + + public void callbackUpdate(Company entity) { + update(entity); + } + + public CompanyCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(CompanyCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity company) { + insertOrUpdate((Company) company); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param company The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(Company company) { + helpInsertOrUpdateInternally(company, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(Company entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(Company entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((Company) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param company The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Company company) { + helpDeleteInternally(company, new InternalDeleteCallback() { + public int callbackDelegateDelete(Company entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity company) { + delete((Company) company); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param company Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(Company company) { + helpDeleteNonstrictInternally(company, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(Company entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param company Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(Company company) { + helpDeleteNonstrictIgnoreDeletedInternally(company, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(Company entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param companyList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List companyList) { + assertObjectNotNull("companyList", companyList); + return delegateInsertList(companyList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param companyList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List companyList) { + assertObjectNotNull("companyList", companyList); + return delegateUpdateList(companyList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param companyList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List companyList) { + assertObjectNotNull("companyList", companyList); + return delegateUpdateListNonstrict(companyList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param companyList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List companyList) { + assertObjectNotNull("companyList", companyList); + return delegateDeleteList(companyList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param companyList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List companyList) { + assertObjectNotNull("companyList", companyList); + return delegateDeleteListNonstrict(companyList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param company Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Company company, CompanyCB cb) { + assertObjectNotNull("company", company); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(company); + filterEntityOfUpdate(company); + assertEntityOfUpdate(company); + return getMyDao().updateByQuery(cb, company); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(CompanyCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(CompanyCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(CompanyCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Company e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Company e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(Company e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(Company e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(Company e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("companyList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("companyList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("companyList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("companyList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("companyList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Company downcast(Entity entity) { + return helpDowncastInternally(entity, Company.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCompanyBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsContactBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsContactBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsContactBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,578 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.ContactDbm; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.exdao.ContactDao; +import jp.sf.pal.addresslist.db.exentity.Contact; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The behavior of CONTACT. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, PERSON_ID, NAME, VALUE
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     PERSON
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     person
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsContactBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected ContactDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "CONTACT"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return ContactDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public ContactDbm getMyDBMeta() { + return ContactDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public ContactDao getMyDao() { + return _dao; + } + + public void setMyDao(ContactDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Contact newMyEntity() { + return new Contact(); + } + + public ContactCB newMyConditionBean() { + return new ContactCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Contact. (NotNull) + * @return The selected count. + */ + public int selectCount(ContactCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Contact. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Contact selectEntity(final ContactCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(ContactCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Contact. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Contact selectEntityWithDeletedCheck(final ContactCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(ContactCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Contact selectByPKValueWithDeletedCheck(Long id) { + Contact entity = new Contact(); + entity.setId(id); + final ContactCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Contact. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(ContactCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Contact. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final ContactCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Contact. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + ContactCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Person'. + * + * @param contactList The list of contact. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutPerson(List contactList) { + return helpPulloutInternally(contactList, + new InternalPulloutCallback() { + public Person callbackGetForeignEntity(Contact entity) { + return entity.getPerson(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param contact The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Contact contact) { + assertEntityNotNull(contact); + delegateInsert(contact); + } + + @Override + protected void doCreate(Entity contact) { + insert((Contact) contact); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param contact The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Contact contact) { + helpUpdateInternally(contact, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Contact entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Contact) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((Contact) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param contact The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Contact contact) { + helpInsertOrUpdateInternally(contact, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Contact entity) { + insert(entity); + } + + public void callbackUpdate(Contact entity) { + update(entity); + } + + public ContactCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(ContactCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity contact) { + insertOrUpdate((Contact) contact); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((Contact) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param contact The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Contact contact) { + helpDeleteInternally(contact, new InternalDeleteCallback() { + public int callbackDelegateDelete(Contact entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity contact) { + delete((Contact) contact); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param contactList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List contactList) { + assertObjectNotNull("contactList", contactList); + return delegateInsertList(contactList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param contactList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List contactList) { + assertObjectNotNull("contactList", contactList); + return delegateUpdateList(contactList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param contactList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List contactList) { + assertObjectNotNull("contactList", contactList); + return delegateDeleteList(contactList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param contact Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Contact contact, ContactCB cb) { + assertObjectNotNull("contact", contact); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(contact); + filterEntityOfUpdate(contact); + assertEntityOfUpdate(contact); + return getMyDao().updateByQuery(cb, contact); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(ContactCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(ContactCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(ContactCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Contact e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Contact e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(Contact e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("contactList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("contactList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("contactList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Contact downcast(Entity entity) { + return helpDowncastInternally(entity, Contact.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsContactBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCustomBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCustomBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCustomBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,578 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.CustomDbm; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.exdao.CustomDao; +import jp.sf.pal.addresslist.db.exentity.Custom; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The behavior of CUSTOM. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, PERSON_ID, VALUE, SORT_ORDER
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     PERSON
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     person
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsCustomBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected CustomDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "CUSTOM"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return CustomDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public CustomDbm getMyDBMeta() { + return CustomDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public CustomDao getMyDao() { + return _dao; + } + + public void setMyDao(CustomDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Custom newMyEntity() { + return new Custom(); + } + + public CustomCB newMyConditionBean() { + return new CustomCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Custom. (NotNull) + * @return The selected count. + */ + public int selectCount(CustomCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Custom. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Custom selectEntity(final CustomCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(CustomCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Custom. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Custom selectEntityWithDeletedCheck(final CustomCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(CustomCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Custom selectByPKValueWithDeletedCheck(Long id) { + Custom entity = new Custom(); + entity.setId(id); + final CustomCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Custom. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(CustomCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Custom. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final CustomCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Custom. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + CustomCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Person'. + * + * @param customList The list of custom. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutPerson(List customList) { + return helpPulloutInternally(customList, + new InternalPulloutCallback() { + public Person callbackGetForeignEntity(Custom entity) { + return entity.getPerson(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param custom The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Custom custom) { + assertEntityNotNull(custom); + delegateInsert(custom); + } + + @Override + protected void doCreate(Entity custom) { + insert((Custom) custom); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param custom The entity of update target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Custom custom) { + helpUpdateInternally(custom, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Custom entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Custom) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((Custom) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param custom The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Custom custom) { + helpInsertOrUpdateInternally(custom, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Custom entity) { + insert(entity); + } + + public void callbackUpdate(Custom entity) { + update(entity); + } + + public CustomCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(CustomCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity custom) { + insertOrUpdate((Custom) custom); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((Custom) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param custom The entity of delete target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Custom custom) { + helpDeleteInternally(custom, new InternalDeleteCallback() { + public int callbackDelegateDelete(Custom entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity custom) { + delete((Custom) custom); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param customList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List customList) { + assertObjectNotNull("customList", customList); + return delegateInsertList(customList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param customList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List customList) { + assertObjectNotNull("customList", customList); + return delegateUpdateList(customList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param customList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List customList) { + assertObjectNotNull("customList", customList); + return delegateDeleteList(customList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param custom Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Custom custom, CustomCB cb) { + assertObjectNotNull("custom", custom); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(custom); + filterEntityOfUpdate(custom); + assertEntityOfUpdate(custom); + return getMyDao().updateByQuery(cb, custom); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(CustomCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(CustomCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(CustomCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Custom e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Custom e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(Custom e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("customList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("customList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("customList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Custom downcast(Entity entity) { + return helpDowncastInternally(entity, Custom.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsCustomBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupInfoBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,897 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exbhv.GroupMappingBhv; +import jp.sf.pal.addresslist.db.exbhv.UserInfoBhv; +import jp.sf.pal.addresslist.db.exdao.GroupInfoDao; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupMappingBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,602 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.exdao.GroupMappingDao; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPersonBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPersonBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPersonBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,935 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.PersonDbm; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.exbhv.ContactBhv; +import jp.sf.pal.addresslist.db.exbhv.CustomBhv; +import jp.sf.pal.addresslist.db.exdao.PersonDao; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.Contact; +import jp.sf.pal.addresslist.db.exentity.Custom; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.Postal; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of PERSON. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GIVEN_NAME, GIVEN_NAME_DESC, FAMILY_NAME, FAMILY_NAME_DESC, MIDDLE_NAME, NAME_PREFIX, NAME_SUFFIX, NICKNAME, JOB_TITLE, IS_PUBLIC, COMPANY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     COMPANY, USER_INFO
    + * 
    + * [referrer-table]
    + *     CONTACT, CUSTOM, POSTAL
    + * 
    + * [foreign-property]
    + *     company, userInfo, postalAsOne
    + * 
    + * [referrer-property]
    + *     contactList, customList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsPersonBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected PersonDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "PERSON"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return PersonDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public PersonDbm getMyDBMeta() { + return PersonDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public PersonDao getMyDao() { + return _dao; + } + + public void setMyDao(PersonDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Person newMyEntity() { + return new Person(); + } + + public PersonCB newMyConditionBean() { + return new PersonCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Person. (NotNull) + * @return The selected count. + */ + public int selectCount(PersonCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Person. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Person selectEntity(final PersonCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(PersonCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Person. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Person selectEntityWithDeletedCheck(final PersonCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(PersonCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Person selectByPKValueWithDeletedCheck(Long id) { + Person entity = new Person(); + entity.setId(id); + final PersonCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Person. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(PersonCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Person. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final PersonCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Person. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + PersonCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of contactList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setPersonId_InScope(pkList);
    +     * cb.query().addOrderBy_PersonId_Asc();
    +     * 
    + * + * @param personList The entity list of person. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadContactList(List personList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("personList", personList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (personList.isEmpty()) { + return; + } + loadContactList(personList, new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param personList The entity list of person. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadContactList(List personList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("personList", personList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (personList.isEmpty()) { + return; + } + final ContactBhv referrerBhv = xgetBSFLR().select(ContactBhv.class); + helpLoadReferrerInternally( + personList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue(Person entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList(Person entity, + List referrerList) { + entity.setContactList(referrerList); + } + + public ContactCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + ContactCB cb, List pkList) { + cb.query().setPersonId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + ContactCB cb) { + cb.query().addOrderBy_PersonId_Asc(); + } + + public List callbackReferrer_selectList( + ContactCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + Contact entity) { + return entity.getPersonId(); + } + + public void callbackReferrer_setForeignEntity( + Contact referrerEntity, Person baseEntity) { + referrerEntity.setPerson(baseEntity); + } + }); + } + + /** + * Load referrer of customList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setPersonId_InScope(pkList);
    +     * cb.query().addOrderBy_PersonId_Asc();
    +     * 
    + * + * @param personList The entity list of person. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadCustomList(List personList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("personList", personList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (personList.isEmpty()) { + return; + } + loadCustomList(personList, new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param personList The entity list of person. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadCustomList(List personList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("personList", personList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (personList.isEmpty()) { + return; + } + final CustomBhv referrerBhv = xgetBSFLR().select(CustomBhv.class); + helpLoadReferrerInternally( + personList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue(Person entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList(Person entity, + List referrerList) { + entity.setCustomList(referrerList); + } + + public CustomCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + CustomCB cb, List pkList) { + cb.query().setPersonId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + CustomCB cb) { + cb.query().addOrderBy_PersonId_Asc(); + } + + public List callbackReferrer_selectList(CustomCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + Custom entity) { + return entity.getPersonId(); + } + + public void callbackReferrer_setForeignEntity( + Custom referrerEntity, Person baseEntity) { + referrerEntity.setPerson(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Company'. + * + * @param personList The list of person. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutCompany(List personList) { + return helpPulloutInternally(personList, + new InternalPulloutCallback() { + public Company callbackGetForeignEntity(Person entity) { + return entity.getCompany(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param personList The list of person. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List personList) { + return helpPulloutInternally(personList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Person entity) { + return entity.getUserInfo(); + } + }); + } + + /** + * Pull out the list of referrer-as-one table 'Postal'. + * + * @param personList The list of person. (NotNull) + * @return The list of referrer-as-one table. (NotNull) + */ + public List pulloutPostalAsOne(List personList) { + return helpPulloutInternally(personList, + new InternalPulloutCallback() { + public Postal callbackGetForeignEntity(Person entity) { + return entity.getPostalAsOne(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param person The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Person person) { + assertEntityNotNull(person); + delegateInsert(person); + } + + @Override + protected void doCreate(Entity person) { + insert((Person) person); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param person The entity of update target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Person person) { + helpUpdateInternally(person, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Person entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Person) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param person The entity of update target. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final Person person) { + helpUpdateNonstrictInternally(person, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(Person entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((Person) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param person The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Person person) { + helpInsertOrUpdateInternally(person, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Person entity) { + insert(entity); + } + + public void callbackUpdate(Person entity) { + update(entity); + } + + public PersonCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(PersonCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity person) { + insertOrUpdate((Person) person); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param person The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(Person person) { + helpInsertOrUpdateInternally(person, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(Person entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(Person entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((Person) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param person The entity of delete target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Person person) { + helpDeleteInternally(person, new InternalDeleteCallback() { + public int callbackDelegateDelete(Person entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity person) { + delete((Person) person); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param person Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(Person person) { + helpDeleteNonstrictInternally(person, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(Person entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param person Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(Person person) { + helpDeleteNonstrictIgnoreDeletedInternally(person, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(Person entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param personList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List personList) { + assertObjectNotNull("personList", personList); + return delegateInsertList(personList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param personList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List personList) { + assertObjectNotNull("personList", personList); + return delegateUpdateList(personList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param personList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List personList) { + assertObjectNotNull("personList", personList); + return delegateUpdateListNonstrict(personList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param personList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List personList) { + assertObjectNotNull("personList", personList); + return delegateDeleteList(personList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param personList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List personList) { + assertObjectNotNull("personList", personList); + return delegateDeleteListNonstrict(personList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param person Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Person person, PersonCB cb) { + assertObjectNotNull("person", person); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(person); + filterEntityOfUpdate(person); + assertEntityOfUpdate(person); + return getMyDao().updateByQuery(cb, person); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(PersonCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(PersonCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(PersonCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Person e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Person e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(Person e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(Person e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(Person e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("personList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("personList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("personList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("personList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("personList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Person downcast(Entity entity) { + return helpDowncastInternally(entity, Person.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPersonBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPostalBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPostalBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPostalBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,578 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.PostalDbm; +import jp.sf.pal.addresslist.db.cbean.PostalCB; +import jp.sf.pal.addresslist.db.exdao.PostalDao; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.Postal; + +/** + * The behavior of POSTAL. + * + *
    + * [primary-key]
    + *     PERSON_ID
    + * 
    + * [column]
    + *     PERSON_ID, BUILDING, STREET, CITY, STATE, POSTAL_CODE, COUNTRY
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     PERSON
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     person
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsPostalBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected PostalDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "POSTAL"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return PostalDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public PostalDbm getMyDBMeta() { + return PostalDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public PostalDao getMyDao() { + return _dao; + } + + public void setMyDao(PostalDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Postal newMyEntity() { + return new Postal(); + } + + public PostalCB newMyConditionBean() { + return new PostalCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Postal. (NotNull) + * @return The selected count. + */ + public int selectCount(PostalCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Postal. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Postal selectEntity(final PostalCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(PostalCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Postal. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Postal selectEntityWithDeletedCheck(final PostalCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(PostalCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Postal selectByPKValueWithDeletedCheck(Long personId) { + Postal entity = new Postal(); + entity.setPersonId(personId); + final PostalCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Postal. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(PostalCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Postal. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final PostalCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Postal. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + PostalCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Person'. + * + * @param postalList The list of postal. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutPerson(List postalList) { + return helpPulloutInternally(postalList, + new InternalPulloutCallback() { + public Person callbackGetForeignEntity(Postal entity) { + return entity.getPerson(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param postal The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Postal postal) { + assertEntityNotNull(postal); + delegateInsert(postal); + } + + @Override + protected void doCreate(Entity postal) { + insert((Postal) postal); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param postal The entity of update target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Postal postal) { + helpUpdateInternally(postal, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Postal entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Postal) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((Postal) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param postal The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Postal postal) { + helpInsertOrUpdateInternally(postal, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Postal entity) { + insert(entity); + } + + public void callbackUpdate(Postal entity) { + update(entity); + } + + public PostalCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(PostalCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity postal) { + insertOrUpdate((Postal) postal); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((Postal) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param postal The entity of delete target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Postal postal) { + helpDeleteInternally(postal, new InternalDeleteCallback() { + public int callbackDelegateDelete(Postal entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity postal) { + delete((Postal) postal); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param postalList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List postalList) { + assertObjectNotNull("postalList", postalList); + return delegateInsertList(postalList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param postalList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List postalList) { + assertObjectNotNull("postalList", postalList); + return delegateUpdateList(postalList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param postalList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List postalList) { + assertObjectNotNull("postalList", postalList); + return delegateDeleteList(postalList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param postal Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Postal postal, PostalCB cb) { + assertObjectNotNull("postal", postal); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(postal); + filterEntityOfUpdate(postal); + assertEntityOfUpdate(postal); + return getMyDao().updateByQuery(cb, postal); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(PostalCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(PostalCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(PostalCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Postal e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Postal e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(Postal e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("postalList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("postalList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("postalList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Postal downcast(Entity entity) { + return helpDowncastInternally(entity, Postal.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsPostalBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleInfoBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,895 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exbhv.RoleMappingBhv; +import jp.sf.pal.addresslist.db.exbhv.UserInfoBhv; +import jp.sf.pal.addresslist.db.exdao.RoleInfoDao; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleMappingBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,597 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.exdao.RoleMappingDao; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1111 @@ +package jp.sf.pal.addresslist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.addresslist.db.allcommon.DaoReadable; +import jp.sf.pal.addresslist.db.allcommon.DaoWritable; +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.addresslist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exbhv.CompanyBhv; +import jp.sf.pal.addresslist.db.exbhv.GroupMappingBhv; +import jp.sf.pal.addresslist.db.exbhv.PersonBhv; +import jp.sf.pal.addresslist.db.exbhv.RoleMappingBhv; +import jp.sf.pal.addresslist.db.exdao.UserInfoDao; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     COMPANY, GROUP_MAPPING, PERSON, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     companyList, groupMappingList, personList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.addresslist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of companyList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadCompanyList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadCompanyList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadCompanyList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final CompanyBhv referrerBhv = xgetBSFLR().select(CompanyBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setCompanyList(referrerList); + } + + public CompanyCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + CompanyCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + CompanyCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + CompanyCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Company entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + Company referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of personList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadPersonList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadPersonList(userInfoList, new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadPersonList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final PersonBhv referrerBhv = xgetBSFLR().select(PersonBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setPersonList(referrerList); + } + + public PersonCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + PersonCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + PersonCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList(PersonCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Person entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + Person referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.addresslist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCompanyDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCompanyDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCompanyDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.exentity.Company; + +/** + * The DAO interface of COMPANY. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsCompanyDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = Company.class; // For S2Dao + + public int selectCount(CompanyCB cb); + + public List selectList(CompanyCB cb); + + int insert(Company entity); + + int updateModifiedOnly(Company entity); + + int updateNonstrictModifiedOnly(Company entity); + + int delete(Company entity); + + int deleteNonstrict(Company entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(CompanyCB cb, Company entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(CompanyCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCompanyDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsContactDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsContactDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsContactDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.exentity.Contact; + +/** + * The DAO interface of CONTACT. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsContactDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = Contact.class; // For S2Dao + + public int selectCount(ContactCB cb); + + public List selectList(ContactCB cb); + + int insert(Contact entity); + + int updateModifiedOnly(Contact entity); + + int delete(Contact entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(ContactCB cb, Contact entity); + + int[] deleteList(List entityList); + + int deleteByQuery(ContactCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsContactDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCustomDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCustomDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCustomDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.exentity.Custom; + +/** + * The DAO interface of CUSTOM. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsCustomDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = Custom.class; // For S2Dao + + public int selectCount(CustomCB cb); + + public List selectList(CustomCB cb); + + int insert(Custom entity); + + int updateModifiedOnly(Custom entity); + + int delete(Custom entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(CustomCB cb, Custom entity); + + int[] deleteList(List entityList); + + int deleteByQuery(CustomCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsCustomDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupInfoDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupInfoDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupInfoDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupMappingDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupMappingDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupMappingDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPersonDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPersonDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPersonDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The DAO interface of PERSON. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsPersonDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = Person.class; // For S2Dao + + public int selectCount(PersonCB cb); + + public List selectList(PersonCB cb); + + int insert(Person entity); + + int updateModifiedOnly(Person entity); + + int updateNonstrictModifiedOnly(Person entity); + + int delete(Person entity); + + int deleteNonstrict(Person entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(PersonCB cb, Person entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(PersonCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPersonDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPostalDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPostalDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPostalDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.PostalCB; +import jp.sf.pal.addresslist.db.exentity.Postal; + +/** + * The DAO interface of POSTAL. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsPostalDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = Postal.class; // For S2Dao + + public int selectCount(PostalCB cb); + + public List selectList(PostalCB cb); + + int insert(Postal entity); + + int updateModifiedOnly(Postal entity); + + int delete(Postal entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(PostalCB cb, Postal entity); + + int[] deleteList(List entityList); + + int deleteByQuery(PostalCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsPostalDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleInfoDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleInfoDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleInfoDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleMappingDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleMappingDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleMappingDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,37 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsUserInfoDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsUserInfoDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsUserInfoDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends + jp.sf.pal.addresslist.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCompany.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCompany.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCompany.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,900 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The entity of COMPANY that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, NAME, NAME_DESC, DEPARTMENT, BUILDING, STREET, CITY, STATE, POSTAL_CODE, COUNTRY, TELEPHONE1, TELEPHONE2, FAX1, FAX2, URL, IS_PUBLIC, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     PERSON
    + * 
    + * [foreign-property]
    + *     userInfo
    + * 
    + * [referrer-property]
    + *     personList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsCompany implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is COMPANY. */ + public static final String TABLE = "COMPANY"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** USER_ID: {VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** NAME: {VARCHAR(200)} */ + protected String _name; + + /** NAME_DESC: {VARCHAR(200)} */ + protected String _nameDesc; + + /** DEPARTMENT: {VARCHAR(200)} */ + protected String _department; + + /** BUILDING: {VARCHAR(200)} */ + protected String _building; + + /** STREET: {VARCHAR(200)} */ + protected String _street; + + /** CITY: {VARCHAR(100)} */ + protected String _city; + + /** STATE: {VARCHAR(100)} */ + protected String _state; + + /** POSTAL_CODE: {VARCHAR(30)} */ + protected String _postalCode; + + /** COUNTRY: {VARCHAR(200)} */ + protected String _country; + + /** TELEPHONE1: {VARCHAR(40)} */ + protected String _telephone1; + + /** TELEPHONE2: {VARCHAR(40)} */ + protected String _telephone2; + + /** FAX1: {VARCHAR(40)} */ + protected String _fax1; + + /** FAX2: {VARCHAR(40)} */ + protected String _fax2; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** IS_PUBLIC: {VARCHAR(1) : Default=[T]} */ + protected String _isPublic; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[1]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsCompany() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "COMPANY"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "company"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 0; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [personList] + // * * * * * * * * */ + /** PERSON as 'personList'. */ + protected List _childrenPersonList; + + /** + * PERSON as 'personList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'personList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getPersonList() { + if (_childrenPersonList == null) { + _childrenPersonList = new ArrayList(); + } + return _childrenPersonList; + } + + /** + * PERSON as 'personList'. + * + * @param personList The entity list of referrer property 'personList'. + * (Nullable) + */ + public void setPersonList(List personList) { + _childrenPersonList = personList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsCompany)) { + return false; + } + BsCompany otherEntity = (BsCompany) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getNameDesc()); + sb.append(delimiter).append(getDepartment()); + sb.append(delimiter).append(getBuilding()); + sb.append(delimiter).append(getStreet()); + sb.append(delimiter).append(getCity()); + sb.append(delimiter).append(getState()); + sb.append(delimiter).append(getPostalCode()); + sb.append(delimiter).append(getCountry()); + sb.append(delimiter).append(getTelephone1()); + sb.append(delimiter).append(getTelephone2()); + sb.append(delimiter).append(getFax1()); + sb.append(delimiter).append(getFax2()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getIsPublic()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to USER_INFO} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(200)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(200)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String nameDesc_COLUMN = "NAME_DESC"; + + /** + * NAME_DESC: {VARCHAR(200)}
    + * + * @return The value of the column 'NAME_DESC'. (Nullable) + */ + public String getNameDesc() { + return _nameDesc; + } + + /** + * NAME_DESC: {VARCHAR(200)}
    + * + * @param nameDesc The value of the column 'NAME_DESC'. (Nullable) + */ + public void setNameDesc(String nameDesc) { + _modifiedProperties.addPropertyName("nameDesc"); + this._nameDesc = nameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String department_COLUMN = "DEPARTMENT"; + + /** + * DEPARTMENT: {VARCHAR(200)}
    + * + * @return The value of the column 'DEPARTMENT'. (Nullable) + */ + public String getDepartment() { + return _department; + } + + /** + * DEPARTMENT: {VARCHAR(200)}
    + * + * @param department The value of the column 'DEPARTMENT'. (Nullable) + */ + public void setDepartment(String department) { + _modifiedProperties.addPropertyName("department"); + this._department = department; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String building_COLUMN = "BUILDING"; + + /** + * BUILDING: {VARCHAR(200)}
    + * + * @return The value of the column 'BUILDING'. (Nullable) + */ + public String getBuilding() { + return _building; + } + + /** + * BUILDING: {VARCHAR(200)}
    + * + * @param building The value of the column 'BUILDING'. (Nullable) + */ + public void setBuilding(String building) { + _modifiedProperties.addPropertyName("building"); + this._building = building; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String street_COLUMN = "STREET"; + + /** + * STREET: {VARCHAR(200)}
    + * + * @return The value of the column 'STREET'. (Nullable) + */ + public String getStreet() { + return _street; + } + + /** + * STREET: {VARCHAR(200)}
    + * + * @param street The value of the column 'STREET'. (Nullable) + */ + public void setStreet(String street) { + _modifiedProperties.addPropertyName("street"); + this._street = street; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String city_COLUMN = "CITY"; + + /** + * CITY: {VARCHAR(100)}
    + * + * @return The value of the column 'CITY'. (Nullable) + */ + public String getCity() { + return _city; + } + + /** + * CITY: {VARCHAR(100)}
    + * + * @param city The value of the column 'CITY'. (Nullable) + */ + public void setCity(String city) { + _modifiedProperties.addPropertyName("city"); + this._city = city; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String state_COLUMN = "STATE"; + + /** + * STATE: {VARCHAR(100)}
    + * + * @return The value of the column 'STATE'. (Nullable) + */ + public String getState() { + return _state; + } + + /** + * STATE: {VARCHAR(100)}
    + * + * @param state The value of the column 'STATE'. (Nullable) + */ + public void setState(String state) { + _modifiedProperties.addPropertyName("state"); + this._state = state; + } + + /** The column annotation for S2Dao. {VARCHAR(30)} */ + public static final String postalCode_COLUMN = "POSTAL_CODE"; + + /** + * POSTAL_CODE: {VARCHAR(30)}
    + * + * @return The value of the column 'POSTAL_CODE'. (Nullable) + */ + public String getPostalCode() { + return _postalCode; + } + + /** + * POSTAL_CODE: {VARCHAR(30)}
    + * + * @param postalCode The value of the column 'POSTAL_CODE'. (Nullable) + */ + public void setPostalCode(String postalCode) { + _modifiedProperties.addPropertyName("postalCode"); + this._postalCode = postalCode; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String country_COLUMN = "COUNTRY"; + + /** + * COUNTRY: {VARCHAR(200)}
    + * + * @return The value of the column 'COUNTRY'. (Nullable) + */ + public String getCountry() { + return _country; + } + + /** + * COUNTRY: {VARCHAR(200)}
    + * + * @param country The value of the column 'COUNTRY'. (Nullable) + */ + public void setCountry(String country) { + _modifiedProperties.addPropertyName("country"); + this._country = country; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone1_COLUMN = "TELEPHONE1"; + + /** + * TELEPHONE1: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE1'. (Nullable) + */ + public String getTelephone1() { + return _telephone1; + } + + /** + * TELEPHONE1: {VARCHAR(40)}
    + * + * @param telephone1 The value of the column 'TELEPHONE1'. (Nullable) + */ + public void setTelephone1(String telephone1) { + _modifiedProperties.addPropertyName("telephone1"); + this._telephone1 = telephone1; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone2_COLUMN = "TELEPHONE2"; + + /** + * TELEPHONE2: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE2'. (Nullable) + */ + public String getTelephone2() { + return _telephone2; + } + + /** + * TELEPHONE2: {VARCHAR(40)}
    + * + * @param telephone2 The value of the column 'TELEPHONE2'. (Nullable) + */ + public void setTelephone2(String telephone2) { + _modifiedProperties.addPropertyName("telephone2"); + this._telephone2 = telephone2; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String fax1_COLUMN = "FAX1"; + + /** + * FAX1: {VARCHAR(40)}
    + * + * @return The value of the column 'FAX1'. (Nullable) + */ + public String getFax1() { + return _fax1; + } + + /** + * FAX1: {VARCHAR(40)}
    + * + * @param fax1 The value of the column 'FAX1'. (Nullable) + */ + public void setFax1(String fax1) { + _modifiedProperties.addPropertyName("fax1"); + this._fax1 = fax1; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String fax2_COLUMN = "FAX2"; + + /** + * FAX2: {VARCHAR(40)}
    + * + * @return The value of the column 'FAX2'. (Nullable) + */ + public String getFax2() { + return _fax2; + } + + /** + * FAX2: {VARCHAR(40)}
    + * + * @param fax2 The value of the column 'FAX2'. (Nullable) + */ + public void setFax2(String fax2) { + _modifiedProperties.addPropertyName("fax2"); + this._fax2 = fax2; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(1) : Default=[T]} */ + public static final String isPublic_COLUMN = "IS_PUBLIC"; + + /** + * IS_PUBLIC: {VARCHAR(1) : Default=[T]}
    + * + * @return The value of the column 'IS_PUBLIC'. (Nullable) + */ + public String getIsPublic() { + return _isPublic; + } + + /** + * IS_PUBLIC: {VARCHAR(1) : Default=[T]}
    + * + * @param isPublic The value of the column 'IS_PUBLIC'. (Nullable) + */ + public void setIsPublic(String isPublic) { + _modifiedProperties.addPropertyName("isPublic"); + this._isPublic = isPublic; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[1]}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[1]}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCompany.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsContact.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsContact.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsContact.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,345 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The entity of CONTACT that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, PERSON_ID, NAME, VALUE
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     PERSON
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     person
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsContact implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is CONTACT. */ + public static final String TABLE = "CONTACT"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** PERSON_ID: {NotNull : BIGINT : FK to PERSON} */ + protected Long _personId; + + /** NAME: {NotNull : VARCHAR(20)} */ + protected String _name; + + /** VALUE: {VARCHAR(255)} */ + protected String _value; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsContact() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "CONTACT"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "contact"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [person] + // * * * * * * * * */ + public static final int person_RELNO = 0; + + public static final String person_RELKEYS = "PERSON_ID:ID"; + + /** PERSON as 'person'. */ + protected Person _parentPerson; + + /** + * PERSON as 'person'. {without lazy-load} + * + * @return The entity of foreign property 'person'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Person getPerson() { + return _parentPerson; + } + + /** + * PERSON as 'person'. + * + * @param person The entity of foreign property 'person'. (Nullable) + */ + public void setPerson(Person person) { + _parentPerson = person; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsContact)) { + return false; + } + BsContact otherEntity = (BsContact) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getPersonId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getValue()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : BIGINT : FK to PERSON} */ + public static final String personId_COLUMN = "PERSON_ID"; + + /** + * PERSON_ID: {NotNull : BIGINT : FK to PERSON}
    + * + * @return The value of the column 'PERSON_ID'. (Nullable) + */ + public Long getPersonId() { + return _personId; + } + + /** + * PERSON_ID: {NotNull : BIGINT : FK to PERSON}
    + * + * @param personId The value of the column 'PERSON_ID'. (Nullable) + */ + public void setPersonId(Long personId) { + _modifiedProperties.addPropertyName("personId"); + this._personId = personId; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(20)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(20)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(20)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String value_COLUMN = "VALUE"; + + /** + * VALUE: {VARCHAR(255)}
    + * + * @return The value of the column 'VALUE'. (Nullable) + */ + public String getValue() { + return _value; + } + + /** + * VALUE: {VARCHAR(255)}
    + * + * @param value The value of the column 'VALUE'. (Nullable) + */ + public void setValue(String value) { + _modifiedProperties.addPropertyName("value"); + this._value = value; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsContact.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCustom.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCustom.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCustom.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,345 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The entity of CUSTOM that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, PERSON_ID, VALUE, SORT_ORDER
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     PERSON
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     person
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsCustom implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is CUSTOM. */ + public static final String TABLE = "CUSTOM"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** PERSON_ID: {NotNull : BIGINT : FK to PERSON} */ + protected Long _personId; + + /** VALUE: {VARCHAR(255)} */ + protected String _value; + + /** SORT_ORDER: {NotNull : INTEGER} */ + protected Integer _sortOrder; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsCustom() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "CUSTOM"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "custom"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [person] + // * * * * * * * * */ + public static final int person_RELNO = 0; + + public static final String person_RELKEYS = "PERSON_ID:ID"; + + /** PERSON as 'person'. */ + protected Person _parentPerson; + + /** + * PERSON as 'person'. {without lazy-load} + * + * @return The entity of foreign property 'person'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Person getPerson() { + return _parentPerson; + } + + /** + * PERSON as 'person'. + * + * @param person The entity of foreign property 'person'. (Nullable) + */ + public void setPerson(Person person) { + _parentPerson = person; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsCustom)) { + return false; + } + BsCustom otherEntity = (BsCustom) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getPersonId()); + sb.append(delimiter).append(getValue()); + sb.append(delimiter).append(getSortOrder()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : BIGINT : FK to PERSON} */ + public static final String personId_COLUMN = "PERSON_ID"; + + /** + * PERSON_ID: {NotNull : BIGINT : FK to PERSON}
    + * + * @return The value of the column 'PERSON_ID'. (Nullable) + */ + public Long getPersonId() { + return _personId; + } + + /** + * PERSON_ID: {NotNull : BIGINT : FK to PERSON}
    + * + * @param personId The value of the column 'PERSON_ID'. (Nullable) + */ + public void setPersonId(Long personId) { + _modifiedProperties.addPropertyName("personId"); + this._personId = personId; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String value_COLUMN = "VALUE"; + + /** + * VALUE: {VARCHAR(255)}
    + * + * @return The value of the column 'VALUE'. (Nullable) + */ + public String getValue() { + return _value; + } + + /** + * VALUE: {VARCHAR(255)}
    + * + * @param value The value of the column 'VALUE'. (Nullable) + */ + public void setValue(String value) { + _modifiedProperties.addPropertyName("value"); + this._value = value; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER}
    + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER}
    + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsCustom.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,611 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupMapping.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupMapping.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupMapping.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,356 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPerson.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPerson.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPerson.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,892 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.Contact; +import jp.sf.pal.addresslist.db.exentity.Custom; +import jp.sf.pal.addresslist.db.exentity.Postal; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The entity of PERSON that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GIVEN_NAME, GIVEN_NAME_DESC, FAMILY_NAME, FAMILY_NAME_DESC, MIDDLE_NAME, NAME_PREFIX, NAME_SUFFIX, NICKNAME, JOB_TITLE, IS_PUBLIC, COMPANY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     COMPANY, USER_INFO
    + * 
    + * [referrer-table]
    + *     CONTACT, CUSTOM, POSTAL
    + * 
    + * [foreign-property]
    + *     company, userInfo, postalAsOne
    + * 
    + * [referrer-property]
    + *     contactList, customList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsPerson implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is PERSON. */ + public static final String TABLE = "PERSON"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** USER_ID: {VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** NAME_PREFIX: {VARCHAR(30)} */ + protected String _namePrefix; + + /** NAME_SUFFIX: {VARCHAR(30)} */ + protected String _nameSuffix; + + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** JOB_TITLE: {VARCHAR(50)} */ + protected String _jobTitle; + + /** IS_PUBLIC: {VARCHAR(1) : Default=[T]} */ + protected String _isPublic; + + /** COMPANY_ID: {BIGINT : FK to COMPANY} */ + protected Long _companyId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[1]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsPerson() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "PERSON"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "person"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [company] + // * * * * * * * * */ + public static final int company_RELNO = 0; + + public static final String company_RELKEYS = "COMPANY_ID:ID"; + + /** COMPANY as 'company'. */ + protected Company _parentCompany; + + /** + * COMPANY as 'company'. {without lazy-load} + * + * @return The entity of foreign property 'company'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Company getCompany() { + return _parentCompany; + } + + /** + * COMPANY as 'company'. + * + * @param company The entity of foreign property 'company'. (Nullable) + */ + public void setCompany(Company company) { + _parentCompany = company; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [postalAsOne] + // * * * * * * * * */ + public static final int postalAsOne_RELNO = 2; + + public static final String postalAsOne_RELKEYS = "ID:PERSON_ID"; + + /** POSTAL as 'postalAsOne'. */ + protected Postal _childrenpostalAsOne; + + /** + * POSTAL as 'postalAsOne'. {without lazy-load}
    + * + * @return the entity of foreign property(referrer-as-one) 'postalAsOne'. + * (Nullable: If the foreign key does not have 'NotNull' constraint, + * please check null.) + */ + public Postal getPostalAsOne() { + return _childrenpostalAsOne; + } + + /** + * POSTAL as 'postalAsOne'. + * + * @param postalAsOne The entity of foreign property(referrer-as-one) + * 'postalAsOne'. (Nullable) + */ + public void setPostalAsOne(Postal postalAsOne) { + _childrenpostalAsOne = postalAsOne; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [contactList] + // * * * * * * * * */ + /** CONTACT as 'contactList'. */ + protected List _childrenContactList; + + /** + * CONTACT as 'contactList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'contactList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getContactList() { + if (_childrenContactList == null) { + _childrenContactList = new ArrayList(); + } + return _childrenContactList; + } + + /** + * CONTACT as 'contactList'. + * + * @param contactList The entity list of referrer property 'contactList'. + * (Nullable) + */ + public void setContactList(List contactList) { + _childrenContactList = contactList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [customList] + // * * * * * * * * */ + /** CUSTOM as 'customList'. */ + protected List _childrenCustomList; + + /** + * CUSTOM as 'customList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'customList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getCustomList() { + if (_childrenCustomList == null) { + _childrenCustomList = new ArrayList(); + } + return _childrenCustomList; + } + + /** + * CUSTOM as 'customList'. + * + * @param customList The entity list of referrer property 'customList'. + * (Nullable) + */ + public void setCustomList(List customList) { + _childrenCustomList = customList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsPerson)) { + return false; + } + BsPerson otherEntity = (BsPerson) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getNamePrefix()); + sb.append(delimiter).append(getNameSuffix()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getJobTitle()); + sb.append(delimiter).append(getIsPublic()); + sb.append(delimiter).append(getCompanyId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to USER_INFO} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(30)} */ + public static final String namePrefix_COLUMN = "NAME_PREFIX"; + + /** + * NAME_PREFIX: {VARCHAR(30)}
    + * + * @return The value of the column 'NAME_PREFIX'. (Nullable) + */ + public String getNamePrefix() { + return _namePrefix; + } + + /** + * NAME_PREFIX: {VARCHAR(30)}
    + * + * @param namePrefix The value of the column 'NAME_PREFIX'. (Nullable) + */ + public void setNamePrefix(String namePrefix) { + _modifiedProperties.addPropertyName("namePrefix"); + this._namePrefix = namePrefix; + } + + /** The column annotation for S2Dao. {VARCHAR(30)} */ + public static final String nameSuffix_COLUMN = "NAME_SUFFIX"; + + /** + * NAME_SUFFIX: {VARCHAR(30)}
    + * + * @return The value of the column 'NAME_SUFFIX'. (Nullable) + */ + public String getNameSuffix() { + return _nameSuffix; + } + + /** + * NAME_SUFFIX: {VARCHAR(30)}
    + * + * @param nameSuffix The value of the column 'NAME_SUFFIX'. (Nullable) + */ + public void setNameSuffix(String nameSuffix) { + _modifiedProperties.addPropertyName("nameSuffix"); + this._nameSuffix = nameSuffix; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String jobTitle_COLUMN = "JOB_TITLE"; + + /** + * JOB_TITLE: {VARCHAR(50)}
    + * + * @return The value of the column 'JOB_TITLE'. (Nullable) + */ + public String getJobTitle() { + return _jobTitle; + } + + /** + * JOB_TITLE: {VARCHAR(50)}
    + * + * @param jobTitle The value of the column 'JOB_TITLE'. (Nullable) + */ + public void setJobTitle(String jobTitle) { + _modifiedProperties.addPropertyName("jobTitle"); + this._jobTitle = jobTitle; + } + + /** The column annotation for S2Dao. {VARCHAR(1) : Default=[T]} */ + public static final String isPublic_COLUMN = "IS_PUBLIC"; + + /** + * IS_PUBLIC: {VARCHAR(1) : Default=[T]}
    + * + * @return The value of the column 'IS_PUBLIC'. (Nullable) + */ + public String getIsPublic() { + return _isPublic; + } + + /** + * IS_PUBLIC: {VARCHAR(1) : Default=[T]}
    + * + * @param isPublic The value of the column 'IS_PUBLIC'. (Nullable) + */ + public void setIsPublic(String isPublic) { + _modifiedProperties.addPropertyName("isPublic"); + this._isPublic = isPublic; + } + + /** The column annotation for S2Dao. {BIGINT : FK to COMPANY} */ + public static final String companyId_COLUMN = "COMPANY_ID"; + + /** + * COMPANY_ID: {BIGINT : FK to COMPANY}
    + * + * @return The value of the column 'COMPANY_ID'. (Nullable) + */ + public Long getCompanyId() { + return _companyId; + } + + /** + * COMPANY_ID: {BIGINT : FK to COMPANY}
    + * + * @param companyId The value of the column 'COMPANY_ID'. (Nullable) + */ + public void setCompanyId(Long companyId) { + _modifiedProperties.addPropertyName("companyId"); + this._companyId = companyId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[1]}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[1]}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPerson.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPostal.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPostal.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPostal.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,420 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The entity of POSTAL that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     PERSON_ID
    + * 
    + * [column]
    + *     PERSON_ID, BUILDING, STREET, CITY, STATE, POSTAL_CODE, COUNTRY
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     PERSON
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     person
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsPostal implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is POSTAL. */ + public static final String TABLE = "POSTAL"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** PERSON_ID: {PK : NotNull : BIGINT : FK to PERSON} */ + protected Long _personId; + + /** BUILDING: {VARCHAR(200)} */ + protected String _building; + + /** STREET: {VARCHAR(200)} */ + protected String _street; + + /** CITY: {VARCHAR(100)} */ + protected String _city; + + /** STATE: {VARCHAR(100)} */ + protected String _state; + + /** POSTAL_CODE: {VARCHAR(30)} */ + protected String _postalCode; + + /** COUNTRY: {VARCHAR(100)} */ + protected String _country; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsPostal() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "POSTAL"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "postal"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [person] + // * * * * * * * * */ + public static final int person_RELNO = 0; + + public static final String person_RELKEYS = "PERSON_ID:ID"; + + /** PERSON as 'person'. */ + protected Person _parentPerson; + + /** + * PERSON as 'person'. {without lazy-load} + * + * @return The entity of foreign property 'person'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Person getPerson() { + return _parentPerson; + } + + /** + * PERSON as 'person'. + * + * @param person The entity of foreign property 'person'. (Nullable) + */ + public void setPerson(Person person) { + _parentPerson = person; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_personId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsPostal)) { + return false; + } + BsPostal otherEntity = (BsPostal) other; + if (!helpComparingValue(getPersonId(), otherEntity.getPersonId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getPersonId() != null) { + result = result + getPersonId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getPersonId()); + sb.append(delimiter).append(getBuilding()); + sb.append(delimiter).append(getStreet()); + sb.append(delimiter).append(getCity()); + sb.append(delimiter).append(getState()); + sb.append(delimiter).append(getPostalCode()); + sb.append(delimiter).append(getCountry()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to PERSON} */ + public static final String personId_COLUMN = "PERSON_ID"; + + /** + * PERSON_ID: {PK : NotNull : BIGINT : FK to PERSON}
    + * + * @return The value of the column 'PERSON_ID'. (Nullable) + */ + public Long getPersonId() { + return _personId; + } + + /** + * PERSON_ID: {PK : NotNull : BIGINT : FK to PERSON}
    + * + * @param personId The value of the column 'PERSON_ID'. (Nullable) + */ + public void setPersonId(Long personId) { + _modifiedProperties.addPropertyName("personId"); + this._personId = personId; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String building_COLUMN = "BUILDING"; + + /** + * BUILDING: {VARCHAR(200)}
    + * + * @return The value of the column 'BUILDING'. (Nullable) + */ + public String getBuilding() { + return _building; + } + + /** + * BUILDING: {VARCHAR(200)}
    + * + * @param building The value of the column 'BUILDING'. (Nullable) + */ + public void setBuilding(String building) { + _modifiedProperties.addPropertyName("building"); + this._building = building; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String street_COLUMN = "STREET"; + + /** + * STREET: {VARCHAR(200)}
    + * + * @return The value of the column 'STREET'. (Nullable) + */ + public String getStreet() { + return _street; + } + + /** + * STREET: {VARCHAR(200)}
    + * + * @param street The value of the column 'STREET'. (Nullable) + */ + public void setStreet(String street) { + _modifiedProperties.addPropertyName("street"); + this._street = street; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String city_COLUMN = "CITY"; + + /** + * CITY: {VARCHAR(100)}
    + * + * @return The value of the column 'CITY'. (Nullable) + */ + public String getCity() { + return _city; + } + + /** + * CITY: {VARCHAR(100)}
    + * + * @param city The value of the column 'CITY'. (Nullable) + */ + public void setCity(String city) { + _modifiedProperties.addPropertyName("city"); + this._city = city; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String state_COLUMN = "STATE"; + + /** + * STATE: {VARCHAR(100)}
    + * + * @return The value of the column 'STATE'. (Nullable) + */ + public String getState() { + return _state; + } + + /** + * STATE: {VARCHAR(100)}
    + * + * @param state The value of the column 'STATE'. (Nullable) + */ + public void setState(String state) { + _modifiedProperties.addPropertyName("state"); + this._state = state; + } + + /** The column annotation for S2Dao. {VARCHAR(30)} */ + public static final String postalCode_COLUMN = "POSTAL_CODE"; + + /** + * POSTAL_CODE: {VARCHAR(30)}
    + * + * @return The value of the column 'POSTAL_CODE'. (Nullable) + */ + public String getPostalCode() { + return _postalCode; + } + + /** + * POSTAL_CODE: {VARCHAR(30)}
    + * + * @param postalCode The value of the column 'POSTAL_CODE'. (Nullable) + */ + public void setPostalCode(String postalCode) { + _modifiedProperties.addPropertyName("postalCode"); + this._postalCode = postalCode; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String country_COLUMN = "COUNTRY"; + + /** + * COUNTRY: {VARCHAR(100)}
    + * + * @return The value of the column 'COUNTRY'. (Nullable) + */ + public String getCountry() { + return _country; + } + + /** + * COUNTRY: {VARCHAR(100)}
    + * + * @param country The value of the column 'COUNTRY'. (Nullable) + */ + public void setCountry(String country) { + _modifiedProperties.addPropertyName("country"); + this._country = country; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsPostal.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,611 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleMapping.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleMapping.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleMapping.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,356 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,867 @@ +package jp.sf.pal.addresslist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; + +/** + * The entity of USER_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     COMPANY, GROUP_MAPPING, PERSON, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     companyList, groupMappingList, personList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [companyList] + // * * * * * * * * */ + /** COMPANY as 'companyList'. */ + protected List _childrenCompanyList; + + /** + * COMPANY as 'companyList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'companyList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getCompanyList() { + if (_childrenCompanyList == null) { + _childrenCompanyList = new ArrayList(); + } + return _childrenCompanyList; + } + + /** + * COMPANY as 'companyList'. + * + * @param companyList The entity list of referrer property 'companyList'. + * (Nullable) + */ + public void setCompanyList(List companyList) { + _childrenCompanyList = companyList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [personList] + // * * * * * * * * */ + /** PERSON as 'personList'. */ + protected List _childrenPersonList; + + /** + * PERSON as 'personList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'personList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getPersonList() { + if (_childrenPersonList == null) { + _childrenPersonList = new ArrayList(); + } + return _childrenPersonList; + } + + /** + * PERSON as 'personList'. + * + * @param personList The entity list of referrer property 'personList'. + * (Nullable) + */ + public void setPersonList(List personList) { + _childrenPersonList = personList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CompanyDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CompanyDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CompanyDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,600 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.Company; + +/** + * The DB meta of COMPANY. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CompanyDbm extends AbstractDBMeta { + + private static final CompanyDbm _instance = new CompanyDbm(); + + private CompanyDbm() { + } + + public static CompanyDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "COMPANY"; + } + + public String getTablePropertyName() { + return "company"; + } + + public String getTableSqlName() { + return "COMPANY"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 200, 0); + + protected ColumnInfo _columnNameDesc = cci("NAME_DESC", "nameDesc", + String.class, false, 200, 0); + + protected ColumnInfo _columnDepartment = cci("DEPARTMENT", "department", + String.class, false, 200, 0); + + protected ColumnInfo _columnBuilding = cci("BUILDING", "building", + String.class, false, 200, 0); + + protected ColumnInfo _columnStreet = cci("STREET", "street", String.class, + false, 200, 0); + + protected ColumnInfo _columnCity = cci("CITY", "city", String.class, false, + 100, 0); + + protected ColumnInfo _columnState = cci("STATE", "state", String.class, + false, 100, 0); + + protected ColumnInfo _columnPostalCode = cci("POSTAL_CODE", "postalCode", + String.class, false, 30, 0); + + protected ColumnInfo _columnCountry = cci("COUNTRY", "country", + String.class, false, 200, 0); + + protected ColumnInfo _columnTelephone1 = cci("TELEPHONE1", "telephone1", + String.class, false, 40, 0); + + protected ColumnInfo _columnTelephone2 = cci("TELEPHONE2", "telephone2", + String.class, false, 40, 0); + + protected ColumnInfo _columnFax1 = cci("FAX1", "fax1", String.class, false, + 40, 0); + + protected ColumnInfo _columnFax2 = cci("FAX2", "fax2", String.class, false, + 40, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnIsPublic = cci("IS_PUBLIC", "isPublic", + String.class, false, 1, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnNameDesc() { + return _columnNameDesc; + } + + public ColumnInfo columnDepartment() { + return _columnDepartment; + } + + public ColumnInfo columnBuilding() { + return _columnBuilding; + } + + public ColumnInfo columnStreet() { + return _columnStreet; + } + + public ColumnInfo columnCity() { + return _columnCity; + } + + public ColumnInfo columnState() { + return _columnState; + } + + public ColumnInfo columnPostalCode() { + return _columnPostalCode; + } + + public ColumnInfo columnCountry() { + return _columnCountry; + } + + public ColumnInfo columnTelephone1() { + return _columnTelephone1; + } + + public ColumnInfo columnTelephone2() { + return _columnTelephone2; + } + + public ColumnInfo columnFax1() { + return _columnFax1; + } + + public ColumnInfo columnFax2() { + return _columnFax2; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnIsPublic() { + return _columnIsPublic; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.Company"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.CompanyCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.CompanyDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.CompanyBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Company.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Company newMyEntity() { + return new Company(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 0, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerPersonList() { + Map map = newLinkedHashMap(columnId(), + PersonDbm.getInstance().columnCompanyId()); + return cri("personList", this, PersonDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Company) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Company) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsNameDesc(), columnNameDesc()); + setupEps(_epsMap, new EpsDepartment(), columnDepartment()); + setupEps(_epsMap, new EpsBuilding(), columnBuilding()); + setupEps(_epsMap, new EpsStreet(), columnStreet()); + setupEps(_epsMap, new EpsCity(), columnCity()); + setupEps(_epsMap, new EpsState(), columnState()); + setupEps(_epsMap, new EpsPostalCode(), columnPostalCode()); + setupEps(_epsMap, new EpsCountry(), columnCountry()); + setupEps(_epsMap, new EpsTelephone1(), columnTelephone1()); + setupEps(_epsMap, new EpsTelephone2(), columnTelephone2()); + setupEps(_epsMap, new EpsFax1(), columnFax1()); + setupEps(_epsMap, new EpsFax2(), columnFax2()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsIsPublic(), columnIsPublic()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Company) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Company e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(Company e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(Company e, Object v) { + e.setName((String) v); + } + } + + public static class EpsNameDesc implements Eps { + public void setup(Company e, Object v) { + e.setNameDesc((String) v); + } + } + + public static class EpsDepartment implements Eps { + public void setup(Company e, Object v) { + e.setDepartment((String) v); + } + } + + public static class EpsBuilding implements Eps { + public void setup(Company e, Object v) { + e.setBuilding((String) v); + } + } + + public static class EpsStreet implements Eps { + public void setup(Company e, Object v) { + e.setStreet((String) v); + } + } + + public static class EpsCity implements Eps { + public void setup(Company e, Object v) { + e.setCity((String) v); + } + } + + public static class EpsState implements Eps { + public void setup(Company e, Object v) { + e.setState((String) v); + } + } + + public static class EpsPostalCode implements Eps { + public void setup(Company e, Object v) { + e.setPostalCode((String) v); + } + } + + public static class EpsCountry implements Eps { + public void setup(Company e, Object v) { + e.setCountry((String) v); + } + } + + public static class EpsTelephone1 implements Eps { + public void setup(Company e, Object v) { + e.setTelephone1((String) v); + } + } + + public static class EpsTelephone2 implements Eps { + public void setup(Company e, Object v) { + e.setTelephone2((String) v); + } + } + + public static class EpsFax1 implements Eps { + public void setup(Company e, Object v) { + e.setFax1((String) v); + } + } + + public static class EpsFax2 implements Eps { + public void setup(Company e, Object v) { + e.setFax2((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(Company e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsIsPublic implements Eps { + public void setup(Company e, Object v) { + e.setIsPublic((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(Company e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(Company e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(Company e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(Company e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(Company e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(Company e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(Company e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CompanyDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/ContactDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/ContactDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/ContactDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,307 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.Contact; + +/** + * The DB meta of CONTACT. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ContactDbm extends AbstractDBMeta { + + private static final ContactDbm _instance = new ContactDbm(); + + private ContactDbm() { + } + + public static ContactDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "CONTACT"; + } + + public String getTablePropertyName() { + return "contact"; + } + + public String getTableSqlName() { + return "CONTACT"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnPersonId = cci("PERSON_ID", "personId", + Long.class, false, null, null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 20, 0); + + protected ColumnInfo _columnValue = cci("VALUE", "value", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnPersonId() { + return _columnPersonId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnValue() { + return _columnValue; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.Contact"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.ContactCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.ContactDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.ContactBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Contact.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Contact newMyEntity() { + return new Contact(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignPerson() { + Map map = newLinkedHashMap(columnPersonId(), + PersonDbm.getInstance().columnId()); + return cfi("person", this, PersonDbm.getInstance(), map, 0, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Contact) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Contact) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsPersonId(), columnPersonId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsValue(), columnValue()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Contact) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Contact e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsPersonId implements Eps { + public void setup(Contact e, Object v) { + e.setPersonId((Long) v); + } + } + + public static class EpsName implements Eps { + public void setup(Contact e, Object v) { + e.setName((String) v); + } + } + + public static class EpsValue implements Eps { + public void setup(Contact e, Object v) { + e.setValue((String) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/ContactDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CustomDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CustomDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CustomDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,307 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.Custom; + +/** + * The DB meta of CUSTOM. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CustomDbm extends AbstractDBMeta { + + private static final CustomDbm _instance = new CustomDbm(); + + private CustomDbm() { + } + + public static CustomDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "CUSTOM"; + } + + public String getTablePropertyName() { + return "custom"; + } + + public String getTableSqlName() { + return "CUSTOM"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnPersonId = cci("PERSON_ID", "personId", + Long.class, false, null, null); + + protected ColumnInfo _columnValue = cci("VALUE", "value", String.class, + false, 255, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnPersonId() { + return _columnPersonId; + } + + public ColumnInfo columnValue() { + return _columnValue; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.Custom"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.CustomCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.CustomDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.CustomBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Custom.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Custom newMyEntity() { + return new Custom(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignPerson() { + Map map = newLinkedHashMap(columnPersonId(), + PersonDbm.getInstance().columnId()); + return cfi("person", this, PersonDbm.getInstance(), map, 0, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Custom) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Custom) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsPersonId(), columnPersonId()); + setupEps(_epsMap, new EpsValue(), columnValue()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Custom) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Custom e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsPersonId implements Eps { + public void setup(Custom e, Object v) { + e.setPersonId((Long) v); + } + } + + public static class EpsValue implements Eps { + public void setup(Custom e, Object v) { + e.setValue((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(Custom e, Object v) { + e.setSortOrder((Integer) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/CustomDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,447 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,299 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PersonDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PersonDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PersonDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,562 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.Person; + +/** + * The DB meta of PERSON. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PersonDbm extends AbstractDBMeta { + + private static final PersonDbm _instance = new PersonDbm(); + + private PersonDbm() { + } + + public static PersonDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "PERSON"; + } + + public String getTablePropertyName() { + return "person"; + } + + public String getTableSqlName() { + return "PERSON"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnNamePrefix = cci("NAME_PREFIX", "namePrefix", + String.class, false, 30, 0); + + protected ColumnInfo _columnNameSuffix = cci("NAME_SUFFIX", "nameSuffix", + String.class, false, 30, 0); + + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnJobTitle = cci("JOB_TITLE", "jobTitle", + String.class, false, 50, 0); + + protected ColumnInfo _columnIsPublic = cci("IS_PUBLIC", "isPublic", + String.class, false, 1, 0); + + protected ColumnInfo _columnCompanyId = cci("COMPANY_ID", "companyId", + Long.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnNamePrefix() { + return _columnNamePrefix; + } + + public ColumnInfo columnNameSuffix() { + return _columnNameSuffix; + } + + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnJobTitle() { + return _columnJobTitle; + } + + public ColumnInfo columnIsPublic() { + return _columnIsPublic; + } + + public ColumnInfo columnCompanyId() { + return _columnCompanyId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.Person"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.PersonCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.PersonDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.PersonBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Person.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Person newMyEntity() { + return new Person(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignCompany() { + Map map = newLinkedHashMap(columnCompanyId(), + CompanyDbm.getInstance().columnId()); + return cfi("company", this, CompanyDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + public ForeignInfo foreignPostalAsOne() { + Map map = newLinkedHashMap(columnId(), + PostalDbm.getInstance().columnPersonId()); + return cfi("postalAsOne", this, PostalDbm.getInstance(), map, 2, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerContactList() { + Map map = newLinkedHashMap(columnId(), + ContactDbm.getInstance().columnPersonId()); + return cri("contactList", this, ContactDbm.getInstance(), map, false); + } + + public ReferrerInfo referrerCustomList() { + Map map = newLinkedHashMap(columnId(), + CustomDbm.getInstance().columnPersonId()); + return cri("customList", this, CustomDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Person) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Person) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsNamePrefix(), columnNamePrefix()); + setupEps(_epsMap, new EpsNameSuffix(), columnNameSuffix()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsJobTitle(), columnJobTitle()); + setupEps(_epsMap, new EpsIsPublic(), columnIsPublic()); + setupEps(_epsMap, new EpsCompanyId(), columnCompanyId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Person) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Person e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(Person e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(Person e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(Person e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(Person e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(Person e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(Person e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsNamePrefix implements Eps { + public void setup(Person e, Object v) { + e.setNamePrefix((String) v); + } + } + + public static class EpsNameSuffix implements Eps { + public void setup(Person e, Object v) { + e.setNameSuffix((String) v); + } + } + + public static class EpsNickname implements Eps { + public void setup(Person e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsJobTitle implements Eps { + public void setup(Person e, Object v) { + e.setJobTitle((String) v); + } + } + + public static class EpsIsPublic implements Eps { + public void setup(Person e, Object v) { + e.setIsPublic((String) v); + } + } + + public static class EpsCompanyId implements Eps { + public void setup(Person e, Object v) { + e.setCompanyId((Long) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(Person e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(Person e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(Person e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(Person e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(Person e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(Person e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(Person e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PersonDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PostalDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PostalDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PostalDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,349 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.Postal; + +/** + * The DB meta of POSTAL. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PostalDbm extends AbstractDBMeta { + + private static final PostalDbm _instance = new PostalDbm(); + + private PostalDbm() { + } + + public static PostalDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "POSTAL"; + } + + public String getTablePropertyName() { + return "postal"; + } + + public String getTableSqlName() { + return "POSTAL"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnPersonId = cci("PERSON_ID", "personId", + Long.class, true, null, null); + + protected ColumnInfo _columnBuilding = cci("BUILDING", "building", + String.class, false, 200, 0); + + protected ColumnInfo _columnStreet = cci("STREET", "street", String.class, + false, 200, 0); + + protected ColumnInfo _columnCity = cci("CITY", "city", String.class, false, + 100, 0); + + protected ColumnInfo _columnState = cci("STATE", "state", String.class, + false, 100, 0); + + protected ColumnInfo _columnPostalCode = cci("POSTAL_CODE", "postalCode", + String.class, false, 30, 0); + + protected ColumnInfo _columnCountry = cci("COUNTRY", "country", + String.class, false, 100, 0); + + public ColumnInfo columnPersonId() { + return _columnPersonId; + } + + public ColumnInfo columnBuilding() { + return _columnBuilding; + } + + public ColumnInfo columnStreet() { + return _columnStreet; + } + + public ColumnInfo columnCity() { + return _columnCity; + } + + public ColumnInfo columnState() { + return _columnState; + } + + public ColumnInfo columnPostalCode() { + return _columnPostalCode; + } + + public ColumnInfo columnCountry() { + return _columnCountry; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.Postal"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.PostalCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.PostalDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.PostalBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Postal.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Postal newMyEntity() { + return new Postal(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnPersonId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignPerson() { + Map map = newLinkedHashMap(columnPersonId(), + PersonDbm.getInstance().columnId()); + return cfi("person", this, PersonDbm.getInstance(), map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Postal) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Postal) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsPersonId(), columnPersonId()); + setupEps(_epsMap, new EpsBuilding(), columnBuilding()); + setupEps(_epsMap, new EpsStreet(), columnStreet()); + setupEps(_epsMap, new EpsCity(), columnCity()); + setupEps(_epsMap, new EpsState(), columnState()); + setupEps(_epsMap, new EpsPostalCode(), columnPostalCode()); + setupEps(_epsMap, new EpsCountry(), columnCountry()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Postal) entity, value); + } + + public static class EpsPersonId implements Eps { + public void setup(Postal e, Object v) { + e.setPersonId((Long) v); + } + } + + public static class EpsBuilding implements Eps { + public void setup(Postal e, Object v) { + e.setBuilding((String) v); + } + } + + public static class EpsStreet implements Eps { + public void setup(Postal e, Object v) { + e.setStreet((String) v); + } + } + + public static class EpsCity implements Eps { + public void setup(Postal e, Object v) { + e.setCity((String) v); + } + } + + public static class EpsState implements Eps { + public void setup(Postal e, Object v) { + e.setState((String) v); + } + } + + public static class EpsPostalCode implements Eps { + public void setup(Postal e, Object v) { + e.setPostalCode((String) v); + } + } + + public static class EpsCountry implements Eps { + public void setup(Postal e, Object v) { + e.setCountry((String) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/PostalDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,447 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,299 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,542 @@ +package jp.sf.pal.addresslist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.Entity; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.addresslist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.addresslist.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.addresslist.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.addresslist.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.addresslist.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerCompanyList() { + Map map = newLinkedHashMap(columnUserId(), + CompanyDbm.getInstance().columnUserId()); + return cri("companyList", this, CompanyDbm.getInstance(), map, false); + } + + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerPersonList() { + Map map = newLinkedHashMap(columnUserId(), + PersonDbm.getInstance().columnUserId()); + return cri("personList", this, PersonDbm.getInstance(), map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CompanyCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CompanyCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CompanyCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of COMPANY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CompanyCB extends jp.sf.pal.addresslist.db.cbean.bs.BsCompanyCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CompanyCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/ContactCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/ContactCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/ContactCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of CONTACT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ContactCB extends jp.sf.pal.addresslist.db.cbean.bs.BsContactCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/ContactCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CustomCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CustomCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CustomCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of CUSTOM. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CustomCB extends jp.sf.pal.addresslist.db.cbean.bs.BsCustomCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/CustomCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupInfoCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupInfoCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends + jp.sf.pal.addresslist.db.cbean.bs.BsGroupInfoCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupMappingCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupMappingCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupMappingCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.addresslist.db.cbean.bs.BsGroupMappingCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PersonCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PersonCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PersonCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of PERSON. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PersonCB extends jp.sf.pal.addresslist.db.cbean.bs.BsPersonCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PersonCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PostalCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PostalCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PostalCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of POSTAL. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PostalCB extends jp.sf.pal.addresslist.db.cbean.bs.BsPostalCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/PostalCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleInfoCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleInfoCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.addresslist.db.cbean.bs.BsRoleInfoCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleMappingCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleMappingCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleMappingCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.addresslist.db.cbean.bs.BsRoleMappingCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/UserInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/UserInfoCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/UserInfoCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.addresslist.db.cbean.bs.BsUserInfoCB { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCompanyCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCompanyCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCompanyCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,369 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of COMPANY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsCompanyCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CompanyCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "COMPANY"; + } + + public String getTableSqlName() { + return "COMPANY"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public CompanyCQ query() { + return getConditionQuery(); + } + + public CompanyCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new CompanyCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<CompanyCB>() {
    +     *     public void query(CompanyCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final CompanyCB cb = new CompanyCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final CompanyCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<CompanyCB>() {
    +     *     public void query(CompanyCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final CompanyCB cb = new CompanyCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final CompanyCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(CompanyCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(CompanyCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public CompanyCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnNameDesc() { + doColumn("NAME_DESC"); + } + + public void columnDepartment() { + doColumn("DEPARTMENT"); + } + + public void columnBuilding() { + doColumn("BUILDING"); + } + + public void columnStreet() { + doColumn("STREET"); + } + + public void columnCity() { + doColumn("CITY"); + } + + public void columnState() { + doColumn("STATE"); + } + + public void columnPostalCode() { + doColumn("POSTAL_CODE"); + } + + public void columnCountry() { + doColumn("COUNTRY"); + } + + public void columnTelephone1() { + doColumn("TELEPHONE1"); + } + + public void columnTelephone2() { + doColumn("TELEPHONE2"); + } + + public void columnFax1() { + doColumn("FAX1"); + } + + public void columnFax2() { + doColumn("FAX2"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnIsPublic() { + doColumn("IS_PUBLIC"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "COMPANY"; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + + public RAFunction derivedPersonList() { + return new RAFunction(_baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, CompanyCQ cq, + String aliasName) { + cq.xderivePersonList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return CompanyCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return CompanyCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCompanyCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsContactCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsContactCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsContactCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,277 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.nss.PersonNss; + +/** + * The base condition-bean of CONTACT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsContactCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ContactCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "CONTACT"; + } + + public String getTableSqlName() { + return "CONTACT"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public ContactCQ query() { + return getConditionQuery(); + } + + public ContactCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new ContactCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<ContactCB>() {
    +     *     public void query(ContactCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final ContactCB cb = new ContactCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final ContactCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<ContactCB>() {
    +     *     public void query(ContactCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final ContactCB cb = new ContactCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final ContactCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(ContactCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(ContactCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected PersonNss _nssPerson; + + public PersonNss getNssPerson() { + if (_nssPerson == null) { + _nssPerson = new PersonNss(null); + } + return _nssPerson; + } + + public PersonNss setupSelect_Person() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryPerson(); + } + }); + if (_nssPerson == null || !_nssPerson.hasConditionQuery()) { + _nssPerson = new PersonNss(query().queryPerson()); + } + return _nssPerson; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public ContactCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected PersonCB.Specification _person; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnPersonId() { + doColumn("PERSON_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnValue() { + doColumn("VALUE"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryPerson()) { + columnPersonId();// FK + } + } + + protected String getTableDbName() { + return "CONTACT"; + } + + public PersonCB.Specification specifyPerson() { + assertForeign("person"); + if (_person == null) { + _person = new PersonCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryPerson(); + } + + public PersonCQ qy() { + return _myQyCall.qy().queryPerson(); + } + }, _forDeriveReferrer); + } + return _person; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return ContactCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return ContactCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsContactCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCustomCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCustomCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCustomCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,277 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.nss.PersonNss; + +/** + * The base condition-bean of CUSTOM. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsCustomCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CustomCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "CUSTOM"; + } + + public String getTableSqlName() { + return "CUSTOM"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public CustomCQ query() { + return getConditionQuery(); + } + + public CustomCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new CustomCQ(null, getSqlClause(), getSqlClause() + .getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<CustomCB>() {
    +     *     public void query(CustomCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final CustomCB cb = new CustomCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final CustomCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<CustomCB>() {
    +     *     public void query(CustomCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final CustomCB cb = new CustomCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final CustomCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(CustomCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(CustomCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected PersonNss _nssPerson; + + public PersonNss getNssPerson() { + if (_nssPerson == null) { + _nssPerson = new PersonNss(null); + } + return _nssPerson; + } + + public PersonNss setupSelect_Person() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryPerson(); + } + }); + if (_nssPerson == null || !_nssPerson.hasConditionQuery()) { + _nssPerson = new PersonNss(query().queryPerson()); + } + return _nssPerson; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public CustomCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected PersonCB.Specification _person; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnPersonId() { + doColumn("PERSON_ID"); + } + + public void columnValue() { + doColumn("VALUE"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryPerson()) { + columnPersonId();// FK + } + } + + protected String getTableDbName() { + return "CUSTOM"; + } + + public PersonCB.Specification specifyPerson() { + assertForeign("person"); + if (_person == null) { + _person = new PersonCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryPerson(); + } + + public PersonCQ qy() { + return _myQyCall.qy().queryPerson(); + } + }, _forDeriveReferrer); + } + return _person; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return CustomCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return CustomCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsCustomCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupInfoCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,295 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupMappingCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,325 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.addresslist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPersonCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPersonCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPersonCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,460 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.PostalCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.nss.CompanyNss; +import jp.sf.pal.addresslist.db.cbean.nss.PostalNss; +import jp.sf.pal.addresslist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of PERSON. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsPersonCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected PersonCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "PERSON"; + } + + public String getTableSqlName() { + return "PERSON"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public PersonCQ query() { + return getConditionQuery(); + } + + public PersonCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new PersonCQ(null, getSqlClause(), getSqlClause() + .getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<PersonCB>() {
    +     *     public void query(PersonCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final PersonCB cb = new PersonCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final PersonCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<PersonCB>() {
    +     *     public void query(PersonCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final PersonCB cb = new PersonCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final PersonCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(PersonCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(PersonCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected CompanyNss _nssCompany; + + public CompanyNss getNssCompany() { + if (_nssCompany == null) { + _nssCompany = new CompanyNss(null); + } + return _nssCompany; + } + + public CompanyNss setupSelect_Company() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryCompany(); + } + }); + if (_nssCompany == null || !_nssCompany.hasConditionQuery()) { + _nssCompany = new CompanyNss(query().queryCompany()); + } + return _nssCompany; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + protected PostalNss _nssPostalAsOne; + + public PostalNss getNssPostalAsOne() { + if (_nssPostalAsOne == null) { + _nssPostalAsOne = new PostalNss(null); + } + return _nssPostalAsOne; + } + + public PostalNss setupSelect_PostalAsOne() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryPostalAsOne(); + } + }); + if (_nssPostalAsOne == null || !_nssPostalAsOne.hasConditionQuery()) { + _nssPostalAsOne = new PostalNss(query().queryPostalAsOne()); + } + return _nssPostalAsOne; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public PersonCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected CompanyCB.Specification _company; + + protected UserInfoCB.Specification _userInfo; + + protected PostalCB.Specification _postalAsOne; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnNamePrefix() { + doColumn("NAME_PREFIX"); + } + + public void columnNameSuffix() { + doColumn("NAME_SUFFIX"); + } + + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnJobTitle() { + doColumn("JOB_TITLE"); + } + + public void columnIsPublic() { + doColumn("IS_PUBLIC"); + } + + public void columnCompanyId() { + doColumn("COMPANY_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryCompany()) { + columnCompanyId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "PERSON"; + } + + public CompanyCB.Specification specifyCompany() { + assertForeign("company"); + if (_company == null) { + _company = new CompanyCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryCompany(); + } + + public CompanyCQ qy() { + return _myQyCall.qy().queryCompany(); + } + }, _forDeriveReferrer); + } + return _company; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + + public PostalCB.Specification specifyPostalAsOne() { + assertForeign("postalAsOne"); + if (_postalAsOne == null) { + _postalAsOne = new PostalCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryPostalAsOne(); + } + + public PostalCQ qy() { + return _myQyCall.qy().queryPostalAsOne(); + } + }, _forDeriveReferrer); + } + return _postalAsOne; + } + + public RAFunction derivedContactList() { + return new RAFunction(_baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, PersonCQ cq, + String aliasName) { + cq + .xderiveContactList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedCustomList() { + return new RAFunction(_baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, PersonCQ cq, + String aliasName) { + cq.xderiveCustomList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return PersonCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return PersonCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPersonCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPostalCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPostalCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPostalCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,288 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.PostalCB; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.nss.PersonNss; + +/** + * The base condition-bean of POSTAL. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsPostalCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected PostalCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "POSTAL"; + } + + public String getTableSqlName() { + return "POSTAL"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("PERSON_ID"); + if (obj instanceof Long) { + query().setPersonId_Equal((Long) obj); + } else { + query().setPersonId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_PersonId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_PersonId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public PostalCQ query() { + return getConditionQuery(); + } + + public PostalCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new PostalCQ(null, getSqlClause(), getSqlClause() + .getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<PostalCB>() {
    +     *     public void query(PostalCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final PostalCB cb = new PostalCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final PostalCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<PostalCB>() {
    +     *     public void query(PostalCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final PostalCB cb = new PostalCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final PostalCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(PostalCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(PostalCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected PersonNss _nssPerson; + + public PersonNss getNssPerson() { + if (_nssPerson == null) { + _nssPerson = new PersonNss(null); + } + return _nssPerson; + } + + public PersonNss setupSelect_Person() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryPerson(); + } + }); + if (_nssPerson == null || !_nssPerson.hasConditionQuery()) { + _nssPerson = new PersonNss(query().queryPerson()); + } + return _nssPerson; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public PostalCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected PersonCB.Specification _person; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnPersonId() { + doColumn("PERSON_ID"); + } + + public void columnBuilding() { + doColumn("BUILDING"); + } + + public void columnStreet() { + doColumn("STREET"); + } + + public void columnCity() { + doColumn("CITY"); + } + + public void columnState() { + doColumn("STATE"); + } + + public void columnPostalCode() { + doColumn("POSTAL_CODE"); + } + + public void columnCountry() { + doColumn("COUNTRY"); + } + + protected void doSpecifyRequiredColumn() { + columnPersonId();// PK + if (_myQyCall.qy().hasConditionQueryPerson()) { + } + } + + protected String getTableDbName() { + return "POSTAL"; + } + + public PersonCB.Specification specifyPerson() { + assertForeign("person"); + if (_person == null) { + _person = new PersonCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryPerson(); + } + + public PersonCQ qy() { + return _myQyCall.qy().queryPerson(); + } + }, _forDeriveReferrer); + } + return _person; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return PostalCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return PostalCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsPostalCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleInfoCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,292 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleMappingCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,325 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.addresslist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,434 @@ +package jp.sf.pal.addresslist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.addresslist.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedCompanyList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveCompanyList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedPersonList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderivePersonList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CompanyCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CompanyCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CompanyCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsCompanyCQ; + +/** + * The condition-query of COMPANY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CompanyCQ extends BsCompanyCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public CompanyCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CompanyCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ContactCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ContactCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ContactCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsContactCQ; + +/** + * The condition-query of CONTACT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ContactCQ extends BsContactCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public ContactCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ContactCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CustomCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CustomCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CustomCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsCustomCQ; + +/** + * The condition-query of CUSTOM. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CustomCQ extends BsCustomCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public CustomCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/CustomCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupMappingCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupMappingCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PersonCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PersonCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PersonCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsPersonCQ; + +/** + * The condition-query of PERSON. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PersonCQ extends BsPersonCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public PersonCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PersonCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PostalCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PostalCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PostalCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsPostalCQ; + +/** + * The condition-query of POSTAL. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PostalCQ extends BsPostalCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public PostalCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/PostalCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleMappingCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleMappingCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/UserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/UserInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/UserInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,45 @@ +package jp.sf.pal.addresslist.db.cbean.cq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCompanyCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCompanyCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCompanyCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,3264 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of COMPANY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsCompanyCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsCompanyCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "COMPANY"; + } + + public String getTableSqlName() { + return "COMPANY"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param personCBquery Query. + * @deprecated Please use inScopePersonList(subQuery) method. + */ + public void setId_InScopeSubQuery_PersonList(PersonCQ personCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_PersonList(personCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(personCBquery, "ID", "COMPANY_ID", + subQueryPropertyName); + } + + public void inScopePersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_PersonList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "COMPANY_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_PersonList(PersonCQ subQuery); + + public void notInScopePersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_PersonList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "COMPANY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_PersonList( + PersonCQ subQuery); + + /** + * @param personCBquery Query. + * @deprecated Please use existsPersonList(subQuery) method. + */ + public void setId_ExistsSubQuery_PersonList(PersonCQ personCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_PersonList(personCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(personCBquery, "ID", "COMPANY_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select COMPANY_ID from PERSON where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_PersonList for + * 'exists'. (NotNull) + */ + public void existsPersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_PersonList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "COMPANY_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_PersonList(PersonCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select COMPANY_ID from PERSON + * where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_PersonList for 'not + * exists'. (NotNull) + */ + public void notExistsPersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_PersonList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "COMPANY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_PersonList(PersonCQ subQuery); + + public void xderivePersonList(String function, SubQuery subQuery, + String aliasName) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_PersonList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "COMPANY_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_PersonList(PersonCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param nameDesc The value of nameDesc as equal. + */ + public void setNameDesc_Equal(String nameDesc) { + regNameDesc(CK_EQ, fRES(nameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameDesc The value of nameDesc as notEqual. + */ + public void setNameDesc_NotEqual(String nameDesc) { + regNameDesc(CK_NE, fRES(nameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameDesc The value of nameDesc as greaterThan. + */ + public void setNameDesc_GreaterThan(String nameDesc) { + regNameDesc(CK_GT, fRES(nameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameDesc The value of nameDesc as lessThan. + */ + public void setNameDesc_LessThan(String nameDesc) { + regNameDesc(CK_LT, fRES(nameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameDesc The value of nameDesc as greaterEqual. + */ + public void setNameDesc_GreaterEqual(String nameDesc) { + regNameDesc(CK_GE, fRES(nameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameDesc The value of nameDesc as lessEqual. + */ + public void setNameDesc_LessEqual(String nameDesc) { + regNameDesc(CK_LE, fRES(nameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameDesc The value of nameDesc as prefixSearch. + */ + public void setNameDesc_PrefixSearch(String nameDesc) { + regNameDesc(CK_PS, fRES(nameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nameDesc The value of nameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNameDesc_LikeSearch( + String nameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nameDesc), getCValueNameDesc(), + "NAME_DESC", "NameDesc", "nameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameDescList The collection of nameDesc as inScope. + */ + public void setNameDesc_InScope(Collection nameDescList) { + regNameDesc(CK_INS, cTL(nameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameDesc The collection of nameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNameDesc_InScope( + String nameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nameDesc), getCValueNameDesc(), + "NAME_DESC", "NameDesc", "nameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameDescList The collection of nameDesc as notInScope. + */ + public void setNameDesc_NotInScope(Collection nameDescList) { + regNameDesc(CK_NINS, cTL(nameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNameDesc_IsNull() { + regNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNameDesc_IsNotNull() { + regNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNameDesc(), "NAME_DESC", "NameDesc", + "nameDesc"); + } + + protected void registerInlineNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNameDesc(), "NAME_DESC", + "NameDesc", "nameDesc"); + } + + abstract protected ConditionValue getCValueNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param department The value of department as equal. + */ + public void setDepartment_Equal(String department) { + regDepartment(CK_EQ, fRES(department)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param department The value of department as notEqual. + */ + public void setDepartment_NotEqual(String department) { + regDepartment(CK_NE, fRES(department)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param department The value of department as greaterThan. + */ + public void setDepartment_GreaterThan(String department) { + regDepartment(CK_GT, fRES(department)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param department The value of department as lessThan. + */ + public void setDepartment_LessThan(String department) { + regDepartment(CK_LT, fRES(department)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param department The value of department as greaterEqual. + */ + public void setDepartment_GreaterEqual(String department) { + regDepartment(CK_GE, fRES(department)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param department The value of department as lessEqual. + */ + public void setDepartment_LessEqual(String department) { + regDepartment(CK_LE, fRES(department)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param department The value of department as prefixSearch. + */ + public void setDepartment_PrefixSearch(String department) { + regDepartment(CK_PS, fRES(department)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param department The value of department as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDepartment_LikeSearch( + String department, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(department), getCValueDepartment(), + "DEPARTMENT", "Department", "department", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param departmentList The collection of department as inScope. + */ + public void setDepartment_InScope(Collection departmentList) { + regDepartment(CK_INS, cTL(departmentList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param department The collection of department as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDepartment_InScope( + String department, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(department), getCValueDepartment(), + "DEPARTMENT", "Department", "department", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param departmentList The collection of department as notInScope. + */ + public void setDepartment_NotInScope(Collection departmentList) { + regDepartment(CK_NINS, cTL(departmentList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDepartment_IsNull() { + regDepartment(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDepartment_IsNotNull() { + regDepartment(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDepartment(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDepartment(), "DEPARTMENT", + "Department", "department"); + } + + protected void registerInlineDepartment(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDepartment(), "DEPARTMENT", + "Department", "department"); + } + + abstract protected ConditionValue getCValueDepartment(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param building The value of building as equal. + */ + public void setBuilding_Equal(String building) { + regBuilding(CK_EQ, fRES(building)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as notEqual. + */ + public void setBuilding_NotEqual(String building) { + regBuilding(CK_NE, fRES(building)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as greaterThan. + */ + public void setBuilding_GreaterThan(String building) { + regBuilding(CK_GT, fRES(building)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as lessThan. + */ + public void setBuilding_LessThan(String building) { + regBuilding(CK_LT, fRES(building)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as greaterEqual. + */ + public void setBuilding_GreaterEqual(String building) { + regBuilding(CK_GE, fRES(building)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as lessEqual. + */ + public void setBuilding_LessEqual(String building) { + regBuilding(CK_LE, fRES(building)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as prefixSearch. + */ + public void setBuilding_PrefixSearch(String building) { + regBuilding(CK_PS, fRES(building)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param building The value of building as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setBuilding_LikeSearch( + String building, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(building), getCValueBuilding(), + "BUILDING", "Building", "building", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param buildingList The collection of building as inScope. + */ + public void setBuilding_InScope(Collection buildingList) { + regBuilding(CK_INS, cTL(buildingList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param building The collection of building as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setBuilding_InScope( + String building, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(building), getCValueBuilding(), + "BUILDING", "Building", "building", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param buildingList The collection of building as notInScope. + */ + public void setBuilding_NotInScope(Collection buildingList) { + regBuilding(CK_NINS, cTL(buildingList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBuilding_IsNull() { + regBuilding(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBuilding_IsNotNull() { + regBuilding(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBuilding(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBuilding(), "BUILDING", "Building", + "building"); + } + + protected void registerInlineBuilding(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBuilding(), "BUILDING", + "Building", "building"); + } + + abstract protected ConditionValue getCValueBuilding(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param street The value of street as equal. + */ + public void setStreet_Equal(String street) { + regStreet(CK_EQ, fRES(street)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as notEqual. + */ + public void setStreet_NotEqual(String street) { + regStreet(CK_NE, fRES(street)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as greaterThan. + */ + public void setStreet_GreaterThan(String street) { + regStreet(CK_GT, fRES(street)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as lessThan. + */ + public void setStreet_LessThan(String street) { + regStreet(CK_LT, fRES(street)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as greaterEqual. + */ + public void setStreet_GreaterEqual(String street) { + regStreet(CK_GE, fRES(street)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as lessEqual. + */ + public void setStreet_LessEqual(String street) { + regStreet(CK_LE, fRES(street)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as prefixSearch. + */ + public void setStreet_PrefixSearch(String street) { + regStreet(CK_PS, fRES(street)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param street The value of street as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setStreet_LikeSearch( + String street, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(street), getCValueStreet(), + "STREET", "Street", "street", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param streetList The collection of street as inScope. + */ + public void setStreet_InScope(Collection streetList) { + regStreet(CK_INS, cTL(streetList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param street The collection of street as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setStreet_InScope( + String street, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(street), getCValueStreet(), "STREET", + "Street", "street", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param streetList The collection of street as notInScope. + */ + public void setStreet_NotInScope(Collection streetList) { + regStreet(CK_NINS, cTL(streetList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setStreet_IsNull() { + regStreet(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setStreet_IsNotNull() { + regStreet(CK_ISNN, DUMMY_OBJECT); + } + + protected void regStreet(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStreet(), "STREET", "Street", + "street"); + } + + protected void registerInlineStreet(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStreet(), "STREET", "Street", + "street"); + } + + abstract protected ConditionValue getCValueStreet(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param city The value of city as equal. + */ + public void setCity_Equal(String city) { + regCity(CK_EQ, fRES(city)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as notEqual. + */ + public void setCity_NotEqual(String city) { + regCity(CK_NE, fRES(city)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as greaterThan. + */ + public void setCity_GreaterThan(String city) { + regCity(CK_GT, fRES(city)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as lessThan. + */ + public void setCity_LessThan(String city) { + regCity(CK_LT, fRES(city)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as greaterEqual. + */ + public void setCity_GreaterEqual(String city) { + regCity(CK_GE, fRES(city)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as lessEqual. + */ + public void setCity_LessEqual(String city) { + regCity(CK_LE, fRES(city)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as prefixSearch. + */ + public void setCity_PrefixSearch(String city) { + regCity(CK_PS, fRES(city)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param city The value of city as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCity_LikeSearch( + String city, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(city), getCValueCity(), "CITY", + "City", "city", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param cityList The collection of city as inScope. + */ + public void setCity_InScope(Collection cityList) { + regCity(CK_INS, cTL(cityList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param city The collection of city as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCity_InScope( + String city, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(city), getCValueCity(), "CITY", + "City", "city", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param cityList The collection of city as notInScope. + */ + public void setCity_NotInScope(Collection cityList) { + regCity(CK_NINS, cTL(cityList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCity_IsNull() { + regCity(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCity_IsNotNull() { + regCity(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCity(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCity(), "CITY", "City", "city"); + } + + protected void registerInlineCity(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCity(), "CITY", "City", "city"); + } + + abstract protected ConditionValue getCValueCity(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param state The value of state as equal. + */ + public void setState_Equal(String state) { + regState(CK_EQ, fRES(state)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as notEqual. + */ + public void setState_NotEqual(String state) { + regState(CK_NE, fRES(state)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as greaterThan. + */ + public void setState_GreaterThan(String state) { + regState(CK_GT, fRES(state)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as lessThan. + */ + public void setState_LessThan(String state) { + regState(CK_LT, fRES(state)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as greaterEqual. + */ + public void setState_GreaterEqual(String state) { + regState(CK_GE, fRES(state)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as lessEqual. + */ + public void setState_LessEqual(String state) { + regState(CK_LE, fRES(state)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as prefixSearch. + */ + public void setState_PrefixSearch(String state) { + regState(CK_PS, fRES(state)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param state The value of state as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setState_LikeSearch( + String state, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(state), getCValueState(), "STATE", + "State", "state", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param stateList The collection of state as inScope. + */ + public void setState_InScope(Collection stateList) { + regState(CK_INS, cTL(stateList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param state The collection of state as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setState_InScope( + String state, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(state), getCValueState(), "STATE", + "State", "state", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param stateList The collection of state as notInScope. + */ + public void setState_NotInScope(Collection stateList) { + regState(CK_NINS, cTL(stateList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setState_IsNull() { + regState(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setState_IsNotNull() { + regState(CK_ISNN, DUMMY_OBJECT); + } + + protected void regState(ConditionKey key, Object value) { + registerQuery(key, value, getCValueState(), "STATE", "State", "state"); + } + + protected void registerInlineState(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueState(), "STATE", "State", + "state"); + } + + abstract protected ConditionValue getCValueState(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(30)} + * + * @param postalCode The value of postalCode as equal. + */ + public void setPostalCode_Equal(String postalCode) { + regPostalCode(CK_EQ, fRES(postalCode)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as notEqual. + */ + public void setPostalCode_NotEqual(String postalCode) { + regPostalCode(CK_NE, fRES(postalCode)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as greaterThan. + */ + public void setPostalCode_GreaterThan(String postalCode) { + regPostalCode(CK_GT, fRES(postalCode)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as lessThan. + */ + public void setPostalCode_LessThan(String postalCode) { + regPostalCode(CK_LT, fRES(postalCode)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as greaterEqual. + */ + public void setPostalCode_GreaterEqual(String postalCode) { + regPostalCode(CK_GE, fRES(postalCode)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as lessEqual. + */ + public void setPostalCode_LessEqual(String postalCode) { + regPostalCode(CK_LE, fRES(postalCode)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as prefixSearch. + */ + public void setPostalCode_PrefixSearch(String postalCode) { + regPostalCode(CK_PS, fRES(postalCode)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param postalCode The value of postalCode as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setPostalCode_LikeSearch( + String postalCode, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(postalCode), getCValuePostalCode(), + "POSTAL_CODE", "PostalCode", "postalCode", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param postalCodeList The collection of postalCode as inScope. + */ + public void setPostalCode_InScope(Collection postalCodeList) { + regPostalCode(CK_INS, cTL(postalCodeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param postalCode The collection of postalCode as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setPostalCode_InScope( + String postalCode, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(postalCode), getCValuePostalCode(), + "POSTAL_CODE", "PostalCode", "postalCode", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param postalCodeList The collection of postalCode as notInScope. + */ + public void setPostalCode_NotInScope(Collection postalCodeList) { + regPostalCode(CK_NINS, cTL(postalCodeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setPostalCode_IsNull() { + regPostalCode(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setPostalCode_IsNotNull() { + regPostalCode(CK_ISNN, DUMMY_OBJECT); + } + + protected void regPostalCode(ConditionKey key, Object value) { + registerQuery(key, value, getCValuePostalCode(), "POSTAL_CODE", + "PostalCode", "postalCode"); + } + + protected void registerInlinePostalCode(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValuePostalCode(), "POSTAL_CODE", + "PostalCode", "postalCode"); + } + + abstract protected ConditionValue getCValuePostalCode(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param country The value of country as equal. + */ + public void setCountry_Equal(String country) { + regCountry(CK_EQ, fRES(country)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as notEqual. + */ + public void setCountry_NotEqual(String country) { + regCountry(CK_NE, fRES(country)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as greaterThan. + */ + public void setCountry_GreaterThan(String country) { + regCountry(CK_GT, fRES(country)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as lessThan. + */ + public void setCountry_LessThan(String country) { + regCountry(CK_LT, fRES(country)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as greaterEqual. + */ + public void setCountry_GreaterEqual(String country) { + regCountry(CK_GE, fRES(country)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as lessEqual. + */ + public void setCountry_LessEqual(String country) { + regCountry(CK_LE, fRES(country)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as prefixSearch. + */ + public void setCountry_PrefixSearch(String country) { + regCountry(CK_PS, fRES(country)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param country The value of country as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCountry_LikeSearch( + String country, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(country), getCValueCountry(), + "COUNTRY", "Country", "country", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param countryList The collection of country as inScope. + */ + public void setCountry_InScope(Collection countryList) { + regCountry(CK_INS, cTL(countryList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param country The collection of country as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCountry_InScope( + String country, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(country), getCValueCountry(), + "COUNTRY", "Country", "country", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param countryList The collection of country as notInScope. + */ + public void setCountry_NotInScope(Collection countryList) { + regCountry(CK_NINS, cTL(countryList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCountry_IsNull() { + regCountry(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCountry_IsNotNull() { + regCountry(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCountry(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCountry(), "COUNTRY", "Country", + "country"); + } + + protected void registerInlineCountry(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCountry(), "COUNTRY", + "Country", "country"); + } + + abstract protected ConditionValue getCValueCountry(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone1 The value of telephone1 as equal. + */ + public void setTelephone1_Equal(String telephone1) { + regTelephone1(CK_EQ, fRES(telephone1)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone1 The value of telephone1 as notEqual. + */ + public void setTelephone1_NotEqual(String telephone1) { + regTelephone1(CK_NE, fRES(telephone1)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone1 The value of telephone1 as greaterThan. + */ + public void setTelephone1_GreaterThan(String telephone1) { + regTelephone1(CK_GT, fRES(telephone1)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone1 The value of telephone1 as lessThan. + */ + public void setTelephone1_LessThan(String telephone1) { + regTelephone1(CK_LT, fRES(telephone1)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone1 The value of telephone1 as greaterEqual. + */ + public void setTelephone1_GreaterEqual(String telephone1) { + regTelephone1(CK_GE, fRES(telephone1)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone1 The value of telephone1 as lessEqual. + */ + public void setTelephone1_LessEqual(String telephone1) { + regTelephone1(CK_LE, fRES(telephone1)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone1 The value of telephone1 as prefixSearch. + */ + public void setTelephone1_PrefixSearch(String telephone1) { + regTelephone1(CK_PS, fRES(telephone1)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone1 The value of telephone1 as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone1_LikeSearch( + String telephone1, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone1), getCValueTelephone1(), + "TELEPHONE1", "Telephone1", "telephone1", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone1List The collection of telephone1 as inScope. + */ + public void setTelephone1_InScope(Collection telephone1List) { + regTelephone1(CK_INS, cTL(telephone1List)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone1 The collection of telephone1 as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone1_InScope( + String telephone1, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone1), getCValueTelephone1(), + "TELEPHONE1", "Telephone1", "telephone1", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone1List The collection of telephone1 as notInScope. + */ + public void setTelephone1_NotInScope(Collection telephone1List) { + regTelephone1(CK_NINS, cTL(telephone1List)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone1_IsNull() { + regTelephone1(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone1_IsNotNull() { + regTelephone1(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone1(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone1(), "TELEPHONE1", + "Telephone1", "telephone1"); + } + + protected void registerInlineTelephone1(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone1(), "TELEPHONE1", + "Telephone1", "telephone1"); + } + + abstract protected ConditionValue getCValueTelephone1(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone2 The value of telephone2 as equal. + */ + public void setTelephone2_Equal(String telephone2) { + regTelephone2(CK_EQ, fRES(telephone2)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone2 The value of telephone2 as notEqual. + */ + public void setTelephone2_NotEqual(String telephone2) { + regTelephone2(CK_NE, fRES(telephone2)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone2 The value of telephone2 as greaterThan. + */ + public void setTelephone2_GreaterThan(String telephone2) { + regTelephone2(CK_GT, fRES(telephone2)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone2 The value of telephone2 as lessThan. + */ + public void setTelephone2_LessThan(String telephone2) { + regTelephone2(CK_LT, fRES(telephone2)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone2 The value of telephone2 as greaterEqual. + */ + public void setTelephone2_GreaterEqual(String telephone2) { + regTelephone2(CK_GE, fRES(telephone2)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone2 The value of telephone2 as lessEqual. + */ + public void setTelephone2_LessEqual(String telephone2) { + regTelephone2(CK_LE, fRES(telephone2)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone2 The value of telephone2 as prefixSearch. + */ + public void setTelephone2_PrefixSearch(String telephone2) { + regTelephone2(CK_PS, fRES(telephone2)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone2 The value of telephone2 as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone2_LikeSearch( + String telephone2, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone2), getCValueTelephone2(), + "TELEPHONE2", "Telephone2", "telephone2", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone2List The collection of telephone2 as inScope. + */ + public void setTelephone2_InScope(Collection telephone2List) { + regTelephone2(CK_INS, cTL(telephone2List)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone2 The collection of telephone2 as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone2_InScope( + String telephone2, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone2), getCValueTelephone2(), + "TELEPHONE2", "Telephone2", "telephone2", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone2List The collection of telephone2 as notInScope. + */ + public void setTelephone2_NotInScope(Collection telephone2List) { + regTelephone2(CK_NINS, cTL(telephone2List)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone2_IsNull() { + regTelephone2(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone2_IsNotNull() { + regTelephone2(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone2(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone2(), "TELEPHONE2", + "Telephone2", "telephone2"); + } + + protected void registerInlineTelephone2(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone2(), "TELEPHONE2", + "Telephone2", "telephone2"); + } + + abstract protected ConditionValue getCValueTelephone2(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param fax1 The value of fax1 as equal. + */ + public void setFax1_Equal(String fax1) { + regFax1(CK_EQ, fRES(fax1)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax1 The value of fax1 as notEqual. + */ + public void setFax1_NotEqual(String fax1) { + regFax1(CK_NE, fRES(fax1)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax1 The value of fax1 as greaterThan. + */ + public void setFax1_GreaterThan(String fax1) { + regFax1(CK_GT, fRES(fax1)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax1 The value of fax1 as lessThan. + */ + public void setFax1_LessThan(String fax1) { + regFax1(CK_LT, fRES(fax1)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax1 The value of fax1 as greaterEqual. + */ + public void setFax1_GreaterEqual(String fax1) { + regFax1(CK_GE, fRES(fax1)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax1 The value of fax1 as lessEqual. + */ + public void setFax1_LessEqual(String fax1) { + regFax1(CK_LE, fRES(fax1)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax1 The value of fax1 as prefixSearch. + */ + public void setFax1_PrefixSearch(String fax1) { + regFax1(CK_PS, fRES(fax1)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param fax1 The value of fax1 as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFax1_LikeSearch( + String fax1, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(fax1), getCValueFax1(), "FAX1", + "Fax1", "fax1", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param fax1List The collection of fax1 as inScope. + */ + public void setFax1_InScope(Collection fax1List) { + regFax1(CK_INS, cTL(fax1List)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param fax1 The collection of fax1 as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFax1_InScope( + String fax1, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(fax1), getCValueFax1(), "FAX1", + "Fax1", "fax1", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param fax1List The collection of fax1 as notInScope. + */ + public void setFax1_NotInScope(Collection fax1List) { + regFax1(CK_NINS, cTL(fax1List)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFax1_IsNull() { + regFax1(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFax1_IsNotNull() { + regFax1(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFax1(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFax1(), "FAX1", "Fax1", "fax1"); + } + + protected void registerInlineFax1(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFax1(), "FAX1", "Fax1", "fax1"); + } + + abstract protected ConditionValue getCValueFax1(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param fax2 The value of fax2 as equal. + */ + public void setFax2_Equal(String fax2) { + regFax2(CK_EQ, fRES(fax2)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax2 The value of fax2 as notEqual. + */ + public void setFax2_NotEqual(String fax2) { + regFax2(CK_NE, fRES(fax2)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax2 The value of fax2 as greaterThan. + */ + public void setFax2_GreaterThan(String fax2) { + regFax2(CK_GT, fRES(fax2)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax2 The value of fax2 as lessThan. + */ + public void setFax2_LessThan(String fax2) { + regFax2(CK_LT, fRES(fax2)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax2 The value of fax2 as greaterEqual. + */ + public void setFax2_GreaterEqual(String fax2) { + regFax2(CK_GE, fRES(fax2)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax2 The value of fax2 as lessEqual. + */ + public void setFax2_LessEqual(String fax2) { + regFax2(CK_LE, fRES(fax2)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param fax2 The value of fax2 as prefixSearch. + */ + public void setFax2_PrefixSearch(String fax2) { + regFax2(CK_PS, fRES(fax2)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param fax2 The value of fax2 as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFax2_LikeSearch( + String fax2, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(fax2), getCValueFax2(), "FAX2", + "Fax2", "fax2", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param fax2List The collection of fax2 as inScope. + */ + public void setFax2_InScope(Collection fax2List) { + regFax2(CK_INS, cTL(fax2List)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param fax2 The collection of fax2 as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFax2_InScope( + String fax2, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(fax2), getCValueFax2(), "FAX2", + "Fax2", "fax2", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param fax2List The collection of fax2 as notInScope. + */ + public void setFax2_NotInScope(Collection fax2List) { + regFax2(CK_NINS, cTL(fax2List)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFax2_IsNull() { + regFax2(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFax2_IsNotNull() { + regFax2(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFax2(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFax2(), "FAX2", "Fax2", "fax2"); + } + + protected void registerInlineFax2(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFax2(), "FAX2", "Fax2", "fax2"); + } + + abstract protected ConditionValue getCValueFax2(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : + * Default=[T]} + * + * @param isPublic The value of isPublic as equal. + */ + public void setIsPublic_Equal(String isPublic) { + regIsPublic(CK_EQ, fRES(isPublic)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as notEqual. + */ + public void setIsPublic_NotEqual(String isPublic) { + regIsPublic(CK_NE, fRES(isPublic)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as greaterThan. + */ + public void setIsPublic_GreaterThan(String isPublic) { + regIsPublic(CK_GT, fRES(isPublic)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as lessThan. + */ + public void setIsPublic_LessThan(String isPublic) { + regIsPublic(CK_LT, fRES(isPublic)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as greaterEqual. + */ + public void setIsPublic_GreaterEqual(String isPublic) { + regIsPublic(CK_GE, fRES(isPublic)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as lessEqual. + */ + public void setIsPublic_LessEqual(String isPublic) { + regIsPublic(CK_LE, fRES(isPublic)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as prefixSearch. + */ + public void setIsPublic_PrefixSearch(String isPublic) { + regIsPublic(CK_PS, fRES(isPublic)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param isPublic The value of isPublic as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setIsPublic_LikeSearch( + String isPublic, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(isPublic), getCValueIsPublic(), + "IS_PUBLIC", "IsPublic", "isPublic", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param isPublicList The collection of isPublic as inScope. + */ + public void setIsPublic_InScope(Collection isPublicList) { + regIsPublic(CK_INS, cTL(isPublicList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param isPublic The collection of isPublic as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setIsPublic_InScope( + String isPublic, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(isPublic), getCValueIsPublic(), + "IS_PUBLIC", "IsPublic", "isPublic", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param isPublicList The collection of isPublic as notInScope. + */ + public void setIsPublic_NotInScope(Collection isPublicList) { + regIsPublic(CK_NINS, cTL(isPublicList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setIsPublic_IsNull() { + regIsPublic(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setIsPublic_IsNotNull() { + regIsPublic(CK_ISNN, DUMMY_OBJECT); + } + + protected void regIsPublic(ConditionKey key, Object value) { + registerQuery(key, value, getCValueIsPublic(), "IS_PUBLIC", "IsPublic", + "isPublic"); + } + + protected void registerInlineIsPublic(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueIsPublic(), "IS_PUBLIC", + "IsPublic", "isPublic"); + } + + abstract protected ConditionValue getCValueIsPublic(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[1]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return CompanyCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return CompanyCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCompanyCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsContactCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsContactCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsContactCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,528 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; + +/** + * The abstract condition-query of CONTACT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsContactCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsContactCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "CONTACT"; + } + + public String getTableSqlName() { + return "CONTACT"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * PERSON} + * + * @param personId The value of personId as equal. + */ + public void setPersonId_Equal(Long personId) { + regPersonId(CK_EQ, personId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as notEqual. + */ + public void setPersonId_NotEqual(Long personId) { + regPersonId(CK_NE, personId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as greaterThan. + */ + public void setPersonId_GreaterThan(Long personId) { + regPersonId(CK_GT, personId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as lessThan. + */ + public void setPersonId_LessThan(Long personId) { + regPersonId(CK_LT, personId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as greaterEqual. + */ + public void setPersonId_GreaterEqual(Long personId) { + regPersonId(CK_GE, personId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as lessEqual. + */ + public void setPersonId_LessEqual(Long personId) { + regPersonId(CK_LE, personId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param personIdList The collection of personId as inScope. + */ + public void setPersonId_InScope(Collection personIdList) { + regPersonId(CK_INS, cTL(personIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param personIdList The collection of personId as notInScope. + */ + public void setPersonId_NotInScope(Collection personIdList) { + regPersonId(CK_NINS, cTL(personIdList)); + } + + /** + * @param personCBquery Query. + * @deprecated Please use inScopePerson(subQuery) method. + */ + public void setPersonId_InScopeSubQuery_Person(PersonCQ personCBquery) { + String subQueryPropertyName = keepPersonId_InScopeSubQuery_Person(personCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(personCBquery, "PERSON_ID", "ID", + subQueryPropertyName); + } + + public void inScopePerson(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepPersonId_InScopeSubQuery_Person(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "PERSON_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery); + + protected void regPersonId(ConditionKey key, Object value) { + registerQuery(key, value, getCValuePersonId(), "PERSON_ID", "PersonId", + "personId"); + } + + protected void registerInlinePersonId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValuePersonId(), "PERSON_ID", + "PersonId", "personId"); + } + + abstract protected ConditionValue getCValuePersonId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(20)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param value The value of value as equal. + */ + public void setValue_Equal(String value) { + regValue(CK_EQ, fRES(value)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as notEqual. + */ + public void setValue_NotEqual(String value) { + regValue(CK_NE, fRES(value)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as greaterThan. + */ + public void setValue_GreaterThan(String value) { + regValue(CK_GT, fRES(value)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as lessThan. + */ + public void setValue_LessThan(String value) { + regValue(CK_LT, fRES(value)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as greaterEqual. + */ + public void setValue_GreaterEqual(String value) { + regValue(CK_GE, fRES(value)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as lessEqual. + */ + public void setValue_LessEqual(String value) { + regValue(CK_LE, fRES(value)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as prefixSearch. + */ + public void setValue_PrefixSearch(String value) { + regValue(CK_PS, fRES(value)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param value The value of value as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setValue_LikeSearch( + String value, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(value), getCValueValue(), "VALUE", + "Value", "value", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param valueList The collection of value as inScope. + */ + public void setValue_InScope(Collection valueList) { + regValue(CK_INS, cTL(valueList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param value The collection of value as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setValue_InScope( + String value, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(value), getCValueValue(), "VALUE", + "Value", "value", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param valueList The collection of value as notInScope. + */ + public void setValue_NotInScope(Collection valueList) { + regValue(CK_NINS, cTL(valueList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setValue_IsNull() { + regValue(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setValue_IsNotNull() { + regValue(CK_ISNN, DUMMY_OBJECT); + } + + protected void regValue(ConditionKey key, Object value) { + registerQuery(key, value, getCValueValue(), "VALUE", "Value", "value"); + } + + protected void registerInlineValue(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueValue(), "VALUE", "Value", + "value"); + } + + abstract protected ConditionValue getCValueValue(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return ContactCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return ContactCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsContactCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCustomCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCustomCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCustomCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,493 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; + +/** + * The abstract condition-query of CUSTOM. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsCustomCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsCustomCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "CUSTOM"; + } + + public String getTableSqlName() { + return "CUSTOM"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * PERSON} + * + * @param personId The value of personId as equal. + */ + public void setPersonId_Equal(Long personId) { + regPersonId(CK_EQ, personId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as notEqual. + */ + public void setPersonId_NotEqual(Long personId) { + regPersonId(CK_NE, personId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as greaterThan. + */ + public void setPersonId_GreaterThan(Long personId) { + regPersonId(CK_GT, personId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as lessThan. + */ + public void setPersonId_LessThan(Long personId) { + regPersonId(CK_LT, personId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as greaterEqual. + */ + public void setPersonId_GreaterEqual(Long personId) { + regPersonId(CK_GE, personId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as lessEqual. + */ + public void setPersonId_LessEqual(Long personId) { + regPersonId(CK_LE, personId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param personIdList The collection of personId as inScope. + */ + public void setPersonId_InScope(Collection personIdList) { + regPersonId(CK_INS, cTL(personIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param personIdList The collection of personId as notInScope. + */ + public void setPersonId_NotInScope(Collection personIdList) { + regPersonId(CK_NINS, cTL(personIdList)); + } + + /** + * @param personCBquery Query. + * @deprecated Please use inScopePerson(subQuery) method. + */ + public void setPersonId_InScopeSubQuery_Person(PersonCQ personCBquery) { + String subQueryPropertyName = keepPersonId_InScopeSubQuery_Person(personCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(personCBquery, "PERSON_ID", "ID", + subQueryPropertyName); + } + + public void inScopePerson(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepPersonId_InScopeSubQuery_Person(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "PERSON_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery); + + protected void regPersonId(ConditionKey key, Object value) { + registerQuery(key, value, getCValuePersonId(), "PERSON_ID", "PersonId", + "personId"); + } + + protected void registerInlinePersonId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValuePersonId(), "PERSON_ID", + "PersonId", "personId"); + } + + abstract protected ConditionValue getCValuePersonId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param value The value of value as equal. + */ + public void setValue_Equal(String value) { + regValue(CK_EQ, fRES(value)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as notEqual. + */ + public void setValue_NotEqual(String value) { + regValue(CK_NE, fRES(value)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as greaterThan. + */ + public void setValue_GreaterThan(String value) { + regValue(CK_GT, fRES(value)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as lessThan. + */ + public void setValue_LessThan(String value) { + regValue(CK_LT, fRES(value)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as greaterEqual. + */ + public void setValue_GreaterEqual(String value) { + regValue(CK_GE, fRES(value)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as lessEqual. + */ + public void setValue_LessEqual(String value) { + regValue(CK_LE, fRES(value)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param value The value of value as prefixSearch. + */ + public void setValue_PrefixSearch(String value) { + regValue(CK_PS, fRES(value)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param value The value of value as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setValue_LikeSearch( + String value, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(value), getCValueValue(), "VALUE", + "Value", "value", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param valueList The collection of value as inScope. + */ + public void setValue_InScope(Collection valueList) { + regValue(CK_INS, cTL(valueList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param value The collection of value as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setValue_InScope( + String value, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(value), getCValueValue(), "VALUE", + "Value", "value", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param valueList The collection of value as notInScope. + */ + public void setValue_NotInScope(Collection valueList) { + regValue(CK_NINS, cTL(valueList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setValue_IsNull() { + regValue(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setValue_IsNotNull() { + regValue(CK_ISNN, DUMMY_OBJECT); + } + + protected void regValue(ConditionKey key, Object value) { + registerQuery(key, value, getCValueValue(), "VALUE", "Value", "value"); + } + + protected void registerInlineValue(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueValue(), "VALUE", "Value", + "value"); + } + + abstract protected ConditionValue getCValueValue(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return CustomCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return CustomCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsCustomCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1896 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,465 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPersonCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPersonCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPersonCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,2940 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.PostalCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of PERSON. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsPersonCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsPersonCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "PERSON"; + } + + public String getTableSqlName() { + return "PERSON"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param contactCBquery Query. + * @deprecated Please use inScopeContactList(subQuery) method. + */ + public void setId_InScopeSubQuery_ContactList(ContactCQ contactCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_ContactList(contactCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(contactCBquery, "ID", "PERSON_ID", + subQueryPropertyName); + } + + public void inScopeContactList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + ContactCB cb = new ContactCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_ContactList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_ContactList(ContactCQ subQuery); + + /** + * @param customCBquery Query. + * @deprecated Please use inScopeCustomList(subQuery) method. + */ + public void setId_InScopeSubQuery_CustomList(CustomCQ customCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_CustomList(customCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(customCBquery, "ID", "PERSON_ID", + subQueryPropertyName); + } + + public void inScopeCustomList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CustomCB cb = new CustomCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_CustomList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_CustomList(CustomCQ subQuery); + + /** + * @param postalCBquery Query. + * @deprecated Please use inScopePostalAsOne(subQuery) method. + */ + public void setId_InScopeSubQuery_PostalAsOne(PostalCQ postalCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_PostalAsOne(postalCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(postalCBquery, "ID", "PERSON_ID", + subQueryPropertyName); + } + + public void inScopePostalAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PostalCB cb = new PostalCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_PostalAsOne(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_PostalAsOne(PostalCQ subQuery); + + public void notInScopeContactList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + ContactCB cb = new ContactCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_ContactList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_ContactList( + ContactCQ subQuery); + + public void notInScopeCustomList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CustomCB cb = new CustomCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_CustomList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_CustomList( + CustomCQ subQuery); + + public void notInScopePostalAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PostalCB cb = new PostalCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_PostalAsOne(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_PostalAsOne( + PostalCQ subQuery); + + /** + * @param contactCBquery Query. + * @deprecated Please use existsContactList(subQuery) method. + */ + public void setId_ExistsSubQuery_ContactList(ContactCQ contactCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_ContactList(contactCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(contactCBquery, "ID", "PERSON_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select PERSON_ID from CONTACT where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_ContactList for + * 'exists'. (NotNull) + */ + public void existsContactList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + ContactCB cb = new ContactCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_ContactList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_ContactList(ContactCQ subQuery); + + /** + * @param customCBquery Query. + * @deprecated Please use existsCustomList(subQuery) method. + */ + public void setId_ExistsSubQuery_CustomList(CustomCQ customCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_CustomList(customCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(customCBquery, "ID", "PERSON_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select PERSON_ID from CUSTOM where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_CustomList for + * 'exists'. (NotNull) + */ + public void existsCustomList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CustomCB cb = new CustomCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_CustomList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_CustomList(CustomCQ subQuery); + + /** + * @param postalCBquery Query. + * @deprecated Please use existsPostalAsOne(subQuery) method. + */ + public void setId_ExistsSubQuery_PostalAsOne(PostalCQ postalCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_PostalAsOne(postalCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(postalCBquery, "ID", "PERSON_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select PERSON_ID from POSTAL where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_PostalAsOne for + * 'exists'. (NotNull) + */ + public void existsPostalAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PostalCB cb = new PostalCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_PostalAsOne(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_PostalAsOne(PostalCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select PERSON_ID from CONTACT + * where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_ContactList for + * 'not exists'. (NotNull) + */ + public void notExistsContactList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + ContactCB cb = new ContactCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_ContactList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_ContactList( + ContactCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select PERSON_ID from CUSTOM + * where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_CustomList for 'not + * exists'. (NotNull) + */ + public void notExistsCustomList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CustomCB cb = new CustomCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_CustomList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_CustomList(CustomCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select PERSON_ID from POSTAL + * where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_PostalAsOne for + * 'not exists'. (NotNull) + */ + public void notExistsPostalAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PostalCB cb = new PostalCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_PostalAsOne(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "PERSON_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_PostalAsOne( + PostalCQ subQuery); + + public void xderiveContactList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + ContactCB cb = new ContactCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_ContactList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "PERSON_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_ContactList(ContactCQ subQuery); + + public void xderiveCustomList(String function, SubQuery subQuery, + String aliasName) { + assertObjectNotNull("subQuery", subQuery); + CustomCB cb = new CustomCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_CustomList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "PERSON_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_CustomList(CustomCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(30)} + * + * @param namePrefix The value of namePrefix as equal. + */ + public void setNamePrefix_Equal(String namePrefix) { + regNamePrefix(CK_EQ, fRES(namePrefix)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param namePrefix The value of namePrefix as notEqual. + */ + public void setNamePrefix_NotEqual(String namePrefix) { + regNamePrefix(CK_NE, fRES(namePrefix)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param namePrefix The value of namePrefix as greaterThan. + */ + public void setNamePrefix_GreaterThan(String namePrefix) { + regNamePrefix(CK_GT, fRES(namePrefix)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param namePrefix The value of namePrefix as lessThan. + */ + public void setNamePrefix_LessThan(String namePrefix) { + regNamePrefix(CK_LT, fRES(namePrefix)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param namePrefix The value of namePrefix as greaterEqual. + */ + public void setNamePrefix_GreaterEqual(String namePrefix) { + regNamePrefix(CK_GE, fRES(namePrefix)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param namePrefix The value of namePrefix as lessEqual. + */ + public void setNamePrefix_LessEqual(String namePrefix) { + regNamePrefix(CK_LE, fRES(namePrefix)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param namePrefix The value of namePrefix as prefixSearch. + */ + public void setNamePrefix_PrefixSearch(String namePrefix) { + regNamePrefix(CK_PS, fRES(namePrefix)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param namePrefix The value of namePrefix as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNamePrefix_LikeSearch( + String namePrefix, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(namePrefix), getCValueNamePrefix(), + "NAME_PREFIX", "NamePrefix", "namePrefix", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param namePrefixList The collection of namePrefix as inScope. + */ + public void setNamePrefix_InScope(Collection namePrefixList) { + regNamePrefix(CK_INS, cTL(namePrefixList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param namePrefix The collection of namePrefix as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNamePrefix_InScope( + String namePrefix, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(namePrefix), getCValueNamePrefix(), + "NAME_PREFIX", "NamePrefix", "namePrefix", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param namePrefixList The collection of namePrefix as notInScope. + */ + public void setNamePrefix_NotInScope(Collection namePrefixList) { + regNamePrefix(CK_NINS, cTL(namePrefixList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNamePrefix_IsNull() { + regNamePrefix(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNamePrefix_IsNotNull() { + regNamePrefix(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNamePrefix(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNamePrefix(), "NAME_PREFIX", + "NamePrefix", "namePrefix"); + } + + protected void registerInlineNamePrefix(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNamePrefix(), "NAME_PREFIX", + "NamePrefix", "namePrefix"); + } + + abstract protected ConditionValue getCValueNamePrefix(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(30)} + * + * @param nameSuffix The value of nameSuffix as equal. + */ + public void setNameSuffix_Equal(String nameSuffix) { + regNameSuffix(CK_EQ, fRES(nameSuffix)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameSuffix The value of nameSuffix as notEqual. + */ + public void setNameSuffix_NotEqual(String nameSuffix) { + regNameSuffix(CK_NE, fRES(nameSuffix)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameSuffix The value of nameSuffix as greaterThan. + */ + public void setNameSuffix_GreaterThan(String nameSuffix) { + regNameSuffix(CK_GT, fRES(nameSuffix)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameSuffix The value of nameSuffix as lessThan. + */ + public void setNameSuffix_LessThan(String nameSuffix) { + regNameSuffix(CK_LT, fRES(nameSuffix)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameSuffix The value of nameSuffix as greaterEqual. + */ + public void setNameSuffix_GreaterEqual(String nameSuffix) { + regNameSuffix(CK_GE, fRES(nameSuffix)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameSuffix The value of nameSuffix as lessEqual. + */ + public void setNameSuffix_LessEqual(String nameSuffix) { + regNameSuffix(CK_LE, fRES(nameSuffix)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nameSuffix The value of nameSuffix as prefixSearch. + */ + public void setNameSuffix_PrefixSearch(String nameSuffix) { + regNameSuffix(CK_PS, fRES(nameSuffix)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nameSuffix The value of nameSuffix as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNameSuffix_LikeSearch( + String nameSuffix, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nameSuffix), getCValueNameSuffix(), + "NAME_SUFFIX", "NameSuffix", "nameSuffix", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameSuffixList The collection of nameSuffix as inScope. + */ + public void setNameSuffix_InScope(Collection nameSuffixList) { + regNameSuffix(CK_INS, cTL(nameSuffixList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameSuffix The collection of nameSuffix as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNameSuffix_InScope( + String nameSuffix, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nameSuffix), getCValueNameSuffix(), + "NAME_SUFFIX", "NameSuffix", "nameSuffix", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameSuffixList The collection of nameSuffix as notInScope. + */ + public void setNameSuffix_NotInScope(Collection nameSuffixList) { + regNameSuffix(CK_NINS, cTL(nameSuffixList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNameSuffix_IsNull() { + regNameSuffix(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNameSuffix_IsNotNull() { + regNameSuffix(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNameSuffix(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNameSuffix(), "NAME_SUFFIX", + "NameSuffix", "nameSuffix"); + } + + protected void registerInlineNameSuffix(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNameSuffix(), "NAME_SUFFIX", + "NameSuffix", "nameSuffix"); + } + + abstract protected ConditionValue getCValueNameSuffix(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param jobTitle The value of jobTitle as equal. + */ + public void setJobTitle_Equal(String jobTitle) { + regJobTitle(CK_EQ, fRES(jobTitle)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param jobTitle The value of jobTitle as notEqual. + */ + public void setJobTitle_NotEqual(String jobTitle) { + regJobTitle(CK_NE, fRES(jobTitle)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param jobTitle The value of jobTitle as greaterThan. + */ + public void setJobTitle_GreaterThan(String jobTitle) { + regJobTitle(CK_GT, fRES(jobTitle)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param jobTitle The value of jobTitle as lessThan. + */ + public void setJobTitle_LessThan(String jobTitle) { + regJobTitle(CK_LT, fRES(jobTitle)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param jobTitle The value of jobTitle as greaterEqual. + */ + public void setJobTitle_GreaterEqual(String jobTitle) { + regJobTitle(CK_GE, fRES(jobTitle)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param jobTitle The value of jobTitle as lessEqual. + */ + public void setJobTitle_LessEqual(String jobTitle) { + regJobTitle(CK_LE, fRES(jobTitle)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param jobTitle The value of jobTitle as prefixSearch. + */ + public void setJobTitle_PrefixSearch(String jobTitle) { + regJobTitle(CK_PS, fRES(jobTitle)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param jobTitle The value of jobTitle as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setJobTitle_LikeSearch( + String jobTitle, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(jobTitle), getCValueJobTitle(), + "JOB_TITLE", "JobTitle", "jobTitle", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param jobTitleList The collection of jobTitle as inScope. + */ + public void setJobTitle_InScope(Collection jobTitleList) { + regJobTitle(CK_INS, cTL(jobTitleList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param jobTitle The collection of jobTitle as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setJobTitle_InScope( + String jobTitle, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(jobTitle), getCValueJobTitle(), + "JOB_TITLE", "JobTitle", "jobTitle", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param jobTitleList The collection of jobTitle as notInScope. + */ + public void setJobTitle_NotInScope(Collection jobTitleList) { + regJobTitle(CK_NINS, cTL(jobTitleList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setJobTitle_IsNull() { + regJobTitle(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setJobTitle_IsNotNull() { + regJobTitle(CK_ISNN, DUMMY_OBJECT); + } + + protected void regJobTitle(ConditionKey key, Object value) { + registerQuery(key, value, getCValueJobTitle(), "JOB_TITLE", "JobTitle", + "jobTitle"); + } + + protected void registerInlineJobTitle(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueJobTitle(), "JOB_TITLE", + "JobTitle", "jobTitle"); + } + + abstract protected ConditionValue getCValueJobTitle(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : + * Default=[T]} + * + * @param isPublic The value of isPublic as equal. + */ + public void setIsPublic_Equal(String isPublic) { + regIsPublic(CK_EQ, fRES(isPublic)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as notEqual. + */ + public void setIsPublic_NotEqual(String isPublic) { + regIsPublic(CK_NE, fRES(isPublic)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as greaterThan. + */ + public void setIsPublic_GreaterThan(String isPublic) { + regIsPublic(CK_GT, fRES(isPublic)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as lessThan. + */ + public void setIsPublic_LessThan(String isPublic) { + regIsPublic(CK_LT, fRES(isPublic)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as greaterEqual. + */ + public void setIsPublic_GreaterEqual(String isPublic) { + regIsPublic(CK_GE, fRES(isPublic)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as lessEqual. + */ + public void setIsPublic_LessEqual(String isPublic) { + regIsPublic(CK_LE, fRES(isPublic)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param isPublic The value of isPublic as prefixSearch. + */ + public void setIsPublic_PrefixSearch(String isPublic) { + regIsPublic(CK_PS, fRES(isPublic)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param isPublic The value of isPublic as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setIsPublic_LikeSearch( + String isPublic, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(isPublic), getCValueIsPublic(), + "IS_PUBLIC", "IsPublic", "isPublic", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param isPublicList The collection of isPublic as inScope. + */ + public void setIsPublic_InScope(Collection isPublicList) { + regIsPublic(CK_INS, cTL(isPublicList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param isPublic The collection of isPublic as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setIsPublic_InScope( + String isPublic, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(isPublic), getCValueIsPublic(), + "IS_PUBLIC", "IsPublic", "isPublic", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param isPublicList The collection of isPublic as notInScope. + */ + public void setIsPublic_NotInScope(Collection isPublicList) { + regIsPublic(CK_NINS, cTL(isPublicList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setIsPublic_IsNull() { + regIsPublic(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setIsPublic_IsNotNull() { + regIsPublic(CK_ISNN, DUMMY_OBJECT); + } + + protected void regIsPublic(ConditionKey key, Object value) { + registerQuery(key, value, getCValueIsPublic(), "IS_PUBLIC", "IsPublic", + "isPublic"); + } + + protected void registerInlineIsPublic(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueIsPublic(), "IS_PUBLIC", + "IsPublic", "isPublic"); + } + + abstract protected ConditionValue getCValueIsPublic(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : FK to COMPANY} + * + * @param companyId The value of companyId as equal. + */ + public void setCompanyId_Equal(Long companyId) { + regCompanyId(CK_EQ, companyId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param companyId The value of companyId as notEqual. + */ + public void setCompanyId_NotEqual(Long companyId) { + regCompanyId(CK_NE, companyId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param companyId The value of companyId as greaterThan. + */ + public void setCompanyId_GreaterThan(Long companyId) { + regCompanyId(CK_GT, companyId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param companyId The value of companyId as lessThan. + */ + public void setCompanyId_LessThan(Long companyId) { + regCompanyId(CK_LT, companyId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param companyId The value of companyId as greaterEqual. + */ + public void setCompanyId_GreaterEqual(Long companyId) { + regCompanyId(CK_GE, companyId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param companyId The value of companyId as lessEqual. + */ + public void setCompanyId_LessEqual(Long companyId) { + regCompanyId(CK_LE, companyId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param companyIdList The collection of companyId as inScope. + */ + public void setCompanyId_InScope(Collection companyIdList) { + regCompanyId(CK_INS, cTL(companyIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param companyIdList The collection of companyId as notInScope. + */ + public void setCompanyId_NotInScope(Collection companyIdList) { + regCompanyId(CK_NINS, cTL(companyIdList)); + } + + /** + * @param companyCBquery Query. + * @deprecated Please use inScopeCompany(subQuery) method. + */ + public void setCompanyId_InScopeSubQuery_Company(CompanyCQ companyCBquery) { + String subQueryPropertyName = keepCompanyId_InScopeSubQuery_Company(companyCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(companyCBquery, "COMPANY_ID", "ID", + subQueryPropertyName); + } + + public void inScopeCompany(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CompanyCB cb = new CompanyCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCompanyId_InScopeSubQuery_Company(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "COMPANY_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepCompanyId_InScopeSubQuery_Company( + CompanyCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCompanyId_IsNull() { + regCompanyId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCompanyId_IsNotNull() { + regCompanyId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCompanyId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCompanyId(), "COMPANY_ID", + "CompanyId", "companyId"); + } + + protected void registerInlineCompanyId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCompanyId(), "COMPANY_ID", + "CompanyId", "companyId"); + } + + abstract protected ConditionValue getCValueCompanyId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[1]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return PersonCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return PersonCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPersonCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPostalCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPostalCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPostalCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1006 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.PostalCB; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; + +/** + * The abstract condition-query of POSTAL. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsPostalCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsPostalCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "POSTAL"; + } + + public String getTableSqlName() { + return "POSTAL"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to + * PERSON} + * + * @param personId The value of personId as equal. + */ + public void setPersonId_Equal(Long personId) { + regPersonId(CK_EQ, personId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as notEqual. + */ + public void setPersonId_NotEqual(Long personId) { + regPersonId(CK_NE, personId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as greaterThan. + */ + public void setPersonId_GreaterThan(Long personId) { + regPersonId(CK_GT, personId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as lessThan. + */ + public void setPersonId_LessThan(Long personId) { + regPersonId(CK_LT, personId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as greaterEqual. + */ + public void setPersonId_GreaterEqual(Long personId) { + regPersonId(CK_GE, personId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param personId The value of personId as lessEqual. + */ + public void setPersonId_LessEqual(Long personId) { + regPersonId(CK_LE, personId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param personIdList The collection of personId as inScope. + */ + public void setPersonId_InScope(Collection personIdList) { + regPersonId(CK_INS, cTL(personIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param personIdList The collection of personId as notInScope. + */ + public void setPersonId_NotInScope(Collection personIdList) { + regPersonId(CK_NINS, cTL(personIdList)); + } + + /** + * @param personCBquery Query. + * @deprecated Please use inScopePerson(subQuery) method. + */ + public void setPersonId_InScopeSubQuery_Person(PersonCQ personCBquery) { + String subQueryPropertyName = keepPersonId_InScopeSubQuery_Person(personCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(personCBquery, "PERSON_ID", "ID", + subQueryPropertyName); + } + + public void inScopePerson(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepPersonId_InScopeSubQuery_Person(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "PERSON_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setPersonId_IsNull() { + regPersonId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setPersonId_IsNotNull() { + regPersonId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regPersonId(ConditionKey key, Object value) { + registerQuery(key, value, getCValuePersonId(), "PERSON_ID", "PersonId", + "personId"); + } + + protected void registerInlinePersonId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValuePersonId(), "PERSON_ID", + "PersonId", "personId"); + } + + abstract protected ConditionValue getCValuePersonId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param building The value of building as equal. + */ + public void setBuilding_Equal(String building) { + regBuilding(CK_EQ, fRES(building)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as notEqual. + */ + public void setBuilding_NotEqual(String building) { + regBuilding(CK_NE, fRES(building)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as greaterThan. + */ + public void setBuilding_GreaterThan(String building) { + regBuilding(CK_GT, fRES(building)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as lessThan. + */ + public void setBuilding_LessThan(String building) { + regBuilding(CK_LT, fRES(building)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as greaterEqual. + */ + public void setBuilding_GreaterEqual(String building) { + regBuilding(CK_GE, fRES(building)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as lessEqual. + */ + public void setBuilding_LessEqual(String building) { + regBuilding(CK_LE, fRES(building)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param building The value of building as prefixSearch. + */ + public void setBuilding_PrefixSearch(String building) { + regBuilding(CK_PS, fRES(building)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param building The value of building as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setBuilding_LikeSearch( + String building, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(building), getCValueBuilding(), + "BUILDING", "Building", "building", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param buildingList The collection of building as inScope. + */ + public void setBuilding_InScope(Collection buildingList) { + regBuilding(CK_INS, cTL(buildingList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param building The collection of building as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setBuilding_InScope( + String building, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(building), getCValueBuilding(), + "BUILDING", "Building", "building", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param buildingList The collection of building as notInScope. + */ + public void setBuilding_NotInScope(Collection buildingList) { + regBuilding(CK_NINS, cTL(buildingList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBuilding_IsNull() { + regBuilding(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBuilding_IsNotNull() { + regBuilding(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBuilding(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBuilding(), "BUILDING", "Building", + "building"); + } + + protected void registerInlineBuilding(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBuilding(), "BUILDING", + "Building", "building"); + } + + abstract protected ConditionValue getCValueBuilding(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param street The value of street as equal. + */ + public void setStreet_Equal(String street) { + regStreet(CK_EQ, fRES(street)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as notEqual. + */ + public void setStreet_NotEqual(String street) { + regStreet(CK_NE, fRES(street)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as greaterThan. + */ + public void setStreet_GreaterThan(String street) { + regStreet(CK_GT, fRES(street)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as lessThan. + */ + public void setStreet_LessThan(String street) { + regStreet(CK_LT, fRES(street)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as greaterEqual. + */ + public void setStreet_GreaterEqual(String street) { + regStreet(CK_GE, fRES(street)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as lessEqual. + */ + public void setStreet_LessEqual(String street) { + regStreet(CK_LE, fRES(street)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param street The value of street as prefixSearch. + */ + public void setStreet_PrefixSearch(String street) { + regStreet(CK_PS, fRES(street)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param street The value of street as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setStreet_LikeSearch( + String street, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(street), getCValueStreet(), + "STREET", "Street", "street", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param streetList The collection of street as inScope. + */ + public void setStreet_InScope(Collection streetList) { + regStreet(CK_INS, cTL(streetList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param street The collection of street as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setStreet_InScope( + String street, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(street), getCValueStreet(), "STREET", + "Street", "street", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param streetList The collection of street as notInScope. + */ + public void setStreet_NotInScope(Collection streetList) { + regStreet(CK_NINS, cTL(streetList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setStreet_IsNull() { + regStreet(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setStreet_IsNotNull() { + regStreet(CK_ISNN, DUMMY_OBJECT); + } + + protected void regStreet(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStreet(), "STREET", "Street", + "street"); + } + + protected void registerInlineStreet(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStreet(), "STREET", "Street", + "street"); + } + + abstract protected ConditionValue getCValueStreet(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param city The value of city as equal. + */ + public void setCity_Equal(String city) { + regCity(CK_EQ, fRES(city)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as notEqual. + */ + public void setCity_NotEqual(String city) { + regCity(CK_NE, fRES(city)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as greaterThan. + */ + public void setCity_GreaterThan(String city) { + regCity(CK_GT, fRES(city)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as lessThan. + */ + public void setCity_LessThan(String city) { + regCity(CK_LT, fRES(city)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as greaterEqual. + */ + public void setCity_GreaterEqual(String city) { + regCity(CK_GE, fRES(city)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as lessEqual. + */ + public void setCity_LessEqual(String city) { + regCity(CK_LE, fRES(city)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param city The value of city as prefixSearch. + */ + public void setCity_PrefixSearch(String city) { + regCity(CK_PS, fRES(city)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param city The value of city as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCity_LikeSearch( + String city, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(city), getCValueCity(), "CITY", + "City", "city", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param cityList The collection of city as inScope. + */ + public void setCity_InScope(Collection cityList) { + regCity(CK_INS, cTL(cityList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param city The collection of city as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCity_InScope( + String city, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(city), getCValueCity(), "CITY", + "City", "city", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param cityList The collection of city as notInScope. + */ + public void setCity_NotInScope(Collection cityList) { + regCity(CK_NINS, cTL(cityList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCity_IsNull() { + regCity(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCity_IsNotNull() { + regCity(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCity(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCity(), "CITY", "City", "city"); + } + + protected void registerInlineCity(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCity(), "CITY", "City", "city"); + } + + abstract protected ConditionValue getCValueCity(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param state The value of state as equal. + */ + public void setState_Equal(String state) { + regState(CK_EQ, fRES(state)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as notEqual. + */ + public void setState_NotEqual(String state) { + regState(CK_NE, fRES(state)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as greaterThan. + */ + public void setState_GreaterThan(String state) { + regState(CK_GT, fRES(state)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as lessThan. + */ + public void setState_LessThan(String state) { + regState(CK_LT, fRES(state)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as greaterEqual. + */ + public void setState_GreaterEqual(String state) { + regState(CK_GE, fRES(state)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as lessEqual. + */ + public void setState_LessEqual(String state) { + regState(CK_LE, fRES(state)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param state The value of state as prefixSearch. + */ + public void setState_PrefixSearch(String state) { + regState(CK_PS, fRES(state)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param state The value of state as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setState_LikeSearch( + String state, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(state), getCValueState(), "STATE", + "State", "state", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param stateList The collection of state as inScope. + */ + public void setState_InScope(Collection stateList) { + regState(CK_INS, cTL(stateList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param state The collection of state as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setState_InScope( + String state, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(state), getCValueState(), "STATE", + "State", "state", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param stateList The collection of state as notInScope. + */ + public void setState_NotInScope(Collection stateList) { + regState(CK_NINS, cTL(stateList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setState_IsNull() { + regState(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setState_IsNotNull() { + regState(CK_ISNN, DUMMY_OBJECT); + } + + protected void regState(ConditionKey key, Object value) { + registerQuery(key, value, getCValueState(), "STATE", "State", "state"); + } + + protected void registerInlineState(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueState(), "STATE", "State", + "state"); + } + + abstract protected ConditionValue getCValueState(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(30)} + * + * @param postalCode The value of postalCode as equal. + */ + public void setPostalCode_Equal(String postalCode) { + regPostalCode(CK_EQ, fRES(postalCode)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as notEqual. + */ + public void setPostalCode_NotEqual(String postalCode) { + regPostalCode(CK_NE, fRES(postalCode)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as greaterThan. + */ + public void setPostalCode_GreaterThan(String postalCode) { + regPostalCode(CK_GT, fRES(postalCode)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as lessThan. + */ + public void setPostalCode_LessThan(String postalCode) { + regPostalCode(CK_LT, fRES(postalCode)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as greaterEqual. + */ + public void setPostalCode_GreaterEqual(String postalCode) { + regPostalCode(CK_GE, fRES(postalCode)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as lessEqual. + */ + public void setPostalCode_LessEqual(String postalCode) { + regPostalCode(CK_LE, fRES(postalCode)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param postalCode The value of postalCode as prefixSearch. + */ + public void setPostalCode_PrefixSearch(String postalCode) { + regPostalCode(CK_PS, fRES(postalCode)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param postalCode The value of postalCode as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setPostalCode_LikeSearch( + String postalCode, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(postalCode), getCValuePostalCode(), + "POSTAL_CODE", "PostalCode", "postalCode", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param postalCodeList The collection of postalCode as inScope. + */ + public void setPostalCode_InScope(Collection postalCodeList) { + regPostalCode(CK_INS, cTL(postalCodeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param postalCode The collection of postalCode as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setPostalCode_InScope( + String postalCode, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(postalCode), getCValuePostalCode(), + "POSTAL_CODE", "PostalCode", "postalCode", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param postalCodeList The collection of postalCode as notInScope. + */ + public void setPostalCode_NotInScope(Collection postalCodeList) { + regPostalCode(CK_NINS, cTL(postalCodeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setPostalCode_IsNull() { + regPostalCode(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setPostalCode_IsNotNull() { + regPostalCode(CK_ISNN, DUMMY_OBJECT); + } + + protected void regPostalCode(ConditionKey key, Object value) { + registerQuery(key, value, getCValuePostalCode(), "POSTAL_CODE", + "PostalCode", "postalCode"); + } + + protected void registerInlinePostalCode(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValuePostalCode(), "POSTAL_CODE", + "PostalCode", "postalCode"); + } + + abstract protected ConditionValue getCValuePostalCode(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param country The value of country as equal. + */ + public void setCountry_Equal(String country) { + regCountry(CK_EQ, fRES(country)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as notEqual. + */ + public void setCountry_NotEqual(String country) { + regCountry(CK_NE, fRES(country)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as greaterThan. + */ + public void setCountry_GreaterThan(String country) { + regCountry(CK_GT, fRES(country)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as lessThan. + */ + public void setCountry_LessThan(String country) { + regCountry(CK_LT, fRES(country)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as greaterEqual. + */ + public void setCountry_GreaterEqual(String country) { + regCountry(CK_GE, fRES(country)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as lessEqual. + */ + public void setCountry_LessEqual(String country) { + regCountry(CK_LE, fRES(country)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param country The value of country as prefixSearch. + */ + public void setCountry_PrefixSearch(String country) { + regCountry(CK_PS, fRES(country)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param country The value of country as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCountry_LikeSearch( + String country, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(country), getCValueCountry(), + "COUNTRY", "Country", "country", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param countryList The collection of country as inScope. + */ + public void setCountry_InScope(Collection countryList) { + regCountry(CK_INS, cTL(countryList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param country The collection of country as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCountry_InScope( + String country, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(country), getCValueCountry(), + "COUNTRY", "Country", "country", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param countryList The collection of country as notInScope. + */ + public void setCountry_NotInScope(Collection countryList) { + regCountry(CK_NINS, cTL(countryList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCountry_IsNull() { + regCountry(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCountry_IsNotNull() { + regCountry(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCountry(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCountry(), "COUNTRY", "Country", + "country"); + } + + protected void registerInlineCountry(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCountry(), "COUNTRY", + "Country", "country"); + } + + abstract protected ConditionValue getCValueCountry(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return PostalCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return PostalCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsPostalCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,1894 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,464 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,2886 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.addresslist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.GroupInfoCB; +import jp.sf.pal.addresslist.db.cbean.GroupMappingCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.RoleInfoCB; +import jp.sf.pal.addresslist.db.cbean.RoleMappingCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param companyCBquery Query. + * @deprecated Please use inScopeCompanyList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_CompanyList(CompanyCQ companyCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_CompanyList(companyCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(companyCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeCompanyList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CompanyCB cb = new CompanyCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_CompanyList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_CompanyList( + CompanyCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param personCBquery Query. + * @deprecated Please use inScopePersonList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_PersonList(PersonCQ personCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_PersonList(personCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(personCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopePersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_PersonList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_PersonList( + PersonCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeCompanyList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CompanyCB cb = new CompanyCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_CompanyList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_CompanyList( + CompanyCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopePersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_PersonList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_PersonList( + PersonCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param companyCBquery Query. + * @deprecated Please use existsCompanyList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_CompanyList(CompanyCQ companyCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_CompanyList(companyCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(companyCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from COMPANY where + * ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_CompanyList for + * 'exists'. (NotNull) + */ + public void existsCompanyList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CompanyCB cb = new CompanyCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_CompanyList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_CompanyList( + CompanyCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param personCBquery Query. + * @deprecated Please use existsPersonList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_PersonList(PersonCQ personCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_PersonList(personCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(personCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from PERSON where + * ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_PersonList for + * 'exists'. (NotNull) + */ + public void existsPersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_PersonList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_PersonList( + PersonCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from COMPANY + * where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_CompanyList for + * 'not exists'. (NotNull) + */ + public void notExistsCompanyList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + CompanyCB cb = new CompanyCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_CompanyList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_CompanyList( + CompanyCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from PERSON + * where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_PersonList for + * 'not exists'. (NotNull) + */ + public void notExistsPersonList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_PersonList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_PersonList( + PersonCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveCompanyList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + CompanyCB cb = new CompanyCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_CompanyList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_CompanyList( + CompanyCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderivePersonList(String function, SubQuery subQuery, + String aliasName) { + assertObjectNotNull("subQuery", subQuery); + PersonCB cb = new PersonCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_PersonList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_PersonList( + PersonCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCompanyCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCompanyCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCompanyCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,799 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.CompanyCIQ; + +/** + * The base condition-query of COMPANY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsCompanyCQ extends AbstractBsCompanyCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CompanyCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsCompanyCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from COMPANY) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public CompanyCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new CompanyCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * COMPANY on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public CompanyCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + CompanyCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_PersonListMap; + + public Map getId_InScopeSubQuery_PersonList() { + return _id_InScopeSubQuery_PersonListMap; + } + + public String keepId_InScopeSubQuery_PersonList(PersonCQ subQuery) { + if (_id_InScopeSubQuery_PersonListMap == null) { + _id_InScopeSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_PersonListMap.size() + 1); + _id_InScopeSubQuery_PersonListMap.put(key, subQuery); + return "id_InScopeSubQuery_PersonList." + key; + } + + protected Map _id_NotInScopeSubQuery_PersonListMap; + + public Map getId_NotInScopeSubQuery_PersonList() { + return _id_NotInScopeSubQuery_PersonListMap; + } + + public String keepId_NotInScopeSubQuery_PersonList(PersonCQ subQuery) { + if (_id_NotInScopeSubQuery_PersonListMap == null) { + _id_NotInScopeSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_PersonListMap.size() + 1); + _id_NotInScopeSubQuery_PersonListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_PersonList." + key; + } + + protected Map _id_ExistsSubQuery_PersonListMap; + + public Map getId_ExistsSubQuery_PersonList() { + return _id_ExistsSubQuery_PersonListMap; + } + + public String keepId_ExistsSubQuery_PersonList(PersonCQ subQuery) { + if (_id_ExistsSubQuery_PersonListMap == null) { + _id_ExistsSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_PersonListMap.size() + 1); + _id_ExistsSubQuery_PersonListMap.put(key, subQuery); + return "id_ExistsSubQuery_PersonList." + key; + } + + protected Map _id_NotExistsSubQuery_PersonListMap; + + public Map getId_NotExistsSubQuery_PersonList() { + return _id_NotExistsSubQuery_PersonListMap; + } + + public String keepId_NotExistsSubQuery_PersonList(PersonCQ subQuery) { + if (_id_NotExistsSubQuery_PersonListMap == null) { + _id_NotExistsSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_PersonListMap.size() + 1); + _id_NotExistsSubQuery_PersonListMap.put(key, subQuery); + return "id_NotExistsSubQuery_PersonList." + key; + } + + protected Map _id_DeriveSubQuery_PersonListMap; + + public Map getId_DeriveSubQuery_PersonList() { + return _id_DeriveSubQuery_PersonListMap; + } + + public String keepId_DeriveSubQuery_PersonList(PersonCQ subQuery) { + if (_id_DeriveSubQuery_PersonListMap == null) { + _id_DeriveSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_PersonListMap.size() + 1); + _id_DeriveSubQuery_PersonListMap.put(key, subQuery); + return "id_DeriveSubQuery_PersonList." + key; + } + + public BsCompanyCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsCompanyCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsCompanyCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsCompanyCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsCompanyCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsCompanyCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _nameDesc; + + public ConditionValue getNameDesc() { + if (_nameDesc == null) { + _nameDesc = new ConditionValue(); + } + return _nameDesc; + } + + protected ConditionValue getCValueNameDesc() { + return getNameDesc(); + } + + public BsCompanyCQ addOrderBy_NameDesc_Asc() { + regOBA("NAME_DESC"); + return this; + } + + public BsCompanyCQ addOrderBy_NameDesc_Desc() { + regOBD("NAME_DESC"); + return this; + } + + protected ConditionValue _department; + + public ConditionValue getDepartment() { + if (_department == null) { + _department = new ConditionValue(); + } + return _department; + } + + protected ConditionValue getCValueDepartment() { + return getDepartment(); + } + + public BsCompanyCQ addOrderBy_Department_Asc() { + regOBA("DEPARTMENT"); + return this; + } + + public BsCompanyCQ addOrderBy_Department_Desc() { + regOBD("DEPARTMENT"); + return this; + } + + protected ConditionValue _building; + + public ConditionValue getBuilding() { + if (_building == null) { + _building = new ConditionValue(); + } + return _building; + } + + protected ConditionValue getCValueBuilding() { + return getBuilding(); + } + + public BsCompanyCQ addOrderBy_Building_Asc() { + regOBA("BUILDING"); + return this; + } + + public BsCompanyCQ addOrderBy_Building_Desc() { + regOBD("BUILDING"); + return this; + } + + protected ConditionValue _street; + + public ConditionValue getStreet() { + if (_street == null) { + _street = new ConditionValue(); + } + return _street; + } + + protected ConditionValue getCValueStreet() { + return getStreet(); + } + + public BsCompanyCQ addOrderBy_Street_Asc() { + regOBA("STREET"); + return this; + } + + public BsCompanyCQ addOrderBy_Street_Desc() { + regOBD("STREET"); + return this; + } + + protected ConditionValue _city; + + public ConditionValue getCity() { + if (_city == null) { + _city = new ConditionValue(); + } + return _city; + } + + protected ConditionValue getCValueCity() { + return getCity(); + } + + public BsCompanyCQ addOrderBy_City_Asc() { + regOBA("CITY"); + return this; + } + + public BsCompanyCQ addOrderBy_City_Desc() { + regOBD("CITY"); + return this; + } + + protected ConditionValue _state; + + public ConditionValue getState() { + if (_state == null) { + _state = new ConditionValue(); + } + return _state; + } + + protected ConditionValue getCValueState() { + return getState(); + } + + public BsCompanyCQ addOrderBy_State_Asc() { + regOBA("STATE"); + return this; + } + + public BsCompanyCQ addOrderBy_State_Desc() { + regOBD("STATE"); + return this; + } + + protected ConditionValue _postalCode; + + public ConditionValue getPostalCode() { + if (_postalCode == null) { + _postalCode = new ConditionValue(); + } + return _postalCode; + } + + protected ConditionValue getCValuePostalCode() { + return getPostalCode(); + } + + public BsCompanyCQ addOrderBy_PostalCode_Asc() { + regOBA("POSTAL_CODE"); + return this; + } + + public BsCompanyCQ addOrderBy_PostalCode_Desc() { + regOBD("POSTAL_CODE"); + return this; + } + + protected ConditionValue _country; + + public ConditionValue getCountry() { + if (_country == null) { + _country = new ConditionValue(); + } + return _country; + } + + protected ConditionValue getCValueCountry() { + return getCountry(); + } + + public BsCompanyCQ addOrderBy_Country_Asc() { + regOBA("COUNTRY"); + return this; + } + + public BsCompanyCQ addOrderBy_Country_Desc() { + regOBD("COUNTRY"); + return this; + } + + protected ConditionValue _telephone1; + + public ConditionValue getTelephone1() { + if (_telephone1 == null) { + _telephone1 = new ConditionValue(); + } + return _telephone1; + } + + protected ConditionValue getCValueTelephone1() { + return getTelephone1(); + } + + public BsCompanyCQ addOrderBy_Telephone1_Asc() { + regOBA("TELEPHONE1"); + return this; + } + + public BsCompanyCQ addOrderBy_Telephone1_Desc() { + regOBD("TELEPHONE1"); + return this; + } + + protected ConditionValue _telephone2; + + public ConditionValue getTelephone2() { + if (_telephone2 == null) { + _telephone2 = new ConditionValue(); + } + return _telephone2; + } + + protected ConditionValue getCValueTelephone2() { + return getTelephone2(); + } + + public BsCompanyCQ addOrderBy_Telephone2_Asc() { + regOBA("TELEPHONE2"); + return this; + } + + public BsCompanyCQ addOrderBy_Telephone2_Desc() { + regOBD("TELEPHONE2"); + return this; + } + + protected ConditionValue _fax1; + + public ConditionValue getFax1() { + if (_fax1 == null) { + _fax1 = new ConditionValue(); + } + return _fax1; + } + + protected ConditionValue getCValueFax1() { + return getFax1(); + } + + public BsCompanyCQ addOrderBy_Fax1_Asc() { + regOBA("FAX1"); + return this; + } + + public BsCompanyCQ addOrderBy_Fax1_Desc() { + regOBD("FAX1"); + return this; + } + + protected ConditionValue _fax2; + + public ConditionValue getFax2() { + if (_fax2 == null) { + _fax2 = new ConditionValue(); + } + return _fax2; + } + + protected ConditionValue getCValueFax2() { + return getFax2(); + } + + public BsCompanyCQ addOrderBy_Fax2_Asc() { + regOBA("FAX2"); + return this; + } + + public BsCompanyCQ addOrderBy_Fax2_Desc() { + regOBD("FAX2"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsCompanyCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsCompanyCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _isPublic; + + public ConditionValue getIsPublic() { + if (_isPublic == null) { + _isPublic = new ConditionValue(); + } + return _isPublic; + } + + protected ConditionValue getCValueIsPublic() { + return getIsPublic(); + } + + public BsCompanyCQ addOrderBy_IsPublic_Asc() { + regOBA("IS_PUBLIC"); + return this; + } + + public BsCompanyCQ addOrderBy_IsPublic_Desc() { + regOBD("IS_PUBLIC"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsCompanyCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsCompanyCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsCompanyCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsCompanyCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsCompanyCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsCompanyCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsCompanyCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsCompanyCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsCompanyCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsCompanyCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsCompanyCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsCompanyCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsCompanyCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsCompanyCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsCompanyCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsCompanyCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + CompanyCQ baseQuery = (CompanyCQ) baseQueryAsSuper; + CompanyCQ unionQuery = (CompanyCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("COMPANY", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return CompanyCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCompanyCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsContactCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsContactCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsContactCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,258 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.ContactCIQ; + +/** + * The base condition-query of CONTACT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsContactCQ extends AbstractBsContactCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ContactCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsContactCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from CONTACT) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public ContactCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new ContactCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * CONTACT on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public ContactCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + ContactCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsContactCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsContactCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _personId; + + public ConditionValue getPersonId() { + if (_personId == null) { + _personId = new ConditionValue(); + } + return _personId; + } + + protected ConditionValue getCValuePersonId() { + return getPersonId(); + } + + protected Map _personId_InScopeSubQuery_PersonMap; + + public Map getPersonId_InScopeSubQuery_Person() { + return _personId_InScopeSubQuery_PersonMap; + } + + public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery) { + if (_personId_InScopeSubQuery_PersonMap == null) { + _personId_InScopeSubQuery_PersonMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_personId_InScopeSubQuery_PersonMap.size() + 1); + _personId_InScopeSubQuery_PersonMap.put(key, subQuery); + return "personId_InScopeSubQuery_Person." + key; + } + + public BsContactCQ addOrderBy_PersonId_Asc() { + regOBA("PERSON_ID"); + return this; + } + + public BsContactCQ addOrderBy_PersonId_Desc() { + regOBD("PERSON_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsContactCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsContactCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _value; + + public ConditionValue getValue() { + if (_value == null) { + _value = new ConditionValue(); + } + return _value; + } + + protected ConditionValue getCValueValue() { + return getValue(); + } + + public BsContactCQ addOrderBy_Value_Asc() { + regOBA("VALUE"); + return this; + } + + public BsContactCQ addOrderBy_Value_Desc() { + regOBD("VALUE"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsContactCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsContactCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + ContactCQ baseQuery = (ContactCQ) baseQueryAsSuper; + ContactCQ unionQuery = (ContactCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryPerson()) { + unionQuery.queryPerson().reflectRelationOnUnionQuery( + baseQuery.queryPerson(), unionQuery.queryPerson()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public PersonCQ queryPerson() { + return getConditionQueryPerson(); + } + + protected PersonCQ _conditionQueryPerson; + + public PersonCQ getConditionQueryPerson() { + if (_conditionQueryPerson == null) { + _conditionQueryPerson = createQueryPerson(); + setupOuterJoin_Person(); + } + return _conditionQueryPerson; + } + + protected void setupOuterJoin_Person() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("PERSON_ID"), getConditionQueryPerson() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryPerson(), joinOnMap); + } + + protected PersonCQ createQueryPerson() { + String nrp = resolveNextRelationPath("CONTACT", "person"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + PersonCQ cq = new PersonCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("person"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryPerson() { + return _conditionQueryPerson != null; + } + + protected String getConditionQueryClassNameInternally() { + return ContactCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsContactCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCustomCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCustomCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCustomCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,258 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.CustomCIQ; + +/** + * The base condition-query of CUSTOM. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsCustomCQ extends AbstractBsCustomCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CustomCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsCustomCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from CUSTOM) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public CustomCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new CustomCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * CUSTOM on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public CustomCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + CustomCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsCustomCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsCustomCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _personId; + + public ConditionValue getPersonId() { + if (_personId == null) { + _personId = new ConditionValue(); + } + return _personId; + } + + protected ConditionValue getCValuePersonId() { + return getPersonId(); + } + + protected Map _personId_InScopeSubQuery_PersonMap; + + public Map getPersonId_InScopeSubQuery_Person() { + return _personId_InScopeSubQuery_PersonMap; + } + + public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery) { + if (_personId_InScopeSubQuery_PersonMap == null) { + _personId_InScopeSubQuery_PersonMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_personId_InScopeSubQuery_PersonMap.size() + 1); + _personId_InScopeSubQuery_PersonMap.put(key, subQuery); + return "personId_InScopeSubQuery_Person." + key; + } + + public BsCustomCQ addOrderBy_PersonId_Asc() { + regOBA("PERSON_ID"); + return this; + } + + public BsCustomCQ addOrderBy_PersonId_Desc() { + regOBD("PERSON_ID"); + return this; + } + + protected ConditionValue _value; + + public ConditionValue getValue() { + if (_value == null) { + _value = new ConditionValue(); + } + return _value; + } + + protected ConditionValue getCValueValue() { + return getValue(); + } + + public BsCustomCQ addOrderBy_Value_Asc() { + regOBA("VALUE"); + return this; + } + + public BsCustomCQ addOrderBy_Value_Desc() { + regOBD("VALUE"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsCustomCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsCustomCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsCustomCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsCustomCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + CustomCQ baseQuery = (CustomCQ) baseQueryAsSuper; + CustomCQ unionQuery = (CustomCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryPerson()) { + unionQuery.queryPerson().reflectRelationOnUnionQuery( + baseQuery.queryPerson(), unionQuery.queryPerson()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public PersonCQ queryPerson() { + return getConditionQueryPerson(); + } + + protected PersonCQ _conditionQueryPerson; + + public PersonCQ getConditionQueryPerson() { + if (_conditionQueryPerson == null) { + _conditionQueryPerson = createQueryPerson(); + setupOuterJoin_Person(); + } + return _conditionQueryPerson; + } + + protected void setupOuterJoin_Person() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("PERSON_ID"), getConditionQueryPerson() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryPerson(), joinOnMap); + } + + protected PersonCQ createQueryPerson() { + String nrp = resolveNextRelationPath("CUSTOM", "person"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + PersonCQ cq = new PersonCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("person"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryPerson() { + return _conditionQueryPerson != null; + } + + protected String getConditionQueryClassNameInternally() { + return CustomCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsCustomCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,575 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,291 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPersonCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPersonCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPersonCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,949 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.PersonCIQ; + +/** + * The base condition-query of PERSON. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsPersonCQ extends AbstractBsPersonCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected PersonCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsPersonCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from PERSON) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public PersonCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new PersonCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * PERSON on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public PersonCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + PersonCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_ContactListMap; + + public Map getId_InScopeSubQuery_ContactList() { + return _id_InScopeSubQuery_ContactListMap; + } + + public String keepId_InScopeSubQuery_ContactList(ContactCQ subQuery) { + if (_id_InScopeSubQuery_ContactListMap == null) { + _id_InScopeSubQuery_ContactListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_ContactListMap.size() + 1); + _id_InScopeSubQuery_ContactListMap.put(key, subQuery); + return "id_InScopeSubQuery_ContactList." + key; + } + + protected Map _id_InScopeSubQuery_CustomListMap; + + public Map getId_InScopeSubQuery_CustomList() { + return _id_InScopeSubQuery_CustomListMap; + } + + public String keepId_InScopeSubQuery_CustomList(CustomCQ subQuery) { + if (_id_InScopeSubQuery_CustomListMap == null) { + _id_InScopeSubQuery_CustomListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_CustomListMap.size() + 1); + _id_InScopeSubQuery_CustomListMap.put(key, subQuery); + return "id_InScopeSubQuery_CustomList." + key; + } + + protected Map _id_InScopeSubQuery_PostalAsOneMap; + + public Map getId_InScopeSubQuery_PostalAsOne() { + return _id_InScopeSubQuery_PostalAsOneMap; + } + + public String keepId_InScopeSubQuery_PostalAsOne(PostalCQ subQuery) { + if (_id_InScopeSubQuery_PostalAsOneMap == null) { + _id_InScopeSubQuery_PostalAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_PostalAsOneMap.size() + 1); + _id_InScopeSubQuery_PostalAsOneMap.put(key, subQuery); + return "id_InScopeSubQuery_PostalAsOne." + key; + } + + protected Map _id_NotInScopeSubQuery_ContactListMap; + + public Map getId_NotInScopeSubQuery_ContactList() { + return _id_NotInScopeSubQuery_ContactListMap; + } + + public String keepId_NotInScopeSubQuery_ContactList(ContactCQ subQuery) { + if (_id_NotInScopeSubQuery_ContactListMap == null) { + _id_NotInScopeSubQuery_ContactListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_ContactListMap.size() + 1); + _id_NotInScopeSubQuery_ContactListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_ContactList." + key; + } + + protected Map _id_NotInScopeSubQuery_CustomListMap; + + public Map getId_NotInScopeSubQuery_CustomList() { + return _id_NotInScopeSubQuery_CustomListMap; + } + + public String keepId_NotInScopeSubQuery_CustomList(CustomCQ subQuery) { + if (_id_NotInScopeSubQuery_CustomListMap == null) { + _id_NotInScopeSubQuery_CustomListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_CustomListMap.size() + 1); + _id_NotInScopeSubQuery_CustomListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_CustomList." + key; + } + + protected Map _id_NotInScopeSubQuery_PostalAsOneMap; + + public Map getId_NotInScopeSubQuery_PostalAsOne() { + return _id_NotInScopeSubQuery_PostalAsOneMap; + } + + public String keepId_NotInScopeSubQuery_PostalAsOne(PostalCQ subQuery) { + if (_id_NotInScopeSubQuery_PostalAsOneMap == null) { + _id_NotInScopeSubQuery_PostalAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_PostalAsOneMap.size() + 1); + _id_NotInScopeSubQuery_PostalAsOneMap.put(key, subQuery); + return "id_NotInScopeSubQuery_PostalAsOne." + key; + } + + protected Map _id_ExistsSubQuery_ContactListMap; + + public Map getId_ExistsSubQuery_ContactList() { + return _id_ExistsSubQuery_ContactListMap; + } + + public String keepId_ExistsSubQuery_ContactList(ContactCQ subQuery) { + if (_id_ExistsSubQuery_ContactListMap == null) { + _id_ExistsSubQuery_ContactListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_ContactListMap.size() + 1); + _id_ExistsSubQuery_ContactListMap.put(key, subQuery); + return "id_ExistsSubQuery_ContactList." + key; + } + + protected Map _id_ExistsSubQuery_CustomListMap; + + public Map getId_ExistsSubQuery_CustomList() { + return _id_ExistsSubQuery_CustomListMap; + } + + public String keepId_ExistsSubQuery_CustomList(CustomCQ subQuery) { + if (_id_ExistsSubQuery_CustomListMap == null) { + _id_ExistsSubQuery_CustomListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_CustomListMap.size() + 1); + _id_ExistsSubQuery_CustomListMap.put(key, subQuery); + return "id_ExistsSubQuery_CustomList." + key; + } + + protected Map _id_ExistsSubQuery_PostalAsOneMap; + + public Map getId_ExistsSubQuery_PostalAsOne() { + return _id_ExistsSubQuery_PostalAsOneMap; + } + + public String keepId_ExistsSubQuery_PostalAsOne(PostalCQ subQuery) { + if (_id_ExistsSubQuery_PostalAsOneMap == null) { + _id_ExistsSubQuery_PostalAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_PostalAsOneMap.size() + 1); + _id_ExistsSubQuery_PostalAsOneMap.put(key, subQuery); + return "id_ExistsSubQuery_PostalAsOne." + key; + } + + protected Map _id_NotExistsSubQuery_ContactListMap; + + public Map getId_NotExistsSubQuery_ContactList() { + return _id_NotExistsSubQuery_ContactListMap; + } + + public String keepId_NotExistsSubQuery_ContactList(ContactCQ subQuery) { + if (_id_NotExistsSubQuery_ContactListMap == null) { + _id_NotExistsSubQuery_ContactListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_ContactListMap.size() + 1); + _id_NotExistsSubQuery_ContactListMap.put(key, subQuery); + return "id_NotExistsSubQuery_ContactList." + key; + } + + protected Map _id_NotExistsSubQuery_CustomListMap; + + public Map getId_NotExistsSubQuery_CustomList() { + return _id_NotExistsSubQuery_CustomListMap; + } + + public String keepId_NotExistsSubQuery_CustomList(CustomCQ subQuery) { + if (_id_NotExistsSubQuery_CustomListMap == null) { + _id_NotExistsSubQuery_CustomListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_CustomListMap.size() + 1); + _id_NotExistsSubQuery_CustomListMap.put(key, subQuery); + return "id_NotExistsSubQuery_CustomList." + key; + } + + protected Map _id_NotExistsSubQuery_PostalAsOneMap; + + public Map getId_NotExistsSubQuery_PostalAsOne() { + return _id_NotExistsSubQuery_PostalAsOneMap; + } + + public String keepId_NotExistsSubQuery_PostalAsOne(PostalCQ subQuery) { + if (_id_NotExistsSubQuery_PostalAsOneMap == null) { + _id_NotExistsSubQuery_PostalAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_PostalAsOneMap.size() + 1); + _id_NotExistsSubQuery_PostalAsOneMap.put(key, subQuery); + return "id_NotExistsSubQuery_PostalAsOne." + key; + } + + protected Map _id_DeriveSubQuery_ContactListMap; + + public Map getId_DeriveSubQuery_ContactList() { + return _id_DeriveSubQuery_ContactListMap; + } + + public String keepId_DeriveSubQuery_ContactList(ContactCQ subQuery) { + if (_id_DeriveSubQuery_ContactListMap == null) { + _id_DeriveSubQuery_ContactListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_ContactListMap.size() + 1); + _id_DeriveSubQuery_ContactListMap.put(key, subQuery); + return "id_DeriveSubQuery_ContactList." + key; + } + + protected Map _id_DeriveSubQuery_CustomListMap; + + public Map getId_DeriveSubQuery_CustomList() { + return _id_DeriveSubQuery_CustomListMap; + } + + public String keepId_DeriveSubQuery_CustomList(CustomCQ subQuery) { + if (_id_DeriveSubQuery_CustomListMap == null) { + _id_DeriveSubQuery_CustomListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_CustomListMap.size() + 1); + _id_DeriveSubQuery_CustomListMap.put(key, subQuery); + return "id_DeriveSubQuery_CustomList." + key; + } + + public BsPersonCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsPersonCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsPersonCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsPersonCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsPersonCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsPersonCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsPersonCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsPersonCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsPersonCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsPersonCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsPersonCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsPersonCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsPersonCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsPersonCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _namePrefix; + + public ConditionValue getNamePrefix() { + if (_namePrefix == null) { + _namePrefix = new ConditionValue(); + } + return _namePrefix; + } + + protected ConditionValue getCValueNamePrefix() { + return getNamePrefix(); + } + + public BsPersonCQ addOrderBy_NamePrefix_Asc() { + regOBA("NAME_PREFIX"); + return this; + } + + public BsPersonCQ addOrderBy_NamePrefix_Desc() { + regOBD("NAME_PREFIX"); + return this; + } + + protected ConditionValue _nameSuffix; + + public ConditionValue getNameSuffix() { + if (_nameSuffix == null) { + _nameSuffix = new ConditionValue(); + } + return _nameSuffix; + } + + protected ConditionValue getCValueNameSuffix() { + return getNameSuffix(); + } + + public BsPersonCQ addOrderBy_NameSuffix_Asc() { + regOBA("NAME_SUFFIX"); + return this; + } + + public BsPersonCQ addOrderBy_NameSuffix_Desc() { + regOBD("NAME_SUFFIX"); + return this; + } + + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsPersonCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsPersonCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _jobTitle; + + public ConditionValue getJobTitle() { + if (_jobTitle == null) { + _jobTitle = new ConditionValue(); + } + return _jobTitle; + } + + protected ConditionValue getCValueJobTitle() { + return getJobTitle(); + } + + public BsPersonCQ addOrderBy_JobTitle_Asc() { + regOBA("JOB_TITLE"); + return this; + } + + public BsPersonCQ addOrderBy_JobTitle_Desc() { + regOBD("JOB_TITLE"); + return this; + } + + protected ConditionValue _isPublic; + + public ConditionValue getIsPublic() { + if (_isPublic == null) { + _isPublic = new ConditionValue(); + } + return _isPublic; + } + + protected ConditionValue getCValueIsPublic() { + return getIsPublic(); + } + + public BsPersonCQ addOrderBy_IsPublic_Asc() { + regOBA("IS_PUBLIC"); + return this; + } + + public BsPersonCQ addOrderBy_IsPublic_Desc() { + regOBD("IS_PUBLIC"); + return this; + } + + protected ConditionValue _companyId; + + public ConditionValue getCompanyId() { + if (_companyId == null) { + _companyId = new ConditionValue(); + } + return _companyId; + } + + protected ConditionValue getCValueCompanyId() { + return getCompanyId(); + } + + protected Map _companyId_InScopeSubQuery_CompanyMap; + + public Map getCompanyId_InScopeSubQuery_Company() { + return _companyId_InScopeSubQuery_CompanyMap; + } + + public String keepCompanyId_InScopeSubQuery_Company(CompanyCQ subQuery) { + if (_companyId_InScopeSubQuery_CompanyMap == null) { + _companyId_InScopeSubQuery_CompanyMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_companyId_InScopeSubQuery_CompanyMap.size() + 1); + _companyId_InScopeSubQuery_CompanyMap.put(key, subQuery); + return "companyId_InScopeSubQuery_Company." + key; + } + + public BsPersonCQ addOrderBy_CompanyId_Asc() { + regOBA("COMPANY_ID"); + return this; + } + + public BsPersonCQ addOrderBy_CompanyId_Desc() { + regOBD("COMPANY_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsPersonCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsPersonCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsPersonCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsPersonCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsPersonCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsPersonCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsPersonCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsPersonCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsPersonCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsPersonCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsPersonCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsPersonCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsPersonCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsPersonCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsPersonCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsPersonCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + PersonCQ baseQuery = (PersonCQ) baseQueryAsSuper; + PersonCQ unionQuery = (PersonCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryCompany()) { + unionQuery.queryCompany().reflectRelationOnUnionQuery( + baseQuery.queryCompany(), unionQuery.queryCompany()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + if (baseQuery.hasConditionQueryPostalAsOne()) { + unionQuery.queryPostalAsOne() + .reflectRelationOnUnionQuery(baseQuery.queryPostalAsOne(), + unionQuery.queryPostalAsOne()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public CompanyCQ queryCompany() { + return getConditionQueryCompany(); + } + + protected CompanyCQ _conditionQueryCompany; + + public CompanyCQ getConditionQueryCompany() { + if (_conditionQueryCompany == null) { + _conditionQueryCompany = createQueryCompany(); + setupOuterJoin_Company(); + } + return _conditionQueryCompany; + } + + protected void setupOuterJoin_Company() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("COMPANY_ID"), + getConditionQueryCompany().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryCompany(), joinOnMap); + } + + protected CompanyCQ createQueryCompany() { + String nrp = resolveNextRelationPath("PERSON", "company"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + CompanyCQ cq = new CompanyCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("company"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryCompany() { + return _conditionQueryCompany != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("PERSON", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + public PostalCQ queryPostalAsOne() { + return getConditionQueryPostalAsOne(); + } + + protected PostalCQ _conditionQueryPostalAsOne; + + public PostalCQ getConditionQueryPostalAsOne() { + if (_conditionQueryPostalAsOne == null) { + _conditionQueryPostalAsOne = createQueryPostalAsOne(); + setupOuterJoin_PostalAsOne(); + } + return _conditionQueryPostalAsOne; + } + + protected void setupOuterJoin_PostalAsOne() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), getConditionQueryPostalAsOne() + .getRealColumnName("PERSON_ID")); + registerOuterJoin(getConditionQueryPostalAsOne(), joinOnMap); + } + + protected PostalCQ createQueryPostalAsOne() { + String nrp = resolveNextRelationPath("PERSON", "postalAsOne"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + PostalCQ cq = new PostalCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("postalAsOne"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryPostalAsOne() { + return _conditionQueryPostalAsOne != null; + } + + protected String getConditionQueryClassNameInternally() { + return PersonCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPersonCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPostalCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPostalCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPostalCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,327 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.PostalCIQ; + +/** + * The base condition-query of POSTAL. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsPostalCQ extends AbstractBsPostalCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected PostalCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsPostalCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from POSTAL) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public PostalCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new PostalCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * POSTAL on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public PostalCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + PostalCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _personId; + + public ConditionValue getPersonId() { + if (_personId == null) { + _personId = new ConditionValue(); + } + return _personId; + } + + protected ConditionValue getCValuePersonId() { + return getPersonId(); + } + + protected Map _personId_InScopeSubQuery_PersonMap; + + public Map getPersonId_InScopeSubQuery_Person() { + return _personId_InScopeSubQuery_PersonMap; + } + + public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery) { + if (_personId_InScopeSubQuery_PersonMap == null) { + _personId_InScopeSubQuery_PersonMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_personId_InScopeSubQuery_PersonMap.size() + 1); + _personId_InScopeSubQuery_PersonMap.put(key, subQuery); + return "personId_InScopeSubQuery_Person." + key; + } + + public BsPostalCQ addOrderBy_PersonId_Asc() { + regOBA("PERSON_ID"); + return this; + } + + public BsPostalCQ addOrderBy_PersonId_Desc() { + regOBD("PERSON_ID"); + return this; + } + + protected ConditionValue _building; + + public ConditionValue getBuilding() { + if (_building == null) { + _building = new ConditionValue(); + } + return _building; + } + + protected ConditionValue getCValueBuilding() { + return getBuilding(); + } + + public BsPostalCQ addOrderBy_Building_Asc() { + regOBA("BUILDING"); + return this; + } + + public BsPostalCQ addOrderBy_Building_Desc() { + regOBD("BUILDING"); + return this; + } + + protected ConditionValue _street; + + public ConditionValue getStreet() { + if (_street == null) { + _street = new ConditionValue(); + } + return _street; + } + + protected ConditionValue getCValueStreet() { + return getStreet(); + } + + public BsPostalCQ addOrderBy_Street_Asc() { + regOBA("STREET"); + return this; + } + + public BsPostalCQ addOrderBy_Street_Desc() { + regOBD("STREET"); + return this; + } + + protected ConditionValue _city; + + public ConditionValue getCity() { + if (_city == null) { + _city = new ConditionValue(); + } + return _city; + } + + protected ConditionValue getCValueCity() { + return getCity(); + } + + public BsPostalCQ addOrderBy_City_Asc() { + regOBA("CITY"); + return this; + } + + public BsPostalCQ addOrderBy_City_Desc() { + regOBD("CITY"); + return this; + } + + protected ConditionValue _state; + + public ConditionValue getState() { + if (_state == null) { + _state = new ConditionValue(); + } + return _state; + } + + protected ConditionValue getCValueState() { + return getState(); + } + + public BsPostalCQ addOrderBy_State_Asc() { + regOBA("STATE"); + return this; + } + + public BsPostalCQ addOrderBy_State_Desc() { + regOBD("STATE"); + return this; + } + + protected ConditionValue _postalCode; + + public ConditionValue getPostalCode() { + if (_postalCode == null) { + _postalCode = new ConditionValue(); + } + return _postalCode; + } + + protected ConditionValue getCValuePostalCode() { + return getPostalCode(); + } + + public BsPostalCQ addOrderBy_PostalCode_Asc() { + regOBA("POSTAL_CODE"); + return this; + } + + public BsPostalCQ addOrderBy_PostalCode_Desc() { + regOBD("POSTAL_CODE"); + return this; + } + + protected ConditionValue _country; + + public ConditionValue getCountry() { + if (_country == null) { + _country = new ConditionValue(); + } + return _country; + } + + protected ConditionValue getCValueCountry() { + return getCountry(); + } + + public BsPostalCQ addOrderBy_Country_Asc() { + regOBA("COUNTRY"); + return this; + } + + public BsPostalCQ addOrderBy_Country_Desc() { + regOBD("COUNTRY"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsPostalCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsPostalCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + PostalCQ baseQuery = (PostalCQ) baseQueryAsSuper; + PostalCQ unionQuery = (PostalCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryPerson()) { + unionQuery.queryPerson().reflectRelationOnUnionQuery( + baseQuery.queryPerson(), unionQuery.queryPerson()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public PersonCQ queryPerson() { + return getConditionQueryPerson(); + } + + protected PersonCQ _conditionQueryPerson; + + public PersonCQ getConditionQueryPerson() { + if (_conditionQueryPerson == null) { + _conditionQueryPerson = createQueryPerson(); + setupOuterJoin_Person(); + } + return _conditionQueryPerson; + } + + protected void setupOuterJoin_Person() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("PERSON_ID"), getConditionQueryPerson() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryPerson(), joinOnMap); + } + + protected PersonCQ createQueryPerson() { + String nrp = resolveNextRelationPath("POSTAL", "person"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + PersonCQ cq = new PersonCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("person"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryPerson() { + return _conditionQueryPerson != null; + } + + protected String getConditionQueryClassNameInternally() { + return PostalCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsPostalCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,574 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,291 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,970 @@ +package jp.sf.pal.addresslist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_CompanyListMap; + + public Map getUserId_InScopeSubQuery_CompanyList() { + return _userId_InScopeSubQuery_CompanyListMap; + } + + public String keepUserId_InScopeSubQuery_CompanyList(CompanyCQ subQuery) { + if (_userId_InScopeSubQuery_CompanyListMap == null) { + _userId_InScopeSubQuery_CompanyListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_CompanyListMap.size() + 1); + _userId_InScopeSubQuery_CompanyListMap.put(key, subQuery); + return "userId_InScopeSubQuery_CompanyList." + key; + } + + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_PersonListMap; + + public Map getUserId_InScopeSubQuery_PersonList() { + return _userId_InScopeSubQuery_PersonListMap; + } + + public String keepUserId_InScopeSubQuery_PersonList(PersonCQ subQuery) { + if (_userId_InScopeSubQuery_PersonListMap == null) { + _userId_InScopeSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_PersonListMap.size() + 1); + _userId_InScopeSubQuery_PersonListMap.put(key, subQuery); + return "userId_InScopeSubQuery_PersonList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_CompanyListMap; + + public Map getUserId_NotInScopeSubQuery_CompanyList() { + return _userId_NotInScopeSubQuery_CompanyListMap; + } + + public String keepUserId_NotInScopeSubQuery_CompanyList(CompanyCQ subQuery) { + if (_userId_NotInScopeSubQuery_CompanyListMap == null) { + _userId_NotInScopeSubQuery_CompanyListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_CompanyListMap.size() + 1); + _userId_NotInScopeSubQuery_CompanyListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_CompanyList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_PersonListMap; + + public Map getUserId_NotInScopeSubQuery_PersonList() { + return _userId_NotInScopeSubQuery_PersonListMap; + } + + public String keepUserId_NotInScopeSubQuery_PersonList(PersonCQ subQuery) { + if (_userId_NotInScopeSubQuery_PersonListMap == null) { + _userId_NotInScopeSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_PersonListMap.size() + 1); + _userId_NotInScopeSubQuery_PersonListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_PersonList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_CompanyListMap; + + public Map getUserId_ExistsSubQuery_CompanyList() { + return _userId_ExistsSubQuery_CompanyListMap; + } + + public String keepUserId_ExistsSubQuery_CompanyList(CompanyCQ subQuery) { + if (_userId_ExistsSubQuery_CompanyListMap == null) { + _userId_ExistsSubQuery_CompanyListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_CompanyListMap.size() + 1); + _userId_ExistsSubQuery_CompanyListMap.put(key, subQuery); + return "userId_ExistsSubQuery_CompanyList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_PersonListMap; + + public Map getUserId_ExistsSubQuery_PersonList() { + return _userId_ExistsSubQuery_PersonListMap; + } + + public String keepUserId_ExistsSubQuery_PersonList(PersonCQ subQuery) { + if (_userId_ExistsSubQuery_PersonListMap == null) { + _userId_ExistsSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_PersonListMap.size() + 1); + _userId_ExistsSubQuery_PersonListMap.put(key, subQuery); + return "userId_ExistsSubQuery_PersonList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_CompanyListMap; + + public Map getUserId_NotExistsSubQuery_CompanyList() { + return _userId_NotExistsSubQuery_CompanyListMap; + } + + public String keepUserId_NotExistsSubQuery_CompanyList(CompanyCQ subQuery) { + if (_userId_NotExistsSubQuery_CompanyListMap == null) { + _userId_NotExistsSubQuery_CompanyListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_CompanyListMap.size() + 1); + _userId_NotExistsSubQuery_CompanyListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_CompanyList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_PersonListMap; + + public Map getUserId_NotExistsSubQuery_PersonList() { + return _userId_NotExistsSubQuery_PersonListMap; + } + + public String keepUserId_NotExistsSubQuery_PersonList(PersonCQ subQuery) { + if (_userId_NotExistsSubQuery_PersonListMap == null) { + _userId_NotExistsSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_PersonListMap.size() + 1); + _userId_NotExistsSubQuery_PersonListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_PersonList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_CompanyListMap; + + public Map getUserId_DeriveSubQuery_CompanyList() { + return _userId_DeriveSubQuery_CompanyListMap; + } + + public String keepUserId_DeriveSubQuery_CompanyList(CompanyCQ subQuery) { + if (_userId_DeriveSubQuery_CompanyListMap == null) { + _userId_DeriveSubQuery_CompanyListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_CompanyListMap.size() + 1); + _userId_DeriveSubQuery_CompanyListMap.put(key, subQuery); + return "userId_DeriveSubQuery_CompanyList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_PersonListMap; + + public Map getUserId_DeriveSubQuery_PersonList() { + return _userId_DeriveSubQuery_PersonListMap; + } + + public String keepUserId_DeriveSubQuery_PersonList(PersonCQ subQuery) { + if (_userId_DeriveSubQuery_PersonListMap == null) { + _userId_DeriveSubQuery_PersonListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_PersonListMap.size() + 1); + _userId_DeriveSubQuery_PersonListMap.put(key, subQuery); + return "userId_DeriveSubQuery_PersonList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CompanyCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CompanyCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CompanyCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,221 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsCompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsCompanyCQ; + +/** + * The condition-inline-query of COMPANY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CompanyCIQ extends AbstractBsCompanyCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsCompanyCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public CompanyCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsCompanyCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_PersonList(PersonCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_PersonList(subQuery); + } + + public String keepId_NotInScopeSubQuery_PersonList(PersonCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_PersonList(subQuery); + } + + public String keepId_ExistsSubQuery_PersonList(PersonCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_PersonList(PersonCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_PersonList(PersonCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueNameDesc() { + return _myCQ.getNameDesc(); + } + + protected ConditionValue getCValueDepartment() { + return _myCQ.getDepartment(); + } + + protected ConditionValue getCValueBuilding() { + return _myCQ.getBuilding(); + } + + protected ConditionValue getCValueStreet() { + return _myCQ.getStreet(); + } + + protected ConditionValue getCValueCity() { + return _myCQ.getCity(); + } + + protected ConditionValue getCValueState() { + return _myCQ.getState(); + } + + protected ConditionValue getCValuePostalCode() { + return _myCQ.getPostalCode(); + } + + protected ConditionValue getCValueCountry() { + return _myCQ.getCountry(); + } + + protected ConditionValue getCValueTelephone1() { + return _myCQ.getTelephone1(); + } + + protected ConditionValue getCValueTelephone2() { + return _myCQ.getTelephone2(); + } + + protected ConditionValue getCValueFax1() { + return _myCQ.getFax1(); + } + + protected ConditionValue getCValueFax2() { + return _myCQ.getFax2(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueIsPublic() { + return _myCQ.getIsPublic(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return CompanyCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CompanyCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/ContactCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/ContactCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/ContactCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,117 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsContactCQ; + +/** + * The condition-inline-query of CONTACT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ContactCIQ extends AbstractBsContactCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsContactCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public ContactCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsContactCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValuePersonId() { + return _myCQ.getPersonId(); + } + + public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery) { + return _myCQ.keepPersonId_InScopeSubQuery_Person(subQuery); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueValue() { + return _myCQ.getValue(); + } + + protected String getConditionQueryClassNameInternally() { + return ContactCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/ContactCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CustomCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CustomCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CustomCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,117 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsCustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsCustomCQ; + +/** + * The condition-inline-query of CUSTOM. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CustomCIQ extends AbstractBsCustomCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsCustomCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public CustomCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsCustomCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValuePersonId() { + return _myCQ.getPersonId(); + } + + public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery) { + return _myCQ.keepPersonId_InScopeSubQuery_Person(subQuery); + } + + protected ConditionValue getCValueValue() { + return _myCQ.getValue(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected String getConditionQueryClassNameInternally() { + return CustomCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/CustomCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,202 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,118 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PersonCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PersonCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PersonCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,253 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsPersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsPersonCQ; + +/** + * The condition-inline-query of PERSON. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PersonCIQ extends AbstractBsPersonCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsPersonCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public PersonCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsPersonCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_ContactList(ContactCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_ContactList(subQuery); + } + + public String keepId_InScopeSubQuery_CustomList(CustomCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_CustomList(subQuery); + } + + public String keepId_InScopeSubQuery_PostalAsOne(PostalCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_PostalAsOne(subQuery); + } + + public String keepId_NotInScopeSubQuery_ContactList(ContactCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_ContactList(subQuery); + } + + public String keepId_NotInScopeSubQuery_CustomList(CustomCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_CustomList(subQuery); + } + + public String keepId_NotInScopeSubQuery_PostalAsOne(PostalCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_PostalAsOne(subQuery); + } + + public String keepId_ExistsSubQuery_ContactList(ContactCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_ExistsSubQuery_CustomList(CustomCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_ExistsSubQuery_PostalAsOne(PostalCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_ContactList(ContactCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_CustomList(CustomCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_PostalAsOne(PostalCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_ContactList(ContactCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_CustomList(CustomCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueNamePrefix() { + return _myCQ.getNamePrefix(); + } + + protected ConditionValue getCValueNameSuffix() { + return _myCQ.getNameSuffix(); + } + + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueJobTitle() { + return _myCQ.getJobTitle(); + } + + protected ConditionValue getCValueIsPublic() { + return _myCQ.getIsPublic(); + } + + protected ConditionValue getCValueCompanyId() { + return _myCQ.getCompanyId(); + } + + public String keepCompanyId_InScopeSubQuery_Company(CompanyCQ subQuery) { + return _myCQ.keepCompanyId_InScopeSubQuery_Company(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return PersonCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PersonCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PostalCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PostalCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PostalCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,129 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsPostalCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsPostalCQ; + +/** + * The condition-inline-query of POSTAL. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PostalCIQ extends AbstractBsPostalCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsPostalCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public PostalCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsPostalCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValuePersonId() { + return _myCQ.getPersonId(); + } + + public String keepPersonId_InScopeSubQuery_Person(PersonCQ subQuery) { + return _myCQ.keepPersonId_InScopeSubQuery_Person(subQuery); + } + + protected ConditionValue getCValueBuilding() { + return _myCQ.getBuilding(); + } + + protected ConditionValue getCValueStreet() { + return _myCQ.getStreet(); + } + + protected ConditionValue getCValueCity() { + return _myCQ.getCity(); + } + + protected ConditionValue getCValueState() { + return _myCQ.getState(); + } + + protected ConditionValue getCValuePostalCode() { + return _myCQ.getPostalCode(); + } + + protected ConditionValue getCValueCountry() { + return _myCQ.getCountry(); + } + + protected String getConditionQueryClassNameInternally() { + return PostalCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/PostalCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,201 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,118 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,284 @@ +package jp.sf.pal.addresslist.db.cbean.cq.ciq; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.addresslist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.addresslist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.addresslist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.addresslist.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_CompanyList(CompanyCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_CompanyList(subQuery); + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_PersonList(PersonCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_PersonList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_CompanyList(CompanyCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_CompanyList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_PersonList(PersonCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_PersonList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_CompanyList(CompanyCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_PersonList(PersonCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_CompanyList(CompanyCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_PersonList(PersonCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_CompanyList(CompanyCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_PersonList(PersonCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CompanyNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CompanyNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CompanyNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,41 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.CompanyCQ; + +/** + * The nest-select-setupper of COMPANY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CompanyNss { + + protected CompanyCQ _query; + + public CompanyNss(CompanyCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public UserInfoNss withUserInfo() { + _query.doNss(new CompanyCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CompanyNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/ContactNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/ContactNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/ContactNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,41 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.ContactCQ; + +/** + * The nest-select-setupper of CONTACT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ContactNss { + + protected ContactCQ _query; + + public ContactNss(ContactCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public PersonNss withPerson() { + _query.doNss(new ContactCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryPerson(); + } + }); + return new PersonNss(_query.queryPerson()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/ContactNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CustomNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CustomNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CustomNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,41 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.CustomCQ; + +/** + * The nest-select-setupper of CUSTOM. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CustomNss { + + protected CustomCQ _query; + + public CustomNss(CustomCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public PersonNss withPerson() { + _query.doNss(new CustomCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryPerson(); + } + }); + return new PersonNss(_query.queryPerson()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/CustomNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupInfoNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupInfoNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupInfoNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,32 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupMappingNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupMappingNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupMappingNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,50 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PersonNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PersonNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PersonNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,58 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.PersonCQ; + +/** + * The nest-select-setupper of PERSON. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PersonNss { + + protected PersonCQ _query; + + public PersonNss(PersonCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public CompanyNss withCompany() { + _query.doNss(new PersonCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryCompany(); + } + }); + return new CompanyNss(_query.queryCompany()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new PersonCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== + public PostalNss withPostalAsOne() { + _query.doNss(new PersonCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryPostalAsOne(); + } + }); + return new PostalNss(_query.queryPostalAsOne()); + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PersonNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PostalNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PostalNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PostalNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,41 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.PostalCQ; + +/** + * The nest-select-setupper of POSTAL. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PostalNss { + + protected PostalCQ _query; + + public PostalNss(PostalCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public PersonNss withPerson() { + _query.doNss(new PostalCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryPerson(); + } + }); + return new PersonNss(_query.queryPerson()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/PostalNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleInfoNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleInfoNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleInfoNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,32 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleMappingNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleMappingNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleMappingNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,50 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/UserInfoNss.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/UserInfoNss.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/UserInfoNss.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,50 @@ +package jp.sf.pal.addresslist.db.cbean.nss; + +import jp.sf.pal.addresslist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.addresslist.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CompanyBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CompanyBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CompanyBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of COMPANY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CompanyBhv extends jp.sf.pal.addresslist.db.bsbhv.BsCompanyBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CompanyBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/ContactBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/ContactBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/ContactBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of CONTACT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ContactBhv extends jp.sf.pal.addresslist.db.bsbhv.BsContactBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/ContactBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CustomBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CustomBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CustomBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of CUSTOM. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CustomBhv extends jp.sf.pal.addresslist.db.bsbhv.BsCustomBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/CustomBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupInfoBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupInfoBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.addresslist.db.bsbhv.BsGroupInfoBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupMappingBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupMappingBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupMappingBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.addresslist.db.bsbhv.BsGroupMappingBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PersonBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PersonBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PersonBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of PERSON. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PersonBhv extends jp.sf.pal.addresslist.db.bsbhv.BsPersonBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PersonBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PostalBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PostalBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PostalBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of POSTAL. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class PostalBhv extends jp.sf.pal.addresslist.db.bsbhv.BsPostalBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/PostalBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleInfoBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleInfoBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.addresslist.db.bsbhv.BsRoleInfoBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleMappingBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleMappingBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleMappingBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends + jp.sf.pal.addresslist.db.bsbhv.BsRoleMappingBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/UserInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/UserInfoBhv.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/UserInfoBhv.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exbhv; + +/** + * The behavior of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.addresslist.db.bsbhv.BsUserInfoBhv { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CompanyDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CompanyDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CompanyDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of COMPANY.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface CompanyDao extends jp.sf.pal.addresslist.db.bsdao.BsCompanyDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CompanyDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/ContactDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/ContactDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/ContactDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of CONTACT.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface ContactDao extends jp.sf.pal.addresslist.db.bsdao.BsContactDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/ContactDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CustomDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CustomDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CustomDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of CUSTOM.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface CustomDao extends jp.sf.pal.addresslist.db.bsdao.BsCustomDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/CustomDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupInfoDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupInfoDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupInfoDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of GROUP_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends + jp.sf.pal.addresslist.db.bsdao.BsGroupInfoDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupMappingDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupMappingDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupMappingDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.addresslist.db.bsdao.BsGroupMappingDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PersonDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PersonDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PersonDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of PERSON.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface PersonDao extends jp.sf.pal.addresslist.db.bsdao.BsPersonDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PersonDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PostalDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PostalDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PostalDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of POSTAL.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface PostalDao extends jp.sf.pal.addresslist.db.bsdao.BsPostalDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/PostalDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleInfoDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleInfoDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleInfoDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of ROLE_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends + jp.sf.pal.addresslist.db.bsdao.BsRoleInfoDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleMappingDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleMappingDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleMappingDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.addresslist.db.bsdao.BsRoleMappingDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/UserInfoDao.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/UserInfoDao.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/UserInfoDao.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ +package jp.sf.pal.addresslist.db.exdao; + +/** + * The dao interface of USER_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends + jp.sf.pal.addresslist.db.bsdao.BsUserInfoDao { +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Company.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Company.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Company.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of COMPANY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Company extends jp.sf.pal.addresslist.db.bsentity.BsCompany { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Company.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Contact.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Contact.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Contact.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of CONTACT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Contact extends jp.sf.pal.addresslist.db.bsentity.BsContact { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Contact.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Custom.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Custom.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Custom.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of CUSTOM. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Custom extends jp.sf.pal.addresslist.db.bsentity.BsCustom { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Custom.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.addresslist.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupMapping.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupMapping.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupMapping.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,18 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends + jp.sf.pal.addresslist.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,408 @@ +package jp.sf.pal.addresslist.db.exentity; + +import java.util.ArrayList; +import java.util.List; + +/** + * The entity of PERSON. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Person extends jp.sf.pal.addresslist.db.bsentity.BsPerson { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + private Contact homeTelephoneContact; + + public String getHomeTelephone() { + if (homeTelephoneContact != null) { + return homeTelephoneContact.getValue(); + } + return null; + } + + public void setHomeTelephone(String value) { + if (homeTelephoneContact == null) { + homeTelephoneContact = new Contact(); + homeTelephoneContact.setName("homeTelephone"); + } + homeTelephoneContact.setValue(value); + } + + private Contact homeCellphoneContact; + + public String getHomeCellphone() { + if (homeCellphoneContact != null) { + return homeCellphoneContact.getValue(); + } + return null; + } + + public void setHomeCellphone(String value) { + if (homeCellphoneContact == null) { + homeCellphoneContact = new Contact(); + homeCellphoneContact.setName("homeCellphone"); + } + homeCellphoneContact.setValue(value); + } + + private Contact homeEmailPCContact; + + public String getHomeEmailPC() { + if (homeEmailPCContact != null) { + return homeEmailPCContact.getValue(); + } + return null; + } + + public void setHomeEmailPC(String value) { + if (homeEmailPCContact == null) { + homeEmailPCContact = new Contact(); + homeEmailPCContact.setName("homeEmailPC"); + } + homeEmailPCContact.setValue(value); + } + + private Contact homeEmailMobileContact; + + public String getHomeEmailMobile() { + if (homeEmailMobileContact != null) { + return homeEmailMobileContact.getValue(); + } + return null; + } + + public void setHomeEmailMobile(String value) { + if (homeEmailMobileContact == null) { + homeEmailMobileContact = new Contact(); + homeEmailMobileContact.setName("homeEmailMobile"); + } + homeEmailMobileContact.setValue(value); + } + + private Contact homeFaxContact; + + public String getHomeFax() { + if (homeFaxContact != null) { + return homeFaxContact.getValue(); + } + return null; + } + + public void setHomeFax(String value) { + if (homeFaxContact == null) { + homeFaxContact = new Contact(); + homeFaxContact.setName("homeFax"); + } + homeFaxContact.setValue(value); + } + + private Contact businessTelephoneContact; + + public String getBusinessTelephone() { + if (businessTelephoneContact != null) { + return businessTelephoneContact.getValue(); + } + return null; + } + + public void setBusinessTelephone(String value) { + if (businessTelephoneContact == null) { + businessTelephoneContact = new Contact(); + businessTelephoneContact.setName("businessTelephone"); + } + businessTelephoneContact.setValue(value); + } + + private Contact businessCellphoneContact; + + public String getBusinessCellphone() { + if (businessCellphoneContact != null) { + return businessCellphoneContact.getValue(); + } + return null; + } + + public void setBusinessCellphone(String value) { + if (businessCellphoneContact == null) { + businessCellphoneContact = new Contact(); + businessCellphoneContact.setName("businessCellphone"); + } + businessCellphoneContact.setValue(value); + } + + private Contact businessEmailPCContact; + + public String getBusinessEmailPC() { + if (businessEmailPCContact != null) { + return businessEmailPCContact.getValue(); + } + return null; + } + + public void setBusinessEmailPC(String value) { + if (businessEmailPCContact == null) { + businessEmailPCContact = new Contact(); + businessEmailPCContact.setName("businessEmailPC"); + } + businessEmailPCContact.setValue(value); + } + + private Contact businessEmailMobileContact; + + public String getBusinessEmailMobile() { + if (businessEmailMobileContact != null) { + return businessEmailMobileContact.getValue(); + } + return null; + } + + public void setBusinessEmailMobile(String value) { + if (businessEmailMobileContact == null) { + businessEmailMobileContact = new Contact(); + businessEmailMobileContact.setName("businessEmailMobile"); + } + businessEmailMobileContact.setValue(value); + } + + private Contact businessFaxContact; + + public String getBusinessFax() { + if (businessFaxContact != null) { + return businessFaxContact.getValue(); + } + return null; + } + + public void setBusinessFax(String value) { + if (businessFaxContact == null) { + businessFaxContact = new Contact(); + businessFaxContact.setName("businessFax"); + } + businessFaxContact.setValue(value); + } + + public String getBuilding() { + if (getPostalAsOne() != null) { + return getPostalAsOne().getBuilding(); + } + return null; + } + + public void setBuilding(String value) { + if (getPostalAsOne() == null) { + setPostalAsOne(new Postal()); + } + getPostalAsOne().setBuilding(value); + } + + public String getStreet() { + if (getPostalAsOne() != null) { + return getPostalAsOne().getStreet(); + } + return null; + } + + public void setStreet(String value) { + if (getPostalAsOne() == null) { + setPostalAsOne(new Postal()); + } + getPostalAsOne().setStreet(value); + } + + public String getCity() { + if (getPostalAsOne() != null) { + return getPostalAsOne().getCity(); + } + return null; + } + + public void setCity(String value) { + if (getPostalAsOne() == null) { + setPostalAsOne(new Postal()); + } + getPostalAsOne().setCity(value); + } + + public String getState() { + if (getPostalAsOne() != null) { + return getPostalAsOne().getState(); + } + return null; + } + + public void setState(String value) { + if (getPostalAsOne() == null) { + setPostalAsOne(new Postal()); + } + getPostalAsOne().setState(value); + } + + public String getPostalCode() { + if (getPostalAsOne() != null) { + return getPostalAsOne().getPostalCode(); + } + return null; + } + + public void setPostalCode(String value) { + if (getPostalAsOne() == null) { + setPostalAsOne(new Postal()); + } + getPostalAsOne().setPostalCode(value); + } + + public String getCountry() { + if (getPostalAsOne() != null) { + return getPostalAsOne().getCountry(); + } + return null; + } + + public void setCountry(String value) { + if (getPostalAsOne() == null) { + setPostalAsOne(new Postal()); + } + getPostalAsOne().setCountry(value); + } + + private Custom custom1; + + public String getCustomData1() { + if (custom1 != null) { + return custom1.getValue(); + } + return null; + } + + public void setCustomData1(String value) { + if (custom1 == null) { + custom1 = new Custom(); + custom1.setSortOrder(1); + } + custom1.setValue(value); + } + + private Custom custom2; + + public String getCustomData2() { + if (custom2 != null) { + return custom2.getValue(); + } + return null; + } + + public void setCustomData2(String value) { + if (custom2 == null) { + custom2 = new Custom(); + custom2.setSortOrder(2); + } + custom2.setValue(value); + } + + private Custom custom3; + + public String getCustomData3() { + if (custom3 != null) { + return custom3.getValue(); + } + return null; + } + + public void setCustomData3(String value) { + if (custom3 == null) { + custom3 = new Custom(); + custom3.setSortOrder(3); + } + custom3.setValue(value); + } + + private Custom custom4; + + public String getCustomData4() { + if (custom4 != null) { + return custom4.getValue(); + } + return null; + } + + public void setCustomData4(String value) { + if (custom4 == null) { + custom4 = new Custom(); + custom4.setSortOrder(4); + } + custom4.setValue(value); + } + + public void setContactList(List contactList) { + super.setContactList(contactList); + for (Contact contact : contactList) { + if ("homeTelephone".equals(contact.getName())) { + homeTelephoneContact = contact; + } else if ("homeCellphone".equals(contact.getName())) { + homeCellphoneContact = contact; + } else if ("homeEmailPC".equals(contact.getName())) { + homeEmailPCContact = contact; + } else if ("homeEmailMobile".equals(contact.getName())) { + homeEmailMobileContact = contact; + } else if ("homeFax".equals(contact.getName())) { + homeFaxContact = contact; + } else if ("businessTelephone".equals(contact.getName())) { + businessTelephoneContact = contact; + } else if ("businessCellphone".equals(contact.getName())) { + businessCellphoneContact = contact; + } else if ("businessEmailPC".equals(contact.getName())) { + businessEmailPCContact = contact; + } else if ("businessEmailMobile".equals(contact.getName())) { + businessEmailMobileContact = contact; + } else if ("businessFax".equals(contact.getName())) { + businessFaxContact = contact; + } + } + } + + public List getNewContactList() { + List newContactList = new ArrayList(); + newContactList.add(homeTelephoneContact); + newContactList.add(homeCellphoneContact); + newContactList.add(homeEmailPCContact); + newContactList.add(homeEmailMobileContact); + newContactList.add(homeFaxContact); + newContactList.add(businessTelephoneContact); + newContactList.add(businessCellphoneContact); + newContactList.add(businessEmailPCContact); + newContactList.add(businessEmailMobileContact); + newContactList.add(businessFaxContact); + return newContactList; + } + + public void setCustomList(List customList) { + super.setCustomList(customList); + for (Custom custom : customList) { + if (custom.getSortOrder() == 1) { + custom1 = custom; + } else if (custom.getSortOrder() == 2) { + custom2 = custom; + } else if (custom.getSortOrder() == 3) { + custom3 = custom; + } else if (custom.getSortOrder() == 4) { + custom4 = custom; + } + } + } + + public List getNewCustomList() { + List newCustomList = new ArrayList(); + newCustomList.add(custom1); + newCustomList.add(custom2); + newCustomList.add(custom3); + newCustomList.add(custom4); + return newCustomList; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Postal.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Postal.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Postal.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of POSTAL. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Postal extends jp.sf.pal.addresslist.db.bsentity.BsPostal { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Postal.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.addresslist.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleMapping.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleMapping.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleMapping.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,18 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends + jp.sf.pal.addresslist.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,17 @@ +package jp.sf.pal.addresslist.db.exentity; + +/** + * The entity of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.addresslist.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,73 @@ +package jp.sf.pal.addresslist.dxo; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.form.user.CompanyForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface CompanyDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", userId : userId" // + + ", name : name" // + + ", nameDesc : nameDesc" // + + ", department : department" // + + ", building : building" // + + ", street : street" // + + ", city : city" // + + ", state : state" // + + ", postalCode : postalCode" // + + ", country : country" // + + ", telephone1 : telephone1" // + + ", telephone2 : telephone2" // + + ", fax1 : fax1" // + + ", fax2 : fax2" // + + ", url : url" // + + ", isPublic : isPublic" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromCompanyToForm(Company company, CompanyForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "name : name" // + + ", nameDesc : nameDesc" // + + ", department : department" // + + ", building : building" // + + ", street : street" // + + ", city : city" // + + ", state : state" // + + ", postalCode : postalCode" // + + ", country : country" // + + ", telephone1 : telephone1" // + + ", telephone2 : telephone2" // + + ", fax1 : fax1" // + + ", fax2 : fax2" // + + ", url : url" // + + ", isPublic : isPublic" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToCompany(CompanyForm form, Company company); + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,102 @@ +package jp.sf.pal.addresslist.dxo; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.form.user.PersonForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface PersonDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", familyName : familyName" // + + ", familyNameDesc : familyNameDesc" // + + ", givenName : givenName" // + + ", givenNameDesc : givenNameDesc" // + + ", middleName : middleName" // + + ", namePrefix : namePrefix" // + + ", nameSuffix : nameSuffix" // + + ", nickname : nickname" // + + ", jobTitle : jobTitle" // + + ", isPublic : isPublic" // + + ", homeTelephone : homeTelephone" // + + ", homeCellphone : homeCellphone" // + + ", homeEmailPC : homeEmailPC" // + + ", homeEmailMobile : homeEmailMobile" // + + ", homeFax : homeFax" // + + ", businessTelephone : businessTelephone" // + + ", businessCellphone : businessCellphone" // + + ", businessEmailPC : businessEmailPC" // + + ", businessEmailMobile : businessEmailMobile" // + + ", businessFax : businessFax" // + + ", postalCode : postalCode" // + + ", state : state" // + + ", city : city" // + + ", street : street" // + + ", building : building" // + + ", companyId : companyId" // + + ", customData1 : customData1" // + + ", customData2 : customData2" // + + ", customData3 : customData3" // + + ", customData4 : customData4" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromPersonToForm(Person person, PersonForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "familyName : familyName" // + + ", familyNameDesc : familyNameDesc" // + + ", givenName : givenName" // + + ", givenNameDesc : givenNameDesc" // + + ", middleName : middleName" // + + ", namePrefix : namePrefix" // + + ", nameSuffix : nameSuffix" // + + ", nickname : nickname" // + + ", jobTitle : jobTitle" // + + ", isPublic : isPublic" // + + ", homeTelephone : homeTelephone" // + + ", homeCellphone : homeCellphone" // + + ", homeEmailPC : homeEmailPC" // + + ", homeEmailMobile : homeEmailMobile" // + + ", homeFax : homeFax" // + + ", businessTelephone : businessTelephone" // + + ", businessCellphone : businessCellphone" // + + ", businessEmailPC : businessEmailPC" // + + ", businessEmailMobile : businessEmailMobile" // + + ", businessFax : businessFax" // + + ", postalCode : postalCode" // + + ", state : state" // + + ", city : city" // + + ", street : street" // + + ", building : building" // + + ", companyId : companyId" // + + ", customData1 : customData1" // + + ", customData2 : customData2" // + + ", customData3 : customData3" // + + ", customData4 : customData4" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToPerson(PersonForm form, Person person); + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/CompanyForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/CompanyForm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/CompanyForm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,120 @@ +package jp.sf.pal.addresslist.form.user; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CompanyForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 322481089019734947L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 200) + public String name; + + @Maxbytelength(maxbytelength = 200) + public String nameDesc; + + @Maxbytelength(maxbytelength = 200) + public String department; + + @Maxbytelength(maxbytelength = 200) + public String building; + + @Maxbytelength(maxbytelength = 200) + public String street; + + @Maxbytelength(maxbytelength = 100) + public String city; + + @Maxbytelength(maxbytelength = 100) + public String state; + + @Maxbytelength(maxbytelength = 30) + public String postalCode; + + @Maxbytelength(maxbytelength = 200) + public String country; + + @Maxbytelength(maxbytelength = 40) + public String telephone1; + + @Maxbytelength(maxbytelength = 40) + public String telephone2; + + @Maxbytelength(maxbytelength = 40) + public String fax1; + + @Maxbytelength(maxbytelength = 40) + public String fax2; + + @Maxbytelength(maxbytelength = 255) + public String url; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 1) + public String isPublic; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + userId = null; + name = null; + nameDesc = null; + department = null; + building = null; + street = null; + city = null; + state = null; + postalCode = null; + country = null; + telephone1 = null; + telephone2 = null; + fax1 = null; + fax2 = null; + url = null; + isPublic = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/CompanyForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,175 @@ +package jp.sf.pal.addresslist.form.user; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class PersonForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 3416220978746750608L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Maxbytelength(maxbytelength = 100) + public String familyName; + + @Maxbytelength(maxbytelength = 100) + public String familyNameDesc; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String givenName; + + @Maxbytelength(maxbytelength = 100) + public String givenNameDesc; + + @Maxbytelength(maxbytelength = 50) + public String middleName; + + @Maxbytelength(maxbytelength = 30) + public String namePrefix; + + @Maxbytelength(maxbytelength = 30) + public String nameSuffix; + + @Maxbytelength(maxbytelength = 100) + public String nickname; + + @Maxbytelength(maxbytelength = 50) + public String jobTitle; + + @Maxbytelength(maxbytelength = 1) + public String isPublic; + + @Maxbytelength(maxbytelength = 40) + public String homeTelephone; + + @Maxbytelength(maxbytelength = 40) + public String homeCellphone; + + @Maxbytelength(maxbytelength = 200) + public String homeEmailPC; + + @Maxbytelength(maxbytelength = 200) + public String homeEmailMobile; + + @Maxbytelength(maxbytelength = 40) + public String homeFax; + + @Maxbytelength(maxbytelength = 40) + public String businessTelephone; + + @Maxbytelength(maxbytelength = 40) + public String businessCellphone; + + @Maxbytelength(maxbytelength = 200) + public String businessEmailPC; + + @Maxbytelength(maxbytelength = 200) + public String businessEmailMobile; + + @Maxbytelength(maxbytelength = 40) + public String businessFax; + + @Maxbytelength(maxbytelength = 30) + public String postalCode; + + @Maxbytelength(maxbytelength = 100) + public String state; + + @Maxbytelength(maxbytelength = 100) + public String city; + + @Maxbytelength(maxbytelength = 200) + public String street; + + @Maxbytelength(maxbytelength = 200) + public String building; + + @LongType + public String companyId; + + @Maxbytelength(maxbytelength = 200) + public String customData1; + + @Maxbytelength(maxbytelength = 200) + public String customData2; + + @Maxbytelength(maxbytelength = 200) + public String customData3; + + @Maxbytelength(maxbytelength = 200) + public String customData4; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + familyName = null; + familyNameDesc = null; + givenName = null; + givenNameDesc = null; + middleName = null; + namePrefix = null; + nameSuffix = null; + nickname = null; + jobTitle = null; + isPublic = null; + homeTelephone = null; + homeCellphone = null; + homeEmailPC = null; + homeEmailMobile = null; + homeFax = null; + businessTelephone = null; + businessCellphone = null; + businessEmailPC = null; + businessEmailMobile = null; + businessFax = null; + postalCode = null; + state = null; + city = null; + street = null; + building = null; + companyId = null; + customData1 = null; + customData2 = null; + customData3 = null; + customData4 = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/CompanyPager.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/CompanyPager.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/CompanyPager.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ +package jp.sf.pal.addresslist.pager; + +import jp.sf.pal.addresslist.common.pager.DefaultPager; + +public class CompanyPager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + public CompanyPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/CompanyPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/PersonPager.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/PersonPager.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/PersonPager.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,32 @@ +package jp.sf.pal.addresslist.pager; + +import jp.sf.pal.addresslist.common.pager.DefaultPager; + +public class PersonPager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + private String userId; + + public PersonPager() { + + userId = null; + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/pager/PersonPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,158 @@ +package jp.sf.pal.addresslist.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.addresslist.common.dxo.PagerDxo; +import jp.sf.pal.addresslist.common.util.PagingResultBeanWrapper; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.cbean.CompanyCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exbhv.CompanyBhv; +import jp.sf.pal.addresslist.db.exbhv.UserInfoBhv; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.UserInfo; +import jp.sf.pal.addresslist.pager.CompanyPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class CompanyService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient CompanyBhv companyBhv; + + private transient UserInfoBhv userInfoBhv; + + private PagerDxo pagerDxo; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + + public List getCompanyList(CompanyPager companyPager, String userId) { + + HotdeployUtil.rebuildValue(companyPager); + + CompanyCB cb = new CompanyCB(); + + cb.fetchFirst(companyPager.getPageSize()); + cb.fetchPage(companyPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + + cb.query().addOrderBy_NameDesc_Asc(); + + PagingResultBean companyList = companyBhv.selectPage(cb); + + // update pager + pagerDxo + .convert(new PagingResultBeanWrapper(companyList), companyPager); + companyList.setPageRangeSize(5); + companyPager.setPageNumberList(companyList.pageRange() + .createPageNumberList()); + + return companyList; + } + + public List getCompanyList(String userId) { + + CompanyCB cb = new CompanyCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + cb.query().addOrderBy_NameDesc_Asc(); + + return companyBhv.selectList(cb); + } + + public Company getCompany(Long id, String userId) { + CompanyCB cb = new CompanyCB(); + + // setup + + cb.query().setId_Equal(id); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + return companyBhv.selectEntity(cb); + } + + public void store(Company company) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + company.setUpdatedTime(now); + + if (company.getUserId() != null) { + initUserInfo(company.getUserId()); + } + + if (company.getCreatedTime() == null) { + // create + company.setCreatedTime(now); + } + companyBhv.insertOrUpdate(company); + } + + public void disable(Long id, String name) { + // not delete + CompanyCB cb = new CompanyCB(); + + cb.query().setId_Equal(id); + Company company = companyBhv.selectEntity(cb); + + // TODO throw an exception + + company.setDeletedBy(name); + company.setDeletedTime(new Timestamp(new Date().getTime())); + companyBhv.update(company); + } + + public CompanyBhv getCompanyBhv() { + return companyBhv; + } + + public void setCompanyBhv(CompanyBhv messageBhv) { + this.companyBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,211 @@ +package jp.sf.pal.addresslist.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.addresslist.common.dxo.PagerDxo; +import jp.sf.pal.addresslist.common.util.PagingResultBeanWrapper; +import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.cbean.ContactCB; +import jp.sf.pal.addresslist.db.cbean.CustomCB; +import jp.sf.pal.addresslist.db.cbean.PersonCB; +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exbhv.ContactBhv; +import jp.sf.pal.addresslist.db.exbhv.CustomBhv; +import jp.sf.pal.addresslist.db.exbhv.PersonBhv; +import jp.sf.pal.addresslist.db.exbhv.PostalBhv; +import jp.sf.pal.addresslist.db.exbhv.UserInfoBhv; +import jp.sf.pal.addresslist.db.exentity.Contact; +import jp.sf.pal.addresslist.db.exentity.Custom; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.Postal; +import jp.sf.pal.addresslist.db.exentity.UserInfo; +import jp.sf.pal.addresslist.pager.PersonPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class PersonService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient PersonBhv personBhv; + + private transient PostalBhv postalBhv; + + private transient ContactBhv contactBhv; + + private transient CustomBhv customBhv; + + private transient UserInfoBhv userInfoBhv; + + private PagerDxo pagerDxo; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + + public List getPersonList(PersonPager personPager, String userId) { + HotdeployUtil.rebuildValue(personPager); + + PersonCB cb = new PersonCB(); + + cb.fetchFirst(personPager.getPageSize()); + cb.fetchPage(personPager.getCurrentPageNumber()); + + // setup + cb.setupSelect_Company(); + cb.specify().specifyCompany().columnName(); + + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_FamilyName_Asc(); + + PagingResultBean personList = personBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(personList), personPager); + personList.setPageRangeSize(5); + personPager.setPageNumberList(personList.pageRange() + .createPageNumberList()); + + return personList; + } + + public Person getPerson(Long id, String userId) { + PersonCB cb = new PersonCB(); + + // setup + cb.setupSelect_Company(); + cb.setupSelect_PostalAsOne(); + + cb.query().setId_Equal(id); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + + Person person = personBhv.selectEntity(cb); + if (person == null) { + return null; + } + + ContactCB cb2 = new ContactCB(); + cb2.query().setPersonId_Equal(id); + person.setContactList(contactBhv.selectList(cb2)); + + CustomCB cb3 = new CustomCB(); + cb3.query().setPersonId_Equal(id); + person.setCustomList(customBhv.selectList(cb3)); + + return person; + } + + public void store(Person person) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + person.setUpdatedTime(now); + + if (person.getUserId() != null) { + initUserInfo(person.getUserId()); + } + + if (person.getCreatedTime() == null) { + // create + person.setCreatedTime(now); + } + personBhv.insertOrUpdate(person); + + Postal postal = person.getPostalAsOne(); + postal.setPersonId(person.getId()); + postalBhv.insertOrUpdate(postal); + + for (Contact contact : person.getNewContactList()) { + contact.setPersonId(person.getId()); + contactBhv.insertOrUpdate(contact); + } + + for (Custom custom : person.getNewCustomList()) { + custom.setPersonId(person.getId()); + customBhv.insertOrUpdate(custom); + } + } + + public void disable(Long id, String name) { + // not delete + PersonCB cb = new PersonCB(); + + cb.query().setId_Equal(id); + Person person = personBhv.selectEntity(cb); + + // TODO throw an exception + + person.setDeletedBy(name); + person.setDeletedTime(new Timestamp(new Date().getTime())); + personBhv.update(person); + } + + public PersonBhv getPersonBhv() { + return personBhv; + } + + public void setPersonBhv(PersonBhv messageBhv) { + this.personBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public ContactBhv getContactBhv() { + return contactBhv; + } + + public void setContactBhv(ContactBhv contactBhv) { + this.contactBhv = contactBhv; + } + + public CustomBhv getCustomBhv() { + return customBhv; + } + + public void setCustomBhv(CustomBhv customBhv) { + this.customBhv = customBhv; + } + + public PostalBhv getPostalBhv() { + return postalBhv; + } + + public void setPostalBhv(PostalBhv postalBhv) { + this.postalBhv = postalBhv; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,16 @@ +package jp.sf.pal.addresslist.util; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang.StringUtils; + +public class AddressListUtil { + public static String getUserId(HttpServletRequest request) { + String userId = request.getRemoteUser(); + if (StringUtils.isEmpty(userId)) { + // TODO set guest to userId + userId = "guest"; + } + return userId; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/app.dicon =================================================================== --- addresslist/trunk/src/main/resources/app.dicon (rev 0) +++ addresslist/trunk/src/main/resources/app.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,11 @@ + + + + + + + + + + Added: addresslist/trunk/src/main/resources/application.properties =================================================================== --- addresslist/trunk/src/main/resources/application.properties (rev 0) +++ addresslist/trunk/src/main/resources/application.properties 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,52 @@ +errors.header=
      +errors.footer=
    +errors.prefix=
  • +errors.suffix=
  • +msg.header=
      +msg.footer=
    + +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.required.other={0} is required ({1}). +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +success.update_config=Updated configuration. +success.create_userInfo=Created a user information. +success.update_userInfo=Updated the user information. +success.delete_userInfo=Deleted the user information. +success.create_company=Created a company information. +success.update_company=Updated the company information. +success.delete_company=Deleted the company information. +success.create_person=Created a person information. +success.update_person=Updated the person information. +success.delete_person=Deleted the person information. + +errors.failed_to_update_config=Failed to update the configuration. +errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). +errors.failed_to_create_userInfo=Failed to create a new user information. +errors.failed_to_update_userInfo=Failed to update the user information. +errors.failed_to_delete_userInfo=Failed to delete the user information. +errors.could_not_find_userInfo=Could not find the user information({0}). +errors.failed_to_create_company=Failed to create a new company information. +errors.failed_to_update_company=Failed to update the company information. +errors.failed_to_delete_company=Failed to delete the company information. +errors.could_not_find_company=Could not find the company information({0}). +errors.failed_to_create_person=Failed to create a new person information. +errors.failed_to_update_person=Failed to update the person information. +errors.failed_to_delete_person=Failed to delete the person information. +errors.could_not_find_person=Could not find the person information({0}). + Property changes on: addresslist/trunk/src/main/resources/application.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/convention.dicon =================================================================== --- addresslist/trunk/src/main/resources/convention.dicon (rev 0) +++ addresslist/trunk/src/main/resources/convention.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,21 @@ + + + + + + "jp.sf.pal.addresslist" + + + "jp.sf.pal.addresslist.common" + + + "jp.sf.pal.addresslist.common.util" + + + + Added: addresslist/trunk/src/main/resources/creator.dicon =================================================================== --- addresslist/trunk/src/main/resources/creator.dicon (rev 0) +++ addresslist/trunk/src/main/resources/creator.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + Added: addresslist/trunk/src/main/resources/customizer.dicon =================================================================== --- addresslist/trunk/src/main/resources/customizer.dicon (rev 0) +++ addresslist/trunk/src/main/resources/customizer.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,58 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + + + + + + + + + traceCustomizer + + + s2DxoCustomizer + + + + + + + Added: addresslist/trunk/src/main/resources/dbflute.dicon =================================================================== --- addresslist/trunk/src/main/resources/dbflute.dicon (rev 0) +++ addresslist/trunk/src/main/resources/dbflute.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,105 @@ + + + + + + + + + "UTF-8" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + Added: addresslist/trunk/src/main/resources/env.txt =================================================================== --- addresslist/trunk/src/main/resources/env.txt (rev 0) +++ addresslist/trunk/src/main/resources/env.txt 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1 @@ +product Property changes on: addresslist/trunk/src/main/resources/env.txt ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/env_ut.txt =================================================================== --- addresslist/trunk/src/main/resources/env_ut.txt (rev 0) +++ addresslist/trunk/src/main/resources/env_ut.txt 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1 @@ +ut \ No newline at end of file Property changes on: addresslist/trunk/src/main/resources/env_ut.txt ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/jdbc.dicon =================================================================== --- addresslist/trunk/src/main/resources/jdbc.dicon (rev 0) +++ addresslist/trunk/src/main/resources/jdbc.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,160 @@ + + + + + + + + + + + + 100 + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:file:" + container.getComponent(@java.lang.Class ¡÷ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/addresslist") + + + "sa" + "" + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + Added: addresslist/trunk/src/main/resources/s2container.dicon =================================================================== --- addresslist/trunk/src/main/resources/s2container.dicon (rev 0) +++ addresslist/trunk/src/main/resources/s2container.dicon 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: addresslist/trunk/src/main/webapp/WEB-INF/addresslist.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/addresslist.xml (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/addresslist.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,3 @@ + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/addresslist.xml ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.1.log.db =================================================================== (Binary files differ) Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db =================================================================== (Binary files differ) Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.index.db =================================================================== (Binary files differ) Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.index.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,54 @@ + + + + AddressList + PAL Project + + AddressListConfig + admin + + + AddressListEditor + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,47 @@ + + + + AddressListConfig + AddressList: AddressList Configuration + Edit configurations. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /config/ + + 0 + + text/html + VIEW + + en + ja + + AddressList Configuration + Config + AddressList,URL + + + + AddressListEditor + AddressList: AddressList Editor + Edit an address list. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /user/person/ + + 0 + + text/html + VIEW + + en + ja + + AddressList Editor + AddressLists + AddressList,URL + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/struts-config.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/struts-config.xml ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/validator-rules.xml ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,9 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> + +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,32 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + +

    User Detail
    User IDUser ID
    Telephone Number
    RoleDefault Role - + + ${f:h(r.name)} +
    GroupDefault Group - + + ${f:h(g.name)} +
    + + + + + + + + + + + + +
    Configuration
    Guest User Name
    + +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,120 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirm Company Info
    Name${f:h(name)}
    Name Description${f:h(nameDesc)}
    Department${f:h(department)}
    Postal Code${f:h(postalCode)}
    State${f:h(state)}
    City${f:h(city)}
    Street${f:h(street)}
    Building/Others${f:h(building)}
    Telephone 1${f:h(telephone1)}
    Telephone 2${f:h(telephone2)}
    FAX 1${f:h(fax1)}
    FAX 2${f:h(fax2)}
    URL${f:h(url)}
    Public +Yes +No + +
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,106 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Edit Company Info
    Name
    Name Description
    Department
    Postal Code
    State
    City
    Street
    Building/Others
    Telephone 1
    Telephone 2
    FAX 1
    FAX 2
    URL
    Public + + Yes + No + +
    + + +
    +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Company +
    + + + + + + + + + + + + + + + + + +
    NameDepartment 
    ${f:h(c.name)}${f:h(c.department)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${companyPager.currentPageNumber}/${companyPager.allPageCount} (${companyPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,289 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Address Info
    Person + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Family Name${f:h(familyName)}
    Family Name(Description)${f:h(familyNameDesc)}
    Given Name${f:h(givenName)}
    Given Name(Description)${f:h(givenNameDesc)}
    Middle name${f:h(middleName)}
    Name Prefix${f:h(namePrefix)}
    Name Suffix${f:h(nameSuffix)}
    Nickname${f:h(nickname)}
    Job Title${f:h(jobTitle)}
    Public +Yes +No + +
    +
    Contact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Telephone(Home)${f:h(homeTelephone)}
    Cell Phone(Home)${f:h(homeCellphone)}
    Email(Home PC)${f:h(homeEmailPC)}
    Email(Home Mobile)${f:h(homeEmailMobile)}
    FAX(Home)${f:h(homeFax)}
    Telephone(Business)${f:h(businessTelephone)}
    Cell Phone(Business)${f:h(businessCellphone)}
    Email(Business PC)${f:h(businessEmailPC)}
    Email(Business Mobile)${f:h(businessEmailMobile)}
    FAX(Business)${f:h(businessFax)}
    +
    Home + + + + + + + + + + + + + + + + + + + + + + + +
    Postal Code${f:h(postalCode)}
    State${f:h(state)}
    City${f:h(city)}
    Street${f:h(street)}
    Building/Others${f:h(building)}
    +
    Company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirmation of Company
    Name${f:h(company.name)}
    Name Description${f:h(company.nameDesc)}
    Department${f:h(company.department)}
    Postal Code${f:h(company.postalCode)}
    State${f:h(company.state)}
    City${f:h(company.city)}
    Street${f:h(company.street)}
    Building/Others${f:h(company.building)}
    Telephone 1${f:h(company.telephone1)}
    Telephone 2${f:h(company.telephone2)}
    FAX 1${f:h(company.fax1)}
    FAX 2${f:h(company.fax2)}
    URL${f:h(company.url)}
    Public +Yes +No +
    +
    +
    Custom + + + + + + + + + + + + + + + + + + + +
    Custom 1${f:h(customData1)}
    Custom 2${f:h(customData2)}
    Custom 3${f:h(customData3)}
    Custom 4${f:h(customData4)}
    +
    + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,213 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Address Info
    Person + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Family Name
    Family Name(Description)
    Given Name
    Given Name(Description)
    Middle name
    Name Prefix
    Name Suffix
    Nickname
    Job Title
    Public + + Yes + No + +
    +
    Contact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Telephone(Home)
    Cell Phone(Home)
    Email(Home PC)
    Email(Home Mobile)
    FAX(Home)
    Telephone(Business)
    Cell Phone(Business)
    Email(Business PC)
    Email(Business Mobile)
    FAX(Business)
    +
    Home + + + + + + + + + + + + + + + + + + + + + + + +
    Postal Code
    State
    City
    Street
    Building/Others
    +
    Company + + + + ${f:h(c.name)} + + +
    Custom + + + + + + + + + + + + + + + + + + + +
    Custom 1
    Custom 2
    Custom 3
    Custom 4
    +
    + + +
    +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Person +
    + + + + + + + + + + + + + + + + + +
    NameCompany 
    ${f:h(p.familyName)} ${f:h(p.givenName)}${f:h(p.company.name)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${personPager.currentPageNumber}/${personPager.allPageCount} (${personPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/web.xml (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-07 23:42:09 UTC (rev 1303) @@ -0,0 +1,168 @@ + + + + AddressList + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + encodingfilter + /* + + + portletRequestFilter + /* + INCLUDE + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + routingfilter + /* + REQUEST + + + portletRoutingfilter + /* + INCLUDE + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + 1 + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + s2container + /s2container + + + + index.html + index.htm + index.jsp + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Sun Nov 9 07:32:32 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 09 Nov 2008 07:32:32 +0900 Subject: [pal-cvs 3570] [1304] added admin manager and a config tool. Message-ID: <1226183552.280702.5283.nullmailer@users.sourceforge.jp> Revision: 1304 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1304 Author: shinsuke Date: 2008-11-09 07:32:31 +0900 (Sun, 09 Nov 2008) Log Message: ----------- added admin manager and a config tool. Modified Paths: -------------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java addresslist/trunk/src/main/resources/convention.dicon addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp Added Paths: ----------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/ConfigForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/CompanyForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java addresslist/trunk/src/main/webapp/WEB-INF/view/admin/ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp -------------- next part -------------- Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/AddressListConstants.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -2,4 +2,6 @@ public class AddressListConstants { + public static final String GUEST_NAME = "guest"; + } Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,74 @@ +package jp.sf.pal.addresslist.action; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.addresslist.AddressListConstants; +import jp.sf.pal.addresslist.common.util.ConfigUtil; +import jp.sf.pal.addresslist.common.util.SAStrutsUtil; +import jp.sf.pal.addresslist.form.ConfigForm; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class ConfigAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(ConfigAction.class); + + @ActionForm + private ConfigForm configForm; + + private transient HttpServletRequest request; + + protected String displayIndex() { + configForm.guestName = ConfigUtil.getString( + AddressListConstants.GUEST_NAME, "guest"); + return "index.jsp"; + } + + @Execute(validator = false, input = "index.jsp") + public String index() { + ConfigUtil.init(request); + return displayIndex(); + } + + @Execute(validator = false, input = "index.jsp") + public String update() { + ConfigUtil.init(request); + ConfigUtil.setProperty(AddressListConstants.GUEST_NAME, + configForm.guestName); + try { + ConfigUtil.save(); + SAStrutsUtil.addMessage(request, "success.update_config"); + + return displayIndex(); + } catch (ConfigurationException e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_config"); + } + } + + public ConfigForm getConfigForm() { + return configForm; + } + + public void setConfigForm(ConfigForm configForm) { + this.configForm = configForm; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,337 @@ +package jp.sf.pal.addresslist.action.admin; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.addresslist.common.CommonConstants; +import jp.sf.pal.addresslist.common.dxo.PagerDxo; +import jp.sf.pal.addresslist.common.util.ConfigUtil; +import jp.sf.pal.addresslist.common.util.SAStrutsUtil; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.dxo.CompanyDxo; +import jp.sf.pal.addresslist.form.user.CompanyForm; +import jp.sf.pal.addresslist.pager.CompanyPager; +import jp.sf.pal.addresslist.service.CompanyService; +import jp.sf.pal.addresslist.util.AddressListUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CompanyAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CompanyAction.class); + + // for list + + public List companyItems; + + // for edit/confirm/delete + + @ActionForm + private CompanyForm companyForm; + + private CompanyService companyService; + + private CompanyPager companyPager; + + private PagerDxo pagerDxo; + + private CompanyDxo companyDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + companyItems = companyService.getCompanyList(companyPager, null); + + // restore from pager + // companyForm.companyname = companyPager.getCompanyname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(companyForm, companyPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // companyPager.setCompanyname(companyForm.companyname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + companyPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (companyForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + companyForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + companyForm.initialize(); + companyForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (companyForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, companyForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + companyForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (companyForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + companyForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + companyForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCompany(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Company company = createCompany(); + companyService.store(company); + SAStrutsUtil.addMessage(request, "success.create_company"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_company"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Company company = createCompany(); + companyService.store(company); + SAStrutsUtil.addMessage(request, "success.update_company"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_company"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + Long id = Long.parseLong(companyForm.id); + companyService.disable(id, request.getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_company"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_company"); + } + } + + private void loadCompany() { + Long id = Long.parseLong(companyForm.id); + Company company = companyService.getCompany(id, null); + if (company == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_company", + new Object[] { companyForm.id }); + } + companyDxo.convertFromCompanyToForm(company, companyForm); + + } + + private Company createCompany() { + String userId = AddressListUtil.getUserId(request); + Company company; + if (companyForm.mode == CommonConstants.EDIT_MODE) { + Long id = Long.parseLong(companyForm.id); + company = companyService.getCompany(id, null); + if (company == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_company", + new Object[] { companyForm.id }); + } + company.setUpdatedBy(userId); + } else { + company = new Company(); + company.setUserId(userId); + company.setUpdatedBy(userId); + company.setCreatedBy(userId); + } + companyDxo.convertFromFormToCompany(companyForm, company); + + return company; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CompanyForm getCompanyForm() { + return companyForm; + } + + public void setCompanyForm(CompanyForm companyForm) { + this.companyForm = companyForm; + } + + public CompanyService getCompanyService() { + return companyService; + } + + public void setCompanyService(CompanyService companyService) { + this.companyService = companyService; + } + + public CompanyPager getCompanyPager() { + return companyPager; + } + + public void setCompanyPager(CompanyPager companyPager) { + this.companyPager = companyPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CompanyDxo getCompanyDxo() { + return companyDxo; + } + + public void setCompanyDxo(CompanyDxo companyDxo) { + this.companyDxo = companyDxo; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,362 @@ +package jp.sf.pal.addresslist.action.admin; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.addresslist.common.CommonConstants; +import jp.sf.pal.addresslist.common.dxo.PagerDxo; +import jp.sf.pal.addresslist.common.util.ConfigUtil; +import jp.sf.pal.addresslist.common.util.SAStrutsUtil; +import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.dxo.PersonDxo; +import jp.sf.pal.addresslist.form.user.PersonForm; +import jp.sf.pal.addresslist.pager.PersonPager; +import jp.sf.pal.addresslist.service.CompanyService; +import jp.sf.pal.addresslist.service.PersonService; +import jp.sf.pal.addresslist.util.AddressListUtil; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class PersonAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(PersonAction.class); + + // for list + + public List personItems; + + // for edit/confirm/delete + public Company company; + + @ActionForm + private PersonForm personForm; + + private PersonService personService; + + private CompanyService companyService; + + private PersonPager personPager; + + private PagerDxo pagerDxo; + + private PersonDxo personDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + personItems = personService.getPersonList(personPager, null); + + // restore from pager + // personForm.personname = personPager.getPersonname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(personForm, personPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // personPager.setPersonname(personForm.personname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + personPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + loadDetailsPageParameters(); + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (personForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + personForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + personForm.initialize(); + personForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (personForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, personForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + personForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + loadDetailsPageParameters(); + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (personForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, personForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + personForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadPerson(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Person person = createPerson(); + personService.store(person); + SAStrutsUtil.addMessage(request, "success.create_person"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_person"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Person person = createPerson(); + personService.store(person); + SAStrutsUtil.addMessage(request, "success.update_person"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_person"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + Long id = Long.parseLong(personForm.id); + personService.disable(id, request.getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_person"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_person"); + } + } + + private void loadPerson() { + Long id = Long.parseLong(personForm.id); + Person person = personService.getPerson(id, null); + if (person == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_person", + new Object[] { personForm.id }); + } + personDxo.convertFromPersonToForm(person, personForm); + + } + + private Person createPerson() { + String userId = AddressListUtil.getUserId(request); + Person person; + if (personForm.mode == CommonConstants.EDIT_MODE) { + Long id = Long.parseLong(personForm.id); + person = personService.getPerson(id, null); + if (person == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_person", + new Object[] { personForm.id }); + } + person.setUpdatedBy(userId); + } else { + person = new Person(); + person.setUserId(userId); + person.setUpdatedBy(userId); + person.setCreatedBy(userId); + } + personDxo.convertFromFormToPerson(personForm, person); + + return person; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + if (!StringUtils.isEmpty(personForm.companyId)) { + String userId = AddressListUtil.getUserId(request); + Long companyId = Long.parseLong(personForm.companyId); + company = companyService.getCompany(companyId, userId); + } + } + + public List getCompanyItems() { + String userId = AddressListUtil.getUserId(request); + return companyService.getCompanyList(userId); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public PersonForm getPersonForm() { + return personForm; + } + + public void setPersonForm(PersonForm personForm) { + this.personForm = personForm; + } + + public PersonService getPersonService() { + return personService; + } + + public void setPersonService(PersonService personService) { + this.personService = personService; + } + + public PersonPager getPersonPager() { + return personPager; + } + + public void setPersonPager(PersonPager personPager) { + this.personPager = personPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public PersonDxo getPersonDxo() { + return personDxo; + } + + public void setPersonDxo(PersonDxo personDxo) { + this.personDxo = personDxo; + } + + public CompanyService getCompanyService() { + return companyService; + } + + public void setCompanyService(CompanyService companyService) { + this.companyService = companyService; + } + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -50,7 +50,6 @@ protected String displayList() { // page navi String userId = AddressListUtil.getUserId(request); - // TODO public? companyItems = companyService.getCompanyList(companyPager, userId); // restore from pager Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -56,7 +56,6 @@ protected String displayList() { // page navi String userId = AddressListUtil.getUserId(request); - // TODO public? personItems = personService.getPersonList(personPager, userId); // restore from pager Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/ConfigForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/ConfigForm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/ConfigForm.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,14 @@ +package jp.sf.pal.addresslist.form; + +import java.io.Serializable; + +import org.seasar.struts.annotation.Required; + +public class ConfigForm implements Serializable { + + private static final long serialVersionUID = 2108115319030589706L; + + @Required(target = "guest") + public String guestName; + +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/ConfigForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/CompanyForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/CompanyForm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/CompanyForm.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,120 @@ +package jp.sf.pal.addresslist.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CompanyForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 322481089019734947L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 200) + public String name; + + @Maxbytelength(maxbytelength = 200) + public String nameDesc; + + @Maxbytelength(maxbytelength = 200) + public String department; + + @Maxbytelength(maxbytelength = 200) + public String building; + + @Maxbytelength(maxbytelength = 200) + public String street; + + @Maxbytelength(maxbytelength = 100) + public String city; + + @Maxbytelength(maxbytelength = 100) + public String state; + + @Maxbytelength(maxbytelength = 30) + public String postalCode; + + @Maxbytelength(maxbytelength = 200) + public String country; + + @Maxbytelength(maxbytelength = 40) + public String telephone1; + + @Maxbytelength(maxbytelength = 40) + public String telephone2; + + @Maxbytelength(maxbytelength = 40) + public String fax1; + + @Maxbytelength(maxbytelength = 40) + public String fax2; + + @Maxbytelength(maxbytelength = 255) + public String url; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 1) + public String isPublic; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + userId = null; + name = null; + nameDesc = null; + department = null; + building = null; + street = null; + city = null; + state = null; + postalCode = null; + country = null; + telephone1 = null; + telephone2 = null; + fax1 = null; + fax2 = null; + url = null; + isPublic = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/CompanyForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,175 @@ +package jp.sf.pal.addresslist.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.addresslist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class PersonForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 3416220978746750608L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Maxbytelength(maxbytelength = 100) + public String familyName; + + @Maxbytelength(maxbytelength = 100) + public String familyNameDesc; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String givenName; + + @Maxbytelength(maxbytelength = 100) + public String givenNameDesc; + + @Maxbytelength(maxbytelength = 50) + public String middleName; + + @Maxbytelength(maxbytelength = 30) + public String namePrefix; + + @Maxbytelength(maxbytelength = 30) + public String nameSuffix; + + @Maxbytelength(maxbytelength = 100) + public String nickname; + + @Maxbytelength(maxbytelength = 50) + public String jobTitle; + + @Maxbytelength(maxbytelength = 1) + public String isPublic; + + @Maxbytelength(maxbytelength = 40) + public String homeTelephone; + + @Maxbytelength(maxbytelength = 40) + public String homeCellphone; + + @Maxbytelength(maxbytelength = 200) + public String homeEmailPC; + + @Maxbytelength(maxbytelength = 200) + public String homeEmailMobile; + + @Maxbytelength(maxbytelength = 40) + public String homeFax; + + @Maxbytelength(maxbytelength = 40) + public String businessTelephone; + + @Maxbytelength(maxbytelength = 40) + public String businessCellphone; + + @Maxbytelength(maxbytelength = 200) + public String businessEmailPC; + + @Maxbytelength(maxbytelength = 200) + public String businessEmailMobile; + + @Maxbytelength(maxbytelength = 40) + public String businessFax; + + @Maxbytelength(maxbytelength = 30) + public String postalCode; + + @Maxbytelength(maxbytelength = 100) + public String state; + + @Maxbytelength(maxbytelength = 100) + public String city; + + @Maxbytelength(maxbytelength = 200) + public String street; + + @Maxbytelength(maxbytelength = 200) + public String building; + + @LongType + public String companyId; + + @Maxbytelength(maxbytelength = 200) + public String customData1; + + @Maxbytelength(maxbytelength = 200) + public String customData2; + + @Maxbytelength(maxbytelength = 200) + public String customData3; + + @Maxbytelength(maxbytelength = 200) + public String customData4; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + familyName = null; + familyNameDesc = null; + givenName = null; + givenNameDesc = null; + middleName = null; + namePrefix = null; + nameSuffix = null; + nickname = null; + jobTitle = null; + isPublic = null; + homeTelephone = null; + homeCellphone = null; + homeEmailPC = null; + homeEmailMobile = null; + homeFax = null; + businessTelephone = null; + businessCellphone = null; + businessEmailPC = null; + businessEmailMobile = null; + businessFax = null; + postalCode = null; + state = null; + city = null; + street = null; + building = null; + companyId = null; + customData1 = null; + customData2 = null; + customData3 = null; + customData4 = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -5,9 +5,11 @@ import java.util.Date; import java.util.List; +import jp.sf.pal.addresslist.common.CommonConstants; import jp.sf.pal.addresslist.common.dxo.PagerDxo; import jp.sf.pal.addresslist.common.util.PagingResultBeanWrapper; import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; import jp.sf.pal.addresslist.db.cbean.CompanyCB; import jp.sf.pal.addresslist.db.cbean.UserInfoCB; import jp.sf.pal.addresslist.db.exbhv.CompanyBhv; @@ -59,6 +61,14 @@ cb.query().setDeletedBy_IsNull(); if (userId != null) { cb.query().setUserId_Equal(userId); + cb.query().setIsPublic_Equal(CommonConstants.FALSE); + cb.unionAll(new UnionQuery() { + public void query(CompanyCB unionCB) { + unionCB.query().setIsPublic_Equal(CommonConstants.TRUE); + unionCB.query().setDeletedBy_IsNull(); + } + }); + } cb.query().addOrderBy_NameDesc_Asc(); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -5,9 +5,11 @@ import java.util.Date; import java.util.List; +import jp.sf.pal.addresslist.common.CommonConstants; import jp.sf.pal.addresslist.common.dxo.PagerDxo; import jp.sf.pal.addresslist.common.util.PagingResultBeanWrapper; import jp.sf.pal.addresslist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.addresslist.db.allcommon.cbean.UnionQuery; import jp.sf.pal.addresslist.db.cbean.ContactCB; import jp.sf.pal.addresslist.db.cbean.CustomCB; import jp.sf.pal.addresslist.db.cbean.PersonCB; @@ -71,10 +73,17 @@ cb.setupSelect_Company(); cb.specify().specifyCompany().columnName(); + cb.query().setDeletedBy_IsNull(); if (userId != null) { cb.query().setUserId_Equal(userId); + cb.query().setIsPublic_Equal(CommonConstants.FALSE); + cb.unionAll(new UnionQuery() { + public void query(PersonCB unionCB) { + unionCB.query().setIsPublic_Equal(CommonConstants.TRUE); + unionCB.query().setDeletedBy_IsNull(); + } + }); } - cb.query().setDeletedBy_IsNull(); cb.query().addOrderBy_FamilyName_Asc(); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/util/AddressListUtil.java 2008-11-08 22:32:31 UTC (rev 1304) @@ -2,14 +2,18 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.addresslist.AddressListConstants; +import jp.sf.pal.addresslist.common.util.ConfigUtil; + import org.apache.commons.lang.StringUtils; public class AddressListUtil { public static String getUserId(HttpServletRequest request) { String userId = request.getRemoteUser(); if (StringUtils.isEmpty(userId)) { - // TODO set guest to userId - userId = "guest"; + // set guest to userId + userId = ConfigUtil.getString(AddressListConstants.GUEST_NAME, + "guest"); } return userId; } Modified: addresslist/trunk/src/main/resources/convention.dicon =================================================================== --- addresslist/trunk/src/main/resources/convention.dicon 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/resources/convention.dicon 2008-11-08 22:32:31 UTC (rev 1304) @@ -12,10 +12,8 @@ "jp.sf.pal.addresslist.common.util" -
    Modified: addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-08 22:32:31 UTC (rev 1304) @@ -19,6 +19,10 @@ AddressList PAL Project + AddressListManager + admin + + AddressListConfig admin Modified: addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-08 22:32:31 UTC (rev 1304) @@ -44,4 +44,26 @@ AddressList,URL + + AddressListManager + AddressList: AddressList Manager + Manage an address list. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /admin/person/ + + 0 + + text/html + VIEW + + en + ja + + AddressList Manager + AddressLists + AddressList,URL + + Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,120 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirm Company Info
    Name${f:h(name)}
    Name (Description)${f:h(nameDesc)}
    Department${f:h(department)}
    Postal Code${f:h(postalCode)}
    State${f:h(state)}
    City${f:h(city)}
    Street${f:h(street)}
    Building/Others${f:h(building)}
    Telephone 1${f:h(telephone1)}
    Telephone 2${f:h(telephone2)}
    FAX 1${f:h(fax1)}
    FAX 2${f:h(fax2)}
    URL${f:h(url)}
    Public +Yes +No + +
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,106 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Edit Company Info
    Name
    Name (Description)
    Department
    Postal Code
    State
    City
    Street
    Building/Others
    Telephone 1
    Telephone 2
    FAX 1
    FAX 2
    URL
    Public + + Yes + No + +
    + + +
    +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Company +
    + + + + + + + + + + + + + + + + + +
    NameDepartment 
    ${f:h(c.name)}${f:h(c.department)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${companyPager.currentPageNumber}/${companyPager.allPageCount} (${companyPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,289 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Address Info
    Person + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Family Name${f:h(familyName)}
    Family Name (Description)${f:h(familyNameDesc)}
    Given Name${f:h(givenName)}
    Given Name (Description)${f:h(givenNameDesc)}
    Middle name${f:h(middleName)}
    Name Prefix${f:h(namePrefix)}
    Name Suffix${f:h(nameSuffix)}
    Nickname${f:h(nickname)}
    Job Title${f:h(jobTitle)}
    Public +Yes +No + +
    +
    Contact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Telephone (Home)${f:h(homeTelephone)}
    Cell Phone (Home)${f:h(homeCellphone)}
    Email (Home PC)${f:h(homeEmailPC)}
    Email (Home Mobile)${f:h(homeEmailMobile)}
    FAX (Home)${f:h(homeFax)}
    Telephone (Business)${f:h(businessTelephone)}
    Cell Phone (Business)${f:h(businessCellphone)}
    Email (Business PC)${f:h(businessEmailPC)}
    Email (Business Mobile)${f:h(businessEmailMobile)}
    FAX (Business)${f:h(businessFax)}
    +
    Home + + + + + + + + + + + + + + + + + + + + + + + +
    Postal Code${f:h(postalCode)}
    State${f:h(state)}
    City${f:h(city)}
    Street${f:h(street)}
    Building/Others${f:h(building)}
    +
    Company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirmation of Company
    Name${f:h(company.name)}
    Name Description${f:h(company.nameDesc)}
    Department${f:h(company.department)}
    Postal Code${f:h(company.postalCode)}
    State${f:h(company.state)}
    City${f:h(company.city)}
    Street${f:h(company.street)}
    Building/Others${f:h(company.building)}
    Telephone 1${f:h(company.telephone1)}
    Telephone 2${f:h(company.telephone2)}
    FAX 1${f:h(company.fax1)}
    FAX 2${f:h(company.fax2)}
    URL${f:h(company.url)}
    Public +Yes +No +
    +
    +
    Custom + + + + + + + + + + + + + + + + + + + +
    Custom 1${f:h(customData1)}
    Custom 2${f:h(customData2)}
    Custom 3${f:h(customData3)}
    Custom 4${f:h(customData4)}
    +
    + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,213 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Address Info
    Person + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Family Name
    Family Name (Description)
    Given Name
    Given Name (Description)
    Middle name
    Name Prefix
    Name Suffix
    Nickname
    Job Title
    Public + + Yes + No + +
    +
    Contact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Telephone (Home)
    Cell Phone (Home)
    Email (Home PC)
    Email (Home Mobile)
    FAX (Home)
    Telephone(Business)
    Cell Phone(Business)
    Email(Business PC)
    Email(Business Mobile)
    FAX(Business)
    +
    Home + + + + + + + + + + + + + + + + + + + + + + + +
    Postal Code
    State
    City
    Street
    Building/Others
    +
    Company + + + + ${f:h(c.name)} + + +
    Custom + + + + + + + + + + + + + + + + + + + +
    Custom 1
    Custom 2
    Custom 3
    Custom 4
    +
    + + +
    +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp (rev 0) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Person
    • +
    • +
    • Company
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Person +
    + + + + + + + + + + + + + + + + + +
    NameCompany 
    ${f:h(p.familyName)} ${f:h(p.givenName)}${f:h(p.company.name)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${personPager.currentPageNumber}/${personPager.allPageCount} (${personPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -24,15 +24,15 @@
    - +
    - - + + - + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -24,15 +24,15 @@
    -
    Confirm Company Info
    Name${f:h(name)}Name${f:h(name)}
    Name DescriptionName (Description) ${f:h(nameDesc)}
    +
    - - + + - + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -28,16 +28,16 @@ - + + + + + + + + + @@ -45,18 +53,27 @@ - - + + - - + + - - + + + + + + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-13 04:29:34 UTC (rev 1338) @@ -37,6 +37,14 @@ + + + + + + + + @@ -45,18 +53,28 @@ - - + + - - + + - - + + + + + + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-13 04:29:34 UTC (rev 1338) @@ -34,8 +34,8 @@ + - @@ -44,8 +44,8 @@ + -
    Edit Company Info
    NameName
    Name DescriptionName (Description)
    Address Info
    PersonPerson - - + + - + @@ -45,7 +45,7 @@ - + @@ -86,43 +86,43 @@
    Family Name${f:h(familyName)}Family Name${f:h(familyName)}
    Family Name(Description)Family Name (Description) ${f:h(familyNameDesc)}
    ${f:h(givenName)}
    Given Name(Description)Given Name (Description) ${f:h(givenNameDesc)}
    - - + + - + - + - + - + - + - + - + - + - + @@ -135,8 +135,8 @@
    Telephone(Home)${f:h(homeTelephone)}Telephone (Home)${f:h(homeTelephone)}
    Cell Phone(Home)Cell Phone (Home) ${f:h(homeCellphone)}
    Email(Home PC)Email (Home PC) ${f:h(homeEmailPC)}
    Email(Home Mobile)Email (Home Mobile) ${f:h(homeEmailMobile)}
    FAX(Home)FAX (Home) ${f:h(homeFax)}
    Telephone(Business)Telephone (Business) ${f:h(businessTelephone)}
    Cell Phone(Business)Cell Phone (Business) ${f:h(businessCellphone)}
    Email(Business PC)Email (Business PC) ${f:h(businessEmailPC)}
    Email(Business Mobile)Email (Business Mobile) ${f:h(businessEmailMobile)}
    FAX(Business)FAX (Business) ${f:h(businessFax)}
    - - + + @@ -163,12 +163,12 @@ - + - + + + + Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-11 06:28:27 UTC (rev 1326) @@ -26,6 +26,15 @@ + + + + Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp 2008-11-11 06:28:27 UTC (rev 1326) @@ -22,6 +22,14 @@ + + + + Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp 2008-11-11 06:28:27 UTC (rev 1326) @@ -22,6 +22,15 @@ + + + + Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/index.jsp 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/index.jsp 2008-11-11 06:28:27 UTC (rev 1326) @@ -11,12 +11,6 @@
      - -
    • -
      - -
    • -
    • ${f:h(c.name)}
    • @@ -26,14 +20,6 @@
    -
      - -
    • -
      - -
    • -
      -
    From svnnotify ¡÷ sourceforge.jp Tue Nov 11 18:32:45 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 18:32:45 +0900 Subject: [pal-cvs 3592] [1327] created notepad. Message-ID: <1226395965.261036.4753.nullmailer@users.sourceforge.jp> Revision: 1327 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1327 Author: shinsuke Date: 2008-11-11 18:32:44 +0900 (Tue, 11 Nov 2008) Log Message: ----------- created notepad. Added Paths: ----------- notepad/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Tue Nov 11 18:32:53 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 18:32:53 +0900 Subject: [pal-cvs 3593] [1328] created trunk. Message-ID: <1226395973.345415.4862.nullmailer@users.sourceforge.jp> Revision: 1328 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1328 Author: shinsuke Date: 2008-11-11 18:32:53 +0900 (Tue, 11 Nov 2008) Log Message: ----------- created trunk. Added Paths: ----------- notepad/trunk/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Tue Nov 11 18:38:40 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 18:38:40 +0900 Subject: [pal-cvs 3594] [1329] added internationalization property files & JSP files. Message-ID: <1226396320.979776.10895.nullmailer@users.sourceforge.jp> Revision: 1329 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1329 Author: takakura Date: 2008-11-11 18:38:40 +0900 (Tue, 11 Nov 2008) Log Message: ----------- added internationalization property files & JSP files. Modified Paths: -------------- userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp Added Paths: ----------- userinfo/trunk/src/main/resources/application_ja.properties -------------- next part -------------- Modified: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-11 09:38:40 UTC (rev 1329) @@ -12,7 +12,7 @@ errors.minbytelength={0} can not be less than {1} bytes. errors.range={0} is not in the range {1} through {2}. errors.required={0} is required. -errors.required.other={0} is required ({1}). +errors.required.other={0} is required ({1}). errors.byte={0} must be an byte. errors.date={0} is not a date. errors.double={0} must be an double. @@ -50,3 +50,54 @@ errors.failed_to_delete_groupInfo=Failed to delete the group information. errors.could_not_find_groupInfo=Could not find the group information({0}). +labels.detail=Detail +labels.create=Create +labels.update=Update +labels.delete=Delete +labels.back=Back +labels.edit=Edit +labels.confirm=Confirm + +labels.config=Configuration +labels.role=Role +labels.group=Group +labels.enabled=Enabled +labels.disabled=Disabled + +labels.user=User +labels.confirmation_of_group_info=Confirmation of Group Info +labels.group_id=Group ID +labels.name=Name +labels.description=Description +labels.email=Email +labels.url=URL +labels.telephone_number=Telephone Number + +labels.group_detail=Group Detail + +labels.create_new_group=Create New Group +labels.to_next=Next +labels.to_back=Back + +labels.confirmation_of_role_info=Confirmation of Role Info +labels.role_id=Role ID + +labels.role_detail=Role Detail + +labels.create_new_role=Create New Role + +labels.confirmation_of_role_info=Confirmation of User Info +labels.user_id=User ID +labels.given_name=Given Name +labels.given_name_desc=Given Name(Desc) +labels.family_name=Family Name +labels.family_name_desc=Family Name(Desc) +labels.middle_name=Middle Name +labels.none=None + +labels.default_role=Default Role +labels.default_group=Default Group + +labels.user_detail=User Detail + +labels.create_new_user=Create New User \ No newline at end of file Added: userinfo/trunk/src/main/resources/application_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/application_ja.properties (rev 0) +++ userinfo/trunk/src/main/resources/application_ja.properties 2008-11-11 09:38:40 UTC (rev 1329) @@ -0,0 +1,96 @@ +errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.maxbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.required={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.required.other={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002({1}) +errors.byte={0} \u306f\u30d0\u30a4\u30c8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.date={0} \u306f\u65e5\u4ed8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.double={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (double \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.float={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (float \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.integer={0} \u306f\u6574\u6570\u578b (2147483647 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.long={0} \u306f\u6574\u6570\u578b (9223372036854775807 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.short={0} \u306f\u6574\u6570\u578b (32767 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.creditcard={0} \u306f\u6b63\u3057\u3044\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.email={0} \u306f\u6b63\u3057\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.url={0} \u306f\u6b63\u3057\u3044 URL (\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u30a2\u30c9\u30ec\u30b9) \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 + +success.update_config=\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.create_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 + +errors.failed_to_update_config=\u8a2d\u5b9a\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) +errors.failed_to_create_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_create_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_roleInfo=\u30ed\u30fc\u30eb\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_create_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_groupInfo=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 + +labels.detail=\u8a73\u7d30 +labels.create=\u4f5c\u6210 +labels.update=\u66f4\u65b0 +labels.delete=\u524a\u9664 +labels.back=\u623b\u308b +labels.edit=\u7de8\u96c6 +labels.confirm=\u78ba\u8a8d + +labels.config=\u8a2d\u5b9a +labels.role=\u30ed\u30fc\u30eb +labels.group=\u30b0\u30eb\u30fc\u30d7 +labels.enabled=\u4f7f\u7528\u3059\u308b +labels.disabled=\u4f7f\u7528\u3057\u306a\u3044 + +labels.user=\u30e6\u30fc\u30b6\u30fc +labels.confirmation_of_group_info=\u30b0\u30eb\u30fc\u30d7\u60c5\u5831\u306e\u767b\u9332 +labels.group_id=\u30b0\u30eb\u30fc\u30d7 ID +labels.name=\u540d\u524d +labels.description=\u8aac\u660e +labels.email=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 +labels.url=URL +labels.telephone_number=\u96fb\u8a71\u756a\u53f7 + +labels.group_detail=\u30b0\u30eb\u30fc\u30d7\u306e\u8a73\u7d30 + +labels.create_new_group=\u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210 +labels.to_next=\u6b21\u3078 +labels.to_back=\u524d\u3078 + +labels.confirmation_of_role_info=\u30ed\u30fc\u30eb\u60c5\u5831\u306e\u767b\u9332 +labels.role_id=\u30ed\u30fc\u30eb ID + +labels.role_detail=\u30ed\u30fc\u30eb\u306e\u8a73\u7d30 + +labels.create_new_role=\u30ed\u30fc\u30eb\u306e\u4f5c\u6210 + +labels.confirmation_of_role_info=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u767b\u9332 +labels.user_id=\u30e6\u30fc\u30b6\u30fc ID +labels.given_name=\u540d +labels.given_name_desc=\u540d(\u8a73\u7d30) +labels.family_name=\u59d3 +labels.family_name_desc=\u59d3(\u8a73\u7d30) +labels.middle_name=\u30df\u30c9\u30eb\u30cd\u30fc\u30e0 +labels.none=\u306a\u3057 + +labels.default_role=\u65e2\u5b9a\u306e\u30ed\u30fc\u30eb +labels.default_group=\u65e2\u5b9a\u306e\u30b0\u30eb\u30fc\u30d7 + +labels.user_detail=\u30e6\u30fc\u30b6\u30fc\u306e\u8a73\u7d30 + +labels.create_new_user=\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210 \ No newline at end of file Property changes on: userinfo/trunk/src/main/resources/application_ja.properties ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,23 +10,23 @@
    Postal Code${f:h(postalCode)}Postal Code${f:h(postalCode)}
    State - +
    - - + + @@ -236,8 +236,8 @@
    Confirmation of Company
    Name${f:h(company.name)}Name${f:h(company.name)}
    Name Description
    - - + + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-07 23:42:09 UTC (rev 1303) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-08 22:32:31 UTC (rev 1304) @@ -28,16 +28,16 @@ - + - + + + + + + + Modified: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -117,7 +117,7 @@ - + + + + + Modified: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -20,7 +20,29 @@
    -
    +
    +
    Custom 1${f:h(customData1)}Custom 1${f:h(customData1)}
    Custom 2
    Address Info
    PersonPerson - - + + - + @@ -45,7 +45,7 @@ - + @@ -87,23 +87,23 @@
    Family NameFamily Name
    Family Name(Description)Family Name (Description)
    Given Name(Description)Given Name (Description)
    - - + + - + - + - + - + @@ -136,8 +136,8 @@
    Telephone(Home)Telephone (Home)
    Cell Phone(Home)Cell Phone (Home)
    Email(Home PC)Email (Home PC)
    Email(Home Mobile)Email (Home Mobile)
    FAX(Home)FAX (Home)
    - - + + @@ -176,8 +176,8 @@
    Postal CodePostal Code
    State
    - - + + From svnnotify ¡÷ sourceforge.jp Mon Nov 10 03:28:06 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 03:28:06 +0900 Subject: [pal-cvs 3571] [1306] kakikake Message-ID: <1226255286.794901.4243.nullmailer@users.sourceforge.jp> Revision: 1306 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1306 Author: takakura Date: 2008-11-10 03:28:06 +0900 (Mon, 10 Nov 2008) Log Message: ----------- kakikake Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 12:11:21 UTC (rev 1305) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:28:06 UTC (rev 1306) @@ -32,33 +32,148 @@ \chapter{·Ç¼¨ÈÄ} \section{¤Ï¤¸¤á¤Ë} -TBD +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤Ç»ÈÍѤǤ­¤ë·Ç¼¨ÈĤǤ¹¡£°Ê²¼¤Î¤è¤¦¤Êµ¡Ç½¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ +\begin{itemize} +\item µ­»ö¤Î¥«¥Æ¥´¥êʬ¤±¤È¡¢¥«¥Æ¥´¥êÊ̤˥¢¥¯¥»¥¹¸¢¤òÀßÄꤹ¤ëµ¡Ç½ +\item Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ëµ¡Ç½ +\item ʸ»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ëµ¡Ç½ +\end{itemize} \section{»È¤¤Êý} +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -\subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} +\subsection{µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë} +¤³¤³¤Ç¤Ï¡¢µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë¤¿¤á¤Î¥«¥Æ¥´¥ê¤ÎÄɲäÎÊýË¡¤È¡¢¥«¥Æ¥´¥ê¤Î¥¢¥¯¥»¥¹¸¢¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ + +\subsubsection{¥«¥Æ¥´¥ê¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} +¥«¥Æ¥´¥ê¤Ï¡¢ + +\subsubsection{¥«¥Æ¥´¥êÊ̤Υ¢¥¯¥»¥¹¸¢¤ÎÀßÄê} + +\subsection{µ­»ö¤ÎÅê¹Æ¤È¥Õ¥¡¥¤¥ë¤ÎźÉÕ} +¤³¤³¤Ç¤Ï¡¢µ­»ö¤òÅê¹Æ¤¹¤ëÊýË¡¤È¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ëÊýË¡¡¢Ê¸»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ + +\subsubsection{µ­»ö¤òÅê¹Æ¤¹¤ë} TBD -\subsection{µ­»ö¤ÎÅê¹Æ} + +\subsubsection{µ­»ö¤ËÂФ·¤ÆÊÖ¿®¤¹¤ë} TBD +\subsubsection{¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ë} +TBD + +\subsubsection{ʸ»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ë} +admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ + +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï°Ê²¼¤Î¹àÌܤ¬»ØÄê¤Ç¤­¤Þ¤¹¡£ + +\begin{itemize} +\item Åê¹Æµ­»ö¤ÎºÇÂçʸ»ú¿ô : µ­»ö¤òÅê¹Æ¤¹¤ëºÝ¤ÎºÇÂç¤Îʸ»ú¿ô¤ò»ØÄꤷ¤Þ¤¹¡£(Á´³Ñ¡¢È¾³Ñ¤Ë¤³¤À¤ï¤é¤ºÊ¸»ú¿ôñ°Ì¤Ç¤Î»ØÄê¤È¤Ê¤ê¤Þ¤¹) +\item ÊÖ¿®¤ÎºÇÂçʸ»ú¿ô : ÊÖ¿®¤¹¤ëºÝ¤ÎºÇÂç¤Îʸ»ú¿ô¤ò»ØÄꤷ¤Þ¤¹¡£(Á´³Ñ¡¢È¾³Ñ¤Ë¤³¤À¤ï¤é¤ºÊ¸»ú¿ôñ°Ì¤Ç¤Î»ØÄê¤È¤Ê¤ê¤Þ¤¹) +\item Åê¹Æ¸å¤ÎÊÔ½¸ : Åê¹Æ¸å¤ËºÆÅÙÊÔ½¸¤òǧ¤á¤ë¤«Èݤ«¤òÀßÄê¤Ç¤­¤Þ¤¹¡£ +\item źÉÕ¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º : źÉÕ¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄê¤Ç¤­¤Þ¤¹¡£ +\end{itemize} + \chapter{¥Ö¥Ã¥¯¥Þ¡¼¥¯} \section{¤Ï¤¸¤á¤Ë} -TBD +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¸Ä¿ÍÍѤª¤è¤Ó¶¦Í­¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò´ÉÍý¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +ºîÀ®¤·¤¿¥«¥Æ¥´¥ê¤ä¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÏÅÐÏ¿¼Ô°Ê³°¤¬»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢¶¦Í­¤Î¥«¥Æ¥´¥ê¤Ë¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òÅÐÏ¿¤·¤¿¾ì¹ç¡¢ÅÐÏ¿¼Ô°Ê³°¤âÍøÍѤǤ­¤ë¶¦Í­¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \section{»È¤¤Êý} +TBD \subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} TBD \chapter{VFS} \section{¤Ï¤¸¤á¤Ë} -TBD +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤ÏÁ´°÷¤ÇƱ¤¸ÀßÄê¤òÍøÍѤ¹¤ë¤â¤Î(VFS Explorer)¤È¸Ä¿ÍÍÑ¥Õ¥©¥ë¥À¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤â¤Î(VFS Personal Folder Explorer)¤¬¤¢¤ê¡¢¤½¤ì¤¾¤ì¤òÍøÍѤ·¤Æ°Ê²¼¤Î¤è¤¦¤Ê¤³¤È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\begin{itemize} +\item ¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É +\item ¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥Õ¥©¥ë¥À¤ÎºîÀ® +\item ¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¤Î¥Õ¥¡¥¤¥ë¤Î¥À¥¦¥ó¥í¡¼¥É¡¢ºï½ü +\item ¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¤Î¥Õ¥©¥ë¥À¤Îºï½ü +\end{itemize} + \section{»È¤¤Êý} +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -\subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} -TBD +\subsection{ÀßÄê} +\begin{figure}[htbp] +\begin{center} +\epsfile{file=PAL0020.eps,width=1.0\hsize} +\caption{} +\label{fig:VFS Portlet configuration} +\end{center} +\end{figure} +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÏÇÛÈ÷¤·¤¿Ä¾¸å¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¾õÂ֤ˤʤäƤ¤¤ë¤¿¤á¡¢ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ +admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Configulator ¥Ý¡¼¥È¥ì¥Ã¥È¤«¤éÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +ÀßÄê¹àÌܤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ ¤Ê¤ª¡¢URI¤Î»ØÄê¹àÌܤǡ¢__USERNAME__¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÑ¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\begin{itemize} +\item »ÈÍÑ : ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»ÈÍѤòµö²Ä¤¹¤ë¤«Èݤ«¤ÎÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤³¤òµö²Ä¤·¤Ê¤¤¾ì¹ç¡¢¤¹¤Ù¤Æ¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ +\item ɸ½à¤ÎURI : ½é´ü¤Ëɽ¼¨¤µ¤ì¤ë¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ +\item ¥ë¡¼¥ÈURI : ¥ë¡¼¥È¥Õ¥©¥ë¥À¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤ì¤è¤ê¾å°Ì¤Î¥Ñ¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ +\item µö²Ä¤¹¤ë¥Ñ¥¹ : ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Î±ÜÍ÷¤òµö²Ä¤¹¤ë¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ +\item ¶Ø»ß¤¹¤ë¥Ñ¥¹ : ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Î±ÜÍ÷¤ò¶Ø»ß¤¹¤ë¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ +\item ¥Ñ¥¹¤Îɽ¼¨ : ¡Öµö²Ä¤¹¤ë¡×¤òÁªÂò¤·¤¿¾ì¹ç¡¢¥Õ¥©¥ë¥À¤ä¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤Î¾åÉô¤Ë¥Ñ¥¹¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +\item ¥Õ¥©¥ë¥À¤ÎºîÀ® : ¡Öµö²Ä¤¹¤ë¡×¤òÁªÂò¤·¤¿¾ì¹ç¡¢¥Õ¥©¥ë¥À¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\item ¥¢¥Ã¥×¥í¡¼¥É : ¡Öµö²Ä¤¹¤ë¡×¤òÁªÂò¤·¤¿¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\end{itemize} +\subsubsection{Windows¤Ç¤ÎÆÃÍ­¤ÊÀßÄê} +Windows¤Ç¤Ï¥Ñ¥¹¤Î»ØÄê¤ò¡Ö\verb|file:///c:\/......|¡×¤Î¤è¤¦¤Ë¡¢³Æ¥É¥é¥¤¥Ö¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Î¤ß¡Ö\verb|x:\|¡×¤Î·Á¤ÇÆþÎϤ·¡¢¸å¤Ï/¤Ç¥Ñ¥¹¤ò¶èÀÚ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + +¤Ê¤ª¡¢¸½»þÅÀ¤Ç¤Ï¶õÇò¤ò´Þ¤à¥Ñ¥¹¤ò»ÈÍѤ¹¤ë¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É¤¬Àµ¾ï¤Ë¹Ô¤ï¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¤¤¤ï¤æ¤ë 8.3 ·Á¼°¤Îû¤¤¥Õ¥¡¥¤¥ë¡¦¥Õ¥©¥ë¥À̾¤ò»ÈÍѤ¹¤ë¤ÈÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\subsection{´ðËÜŪ¤ÊÁàºî} +\begin{figure}[htbp] +\begin{center} +\epsfile{file=PAL0015.eps,width=1.0\hsize} +\caption{} +\label{fig:VFS Portlet} +\end{center} +\end{figure} +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤È¡¢¡Öɸ½à¤ÎURI¡×¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +¥µ¥¤¥º¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¥Õ¥¡¥¤¥ë¡¢¥µ¥¤¥º¤Îɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤¬¥Õ¥©¥ë¥À¤Ç¤¹¡£ +¤Ê¤ª¡¢OS¾å¤Ç¥Õ¥¡¥¤¥ë¤òÁàºî¤¹¤ë¸¢¸Â¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤ò¼Â¹Ô¤¹¤ë¥æ¡¼¥¶¡¼¤Î¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\subsubsection{¥Õ¥©¥ë¥À¤ò°ÜÆ°¤¹¤ë} +¥Õ¥©¥ë¥À¤Î¾ì¹ç¡¢¥Õ¥©¥ë¥À̾¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¤½¤Î¥Õ¥©¥ë¥À¤Ë°ÜÆ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¾å°Ì¥Õ¥©¥ë¥À¤Ø°ÜÆ°¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö..¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\subsubsection{¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë} +¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¤½¤Î¥Õ¥¡¥¤¥ë¤òɽ¼¨¡¢¤â¤·¤¯¤Ï¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¡Ê±¦¥¯¥ê¥Ã¥¯¤Ç¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡Ë +¤Ê¤ª¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¼ïÎà¤È¤½¤Îʸ»ú¥³¡¼¥É¤Ë¤è¤Ã¤Æ¤Ïʸ»ú²½¤±¤ËÃí°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + +\subsubsection{¥Õ¥¡¥¤¥ë¤ä¥Õ¥©¥ë¥À¤òºï½ü¤¹¤ë} +¡Öºï½ü¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¤Ê¤ª¡¢¥Õ¥©¥ë¥À¤òºï½ü¤·¤¿¾ì¹ç¡¢¤½¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤µ¤ì¤Þ¤¹¡£ + +\subsubsection{¥Õ¥©¥ë¥À¤òºîÀ®¤¹¤ë} +\begin{figure}[htbp] +\begin{center} +\epsfile{file=PAL0017.eps,width=1.0\hsize} +\caption{} +\label{fig:VFS Portlet making folder} +\end{center} +\end{figure} +¡Ö¥Õ¥©¥ë¥À¤ÎºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥©¥ë¥À¤ÎºîÀ®²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +¤³¤³¤Ç¤Ï¡¢¡Ö¥Õ¥©¥ë¥À̾¡×¤òÆþÎϤ¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥©¥ë¥À¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤ËºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\subsubsection{¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë} +\begin{figure}[htbp] +\begin{center} +\epsfile{file=PAL0019.eps,width=1.0\hsize} +\caption{} +\label{fig:VFS Portlet upload} +\end{center} +\end{figure} +¡Ö¥¢¥Ã¥×¥í¡¼¥É¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +¤³¤³¤Ç¤Ï¡¢¡Ö»²¾È...¡×¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Ê¤ª¡¢°ìÅ٤˥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Ï 1 ¸Ä¤Î¤ß¤Ç¤¹¡£ + \end{document} From svnnotify ¡÷ sourceforge.jp Mon Nov 10 03:37:44 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 03:37:44 +0900 Subject: [pal-cvs 3572] [1307] kakikake Message-ID: <1226255864.982265.12733.nullmailer@users.sourceforge.jp> Revision: 1307 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1307 Author: takakura Date: 2008-11-10 03:37:44 +0900 (Mon, 10 Nov 2008) Log Message: ----------- kakikake Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:28:06 UTC (rev 1306) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:37:44 UTC (rev 1307) @@ -102,7 +102,7 @@ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \subsection{ÀßÄê} -\begin{figure}[htbp] +\begin{figure}[h] \begin{center} \epsfile{file=PAL0020.eps,width=1.0\hsize} \caption{} From svnnotify ¡÷ sourceforge.jp Mon Nov 10 03:41:39 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 03:41:39 +0900 Subject: [pal-cvs 3573] [1308] added graphic files. Message-ID: <1226256099.608473.16190.nullmailer@users.sourceforge.jp> Revision: 1308 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1308 Author: takakura Date: 2008-11-10 03:41:39 +0900 (Mon, 10 Nov 2008) Log Message: ----------- added graphic files. Added Paths: ----------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0015.eps pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0017.eps pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0019.eps -------------- next part -------------- Added: pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0015.eps =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0015.eps (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0015.eps 2008-11-09 18:41:39 UTC (rev 1308) @@ -0,0 +1,35321 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 553 677 +%%Creator: EPS-conv ver 3.06 +%%CreationDate: 2008/11/09 18:22:09 +%%Title: PAL0015.BMP +%%Pages: 1 +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +%%EndProlog +%%Page: 1 1 +gsave +16 dict begin +/DeviceRGB setcolorspace +/ShowImg0 +{ << /ImageType 1 + /Width 556 + /Height 677 + /BitsPerComponent 8 + /Decode [ 0 1 0 1 0 1 ] + /ImageMatrix [ 556 0 0 -677 0 677 ] + /DataSource currentfile /ASCIIHexDecode filter + /Interpolate true + >> image } def +0 0 translate 553 677 scale +ShowImg0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff959595aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaffffff808080fefefeffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff808080fefefeffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff808080fefefeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff808080fefefeffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080fefe +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 +8080fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff808080fefefeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff808080fefefeffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdf8f3ecf3f2f6f6fafe +fefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffce3d9dacec8c7d4e0ebf1f8ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff808080fefefeffffffffffffffffffa44d20303831 +1d2975f1f4f8fffffffffffffffffc82372c3736291846a1ebeff8b4672c3337 +3b4e5051505050505053535338231b53cee0e9fcfff1be987e3c3d3d3f404143 +4343403e393d455794bbe2eff7ffffffffffffffffffffffffffbc7a46423b36 +494c4f51515150505252523b29224fb7c5d6f9ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffeb7e68643925202e6a9bafd5f4ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff808080fefefeffffffffffffffffffefa4 +5d2630382c201993dff4f9fefffffffffff0a7272d3333261d5faeecf1f9ffaa +582c373b3f41424343434343434343433b241d4de2e1e895373c3e3d3e414340 +4040525252434343423d3126397dbfdbebfaffffffffffffffffffffffffb46d +46443d3a3e414343434343434343433e282139b2c6cef7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff19268663d241f3e71a0bbd9f7ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff808080fefefeffffffffffffff +ffffffffc52f232b3b31232875c9f3f8fdffffffd58c452f3637231a38c4ecef +fbffffb2582c37362b1b388de6e9f4fffbfbfbfbfbfbfefefef2b6353b3c352b +224588c5e3effafffffffffffecb8f5a5189c5dbeafaffffffffffffffffffff +ffffbc6d464538281d3781ccd3e8fffbfbfbfbfbfbfafbfefefeca998274756d +63596eb1d0d8f1ffffffdcb1817b7b695d50769ec5d6eaf8ae8a8d7568667b97 +aba99787655b4d39355187a8c7e4f6fffffff19268663d241f3e71a0bbd9f7ff +ffffdbc3ad7661594a483e464342637b97c8dbeafffffffffff6bc9e9b756161 +829eb0c7cac298776d859aaadaf7ffe6d4c28f7265473c3d373e41556c85bbcb +dffffffffffff7c5aca7785f617e97a5c0cac8a584757e8b9bd3f6ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff808080fefefeffffff +ffffffffffffffffffa54e21303b341e1761eaf2f6fefff66d242b3835271855 +a8ecf1f9ffffffb2582c373b34272560b6d3d1ccc5c3c1bebabed0f3f6f5b337 +3c3c3d3e3a36314c748b9ab2bcc5dfeef7fbfdffffffffffffffffffffffffff +ffffffffffffbc6d46453d322c2c5490a5a9b1adaba8a49e97a2c4e4e8f3fff8 +c652544c37322a25478ac1cee88a585d42372e24225dbabad4feffef7f5d5c3e +35384043434343434343434343402e272f96b0b5effff19268663d241f3e71a3 +bbd9f9be836f563b333b4143434343434343433c34284a769fbadcfffff29579 +754030343f4343434343372f2d749a98b9aa83714b31353b414b4b4b4a4a4a41 +3a332c4d728bb2ddfffff4a48c85412c313e434343434339322f5f7e84c8f3ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080fefe +feffffffffffffffffffffffffffbd74252d372c201793e7f2f9f9a8242c3330 +231b73c5edf4fbffffffffb2582c373b3f4042434343434343434343311d1b8c +e1e0f263353d3c3d3e424343434343434343403731325e86d6e4edfeffffffff +ffffffffffffffffffffbc6d46453d3a3e4143434343434343434032222d7ec7 +cae6fffffffdcc93564d43393c3f4343434343402e262f96bdc1edffffffffef +8a5c5c3f2b27315980bdcfe3f1d0a863584b2f29254c7fafc5e2f592686a3d25 +1f4078aebcddc56d73592b28264c6f94bed7f1e0b591675240282524759e9edb +fcf39e7875452f313a3e464f58655a56659c9e8e78806f2a22226e8d93d7f7ff +f7d7ad836b471f1f3a858ca4f4fff4ac8b85472c2f3a3f454d546159555e808e +98d6f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 +8080fefefeffffffffffffffffffffffffffffdb41222a372f254899dfe2a861 +323632201754daedf2fdffffffffffb2582c373b3f3b3a385a6776666667655d +46466ea6e6ecf5ffffdb8c664c3c3d3e40424243434343434343372a1d64a8d5 +e5f4ffffffffffffffffffffffffbc6d46453d36333444708082878a8a878173 +7085a9dae2efffffffffffffd394614f43393b3f42352c256ca1bedcf2ffffff +ffffffef8a5c5c3b241e407cadc4e1fafffff084636239251f4074abbfdbf492 +686a3d251f4580adbfb69d7261431f1e3e97a5b8f3ffffffffed88746e311e1d +5987a1c7eaf69e787740231f3d6a91aed2f5fffffff6d0a37d644632383d4343 +43434343434343434343352f2c718e8bdcfef4ac8b8543211f3b61819fc9f3ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff808080fefefeffffffffffffffffffffffffffffffbd6a1f2e37414142 +434343433f35262a6abfeff4fbffffffffffffb2582c373629173895e5e9f5ff +fffffffffffffffffdf1e5ebf9fbfcfefffffbf1e2dbd5c1ab894040403e3a2d +20398dd6dbeeffffffffffffffffffffffffbc6d464537261a438ecbd6ecffff +fffffffffffffffffffffffffffffffff3b983564a40393c4031282386b4bde7 +faffffffffffffef8a5c5c3b261f4076a9c4def8ffffeb7a636035251f4174ab +bfdbf492686a3d251f4580adbfb69d7261411f1d479ba5bef6fffffffff59a73 +723e221e45719fb9d8f69e787940231f3d6a91aed2f5fffffff6cba37d614630 +3236435a606b7a7e80797776787b736a7597abb6ddfbf4ac8b8543211f3b6181 +9fc9f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff808080fefefeffffffffffffffffffffffffffffffffdc8924 +2b344141424343432e211b90dbeff7fdffffffffffffffb2582c3736291a3895 +e6e9f5ffffffffffffffffffffec952320479db6cff1f9fbfeffffffffec723e +403c372b1e3985d6dbedffffffffffffffffffffffffbc6d46453a2c212f6dc5 +d0e2eee9ece4e3e2dedee2f4f6f8feffffffefb953544a37393d43434343433a +29234eafbccff9ffffffffef8a5c5c3b261f4076a9c4def8ffe6c0665f522d27 +224c7fafc5e2f592686a3d251f427badbdceb1706c512623236893a6d2f0ffff +e0b577675225212170999fd8f9f39e787540231f3d6a91aed2f5ffffffffe6bb +827356242324668494ceedfffffffffffffbd4c1c7c7c3ccf1fff4ac8b854321 +1f3b61819fc9f3ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff808080fefefeffffffffffffffffffffffffffffff +fffff05f21283941414243351f186aeceef5ffffffffffffffffffb2582c3736 +291a3895e6e9f5ffffffffffffffffffffeca5363b3c3d3e4043434343434343 +4343434343352a226ca8d7e7f4ffffffffffffffffffffffffffbc6d46453d3a +3e414343434343434343433e282139b2c6cef7ffe88252513f342c28387ec3c8 +ba5f5f553a312a234e85bbcee6ffffef8a5c5c4135353b3f4d5a5a534b4b4641 +413c2c25439fafc0f4fff18868663a241f3f72a6bbd9f7966d70433235393d3f +5f5f5752524e3f3f382c2856a09ec3fefff29578753b231f3e6a91aed2f5ffff +fffffffaaa80804a2e323c403e3d4d55606e6d5d5a502b2636828c9df0fff4a4 +8b853d211f3c61819fc9f3ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff808080fefefeffffffffffffffffffffff +ffffffffffffffd48a422d353d3b2e223887d4f1f7fdffffffffffffffffffb2 +582c37312818539de6edf6ffffffffffffffffffffffe49d7d653c3c3d404142 +434343433e392e455994bcd8f0f7fdffffffffffffffffffffffffffffffbc6d +46453d3a3e414343434343434343433a282151c6c6d6d38c4f50423428232f8e +bcc6eafcffefbb86584c402f28245690bcd0ebf58a5c5f4135383f4343434343 +43433b302a4f89a9c8e7f9fffffff49268683b231e477ba3c1e0f9fffee8a688 +684b3e363d4143433e392e455d92b7c8f3fffffffff69e78763f211e447294b5 +daf8fffffffffffffffff1c8b3965f5145393c3f434343403d383f48649cadcc +fafff7ac8b87421f1e416883a7d3f7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff808080fefefeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd +f9f4eeeeeeedecebf1f6fcfdfeffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffef8a5c5c3b241f407c +aac4e1f8f4f4f5f7f9fafeffffffffffffffffffffffffffffffffffffffffff +fffffffffff4f0ede8e6e2e6e6edf5f5fbffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffefcf5f1efe9eaeaedf3f5f9fcfe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff808080fefefeffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffef755d5c37 +2720386fa4bfdaf5ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080fefe +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 +c0afa9968c879dbdd6e2f1fdffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 +8080fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff808080fefefeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffff808080fefefeffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffff808080fefefeffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff808080fefefeffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffff808080fefefeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffff808080fefefeffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080fefe +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 +8080fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff959595aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffdf3fbf2f8fefafeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffeede8fab2abf5c3defd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1 +f78186f4c7d6fcfbfffffffffff8f4f99546ee2001eeb4b4faffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffedc8f6a2a5f5cadbfcfed5f68684f2abbdfaffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc882f36f +61f07288f3ababf8def8ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffefd2f99e60ec4991 +f47439edb8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffefafdf4f5fdfffffffffffffffcfeefc3ee0f0f +efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffdfaf5fefbfcfefbfbfefb +fbfefbfbfefbfbfefcfdfef7f0fcf0fbfffdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffae4f9c5c8faf0f3feffffffffffffffffffffffffffffffffffffff +ffffeaa9f03a24ea9bbdf9f3ffffffffffc47cf03115ed0000ec176bf6bce0fe +fffffffffffffffffffff3fcc9baf69a98f38b89f194a0f6d4e3fdfbffffffff +fffffffffffffffffffffffffeb262f03314ef9aa7fbe08ef15337ef96aafbff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bd7af28282f29d9ef35922ed8080f7ffffffffffffffffffffffffffffffffff +ffffffffffffffedd5c5b6aeb0bedaf5ffffffffffffffffffffffffffffffff +fffffffafef4edfce6e8fbe8e8fbe3e3fadedefbd9d9fad5d5f9d0d1facbc7f8 +bfc2f8cce1feffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffefefcfdfaf6fefbfcfefbfbfefbfbfefbfbfefbfbfedcc2f97d +3cedb1c6f9a139ec85e7ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff6fde594ea1515effffffffbf1fdbb44ea0b +5bf3ab6ceb0d0df2ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff3f20e0dec0000ee +0000ee0000ee0000ee0000ee0000ee0000ec0030f3e5eafeffffffffffffffff +ffffffffd3abf4acc7fbf3f8ffffffffffffffffffffffffffffffffffffffc3 +7def2a61f3d0e1fdf6a3ed311defcacafcffffffffffffffffffffffffffffff +fffffffffffb6740ef0e00ec7686f29093f38e8df2777cf15b35ec4879f5c8e3 +feffffffffffffffffffe0b1f3432ded0000ee0000ee0000ee0000ed0000ec76 +a2f8e5fefffffffffffffffffffffffcf76261ec5d8ff6d6f7fc8666f01624ee +6c7bf2958ff28080f16e6af1adb6f9f6fffffffbfa9e97f25a58f06566f16666 +f16d73f0473dee1d3def5d6aef4d2eee2b26f09ca5f7f1ffffffffffffffffff +ffffffffffffffffffffffd08c8c543f6971bff3ffffffffffffffffffffffff +fffffffffffffdd9f79762ec0000ed0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ed5658f3fcffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffcfbb8aff00000ed0000ee0000ee0000ee0000ee0000ee +0000ee0000ed1923ee8caff9ffedfbc98dee0e15ed3500ee0000ee0000ee0000 +ee0805ed3033ee6cb3fcffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff5fde585ea1515f3ffffffffffff +f4eef95506eb0d6cf3dfdcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fbb1b3 +f5c2c2f8c2c2f8c2c2f8c2c2f8c0c2f8ddeef76817ea0974f7e5f2feffffffff +ffffffffffffffff8b21e957c4fbe6fbffffffffffffffffffffffffffffffff +ffffffaa2eeb1c73f6cee9fefcabed331ff0cacafcffffffffffffffffffffff +ffffffffffffffefb1f13b26ed394bef5044ef5d59ef1a1bee0000ec97b7f9f2 +ffffffffffffffffffffffc782f13717eb5d92f8d8f1f65454ec75a9f8e4fffb +9e5ff02604ea8da4f7f2ffffffffffffffffd898f14a22eb9b9bf8febaf46639 +ed0000ed0000ef585ff1878bf1655ff0a7b1f8f4fffffff8f7736eee4660f197 +a8f5a4a0f5a7b4f47c5fef4249ef7499f4b1acf49996f4b5bcf9f5ffffffffff +ffffffffffffffffffffffffffffffce8c8c513d6d71bcf8ffffffffffffffff +fffffffffffffffffffffffdfde5e3fac8caf9d9d9fae0e0fbd9d4f8c1bcf8d9 +e4fdd6aff75c16ea354ff1bbedfefffffffffffffffffffbeffcdccdf8c2ddfe +fffffffdf6fdf0e6fbe5f6fefffcfee8e2f9b2b5f6c3c3f8c2c2f8c2c2f8c2c2 +f8c8cef8beb8f44626ed4fb7fcfffffffeebfbc57fec2229eda5bef6a39ff59f +9ff5a3a6f5a3a2f1221bed39a9fbffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff5fde58aea1515f3ffff +fffffffffffefffaedf9b9cafdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffb4c18ea0e89f8e6f4fe +f2ebfcededfdececfdfdfcfd8321ea63b6fae9f9fdeeeffce9e9fefcfcffffff +ffffffffffffffa52eeb1b6ff6cee8fefcabed331ff0cacafcffffffffffffff +fffffffffffffffffffff73e3eec1872f4c6e5fdffffffffffffde82ee3a29f1 +b7befcffffffffffffffffffffd3f34f3ceb689cf7def6ffffc0f25536eda9a9 +f9fffffffffffa6f5aee0c4bf2a2cdfcfffffffffcf8615fee0027f19bb4f665 +65ef4486f4a37ef0516af395cffdfffffffffffffffffffffffffffdf87371ed +848bf5f9ffffffffffffffffbc7af17880f2bafbfca393f49d95f7f8ffffffff +ffffffffffffffffffffffffffffffffffffffce8c8c513d6d71bcf8ffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9f9ff3 +335ef0add1f79556eb2a47f1a5dcfefffffffff4fbb196f26255f4edbef88824 +eb4f4ff3fffffffbe0f8ab6bea494af2fcffffffffffffffffffffffffffffff +fffffffffffffffecdc2f6342dec6dcefdfffffffee7fac573eb3535f6ffffff +ffffffffffffffffffeed1fb8618ea2c9cfbffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff6fde594ec14 +15efecffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffecf21816ea89de +fdf4fefb1e1ced0000ee0000ee0000ee0000ee0000ee0000ee0000ec0000f0d7 +d7fdffffffffffffffffffb32eeb1e6ff6cee8fefcabed331ff0cacafcffffff +fffffffbf1fdfbfbfefefffb813dee1624f2bfcbf44141ed799ef8e7f4fd6c45 +ed3484f7c5ebfeffffffffffffffffffbe52ef3234f1afc6fcffffffe18cef46 +2df0a9b2fbffffffffffffe29ff04b26eea2a2fafffffc9760f12200ec0047f1 +7d73ef512eee9999f9d887f34e16ec2f3bef4040ed496af4b6d5fdfffffffffd +f87371ef0000ed0000ee0000ec7287f5bc7af2807af3b1e6f67e6feb6980f4e8 +ffffffffffffffffffffffffffffffffffffffffffffffce8c8c513d6d71bcf8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdbb9ff52f00ec0000ed2a45f1a6d6fcfffffffffffffffffbaaaaf01841f084 +d8fcaeaef21139ef73cdfcf9d7f8a55cec4a57f7ffffffffffffffffffffffff +fffffffffffffffffffffafcc2b2ef263beeb7fcfffffffffee8fac577eb3535 +f5ffffffffffffffffffffffffebd1fb7818ea2c9cfbfef5fde0b5f36c73f28b +8bf38989f38989f38989f38989f38989f38989f38989f38787f27671f4fcf6fd +e895ec0000ed0000ed0b0def9bb8f8f0fdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffe8c19eb0c +00eee6e6fdfffffef3ebfcebecfdfcfdfc8820ed1000ea7cc0faeffafdeeeffc +e9e9fefcfcfffffffffffffffffffc612eeb3f95f7daf1fefcabed331ff0caca +fcfffffffffffc6839eb4ea5fad7f5f73d3deda4c1faf5fff98f5eee1b0aed00 +00ed0000eca4b8f9f7fffffffffffffffffffffc6c4eed4f97f7ccf4fffffffe +9753ee236cf4aae0fefffffffffffffcb6f15a3df0a2a8fbfffff96060f19e98 +f0625ef29b9bfaeaf0fef1f5ffc87bf2432dee7c8df5bbaef5a8b5f9d9e8feff +fffffffdf87371ed6987f5e2fbfa7977ef5887f4c19df47572f0594df04c42f1 +80c1fcffffffffffffffffffffffffffffffffffffffffffffffffce8c8c513d +6d71bcf8ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffda19ff4263eed7db2f7d2dbfcfffffffffffffffffffffffff0cdf7 +8d46eb5252f5eddbfbc6aef6d9f5ffd4b2f85030ed4abdfcffffffffffffffff +ffffffffffffffffffffffffffe0c0f96200ea3c3cf3fffffffffffffee8fac5 +77eb3535f5ffffffffffffffffffffffffebd1fb7818ea2c9cfbfff4fcd5a0ef +0d10ee5555f04e4ef04e4ef04e4ef04e4ef04e4ef04e4ef04f4ef04d4aee1926 +f1fbf6fde895ec1515f1ecf0f87140ec0000ee0308ec4288f7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffebd74ec +1009ea75c7fcf3fbffffffffffffffffffffd790ed1a10ed0000ea83d2fcf0fd +fffffffffffffffffffffffffffffffffffff82e2eeb7cc6fbebfdfffcabed33 +1ff0cacafcfffffd9c3bee1d01eb9bc5faf2ffffffffffffffffffffffffffff +e4a2ef3a22ed0000ec436ef4d1e2fdfffffffffffffffffb594eed61a8f8d8fb +fffffff85353ec6ca8f7e0fefffffffffffffead5af02e0eefa2aafaffffffff +fffffffcf66261f09b9bf9ffffffffffffc168f13e43f295c4fcfaf9fef6f5fd +fbfbfefffffffffdf87371ed848bf5f9fffd7777f07787f3f1dff67b5eed0000 +ec7381f5f1ffffffffffffffffffffffffffffffffffffffffffffffffffffce +8c8c513d6d71bcf8ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff4fa9f8eee4e5ff1e2ffffffffffffffffffffffffffffffff +fffffafdf0eefbe1effefffffffffffffff9fbb2a4ee334befc5ffffffffffff +ffffffffffffffffffffffffffffedd9f98a4eea2237efa8e9feffffffffffff +fee8fac577eb3535f5ffffffffffffffffffffffffebd1fb7818ea2c9cfbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff5fde58aea1515f3fffffffffefff6e4f97331ea50a5fbffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f8691f +ec0801eb4494f9eef6ffffffffffffffffffffcf85ed180eeabcdffcb02cea6e +c3fce9fbffffffffffffffffffffffffffffffffcb76ed2310ebc6d0fbfdffff +fcabef331ff1cacaf87836ee1200ea95c6faf1ffffffffffffffffffffffffff +fffffff97a42ee1400ee6444ed2641f2b7c6fcffffffffffffffffffb74eef2f +2cf0afc2fccf84f03c18ecababf9ffffffffffffe7b5f34d32eb4381f6c8ebfe +fffffffffffffffcf66261f09b9bf9ffffffffffffcf87f34816ec0000ee0000 +ed0000ef9090f9fffffffffdf77371f08b8bf7ddcbf65a4aec8787f5ffd5f57b +54eb1b4ef29bccfdfcfcfefcfcfeffffffffffffffffffffffffffffffffffff +ffffffce8c8c513d6d71bcf8ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffd8a6f75f0dec5f5ff6ffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffdc8b1f53410ec4b71f7ffffff +fffffffffffffffffffffffffffdfdd5bbf4460aeb1228ef76b8fbffffffffff +fffffffffeebfbc57fec0000ed0000ee0000ee0000ee0000ee0000ed091bee57 +a9fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffff5fde58aea1515f3ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffcddcef6926eee0a +07ed0000eb82c1faf5fbfffffffffffffffffffb863eed0e04ea86c8fcf2fbff +9121e96bc8fceafcffffffffffffffffffffffffffffe8f32c28ea3d96f8def2 +feffffffeeacf02f1fed0000ed0000eeabc8fbf7ffffffffffffffffffffffff +fffffff6f75d3eee0a00eb9abbfaf3fffef2fbfefafdffffffffffffffffffff +ffd9f44f3eee0000ee0000ec3275f6c3e4fefef8faaf7def2f16ec0030f1a4be +fbfffffffffffffffffffffcf66261f09b9bf9ffffffffffffc869f1433df195 +bffbf5f3fdebeafdf5f5ffffffffffcef4734bf18b8bf99984f45554f1a3acf3 +6962ef0000ed0000ee8181f7d288f3645af18ed1fdffffffffffffffffffffff +ffffffffffffffce8c8c513d6d71bcf8ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffeacaf77c48eb3555f2b7edfeffffffffffffffffff +fffffffffffffffffffffffffffffffffffffef4fbb297f10800ec464df2f0ff +fffffffffffffffffcfef5eafac8b3f4684ded0000ec2335efa9ddfdffffffff +fffffffffffffffffce8fabf78ea2529efadbef6a19ff59f9ff5a3a6f5a4a2f1 +2419ed2ba0fbffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff5fde58aea1515f3ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f0fed +0000ec3c72f3daf5fefdfffffffffffffffffffffffffff6271cec9be2fdf5ff +fff1edf7391fea6dd2fcecfdfffffffffffffffffffffffff82e2bec0103f0d1 +d2fcffffffffffffe8acf02e1fee7498f6e8f2feffffffffffffffffffffffff +fff0faab8ff0241ced0000eda2bdfaf5ffffffffffffffffffffffffffffffff +ffffffffffffffdfbcf57262ef5f82f5cedffdfffffa5656ef0000eb3c63f3c5 +dbfcfffffffffffffffffffffffffffcf66261f09b9bf9ffffffffffffbe68f1 +3c50f295cdfdfffffffffffffffffffffffc8472f02159f29ad5fdfffffcc9b1 +f34834eb1c50f29ecefcc57ff44602ec0000ec4674f4c5f4ffffffffffffffff +ffffffffffffffffffffffce8c8c513d6d71bcf8ffffffffffffffffffffffff +fffffffffffffffffffffffecea8f64f14ea143ef181c5fcffffffffffffffff +fffffffffffffffffffffffffffffffff8ebfbba94f13922ec0018ee4e83f6ff +fffffffffffffffffffffffffffcb9b9f20000ec1620ee7b9cf7f0ffffffffff +fffffffffffffffffffffffffef9fdebdbf8bfc8fbffffffffffffffffffffff +fffffdfefcf5fcf0f7feffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffef5fddd8be91515f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff3ddf9e2f1fefdfeffffffffffffffffffffffffffffffffffffffffffffff +fffffffffb3c20ed0400ea9edcfcf5ffffffffffffffffffffffffffffd6b1f5 +c7e1fdf5fcffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffca160ee4264f2c9dcfcffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffae0f9d2d7fb +e8f2fefffffffffffffffffffffffffffffffff6f6625df09b9bf9ffffffffff +ffc571f1415af395d0fdfffffffffffffffffffffffc8772f1898cf6eeffffff +f8f77771ee5c78f5d8f2fefffffffffffed7bcf57167f198a8f9feffffffffff +ffffffffffffffffffffffffffffffce8c8c513d6d71bcf8ffffffffffffffff +fffffffffffffffffffffffffffffffff2d6f8a193f28ab9fbffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff1faad8fef3b48f2cfecfd +fffffffffffffffffffffffffffffffffffffbf5fdede1fae9f6feffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffefbfeefcff7a1b4faffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0d +0dea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ec7d7d +f4ffffffffffffffffffffffffffffffffffffd08c8c543f6971bff3ffffffff +ffffffffffffffffffffffffffff9898f60000eb0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0d0deaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff2ded0c6bfbfcce1f7 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff6e6e6e61616171717171717171717171717171717171717171717171717171 +7171717171717171717171717171707070717171717171717171727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727271717171717171 +7171717171717171717171717171717171717171717171717171717171717171 +7171717171717171717171715353539d9d9dffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff949494b2b2b2cccccccacacacacacacacacacacacacacacacacaca +cacacacacacacacacacacacacacacacacacacacacac9c9c9cacacacbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca +cacacacacacacacacacacbcbcbcdcdcd9b9b9bb6b6b6ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffaaaaaadadadaf9f9f9f7f7f7f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f7f7f7f9f9f9c0c0c0c6c6c6ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbf7f7f7f5f5 +f5f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6fafafafdfdfdfefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffaeaeaedfdfdfffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc5c5c5c8c8c8ffff +fffffffffffffffffffffffffffffffffffffffcfcfcc3c3c37777775a5a5a48 +4848464646474747474747474747474747474747474747474747474747474747 +474747474747474747464646474747555555727272acacacfafafaffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffb0b0b0e0e0e0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c6c6c9 +c9c9ffffffffffffffffffffffffffffffffffffcecece6a6a6a616161b0b0b0 +e3e3e3fbfbfbfffffffefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefcfcfceaeaeabcbcbc727272565656b9 +b9b9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b0e0e0e0ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c6c6c6c9c9c9ffffffffffffffffffffffffffffffbababa6262629a9a9af3f3 +f3fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffefefefefefef5f5f5 +b1b0b05b59599f9f9fffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc89f8c +a6c4e5eef7ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b0e0e0e0ff +fffffffffffffffffffffff4d9bc999083797e97cdd6e2fbf8f3f8f9f9fbfeff +ffffffd4b5a6abb8c8ddeefcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffdcbcb5aeb0bdd2edfeffffffffffffffffffdec0baafadb8cfecfeffffff +ffffffffffffe0c4beb0aab4cceafeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffc6c6c6c9c9c9ffffffffffffffffffffffffcacaca656565949494fc +fcfcf9f9f9f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8f7f7 +f6f5f5f6f8f7f8b8b9b8575757b6b6b6ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb2400e0b0300000000000000134f72b8d8f4fafdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffbf866587b2d9ecf5fdffffffffff +ffa92b2b1b6bc1d1e9fbffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b0 +e0e0e0ffffffffffffffffffffd9964f3e2000000000001eacacba605454065e +9ba8d8f8ffffffbc5a5a375496a2d2f7ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffe7777762447887c3f2ffffffffffffffffffe87f7f6940717ebff1 +ffffffffffffffffffea8888703c6976bbf0ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffc6c6c6c9c9c9fffffffffffffffffffafafa8b8b8b6e6e6e +ddddddf5f5f5f4f4f4f4f4f4f5f5f5f5f6f5f6f6f6f7f8f8f4efede7e0dcdfe0 +e3e9ebf0f5f8f8f7f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f5 +f5f5f4f4f4f2f2f2f0f0f1e1e1e18d8d8d646464f7f7f7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa7140e0a539edfd7cec6beb565260e080200a7e9e9f8ffffffff +ffffffffffffffffffffffffffffffffffffffffffffa624241678d6d8eefeff +ffffffffffa42b2b1a79cfd1ebfeffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffb0b0b0e0e0e0ffffffffffffffffffcd5e4e394b91afcef1fffffffffff8c7 +b1a7b1c2d3e5f4feffffffb85a5a34579ca2d4fbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff8c77671473c8787bcfffffffffffffffffff9cb7e794c397e +7eb7fffffffffffffffffff9ce868151357676b3ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc6c6c6c9c9c9ffffffffffffffffffbababa7373 +73a8a7a8e3e2e3eaeaeaeff0f0eff0f0f1f1f1f2f3f6f8f9f8cab08b4d2a0000 +00000000000000155e6885f0fbfaf9f4f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2 +f2f2f2f1f1f1f0f0f0efefefe8e8e8dededebcbcbd757575a2a2a2ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffff980e0e0989eceef8fffffffffffffb4f15150681d7e7 +f4fdcc8e5e272b08020400000018566993ddeef3fdffffd092521c1208000029 +565245232d6bd9dbe8c4482b203e90b19164281e100010308cb1d9eff7ffffff +ffffffffc38551415892ccd8edffffffffffffffffffffffffffffffffffffff +ffffffffffb0b0b0e0e0e0ffffffffffffffd39e4e3a240000373d332c5688aa +c7e1f9ca95777b95aec9e4f8ffffffb85a5a34579ca2d4fbfffffffffffcd2b2 +9147331f0000001b305699b8d2f4ffffffffffffffffd3a57f5f5b749fb5deff +ffffffffffffffffffffff9976763962889dddffffffffffffffffffff9f7e7e +395c8097dbffffffffffffffffffffa586863a567890d8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffc6c6c6c9c9c9ffffffffffffffffffa2 +a2a27b7b7bcacacadbdbdbdcdcdce2e3e2e9e9e9ededf0f6f5f8c58f8f450430 +6172acedfbfbf5f1ebd6cac6c3c1c8e1f3f6f2efeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeededede9e9e9e1e1e1dbdbdbdadadad2d2d2949494808080ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffff980e0e0989eceef8ffffffffffffcd151511 +2694e8ebf6ffab70658eb1c0dcdfeaf0ecc5551c17085bb0deebf8fff2d87622 +1e0e438ec8c6c5b9b3c7f2f1f6c0572b1f0900557eabd5e8f0ab752f1e113cc9 +ccdbfeffffffffffae3737220076c5c5e7ffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b0e0e0e0ffffffffffffffffe68e4e431d4874a0b1 +b6cad2e0e9f0fab95455335ea1a8d8fbffffffb85a5a34579ca2d4fbffffffb0 +6060311a548fadd1f6fffcc49f633f27469797c7ffffffffffffc46c6c410057 +9090d2ffffffffffffffffffffebb27665347d8888f5ffffffffffffffffffed +b67e6c38758080f4ffffffffffffffffffeebb86733c6e7877f4ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc6c6c6c9c9c9ffffffffffff +f6f6f69999998d8d8ddddddddcdcdcdededee0e0e0e1e1e1e2e5ebefe5ca8f7d +51526c6fd3f1f2ebe5e2e2e2e2e2e2e2e2e2e2e7eaeae2d3be7f5e400000000d +233b6b98bde5f2efe6e2e2e1e0e1dfdfdfdfdfdfdddddddcdcdcddddddadadad +7b7b7bf2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa72d0e0a3790bdb8b0b2a6830d0d +0a000052e5e9f0ffffffffffffecdacfb6afabb0b9b57738160e1385dee0f2ff +ffffac2424177dd6d8eefeffffffffffffa82b2b1a70c9d1eafdfffffffffcb4 +32312092ccccf0fffffffffff8f2ebf1f4f8fbfdffffffffffffffffffffffff +ffffffffffffffffffffffffffb0b0b0e0e0e0ffffffffffffffffffbb4e4e31 +65adafddfeffffffffffffb65455315aa1a8d6fbffffffb85a5a34579ca2d4fb +fffcc4605e3d5c8d9ed2e3e5e4e5edeed5b06651327d9797ecfffffffffffaf6 +f1f2f3f3f8fbfeffffffffffffffffffcc75744b377188b7eaffffffffffffff +ffffcf7e7d50346a80b2e8ffffffffffffffffffd2868555316477ade7ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc6c6c6c9c9c9ffff +ffffffffeaeaea9898989e9e9ee4e4e4dededee1e1e1e2e2e2e3e3e3eaeff1ea +d2947f583d6f6fb3f6f4f4e8e6e6e6e6e6e6e6e6e8ecf0f2dfb89973324d6167 +dbfafcd2a09a561d445e88cef6f6f1e6e5e5e3e3e3e3e3e3e1e1e1dfdfdfe1e1 +e1bbbbbb818181e1e1e1ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffa7360e0a155483797269 +64768a99b6eaf7f9fefffffffff469191809000049687695a7b5883c1711148e +dee0f3ffffffa124241674cfd8edfdffffffffffffa42b2b1a70c9d1eafdffff +ffffffe832322d6dc2cce6fcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffb0b0b0e0e0e0ffffffffffffffffff +b34e4e2d5ea8afd9fbffffffffffffb65455315aa1a8d6fbffffffb85a5a3457 +9ca2d4fbffffcc6060412032323d4646423e3e3e49473b3a417ea2aeddfbffff +ffffffffffffffffffffffffffffffffffffffdc747458638989ddffffffffff +ffffffffffde7d7d5e5d8181dbffffffffffffffffffffe0858564577979d9ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c6c6c9 +c9c9ffffffffffffe5e5e59b9b9ba5a5a5e4e4e4e2e2e2e5e5e5e7e7e7e8e8e8 +eef3f3edcb95804e3e6f6fb3f7f6f6ececeff2ebdcbcab9f9a9cb1d4ae996d4b +5664a5e4f8fbf9f3eecba08f57585e74eff8f7efeae9e7e7e7e7e7e7e5e5e5e3 +e3e3e2e2e2bebebe8a8a8adbdbdbffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffff980e0e0989ec +eef8fffffffffffffffffffffffffffff49819180ecce5e5fcffffffffffffae +2c20157fdedef0ffffffa12424167dd6d8eefeffffffffffffa42b2b1a70c9d1 +eafdfffffffffff54032306dc2cce6fcfffffffffcf6f6f6f9f9fcfefeffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b0e0e0e0ffffffffff +ffffffffb34e4e2d5ea8afd9fbffffffffffffb65455315aa1a8d6fbffffffb8 +5a5a34579ca2d4fbfff7be605b39829e9eeeffffffffffffffffffffffffffff +fffffffffffffdf9f9f7f8f8fafdfdfffffffffffff0b47368364d8989caffff +fffffffffffffff0b87b6f3a488181c7fffffffffffffffffff1bd83763e4479 +79c3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c6c6c6c9c9c9ffffffffffffe8e8e8a0a0a0a0a0a0dfdfdfe7e7e7e8e8e8ebeb +ebedededf0f4f6f8f1c88f804a596f6fe2faf8f8f7f6f7f1cc96864e626868d9 +a8996e475a64adecf9fdfcf6f4d0a0935e575e73f0f9f8f4efededededebebeb +e9e9e9e8e8e8e3e3e3b6b6b68e8e8edfdfdfffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff980e +0e0980e4eef7fefffffffffffffffffffffffffffba119190f7cb3d4eef9f2de +be8c1a160f001c8edee2f3ffffffaf3224181977d2dce0c6bbc8f4f2f5ac2b2b +1b70c9d1eafdfffffffffff53232306dc2cce6fcffffffffb64837240576c5c5 +e7ffffffffffffffffffffffffffffffffffffffffffffffffb0b0b0e0e0e0ff +ffffffffffffffffb34e4e2d5ea8afd9fbffffffffffffb95455335aa1a8d6fb +ffffffbc5a5a36579ca2d4fbffffffa16060280035768caedbebe8e6e6c87a5a +5a9197a4ecffffffffffc9786c4609579090d2fffffffffffd81737139728bb0 +eafffffffffffffffffffd887b79376c83abe9fffffffffffffffffffd908381 +35657aa5e7ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffc6c6c6c9c9c9fffffffffffff3f3f3a8a8a8939393d8d8d8eeeeeeed +ededf0f0f0f2f2f2f3f4f8f9f9fcc08f8d3f04316372aef1fffffff5cb96884d +5e6868f0e7b19a76385a6480f0ffffe0b69e6d39455e7cd1fbfbfbf3f3f3f2f2 +f2f0f0f0eeeeeeededede2e2e2a8a8a8919191eeeeeeffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffa30e0e0a80e4eef7feffffffffffffffffffffffffffffffb66a22120901 +00000000477a873c11133aa0dee5f6ffffffffe7a725211600000000002fd5d5 +deab2b2b2779cfd4ebfefffffffffff53e323075c9cce8feffffffffc04f3827 +3187c5d1ecffffffffffffffffffffffffffffffffffffffffffffffffb0b0b0 +e0e0e0ffffffffffffffffffb34e4e2d65a8afddfbffffffffffffb455553a69 +a7addefeffffffb65a5a3d65a1a8dcfdfffffffffff1b19262321e0600000000 +0000072d5b9cb6d5ffffffffffffd07d6c4b2c6490a8dcffffffffe19e735b3e +898ba0fdffffffffffffffffffe3a47b613f818399fdffffffffffffffffffe4 +aa836840787a92fdffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffc6c6c6c9c9c9fffffffffffffbfbfbbababa939393c8c8c8 +ecececf2f2f2f5f5f5f8f8f8f9f9f9fafcfcfcfefbc8a88b4920000000000000 +0000002464689bf9ffffe8cda8794e15000000000e2b5c76a7f9fffdfdfcfaf9 +f9f9f8f8f8f6f6f6f4f4f4f0f0f0d6d6d69f9f9fa2a2a2f9f9f9ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff3ebe4e3e9f0fcfcfefffffffffffffffffffffffffffffffffcf7ebf1f0f4 +fafcfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffb0b0b0e0e0e0ffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf6f1 +eeecedf1f5f9fcfeffffffffffffffffffffffffffffffffffffffffffffc071 +724048818bc6f5ffffffffffffffffffc37a7a44437983c2f5ffffffffffffff +ffffc78282493f717abef4ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc6c6c6c9c9c9fffffffffffffefefedfdfdf9999 +99a2a2a2e7e7e7f9f9f9fcfcfcfefefefffffffffffffffffffffffff9f6f3ed +e8e4e8eaedf3f7fbfffffffffffffffffffefbf9f7f3f2f4f5f9ffffffffffff +fffffffffffffefefefcfcfcfafafaeeeeeeb9b9b98c8c8cd3d3d3fefefeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffb0b0b0e0e0e0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffd87272526d8c8ce5ffffffffffffffffffffda7a7a58678484e4ffffffffff +ffffffffffdc82825e617c7ce2ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffc6c6c6c9c9c9fffffffffffffffffff8 +f8f8c1c1c18c8c8cb9b9b9f6f6f6fefefeffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffefefef9f9f9d0d0d08d8d8dadadadf5f5f5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b0e0e0e0ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffc6c6c6c9c9c9ffffffffffff +fffffffffffff2f2f2b8b8b8848484b9b9b9f9f9f9fbfbfbfdfdfdfefefeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffdfdfdfbfbfbfafafad2d2d2848484a5a5a5ededed +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffb0b0b0e0e0e0ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc6c6c6c9c9c9ffff +fffffffffffffffffffffffffff1f1f1c1c1c18080807f7f7fbbbbbbe7e7e7fc +fcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffdfdfdedededc5c5c58d8d8d747474b3b3b3ecec +ecfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffaeaeaedfdfdffffffffefefefdfdfd +fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfc +fcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd +fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffc5c5c5c8 +c8c8fffffffffffffffffffffffffffffffefefef4f4f4d6d6d6acacac878787 +7070706969696868686969696969696969696969696969696969696969696969 +696969696969696969696969696969696868686e6e6e818181a4a4a4cececef0 +f0f0fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffadadadc4c4c4dadadad9d9 +d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 +d9d9d8d8d8d9d9d9d9d9d9d9d9d9dadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadad9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 +d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9dadadad9d9d9 +b2b2b2c7c7c7fffffffffffffffffffffffffffffffffffffffffffafafaf0f0 +f0e3e3e3d5d5d5cacacac6c6c6c6c6c6c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c6c6c6c9c9c9d2d2d2e1e1e1eeeeee +f9f9f9fefefeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffefefefbfbfbf8f8f8f7f7f7f6f6f6f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f6f6f6f8f8f8fafafafdfd +fdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffff +ffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8 +d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0 +d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffff +ffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1 +e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffff +ffffffffffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4 +f4b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8f4 +f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefef +efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffff +b8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ec +ececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffffffffffff +ffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5 +c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeef2f3f2ddd6ddc9becbdedee3eff2f1eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffff +ffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eef0f1efe9e4e2d7cbd2dadce1ebf2f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeff1f3f4efe3c8ab823933485b6e96e0f8faf5f1eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff2f2ece0dcce +c5c3c3d1d5dfecedefefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeff1f3eee4dadbd4cbd4dfe6e9edf1f0efeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef0f3f6f3e6d7c0a2844133270000001c4b78a5c9eaf6f5f4 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8 +d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeff0f2f6f2ddb5a4977d7c7f848b8b8b8a8a8a8a8a8a8a8a8a8a8a +8a8a8a8a8a8b8b8a837d8083a1b2c0edfcf9f1eeeeeeeeefffffffa446032921 +004ea1f0fafcf5efefeeeeeef0f5f8f1d7c2a69ba09db7d1e7f5f3f1efefeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f5fcfcf1a5312e +3c000051c6cbdef6f2f2f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeefefefececeae7e7e2e6e6e4e6e6e6e6e6e6e6e6 +e6e6e7e7e8e4e1dfdcdcd9dce4e7e9edf0efeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeef1f5f5f9c9979749000000002b6464a6fbf9f8f2efeeeeeeeeeeeeeeee +eeeeeff1f1efe9e5d3c1b9aca9b4c8d2def2f5f3efeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeff3f3f4e9cdb5813c0000000000000607061417120d070c203751 +8ce2fcfbf6f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4fbfbf1c48e3b3032001057b1c2d8fbff +e445453b0000003a82b2cde9f7f3f3f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeef3f9f9fca858582b0000000046a3a3caf9f5f4f1eeeeefefef +ededede5e5e5ddddddd6d6d8dbdee1b18e603c22000000000000000000005587 +8fd1f4f7f6f2efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8 +d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeefeff1f7f1ecd2400000000101010a0a0a08090a0a000000 +00000000000a0a0a080a0a0a00000001020247eafffffffbe9b8a19992998a41 +02021500003e738a9daba5917b62523d2d04030200000000000000004fe7eef3 +f6f0eff5fdfee9b89256453626282a2d2d2e2e2e2e2e2e2e2d2e2e2e28243235 +43759bcdedf3f3f0f0f2fcfcfdba85633e291e191816171e284a719fdae8f2f9 +d483302732000064c2cbd4e2dedfe4e8edeeefefeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0 +d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffff +ffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeef0f4f8f9ecb96f6339000000000000000000 +000000000000000000000000000000001a54829bd2f8f6f6f0eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeff5f5f7dcb895653200000000354e63b4dbf7f8f8f3eeeeeff4f4f6 +e1c8ad754f1c1b455b799095a6690900002c5656aafbf9f9f1eeeeeeeeeeeeee +eeeeeeeeeeeeeef0f2f3f7f0dbb5975e0000001b232871828573664d00000000 +0008334057d8fcfbf9f3efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef6fbfbedac4e3a240800006cbd +bde2ffffea60453d12000069a8b7def4f5f3f1efeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef0f9f9fac88e573b1d00000000557fa0d2e9f7f6fafcfaef +be60583a000000000000000000000000000000000000000005000a0b00144385 +99bdf2f7f5f2f0efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff2f4f5ddc6baa2938b8c919cb2 +a17800000105060d8da9ac9c908c86919eb8c5d6fbf8f5eef0f8ffffea540101 +0100000000000000000000000000004c4600030e00002260a3acb5c5d2d5e1e8 +e7eaf0efefeeeef8fefee5983f140d040000184b55504f4e4d4c4c4e575d5217 +0c0a020000187cc5e0f0f6f0f0f2fcfcfd943927351500484f310d242e002f2b +00090800000000000000000000000000000060acc8e2f4f5f2f1efeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1 +e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffff +ffffffffffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff0f3f4ece1cabeab8e8b868485 +868a8a8a8a8a8a898a8c949c9471514923000000417082bfe3eae6dacbc8c6bf +c0c1b8b8b8afafafa8a8a8a4a4a19594948c8f9ebfccd6eff7f5f0eeeeeeeeee +eeeeeeeeeef0f5f5f7dcbc946438010000002749619fd2f3f8f8f3eeeeeeeeee +eff4f4f6d6a0a05c0000033a5c5fa4b0a66f170000335656b5faf9f9f0eeeeee +eeeeeeeeeeeeeeeef0f2f3f7f1e3b49a720000000000093b475dd9e2ccad6d33 +000000253842abe3fcfbf8f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff0f0ede8e4dedbe3f2f6d4953e331d00 +000165bcbde0ffffdb5645380600005390b2d1dde5e4e1dfe7ececeeefefeeee +eeeeeeeeeeeeeeeeeef1f9f9fbc795563a21000000003e759cc6e4f4f4f4f1ef +f1f5f9efd9ae9c885e565a5e6067757c85a7a3954f4b3d00000000124d94a0cb +f9f6f5f1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff3f7eded860200000001 +03031631311e000000010202242f322c0f00000003040486fffffff2eeeeeef3 +ffffffbc020201000000e0c24d051a070062e6cc3c080b05001492edf3faf6ef +efeeeeeeeeeeeeeeeeeeeef7fefeeb9a29150d05000082e5e5f4f2f0f0eeeeef +fdfdfda8321f1405000075c5dceef6f0f0f3fcfcfd89343d561634e2d9992b2b +4a000076d1d1e8ffdf8d312a36000064cacbdfedeae9efeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeef3f7f7f39a78711f000013588494a4847e4e07 +000000000000000000000000000000000000000000000000466b75c6f0f9f7f4 +f0eeeeeeeef0f3f6f7efc09d833e10000000002c4a62a7d2f3f8f8f3eeeeeeee +eeeeeeeeeff4f4f6d5a9a05c0f000e3a5c6fa3b0a66f170000335656b5faf9f9 +f0eeeeeeeeeeeeeeeff3f3f5edddc68a64370000000a140f1a31240000000000 +00000000192f3f89c7f2fbfbf5eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f7fbfce8a03b351f0000000000 +00000000000000000000000000000000000000000000000000000000569ab3d7 +f1f6f3f2efeeeeeeeff1f5fafaea9b664b24090000000047769dcbe5f4f4f4f1 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef3f8f8f3cd98614522000000648c +95dcf4f6f5f2efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff2f9efed9818 +000004080c468fdcbe8c00000005070c93b9cab6884000001d040483fffffff3 +f6fdffe1bc765234010100000000000000000000001850634103040a00001a49 +6d6c675a514e5a62719dbfddf8f5f3f9fefeeb9a29150d05000082e5e5f4f2f0 +f0eeeef0fdfdfd9d321f1505001375c5dfeef6f0f0f3fcfcfd8c36334d1622ad +b68f21241c00000025343d3334180a090400000c35373a3126262b2b3c8ab8d6 +ebf1f4f2f0efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4 +f4b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8f4 +f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f5f7f9eac37867440000004a7684c9ed +f4efebe2e0e0dfecefefd9bfae8c6f62868e825d6352000000274f6ca2d1f0f7 +f7f3eeeeeff4f5f5eddac07d614200000000000000001d606891f0f9f8f4efee +eeeeeeeeeeeeeeeeeff4f4f6daa9a0630f00033a5c5fa3b0a66f170000335656 +b5fbfafbefebeae8dfdae6e5e3f1f5f9ddc2b6722d0e373e498abbe7cab7b032 +00000000002132429dcdf7fbfbf4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefef +efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff0f3f2ece0cabdb1a7 +adb09e754027190a00003f8897a9c0bc9e393127020000456e8498a0a4a7acb3 +cad9e3eceff0f0eff0f7faf7e5c69f47372600000000000000002e99a7bff3f5 +f4f2efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff3f8f9f3cc66604400000029 +5f86b2d8f0f5f5f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff2f9 +f1ed982d00000002030320363427000000010202242d372c1d00000403041d99 +fffffff3f5fdfee4b36c59574d55592b01010700001c4b5465656f5c3b040402 +0000000000000000000000132872a6dbf5f9f5f9fffeeba155150e0600000009 +090908080808080a0a0a010101000000002b7cc5e3f0f6f0f0f2fcfcfdb05027 +1a080000000000000000001a4f5e5c5f5f5e656a73583718110d000010375a65 +7caacae1edf0f2f1f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffff +b8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f7f7fab878773a010000004084 +84bff9f6f6f1eeeeeeeef0f6f6f8cc91824e1000000000000000204c6a9bcded +f7f8f5f3f4f2eae0cc926c57200000000000142b2d1c3b430000115d6875ecf9 +f8f5f0eeeeeeeeeeeeeeeeeef1f4f5f4bca09733000024465c91b9afa66c1500 +00335656b5fffff8c4ab9d360000233c518bd1fcfafaf3f0f3f3f3efe4ae9173 +130000000000000000070a0a19211f131711182d3f6a89bdfcfbfbf0eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ec +ececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeef5fbfbf2ac4e3c240800006cbdbde2fffff461454111000062a8b7dcf4 +f5f3f1efeeeff0f5f6f3e2d2b66b3c3112000000000020444710222d00001395 +a7aef1f6f4f2efeeeeeeeeeeeeeeeeeeeeeeeeeeeff3f8f9f7d676624a0c0000 +000000305a7db7d4ebf6f5f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +efeff2f9f0ed9828000007090b4691cfb97d00000005070d90b4c0b0853f0000 +1e040483fffffff1eff3fefde9a88e7d7376683202011300002f5363849aa27c +33061215004dafad040911000014dbeff0f7f0efefeeeef7fefeeba13d150e08 +000032798a827f7e7d7b7b7e889586431310080000167cc5dff0f6f0f0f3fcfc +fd8b353e4f1936bcc28924273f00065b9d9a9d9b999c9fabb29661281e210100 +3266a4b5c0e5f1eff0f0f0efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffffffffffff +ffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f7f7f9d2a977502d01000000 +406b85bfe5f9f6f5f1eeeeeeeeeef1f6f6f9ba82823d000008202f4a7397c3d2 +e3f7f7f3eef1f5f6f9e48d8d6d000000000013466086cae9d394905900000b5d +6875ecf9f8f5f0eeeeeeeeeeeeeeeef0f4f5f8e9a0a07c000000375a5cbddaad +a666110000365656bad4abaa5401000000093c4f64d1fafbede6d298795d2500 +000000000000000d1c2044677175706d66655d5237060000223f3fa6fcfbfbf0 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5 +c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeef6fbfbedb25b3a281200116cbdc2e1ffffce4545330000006d +a8b7e1f4f5f3f1efeef2f9fafcd64e4e3d00000000001d6e96bae1efb9555335 +00000f95a7aef1f6f4f2efeeeeeeeeeeeeeeeeeeeef1f6f9fae7c663553f0000 +00001016000b0f00000001316494b7dcf8f5f5f0eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeefeff2f8efed8e1c0000000000010100171a00000001010219223220 +1100000003040486fffffff2f0f7ffffdc6f3f472403010000000000000c0919 +3e5667653c0417200049a4a8040912000014d5eff0f7f2efefeeeef7fefeeb9a +29150d05000082e5e5f4f2f0f0eeeef0fdfdfda8321f1405000075c5dceef6f0 +f0f3fcfcfd89343d531734dfd99d2b3c4800131c000304000000000000000000 +000000000000000036b1c7d6f4f4f2f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffff +ffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f3f7f7eedf9d6a5a2401000000 +00245074a6ceecf6f6f4eeeeeeeeeeeeeef0f6f6f8e58282680000005a7a7adc +faf7f7f1eeeeeeeeeeeeeeeff0f1eae6e4dad5d0d8e2e0e9f5f9f9f2cf948854 +00000b5d6875ecf9f8f5f0eeeeeeeeeeeeeff4f4f6e3bf9f713500000019555c +88f0d9b3a06020001038251f574800000000013a4d54ccf2fdfffaf7c0b1a722 +000000182d27426d7014004a3f47a0e7fbfbf8f4f3f5dfbdb26f0000453f3f9b +fcfbfbf0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffbfbfbc181432e1700 +000046b7b7d2f8f3f3f0eeeeeeeeeef0f1f2e6dedbd6d5d0dce9e9eef6fbfbef +b4554e3200000f95a7aef1f6f4f2efeeeeeeeeeeeeeff5f9f9ebcba257422900 +0000000243969ac5e5b883583713000000001c4c92a7caf9f6f5f1eeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8 +d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeff0f1f3f8f3d29e4500001800002800002209095b +fffefefdf1d5b4b4b2b0bbd1f4f8f5efeeeeeeeef0ffffffb461040201000000 +0000000068bae4840708290000a6e6ba090c0f000014d5eff0f7f2efefeeeef7 +fefeeb9a29150d05000082e5e5f4f2f0f0eeeef0fdfdfda8321f1405000075c5 +dceef6f0f0f2fcfcfd8e37354a1625979a611d1f3000189fca72302e28030066 +bdcd954a34410e0063acc8e1f2f2f2f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1f4f1ebe2d2bf9477542d1d0a00000000 +0000466980c5e3f4f6f6f2eeeeeeeeeeeeeeeef1f6f6f9c79881491900000034 +7a7ab2faf7f7f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff2f5f7f2 +cf94885400000b5d6875ecf9f8f5f0eeeeeeeef0f3f5f8edd09f845200000019 +3e5888c9f5f2d7b68f5d2100000000000000001b435489dcfcfaf8f3efefefef +ebebebdfdae0e8e5eadcb5b56c0000413d4798e2fbfbf9f5f5f4ddbdae680000 +423f3f9cfcfbfbf0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff3fbfbfac188432d19 +010000005894b9daeff7f3f2f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0 +f5f9faefb4554e3200000f95a7aef1f6f4f2efeeeff1f4f9f4eab68c55351d01 +0000000029579ab5d3f9f5f5f7f8f8ecc89a5e43230000000002468892c5f4f7 +f5f2efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8 +d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff3f8f2f0871d000000000000 +04080c60dcf6f9fbf5f2eeeeeeeeeeeeeeeeeeeeeff4fffffca2520301010000 +00000000001c0000220000010000000000d8f3c10c0d0d000014d5eff0f7f2ef +efeeeef7fefeeba155150e060000001818181717171616171a1a150303030000 +002b7cc5e3f0f6f0f0f2fcfcfdb050271a080000000000000000108ed1d29730 +2f1b0000009d883d2f4a170264acc8e1f2f2f2f0eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0 +d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffff +ffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff3f8f8f7d5706d4f000000000000 +16365289b0cfeaf2f6f3f0eeeeeeeeeeeeeeeef0f3f7f8f3bc97783e18000000 +0057787cd8f7f8f7f2efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef +f2f5f7f2cc94884f00000a5a6875e8f9f8f6f0eeeef0f4f5f8ea9e9e7e010000 +0001315d5fb1fffffff0d7ba8a5d2900000d2a3d57a4cdd8f3f9f7f1eeeeeeee +eeeeeeeeeeeeeeeeeeeff3f3f5e4c3b574220000000000000000000000000000 +00000008263f55b1fcfbfbf0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef3f9fbfcd8ab41342400 +00000000005989b5daedf6f3f3f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeef0f5f9faefae554e2e00000f8fa7aef0f6f4f3efeef1f5f9faebbe5f55 +39000000315e83bbd7ecf6f5f4efeeeeeeeeeef4f8f8f0ce9563482600003685 +91b6f2f8f5f2f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeff0f2efe5daccc19f8a7b3f180000000001 +0100141400000000000001020327546b748c939eb4bec7dff4ffffffc6010100 +0000006d45004f2a00a6c4b5050605000000005bc4f3f8a40d0d0b000014d5ef +f0f7f2efefeeeef8fefee59815140d0000001c646f6e66666461636576786e2a +0f0e0400000073bedceef7f0f0f2fcfcfd91424c572138b0d0cdb4b1afa9b4cb +eff1eedededfdde4efb76f302326000063b4c8e2f4f2f2f0eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1 +e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffff +ffffffffffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f1f2e9e1ded3c9 +c9d0d5dde6ebeff0efeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f3f7f8e9ad887942 +0d1b5b6a8ac6e5f7f7f5f1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeff1f5f6f0daa991782c1c4a717ba4e8f9f8f3efeeeeeeeef1f4f3e5db +d4b49c97a5aebbd5e9f5f4f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeff3f3f5ddbbb56a1200202a2e55859fa49d97 +95908e7a684711264a4b68b2fcfbfbf0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f3f9fbefcb +876b63493e5ea1bbd2ecf1f3f2f0efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeff3f9faedc4765e5c291d559eb2caeef5f4f1efeeeeeeeeef +efefebe8ebe9e4e9edebedeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff4f9ececb6000000000000010406 +1e4975bdd2edfdfdf6d6c6ae765e471600000000000000000102028feafffffa +f2e9e4ebffffff800303330000828a32040902001684f5f6faffeb8b0d0c0900 +0015d5eff1f7f2efefeeeef2f6fae9ccb79a9498a1b6d4f4f3f1f0efefeeeeee +f0f2f3eadbd5cbc5c8d0dae4efefefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeef9fcfcdc93332a18010000003780b9d7ebf5f2f2f0eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff0f1ecdbd0cbcdc9 +d3e3e9f4f1f0eeeeeeeeeeeeeeeeeeeeeeeeeeeff0f1ede7e1d0ccd1d6d6e1f3 +f3f1eeeeeeeeeeeef0f2f2e6dbdad6d5dce1ece8ecefe4e9eef0efeeeff0f0eb +e5e5e0e4e4e5efefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeefeff0ecebe6e1e5e4e4e9edeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4 +f4b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8f4 +f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefef +efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffff +b8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5c5c5c5ec +ececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffffffffffff +ffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef5f5f5 +c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8d8f2f2f2 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffffffffffff +ffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8d8d8d8d8 +d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0d0f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef2f2f2d8 +d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1e1e1d0d0 +d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffffffffffff +ffffffffffffffffffffffffffffffffb8b8b8f4f4f4eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeef5f5f5c5c5c5ecececefefefeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f2f2f2d8d8d8d8d8d8f2f2f2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e1 +e1e1d0d0d0f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef4f4f4b8b8b8ffffffff +ffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffefffffdffecfbc291ef +3c5ef6f8f5fee7dcfbfefffffffffffffdfee5dcf79590f6f1fffff8f2fdd2bb +f6b7bbf8c0c0f7b2bffafffffff2e6fc934cec2428f1fdffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffc0 +92f1a3ccfdf9fcfffffffffffffffffffffffffffffffffbf5fcf5fafffeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +faf7f1e7dedad7dce3e9f8fffffffffffffffffffffffffffff9f7f6e2d9dad8 +dbe1f2fdfffffffffffffffffffffffffffaf8f8e3d9dad7d9e0f1fcffffffff +fffffffffffffffffffbfaf6dfdad4d2d8d9ebf7ffffffffffffffffffffffff +fffffffff9f3f2ba8a81a9dcfdfffffffffffffffffffffefff9f4f9ffffffff +fffffffffffffffffffffffefefee7dbdad2d3daeefcffffffffffffffffffff +ffffffffffffffffffbf8578a2d6f9fcfefffffffffffaefe3ddd4d3d9e0f4fd +fdfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffbe9dededbdee3f4f9fa +fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb +f2e9e2dad6dadeedf5f7fdfffffffffffffffffffffffffffbece3e2dcdde2f0 +f6f7fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f4 +f0e5e2dee0e5ecf4f7fdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffed9bef85026ed3ea2 +f8c291ef3c3cf6c5c5f51129ec71c8fcf7fdfde3f5fcccc6f03232f1ffffffec +d0fb7d03eb0000ee0000ed1f2aedc7fafdd8c0f00000ed111ced88d0fdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffff9d0de8087bf9f0f7fffffffffffffffffffffffffffffffa1a18ea007f +f8e5f3feffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2 +dbc6975d280000000000000000102f3d6ec9efffffffffffffffe4d0c36c2a00 +0000000000082b3752d4ffffffffffffffffe9d8ce732d00000000000006232c +49d2fffffffffffffff8e4d9b24200000000000000000f181e87c0ecffffffff +fffffffffffffffae6e6be0c15178ce5fffffffffffffffffef7efe4890e0f0f +ebfffffffffffffffffffffffbf9f7893600000000000001020225c9ffffffff +ffffffffffffffffffffffffd30606057ddcf7fbfeffd4863f0a060300000000 +0000000037abdaf2fafdffffffec331514030000000000000000000000000000 +2f8fd7e6f4feffffffffffffffffffffffffffffffffffe07529230f00000000 +0000003facd1dff7ffffffffffffffffffffffffffffffffffffffffffffffdc +9e65311e0d00000000000000002c88aecdecf9ffffffffffffe589473d1a0000 +00000000003693b2c9f1ffffffffffffffffffffffffffffffffffffffffffff +fffcca89593e1a00000000000000000000000057919ed3f7fffffffffffbe9a6 +7d582b11000000000000529393ceffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeeafabc +83ec1d18ed595bef2d56f29567ec3939f2ffe0fac96aeb3574f9ccccf23232f2 +ffffffe5d0fa772eeaa1e6fbd26aeb2a61f8d7d7f60c1eec6bcefddbd6f00e18 +ec7db8fbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffff970de8088afaf0f8fffffffffffffffffffffffffffffffdb3 +96f2b3d6fdf7fcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffdcbab677363577afcce6eae9d1b09b550d1b41418efffffff4dac1a04f +0a2a375bc6f0fce5d0be6b2017363688fffffff6e1cca95408222d52c2effdea +d9c97122122b2b81ffffffebd7d76e09162557a0fdfffff9f0e8b97e46192020 +cffffffffffffffffffef5e5dc890b17177efffffffffffaf2ebb2470b160000 +030e0f41f3fffffffffffffffffdf9f6cb650105062fb6ecfffdfcf087290101 +0169fffffffffffffffffffffffff39a0506046ef7f7fbffffff8b190a5293b5 +dae7eef2e9d47a1e0d080161ececf4fffff4b6a6a1aeafb0b1b1afafb4c5e0c8 +8e1a170f2f8fdee6f4fefffffffffffffffffffffffffffff56627260c3573c5 +dbebf9fae0893826150349cfcfe0ffffffffffffffffffffffffffffffffffff +ffffffa2463b5c7991bed7e5eee9da9247351d054dbcbcd7fffff67b4642152e +63a9c5ddf7fae59a544022053eb1b1ccffffffffffffffffffffffffffffffff +fffffffffffcc26b593a428293a2bcc3bab2b1b0aba3a6c0d1daecfaffffffde +696650021c457c96bbe3e1d3bbbbc6d2d5e8ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff8fcd5c6f46e74f38d5bed2e26f19c91f0487bf7fce1fac076ed3598fccccc +f13232f2ffffffe5d0fb7b2eeb94d2f8610bec0b38f03810ed277ff7fffffffe +f5fdd99eee0006ec1843f1c7e6feffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffb230ea0a2ff2b592ee0d0aed0010eda9cffdf9fcff +ffffffb76fed68a8faeff7ffffffffb967ed558bf5af87f01911ed0011ed95bc +fcf3f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff3d6bd9c4b3b4142effffec8 +c1be252e3d70cffffffffffffff5c8c8a5203536adfdffd2cccb23253268ccff +fffffffffff7d3d3ae1a2b2ba9fefddad7d0121523259dedfffffffffffadede +bf121d209aecffffffffffffffece5e540121943bdfffffffffffffcfbf6dec7 +ccdce0c0680e0f25f3fffffffffffffffff7f6f21c06084ac2fffffffffffffe +fdfdd001010198fbffffffffffffffffffff46050531b3f9f9fdffffffffffff +ffffffffffffffffffffffd56f110e09d9ecedfdffffffffffffffffffffffff +ffffffbf5c1c140ec2e1e2fbfffffffffffffffffffffffffffffff5a7272618 +a1d6d6f5ffffffffffffffda2e2e2673becfe9fbffffffffc2834e3f5894d0db +efffffffffffffffffffffffffffffffffffffffdd8c42361cafbcbdfaf8b346 +432a8bb8b8edffffffffffffffdf4d4d3f62a2b1dbf8ffffffffcb9569515a83 +b5c6e5fffffffffffffcb859593466a3a3dcffffffffffffffffffffffffffff +ffc66a6441276e98b0e2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffe5bffa7202eb0000ee0000ee0000ee0000ed2439efb5e5fac987ed35 +96fcccccf13232f2ffffffecd6fb812deb1850ef0000ed1017ee5174f00807ed +3536ee4657f05742ed0000ed1720edc0ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffb23feb0a03ec709cf5ddeaf9a263ec0c07 +eac1eafdfbffffa118e90f7ff8e5f3feffffffad4cec1306ec5a87f6dcedfaa6 +6ced160cecd6dafcfeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff1d7bc954d1b41418e +fffff6c1c1a6243c3daffcfffffffffffffecfc8c52326365fc3faccccb91d31 +32aafcfffffffffffffed8d3d0221d2a56bbfdf9ede0ba782f070f16497aa8de +e8dd9c4b1220269bfffffffffffffffbf0e5c566171919ecffffffffffffffff +fffffffffff7efef890e0f0ff3fffffffffffffffdf6f6d30508089afbffffff +fffffffffdfdf91e010136aefbffffffffffffffdb73050402e4f9f9feffffff +ffffffffffffffffffffffffffffcc71100e0761ececf4ffffffffffffffffff +ffffffffffd61b1b16429bdfeaf6fffffffffffffffffffffffffffffffffff5 +a7272618a9d6d6f6ffffffffffffffff6a2e2e137cc6cfebfdffffffad343420 +0078c9c8e9ffffffffffffffffffffffffffffffffffffd78e40341b4dbcbcd7 +fff7b446432a91b8b8f0ffffffffffffffff804d4d1b6aa9b2dffbffffffb952 +52320066aaaaddfffffffffffffcc274593a1a4e615e777c7c8390a1cbdde5fa +fffffffff884645f1539596263675c45383f455988a2c2deeffcffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe0bef9772eec76c6fbf5eafbe0e1fbd7c5f66339ec9fe5fa +c985ed3596fcccccf13232f2ffffffe8d0fb832aeb6fbff44128eca1edfff6f3 +fecebcf7c8c8f3161feca0dbfadce0fdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffff9c0de80881f9f0f8ffffffffff +fffa1914e944b0fbeff9ff9c18e90e7bf8e5f3feffffffa31dea1278f8dff0fe +fffffffffbf42424e99cdafcf4ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff2b398947e72 +7480837e6d697fb1baccf6fff3b79e997e707380837e6e6a7facb5c8f5fff3bb +a39e7e6f727f837f6f6c7fa7afc4f5ffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff9e3ceac7037253b +42aaeafffffce5c1b873243a3db0f6fffffffffffffcd1c8bf21203634afedcc +cc851e2f32abf5fffffffffffffddad3c9231827299fedfffbedd9c178111611 +65846500000007141d50a5e6fffffffffffff5e4e4920c161974d6ffffffffff +fffffffffffffffffff7efeb890e0f0ff3fffffffffffffefbf6ea920508089b +f3fffffffffffffffdfdf12a0101008deafeffffffffffa305030363cef9fbfe +ffffffffffffffffffffffffffffffeb9e540f0a0584d4eef7fdffffffffffff +ffffffffffffffb65c1a120869e3e3f0ffffffffffffffffffffffffffffffff +ffffffffed6627240c003c8eb1bdc8c7c59d7c4e1b140a2b7cc6d8ebfdffffff +f8f2ebf0f5f8fcfdffffffffffffffffffffffffffffffffefb1773b261369a9 +bde1f8fffffff07b46401500337a98acc4c9c7a4865f2c2110256aa9c0dffbff +fffff9f4eef1f4f5fafcfefffffffffffff8cea6877f807d8e94a397833f352b +00002e929ebaf7ffd3646448001f4a728daacbd2d4ad8e5b3d26004a7e93c9ef +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639 +efbee5fac985ed3596fcccccf13232f2ffffffe5d0fa782eeaa0e1fbbd4dea1a +48f19c8bf29090f39288f01115ed7a92f38d89f16b7ef7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8ff +fffffffffffd6914ea0877f8e9f4fe9c18e90e7bf8e5f3feffffff9e1dea1278 +f8dff0fefffffffffff92424e974cffbedfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3ae +928f76696b787a7562657cb2baccfbfff4b2979476676a787a7563667cacb5c8 +fafff4b69d98766569777a7665687ba7b0c4faffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff0d9c393561a22 +3843a2defffffffffffff6c1c1a6223c3da7fcfffffffffffffecfc8c5232636 +5fc3faccccb91b3132a2fcfffffffffffffed8d3d0221e2b57c1fad7d7bb1220 +2789d8fffffffffcf5edcca0690b18206dc7fffffff8e4e4ab131a1abeffffff +fffffffffffffffffffffffffff7efeb890e0f0ff3fffffffffffffffdf6f6d3 +05080890fbfffffffffffffffdfdf91e010136aefbffffffffffc0030403b4fa +fafdffffffffffffffffffffffffffffcc7c2f0b070279c5eff6fcffffffffff +ffffffffffffffffffde8d1a160d88d1e4f4fdffffffffffffffffffffffffff +fffffffffffffffffffffce8b396824c35312d5071a39c71221f147cbecfebfb +ffffffffffffffffffffffffffffffffffffffffffffffffffd69659321d0961 +9dbfdff3fffffffffffffffffcebbea49059403a2f4a669292743933216aa2b1 +dff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffdd60604c438d9ec6f4dd64644e629a9ad9ffffffffffffffffaf6b6b32 +518791cef6ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe1bef9742bec5fbbfaf2e6fadce0fad1 +c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe5d0fa752eea92f5fc +d4a7ed171bed869bf3757cf2a095f01217ed7b9cf36d67f185a0f7ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff970de8088a +faf0f8fffffffffffffa1514e95dc1fbf1fbff9c18e90e7bf8e5f3feffffff9e +1dea1278f8dff0fefffffffffffb3324ea73cffbecfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffedcc7b55e2910 +36456ed7fffffffffffffffffffffec8c1be24293d65c1fffffffffffff3c8c8 +9e203436adf7ffd2cccb2322325cbdfffffffffffff5d3d3a61a2b2babffefd7 +d783192626affbffffffffffffffe3dede22121d299aecfcf0e2cb690f1a1a99 +fffffffffffffffffffffffffffffffffff7efeb890e0f0ff3ffffffffffffff +fff7f6f21f06083bb0fffffffffffffefdfdc701010198f3ffffffffe3770203 +028bfafafdfffffffffffffffffffffffb87420c070335bef1f4fcffffffffff +ffffffffffffffffffffffff6918180943a5e4ecf7ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffd2752e2513b9 +cfd0fafffffffffffcf6f6f5fafafdfefefffffffffffffffffc9f683b1f0e2b +98c0cef1ffffffffffffffffffffffffffffffffffffffffffffffffd9894d3d +1d9eb1b2f6fffffffffffcf8f8f6f9f9fbfefeffffffffffffffffffffffffff +ffffffffffffffed60605642839ec5eefc7364623d799abae9ffffffffffffff +a96b6b2d518791cef6ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffeacbfa8328eb0000ee0000ee +0000ee0000ed2639efbee3fac97dec358ffcccccf13232f2ffffffe8d0fb7f28 +eb79c6fab360ec2a9dfbd7d7f12727f1e0d9fb4322eebacdf12121effbffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffa7 +15ea0941f2e3e9fcfcfafb9c5feb0c06ecdfeafdfeffffa118e90f7bf8e5f3fe +ffffffa31dea1278f8dff0fefffffffffffb2424ea74cffbedfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0b6b64000 +0020364093c8e1ddccc8bebebdbabdc1d3e2f9f2d7c199440f2e3a6bd3fcfee7 +d4c4732f1336367cfffffff4decca2480c252f62d0fcfeecdccf7a320f2b2b75 +fffff9dcd7b91b0c182569aafdfffffcf5edc89a6b101c2090e8ffe5e2e21f17 +1b65d6fffffffffffffffffffffffefdfbf5e2d2dae8edbd6c0b0e0fc2f2fddd +d3defdfffffdf9f6c35602050743c7fbfffdfcf8923c0101015afffffffffffb +1b020253cffcfcfeffffffffffffffffffff600a0a0400006ebbdde0cfccc2c3 +c2b8b5b0c3d6f1fafcfeffffffeca12a160f02bde6e6faffffffffffffffffff +fffffffffffffffffffffffffffffffffff6d6c0bbc8d7e4ede8c89c5e22180c +4996cee0f2feffffffffffffb54434220578c9c9e9ffffffffffff7f3b3b1500 +005896b1cbcdd2cac6c4b9b8b4c1cfe3eff5fdf7dcc9c3c9d2dce8e6cda97239 +29133e80b0cce9feffffffffffffc06052350766aaaaddffffffffffffb56f60 +747586b2cadcebece0a264522b06148c9eaaf4ffffdea364502a09648199dbef +fce8c6a25b4228578793d3f6ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdfbef97936ec84e1 +fffdfefefafafee2c5f97b34ec89eefefafbfcebfffcccccf13232f2fffffff0 +dafb8f2ceb0000ee1924ee88b5f33f18ed31a8fbd9d9fa2424eeeedcfc7100eb +1d20f0ecffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffb23feb0a03ee0000ee0000ed0000ebb1e8fdfaffffffffff9918e91c8f +f9e6f5ffffffff9c1dea1e81f9e1f1fefffffffffffb3124ea7cd6fbeefeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbcb +b6ae35000000000000000000000000000008293e57b9f6ffffffe4d0c36c2a00 +00000000000c2b3763d4ffffffffffffffffe9d8ce732d0000000000000a232c +5ad2fffffffffffffdf5e1cea332000000000000000011192090c8fbfff9eae2 +b24d1b1b44fbfffffffffffffffffffffffffef7ece18d000000000000000000 +0000030c0c3ff3fffffffffffbf9f789360000000000000102023ac9ffffffff +ffffc95102022ef8fcfcfffffffffffffffffffffff3510a0a03000000000000 +00000000000000001e96e1eef8feffffd61717133993dcecf6feffffffffffff +fffffffffffffffffffffffffffffffffffffffffff59f2a2717010000000000 +2474a6c9eaf5fbffffffffffffffffffbe4c3424318ac9d4eefffffffffff674 +3b381100000000000000000000000000001877b3c3e6fcf6ac48442701000000 +00001f638eb2ddeff9ffffffffffffffffffc86652392e75aabce4ffffffffff +ffdca56f472a0c000000000000000024789db4e7fdffffffffffffffc79c6c41 +2405000000000000527a94ceecffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdcbef973 +3aec8eeefffffffffefcfdccbcf33f36ed94f5fffffffef2e3f99a61ed3232f3 +ffffffe8d0fa7c28ea82e4fff1dafb9221ea2832f3fff9fddabbf12124ecedff +fededef50f1ceb86dffeffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffffffffffffffffffef8fce3e2fcf6fdfffeffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbf9f9e9e3e3e3e5e9f6fffffffffffffffffffffffffffffbfafaeae3e3e3 +e4e8f5fffffffffffffffffffffffffffffcfbfaeae3dfe2e2e8f5ffffffffff +f2e1e17d0f1a1b8fecffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffefeece4e3dfdee3f3ffffff +ffffffffff8d01010181e8fcfdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffcf7f3f4f3ea +eaf0fafbfcffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf8f5f5 +f3ebebf1f7f8fbfeffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffefaf7f2ebe8e6e8f4f4f8ffffffffffffffffffffffff +fffffffbf7f3ece9e6ecf2f3faffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +debef97b39ec94eaffffffffecd0fa8629ea2d39efd5fffffffcfccac1f00715 +ec4e85f7ffffffe6d0fa732cea79f5fffffbfef9eafbe4f9fee3d8f83f05eb24 +40f1fffffffffdfffff5fdffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffff0b0bea0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ead8d8fcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff6e1e1a3171d1dcdffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffb9010101c5fdfdfeffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffbdbdf90000ea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ed1f1fecffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff7fffff7ffecf7c291ee3c5ef3f8 +f5f9e7dcf6fefff8fffff8fffdf8e5dcf39590f3f1fff9f8f2f8d2bbf3b7bbf4 +c0c0f2b2bff5fffff9f2e6f6934cec2428f0fdfffafffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8c092efa3cc +f8f9fcf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff9fffdf6f6f1e0dddad2dce4e5f9fffcfffff8 +fffff8fffff8fffff9f9f6efe2d9d3d9dcddf2fdfdfffff8fffff8fffff8ffff +f9faf7f1e3d9d3d8dadbf1fdfefffff8fffff8fffff8fffff9faf9eedfdaced3 +d8d4ebf7fafffff9fffff8fffff8fffff8fffffbf7f0eeba8c80abddf7fffffc +fffff8fffff8fefef8f9f4f3fffff9fffff8fffff8fffff8fffff8fffff8fffe +f9f9f3f2fffff9fffff8fffff8fffff8fffff8fffffaffffffbd8271a1d8f5fe +fefcfffff9fffff9e8dcd4d3d2d2edfafdfefff8fffff8fffff8fffffcfffae8 +e4ddd0d3d9daf3fcfbfefff9fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffbfffbeae6dfd2d4d9d9f0f9f9fefff9fffff8fffff8fffffbfffbebe7 +e1d3d5d9d9eff7f7fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9fffff9ede4ddd8d4d2e6f1f3fafefafffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff9fffff9f0e9e2dad6d2e3ecedf8fefbfffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff7d9bef35026ee3ea2f3c291ee +3c3cf2c5c5f21129ed71c8f6f7fdf8e3f5f8ccc6ef3232f1fffffaecd0f67d03 +ec0000ee0000ed1f2aeec7fafad8c0f00000ed111ced88d0f6fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff99d +0deb087bf3f0f7f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8c18bf089aff5e7f2f8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fffffcf1d8c1935a260000000000000000113342 +71cbf0fdfffffeffffffe1cbbd692900000000000008303c56d5fffefffffcff +ffffe6d4c86f2c0000000000000727314dd3fffefffffcfffff6e0d3aa400000 +000000000000121c228ac1e9fffffefffff8fffff9fffff9e1e1b50f1a1d8ee6 +fffffffcfffff9fffef5e9de83131515ebfffefffff8fffff8fffff8fffff8ff +fefaf4e989090909ebfffffffff8fffff8fffff8fffff8ffffffffffcd010101 +80e1fdfdffffffffff903c06040200000000000021c0f3f5fcfffdffffffd589 +420e0904000000000000000035a7d5ecf8fdfefffff9fffff8fffff8fffff8ff +fffafffffed892511d12070000000000000000319ac5def3fcffffffffda9759 +26170a00000000000000002f92bbd5f0fbfefffff9fffff8fffff8fffff8ffff +f8fffff8fffffdffffffaa6a42250e0000000000001991b8c1f0ffffffffec62 +4b440a0000000000000000000000000000246d9fbce0f9fffffafffff8fffff8 +fffff8fffff8fffffcffffffb882603615000000000000157999a7e9fffdffff +f9fffff8fffff8fffffcfdd6a76d502c55888ed1fafdfffffafffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9feeaf7bc83ed1d18 +ed595bee2d56f09567ed3939f1ffe0f8c96aed3574f5ccccf13232f1fffffae5 +d0f6772eeca1e6f8d26aeb2a61f2d7d7f30c1eed6bcef6dbd6ef0e18ec7db8f5 +fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff9970deb088af5f0f8f8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff9aa2eed1c73f4cee9f8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffffddab5b17539387ab1c7e6eae2ce +ab92520c1c46468ffffffff3d7bc9c4d0b2e3c5dc7f1f6e2cbb4681f183b3b89 +fffffff5dec7a55209263254c4f0f7e7d4bf6e2114303082ffffffe9d2d26b0a +182a5b9ffdfffff8eee2b47a421d2525d0fffefffff9fffff9fef2e0d6860d1d +1d7ffffffffffff8eee6a9450b15000004131444f4fffefffff8fffff8fffffb +f6f0b0490c1600000209093bf3fffffffff8fffff8fffff8fffff8fffffef398 +0001016ffdfdfeffffffd36b05050327b0e5f3fcfeee8d320a060260f2f2f7ff +ffff8d1e105390acd6e5e7f2e9ce7d23110a025ce7e7f0fffff9fffff8fffff8 +fffff8fffffcfffffe962f2257869fccdfe4f0e9d1863220120355d5d5e6ffff +ff9b392d598097c6dce1efe9d28b3c28170451cacadffffff9fffff8fffff8ff +fff8fffff8fffff9fffffddd8e40361b1e86aec2ebfaf1a86341260c49b7b7d3 +fffff2c7bbafaeaba6b0b1abb0b3bbd4c4974a412a246da4bce0fbfffffaffff +f8fffff8fffff8fffff9fffffde3a05f4f27197092a9e2f8f2b77d5d36103d98 +98c1fffffbfffff8fffffcffe0ad6e573100000055888ed1fafdfffffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fff8f7d5 +c6f26e74f18d5bed2e26ef9c91ee487bf4fce1f8c076ee3598f6ccccf13232f1 +fffffae5d0f67b2eec94d2f3610bed0b38ef3810ed277ff4fffff9fef5f8d99e +ee0006ed1843f0c7e6f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff9b230ec0a2ff0b592ef0d0aed0010eda9cff6f9fcf8fffff8ff +fff5ab7aee110bed0000ed4874f1e6f0f8fefff8fffff8fffff5af81ee1810ed +0000ed446ef0deebf8fefff8d297ef2417ed0000ed524fee262fefc6d3f7fcff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffafff2d2b79747404647f0fffcc3bcb426324274d0fffffffffffff3c3c3 +9c233b3baffdfdcdc7c02429376ccdfffffffffffff5cecea51d3030abfefcd5 +d2c51218282ba0e9fffffffffff9d9d9b61522259dedfefffffcfffffee8e0dc +40161e47bffbfffffffffefbf9f5d7c8ccd3dbbb62141529f4fffefffff8ffff +f8fffffdfcf7d6c6ccd8e5c46609091ff3fffffffff8fffff8fffff8fffffffe +fefa42000030b7fafdfefffffff41f050544bbf9fafdffffffffffffcf0c0c0a +90eef2f9fffbfffff8fffff8fffff8fffffeffd66f17130ad4e7e7fdfff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffeffd97a292211c3 +d5d5fbfff9fffff8fffff8fffff8fffffeffdb81342b15b9cacafafffcfffffe +c3865142588ccbd7ecfffffffffff754403e3a8fbdceeeffffffffffffdb4747 +396db4b7e1fefcfffff9fffff8fffff8fffffdffce81523b1c93abaef3fffdff +fffecc996c545a7bb0c3e2fffffffffff8705f5b35789fb8e7ffffffffffffe1 +6666525b9698d5fdfdfffffdffeaba6c5d3a5e817858625c59888fcafafdffff +fafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +e5bff57202ec0000ee0000ee0000ee0000ed2439efb5e5f8c987ee3596f6cccc +f13232f1fffffaecd6f6812dec1850ef0000ed1017ed5174ef0807ed3536ed46 +57ef5742ed0000ee1720edc0fff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff9b23fec0a03ed709cf2ddeaf4a263ed0c07ebc1eafa +fbfff68218ec0c0eefcce3f5fcfff3671ded0a1cf0dfe3f9fffff78823ec110d +eec3d9f5fbfef36e28ed0e1befd4d9f9fff2f47c2bed1240f0bfc1f3bcb5f3e8 +eef8fdfff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbf0d4b6914b1c46468ffffff4bcbc9d274142b1fcfefffffcff +fffccac3ba242a3b63c5f8c7c7af213637adfcfefffffcfffffdd3cec523212e +5bbdf7f8ebdbb5752d0811194d7ea6dde4d7984915252b9afffffefffff9fffa +ece0c0611c1e1eecfffefffff8fffff8fffff9fffff5e9e983141515f4fffeff +fff8fffff8fffff8fffff8fffffaf4f489090909f3fffffffff8fffff8fffff8 +fffffefeda6f000000e9fefeffffffffffd605050493f5f9fcfffbffffffffff +f4280c0b35a5e8f4fafefffff8fffff8fffff9fffffecd751512095ce7e7f0ff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffed17f27 +201155d5d5e6fffff9fffff8fffff8fffff9fffffed48632291551cacadfffff +fcfffffeaf3939230072c3c3e6ffffffffffe040403670bbbde4fefcfffffeff +fff75d47442f7dafc5e7fcfffffafffff8fffffdffffdc5151413276a5c4e4fb +fffffcfffffebb5858350060a5a5d9ffffffffffe55f5f4f5e9d9fd7fdfcffff +fdfffff87866612c6892addefafff3c66b6242336993b7e0ff796f6f51888fc8 +fafdfffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8e0bef5772eed76c6f5f5eaf5e0e1f5d7c5f26339ee9fe5f8c985ee35 +96f6ccccf13232f1fffffae8d0f6832aec6fbff24128eda1edf9f6f3f8cebcf3 +c8c8f1161feca0dbf4dce0f7fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff99c0deb0881f3f0f8f9fffff9fffff41914 +eb46bcf6effaf11818ebb5e6f8f9fff8fffff9fffbf21f1eeb90dff8f3fff123 +23ebaddbf8f7fff8fffff9fffcf22a29eb87d1f6effef9af2eed1d77f4ceeaf8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffcffffeeb398907e727180837b +6d697cb1bacaf6ffefb79e947e707080837b6e6a7cacb5c6f5fff0bba3997e6f +6f7f837c6f6c7ca7afc2f5fffbfffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffaf9e1c9a76d33284048acebfffffce2bcb36d273f42b2f6fe +fffffdfffffaccc3b420243b3ab1eac7c77e213437aef5fefffffdfffffbd6ce +be221b2b2fa2eafffaead3bc71141a1362806000000008172154a7e2fffffeff +fffcf3dede8e0e191e77d3fffffefffff8fffff8fffff9fffff5e9e683141515 +f4fffefffff8fffff8fffff8fffff8fffffaf4f089090909f3fffffffff8ffff +f8fffffbfefdfda103010065cdfefffffffffffff39505050394edf9fcfffcff +ffffffffed340c0b0286d9f1f9fdfffff8fffff8fffffeeca055140d0681cfe8 +f4fcfefffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffeeda7 +6224180b77bfd6ecfafefffff9fffff8fffff8fffffeeeac6a2e1e0e70b5cbe7 +f9fefffff9fffffbf8f3e6f1f4f1fbfdf8fffffefff6ae403d2571b5bde4fcfd +fffffefffff16547420c65a4b5def7fffffafffffafffffec7824f37184dadad +d1fffffafffff8fffffbf9f5e9f1f4eef9fcf8fffffdfff7bb5f5a375f989fd8 +fafdfffffefffff37f665e115b9697d5d76a6a4f447094c4e4fffffff9786f6a +578c8fcdfdfcfffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee0000ed2639efbee5f8 +c985ee3596f6ccccf13232f1fffffae5d0f6782eeca0e1f7bd4dec1a48f09c8b +f19090f19288ef1115ed7a92f28d89ef6b7ef3fffff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9fffff8ff +fff66914eb0880f5e9f5f21818eddbe6f9fefff8fffff9fffff51f1feb6fddf8 +eefff22323edd1dbf8fdfff8fffff9fffff52a2aec68caf6e8fdf9a52eed1b6f +f2cee8f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcfffff0ae928b7669 +68787a71626579b2bacbfbfff0b29790766767787a71636678acb5c7fafff1b6 +9d95766566777a72656878a7b0c3fafffbfffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9fffffdefd6be8e5319253c49a4dffffffffffffff4bcbc9d2541 +42aafcfefffffcfffffccac3ba242a3b63c5f8c7c7af1f3637a5fcfefffffcff +fffdd3cec52322305cc2f8d2d2b214242c8cd9fffffffffcf4e9c79c630d1c25 +70c9fffffff6dedea3172020bffffefffffafffff8fffff8fffff9fffff5e9e6 +83141515f4fffefffff8fffff8fffff8fffff8fffffaf4f089090909f3ffffff +fff8fffff8fffffefdfdb9010101b7fffffffffaffffffffffd60505048af5f9 +fcfffbfffffffffff4280c0b35a5e8f4fafefffffcffffffcd7f3310090376c0 +eaf4fbfffffff9fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffffed1 +89431e12056db2d8ebf8fffffff9fffff8fffffbfffffed38f4c27170768a9cd +e5f6fffffff9fffff8fffff8fffff8fffff8fffff8fffffdffffe040403669bb +bde1fefcfffffefffff75d47442f7dafc5e7fcfffffafffffdffe6a64f442868 +a0aedef8fdfffff9fffff8fffff8fffff8fffff8fffff8fffffcffffe55f5f4f +589d9fd3fdfcfffffdfffff8786661347a98b2b5716a440635545066717a6f5c +47312912192328385b82a9bfdcfffffbfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8e1bef5742bed5fbbf5f2e6f5dce0f5d1c5f26339 +ee9fe5f8c985ee3596f6ccccf13232f1fffffae5d0f6752eec92f5f9d4a7ed17 +1bee869bf1757cf1a095ef1217ed7b9cf26d67ef85a0f3fffff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb088af5f0f8f8 +fffff9fffff41514eb60cdf8f2fcf11818ebbde6f8fafff8fffff9fffbf21f1e +eb90dff8f3fff12323ebb4dbf8f8fff8fffff9fffcf22a29eb87d1f6effef9a5 +2eed1b77f4ceeaf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffafffffcd9c3aa5b28103b4a71d8fffefffffafffffafffffcc4 +bcb4242d4169c2fcfffffffffff1c3c39623393baff7fdcdc7c023263660bffc +fffffffffff3cece9e1d3030adffecd2d27c1c2b2cb1fcfefffffbfffffeded9 +d52215212e9de8fbedddc66712202097fffffefffff8fffff8fffff8fffff9ff +fff5e9e683141515f4fffefffff8fffff8fffff8fffff8fffffaf4f089090909 +f3fffffffff8fffff8fffdfbe17501010189fffffffffff8fffffffffff42205 +0536aaf5f9fdffffffffffffc60c0c0990e7f2f9fefffffff58946100a0433b9 +ebeffafffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffefffff5 +92542213082fabd9e1f7fffcfffff8fffff8fffffefffff6985d2c180b2da2ce +d9f4fffcfffff9fffff8fffff8fffffafcf6f0f6f9f2fcfef8fffffefffff757 +403e3081bbcaeafeffffffffffd44747376daeb7e1fbfcfffffefffffc8c4e4d +1c337baec6e7fffffafffff8fffff8fffff9fcf8f1f6f9f2fbfef7fffffdffff +f8715f5b2d6d9db2e0fdffffffffffdb66664e5e9898d7e9d3c9c2b2abb0acb0 +b1b4c8c5af5f5c482c576390b4c8e5e6effffffbfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee00 +00ed2639efbee3f7c97ded358ff6ccccf13232f1fffffae8d0f67f28ec79c6f5 +b360ed2a9df5d7d7f02727efe0d9f64322edbacdf02121f0fbfffafffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9a715ec0941 +f0e3e9f7fcfaf59c5fed0c06eddfeafafefff66818ec0936f0d8ebf7fdfff47f +29ed0d02f0dfdff9fffff77023ed0d34efcee2f7fdfff48533ed1202efd4d4f8 +fffff9b33bee1e18efc9d3f5c9bef3e8eff8fdfff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffafffffeccb1ae3e0000223a4395c8dadcccc3bdbeb8bbbebe +d4e3f3f1d3bc95421032406cd4fcf9e5d0ba702e153b3b7dfffffff3dac79e46 +0d2a3564d2fcf9e9d8c4773011303076fffff7d7d2b01b0e1a2a6da9fdfffefb +f3e8c3966413212593e8fee0ddd8211b2169d7fffffffdfffff8fffff9fffefa +faf4dcd3d9dfe7b966101414c3f1f5ddd4d7fdfffffffffcfcf6dcd1dae4f2c2 +6a070909c2f3f7dcd2d5fdfffffcfbf01a020355d2fffffffefffff8fffff9ff +ffffca5c0505023bc0f4f4fdfff597440a070352f2f2f6fffffb631010060000 +6cb7d2decfc7c3c3beb8b5adc3d6e8f9fbfbfffff8fffff8fffff8fffffeffff +fb6f22210c000063a9c2d6cec9c6c4beb8b6aec2d5ebf5f9fe762d2d1000005e +a0b9d1cecbc8c5bfb9b7afc1d1e0f2f7fbffffffb74a39250572c3c3e6fffffa +fffffdd7834034172d92b9c8f0fef6b0714329113eb7b7cffffffafffffdf0b7 +5b482f0691b0b0f1fffbfffff8fffff8fffffafffffec26558390760a5a5d9ff +fffbfffffddd975f4c22267a9bb1e9fdf7bd89603b18349898bbfffffbfffff8 +fffff8fffffcfffff9796f6a518c8fc8fdfcfffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8dfbef57936ed84e1f7fdfef8 +fafaf8e2c5f57b34ed89eef8fafbf6ebfff8ccccf03232f1fffffaf0daf68f2c +ec0000ee1924ee88b5f13f18ed31a8f5d9d9f52424eeeedcf67100eb1d20efec +fffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9b2 +3fec0a03ee0000ee0000ed0000edb1e8f7fafff8fffff9fffff45e19ed0800ee +0000ed0008eecee2f9fcfff8fffff9fffff46524ed0b00ee0000ed0008eec4d7 +f8fbfff8fffff9ffe8f22f2aee0000ed0000edc9ccf7fefff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffafffff9c7b1a33400000000000000000000000000 +00092d415cbbf1ffffffe1cbbd69290000000000000d303c66d5fffefffffcff +ffffe6d4c86f2c0000000000000b27315ed3fffefffffcfffdf3ddc99b300000 +000000000000131d2593c9f5fff7e6ddae4a202147fbfffefffff8fffff8ffff +f9fffef4e6dc86000000000000000000000004111242f4fffffffef9f1e68c00 +0000000000000000000002060739fbfefbfbc84f03032efbfffffffff8fffff8 +fffff8ffffffffffff903c06040200000000000035c0f3f6fcffffffffed5510 +0f0500000000000000000000000000001d93d6e9f6fdfffff9fffff8fffff8ff +fffeffffee62221f0a00000000000000000000000000001b89cfd9eff86a2d2c +0d00000000000000000000000000001980bbcfebfbffffffc05139283182c3d0 +ebfffffafffffdffffffaa6a42250e0000000000002891b8c7f0fffcfffffeff +ffdc4d4d3e2c71a4c3e2f9fffffafffff8fffff8fffffafffffeca6b583d2e6e +a5b8e0fffffbfffffcffffffb882603615000000000000217999afe9fffdffff +f9fffff8fffff8fffffcfffff4796f6751888fc8fafdfffffafffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8dcbef5733aed8eee +f9fffff8fefcf8ccbcf13f36ed94f5f9fffff8f2e3f39a61ed3232f1fffffae8 +d0f67c28ec82e4f9f1daf79221ec2832f2fff9f9dabbf02124eeedfffadedef2 +0f1cec86dff7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fef8f6e3e2f6f6fdf8fefff8fffff8fffff8fffff8ffff +f8ede6f5e4e3f7fbfcf8fffff8fffff8fffff8fffff8fffff8eee7f5e4e3f7fa +fbf8fffff8fffff8fffff8fffff8fffdf6ecf1f6f4f9f8fdfef8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff9faf8f5e9e3dde4e6e5f6fffcfffff8 +fffff8fffff8fffff9fbf9f6e9e3dde3e5e3f5fffcfffff8fffff8fffff8ffff +f9fcfaf3eae3d9e2e3e3f5fffdfffffdefdbdb7a121f2192e8fffffefffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffffdfdfafa8b02040383e5ffffffffff +f8fffff8fffff8fffff8fffff8fffffdede5dedfdeddf2fefcfefff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffffcf1ebe5e2e0ddeef6f4fcfff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbf3eee9e4e0ddebf2f0fafffaff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8debef57b +39ed94eaf9fffff8ecd0f68629eb2d39efd5fff8fffcf7cac1f00715ed4e85f3 +fffff9e6d0f6732cec79f5f9fffbf7f9eaf6e4f9f9e3d8f43f05ec2440f1ffff +f9fffdf8fff5f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffffa0b0bec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ecccccf7ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff9fffff4dbdb9b1b2222cefffefffff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffdfafab0030404c7ffffff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9bdbdf6 +0000ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee1f1fedfffffafffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffefffffdffecfbc291ef3c5ef6f8f5fee7dc +fbfefffffffffffffdfee5dcf79590f6f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2 +bffafffffff2e6fc934cec2428f1fdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff3f9857af4e7ed +fefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffdfaf6f1e6dddad7dce4eaf9ffffffffffffffffff +fffffffffff9f6f6e2d9dad9dce2f2fdfffffffffffffffffffffffffffaf7f7 +e3d9dad8dae1f1fdfffffffffffffffffffffffffffbf9f9e4dadad6d9dff1fc +fffffffffffffffffffffffffffffffff7f0efba8c84abddfdfffffffffffffd +fcfce5dadad4d5dceffcfffffffffffffffffffffffffffefdfae1dbd4d0d4d5 +e9f6ffffffffffffffffffffffffffffffffffffffbd8275a1d8fcfefeffffff +fffffffffffffff9f3f9ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffaf5fafefdfeffffffffffffffffffffffffffffffebe2e1d6d4 +d9e8f4f7fcfeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fbf7fbfdfbfdffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffcf4ede7ddd8dadce8f0f3fbfffffffffffffffffffffffffffdee +eae5d7d6d3dde7ecf5fbffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffed9bef85026ed3ea2f8c291ef3c3cf6c5 +c5f51129ec71c8fcf7fdfde3f5fcccc6f03232f1ffffffecd0fb7d03eb0000ee +0000ed1f2aedc7fafdd8c0f00000ed111ced88d0fdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f31d +1ce9cee0fcfcffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff1d8c1935a26000000000000000011334272cbf0ff +ffffffffffffe1cbbd692900000000000009303c57d5ffffffffffffffffe6d4 +c86f2c0000000000000727314ed3ffffffffffffffffebddd3762e0000000000 +00051e2644d1fffffffffffffffffffffffffff9e1e1b90f1a1d8ee6ffffffff +f4ece68032000000000000030f1333cdfffffffffffffffcf6f1c74900000000 +0000000004060779b9eaffffffffffffffffffffffffffffd201010180e1fdfd +fffffffffffffffffff395090905e1f5f5fefffffffffffffffffbb355110c05 +00000000000000000000000080d4e7f4fdffffffffffffffffffffffffffffff +fffffffffffffffff5a2262416c6d8d8fcffffffffffffffffffffffa25b2e1a +0a0000000000001ca0cbd2f4ffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffcca9045321d6eafb8e2fcffffffffffffffffff +fffff7b34f4c2ea0aeaef8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffe3b0814f31150000000000000000246e8db1e2f6ffffffffffffe5 +986b58210000000000000000426683c2dff6ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffeeafabc83ec1d18ed595bef +2d56f29567ec3939f2ffe0fac96aeb3574f9ccccf23232f2ffffffe5d0fa772e +eaa1e6fbd26aeb2a61f8d7d7f60c1eec6bcefddbd6f00e18ec7db8fbffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffff51d1dead6e0fcfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffdab5b175393a7ab1cde6eae8ceab96520c +1d464691fffffff3d7bc9c4d0b2e3c60c7f1fce2cbb9681f193b3b8bfffffff5 +dec7a55209263257c4f0fde7d4c36e2114303084fffffff7e4d2ae56071e274d +c1effdecdece74231025257efffffffffffffffffffef2e0d6860d1d1d81ffff +fffaf0e5be5e0411153dbbedfef5eee07e2608121272fffffff8f0f07a03080c +4395fdfffffdfbf9cd8c4e050707cafffffffffffffffffffffef39800010171 +fdfdfefffffffffdbf50121b020001000033e9f5f7fefffffffffffffffffba8 +29110b53bcd5c3b6b3b1b1b2b1a99ca1cbebf6fafeffffffffffffffffffffff +fffffffffffffdc7652d2e0b020300002dced8e0fdffffffffffffffffda832d +26132393c0d7f1fbf69f53301c0853cacae0ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffd79944361f0000006eafb8e2fcffffffffff +fed1825449170407000025a6aebffbffffffffffffffffffffffffffffffffff +ffffffffffffffffffb3685f646577a9ccddeceadea566522e073f9898c2ffff +ffb56a6a36225492abd0feffffe7c09c5e40236f8d8de7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8fcd5c6f46e74 +f38d5bed2e26f19c91f0487bf7fce1fac076ed3598fcccccf13232f2ffffffe5 +d0fb7b2eeb94d2f8610bec0b38f03810ed277ff7fffffffef5fdd99eee0006ec +1843f1c7e6feffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +fffffffffffcb995f02109ed0200ed424ff0b6d9fcfafdfffffffbab79ef100b +ed0000ef6868ed0e0eecd6e0fdfdffffb665ee659bf7d2b9f35b42ee385af4df +e6fdfffffcb285f01c13ed0000ec426bf3dae7fdfeffffffffffc078ef607ef4 +9d7cf0281bed0022ef9ecafae7d1f45d30ee0c00ec2d4ff2cbd8fcffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f2d3b79749404648f0fffec3bcb926324274d0fffffffffffff4c3c3a0233b3b +affdffcdc7c62429376ccdfffffffffffff6cecea91d3030abfdffd6d2d12221 +2c64cafffffffffffff8d9d9b2162525a6fbffffffffffffffe8e0e040161e47 +bfffffffffe8e5e11f131956c6fffffffffffffbececc20b12129efefef1f0e8 +14080d0c92ebfffffffffffef7f7d40406078feafffffffffffffffefefe4200 +0030b7fefdfefffffffffff9dec5cde4eecd7008071ae9f5f6feffffffffffff +fffffb9910110a93ececf8ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffae2ccd2e3e9cd7e241f24ced8dbfdffffffffffffff +fc432d2c3e9dd1dcf3ffffffffffffdb34342b78c7cae9feffffffffc3865342 +5891cbd7edffffffffffffffffffffe4aa433a2579a59e423e3b6aafb8ddfcff +fffffffffbe7d6dae2e2cd914a4032a6aeb6fbffffffffffffffffffffffcc99 +6d545a7fb0c3e4ffffffffffffffffffffffffffffffffffffffe4a166542a8c +9899f6fff8766a6509528893cef6ffffffffffeb7171614e828dcbf5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5bffa72 +02eb0000ee0000ee0000ee0000ed2439efb5e5fac987ed3596fcccccf13232f2 +ffffffecd6fb812deb1850ef0000ed1017ee5174f00807ed3536ee4657f05742 +ed0000ed1720edc0ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffffd870feb0700eeb7e2fceae1f89e52ea0c66faeaf3ff9719ec0d +00eeb0d8fae8e5f9b58def140fecd6e0fdfdffffae4fed1607ed0034f09c93f2 +6c84f7e6ebfe8d2aed140deebcd3fbfafef7732fec101af0cdd3fcffffffb55f +ee220bec4f80f5dcebf99347ee1b04ed0000ef97b7f9e7d2f43e33ec3787f7cf +ecfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff0d4b6914b1d464691fffff5bcbca1274142b1fcfffffffffffffecac3 +c0242a3b63c5f9c7c7b4213637adfcfffffffffffffed3ceca2322305bc2fad2 +d2be1a2b2ca8fcfffffffffffffeddd9d522192552b9fbfffffffffaede0c063 +1c1e1eecfffffffffbe5e5c50f1819a0fbffffffffffffffeeece8200c1243b3 +fdfdf8f3cf8634020507386b9ee3f9f6ad5305070d90fffffffffffffffffefe +da71000000e9fefeffffffffffffffffffffffffffff95090905e9f5f5feffff +fffffffffffffba837110b13718c81766f7689a0b5e9f7f9feffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa2262616ced8d8fdffffff +ffffffffe12d2d277cced1ecfefffffffffffffc4c3433318ac7d4eefeffffff +af3939230075c3c3e7ffffffffffffffefb9423c2a4287bcd2ecff52464664af +b8dcfcffffffffffffffffffffffffb34f4f2ea6aeaefbffffffffffffffffff +ffffbb5858350063a5a5daffffffffffffffffffffffffffffffffffffdea364 +502a3f9898c2ffffffeabc8a5c3b171c3a5997bdd3c99f6f4f2a4f8d90ccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e0bef9772eec76c6fbf5eafbe0e1fbd7c5f66339ec9fe5fac985ed3596fccccc +f13232f2ffffffe8d0fb832aeb6fbff44128eca1edfff6f3fecebcf7c8c8f316 +1feca0dbfadce0fdffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffffbf20d0de8adf1fefbfffffffffffffffffcfffffffcf3 +1616e9a6e7fdf8fffffffffffffff31d1dead6e0fcfdffffa521eb1562f5dbeb +fefffffffffffffff5f32a28e9a7d4fbf6fffffffffffffcf43130ea82cafbec +feffac35ec206bf6c8e5feffffffffeff43c37ecb2c2fafaffffffffffb241ed +2765f5bbdffeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff2b398947e727480837e6d697fb1 +baccf6fff3b79e997e707380837e6e6a7facb5c8f5fff3bba39e7e6f727f837f +6f6c7fa7afc4f5ffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff9e1caa76d35284048acebfffffce3bcb370273f42b2f6ffffffffff +fffcccc3b920243b3ab1ebc7c781213437aef5fffffffffffffdd6cec4221d30 +2facefd2d2891a2a2ca9f5fffffffffffffddfd9ce241522249dedfffffff3de +de8e0e1a1e77d7fffffffffef4e5da890f1819a1f4fffffffffffffeefece127 +0a101094ebfffdf8f1d7860607067092700000000205073c9be4ffffffffffff +fefdfda103010065d2fefffffffffffffffffffffffffffffffb95090905e9f5 +f5fefffffffffffffffff6b97f57688493a19aa891780e0c0a000043d4e7eefd +fffffffffffffffffffffffffffffffffffffffffffffffffba2262516ced8d8 +fdfffffffffffff5a92d2b1b7dc7d1ecfdfffffffffffff55534310970b9c9e7 +fafffffff8f3ecf1f4f8fbfdfffffffffffcc9403f2e578fbddbeefffffffc51 +46456bb5b8dffefffffffffffffffffffffffcb34f4e2ea6aeaefbffffffffff +fffffffffffff9f5eff1f4f5f9fcfefffffffffffffffffffffffffffffff2c0 +905c3c1d55899ad1f4ffffffffffefbc6b5f3b4358433242320000001f557fa6 +d1f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639efbee5fac985ed35 +96fcccccf13232f2ffffffe5d0fa782eeaa0e1fbbd4dea1a48f19c8bf29090f3 +9288f01115ed7a92f38d89f16b7ef7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffff40d0debedf1feffffffffffffffffffffff +fffffbf31616ecdce7fdfefffffffffffffbf31d1dead6e0fcfdffffa021ea14 +76f7dbeefefffffffffffffffff52a2aeccad4fcfdfffffffffffffff93131ea +65c3fae5fcffa835ec1f6bf6c8e5fefffffffffcf53c3bebb9c2fafcffffffff +ffae41ed2665f5bbdffeffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff3ae928f76696b787a75 +62657cb2baccfbfff4b2979476676a787a7563667cacb5c8fafff4b69d987665 +69777a7665687ba7b0c4faffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffefd6be8e531a253c49a4dffffffffffffff5bcbca1254142aafcff +fffffffffffecac3c0242a3b63c5f9c7c7b41f3637a5fcfffffffffffffed3ce +ca2322305bc2fad2d2be182b2ca0fcfffffffffffffeddd9d522192552b9fbff +fff7dedea7172020bffffffffffffffffbe5e5c50e181997fbffffffffffffff +eeece8200d1244bafdf0f0d1060b0e7bd4fffffffffefcfae3b2740205075cc1 +fffffffefdfdbe010101b7fffffffffffffffffffffffffffffffffffffb9509 +0905e9f5f5feffffffffffffffffffffffffffffffffffffffffffffcd171712 +60c6e7f0fbfffffffffffffffffffffffffffffffffffffffffffffffba22625 +16ced8d8fdffffffffffffffe12d2d2774ced1eafefffffffffffffc4c343331 +8ac7d4eefefffffffffffffffffffffffffffffff6a9413d2401446c69696879 +6f5d3d1f1a0c202d343b6397c8d6eafffffffffffffffcb34f4e2ea6aeaefbff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde +aa784e2d0e4e809bcdedffffffffffffe46a6a57447a94c4ecfffffffff3d7b3 +675135316a8db4e2ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe1bef9742bec5fbbfaf2e6fadce0fad1c5f66339ec9fe5fa +c985ed3596fcccccf13232f2ffffffe5d0fa752eea92f5fcd4a7ed171bed869b +f3757cf2a095f01217ed7b9cf36d67f185a0f7ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdfffffffffffffff3f20d0ce8bef1fefcffffffffffff +fffffffffffff4f21615e9c7e7fdfbfffffffffffffbf31d1dead6e0fcfdffff +a021ea1476f7dbeefefffffffffffffff5f32a28e9afd4fbf7fffffffffffffc +f43130ea82cafbecfeffa835ec1f6bf6c8e5fefffffffffcf53c3bebb9c2fafc +ffffffffffae41ed2665f5bbdffeffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffed9c3af5b28113b4a72d8fffffffffffffffffffffec4bcb9242d +4269c2fffffffffffff2c3c39923393baff7ffcdc7c623263760bfffffffffff +fff4cecea21d2e30abf7ffd7d2d1221e2c58bbfffffffffffff7d9d9ab162325 +a6f5fffbedddc6671220209bffffffffffffffffffe8e5e120111948b5ffffff +fffffffbececba0b1212a1fff8f0f092090d0ea6fbfffffffffffffff8f7f724 +0406118feafefdfbe1750201018dffffffffffffffffffffffffffffffffffff +fffb95090905e9f5f5feffffffffffffffffffffffffffffffffffffffffffff +e517171460bee7f0faffffffffffffffffffffffffffffffffffffffffffffff +fba2262516ced8d8fdfffffffffffffffc462d2c328fd1d9f0ffffffffffffd4 +34342978c0cae9fcfffffffffcf6f6f6f9f9fcfefefffffff4d9c7b7b8b5adb0 +b0b0b1bdcfcbb03c3a2f397084a3bbd5eeeff6fffffffffffffffcb34f4e2ea6 +aeaefbfffffffffffffffffffffffcf8f8f6f9f9fbfefefffffffffffffffffc +b0835e3116237b9cb2eafffffffffffffffffff8c26a653f5e9294d7fdffffff +ffffffff857171174e8291cbf5ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639 +efbee3fac97dec358ffcccccf13232f2ffffffe8d0fb7f28eb79c6fab360ec2a +9dfbd7d7f12727f1e0d9fb4322eebacdf12121effbffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdfffffffffffffffffb610deb0529efcde8fc +f7f3fcb972ec176ffaebf3fb4716eb0539f1e1ecfce0d7f55517ed0800eccee0 +fdfcffffa521ea1576f7dbeefefffffffffffffffffc742aec0f32f0c7ddfdfc +fff9893aed1503eecdcdfcffffffac35ec206bf6c8e5fefffffffffcf53c3beb +b9c2fafcffffffffffae41ed2665f5bbdffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccb1b13e0000223a4595c8e0dcccc8bdbebdbbbec3d4e3f9f1 +d3bc95421032406fd4fcfee5d0bf702e153b3b7ffffffff3dac79e460e2a3567 +d2fcfee9d8ca773011303078fffffff5e2d2a64a0b212a5ecffbfeeee1d57d33 +0e252571fffffee0ddd9211b2169d7fffffffffffffffffffffaeee5b6510612 +174fcbfbfff6efe8883807121264fffffdf2f0ce1e04080c58a1fdfffffefcfa +deac7703060783e5fffbfbfb1a020355d2fffffffffffffffffffffffffffff7 +e2d0dcf1fcca77090704b9eaf5dad3defbfdfdffffff95301a699abcd4dce5f1 +f1dd7d23120a021dcee7eafcfffffffffffffffffffffffffffffffffffff8e5 +d6dfeff6cc85261e11a3ced8d7d7e2f7f7f9ffffffd2762d251033a1ccdbf4fe +fca862321e0c47cacadcffffffffffffb74a39250575c3c3e7ffffffffffffff +fffffffffffffffffffffc52464564b5b8dcfefffffffffff9eadde3ecefcf99 +4f3f2484a7aed3dce7f2f0f4feffffffffffc26558390763a5a5daffffffffff +ff975f5f220000487a90baccd6cfc7c5bbbab7bfcedfe7f2ed7c6a5d0e2f5b91 +b5d5fefffff0d3b5654e36477e8dc6f2ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffdfbef97936ec84e1fffdfefefafafee2 +c5f97b34ec89eefefafbfcebfffcccccf13232f2fffffff0dafb8f2ceb0000ee +1924ee88b5f33f18ed31a8fbd9d9fa2424eeeedcfc7100eb1d20f0ecffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdfffffffffffffffffffffff76418 +ec0601ee0000ee0000ea96d2fcf7fdffffe5f31815ed0000ee0000ed9696f013 +13ecdde0fdfeffff9e21ea217ef8ddf0fefffffffffffffffffffffff86a2bed +0d00ed0000ed0007eebdd0fcfbffffffffffa635ec2a73f7cbe7fefffffffffc +f53c3bedb9c2fafcffffffffffb74eed2966f5bbdefeffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbc7b1a8340000000000000000000000000000092d43 +5cbbf6ffffffe1cbbd69290000000000000e303c67d5ffffffffffffffffe6d4 +c86f2c0000000000000b27315fd3ffffffffffffffffebddd3762e0000000000 +00091e2656d1fffffff7e7ddae4c202149fbffffffffffffffffffffffffffff +f4ece68032000000000000040f1347cdfffffffffffffefbf5e6b63700000000 +0000000004060884c2fbfffefbfbc651030330fbffffffffffffffffffffffff +fffffff39a060604000000000000000000000033e7f2f5feffffcc7e300e0802 +000000000000000034afe5edf9ffffffffffffffffffffffffffffffffffffff +fffff4a623221500000000000000000000002dcbd5defdffffffffffa25b2e1a +0a0000000000002da0cbd7f4ffffffffffffffffc05139283186c3d0ecffffff +fffffffffffffffffffffffffffff652464364afb8dcfcfffffffffff6b64d49 +2e000000000000000000000024a3abbdfbffffffffffca6b583d2e71a5b8e2ff +fffffffff78d5f5a1c0000000000000000000000000000136191a4d9fafff8da +8d6651190000000000000000486b8cc7e3fdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffdcbef9733aec8eeeffffffff +fefcfdccbcf33f36ed94f5fffffffef2e3f99a61ed3232f3ffffffe8d0fa7c28 +ea82e4fff1dafb9221ea2832f3fff9fddabbf12124ecedfffededef50f1ceb86 +dffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +fffffffffff7f1fce9f0fefcfefffffffffffffffffffffff9fce4e3fbf0fbff +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffeeee8fce4e3fcf9fafeffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffaf8f8e9e3e3e4e6eaf6ffffffffffffffffff +fffffffffffbf9f9e9e3e3e3e5e9f5fffffffffffffffffffffffffffffcfafa +eae3e3e2e3e7f5ffffffffffefdbdb7a12202192edffffffffffffffffffffff +fffffffffffffffdfdfcebe4e3e1e1e5f4fffffffffffffffffffffffffffffe +fefdebe4dee0dfe5f3fffffffffffdfafa8b02040383eaffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdf8f3ede5e3e3eafcfdfdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff0e9e8e2dfe3eff8f9fdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff4efece5e1e1eaf1f3faffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdebef97b39ec94ea +ffffffffecd0fa8629ea2d39efd5fffffffcfccac1f00715ec4e85f7ffffffe6 +d0fa732cea79f5fffffbfef9eafbe4f9fee3d8f83f05eb2440f1fffffffffdff +fff5fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +0b0bea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000eababa +f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffff5dbdb9f1b2222ceffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffdfafab5030404c7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffbdbdf90000ea00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ed1f1fecffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff7fffff7ffecf7c291ee3c5ef3f8f5f9e7dcf6fefff8 +fffff8fffdf8e5dcf39590f3f1fff9f8f2f8d2bbf3b7bbf4c0c0f2b2bff5ffff +f9f2e6f6934cec2428f0fdfffafffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff9ff +f3f38074f1ebf3f8fefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff9fffef6f7f1e0dedad2dce3e4f8ff +fcfffff8fffff8fffff8fffff9f9f7f0e2d9d3d8dbdcf2fdfdfffff8fffff8ff +fff8fffff9faf8f2e3d9d3d7d9daf1fcfefffff8fffff8fffff8fffff9fbfaee +dfdaced2d8d3ebf7fafffff9fffff8fffff8fffff8fffffbf9f3f1ba8a7da9dc +f6fffffcfffff8fffff8fffef9f9f4f2fffff9fffff8fffff8fffff8fffff8ff +fff8fffff9f9f3f2fffff9fffff8fffff8fffff8fffff8fffffaffffffbf8574 +a2d6f2fcfefcfffff9fffff9e8ddd5d3d3d2ecf9fcfefff8fffff8fffff8ffff +fafffff4e7dcd5dadedff7fcfafefff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffafffff5e7e1d4d2d4cde4f0f2fbfdf9fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9faf6f4fdfcf7ffff +f8fffff8fffff8fffff9fffff9eee5ded8d5d2e6f0f2fafefafffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fffff6efe8dfdedcdaecf2f1fdfffafffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff7d9bef35026ee3ea2f3c291ee3c3cf2c5c5f21129 +ed71c8f6f7fdf8e3f5f8ccc6ef3232f1fffffaecd0f67d03ec0000ee0000ed1f +2aeec7fafad8c0f00000ed111ced88d0f6fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff9fff4f11413ead7eaf9fdfff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffffbf2dbc6975d2700000000000000 +000f2f3d6cc9effdfffffeffffffe4d0c36c2a000000000000082b3752d4fffe +fffffcffffffe9d8ce732d00000000000006232c48d2fffefffffcfffff7e4d9 +ae4200000000000000000f181d87c0e8fffffefffff8fffff9fffffae6e6b90c +15178ce5fffffffdfffff9fffef7efe4860e0f0febfffefffff8fffff8fffff8 +fffff8fffffcfaee8c040404eafffffffff8fffff8fffff8fffff8ffffffffff +ce0606057ddcf7fbfeffffffff92400c070300000000000020bbeef0fbfffbff +ffffffffd96a1713090000000000000041bbe3ebfafffbfffff8fffff8fffff8 +fffff8fffff8fffffeffffd56929210d00000000000000006196bce5f2faffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdfff6aa3f3c23af +bfbffafffafffff8fffffdffffffad6f472810000000000000188db2bdeefffc +fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcfcd1 +9d5d44265f989fd8fafdfffffeffffe69c665525000000000000002b7a94b3ec +fffcfffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9feeaf7bc83ed1d18ed595bee2d56f095 +67ed3939f1ffe0f8c96aed3574f5ccccf13232f1fffffae5d0f6772eeca1e6f8 +d26aeb2a61f2d7d7f30c1eed6bcef6dbd6ef0e18ec7db8f5fffff9fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff9fffff21414ecdfeaf9fefff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff9fffffddcbab677363477afc6 +e6eae3d1b096550d1a41418cfffffff4dac1a04f0a2a3758c6f0f6e5d0b96b20 +16363685fffffff6e1cca95408222d4fc2eff7ead9c47122122b2b7fffffffeb +d7d76e091525579dfdfffff9f0e5b97e43192020cffffefffff9fffff9fef5e5 +dc890b17177cfffffffffff9f2ebad470b160000030e0f40f3fffffffff8ffff +f8fffffcf9f5b44a0c17000001040437f3fffffffff8fffff8fffff8fffff8ff +fffff39a0506046cf7f7fbffffffd46e0a0a0526ace0eefbfeee8f360f09035e +ececf4ffffed591514073a7ad6e8f0fafad88028160d024de1e1ebfffff9ffff +f8fffff8fffff8fffffcffffff942727153176d3deecfffffddba36c271a0ea4 +cfcff5fffafffff8fffff8fffff8fffff8fffff8fffffdfffdc976453d120306 +000027b6bfccfcfffafffff9fffffdde91463b1d1d82a9bee9f9f1ab6846290c +47b1b1d0fffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcff +dca45d49290000005f989fd8fafffffff391645d1e26518dafccf5fae4ab7058 +3006329393b7fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fff8f7d5c6f26e74f18d5bed +2e26ef9c91ee487bf4fce1f8c076ee3598f6ccccf13232f1fffffae5d0f67b2e +ec94d2f3610bed0b38ef3810ed277ff4fffff9fef5f8d99eee0006ed1843f0c7 +e6f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff5a773ed0a06ed0000ef6d6ded0909eddfeaf9fefff8fffff7be8fee130eed +0000ed2746f0cdeaf8fbfffaedabef203ff0dbe2f8fffff8fffff9fffff5522a +ec8cc9f6eefdf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffafff3d5bd9c493b4141effffcc8c1b9252e3d70cfffffffffff +fff4c8c8a1203536adfdfdd2ccc623253268ccfffffffffffff6d3d3aa1a2b2b +a9fefcdad7ca121523259de9fffffffffff9dedeba121d209aecfefffffcffff +ffece5e140121843bdfbfffffffffffcfbf6d7c7ccd6e0c0640e0f24f3fffeff +fff8fffff8fffffdfdf8d6c5ccdbeac96704041af3fffffffff8fffff8fffff8 +fffffffffffb46050531b3f5f9fdfffffff4240a0a43b7f3f5fcffffffffffff +d011110e90ececf7ff9f15150dafe8e8f9fffafffffeffffd21c1c177dcfe1f1 +fcfcfffff9fffff8fffff8fffffeffffef3927240477c0d5ecfbffffffffffdd +2e2e2773becfe9fbffffffffc2834d3f588fd0dbedfffffafffffdfffadfd2d7 +dce5cd853b332bb6bfc4fcfffafffffdfffff7594643398bb8caedffffffffff +ffdc4d4d3e6aaeb1dffefeffffffcb9567515a7fb5c6e4fffffafffff8fffffd +ffe8b35c4f31698f854f544e60989fd2fafffff8bd645f3a749a9ae6fffbffff +fdffffe26b6b56518793cef6fdfffffafffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e5bff57202ec0000 +ee0000ee0000ee0000ed2439efb5e5f8c987ee3596f6ccccf13232f1fffffaec +d6f6812dec1850ef0000ed1017ed5174ef0807ed3536ed4657ef5742ed0000ee +1720edc0fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff7930fec0800eeb7e1f5e9e5f5b289ee0d0aecdfeaf9fefff78d18ec0d25 +f0d0e9f6fcfff5a872ed130ceedfdff9fffbf22322eb79c9f7eefcf8fffffaed +a8ee2619eed4d4f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbf1d7bc954d1a41418cfffff5c1c1a2243c3daffcfe +fffffcfffffdcfc8bf2326365fc3f9ccccb41d3132aafcfefffffcfffffdd8d3 +ca221d2956bbf7f9ede0ba782e070f16497aa4dee8dd9c4b12202697fffffeff +fff9fffbf0e5c564171919ecfffefffff8fffff8fffff9fffff7efef860e0f0f +f3fffefffff8fffff8fffff8fffff8fffffcfafa8c040404f3fffffffff8ffff +f8fffff8ffffffffdb71050402e4f9f9feffffffffd70a0a0990f0f3fafffbff +fffffffff52d111137adeceffaa615150db7e8e8fafffafffffeffffff5d1c1c +0e86d1e1f2fdfffff9fffff8fffff8fffffafffffee09f5523170928547cc6e5 +edbc732d211570cfd1e9fffffcfffffead3434200075c9c8e8fffffafffff8ff +fff8fffffdffffaa3f3f23b6bfbffcfffafffffdffffe146463b6db5b8e1fefc +fffffefffff7624d492f79a9c0e6fcffffffb95252320064aaaadbfffffaffff +fdfff1c05a53383975a3c2e5ff695f5f59989fd0fafffff8bd645f3a799a9ae9 +fffbfffffdffffff956b6b23588894d3f7fffffbfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e0bef577 +2eed76c6f5f5eaf5e0e1f5d7c5f26339ee9fe5f8c985ee3596f6ccccf13232f1 +fffffae8d0f6832aec6fbff24128eda1edf9f6f3f8cebcf3c8c8f1161feca0db +f4dce0f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff9fffbf10d0deaadf1f9fbfff8fffff9fffff21414ece2eafafefef218 +18ec86cef5efe2f4dbe6f7f9ccf01e18ebb8dff8f9fff9a62dec1622f0dadff9 +fffff75628ec2288f4d9eff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffcffffeeb398907e727180837b6d697cb1bacaf6ff +efb79e947e707080837b6e6a7cacb5c6f5fff0bba3997e6f6f7f837c6f6c7ca7 +afc2f5fffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffaf9e3cdac7034253b42aaeafffffce4c1b870243a +3db0f6fefffffdfffffbd1c8b921203634afeccccc811e2f32abf5fefffffdff +fffcdad3c3231826299fe9fffbedd9c17411161165846200000007141c50a5e1 +fffffffffffbf5e4e4920c151974d2fffffefffff8fffff8fffff9fffff7efeb +860e0f0ff3fffefffff8fffff8fffff8fffff8fffffcfaf68c040404f3ffffff +fff8fffff8fffffbffffffa305030363c9f9fbfefffffffff3980a0a0691e8f3 +fafefcffffffffffed3811100387e0ebf6f259151407003f9ac0c1cac6bf9975 +42100c062f86d1e6f2fdfffff9fffff8fffff8fffff8fffffeffe79b29241662 +805f141a130000002d7cb5daecf9fffff9fffffbf8f2e5f0f5f1fcfdf8fffff8 +fffff8fffff8fffffdfffcaa3f3e23b6bfbffcfffafffffdfff6b14643296eaf +b8e2fcfdfffffefffff26a4d470d629fb0dbf7fffffdf9f4e8f1f4eefafcf8ff +fffdfffccc59583e4c7ca5cde8fffffff8685f5b5f9d9fd4fdffffffef91645a +1e002a657e97bfcbc4ab916c3e2d161f5788a8d3f7fffffbfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +eacbf58328ec0000ee0000ee0000ee0000ed2639efbee5f8c985ee3596f6cccc +f13232f1fffffae5d0f6782eeca0e1f7bd4dec1a48f09c8bf19090f19288ef11 +15ed7a92f28d89ef6b7ef3fffff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff9fffbf10d0dece6f1f9fefff8fffff9fffbf21413ece1eafa +fefff21818ec2e48ef4242ef403cef3c4fef3a2fed9fdcf7f4fefaffe0f1241f +ebb1daf9f8dff02822ecbed5f8fafff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffcfffff0ae928b766968787a71626579b2 +bacbfbfff0b29790766767787a71636678acb5c7fafff1b69d95766566777a72 +656878a7b0c3fafffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9fffffdf0d9c293561a223843a2defffffffffffff5c1 +c1a2223c3da7fcfefffffcfffffdcfc8bf2326365fc3f9ccccb41b3132a2fcfe +fffffcfffffdd8d3ca221e2b57c1f9d7d7b612202789d8fffffffffcf5eccca0 +650b18206dc7fffffff7e4e4a7131a1abefffefffffafffff8fffff8fffff9ff +fff7efeb860e0f0ff3fffefffff8fffff8fffff8fffff8fffffcfaf68c040404 +f3fffffffff8fffff8ffffffffffbb030403b4fafafdfffaffffffffffd70a0a +0987f0f3f9fffbfffffffffff52d111134a1e2eff9fefffbe1ad8e75452f2b2c +5474ada16c15130c86cfe1f2fcfcfffff9fffff8fffff8fffffeffffd4272720 +62b1d6e8f8ffffffffeec48c2a2115489ccfdff3fffffff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffffdfffcaa3f3e23b6bfbffcfffafffffdffffe146 +463b66b5b8dffefcfffffefffff7624d492f79a9c0e6fcfffffafffff8fffff8 +fffff8fffffdf7b45a5531023b5e59676e786f5d422a230f1b272c395e89b5c8 +e1fffcebc9b399664c413144598088724f472d578793d3f6fdfffffafffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8e1bef5742bed5fbbf5f2e6f5dce0f5d1c5f26339ee9fe5f8c985ee35 +96f6ccccf13232f1fffffae5d0f6752eec92f5f9d4a7ed171bee869bf1757cf1 +a095ef1217ed7b9cf26d67ef85a0f3fffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff9fff3f00d0ceacff1f9fdfff8fffff9fffbf21413 +ece2eafbfef7f11817ebbde6f8fafff8fffff8fffff8fffff8fffff8fffff8ff +fff67424ed1582f19137ed1b5bf2d5e6f8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffafffffcdcc7b05e290f36456dd7fffefffffafffffa +fffffcc8c1b924293c65c1fcfffffffffff2c8c89a203436adf7fdd2ccc62322 +315cbdfcfffffffffff5d3d3a21a2b2babffeed7d780192626affbfefffffbff +fffee3dedb22121c299ae8fcf0e2cb690f1a1a95fffffefffff8fffff8fffff8 +fffff9fffff7efeb860e0f0ff3fffefffff8fffff8fffff8fffff8fffffcfaf6 +8c040404f3fffffffff8fffff8ffffffe37702030287fafafdfffff8ffffffff +fff4270a0a35a6f0f5fbffffffffffffc811110d8de1ecf7fefbfffff8fffff8 +fffff8fffffeffcf681c160cc9e1e2fcfff9fffff8fffff8fffff8fffffefff5 +a427261788d3d6f0fefbfffffefffffc4d2e2e1173bad0e9fafffffbfcf6f0f5 +faf3fdfef8fffff8fffff8fffff8fffffdfffcaa3f3e23b6bfbffcfffafffffd +fffff75c46432f7eb5c6e8feffffffffffd54d4d3b6aa9b1dffbfcfffffafcf8 +f1f6f9f2fbfef7fffffdf6deccbebbb0acb0abb0b1b6cbc7ae514f3d31616e98 +b7cbe9eaf1fffffbfffff8fffff8fffffcffdf9c6b5426839394f3fffbfffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee0000ed2639efbee3f7 +c97ded358ff6ccccf13232f1fffffae8d0f67f28ec79c6f5b360ed2a9df5d7d7 +f02727efe0d9f64322edbacdf02121f0fbfffafffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff9fffff43f0deb033cf0ebf3f6dfd6f24f +0fec0500edd7eafafdfff67618ed0a00eeaccbf4e7eff6e4e1f2491bedbddff8 +f9fff8fffffaffc1f0251bed0000eba2d7f8f5fff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffafffffed0b6b340000020363e93c8dbddccc3bebe +b8babdbcd3e2f3f2d7c199440e2e3a68d3fcf9e7d4bf732f13363679fffffff4 +decca2480c252f60d0fcf9ecdcc97a320f2b2b72fffff8dcd7b51b0c172569a7 +fdfffefcf5ebc89a67101c2090e8fee5e2de1f171b65d6fffffffdfffff8ffff +f9fffefbfbf5dcd2dae1edbd680b0e0fc2f2f6ddd3d6fdfffffffffdfef6dbd0 +dbe7f8c66d030404c1f4f8dbd1d4fdfffffffff41b020253cffcfcfefefffff8 +fffff9ffffffcb600a090439bceef0fcfff59a480f0a0450ececf3fffffff5d3 +b7b6c8d4e8f1e2c49550140f074fa3d9ecf7fefffff9fffff8fffff8fffff8ff +fffeffffdc422721054380d3e2edfffffde9bf8e2a201669b9cfe7faffffffff +b54434220575c9c9e8fffffafffffdfff9e3dae2e6f2ce8d3e321b90b7bad4da +ddf4f3f4feffffd8864638192b8eb4c4eefef6b376482c123cb1b1cbfffffcff +fffec06052350764aaaadbfffffafffff8fffff8fffff8fffffcfffff8695f5b +599d9fd0fdfcfffffdf8e2cfcbcac7d5e2ded3b68350391b346a8eb8e0faffff +fbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8dfbef57936ed84e1f7fdfef8fafaf8e2c5f57b34 +ed89eef8fafbf6ebfff8ccccf03232f1fffffaf0daf68f2cec0000ee1924ee88 +b5f13f18ed31a8f5d9d9f52424eeeedcf67100eb1d20efecfffafffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9ffe4f10e0ced0000ee +0000ed9c9cef0d0dece6eaf9fffff9fffff48e60ed0d08ee0000ee0000ed0a42 +f0e0e8f8fffff8fffff9fffff56526ec0b4cf0d7e5f8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffafffff9cbb6a935000000000000000000 +000000000008293c57b9f1ffffffe4d0c36c2a0000000000000c2b3762d4fffe +fffffcffffffe9d8ce732d0000000000000a232c59d2fffefffffcfffdf4e1ce +9f32000000000000000011191f90c8f5fff9eae2b24b1b1b43fbfffefffff8ff +fff8fffff9fffef6ece1890000000000000000000000030c0c3ef3fffffffffb +f7eb8f000000000000000000000001010135fbffffffcb4f02022cf8fcfcffff +f8fffff8fffff8ffffffffffff92400c070300000000000034bbeef1fbfffbff +fffff49619160d000000000000267eb4d0f2f9fcfffff9fffff8fffff8fffff8 +fffff8fffff8fffffefff5c559271e0a00000000000000006a9dc8e7f3fdffff +fcfffffebe4c34243186c9d4edfffffafffffdfff6ad3c392300000000000000 +0000000027b3bccafcffffffffffad6f472810000000000000278db2c3eefffc +fffffbfffffec86652392e72aabce2fffffafffff8fffff8fffff8fffffcffff +f3695f5859989fd0fafdfffffef8ba67613802000000000019537697cfe8f4ff +fffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8dcbef5733aed8eeef9fffff8fefcf8cc +bcf13f36ed94f5f9fffff8f2e3f39a61ed3232f1fffffae8d0f67c28ec82e4f9 +f1daf79221ec2832f2fff9f9dabbf02124eeedfffadedef20f1cec86dff7ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fff8 +f7e3e2f5f1fcf8fefff8fffff8fffff8fffff8fffff8fffff8f8f2f6ebeaf6f5 +fbf8fefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9fbf9f6e9e3dde3e5e4f6ff +fcfffff8fffff8fffff8fffff9fbfaf7eae3dde3e4e3f5fffcfffff8fffff8ff +fff8fffff9fcfbf3eae3d9e2e2e2f5fffdfffffdf2e1e17d0f1a1b8fe8fffffe +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffdffffff8d01010181e3fc +fdfffffff8fffff8fffff8fffff8fffff8fffffdede5dfe0deddf2fdfbfefff8 +fffff8fffffafffcf0f2f3ebeae9e9fbfdf9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffff8efe8dde1dfddeff9f8fdfff9ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffffcf1ece6e3e0ddedf5f4fbff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff9fffdf3f7f6edececeaf5f6f4fefff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8debef57b39ed94eaf9fffff8 +ecd0f68629eb2d39efd5fff8fffcf7cac1f00715ed4e85f3fffff9e6d0f6732c +ec79f5f9fffbf7f9eaf6e4f9f9e3d8f43f05ec2440f1fffff9fffdf8fff5f8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffffa0b0bec00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ecd3d3f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff6e1e19f171d1dcdff +fefffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffffffffffb4010101 +c5fdfdfefff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9bdbdf60000ec0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee1f1fedfffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffefffffdffecfbc291ef3c5ef6f8f5fee7dcfbfeffffffffffff +fdfee5dcf79590f6f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2bffafffffff2e6fc +934cec2428f1fdffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffefaf7f1e7dedad7dce3e9f8ffffffffff +fffffffffffffffffff9f7f6e2d9dad8dbe1f2fdffffffffffffffffffffffff +fffaf8f8e3d9dad7d9e0f1fcfffffffffffffffffffffffffffbfaf6dfdad4d2 +d8d9ebf7fffffffffffffffffffffffffffffffff9f3f2ba8a81a9dcfdffffff +fffffffffffffffefff9f4f9ffffffffffffffffffffffffffffffffffffffff +fff9f3f9ffffffffffffffffffffffffffffffffffffffffffbf8578a2d6f9fc +feffffffffffffffe8dddcd3d3d9ecf9fdfefffffffffffffffffffffffffffa +e7dcdcdadee4f7fcfcfeffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffce7e1dbd2d4d3e4f0f7fbfdffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffaf6fafdfcfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffcf8ece6e4d8dbdee9eff3fcfdffff +fffffffffffffffffffffffffffff8f4f0e5e2dee0e5ecf4f7fdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffed9bef85026ed3ea2f8c291ef3c3cf6c5c5f51129ec71c8fc +f7fdfde3f5fcccc6f03232f1ffffffecd0fb7d03eb0000ee0000ed1f2aedc7fa +fdd8c0f00000ed111ced88d0fdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffbb7fee84b6faf2f8ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffff2dbc6975d280000000000000000102f3d +6ec9efffffffffffffffe4d0c36c2a000000000000082b3752d4ffffffffffff +ffffe9d8ce732d00000000000006232c49d2fffffffffffffff8e4d9b2420000 +0000000000000f181e87c0ecfffffffffffffffffffffffae6e6be0c15178ce5 +fffffffffffffffffef7efe4890e0f0febffffffffffffffffffffffffffffff +fffcfaee8f040404eaffffffffffffffffffffffffffffffffffffffd3060605 +7ddcf7fbfeffffffff92400c070300000000000021bbeef0fbffffffffffffff +de6a1714090000000000000044bbe3ebfaffffffffffffffffffffffffffffff +ffffffffffffffd96929220d00000000000000006196c0e5f2fbffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff6ac3f3c24afbfbffaff +fffffffffffffffcc47b46311500000000000000000000000062a2b1dbf8ffff +ffffffffffffffffffffffffffffffffffe7b58a4e321b000000000000000000 +587d9fd3eafffffffffffffffffbe9a67d582b11000000000000529393ceffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffeeafabc83ec1d18ed595bef2d56f29567ec3939 +f2ffe0fac96aeb3574f9ccccf23232f2ffffffe5d0fa772eeaa1e6fbd26aeb2a +61f8d7d7f60c1eec6bcefddbd6f00e18ec7db8fbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa118e90f7ff9e5f3ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffdcbab677363577afcce6eae9d1 +b09b550d1b41418efffffff4dac1a04f0a2a375bc6f0fce5d0be6b2017363688 +fffffff6e1cca95408222d52c2effdead9c97122122b2b81ffffffebd7d76e09 +162557a0fdfffff9f0e8b97e46192020cffffffffffffffffffef5e5dc890b17 +177efffffffffffaf2ebb2470b160000030e0f41f3fffffffffffffffffffffd +f9f5b94a0c17000001040438f3fffffffffffffffffffffffffffffffffff39a +0506046ef7f7fbffffffd46e0a0a0528ace0f4fbfef48f360f090361ececf4ff +fff4591514073a7dd6e8f4fafade8028170d024fe1e1ecffffffffffffffffff +ffffffffffffffffff942727153179d3deedffffffdba36f271a0fa4cfcff5ff +fffffffffffffffffffffffffffffffffffffffffdcd76453e120306000028b6 +bfccfcfffffffffffffffffcbb59462d4691a5abbbbfb7b2b1b0aba1a4c3d8e2 +f0fbffffffffffffffffffffffffffffffffffffffb265595b5c75a4c7dbe8eb +e8b08055341914969eaafaffffffffde696650021c457c96bbe3e1d3bbbbc6d2 +d5e8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffff8fcd5c6f46e74f38d5bed2e26f19c +91f0487bf7fce1fac076ed3598fcccccf13232f2ffffffe5d0fb7b2eeb94d2f8 +610bec0b38f03810ed277ff7fffffffef5fdd99eee0006ec1843f1c7e6feffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdfffffffffffffffffffffffcbb8a +ee0b08ed0000ec2949f1d5f2fefdffffce8cef130ced0000ed5a57f01f2aefd9 +e6fdfdfffcbe9df12d13ed0300ed3d49f0adcffbf5fbffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff3d6bd9c4b3b4142effffec8c1be252e3d70cffffffffffffff5c8c8 +a5203536adfdffd2cccb23253268ccfffffffffffff7d3d3ae1a2b2ba9fefdda +d7d0121523259dedfffffffffffadedebf121d209aecffffffffffffffece5e5 +40121943bdfffffffffffffcfbf6dec7ccdce0c0680e0f25f3ffffffffffffff +fffffffefdf8ddc5cce1eac96b04041bf3ffffffffffffffffffffffffffffff +ffff46050531b3f9f9fdfffffffb240a0a43b7f3f5fcffffffffffffd511110e +90ececf7ffa315150dafe8e8f9ffffffffffffffd71c1c177dcfe1f1fcffffff +fffffffffffffffffffffffff53927260477c5d5ecfcffffffffffe12e2e2873 +becfe9fbffffffffc2834e3f5894d0dbeffffffffffffffffae5d2d7e2e5cd8a +3b332cb6bfc5fcfffffffffffffffffcb046462972b7b7e3ffffffffffffffff +ffffffffffffffffffffcb9569515a83b5c6e5ffffffffffffffffffffffffff +fffffffffffff2a960582d919e9ef7ffffc66a6441276e98b0e2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe5bffa7202eb0000ee0000ee +0000ee0000ed2439efb5e5fac987ed3596fcccccf13232f2ffffffecd6fb812d +eb1850ef0000ed1017ee5174f00807ed3536ee4657f05742ed0000ed1720edc0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdfffffffffffffffffe87 +0dea0727f0daf2fefdfffba46beb0c07efeaeafefff1f86e16eb0946f2d4cdf8 +b7b0f8f6f5fd9421ec1101eeaad1fbe7e2f9a45deb1663f8d8e8feffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff1d7bc954d1b41418efffff6c1c1a6243c3daffcffffffffff +fffecfc8c52326365fc3faccccb91d3132aafcfffffffffffffed8d3d0221d2a +56bbfdf9ede0ba782f070f16497aa8dee8dd9c4b1220269bfffffffffffffffb +f0e5c566171919ecfffffffffffffffffffffffffff7efef890e0f0ff3ffffff +fffffffffffffffffffffffffffcfafa8f040404f3ffffffffffffffffffffff +ffffffffdb73050402e4f9f9feffffffffdc0a0a0990f0f3faffffffffffffff +fb2d111137adeceffaaa15150eb7e8e8faffffffffffffffff5d1c1c0e86d7e1 +f2feffffffffffffffffffffffffffffffe09f56231709285481c6e5eebc732d +211574cfd1eaffffffffffffad3434200078c9c8e9ffffffffffffffffffffff +ffffffac3f3f24b6bfbffcfffffffffffffffffcbb64462d18576c6877787a85 +94a6d3e4ebfbffffffffffffffffb95252320066aaaaddffffffffffffffffff +ffffffe4cbc5bcab93413f3339658ec0dbf4fffff884645f1539596263675c45 +383f455988a2c2deeffcffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0bef9772eec76c6 +fbf5eafbe0e1fbd7c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe8 +d0fb832aeb6fbff44128eca1edfff6f3fecebcf7c8c8f3161feca0dbfadce0fd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +fffbf30d0de98dd8fcf3e2f9d9e7fdfacbf11310eac1eafdfbffffa718e91084 +f9e5f4fffffffffffbf31f1ee9a0dffcf6fffffffffffffffffafafffefeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffff2b398947e727480837e6d697fb1baccf6fff3b79e99 +7e707380837e6e6a7facb5c8f5fff3bba39e7e6f727f837f6f6c7fa7afc4f5ff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff9e3ceac7037253b42aaeafffffce5c1b873243a3db0f6ff +fffffffffffcd1c8bf21203634afedcccc851e2f32abf5fffffffffffffddad3 +c9231827299fedfffbedd9c17811161165846500000007141d50a5e6ffffffff +fffff5e4e4920c161974d6fffffffffffffffffffffffffffff7efeb890e0f0f +f3fffffffffffffffffffffffffffffffffcfaf68f040404f3ffffffffffffff +ffffffffffffffa305030363cef9fbfefffffffff39c0a0a0691e8f3fafeffff +fffffffff43811110387e6ebf6f85915150700419ac0c7cac6c4997544100c06 +2f86d7e6f2feffffffffffffffffffffffffffffffffe79f292417628062141a +140000002d7cbadaecfafffffffffffff8f2ebf0f5f8fcfdffffffffffffffff +fffffffffffffcac3f3e24b6bfbffcfffffffffffffffff8c89b7a7981839395 +a49680322a23000034a2b1c8f8fffffffffff9f4eef1f4f5fafcfeffffffffff +ffffffffffffffcc9c86624e3414181039658ec0dbf4ffffd3646448001f4a72 +8daacbd2d4ad8e5b3d26004a7e93c9efffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeacbfa83 +28eb0000ee0000ee0000ee0000ed2639efbee5fac985ed3596fcccccf13232f2 +ffffffe5d0fa782eeaa0e1fbbd4dea1a48f19c8bf29090f39288f01115ed7a92 +f38d89f16b7ef7ffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffff40d0dec304cef4341ef403cee3c4ff03a2deca4e4fdf8feff9c +18e90e7bf8e5f3fefffffffffff41f1fecdcdffcfeffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff3ae928f76696b787a7562657cb2baccfbff +f4b2979476676a787a7563667cacb5c8fafff4b69d98766569777a7665687ba7 +b0c4faffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff0d9c393561a223843a2defffffffffffff6c1c1a6223c +3da7fcfffffffffffffecfc8c52326365fc3faccccb91b3132a2fcffffffffff +fffed8d3d0221e2b57c1fad7d7bb12202789d8fffffffffcf5edcca0690b1820 +6dc7fffffff8e4e4ab131a1abefffffffffffffffffffffffffffffffff7efeb +890e0f0ff3fffffffffffffffffffffffffffffffffcfaf68f040404f3ffffff +ffffffffffffffffffffc0030403b4fafafdffffffffffffffdc0a0a0987f0f3 +f9fffffffffffffffb2d111134a1e9eff9fffffbe6ad8e79452f2c2c5478ada1 +7015130c86cfe1f2fcffffffffffffffffffffffffffffffd927272162b1d6e8 +f8ffffffffeec4902a2116489ccfdff3ffffffffffffffffffffffffffffffff +fffffffffffffffffffffcac3f3e24b6bfbffcffffffffffffffffffffffffff +ffffffffffffffffffd94d4d3d4a98b1d1f4ffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff2c460583d5f9c9ed8feda64644d +629a9ad9ffffffffffffffffaf6b6b32518791cef6ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e1bef9742bec5fbbfaf2e6fadce0fad1c5f66339ec9fe5fac985ed3596fccccc +f13232f2ffffffe5d0fa752eea92f5fcd4a7ed171bed869bf3757cf2a095f012 +17ed7b9cf36d67f185a0f7ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffff3f20d0ce8c7f1fefcffffffffffffffffffffffffffff +ffffff9c18e90e84f9e5f4fffffffffff4f31f1de9b0dffcf8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffedcc7b55e291036456ed7fffffffffffffffffffffec8 +c1be24293d65c1fffffffffffff3c8c89e203436adf7ffd2cccb2322325cbdff +fffffffffff5d3d3a61a2b2babffefd7d783192626affbffffffffffffffe3de +de22121d299aecfcf0e2cb690f1a1a99ffffffffffffffffffffffffffffffff +fff7efeb890e0f0ff3fffffffffffffffffffffffffffffffffcfaf68f040404 +f3ffffffffffffffffffffffe3770203028bfafafdfffffffffffffffffb270a +0a35a6f3f5fbffffffffffffcc11110e8de1ecf7feffffffffffffffffffffff +ffffffcf6a1c160dc9e1e2fcfffffffffffffffffffffffffffffff5a7272618 +88d3d6f0feffffffffffffff4d2e2e1173bed0e9fbfffffffcf6f6f5fafafdfe +fefffffffffffffffffffffffffffcac3f3e24b6bfbffcffffffffffffffffff +ffffffffffffffffffffffffffeb4d4d444a92b1d1f1fffffffffcf8f8f6f9f9 +fbfefeffffffffffffffffffffffffffffffffffffffffed60605650929ecef7 +fb7364613d799abae9ffffffffffffffa96b6b2d518791cef6ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639efbee3fac97dec35 +8ffcccccf13232f2ffffffe8d0fb7f28eb79c6fab360ec2a9dfbd7d7f12727f1 +e0d9fb4322eebacdf12121effbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffffb6f0deb0600eeb4d5f9e9f0fce4e0f64111 +ebc4eafdfbffffab26eb1019f0dee7fbc3b9f8f7f6fc701fec0c26eebedafbf5 +f3fcbe7ced236cf7dae9feffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd0b6b640000020364093c8e1ddccc8bebebdbabdc1 +d3e2f9f2d7c199440f2e3a6bd3fcfee7d4c4732f1336367cfffffff4decca248 +0c252f62d0fcfeecdccf7a320f2b2b75fffff9dcd7b91b0c182569aafdfffffc +f5edc89a6b101c2090e8ffe5e2e21f171b65d6fffffffffffffffffffffffefd +fbf5e2d2dae8edbd6c0b0e0fc2f2fdddd3defdfffffffffefef6e2d0dbeef8c6 +71030404c1f4ffdbd1dcfdfffffffffb1b020253cffcfcfeffffffffffffffff +ffffcb600a09043bbceef5fcfffc9a48100a0453ececf3fffffff5d3bbb6c8d9 +e8f1e9c49552140f074fa3dfecf7ffffffffffffffffffffffffffffffffffff +e0422722054383d3e2efffffffe9bf922a201669b9cfe7faffffffffb5443422 +0578c9c9e9fffffffffffffff9e8dae2edf2ce913e321c90b7bfd4dae5f4f3f6 +feffffad5e4e717f94bbcfdeededdf9853412205179eb1bbf6ffffffffffc060 +52350766aaaaddffffffffffeb7159596d8191cadde4e9e9db9f614e2b071587 +9eaaf1ffffdea364502a09648199dbeffce8c6a25b4228578793d3f6ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffdfbef97936ec84e1fffdfefefafafee2c5f97b34ec89eefe +fafbfcebfffcccccf13232f2fffffff0dafb8f2ceb0000ee1924ee88b5f33f18 +ed31a8fbd9d9fa2424eeeedcfc7100eb1d20f0ecffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdfffffffffffffffffffffffa8959ec0805ee0000ee00 +00ec0a45f1ebf0feffffffffe5f21916ec0000ed0000ece0e2fdfffff86f2aed +0c01ee0000ee0000eb8ac2fbf1fbffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffbcbb6ae3500000000000000000000000000 +0008293e57b9f6ffffffe4d0c36c2a0000000000000c2b3763d4ffffffffffff +ffffe9d8ce732d0000000000000a232c5ad2fffffffffffffdf5e1cea3320000 +00000000000011192090c8fbfff9eae2b24d1b1b44fbffffffffffffffffffff +fffffef7ece18d0000000000000000000000030c0c3ff3fffffffffbf7eb9300 +0000000000000000000001010136fbffffffcb5102022ef8fcfcffffffffffff +ffffffffffffffffff92400c070300000000000035bbeef2fbfffffffffff496 +18160d000000000000277eb4d7f2f9fdffffffffffffffffffffffffffffffff +fffffffffffff5ca59271f0a00000000000000006a9dcee7f3feffffffffffff +be4c3424318ac9d4eefffffffffffffff6b03c39240000000000000000000000 +27b3bccafcffffd89b5e38210a00000000000000002886b0c3ecfeffffffffff +ffffc86652392e75aabce4ffffffffffffb57c60321304000000000000000025 +7298b5e3faffffffffffffffc79c6c412405000000000000527a94ceecffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffdcbef9733aec8eeefffffffffefcfdccbcf33f36 +ed94f5fffffffef2e3f99a61ed3232f3ffffffe8d0fa7c28ea82e4fff1dafb92 +21ea2832f3fff9fddabbf12124ecedfffededef50f1ceb86dffeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdfffffffffffffffffffffffffffffff7f2fc +eaeafcf6fcfffefffffffffffffffffffffffffcfee9f0fcf5fbfffeffffffff +fffffffff8f2fceaf0fefafdffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbf9f9e9e3e3e3e5e9f6ffffffffff +fffffffffffffffffffbfafaeae3e3e3e4e8f5ffffffffffffffffffffffffff +fffcfbfaeae3dfe2e2e8f5fffffffffff2e1e17d0f1a1b8fecffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff8d01010181e8fcfdffffff +ffffffffffffffffffffffffffffffffede5e4e0dee3f2fdfdfeffffffffffff +fffffffcf7f2f3f2eae9f0fbfdfeffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffefe8e3e1dfe3eff9fafdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffefaf6f1eae7e5e9f6f6f9ffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefaf7f1ebe8e9 +edf4f7fafffffffffffffffffffffffffffffffbf7f3ece9e6ecf2f3faffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffdebef97b39ec94eaffffffffecd0fa86 +29ea2d39efd5fffffffcfccac1f00715ec4e85f7ffffffe6d0fa732cea79f5ff +fffbfef9eafbe4f9fee3d8f83f05eb2440f1fffffffffdfffff5fdffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff0b0bea0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ead8d8fcffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff6e1e1a3171d1dcdffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb9010101c5fdfdfe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffbdbdf90000ea0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed1f +1fecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +c0c0c0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccc0c0c0ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff7fffff7ffecf7c291ee3c5ef3f8f5f9e7dcf6fefff8fffff8fffdf8e5dc +f39590f3f1fff9f8f2f8d2bbf3b7bbf4c0c0f2b2bff5fffff9f2e6f6934cec24 +28f0fdfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8c092efa3ccf8f9fcf8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffd +f6f6f1e0dddad2dce4e5f9fffcfffff8fffff8fffff8fffff9f9f6efe2d9d3d9 +dcddf2fdfdfffff8fffff8fffff8fffff9faf7f1e3d9d3d8dadbf1fdfefffff8 +fffff8fffff8fffff9faf9eedfdaced3d8d4ebf7fafffff9fffff8fffff8ffff +f8fffffbf7f0eeba8c80abddf7fffffcfffff8fffff8fefef8f9f4f3fffff9ff +fff8fffff8fffff8fffff8fffff8fffef9f9f3f2fffff9fffff8fffff8fffff8 +fffff8fffffaffffffbd8271a1d8f5fefefcfffff9fffff9e8dcd4d3d2d2edfa +fdfefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9faf5f3fefdf8 +fffff8fffff8fffff8fffff8fffff8fffffcf6f0e6dfded5e3e9ecfafbf9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffbeceae3d5d6dad8ec +f5f4fcfffafffff8fffff8fffff9fffff5ede4dcdddddcf0f5f4fdfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffcefede7d8d8da +d6e8f0f0fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff7d9bef35026ee3ea2f3c291ee3c3cf2c5c5f21129ed71c8f6f7fdf8e3 +f5f8ccc6ef3232f1fffffaecd0f67d03ec0000ee0000ed1f2aeec7fafad8c0f0 +0000ed111ced88d0f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff99d0deb087bf3f0f7f9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffcf1 +d8c1935a26000000000000000011334271cbf0fdfffffeffffffe1cbbd692900 +000000000008303c56d5fffefffffcffffffe6d4c86f2c000000000000072731 +4dd3fffefffffcfffff6e0d3aa400000000000000000121c228ac1e9fffffeff +fff8fffff9fffff9e1e1b50f1a1d8ee6fffffffcfffff9fffef5e9de83131515 +ebfffefffff8fffff8fffff8fffff8fffefaf4e989090909ebfffffffff8ffff +f8fffff8fffff8ffffffffffcd01010180e1fdfdffffffffff903c0604020000 +0000000021c0f3f5fcffffffffe62e100e020000000000000000000000000000 +3093d6ebf6fdfffff9fffff8fffff8fffff8fffff8fffff8fffffefff59f2624 +15c6d8d8fcfff9fffff8fffff8fffffefff9dd86502814080000000000006dca +cae6fffff9fffff8fffff8fffff8fffff8fffffafffffedda16936210e000000 +00000000002a84a9c7eaf9feffffffffffe28c4d401c00000000000000328ead +c4f0fffcfffff9fffff8fffff8fffff8fffff8fffff9fffffde3b0814f311400 +00000000000000236e8dafe2f6fefffff07c6a5f0e0000000000000000000000 +0000001d5a83a4d5f6fffffbfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff9feeaf7bc83ed1d18ed595bee2d56f09567ed3939f1ffe0f8 +c96aed3574f5ccccf13232f1fffffae5d0f6772eeca1e6f8d26aeb2a61f2d7d7 +f30c1eed6bcef6dbd6ef0e18ec7db8f5fffff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb088af5f0f8f8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffffddab5b17539387ab1c7e6eae2ceab92520c1c46468ffffffff3d7bc9c4d +0b2e3c5dc7f1f6e2cbb4681f183b3b89fffffff5dec7a55209263254c4f0f7e7 +d4bf6e2114303082ffffffe9d2d26b0a182a5b9ffdfffff8eee2b47a421d2525 +d0fffefffff9fffff9fef2e0d6860d1d1d7ffffffffffff8eee6a9450b150000 +04131444f4fffefffff8fffff8fffffbf6f0b0490c1600000209093bf3ffffff +fff8fffff8fffff8fffff8fffffef3980001016ffdfdfeffffffd36b05050327 +b0e5f3fcfeee8d320a060260f2f2f7ffffeeb4a49aaeb0abb1b1aaafb4c0e1c9 +8815120c3093ddebf6fefffff9fffff8fffff8fffff8fffffefffdc2652d2d0b +020300002cced8e0fdfff9fffff8fffffeffffce322e2401265baabccfeae3c5 +a7abc2e9ebf2fffff9fffff8fffff8fffff8fffff8fffffbfffffea44b405d76 +89bbd5deeee9d4954c38200549b7b7d3fffff17f4b46162c5ea4c1d7f7fae09d +594325053aababc8fffffafffff8fffff8fffff8fffff8fffffbfffffeb3685f +646573a9ccd7ecead8a566502e073d9898c1fffff4d0c6b9aea9a3b0b1abb0b3 +b8cec19e665a3a1d5a87a4d5fafffffbfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fff8f7d5c6f26e74f18d5bed2e26ef9c91ee487b +f4fce1f8c076ee3598f6ccccf13232f1fffffae5d0f67b2eec94d2f3610bed0b +38ef3810ed277ff4fffff9fef5f8d99eee0006ed1843f0c7e6f7fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9b22cec0a41f2cb9cee +0e0bed0012eda1c9f6f8fcf8fffff8fffff5ab7aee110bed0000ed4874f1e6f0 +f8fefff8fffff8bb6cee5982f2a47aef1b12ed0025efacd8f6e9cdf15022ee08 +00ed3156f0d9e3f7fffff8fffff8fffff7c69def281ded0000ed223defb8d6f7 +f8fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffafff2d2b79747404647f0fffcc3 +bcb426324274d0fffffffffffff3c3c39c233b3baffdfdcdc7c02429376ccdff +fffffffffff5cecea51d3030abfefcd5d2c51218282ba0e9fffffffffff9d9d9 +b61522259dedfefffffcfffffee8e0dc40161e47bffbfffffffffefbf9f5d7c8 +ccd3dbbb62141529f4fffefffff8fffff8fffffdfcf7d6c6ccd8e5c46609091f +f3fffffffff8fffff8fffff8fffffffefefa42000030b7fafdfefffffff41f05 +0544bbf9fafdffffffffffffcf0c0c0a90eef2f9fffbfffff8fffff8fffff8ff +fffeffbd5617100dc6e7e8fbfffafffff8fffff8fffff8fffff8fffffefffadb +ccd2dde9cd7a241f22ced8dbfdfff9fffffbfffffeb2342d1e3192cfdaf1ffff +f9fffff8fffff8fffff8fffffafffffec3865142588ccbd7ecfffffafffff8ff +fff8fffff8fffff8fffffdffde8d473b1caab7b7faf8b34b492c86b2b2ecfffb +fffffdffffdd5252425f9dacd9f8ffffffffcc996c545a7bb0c3e2fffffbffff +f8fffff8fffff8fffff8fffffcffe4a06654288c9899f6fffbfffff8fffff8ff +fff8fffffcffd697715123798d90effffcfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8e5bff57202ec0000ee0000ee0000ee00 +00ed2439efb5e5f8c987ee3596f6ccccf13232f1fffffaecd6f6812dec1850ef +0000ed1017ed5174ef0807ed3536ed4657ef5742ed0000ee1720edc0fff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9b23fec0a03 +ed6191f2e5f4f6a162ed0c07ede6eafafffff68218ec0c0eefcce3f5fcfff367 +1ded0a1cf0dfe3f9fffff9af50ed1708ec568cf3e7f1f48a36ed1303ed0000ef +a5c8f4eacff22d25ec3c94f4dcf1f8fffff79b35ed1b20efb6d0f5fafff5b384 +ee2517eec2c2f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf0d4b6914b1c46468f +fffff4bcbc9d274142b1fcfefffffcfffffccac3ba242a3b63c5f8c7c7af2136 +37adfcfefffffcfffffdd3cec523212e5bbdf7f8ebdbb5752d0811194d7ea6dd +e4d7984915252b9afffffefffff9fffaece0c0611c1e1eecfffefffff8fffff8 +fffff9fffff5e9e983141515f4fffefffff8fffff8fffff8fffff8fffffaf4f4 +89090909f3fffffffff8fffff8fffff8fffffefeda6f000000e9fefeffffffff +ffd605050493f5f9fcfffbfffffffffff4280c0b35a5e8f4fafefffff8fffff8 +fffffeffffd1151511449fdeeef7fefffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffffeffff9f262615ced8d8fdfff9fffffeffffef592d2a0a4d7686 +6455423a30464e669ebfd8eff7fbfffffcfffffeaf3939230072c3c3e6fffffa +fffff8fffff8fffff8fffff9fffffdd89146381d49b7b7d3fff7b34b482c8db2 +b2eefffbfffffdffffff8452521c669facddf9ffffffbb5858350060a5a5d9ff +fffafffff8fffff8fffff8fffff9fffffddea364502a3d9898c1fffffbfffff8 +fffff8fffffcffffe26f6f59296188aedbfafffffbfffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8e0bef5772eed76c6f5f5eaf5 +e0e1f5d7c5f26339ee9fe5f8c985ee3596f6ccccf13232f1fffffae8d0f6832a +ec6fbff24128eda1edf9f6f3f8cebcf3c8c8f1161feca0dbf4dce0f7fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff99c +0deb0881f3f0f8f9fffff9fffbf21413ebabeaf9f9fcf11818ebb5e6f8f9fff8 +fffff9fffbf21f1eeb8edcf7f3fef9a523ec1675f3daedf8fffff9ffedf12a26 +ecc3d4f8fbfff8fffff9aa2fed1d6ef2cde8f9fffcf33534ec76b4f4e3e2f4df +e6f6f4d0f13b2feca0c2f6f4fff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffcffffeeb398907e727180837b6d697cb1bacaf6ffefb79e947e707080 +837b6e6a7cacb5c6f5fff0bba3997e6f6f7f837c6f6c7ca7afc2f5fffbfffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaf9e1c9a76d332840 +48acebfffffce2bcb36d273f42b2f6fefffffdfffffaccc3b420243b3ab1eac7 +c77e213437aef5fefffffdfffffbd6cebe221b2b2fa2eafffaead3bc71141a13 +62806000000008172154a7e2fffffefffffcf3dede8e0e191e77d3fffffeffff +f8fffff8fffff9fffff5e9e683141515f4fffefffff8fffff8fffff8fffff8ff +fffaf4f089090909f3fffffffff8fffff8fffffbfefdfda103010065cdfeffff +fffffffff39505050394edf9fcfffcffffffffffed340c0b0286d9f1f9fdffff +f8fffffbffffffb458140f0668e8e8f2fffff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffffeffffbf2d2d1f +002a619baeb6cfd5d29f732a1e120066adcae4f7fefffffcf8f3e6f1f4f1fbfd +f8fffff8fffff8fffff8fffff8fffffdf0b478402a1466a4b8dff7ffffffec7f +4b441600307693a4c3cac2a6885f2f231124669fbcddf9fffffdf9f5e9f1f4ee +f9fcf8fffff8fffff8fffff8fffff8fffffcf2c08e5c3c1c55899ad1f4feffff +fafffff8fffffafffffdd1986e4c20408f8ec0fffffbfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000 +ee0000ee0000ee0000ed2639efbee5f8c985ee3596f6ccccf13232f1fffffae5 +d0f6782eeca0e1f7bd4dec1a48f09c8bf19090f19288ef1115ed7a92f28d89ef +6b7ef3fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff9970deb0881f3f0f8f9fffff9fffff41414eb7fe8f9f5fff21818ecdbe6 +f9fefff8fffff9fffff51f1feb6dd5f7eefdf9a123ec1575f3daedf8fffff9ff +fcf22a29edcad4f8fdfff8fffff9a62fed1c6ef2cde8f9fffff33535ed283fee +4043ef413def3d4cef3b33ed92c4f5ebfdf8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffcfffff0ae928b766968787a71626579b2bacbfbfff0b29790 +766767787a71636678acb5c7fafff1b69d95766566777a72656878a7b0c3faff +fbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffdefd6be8e531925 +3c49a4dffffffffffffff4bcbc9d254142aafcfefffffcfffffccac3ba242a3b +63c5f8c7c7af1f3637a5fcfefffffcfffffdd3cec52322305cc2f8d2d2b21424 +2c8cd9fffffffffcf4e9c79c630d1c2570c9fffffff6dedea3172020bffffeff +fffafffff8fffff8fffff9fffff5e9e683141515f4fffefffff8fffff8fffff8 +fffff8fffffaf4f089090909f3fffffffff8fffff8fffffefdfdb9010101b7ff +fffffffaffffffffffd60505048af5f9fcfffbfffffffffff4280c0b35a5e8f4 +fafefffff8fffffeffde8814110a8bd6eaf6fdfcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffffeffff +c62d2d2185d1d1eefffafffffcfffffe9234341970b5c9e7f9fffffafffff8ff +fff8fffff8fffff8fffff8fffffbfffffed7995d361f0a5e99b9dcf2fffffffa +fffffdfffce8c0a78e5b423a2f49618e90703d3722669dabddf8fdfffff9ffff +f8fffff8fffff8fffff8fffff8fffffbfffffedeaa774e2d0e4e809bcdedffff +fffbfffff8fffff8fffffcffeab56e5e37568490d1f6fdfffffafffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e1bef574 +2bed5fbbf5f2e6f5dce0f5d1c5f26339ee9fe5f8c985ee3596f6ccccf13232f1 +fffffae5d0f6752eec92f5f9d4a7ed171bee869bf1757cf1a095ef1217ed7b9c +f26d67ef85a0f3fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff9970deb0881f3f0f8f9fffff9fffff42314eb7deaf9f4fff118 +18ebbde6f8fafff8fffff9fffbf21f1eeb8edcf7f3fef9a123ec1575f3daedf8 +fffff9fffcf22a29edcad4f8fdfff8fffff9a62fed1c6ef2cde8f9fff5f23532 +eba6c9f7f5fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffcd9c3aa5b2810 +3b4a71d8fffefffffafffffafffffcc4bcb4242d4169c2fcfffffffffff1c3c3 +9623393baff7fdcdc7c023263660bffcfffffffffff3cece9e1d3030adffecd2 +d27c1c2b2cb1fcfefffffbfffffeded9d52215212e9de8fbedddc66712202097 +fffffefffff8fffff8fffff8fffff9fffff5e9e683141515f4fffefffff8ffff +f8fffff8fffff8fffffaf4f089090909f3fffffffff8fffff8fffdfbe1750101 +0189fffffffffff8fffffffffff422050536aaf5f9fdffffffffffffc60c0c09 +90e7f2f9fefbfffffffffffb6513120744a4eaf0f9fffff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9ff +fffeffffef412d2a49a5d1dff5fffffffeffffff8834341670b5c9e7f9fffffb +fcf6f0f6f9f2fcfef8fffff8fffffdfffff7a16c3f220f2993bbc9f0fffcffff +f9fffff8fffff8fffff8fffff8fffff8fffffdffda8c52411e99acacf6fffaff +fff9fcf8f1f6f9f2fbfef7fffff8fffffcfffff8b0835c3116227b9cb2eafffd +fffff9fffff8fffff8fffffcfffffda06c6b262a6590b0ddfffffbfffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +eacbf58328ec0000ee0000ee0000ee0000ed2639efbee3f7c97ded358ff6cccc +f13232f1fffffae8d0f67f28ec79c6f5b360ed2a9df5d7d7f02727efe0d9f643 +22edbacdf02121f0fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff99c0deb0881f3f0f8f9fffff9fffff41414eb7de1f8 +f5fef66818ec0936f0d8ebf7fdfff47f29ed0d02f0dfdff9fffff9a523ec1675 +f3daedf8fffff9fffcf22a29edcad4f8fdfff8fffff9a62fed1c6ef2cde8f8ff +fff78735ee1600ee96b2f3e2eef6e5e3f35d34edacc2f7f4fff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffeccb1ae3e00 +00223a4395c8dadcccc3bdbeb8bbbebed4e3f3f1d3bc95421032406cd4fcf9e5 +d0ba702e153b3b7dfffffff3dac79e460d2a3564d2fcf9e9d8c4773011303076 +fffff7d7d2b01b0e1a2a6da9fdfffefbf3e8c3966413212593e8fee0ddd8211b +2169d7fffffffdfffff8fffff9fffefafaf4dcd3d9dfe7b966101414c3f1f5dd +d4d7fdfffffffffcfcf6dcd1dae4f2c26a070909c2f3f7dcd2d5fdfffffcfbf0 +1a020355d2fffffffefffff8fffff9ffffffca5c0505023bc0f4f4fdfff59744 +0a070352f2f2f6fffff8fffffeeb9f24110b02c2ebebfbfff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffffdfff8e0d6dfe8f6cc81261e11a3ced2 +d7d7daf7f7f8ffffffd2832d25130c89b0c6eef7f9e0b07d2c201378b9cae9fa +ffffffffb74a39250572c3c3e6fffffffffffc83403f1700005691a7c8cdcdcb +c6bfbab8b0c0cfdbeef4faf7ddc7c4c9cbdbe7dfceab733d2c143c7ca5c9e7fb +fffffcfffffec26558390760a5a5d9fffffffffffc975f5d220000487a8cbacc +d1cfc7c0bbbab2bfcad3e7eff6fffffef3c377644109789191ebfffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8dfbef57936ed84e1f7fdfef8fafaf8e2c5f57b34ed89eef8fafbf6eb +fff8ccccf03232f1fffffaf0daf68f2cec0000ee1924ee88b5f13f18ed31a8f5 +d9d9f52424eeeedcf67100eb1d20efecfffafffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff9940deb168af5f1f8f8fffff9fffff42114 +eb85e6f8f5fff9fffff45e19ed0800ee0000ed0008eecee2f9fcfff8fffff99e +23ec217df4dceff8fffff9fffcf22a29edcad4f8fdfff8fffff9b03ded1e6ef2 +cde7f8fffff9fffff59c74ee1c11ee0000ee0000ed093aefc5d4f7fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffff9c7 +b1a3340000000000000000000000000000092d415cbbf1ffffffe1cbbd692900 +00000000000d303c66d5fffefffffcffffffe6d4c86f2c0000000000000b2731 +5ed3fffefffffcfffdf3ddc99b300000000000000000131d2593c9f5fff7e6dd +ae4a202147fbfffefffff8fffff8fffff9fffef4e6dc86000000000000000000 +000004111242f4fffffffef9f1e68c000000000000000000000002060739fbfe +fbfbc84f03032efbfffffffff8fffff8fffff8ffffffffffff903c0604020000 +0000000035c0f3f6fcfffbffffffffffd011110e3b96dbf0f8fdfffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffffefff4a22322140000000000 +0000000000002ccbd5ddfdfffffffffeb378371e110200000000000070a7cbe7 +f6fffffffcfffffec05139283182c3d0ebfffffffffff178403b130000000000 +0000000000000000001774a9bee4f9f6af4e492a0100000000001d6089a9daee +f6fffffafffffafffffeca6b583d2e6ea5b8e0fffffffffff38d5f581c000000 +000000000000000000000013618da4d9f7ffffe26b6b56245d88acd7f7fffffb +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8dcbef5733aed8eeef9fffff8fefcf8ccbcf13f36ed94f5f9 +fffff8f2e3f39a61ed3232f1fffffae8d0f67c28ec82e4f9f1daf79221ec2832 +f2fff9f9dabbf02124eeedfffadedef20f1cec86dff7fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8ede6f5e4e3f7fbfcf8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8f9f4f6ecebf6f4f8f8fdfff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f9faf8f5e9e3dde4e6e5f6fffcfffff8fffff8fffff8fffff9fbf9f6e9e3dde3 +e5e3f5fffcfffff8fffff8fffff8fffff9fcfaf3eae3d9e2e3e3f5fffdfffffd +efdbdb7a121f2192e8fffffefffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fffdfdfafa8b02040383e5fffffffffff8fffff8fffff8fffff8fffff8fffffd +ede5dedfdeddf2fefcfefff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf9f4e8e7e5ddeff8f6 +fcfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff9fffdf2f5f5ecebebeaf7f8f5fe +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8debef57b39ed94eaf9fffff8ecd0f68629eb2d39 +efd5fff8fffcf7cac1f00715ed4e85f3fffff9e6d0f6732cec79f5f9fffbf7f9 +eaf6e4f9f9e3d8f43f05ec2440f1fffff9fffdf8fff5f8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffffa0b0bec0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ecc1c1f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f9fffff4dbdb9b1b2222cefffefffff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffffdfafab0030404c7fffffffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff9bdbdf60000ec0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee1f1fedffff +fafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0cc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccc0c0c0ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff +fffdffecfbc291ef3c5ef6f8f5fee7dcfbfefffffffffffffdfee5dcf79590f6 +f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2bffafffffff2e6fc934cec2428f1fdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffffffbf5fcf4fbfffeffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffbf5fcf5fafffefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffff5fa9488f4d9ddfcfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffefaf7f1e7dedad7dce3e9f8ffffffffffffffffffffffffff +fff9f7f6e2d9dad8dbe1f2fdfffffffffffffffffffffffffffaf8f8e3d9dad7 +d9e0f1fcfffffffffffffffffffffffffffbfaf6dfdad4d2d8d9ebf7ffffffff +fffffffffffffffffffffffff9f3f2ba8a81a9dcfdfffffffffffffdfdfce6da +dad4d4dbeffcffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffbf8578a2d6f9fcfefffffffffffaef +e3ddd4d3d9e0f4fdfdfefffffffffffffffffffffffffaf5e4deddd4dbdff2f7 +fcfefefffffffffffffffffffffffffffffffffffffffffffffffffffffbf1e7 +e0d7d5d9dff0f8fafdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdeae5dfd5d5d3e1ecf2f8fcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffcefe8e6dedce0ecf2f4fdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +d9bef85026ed3ea2f8c291ef3c3cf6c5c5f51129ec71c8fcf7fdfde3f5fcccc6 +f03232f1ffffffecd0fb7d03eb0000ee0000ed1f2aedc7fafdd8c0f00000ed11 +1ced88d0fdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffffffa0f0de90085f9f0f8ffffffffffffffffffffffffff +fffffffffffffffffffffffffffffb201dea017cf8dff1feffffffbe85ef87b2 +faecf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff6f43936eab5c5fafaffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff2dbc6975d280000000000000000102f3d6ec9efffffffffff +ffffe4d0c36c2a000000000000082b3752d4ffffffffffffffffe9d8ce732d00 +000000000006232c49d2fffffffffffffff8e4d9b24200000000000000000f18 +1e87c0ecfffffffffffffffffffffffae6e6be0c15178ce5fffffffff6f0ec83 +33000000000000020b0e2fcbfffffffffffffffffffffffffffffffefcf7b467 +02020398f3ffffffffffffffffffffffffffffffd30606057ddcf7fbfeffd486 +3f0a0603000000000000000037abdaf2fafdffffffffde965b140d0700000000 +00000000007db3e3f2f9ffffffffffffffffffffffffffffffffffffffd99456 +22150900000000000000003196c0dbf2fbffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffcc98d3f2e1a71b5bde4fcffffffffff +ffde7f473b1600000000000000005380a4d5e9f9ffffffffffffffffffffffff +fffffffffffffffffffcca89593e1a00000000000000000000000057919ed3f7 +ffffffe99c665725000000000000002d7a94b4ecffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffeeafabc83ec1d18ed595bef2d56f29567ec3939f2ffe0fac96aeb35 +74f9ccccf23232f2ffffffe5d0fa772eeaa1e6fbd26aeb2a61f8d7d7f60c1eec +6bcefddbd6f00e18ec7db8fbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffffdaf91f2b4d9fdfafdffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdb598f2b3d4fcf6fbffffffffa5 +23ea1679f8daeefeffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff63939ebbcc5fafcffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffdcbab677363577afcce6eae9d1b09b550d1b41418e +fffffff4dac1a04f0a2a375bc6f0fce5d0be6b2017363688fffffff6e1cca954 +08222d52c2effdead9c97122122b2b81ffffffebd7d76e09162557a0fdfffff9 +f0e8b97e46192020cffffffffffffffffffef5e5dc890b17177efffffffbf3eb +c260030d1039baedfef8f3e68127060c0c6ffffffffffffffffffffffefbfac5 +7300000001020298f3fffffffffffffffffffffffffff39a0506046ef7f7fbff +ffff8b190a5293b5dae7eef2e9d47a1e0d080161ececf4ffffff932715487aa5 +cce3eaeeeae596531810071dd7e1e5feffffffffffffffffffffffffffffffff +ff9934275883a0c9dde9f0e9d7893725150355cfcfe3ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd6963f321d00000071b5bde4fcff +ffffffa34646242a68b5c7dffeffffe1b184402b188cb1b1eeffffffffffffff +fffffffffffffffffffffffffffcc26b593a428293a2bcc3bab2b1b0aba3a6c0 +d3daecfbf99164601e26538dafcff5fae9ab705a3006349393b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff8fcd5c6f46e74f38d5bed2e26f19c91f0487bf7fce1fa +c076ed3598fcccccf13232f2ffffffe5d0fb7b2eeb94d2f8610bec0b38f03810 +ed277ff7fffffffef5fdd99eee0006ec1843f1c7e6feffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffb468ec64acfbf5faffffffffb6 +5fec508ef5b486f0110ced0011ed9dc5fcf7fbffffffffb972ed6aa6faebf5ff +d091ef1b12ed0000ed5653f0222defdadcfcc16dee6998f7ceb8f36047ee3958 +f4d9e1fdfffffcb589f12116ed0000ef5c5ced1a1aecbcc5fbfcffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff3d6bd9c +4b3b4142effffec8c1be252e3d70cffffffffffffff5c8c8a5203536adfdffd2 +cccb23253268ccfffffffffffff7d3d3ae1a2b2ba9fefddad7d0121523259ded +fffffffffffadedebf121d209aecffffffffffffffece5e540121943bdffffff +ffedebe71e0e1352c4fffffffffffffcf1f1c7070c0c9cfbfffffffffffefbf8 +d589040504a3ded51e020388f3ffffffffffffffffffffffffff46050531b3f9 +f9fdffffffffffffffffffffffffffffffffffd56f110e09d9ecedfdffffffff +ffffffffffffffffffffffec841c1a0dcfe1e1fcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffda802e2614becfd0fbffffffffff +c2834e3f5894d0dbefffffffffffffffffffffe3a83d35227caaa33f39366db5 +bde0fcfffffff65546430666a9b7dff9ffffffffffe64d4d4262a2b1dbf8ffff +ffffcb9569515a83b5c6e5fffffffffffffcb859593466a3a3dcffffffffffff +fffffffffffffff8c0645f3c749a9ae6ffffffffffffffe56b6b58518793cef6 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe5bffa7202eb0000ee0000ee0000ee0000ed2439 +efb5e5fac987ed3596fcccccf13232f2ffffffecd6fb812deb1850ef0000ed10 +17ee5174f00807ed3536ee4657f05742ed0000ed1720edc0ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffff9c0de80885f9f0f8ff +ffffffa943eb0c04ec5f8df6e2f2fba365ec0f09ece1e5fdfeffffa31dea127c +f8dff1fefef2f87521ec0e43f2c9c7f8b9b2f8f2f2feb556ed1c09ec0032f096 +90f26f85f7e1e6fea534ee1d01ed9bbef8e3e6f9bb97f0271decbcc5fbfcffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1 +d7bc954d1b41418efffff6c1c1a6243c3daffcfffffffffffffecfc8c5232636 +5fc3faccccb91d3132aafcfffffffffffffed8d3d0221d2a56bbfdf9ede0ba78 +2f070f16497aa8dee8dd9c4b1220269bfffffffffffffffbf0e5c566171919ec +fffffffffcebebc90b13139efbfffffffffffffff3f1ee1f080c3eb1fbfffefc +f7e39d0205075cb8fffbfbfb12020384f3ffffffffffffffffffffffdb730504 +02e4f9f9feffffffffffffffffffffffffffffffffffcc71100e0761ececf4ff +ffffffffffffffffd9b6adb2aa8d12120f5190caecf4fcffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd2832d251355cfcfe3ffff +ffffffffad3434200078c9c8e9ffffffffffffffefb73c3726448bc2d6edff4d +404067b5bddffcffffffffe5ac6e3d270f22486eb1d2e2c2874b361f63b1b3dc +ffffffffffffb95252320066aaaaddfffffffffffffcc274593a1a4e615e777c +7c8390a1cbdde5fafffffff8c0645f3c799a9ae9ffffffffffffffff956b6b23 +588c94d3faffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe0bef9772eec76c6fbf5eafbe0e1fbd7 +c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe8d0fb832aeb6fbff4 +4128eca1edfff6f3fecebcf7c8c8f3161feca0dbfadce0fdffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff970de80881 +f9f0f8ffffffff9e12e90c7ef9eaf5fffffffffffbf31919e9a4e5fdf7ffff9e +1dea1278f8dff0feffffffab23ea177df8daeffeffffffffffffa82aec1a5ef4 +d3e6fefffffffffffffffcf43231ea92ccfaf0fffffffffffffff53939ebbcc5 +fafcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffff2b398947e727480837e6d697fb1baccf6fff3b79e997e707380837e6e6a +7facb5c8f5fff3bba39e7e6f727f837f6f6c7fa7afc4f5ffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f9e3ceac7037253b42aaeafffffce5c1b873243a3db0f6fffffffffffffcd1c8 +bf21203634afedcccc851e2f32abf5fffffffffffffddad3c9231827299fedff +fbedd9c17811161165846500000007141d50a5e6fffffffffffff5e4e4920c16 +1974d6fffffffffef6ebe08c0b12139ff4fffffffffffffef4f1e628070c0b9d +fcf6f6be04060878c2fffffffffbfbf71003038ffbffffffffffffffffffffa3 +05030363cef9fbfeffffffffffffffffffffffffffffffeb9e540f0a0584d4ee +f7fdffffffffffffffffffffb7745441452e0607055190caecf4fcffffffffff +ffffffffffffffffffffffffffffffffffffffffffffeda969291b0d74bad1ea +fafffffffffffffff8f2ebf0f5f8fcfdfffffffffffcc73b3a2a5a93c3def0ff +fffffc4b403f6ebbbde2feffffffffffebac473f27546e54222c22000000276a +9fc2dff6fffffffffffff9f4eef1f4f5fafcfefffffffffffff8cea6877f807d +8e94a397833f352b00002e919ebaf7fff291645c1e002b657e9bbfcbc9ab916f +3e2d161f578ca8d3faffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffeacbfa8328eb0000ee0000ee +0000ee0000ed2639efbee5fac985ed3596fcccccf13232f2ffffffe5d0fa782e +eaa0e1fbbd4dea1a48f19c8bf29090f39288f01115ed7a92f38d89f16b7ef7ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff97 +0de80881f9f0f8ffffffff9a12e90b7ef9eaf5fffffffffffff91919e97adafd +f2feff9e1dea1278f8dff0feffffffa123ea1575f7daedfeffffffffffffa42a +eb1971f7d3eafefffffffffffffffcf43231ecc2ccfbfcfffffffffffffcf539 +38ebbcc5fafcffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff3ae928f76696b787a7562657cb2baccfbfff4b2979476676a78 +7a7563667cacb5c8fafff4b69d98766569777a7665687ba7b0c4faffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff0d9c393561a223843a2defffffffffffff6c1c1a6223c3da7fcffffffffff +fffecfc8c52326365fc3faccccb91b3132a2fcfffffffffffffed8d3d0221e2b +57c1fad7d7bb12202789d8fffffffffcf5edcca0690b18206dc7fffffff8e4e4 +ab131a1abefffffffffffffffcebebc90b131395fbfffffffffffffff3f1ee20 +0a0c4bcaf5f69f0f0305045b8f8d6e5a706e5d290001012c3f484171b6ffffff +ffffc0030403b4fafafdffffffffffffffffffffffffffffcc7c2f0b070279c5 +eff6fcffffffffffffffffffffffffffffffffffffffffecac1c1a1286d7e1f2 +feffffffffffffffffffffffffffffffffffffffffffffd28c482214066aadd2 +e8f7fffffffffffffffffffffffffffffffffffffffffffff6a73c382101466f +6d6967786f5d3b1c180b212f363c69a6ccdbde46463f5498b8d8f2fffffffff0 +cda04637243e85b1cbebffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffdd60604c42879ec5f1fffffdefc9b39e664c433144 +5b8088764f472e578793d3f6ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe1bef9742bec5fbb +faf2e6fadce0fad1c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe5 +d0fa752eea92f5fcd4a7ed171bed869bf3757cf2a095f01217ed7b9cf36d67f1 +85a0f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffff970de80881f9f0f8ffffffff9a12e90b7ef9eaf5fffffffffffffa2819 +e978dafdf2feff9e1dea1278f8dff0feffffffa123ea157df8daeffeffffffff +ffffa42aeb1971f7d3eafefffffffffffffff5f43230eaafccfaf8ffffffffff +fffcf53938ebbcc5fafcffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffedcc7b55e291036456ed7fffffffffffffffffffffec8c1be24293d65c1ff +fffffffffff3c8c89e203436adf7ffd2cccb2322325cbdfffffffffffff5d3d3 +a61a2b2babffefd7d783192626affbffffffffffffffe3dede22121d299aecfc +f0e2cb690f1a1a99ffffffffffffffffffedebe7200d1344b4fffffffffffffc +f1f1be080c0ca1fdfcfcd9b8a3b1b5b1afafb0b3c1d8d1a70102024f9bb7c5c8 +e1ffffffe4770203028bfafafdfffffffffffffffffffffffb87420c070335be +f1f4fcffffffffffffffffffffffffffffffffffffffffffffffffffe61c1c19 +73cfe1f0fcfffffffffffffffffffffffffffffffffffffb955928150a2fa7d4 +ddf5fffffffffffffffffffffffffffffcf6f6f5fafafdfefefffffff4d8c6b5 +b7b5aeafb0afb1bdd0ccb037352b3b7388a8c6eaf0f4b946462c75b5b8e5feff +ffffffffffff674d4d1462a2b3dbf8fffffffcf8f8f6f9f9fbfefeffffffffff +ffffffffffffffffffffffffffffffed60605642829ec5eeffffffffffffffff +ffffffffffffdf9d6b5427839394f3ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeacbfa83 +28eb0000ee0000ee0000ee0000ed2639efbee3fac97dec358ffcccccf13232f2 +ffffffe8d0fb7f28eb79c6fab360ec2a9dfbd7d7f12727f1e0d9fb4322eebacd +f12121effbffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffff9c0de80881f9f0f8ffffffff9e12e90c7ef9eaf5ffffffffff +fffa1919e97adafdf2feffa31dea1278f8dff0feffffffaf31ec1719f0d4ddfa +c6baf8f5f2feab2aeb1a71f7d3eafefffffffffffffffffb5d32ed0b32f0c6d7 +fbe3dcf6652eee0f00ecb5c5fbfaffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0b6b640000020364093c8e1ddccc8bebebdbabdc1d3e2f9f2d7c19944 +0f2e3a6bd3fcfee7d4c4732f1336367cfffffff4decca2480c252f62d0fcfeec +dccf7a320f2b2b75fffff9dcd7b91b0c182569aafdfffffcf5edc89a6b101c20 +90e8ffe5e2e21f171b65d6fffffffffffffffffffffbf2ebba52050e114bcafb +fff9f4ed8b39050c0c61fffffffffffffffffffffffffffffffbfbf712030384 +fbfffffffffffffb1b020253cffcfcfeffffffffffffffffffff600a0a040000 +6ebbdde0cfccc2c3c2b8b5b0c3d9f9fafce63615238bb5c6e0e7e9e9e8d47f28 +160d021dc2e1e5fbffffffffffffffffffffffffffffffffff7327270e000061 +a4c3d3cecfc7c4c3b9b7b2c2d2e9f4f8fdffffffb54434220578c9c9e9ffffff +fffffffffffffffffffffffffffffc4d403f67bbbddffeffffffe55d463c093a +71b5cde3feffffedc8a24535255a9eb1d8f6ffffffffc06052350766aaaaddff +ffffffffffb56f60747586b2cadcebece0a264522b06148c9eaaf4fffff8e2d2 +cbcacdd5e2e5d3b68650391b346a92b8e0fdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +dfbef97936ec84e1fffdfefefafafee2c5f97b34ec89eefefafbfcebfffccccc +f13232f2fffffff0dafb8f2ceb0000ee1924ee88b5f33f18ed31a8fbd9d9fa24 +24eeeedcfc7100eb1d20f0ecffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffff940de81695faf1f9ffffffff9712e91987f9ebf6ff +fffffffffffa2719e982e1fdf3feff9c1dea1e8bf9e1f3feffffffffe7f32420 +ed0000ed0000edd7d7fcaa2aeb2779f8d5ecfeffffffffffffffffffffe8f533 +2eed0000ee0000ed8383ef2525edc2c5fbfeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffbcbb6ae35000000000000000000000000000008293e57b9f6ff +ffffe4d0c36c2a0000000000000c2b3763d4ffffffffffffffffe9d8ce732d00 +00000000000a232c5ad2fffffffffffffdf5e1cea33200000000000000001119 +2090c8fbfff9eae2b24d1b1b44fbfffffffffffffffffffffffffffff6f0ec83 +33000000000000030b0e43cbfffffffffffffffffffffffffffffffffffbfbef +12020384f3ffffffffffc95102022ef8fcfcfffffffffffffffffffffff3510a +0a0300000000000000000000000000001e97e9edf8ff96471f0d050100000000 +0000000034a3d8e9f7fefffffffffffffffffffffffffffffffffffff5662725 +0c00000000000000000000000000001a84c6d4edfdffffffbe4c3424318ac9d4 +eefffffffffffffffffffffffffffffffffff64d403d67b5bddffcffffffffff +f6d17144361100000000000000005a86b0d8ecfeffffffffffffc86652392e75 +aabce4ffffffffffffdca56f472a0c000000000000000024789db4e7fdffffff +fff8ba6661380100000000001953769bcfe8f7ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffdcbef9733aec8eeefffffffffefcfdccbcf33f36ed94f5fffffffef2 +e3f99a61ed3232f3ffffffe8d0fa7c28ea82e4fff1dafb9221ea2832f3fff9fd +dabbf12124ecedfffededef50f1ceb86dffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffcfeebf1fcf5fafffeffffffffffffffffffffffffffffffffffffffff +fffffffff9fde7e6fbeef8fefcffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbf9f9e9e3e3e3e5e9f6ffffffffffffffffffffffffff +fffbfafaeae3e3e3e4e8f5fffffffffffffffffffffffffffffcfbfaeae3dfe2 +e2e8f5fffffffffff2e1e17d0f1a1b8fecffffffffffffffffffffffffffffff +fffffffefdfdebe4e3e0e0e5f4ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff8d01010181e8fcfdffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf9 +f3ece5e4e9f1fbfdfeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff1ece7e3e0e2edf5f7fbffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffefaf7f2ebe8e6e8f4f4f8ffffffff +fffffffffffffdfaf7f6f4ececf1f5f6f9feffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffdebef97b39ec94eaffffffffecd0fa8629ea2d39efd5ffff +fffcfccac1f00715ec4e85f7ffffffe6d0fa732cea79f5fffffbfef9eafbe4f9 +fee3d8f83f05eb2440f1fffffffffdfffff5fdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffff0b0bea0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000eac3c3faffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff6e1e1a3171d1dcdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffb9010101c5fdfdfeffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffbdbdf90000ea0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed1f1fecffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccc0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff7fffff7ffec +f7c291ee3c5ef3f8f5f9e7dcf6fefff8fffff8fffdf8e5dcf39590f3f1fff9f8 +f2f8d2bbf3b7bbf4c0c0f2b2bff5fffff9f2e6f6934cec2428f0fdfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8c092efa3ccf6f9fcf8fffff8fbf5f6f5faf8fefff8fffff8c397f0a4c9 +f7f5faf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff9fffef6f7f1e0dedad2dce3e4f8fffcfffff8fffff8fffff8fffff9f9f7f0 +e2d9d3d8dbdcf2fdfdfffff8fffff8fffff8fffff9faf8f2e3d9d3d7d9daf1fc +fefffff8fffff8fffff8fffff9fbfaeedfdaced2d8d3ebf7fafffff9fffff8ff +fff8fffff8fffffbf9f3f1ba8a7da9dcf6fffffcfffff8fffff8fffef9f9f4f2 +fffff9fffff8fffff8fffff8fffff9fefef8e7dbd3d2d3d3eefcfffffff8ffff +f8fffff8fffff8fffffaffffffbf8574a2d6f2fcfefcfffffcfffae8e3ddcfd3 +d9daf4fdfcfefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffff4e9ded7dbde +def4f9f8fefff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fffbfffbece9e2d4d6dad8edf5f5fdfffafffff8fffff8fffff9fffff5ece3db +dcdddcf0f6f4fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffcf3ed +e8ded8dbd8e7edeffbfdfbfffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff7d9bef350 +26ee3ea2f3c291ee3c3cf2c5c5f21129ed71c8f6f7fdf8e3f5f8ccc6ef3232f1 +fffffaecd0f67d03ec0000ee0000ed1f2aeec7fafad8c0f00000ed111ced88d0 +f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff99d0deb087bf3f0f7fafffff41512ec0082f3eaf6f9fffff9a1 +18eb0f75f3e5f2f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffffbf2dbc6975d2700000000000000000f2f3d6cc9effdfffffeffffffe4d0 +c36c2a000000000000082b3752d4fffefffffcffffffe9d8ce732d0000000000 +0006232c48d2fffefffffcfffff7e4d9ae4200000000000000000f181d87c0e8 +fffffefffff8fffff9fffffae6e6b90c15178ce5fffffffdfffff9fffef7efe4 +860e0f0febfffefffff8fffff8fffffffbf9f7893600000000000001020224c9 +fffffffffbfffff8fffff8ffffffffffce0606057ddcf7fbfeffd4863e0a0602 +000000000000000036abdaf0fafdffffffe73315130300000000000000000000 +000000002f8fd1e6f4fdfffff9fffff8fffff8fffff8fffffeffffdc7529220f +000000000000003cacd1def7fffbfffff8fffff8fffff8fffff8fffff8fffffa +fffffedc9e64311e0d00000000000000002b88aecbecf9feffffffffffe18947 +3c1a000000000000003493b2c8f1fffbfffff9fffff8fffff8fffff8fffff8ff +fff8fffffdfcca87593e1900000000000000000000000057919ed3f7ffe9ba90 +57381d000000000000000000527592cee8fdfffffbfffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +feeaf7bc83ed1d18ed595bee2d56f09567ed3939f1ffe0f8c96aed3574f5cccc +f13232f1fffffae5d0f6772eeca1e6f8d26aeb2a61f2d7d7f30c1eed6bcef6db +d6ef0e18ec7db8f5fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff9970deb0881f3f0f8f9fffff6b193f0b3d8f7f9fcf8 +fffff99c18eb0e84f5e5f4f8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff9fffffddcbab677363477afc6e6eae3d1b096550d1a41418cfffffff4 +dac1a04f0a2a3758c6f0f6e5d0b96b2016363685fffffff6e1cca95408222d4f +c2eff7ead9c47122122b2b7fffffffebd7d76e091525579dfdfffff9f0e5b97e +43192020cffffefffff9fffff9fef5e5dc890b17177cfffffffffff9f2ebad47 +0b160000030e0f40f3fffffffff8fffff9fdf9f6cb650105062db6ecf9fdfcea +872901010166fffffffffff8fffff8fffffff39a0506046cf7f7fbffffff8b19 +0a5293b0dae7e8f2e9ce7a1e0d08015eececf4ffffeeb6a69caeafabb1b1aaaf +b4c0e0c88a1a170f2f8fd8e6f4fefffff9fffff8fffff8fffffeffffef662724 +0c3571c5dbe8f9fadb893825150347cfcfdffffff9fffff8fffff8fffff8ffff +f8fffffbfffffea2463b5c798dbed7dfeee9d49247331d054bbcbcd7fffff17b +4641152e61a9c5daf7fadf9a543f22053cb1b1cbfffffafffff8fffff8fffff8 +fffff8fffff8fffffdfcc26b593a4182939ebcc3b5b2b1ababa3a1c0d1d9ecfa +ffb770645e57699dc3d2e7ebe2b5875c3a1b128c93a0fafffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fff8f7d5c6f26e74f18d5bed2e26ef9c91ee487bf4fce1f8c076ee35 +98f6ccccf13232f1fffffae5d0f67b2eec94d2f3610bed0b38ef3810ed277ff4 +fffff9fef5f8d99eee0006ed1843f0c7e6f7fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9fffff8b66bee66aa +f4f2f9f9fffff9b539ec112ff0ad8def1511ed000feda1c6f6f6fbf8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafff3d5bd9c493b4141 +effffcc8c1b9252e3d70cffffffffffffff4c8c8a1203536adfdfdd2ccc62325 +3268ccfffffffffffff6d3d3aa1a2b2ba9fefcdad7ca121523259de9ffffffff +fff9dedeba121d209aecfefffffcffffffece5e140121843bdfbfffffffffffc +fbf6d7c7ccd6e0c0640e0f24f3fffefffff8fffffff7f6eb1c06084ac2ffffff +fffffffefdfdcb01010198fbfffffffbfffffffffffb46050531b3f5f9fdffff +fff8fffff8fffff8fffff8ffffffffd56c110e08d9ececfdfff9fffff8fffff8 +fffff8fffffeffbf5a1c140ec2e1e2fbfffafffff8fffff8fffff8fffffefff5 +a4272617a1d6d6f5fffafffffeffffd62e2e2573becfe9fbffffffffc2834d3f +588fd0dbedfffffafffff8fffff8fffff8fffff8fffffdffdd8942361aafbcbc +faf8b14643298bb8b8edfffbfffffdffffdc4d4d3e62a2b1dbf8ffffffffcb95 +67515a7fb5c6e4fffffafffffdfcb859593463a3a3dafffffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffffcfff3ae6b6231879393f6fffbfffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8e5bff57202ec0000ee0000ee0000ee0000ed2439efb5e5f8 +c987ee3596f6ccccf13232f1fffffaecd6f6812dec1850ef0000ed1017ed5174 +ef0807ed3536ed4657ef5742ed0000ee1720edc0fff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9fffff99e +12eb0c82f3eaf6f9fffff9b548ec1105ed6b95f1d8e7f4a569ed130bebb8dff8 +f9fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf1d7bc954d +1a41418cfffff5c1c1a2243c3daffcfefffffcfffffdcfc8bf2326365fc3f9cc +ccb41d3132aafcfefffffcfffffdd8d3ca221d2956bbf7f9ede0ba782e070f16 +497aa4dee8dd9c4b12202697fffffefffff9fffbf0e5c564171919ecfffeffff +f8fffff8fffff9fffff7efef860e0f0ff3fffefffff8fffffdf6f6ce0508089a +fbfffffffbfffffffdfdf21e010136aef4ffffffffffffffdb71050402e4f9f9 +fefff8fffff8fffff8fffff8fffff9ffffffcc71100e075eececf4fffff9ffff +f8fffff8fffffeffffd21b1b16429bd9eaf6fefffff9fffff8fffff8fffff8ff +fffefff5a4272617a9d6d6f6fffafffffeffffff6a2e2e137cc0cfebfbffffff +ad3434200075c9c8e8fffffafffff8fffff8fffff8fffff9fffffdd78e40341b +4bbcbcd6fff7b146432991b8b8f0fffbfffffdffffff804d4d1b6aa4b2dff9ff +ffffb95252320064aaaadbfffffafffffdfcc274593a1a4e615b777c7883909c +cbdde4fafffbfffff8fffff9fffffde6cfc6beac90484638355e80b9d7f0ffff +fbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8e0bef5772eed76c6f5f5eaf5e0e1f5d7c5f26339 +ee9fe5f8c985ee3596f6ccccf13232f1fffffae8d0f6832aec6fbff24128eda1 +edf9f6f3f8cebcf3c8c8f1161feca0dbf4dce0f7fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9 +fffff99a12eb0b7ef3eaf5f9fffff9a118eb0f7bf3e5f3f8fffff9fffff5241f +eb41a8f4e7f7f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcffffeeb3 +98907e727180837b6d697cb1bacaf6ffefb79e947e707080837b6e6a7cacb5c6 +f5fff0bba3997e6f6f7f837c6f6c7ca7afc2f5fffbfffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaf9e3cdac +7034253b42aaeafffffce4c1b870243a3db0f6fefffffdfffffbd1c8b9212036 +34afeccccc811e2f32abf5fefffffdfffffcdad3c3231826299fe9fffbedd9c1 +7411161165846200000007141c50a5e1fffffffffffbf5e4e4920c151974d2ff +fffefffff8fffff8fffff9fffff7efeb860e0f0ff3fffefffff8fffefaf6ea8f +0508089bf3fffffffcfffffffdfdea2a0101008de5feffffffffffa305030363 +c9f9fbfefffff8fffff8fffff8fffff8ffffffeb9e510f0a0584d4eef7fdfeff +fff8fffff8fffffbfffffeb65c1a120865e3e3effffff9fffff8fffff8fffff8 +fffff8fffffeffffe96627230c003a8eb1b7c8c7c09d7c4b1b14092b7cc0d8eb +fbfffffdf8f2e5f0f5f1fcfdf8fffff8fffff8fffff8fffff8fffffdefb1743b +261269a9bde1f8ffffffec7b463f1500327a98a7c4c9c2a4865c2c210f256aa4 +c0dff9fffffdf9f4e8f1f4eefafcf8fffff8fffffdf8cea3877f7c7d8e90a397 +7f3f352a00002c919eb9f7fffbfffffafffffdd0a38c675033161b12355e80b9 +d7f0fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee00 +00ed2639efbee5f8c985ee3596f6ccccf13232f1fffffae5d0f6782eeca0e1f7 +bd4dec1a48f09c8bf19090f19288ef1115ed7a92f28d89ef6b7ef3fffff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881 +f3f0f8f9fffff99a12eb0b7ef3eaf5f9fffff99c18eb0e7bf3e5f3f8fffff8ff +fff6701feb0c71f3deeff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffc +fffff0ae928b766968787a71626579b2bacbfbfff0b29790766767787a716366 +78acb5c7fafff1b69d95766566777a72656878a7b0c3fafffbfffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffdf0d9c2 +93561a223843a2defffffffffffff5c1c1a2223c3da7fcfefffffcfffffdcfc8 +bf2326365fc3f9ccccb41b3132a2fcfefffffcfffffdd8d3ca221e2b57c1f9d7 +d7b612202789d8fffffffffcf5eccca0650b18206dc7fffffff7e4e4a7131a1a +befffefffffafffff8fffff8fffff9fffff7efeb860e0f0ff3fffefffff8ffff +fdf6f6ce05080890fbfffffffbfffffffdfdf21e010136aef4ffffffffffbb03 +0403b4fafafdfffafffff8fffff8fffffcffffffcc7c2e0b070279c5eff6fcff +fffff9fffff8fffff8fffffeffde8b1a160d88d1e4f4fdfcfffff8fffff8ffff +f8fffff8fffff8fffff8fffffefffce3b3967d4c35302d506ea39c6d221f137c +becfebfbfdfffff9fffff8fffff8fffff8fffff8fffff8fffffbfffffed69658 +321d09619dbfdff3fffffffafffffdfffce7bea48b5940382f4a639292703933 +206aa2b1dff8fdfffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffffcffffda60604a42879ec5f1fefffffafffff8fffff8fffffcfff3c6 +6b6242588c93d3fafdfffff9fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8e1bef5742bed5fbbf5f2e6f5 +dce0f5d1c5f26339ee9fe5f8c985ee3596f6ccccf13232f1fffffae5d0f6752e +ec92f5f9d4a7ed171bee869bf1757cf1a095ef1217ed7b9cf26d67ef85a0f3ff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff997 +0deb0881f3f0f8f9fffff99a12eb0b7ef3eaf5f9fffff99c18eb0e84f5e5f4f8 +fffff9fffff5201feb59b8f5ebf9f8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffcdcc7 +b05e290f36456dd7fffefffffafffffafffffcc8c1b924293c65c1fcffffffff +fff2c8c89a203436adf7fdd2ccc62322315cbdfcfffffffffff5d3d3a21a2b2b +abffeed7d780192626affbfefffffbfffffee3dedb22121c299ae8fcf0e2cb69 +0f1a1a95fffffefffff8fffff8fffff8fffff9fffff7efeb860e0f0ff3fffeff +fff8fffffff7f6eb1f06083bb0fbfffffffffffefdfdc201010198f3ffffffff +e37702030287fafafdfffff8fffff8fffffffffff487420b070334bef1f4fcff +fbfffff8fffff8fffff8fffffefffffb6918180943a0e4ecf7fffff9fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffeffd274 +2e2512b9cfd0fafff9fffffafcf6f0f5faf3fdfef8fffff8fffffdfffff69f68 +391f0e2a98c0cef1fffcfffff9fffff8fffff8fffff8fffff8fffff8fffffdff +d9884d3d1c9eb1b2f6fffafffff9fcf8f1f6f9f2fbfef7fffff8fffff8fffff8 +fffff8fffff8fffffcffffea60605342829ec5eefefffffafffff8fffff8ffff +fcffffeb6b6b5d4b8793c9f6fdfffffafffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000 +ee0000ee0000ee0000ed2639efbee3f7c97ded358ff6ccccf13232f1fffffae8 +d0f67f28ec79c6f5b360ed2a9df5d7d7f02727efe0d9f64322edbacdf02121f0 +fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff99c0deb0881f3f0f8f9fffff99e12eb0c7ef3eaf5f9fffff9ab20ec103e +f0d9e2f6fcfaf5a166ed120aedd5dff8fdfff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffed0 +b6b340000020363e93c8dbddccc3bebeb8babdbcd3e2f3f2d7c199440e2e3a68 +d3fcf9e7d4bf732f13363679fffffff4decca2480c252f60d0fcf9ecdcc97a32 +0f2b2b72fffff8dcd7b51b0c172569a7fdfffefcf5ebc89a67101c2090e8fee5 +e2de1f171b65d6fffffffdfffff8fffff9fffefbfbf5dcd2dae1edbd680b0e0f +c2f2f6ddd3d6fdfffffdf9f6c35602050741c7fbfafdfcf1923c01010157ffff +fffffff41b020253cffcfcfefefffff8fffffffffffb600a0a0400006ebbd7e0 +cfc7c2c3bdb8b5acc3d6e9fafcfbffffffeca129160f02bde6e6fafffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffffef6d6bcbbc8d1e4ede1c89c +5c22180b4996c8e0f2fdfffffcfffffeb54434220575c9c9e8fffffffffffc7f +3b3a1500005896accbcdcccac6bfb9b8b0c1cfdceff5faf7dcc6c3c9ccdce8e0 +cda96f3929133e80abcce9fcfffffcfffffec06052350764aaaadbfffffdffff +feb56f60747582b2cad6ebecdaa2644f2b06138c9ea9f4ffe87a6460687886c6 +dcdee9e9d6a46a553007137e93a0effffcfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8dfbef579 +36ed84e1f7fdfef8fafaf8e2c5f57b34ed89eef8fafbf6ebfff8ccccf03232f1 +fffffaf0daf68f2cec0000ee1924ee88b5f13f18ed31a8f5d9d9f52424eeeedc +f67100eb1d20efecfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff9940deb1695f5f1f9f9fffff99712eb1992f5ebf7f9fffff9b5 +48ec1105ee0000ee0000ed0000eda9ddf7f7fef8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffa +fffff9cbb6a935000000000000000000000000000008293c57b9f1ffffffe4d0 +c36c2a0000000000000c2b3762d4fffefffffcffffffe9d8ce732d0000000000 +000a232c59d2fffefffffcfffdf4e1ce9f32000000000000000011191f90c8f5 +fff9eae2b24b1b1b43fbfffefffff8fffff8fffff9fffef6ece1890000000000 +000000000000030c0c3ef3fffffffffffbf9f7893600000000000001020239c9 +ffffffffffffc94f02022cf8fcfcfffff8fffff8ffffffffffed510a0a030000 +0000000000000000000000001e96dbeef8fdffffd11717123993d6ecf6fdffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffef59f2b27170100 +000000002374a6c3eaf5fafffff9fffffafffffebe4c34243186c9d4edffffff +fffff0743b361100000000000000000000000000001877aec3e6faf6ac494427 +0100000000001e638eadddeff7fffffafffffafffffec86652392e72aabce2ff +fffcfffffddca56f472a0c000000000000000023789db4e7fdfffffffeba856a +3816040000000000000000216a8dace0fafefffffafffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +dcbef5733aed8eeef9fffff8fefcf8ccbcf13f36ed94f5f9fffff8f2e3f39a61 +ed3232f1fffffae8d0f67c28ec82e4f9f1daf79221ec2832f2fff9f9dabbf021 +24eeedfffadedef20f1cec86dff7fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fef9f6e4e3f6f5fbf8fefff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9fbf9f6e9e3dde3e5e4f6fffcfffff8fffff8fffff8fffff9fbfaf7 +eae3dde3e4e3f5fffcfffff8fffff8fffff8fffff9fcfbf3eae3d9e2e2e2f5ff +fdfffffdf2e1e17d0f1a1b8fe8fffffefffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffefcece4dddfdedd +f3fffdfffffdffffff8d01010181e3fcfdfffffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffcf1 +f3f4eceaeae9fafbf8fffff9fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9ff +fdf2f5f5ecebebeaf7f8f6fefff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fffef4f7f2e5e8e6e1f4f4f3fffff9fffff8ffff +f8fffff9fffef5f7f2e5e9e9e5f2f6f4fffff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8debef57b39ed94eaf9fffff8ecd0f68629eb2d39efd5fff8fffcf7ca +c1f00715ed4e85f3fffff9e6d0f6732cec79f5f9fffbf7f9eaf6e4f9f9e3d8f4 +3f05ec2440f1fffff9fffdf8fff5f8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffffa0b0bec0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ebdedef8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9fffff6e1e19f171d1dcdfffefffff9fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8ffffffffffb4010101c5fdfdfefff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9bdbdf60000ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee1f1fedfffffafffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffefffffdffecfbc291ef +3c5ef6f8f5fee7dcfbfefffffffffffffdfee5dcf79590f6f1fffff8f2fdd2bb +f6b7bbf8c0c0f7b2bffafffffff2e6fc934cec2428f1fdffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffc0 +92f2a3ccfcf9fcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff3d5f7908bf2797ef3d4defcfcffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff7fbafa4f5bfbffafbffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffdfaf6f1e6dddad7dce4eaf9ff +fffffffffffffffffffffffffff9f6f6e2d9dad9dce2f2fdffffffffffffffff +fffffffffffaf7f7e3d9dad8dae1f1fdfffffffffffffffffffffffffefaf9f5 +dfdad4d3d8daebf7fffffffffffffffffffffffffffffffff7f0efba8c84abdd +fdfffffffffffffffffffefefef9f4f9fffffffffffffffffffffffffffffffe +fdfde6dbdad3d4daeffcffffffffffffffffffffffffffffffffffffffbd8275 +a1d8fcfefeffffffffffffffe8dcdbd3d2d9edfafdfeffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbf0e6dfd7d4d9dff0f9fafeffffffffffffffffffffff +ffffffebe2e1d6d4d9e8f4f7fcfeffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffbf7e9e3e2d6dbdeecf2f6fcfeffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffcf0e9e7dedce0ecf1f4fdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffed9bef85026ed3ea2 +f8c291ef3c3cf6c5c5f51129ec71c8fcf7fdfde3f5fcccc6f03232f1ffffffec +d0fb7d03eb0000ee0000ed1f2aedc7fafdd8c0f00000ed111ced88d0fdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffff9d0de8087bf9f0f7ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf88ef87 +b1f9eaf4ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffd6f23e31ed0000ed0000ecadbdfaf9ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff8f76c67ec8692f5f6ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff1d8c1935a2600000000000000 +0011334272cbf0ffffffffffffffe1cbbd692900000000000009303c57d5ffff +ffffffffffffe6d4c86f2c0000000000000727314ed3fffffffffffffff7e0d3 +ae400000000000000000121c238ac1edfffffffffffffffffffffff9e1e1b90f +1a1d8ee6fffffffffffffffffef5e9de86131515ebffffffffffffffffffffff +f9f4f186350000000000000106082acaffffffffffffffffffffffffffffffff +d201010180e1fdfdffffffffff903c06040200000000000022c0f3f5fcffffff +fffffbb355110c0500000000000000000000000080d4e7f4fdffffffffffffff +ffffffffffffffffffd892511d12080000000000000000329ac5e0f3fcffffff +ffffffffa25b2e1a0a0000000000001ca0cbd2f4ffffffffffffffffffffffff +ffffffffffffffffffffffe4aa793824140000000000000000006691b8dff0ff +fffffffffffffffffffffffffccd97503a2167a5adddfbffffffffffffffffff +fffffffffffffffffffffffffffccc8d5e421c00000000000000000000000054 +8c98d0f6ffffffeaa06b5c27000000000000002b758eb0ebffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeeafabc +83ec1d18ed595bef2d56f29567ec3939f2ffe0fac96aeb3574f9ccccf23232f2 +ffffffe5d0fa772eeaa1e6fbd26aeb2a61f8d7d7f60c1eec6bcefddbd6f00e18 +ec7db8fbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffff970de80881f9f0f8ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a727eb1877f8d5ecfefffffffffffffffffffffffffffffffff7f97775f2d4dc +fcfdffffffffffffffffffffffffffffc84fed2d50f3bfd8fdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff96c6cee8b92f6faffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffdab5b175393a7ab1cd +e6eae8ceab96520c1d464691fffffff3d7bc9c4d0b2e3c60c7f1fce2cbb9681f +193b3b8bfffffff5dec7a55209263257c4f0fde7d4c36e2114303084ffffffe9 +d2d26b0a192a5ba2fdfffff8eee4b47a441d2525d0fffffffffffffffffef2e0 +d6860d1d1d81fffffffffff8eee6ae450b15000005131445f4ffffffffffffff +fffcf6f0c76302090b34b8edfefbf7eb84280307076cffffffffffffffffffff +fffef39800010171fdfdfeffffffd36b05050329b0e5f9fcfef48d320a060263 +f2f2f7fffffffba829110b53bcd5c3b6b3b1b1b2b1a99ca1cbebf6fafeffffff +ffffffffffffffffffffffffff962f225786a4ccdfeaf0e9d7863220120357d5 +d5e6ffffffda832d26132393c0d7f1fbf69f53301c0853cacae0ffffffffffff +ffffffffffffffffffffffffffffffa74e40546787b3d1e0eaebe7a76f3e2712 +17aeb7c0fbffffffffffffffffffd99f4f3f2400000067a5adddfbffffffffff +fffffffffffffffffffffffffffffffffffcc4705f3d417e8e9fbdc4bab2b1b0 +aca4a6bfd1d8ebfbf9956a661f255088aacdf5faeaae755f3207328d8db5ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff8fcd5c6f46e74f38d5bed2e26f19c91f0487bf7fce1fac076ed3598fccccc +f13232f2ffffffe5d0fb7b2eeb94d2f8610bec0b38f03810ed277ff7fffffffe +f5fdd99eee0006ec1843f1c7e6feffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffff970de80881f9f0f8fffffffffffffba977ef0d09ed +0000ec4a77f3e9f3fefefffffffffff3d1f56643ed0a06ed001eed526cf3e8ec +fdd794f02014ed0000ed5451f0232eefccd9fcfdfffffffffffffffffff5f433 +31eabacafafaffffffffffffffffffffffffcff33d2eed0000ee4338ed558df7 +d2e7fefffffcbb94f22d1eed0000ec3a5df2c8dbfcfdfffffffffd944ff086a4 +f8ddfafffffffffffff86556efa2a8f9f8ffffcc90f26d7cf2938af24631ee00 +0ced6c8df8e0f0fffffffffffffdc7a6f3422ced0000ee4444ee3232ec8b92f7 +faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff2d3b79749404648f0fffec3bcb926324274d0ffffffffff +fff4c3c3a0233b3baffdffcdc7c62429376ccdfffffffffffff6cecea91d3030 +abfefdd5d2ca1218282ba0edfffffffffff9d9d9ba1522259dedffffffffffff +ffe8e0e040161e47bffffffffffffefcf9f5dec8ccd9dbbb6614152af4ffffff +fffffffffff2f0ec1d0a0e4ec3fffffffffffffdf7f7cb0407079afbffffffff +fffffffefefe42000030b7fefdfefffffffb1f050544bbf9fafdffffffffffff +d40c0c0a90eef2f9fffffb9910110a93ececf8ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd97d +292212c3d5d5fbfffc432d2c3e9dd1dcf3ffffffffffffdb34342b78c7cae9fe +ffffffffc38653425891cbd7edffffffffffffffffffffffffffffffffffffff +f09b474121a8b7b7f9ffffffffffffe6af4e432b729c9548484466a5add8fbff +ffffffffffffcc996d545a7fb0c3e4fffffffffffffcba5f5f37639e9edaffff +fffffffffffffffffffffff8c26a653f709494e4ffffffffffffffe671715d4e +828dcbf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffe5bffa7202eb0000ee0000ee0000ee0000ed2439efb5e5fac987ed35 +96fcccccf13232f2ffffffecd6fb812deb1850ef0000ed1017ee5174f00807ed +3536ee4657f05742ed0000ed1720edc0ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8fffffffd7f12eb090e +efd1e9fdfdfff76318eb081df0e5e8fefffff51d1dea6fa9f8eaebfbdad4f63f +1cecc1dbfcf9f5f87725ec0f42f2c5c5f8bab3f7eaf0fefdffffffffffffffff +fffff53333ecc7cafbfefffffffffffffffffffffffffff9833ded174ff1afb8 +f5c7d3fbedf3fe9a44ef200beea5bafaf7fef88449ed1817efb3bcfbfffffc4f +4fed5da7f7d9fbfffffffffffcf65655ec9aa8f8f8ffffc37cf13a13eb4262f3 +bcd6faba93f13b21ec9a9df8fdfffeba67f23901ec748ef6dbe8fac8abf34a37 +ed8b92f7faffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff0d4b6914b1d464691fffff5bcbca1274142b1fcff +fffffffffffecac3c0242a3b63c5f9c7c7b4213637adfcfffffffffffffed3ce +ca2321305bbdfdf8ebdbb5752e08111a4d7eaadde4d7984915252b9dffffffff +fffffffaede0c0631c1e1eecfffffffffffffffffffffffffff5e9e986141515 +f4fffffffffffffffdf0f0ce080d0e9cfbfffffffffffffff8f7f31f05073ab0 +fbfffffffffffefeda71000000e9fefeffffffffffdb05050493f5f9fcffffff +fffffffffb280c0c35a5eef4fafffba837110b13718c81766f7689a0b5e9f7f9 +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffd17f27201157d5d5e6ffffe12d2d277cced1ecfefffffffffffffc4c343331 +8ac7d4eefeffffffaf3939230075c3c3e7ffffffffffffffffffffffffe0c3bc +b8ab91302f264275a4d0e5f7fffffffff0bd4d46313e7fb1cbe8ff5c51515fa5 +add7fbffffffffffffffbb5858350063a5a5dafffffffffffffcc4795f3d1b4b +5d5c787d7d838f9fc9dbe4fafffffff8c26a653f759494e8ffffffffffffffff +9971712454878ed0f9ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe0bef9772eec76c6fbf5eafbe0e1fbd7c5f66339ec9fe5fa +c985ed3596fcccccf13232f2ffffffe8d0fb832aeb6fbff44128eca1edfff6f3 +fecebcf7c8c8f3161feca0dbfadce0fdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8fffff4f212 +11e9baecfdfbfffffffffffffbf31919e994e5fdf5fff41d1dea81b4f8eef9fe +feffffffffffffffffffffffad27eb197bf8d5edfeffffffffffffd2a6f3868c +f28e95f3a588f0221bed5d7df29498f38170f1abd2fceffcffffffffb53ded27 +6ef6bfe4fefffffffff6f54441ea92baf9f0fffffffffffffcf64b4aeb72b1f8 +e3fefc4f4fed5da7f7d9fbfffffffffffcf65655eca0a8f7fbffffbc5aef3657 +f3a2d4fdfffffffffcf7615fec729df6e4fff86565ec6e99f6e2ffffffffffff +fff76c6ced8b92f6faffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff2b398947e72 +7480837e6d697fb1baccf6fff3b79e997e707380837e6e6a7facb5c8f5fff3bb +a39e7e6f727f837f6f6c7fa7afc4f5ffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff9e1caa76d35284048acebfffffce3bcb370273f +42b2f6fffffffffffffcccc3b920243b3ab1ebc7c781213437aef5ffffffffff +fffdd6cec4221b2c2fa2eefffaebd3bc75141a1462806200000008172254a7e7 +fffffffffffff3dede8e0e1a1e77d7fffffffffffffffffffffffffffff5e9e6 +86141515f4fffffffffffffef8f0e58f080d0e9df3fffffffffffffff8f7eb29 +0406058feafffffffefdfda103010065d2fefffffffffffff39905050394edf9 +fcfffffffffffffff3340c0b0286def1f8fef6b97f57688493a19aa891780e0c +0a000043d4e7eefdffffffffffffffffffffffffffffffffffffffffffffffff +ffffeda76524180c77bfd6ecfafffff5a92d2b1b7dc7d1ecfdfffffffffffff5 +5534310970b9c9e7fafffffff8f3ecf1f4f8fbfdffffffffffffffffffffffff +ffc58d74564b320f120c4275a4d0e5f7fffccc4b4a365286b2d5ecfffffffc5b +515066aaaddafefffffffffffffff9f5eff1f4f5f9fcfefffffffffffff9d0a9 +8b817f7b8c93a3988442382e00002d8c98b6f6fff2956a611f0029627a98becb +caad93724130181d5486a4d0f9ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639 +efbee5fac985ed3596fcccccf13232f2ffffffe5d0fa782eeaa0e1fbbd4dea1a +48f19c8bf29090f39288f01115ed7a92f38d89f16b7ef7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8ff +fffff41212ece0ecfdfefffffffffffffff91919e970dbfdf1fefebf86ef160e +ed0000ee0000ec4470f4e6edfeffffffa327eb1773f7d5ecfeffffffffffffce +a1f37e83f28794f39b88f0201bed5175f29490f37971f1aaccfceffaffffffff +ac3ded2467f5bfe1fefffffffffff64444edb1bafafcfffffffffffffffa4b4b +ec58acf8d7fcfc4f4fed5dacf7d9fefffffffffffcf65655eca0a8f7fbffffb8 +5aef3457f3a2d4fdfffffffffffb6161ed569df6d2fff76565ee9299f7faffff +fffffffffdf76c6aed8b92f6faffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3ae +928f76696b787a7562657cb2baccfbfff4b2979476676a787a7563667cacb5c8 +fafff4b69d98766569777a7665687ba7b0c4faffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffefd6be8e531a253c49a4dffffffffffffff5bc +bca1254142aafcfffffffffffffecac3c0242a3b63c5f9c7c7b41f3637a5fcff +fffffffffffed3ceca2322305cc2f9d2d2b714242c8cd9fffffffffcf4eac79c +660d1c2570c9fffffff7dedea7172020bfffffffffffffffffffffffffffffff +fff5e9e686141515f4fffffffffffffffdf0f0ce080d0e92fbffffffffffffff +f8f7f31f05073ab0fbfffffefdfdbe010101b7ffffffffffffffffffffdb0505 +048af5f9fcfffffffffffffffb280c0c35a5eef4faffffffffffffffffffffff +ffffffffcd17171260c6e7f0fbffffffffffffffffffffffffffffffffffffff +ffffffd189431e12066db2d8ebf8ffffffffffffe12d2d2774ced1eafeffffff +fffffffc4c3433318ac7d4eefeffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff0bb47412d75b7b6e5b74e4b2e02406563686b7a +6f5d40231e0d1e2b313a6192c0d0e7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffde6666503f8398c2f0fffffdefcbb5a068 +4e453143597d8776534b3154828dd0f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe1bef9742bec5fbbfaf2e6fadce0fad1 +c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe5d0fa752eea92f5fc +d4a7ed171bed869bf3757cf2a095f01217ed7b9cf36d67f185a0f7ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff970de80881 +f9f0f8fffff4f21211e9c2ecfdfbfffffffffffffbf31919e991e1fdf5ffffff +fffffffffef5f4fcefccf2211bea79d1fceefdffa327eb177bf8d5edfeffffff +fffffffffffffffffffffffffffff53333ecc7cafbfeffffffffffffffffffff +ffffffffac3ded2467f5bfe1fefffffffff6f54441ea99baf9f2ffffffffffff +fcf64b4aeb72b1f8e3fefd724fee337df5bee8fefffffffffcf65655eca0a8f7 +fbffffb85aef3457f3a2d4fdfffffffffffc6b61ee5a9df6d0fff66565ec8399 +f6f0fffffffffffffdf76c6aed8b92f6faffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffed9c3af5b28113b4a72d8ffffffffffffffff +fffffec4bcb9242d4269c2fffffffffffff2c3c39923393baff7ffcdc7c62326 +3760bffffffffffffff4cecea21d3030adffedd2d2801c2b2cb1fcffffffffff +ffffded9d92215222e9dedfbedddc6671220209bffffffffffffffffffffffff +fffffffffff5e9e686141515f4fffffffffffffffff2f0ec1f090e40b2ffffff +fffffffdf7f7c30406079af3fffffdfbe1750201018dffffffffffffffffffff +fffb22050536aaf9f9fdffffffffffffcb0c0c0990e7f2f9feffffffffffffff +ffffffffffffffffe517171460bee7f0faffffffffffffffffffffffffffffff +fffffffb925423130830abd9e1f7fffffffffffffffffffffc462d2c328fd1d9 +f0ffffffffffffd434342978c0cae9fcfffffffffcf6f6f6f9f9fcfefeffffff +ffffffffffffffffffffffffffffffffffeb47473f61b0b7dce3cdbebdb6adb0 +b0b0b1bccdc9b145433636697c9eb9d3ecedf5fffffffcf8f8f6f9f9fbfefeff +ffffffffffffffffffffffffffffffffffffffee66665a3f7d98c2edffffffff +ffffffffffffffffffffe0a17159297e8d8ff2ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffeacbfa8328eb0000ee0000ee +0000ee0000ed2639efbee3fac97dec358ffcccccf13232f2ffffffe8d0fb7f28 +eb79c6fab360ec2a9dfbd7d7f12727f1e0d9fb4322eebacdf12121effbffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff9c +0de80881f9f0f8fffffffb6512ea0738f1ddeffefefff97b23eb0b01efe5e5fd +ffe3f21d25efc3d1fbf5fdfefedcf4231de99ddbfcf4ffffb034ec1a19f0d0da +fac7bcf8eaf1fefdfffffffffffffffffffcf43333ebbacafbfaffffffffffff +ffffffffffffffffac3ded2467f5bfe1fefffffffffffc8544ee182cf0aec9fb +fbfffa9853ee2004eeb3b3faffffffbf5df03307ed9eadf9ebeff8884dee1d00 +eca0a8f9fbffffbc5aef3657f3a2d4fdfffffffffffc6161ee5497f6d0fbfc85 +65f01526ef94b1f9e9e5f88458ef1d00ec8692f7f6ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccb1b13e0000223a4595c8e0dcccc8bdbe +bdbbbec3d4e3f9f1d3bc95421032406fd4fcfee5d0bf702e153b3b7ffffffff3 +dac79e460e2a3567d2fcfee9d8ca773011303078fffff8d7d2b41b0e1b2a6dac +fdfffffbf3eac3966913212593e8ffe0dddd211b2169d7ffffffffffffffffff +fffffefcfaf4e3d3d9e6e7b969101414c3f1fcddd4defdfffffcf5f0be54030a +0c47c8fbfffbf8f38e3a0307075dfffffffcfbf71a020355d2ffffffffffffff +ffffffffffffca5c0505023dc0f4f9fdfffc97440a070355f2f2f6ffffff9530 +1a699abcd4dce5f1f1dd7d23120a021dcee7eafcffffffffffffffffffffffff +ffffffffff6f22220c000063a9c8d6cecfc6c4c3b8b6b2c2d3ebf5f8fed2762d +251033a1ccdbf4fefca862321e0c47cacadcffffffffffffb74a39250575c3c3 +e7ffffffffffe85b40457894a5d2e1e6e9e8d9934c392005189db7c0f5ffffff +fffffffffffffffffffffc5c51505faaadd7feffffffffffffffc26558390763 +a5a5daffffffffffffb87466757382b0c9dbeaece0a569562d07138798a5f3ff +fff9e3d4cdcaccd4e1e4d4b88a543c1c32668cb5dffdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdfbef97936ec84e1 +fffdfefefafafee2c5f97b34ec89eefefafbfcebfffcccccf13232f2fffffff0 +dafb8f2ceb0000ee1924ee88b5f33f18ed31a8fbd9d9fa2424eeeedcfc7100eb +1d20f0ecffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffff940de81695faf1f9fffffffffffff85a14ec0600ee0000ed0008eed3e7 +fdfdfffffffff84e1dec0700ee0000ee0000eb5c8cf6eaf2feffffffffe7f328 +24ed0000ed0000eccfd3fcfefffffffffffffffffff4f63331eec5cafbfdffff +ffffffffffffffffffffffffac3ded246ef5bfe4fefffffffffffffffff97d45 +ee1500ed0000ed0006eea5b7faf9ffffffffffffecf65047ee0000ed0000ee5c +4eed2f27eca0a8f9fbffffb65aef3d5ef4a8d7fefffffffffffc6a61ee5e9af6 +d3fdffffeef7665bee0000ed0000ed6262ef4747ee8f92f7fdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffbc7b1a834000000000000000000 +0000000000092d435cbbf6ffffffe1cbbd69290000000000000e303c67d5ffff +ffffffffffffe6d4c86f2c0000000000000b27315fd3fffffffffffffdf4ddc9 +9f300000000000000000131d2693c9fbfff7e7ddae4c202149fbffffffffffff +fffffffffffffef5e6dc89000000000000000000000004111243f4ffffffffff +f9f4f186350000000000000206083ecafffffffefbfbc651030330fbffffffff +ffffffffffffffffffffffffff903c06040200000000000036c0f3f6fcffffff +ffffcc7e300e0802000000000000000034afe5edf9ffffffffffffffffffffff +fffffffffffffffff46222200a00000000000000000000000000001b87cbd9ef +fdffffffa25b2e1a0a0000000000002da0cbd7f4ffffffffffffffffc0513928 +3186c3d0ecffffffffffffaa6948240e0300000000000000002a84afc8eafcff +fffffffffffffffffffffffffffff75c514d5fa5add7fbffffffffffffffca6b +583d2e71a5b8e2ffffffffffffdda8744c2c0d0000000000000000237497b0e6 +fdfffffffff8bc6b663b01000000000019507197cde7f6ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdcbef973 +3aec8eeefffffffffefcfdccbcf33f36ed94f5fffffffef2e3f99a61ed3232f3 +ffffffe8d0fa7c28ea82e4fff1dafb9221ea2832f3fff9fddabbf12124ecedff +fededef50f1ceb86dffeffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffffffffffffffffffffffffffffffffffffffffeede5fbe4e3fcfb +fcfffffffffffffffffffffffffff8f3fceceafcf0fafffdffffffffffffffff +fffffffffcfeebf1fcf4fafefefeffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffef1ebfce5e3fcf6f7fefffffffffffffffffffffffffffafdebe9fb +ecf1fefbfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffbfdedeafbebf2fdfaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffaf8f8e9e3e3e4e6eaf6ff +fffffffffffffffffffffffffffbf9f9e9e3e3e3e5e9f5ffffffffffffffffff +fffffffffffcfaf9eae3dfe2e3e8f5ffffffffffefdbdb7a12202192edffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffefefeebe4e3e0dfe4f3fffffffffffdfafa8b02040383eaff +ffffffffffffffffffffffffffffffffffffffffede5e4dfdee3f2fefefeffff +fffffffffffffffffffffdf8f3ede5e3e3eafcfdfdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff0e9e8e2dfe3eff8f9fdffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffefaf5efe9e6e9eef6f9fbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffefbf7f2ece8e6e8f3f4f7 +fffffffffffffffffffffdfaf7f6f4ececf1f4f5f9feffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +debef97b39ec94eaffffffffecd0fa8629ea2d39efd5fffffffcfccac1f00715 +ec4e85f7ffffffe6d0fa732cea79f5fffffbfef9eafbe4f9fee3d8f83f05eb24 +40f1fffffffffdfffff5fdffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffff0b0bea0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000eb +9090f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff5dbdb9f1b2222ceff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffdfafab5030404 +c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffbdbdf90000ea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ed1f1fecffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff7fffff7ffecf7c291ee3c5ef3f8 +f5f9e7dcf6fefff8fffff8fffdf8e5dcf39590f3f1fff9f8f2f8d2bbf3b7bbf4 +c0c0f2b2bff5fffff9f2e6f6934cec2428f0fdfffafffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9fff4f48f84f1dde2f7fdfff8fcf6f6f5faf8fdfef8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffef6f7f1e0 +dedad2dce3e4f8fffcfffff8fffff8fffff8fffff9f9f7f0e2d9d3d8dbdcf2fd +fdfffff8fffff8fffff8fffff9faf8f2e3d9d3d7d9daf1fcfefffff8fffff8ff +fff8fffff9fbfaeedfdaced2d8d3ebf7fafffff9fffff8fffff8fffff8fffffb +f9f3f1ba8a7da9dcf6fffffcfffff8fffff8fffef9f9f4f2fffff9fffff8ffff +f8fffff8fffff8fffff8fffff9f9f3f2fffff9fffff8fffff8fffff8fffff8ff +fffaffffffbf8574a2d6f2fcfefcfffff9fffff9e8ddd5d3d3d2ecf9fcfefff8 +fffff8fffff8fffffafffff4e7dcd5dadedff7fcfafefff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffafffff5e7e1d4d2d4cde4f0f2fbfdf9ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +faf6f4fdfcf7fffff8fffff8fffff8fffff9fffff9eee5ded8d5d2e6f0f2fafe +fafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffcf2ec +e6ddd8dbd8e9eff1fcfdfafffff8fffff8fffff9fffff6eeeaddd7d6cddee8e7 +f5fbf9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff7d9bef35026ee3ea2f3c291ee +3c3cf2c5c5f21129ed71c8f6f7fdf8e3f5f8ccc6ef3232f1fffffaecd0f67d03 +ec0000ee0000ed1f2aeec7fafad8c0f00000ed111ced88d0f6fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9fff5f2312eebbccdf8fbfff53735ed016ff2c8e6f8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffbf2dbc6975d +2700000000000000000f2f3d6cc9effdfffffeffffffe4d0c36c2a0000000000 +00082b3752d4fffefffffcffffffe9d8ce732d00000000000006232c48d2fffe +fffffcfffff7e4d9ae4200000000000000000f181d87c0e8fffffefffff8ffff +f9fffffae6e6b90c15178ce5fffffffdfffff9fffef7efe4860e0f0febfffeff +fff8fffff8fffff8fffff8fffffcfaee8c040404eafffffffff8fffff8fffff8 +fffff8ffffffffffce0606057ddcf7fbfeffffffff92400c0703000000000000 +20bbeef0fbfffbffffffffffd96a1713090000000000000041bbe3ebfafffbff +fff8fffff8fffff8fffff8fffff8fffffeffffd56929210d0000000000000000 +6196bce5f2fafffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +fdfff6aa3f3c23afbfbffafffafffff8fffffdffffffad6f4728100000000000 +00188db2bdeefffcfffff9fffff8fffff8fffff8fffff8fffff9fffffde7b589 +4e321a000000000000000000587d9dd3eafdffffffffffe19466521f00000000 +00000000456a85c5e0f4fffffbfffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9feeaf7bc83ed1d18 +ed595bee2d56f09567ed3939f1ffe0f8c96aed3574f5ccccf13232f1fffffae5 +d0f6772eeca1e6f8d26aeb2a61f2d7d7f30c1eed6bcef6dbd6ef0e18ec7db8f5 +fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff9fffff23131edc3cdf7fdfff7bca3f0b2ccf6 +eff8f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffddc +bab677363477afc6e6eae3d1b096550d1a41418cfffffff4dac1a04f0a2a3758 +c6f0f6e5d0b96b2016363685fffffff6e1cca95408222d4fc2eff7ead9c47122 +122b2b7fffffffebd7d76e091525579dfdfffff9f0e5b97e43192020cffffeff +fff9fffff9fef5e5dc890b17177cfffffffffff9f2ebad470b160000030e0f40 +f3fffffffff8fffff8fffffcf9f5b44a0c17000001040437f3fffffffff8ffff +f8fffff8fffff8fffffff39a0506046cf7f7fbffffffd46e0a0a0526ace0eefb +feee8f360f09035eececf4ffffed591514073a7ad6e8f0fafad88028160d024d +e1e1ebfffff9fffff8fffff8fffff8fffffcffffff942727153176d3deecffff +fddba36c271a0ea4cfcff5fffafffff8fffff8fffff8fffff8fffff8fffffdff +fdc976453d120306000027b6bfccfcfffafffff9fffffdde91463b1d1d82a9be +e9f9f1ab6846290c47b1b1d0fffffafffff8fffff8fffff8fffff8fffffaffff +feb265595b5c71a4c7d4e8ebe2b08052341913969ea9faffffb2646433235497 +b0d1fefffee6be96593d20749393e8fffbfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fff8f7d5 +c6f26e74f18d5bed2e26ef9c91ee487bf4fce1f8c076ee3598f6ccccf13232f1 +fffffae5d0f67b2eec94d2f3610bed0b38ef3810ed277ff4fffff9fef5f8d99e +ee0006ed1843f0c7e6f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8b45ded5086f3ae79ee0c08ed0029efbeeaf6ecc8f13f11ed04 +00ed3660f1eaf0f8fffff8fffff8fffff7c092ee1811ed0000ed2644f0c8e5f8 +fbfff8fffff8fffff5b284ee1c13ed0000ef5f5fed1616edc3cdf7fdfff8c081 +ef719ff3dceef8fffff8d49ef03f38ed0508ee0000ed4a59f0cbdcf7fbfff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffafff3d5bd9c493b4141effffcc8c1b9252e +3d70cffffffffffffff4c8c8a1203536adfdfdd2ccc623253268ccffffffffff +fff6d3d3aa1a2b2ba9fefcdad7ca121523259de9fffffffffff9dedeba121d20 +9aecfefffffcffffffece5e140121843bdfbfffffffffffcfbf6d7c7ccd6e0c0 +640e0f24f3fffefffff8fffff8fffffdfdf8d6c5ccdbeac96704041af3ffffff +fff8fffff8fffff8fffffffffffb46050531b3f5f9fdfffffff4240a0a43b7f3 +f5fcffffffffffffd011110e90ececf7ff9f15150dafe8e8f9fffafffffeffff +d21c1c177dcfe1f1fcfcfffff9fffff8fffff8fffffeffffef3927240477c0d5 +ecfbffffffffffdd2e2e2773becfe9fbffffffffc2834d3f588fd0dbedfffffa +fffffdfffadfd2d7dce5cd853b332bb6bfc4fcfffafffffdfffff7594643398b +b8caedffffffffffffdc4d4d3e6aaeb1dffefeffffffcb9567515a7fb5c6e4ff +fffafffff8fffff8fffff8fffff8fffffcfff2a860582c919e9ef7fff371645d +09558a98d1f4ffffffffffe76b6b5a518793cef6fdfffffafffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +e5bff57202ec0000ee0000ee0000ee0000ed2439efb5e5f8c987ee3596f6cccc +f13232f1fffffaecd6f6812dec1850ef0000ed1017ed5174ef0807ed3536ed46 +57ef5742ed0000ee1720edc0fff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff9a73fec0903ec5f9af4f4f9f47e21ed0901ed0000ef +b7ddf4eeccf11814ec42a4f5ebf7f9fffff7901fec1024efcae3f6fcfff5ab76 +ed170eeed8d8f8fffff7a02ced1801eda1c5f4e5e6f5b994ee2119ecc3cdf7fd +fff9ac35ed206ff2c8e6f8fffff8b784f091a5f3d0daf6eeebf36c3bed104ef1 +bdd8f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbf1d7bc954d1a41418cfffff5c1 +c1a2243c3daffcfefffffcfffffdcfc8bf2326365fc3f9ccccb41d3132aafcfe +fffffcfffffdd8d3ca221d2956bbf7f9ede0ba782e070f16497aa4dee8dd9c4b +12202697fffffefffff9fffbf0e5c564171919ecfffefffff8fffff8fffff9ff +fff7efef860e0f0ff3fffefffff8fffff8fffff8fffff8fffffcfafa8c040404 +f3fffffffff8fffff8fffff8ffffffffdb71050402e4f9f9feffffffffd70a0a +0990f0f3fafffbfffffffffff52d111137adeceffaa615150db7e8e8fafffaff +fffeffffff5d1c1c0e86d1e1f2fdfffff9fffff8fffff8fffffafffffee09f55 +23170928547cc6e5edbc732d211570cfd1e9fffffcfffffead3434200075c9c8 +e8fffffafffff8fffff8fffffdffffaa3f3f23b6bfbffcfffafffffdffffe146 +463b6db5b8e1fefcfffffefffff7624d492f79a9c0e6fcffffffb95252320064 +aaaadbfffffafffff8fffff9fffffde4cbc2bcab8f413f3239658ac0dbf2ffff +ffe9ba855738161d3c599bc0d4c89b6a4b28509396cdfffffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8e0bef5772eed76c6f5f5eaf5e0e1f5d7c5f26339ee9fe5f8c985ee35 +96f6ccccf13232f1fffffae8d0f6832aec6fbff24128eda1edf9f6f3f8cebcf3 +c8c8f1161feca0dbf4dce0f7fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff99c0deb0881f3f0f8f9fffff9ffebf01412 +ecd7eaf9fdfff8fffff9a119eb107af3e3f2f9fffbf21f1eec82c7f5ece2f4dc +e6f7f7cdf0251eecb5d8f9f8fff32a2aeb98d4f7f2fff8fffff9fffff23131ed +c3cdf7fdfff9a835ed1f6bf2c8e5f8fffff8fffff9efe0f4beb5f1b0b7f37f4b +ee1c16efbdc1f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffcffffeeb398907e727180837b +6d697cb1bacaf6ffefb79e947e707080837b6e6a7cacb5c6f5fff0bba3997e6f +6f7f837c6f6c7ca7afc2f5fffbfffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffaf9e3cdac7034253b42aaeaff +fffce4c1b870243a3db0f6fefffffdfffffbd1c8b921203634afeccccc811e2f +32abf5fefffffdfffffcdad3c3231826299fe9fffbedd9c17411161165846200 +000007141c50a5e1fffffffffffbf5e4e4920c151974d2fffffefffff8fffff8 +fffff9fffff7efeb860e0f0ff3fffefffff8fffff8fffff8fffff8fffffcfaf6 +8c040404f3fffffffff8fffff8fffffbffffffa305030363c9f9fbfeffffffff +f3980a0a0691e8f3fafefcffffffffffed3811100387e0ebf6f259151407003f +9ac0c1cac6bf997542100c062f86d1e6f2fdfffff9fffff8fffff8fffff8ffff +feffe79b29241662805f141a130000002d7cb5daecf9fffff9fffffbf8f2e5f0 +f5f1fcfdf8fffff8fffff8fffff8fffffdfffcaa3f3e23b6bfbffcfffafffffd +fff6b14643296eafb8e2fcfdfffffefffff26a4d470d629fb0dbf7fffffdf9f4 +e8f1f4eefafcf8fffff8fffff8fffffafffffecc9c84624e3214181039658ac0 +dbf2ffffffffeeb7665a37465b44303e2f000000205880aad3f0fffffbfffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee0000ed2639efbee5f8 +c985ee3596f6ccccf13232f1fffffae5d0f6782eeca0e1f7bd4dec1a48f09c8b +f19090f19288ef1115ed7a92f28d89ef6b7ef3fffff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9fffff9ff +fbf21413ecdfeaf9fefff8fffff99d19eb0f7af3e3f2f9fffff21f1fed2d46ef +4242ef413def3d4eef3a30ed9edff8f2fff22a2aedcad4f8fdfff8fffff9fffc +f23130edc3cdf7fdfff9a835ed1f6bf2c8e5f9fffff57f3aee1500ed3e59ef8b +a0f28b4cee2217f0bdc1f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcfffff0ae928b7669 +68787a71626579b2bacbfbfff0b29790766767787a71636678acb5c7fafff1b6 +9d95766566777a72656878a7b0c3fafffbfffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff9fffffdf0d9c293561a223843a2de +fffffffffffff5c1c1a2223c3da7fcfefffffcfffffdcfc8bf2326365fc3f9cc +ccb41b3132a2fcfefffffcfffffdd8d3ca221e2b57c1f9d7d7b612202789d8ff +fffffffcf5eccca0650b18206dc7fffffff7e4e4a7131a1abefffefffffaffff +f8fffff8fffff9fffff7efeb860e0f0ff3fffefffff8fffff8fffff8fffff8ff +fffcfaf68c040404f3fffffffff8fffff8ffffffffffbb030403b4fafafdfffa +ffffffffffd70a0a0987f0f3f9fffbfffffffffff52d111134a1e2eff9fefffb +e1ad8e75452f2b2c5474ada16c15130c86cfe1f2fcfcfffff9fffff8fffff8ff +fffeffffd427272062b1d6e8f8ffffffffeec48c2a2115489ccfdff3fffffff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffffdfffcaa3f3e23b6bfbffcff +fafffffdffffe146463b66b5b8dffefcfffffefffff7624d492f79a9c0e6fcff +fffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcfff2c2 +60583c5f9b9ed7fde2646452477e9ac7edfffffffff3d5ae624d31336e93b7e4 +fffffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8e1bef5742bed5fbbf5f2e6f5dce0f5d1c5f26339 +ee9fe5f8c985ee3596f6ccccf13232f1fffffae5d0f6752eec92f5f9d4a7ed17 +1bee869bf1757cf1a095ef1217ed7b9cf26d67ef85a0f3fffff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9 +fffff9fffbf21413ecdfeaf9fefff8fffff99d19eb0f7af3e3f2f9fff4f11f1d +ebb8dff8f9fff8fffff8fffff8fffff8fffff9fff5f12a28ebb6d4f7f9fff8ff +fff9fffcf23130edc3cdf7fdfff9a835ed1f6bf2c8e5f9fff6f23a38ebaec3f6 +f8fff8fffffaffbaef412af0bdbdf7fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffafffffcdcc7b05e290f36456dd7 +fffefffffafffffafffffcc8c1b924293c65c1fcfffffffffff2c8c89a203436 +adf7fdd2ccc62322315cbdfcfffffffffff5d3d3a21a2b2babffeed7d7801926 +26affbfefffffbfffffee3dedb22121c299ae8fcf0e2cb690f1a1a95fffffeff +fff8fffff8fffff8fffff9fffff7efeb860e0f0ff3fffefffff8fffff8fffff8 +fffff8fffffcfaf68c040404f3fffffffff8fffff8ffffffe37702030287fafa +fdfffff8fffffffffff4270a0a35a6f0f5fbffffffffffffc811110d8de1ecf7 +fefbfffff8fffff8fffff8fffffeffcf681c160cc9e1e2fcfff9fffff8fffff8 +fffff8fffffefff5a427261788d3d6f0fefbfffffefffffc4d2e2e1173bad0e9 +fafffffbfcf6f0f5faf3fdfef8fffff8fffff8fffff8fffffdfffcaa3f3e23b6 +bfbffcfffafffffdfffff75c46432f7eb5c6e8feffffffffffd54d4d3b6aa9b1 +dffbfcfffffafcf8f1f6f9f2fbfef7fffff8fffff8fffff8fffff8fffff8ffff +fcffffea60605352999ed0fcc064643c62979ad9fdfcfffffdfffffd806b6917 +518496cef4fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee00 +00ed2639efbee3f7c97ded358ff6ccccf13232f1fffffae8d0f67f28ec79c6f5 +b360ed2a9df5d7d7f02727efe0d9f64322edbacdf02121f0fbfffafffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff99c0deb0881 +f3f0f8f9fffff9fffbf21413ecdfeaf9fefff8fffff99d19eb0f7af3e3f2f8ff +fff67a1fed0d00eea7c5f4e6eff6e4e1f34e21edb9d8f9f8fff5562aec0934ef +cedef5e2dbf36027ed0d00edbccdf7fbfff9ac35ed206bf2c8e5f9fffcf23a39 +ec6a99f3dff2f6e2c8f1372eed0018f0bdc5f7fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffafffffed0b6b340000020363e +93c8dbddccc3bebeb8babdbcd3e2f3f2d7c199440e2e3a68d3fcf9e7d4bf732f +13363679fffffff4decca2480c252f60d0fcf9ecdcc97a320f2b2b72fffff8dc +d7b51b0c172569a7fdfffefcf5ebc89a67101c2090e8fee5e2de1f171b65d6ff +fffffdfffff8fffff9fffefbfbf5dcd2dae1edbd680b0e0fc2f2f6ddd3d6fdff +fffffffdfef6dbd0dbe7f8c66d030404c1f4f8dbd1d4fdfffffffff41b020253 +cffcfcfefefffff8fffff9ffffffcb600a090439bceef0fcfff59a480f0a0450 +ececf3fffffff5d3b7b6c8d4e8f1e2c49550140f074fa3d9ecf7fefffff9ffff +f8fffff8fffff8fffffeffffdc422721054380d3e2edfffffde9bf8e2a201669 +b9cfe7faffffffffb54434220575c9c9e8fffffafffffdfff9e3dae2e6f2ce8d +3e321b90b7bad4daddf4f3f4feffffd8864638192b8eb4c4eefef6b376482c12 +3cb1b1cbfffffcfffffec06052350764aaaadbffffffffffe67159576d818eca +dddee9e9d59f614c2b0714879eaaf1ffe67864540d305c97b8d5fefffdf0d1ae +604a324a8393c9f3fefffffbfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8dfbef57936ed84e1f7fdfef8 +fafaf8e2c5f57b34ed89eef8fafbf6ebfff8ccccf03232f1fffffaf0daf68f2c +ec0000ee1924ee88b5f13f18ed31a8f5d9d9f52424eeeedcf67100eb1d20efec +fffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff994 +0deb168af5f1f8f8fffff9fffbf21413ecdfeaf9fefff8fffff9a728eb1178f3 +e3f2f8fffff9fffff59265ed110aee0000ee0000ed0a40f0dae4f8fffff9ffe7 +f22b26ee0000ee0000ed8989ef2020edcacdf7fefff9a635ed2a7df3cbeaf8ff +fff7c080ef2915ee0000ed003cef733fed273af0bdccf7fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffff9cbb6a93500 +0000000000000000000000000008293c57b9f1ffffffe4d0c36c2a0000000000 +000c2b3762d4fffefffffcffffffe9d8ce732d0000000000000a232c59d2fffe +fffffcfffdf4e1ce9f32000000000000000011191f90c8f5fff9eae2b24b1b1b +43fbfffefffff8fffff8fffff9fffef6ece1890000000000000000000000030c +0c3ef3fffffffffbf7eb8f000000000000000000000001010135fbffffffcb4f +02022cf8fcfcfffff8fffff8fffff8ffffffffffff92400c0703000000000000 +34bbeef1fbfffbfffffff49619160d000000000000267eb4d0f2f9fcfffff9ff +fff8fffff8fffff8fffff8fffff8fffffefff5c559271e0a0000000000000000 +6a9dc8e7f3fdfffffcfffffebe4c34243186c9d4edfffffafffffdfff6ad3c39 +23000000000000000000000027b3bccafcffffffffffad6f4728100000000000 +00278db2c3eefffcfffffbfffffec86652392e72aabce2fffffffffffeb57c60 +3213040000000000000000247298b4e3fafefffffefff8d688614a1700000000 +000000004b6f8ec9e4fafffffbfffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8dcbef5733aed8eee +f9fffff8fefcf8ccbcf13f36ed94f5f9fffff8f2e3f39a61ed3232f1fffffae8 +d0f67c28ec82e4f9f1daf79221ec2832f2fff9f9dabbf02124eeedfffadedef2 +0f1cec86dff7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8f8f3f6ebeaf6f5faf8fefff8fffff8ff +fff8fffff8fff9f7e6e5f5eff9f7fdfff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8f5eef6e5e9f7f8faf8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fbf9f6 +e9e3dde3e5e4f6fffcfffff8fffff8fffff8fffff9fbfaf7eae3dde3e4e3f5ff +fcfffff8fffff8fffff8fffff9fcfbf3eae3d9e2e2e2f5fffdfffffdf2e1e17d +0f1a1b8fe8fffffefffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdffff +ff8d01010181e3fcfdfffffff8fffff8fffff8fffff8fffff8fffffdede5dfe0 +deddf2fdfbfefff8fffff8fffffafffcf0f2f3ebeae9e9fbfdf9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff8efe8dde1df +ddeff9f8fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcf1ece6 +e3e0ddedf5f4fbfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff9fffef4f7f1e4e8e9e6f4f7f5fffff9fffff8fffff8fffff9fffff8f4 +efe5e4e0dcebf1f0fafffafffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8debef57b +39ed94eaf9fffff8ecd0f68629eb2d39efd5fff8fffcf7cac1f00715ed4e85f3 +fffff9e6d0f6732cec79f5f9fffbf7f9eaf6e4f9f9e3d8f43f05ec2440f1ffff +f9fffdf8fff5f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffffa0b0bec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ecbb +bbf6fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff6 +e1e19f171d1dcdfffefffff9fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +ffffffffb4010101c5fdfdfefff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9bdbdf6 +0000ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee1f1fedfffffafffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffefffffdffecfbc291ef3c5ef6f8f5fee7dc +fbfefffffffffffffdfee5dcf79590f6f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2 +bffafffffff2e6fc934cec2428f1fdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffdfaf6f1e6dddad7dce4eaf9ffffffffffffffffff +fffffffffff9f6f6e2d9dad9dce2f2fdfffffffffffffffffffffffffffaf7f7 +e3d9dad8dae1f1fdfffffffffffffffffffffffffefaf9f5dfdad4d3d8daebf7 +fffffffffffffffffffffffffffffffff7f0efba8c84abddfdffffffffffffff +fffffefefef9f4f9fffffffffffffffffffffffffffffffefdfde6dbdad3d4da +effcffffffffffffffffffffffffffffffffffffffbd8275a1d8fcfefeffffff +ffffffffe8dcdbd3d2d9edfafdfefffffffffffffffffffffffffffae7dbdbda +dee4f7fcfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffaf5fafefdfefffffffffffffffffffffffffffffffffffff6f0 +eadfdedbe3e9f3fafbfeffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbf8fbfdfafdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffed9bef85026ed3ea2f8c291ef3c3cf6c5 +c5f51129ec71c8fcf7fdfde3f5fcccc6f03232f1ffffffecd0fb7d03eb0000ee +0000ed1f2aedc7fafdd8c0f00000ed111ced88d0fdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffc089ef88b0f9 +e9f4feffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff1d8c1935a26000000000000000011334272cbf0ff +ffffffffffffe1cbbd692900000000000009303c57d5ffffffffffffffffe6d4 +c86f2c0000000000000727314ed3fffffffffffffff7e0d3ae40000000000000 +0000121c238ac1edfffffffffffffffffffffff9e1e1b90f1a1d8ee6ffffffff +fffffffffef5e9de86131515ebfffffffffffffffffffffff9f4f18635000000 +0000000106082acaffffffffffffffffffffffffffffffffd201010180e1fdfd +ffffffffff903c06040200000000000022c0f3f5fcffffffffffffffdd66110f +070000000000000046bfe8effbffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5a2262416c6d8d8fcfffffffffffffffffffffffff9e186 +5029140800000000000070cacae7ffffffffffffffffffffffffffffffffffff +fffffffcc278412d1300000000000000000000000065a8b7def9ffffffffffff +fffffffffccd97503a2167a5adddfbffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff7bc635e398e9b9bf7fffffffffffffff37c6a61 +0e00000000000000000000000000001d5a86a4d5f9ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffeeafabc83ec1d18ed595bef +2d56f29567ec3939f2ffe0fac96aeb3574f9ccccf23232f2ffffffe5d0fa772e +eaa1e6fbd26aeb2a61f8d7d7f60c1eec6bcefddbd6f00e18ec7db8fbffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa82a +eb1a75f8d3ebfeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffdab5b175393a7ab1cde6eae8ceab96520c +1d464691fffffff3d7bc9c4d0b2e3c60c7f1fce2cbb9681f193b3b8bfffffff5 +dec7a55209263257c4f0fde7d4c36e2114303084ffffffe9d2d26b0a192a5ba2 +fdfffff8eee4b47a441d2525d0fffffffffffffffffef2e0d6860d1d1d81ffff +fffffff8eee6ae450b15000005131445f4fffffffffffffffffcf6f0c7630209 +0b34b8edfefbf7eb84280307076cfffffffffffffffffffffffef39800010171 +fdfdfeffffffd36b05050329b0e5f9fcfef48d320a060263f2f2f7fffff45510 +0f053b80dbecf6fbfadd7d23120a0151e7e7efffffffffffffffffffffffffff +fffffffffffffdc7652d2e0b020300002dced8e0fdffffffffffffffffffffd2 +322e2401265eaabcd6eae3caa7abc7e9ebf4ffffffffffffffffffffffffffff +fffffffffffffffcb954412a4896aaadbabeb7b2b1b0aba1a4c4dae4f1fcffff +ffffffffffffd99f4f3f2400000067a5adddfbffffffffffffffffffffffffff +fffffffffffffffffffffed68f67561d0509000021949bb0faffffffffffffff +f8d0c6bfaea9a8b0b1b0b0b3bdcec1a3665a3c1d5a8ba4d5fdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8fcd5c6f46e74 +f38d5bed2e26f19c91f0487bf7fce1fac076ed3598fcccccf13232f2ffffffe5 +d0fb7b2eeb94d2f8610bec0b38f03810ed277ff7fffffffef5fdd99eee0006ec +1843f1c7e6feffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffb45dec5086f5ae79ee0c08ed0029efbeeafdecc8f23f11ed0400ec3660 +f3eaf0feffffffffffffb968ed558bf5ae87f01a12ed0010ed94bbfcf3f9ffd1 +95f02115ed0000ed5350ef242eefc9d6fcfcffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f2d3b79749404648f0fffec3bcb926324274d0fffffffffffff4c3c3a0233b3b +affdffcdc7c62429376ccdfffffffffffff6cecea91d3030abfefdd5d2ca1218 +282ba0edfffffffffff9d9d9ba1522259dedffffffffffffffe8e0e040161e47 +bffffffffffffefcf9f5dec8ccd9dbbb6614152af4fffffffffffffffff2f0ec +1d0a0e4ec3fffffffffffffdf7f7cb0407079afbfffffffffffffffefefe4200 +0030b7fefdfefffffffb1f050544bbf9fafdffffffffffffd40c0c0a93f2f2f9 +ffa110100ab3eeeefaffffffffffffffd617171380d4e7f4fdffffffffffffff +fffffffffffffffffffffae2ccd2e3e9cd7e241f24ced8dbfdffffffffffffff +ffb2342d1e3196cfdaf2ffffffffffffffffffffffffffffffffffffc3865342 +5891cbd7edfffffffffffffcad40412675bcbce5ffffffffffffffffffffffff +ffffffffffffffe6af4e432b729c9548484466a5add8fbffffffffffffffcc99 +6d545a7fb0c3e4fffffffffffffffbeadadde1dfcd9a5d4f38949ba4faffffff +ffffffffffffffffffffffffffffffffffffd698715124798d90efffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5bffa72 +02eb0000ee0000ee0000ee0000ed2439efb5e5fac987ed3596fcccccf13232f2 +ffffffecd6fb812deb1850ef0000ed1017ee5174f00807ed3536ee4657f05742 +ed0000ed1720edc0ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffa73feb0903ec5f9af6f4f9f97e21ec0901ed0000efb7ddfbee +ccf21814eb42a4f9ebf7ffffffffad4ded1407ec5a86f6dcedfaa76ded170dec +d8d8fcfff4f87928ec1041f1c3c3f8bbb4f7e9effefdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff0d4b6914b1d464691fffff5bcbca1274142b1fcfffffffffffffecac3 +c0242a3b63c5f9c7c7b4213637adfcfffffffffffffed3ceca2321305bbdfdf8 +ebdbb5752e08111a4d7eaadde4d7984915252b9dfffffffffffffffaede0c063 +1c1e1eecfffffffffffffffffffffffffff5e9e986141515f4ffffffffffffff +fdf0f0ce080d0e9cfbfffffffffffffff8f7f31f05073ab0fbfffffffffffefe +da71000000e9fefeffffffffffdb05050493f5f9fcfffffffffffffffb280c0c +38b1f2f4fba810100abbeeeefbffffffffffffffff5917170c8adce6f5feffff +ffffffffffffffffffffffffffffffffffffffffffa2262616ced8d8fdffffff +fffffffff5592d2b0a4d79866457423a32464e699ebfddeff7fdffffffffffff +af3939230075c3c3e7fffffffffffffcb960412a185a6f6a77787a8595a8d5e6 +ecfbfffffffffffff0bd4d46313e7fb1cbe8ff5c51515fa5add7fbffffffffff +ffffbb5858350063a5a5daffffffffffffffffffffffffffffbc636339949b9b +faffffffffffffffffffffffffffffffffffffffe56f6f5c29618caedbfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e0bef9772eec76c6fbf5eafbe0e1fbd7c5f66339ec9fe5fac985ed3596fccccc +f13232f2ffffffe8d0fb832aeb6fbff44128eca1edfff6f3fecebcf7c8c8f316 +1feca0dbfadce0fdffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffff9c0de80881f9f0f8ffffffffffebf21412ebd7eafd +fdffffffffffa119e9107af8e3f2feffffffa31fea1377f8deeffefffffffffb +f42625e99bd8fbf4ffffae2aeb1b79f8d3ecfeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff2b398947e727480837e6d697fb1 +baccf6fff3b79e997e707380837e6e6a7facb5c8f5fff3bba39e7e6f727f837f +6f6c7fa7afc4f5ffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff9e1caa76d35284048acebfffffce3bcb370273f42b2f6ffffffffff +fffcccc3b920243b3ab1ebc7c781213437aef5fffffffffffffdd6cec4221b2c +2fa2eefffaebd3bc75141a1462806200000008172254a7e7fffffffffffff3de +de8e0e1a1e77d7fffffffffffffffffffffffffffff5e9e686141515f4ffffff +fffffffef8f0e58f080d0e9df3fffffffffffffff8f7eb290406058feaffffff +fefdfda103010065d2fefffffffffffff39905050394edf9fcffffffffffffff +f3340c0b028bebf0f9f855100f0500429ec5cacbc6c39873410d0a05308adceb +f5fefffffffffffffffffffffffffffffffffffffffffffffba2262516ced8d8 +fdffffffffffffffc32d2d20002a649baebbcfd5d89f732b1e120066adcae4f7 +fffffffff8f3ecf1f4f8fbfdfffffffffffffff7c798777781859496a5957f2e +2720000035aab7ccfaffcc4b4b365286b2d5ecfffffffc5b515066aaaddafeff +fffffffffffff9f5eff1f4f5f9fcfefffffffffffffffffffffffffffcbc6361 +39949b9bfaffffffffffffffffffffffffffffffffffd1986e4c20428f8ec2ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639efbee5fac985ed35 +96fcccccf13232f2ffffffe5d0fa782eeaa0e1fbbd4dea1a48f19c8bf29090f3 +9288f01115ed7a92f38d89f16b7ef7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8fffffffffffbf31413 +eadfeafdfeffffffffff9d19e90f7af8e3f2feffffff9f1fea1277f8deeffeff +fffffffff92626ea73cefbecfdffa42aeb1971f7d3eafeffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff3ae928f76696b787a75 +62657cb2baccfbfff4b2979476676a787a7563667cacb5c8fafff4b69d987665 +69777a7665687ba7b0c4faffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffefd6be8e531a253c49a4dffffffffffffff5bcbca1254142aafcff +fffffffffffecac3c0242a3b63c5f9c7c7b41f3637a5fcfffffffffffffed3ce +ca2322305cc2f9d2d2b714242c8cd9fffffffffcf4eac79c660d1c2570c9ffff +fff7dedea7172020bffffffffffffffffffffffffffffffffff5e9e686141515 +f4fffffffffffffffdf0f0ce080d0e92fbfffffffffffffff8f7f31f05073ab0 +fbfffffefdfdbe010101b7ffffffffffffffffffffdb0505048af5f9fcffffff +fffffffffb280c0c35a5eef4fafffffbe6ab8b77432d2a2b557ab1a370110f0a +8ad4e7f5fdfffffffffffffffffffffffffffffffffffffffffffffffba22625 +16ced8d8fdffffffffffffffcb2d2d2285d1d1eeffffffffffffffff92343419 +70b9c9e7faffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffd847473855b2b6d7b8514b2f03406563686b7a6f5d40231e0d1e2b +313a6192c0d0e7ffffffffffffffffffffffffffffffffffffffffffffffffff +fcbc636139949b9bfaffffffffffffffffffffffffffffffeab76e5e38568490 +d1f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe1bef9742bec5fbbfaf2e6fadce0fad1c5f66339ec9fe5fa +c985ed3596fcccccf13232f2ffffffe5d0fa752eea92f5fcd4a7ed171bed869b +f3757cf2a095f01217ed7b9cf36d67f185a0f7ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8ffffffffff +fbf31413eadfeafdfeffffffffff9d19e90f7af8e3f2feffffff9f1fea1277f8 +deeffefffffffffffb3426ea73cefbecfdffa42aeb1979f8d3ecfeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffed9c3af5b28113b4a72d8fffffffffffffffffffffec4bcb9242d +4269c2fffffffffffff2c3c39923393baff7ffcdc7c623263760bfffffffffff +fff4cecea21d3030adffedd2d2801c2b2cb1fcffffffffffffffded9d9221522 +2e9dedfbedddc6671220209bfffffffffffffffffffffffffffffffffff5e9e6 +86141515f4fffffffffffffffff2f0ec1f090e40b2fffffffffffffdf7f7c304 +06079af3fffffdfbe1750201018dfffffffffffffffffffffffb22050536aaf9 +f9fdffffffffffffcb0c0c0990e7f2f9feffffffffffffffffffffffffffffcd +6617120ccee7e7fcffffffffffffffffffffffffffffffffffffffffffffffff +fba2262516ced8d8fdfffffffffffffff5412d2b49a5d1dff5ffffffffffffff +8834341670b9c9e7fafffffffcf6f6f6f9f9fcfefeffffffffffffffffffffff +ffffffffffffffffffeb47473f509fb7d6dfcfbebfb7adb0b0b0b1bccdc9b145 +433636697c9eb9d3ecedf5fffffffcf8f8f6f9f9fbfefeffffffffffffffffff +fffffffffcbc636139949b9bfaffffffffffffffffffffffffffffa06c6c262a +6890b0e0ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639 +efbee3fac97dec358ffcccccf13232f2ffffffe8d0fb7f28eb79c6fab360ec2a +9dfbd7d7f12727f1e0d9fb4322eebacdf12121effbffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffff9c0de80881f9f0f8ff +fffffffffbf31413eadfeafdfeffffffffff9d19e90f7af8e3f2feffffffa31f +ea1377f8deeffefffffffffffb2626ea73cefbecfdffb137ed1b18f0cdd7fac8 +bdf8e9f0fefdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccb1b13e0000223a4595c8e0dcccc8bdbebdbbbec3d4e3f9f1 +d3bc95421032406fd4fcfee5d0bf702e153b3b7ffffffff3dac79e460e2a3567 +d2fcfee9d8ca773011303078fffff8d7d2b41b0e1b2a6dacfdfffffbf3eac396 +6913212593e8ffe0dddd211b2169d7fffffffffffffffffffffffefcfaf4e3d3 +d9e6e7b969101414c3f1fcddd4defdfffffcf5f0be54030a0c47c8fbfffbf8f3 +8e3a0307075dfffffffcfbf71a020355d2ffffffffffffffffffffffffffca5c +0505023dc0f4f9fdfffc97440a070355f2f2f6fffffff5d2bab5c8dae9f2e9c4 +924e100c0651a7e5eff8fffffffffffffffffffffffffffffffffffffffff8e5 +d6dfeff6cc85261e11a3ced8d7d7e2f7f7f9ffffffd2832d25130c89b0cceef7 +fde0b07f2c201478b9cae9faffffffffb74a39250575c3c3e7ffffffffffffaa +5a48708298bed0dfedeedf954e3c200517a3b7c0f7ffffffffffffffffffffff +fffffc5c51505faaadd7feffffffffffffffc26558390763a5a5daffffffffff +fffffaece1e6ebebd0a3624e2d75949bd1dfeaefecf1fefffffffffff3c37764 +4109789191ebffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffdfbef97936ec84e1fffdfefefafafee2 +c5f97b34ec89eefefafbfcebfffcccccf13232f2fffffff0dafb8f2ceb0000ee +1924ee88b5f33f18ed31a8fbd9d9fa2424eeeedcfc7100eb1d20f0ecffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff940de8168a +faf1f8fffffffffffbf31413ecdfeafdfeffffffffffa728e91178f8e3f2feff +ffff9c1fea1f80f9e0f1fefffffffffffb3226ea7cd5fbedfeffffe7f32b26ed +0000ed0000eccdd0fbfeffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbc7b1a8340000000000000000000000000000092d43 +5cbbf6ffffffe1cbbd69290000000000000e303c67d5ffffffffffffffffe6d4 +c86f2c0000000000000b27315fd3fffffffffffffdf4ddc99f30000000000000 +0000131d2693c9fbfff7e7ddae4c202149fbfffffffffffffffffffffffffef5 +e6dc89000000000000000000000004111243f4fffffffffff9f4f18635000000 +0000000206083ecafffffffefbfbc651030330fbffffffffffffffffffffffff +ffffffffff903c06040200000000000036c0f3f6fcfffffffffff49413100a00 +00000000002881b8dbf5fafdffffffffffffffffffffffffffffffffffffffff +fffff4a623221500000000000000000000002dcbd5defdffffffffffb378371e +110200000000000070a7cbe7f6ffffffffffffffc05139283186c3d0ecffffff +ffffffd7985a341e090000000000000000298ab5c8edfeffffffffffffffffff +fffffffffffff75c514d5fa5add7fbffffffffffffffca6b583d2e71a5b8e2ff +fffffffffffff7be605b390000000000000000000000209198adfaffffffffe5 +6b6b58245d8cacd7faffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffdcbef9733aec8eeeffffffff +fefcfdccbcf33f36ed94f5fffffffef2e3f99a61ed3232f3ffffffe8d0fa7c28 +ea82e4fff1dafb9221ea2832f3fff9fddabbf12124ecedfffededef50f1ceb86 +dffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffcfeebf1fcf4fafefefeffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffaf8f8e9e3e3e4e6eaf6ffffffffffffffffff +fffffffffffbf9f9e9e3e3e3e5e9f5fffffffffffffffffffffffffffffcfaf9 +eae3dfe2e3e8f5ffffffffffefdbdb7a12202192edffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +fefeebe4e3e0dfe4f3fffffffffffdfafa8b02040383eaffffffffffffffffff +ffffffffffffffffffffffffede5e4dfdee3f2fefefefffffffffffffffffffc +f7f2f3f2eae9f0fbfdfeffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff9f4efe7e5e4eff8f9fcffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffefaf5f0e9e6e5e9f6f7faffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdebef97b39ec94ea +ffffffffecd0fa8629ea2d39efd5fffffffcfccac1f00715ec4e85f7ffffffe6 +d0fa732cea79f5fffffbfef9eafbe4f9fee3d8f83f05eb2440f1fffffffffdff +fff5fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +0b0bea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ead0d0fbffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffff5dbdb9f1b2222ceffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffdfafab5030404c7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffbdbdf90000ea00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ed1f1fecffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff7fffff7ffecf7c291ee3c5ef3f8f5f9e7dcf6fefff8 +fffff8fffdf8e5dcf39590f3f1fff9f8f2f8d2bbf3b7bbf4c0c0f2b2bff5ffff +f9f2e6f6934cec2428f0fdfffafffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff9fffef6f7f1e0dedad2dce3e4f8ff +fcfffff8fffff8fffff8fffff9f9f7f0e2d9d3d8dbdcf2fdfdfffff8fffff8ff +fff8fffff9faf8f2e3d9d3d7d9daf1fcfefffff8fffff8fffff8fffff9fbfaee +dfdaced2d8d3ebf7fafffff9fffff8fffff8fffff8fffffbf9f3f1ba8a7da9dc +f6fffffcfffff9fdfdf6e6dad3d4d4d5effcfffffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaffffffbf8574 +a2d6f2fcfefcfffffcfffae8e3ddcfd3d9daf4fdfcfefff8fffff8fffff8ffff +fbfffaeee4ded6d4dbd9f2f7fafefef9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffbfffbeae7e0d2d5d9d9f0f8f8fdfff9fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9fffff6eae5d9d5d5cde1ecedf8fcf9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fffff6efe8dfdedcdaecf2f1fdfffafffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff7d9bef35026ee3ea2f3c291ee3c3cf2c5c5f21129 +ed71c8f6f7fdf8e3f5f8ccc6ef3232f1fffffaecd0f67d03ec0000ee0000ed1f +2aeec7fafad8c0f00000ed111ced88d0f6fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8be85ef87b2f5ecf5f8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffffbf2dbc6975d2700000000000000 +000f2f3d6cc9effdfffffeffffffe4d0c36c2a000000000000082b3752d4fffe +fffffcffffffe9d8ce732d00000000000006232c48d2fffefffffcfffff7e4d9 +ae4200000000000000000f181d87c0e8fffffefffff8fffff9fffffae6e6b90c +15178ce5fffffffff6f0ec8333000000000000020b0e2ecbfffffffffbfffff8 +fffff8fffff8fffefcf7b46402020398f3fffffffcfffff8fffff8ffffffffff +ce0606057ddcf7fbfeffd4863e0a0602000000000000000036abdaf0fafdffff +ffffde9658140d070000000000000000007db3dff2f9fffffff9fffff8fffff8 +fffff8fffffafffffed9945522150900000000000000003096c0daf2fbfeffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdfcc98b3f +2e1a71b5bde4fcfdfffffeffffdb7f47391600000000000000005380a0d5e9f7 +fffffafffff8fffff8fffff8fffff8fffff8fffffdfcca87593e190000000000 +0000000000000057919ed3f7ffffffe69c665525000000000000002b7a94b3ec +fffcfffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9feeaf7bc83ed1d18ed595bee2d56f095 +67ed3939f1ffe0f8c96aed3574f5ccccf13232f1fffffae5d0f6772eeca1e6f8 +d26aeb2a61f2d7d7f30c1eed6bcef6dbd6ef0e18ec7db8f5fffff9fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff9a523ec1679f4daeef8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff9fffffddcbab677363477afc6 +e6eae3d1b096550d1a41418cfffffff4dac1a04f0a2a3758c6f0f6e5d0b96b20 +16363685fffffff6e1cca95408222d4fc2eff7ead9c47122122b2b7fffffffeb +d7d76e091525579dfdfffff9f0e5b97e43192020cffffefffff9fffff9fef5e5 +dc890b17177cfffffffbf3ebc260030d1036baedf8f8f3e08127050c0c6cffff +fffffff8fffff8fffefbfac56f00000001020298f3fffffffcfffff8fffff8ff +fffff39a0506046cf7f7fbffffff8b190a5293b0dae7e8f2e9ce7a1e0d08015e +ececf4ffffff932715487a9fcce3e3eeeadf96531710071cd7e1e5fefff9ffff +f8fffff8fffff8fffffbfffffe99342758839bc9dde3f0e9d1893724150353cf +cfe2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdffd693 +3f321c00000071b5bde4fcffffffffa34646242a65b5c7defefffde1b181402b +178cb1b1eefffbfffff8fffff8fffff8fffff8fffff8fffffdfcc26b593a4182 +939ebcc3b5b2b1ababa3a1c0d3d9ecfbf491645d1e26518dafccf5fae4ab7058 +3006329393b7fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fff8f7d5c6f26e74f18d5bed +2e26ef9c91ee487bf4fce1f8c076ee3598f6ccccf13232f1fffffae5d0f67b2e +ec94d2f3610bed0b38ef3810ed277ff4fffff9fef5f8d99eee0006ed1843f0c7 +e6f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff5a774ed0a07ed0000ed4b7af1edf5f8fffff8fffff8b770ed5483f1a979ee +140ded000fed99c6f6f5fbf9d091ef1b12ed0000ed5653ee222defcfdcf7fdff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffafff3d5bd9c493b4141effffcc8c1b9252e3d70cfffffffffff +fff4c8c8a1203536adfdfdd2ccc623253268ccfffffffffffff6d3d3aa1a2b2b +a9fefcdad7ca121523259de9fffffffffff9dedeba121d209aecfefffffcffff +ffece5e140121843bdfbfffffeedebe01e0e1352c4fffffffffffffcf1f1c207 +0c0c9cfbfffffffbfffefbf8d586040504a3decf1e020388f3fffffffcfffff8 +fffffffffffb46050531b3f5f9fdfffffff8fffff8fffff8fffff8ffffffffd5 +6c110e08d9ececfdfff9fffff8fffff8fffff8fffffeffec831c1a0dcfe1e1fc +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffeffda7e +2e2613becfd0fbfffcfffffec2834d3f588fd0dbedfffffafffff8fffffdffe3 +a53d35217caa9e3f39356db5bde0fcfffffff15546410666a5b7dff8ffffffff +ffe24d4d4062a2b1dbf8ffffffffcb9567515a7fb5c6e4fffffafffffdfcb859 +593463a3a3dafffffbfffff8fffff8fffffcfff8bd645f3a749a9ae6fffbffff +fdffffe26b6b56518793cef6fdfffffafffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e5bff57202ec0000 +ee0000ee0000ee0000ed2439efb5e5f8c987ee3596f6ccccf13232f1fffffaec +d6f6812dec1850ef0000ed1017ed5174ef0807ed3536ed4657ef5742ed0000ee +1720edc0fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff67c0dec070eefd6eef6fdfff35f12ed061ef0eaedf9fffff9ab48ec1005 +ed6b95f1d8e7f4a569ed130bebbedff9faf7f47522ed0e43f0c9c7f4b9b2f3eb +f2f8fefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbf1d7bc954d1a41418cfffff5c1c1a2243c3daffcfe +fffffcfffffdcfc8bf2326365fc3f9ccccb41d3132aafcfefffffcfffffdd8d3 +ca221d2956bbf7f9ede0ba782e070f16497aa4dee8dd9c4b12202697fffffeff +fff9fffbf0e5c564171919ecfffffffffbebebc50b13139efbfffffffbfffffe +f3f1e71f080c3eb1f4fffefbf7e3990205075cb8fffbfbfb12020384f3ffffff +fcfffff8ffffffffdb71050402e4f9f9fefff8fffff8fffff8fffff8fffff9ff +ffffcc71100e075eececf4fffff9fffffaffffffd9b6a8b2aa8812120e5190c5 +ecf4fbfffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9ffff +fed2832d251353cfcfe2fffffcfffffead3434200075c9c8e8fffffafffffdff +efb43c3725448bc2d6edff4d404067b5bddffcfeffffffe5ac6d3d270f22486b +b1d2e0c2874b361f60b1b3dbfffffcfffffeb95252320064aaaadbfffffaffff +fdfcc274593a1a4e615b777c7883909ccbdde4fafffffff8bd645f3a799a9ae9 +fffbfffffdffffff956b6b23588894d3f7fffffbfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e0bef577 +2eed76c6f5f5eaf5e0e1f5d7c5f26339ee9fe5f8c985ee3596f6ccccf13232f1 +fffffae8d0f6832aec6fbff24128eda1edf9f6f3f8cebcf3c8c8f1161feca0db +f4dce0f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff9fff3f00d0ceabef1f9fcfff8fffff9fffbf21413eb95e6f8f7fef9a1 +18eb0f7bf3e5f3f8fffff9fffff5361feb40a0f4e7f5f9ab23ec177df4daeff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffcffffeeb398907e727180837b6d697cb1bacaf6ff +efb79e947e707080837b6e6a7cacb5c6f5fff0bba3997e6f6f7f837c6f6c7ca7 +afc2f5fffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffaf9e3cdac7034253b42aaeafffffce4c1b870243a +3db0f6fefffffdfffffbd1c8b921203634afeccccc811e2f32abf5fefffffdff +fffcdad3c3231826299fe9fffbedd9c17411161165846200000007141c50a5e1 +fffffffffffbf5e4e4920c151974d2fffffffffef6ebe0880b12139ff4ffffff +fcfffffef4f1e028070c0b9df8f6f6b804060878c2fffffffffbfbf01003038f +fbfffffffafffffbffffffa305030363c9f9fbfefffff8fffff8fffff8fffff8 +ffffffeb9e510f0a0584d4eef7fdfefffff8fffffbffffffb7745141452d0607 +055190c5ecf4fbfffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fffeeda966291b0d74bad1eafafefffff9fffffbf8f2e5f0f5f1fcfdf8fffffe +fffcc33b3a295a93c3def0fffffff74b403e6ebbbde2fefbfffffeffeba9473f +26546e52222c21000000276a9bc2dff5fffffafffffbf9f4e8f1f4eefafcf8ff +fff8fffffdf8cea3877f7c7d8e90a3977f3f352a00002c919eb9f7ffef91645a +1e002a657e97bfcbc4ab916c3e2d161f5788a8d3f7fffffbfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +eacbf58328ec0000ee0000ee0000ee0000ed2639efbee5f8c985ee3596f6cccc +f13232f1fffffae5d0f6782eeca0e1f7bd4dec1a48f09c8bf19090f19288ef11 +15ed7a92f28d89ef6b7ef3fffff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff9fffff10d0dece6f1f9fefff8fffff9fffff41414eb73dff8 +f4fef99c18eb0e7bf3e5f3f8fffff8fffff6561feb0871f3deeef9a123ec1575 +f3daedf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffcfffff0ae928b766968787a71626579b2 +bacbfbfff0b29790766767787a71636678acb5c7fafff1b69d95766566777a72 +656878a7b0c3fafffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9fffffdf0d9c293561a223843a2defffffffffffff5c1 +c1a2223c3da7fcfefffffcfffffdcfc8bf2326365fc3f9ccccb41b3132a2fcfe +fffffcfffffdd8d3ca221e2b57c1f9d7d7b612202789d8fffffffffcf5eccca0 +650b18206dc7fffffff7e4e4a7131a1abefffefffffafffffbebebc50b131395 +fbfffffffbfffffef3f1e7200a0c4bcaf5f69f0f0305045b8f896e5a6d6e5d28 +0001012c3f474171b1ffffffffffbb030403b4fafafdfffafffff8fffff8ffff +fcffffffcc7c2e0b070279c5eff6fcfffffff9fffff8fffff8fffff8fffff8ff +fffeffeca81c1a1286d7e1f2fefbfffff8fffff8fffff8fffff8fffff8fffffb +fffffed28c472214066aadd2e8f7fffffff9fffff8fffff8fffff8fffff8ffff +f8fffffdf6a73c382101466f696967756f5d3a1c180a212f353c69a2ccdbd846 +463d5498b8d8f2fffffffff0cd9d4637233e85b1cbebfffffffafffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffffcffffda60604a42879ec5f1 +fffffdebc9b399664c413144598088724f472d578793d3f6fdfffffafffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8e1bef5742bed5fbbf5f2e6f5dce0f5d1c5f26339ee9fe5f8c985ee35 +96f6ccccf13232f1fffffae5d0f6752eec92f5f9d4a7ed171bee869bf1757cf1 +a095ef1217ed7b9cf26d67ef85a0f3fffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff9fff3f00d0ceac7f1f9fcfff8fffff9fffbf21413 +eb95e6f8f7fef99c18eb0e84f5e5f4f8fffff9fffff5201feb59b8f5ebf9f9a1 +23ec157df4daeff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffafffffcdcc7b05e290f36456dd7fffefffffafffffa +fffffcc8c1b924293c65c1fcfffffffffff2c8c89a203436adf7fdd2ccc62322 +315cbdfcfffffffffff5d3d3a21a2b2babffeed7d780192626affbfefffffbff +fffee3dedb22121c299ae8fcf0e2cb690f1a1a95fffffefffff9fffffeedebe0 +200d1344b4fbfffffffffffcf1f1ba080c0ca1fdfcfcd9b4a3b1b0b1afaab0b3 +bcd8d1a30102024f9bb1c5c8dbffffffe47702030287fafafdfffff8fffff8ff +fffffffff487420b070334bef1f4fcfffbfffff8fffff8fffff8fffff8fffff8 +fffff8fffffeffffe01c1c1973cfe1f0fcfcfffff9fffff8fffff8fffff8ffff +fefffff6955927150a2ea7d4ddf5fffcfffff9fffff8fffff8fffffafcf6f0f5 +faf3fdfef8fffffef4d8c3b5b7b0aeafabafb1b8d0ccab37352a3b7384a8c6e4 +f0f4b446462b75b5b8e5fefbfffffefffffc674d4c14629fb3dbf7fffffcfcf8 +f1f6f9f2fbfef7fffff8fffff8fffff8fffff8fffff8fffffcffffea60605342 +829ec5eefefffffafffff8fffff8fffffcffdf9c6b5426839394f3fffbfffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee0000ed2639efbee3f7 +c97ded358ff6ccccf13232f1fffffae8d0f67f28ec79c6f5b360ed2a9df5d7d7 +f02727efe0d9f64322edbacdf02121f0fbfffafffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff6610dec0539f0e2f3f8fefff378 +1eed0901f0eaeaf9fffff9ab33ec103ff0d4ddf5f2f2f38c54ed0f08eddcdff8 +fefff9af31ed1719efd4ddf5c6baf3eaf2f8fdfff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffafffffed0b6b340000020363e93c8dbddccc3bebe +b8babdbcd3e2f3f2d7c199440e2e3a68d3fcf9e7d4bf732f13363679fffffff4 +decca2480c252f60d0fcf9ecdcc97a320f2b2b72fffff8dcd7b51b0c172569a7 +fdfffefcf5ebc89a67101c2090e8fee5e2de1f171b65d6fffffffdfffff8ffff +fafbf2ebba52050e1149cafbfaf9f4e78b39050c0c5efffffffffff8fffff8ff +fff8fffffffbfbf012030384fbfffffffffffff41b020253cffcfcfefefffff8 +fffffffffffb600a0a0400006ebbd7e0cfc7c2c3bdb8b5acc3d9f4fafcdf3615 +228bb5c2e0e7e3e9e8ce7f28160d021dc2e1e5fbfffafffff8fffff8fffff8ff +fffefffffb7327270e000061a4bed3cecac7c4beb9b7aec2d2e2f4f8fcffffff +b54434220575c9c9e8fffffafffff8fffff8fffff8fffffdfffff74d403e67bb +bddffeffffffe15d463b093a6eb5cde1fefffdedc89e4535245a9eb1d8f6ffff +ffffc06052350764aaaadbfffffdfffffeb56f60747582b2cad6ebecdaa2644f +2b06138c9ea9f4fffff8e2cfcbcac7d5e2ded3b68350391b346a8eb8e0faffff +fbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8dfbef57936ed84e1f7fdfef8fafaf8e2c5f57b34 +ed89eef8fafbf6ebfff8ccccf03232f1fffffaf0daf68f2cec0000ee1924ee88 +b5f13f18ed31a8f5d9d9f52424eeeedcf67100eb1d20efecfffafffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9fffff3560eec0500ee +0000ed0008eed8ecf9fdfff8fffff9b548ec1105ee0000ee0000ed0000edb9e0 +f7f9fff8fffff9ffe7f12420ed0000ed0000edd3d7f8fefff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffafffff9cbb6a935000000000000000000 +000000000008293c57b9f1ffffffe4d0c36c2a0000000000000c2b3762d4fffe +fffffcffffffe9d8ce732d0000000000000a232c59d2fffefffffcfffdf4e1ce +9f32000000000000000011191f90c8f5fff9eae2b24b1b1b43fbfffefffff8ff +fff8fffff9fffffff6f0ec8333000000000000030b0e42cbfffffffffbfffff8 +fffff8fffff8fffffffbfbe812020384f3ffffffffffc94f02022cf8fcfcffff +f8fffff8ffffffffffed510a0a0300000000000000000000000000001e97e2ed +f8fe96471f0d0501000000000000000033a3d8e9f7fefdfffff9fffff8fffff8 +fffff8fffffeffffef6627240c00000000000000000000000000001a84c0d4ed +fbffffffbe4c34243186c9d4edfffffafffff8fffff8fffff8fffffdfffff14d +403c67b5bddffcfdfffffefff6ce7144341100000000000000005a86abd8ecfc +fffffcfffffec86652392e72aabce2fffffcfffffddca56f472a0c0000000000 +00000023789db4e7fdfdfffffef8ba67613802000000000019537697cfe8f4ff +fffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8dcbef5733aed8eeef9fffff8fefcf8cc +bcf13f36ed94f5f9fffff8f2e3f39a61ed3232f1fffffae8d0f67c28ec82e4f9 +f1daf79221ec2832f2fff9f9dabbf02124eeedfffadedef20f1cec86dff7ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8ece5f5e4e3f7fcfdf8fffff8fffff8fffff99c18eb0e7bf3e5f3f8f0eff6fa +fdf8fffff8fffff8fffff8fffff8fffcf6ebf1f6f5faf8fefff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9fbf9f6e9e3dde3e5e4f6ff +fcfffff8fffff8fffff8fffff9fbfaf7eae3dde3e4e3f5fffcfffff8fffff8ff +fff8fffff9fcfbf3eae3d9e2e2e2f5fffdfffffdf2e1e17d0f1a1b8fe8fffffe +fffff8fffff8fffff8fffff8fffff8fefdfbebe4dde0e0dff4fffdfffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffdffffff8d01010181e3fc +fdfffffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffffafffdf2f3ecdfe4e9eafbfdf9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff9fffff8f1ece1e3e0dcedf5f4fbff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffef4f7 +f2e5e8e6e1f4f4f3fffff9fffff8fffff9fffdf3f7f6edececeaf5f6f4fefff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8debef57b39ed94eaf9fffff8 +ecd0f68629eb2d39efd5fff8fffcf7cac1f00715ed4e85f3fffff9e6d0f6732c +ec79f5f9fffbf7f9eaf6e4f9f9e3d8f43f05ec2440f1fffff9fffdf8fff5f8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffffa0b0bec00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ebd7d7f8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff6e1e19f171d1dcdff +fefffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffffffffffb4010101 +c5fdfdfefff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9bdbdf60000ec0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee1f1fedfffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8bf87ef94c4 +f5f4faf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffefffffdffecfbc291ef3c5ef6f8f5fee7dcfbfeffffffffffff +fdfee5dcf79590f6f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2bffafffffff2e6fc +934cec2428f1fdffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffdfaf6f1e6dddad7dce4eaf9fffffffffffffffffffffffffffff9f6f6 +e2d9dad9dce2f2fdfffffffffffffffffffffffffffaf7f7e3d9dad8dae1f1fd +fffffffffffffffffffffffffefaf9f5dfdad4d3d8daebf7ffffffffffffffff +fffffffffffffffff7f0efba8c84abddfdfffffffffffffffffffefefef9f4f9 +fffffffffffffffffffffffffffffffffffffffefff9f3f9ffffffffffffffff +ffffffffffffffffffffffffffbd8275a1d8fcfefeffffffffffffffe8dcdbd3 +d2d9edfafdfefffffffffffffffffffffffffffae7dbdbdadee4f7fcfdffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf5 +fafefdfeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffede4e4 +d8d4d9e6f1f5fafefffffffffffffffffffffffffbede4e3dddde1f0f5f7fdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffcf5eee8ded9dadbe6eef2 +fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffed9bef85026ed3ea2f8c291ef3c3cf6c5c5f51129ec71c8fc +f7fdfde3f5fcccc6f03232f1ffffffecd0fb7d03eb0000ee0000ed1f2aedc7fa +fdd8c0f00000ed111ced88d0fdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff1d8c1935a26000000000000000011334272cbf0ffffffffffffffe1cb +bd692900000000000009303c57d5ffffffffffffffffe6d4c86f2c0000000000 +000727314ed3fffffffffffffff7e0d3ae400000000000000000121c238ac1ed +fffffffffffffffffffffff9e1e1b90f1a1d8ee6fffffffffffffffffef5e9de +86131515ebfffffffffffffffffffffffffffffffefaf4e98c090909ebffffff +ffffffffffffffffffffffffffffffffd201010180e1fdfdffffffffff903c06 +040200000000000022c0f3f5fcffffffffffffffdd66110f0700000000000000 +46bfe8effbffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5a2262416c6d8d8fcffffffffffffffed472d29060000000000000000000000 +0000002a80c0d4ebfcffffffffffffffffffffffffffffffffffffffffffaa6a +42250e0000000000001a91b8c2f0ffffffffffffffe68c4d421c000000000000 +00348eadc5f0fffffffffffffffffffffffffffffffffffffffffffffffccc8d +5e421c000000000000000000000000548c98d0f6ffe5b58a5836170000000000 +000000216683a8dff6ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffeeafabc83ec1d18ed595bef2d56f29567ec3939 +f2ffe0fac96aeb3574f9ccccf23232f2ffffffe5d0fa772eeaa1e6fbd26aeb2a +61f8d7d7f60c1eec6bcefddbd6f00e18ec7db8fbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffdab5b175393a7ab1cde6eae8ceab96520c1d464691fffffff3 +d7bc9c4d0b2e3c60c7f1fce2cbb9681f193b3b8bfffffff5dec7a55209263257 +c4f0fde7d4c36e2114303084ffffffe9d2d26b0a192a5ba2fdfffff8eee4b47a +441d2525d0fffffffffffffffffef2e0d6860d1d1d81fffffffffff8eee6ae45 +0b15000005131445f4fffffffffffffffffffffbf6f0b5490c1600000209093c +f3fffffffffffffffffffffffffffffffffef39800010171fdfdfeffffffd36b +05050329b0e5f9fcfef48d320a060263f2f2f7fffff455100f053b80dbecf6fb +fadd7d23120a0151e7e7effffffffffffffffffffffffffffffffffffffffdc7 +652d2e0b020300002dced8e0fdfffffffffffffff5bdafaaaeaeaeb0b1b0afb3 +c3dbc6942f291c2a80c7d4ebfeffffffffffffffffffffffffffffffffffffdd +8e40361b1f86aec7ebfaf7a86343260c4bb7b7d4fffff67f4b48162c60a4c1db +f7fae59d594525053cababc9ffffffffffffffffffffffffffffffffffffffff +fffcc4705f3d417e8e9fbdc4bab2b1b0aca4a6bfcfd8ebfaffb8726a665f6ea3 +c8dbebeadfaa6f5c32083a8d8dbbffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffff8fcd5c6f46e74f38d5bed2e26f19c +91f0487bf7fce1fac076ed3598fcccccf13232f2ffffffe5d0fb7b2eeb94d2f8 +610bec0b38f03810ed277ff7fffffffef5fdd99eee0006ec1843f1c7e6feffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffb469ed5085 +f4ae79ee0c08ed0010eda1cffdf8fcffffffffb35eed629ef8d7baf3553dee38 +5cf4e7ecfefffffbae7ff0160fed0000ec4570f3e0ecfdfefffffffffffffffc +c2a2f1341aed0400ed3a45efa8c8faf2faffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff2d3b79749404648 +f0fffec3bcb926324274d0fffffffffffff4c3c3a0233b3baffdffcdc7c62429 +376ccdfffffffffffff6cecea91d3030abfefdd5d2ca1218282ba0edffffffff +fff9d9d9ba1522259dedffffffffffffffe8e0e040161e47bffffffffffffefc +f9f5dec8ccd9dbbb6614152af4fffffffffffffffffffffdfcf7ddc6ccdee5c4 +69090920f3fffffffffffffffffffffffffffffefefe42000030b7fefdfeffff +fffb1f050544bbf9fafdffffffffffffd40c0c0a93f2f2f9ffa110100ab3eeee +faffffffffffffffd617171380d4e7f4fdffffffffffffffffffffffffffffff +fffffae2ccd2e3e9cd7e241f24ced8dbfdffffffffffffffffffffffffffffff +ffffffffffffc56d342515adcacbf7ffffffffffc38653425891cbd7edffffff +fffffc54403f3a8fbdceeeffffffffffffde47473b6fb7b7e2ffb84b4b2e86b2 +b2ecffffffffffffffe05252445f9dacd9f8ffffffffcc996d545a7fb0c3e4ff +fffffffffffcba5f5f37639e9edaffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffe6a8715d2e828d8ef5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe5bffa7202eb0000ee0000ee +0000ee0000ed2439efb5e5fac987ed3596fcccccf13232f2ffffffecd6fb812d +eb1850ef0000ed1017ee5174f00807ed3536ee4657f05742ed0000ed1720edc0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffa7 +3feb0903ec709cf6ddeaf9a263ec0c07eac1eafdfbffffab48ec1005ed0036f1 +a397f26983f7ecf0fe8820ed100deec5dcfcfbfef76c25ec0d1bf0d7dcfdffff +fd962eed1701eda0c6fae5e3f9a864ec1e62f7cce1feffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff0d4b6914b +1d464691fffff5bcbca1274142b1fcfffffffffffffecac3c0242a3b63c5f9c7 +c7b4213637adfcfffffffffffffed3ceca2321305bbdfdf8ebdbb5752e08111a +4d7eaadde4d7984915252b9dfffffffffffffffaede0c0631c1e1eecffffffff +fffffffffffffffffff5e9e986141515f4ffffffffffffffffffffffffffffff +fffaf4f48c090909f3fffffffffffffffffffffffffffefeda71000000e9fefe +ffffffffffdb05050493f5f9fcfffffffffffffffb280c0c38b1f2f4fba81010 +0abbeeeefbffffffffffffffff5917170c8adce6f5feffffffffffffffffffff +ffffffffffffffffffffffffffa2262616ced8d8fdffffffffffffffffffffff +ffffffffffffffffdb32322a3b8bc8d9eefeffffffffffffaf3939230075c3c3 +e7ffffffffffe440403770bbbde4fefffffffffffffc5d47463186b7c6ebbe4b +4b308db2b2eeffffffffffffffff8452521c66a3acddfbffffffbb5858350063 +a5a5dafffffffffffffcc4795f3d1b4b5d5c787d7d838f9fc9dbe4faffffffff +ffffffffffffffffffffffffffe0aa6f592e3a8d8dbbffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0bef9772eec76c6 +fbf5eafbe0e1fbd7c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe8 +d0fb832aeb6fbff44128eca1edfff6f3fecebcf7c8c8f3161feca0dbfadce0fd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffff9c0de80881f9f0f8fffffffffffffa2c14e942a8faeff9ffa118ea0f66 +f6e5f0fefffffffffffffff4f3201fe9afdefcf8fffffffffffffbf42726ea8b +d7fbf0fff32b2bea97d3fbf2fffffffffffffffffafafffefeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffff2b398947e727480837e6d697fb1baccf6fff3b79e99 +7e707380837e6e6a7facb5c8f5fff3bba39e7e6f727f837f6f6c7fa7afc4f5ff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e1caa7 +6d35284048acebfffffce3bcb370273f42b2f6fffffffffffffcccc3b920243b +3ab1ebc7c781213437aef5fffffffffffffdd6cec4221b2c2fa2eefffaebd3bc +75141a1462806200000008172254a7e7fffffffffffff3dede8e0e1a1e77d7ff +fffffffffffffffffffffffffff5e9e686141515f4ffffffffffffffffffffff +fffffffffffaf4f08c090909f3fffffffffffffffffffffffefdfda103010065 +d2fefffffffffffff39905050394edf9fcfffffffffffffff3340c0b028bebf0 +f9f855100f0500429ec5cacbc6c39873410d0a05308adcebf5feffffffffffff +fffffffffffffffffffffffffffffffffba2262516ced8d8fdffffffffffffff +ffffffffffffffffffffbd6d31230f5ecbcbe3fffffffffffffffffff8f3ecf1 +f4f8fbfdfffffffffff6b1403d2671b5bde4fcfffffffffffff66547440c69b2 +b5dff87f4b491600327693a9c3cac8a688622f23112466a3bcddfbfffffff9f5 +eff1f4f5f9fcfefffffffffffff9d0a98b817f7b8c93a3988442382e00002d8c +98b6f6fffffffffffffffffffffff3c4986642204f7f8eccf2ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeacbfa83 +28eb0000ee0000ee0000ee0000ed2639efbee5fac985ed3596fcccccf13232f2 +ffffffe5d0fa782eeaa0e1fbbd4dea1a48f19c8bf29090f39288f01115ed7a92 +f38d89f16b7ef7ffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffff970de80881f9f0f8fffffffffffffb4e14e90577f8e9f4fe9c +18e90e7bf8e5f3fefffffffffffffffff42020ecd3defcfdfffffffffffffff9 +2727ea6bd5fbeafff62b2bedcfd3fcfeffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff3ae928f76696b787a7562657cb2baccfbff +f4b2979476676a787a7563667cacb5c8fafff4b69d98766569777a7665687ba7 +b0c4faffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefd6be +8e531a253c49a4dffffffffffffff5bcbca1254142aafcfffffffffffffecac3 +c0242a3b63c5f9c7c7b41f3637a5fcfffffffffffffed3ceca2322305cc2f9d2 +d2b714242c8cd9fffffffffcf4eac79c660d1c2570c9fffffff7dedea7172020 +bffffffffffffffffffffffffffffffffff5e9e686141515f4ffffffffffffff +fffffffffffffffffffaf4f08c090909f3fffffffffffffffffffffefdfdbe01 +0101b7ffffffffffffffffffffdb0505048af5f9fcfffffffffffffffb280c0c +35a5eef4fafffffbe6ab8b77432d2a2b557ab1a370110f0a8ad4e7f5fdffffff +fffffffffffffffffffffffffffffffffffffffffba2262516ced8d8fdffffff +ffffffffffffffffffffffffe298312a197abccdeafbffffffffffffffffffff +ffffffffffffffffffffffffffffe440403769bbbde1fefffffffffffffc5d47 +462f7db4c5e7fefffcecc0a7925b423c2f49648e90743d3724669dabddf8ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffde +6666503f8398c2f0ffffffffffffffe0b081573210497790c7ebffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e1bef9742bec5fbbfaf2e6fadce0fad1c5f66339ec9fe5fac985ed3596fccccc +f13232f2ffffffe5d0fa752eea92f5fcd4a7ed171bed869bf3757cf2a095f012 +17ed7b9cf36d67f185a0f7ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffff970de8088afaf0f8fffffffffffffa1514e85dc1fd +f1fbff9c18e90e7bf8e5f3fefffffffffffffff4f3201fe9b7defcf9ffffffff +fffffbf42726ea8bd7fbf0fff32b2beaa6d3fbf5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9c3 +af5b28113b4a72d8fffffffffffffffffffffec4bcb9242d4269c2ffffffffff +fff2c3c39923393baff7ffcdc7c623263760bffffffffffffff4cecea21d3030 +adffedd2d2801c2b2cb1fcffffffffffffffded9d92215222e9dedfbedddc667 +1220209bfffffffffffffffffffffffffffffffffff5e9e686141515f4ffffff +fffffffffffffffffffffffffffaf4f08c090909f3fffffffffffffffffffdfb +e1750201018dfffffffffffffffffffffffb22050536aaf9f9fdffffffffffff +cb0c0c0990e7f2f9feffffffffffffffffffffffffffffcd6617120ccee7e7fc +fffffffffffffffffffffffffffffffffffffffffffffffffba2262516ced8d8 +fdffffffffffffffffffffffffffff783030113c94cddbf1ffffffffffffffff +fffffffffcf6f6f6f9f9fcfefefffffffffffc57403f3081bdcaeaffffffffff +ffd84747386daeb7e1fbffffffffffffffffffffffffffffda8d52411f99acad +f6fffffffffffcf8f8f6f9f9fbfefeffffffffffffffffffffffffffffffffff +ffffffee66665a3f7d98c2edfffffffdb68c693718207391a9e7ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639efbee3fac97dec35 +8ffcccccf13232f2ffffffe8d0fb7f28eb79c6fab360ec2a9dfbd7d7f12727f1 +e0d9fb4322eebacdf12121effbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffa729ea0940f2dfe5fbf3f3f8874dec0a05 +ece6eafdffffffa118e90f7bf8e5f3fefffffffffffffffffb6e20eb0c34f1d0 +e4fdfdfff98331ec1102eed7d7fcfffffc752bed1024eeb3d0faf3f3fcc182ee +2b6cf6cee2feffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +b1b13e0000223a4595c8e0dcccc8bdbebdbbbec3d4e3f9f1d3bc95421032406f +d4fcfee5d0bf702e153b3b7ffffffff3dac79e460e2a3567d2fcfee9d8ca7730 +11303078fffff8d7d2b41b0e1b2a6dacfdfffffbf3eac3966913212593e8ffe0 +dddd211b2169d7fffffffffffffffffffffffefcfaf4e3d3d9e6e7b969101414 +c3f1fcddd4defdfffffffffdfcf6e2d1daebf2c26e070909c2f3fedcd2ddfdff +fffcfbf71a020355d2ffffffffffffffffffffffffffca5c0505023dc0f4f9fd +fffc97440a070355f2f2f6fffffff5d2bab5c8dae9f2e9c4924e100c0651a7e5 +eff8fffffffffffffffffffffffffffffffffffffffff8e5d6dfeff6cc85261e +11a3ced8d7d7e2f7f7f9ffffffffffffeeab3f2c1d04aacecef6ffffffffffff +ffffffffffffffffb74a39250575c3c3e7ffffffffffffd7834034172e92b9cc +f0fefdb07145291140b7b7d0fffffff7ddcbc4c9d1dbe7e6ceab763d2c153c7c +aac9e7feffffffffffffc26558390763a5a5daffffffffffffb87466757382b0 +c9dbeaece0a569562d07138798a5f3ffff9e6a6a250000437186b5cbd7d1c8c5 +bbbab7bec8d6e4eefbffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffdfbef97936ec84e1fffdfefefafafee2c5f97b34ec89eefe +fafbfcebfffcccccf13232f2fffffff0dafb8f2ceb0000ee1924ee88b5f33f18 +ed31a8fbd9d9fa2424eeeedcfc7100eb1d20f0ecffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffb23feb0a03ee0000ee0000ed00 +00edc2ebfefbffffffffff9918e91c84f9e6f4fffffffffffffffffffffffff8 +6321ed0a00ee0000ed0008eec6dafcfcfffffffffffffff87835ed1002ed0000 +ee0000eb82b7faecf9ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffbc7b1a8340000000000000000000000000000092d435cbbf6ffffffe1cb +bd69290000000000000e303c67d5ffffffffffffffffe6d4c86f2c0000000000 +000b27315fd3fffffffffffffdf4ddc99f300000000000000000131d2693c9fb +fff7e7ddae4c202149fbfffffffffffffffffffffffffef5e6dc890000000000 +00000000000004111243f4fffffffef9f1e69000000000000000000000000206 +073afbfefbfbc851030330fbffffffffffffffffffffffffffffffffff903c06 +040200000000000036c0f3f6fcfffffffffff49413100a0000000000002881b8 +dbf5fafdfffffffffffffffffffffffffffffffffffffffffffff4a623221500 +000000000000000000002dcbd5defdffffffffda2e2e263384c6daedfdffffff +ffffffffffffffffffffffffc05139283186c3d0ecffffffffffffffffffaa6a +42250e0000000000002991b8c8f0fffffffffff6af4d492a0100000000001e60 +89aedaeef9ffffffffffffffffffca6b583d2e71a5b8e2ffffffffffffdda874 +4c2c0d0000000000000000237497b0e6fdfffffff8956a651f00000000000000 +00000000000000125a869ad5f9ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffdcbef9733aec8eeefffffffffefcfdccbcf33f36 +ed94f5fffffffef2e3f99a61ed3232f3ffffffe8d0fa7c28ea82e4fff1dafb92 +21ea2832f3fff9fddabbf12124ecedfffededef50f1ceb86dffeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffff970de80881f9f0f8ff +efeefcfbfeffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffeeee7fbe4e3fcfafbfffffffffffffffffffffffffffffffff8 +f3fdebf0fef9fcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffaf8f8e9e3e3e4e6eaf6fffffffffffffffffffffffffffffbf9f9 +e9e3e3e3e5e9f5fffffffffffffffffffffffffffffcfaf9eae3dfe2e3e8f5ff +ffffffffefdbdb7a12202192edffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfafa8b02040383eaffffffffffffffffffffffffffffffffff +ffffffffede5e4dfdee3f2fefefefffffffffffffffffffcf7f2f3f2eae9f0fb +fdfeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffff1ebeae2e0e3eef6f7fcfffffffffffffffffffdf9f5f5f3ebebf1 +f7f8fafeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffefbf7f2ece8e6e8f3f4f7ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffdebef97b39ec94eaffffffffecd0fa86 +29ea2d39efd5fffffffcfccac1f00715ec4e85f7ffffffe6d0fa732cea79f5ff +fffbfef9eafbe4f9fee3d8f83f05eb2440f1fffffffffdfffff5fdffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff0b0bea0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000eaccccfbffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff5dbdb9f1b2222ceffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffdfafab5030404c7ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffbdbdf90000ea0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed1f +1fecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffbb +82ef92c8fcf8fcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +c0c0c0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccc0c0c0ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff7fffff7ffecf7c291ee3c5ef3f8f5f9e7dcf6fefff8fffff8fffdf8e5dc +f39590f3f1fff9f8f2f8d2bbf3b7bbf4c0c0f2b2bff5fffff9f2e6f6934cec24 +28f0fdfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffd +f6f6f1e0dddad2dce4e5f9fffcfffff8fffff8fffff8fffff9f9f6efe2d9d3d9 +dcddf2fdfdfffff8fffff8fffff8fffff9faf7f1e3d9d3d8dadbf1fdfefffff8 +fffff8fffff8fffff9faf9eedfdaced3d8d4ebf7fafffff9fffff8fffff8ffff +f8fffffbf7f0eeba8c80abddf7fffffcfffff8fffff8fefef8f9f4f3fffff9ff +fff8fffff8fffff8fffff9fefdf7e6dbd3d3d4d4effcfffffff8fffff8fffff8 +fffff8fffffaffffffbd8271a1d8f5fefefcfffffcfffae7e3dccfd3d9dbf5fd +fdfffff8fffff8fffff8fffff8fffff8fffff9f9f4f3fefef8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9faf5f3fefdf8 +fffff8fffff8fffff8fffff8fffff8fffff9faf5f3fefdf8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffbeceae3d5d6dad8ec +f5f4fcfffafffff8fffff8fffffbfffbedebe4d6d7dad7ebf3f3fcfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fbf8 +f5fdfaf6fffff8fffff8fffff8fffff9fffff7eeeaded7d6cddde7e6f5fbf9ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff7d9bef35026ee3ea2f3c291ee3c3cf2c5c5f21129ed71c8f6f7fdf8e3 +f5f8ccc6ef3232f1fffffaecd0f67d03ec0000ee0000ed1f2aeec7fafad8c0f0 +0000ed111ced88d0f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8c18af088b0f5e8f3f8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffcf1 +d8c1935a26000000000000000011334271cbf0fdfffffeffffffe1cbbd692900 +000000000008303c56d5fffefffffcffffffe6d4c86f2c000000000000072731 +4dd3fffefffffcfffff6e0d3aa400000000000000000121c228ac1e9fffffeff +fff8fffff9fffff9e1e1b50f1a1d8ee6fffffffcfffff9fffef5e9de83131515 +ebfffefffff8fffff8fffffff9f4f1863500000000000001060829caffffffff +fbfffff8fffff8ffffffffffcd01010180e1fdfdffffd3833a05030100000000 +0000000038afdff4fbfefefffff8fffff8fffffefff49714130bd6eaeafdfff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffefff59f2624 +15c6d8d8fcfff9fffff8fffff8fffff8fffffefff5a4312f1cbccdcdfbfff9ff +fff8fffff8fffff8fffff8fffff8fffff8fffffafffffedda16936210e000000 +00000000002a84a9c7eaf9feffffffdfa6713f27100000000000000000287c9f +bee7f8fefffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcff +f7ba635e378e9b9bf7fffbfffff8fffffcffffe2986b56210000000000000000 +426680c2dff3fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff9feeaf7bc83ed1d18ed595bee2d56f09567ed3939f1ffe0f8 +c96aed3574f5ccccf13232f1fffffae5d0f6772eeca1e6f8d26aeb2a61f2d7d7 +f30c1eed6bcef6dbd6ef0e18ec7db8f5fffff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9a82bed1a75f4d1ebf8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffffddab5b17539387ab1c7e6eae2ceab92520c1c46468ffffffff3d7bc9c4d +0b2e3c5dc7f1f6e2cbb4681f183b3b89fffffff5dec7a55209263254c4f0f7e7 +d4bf6e2114303082ffffffe9d2d26b0a182a5b9ffdfffff8eee2b47a421d2525 +d0fffefffff9fffff9fef2e0d6860d1d1d7ffffffffffff8eee6a9450b150000 +04131444f4fffefffff8fffff9fcf6f0c76302090b32b8edf8fbf7e584280307 +0769fffffffffff8fffff8fffffef3980001016ffdfdfeffffff8814055096b4 +dde9e9f2e9cd771a08050160f2f2f7fffffffffdbd581c22060102000030dfea +eefefff9fffff8fffff8fffff8fffff8fffff8fffff8fffffefffdc2652d2d0b +020300002cced8e0fdfff9fffff8fffffefffdc56c38340e020400002ac3cdd7 +fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffffea44b405d76 +89bbd5deeee9d4954c38200549b7b7d3ffffffaa564b607081b4d2dbedead69b +5541250645ababcdfffffafffff8fffff8fffff8fffff8fffff8fffffcfffed3 +8f67541d0509000020949baffafffbfffffbfffffeb56a6a36225192abcefeff +fee7c09a5e40226f8d8de7fffcfffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fff8f7d5c6f26e74f18d5bed2e26ef9c91ee487b +f4fce1f8c076ee3598f6ccccf13232f1fffffae5d0f67b2eec94d2f3610bed0b +38ef3810ed277ff4fffff9fef5f8d99eee0006ed1843f0c7e6f7fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8af57ed5fa2f4ddbbf1 +4e36ed375ef2f0f3f9fffff5aa79ee0f0aed0000ed4975f1e8f1f8fefff8ffff +f8fffff5ae7fee160fed0000ed4570f0e0ecf8fefff8d296ef2216ed0000ed53 +50ee252fefc8d5f7fcfff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffafff2d2b79747404647f0fffcc3 +bcb426324274d0fffffffffffff3c3c39c233b3baffdfdcdc7c02429376ccdff +fffffffffff5cecea51d3030abfefcd5d2c51218282ba0e9fffffffffff9d9d9 +b61522259dedfefffffcfffffee8e0dc40161e47bffbfffffffffefbf9f5d7c8 +ccd3dbbb62141529f4fffefffff8fffffef2f0e61d0a0e4ec3fffffffffffffd +f7f7c70407079afbfffffffbfffffffefefa42000030b7fafdfefffffff8ffff +f8fffff8fffff8ffffffffd4680c0a06def2f2fefffffff9d9c8cfddeccd7113 +101ddfeaebfefff9fffff8fffff8fffff8fffff8fffff8fffff8fffffefffadb +ccd2dde9cd7a241f22ced8dbfdfff9fffff8fffffefffaddcfd4dce7cd7f2e28 +26c3cdd1fdfff9fffff8fffffafffffec3865142588ccbd7ecfffffafffff8ff +fff8fffff8fffff8fffffdffde8d473b1ca8b7b7f9fffafffff8fffff8fffff8 +fffffdffe0945244209dacacf8fffcfffffecc996c545a7bb0c3e2fffffbffff +fcfffbe5dadddbdfcd965d4f36949ba4fafffbfffffcfffff4766a6209528593 +cef4ffffffffffe871715f4e828dcbf5fdfffffafffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8e5bff57202ec0000ee0000ee0000ee00 +00ed2439efb5e5f8c987ee3596f6ccccf13232f1fffffaecd6f6812dec1850ef +0000ed1017ed5174ef0807ed3536ed4657ef5742ed0000ee1720edc0fff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9a73fec0903 +ed0038f0ab9bf06582f4f3f5f78215ec0b0eefcfe6f5fcfff3651aed091df0e2 +e5f9fffff68620ec0f0deec5dcf5fbfef36c25ed0d1befd7dcf9fff2f47a29ed +1141f0c2c2f3bbb4f3e9eff8fdfff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf0d4b6914b1c46468f +fffff4bcbc9d274142b1fcfefffffcfffffccac3ba242a3b63c5f8c7c7af2136 +37adfcfefffffcfffffdd3cec523212e5bbdf7f8ebdbb5752d0811194d7ea6dd +e4d7984915252b9afffffefffff9fffaece0c0611c1e1eecfffefffff8fffff8 +fffff9fffff5e9e983141515f4fffefffff8fffffcf0f0ca080d0e9cfbffffff +fbfffffff8f7ec1f05063ab0f4fffffffffffefeda6f000000e9fefefffff8ff +fff8fffff8fffff8fffff9ffffffcb6e0a090560f2f2f7fffff8fffff8fffffe +ffff9714140bdfeaeafefff9fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffeffff9f262615ced8d8fdfff9fffff8fffff8fffff8fffffeff +ffa431311cc3cdcdfdfff9fffff8fffffafffffeaf3939230072c3c3e6fffffa +fffff8fffff8fffff8fffff9fffffdd89146381d49b7b7d3fffffafffff8ffff +f8fffff9fffffdda9851412245acabcdfffffcfffffebb5858350060a5a5d9ff +fffafffff8fffff8fffffcffffba636337949b9bfafffbfffff9fffffdeabc89 +5c3b171c3a5697bdd1c99f6f4f2a4d8d90cafffffbfffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8e0bef5772eed76c6f5f5eaf5 +e0e1f5d7c5f26339ee9fe5f8c985ee3596f6ccccf13232f1fffffae8d0f6832a +ec6fbff24128eda1edf9f6f3f8cebcf3c8c8f1161feca0dbf4dce0f7fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff99c +0deb086bf3f0f6f9fffff8fffff9fff4f11514ebb7e9f9fafff8fffff9fffbf2 +1c1beb92e2f8f4fff12020ebafdef8f8fff8fffff9fffbf22726eb89d3f7f0fe +f9ae2bed1c79f4d1ebf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffcffffeeb398907e727180837b6d697cb1bacaf6ffefb79e947e707080 +837b6e6a7cacb5c6f5fff0bba3997e6f6f7f837c6f6c7ca7afc2f5fffbfffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaf9e1c9a76d332840 +48acebfffffce2bcb36d273f42b2f6fefffffdfffffaccc3b420243b3ab1eac7 +c77e213437aef5fefffffdfffffbd6cebe221b2b2fa2eafffaead3bc71141a13 +62806000000008172154a7e2fffffefffffcf3dede8e0e191e77d3fffffeffff +f8fffff8fffff9fffff5e9e683141515f4fffefffff8fffef8f0e58b080d0e9d +f3fffffffcfffffef8f7e5290406058fe5fffffffefdfda103010065cdfeffff +fffff8fffff8fffff8fffff8ffffffeb9c4d0a060387d9f3f9fefefffff8ffff +f8fffffefffb9714140bdfeaeafefff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffff8fffff8fffff8 +fffffefffca431301cc3cdcdfdfff9fffff8fffff8fffffbf8f3e6f1f4f1fbfd +f8fffff8fffff8fffff8fffff8fffffdf0b478402a1466a4b8dff7fefffffaff +fff8fffff8fffffdf0b8804a3017609aaddaf6fefffffafffffbf9f5e9f1f4ee +f9fcf8fffff8fffff8fffff8fffffcfffcba636137949b9bfafffbfffff8ffff +fcffefba6b5f3a4358423242310000001f557ba6d1f0fffffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000 +ee0000ee0000ee0000ed2639efbee5f8c985ee3596f6ccccf13232f1fffffae5 +d0f6782eeca0e1f7bd4dec1a48f09c8bf19090f19288ef1115ed7a92f28d89ef +6b7ef3fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff9970deb0881f3f0f8f9fffff8fffff9fffff21515ecdee9f9fefff8ffff +f9fffff51c1ceb71e0f8f0fff22020edd3def8fdfff8fffff9fffff52727ec69 +cdf7eafdf9a42bed1a70f2d1eaf8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffcfffff0ae928b766968787a71626579b2bacbfbfff0b29790 +766767787a71636678acb5c7fafff1b69d95766566777a72656878a7b0c3faff +fbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffdefd6be8e531925 +3c49a4dffffffffffffff4bcbc9d254142aafcfefffffcfffffccac3ba242a3b +63c5f8c7c7af1f3637a5fcfefffffcfffffdd3cec52322305cc2f8d2d2b21424 +2c8cd9fffffffffcf4e9c79c630d1c2570c9fffffff6dedea3172020bffffeff +fffafffff8fffff8fffff9fffff5e9e683141515f4fffefffff8fffffcf0f0ca +080d0e92fbfffffffbfffffff8f7ec1f05063ab0f4fffffefdfdb9010101b7ff +fffffffafffff8fffff8fffffcffffffca79290704017ccaf5f9fdfffffff8ff +fff8fffff8fffffefffb9714140bdfeaeafefff9fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffff8ffff +f8fffff8fffffefffca431301cc3cdcdfdfff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffffbfffffed7995d361f0a5e99b9dcf2fffffffa +fffff8fffffbfffffed99f663f250b5890aed6f0fffffffafffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcfffcba636137949b9bfafffbff +fffcffffe16a6a55447a94c4ecfffffffff3d7b1675133316a8db4e2fffffffb +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e1bef574 +2bed5fbbf5f2e6f5dce0f5d1c5f26339ee9fe5f8c985ee3596f6ccccf13232f1 +fffffae5d0f6752eec92f5f9d4a7ed171bee869bf1757cf1a095ef1217ed7b9c +f26d67ef85a0f3fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff9970deb0881f3f0f8f9fffff8fffff9fff4f11514ebc0e9f9fb +fff8fffff9fffbf21c1beb92e2f8f4fff12020ebb7def8f9fff8fffff9fffbf2 +2726eb89d3f7f0fef9a42bed1a79f4d1ebf8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffcd9c3aa5b2810 +3b4a71d8fffefffffafffffafffffcc4bcb4242d4169c2fcfffffffffff1c3c3 +9623393baff7fdcdc7c023263660bffcfffffffffff3cece9e1d3030adffecd2 +d27c1c2b2cb1fcfefffffbfffffeded9d52215212e9de8fbedddc66712202097 +fffffefffff8fffff8fffff8fffff9fffff5e9e683141515f4fffefffff8ffff +fef2f0e61f090d40b2fbfffffffffffdf7f7be0406079af3fffffdfbe1750101 +0189fffffffffff8fffff8fffffffffff4843e06040236c2f6f8fdfffbfffff8 +fffff8fffff8fffff8fffffefffb9714140bdfeaeafefff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9ff +fff8fffff8fffff8fffffefffca431301cc3cdcdfdfff9fffff8fffff8fffffa +fcf6f0f6f9f2fcfef8fffff8fffffdfffff7a16c3f220f2993bbc9f0fffcffff +f9fffff8fffffdfffff7a774492812268ab0c1eefffcfffff9fffff8fffff8ff +fff9fcf8f1f6f9f2fbfef7fffff8fffff8fffff8fffffcfffcba636137949b9b +fafffbfffffcfff8c06a653d5e9294d7fdfcfffffdfffffd85716f174e7f91cb +f3fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +eacbf58328ec0000ee0000ee0000ee0000ed2639efbee3f7c97ded358ff6cccc +f13232f1fffffae8d0f67f28ec79c6f5b360ed2a9df5d7d7f02727efe0d9f643 +22edbacdf02121f0fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff99c0deb0881f3f0f8f9fffff8fffff8fffff66715ec +0837f0dbedf7fefff37d26ed0c02f0e2e2f9fffff66e20ec0c34efd0e4f7fdff +f48331ed1102efd7d7f8fffff9b238ed1c18efcbd6f5c8bdf3e9f0f8fdfff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffeccb1ae3e00 +00223a4395c8dadcccc3bdbeb8bbbebed4e3f3f1d3bc95421032406cd4fcf9e5 +d0ba702e153b3b7dfffffff3dac79e460d2a3564d2fcf9e9d8c4773011303076 +fffff7d7d2b01b0e1a2a6da9fdfffefbf3e8c3966413212593e8fee0ddd8211b +2169d7fffffffdfffff8fffff9fffefafaf4dcd3d9dfe7b966101414c3f1f5dd +d4d7fdfffffcf5f0be54030a0c45c8fbfafbf8ec8e3a0307075afffffffcfbf0 +1a020355d2fffffffefffff8fffffffffffb5c050502000071bfdce3d0c6c2c3 +bdb7b5acc3d7ebfcfdfefff7ddd2dde9facb78141009b1e0e3d9d4d7fafbfbff +fff9fffff8fffff8fffff8fffff8fffffdfff8e0d6dfe8f6cc81261e11a3ced2 +d7d7daf7f7f8fffffefff8e1d8e0e7f4cd863127159bc4c7d6d8dbf6f5f6ffff +fcfffffeb74a39250572c3c3e6fffffffffffc83403f1700005691a7c8cdcdcb +c6bfbab8b0c0d0e2eef4fd8a4b4b1b000051899ec3cdceccc6c0bab9b1c0cdd8 +ebf2f9ffffffc26558390760a5a5d9fffffafffffcfffae8e1e6e4ebd09e624e +2b759497d1dfe2efeceefeffe77c6a590e2f5891b5d3fefffdf0d3b1654e3447 +7e8dc6f2fefffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8dfbef57936ed84e1f7fdfef8fafaf8e2c5f57b34ed89eef8fafbf6eb +fff8ccccf03232f1fffffaf0daf68f2cec0000ee1924ee88b5f13f18ed31a8f5 +d9d9f52424eeeedcf67100eb1d20efecfffafffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff9940deb168af5f1f8f8fffff8fffff8ffff +f9fffff35c16ed0700ee0000ed0008eed1e4f9fdfff8fffff9fffff46321ed0a +00ee0000ed0008eec6daf8fcfff8fffff9ffe8f22c28ee0000ed0000edcbcef8 +fefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffff9c7 +b1a3340000000000000000000000000000092d415cbbf1ffffffe1cbbd692900 +00000000000d303c66d5fffefffffcffffffe6d4c86f2c0000000000000b2731 +5ed3fffefffffcfffdf3ddc99b300000000000000000131d2593c9f5fff7e6dd +ae4a202147fbfffefffff8fffff8fffff9fffef4e6dc86000000000000000000 +000004111242f4fffffffffff9f4f186350000000000000206083dcafffffffe +fbfbc64f03032efbfffffffff8fffff8ffffffffffec4d050402000000000000 +00000000000000001e9ae0f2fafefff49b11100a00000000000000000000002f +dce7ecfefff9fffff8fffff8fffff8fffff8fffffefff4a22322140000000000 +0000000000002ccbd5ddfdfffffff5a72e2c1b00000000000000000000002ac0 +cad5fcfffcfffffec05139283182c3d0ebfffffffffff178403b130000000000 +0000000000000000001775b2bee5f87f4b491600000000000000000000000000 +00166d9fb5e0f9ffffffca6b583d2e6ea5b8e0fffffbfffffcfff7bc605b3800 +000000000000000000001f9198adfafffffff8d78d664f190000000000000000 +486b88c7e3fafffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8dcbef5733aed8eeef9fffff8fefcf8ccbcf13f36ed94f5f9 +fffff8f2e3f39a61ed3232f1fffffae8d0f67c28ec82e4f9f1daf79221ec2832 +f2fff9f9dabbf02124eeedfffadedef20f1cec86dff7fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8ede6f5e4e3f7fbfcf8fffff8fffff8fffff8fffff8 +fffff8eee7f5e4e3f7fafbf8fffff8fffff8fffff8fffff8fffdf6ebf1f6f4fa +f8fdfef8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f9faf8f5e9e3dde4e6e5f6fffcfffff8fffff8fffff8fffff9fbf9f6e9e3dde3 +e5e3f5fffcfffff8fffff8fffff8fffff9fcfaf3eae3d9e2e3e3f5fffdfffffd +efdbdb7a121f2192e8fffffefffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fefefbebe4dde0dfdef3fffdff +fffdfdfafa8b02040383e5fffffffffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff8f4efe6e5e1 +dbeaf1effafffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8debef57b39ed94eaf9fffff8ecd0f68629eb2d39 +efd5fff8fffcf7cac1f00715ed4e85f3fffff9e6d0f6732cec79f5f9fffbf7f9 +eaf6e4f9f9e3d8f43f05ec2440f1fffff9fffdf8fff5f8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffffa0b0bec0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000eccecef7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f9fffff4dbdb9b1b2222cefffefffff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffffdfafab0030404c7fffffffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff9bdbdf60000ec0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee1f1fedffff +fafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0cc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccc0c0c0ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff +fffdffecfbc291ef3c5ef6f8f5fee7dcfbfefffffffffffffdfee5dcf79590f6 +f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2bffafffffff2e6fc934cec2428f1fdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc396f1a4 +cafdf6fafffffffffffffffffffffffffffffffffcf5fcf5fafffdfeffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffefaf7f1e7dedad7dce3e9f8ffffffffffffffffffffffffff +fff9f7f6e2d9dad8dbe1f2fdfffffffffffffffffffffffffffaf8f8e3d9dad7 +d9e0f1fcfffffffffffffffffffffffffffbfaf6dfdad4d2d8d9ebf7ffffffff +fffffffffffffffffffffffff9f3f2ba8a81a9dcfdfffffffffffffffffffffe +fff9f4f9fffffffffffffffffffffffffffffffefefee7dbdad2d3daeefcffff +ffffffffffffffffffffffffffffffffffbf8578a2d6f9fcfefffffffffffaef +e3ddd4d3d9e0f4fdfdfefffffffffffffffffffffffffffffffffffaf4fafefe +fefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbe9 +dededbdee3f4f9fafeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffbf7fbfdfbfdffffffffffffffffffffffff +fffffdeeeae4d7d6d3dee8edf5fbffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +d9bef85026ed3ea2f8c291ef3c3cf6c5c5f51129ec71c8fcf7fdfde3f5fcccc6 +f03232f1ffffffecd0fb7d03eb0000ee0000ed1f2aedc7fafdd8c0f00000ed11 +1ced88d0fdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a116e90e76f8e6f3fffffffffffffffffffffffffffffffb2421ea017af8dbef +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff2dbc6975d280000000000000000102f3d6ec9efffffffffff +ffffe4d0c36c2a000000000000082b3752d4ffffffffffffffffe9d8ce732d00 +000000000006232c49d2fffffffffffffff8e4d9b24200000000000000000f18 +1e87c0ecfffffffffffffffffffffffae6e6be0c15178ce5ffffffffffffffff +fef7efe4890e0f0febfffffffffffffffffffffffbf9f7893600000000000001 +020225c9ffffffffffffffffffffffffffffffffd30606057ddcf7fbfeffd486 +3f0a0603000000000000000037abdaf2fafdfffffffffffffffffffffff49c1a +180fd1e4e4fdffffffffffffffffffffffffffffffffffffffffffffffffffe0 +7529230f000000000000003facd1dff7ffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffcc98d3f2e1a71b5bde4fcfffffffffc +c47b46311500000000000000000000000062a2b1dbf8ffffffffffffffffffff +fffffffffffffffffffffffffffffffff7b95d593593a0a0f7ffffffffffffff +ffffffe49466541f0000000000000000456a88c5e0f6ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffeeafabc83ec1d18ed595bef2d56f29567ec3939f2ffe0fac96aeb35 +74f9ccccf23232f2ffffffe5d0fa772eeaa1e6fbd26aeb2a61f8d7d7f60c1eec +6bcefddbd6f00e18ec7db8fbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffff9b16e90e85f9e6f4fffffffffffffffffffffffffffffffdb69af3b3 +d3fcf4faffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffdcbab677363577afcce6eae9d1b09b550d1b41418e +fffffff4dac1a04f0a2a375bc6f0fce5d0be6b2017363688fffffff6e1cca954 +08222d52c2effdead9c97122122b2b81ffffffebd7d76e09162557a0fdfffff9 +f0e8b97e46192020cffffffffffffffffffef5e5dc890b17177efffffffffffa +f2ebb2470b160000030e0f41f3fffffffffffffffffdf9f6cb650105062fb6ec +fffdfcf0872901010169fffffffffffffffffffffffff39a0506046ef7f7fbff +ffff8b190a5293b5dae7eef2e9d47a1e0d080161ececf4fffffffffdc35c2126 +070102000030d9e4eafeffffffffffffffffffffffffffffffffffffffffffff +f56627260c3573c5dbebf9fae0893826150349cfcfe0ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd6963f321d00000071b5bde4fcff +fffffffcbb59462d4691a5abbbbfb7b2b1b0aba1a4c3d8e2f0fbffffffffffff +fffffffffffffffffffffffffffffed58b61521b040800002299a0b4faffffff +ffffffffffb2646433235797b0d2feffffe6be98593d22749393e8ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff8fcd5c6f46e74f38d5bed2e26f19c91f0487bf7fce1fa +c076ed3598fcccccf13232f2ffffffe5d0fb7b2eeb94d2f8610bec0b38f03810 +ed277ff7fffffffef5fdd99eee0006ec1843f1c7e6feffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdfffffffffffffffffff2cdf55c38ec0503ed0021ed58 +71f4f2f5feffffffb538eb102ff2ae8eee1410ed000feda2c7fcf6fbffffffff +ba75ee6ba5fae8f4ffffffffbc6dee5889f4ab87f02016ed0010ed8fb5fbf0f8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff3d6bd9c +4b3b4142effffec8c1be252e3d70cffffffffffffff5c8c8a5203536adfdffd2 +cccb23253268ccfffffffffffff7d3d3ae1a2b2ba9fefddad7d0121523259ded +fffffffffffadedebf121d209aecffffffffffffffece5e540121943bdffffff +fffffffcfbf6dec7ccdce0c0680e0f25f3fffffffffffffffff7f6f21c06084a +c2fffffffffffffefdfdd001010198fbffffffffffffffffffff46050531b3f9 +f9fdffffffffffffffffffffffffffffffffffd56f110e09d9ecedfdfffffff9 +e0c9d0e3ebcd78181520d9e4e7feffffffffffffffffffffffffffffffffffff +fffffff5a7272618a1d6d6f5ffffffffffffffda2e2e2673becfe9fbffffffff +c2834e3f5894d0dbefffffffffffffffffffffe3a83d35227caaa33f39366db5 +bde0fcfffffffffcb046462972b7b7e3ffffffffffffffffffffffffffffffff +ffffcb9569515a83b5c6e5fffffffffffffffbe9d9dce1dfcd98574b3799a0a9 +fafffffffffffffff871645f09558d98d1f6ffffffffffea6b6b5c518793cef6 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe5bffa7202eb0000ee0000ee0000ee0000ed2439 +efb5e5fac987ed3596fcccccf13232f2ffffffecd6fb812deb1850ef0000ed10 +17ee5174f00807ed3536ee4657f05742ed0000ed1720edc0ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdfffffffffffffffff40d0dea77b6f9f2eefb +d7d2f5330fecc6ecfdfbffffb547ec1005ec6b96f5d9e7f9a568ed120aeab9e0 +fcf9ffffa521ea157af7dbeffeffffffb054ed1a08ec5681f5d7eafaa972ee1c +10eccdd0fbfeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1 +d7bc954d1b41418efffff6c1c1a6243c3daffcfffffffffffffecfc8c5232636 +5fc3faccccb91d3132aafcfffffffffffffed8d3d0221d2a56bbfdf9ede0ba78 +2f070f16497aa8dee8dd9c4b1220269bfffffffffffffffbf0e5c566171919ec +fffffffffffffffffffffffffff7efef890e0f0ff3fffffffffffffffdf6f6d3 +0508089afbfffffffffffffffdfdf91e010136aefbffffffffffffffdb730504 +02e4f9f9feffffffffffffffffffffffffffffffffffcc71100e0761ececf4ff +ffffffffffffffffffff9c1a1a0fd9e4e4feffffffffffffffffffffffffffff +fffffffffffffff5a7272618a9d6d6f6ffffffffffffffff6a2e2e137cc6cfeb +fdffffffad3434200078c9c8e9ffffffffffffffefb73c3726448bc2d6edff4d +404067b5bddffcfffffffffcbb64462d18576c6877787a8594a6d3e4ebfbffff +ffffffffffffb95252320066aaaaddffffffffffffffffffffffffffffb95d5d +3599a0a0faffffffffffffffffe9ba855738161d3c5c9bc0d6c89b6a4b285293 +96ceffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe0bef9772eec76c6fbf5eafbe0e1fbd7 +c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe8d0fb832aeb6fbff4 +4128eca1edfff6f3fecebcf7c8c8f3161feca0dbfadce0fdffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdfffffffffffffffbf30d0de98bc1 +f9f5fcffffffffffffffffffffffffffa016e90e7bf8e6f3fffffffffffffb23 +1dea41a9fae8f7ffa021ea1476f7dbeefeffffffa727eb1873f7d5ecfeffffff +fffcf42e2dea95d0fbf1ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffff2b398947e727480837e6d697fb1baccf6fff3b79e997e707380837e6e6a +7facb5c8f5fff3bba39e7e6f727f837f6f6c7fa7afc4f5ffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f9e3ceac7037253b42aaeafffffce5c1b873243a3db0f6fffffffffffffcd1c8 +bf21203634afedcccc851e2f32abf5fffffffffffffddad3c9231827299fedff +fbedd9c17811161165846500000007141d50a5e6fffffffffffff5e4e4920c16 +1974d6fffffffffffffffffffffffffffff7efeb890e0f0ff3fffffffffffffe +fbf6ea920508089bf3fffffffffffffffdfdf12a0101008deafeffffffffffa3 +05030363cef9fbfeffffffffffffffffffffffffffffffeb9e540f0a0584d4ee +f7fdfffffffffffffffffffffffb9c1a190fd9e4e4feffffffffffffffffffff +ffffffffffffffffffffffffed6627240c003c8eb1bdc8c7c59d7c4e1b140a2b +7cc6d8ebfdfffffff8f2ebf0f5f8fcfdfffffffffffcc73b3a2a5a93c3def0ff +fffffc4b403f6ebbbde2fefffffffff8c89b7a7981839395a49680322a230000 +34a2b1c8f8fffffffffff9f4eef1f4f5fafcfeffffffffffffffffffffffffff +fcb95d5c3599a0a0faffffffffffffffffffeeba665a38465b46303e30000000 +205884aad3f3ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffeacbfa8328eb0000ee0000ee +0000ee0000ed2639efbee5fac985ed3596fcccccf13232f2ffffffe5d0fa782e +eaa0e1fbbd4dea1a48f19c8bf29090f39288f01115ed7a92f38d89f16b7ef7ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdfffffffffffffffffeba +7dee0a06ed0000ee0000ec4978f4f2f5feffffff9b16e90e7bf8e6f3ffffffff +fffffd701dea0b72f7dfeffea021ea1476f7dbeefeffffffa327eb1773f7d5ec +fefffffffffff92e2eea6fc6fbe8fdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff3ae928f76696b787a7562657cb2baccfbfff4b2979476676a78 +7a7563667cacb5c8fafff4b69d98766569777a7665687ba7b0c4faffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff0d9c393561a223843a2defffffffffffff6c1c1a6223c3da7fcffffffffff +fffecfc8c52326365fc3faccccb91b3132a2fcfffffffffffffed8d3d0221e2b +57c1fad7d7bb12202789d8fffffffffcf5edcca0690b18206dc7fffffff8e4e4 +ab131a1abefffffffffffffffffffffffffffffffff7efeb890e0f0ff3ffffff +fffffffffdf6f6d305080890fbfffffffffffffffdfdf91e010136aefbffffff +ffffc0030403b4fafafdffffffffffffffffffffffffffffcc7c2f0b070279c5 +eff6fcfffffffffffffffffffffffffffffb9c1a190fd9e4e4feffffffffffff +fffffffffffffffffffffffffffffffffffffce8b396824c35312d5071a39c71 +221f147cbecfebfbfffffffffffffffffffffffffffffffff6a73c382101466f +6d6967786f5d3b1c180b212f363c6499ccd9ebffffffffffffffffffffffffff +ffd94d4d3d4a98b1d1f4ffffffffffffffffffffffffffffffffffffffffffff +fffffffffcb95d5c3599a0a0faffffffffffffffe3646453477e9ac7edffffff +fff3d5b0624d32336e93b7e4ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe1bef9742bec5fbb +faf2e6fadce0fad1c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe5 +d0fa752eea92f5fcd4a7ed171bed869bf3757cf2a095f01217ed7b9cf36d67f1 +85a0f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +fffffffffffffffffef4f4fcefc9f1110eea82e0fdf6feff9b16e90e85f9e6f4 +fffffffffffffb1f1dea59b9faecf9ffa021ea1476f7dbeefeffffffa327eb17 +73f7d5ecfefffffffffffb3c2eea6fc6fbe8fdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffedcc7b55e291036456ed7fffffffffffffffffffffec8c1be24293d65c1ff +fffffffffff3c8c89e203436adf7ffd2cccb2322325cbdfffffffffffff5d3d3 +a61a2b2babffefd7d783192626affbffffffffffffffe3dede22121d299aecfc +f0e2cb690f1a1a99fffffffffffffffffffffffffffffffffff7efeb890e0f0f +f3fffffffffffffffff7f6f21f06083bb0fffffffffffffefdfdc701010198f3 +ffffffffe3770203028bfafafdfffffffffffffffffffffffb87420c070335be +f1f4fcfffffffffffffffffffffffffffffffffffffb9c1a190fd9e4e4feffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffd2752e2513b9cfd0fafffffffffffcf6f6f5fafafdfefefffffff4d8c6b5 +b7b5aeafb0afb1bdd0ccb037352b3b7388a6bcd6eff0f7ffffffffffffffffff +ffffffffffeb4d4d444a92b1d1f1fffffffffcf8f8f6f9f9fbfefeffffffffff +fffffffffffffffffcb95d5c3599a0a0fafffffffffffff8c0645f3c62979ad9 +fdffffffffffffff806b6b17518796cef6ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeacbfa83 +28eb0000ee0000ee0000ee0000ed2639efbee3fac97dec358ffcccccf13232f2 +ffffffe8d0fb7f28eb79c6fab360ec2a9dfbd7d7f12727f1e0d9fb4322eebacd +f12121effbffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffe1f10d18efd1e0fcf6fefefedaf3120fe9a9ecfdf9ffffaa1feb0f +3ff1dae3fcfcfafba065ec110aecd6e0fdfdffffa521ea1576f7dbeefeffffff +a727eb1873f7d5ecfefffffffffffb2e2eea6fc6fbe8fdffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0b6b640000020364093c8e1ddccc8bebebdbabdc1d3e2f9f2d7c19944 +0f2e3a6bd3fcfee7d4c4732f1336367cfffffff4decca2480c252f62d0fcfeec +dccf7a320f2b2b75fffff9dcd7b91b0c182569aafdfffffcf5edc89a6b101c20 +90e8ffe5e2e21f171b65d6fffffffffffffffffffffffefdfbf5e2d2dae8edbd +6c0b0e0fc2f2fdddd3defdfffffdf9f6c35602050743c7fbfffdfcf8923c0101 +015afffffffffffb1b020253cffcfcfeffffffffffffffffffff600a0a040000 +6ebbdde0cfccc2c3c2b8b5b0c3d6f1fafcfefff8e4d3ddf0f9cc7f19140cadda +e4d8d5e0f9fafbfffffffffffffffffffffffffffffffffffff6d6c0bbc8d7e4 +ede8c89c5e22180c4996cee0f2feffffffffffffb54434220578c9c9e9ffffff +fffffffffffffffffffffffffffffc4d403f67bbbddffeffffffffad5e4e717f +94bbcfdeededdf9853412205179eb1bbf6ffffffffffc06052350766aaaaddff +fffffffffffffaebe0e5ebecd0a05d4a2a799aa0d1dee9f0edf2feffe9786456 +0d305e97b8d7fefffff0d1b2604a344a8393c9f3ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +dfbef97936ec84e1fffdfefefafafee2c5f97b34ec89eefefafbfcebfffccccc +f13232f2fffffff0dafb8f2ceb0000ee1924ee88b5f33f18ed31a8fbd9d9fa24 +24eeeedcfc7100eb1d20f0ecffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffffff7410dec0300ee0000ee0000eb6397f7f4f8feffffff +b547ec1005ee0000ee0000ed0000ebaadefdf7feffffffff9e21ea2189f8ddf1 +feffffffa027eb237bf8d8edfefffffffffffb3a2eea77cdfbeafeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffbcbb6ae35000000000000000000000000000008293e57b9f6ff +ffffe4d0c36c2a0000000000000c2b3763d4ffffffffffffffffe9d8ce732d00 +00000000000a232c5ad2fffffffffffffdf5e1cea33200000000000000001119 +2090c8fbfff9eae2b24d1b1b44fbfffffffffffffffffffffffffef7ece18d00 +00000000000000000000030c0c3ff3fffffffffffbf9f7893600000000000001 +02023ac9ffffffffffffc95102022ef8fcfcfffffffffffffffffffffff3510a +0a0300000000000000000000000000001e96e1eef8fefff4a117160e00000000 +000000000000002fd7e1e8fefffffffffffffffffffffffffffffffffff59f2a +27170100000000002474a6c9eaf5fbffffffffffffffffffbe4c3424318ac9d4 +eefffffffffffffffffffffffffffffffffff64d403d67b5bddffcffffffffd8 +9b5e38210a00000000000000002886b0c3ecfeffffffffffffffc86652392e75 +aabce4fffffffffffffff7bc5a5636000000000000000000000021969eb2faff +fffff8d988614c1700000000000000004b6f92c9e4fdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffdcbef9733aec8eeefffffffffefcfdccbcf33f36ed94f5fffffffef2 +e3f99a61ed3232f3ffffffe8d0fa7c28ea82e4fff1dafb9221ea2832f3fff9fd +dabbf12124ecedfffededef50f1ceb86dffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffffffffffff7f2fcebe9fcf1fcfffeffffffff +fffffffffffffffffffffef9fce4e3fcf5fcfffeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbf9f9e9e3e3e3e5e9f6ffffffffffffffffffffffffff +fffbfafaeae3e3e3e4e8f5fffffffffffffffffffffffffffffcfbfaeae3dfe2 +e2e8f5fffffffffff2e1e17d0f1a1b8fecffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeece4 +e3dfdee3f3ffffffffffffffff8d01010181e8fcfdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffcf7f3f4f3eaeaf0fafbfcffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffefaf6f1eae7e5e9f6f6f9ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff4efebe4e0e2ebf1f4faffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffdebef97b39ec94eaffffffffecd0fa8629ea2d39efd5ffff +fffcfccac1f00715ec4e85f7ffffffe6d0fa732cea79f5fffffbfef9eafbe4f9 +fee3d8f83f05eb2440f1fffffffffdfffff5fdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffff0b0bea0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +eacecefbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff6e1e1a3171d1dcdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffb9010101c5fdfdfeffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffbdbdf90000ea0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed1f1fecffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccc0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff7fffff7ffec +f7c291ee3c5ef3f8f5f9e7dcf6fefff8fffff8fffdf8e5dcf39590f3f1fff9f8 +f2f8d2bbf3b7bbf4c0c0f2b2bff5fffff9f2e6f6934cec2428f0fdfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff9fffef6f7f1e0dedad2dce3e4f8fffcfffff8fffff8fffff8fffff9f9f7f0 +e2d9d3d8dbdcf2fdfdfffff8fffff8fffff8fffff9faf8f2e3d9d3d7d9daf1fc +fefffff8fffff8fffff8fffff9fbfaeedfdaced2d8d3ebf7fafffff9fffff8ff +fff8fffff8fffffbf9f3f1ba8a7da9dcf6fffffcfffff9fdfdf6e6dad3d4d4d5 +effcfffffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffffaffffffbf8574a2d6f2fcfefcfffffcfffae8e3ddcfd3 +d9daf4fdfcfefff8fffff8fffff8fffffbfffaeee4ded6d4dbd9f2f7fafefef9 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffbeae7e0d2d5d9 +d9f0f8f8fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff6eae5d9 +d5d5cde1ecedf8fcf9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff6ef +e8dfdedcdaecf2f1fdfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff7d9bef350 +26ee3ea2f3c291ee3c3cf2c5c5f21129ed71c8f6f7fdf8e3f5f8ccc6ef3232f1 +fffffaecd0f67d03ec0000ee0000ed1f2aeec7fafad8c0f00000ed111ced88d0 +f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffffbf2dbc6975d2700000000000000000f2f3d6cc9effdfffffeffffffe4d0 +c36c2a000000000000082b3752d4fffefffffcffffffe9d8ce732d0000000000 +0006232c48d2fffefffffcfffff7e4d9ae4200000000000000000f181d87c0e8 +fffffefffff8fffff9fffffae6e6b90c15178ce5fffffffff6f0ec8333000000 +000000020b0e2ecbfffffffffbfffff8fffff8fffff8fffefcf7b46402020398 +f3fffffffcfffff8fffff8ffffffffffce0606057ddcf7fbfeffd4863e0a0602 +000000000000000036abdaf0fafdffffffffde9658140d070000000000000000 +007db3dff2f9fffffff9fffff8fffff8fffff8fffffafffffed9945522150900 +000000000000003096c0daf2fbfefffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffdfcc98b3f2e1a71b5bde4fcfdfffffeffffdb7f47 +391600000000000000005380a0d5e9f7fffffafffff8fffff8fffff8fffff8ff +fff8fffffdfcca87593e1900000000000000000000000057919ed3f7ffffffe6 +9c665525000000000000002b7a94b3ecfffcfffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +feeaf7bc83ed1d18ed595bee2d56f09567ed3939f1ffe0f8c96aed3574f5cccc +f13232f1fffffae5d0f6772eeca1e6f8d26aeb2a61f2d7d7f30c1eed6bcef6db +d6ef0e18ec7db8f5fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff9fffffddcbab677363477afc6e6eae3d1b096550d1a41418cfffffff4 +dac1a04f0a2a3758c6f0f6e5d0b96b2016363685fffffff6e1cca95408222d4f +c2eff7ead9c47122122b2b7fffffffebd7d76e091525579dfdfffff9f0e5b97e +43192020cffffefffff9fffff9fef5e5dc890b17177cfffffffbf3ebc260030d +1036baedf8f8f3e08127050c0c6cfffffffffff8fffff8fffefbfac56f000000 +01020298f3fffffffcfffff8fffff8fffffff39a0506046cf7f7fbffffff8b19 +0a5293b0dae7e8f2e9ce7a1e0d08015eececf4ffffff932715487a9fcce3e3ee +eadf96531710071cd7e1e5fefff9fffff8fffff8fffff8fffffbfffffe993427 +58839bc9dde3f0e9d1893724150353cfcfe2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffffdffd6933f321c00000071b5bde4fcffffffffa3 +4646242a65b5c7defefffde1b181402b178cb1b1eefffbfffff8fffff8fffff8 +fffff8fffff8fffffdfcc26b593a4182939ebcc3b5b2b1ababa3a1c0d3d9ecfb +f491645d1e26518dafccf5fae4ab70583006329393b7fffffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fff8f7d5c6f26e74f18d5bed2e26ef9c91ee487bf4fce1f8c076ee35 +98f6ccccf13232f1fffffae5d0f67b2eec94d2f3610bed0b38ef3810ed277ff4 +fffff9fef5f8d99eee0006ed1843f0c7e6f7fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff9f2cdf15c38ed0503ed0021ee5871f1f2f5 +f8fffff8b25eed629ff3d8baf1543ced4170f3e9b7ef1f41f1dfe5f8fffff8ff +fff9fffff54e26ec8dcdf6f0fdf8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafff3d5bd9c493b4141 +effffcc8c1b9252e3d70cffffffffffffff4c8c8a1203536adfdfdd2ccc62325 +3268ccfffffffffffff6d3d3aa1a2b2ba9fefcdad7ca121523259de9ffffffff +fff9dedeba121d209aecfefffffcffffffece5e140121843bdfbfffffeedebe0 +1e0e1352c4fffffffffffffcf1f1c2070c0c9cfbfffffffbfffefbf8d5860405 +04a3decf1e020388f3fffffffcfffff8fffffffffffb46050531b3f5f9fdffff +fff8fffff8fffff8fffff8ffffffffd56c110e08d9ececfdfff9fffff8fffff8 +fffff8fffffeffec831c1a0dcfe1e1fcfff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffffeffda7e2e2613becfd0fbfffcfffffec2834d3f +588fd0dbedfffffafffff8fffffdffe3a53d35217caa9e3f39356db5bde0fcff +fffff15546410666a5b7dff8ffffffffffe24d4d4062a2b1dbf8ffffffffcb95 +67515a7fb5c6e4fffffafffffdfcb859593463a3a3dafffffbfffff8fffff8ff +fffcfff8bd645f3a749a9ae6fffbfffffdffffe26b6b56518793cef6fdfffffa +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8e5bff57202ec0000ee0000ee0000ee0000ed2439efb5e5f8 +c987ee3596f6ccccf13232f1fffffaecd6f6812dec1850ef0000ed1017ed5174 +ef0807ed3536ed4657ef5742ed0000ee1720edc0fff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff9fffff10d0deb77b6f4f2eef6d7d2f233 +0fecc6ecf9fbfff9aa47ec0f05ed0036f0a497f06b8df4edf1f21f1feb7bcdf7 +f0fcf8fffffaeda7ee2316eed8d8f8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf1d7bc954d +1a41418cfffff5c1c1a2243c3daffcfefffffcfffffdcfc8bf2326365fc3f9cc +ccb41d3132aafcfefffffcfffffdd8d3ca221d2956bbf7f9ede0ba782e070f16 +497aa4dee8dd9c4b12202697fffffefffff9fffbf0e5c564171919ecffffffff +fbebebc50b13139efbfffffffbfffffef3f1e71f080c3eb1f4fffefbf7e39902 +05075cb8fffbfbfb12020384f3fffffffcfffff8ffffffffdb71050402e4f9f9 +fefff8fffff8fffff8fffff8fffff9ffffffcc71100e075eececf4fffff9ffff +faffffffd9b6a8b2aa8812120e5190c5ecf4fbfffff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff9fffffed2832d251353cfcfe2fffffcfffffe +ad3434200075c9c8e8fffffafffffdffefb43c3725448bc2d6edff4d404067b5 +bddffcfeffffffe5ac6d3d270f22486bb1d2e0c2874b361f60b1b3dbfffffcff +fffeb95252320064aaaadbfffffafffffdfcc274593a1a4e615b777c7883909c +cbdde4fafffffff8bd645f3a799a9ae9fffbfffffdffffff956b6b23588894d3 +f7fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8e0bef5772eed76c6f5f5eaf5e0e1f5d7c5f26339 +ee9fe5f8c985ee3596f6ccccf13232f1fffffae8d0f6832aec6fbff24128eda1 +edf9f6f3f8cebcf3c8c8f1161feca0dbf4dce0f7fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff9fffbf10d0deb8bc1f4f5fcf7 +fffff8fffff8fffff8fffff9a016eb0e67f2e6f1f8fffff8fffff8fffff9a429 +ec1322f0dee2f9fffff75224ec228af4ddf1f8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcffffeeb3 +98907e727180837b6d697cb1bacaf6ffefb79e947e707080837b6e6a7cacb5c6 +f5fff0bba3997e6f6f7f837c6f6c7ca7afc2f5fffbfffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaf9e3cdac +7034253b42aaeafffffce4c1b870243a3db0f6fefffffdfffffbd1c8b9212036 +34afeccccc811e2f32abf5fefffffdfffffcdad3c3231826299fe9fffbedd9c1 +7411161165846200000007141c50a5e1fffffffffffbf5e4e4920c151974d2ff +fffffffef6ebe0880b12139ff4fffffffcfffffef4f1e028070c0b9df8f6f6b8 +04060878c2fffffffffbfbf01003038ffbfffffffafffffbffffffa305030363 +c9f9fbfefffff8fffff8fffff8fffff8ffffffeb9e510f0a0584d4eef7fdfeff +fff8fffffbffffffb7745141452d0607055190c5ecf4fbfffff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffffeeda966291b0d74bad1eafafeffff +f9fffffbf8f2e5f0f5f1fcfdf8fffffefffcc33b3a295a93c3def0fffffff74b +403e6ebbbde2fefbfffffeffeba9473f26546e52222c21000000276a9bc2dff5 +fffffafffffbf9f4e8f1f4eefafcf8fffff8fffffdf8cea3877f7c7d8e90a397 +7f3f352a00002c919eb9f7ffef91645a1e002a657e97bfcbc4ab916c3e2d161f +5788a8d3f7fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee00 +00ed2639efbee5f8c985ee3596f6ccccf13232f1fffffae5d0f6782eeca0e1f7 +bd4dec1a48f09c8bf19090f19288ef1115ed7a92f28d89ef6b7ef3fffff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff7ba7ded0a06 +ed0000ee0000ed4978f1f2f5f8fffff99b16eb0e7bf3e6f3f9fffff8fffff8ff +fff9ffdff1201cebb4defaf8def0241fecc2daf8fbfff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffc +fffff0ae928b766968787a71626579b2bacbfbfff0b29790766767787a716366 +78acb5c7fafff1b69d95766566777a72656878a7b0c3fafffbfffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffdf0d9c2 +93561a223843a2defffffffffffff5c1c1a2223c3da7fcfefffffcfffffdcfc8 +bf2326365fc3f9ccccb41b3132a2fcfefffffcfffffdd8d3ca221e2b57c1f9d7 +d7b612202789d8fffffffffcf5eccca0650b18206dc7fffffff7e4e4a7131a1a +befffefffffafffffbebebc50b131395fbfffffffbfffffef3f1e7200a0c4bca +f5f69f0f0305045b8f896e5a6d6e5d280001012c3f474171b1ffffffffffbb03 +0403b4fafafdfffafffff8fffff8fffffcffffffcc7c2e0b070279c5eff6fcff +fffff9fffff8fffff8fffff8fffff8fffffeffeca81c1a1286d7e1f2fefbffff +f8fffff8fffff8fffff8fffff8fffffbfffffed28c472214066aadd2e8f7ffff +fff9fffff8fffff8fffff8fffff8fffff8fffffdf6a73c382101466f69696775 +6f5d3a1c180a212f353c69a2ccdbd846463d5498b8d8f2fffffffff0cd9d4637 +233e85b1cbebfffffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffffcffffda60604a42879ec5f1fffffdebc9b399664c41314459808872 +4f472d578793d3f6fdfffffafffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8e1bef5742bed5fbbf5f2e6f5 +dce0f5d1c5f26339ee9fe5f8c985ee3596f6ccccf13232f1fffffae5d0f6752e +ec92f5f9d4a7ed171bee869bf1757cf1a095ef1217ed7b9cf26d67ef85a0f3ff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8f4f4f6efc9f0110eeb82e0f8f6fef99b16eb0e7bf3e6f3f9fffff8 +fffff8fffff8fffff67120ec1484f19435ed185cf2dae8f8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffcdcc7 +b05e290f36456dd7fffefffffafffffafffffcc8c1b924293c65c1fcffffffff +fff2c8c89a203436adf7fdd2ccc62322315cbdfcfffffffffff5d3d3a21a2b2b +abffeed7d780192626affbfefffffbfffffee3dedb22121c299ae8fcf0e2cb69 +0f1a1a95fffffefffff9fffffeedebe0200d1344b4fbfffffffffffcf1f1ba08 +0c0ca1fdfcfcd9b4a3b1b0b1afaab0b3bcd8d1a30102024f9bb1c5c8dbffffff +e47702030287fafafdfffff8fffff8fffffffffff487420b070334bef1f4fcff +fbfffff8fffff8fffff8fffff8fffff8fffff8fffffeffffe01c1c1973cfe1f0 +fcfcfffff9fffff8fffff8fffff8fffffefffff6955927150a2ea7d4ddf5fffc +fffff9fffff8fffff8fffffafcf6f0f5faf3fdfef8fffffef4d8c3b5b7b0aeaf +abafb1b8d0ccab37352a3b7384a8c6e4f0f4b446462b75b5b8e5fefbfffffeff +fffc674d4c14629fb3dbf7fffffcfcf8f1f6f9f2fbfef7fffff8fffff8fffff8 +fffff8fffff8fffffcffffea60605342829ec5eefefffffafffff8fffff8ffff +fcffdf9c6b5426839394f3fffbfffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000 +ee0000ee0000ee0000ed2639efbee3f7c97ded358ff6ccccf13232f1fffffae8 +d0f67f28ec79c6f5b360ed2a9df5d7d7f02727efe0d9f64322edbacdf02121f0 +fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff9 +ffe1ef0d18f0d1e0f5f6fef7fedaf0120feba9ecf8f9fff9a016eb0e7bf3e6f3 +f9fffff8fffff8fffff8fffffaffc0f02118ed0000eba5dbf8f6fff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffed0 +b6b340000020363e93c8dbddccc3bebeb8babdbcd3e2f3f2d7c199440e2e3a68 +d3fcf9e7d4bf732f13363679fffffff4decca2480c252f60d0fcf9ecdcc97a32 +0f2b2b72fffff8dcd7b51b0c172569a7fdfffefcf5ebc89a67101c2090e8fee5 +e2de1f171b65d6fffffffdfffff8fffffafbf2ebba52050e1149cafbfaf9f4e7 +8b39050c0c5efffffffffff8fffff8fffff8fffffffbfbf012030384fbffffff +fffffff41b020253cffcfcfefefffff8fffffffffffb600a0a0400006ebbd7e0 +cfc7c2c3bdb8b5acc3d9f4fafcdf3615228bb5c2e0e7e3e9e8ce7f28160d021d +c2e1e5fbfffafffff8fffff8fffff8fffffefffffb7327270e000061a4bed3ce +cac7c4beb9b7aec2d2e2f4f8fcffffffb54434220575c9c9e8fffffafffff8ff +fff8fffff8fffffdfffff74d403e67bbbddffeffffffe15d463b093a6eb5cde1 +fefffdedc89e4535245a9eb1d8f6ffffffffc06052350764aaaadbfffffdffff +feb56f60747582b2cad6ebecdaa2644f2b06138c9ea9f4fffff8e2cfcbcac7d5 +e2ded3b68350391b346a8eb8e0fafffffbfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8dfbef579 +36ed84e1f7fdfef8fafaf8e2c5f57b34ed89eef8fafbf6ebfff8ccccf03232f1 +fffffaf0daf68f2cec0000ee1924ee88b5f13f18ed31a8f5d9d9f52424eeeedc +f67100eb1d20efecfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff9fffff3410dec0300ee0000ee0000ec6397f3f4f8f9fffff99916eb1b +85f5e7f4f8fffff8fffff8fffff8fffff9fffff56221ec0a4df0dbe7f8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffa +fffff9cbb6a935000000000000000000000000000008293c57b9f1ffffffe4d0 +c36c2a0000000000000c2b3762d4fffefffffcffffffe9d8ce732d0000000000 +000a232c59d2fffefffffcfffdf4e1ce9f32000000000000000011191f90c8f5 +fff9eae2b24b1b1b43fbfffefffff8fffff8fffff9fffffff6f0ec8333000000 +000000030b0e42cbfffffffffbfffff8fffff8fffff8fffffffbfbe812020384 +f3ffffffffffc94f02022cf8fcfcfffff8fffff8ffffffffffed510a0a030000 +0000000000000000000000001e97e2edf8fe96471f0d05010000000000000000 +33a3d8e9f7fefdfffff9fffff8fffff8fffff8fffffeffffef6627240c000000 +00000000000000000000001a84c0d4edfbffffffbe4c34243186c9d4edfffffa +fffff8fffff8fffff8fffffdfffff14d403c67b5bddffcfdfffffefff6ce7144 +341100000000000000005a86abd8ecfcfffffcfffffec86652392e72aabce2ff +fffcfffffddca56f472a0c000000000000000023789db4e7fdfdfffffef8ba67 +613802000000000019537697cfe8f4fffffbfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +dcbef5733aed8eeef9fffff8fefcf8ccbcf13f36ed94f5f9fffff8f2e3f39a61 +ed3232f1fffffae8d0f67c28ec82e4f9f1daf79221ec2832f2fff9f9dabbf021 +24eeedfffadedef20f1cec86dff7fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8f7f2f6ebe9f6f1fcf8fefff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9fbf9f6e9e3dde3e5e4f6fffcfffff8fffff8fffff8fffff9fbfaf7 +eae3dde3e4e3f5fffcfffff8fffff8fffff8fffff9fcfbf3eae3d9e2e2e2f5ff +fdfffffdf2e1e17d0f1a1b8fe8fffffefffff8fffff8fffff8fffff8fffff8fe +fdfbebe4dde0e0dff4fffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffffdffffff8d01010181e3fcfdfffffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffdf2f3ecdfe4 +e9eafbfdf9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff9fffff8f1ece1e3e0dcedf5f4fbfff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fffef4f7f2e5e8e6e1f4f4f3fffff9fffff8ffff +f9fffdf3f7f6edececeaf5f6f4fefff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8debef57b39ed94eaf9fffff8ecd0f68629eb2d39efd5fff8fffcf7ca +c1f00715ed4e85f3fffff9e6d0f6732cec79f5f9fffbf7f9eaf6e4f9f9e3d8f4 +3f05ec2440f1fffff9fffdf8fff5f8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffffa0b0bec0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ebd7d7f8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9fffff6e1e19f171d1dcdfffefffff9fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8ffffffffffb4010101c5fdfdfefff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9bdbdf60000ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee1f1fedfffffafffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffefffffdffecfbc291ef +3c5ef6f8f5fee7dcfbfefffffffffffffdfee5dcf79590f6f1fffff8f2fdd2bb +f6b7bbf8c0c0f7b2bffafffffff2e6fc934cec2428f1fdffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffdfaf6f1e6dddad7dce4eaf9ff +fffffffffffffffffffffffffff9f6f6e2d9dad9dce2f2fdffffffffffffffff +fffffffffffaf7f7e3d9dad8dae1f1fdfffffffffffffffffffffffffefaf9f5 +dfdad4d3d8daebf7fffffffffffffffffffffffffffffffff7f0efba8c84abdd +fdfffffffffffffffffffefefef9f4f9ffffffffffffffffffffffffffffffff +fffffffefff9f3f9ffffffffffffffffffffffffffffffffffffffffffbd8275 +a1d8fcfefeffffffffffffffe8dcdbd3d2d9edfafdfeffffffffffffffffffff +fffffffae7dbdbdadee4f7fcfdffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffaf5fafefdfeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffede4e4d8d4d9e6f1f5fafeffffffffffffffff +fffffffffbede4e3dddde1f0f5f7fdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffcf9eee8e6d8dbdde6ecf1fbfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffed9bef85026ed3ea2 +f8c291ef3c3cf6c5c5f51129ec71c8fcf7fdfde3f5fcccc6f03232f1ffffffec +d0fb7d03eb0000ee0000ed1f2aedc7fafdd8c0f00000ed111ced88d0fdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff1d8c1935a2600000000000000 +0011334272cbf0ffffffffffffffe1cbbd692900000000000009303c57d5ffff +ffffffffffffe6d4c86f2c0000000000000727314ed3fffffffffffffff7e0d3 +ae400000000000000000121c238ac1edfffffffffffffffffffffff9e1e1b90f +1a1d8ee6fffffffffffffffffef5e9de86131515ebffffffffffffffffffffff +fffffffffefaf4e98c090909ebffffffffffffffffffffffffffffffffffffff +d201010180e1fdfdffffffffff903c06040200000000000022c0f3f5fcffffff +ffffffffdd66110f070000000000000046bfe8effbffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5a2262416c6d8d8fcffffffffffffff +ed472d290600000000000000000000000000002a80c0d4ebfcffffffffffffff +ffffffffffffffffffffffffffffaa6a42250e0000000000001a91b8c2f0ffff +ffffffffffe68c4d421c00000000000000348eadc5f0ffffffffffffffffffff +fffffffffffffffffffffffffffccc8d5e421c00000000000000000000000054 +8c98d0f6ffeabc965c3b200000000000000000004f708ecce7ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeeafabc +83ec1d18ed595bef2d56f29567ec3939f2ffe0fac96aeb3574f9ccccf23232f2 +ffffffe5d0fa772eeaa1e6fbd26aeb2a61f8d7d7f60c1eec6bcefddbd6f00e18 +ec7db8fbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffdab5b175393a7ab1cd +e6eae8ceab96520c1d464691fffffff3d7bc9c4d0b2e3c60c7f1fce2cbb9681f +193b3b8bfffffff5dec7a55209263257c4f0fde7d4c36e2114303084ffffffe9 +d2d26b0a192a5ba2fdfffff8eee4b47a441d2525d0fffffffffffffffffef2e0 +d6860d1d1d81fffffffffff8eee6ae450b15000005131445f4ffffffffffffff +fffffffbf6f0b5490c1600000209093cf3ffffffffffffffffffffffffffffff +fffef39800010171fdfdfeffffffd36b05050329b0e5f9fcfef48d320a060263 +f2f2f7fffff455100f053b80dbecf6fbfadd7d23120a0151e7e7efffffffffff +fffffffffffffffffffffffffffffdc7652d2e0b020300002dced8e0fdffffff +fffffffff5bdafaaaeaeaeb0b1b0afb3c3dbc6942f291c2a80c7d4ebfeffffff +ffffffffffffffffffffffffffffffdd8e40361b1f86aec7ebfaf7a86343260c +4bb7b7d4fffff67f4b48162c60a4c1dbf7fae59d594525053cababc9ffffffff +fffffffffffffffffffffffffffffffffffcc4705f3d417e8e9fbdc4bab2b1b0 +aca4a6bfcfd8ebfaffba756a5f55699ac0d7e7ebe9b78b633d1d12868d9bf9ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff8fcd5c6f46e74f38d5bed2e26f19c91f0487bf7fce1fac076ed3598fccccc +f13232f2ffffffe5d0fb7b2eeb94d2f8610bec0b38f03810ed277ff7fffffffe +f5fdd99eee0006ec1843f1c7e6feffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffffffff2cdf55c38ec0503ed0021ed5871f4f3f5fef2a7ef +153af1e7ecfefffffffffffffffff9481dec91d5fcf3fdfff3d2f56845ed0c07 +ed001eed516af3e5eafdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff2d3b79749404648f0fffec3bcb926324274d0ffffffffff +fff4c3c3a0233b3baffdffcdc7c62429376ccdfffffffffffff6cecea91d3030 +abfefdd5d2ca1218282ba0edfffffffffff9d9d9ba1522259dedffffffffffff +ffe8e0e040161e47bffffffffffffefcf9f5dec8ccd9dbbb6614152af4ffffff +fffffffffffffffdfcf7ddc6ccdee5c469090920f3ffffffffffffffffffffff +fffffffefefe42000030b7fefdfefffffffb1f050544bbf9fafdffffffffffff +d40c0c0a93f2f2f9ffa110100ab3eeeefaffffffffffffffd617171380d4e7f4 +fdfffffffffffffffffffffffffffffffffffae2ccd2e3e9cd7e241f24ced8db +fdffffffffffffffffffffffffffffffffffffffffffc56d342515adcacbf7ff +ffffffffc38653425891cbd7edfffffffffffc54403f3a8fbdceeeffffffffff +ffde47473b6fb7b7e2ffb84b4b2e86b2b2ecffffffffffffffe05252445f9dac +d9f8ffffffffcc996d545a7fb0c3e4fffffffffffffcba5f5f37639e9edaffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff3b271673482 +8d8df5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffe5bffa7202eb0000ee0000ee0000ee0000ed2439efb5e5fac987ed35 +96fcccccf13232f2ffffffecd6fb812deb1850ef0000ed1017ee5174f00807ed +3536ee4657f05742ed0000ed1720edc0ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffff40d0dea77b6f9f2eefbd7d2f5330fecc9ec +fdfbfef51616e975cefcf3fcffffffffe68feb1a0fede0e0fdfffff52121ea6d +a6f8e8eafbdad5f64220edb8d7fcf8ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff0d4b6914b1d464691fffff5bcbca1274142b1fcff +fffffffffffecac3c0242a3b63c5f9c7c7b4213637adfcfffffffffffffed3ce +ca2321305bbdfdf8ebdbb5752e08111a4d7eaadde4d7984915252b9dffffffff +fffffffaede0c0631c1e1eecfffffffffffffffffffffffffff5e9e986141515 +f4fffffffffffffffffffffffffffffffffaf4f48c090909f3ffffffffffffff +fffffffffffffefeda71000000e9fefeffffffffffdb05050493f5f9fcffffff +fffffffffb280c0c38b1f2f4fba810100abbeeeefbffffffffffffffff591717 +0c8adce6f5feffffffffffffffffffffffffffffffffffffffffffffffa22626 +16ced8d8fdffffffffffffffffffffffffffffffffffffffdb32322a3b8bc8d9 +eefeffffffffffffaf3939230075c3c3e7ffffffffffe440403770bbbde4feff +fffffffffffc5d47463186b7c6ebbe4b4b308db2b2eeffffffffffffffff8452 +521c66a3acddfbffffffbb5858350063a5a5dafffffffffffffcc4795f3d1b4b +5d5c787d7d838f9fc9dbe4faffffffffffffffffffffffe7d0cbbfac954c4a3c +335b7fb6d5f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe0bef9772eec76c6fbf5eafbe0e1fbd7c5f66339ec9fe5fa +c985ed3596fcccccf13232f2ffffffe8d0fb832aeb6fbff44128eca1edfff6f3 +fecebcf7c8c8f3161feca0dbfadce0fdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdfffffffffffffffbf30d0de98bc1f9f5fcffffffffff +ffffffffffffffffb53deb1004f0e6e6fefffff9241cea359af9e7f5fffffbf4 +2121ea7fb0f8ecf8fefeffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff2b398947e72 +7480837e6d697fb1baccf6fff3b79e997e707380837e6e6a7facb5c8f5fff3bb +a39e7e6f727f837f6f6c7fa7afc4f5ffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff9e1caa76d35284048acebfffffce3bcb370273f +42b2f6fffffffffffffcccc3b920243b3ab1ebc7c781213437aef5ffffffffff +fffdd6cec4221b2c2fa2eefffaebd3bc75141a1462806200000008172254a7e7 +fffffffffffff3dede8e0e1a1e77d7fffffffffffffffffffffffffffff5e9e6 +86141515f4fffffffffffffffffffffffffffffffffaf4f08c090909f3ffffff +fffffffffffffffffefdfda103010065d2fefffffffffffff39905050394edf9 +fcfffffffffffffff3340c0b028bebf0f9f855100f0500429ec5cacbc6c39873 +410d0a05308adcebf5feffffffffffffffffffffffffffffffffffffffffffff +fba2262516ced8d8fdffffffffffffffffffffffffffffffffffbd6d31230f5e +cbcbe3fffffffffffffffffff8f3ecf1f4f8fbfdfffffffffff6b1403d2671b5 +bde4fcfffffffffffff66547440c69b2b5dff87f4b491600327693a9c3cac8a6 +88622f23112466a3bcddfbfffffff9f5eff1f4f5f9fcfefffffffffffff9d0a9 +8b817f7b8c93a3988442382e00002d8c98b6f6ffffffffffffffffd2a6926a51 +36171c13335b7fb6d5f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639 +efbee5fac985ed3596fcccccf13232f2ffffffe5d0fa782eeaa0e1fbbd4dea1a +48f19c8bf29090f39288f01115ed7a92f38d89f16b7ef7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdfffffffffffffffffeba7dee0a06ed0000ee +0000ec4978f4f2f5feffffffffecf21816eaa6e6fdf7bfee1c14ecd7e2fdfeff +fffffffec088ef1910ed0000ee0000ec436df4e3ebfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3ae +928f76696b787a7562657cb2baccfbfff4b2979476676a787a7563667cacb5c8 +fafff4b69d98766569777a7665687ba7b0c4faffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffefd6be8e531a253c49a4dffffffffffffff5bc +bca1254142aafcfffffffffffffecac3c0242a3b63c5f9c7c7b41f3637a5fcff +fffffffffffed3ceca2322305cc2f9d2d2b714242c8cd9fffffffffcf4eac79c +660d1c2570c9fffffff7dedea7172020bfffffffffffffffffffffffffffffff +fff5e9e686141515f4fffffffffffffffffffffffffffffffffaf4f08c090909 +f3fffffffffffffffffffffefdfdbe010101b7ffffffffffffffffffffdb0505 +048af5f9fcfffffffffffffffb280c0c35a5eef4fafffffbe6ab8b77432d2a2b +557ab1a370110f0a8ad4e7f5fdffffffffffffffffffffffffffffffffffffff +fffffffffba2262516ced8d8fdffffffffffffffffffffffffffffffe298312a +197abccdeafbffffffffffffffffffffffffffffffffffffffffffffffffe440 +403769bbbde1fefffffffffffffc5d47462f7db4c5e7fefffcecc0a7925b423c +2f49648e90743d3724669dabddf8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffde6666503f8398c2f0ffffffffffffffff +fffffffffffff3cb71674854878dd0f9ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe1bef9742bec5fbbfaf2e6fadce0fad1 +c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe5d0fa752eea92f5fc +d4a7ed171bed869bf3757cf2a095f01217ed7b9cf36d67f185a0f7ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +fef4f4fcefc9f1110eea82e0fdf6fefffffffe9818ec0e33ef2e06eb187ef8e4 +f2fefffffffffffffffffffffffef5f5fcefcdf2241eea77cdfcecfdffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffed9c3af5b28113b4a72d8ffffffffffffffff +fffffec4bcb9242d4269c2fffffffffffff2c3c39923393baff7ffcdc7c62326 +3760bffffffffffffff4cecea21d3030adffedd2d2801c2b2cb1fcffffffffff +ffffded9d92215222e9dedfbedddc6671220209bffffffffffffffffffffffff +fffffffffff5e9e686141515f4fffffffffffffffffffffffffffffffffaf4f0 +8c090909f3fffffffffffffffffffdfbe1750201018dffffffffffffffffffff +fffb22050536aaf9f9fdffffffffffffcb0c0c0990e7f2f9feffffffffffffff +ffffffffffffffcd6617120ccee7e7fcffffffffffffffffffffffffffffffff +fffffffffffffffffba2262516ced8d8fdffffffffffffffffffffffffffff78 +3030113c94cddbf1fffffffffffffffffffffffffcf6f6f6f9f9fcfefeffffff +fffffc57403f3081bdcaeaffffffffffffd84747386daeb7e1fbffffffffffff +ffffffffffffffffda8d52411f99acadf6fffffffffffcf8f8f6f9f9fbfefeff +ffffffffffffffffffffffffffffffffffffffee66665a3f7d98c2edffffffff +ffffffffffffffffffffffef71716448828dc6f5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffeacbfa8328eb0000ee0000ee +0000ee0000ed2639efbee3fac97dec358ffcccccf13232f2ffffffe8d0fb7f28 +eb79c6fab360ec2a9dfbd7d7f12727f1e0d9fb4322eebacdf12121effbffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffe1f10d +18efd1e0fcf6fefefedaf3120fe9a9ecfdf9ffffffffffffdef01916ec0000eb +c3e3fdfbffffffffffffe4f22129efbfcefbf4fcfefeddf42721ea9ad7fbf3ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccb1b13e0000223a4595c8e0dcccc8bdbe +bdbbbec3d4e3f9f1d3bc95421032406fd4fcfee5d0bf702e153b3b7ffffffff3 +dac79e460e2a3567d2fcfee9d8ca773011303078fffff8d7d2b41b0e1b2a6dac +fdfffffbf3eac3966913212593e8ffe0dddd211b2169d7ffffffffffffffffff +fffffefcfaf4e3d3d9e6e7b969101414c3f1fcddd4defdfffffffffdfcf6e2d1 +daebf2c26e070909c2f3fedcd2ddfdfffffcfbf71a020355d2ffffffffffffff +ffffffffffffca5c0505023dc0f4f9fdfffc97440a070355f2f2f6fffffff5d2 +bab5c8dae9f2e9c4924e100c0651a7e5eff8ffffffffffffffffffffffffffff +fffffffffffff8e5d6dfeff6cc85261e11a3ced8d7d7e2f7f7f9ffffffffffff +eeab3f2c1d04aacecef6ffffffffffffffffffffffffffffb74a39250575c3c3 +e7ffffffffffffd7834034172e92b9ccf0fefdb07145291140b7b7d0fffffff7 +ddcbc4c9d1dbe7e6ceab763d2c153c7caac9e7feffffffffffffc26558390763 +a5a5daffffffffffffb87466757382b0c9dbeaece0a569562d07138798a5f3ff +ed7f6a67667485c5dbe3e9e9dda66f5c330813798d9cefffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdfbef97936ec84e1 +fffdfefefafafee2c5f97b34ec89eefefafbfcebfffcccccf13232f2fffffff0 +dafb8f2ceb0000ee1924ee88b5f33f18ed31a8fbd9d9fa2424eeeedcfc7100eb +1d20f0ecffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +fffff7410dec0300ee0000ee0000eb6397f7f4f8fefffffffffffffffffa3619 +eb035df4e3effefffffffffffffffff85121ed0800ee0000ee0000eb5a89f6e7 +f0feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffbc7b1a834000000000000000000 +0000000000092d435cbbf6ffffffe1cbbd69290000000000000e303c67d5ffff +ffffffffffffe6d4c86f2c0000000000000b27315fd3fffffffffffffdf4ddc9 +9f300000000000000000131d2693c9fbfff7e7ddae4c202149fbffffffffffff +fffffffffffffef5e6dc89000000000000000000000004111243f4fffffffef9 +f1e69000000000000000000000000206073afbfefbfbc851030330fbffffffff +ffffffffffffffffffffffffff903c06040200000000000036c0f3f6fcffffff +fffff49413100a0000000000002881b8dbf5fafdffffffffffffffffffffffff +fffffffffffffffffffff4a623221500000000000000000000002dcbd5defdff +ffffffda2e2e263384c6daedfdffffffffffffffffffffffffffffffc0513928 +3186c3d0ecffffffffffffffffffaa6a42250e0000000000002991b8c8f0ffff +fffffff6af4d492a0100000000001e6089aedaeef9ffffffffffffffffffca6b +583d2e71a5b8e2ffffffffffffdda8744c2c0d0000000000000000237497b0e6 +fdffffffffbc89703b17050000000000000000216688a8dffaffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffdcbef973 +3aec8eeefffffffffefcfdccbcf33f36ed94f5fffffffef2e3f99a61ed3232f3 +ffffffe8d0fa7c28ea82e4fff1dafb9221ea2832f3fff9fddabbf12124ecedff +fededef50f1ceb86dffeffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffffffffffff7f2fcebe9fcf1fcfffeffffffffffffffffffffffff +d6f01915eaa4e5fdf7fffffffffffffffffffffffffffff8f3fceceafcf0faff +fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffaf8f8e9e3e3e4e6eaf6ff +fffffffffffffffffffffffffffbf9f9e9e3e3e3e5e9f5ffffffffffffffffff +fffffffffffcfaf9eae3dfe2e3e8f5ffffffffffefdbdb7a12202192edffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfafa8b02040383eaff +ffffffffffffffffffffffffffffffffffffffffede5e4dfdee3f2fefefeffff +fffffffffffffffcf7f2f3f2eae9f0fbfdfeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff1ebeae2e0e3eef6f7fcff +fffffffffffffffffdf9f5f5f3ebebf1f7f8fafeffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffefbf7f2ece8e6e8f3f4f7 +fffffffffffffffffffffffffffefbf8f2ece9e9ecf2f5f9ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +debef97b39ec94eaffffffffecd0fa8629ea2d39efd5fffffffcfccac1f00715 +ec4e85f7ffffffe6d0fa732cea79f5fffffbfef9eafbe4f9fee3d8f83f05eb24 +40f1fffffffffdfffff5fdffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffff0b0bea0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ead5d5fbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff5dbdb9f1b2222ceff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffdfafab5030404 +c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffbdbdf90000ea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ed1f1fecffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffc8d68efa7d8fdf6fcffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff7fffff7ffecf7c291ee3c5ef3f8 +f5f9e7dcf6fefff8fffff8fffdf8e5dcf39590f3f1fff9f8f2f8d2bbf3b7bbf4 +c0c0f2b2bff5fffff9f2e6f6934cec2428f0fdfffafffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff9fffdf6f6f1e0dddad2dce4e5f9fffcfffff8 +fffff8fffff8fffff9f9f6efe2d9d3d9dcddf2fdfdfffff8fffff8fffff8ffff +f9faf7f1e3d9d3d8dadbf1fdfefffff8fffff8fffff8fffff9faf9eedfdaced3 +d8d4ebf7fafffff9fffff8fffff8fffff8fffffbf7f0eeba8c80abddf7fffffc +fffff8fffff8fefef8f9f4f3fffff9fffff8fffff8fffff8fffff8fffff8fffe +f9f9f3f2fffff9fffff8fffff8fffff8fffff8fffffaffffffbd8271a1d8f5fe +fefcfffff9fffff9e8dcd4d3d2d2edfafdfefff8fffff8fffff8fffffafffff3 +e7dbd4dadedff7fcfbfffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9faf5f3fefdf8fffff8fffff8fffff8fffff8fffff8ff +fff9faf5f3fefdf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fbf6f4fdfcf7fffff8fffff8fffff8fffffbfffb +edebe4d6d7dad7ebf3f3fcfffafffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffafffcf2ece7ded8dbd8e8eef0fbfdfafffff8fffff8fffff8 +fffff8fffff9fcf8f5fcfaf6fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff7d9bef35026ee3ea2f3c291ee +3c3cf2c5c5f21129ed71c8f6f7fdf8e3f5f8ccc6ef3232f1fffffaecd0f67d03 +ec0000ee0000ed1f2aeec7fafad8c0f00000ed111ced88d0f6fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8b8 +79ee82b9f6f7fbf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fffffcf1d8c1935a260000000000000000113342 +71cbf0fdfffffeffffffe1cbbd692900000000000008303c56d5fffefffffcff +ffffe6d4c86f2c0000000000000727314dd3fffefffffcfffff6e0d3aa400000 +000000000000121c228ac1e9fffffefffff8fffff9fffff9e1e1b50f1a1d8ee6 +fffffffcfffff9fffef5e9de83131515ebfffefffff8fffff8fffff8fffff8ff +fefaf4e989090909ebfffffffff8fffff8fffff8fffff8ffffffffffcd010101 +80e1fdfdffffffffff903c06040200000000000021c0f3f5fcfffbffffffffff +d866110e070000000000000043bfe8effbfffafffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffefff59f262415c6d8d8fcfff9fffff8fffff8fffff8 +fffffefff5a4312f1cbccdcdfbfff9fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffffdfff6ac444126aab9b9f9fffafffff9fffffddf +a6713f27100000000000000000287c9fbee7f8fefffffafffff8fffff8fffff8 +fffff8fffff9fffffde8b78c52351c000000000000000000557997d1e9fdffff +fbfffff8fffffcfff8bf6e693e849090f6fffbfffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9feeaf7bc83ed1d18 +ed595bee2d56f09567ed3939f1ffe0f8c96aed3574f5ccccf13232f1fffffae5 +d0f6772eeca1e6f8d26aeb2a61f2d7d7f30c1eed6bcef6dbd6ef0e18ec7db8f5 +fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff99c0deb0885f5f0f8f8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffffddab5b17539387ab1c7e6eae2ce +ab92520c1c46468ffffffff3d7bc9c4d0b2e3c5dc7f1f6e2cbb4681f183b3b89 +fffffff5dec7a55209263254c4f0f7e7d4bf6e2114303082ffffffe9d2d26b0a +182a5b9ffdfffff8eee2b47a421d2525d0fffefffff9fffff9fef2e0d6860d1d +1d7ffffffffffff8eee6a9450b15000004131444f4fffefffff8fffff8fffffb +f6f0b0490c1600000209093bf3fffffffff8fffff8fffff8fffff8fffffef398 +0001016ffdfdfeffffffd36b05050327b0e5f3fcfeee8d320a060260f2f2f7ff +ffed55100f053b7ddbecf2fbfad77d23120a014ee7e7effffff9fffff8fffff8 +fffff8fffff8fffffefffdc2652d2d0b020300002cced8e0fdfff9fffff8ffff +fefffdc56c38340e020400002ac3cdd7fdfff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffdfffdcb7a4a41140306000026b1b9c7fcfffafffffb +fffffeaa564b607081b4d2dbedead69b5541250645ababcdfffffafffff8ffff +f8fffff8fffff8fffffafffffdb56b5f5c5a6da0c5d3e8ebe2b38357371a1391 +98a5fafffffffed697715b20050a00001e8990a6fafffbfffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fff8f7d5 +c6f26e74f18d5bed2e26ef9c91ee487bf4fce1f8c076ee3598f6ccccf13232f1 +fffffae5d0f67b2eec94d2f3610bed0b38ef3810ed277ff4fffff9fef5f8d99e +ee0006ed1843f0c7e6f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8cb86ed0a06ed0000ed5f5bee1b27f0eeeff9bf64ed5385f2ab79ee11 +0bed0028efb9e5f6ebcaf14416ed0600ed355df1e5ecf8fffff8fffff8bc78ee +5a81f1a37aef1d14ed000eed90bbf5f0f9f8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffafff2d2b79747404647f0fffcc3bcb426324274d0fffffffffffff3c3c3 +9c233b3baffdfdcdc7c02429376ccdfffffffffffff5cecea51d3030abfefcd5 +d2c51218282ba0e9fffffffffff9d9d9b61522259dedfefffffcfffffee8e0dc +40161e47bffbfffffffffefbf9f5d7c8ccd3dbbb62141529f4fffefffff8ffff +f8fffffdfcf7d6c6ccd8e5c46609091ff3fffffffff8fffff8fffff8fffffffe +fefa42000030b7fafdfefffffff41f050544bbf9fafdffffffffffffcf0c0c0a +93f2f2f9ff9d10100ab3eeeefafff9ffffffffffd117171280d4e7f4fdfcffff +f8fffff8fffff8fffff8fffffefffadbccd2dde9cd7a241f22ced8dbfdfff9ff +fff8fffffefffaddcfd4dce7cd7f2e2826c3cdd1fdfff9fffff8fffffafffffe +c3865142588ccbd7ecfffffafffffdfffae0d3d8dce4cd8840372cb1b9bffcff +fafffff8fffff8fffff8fffff8fffff8fffffdffe0945244209dacacf8fffcff +fffecc996c545a7bb0c3e2fffffbfffff8fffff8fffff8fffff8fffffcfff2ab +665d2e8c9898f6fffffffbe7dddfdbddcd9b67583a899099fafffbfffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +e5bff57202ec0000ee0000ee0000ee0000ed2439efb5e5f8c987ee3596f6cccc +f13232f1fffffaecd6f6812dec1850ef0000ed1017ed5174ef0807ed3536ed46 +57ef5742ed0000ee1720edc0fff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff9fef1f3670cec054af1ded3f4b4aef3f9f9f9ae44ec0e04ec +5c96f3f0f6f48127ed0c02ed0000efb1d6f4edcdf11e19ec409ff5e6f5f9ffff +f9b053ed1908ed648cf1d2e3f4a971ed1b0febacd1f7f7fff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbf0d4b6914b1c46468ffffff4bcbc9d274142b1fcfefffffcff +fffccac3ba242a3b63c5f8c7c7af213637adfcfefffffcfffffdd3cec523212e +5bbdf7f8ebdbb5752d0811194d7ea6dde4d7984915252b9afffffefffff9fffa +ece0c0611c1e1eecfffefffff8fffff8fffff9fffff5e9e983141515f4fffeff +fff8fffff8fffff8fffff8fffffaf4f489090909f3fffffffff8fffff8fffff8 +fffffefeda6f000000e9fefeffffffffffd605050493f5f9fcfffbffffffffff +f4280c0b38b1f2f4fba410100abbeeeefbfff9ffffffffffff5917170c8ad6e6 +f5fdfffff9fffff8fffff8fffff8fffff8fffff8fffffeffff9f262615ced8d8 +fdfff9fffff8fffff8fffff8fffffeffffa431311cc3cdcdfdfff9fffff8ffff +fafffffeaf3939230072c3c3e6fffffafffff8fffff8fffffdffffac444426b1 +b9b9fcfffafffff8fffff8fffff8fffff8fffff9fffffdda9851412245acabcd +fffffcfffffebb5858350060a5a5d9fffffafffff8fffff9fffffde5cdc4bdac +90444335376285bdd9f1fffffbfffff8fffffcffffbf6e6e3e899090fafffbff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8e0bef5772eed76c6f5f5eaf5e0e1f5d7c5f26339ee9fe5f8c985ee35 +96f6ccccf13232f1fffffae8d0f6832aec6fbff24128eda1edf9f6f3f8cebcf3 +c8c8f1161feca0dbf4dce0f7fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff9a30deb098af5f0f8f8fffff8fffff99f14 +eb0d7df3e9f5f9fffff9ffecf01b18ecd1e3f8fdfff8fffff9a420ec1476f3dc +eff8fffff9a626ec1773f2d7ecf8fffff9fffff5432cec3e96f4ddf2f8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffcffffeeb398907e727180837b +6d697cb1bacaf6ffefb79e947e707080837b6e6a7cacb5c6f5fff0bba3997e6f +6f7f837c6f6c7ca7afc2f5fffbfffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffaf9e1c9a76d33284048acebfffffce2bcb36d273f42b2f6fe +fffffdfffffaccc3b420243b3ab1eac7c77e213437aef5fefffffdfffffbd6ce +be221b2b2fa2eafffaead3bc71141a1362806000000008172154a7e2fffffeff +fffcf3dede8e0e191e77d3fffffefffff8fffff8fffff9fffff5e9e683141515 +f4fffefffff8fffff8fffff8fffff8fffffaf4f089090909f3fffffffff8ffff +f8fffffbfefdfda103010065cdfefffffffffffff39505050394edf9fcfffcff +ffffffffed340c0b028be6f0f9f255100f0500409ec5c4cbc6be98733f0d0a05 +308ad6ebf5fdfffff9fffff8fffff8fffff8fffff8fffff8fffffefffb9f2625 +15ced8d8fdfff9fffff8fffff8fffff8fffffefffca431301cc3cdcdfdfff9ff +fff8fffff8fffffbf8f3e6f1f4f1fbfdf8fffff8fffff8fffff8fffffdfffcac +444326b1b9b9fcfffafffff8fffff8fffff8fffff8fffffdf0b8804a3017609a +addaf6fefffffafffffbf9f5e9f1f4eef9fcf8fffff8fffff8fffffafffffdce +a088654f33151a11376285bdd9f1fffffbfffff8fffffcfffdbf6e6c3e899090 +fafffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee0000ed2639efbee5f8 +c985ee3596f6ccccf13232f1fffffae5d0f6782eeca0e1f7bd4dec1a48f09c8b +f19090f19288ef1115ed7a92f28d89ef6b7ef3fffff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb0881f3f0f8f9fffff8ff +fff99a14eb0c7df3e9f5f9fffff9fffbf21b1aedd9e3f8fefff8fffff9a020ec +1376f3dceff8fffff9a226ec1673f2d7ecf8fffff8fffff6602cec0b6af2d0e8 +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcfffff0ae928b7669 +68787a71626579b2bacbfbfff0b29790766767787a71636678acb5c7fafff1b6 +9d95766566777a72656878a7b0c3fafffbfffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9fffffdefd6be8e5319253c49a4dffffffffffffff4bcbc9d2541 +42aafcfefffffcfffffccac3ba242a3b63c5f8c7c7af1f3637a5fcfefffffcff +fffdd3cec52322305cc2f8d2d2b214242c8cd9fffffffffcf4e9c79c630d1c25 +70c9fffffff6dedea3172020bffffefffffafffff8fffff8fffff9fffff5e9e6 +83141515f4fffefffff8fffff8fffff8fffff8fffffaf4f089090909f3ffffff +fff8fffff8fffffefdfdb9010101b7fffffffffaffffffffffd60505048af5f9 +fcfffbfffffffffff4280c0b35a5e8f4fafefffbe0ab8b73432d292b5576b1a3 +6c110f0a8ad4e7f5fdfcfffff8fffff8fffff8fffff8fffff8fffff8fffffeff +fb9f262515ced8d8fdfff9fffff8fffff8fffff8fffffefffca431301cc3cdcd +fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +fdfffcac444326b1b9b9fcfffafffff8fffff8fffffbfffffed99f663f250b58 +90aed6f0fffffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffffcfff2c4665d3f5b9198d5fafdfffff9fffffcfffdbf6e6c +3e899090fafffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8e1bef5742bed5fbbf5f2e6f5dce0f5d1c5f26339 +ee9fe5f8c985ee3596f6ccccf13232f1fffffae5d0f6752eec92f5f9d4a7ed17 +1bee869bf1757cf1a095ef1217ed7b9cf26d67ef85a0f3fffff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9970deb088af5f0f8f8 +fffff8fffff99a14eb0c7df3e9f5f9fffff9fffbf21b1aedd9e3f8fefff8ffff +f9a020ec1376f3dceff8fffff9a226ec167cf4d7eef8fffff9fffff52e2cec53 +acf5e3f7f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffafffffcd9c3aa5b28103b4a71d8fffefffffafffffafffffcc4 +bcb4242d4169c2fcfffffffffff1c3c39623393baff7fdcdc7c023263660bffc +fffffffffff3cece9e1d3030adffecd2d27c1c2b2cb1fcfefffffbfffffeded9 +d52215212e9de8fbedddc66712202097fffffefffff8fffff8fffff8fffff9ff +fff5e9e683141515f4fffefffff8fffff8fffff8fffff8fffffaf4f089090909 +f3fffffffff8fffff8fffdfbe17501010189fffffffffff8fffffffffff42205 +0536aaf5f9fdffffffffffffc60c0c0990e7f2f9fefbfffff8fffff8fffff8ff +fffeffcd6417120bcee7e7fcfff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffffefffb9f262515ced8d8fdfff9fffff8fffff8fffff8fffffefffca43130 +1cc3cdcdfdfff9fffff8fffff8fffffafcf6f0f6f9f2fcfef8fffff8fffff8ff +fff8fffffdfffcac444326b1b9b9fcfffafffff8fffffdfffff7a77449281226 +8ab0c1eefffcfffff9fffff8fffff8fffff9fcf8f1f6f9f2fbfef7fffff8ffff +f8fffff8fffff8fffff8fffffcffffea6666584e8c98ccf6fdfffffafffffcff +fdbf6e6c3e899090fafffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee00 +00ed2639efbee3f7c97ded358ff6ccccf13232f1fffffae8d0f67f28ec79c6f5 +b360ed2a9df5d7d7f02727efe0d9f64322edbacdf02121f0fbfffafffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9a71cec091a +f0e9f1f6c1b3f3faf9f9a314eb0d7df3e9f5f9fffff9fffbf21b1aedd9e3f8fe +fff8fffff9a020ec1376f3dceff8fffff9b03fed193defc8d4f5f2f2f3935eed +160bedced1f8fefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffafffffeccb1ae3e0000223a4395c8dadcccc3bdbeb8bbbebe +d4e3f3f1d3bc95421032406cd4fcf9e5d0ba702e153b3b7dfffffff3dac79e46 +0d2a3564d2fcf9e9d8c4773011303076fffff7d7d2b01b0e1a2a6da9fdfffefb +f3e8c3966413212593e8fee0ddd8211b2169d7fffffffdfffff8fffff9fffefa +faf4dcd3d9dfe7b966101414c3f1f5ddd4d7fdfffffffffcfcf6dcd1dae4f2c2 +6a070909c2f3f7dcd2d5fdfffffcfbf01a020355d2fffffffefffff8fffff9ff +ffffca5c0505023bc0f4f4fdfff597440a070352f2f2f6fffffff5d2b5b5c8d4 +e9f2e2c4924d100c0551a7deeff8fefffff9fffff8fffff8fffff8fffff8ffff +fdfff8e0d6dfe8f6cc81261e11a3ced2d7d7daf7f7f8fffffefff8e1d8e0e7f4 +cd863127159bc4c7d6d8dbf6f5f6fffffcfffffeb74a39250572c3c3e6fffffa +fffffdfff9e4dbe2e6f1ce8f44361e8cb1b4d4dbdef3f2f3fefffc8a4b4a1b00 +0051899ec3cdceccc6c0bab9b1c0cdd8ebf2f9ffffffc26558390760a5a5d9ff +ffffffffe7755f5b6b7c8ac8dddee9e9d6a165502e07138398a5f0fffffffaea +e3e7e4e9d1a36d57306d8a8ccfe0e4eeeaecfefffbfffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8dfbef57936ed84e1f7fdfef8 +fafaf8e2c5f57b34ed89eef8fafbf6ebfff8ccccf03232f1fffffaf0daf68f2c +ec0000ee1924ee88b5f13f18ed31a8f5d9d9f52424eeeedcf67100eb1d20efec +fffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9ff +e4f00e0ced0000ed0000edededfaa214eb1b86f5eaf5f8fffff9fffbf21b1aed +d9e3f8fefff8fffff9aa2fec1575f3dceef8fffff9ba53ed1b08ee0000ee0000 +ed0000edadd3f6f7fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffafffff9c7b1a33400000000000000000000000000 +00092d415cbbf1ffffffe1cbbd69290000000000000d303c66d5fffefffffcff +ffffe6d4c86f2c0000000000000b27315ed3fffefffffcfffdf3ddc99b300000 +000000000000131d2593c9f5fff7e6ddae4a202147fbfffefffff8fffff8ffff +f9fffef4e6dc86000000000000000000000004111242f4fffffffef9f1e68c00 +0000000000000000000002060739fbfefbfbc84f03032efbfffffffff8fffff8 +fffff8ffffffffffff903c06040200000000000035c0f3f6fcfffbfffffff494 +14100a0000000000002781b8d4f5fafdfffff9fffff8fffff8fffff8fffff8ff +fff8fffffefff4a223221400000000000000000000002ccbd5ddfdfffffff5a7 +2e2c1b00000000000000000000002ac0cad5fcfffcfffffec05139283182c3d0 +ebfffffafffffdfff6af423f26000000000000000000000026aeb7c5fbfff17f +4b46160000000000000000000000000000166d9fb5e0f9ffffffca6b583d2e6e +a5b8e0fffffffffffeb781653514040000000000000000236e92b0e2fafeffff +fefff8c06b663e00000000000000000000001d868da4f9fffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8dcbef5733aed8eee +f9fffff8fefcf8ccbcf13f36ed94f5f9fffff8f2e3f39a61ed3232f1fffffae8 +d0f67c28ec82e4f9f1daf79221ec2832f2fff9f9dabbf02124eeedfffadedef2 +0f1cec86dff7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffcf6e8f0f6f6fbf8fefff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9a226ec1673f2d7 +ecf8f1f0f6fafcf8fefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff9faf8f5e9e3dde4e6e5f6fffcfffff8 +fffff8fffff8fffff9fbf9f6e9e3dde3e5e3f5fffcfffff8fffff8fffff8ffff +f9fcfaf3eae3d9e2e3e3f5fffdfffffdefdbdb7a121f2192e8fffffefffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffffdfdfafa8b02040383e5ffffffffff +f8fffff8fffff8fffff8fffff8fffffdede5dedfdeddf2fefcfefff8fffff8ff +fffafffcf0f2f3ebeae9e9fbfdfafffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffef4f7f1e5e8e9e6f3f6f5fffff9ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8debef57b +39ed94eaf9fffff8ecd0f68629eb2d39efd5fff8fffcf7cac1f00715ed4e85f3 +fffff9e6d0f6732cec79f5f9fffbf7f9eaf6e4f9f9e3d8f43f05ec2440f1ffff +f9fffdf8fff5f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffffa0b0bec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ecd0d0f7fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff9fffff4dbdb9b1b2222cefffefffff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffdfafab0030404c7ffffff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9bdbdf6 +0000ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee1f1fedfffffafffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8c28eef96c0f5edf7f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffefffffdffecfbc291ef3c5ef6f8f5fee7dc +fbfefffffffffffffdfee5dcf79590f6f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2 +bffafffffff2e6fc934cec2428f1fdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffefaf7f1e7dedad7dc +e3e9f8fffffffffffffffffffffffffffff9f7f6e2d9dad8dbe1f2fdffffffff +fffffffffffffffffffaf8f8e3d9dad7d9e0f1fcffffffffffffffffffffffff +fffbfaf6dfdad4d2d8d9ebf7fffffffffffffffffffffffffffffffff9f3f2ba +8a81a9dcfdfffffffffffffdfdfce6dadad4d4dbeffcffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffbf8578a2d6f9fcfefffffffffffaefe3ddd4d3d9e0f4fdfdfeffffffffffff +fffffffffffffaf5e4deddd4dbdff2f7fcfefeffffffffffffffffffffffffff +fffffffffffffffffffffffffffbf1e7e0d7d5d9dff0f8fafdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffbf6fbfdfbfdffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf7 +fbfdfbfdffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffed9bef85026ed3ea2f8c291ef3c3cf6c5 +c5f51129ec71c8fcf7fdfde3f5fcccc6f03232f1ffffffecd0fb7d03eb0000ee +0000ed1f2aedc7fafdd8c0f00000ed111ced88d0fdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff2dbc6975d28000000 +0000000000102f3d6ec9efffffffffffffffe4d0c36c2a000000000000082b37 +52d4ffffffffffffffffe9d8ce732d00000000000006232c49d2ffffffffffff +fff8e4d9b24200000000000000000f181e87c0ecfffffffffffffffffffffffa +e6e6be0c15178ce5fffffffff6f0ec8333000000000000020b0e2fcbffffffff +fffffffffffffffffffffffefcf7b46702020398f3ffffffffffffffffffffff +ffffffffd30606057ddcf7fbfeffd4863f0a0603000000000000000037abdaf2 +fafdffffffffde965b140d070000000000000000007db3e3f2f9ffffffffffff +ffffffffffffffffffffffffffd9945622150900000000000000003196c0dbf2 +fbfffffffffffffffffffffffffffffffffffffffffffffcc1743b2911000000 +00000000000000000068adbce0f9fffffffffffffffff6b14a462aa5b4b4f9ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f7b95d593593a0a0f7fffffffffffffffffcce9164451e000000000000000000 +000000518793cef6ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffeeafabc83ec1d18ed595bef +2d56f29567ec3939f2ffe0fac96aeb3574f9ccccf23232f2ffffffe5d0fa772e +eaa1e6fbd26aeb2a61f8d7d7f60c1eec6bcefddbd6f00e18ec7db8fbffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffdcbab67736 +3577afcce6eae9d1b09b550d1b41418efffffff4dac1a04f0a2a375bc6f0fce5 +d0be6b2017363688fffffff6e1cca95408222d52c2effdead9c97122122b2b81 +ffffffebd7d76e09162557a0fdfffff9f0e8b97e46192020cfffffffffffffff +fffef5e5dc890b17177efffffffbf3ebc260030d1039baedfef8f3e68127060c +0c6ffffffffffffffffffffffefbfac57300000001020298f3ffffffffffffff +fffffffffffff39a0506046ef7f7fbffffff8b190a5293b5dae7eef2e9d47a1e +0d080161ececf4ffffff932715487aa5cce3eaeeeae596531810071dd7e1e5fe +ffffffffffffffffffffffffffffffffff9934275883a0c9dde9f0e9d7893725 +150355cfcfe3fffffffffffffffffffffffffffffffffffffffffffcb74f3b26 +499aafb0babcb6b2b1b0aaa0a4c5dce6f2fcfffffdd07e4f46160307000026ab +b4c3fbfffffffffffffffffffffffffffffffffffffffffffffffffffffffed5 +8b61521b040800002299a0b4fafffffffffffffffffcc67564413f79899dbdc5 +bbb2b1b0aca4a7becdd6eafaffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffff8fcd5c6f46e74 +f38d5bed2e26f19c91f0487bf7fce1fac076ed3598fcccccf13232f2ffffffe5 +d0fb7b2eeb94d2f8610bec0b38f03810ed277ff7fffffffef5fdd99eee0006ec +1843f1c7e6feffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +fffffc6c0deb92e2fef9fefffffffffffff52814eedaeafefdfffff2d0f5623f +ed0905ed001fed546df3ebeffeffffffb665ee659bf7d2b9f35b42ee385af4df +e6fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff3d6bd9c4b3b4142effffec8c1be252e3d70cfff +fffffffffff5c8c8a5203536adfdffd2cccb23253268ccfffffffffffff7d3d3 +ae1a2b2ba9fefddad7d0121523259dedfffffffffffadedebf121d209aecffff +ffffffffffece5e540121943bdffffffffedebe71e0e1352c4fffffffffffffc +f1f1c7070c0c9cfbfffffffffffefbf8d589040504a3ded51e020388f3ffffff +ffffffffffffffffffff46050531b3f9f9fdffffffffffffffffffffffffffff +ffffffd56f110e09d9ecedfdffffffffffffffffffffffffffffffec841c1a0d +cfe1e1fcffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffda802e2614becfd0fbffffffffffc2834e3f5894d0dbeffffffffffffffc +ab3b3b2279c2c2e8fffffffffffffffffffffffffffffffffbe6d4d9e2e3cd8f +453b30abb4bbfbffffffffffffffffffffffcb9569515a83b5c6e5ffffffffff +fffffbe9d9dce1dfcd98574b3799a0a9fafffffffffffffffffcbd64643a5f98 +98d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5bffa72 +02eb0000ee0000ee0000ee0000ed2439efb5e5fac987ed3596fcccccf13232f2 +ffffffecd6fb812deb1850ef0000ed1017ee5174f00807ed3536ee4657f05742 +ed0000ed1720edc0ffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +fffffffffffffa0d0de881e6fef8fefffffffffffbf21413ebd9eafdfdfff518 +18ea72adf8ececfbd9d3f63b18ecbee0fdf9ffffae4fed1607ed0034f09c93f2 +6c84f6e6ebfeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffff1d7bc954d1b41418efffff6c1c1a6243c +3daffcfffffffffffffecfc8c52326365fc3faccccb91d3132aafcffffffffff +fffed8d3d0221d2a56bbfdf9ede0ba782f070f16497aa8dee8dd9c4b1220269b +fffffffffffffffbf0e5c566171919ecfffffffffcebebc90b13139efbffffff +fffffffff3f1ee1f080c3eb1fbfffefcf7e39d0205075cb8fffbfbfb12020384 +f3ffffffffffffffffffffffdb73050402e4f9f9feffffffffffffffffffffff +ffffffffffffcc71100e0761ececf4ffffffffffffffffffd9b6adb2aa8d1212 +0f5190caecf4fcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffd2832d251355cfcfe3ffffffffffffad3434200078c9c8e9ffffff +fffffffcb75b3b26175d736d7777798697a9d8e8edfcffffffffffffffffffff +ffffffb14a4a2aabb4b4fbffffffffffffffffffffffb95252320066aaaaddff +ffffffffffffffffffffffffffb95d5d3599a0a0fafffffffffffffffffcc67e +64411b495a59787e7d828d9ec7d9e2f9ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e0bef9772eec76c6fbf5eafbe0e1fbd7c5f66339ec9fe5fac985ed3596fccccc +f13232f2ffffffe8d0fb832aeb6fbff44128eca1edfff6f3fecebcf7c8c8f316 +1feca0dbfadce0fdffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffffffa0d0de881e6fef8fefffffffffffbf31413eae2eafd +fefef31818ea85b8f8f0fafeffffffffffffffffffffffffa521eb1562f5dbeb +feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff2b398947e727480837e6d697fb1 +baccf6fff3b79e997e707380837e6e6a7facb5c8f5fff3bba39e7e6f727f837f +6f6c7fa7afc4f5ffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff9e3ceac7037253b42aaeafffffce5c1 +b873243a3db0f6fffffffffffffcd1c8bf21203634afedcccc851e2f32abf5ff +fffffffffffddad3c9231827299fedfffbedd9c1781116116584650000000714 +1d50a5e6fffffffffffff5e4e4920c161974d6fffffffffef6ebe08c0b12139f +f4fffffffffffffef4f1e628070c0b9dfcf6f6be04060878c2fffffffffbfbf7 +1003038ffbffffffffffffffffffffa305030363cef9fbfeffffffffffffffff +ffffffffffffffeb9e540f0a0584d4eef7fdffffffffffffffffffffb7745441 +452e0607055190caecf4fcffffffffffffffffffffffffffffffffffffffffff +ffffffffffffeda969291b0d74bad1eafafffffffffffffff8f2ebf0f5f8fcfd +fffffffffffffff7c596737582869696a5957f2b241d000037adbccff9ffffff +fffffffffffffcb14a492aabb4b4fbfffffffffffffffffffffff9f4eef1f4f5 +fafcfefffffffffffffffffffffffffffcb95d5c3599a0a0faffffffffffffff +fff9d1ac8f837f7a8b93a29885463b3100002b8793b2f6ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639efbee5fac985ed35 +96fcccccf13232f2ffffffe5d0fa782eeaa0e1fbbd4dea1a48f19c8bf29090f3 +9288f01115ed7a92f38d89f16b7ef7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffffa0d0de881edfef8fffffffffffffbf31413 +eadfeafdfefffebe83ef120ced0000ee0000ec4672f4eaf0feffffffa021ea14 +76f7dbeefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff3ae928f76696b787a75 +62657cb2baccfbfff4b2979476676a787a7563667cacb5c8fafff4b69d987665 +69777a7665687ba7b0c4faffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffff0d9c393561a223843a2deffffffff +fffff6c1c1a6223c3da7fcfffffffffffffecfc8c52326365fc3faccccb91b31 +32a2fcfffffffffffffed8d3d0221e2b57c1fad7d7bb12202789d8fffffffffc +f5edcca0690b18206dc7fffffff8e4e4ab131a1abefffffffffffffffcebebc9 +0b131395fbfffffffffffffff3f1ee200a0c4bcaf5f69f0f0305045b8f8d6e5a +706e5d290001012c3f484171b6ffffffffffc0030403b4fafafdffffffffffff +ffffffffffffffffcc7c2f0b070279c5eff6fcffffffffffffffffffffffffff +ffffffffffffffecac1c1a1286d7e1f2feffffffffffffffffffffffffffffff +ffffffffffffffd28c482214066aadd2e8f7ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffd74242344ea2bc +d7f5fffffffffffffffffcb14a492aabb4b4fbffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffcb95d5c3599a0a0faffffff +ffffffffffffffffffffffffffffffffffffffdf6b6b543d7e93bfefffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe1bef9742bec5fbbfaf2e6fadce0fad1c5f66339ec9fe5fa +c985ed3596fcccccf13232f2ffffffe5d0fa752eea92f5fcd4a7ed171bed869b +f3757cf2a095f01217ed7b9cf36d67f185a0f7ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdfffffffffffffffffb3d0de933adfaf3fbffffffffff +fbf31413eadfeafdfefffffffffffffffef4f4fcefcbf11b17ea7cd6fcf1fdff +a021ea1476f7dbeefeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffedcc7b55e291036456ed7ffffffff +fffffffffffffec8c1be24293d65c1fffffffffffff3c8c89e203436adf7ffd2 +cccb2322325cbdfffffffffffff5d3d3a61a2b2babffefd7d783192626affbff +ffffffffffffe3dede22121d299aecfcf0e2cb690f1a1a99ffffffffffffffff +ffedebe7200d1344b4fffffffffffffcf1f1be080c0ca1fdfcfcd9b8a3b1b5b1 +afafb0b3c1d8d1a70102024f9bb7c5c8e1ffffffe4770203028bfafafdffffff +fffffffffffffffffb87420c070335bef1f4fcffffffffffffffffffffffffff +ffffffffffffffffffffffffe61c1c1973cfe1f0fcffffffffffffffffffffff +fffffffffffffffb955928150a2fa7d4ddf5ffffffffffffffffffffffffffff +fcf6f6f5fafafdfefeffffffffffffffffffffffffffffffffffffffffea4242 +3a4e9bbcd7f3fffffffffffffffffcb14a492aabb4b4fbffffffffffffffffff +fffffcf8f8f6f9f9fbfefefffffffffffffffffffffffffffcb95d5c3599a0a0 +faffffffffffffffffffffffffffffffffffffffffffffef6b6b5f3d7993bfec +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639 +efbee3fac97dec358ffcccccf13232f2ffffffe8d0fb7f28eb79c6fab360ec2a +9dfbd7d7f12727f1e0d9fb4322eebacdf12121effbffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffa721ea0901efdaf0fc +ede8f66110ec0700ece2eafdfee5f11821efc7d6fcf5fdfefedbf31d19e9a1e0 +fcf6ffffa521ea1576f7dbeefeffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd0b6b640000020364093c8e1dd +ccc8bebebdbabdc1d3e2f9f2d7c199440f2e3a6bd3fcfee7d4c4732f1336367c +fffffff4decca2480c252f62d0fcfeecdccf7a320f2b2b75fffff9dcd7b91b0c +182569aafdfffffcf5edc89a6b101c2090e8ffe5e2e21f171b65d6ffffffffff +fffffffffffbf2ebba52050e114bcafbfff9f4ed8b39050c0c61ffffffffffff +fffffffffffffffffffbfbf712030384fbfffffffffffffb1b020253cffcfcfe +ffffffffffffffffffff600a0a0400006ebbdde0cfccc2c3c2b8b5b0c3d9f9fa +fce63615238bb5c6e0e7e9e9e8d47f28160d021dc2e1e5fbffffffffffffffff +ffffffffffffffffff7327270e000061a4c3d3cecfc7c4c3b9b7b2c2d2e9f4f8 +fdffffffb54434220578c9c9e9ffffffffffffa855436f859cc0d1e0eeeedf92 +49371d0418a7bcc4f7fffffff9e9dce3edf0cf97493b2188acb4d3dbe6f3f1f4 +feffffffffffc06052350766aaaaddfffffffffffffffaebe0e5ebecd0a05d4a +2a799aa0d1dee9f0edf2feffffba796b76707dadc7dbeaebe0a76e5b30071383 +93a0f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffdfbef97936ec84e1fffdfefefafafee2 +c5f97b34ec89eefefafbfcebfffcccccf13232f2fffffff0dafb8f2ceb0000ee +1924ee88b5f33f18ed31a8fbd9d9fa2424eeeedcfc7100eb1d20f0ecffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffe4f30e0c +ec0000ee0000ee806ded0b09ece1eafdfefff84a18ec0500ee0000ee0000eb5e +8ff7edf4feffffff9e21ea217ef8ddf0feffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffbcbb6ae350000000000 +00000000000000000008293e57b9f6ffffffe4d0c36c2a0000000000000c2b37 +63d4ffffffffffffffffe9d8ce732d0000000000000a232c5ad2ffffffffffff +fdf5e1cea332000000000000000011192090c8fbfff9eae2b24d1b1b44fbffff +fffffffffffffffffffffffff6f0ec8333000000000000030b0e43cbffffffff +fffffffffffffffffffffffffffbfbef12020384f3ffffffffffc95102022ef8 +fcfcfffffffffffffffffffffff3510a0a030000000000000000000000000000 +1e97e9edf8ff96471f0d0501000000000000000034a3d8e9f7feffffffffffff +fffffffffffffffffffffffff56627250c00000000000000000000000000001a +84c6d4edfdffffffbe4c3424318ac9d4eeffffffffffffd595552f1c08000000 +00000000002b8fbacceefefffffffffff6b447442a0000000000000000000000 +25a9b1c1fbffffffffffc86652392e75aabce4fffffffffffffff7bc5a563600 +0000000000000000000021969eb2faffffdeab79502f0e000000000000000021 +6f92ace4fdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffdcbef9733aec8eeeffffffff +fefcfdccbcf33f36ed94f5fffffffef2e3f99a61ed3232f3ffffffe8d0fa7c28 +ea82e4fff1dafb9221ea2832f3fff9fddabbf12124ecedfffededef50f1ceb86 +dffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +fffffff8fce3e3fbf1f7fffefefffffffffffffffffffffffffff8f2fcebeafc +f0fbfffdffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbf9f9e9e3e3e3 +e5e9f6fffffffffffffffffffffffffffffbfafaeae3e3e3e4e8f5ffffffffff +fffffffffffffffffffcfbfaeae3dfe2e2e8f5fffffffffff2e1e17d0f1a1b8f +ecfffffffffffffffffffffffffffffffffffffefdfdebe4e3e0e0e5f4ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8d0101 +0181e8fcfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdf9f3ece5e4e9f1fbfdfeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd +faf5f0e9e6e4e9f7f8faffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefbf7f3ece9e6 +e8f2f3f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdebef97b39ec94ea +ffffffffecd0fa8629ea2d39efd5fffffffcfccac1f00715ec4e85f7ffffffe6 +d0fa732cea79f5fffffbfef9eafbe4f9fee3d8f83f05eb2440f1fffffffffdff +fff5fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +0b0bea0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ead7 +d7fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff6e1e1a317 +1d1dcdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b9010101c5fdfdfeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffbdbdf90000ea00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ed1f1fecffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff7fffff7ffecf7c291ee3c5ef3f8f5f9e7dcf6fefff8 +fffff8fffdf8e5dcf39590f3f1fff9f8f2f8d2bbf3b7bbf4c0c0f2b2bff5ffff +f9f2e6f6934cec2428f0fdfffafffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9fffdf6f6f1e0dddad2dce4e5f9fffcfffff8fffff8fffff8ffff +f9f9f6efe2d9d3d9dcddf2fdfdfffff8fffff8fffff8fffff9faf7f1e3d9d3d8 +dadbf1fdfefffff8fffff8fffff8fffff9faf9eedfdaced3d8d4ebf7fafffff9 +fffff8fffff8fffff8fffffbf7f0eeba8c80abddf7fffffcfffff8fffff8fefe +f8f9f4f3fffff9fffff8fffff8fffff8fffff9fefdf7e6dbd3d3d4d4effcffff +fff8fffff8fffff8fffff8fffffaffffffbd8271a1d8f5fefefcfffff9fffff9 +e8dcd4d3d2d2edfafdfefff8fffff8fffff8fffffafffff4e4ded1d1d4cde6f3 +f6fdfef9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff9faf5f3fefdf8fffff8fffff8fffff8fffff9fffff9ebe2dad6d4d2e8f4f6 +fcfef9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffb +eceae3d5d6dad8ecf5f4fcfffafffff8fffff8fffffafffbf1eae4dcd7dbd8eb +f0f3fcfdfafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff7eeeaded7d6 +cddde7e6f5fbf9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff7d9bef35026ee3ea2f3c291ee3c3cf2c5c5f21129 +ed71c8f6f7fdf8e3f5f8ccc6ef3232f1fffffaecd0f67d03ec0000ee0000ed1f +2aeec7fafad8c0f00000ed111ced88d0f6fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff9fffffcf1d8c1935a26000000000000000011334271cbf0fdfffffeff +ffffe1cbbd692900000000000008303c56d5fffefffffcffffffe6d4c86f2c00 +00000000000727314dd3fffefffffcfffff6e0d3aa400000000000000000121c +228ac1e9fffffefffff8fffff9fffff9e1e1b50f1a1d8ee6fffffffcfffff9ff +fef5e9de83131515ebfffefffff8fffff8fffffff9f4f1863500000000000001 +060829cafffffffffbfffff8fffff8ffffffffffcd01010180e1fdfdffffffff +ff903c06040200000000000021c0f3f5fcfffbffffffffffd059110e06000000 +00000000006ca7d1f2f8fdfffff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffffefff59f262415c6d8d8fcfff9fffff8fffffeffffffa25b2e1a0a000000 +0000001ba0cbd2f4fffcfffff9fffff8fffff8fffff8fffff8fffffafffffedd +a16936210e00000000000000002a84a9c7eaf9feffffffe6af7f422a16000000 +0000000000006088aadaedfefffffafffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffffcfcd3a16348285c929ad5fafdfffffeffffe2986b5621 +0000000000000000426680c2dff3fffffbfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9feeaf7bc83ed1d18ed595bee2d56f095 +67ed3939f1ffe0f8c96aed3574f5ccccf13232f1fffffae5d0f6772eeca1e6f8 +d26aeb2a61f2d7d7f30c1eed6bcef6dbd6ef0e18ec7db8f5fffff9fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff9fffffddab5b17539387ab1c7e6eae2ceab92520c1c46468f +fffffff3d7bc9c4d0b2e3c5dc7f1f6e2cbb4681f183b3b89fffffff5dec7a552 +09263254c4f0f7e7d4bf6e2114303082ffffffe9d2d26b0a182a5b9ffdfffff8 +eee2b47a421d2525d0fffefffff9fffff9fef2e0d6860d1d1d7ffffffffffff8 +eee6a9450b15000004131444f4fffefffff8fffff9fcf6f0c76302090b32b8ed +f8fbf7e5842803070769fffffffffff8fffff8fffffef3980001016ffdfdfeff +ffffd36b05050327b0e5f3fcfeee8d320a060260f2f2f7ffffff891010093683 +ebf1f7fffffdd7995c130d07b6e7e7fafffafffff8fffff8fffff8fffff8ffff +fefffdc2652d2d0b020300002cced8e0fdfff9fffff9fffffeda832d26132193 +c0d2f1fbf09f532f1c0851cacadffffff9fffff8fffff8fffff8fffff8fffffb +fffffea44b405d7689bbd5deeee9d4954c38200549b7b7d3ffffffac594b5762 +7aaccdd7e9ebe1ab77462d1515a3abb6fbfffafffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcffdea7634e2c0000005c9299d5faffffffffb56a6a +36225192abcefefffee7c09a5e40226f8d8de7fffcfffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fff8f7d5c6f26e74f18d5bed +2e26ef9c91ee487bf4fce1f8c076ee3598f6ccccf13232f1fffffae5d0f67b2e +ec94d2f3610bed0b38ef3810ed277ff4fffff9fef5f8d99eee0006ed1843f0c7 +e6f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffffaeca2ee0c +36f1f1f4f9fffff8fffff9fffff44014ec95def8f6fef9cc8eee262bed0203ee +0000ed5769f1deeff8fdfff8fffff8b666ee669af3d1b9f15c43ee385af1dee5 +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafff2d2b797 +47404647f0fffcc3bcb426324274d0fffffffffffff3c3c39c233b3baffdfdcd +c7c02429376ccdfffffffffffff5cecea51d3030abfefcd5d2c51218282ba0e9 +fffffffffff9d9d9b61522259dedfefffffcfffffee8e0dc40161e47bffbffff +fffffefbf9f5d7c8ccd3dbbb62141529f4fffefffff8fffffef2f0e61d0a0e4e +c3fffffffffffffdf7f7c70407079afbfffffffbfffffffefefa42000030b7fa +fdfefffffff41f050544bbf9fafdffffffffffffcf0c0c0a90f1f2f9fff02410 +0f0284d6ecf7fdffffffffffd917171380d4e7f4fdfcfffff8fffff8fffff8ff +fff8fffffefffadbccd2dde9cd7a241f22ced8dbfdfff9fffffefffff6432d2b +3e9dd1dcf3ffffffffffffd734342a78c7cae9fefeffffffc3865142588ccbd7 +ecfffffafffff8fffff8fffff8fffff8fffffdffde8d473b1ca8b7b7f9fffaff +fff8fffff8fffff8fffffdfff1a0524b259dacabf8fffcfffffecc996c545a7b +b0c3e2fffffbfffff8fffffcffe8b5615434658a815259525d929acffaffffff +f4766a6209528593cef4ffffffffffe871715f4e828dcbf5fdfffffafffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e5bff57202ec0000 +ee0000ee0000ee0000ed2439efb5e5f8c987ee3596f6ccccf13232f1fffffaec +d6f6812dec1850ef0000ed1017ed5174ef0807ed3536ed4657ef5742ed0000ee +1720edc0fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff9 +fffbf10d0dea85ddf8f8fef8fffffaeb9fed120ceeeaeaf9fffff8ab6fef8eb1 +f3dde0f6f0ecf2541bec085cf2dfecf8fffff9af50ed1708ed0033f09b92f06d +84f3e5eaf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf0 +d4b6914b1c46468ffffff4bcbc9d274142b1fcfefffffcfffffccac3ba242a3b +63c5f8c7c7af213637adfcfefffffcfffffdd3cec523212e5bbdf7f8ebdbb575 +2d0811194d7ea6dde4d7984915252b9afffffefffff9fffaece0c0611c1e1eec +fffefffff8fffff8fffff9fffff5e9e983141515f4fffefffff8fffffcf0f0ca +080d0e9cfbfffffffbfffffff8f7ec1f05063ab0f4fffffffffffefeda6f0000 +00e9fefeffffffffffd605050493f5f9fcfffbfffffffffff4280c0b35a5e9f4 +fafedd94420f0a042d5e8ad7f3f7b76315100e7de7e8f4fffff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffffeffff9f262615ced8d8fdfff9fffffeffff +dd2d2d267cced1ecfefcfffffefffff64c3432318ac1d4eefdffffffaf393923 +0072c3c3e6fffffafffff8fffff8fffff8fffff9fffffdd89146381d49b7b7d3 +fffffafffff9fffffde2c7bcbaab8e37362b3e6e96c9e0f4fffffcfffffebb58 +58350060a5a5d9fffffafffffcfff2c260583c37719ebfe3ff6e646456929acd +fafeffffffeabc895c3b171c3a5697bdd1c99f6f4f2a4d8d90cafffffbfffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e0bef577 +2eed76c6f5f5eaf5e0e1f5d7c5f26339ee9fe5f8c985ee3596f6ccccf13232f1 +fffffae8d0f6832aec6fbff24128eda1edf9f6f3f8cebcf3c8c8f1161feca0db +f4dce0f7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff99d18eb0824f1f0f2f9fffff64412eb2096f5edf7f8fffff8ff +fff9ecdaf4b6aff1b0b9f37637ed0d13f0dfe1f9fffff9a523ec1661f2daeaf8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffcffffeeb398907e727180837b6d697cb1bacaf6ff +efb79e947e707080837b6e6a7cacb5c6f5fff0bba3997e6f6f7f837c6f6c7ca7 +afc2f5fffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffa +f9e1c9a76d33284048acebfffffce2bcb36d273f42b2f6fefffffdfffffaccc3 +b420243b3ab1eac7c77e213437aef5fefffffdfffffbd6cebe221b2b2fa2eaff +faead3bc71141a1362806000000008172154a7e2fffffefffffcf3dede8e0e19 +1e77d3fffffefffff8fffff8fffff9fffff5e9e683141515f4fffefffff8fffe +f8f0e58b080d0e9df3fffffffcfffffef8f7e5290406058fe5fffffffefdfda1 +03010065cdfefffffffffffff39505050394edf9fcfffcffffffffffed340c0b +0286d9f1f9fdffe590110f096c8e6a090c09000000328ac9ecf5fcfffff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9ff +fffefff5a62d2b1a7dc7d1ecfdfdfffffefffff05534300970b5c9e7f9fffffd +f8f3e6f1f4f1fbfdf8fffff8fffff8fffff8fffff8fffffdf0b478402a1466a4 +b8dff7fefffffafffffafffffec8947a5b4c3111150e3e6e96c9e0f4fffffaff +fffbf9f5e9f1f4eef9fcf8fffffdfffcce5f5d4249789fcae7fffffff86d6460 +5c979ad2fdfcfffffdffefba6b5f3a4358423242310000001f557ba6d1f0ffff +fbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +eacbf58328ec0000ee0000ee0000ee0000ed2639efbee5f8c985ee3596f6cccc +f13232f1fffffae5d0f6782eeca0e1f7bd4dec1a48f09c8bf19090f19288ef11 +15ed7a92f28d89ef6b7ef3fffff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff9ffddf00e0ceac3f0fbfcdbef1210ecd2ecf9fdfff9 +fffff46818ed0900ed4a69f096a8f2883bed1013f0dfe1f8fffff9a123ec1575 +f3daedf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffcfffff0ae928b766968787a71626579b2 +bacbfbfff0b29790766767787a71636678acb5c7fafff1b69d95766566777a72 +656878a7b0c3fafffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9ffff +fdefd6be8e5319253c49a4dffffffffffffff4bcbc9d254142aafcfefffffcff +fffccac3ba242a3b63c5f8c7c7af1f3637a5fcfefffffcfffffdd3cec5232230 +5cc2f8d2d2b214242c8cd9fffffffffcf4e9c79c630d1c2570c9fffffff6dede +a3172020bffffefffffafffff8fffff8fffff9fffff5e9e683141515f4fffeff +fff8fffffcf0f0ca080d0e92fbfffffffbfffffff8f7ec1f05063ab0f4fffffe +fdfdb9010101b7fffffffffaffffffffffd60505048af5f9fcfffbffffffffff +f4280c0b36acf2f4fbda10100e6dc4eef5fcffffffffecbe8015110a51aee7ee +f9fffffff9fffff8fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8 +fdfff9fffffeffffdd2d2d2674ced1eafefcfffffefffff64c3432318ac1d4ee +fdfffffafffff8fffff8fffff8fffff8fffff8fffffbfffffed7995d361f0a5e +99b9dcf2fffffffafffff8fffff8fffff8fffff8fffffdfff1bd524b3366a3ab +ddfbfcfffff9fffff8fffff8fffff8fffffcf7b7605a3402395a56676f796f5c +442c25101b262b396190b2c8d46a6a5d447a94c4ecfffffffff3d7b167513331 +6a8db4e2fffffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8e1bef5742bed5fbbf5f2e6f5dce0f5d1c5f26339ee9fe5f8c985ee35 +96f6ccccf13232f1fffffae5d0f6752eec92f5f9d4a7ed171bee869bf1757cf1 +a095ef1217ed7b9cf26d67ef85a0f3fffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff6660eec0e8ff29f2dec0c61f3ecf3 +f9fffff9fff4f11817ebcde6f8fcfff8fffffaffadee1f14f0dfdff8fffff9a1 +23ec1575f3daedf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaff +fffcd9c3aa5b28103b4a71d8fffefffffafffffafffffcc4bcb4242d4169c2fc +fffffffffff1c3c39623393baff7fdcdc7c023263660bffcfffffffffff3cece +9e1d3030adffecd2d27c1c2b2cb1fcfefffffbfffffeded9d52215212e9de8fb +edddc66712202097fffffefffff8fffff8fffff8fffff9fffff5e9e683141515 +f4fffefffff8fffffef2f0e61f090d40b2fbfffffffffffdf7f7be0406079af3 +fffffdfbe17501010189fffffffffff8fffffffffff422050536aaf5f9fdffff +ffffffffc60c0c0993f2f2f9ff9d10100a97eaeef8fffafffffffffffb381717 +0f80cfe7f4fcfffff9fffff8fffff8fffff8fffff8fffff8fffffefffb9f2625 +15ced8d8fdfff9fffffefffff6462d2b328fced9f0feffffffffffd034342878 +c0cae9fcfcfffffafcf6f0f6f9f2fcfef8fffff8fffffdfffff7a16c3f220f29 +93bbc9f0fffcfffff9fffff8fffff8fffff8fffff8fffff8fffffdffffe85252 +47589dacd5f8fdfffffbfcf8f1f6f9f2fbfef7fffffdf6dfcec0bbb0acb0acb0 +b1b5cac7ae565341305d6b97bedae8eec16a6a415e9294d7fdfcfffffdfffffd +85716f174e7f91cbf3fffffbfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee0000ed2639efbee3f7 +c97ded358ff6ccccf13232f1fffffae8d0f67f28ec79c6f5b360ed2a9df5d7d7 +f02727efe0d9f64322edbacdf02121f0fbfffafffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffffaffbbef0f0bed0000ebb2 +edf9fafff8fffff9fffbf11817eb7db4f4eef9f6debef01915ec001cf0dfe3f8 +fffff9a523ec1675f3daedf8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffa +fffffeccb1ae3e0000223a4395c8dadcccc3bdbeb8bbbebed4e3f3f1d3bc9542 +1032406cd4fcf9e5d0ba702e153b3b7dfffffff3dac79e460d2a3564d2fcf9e9 +d8c4773011303076fffff7d7d2b01b0e1a2a6da9fdfffefbf3e8c39664132125 +93e8fee0ddd8211b2169d7fffffffdfffff8fffff9fffefafaf4dcd3d9dfe7b9 +66101414c3f1f5ddd4d7fdfffffcf5f0be54030a0c45c8fbfafbf8ec8e3a0307 +075afffffffcfbf01a020355d2fffffffefffff8fffff9ffffffca5c0505023b +c0f4f4fdfff597440a070352f2f2f6ffffd82e100d024b8eebf2f7fffffde7b7 +8115100b75cee7f2fcfefffff9fffff8fffff8fffff8fffffdfff8e0d6dfe8f6 +cc81261e11a3ced2d7d7daf7f7f8ffffffd2762d251031a1ccd7f4fef6a86230 +1e0c45cacadcfffffcfffffeb74a39250572c3c3e6fffffffffffc83403f1700 +005691a7c8cdcdcbc6bfbab8b0c0d1e4eef5e5654b4d738b99cfdfdfe9e9d498 +554125061693abb6f3fffdfffffec26558390760a5a5d9fffffafffff8fffff8 +fffff8fffffcfffff86e646056979acdfdffffffe77c6a590e2f5891b5d3feff +fdf0d3b1654e34477e8dc6f2fefffffbfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8dfbef57936ed84e1f7fdfef8fafaf8e2c5f57b34 +ed89eef8fafbf6ebfff8ccccf03232f1fffffaf0daf68f2cec0000ee1924ee88 +b5f13f18ed31a8f5d9d9f52424eeeedcf67100eb1d20efecfffafffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff9fffff4550fec +0553f1edf3f8fffff8fffff8fffff7b569ed1109ee0000ed0047ef873cec123a +f0dfe6f8fffff99e23ec217df4dceff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffafffff9c7b1a3340000000000000000000000000000092d415cbbf1ff +ffffe1cbbd69290000000000000d303c66d5fffefffffcffffffe6d4c86f2c00 +00000000000b27315ed3fffefffffcfffdf3ddc99b300000000000000000131d +2593c9f5fff7e6ddae4a202147fbfffefffff8fffff8fffff9fffef4e6dc8600 +0000000000000000000004111242f4fffffffffff9f4f1863500000000000002 +06083dcafffffffefbfbc64f03032efbfffffffff8fffff8fffff8ffffffffff +ff903c06040200000000000035c0f3f6fcfffbfffffffff4bf47100d04000000 +000000000076afdef3f9fefffff9fffff8fffff8fffff8fffff8fffffefff4a2 +23221400000000000000000000002ccbd5ddfdffffffffffa25b2e1a0a000000 +0000002ca0cbd6f4fffcfffffbfffffec05139283182c3d0ebfffffffffff178 +403b1300000000000000000000000000001775afbee4fcaf71532a1003000000 +0000000000277ca5bfe7fbfefffffcfffffeca6b583d2e6ea5b8e0fffffaffff +f8fffff8fffff8fffffcfffff36e645d56929acdfafdfffffefff8d78d664f19 +0000000000000000486b88c7e3fafffffbfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8dcbef5733aed8eeef9fffff8fefcf8cc +bcf13f36ed94f5f9fffff8f2e3f39a61ed3232f1fffffae8d0f67c28ec82e4f9 +f1daf79221ec2832f2fff9f9dabbf02124eeedfffadedef20f1cec86dff7ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8f3ebf5e3e9f7fcfdf8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff9faf8f5e9e3dde4e6e5f6fffcfffff8fffff8fffff8ffff +f9fbf9f6e9e3dde3e5e3f5fffcfffff8fffff8fffff8fffff9fcfaf3eae3d9e2 +e3e3f5fffdfffffdefdbdb7a121f2192e8fffffefffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fefefbebe4 +dde0dfdef3fffdfffffdfdfafa8b02040383e5fffffffffff8fffff8fffff8ff +fff8fffff8fffffdede5dedfdeddf2fefcfefff8fffff8fffff8fffff9fffff8 +ede6dae0dedef1fcfafefff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcf0 +e9e3e2dfddeff8f7fdfff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffe +f4f6f0e3e7e9e7f5f8f6fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffff8f4efe6e5e1dbeaf1effafffafffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8debef57b39ed94eaf9fffff8 +ecd0f68629eb2d39efd5fff8fffcf7cac1f00715ed4e85f3fffff9e6d0f6732c +ec79f5f9fffbf7f9eaf6e4f9f9e3d8f43f05ec2440f1fffff9fffdf8fff5f8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffffa0b0bec00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ebd5d5 +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff9fffff4dbdb9b1b2222cefffefffff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffffdfafab0030404c7fffffffff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff9bdbdf60000ec0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee1f1fedfffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffc0c0c0cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccc0c0c0ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffefffffdffecfbc291ef3c5ef6f8f5fee7dcfbfeffffffffffff +fdfee5dcf79590f6f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2bffafffffff2e6fc +934cec2428f1fdffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdfffffffffffffffffffbf5fcf4fbfffeffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffbf5fcf5fafffefeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffff5fa9488f4d9ddfcfdffffffffffffffffffff +fffffffffffffffcf7fdf6f9fefcfeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffdfaf6f1e6dddad7dce4eaf9fffffffffffffffffffffffffffff9f6f6 +e2d9dad9dce2f2fdfffffffffffffffffffffffffffaf7f7e3d9dad8dae1f1fd +fffffffffffffffffffffffffefaf9f5dfdad4d3d8daebf7ffffffffffffffff +fffffffffffffffff7f0efba8c84abddfdfffffffffffffffffffefefef9f4f9 +fffffffffffffffffffffffffffffffffffffffefff9f3f9ffffffffffffffff +ffffffffffffffffffffffffffbd8275a1d8fcfefeffffffffffffffe8dcdbd3 +d2d9edfafdfefffffffffffffffffffffffffaefe4ddd5d3d9e0f3fcfcfeffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbf0e6dfd7d4d9 +dff0f9fafefffffffffffffffffffffffffbf1e7e1d8d5d9deeff7f9fdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffede4e4 +d8d4d9e6f1f5fafeffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 +e9e8dad6d9e3ecf0f8feffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffed9bef85026ed3ea2f8c291ef3c3cf6c5c5f51129ec71c8fc +f7fdfde3f5fcccc6f03232f1ffffffecd0fb7d03eb0000ee0000ed1f2aedc7fa +fdd8c0f00000ed111ced88d0fdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdfffffffffffffffffa0f0de90085f9f0f8ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffb201dea017cf8dff1fe +ffffffbe85ef87b2faecf5ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffff6f43936eab5c5fafaffffffffffff +fffffffffffffffffffffb4644ed0167f5b8dffeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff38371680e000000 +00000000000000000000001c557f9ed2f9ffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff1d8c1935a26000000000000000011334272cbf0ffffffffffffffe1cb +bd692900000000000009303c57d5ffffffffffffffffe6d4c86f2c0000000000 +000727314ed3fffffffffffffff7e0d3ae400000000000000000121c238ac1ed +fffffffffffffffffffffff9e1e1b90f1a1d8ee6fffffffffffffffffef5e9de +86131515ebfffffffffffffffffffffffffffffffefaf4e98c090909ebffffff +ffffffffffffffffffffffffffffffffd201010180e1fdfdffffffffff903c06 +040200000000000022c0f3f5fcffffffffffd589430e09040000000000000000 +36a7d5eef8fdffffffffffffffffffffffffffffffffffffffd892511d120800 +00000000000000329ac5e0f3fcffffffffda975a26170a00000000000000002f +92bbd7f0fbffffffffffffffffffffffffffffffffffffffffffffffffffaa6a +42250e0000000000001a91b8c2f0fffffffff0624b450a000000000000000000 +0000000000246da3bce0fbffffffffffffffffffffffffffffffffffffffffff +b882603615000000000000157999a7e9fffffffffffffffffffffffffffffdd6 +a96d502d55888ed1faffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffeeafabc83ec1d18ed595bef2d56f29567ec3939 +f2ffe0fac96aeb3574f9ccccf23232f2ffffffe5d0fa772eeaa1e6fbd26aeb2a +61f8d7d7f60c1eec6bcefddbd6f00e18ec7db8fbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdfffffffffffffffffdaf91f2b4d9fdfafdff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdb598f2b3d4 +fcf6fbffffffffa523ea1679f8daeefeffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff63939ebbcc5fafcffff +fffffffffffffffffffffffffffffec1aaf4b2c7faeaf6ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8d2c9c1 +aea9a7b0b1b0b0b3bcccc0a56c5f401c55849ed2fdffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffdab5b175393a7ab1cde6eae8ceab96520c1d464691fffffff3 +d7bc9c4d0b2e3c60c7f1fce2cbb9681f193b3b8bfffffff5dec7a55209263257 +c4f0fde7d4c36e2114303084ffffffe9d2d26b0a192a5ba2fdfffff8eee4b47a +441d2525d0fffffffffffffffffef2e0d6860d1d1d81fffffffffff8eee6ae45 +0b15000005131445f4fffffffffffffffffffffbf6f0b5490c1600000209093c +f3fffffffffffffffffffffffffffffffffef39800010171fdfdfeffffffd36b +05050329b0e5f9fcfef48d320a060263f2f2f7ffffff8d1e105390b1d6e5edf2 +e9d47d23120a025fe7e7f1ffffffffffffffffffffffffffffffffffff962f22 +5786a4ccdfeaf0e9d7863220120357d5d5e6ffffff9b392d59809cc6dce7efe9 +d88b3c2a170453cacae0ffffffffffffffffffffffffffffffffffffffffffdd +8e40361b1f86aec7ebfaf7a86343260c4bb7b7d4fffff6c7bbb4aeababb0b1b0 +b0b3c0d4c49c4a412c246da9bce0feffffffffffffffffffffffffffffffffff +ffe3a05f4f271a7092aee2f8f8b77d6036103f9898c2ffffffffffffffffffff +e0b06e573200000055888ed1faffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffff8fcd5c6f46e74f38d5bed2e26f19c +91f0487bf7fce1fac076ed3598fcccccf13232f2ffffffe5d0fb7b2eeb94d2f8 +610bec0b38f03810ed277ff7fffffffef5fdd99eee0006ec1843f1c7e6feffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffb468ec64ac +fbf5faffffffffb65fec508ef5b486f0110ced0011ed9dc5fcf7fbffffffffb9 +72ed6aa6faebf5ffd091ef1b12ed0000ed5653f0222defdadcfcc16dee6998f7 +ceb8f36047ee3958f4d9e1fdfffffcb589f12116ed0000ef5c5ced1a1aecbcc5 +fbfcffffffffffffffffffffffffffffffffffc58af0769af7d3e9feffffffc7 +86f1687af3947df03725ed001eee8db9f9e4d5f56d40ee0f00ec2846f1bcccfb +fffffffffffffffffcc4a1f33c28ed0000ed4751ef5251f0a7aff9f7ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffd89e785626738689eeffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff2d3b79749404648 +f0fffec3bcb926324274d0fffffffffffff4c3c3a0233b3baffdffcdc7c62429 +376ccdfffffffffffff6cecea91d3030abfefdd5d2ca1218282ba0edffffffff +fff9d9d9ba1522259dedffffffffffffffe8e0e040161e47bffffffffffffefc +f9f5dec8ccd9dbbb6614152af4fffffffffffffffffffffdfcf7ddc6ccdee5c4 +69090920f3fffffffffffffffffffffffffffffefefe42000030b7fefdfeffff +fffb1f050544bbf9fafdffffffffffffd40c0c0a90eef2f9ffffffffffffffff +ffffffffffffffd67217130bd4e7e7fdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffd97d292212c3d5d5fbffffffffffffffffff +ffffffffffffdb83342b16b9cacafaffffffffffc38653425891cbd7edffffff +fffffc54403f3a8fbdceeeffffffffffffde47473b6db4b7e1feffffffffffff +ffffffffffffffffce83523b1c93abaef3ffffffffffcc996d545a7fb0c3e4ff +fffffffffc705f5d35789fb8e7ffffffffffffe46666545b9698d5fdffffffff +ffeabd6c5d3c5e817b58625e59888fcafaffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffe5bffa7202eb0000ee0000ee +0000ee0000ed2439efb5e5fac987ed3596fcccccf13232f2ffffffecd6fb812d +eb1850ef0000ed1017ee5174f00807ed3536ee4657f05742ed0000ed1720edc0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff9c +0de80885f9f0f8ffffffffa943eb0c04ec5f8df6e2f2fba365ec0f09ece1e5fd +feffffa31dea127cf8dff1fefef2f87521ec0e43f2c9c7f8b9b2f8f2f2feb556 +ed1c09ec0032f09690f26f85f7e1e6fea534ee1d01ed9bbef8e3e6f9bb97f027 +1decbcc5fbfcffffffffffffffffffffffffffffffffffb344ed2967f5b8dffe +ffffffbd6ff03010eb4773f4cfe3f89f5aef2505ec0000ee87a3f8e4d6f55143 +ec3178f5c0e6fefffffea65bf12b00ed8197f7dfe8fac5a7f14332eb8f9bf7f7 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe7777762275c85a9d8fdffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff0d4b6914b +1d464691fffff5bcbca1274142b1fcfffffffffffffecac3c0242a3b63c5f9c7 +c7b4213637adfcfffffffffffffed3ceca2321305bbdfdf8ebdbb5752e08111a +4d7eaadde4d7984915252b9dfffffffffffffffaede0c0631c1e1eecffffffff +fffffffffffffffffff5e9e986141515f4ffffffffffffffffffffffffffffff +fffaf4f48c090909f3fffffffffffffffffffffffffffefeda71000000e9fefe +ffffffffffdb05050493f5f9fcfffffffffffffffb280c0c35a5eef4faffffff +ffffffffffffffffffffcd751512095fe7e7f1ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffd17f27201157d5d5e6ffffffffffff +ffffffffffffffffffd48632291553cacae0ffffffffffffaf3939230075c3c3 +e7ffffffffffe440403770bbbde4fefffffffffffffc5d47462f7db4c5e7feff +ffffffffffffffffffffe05151433276aac4e4feffffffffffffbb5858350063 +a5a5daffffffffffe85f5f515e9d9fd7fdfffffffffffffc7866642c6896adde +fdfff3c86b6244336993b7e0ff796f6f51888fc8faffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0bef9772eec76c6 +fbf5eafbe0e1fbd7c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe8 +d0fb832aeb6fbff44128eca1edfff6f3fecebcf7c8c8f3161feca0dbfadce0fd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffff970de80881f9f0f8ffffffff9e12e90c7ef9eaf5fffffffffffbf31919 +e9a4e5fdf7ffff9e1dea1278f8dff0feffffffab23ea177df8daeffeffffffff +ffffa82aec1a5ef4d3e6fefffffffffffffffcf43231ea92ccfaf0ffffffffff +fffff53939ebbcc5fafcffffffffffffffffffffffffffffffffffaf44ed2863 +f5b8defeffffffb549ee2c60f4b3dbfefffffffff0f5504aec9fadf8f8ffffff +ffffba56ef345af4a6d6fdfff7f65b57eb7aa2f7e8fffffffffffffff76262ec +949bf6faffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd39d7551233f8787beffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e1caa7 +6d35284048acebfffffce3bcb370273f42b2f6fffffffffffffcccc3b920243b +3ab1ebc7c781213437aef5fffffffffffffdd6cec4221b2c2fa2eefffaebd3bc +75141a1462806200000008172254a7e7fffffffffffff3dede8e0e1a1e77d7ff +fffffffffffffffffffffffffff5e9e686141515f4ffffffffffffffffffffff +fffffffffffaf4f08c090909f3fffffffffffffffffffffffefdfda103010065 +d2fefffffffffffff39905050394edf9fcfffffffffffffff3340c0b0286def1 +f9feffffffffffffffffffeca058140d0681cfe8f4fcffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffeda76524180c77bfd6ecfaffffff +ffffffffffffffffffffeeac6d2e1e0f70b5cbe7f9fffffffffffffff8f3ecf1 +f4f8fbfdfffffffffff6b1403d2671b5bde4fcfffffffffffff66547440c65a8 +b5def9ffffffffffffffffffc7824f371850adadd3fffffffffffffffffff9f5 +eff1f4f5f9fcfefffffffff7be5f5a395f989fd8fafffffffffffff87f666111 +5b9897d5dd6a6a52447094c4e4fffffffd786f6d578c8fcdfdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeacbfa83 +28eb0000ee0000ee0000ee0000ed2639efbee5fac985ed3596fcccccf13232f2 +ffffffe5d0fa782eeaa0e1fbbd4dea1a48f19c8bf29090f39288f01115ed7a92 +f38d89f16b7ef7ffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffff970de80881f9f0f8ffffffff9a12e90b7ef9eaf5ffffffffff +fff91919e97adafdf2feff9e1dea1278f8dff0feffffffa123ea1575f7daedfe +ffffffffffffa42aeb1971f7d3eafefffffffffffffffcf43231ecc2ccfbfcff +fffffffffffcf53938ebbcc5fafcffffffffffffffffffffffffffffffffffaf +44ed2863f5b8defeffffffb149ee2b60f4b3dbfefffffffffcf6504feca5adf8 +fbffffffffffb756ef325af4a6d6fdfffcf75b5aeea0a2f8fdfffffffffffffc +f76261ec949bf6faffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffebba75653b517d89cff5ffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefd6be +8e531a253c49a4dffffffffffffff5bcbca1254142aafcfffffffffffffecac3 +c0242a3b63c5f9c7c7b41f3637a5fcfffffffffffffed3ceca2322305cc2f9d2 +d2b714242c8cd9fffffffffcf4eac79c660d1c2570c9fffffff7dedea7172020 +bffffffffffffffffffffffffffffffffff5e9e686141515f4ffffffffffffff +fffffffffffffffffffaf4f08c090909f3fffffffffffffffffffffefdfdbe01 +0101b7ffffffffffffffffffffdb0505048af5f9fcfffffffffffffffb280c0c +35a5eef4faffffffffffffffcd7f3410090376c0eaf4fbffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd189431e12066db2d8ebf8ffff +ffffffffffffffffffffffd38f4d27170768a9cde5f6ffffffffffffffffffff +ffffffffffffffffffffffffffffe440403769bbbde1fefffffffffffffc5d47 +462f7db4c5e7feffffffffffffffe6a74f442868a0aedef8ffffffffffffffff +ffffffffffffffffffffffffffffffffe85f5f51589d9fd3fdfffffffffffffc +786664347a98b2b5716a440635545266717d6f5c49312912192328385b85a9bf +deffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +e1bef9742bec5fbbfaf2e6fadce0fad1c5f66339ec9fe5fac985ed3596fccccc +f13232f2ffffffe5d0fa752eea92f5fcd4a7ed171bed869bf3757cf2a095f012 +17ed7b9cf36d67f185a0f7ffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffff970de80881f9f0f8ffffffff9a12e90b7ef9eaf5ff +fffffffffffa2819e978dafdf2feff9e1dea1278f8dff0feffffffa123ea157d +f8daeffeffffffffffffa42aeb1971f7d3eafefffffffffffffff5f43230eaaf +ccfaf8fffffffffffffcf53938ebbcc5fafcfffffffffdf6f6fdfcfcffffffff +ffffffaf44ed2863f5b8defeffffffb149ee2b60f4b3dbfefffffffffcf6504f +eca5adf8fbffffffffffb756ef325af4a6d6fdfff7f65b57eb7aa2f7e8ffffff +fffffff2f6625aed949bf7faffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffa4747429286388abdd +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9c3 +af5b28113b4a72d8fffffffffffffffffffffec4bcb9242d4269c2ffffffffff +fff2c3c39923393baff7ffcdc7c623263760bffffffffffffff4cecea21d3030 +adffedd2d2801c2b2cb1fcffffffffffffffded9d92215222e9dedfbedddc667 +1220209bfffffffffffffffffffffffffffffffffff5e9e686141515f4ffffff +fffffffffffffffffffffffffffaf4f08c090909f3fffffffffffffffffffdfb +e1750201018dfffffffffffffffffffffffb22050536aaf9f9fdffffffffffff +cb0c0c0990e7f2f9fefffffffb8946110a0434b9ebeffaffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffb925423130830abd9e1f7ffff +fffffffffffffffffffffffc985d2e180b2ea2ced9f4ffffffffffffffffffff +fffffffffcf6f6f6f9f9fcfefefffffffffffc57403f3081bdcaeaffffffffff +ffd84747386daeb7e1fbffffffffffffff8c4e4e1c337eaec6e8ffffffffffff +fffffffffffffcf8f8f6f9f9fbfefefffffffffffc715f5d2d6d9fb2e0ffffff +ffffffde6666505e9898d7e9d5c9c2b6abb0b1b0b1b9c8c5b45f5c4a2c576690 +b4cee5e6f1ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffeacbfa8328eb0000ee0000ee0000ee0000ed2639efbee3fac97dec35 +8ffcccccf13232f2ffffffe8d0fb7f28eb79c6fab360ec2a9dfbd7d7f12727f1 +e0d9fb4322eebacdf12121effbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffff9c0de80881f9f0f8ffffffff9e12e90c7e +f9eaf5fffffffffffffa1919e97adafdf2feffa31dea1278f8dff0feffffffaf +31ec1719f0d4ddfac6baf8f5f2feab2aeb1a71f7d3eafefffffffffffffffffb +5d32ed0b32f0c6d7fbe3dcf6652eee0f00ecb5c5fbfafffffcb8f13d28ea72b6 +fae5fcffffffffb344ed2963f5b8defeffffffb549ee2c60f4b3dbfeffffffff +fcf6504feca5adf8fbffffffffffb756ef325af4a6d6fdfffffe9e5bf12600ed +7284f4ad9ff24031ee0000ec949bf8faffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff3c67e6a450a728a +8aeaffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +b1b13e0000223a4595c8e0dcccc8bdbebdbbbec3d4e3f9f1d3bc95421032406f +d4fcfee5d0bf702e153b3b7ffffffff3dac79e460e2a3567d2fcfee9d8ca7730 +11303078fffff8d7d2b41b0e1b2a6dacfdfffffbf3eac3966913212593e8ffe0 +dddd211b2169d7fffffffffffffffffffffffefcfaf4e3d3d9e6e7b969101414 +c3f1fcddd4defdfffffffffdfcf6e2d1daebf2c26e070909c2f3fedcd2ddfdff +fffcfbf71a020355d2ffffffffffffffffffffffffffca5c0505023dc0f4f9fd +fffc97440a070355f2f2f6ffffff6310100600006cb7d8decfccc3c3c3b8b5b1 +c3d6eff9fbfeffffffffffffffffffffffffffffff6f22220c000063a9c8d6ce +cfc6c4c3b8b6b2c2d5f2f5f9ff762d2d1000005ea0bdd1ced0c8c5c4b9b7b3c1 +d1e7f2f7fdffffffb74a39250575c3c3e7ffffffffffffd7834034172e92b9cc +f0fefdb07145291140b7b7d0fffffffffffff0b75b482f0791b0b0f1ffffffff +ffffffffffffffffffffc26558390763a5a5daffffffffffffdd975f4c22277a +9bb5e9fdfdbd89633b18369898bcfffffffffffffffffffffffffffffd796f6d +518c8fc8fdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffdfbef97936ec84e1fffdfefefafafee2c5f97b34ec89eefe +fafbfcebfffcccccf13232f2fffffff0dafb8f2ceb0000ee1924ee88b5f33f18 +ed31a8fbd9d9fa2424eeeedcfc7100eb1d20f0ecffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffff940de81695faf1f9ffffffff97 +12e91987f9ebf6fffffffffffffa2719e982e1fdf3feff9c1dea1e8bf9e1f3fe +ffffffffe7f32420ed0000ed0000edd7d7fcaa2aeb2779f8d5ecfeffffffffff +ffffffffffe8f5332eed0000ee0000ed8383ef2525edc2c5fbfefffffcc1f23d +2bea83bcfaeafeffffffffad44ed3273f6bde4feffffffaf49ee3567f5b7defe +fffffffffcf6504feda5adf9fbffffffffffbf61ef365df4a6d4fdffffffffff +fcaf8ff1301dec2248f1a4a8f2594eee949bf8faffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe672725e23 +5985a7d4f9ffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffbc7b1a8340000000000000000000000000000092d435cbbf6ffffffe1cb +bd69290000000000000e303c67d5ffffffffffffffffe6d4c86f2c0000000000 +000b27315fd3fffffffffffffdf4ddc99f300000000000000000131d2693c9fb +fff7e7ddae4c202149fbfffffffffffffffffffffffffef5e6dc890000000000 +00000000000004111243f4fffffffef9f1e69000000000000000000000000206 +073afbfefbfbc851030330fbffffffffffffffffffffffffffffffffff903c06 +040200000000000036c0f3f6fcfffffffff455100f0500000000000000000000 +000000001d93dce9f6fefffffffffffffffffffffffffffff46222200a000000 +00000000000000000000001b89d5d9efff6a2d2d0d0000000000000000000000 +0000001980c0cfebfcffffffc05139283186c3d0ecffffffffffffffffffaa6a +42250e0000000000002991b8c8f0ffffffffffffffdf4d4d3f2c71a9c3e2fbff +ffffffffffffffffffffffffffffca6b583d2e71a5b8e2ffffffffffffffffff +b882603615000000000000227999b0e9ffffffffffffffffffffffffffffffff +f8796f6a51888fc8faffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffdcbef9733aec8eeefffffffffefcfdccbcf33f36 +ed94f5fffffffef2e3f99a61ed3232f3ffffffe8d0fa7c28ea82e4fff1dafb92 +21ea2832f3fff9fddabbf12124ecedfffededef50f1ceb86dffeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffcfeebf1fcf5fafffeffffffffffffffffffffffff +fffffffffffffffffffffffff9fde7e6fbeef8fefcffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffbf7fefdfbfeffffffffffffe3a9f1512dec9b9bf9ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffaf8f8e9e3e3e4e6eaf6fffffffffffffffffffffffffffffbf9f9 +e9e3e3e3e5e9f5fffffffffffffffffffffffffffffcfaf9eae3dfe2e3e8f5ff +ffffffffefdbdb7a12202192edffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfafa8b02040383eaffffffffffffffffffffffffffffffffff +ffffffffede5e4dfdee3f2fefefeffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffff1ebeae2e0e3eef6f7fcffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff3eeeee4e0e3ebf2f4faffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffdebef97b39ec94eaffffffffecd0fa86 +29ea2d39efd5fffffffcfccac1f00715ec4e85f7ffffffe6d0fa732cea79f5ff +fffbfef9eafbe4f9fee3d8f83f05eb2440f1fffffffffdfffff5fdffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff0b0bea0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000eb9a9af6ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff5dbdb9f1b2222ceffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffdfafab5030404c7ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffbdbdf90000ea0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed1f +1fecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffeafab2a3f4807ff16f72f19cb5f8e6f4feffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +c0c0c0cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccc0c0c0ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff7fffff7ffecf7c291ee3c5ef3f8f5f9e7dcf6fefff8fffff8fffdf8e5dc +f39590f3f1fff9f8f2f8d2bbf3b7bbf4c0c0f2b2bff5fffff9f2e6f6934cec24 +28f0fdfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fbf5f6f4fbf8fefff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fbf5f6f5faf8fefef8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff9fff5f49488f1d9ddf7fdfff8fffff8fffff8fffff8fffff8 +fffff8fcf7f7f6f9f7fcfef8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8dcc2f3aeb0f3d2e8f7ffff +f8fffff8fffff8fffff8fffff8fff9f6bdb1f2b2b1f5fafff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffd +f6f6f1e0dddad2dce4e5f9fffcfffff8fffff8fffff8fffff9f9f6efe2d9d3d9 +dcddf2fdfdfffff8fffff8fffff8fffff9faf7f1e3d9d3d8dadbf1fdfefffff8 +fffff8fffff8fffff9faf9eedfdaced3d8d4ebf7fafffff9fffff8fffff8ffff +f8fffffbf7f0eeba8c80abddf7fffffcfffff8fffff8fefef8f9f4f3fffff9ff +fff8fffff8fffff8fffff9fefdf7e6dbd3d3d4d4effcfffffff8fffff8fffff8 +fffff8fffffaffffffbd8271a1d8f5fefefcfffff9fffff9e8dcd4d3d2d2edfa +fdfefff8fffff8fffff8fffff8fffff8fffffdf5eee2dcdcd3e4ebf0fdfdf9ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9faf5f3fefdf8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffbeceae3d5d6dad8ec +f5f4fcfffafffff8fffff8fffffbfffbedebe4d6d7dad7ebf3f3fcfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff7d9bef35026ee3ea2f3c291ee3c3cf2c5c5f21129ed71c8f6f7fdf8e3 +f5f8ccc6ef3232f1fffffaecd0f67d03ec0000ee0000ed1f2aeec7fafad8c0f0 +0000ed111ced88d0f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff9fffff40f0deb0085f4f0f8f9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffff5201dec017cf3dff1f8fffff8be +85ef87b2f5ecf5f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff9fff6f23936ebb5c5f6fafff8fffff8fffff8ffff +f8fffff9fffff54644ed0167f2b8dff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9c978f14944ef84 +c3f7fffff8fffff8fffff8fffff8fffff8fff9f5857fed6f79f2f4fff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffffcfffff08371650e00000000000000 +000000000000001c557c9ed2f6fffffbfffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffcf1 +d8c1935a26000000000000000011334271cbf0fdfffffeffffffe1cbbd692900 +000000000008303c56d5fffefffffcffffffe6d4c86f2c000000000000072731 +4dd3fffefffffcfffff6e0d3aa400000000000000000121c228ac1e9fffffeff +fff8fffff9fffff9e1e1b50f1a1d8ee6fffffffcfffff9fffef5e9de83131515 +ebfffefffff8fffff8fffffff9f4f1863500000000000001060829caffffffff +fbfffff8fffff8ffffffffffcd01010180e1fdfdffffffffff903c0604020000 +0000000021c0f3f5fcfffbfffff8fffffffff8d975381008030000000000007d +e7e7f4fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffffefff59f2624 +15c6d8d8fcfff9fffff8fffffefcbc672e200d00000000000000000000000070 +b9cae7fafdfffff9fffff8fffff8fffff8fffffafffffedda16936210e000000 +00000000002a84a9c7eaf9feffffffdfa6713f27100000000000000000287c9f +bee7f8fefffffafffff8fffff8fffff8fffff8fffff8fffffcfccc8b5e421b00 +0000000000000000000000548c98d0f6fffdd09369491e000000000000000000 +0000004e818dcbf5fdfffffafffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff9feeaf7bc83ed1d18ed595bee2d56f09567ed3939f1ffe0f8 +c96aed3574f5ccccf13232f1fffffae5d0f6772eeca1e6f8d26aeb2a61f2d7d7 +f30c1eed6bcef6dbd6ef0e18ec7db8f5fffff9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff6af91efb4d9f8fafdf8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff6b598f0b3d4f7f6fbf8 +fffff9a523ec1679f4daeef8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffff33939edbcc5f7fcfff8fffff8ff +fff8fffff8fffff8fffff7c1aaf1b2c7f6eaf6f8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9c578f1 +4647ef84c5f7fffff8fffff8fffff8fffff8fffff8fffff58585ef7379f3f9ff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffffbfffff4d2c9bcaea9a2b0 +b1abb0b3b7ccc0a06c5f3e1c55809ed2fafffffbfffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffffddab5b17539387ab1c7e6eae2ceab92520c1c46468ffffffff3d7bc9c4d +0b2e3c5dc7f1f6e2cbb4681f183b3b89fffffff5dec7a55209263254c4f0f7e7 +d4bf6e2114303082ffffffe9d2d26b0a182a5b9ffdfffff8eee2b47a421d2525 +d0fffefffff9fffff9fef2e0d6860d1d1d7ffffffffffff8eee6a9450b150000 +04131444f4fffefffff8fffff9fcf6f0c76302090b32b8edf8fbf7e584280307 +0769fffffffffff8fffff8fffffef3980001016ffdfdfeffffffd36b05050327 +b0e5f3fcfeee8d320a060260f2f2f7ffffffffffc816110d002c68c2cfddede3 +c09ca3c2f5f6f9fffff9fffff8fffff8fffff8fffff8fffffefffdc2652d2d0b +020300002cced8e0fdfff9fffff8fffffefcb2432e1d4ba5bbb2b8bab0b2b1ac +aa9f9ec7e0eaf5fcfbfffff8fffff8fffff8fffff8fffffbfffffea44b405d76 +89bbd5deeee9d4954c38200549b7b7d3ffffffaa564b607081b4d2dbedead69b +5541250645ababcdfffffafffff8fffff8fffff8fffff8fffff8fffffcfcc470 +5f3d3f7e8e9bbdc4b5b2b1abaca4a2bfcfd7ebfafffdc87969443d758497bec7 +b6b2b1abaca5a3becbd2e9fafcfffff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fff8f7d5c6f26e74f18d5bed2e26ef9c91ee487b +f4fce1f8c076ee3598f6ccccf13232f1fffffae5d0f67b2eec94d2f3610bed0b +38ef3810ed277ff4fffff9fef5f8d99eee0006ed1843f0c7e6f7fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8b468ee64acf5f5faf9 +fffff8b65fed508ef2b486ee110ced0011ed9dc5f6f7fbf8fffff8b972ee6aa6 +f4ebf5f8d091ef1b12ed0000ed5653ee222df0dadcf8c16dee6998f3ceb8f260 +47ee3958f1d9e1f8fffff6b589ef2116ed0000ef5c5ced1a1aedbcc5f7fcfff8 +fffff8fffff8fffff8fffff8fffff8c58af0769af3d3e9f8fffff8c786ef687a +f1947def3725ed001eee8db9f4e4d5f26d40ee0f00ed2846f0bcccf6fffff8ff +fff8fffff6c4a1f03c28ed0000ed4751ef5251efa7aff5f7fff8fffff8fffff8 +fffff8fffff8fffff8fffff6caacf04730ed0000ed2d48efadc6f5fdfff8ffff +f9c578f14647ef84c5f7fffff8fffff6d0b5f15236ed0000ee3939ee3d3ded73 +79f3f9fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffffcffd89d785625738689eefffcfffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffafff2d2b79747404647f0fffcc3 +bcb426324274d0fffffffffffff3c3c39c233b3baffdfdcdc7c02429376ccdff +fffffffffff5cecea51d3030abfefcd5d2c51218282ba0e9fffffffffff9d9d9 +b61522259dedfefffffcfffffee8e0dc40161e47bffbfffffffffefbf9f5d7c8 +ccd3dbbb62141529f4fffefffff8fffffef2f0e61d0a0e4ec3fffffffffffffd +f7f7c70407079afbfffffffbfffffffefefa42000030b7fafdfefffffff41f05 +0544bbf9fafdffffffffffffcf0c0c0a90eef2f9ffffa818100b37a6ecf1f9ff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffefffadb +ccd2dde9cd7a241f22ced8dbfdfff9fffff8fffffefca52d2e1b7dcfcfecffff +f9fffff8fffff8fffff8fffffafffffec3865142588ccbd7ecfffffafffff8ff +fff8fffff8fffff8fffffdffde8d473b1ca8b7b7f9fffafffff8fffff8fffff8 +fffffdffe0945244209dacacf8fffcfffffecc996c545a7bb0c3e2fffffbffff +fcfcba5f5f37609e9ed8fffffbfffff8fffff8fffff8fffffcfdbf6a693d5993 +93d4fffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8e5bff57202ec0000ee0000ee0000ee00 +00ed2439efb5e5f8c987ee3596f6ccccf13232f1fffffaecd6f6812dec1850ef +0000ed1017ed5174ef0807ed3536ed4657ef5742ed0000ee1720edc0fff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff99c0deb0885 +f3f0f8f9fffff9a943ec0c04ed5f8df2e2f2f6a365ed0f09ede1e5f9fefff9a3 +1dec127cf3dff1f9fef2f47521ed0e43f0c9c7f4b9b2f3f2f2f9b556ed1c09ed +0032ef9690f06f85f3e1e6f7a534ee1d01ed9bbef4e3e6f5bb97ef271decbcc5 +f7fcfff8fffff8fffff8fffff8fffff8fffff9b344ee2967f1b8dff8fffff9bd +6fef3010ec4773f2cfe3f49f5aee2505ed0000ee87a3f3e4d6f25143ed3178f2 +c0e6f8fffff8a65bef2b00ee8197f3dfe8f5c5a7f04332ec8f9bf5f7fff9ffff +f8fffff8fffff8fffff8fffff7b06df03309ed8094f3f3fef4a073ef2612ee89 +98f5fffff9c578f14647ef84c5f7fffff8c57ff14602ed6176f1d7e9f5ceb4f1 +5b44ed7379f3f9fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffffcffffe477775f275c81a9d8fafffffbfffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbf0d4b6914b1c46468f +fffff4bcbc9d274142b1fcfefffffcfffffccac3ba242a3b63c5f8c7c7af2136 +37adfcfefffffcfffffdd3cec523212e5bbdf7f8ebdbb5752d0811194d7ea6dd +e4d7984915252b9afffffefffff9fffaece0c0611c1e1eecfffefffff8fffff8 +fffff9fffff5e9e983141515f4fffefffff8fffffcf0f0ca080d0e9cfbffffff +fbfffffff8f7ec1f05063ab0f4fffffffffffefeda6f000000e9fefeffffffff +ffd605050493f5f9fcfffbfffffffffff4280c0b35a7f2f4faf742100f045886 +99654c34332c4a526fa9cee6f8fbfdfffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffffeffff9f262615ced8d8fdfff9fffff8fffffefcb24f2e1d1563 +7b6f777475879aa8ddedf0fcfff9fffffafffffeaf3939230072c3c3e6fffffa +fffff8fffff8fffff8fffff9fffffdd89146381d49b7b7d3fffffafffff8ffff +f8fffff9fffffdda9851412245acabcdfffffcfffffebb5858350060a5a5d9ff +fffafffffcfcc4785f3d1a4b5d59787d79838f9bc9dbe2fafffbfffffcfdc882 +69441b465754787e7a828c98c5d7dff9fffbfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8e0bef5772eed76c6f5f5eaf5 +e0e1f5d7c5f26339ee9fe5f8c985ee3596f6ccccf13232f1fffffae8d0f6832a +ec6fbff24128eda1edf9f6f3f8cebcf3c8c8f1161feca0dbf4dce0f7fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff997 +0deb0881f3f0f8f9fffff99e12eb0c7ef3eaf5f9fffff9fffbf21919eba4e5f7 +f7fff99e1dec1278f3dff0f8fffff9ab23ec177df4daeff8fffff8fffff9a82a +ec1a5ef1d3e6f8fffff8fffff9fffcf33231eb92ccf7f0fff8fffff9fffff339 +39edbcc5f7fcfff8fffff8fffff8fffff8fffff8fffff9af44ee2863f1b8def8 +fffff9b549ee2c60f1b3dbf8fffff9fff0f2504aed9fadf6f8fff9fffff9ba56 +ef345af1a6d6f8fff7f45b57ec7aa2f4e8fff9fffff9fffff46262ee949bf5fa +fff9fffff8fffff8fffff8fffff9fff8f46d68ed7290f3e7fff9fffff9fffdf5 +7472ed5787f2d4fdf9c578f14647ef84c5f7fffdf57e7ced5c80f2dbfff9ffff +f8fffff58585ef7379f3f9fff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffafffffdd39d7551233d8787bcfffffbfffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffaf9e1c9a76d332840 +48acebfffffce2bcb36d273f42b2f6fefffffdfffffaccc3b420243b3ab1eac7 +c77e213437aef5fefffffdfffffbd6cebe221b2b2fa2eafffaead3bc71141a13 +62806000000008172154a7e2fffffefffffcf3dede8e0e191e77d3fffffeffff +f8fffff8fffff9fffff5e9e683141515f4fffefffff8fffef8f0e58b080d0e9d +f3fffffffcfffffef8f7e5290406058fe5fffffffefdfda103010065cdfeffff +fffffffff39505050394edf9fcfffcffffffffffed340c0b028feef0f9c21010 +0c00306fb1bfbed1d7d49765120d080075c6e7f2fbfefffff9fffff8fffff8ff +fff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffff8fffffef7c18b +6a717e8a9994a69378211c16000039b9cad9fafff9fffffbf8f3e6f1f4f1fbfd +f8fffff8fffff8fffff8fffff8fffffdf0b478402a1466a4b8dff7fefffffaff +fff8fffff8fffffdf0b8804a3017609aaddaf6fefffffafffffbf9f5e9f1f4ee +f9fcf8fffff8fffffcf9d0a68b817b7b8c8fa3988042382c00002b8c98b5f6ff +fff9d3ac92847b78898ea299824a3e31000028818dadf5fffbfffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000 +ee0000ee0000ee0000ed2639efbee5f8c985ee3596f6ccccf13232f1fffffae5 +d0f6782eeca0e1f7bd4dec1a48f09c8bf19090f19288ef1115ed7a92f28d89ef +6b7ef3fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff9970deb0881f3f0f8f9fffff99a12eb0b7ef3eaf5f9fffff9fffff41919 +eb7adaf7f2fef99e1dec1278f3dff0f8fffff9a123ec1575f3daedf8fffff8ff +fff9a42aec1971f2d3eaf8fffff8fffff9fffcf33231edc2ccf7fcfff8fffff9 +fffcf33938edbcc5f7fcfff8fffff8fffff8fffff8fffff8fffff9af44ee2863 +f1b8def8fffff9b149ee2b60f1b3dbf8fffff9fffcf3504feea5adf6fbfff9ff +fff9b756ef325af1a6d6f8fffcf45b5aeea0a2f5fdfff9fffff9fffcf46261ee +949bf5fafff9fffff8fffff8fffff8fffff9fffff46d6dee8a90f4fafff9ffff +f9fffff67474ef4383f2c2f9f9c578f14647ef84c5f7fffdf57e7cee7a80f3f9 +fff9fffff8fffdf58583ef7379f3f9fff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcffebb975653a517d89cff5fdfffffaffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffdefd6be8e531925 +3c49a4dffffffffffffff4bcbc9d254142aafcfefffffcfffffccac3ba242a3b +63c5f8c7c7af1f3637a5fcfefffffcfffffdd3cec52322305cc2f8d2d2b21424 +2c8cd9fffffffffcf4e9c79c630d1c2570c9fffffff6dedea3172020bffffeff +fffafffff8fffff8fffff9fffff5e9e683141515f4fffefffff8fffffcf0f0ca +080d0e92fbfffffffbfffffff8f7ec1f05063ab0f4fffffefdfdb9010101b7ff +fffffffaffffffffffd60505048af5f9fcfffbfffffffffff4280c0b37aef2f4 +fbc910100c97eeeef8fff9fffffdffffff8217170b80cfe6f4fcfffff9fffff8 +fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffff8ffff +f8fffff8fffff8fffff8fffffeffffd034342854adcadff7fefffff9fffff8ff +fff8fffff8fffff8fffff8fffffbfffffed7995d361f0a5e99b9dcf2fffffffa +fffff8fffffbfffffed99f663f250b5890aed6f0fffffffafffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcffffdb66664e3f +8398c2f0fefffffafffff8fffff8fffffcffffde7171573b798dbceffefffffb +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8e1bef574 +2bed5fbbf5f2e6f5dce0f5d1c5f26339ee9fe5f8c985ee3596f6ccccf13232f1 +fffffae5d0f6752eec92f5f9d4a7ed171bee869bf1757cf1a095ef1217ed7b9c +f26d67ef85a0f3fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff9970deb0881f3f0f8f9fffff99a12eb0b7ef3eaf5f9fffff9ff +fff42819eb78daf7f2fef99e1dec1278f3dff0f8fffff9a123ec157df4daeff8 +fffff8fffff9a42aec1971f2d3eaf8fffff8fffff9fff5f23230ebafccf7f8ff +f8fffff9fffcf33938edbcc5f7fcfff8fffff8f6f6f8fcfcf8fffff8fffff9af +44ee2863f1b8def8fffff9b149ee2b60f1b3dbf8fffff9fffcf3504feea5adf6 +fbfff9fffff9b756ef325af1a6d6f8fff7f45b57ec7aa2f4e8fff9fffff9fff2 +f3625aed949bf5fafff9fffff8f8f8f8fafaf8fffff9fff8f46d68ed7790f3eb +fff9fffff9fffdf57472ed5787f2d4fdf9c578f14647ef84c5f7fff9f57e78ed +6e80f2edfff9fffff8fffdf58583ef7379f3f9fff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffcfffffda4747229286088abdbfffffbff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffcd9c3aa5b2810 +3b4a71d8fffefffffafffffafffffcc4bcb4242d4169c2fcfffffffffff1c3c3 +9623393baff7fdcdc7c023263660bffcfffffffffff3cece9e1d3030adffecd2 +d27c1c2b2cb1fcfefffffbfffffeded9d52215212e9de8fbedddc66712202097 +fffffefffff8fffff8fffff8fffff9fffff5e9e683141515f4fffefffff8ffff +fef2f0e61f090d40b2fbfffffffffffdf7f7be0406079af3fffffdfbe1750101 +0189fffffffffff8fffffffffff422050536aaf5f9fdffffffffffffc60c0c09 +90e8f2f9fef027100f50bbeef3fbfffffffeffffff7717170a80cfe6f4fcffff +f9fffff8fffff8fffff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9ff +fff8fffff8fffff8fffff8fffff8fffffeffffe434342d54a6cadff5fefffffb +fcf6f0f6f9f2fcfef8fffff8fffffdfffff7a16c3f220f2993bbc9f0fffcffff +f9fffff8fffffdfffff7a774492812268ab0c1eefffcfffff9fffff8fffff8ff +fff9fcf8f1f6f9f2fbfef7fffff8fffff8fffff8fffff8fffff8fffffcffffea +6666583f7d98c2edfefffffafffff8fffff8fffffcffffec7171623b748dbceb +fefffffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +eacbf58328ec0000ee0000ee0000ee0000ed2639efbee3f7c97ded358ff6cccc +f13232f1fffffae8d0f67f28ec79c6f5b360ed2a9df5d7d7f02727efe0d9f643 +22edbacdf02121f0fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff99c0deb0881f3f0f8f9fffff99e12eb0c7ef3eaf5f9 +fffff9fffff41919eb7adaf7f2fef9a31dec1278f3dff0f8fffff9af31ed1719 +efd4ddf5c6baf3f5f2f9ab2aed1a71f2d3eaf8fffff8fffff9fffff55d32ed0b +32efc6d7f5e3dcf3652eed0f00edb5c5f7fafffafcb8f03d28eb72b6f6e5fcf8 +fffff9b344ee2963f1b8def8fffff9b549ee2c60f1b3dbf8fffff9fffcf3504f +eea5adf6fbfff9fffff9b756ef325af1a6d6f7fffff79e5bf02600ed7284f1ad +9ff04031ed0000ed949bf5fafffafdc7f26642ec598ff3d4faf9fffff7a06df0 +2722ee87a9f4f9fff5af7aef3206ee8989f5fffff9c878f14847ef84c5f7ffff +f7997eef1b20ee7c9ef3ece9f4936def2400ec6f79f3f4fff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffcf3c67d6a4509728a8aeafffc +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffffeccb1ae3e00 +00223a4395c8dadcccc3bdbeb8bbbebed4e3f3f1d3bc95421032406cd4fcf9e5 +d0ba702e153b3b7dfffffff3dac79e460d2a3564d2fcf9e9d8c4773011303076 +fffff7d7d2b01b0e1a2a6da9fdfffefbf3e8c3966413212593e8fee0ddd8211b +2169d7fffffffdfffff8fffff9fffefafaf4dcd3d9dfe7b966101414c3f1f5dd +d4d7fdfffffcf5f0be54030a0c45c8fbfafbf8ec8e3a0307075afffffffcfbf0 +1a020355d2fffffffefffff8fffff9ffffffca5c0505023bc0f4f4fdfff59744 +0a070352f2f2f6ffffffcc71100e070e9cc8e0f8fcfadba56b130e098ad4e7f5 +fdfcfffff8fffff8fffff8fffff8fffffdfff8e0d6dfe8f6cc81261e11a3ced2 +d7d7daf7f7f8ffffffa249366d8ca2c7d5dbefefd88b3d2a170319b4cad0f9ff +fcfffffeb74a39250572c3c3e6fffffffffffc83403f1700005691a7c8cdcdcb +c6bfbab8b0c0d0e2eef4fd8a4b4b1b000051899ec3cdceccc6c0bab9b1c0cdd8 +ebf2f9ffffffc26558390760a5a5d9fffffdfffffeb8746675737eb0c9d5eaec +daa569542d07138798a5f3ffffbd7e70776d76aac6d4e9ebdaaa735d3207117e +8d9bf2fffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8dfbef57936ed84e1f7fdfef8fafaf8e2c5f57b34ed89eef8fafbf6eb +fff8ccccf03232f1fffffaf0daf68f2cec0000ee1924ee88b5f13f18ed31a8f5 +d9d9f52424eeeedcf67100eb1d20efecfffafffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff9940deb1695f5f1f9f9fffff99712eb1987 +f5ebf6f8fffff9fffff42719eb82e1f7f3fef99c1dec1e8bf5e1f3f8fffff9ff +e7f12420ed0000ed0000edd7d7f9aa2aed2779f4d5ecf8fffff8fffff8fffff9 +ffe8f3332eee0000ee0000ed8383ef2525edc2c5f7fefffafcc1f13d2bec83bc +f6eafef8fffff9ad44ee3273f3bde4f8fffff9af49ee3567f2b7def7fffff9ff +fcf3504feea5adf6fbfff9fffff9bf61ef365df1a6d4f7fffff9fffff6af8ff0 +301ded2248f0a4a8f1594eee949bf5fafffafdcef36647ec6694f3ddfdf8ffff +f9fffff69a6fef2100ed0000ed0005ee7f8ff5f5fff9fffff9c478f14c53f08b +d0f7fffff9fff1f57f71ef0000ed0000ee5151ee5858ee7779f3fdfff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffffcffffe372725c235981a7d4 +f6fffffbfffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffafffff9c7 +b1a3340000000000000000000000000000092d415cbbf1ffffffe1cbbd692900 +00000000000d303c66d5fffefffffcffffffe6d4c86f2c0000000000000b2731 +5ed3fffefffffcfffdf3ddc99b300000000000000000131d2593c9f5fff7e6dd +ae4a202147fbfffefffff8fffff8fffff9fffef4e6dc86000000000000000000 +000004111242f4fffffffffff9f4f186350000000000000206083dcafffffffe +fbfbc64f03032efbfffffffff8fffff8fffff8ffffffffffff903c0604020000 +0000000035c0f3f6fcfffbfffffffffffea8651b0c070100000000000080bfe8 +f4fbfffffff9fffff8fffff8fffff8fffff8fffffefff4a22322140000000000 +0000000000002ccbd5ddfdffffd28d4824150600000000000000002d99c8d7f2 +fefdfffffbfffffec05139283182c3d0ebfffffffffff178403b130000000000 +0000000000000000001775b2bee5f87f4b491600000000000000000000000000 +00166d9fb5e0f9ffffffca6b583d2e6ea5b8e0fffffcfffffddda8734c2c0c00 +00000000000000227497b0e6fdfeffffffdfae7d54310e000000000000000020 +6b8ca7e3fdfdfffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8dcbef5733aed8eeef9fffff8fefcf8ccbcf13f36ed94f5f9 +fffff8f2e3f39a61ed3232f1fffffae8d0f67c28ec82e4f9f1daf79221ec2832 +f2fff9f9dabbf02124eeedfffadedef20f1cec86dff7fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffcf6ebf1f6f5faf8fefff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fff9f7e7e6f5eef8f7fcfff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fbf7 +f7fdfbf7fffff8fffff9e3a9f0512dee9b9bf5fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8f4eff6e7e3f6f2f2f8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffbf7f0edf6e9eff6f8fef8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f9faf8f5e9e3dde4e6e5f6fffcfffff8fffff8fffff8fffff9fbf9f6e9e3dde3 +e5e3f5fffcfffff8fffff8fffff8fffff9fcfaf3eae3d9e2e3e3f5fffdfffffd +efdbdb7a121f2192e8fffffefffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fefefbebe4dde0dfdef3fffdff +fffdfdfafa8b02040383e5fffffffffff8fffff8fffff8fffff8fffff8fffffd +ede5dedfdeddf2fefcfefff8fffff8fffff8fffff8fffffcf8f3e5e5e3ddf1fc +fafefff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffafffdf3f4efe2e5e4e2f8f9f7 +fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +fffef4f7f2e5e8e6e1f3f4f2fffffafffff8fffff8fffff9fffef5f8f3e6e9e6 +e1f2f2f1fffffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8debef57b39ed94eaf9fffff8ecd0f68629eb2d39 +efd5fff8fffcf7cac1f00715ed4e85f3fffff9e6d0f6732cec79f5f9fffbf7f9 +eaf6e4f9f9e3d8f43f05ec2440f1fffff9fffdf8fff5f8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffffa0b0bec0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ed7777f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f9fffff4dbdb9b1b2222cefffefffff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffffdfafab0030404c7fffffffff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff9bdbdf60000ec0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee1f1fedffff +fafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9ffeaf5b2a3f1807fef6f72f09cb5f4e6f4f7fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0cc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccc0c0c0ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff +fffdffecfbc291ef3c5ef6f8f5fee7dcfbfefffffffffffffdfee5dcf79590f6 +f1fffff8f2fdd2bbf6b7bbf8c0c0f7b2bffafffffff2e6fc934cec2428f1fdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc89ff3a6c5fbeff7fffffffffcf6fdf5fafefdfeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffcf9fcfcf9fcffffffff +ffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfaf6f1e6 +dddad7dce4eaf9fffffffffffffffffffffffffffff9f6f6e2d9dad9dce2f2fd +fffffffffffffffffffffffffffaf7f7e3d9dad8dae1f1fdffffffffffffffff +fffffffffefaf9f5dfdad4d3d8daebf7ffffffffffffffffffffffffffffffff +f7f0efba8c84abddfdfffffffffffffffffffefefef9f4f9ffffffffffffffff +fffffffffffffffefdfde6dbdad3d4daeffcffffffffffffffffffffffffffff +ffffffffffbd8275a1d8fcfefefffffffffffaeee3dcd4d3d9e1f5fdfeffffff +fffffffffffffffffffffaefe4ddd5d3d9e0f3fcfcfeffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffaf5fafefdfeffffffff +fffffffffffffffffffbf1e7e1d8d5d9deeff7f9fdffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffbf6fbfdfcfdffff +fffffffffffffffffffffffbf3ebe4dbd7daddebf3f5fcffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffbf8fbfdfafd +fffffffffffffffffffffffffffffdeeeae5d7d6d3dde7ecf5fbffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +d9bef85026ed3ea2f8c291ef3c3cf6c5c5f51129ec71c8fcf7fdfde3f5fcccc6 +f03232f1ffffffecd0fb7d03eb0000ee0000ed1f2aedc7fafdd8c0f00000ed11 +1ced88d0fdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffa92aeb1a6cf7d3e9fefffffb322feb0172f7cde9feff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff8c37570437d8989 +f5ffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff1d8c1935a +26000000000000000011334272cbf0ffffffffffffffe1cbbd69290000000000 +0009303c57d5ffffffffffffffffe6d4c86f2c0000000000000727314ed3ffff +fffffffffff7e0d3ae400000000000000000121c238ac1edffffffffffffffff +fffffff9e1e1b90f1a1d8ee6fffffffffffffffffef5e9de86131515ebffffff +fffffffffffffffff9f4f186350000000000000106082acaffffffffffffffff +ffffffffffffffffd201010180e1fdfdffffd3833b0503010000000000000000 +39afdff6fbfeffffffffd589430e0904000000000000000036a7d5eef8fdffff +fffffffffffffffffffffffffffffffffffffffffffffffff5a2262416c6d8d8 +fcffffffffffffffffda975a26170a00000000000000002f92bbd7f0fbffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff6af444127aa +b9b9f9ffffffffffffffffdfa6723f27110000000000000000287c9fc0e7f8ff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7bc635e +398e9b9bf7ffffffffffffffffffffe5986b58210000000000000000426683c2 +dff6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffeeafabc83ec1d18ed595bef2d56f29567ec3939f2ffe0fac96aeb35 +74f9ccccf23232f2ffffffe5d0fa772eeaa1e6fbd26aeb2a61f8d7d7f60c1eec +6bcefddbd6f00e18ec7db8fbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffa42aeb1971f7d3eafefffffdbba0f3b2cefc +f0f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffedb9c786223060b0000 +1d8288a1f9ffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffda +b5b175393a7ab1cde6eae8ceab96520c1d464691fffffff3d7bc9c4d0b2e3c60 +c7f1fce2cbb9681f193b3b8bfffffff5dec7a55209263257c4f0fde7d4c36e21 +14303084ffffffe9d2d26b0a192a5ba2fdfffff8eee4b47a441d2525d0ffffff +fffffffffffef2e0d6860d1d1d81fffffffffff8eee6ae450b15000005131445 +f4fffffffffffffffffcf6f0c76302090b34b8edfefbf7eb84280307076cffff +fffffffffffffffffffef39800010171fdfdfeffffff8814055096b9dde9eff2 +e9d3771a09050163f2f2f7ffffff8d1e105390b1d6e5edf2e9d47d23120a025f +e7e7f1fffffffffffffffffffffffffffffffffffffffdc7652d2e0b02030000 +2dced8e0fdffffffffffffffff9b392d59809cc6dce7efe9d88b3c2a170453ca +cae0fffffffffffffffffffffffffffffffffffffffffffffdce7a4a42140306 +000027b1b9c8fcffffffffffffffffaa564b607085b4d2e1edeadc9b55432506 +47ababcefffffffffffffffffffffffffffffffffffffffffffffed68f67561d +0509000021949bb0faffffffffffffffffb56a6a36225492abd0feffffe7c09c +5e40236f8d8de7ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff8fcd5c6f46e74f38d5bed2e26f19c91f0487bf7fce1fa +c076ed3598fcccccf13232f2ffffffe5d0fb7b2eeb94d2f8610bec0b38f03810 +ed277ff7fffffffef5fdd99eee0006ec1843f1c7e6feffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffffeca2ef0c36f1f1f4feffffffffffffff +fff94014eb95defdf6feffb765ed5484f5a97aef140ded0027efb5e1fcebcbf3 +471aee0600ec345bf3e1e9fdffffffffffffa42aeb1971f7d3eafeffffffbf7d +ef6fa1f9e0f0feffffffc077ef5e85f4a488f12a1eed000fed85aafaecf6ffff +fffd8b40ef89b2fae3fbfffffffffffff75747efb0b7fafafbf76449ef413cef +4b4cef5865f04f3dee8aaef9e3faffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffcecdee0e1db +cda36e5e3f828993f9ffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff2d3b79749404648f0fffec3bcb92632 +4274d0fffffffffffff4c3c3a0233b3baffdffcdc7c62429376ccdffffffffff +fff6cecea91d3030abfefdd5d2ca1218282ba0edfffffffffff9d9d9ba152225 +9dedffffffffffffffe8e0e040161e47bffffffffffffefcf9f5dec8ccd9dbbb +6614152af4fffffffffffffffff2f0ec1d0a0e4ec3fffffffffffffdf7f7cb04 +07079afbfffffffffffffffefefe42000030b7fefdfeffffffffffffffffffff +ffffffffffffffd46b0c0a07def2f2feffffffffffffffffffffffffffffffd6 +7217130bd4e7e7fdfffffffffffffffffffffffffffffffffffffae2ccd2e3e9 +cd7e241f24ced8dbfdffffffffffffffffffffffffffffffffffffffffffdb83 +342b16b9cacafaffffffffffc38653425891cbd7edfffffffffffffffae6d3d8 +e2e4cd8c40372eb1b9c0fcffffffffffffffffffffffffffffffffffffffffff +e0965244229dacacf8ffffffffffcc996d545a7fb0c3e4fffffffffffffffbea +dadde1dfcd9a5d4f38949ba4fafffffffffffffff8766a6509528893cef6ffff +ffffffeb7171614e828dcbf5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe5bffa7202eb0000ee0000ee0000ee0000ed2439 +efb5e5fac987ed3596fcccccf13232f2ffffffecd6fb812deb1850ef0000ed10 +17ee5174f00807ed3536ee4657f05742ed0000ed1720edc0ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdfffffffffffffffbf30d0de985ddfef8feff +ffffffeb9feb120ceeeaeafeffffffab48ec1005ec5b93f6edf5f9842bed0e02 +ed0000efaed2faeccef2221ceb3f9cf9e3f4feffffffa42aeb1971f7d3eafeff +ffffaa2feb1d72f6cde9feffffffb55fee220bec5179f5d0e5faae7bef2414ec +bfc2fafefffb4040ec65b5f9e0fcfffffffffffcf54746eca9b7f9f9fbfbc5bf +f7b6b6f7dce2f7684bef0f00eb95adf9f3ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffc3757543828989f9ffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff0d4b6914b1d464691fffff5bc +bca1274142b1fcfffffffffffffecac3c0242a3b63c5f9c7c7b4213637adfcff +fffffffffffed3ceca2321305bbdfdf8ebdbb5752e08111a4d7eaadde4d79849 +15252b9dfffffffffffffffaede0c0631c1e1eecffffffffffffffffffffffff +fff5e9e986141515f4fffffffffffffffdf0f0ce080d0e9cfbffffffffffffff +f8f7f31f05073ab0fbfffffffffffefeda71000000e9fefeffffffffffffffff +ffffffffffffffffffffcb6e0a090563f2f2f7ffffffffffffffffffffffffff +ffffcd751512095fe7e7f1ffffffffffffffffffffffffffffffffffffffffff +ffffffffffa2262616ced8d8fdffffffffffffffffffffffffffffffffffffff +ffd48632291553cacae0ffffffffffffaf3939230075c3c3e7ffffffffffffff +ffffffffffffffaf444427b1b9b9fcffffffffffffffffffffffffffffffffff +ffffffda9851412247acabceffffffffffffbb5858350063a5a5daffffffffff +ffffffffffffffffffbc636339949b9bfaffffffffffffffffeabc8a5c3b171c +3a5997bdd3c99f6f4f2a4f8d90ccffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffe0bef9772eec76c6fbf5eafbe0e1fbd7 +c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe8d0fb832aeb6fbff4 +4128eca1edfff6f3fecebcf7c8c8f3161feca0dbfadce0fdffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffff9d18e90824 +f3f0f2fefffffb4412e92096faedf7ffffffffa118e90f7bf8e5f3feffffffff +ecf31f1cebcddffcfcffffffffffa624ea1674f7d8edfeffffffa42aeb1971f7 +d3eafeffffffa62feb1c6ef6cde8feffffffac35ec206bf6c8e5fefffffffffc +f53c3bea8bc2faedfffb4040ec65b5f9e0fcfffffffffffcf64746ecaeb7f9fb +fffffffffffffffff7bef24b32ea7daff8e8ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdc3757343828989f9ffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff9e1caa76d35284048acebff +fffce3bcb370273f42b2f6fffffffffffffcccc3b920243b3ab1ebc7c7812134 +37aef5fffffffffffffdd6cec4221b2c2fa2eefffaebd3bc75141a1462806200 +000008172254a7e7fffffffffffff3dede8e0e1a1e77d7ffffffffffffffffff +fffffffffff5e9e686141515f4fffffffffffffef8f0e58f080d0e9df3ffffff +fffffffff8f7eb290406058feafffffffefdfda103010065d2feffffffffffff +ffffffffffffffffffffffeb9c500a060387d9f3f9feffffffffffffffffffff +ffffffeca058140d0681cfe8f4fcffffffffffffffffffffffffffffffffffff +fffffffffffffffffba2262516ced8d8fdffffffffffffffffffffffffffffff +ffffeeac6d2e1e0f70b5cbe7f9fffffffffffffff8f3ecf1f4f8fbfdffffffff +fffffffffffffffffffffcaf444327b1b9b9fcffffffffffffffffffffffffff +fffffffff0b8824a3018609aaddaf6fffffffffffffff9f5eff1f4f5f9fcfeff +fffffffffffffffffffffffffcbc636139949b9bfaffffffffffffffffffefbc +6b5f3b4358433242320000001f557fa6d1f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffeacbfa8328eb0000ee0000ee +0000ee0000ed2639efbee5fac985ed3596fcccccf13232f2ffffffe5d0fa782e +eaa0e1fbbd4dea1a48f19c8bf29090f39288f01115ed7a92f38d89f16b7ef7ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ddf00e0ce8c3f0fefcdbef1210ead2ecfdfdffffffffff9c18e90e7bf8e5f3fe +fffffffffbf31f1eead5dffcfdffffffffffa124ea1674f7d8edfeffffffa42a +eb1971f7d3eafeffffffa62feb1c6ef6cde8feffffffa835ec1f6bf6c8e5feff +fffffffffa3c3ceb68baf9e2fcfb4040ec65bbf9e0fefffffffffffcf64746ec +aeb7f9fbffffffffffffccf34e38eb619df8dbf6ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffdc3757343828989f9ffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffefd6be8e531a253c49a4df +fffffffffffff5bcbca1254142aafcfffffffffffffecac3c0242a3b63c5f9c7 +c7b41f3637a5fcfffffffffffffed3ceca2322305cc2f9d2d2b714242c8cd9ff +fffffffcf4eac79c660d1c2570c9fffffff7dedea7172020bfffffffffffffff +fffffffffffffffffff5e9e686141515f4fffffffffffffffdf0f0ce080d0e92 +fbfffffffffffffff8f7f31f05073ab0fbfffffefdfdbe010101b7ffffffffff +ffffffffffffffffffffffffca792a0704017ccaf5f9fdffffffffffffffffff +ffffffffcd7f3410090376c0eaf4fbffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffba2262516ced8d8fdffffffffffffffffffffff +ffffffd38f4d27170768a9cde5f6ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffcaf444327b1b9b9fcffffffffffffffffff +ffffffffffd99f673f250b5890aed6f0ffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffcbc636139949b9bfaffffffffffffff +e46a6a57447a94c4ecfffffffff3d7b3675135316a8db4e2ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe1bef9742bec5fbb +faf2e6fadce0fad1c5f66339ec9fe5fac985ed3596fcccccf13232f2ffffffe5 +d0fa752eea92f5fcd4a7ed171bed869bf3757cf2a095f01217ed7b9cf36d67f1 +85a0f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +fffffffffffd660eea0e8ff49f2deb0c61f6ecf3feffffffffffff9c18e90e7b +f8e5f3fefffffffffbf31f1eead5dffcfdffffffffffa124ea1674f7d8edfeff +ffffa42aeb1971f7d3eafeffffffa62feb1c6ef6cde8feffffffa835ec1f6bf6 +c8e5fefffffffffffb493ceb69baf9e1fcfd6640ed3388f6caecfefffffffffc +f64746ecaeb7f9fbffffffe5f54c41eb528cf7d4eefeffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffdc3757343828989f9ffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffed9c3af5b28113b4a72d8 +fffffffffffffffffffffec4bcb9242d4269c2fffffffffffff2c3c39923393b +aff7ffcdc7c623263760bffffffffffffff4cecea21d3030adffedd2d2801c2b +2cb1fcffffffffffffffded9d92215222e9dedfbedddc6671220209bffffffff +fffffffffffffffffffffffffff5e9e686141515f4fffffffffffffffff2f0ec +1f090e40b2fffffffffffffdf7f7c30406079af3fffffdfbe1750201018dffff +fffffffffffffffffffffffffb843e06040236c2f6f8fdffffffffffffffffff +fffffffffb8946110a0434b9ebeffaffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffba2262516ced8d8fdffffffffffffff +fffffffc985d2e180b2ea2ced9f4fffffffffffffffffffffffffffffcf6f6f6 +f9f9fcfefefffffffffffffffffffffffffffcaf444327b1b9b9fcffffffffff +fffffffffffca7744b2812278ab0c1eefffffffffffffffffffffffffffffcf8 +f8f6f9f9fbfefefffffffffffffffffffffffffffcbc636139949b9bfaffffff +fffffff8c26a653f5e9294d7fdffffffffffffff857171174e8291cbf5ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffeacbfa83 +28eb0000ee0000ee0000ee0000ed2639efbee3fac97dec358ffcccccf13232f2 +ffffffe8d0fb7f28eb79c6fab360ec2a9dfbd7d7f12727f1e0d9fb4322eebacd +f12121effbffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffff +ffffffffffffffffffffffbbef0f0bed0000eab2edfefaffffffffffffffffa1 +18e90f7bf8e5f3fefffffffffbf31f1eead5dffcfdffffffffffa124ea1674f7 +d8edfeffffffa82aeb1a71f7d3eafeffffffaa2feb1d6ef6cde8feffffffac35 +ec206bf6c8e5fefffffffffffb3c3ceb68b9f9e2fcffb94fee2906edacbdf9ec +edf77f3fee1800ecb2b7fafdfef74b4aee0000efacb1f9dbdcf9cac0f7d7e1fc +f4fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffbeee5e8eae8d2ac745d35678388cfe1eced +e9eefeffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffccb1b13e0000223a45 +95c8e0dcccc8bdbebdbbbec3d4e3f9f1d3bc95421032406fd4fcfee5d0bf702e +153b3b7ffffffff3dac79e460e2a3567d2fcfee9d8ca773011303078fffff8d7 +d2b41b0e1b2a6dacfdfffffbf3eac3966913212593e8ffe0dddd211b2169d7ff +fffffffffffffffffffffefcfaf4e3d3d9e6e7b969101414c3f1fcddd4defdff +fffcf5f0be54030a0c47c8fbfffbf8f38e3a0307075dfffffffcfbf71a020355 +d2ffffffffffffffffffffffffff5c050502000071bfe2e3d0cbc2c3c2b7b5b0 +c3d9fbfcfdff6310100600006cb7d8decfccc3c3c3b8b5b1c3d6eff9fbfeffff +fffffffffffffffffffffffffffff8e5d6dfeff6cc85261e11a3ced8d7d7e2f7 +f7f9ffffff762d2d1000005ea0bdd1ced0c8c5c4b9b7b3c1d1e7f2f7fdffffff +b74a39250575c3c3e7fffffffffffffff9e9dbe2edf1ce9444361f8cb1b9d4db +e6f3f2f5feffff8a4b4b1b00005189a2c3cdd4ccc6c5bab9b5c0cddfebf2fcff +ffffc26558390763a5a5dafffffffffffffffaece1e6ebebd0a3624e2d75949b +d1dfeaefecf1feffea7c6a5b0e2f5b91b5d5fefffff0d3b5654e36477e8dc6f2 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +dfbef97936ec84e1fffdfefefafafee2c5f97b34ec89eefefafbfcebfffccccc +f13232f2fffffff0dafb8f2ceb0000ee1924ee88b5f33f18ed31a8fbd9d9fa24 +24eeeedcfc7100eb1d20f0ecffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfd +fdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b4fd +fdfdfffffffffffffffffffffffffffffa550fea0553f3edf3feffffffffffff +ffffff9918e91c84f9e6f4fffffffffffbf31f1eecd5dffcfdffffffffffac33 +ea1773f7d8ecfeffffffa12aeb2583f8d5eefeffffffa42feb2780f7d0ecfeff +ffffa635ec2a73f7cbe7fefffffffffffb473ceb70bff9e4feffffeaf5413aee +0000ed0000ee6455ed2620ecb7b7faffbff14b30ed0000ee0000ee0000ee0000 +eb609ff8daf8ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2f2f2ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff8c6726d44000000000000000000 +00001c7f869ff9ffffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffbc7b1a83400 +00000000000000000000000000092d435cbbf6ffffffe1cbbd69290000000000 +000e303c67d5ffffffffffffffffe6d4c86f2c0000000000000b27315fd3ffff +fffffffffdf4ddc99f300000000000000000131d2693c9fbfff7e7ddae4c2021 +49fbfffffffffffffffffffffffffef5e6dc8900000000000000000000000411 +1243f4fffffffffff9f4f186350000000000000206083ecafffffffefbfbc651 +030330fbfffffffffffffffffffffffffff34d05050200000000000000000000 +000000001e9cf2f2faff5510100500000000000000000000000000001d93dce9 +f6fefffffffffffffffffffffffffffffffff4a6232215000000000000000000 +00002dcbd5defdfff56a2d2b0d00000000000000000000000000001980c0cfeb +fcffffffc05139283186c3d0ecfffffffffffffff6b2423f2700000000000000 +0000000026aeb7c6fbfff67f4b48160000000000000000000000000000166da3 +b5e0fbffffffca6b583d2e71a5b8e2fffffffffffffff7be605b390000000000 +000000000000209198adfafffffff8da8d6651190000000000000000486b8cc7 +e3fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffdcbef9733aec8eeefffffffffefcfdccbcf33f36ed94f5fffffffef2 +e3f99a61ed3232f3ffffffe8d0fa7c28ea82e4fff1dafb9221ea2832f3fff9fd +dabbf12124ecedfffededef50f1ceb86dffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffafde9e8fbedf2fefbfdffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbff2 +f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf8f8 +e9e3e3e4e6eaf6fffffffffffffffffffffffffffffbf9f9e9e3e3e3e5e9f5ff +fffffffffffffffffffffffffffcfaf9eae3dfe2e3e8f5ffffffffffefdbdb7a +12202192edffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffefefeebe4e3e0dfe4f3fffffffffffdfa +fa8b02040383eaffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff4efece5e1e1eaf1f3 +faffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffdebef97b39ec94eaffffffffecd0fa8629ea2d39efd5ffff +fffcfccac1f00715ec4e85f7ffffffe6d0fa732cea79f5fffffbfef9eafbe4f9 +fee3d8f83f05eb2440f1fffffffffdfffff5fdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b4fdfdfdffffffffffff0b0bea0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ebacacf8ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +bfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8d8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5 +dbdb9f1b2222ceffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfafab5030404c7ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffbdbdf90000ea0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed1f1fecffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8d8d8d8d8 +d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8 +d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3 +e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b4fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffbfbfbff2f2f2ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffd8d8d8d8d8d8ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe3e3e3cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdb4b4b4 +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccc0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff7fffff7ffec +f7c291ee3c5ef3f8f5f9e7dcf6fefff8fffff8fffdf8e5dcf39590f3f1fff9f8 +f2f8d2bbf3b7bbf4c0c0f2b2bff5fffff9f2e6f6934cec2428f0fdfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8c89ff0a6c5f5eff7f8fffff8fcf6f6f5faf8fdfef8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8d7baf3acb4f3d8ecf7fffff8fffff8fffff8fffff8fffff9fff8 +f6b3a7f2bbbbf5fbfff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff9fcf9f5fcf9f6fffff8fffff8ffff +f8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffdf6f6f1e0dddad2dc +e4e5f9fffcfffff8fffff8fffff8fffff9f9f6efe2d9d3d9dcddf2fdfdfffff8 +fffff8fffff8fffff9faf7f1e3d9d3d8dadbf1fdfefffff8fffff8fffff8ffff +f9faf9eedfdaced3d8d4ebf7fafffff9fffff8fffff8fffff8fffffbf7f0eeba +8c80abddf7fffffcfffff9fdfcf6e5dad3d4d5d6effcfefffff8fffff8fffff8 +fffffafefdf2e1dbced0d4cfe9f6fafffff9fffff8fffff8fffff8fffffaffff +ffbd8271a1d8f5fefefcfffffcfffae7e3dccfd3d9dbf5fdfdfffff8fffff8ff +fff8fffff8fffff8fffff9f9f4f3fefef8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff9faf5f3fefdf8fffff8fffff8ffff +f8fffffafffbf0e7e1d9d5dbd9eff4f7fdfef9fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffbf7f3e9e2e0d6e1e7e8f6f9f8fffff9fffff8ffff +f8fffff8fffff8fffff8fffff8fffffbfffcefede7d8d8dad6e8f0f0fbfffaff +fff8fffff8fffffafffcf3eee8dfd8dbd7e6eceefbfdfbfffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff7d9bef350 +26ee3ea2f3c291ee3c3cf2c5c5f21129ed71c8f6f7fdf8e3f5f8ccc6ef3232f1 +fffffaecd0f67d03ec0000ee0000ed1f2aeec7fafad8c0f00000ed111ced88d0 +f6fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff9a92aec1a6cf2d3e9f9fffff5322fed0172f2cde9f8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9c166f03e4df096cbf7fffff8fffff8fffff8fffff8ff +fff9fff8f4736eed7f8bf3f5fff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcfff8c27570427d8989f5fffbff +fff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff9fffffcf1d8c1935a26000000 +000000000011334271cbf0fdfffffeffffffe1cbbd692900000000000008303c +56d5fffefffffcffffffe6d4c86f2c0000000000000727314dd3fffefffffcff +fff6e0d3aa400000000000000000121c228ac1e9fffffefffff8fffff9fffff9 +e1e1b50f1a1d8ee6fffffffff4ece68032000000000000030f1332cdffffffff +fbfffffcf6f1c249000000000000000004060779b9e6fffffffffff8fffff8ff +ffffffffcd01010180e1fdfdffffd3833a050301000000000000000038afdff4 +fbfefefffff8fffff8fffffefff49714130bd6eaeafdfff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffefff59f262415c6d8d8fcfff9ff +fffafffffee1a169281a0d00000000000000000070a0c8e7f4fefffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdfcca8e45321c6eaf +b8e2fcfdfffff9fffffdfffae2986841210d0000000000005dababd8fffffaff +fff8fffff8fffff8fffff8fffff9fffffde3b0814f3114000000000000000023 +6e8dafe2f6feffffffeabc945c3b1f0000000000000000004f708ccce7fdffff +fbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9 +feeaf7bc83ed1d18ed595bee2d56f09567ed3939f1ffe0f8c96aed3574f5cccc +f13232f1fffffae5d0f6772eeca1e6f8d26aeb2a61f2d7d7f30c1eed6bcef6db +d6ef0e18ec7db8f5fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff9a42aec1971f2d3eaf8fffff7bba0f0b2cef6f0f9f8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff9be66f03c51f096cef7fffff8fffff8fffff8 +fffff8fffff9fffff57373ee848bf4f9fff9fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffffcfffed89c786023060b00001c8288a1 +f9fffbfffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffffddab5b17539 +387ab1c7e6eae2ceab92520c1c46468ffffffff3d7bc9c4d0b2e3c5dc7f1f6e2 +cbb4681f183b3b89fffffff5dec7a55209263254c4f0f7e7d4bf6e2114303082 +ffffffe9d2d26b0a182a5b9ffdfffff8eee2b47a421d2525d0fffefffff9ffff +f9fef2e0d6860d1d1d7ffffffffaf0e5be5e0411153bbbedf8f5eedb7e260812 +1270fffffff8f0f07a03080c4391fdfffffdfbf7cd8c4b050707cafffffffff9 +fffff8fffffef3980001016ffdfdfeffffff8814055096b4dde9e9f2e9cd771a +08050160f2f2f7fffffffffdbd581c22060102000030dfeaeefefff9fffff8ff +fff8fffff8fffff8fffff8fffff8fffffefffdc2652d2d0b020300002cced8e0 +fdfff9fffffbfffffe9e3d2d4e708fbed9deeceae09f622c1c0d19c0cad0fcff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdffd79644361e00 +00006eafb8e2fcfdfffffeffffd5504d3b02214e91a7c1e6e2cab2b4c1dcdfeb +fffffafffff8fffff8fffff8fffff8fffffbfffffeb3685f646573a9ccd7ecea +d8a566502e073d9898c1ffffffba756a5f55669ac0d0e7ebe3b78b613d1d1186 +8d9bf9fffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fff8f7d5c6f26e74f18d5bed2e26ef9c91ee487bf4fce1f8c076ee35 +98f6ccccf13232f1fffffae5d0f67b2eec94d2f3610bed0b38ef3810ed277ff4 +fffff9fef5f8d99eee0006ed1843f0c7e6f7fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffffaeca2ee0c36f1f1f4f9fffff8fffff9fffff44014 +ec95def8f6fef9b765ed5484f2a97aef140ded0027efb5e1f6ebcbf1471aed06 +00ed345bf0e1e9f8fffff8fffff9a42aec1971f2d3eaf8fffff8bf7def6fa1f3 +e0f0f8fffff8c077ee5e85f2a488ef2a1eed000fed85aaf5ecf6f9fffff68b40 +ee89b2f5e3fbf8fffff9fffff45747eeb0b7f7fafbf46449ef413cef4b4cee58 +65ef4f3ded8aaef4e3faf8fffff8fffff8fffff8fffff8fffff8fffff6c4a1f0 +3c28ed0000ed3251efb9cff6fdfff8fffff9be66f03c51f096cef7fffff8ffff +f6caaaf0462fed0000ee4141ee3535ed848bf4f9fff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffffcfffce8dee0dadbcd9e6e5e +3c828993f9fffbfffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffafff2d2b79747404647f0fffcc3bcb426324274d0ff +fffffffffff3c3c39c233b3baffdfdcdc7c02429376ccdfffffffffffff5cece +a51d3030abfefcd5d2c51218282ba0e9fffffffffff9d9d9b61522259dedfeff +fffcfffffee8e0dc40161e47bffbfffffee8e5db1f131956c6fffffffffffffb +ececbe0b12129efefef1f0e114080c0c92e6fffffffffffdf7f7cf0406078fea +fffffffcfffffffefefa42000030b7fafdfefffffff8fffff8fffff8fffff8ff +ffffffd4680c0a06def2f2fefffffff9d9c8cfddeccd7113101ddfeaebfefff9 +fffff8fffff8fffff8fffff8fffff8fffff8fffffefffadbccd2dde9cd7a241f +22ced8dbfdfff9fffff8fffff8fffff8fffff8fffff8fffffeffee8f343018b9 +cacafafffcfffffec3865142588ccbd7ecfffffafffff8fffffdffe4a7433a24 +79a59a423e396aafb8ddfcffffffffbd524b312b7db1c3e7fffffafffff8ffff +f8fffff8fffffafffffecc996c545a7bb0c3e2fffffbfffff8fffff8fffff8ff +fff8fffffcffe4a06654288c9899f6fffbfffff8fffff8fffff8fffffcfff3b1 +716733828d8df5fffbfffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8e5bff57202ec0000ee0000ee0000ee0000ed2439efb5e5f8 +c987ee3596f6ccccf13232f1fffffaecd6f6812dec1850ef0000ed1017ed5174 +ef0807ed3536ed4657ef5742ed0000ee1720edc0fff9fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff9fffbf10d0dea85ddf8f8fef8fffffaeb +9fed120ceeeaeaf9fffff9ab48ec1005ec5b93f3edf5f4842bed0e02ed0000ef +aed2f4eccef2221cec3f9cf4e3f4f9fffff9a42aec1971f2d3eaf8fffff9aa2f +ed1d72f2cde9f8fffff9b55fee220bed5179f1d0e5f5ae7bee2414edbfc2f8fe +fff64040ed65b5f5e0fcf8fffff9fffcf24746eda9b7f7f9fbf6c5bff3b6b6f3 +dce2f3684bee0f00ed95adf6f3fff9fffff8fffff8fffff8fffff8fffff7a65b +ef2b0aee90a5f3f5fef49461ef2014ee9ba8f6fffff9be66f03c51f096cef7ff +fff8bd6ef03d01ed6e87f2dae9f5caaef14e3bec848bf4f9fff9fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcff +ffc2757542828989f9fffbfffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbf0d4b6914b1c46468ffffff4bcbc9d2741 +42b1fcfefffffcfffffccac3ba242a3b63c5f8c7c7af213637adfcfefffffcff +fffdd3cec523212e5bbdf7f8ebdbb5752d0811194d7ea6dde4d7984915252b9a +fffffefffff9fffaece0c0611c1e1eecfffffffffbe5e5c00f1819a0fbfeffff +fbfffffeeeece2200c1143b3f6fdf8f3cf8633020507386b99e3f9f6ad530407 +0d8cfffffffffff8fffffefeda6f000000e9fefefffff8fffff8fffff8fffff8 +fffff9ffffffcb6e0a090560f2f2f7fffff8fffff8fffffeffff9714140bdfea +eafefff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffeff +ff9f262615ced8d8fdfff9fffff8fffff8fffffafffffeddbdb1b5ab8b22221b +4981b0ddecf8fffffcfffffeaf3939230072c3c3e6fffffafffffdffefb6423c +294287bcd2ecff52464664afb8dcfcfffffff1714b4610426572645d50403342 +495d91afc9e6f3fafffffcfffffebb5858350060a5a5d9fffffafffff8fffff8 +fffff8fffff9fffffddea364502a3d9898c1fffffbfffff9fffffde7d0c8bfac +914c4a3a335b7cb6d5f0fffffbfffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8e0bef5772eed76c6f5f5eaf5e0e1f5d7c5f26339 +ee9fe5f8c985ee3596f6ccccf13232f1fffffae8d0f6832aec6fbff24128eda1 +edf9f6f3f8cebcf3c8c8f1161feca0dbf4dce0f7fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff99d18eb0824f1f0f2f9 +fffff64412eb2096f5edf7f9fffff9a118eb0f7bf3e5f3f8fffff9ffecf01f1c +eccddff8fcfff8fffff9a624ec1674f3d8edf8fffff9a42aec1971f2d3eaf8ff +fff9a62fed1c6ef2cde8f8fffff9ac35ed206bf2c8e5f8fffff9fffcf33c3bec +8bc2f6edfff54040ed65b5f5e0fcf8fffff9fffcf34746edaeb7f6fbfff9ffff +f8fffff9f7bef14b32ec7daff5e8fff8fffff8fffff8fffff8fffff8fffff9ff +f7f35b57ec80a2f4ebfff9fffff9fffcf46261ed6399f3dafdf9be66f03c51f0 +96cef8fffdf56c6aed6992f3e0fff9fffff9fffff57373ee848bf4f9fff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcfffdc2757342828989f9fffbfffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffaf9e1c9a76d33284048acebfffffce2bc +b36d273f42b2f6fefffffdfffffaccc3b420243b3ab1eac7c77e213437aef5fe +fffffdfffffbd6cebe221b2b2fa2eafffaead3bc71141a136280600000000817 +2154a7e2fffffefffffcf3dede8e0e191e77d3fffffffffef4e5da850f1819a1 +f4fffffffcfffffdefecda270a101094e7fffdf8f1d78206070570926d000000 +0205073c9bdefffffffffffbfefdfda103010065cdfefffffffff8fffff8ffff +f8fffff8ffffffeb9c4d0a060387d9f3f9fefefffff8fffff8fffffefffb9714 +140bdfeaeafefff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffefffb9f262515ced8d8fdfff9fffff8fffff8fffffafffffebf82634d48 +2f0b0d094981b0ddecf8fffff9fffffbf8f3e6f1f4f1fbfdf8fffffefffcc540 +3f2d578fbddbeefffffff75146436bb5b8dffeffffffc84b4b35002453859cac +cdd4d0a782432f1d005793abd5f3fefffffdf9f5e9f1f4eef9fcf8fffff8ffff +f8fffff8fffff8fffffcf2c08e5c3c1c55899ad1f4fefffffafffffafffffdd2 +a6916a5134171c13335b7bb6d5f0fffffbfffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000ee0000ee0000ee00 +00ed2639efbee5f8c985ee3596f6ccccf13232f1fffffae5d0f6782eeca0e1f7 +bd4dec1a48f09c8bf19090f19288ef1115ed7a92f28d89ef6b7ef3fffff9ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff9ffddf00e0c +eac3f0fbfcdbef1210ecd2ecf9fdfff8fffff99c18eb0e7bf3e5f3f8fffff9ff +fbf21f1eedd5dff8fdfff8fffff9a124ec1674f3d8edf8fffff9a42aec1971f2 +d3eaf8fffff9a62fed1c6ef2cde8f8fffff9a835ed1f6bf2c8e5f8fffff9ffff +f53c3cec68baf6e2fcf54040ed65bbf5e0fef8fffff9fffcf34746edaeb7f6fb +fff9fffff9ffccf24e38ec619df3dbf6f8fffff8fffff8fffff8fffff8fffff8 +fffff9fffff45b5bee9ba2f5fbfff9fffff9fffff66262ee4c94f3cbfaf9be66 +f03c51f096cef8fffdf56c6aee8b92f4fafff9fffff9fffdf57371ee848bf4f9 +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffcfffdc2757342828989f9fffbfffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff9fffffdefd6be8e5319253c49a4dfffffffff +fffff4bcbc9d254142aafcfefffffcfffffccac3ba242a3b63c5f8c7c7af1f36 +37a5fcfefffffcfffffdd3cec52322305cc2f8d2d2b214242c8cd9fffffffffc +f4e9c79c630d1c2570c9fffffff6dedea3172020bffffefffffbfffffbe5e5c0 +0e181997fbfefffffbfffffeeeece2200d1244bafcf0f0cb060b0e7bd4ffffff +fffefcfae3b2700205075cc1fffffffefdfdb9010101b7fffffffffafffff8ff +fff8fffffcffffffca79290704017ccaf5f9fdfffffff8fffff8fffff8fffffe +fffb9714140bdfeaeafefff9fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffefffb9f262515ced8d8fdfff9fffff8fffff8fffff8fffff8ff +fff8fffffeffeeb134302078c0cae9fcfcfffff9fffff8fffff8fffff8fffffd +f6a9423d2401446c666968756f5d3b1f1a0b202d333d69a1c8d8cb4b4b3d71b2 +b2e3fffbfffffcfffffea25252275f9aaad9f6fffffafffff8fffff8fffff8ff +fff8fffff8fffffbfffffedeaa774e2d0e4e809bcdedfffffffbfffff8fffff8 +fffff8fffff8fffffcfff3c871674654878dd0f9fdfffff9fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8e1bef5742bed5fbbf5f2e6f5 +dce0f5d1c5f26339ee9fe5f8c985ee3596f6ccccf13232f1fffffae5d0f6752e +ec92f5f9d4a7ed171bee869bf1757cf1a095ef1217ed7b9cf26d67ef85a0f3ff +fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff6660eec0e8ff29f2dec0c61f3ecf3f9fffff8fffff99c18eb0e7bf3e5f3f8 +fffff9fffbf21f1eedd5dff8fdfff8fffff9a124ec1674f3d8edf8fffff9a42a +ec1971f2d3eaf8fffff9a62fed1c6ef2cde8f8fffff9a835ed1f6bf2c8e5f8ff +fff9fffff5493cec69baf5e1fcf76640ed3388f3caecf7fffff9fffcf34746ed +aeb7f6fbfff9ffe5f34c41ed528cf3d4eef8fffff8fffff8fffff8fffff8f7f7 +f8fbfbf8fffff9fff7f35b57ec86a2f4eefff9fffff9fffcf46261ed6399f3da +fdf9be66f03c51f096cef8fff8f46c67ed7d92f3effff9fffff9fffdf57371ee +848bf4f9fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffcfffdc2757342828989f9fffbfffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffafffffcd9c3aa5b28103b4a71d8fffeffff +fafffffafffffcc4bcb4242d4169c2fcfffffffffff1c3c39623393baff7fdcd +c7c023263660bffcfffffffffff3cece9e1d3030adffecd2d27c1c2b2cb1fcfe +fffffbfffffeded9d52215212e9de8fbedddc66712202097fffffefffff9ffff +fee8e5db20111848b5fbfffffffffffaececb50b1212a1fff8f0f08e090d0ea6 +fbfffffffafffffff8f7f3240406118fe5fefdfbe17501010189fffffffffff8 +fffff8fffffffffff4843e06040236c2f6f8fdfffbfffff8fffff8fffff8ffff +f8fffffefffb9714140bdfeaeafefff9fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffefffb9f262515ced8d8fdfff9fffff8fffff8fffff8 +fffff8fffff8fffffeffffe434342d67b9cae4fafdfffffafcf6f0f6f9f2fcfe +f8fffffef4d9c4b7b8b0adb0abb0b1b8cfcbab3c3a2d397080a3bdd8eef0f15e +4b48438db2cbeefffffffeffffff9a5252235f9aaad9f6fffffcfcf8f1f6f9f2 +fbfef7fffff8fffffcfffff8b0835c3116227b9cb2eafffdfffff9fffff8ffff +f8fffff8fffff8fffff8fffffcffffec71716248828dc6f5fdfffffafffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8eacbf58328ec0000 +ee0000ee0000ee0000ed2639efbee3f7c97ded358ff6ccccf13232f1fffffae8 +d0f67f28ec79c6f5b360ed2a9df5d7d7f02727efe0d9f64322edbacdf02121f0 +fbfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8 +fffff8fffffaffbbef0f0bed0000ebb2edf9fafff8fffff8fffff9a118eb0f7b +f3e5f3f8fffff9fffbf21f1eedd5dff8fdfff8fffff9a124ec1674f3d8edf8ff +fff9a82aec1a71f2d3eaf8fffff9aa2fed1d6ef2cde8f8fffff9ac35ed206bf2 +c8e5f8fffff9fffff53c3cec68b9f5e2fcf9b94fee2906eeacbdf5ecedf37f3f +ee1800edb2b7f7fdfef44b4aed0000eeacb1f4dbdcf4cac0f3d7e1f7f4fbfafc +c1f15537ec64a0f4dbfbf9fffff7945bef2026ee98b7f5fafff5a569ef2b05ee +9b9bf6fffff9c166f03e51f096cef8fffff78b6cef1724ee8dacf3eae6f4885e +ef1f00ed7f8bf4f5fff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffffbfffbebe5e8e3e8d2a7745d33678385cfe1e5ede9ebfeff +fbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffffafffffeccb1ae3e0000223a4395c8dadc +ccc3bdbeb8bbbebed4e3f3f1d3bc95421032406cd4fcf9e5d0ba702e153b3b7d +fffffff3dac79e460d2a3564d2fcf9e9d8c4773011303076fffff7d7d2b01b0e +1a2a6da9fdfffefbf3e8c3966413212593e8fee0ddd8211b2169d7fffffffdff +fff8fffffafaeee5b6510612174dcbfbf9f6efe1883807121262fffffcf2f0ca +1e04080c589dfdfffefefcf8deac7203060783e5fffbfbf61a020355d2ffffff +fefffff8fffffffffffb5c050502000071bfdce3d0c6c2c3bdb7b5acc3d7ebfc +fdfefff7ddd2dde9facb78141009b1e0e3d9d4d7fafbfbfffff9fffff8fffff8 +fffff8fffff8fffffdfff8e0d6dfe8f6cc81261e11a3ced2d7d7daf7f7f8ffff +df4b2d3481a3b0d8e3e2e9e8d18a3b2817041aadcad1f7fffdfffffeb74a3925 +0572c3c3e6fffffafffff8fffff8fffff8fffffdfffff752464364b5b8dcfefc +fffffed9954b3c1f0b7596abe4f3f7e4bc9046331e669dabddf8ffffffffc265 +58390760a5a5d9fffffffffffc975f5d220000487a8cbaccd1cfc7c0bbbab2bf +ccdae7f1e97f6a66667482c5dbdde9e9d7a66f59330812798d9beffffcfffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8dfbef579 +36ed84e1f7fdfef8fafaf8e2c5f57b34ed89eef8fafbf6ebfff8ccccf03232f1 +fffffaf0daf68f2cec0000ee1924ee88b5f13f18ed31a8f5d9d9f52424eeeedc +f67100eb1d20efecfffafffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6 +ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fdfdfdffff +f8fffff8fffff8fffff9fffff4550fec0553f1edf3f8fffff8fffff8fffff999 +18eb1c84f5e6f4f8fffff9fffbf21f1eedd5dff8fdfff8fffff9ac33ec1773f3 +d8ecf8fffff9a12aec2583f4d5eef8fffff9a42fed2780f4d0ecf8fffff9a635 +ed2a73f3cbe7f8fffff9fffff5473cec70bff5e4fef9ffeaf3413aee0000ee00 +00ee6455ed2620edb7b7f8ffbff14b30ed0000ee0000ee0000ee0000ec609ff5 +daf8fafcc9f2553bec73a5f4e3fef8fffff9fffff58d5def1c00ed0000ed0006 +ee90a0f5f7fff9fffff9bc66f0435ef19cd7f7fffff9ffeff46d61ef0000ee00 +00ed5d5dee4c4ced898bf4fdfff9fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffffcfff8c3726d4200000000000000000000001c7f +869ef9fffbfffff8fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffffafffff9c7b1a3340000000000 +000000000000000000092d415cbbf1ffffffe1cbbd69290000000000000d303c +66d5fffefffffcffffffe6d4c86f2c0000000000000b27315ed3fffefffffcff +fdf3ddc99b300000000000000000131d2593c9f5fff7e6ddae4a202147fbfffe +fffff8fffff8fffff9fffffff4ece68032000000000000040f1346cdffffffff +fbfffefbf5e6b137000000000000000004060884c2f4fffefbfbc64f03032efb +fffffffff8fffff8ffffffffffec4d0504020000000000000000000000000000 +1e9ae0f2fafefff49b11100a00000000000000000000002fdce7ecfefff9ffff +f8fffff8fffff8fffff8fffffefff4a223221400000000000000000000002ccb +d5ddfdfffea159361a0a0200000000000000002e92c2d7f0fcfdfffffbfffffe +c05139283182c3d0ebfffffafffff8fffff8fffff8fffffdfffff152464164af +b8dcfcfdfffffefffffebe8c54321c03000000000000608eaddaf0fffffffcff +fffeca6b583d2e6ea5b8e0fffffffffff38d5f581c0000000000000000000000 +000000136192a4d9fabc89703b17050000000000000000206688a8dffafeffff +fafffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +dcbef5733aed8eeef9fffff8fefcf8ccbcf13f36ed94f5f9fffff8f2e3f39a61 +ed3232f1fffffae8d0f67c28ec82e4f9f1daf79221ec2832f2fff9f9dabbf021 +24eeedfffadedef20f1cec86dff7fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfd +fdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffffb4b4b6fd +fdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffaf7 +e9e8f6edf2f7fbfdf8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8f2edf6e6 +e3f6f4f4f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffbf7 +eeebf6ebf1f7f9fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2f2f2ffff +f9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9faf8f5e9e3dde4 +e6e5f6fffcfffff8fffff8fffff8fffff9fbf9f6e9e3dde3e5e3f5fffcfffff8 +fffff8fffff8fffff9fcfaf3eae3d9e2e3e3f5fffdfffffdefdbdb7a121f2192 +e8fffffefffff8fffff8fffff8fffff8fffff8fdfdfaebe4dde1e1e0f4fffdff +fff8fffff8fffff8fffff9fefef6ebe4d8e0dfdff3fffdfffffdfdfafa8b0204 +0383e5fffffffffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffafffdf3f4eee1e5e9e8f8fbf8fffff9fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffffbfaf6ebeae7deedf5f3fbfffafffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff9fffef5f8f2e6e9e9e5f2f5f4fffff9ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8debef57b39ed94eaf9fffff8ecd0f68629eb2d39efd5fff8fffcf7ca +c1f00715ed4e85f3fffff9e6d0f6732cec79f5f9fffbf7f9eaf6e4f9f9e3d8f4 +3f05ec2440f1fffff9fffdf8fff5f8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffffffffffff +b4b4b6fdfdfdfffff8fffffa0b0bec0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ec8989f3fffff9fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffebfbfc2f2 +f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffcfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff9fffff4dbdb9b1b +2222cefffefffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffdfafa +b0030404c7fffffffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff9bdbdf60000ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee1f1fedfffffafffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffffffffffff +ffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffe +bfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8dafffffc +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffdfffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffffffffffff +ffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8d8dad8d8 +dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcdd0fffffd +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffffffffffff +ffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffcd8 +d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3e3e5cdcd +d0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffffffffffff +ffffffffffffffffffffffffffffffffb4b4b6fdfdfdfffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffffebfbfc2f2f2f2fffff9fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffffcd8d8dad8d8dafffffcfffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffbe3 +e3e5cdcdd0fffffdfffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ff +fff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8 +fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8ffff +f8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fdfdfdb4b4b6ffffffff +ffffffffffffffffffffffffffffffffffffffffc0c0c0cccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0c0c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffff> + +end +grestore +showpage +%%Trailer +%%EOF Added: pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0017.eps =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0017.eps (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0017.eps 2008-11-09 18:41:39 UTC (rev 1308) @@ -0,0 +1,9756 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 513 201 +%%Creator: EPS-conv ver 3.06 +%%CreationDate: 2008/11/09 18:22:10 +%%Title: PAL0017.BMP +%%Pages: 1 +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +%%EndProlog +%%Page: 1 1 +gsave +16 dict begin +/DeviceRGB setcolorspace +/ShowImg0 +{ << /ImageType 1 + /Width 516 + /Height 201 + /BitsPerComponent 8 + /Decode [ 0 1 0 1 0 1 ] + /ImageMatrix [ 516 0 0 -201 0 201 ] + /DataSource currentfile /ASCIIHexDecode filter + /Interpolate true + >> image } def +0 0 translate 513 201 scale +ShowImg0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff969696a9a9a9aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaffffffffffffffffff818181fcfcfcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff818181fcfcfcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff818181fcfcfcffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff818181fcfcfcffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818181 +fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff818181fcfcfcffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff818181fcfcfcffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff818181fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffdf8f3edf3f2f5f6f9fefdfeffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fce4dcdccec8c7d3dee8eff7ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff818181fcfcfcffffffffffffffffffa5502331 +38311d2974edf1f6fffffffffffffffffc843b3039362919469fe6ebf6b56a30 +36383a4d4f51505050505053535338241d52cadbe5fbfff1bf9b81403f3e3e40 +41434343403e393d445691b8deedf6ffffffffffffffffffffffffffbe7e4d46 +3c35484b4e51515150505252523c2b244eb1bed1f9ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffed86716c3925202e6793a7d0f3ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff818181fcfcfcff +fffffffffffffffff0a55f2931392c201a91dcf0f8fdfffffffffff0a92b3035 +32261e5eabe8eef8ffab5c30393c3e40424343434343434343433b241e4ddddc +e4973d413f3c3d4043404040525252434343423d3127397abbd6e8f9ffffffff +ffffffffffffffffb7724d473d383d414343434343434343433f2a2239acbfc8 +f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff199716e3f241f3d +6d97b4d5f6ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff818181fcfcfcffffffffffffffffffffffc633262d3b31232874c7 +f0f5fcffffffd68e48323737231a38c1e8ebfaffffb35c3039362a1b388be1e5 +f2fffbfbfcfbfbfbfefefef2b83a3f3e342b224586c0dfedfafffffffffffecc +925f5488c1d6e7f9ffffffffffffffffffffffffbe724d4939281d377ec5cde5 +fffbfbfbfbfbfbfafbfefefecd9d8777756c635b6eaecad3efffffffddb5877f +7c685d52769bbfd2e8f9b290927667667a95a8a7988b6a5e4f39365082a1c1e1 +f5fffffff199716e3f241f3d6d97b4d5f6ffffffddc7b27c655c4a473e474441 +617691c3d7e8fffffffffff6c1a6a2776061809aaac3cac59f7e718191a1d6f6 +ffe8d8c7957769483c3e373e4152687fb4c6dbfffffffffff8cbb4af7a5f607b +929ebccaccad8c7a798191cff5ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff818181fcfcfcffffffffffffffffff +ffffffa65124323b331e1860e7eef4fefff770282f3934271854a6e8eef7ffff +ffb35c30393c3327255fb3cfceccc6c4c1bebabed0f1f5f4b53c413f3c3d3a37 +324c728998b0bbc4deecf5fafdffffffffffffffffffffffffffffffffffffff +be724d493d312c2d538ca0a7b1aeaca9a49e97a2c2e1e5f2fff8c8595b503632 +2a264686b9c8e68f606443352d25245bb3b2cffefff08565643f343740434343 +43434343434343402f29308fa8adedfff199716e3f241f3d6d9ab4d5f8c38b79 +5a3b313a4043434343434343433c352a497095b2d8fffff39d837e402e323f43 +4343434338312f6e908eb8b18e784d2f343b414a4a4a4b4b4b413a342e4a6b80 +aad9fffff5ad978f412a2f3e43434343433a3431597378c2f2ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818181 +fcfcfcffffffffffffffffffffffffffbe762930372c201791e4eef7f9a92830 +3530231c71c2e9f1faffffffffb35c30393c3e4042434343434343434343311e +1c89dcdbef673a423d3b3d414343434343434343403831325d83d1e0eafeffff +ffffffffffffffffffffffffbe724d493d383d4143434343434343434033242e +7bbfc4e3fffffffdce985e5245373b3f4343434343402f282f90b6baebffffff +fff0906464402a2731577bb5c9e0f1d2ad6a5d4e2e29264b7aa6bedef6997172 +3f241f3f73a5b4d9c9777c5e2927274b6b8db7d3f0e2ba996f56412726267094 +94d8fcf4a6827e462d303a3e454e56635a58679696898089762a2223688388d3 +f7fff7dbb58d724a1f20397b809bf3fff5b4978f49292d3a3f444b515f5a5861 +7b848ed1f6ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff818181fcfcfcffffffffffffffffffffffffffffdc4426 +2d372f254897dcdfa863353832201754d6e9effdffffffffffb35c30393c3e3b +3a395a6675666667655d47466da3e2e9f4ffffdc8f6a4f3e3d3d404142434343 +43434343372b1e63a4cfe1f3ffffffffffffffffffffffffbe724d493d353234 +446e7d7f878a8a8782747185a7d6deedffffffffffffd598685445383a3e4236 +2d27699bb7d7f0fffffffffffff09064643d241e3f78a6bdddf9fffff18b6b69 +3a241f3f70a3b8d7f49971723f241f437ba5b8b5a37b66451f1f3d8f9cb0f2ff +ffffffee907e76321e1d557f97c1e7f7a6828142221f3c6588a6cdf4fffffff7 +d4ab876a4730363d43434343434343434343434336312e6a8380d9fef5b49790 +46201f395b7696c4f2ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff818181fcfcfcffffffffff +ffffffffffffffffffffbe6c233138404142434343433f35272a69bcebf1faff +ffffffffffb35c30393629183892e1e5f3fffffffffffffffffffdf1e6ebf9fa +fbfefffffbf2e3dbd5c2ac8b4443423e3a2d21398ad0d6ecffffffffffffffff +ffffffffbe724d4937251a428bc4d1eaffffffffffffffffffffffffffffffff +fffff4bc885c4e41383c3f322a2482adb5e4fafffffffffffff09064643d251f +3f72a2bddaf7ffffec816b673624204070a3b8d7f49971723f241f437ba5b8b5 +a37b66431f1e45939bb7f5fffffffff6a27d7b3f211e436c96b1d4f6a6828242 +221f3c6588a6cdf4fffffff7d0ab8766472e313643575c68797f82797776787a +746c7693a4afdafbf5b4979046201f395b7696c4f2ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff818181fcfcfcffffffffffffffffffffffffffffffffdc8b282e3540414243 +43432f221c8fd7ebf5fdffffffffffffffb35c303936291a3892e1e5f3ffffff +ffffffffffffffec9828254999b1cbeff8fbfeffffffffed7743453d362a1e39 +83d0d6eaffffffffffffffffffffffffbe724d493b2b21306bbfcadeeee9ede5 +e3e3dedee2f3f5f7feffffffefbc5a5a4e36383c43434343433b2a244da8b4c9 +f8fffffffff09064643d251f3f72a2bddaf7ffe7c36e66572c27234b7aa6bede +f69971723f241f4176a5b6cbb6797454262324648b9dceefffffe2ba806e5524 +21226b9095d3f8f4a6827e42221f3c6588a6cdf4ffffffffe8c18d7b5a232325 +617b89c9ecfffffffffffffcd8c7ccc5bdc7f0fff5b4978f46201f395b7696c4 +f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff818181fcfcfcffffffffffffffffffffffffff +fffffffff062242c3940404243351f1969e8eaf2ffffffffffffffffffb35c30 +3936291a3892e1e5f3ffffffffffffffffffffeca83b3f3e3c3d3f4343434343 +43434343434343352b236aa4d2e3f3ffffffffffffffffffffffffffbe724d49 +3d383d414343434343434343433f2a2239acbfc8f6ffe987595740332b28387a +bcc1b967675a39302a254d81b3c8e3fffff09064644233343b3f4c5858534c4c +4641413c2d274298a6b9f3fff18f716e3a241f3f6d9db4d5f79d767945303339 +3e405c5c5554544f3f3f382e2a549694bdfdfff39d827e3c221f3d6588a6cdf4 +fffffffffffab18b8a4c2c303c403f3d4b525c6c6d615e522c2836788093eeff +f5ad978f3e201f3b5b7696c4f2ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff818181fcfcfcff +ffffffffffffffffffffffffffffffffffd58c452f363d3b2e223985d1edf5fc +ffffffffffffffffffb35c3039322819529ae1e9f4ffffffffffffffffffffff +e5a080683e3d3e3f4141434343433e392f445891b9d5eef6fcffffffffffffff +ffffffffffffffffbe724d493d383d414343434343434343433a292250bfbfd1 +d591575543332824308ab5bfe8fcfff0be8b5f50412e2825548bb5cbe9f69064 +664233373f434343434343433b312c4e83a1c2e5f9fffffff59971703d221e46 +769bbadcf8fffee9ac8f704d3e353d4043433e393045598aafc3f1fffffffff6 +a6828040201e426d8badd6f7fffffffffffffffff3cdba9d655446383b3e4343 +43403d393e475e93a5c7fafff8b49792441e1e3f61789fcef6ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff818181fcfcfcffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffdf9f4efeeeeedecebf1f6fbfdfeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff09064643d241f3f78a3bdddf7f5f4f5f7f9f9fdffffff +fffffffffffffffffffffffffffffffffffffffffffffff5f1eee8e6e2e6e6ed +f4f4faffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffcf6f2f0eae9e9edf2f4f9fbfeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff818181fcfcfcffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff07c6564372620386c9db8 +d6f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818181 +fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff8c3b3ad968c879dbad2dfeffdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff818181fcfcfcffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff818181fcfcfcffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ff818181fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffff818181fcfcfcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff818181fcfcfcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffff818181fcfcfcffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffff818181fcfcfcffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818181 +fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff818181fcfcfcffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff969696a9a9a9aaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffdd8cef7b2baf8d8ea +fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcb8ff15f6bf06c6ff27072f16c +56ee66a0fbe3f1fc3630ec9bcefbf2ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffdc9ff37c81f0535df0857ff3d1ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffefefbf9fdf7f8feffffffffff +fffff0f9ad8dee5151f3ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0 +25ec1962f3ac7ded2215ef8e87f1b0e2fdf1c4f03023ec3766f0756df15044ef +94c6fbecfbffffffffffffffffffffffffffffffffffffffe2b99f9fb6d1e0ed +fafffffffffffffffffffffffffffffffffffffef6fdeceafbe8e9fce7e7fbe2 +e2fbdcdcfbd8d8fad4d4facfcff9c9c1f6b9c9fbe2eeffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffefcf9fefbf8fefbfb +fefbfbfefbfbfefafafefdfdffb47cf39082f3b283f28b74f2b0efffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffede +f8a369eb5858f4ffffffedc0f8874aed3a61f17c4fed4f4ff5ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffba53ed1b08ed4f4ff06572f04e14ee0d00ee0000ec +8fb8f7cdcaf8c6c4f8b8adf6c7e1fdf4fcffffffffffffffffffffffffffffff +ffffffffb242422868acbae0f9fffffffffffffffffffffffffffffffffffffc +bff14f33ec0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ed0000ec +9d9ff8fdffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffff8f7716cee0000ed0000ee0000ee0000ee0000ee0000ee0000ee0000ec36 +4cf1b5cbfbffd6f78365ee200eed2300ee0000ee0000ee0000ee130ced3a57f2 +9ccbfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffed8f7a35fec5858f6fffffffffffdc9abf53d21ed46 +8af5e7e5fdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffb02dec1955f29866ed +1e1bef827af2a3b0f44521ef7989f29195f38d7ef18ab2fae6f2ffffffffffff +ffffffffffffffffffffffffffffffffae42422764b3badffcffffffffffffff +fffffffffffffffffffffffffbfcd3d3fad0d1f9d9d9fae4e5facdc2f7c2c7fa +eaf0feb671f1340cea608ff7d8f4fffffffffffffffffffff8e1fac6cdfadbeb +fefffffffceefce7ebfceff9fffffafdd1cff8b9baf7c2c2f8c2c2f8c2c2f8c1 +c2f8d1dbf79776f03753f28ed1fdfffffffdd1f68153ec4f5ff0a4b3f6a29ff5 +9e9ff5acb1f47a6def1c44f179c5fcffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffedaf7a362ec5858f6ff +fffffffffffffafde7e2faccd9feffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa728ec1701f06a55ee263df05951ee4076f6dbe7faa6a7f6a9aaf6a498 +f299b9fbe9f2ffffffffffffffffffffffffffffffffffffffffffffae424227 +64b3badffcffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffc5757ee5aa6f6c8b0f25330eb4b80f6ccebfeffffffffecf87058 +f1a49cf9dd85f25016ec9797f8fffffff8c3f26841eb8e91f7fdffffffffffff +fffffffffffffffffffffffffffffffffd947cf13962f2a1e0fefffffffdc9f4 +814bee7a7af9ffffffffffffffffffffffffd68cf45b3def70bcfcffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffedef8a369ed5158f4f2ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffa4312ec0400ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ec002ef3dde4fefffffff1eafcf2e2f54837ef5657f05d5df05a58 +ef616df17c7ff15842ee9dd2fbeffeffffffffffffffffffffffffffffffffff +ffffffffffffffffae42422764b3badffcffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffc8757f01a00ed0000ec4b7bf5cde8 +fefffffffffffffffff86363ed2d79f6b7e8fa6767ee1f6cf4abe1fdf3b2f264 +3fef9199fafffffffffffffffffffffffffffffffffffffffffffff4f87c72ed +5380f4d1fdfffffffffdccf4814eed7a7af8ffffffffffffffffffffffffce8c +f4513def70bcfcfbe5fab99ff3767af28a8af38989f38989f38989f38989f389 +89f38989f38a8af37e7cf29d9af7fddef8a56aec0000ed0000ed323cf1b2cbfa +f4feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffdae96f4a8aaf6ababf6ababf6 +ababf6ababf6ababf6ababf6ababf6aba8f39ba8f7f1f3fefffffffffffffffb +f42828ed606def6060f05c5bf05a5cf07a6fef1916eb7ac3fbeafcffffffffff +ffffffffffffffffffffffffffffffffffffffffae42422764b3badffcffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc5b57 +ef3e6df198bbf9e6ebfeffffffffffffffffffffffffe3a2f15229ed9a9af9dc +bcf7c7c9fae8f9ffad6bf1305df291d7fdffffffffffffffffffffffffffffff +fffffffffffebd7af33f00ec8282f7fffffffffffffdccf4814eed7a7af8ffff +ffffffffffffffffffffce8cf4513def70bcfcfee3f8916eef2426ef5353f04e +4ef04e4ef04e4ef04e4ef04e4ef04e4ef0514fef3638ee5b65f5fcdef8a66aed +5558f3ccc0f5512eed0000ed122aef76a9faffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff5f42827ef8080f17474f06f6ff06e70f29187f01e +1bea7ac3fbeafcffffffffffffffffffffffffffffffffffffffffffffffffff +ae42422764b3badffcffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffecf6574deb8aa7f7efffffffffffffffffffffffffffffff +fffffff6fce4ecfcedf6fffffffffffffffff3f76b63ec6492f5dcffffffffff +fffffffffffffffffffffffffffffed9b0f35832ea4975f4c7f1ffffffffffff +fffdccf4814eed7a7af8ffffffffffffffffffffffffce8cf4513def70bcfcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffedaf7a362ec5858f6fffffffffafdd2b0f46750ef80befcffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffff5f22827ee8787f188 +88f27777f28080f29b9bf11f1feb7ac3fbeafcffffffffffffffffffffffffff +ffffffffffffffffffffffffae42422764b3badffcffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffba63f03407eea7a7faffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc956af0 +1f1fef92a9fafffffffffffffffffffffffffffffffffbfba97af12c06eb2754 +f3a7d2fdfffffffffffffffffffdd1f68153ec0000ed0000ee0000ee0000ee00 +00ee0000ed1844f28ec5fcffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffedaf7a362ec5858f6ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff3f7686cf0470eed0c23ef6172f0552aee3d4cef3a23ed96c6fbeefcff +ffffffffffffffffffffffffffffffffffffffffffffffffae42422764b3badf +fcffffffffffffffffffffffffffffffffffffffffffffffffffffffdba2f243 +27ea5d96f7d8f5ffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffee9f86f5aef0500ec8794f7f6fffffffffffffffffef9fdecdff9b197 +f14130ed0000eb4a6ff4c8e9fefffffffffffffffffffffffff9ccf47d4eeb54 +5ff1a9b3f6a19ff59e9ff5acb1f47c6def183ff170bffcffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeda +f7a362ec5858f6ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffef3ecfdf1f4fdf8f8f74729ea409ff9def4ffe688ed +4894f9d5ecfffffffd7434eb83c9fae7ffffffffffffffffffffffffffffffff +ffffffffae42422764b3badffcffffffffffffffffffffffffffffffffffffff +fffffffffeaa68f02a0beb236cf5badffdffffffffffffffffffffffffffffff +fffffffffffffffffff3daf8906bef2214ec002df095b5faffffffffffffffff +fffffffffffff97373f00000ec2d42f0a4c1faf5ffffffffffffffffffffffff +fffffffffffdf2fcd6d0f9d5dbfcfffffffffffffffffffffffffffafef7f5fd +f5f9feffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbdaf79e63eb5858f6ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffb2825ed0000ee0000ec +426df4e1eafdffffffffc4f13022ed0000ee0000ed0000eeb9c9fbfaffffffff +ffffffffffffffffffffffffffffffffae42422764b3badffcffffffffffffff +ffffffffffffffffffffffffffffffffffe8b8f37490f5c0d9fdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffe4f66654ef6e87f6e2f3 +fefffffffffffffffffffffffffffffffffffff8ebfce9e8fcf1f9ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffceffcd6c5f8bcc9fcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffff1111ea0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000eac8c8faffffffffffffffffffffffffffffffffffffb2424228 +68acbae0f9ffffffffffffffffffffffffffffffffffff4f4ff00000ec0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ec4f4ff0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffe9c9b3b4c4d9e6f0fbffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1c1 +c1cbcbcbcccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccbcbcbc2c2c2 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecec +ecbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbbbededed +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbb +bbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8eaebebe2dad9c8c4c7 +c4d4dcdee7ebebe8e8eceff2efdec7776c7800115a5373a4d1e5eff2edeae8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9ebebe7e0ded7c4c1cad0d3de +eaeae3d0c4bba8aebcc2d0deecedebe9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ebedece6e1dca184874e62877a99b5bd +cbcfc9d6e7efece9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8eaf5f5f0bf8297402558001d56587fa8d5f3ffdaaea05a4257002b660033 +660021574d729ccce5f0f3edeae8e8e8e8e8e8e8e8e8e8e8e8e9e8e6e4e0ddd6 +d4d5d2d5d8dde2e4e7e9e9e9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8eaed +f0f0dea3a092001453003f7f587fa8a8735f00185a3a5483c8e9f8f5ede9e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9eeeeeee3 +c6cf6d1f4f0434660e3266002c601c396d9bcaecfaf3ebe8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e9eaeeefe4d3b3a7a77e7f987e8498808699808699808699808699 +80869b8587926469876978a6c6dbe3ebedebe9e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8eb +eae8deded9cdd1d1dbe6ede5c5af58566d00267384a9cbe9f2f1ece8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e9ebf0f5eecf74737e001a54003f8586aed5f6f8 +f5f0e5d59573841e215d0031630027645d7bacdbe7f0f0ece9e8e8e8eaebedec +e6ddb89b98433c61002d64003366003366002b601d427a84a6c9e5eff1ede9e8 +e8e8e8e8e8e8e8e8e8ebeff1eed8c8956c6700165842638aabb3c15d244f002e +70547bbff8f8f3e9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e7e7e1dee0d6 +d4dbd6d7dcdad9dde0dfe1d8c7c0641d4e10416f3b84a42f1e5515386c83c3e1 +faf1eae9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8eaf2f8fbd4a3313563002c63003366 +003366003366003366003366003366003366003366001a50609dc8deeaeeeeeb +e9e8e8e8e8e8e8e8e9edf8f8e095677f3525575183b5cfe0e9efedeae8e8e8e8 +e8e8e8e8e8e8e8e8e9eef4f7e2be5d5970001550307cb9bbaa9a62525d001b7e +9aa3d2f4f1f0eae8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8f1f5f5d5a89d543f +5a002c65003366003366003366003366002f63183c6d495c889bb4c7e3f3f1ec +e8e8e8e8e8eef2f0e3cbba715b690026620033660033660032660935660c3666 +00326500235f4a659bd1e9f4f2ece9e8e8e8e8e8eaf1f1ebc8a3ae4413500030 +73597ba6a7aa91001c5c003366003366003366003366003364002663425197e4 +f9fbf6f1e9c5b9b0231354003366003366003366003366003366003366003366 +003366003366003366002a5f2c3b72dbfbfaf2eae8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecec +ecbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9ea +eee6dfd2cac9b4b6beb3b6bfb4b7bfb4b7bfb4b7bfb3b6bfc0cbcca5726f2632 +5d0010609ebfd6ecefeeebe9e8e8e8e8e8e8e8e8e9eef8f8db5a5175080d495a +97c3d7e8efefebe9e8e8e8e8e8e8e8e8e8e8e8e8e9eef4f7e2be5d5970000f4d +639cbad8ba99614e5b001b829aa3d4f2f1efe9e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8eaeef3f6e1c373687400235f003368203f6f374872303f6a16346500235830 +639baed4ecf4f0eae8e8e8e8e8e8eef3f3e5c7b573576100235e00397a707f96 +8d7775001855326397afc3cf95757800235b0021696069aff1f6f6ede8e8ebef +f1f1d9ca996f6b001f5b003f7c42569b7a385c003066003366002e6621407466 +75895f67815f6e9099afc6e6f3f3f2f0e8cab9ad3011520033692c5f919f9ba2 +8b92a086828f341f5b0234682b69949b99a4888ea2888fa6abbacce3efefebe8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbbbededed +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e9f8fafab56973272e5b0011609ebfd6edf2efe7e1e2d8d3d6d2d2d4d1 +d4def1e4cd5c4f7408124e4e8db4cad7dedbd5d6d2d6dbdde2e6e7e8e9e8e8e8 +e9eef4f7e2be5d597000104e5d99bad5b899624f5b001b829aa3d4f2f1efe9e8 +e8e8e8e8e8e8e8e8e8e8e8e9edf5f6e09676891e205a001d586788addef0f3f5 +f6f4ebc4ac6f546000125b6884ace2f4f4efeae8e8e8e8e8ebeff3ebd5888185 +001b56002c75738ac6e1b9b06a46560017615f71a4ecffffedcebd7e5c60001b +59204f8695c4e4f6f5f0f1f2e2aaa29b121958002e6424456d415e7600266124 +456b466874002d75526dbdf8f8f3e8e8e8e8e8e8e8e8e8e8e8ebefefe8c4b9ad +200d4e073b7255acdef9f8eeedeeefe4cad2732649093f72519dd5d2977e3a57 +7e6d9dcbfaf9f0e9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8eaf0f9f9d253446d072355002b8bbdc8e5ff +ffd9474b71012760003366003366003366003366003366003366003366003366 +001c524f8ebbd1e7eef0ece9e9eef2f7e2c25d597200104d5d99bad5b899624f +5b001b829aa3d4f2f1efe9e8e8e8e6e8e8e4e8e8e6eaf5f5ecbd90913d315a00 +2964364d6d3e4f6915417c83a9cbb6809f3f1d52002c788096c9f5f3f2eae8e8 +e8e8e8eff3f3e1b8ab6a485800185650709ad3f1facba0a84e2a4f0023736d7b +c1f7f6f7f4f3e2a19a990f114f0a488173b7dcfffff2d2b4ae563455002d6600 +3366003366003362002b72575390aa876f00226313386a38497131426c4b6993 +a9c9e4f8f2eeefefe8cab9ad3013550033660033660033650031682838717b50 +6000356e244da07c2e59002963333b96f1fafaeee8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8f4fafad3968030 +35600019514789c0d6e5eef6f6e6cac3b9938f9c848ba2a1969033426a002d64 +00275e32618a8290a08888988394a8b1cbdbe2e8eaebe9e8ecf2f6f8cfae5c51 +6900124f5d99bad5b899624f5b001b829aa3d4f2f3f5f6f6da7e6f87190a5872 +97b7e1dbb970606d001c58115f956c688a50395e003066003366003366002659 +295e96a8cee6f4f2ece8e8e8e8e8e9f3f3f0cd9aa34f294f002a77748bc9ffff +e8a291941913500045826db0d7f5f6f2f2f2e4b2999c2715520030726487c3ff +f3dc9e9086001b5c0e3566243b61254c725a86a1afbcc4c8cccda16d68002361 +0733661434670d2c6024497d92c0e1f8f5f0efefe8cab9ad3013540031672042 +775a5f75002668333e739d7f6800396b00507e00265b1a396d94caecfaf3ebe8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbb +bbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ecf2f7fbd1ad3c3c67002b5c001173b5c0ddf0eeeeeae8e8e8e8e8e8e8e9 +f6f8f7c59588343760002e65001a51679bc6ddeaf0efebe8e8e8e8e8e8e8e8e8 +e8e8e8e9f4f7f7cb92894036580013608ba3c3eabb975d4c5a001b829aa3d7ff +ffeda877892d265b0020563d73a4bfdfeee8dfdbcbc7c7cddcdde7f2f2e7d7c7 +7c697913295e0032660024593d6898bbd8e7f4f0ebe8e8e8e8e8e9f2f3f2d4a8 +a659394f002877748bc9ffe6cd8e7777001352345e90b1d6ecf5f1eff2f3e1a1 +9a970f114f0a488373b7def9fbf1dfd7dac2b6bbae959d5d2e5100477d5ab0dd +fafff6edd8c6986958001d725262bef8f8f3e8e8e8e8e8e8e8e8e8e8e8ebefef +e8c3b9ad1f0d4e0c3d7763b2dcbdbf9a00105f3c4678bba684001e6100336200 +2964363ba2f6faf9eee8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8f1f7f6e3b59b333864002d6400184f70a4cae4eaed +eeebe9e8e8e8e8e8e9f4f9f4c99486353760002e651d3366191b515e97bfd7e8 +eeefebe9e8e8e8e8e8e8e8e8e8e8e9eff7f8d97a607c111f55002b7f9fb0d8f1 +b9975a4b5a001e8799a5caa0778b27275c002459265f97aecfe2f2f1ece8e8e8 +e8e8e8e8e8e8e8e8e9f3f4f3cb9e9b4b3757002d660033660021564575a2c4e5 +f2f4ede9e8e8e9f3f3f0cd9aa34f2a500023727482c3d9adac603a53001a5e5a +73a1dff6f5f6f3f2e3c6ba76535d001e5a1a4d848cc0e1f6f4ede8e8e9f1f1f0 +d5afb95a264a09477d66b0ddfafff6edd8c9986961002164173a6d4658764050 +7346668f99b5d2f7f6f2efefe8c3b9ad1f0b4d1f447a8dcde1bdb28b000f5e3f +4880c2c5b4001658002b5f1d3a6e9cd1effaf2ebe8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ebeef0eee3d18a5b6a192e61003166 +00195171a0c5e5eaeceeebe9e8e8e8e8e8ebf7f9eab9837b2d335f0020593e88 +aa514a781e144c5b97bfd7e8eeefebe9e8e8e8e8e8e8e8e8e8f0f7f7dcac934a +415f0019533c77aec3e1f6eeba9c584862002a701a336b113365002558275f98 +afcfe2f2f1ece8e8e8e8e8e8e8e8e8e8e8eaf3f4eecaa49a4a3c5b0029620042 +7222507b3046858da1c8f2f3f1eae8e8e8e8e8eef3f3e3c2b06e525d0020613c +5574485f7900255b00367a6e98cdfdfff8e2c9ba70576600275f0021665b6aaa +e9f6f6eee9e8e8e8e9f1f1f0d5afb95a264a09477d66b0ddfafff6edd8cd9869 +6700236103336609346606306100356f4d87c1f9f8f5f0efe8bdb9ad120f5431 +41686f7471002762002d6837427da98e7c002260002962343e8de0edefbdadbc +b6bbcee5f2eeeae8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9ebf5f0e2bdaaa1594768 +0e306300326600336100166d99b3d8ecededeceae8e8e8e8e9ecf0f9f2cf684a +6f0d28600024572264a7c2dadb675079120d4a5b97bfd7e8eeefebe9e8e8e8e8 +e8e8e9eef3f8e2c15a567100265a0016749da3d1fcffffdcaa984d415f002c64 +00336500215a5279a6cedfe8f2eeebe8e8e8e8e8e8e8e8e8e9eaedf5f0e0b486 +8a362c5b002d5f002b758199c8f3f3f2ebe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e9edf3f4e09e8b921a1c5a00336600336600225a4e7399c8e0d6a07f8326275d +00326500245c406192c4e3f0f5edeae8e8e8e8e8e9f1f1f0d5afb95a264a0947 +7d66b0ddfafff6edd8c6986958001d705262baf8f8f4e9e8e8e8e8e8e8e8e8ea +eceef3e5dcb78b7c0016582b46729ab0b37b73845663814b4a65002d64003366 +0031640036690a508625285a0d356a65b3e0faf7eee8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecec +ecbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ecfafae892386a182a60003364001f5c6083aed8e6e8ececeae8e8e8e8e8 +e8e8e8e8e8e9edf9f7df916a7b332d595486b7d4dbddd2ad9a393f6700144e5f +97bfdae8eeefebe9e8e8e8e8e9edf7f7df775d7d11245d001d535f8db6d8e7ef +f8f9f6e1b9a6524866001d5a385e90abc6dbe9ecedebe9e8e8e8e8e8e8e8e8ea +ecf5ede2c4a299434164002c64002d5e00397c86a8cdf6f3f1ebe8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ebedf0e8dcba9f994a4466244071678db6 +d2eae09d9593111c5a003062002c6b577bb2e1eef3efebe8e8e8e8e8e8e8e8e8 +e9f1f1f0d5afb95a264a09477d66b0ddfafff6edd8c6986958001d705262baf8 +f8f4e9e8e8e8e8e8e8e9eaeff0e9cdb8af3a14510026674548a9faf0e9bd9a94 +2c2359002d6208376f568eb9c5a384001d5e003366002b5f243a6cbfeefaf7ed +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffbbbbbbededed +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8eaebefe3d9c6bec0b6c0cfdde5e7e9ea +e9e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8eef6f8ec +b68e444061002c640019516e9fc3dfebefefebe9e8e8e8e8e8e8ecf0f1e2ccc2 +958e997d98bbd1dae4efedeae8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8eaf2f4edd4b6a5524965001a59446999c2d6e4f2 +f0ece8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8eaecede4dccabbb3949db3bbcadaeff0ece9e8 +e8e8e8e8e8e8e8e8e8e8e8e8e9f1f1f0d4a3b9580e4a00417d5aacddfbfff6ec +d7c394645200156e5255b6f8f8f5e9e8e8e8e8e8e8e9eaeff1e9ceb8af400d4d +22427681ccedf0dbd0956054001d5f223d75a6c8e0fbf6f1eceae5bfa6973331 +5706366a4580b9fbfaf4eae8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e9e9e7e4dfddd6d5d9d9dde2e6e7e7e9e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e9e9e9e5e3e4d7 +d3d7d2d5dee2e4eaeae9e9e8e5e5dfd7d6d1d3d7dce0e5ebe9e9e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e7e8e8e4e8e8e5e8e8e9e9e7e6e6e3dcd4dce0dae2e9ebe9 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbbb +bbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffbbbbbbededede8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ecec +ecbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffbbbbbbededede8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ecececbbbbbbffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffc1c1c1cbcbcb +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccbcbcbc2c2c2ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef3 +fafcecc59c6c635d5875a0dfe6eef3f1f1f0f3f8f9eac9907c7867688ac3dce7 +f0f3f2f0eeeeeeeeeeeef1f8fbfce376433a130000003d7bb5c4c6c5c4bbb8c3 +d0e6e9ecf1f0f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f4f7f9edd183694f0b00000c2c558cad +d2f6f6f6f1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeef6fcfcec952d2b3600005db1cee2f3f1f1f0f0f7fb +fce89137313500005ac5c5ddf5f2f2efeeeeeeeef3fbfbfca458422308000000 +000000000000000000000000158fb3bceef7f3f3f0eeeeeeeeeeeeeeeeeeeeee +eeeeeff2f4f3e8dec0a89474685a4f4d464a4f5271899bc3dbe5eff3f3f0eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f7f7f9b97d +7c691f2a7a51326f5011578085b3e2f8f6f4f0efefefededede6e6e6dededed7 +d8d9d0cbc8c1babbbec3d4dee4eef2f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +fffffffffffaf0e4ccb1937479839ca2bef7fcfafcf7f2f7fcfffffffff0e4df +b79c93b6daf8ffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f1f0ba +8b83aaddfdfffffffffffffffffffaf5f4bb887fa7dbfdffffffffffffffffff +fcfaf9bc857aa4dafdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff2f9f7e6c4afa08f8c9676461b151900 +00385d777d859ca5b4e3eef2fdf397373443000072c5c5e3f3f2f2eef0f5fbfb +f2a3633c220c000000000c415d7371652b221a0000000018455f637485929dc4 +dde4eef3f3f0eeeeeeeef1f9f9f9d8ae80442e16000000000000000000000000 +0000000000116990a7def2f7f5f2f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeff0f6f8f9e0b492664f2b0916191100146e858fdcfefffff4cb7f +744c0000000000000000000000000000000000000000015a7476dffaf8f7f1ef +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffefd4b7914b00000000000c434364c2bdbd +0d243b3fa9efffffffe7c3c3751e36399eefffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffae3e3bb0e181b8de6fffffffffffffffffffbebebc2091012 +89e5fffffffffffffffffffdf4f4c905080985e4ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f7fcfce6 +642a250c00000000000d140b03040a000002070000192f3e3f3d25100d0d0000 +092e404f99c6daedfac73f3f2d00000000000000283849554a2f1a140900000c +2f424c48311e160900000097b0b0f1f5f3f2eff1f9f9fbc18355371700000000 +6a7d6e3a453c00000077a1a18e665f2b04000000027c9b9ce9f8f5f4f0eeeeee +eef3f7f8e3c9b79d8574839aaccde1f1fefbd073704d0000002c505f8da7b4c3 +c9d4dfe7f0f3f4f6f7ecdab8a18a5d5259595a64737c849e9f9667614d000000 +001742748fc2faf8f7f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffeabcb6842c3b +468ddefffffffffffce9e1d6ada0a0c6e6fdffffffe5c3c3711f3839a2f6ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffef3e1d8870d1b1b80ffffffffffff +fffffffef7eae08c0912127bfffffffffffffffffffefaf3e99205090976ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeef0f0efe6e2eae4dfeaf6f9fbe36930362a00164756 +4f50514f493f240f0d0c00000c374a609ec8dfeef9e2a8a2a36a4725180d0000 +0029474f513a1e190c000000152b4540341d171200001397b0b8f1f5f3f8faf9 +f7cd94533c20000000649aa7dbbe785b3b1200003298a1bdf9ffe47461510c00 +000042789ac4e7f5f5f4eeeef0f8f8f9c3876b41150000001c838fa5f6ffffb6 +8373380e00000002698889e3f9f6f6f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f3f6f6f1cea67b5024000000577676dafaf8f7f2efeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffedd7b6895400001718154158635481bcf2ebd6ca9c746287c3f1ffff +ffe5c3c3711f3839a2f6fffffffffffef0e6d7936941000000080f1b4d6fa2e8 +fffffffffffffffff3e6dc9c6137426ebdffffffffffffffffffffffffe9e1e1 +40151d46beffffffffffffffffffffefeaea410e143fbcffffffffffffffffff +fff6f3f341080b37b9ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef6fcfceca940281a040000 +2bc0c3872c2d1e0000148aa8b6c5caebf4f098373644000072c5c5e3f3f2f2ee +eeeeeef1f5faeddac6bea0622e2613000000000000001b688380523630100000 +000030b0b0c5f8f3f5fcf9faba6454330800003478a7c2e5da935a472100001c +67a1b0ddffffffdba1614c28000000579a9ad2f7f5f5f0f2f7f8fadd6b6b5300 +00000f4b7c9bc9edf6fafdf8f7d6747152000000002d6086aedbf7f6f6efeeee +eeeeeeeeeeeeeeeeeef0f3f6f8eecd85764f000000275070a3d2f3f7f7f3eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdfffffffffffffffff4d0b69c421d2f4085aedcd3cbcdde +f5e4bdbd71243d3fa9f6ffffffe5c3c3711f3839a2f6ffffffe4c9c967091c2e +54a0ecfffeede1cb814f152d2d8dffffffffffffefd7d78100172525a7ffffff +fffffffffffffffbede1c1641a1d1decfffffffffffffffffffcf2eac9681214 +14ebfffffffffffffffffffdf7f3d16c0a0b0bebffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeef0f4fcfcfda9632b1b0c000000000000004e817513201d0000009cc38b2b +354b00006bc5c5e1f4f2f4f6f9efd7cbb9907a65331a14070000000000000000 +00001a342b0a1512000000002b4b77bad1e5f3f5fafbfaee7b544d1c00004587 +a8c9edff9b5a5a2400000f6195a9d9f3fbfffcefb86e5a3d0a001c5e9aa9d6f7 +f5f5f6f8f8ecbd87603c15000000669191def9f6f6f1eff7f7f8dfaf765b3201 +0000005a8386d7f7f7f6f2efeeeeeeeeeeeeeff3f6f8f1d68478580100000000 +00204c6a9bcdedf7f7f4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffe3b6 +b672294746b0fcffffffffffffe3bdbd6d223d3fa5f6ffffffe5c3c3711f3839 +a2f6fffeebc9c6801f2f34a9e3f6f2e3dcdee1e5cfa566252d2ddaffffffffff +fefcfbf5f0eaf1f7fdfffffffffffffffffff4e0e08f0e191d76d7ffffffffff +fffffffff7e9e8950a111471d5fffffffffffffffffffaf2f19a070a0b6bd4ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1fcfcfcb2662d1d0d0000000049 +a9ceb96e332b120000254f000a4900006ec5c5e1f4f2f7fcfbfc95523f220a00 +1428353b382a130f080000000000000000000000158ab3bcedf8f4f3f0eeeeef +f6f9faea6d544a1300005c9ca8d5f6ca5a583d0000006195a2d9f3fafffcfcad +61612f000000115c9aa4d6f7f6fbfaf9ec926a5e1d0000001d5d91a6d7f7f5f5 +efeeeeeff2f7f8fad676765300000002396886b8e3f6f6f6eeeeeef1f5f7f9e8 +c7826c49000000000f0c00100d00000001325376afd6f9f7f7f0eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffe0b6b669264446a9f6ffffffffffffe3bdbd6d223d3f +a5f6ffffffe5c3c3711f3839a2f6ffffedc9c9890b1111364d4d433f3f3f403f +3c4a4a4e4e5cbbf7fffffffffffffffffffffffffffffffffffffffffff7e0e0 +a8161e1ebffffffffffffffffffffff9e8e8af0f1515bcffffffffffffffffff +fffbf1f1b6090c0cbaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef3fbfc +fdd4542d2409000000000000000097b7aa83858e7c79681b244100036dc5c5e1 +f4f2f3f9fbfbd3aa8b4e311a0a0500000000141c1c070b0b0000000000000000 +000012418eabcdeef3f5f3f1f2f9f9fbb45454300000004491926a4c4e260000 +003e9ea2c5fcffffdfb27d4e32120000003a729bc0e4f9fefffbe0b07a55330d +000000578292d2eff7f5f3efeeeeeeeeeef0f7f7f9cd9b764c200000001a7285 +9debf8f7fbf9f7ebd0ae6e522f000000000f3d7a8abbe3c09468421000000000 +20457399c6faf7f7f1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffe0b6b669264446a9f6ff +ffffffffffe3bdbd6d223d3fa5f6ffffffe5c3c3711f3839a2f6fffce9c9c078 +2b3434dbfffffffffffffffffffffffffffffffffffffffffefdfdfaf5f5f6fc +fcfffffffffffffbeddec768121e1e9afffffffffffffffffffcf2e7cf6c0d15 +1596fffffffffffffffffffdf7f0d770080c0c92ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeef1f6fcfdec7b2b2811000000007e93421d231000002489cbd4ee +ffee9837333f00006bc5c5e1f4f2f2f3f6fbf0d5b58173634d525a4f41231610 +05000012000007000000401c001b0c00000000284d73aac7def4fafdffd29c55 +3f24000000000000000000306d9fbddfe7a579522a1000000000002a639bb6da +f8fafffaf3c768624200000000316892b6dff6f5f5efeeeeeeeeeeeeeeeef1f6 +f7f9e3b0775f330000004b7985caf4f2be9d71401f000000000129507da7cff9 +f7f7f7f6f7eccfa7765224000000000d3b6e81bbf7f8f7f3efeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffe0b6b669264446a9f6ffffffffffffe4bdbd71223d3fa5f6ffffffe7c3c3 +751f3839a2f6ffffffdfc9c9530012262d72c8e6e6eaeedfc3b797502d46d9ff +fffffffff0dad78912172525a7fffffffffffee1dedb201a2068d7ffffffffff +ffffffffffe9e7e31e131762d6fffffffffffffffffffff1f0ec1c0b0e5cd4ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff6fcfcf1702a270e0000000019a2d1d6 +f4e8d6d5d4ccd5eaf1ddd8d9bd985e271e2800006bc5c5e2f5f2f3fafbfbd1b1 +93583c1e0d08010000000014408593923e362f0400006eb4b4bfa96c3f280e00 +00003a81aec8e9f9fcfffcd9bda3684f3a22272c4d779fcaded45c5c4c000000 +00000032597ebbd4eaf6f5f4efeeeff3f6f4ddcbc2b3a19fbacad6e4eff4f1ef +eeeeeeeeeeeeeeeeeeeeeeeff0f1eee8e3ded8d5d3d9e7ebf1fce9c57d684600 +0000365571b4d4eef7f7f4efeeeeeeeeeef4f6f6eccca4774f2600003a6b71af +f3f9f7f3f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffe0b6b669294446b0f6ffffffffffffe2bdbd +6f283f4ab6fcffffffe5c3c372243944b3fcfffffffffffae5dbbc683f0d0000 +00000000020e1c366baafffffffffffff2dbd794221b2553bafffffffff8e8de +af4d1f2048fbfffffffffffffffffffaeee7b64e161740fbffffffffffffffff +fffbf4f0bd4f0e0e39fbffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1fcfcfc +a9706260454393c3ddeef2f3f1efefeeeef0fcfcfcad4c342006000000000241 +85c5d8ecf4f2f2f9fbfbdaa06a3d361d0a305398bed7f1b760462d0a00000000 +024dafb5d4f9f9f8e6d9d8cec8cbd6e3e8ebeff0efeeeeeeeeeeeeeeeeeeeeee +eeeeeef0f3f5ecdacec3b4adb6c2d1e1e8eef2f1efeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeefefefeceaece9e4e9eceaecefefefeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffdfcfaf4efeaecedf4f8fdffffffffffffffffffffffffffff +fffffffffffffffff0dddd7b111e2091ecfffffffffffffffffff4e6e6800c16 +178decfffffffffffffffffff8eeee85080e0e89ebffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeff0f0ede5e4dfd9dfdee1ececedefefefeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff5dddda01a2121ceffffffffff +fffffffffff8e6e6a7131818ccfffffffffffffffffffffaeeeead0c0f0fcaff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1c1 +c1cbcbcbcccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcbcb +c2c2c2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffffffffc7c7c7474747717171717171717171717171717171717171717171 +7171717171717171717171717070707272727070707272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727271717171717171717170 +7070717171717171717171717171717171717171717171717171717171717171 +5c5c5c808080ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffffffd5d5d5868686cdcdcdcbcbcbcacaca +cacacacacacacacacacacacacacacacacacacacacacacacacacacac9c9c9cbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcacacac9c9c9cacacacacacacacacacacacacacacacacacacacaca +cacacacacacacacacaccccccaaaaaaa1a1a1ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffdedede +a9a9a9f9f9f9f7f7f7f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f7f7f7f9f9f9d1d1d1b4b4b4ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffffffffffffe0e0e0aeaeaeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffd6d6d6b8b8b8ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeff0f1ede7e2e2ddd5dde4e5e9edf0efeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0afafafffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffd6d6d6b9b9b9ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef +f2f7f8e9cea694815c6484a6bad5f1f9f8f1edd9966458260000000142818ac1 +f4f7f6f2efeeeeeeeeeff3f7f8e9ce9e866c3535548098b6e7f7f7f3f0eeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffff +ffe0e0e0afafafffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6d6d6b9 +b9b9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeff0ebebe7e6e6e1e6e6 +e6e6e6e6e6e6e6e6e6e6e6e7e8e8e3dedadadcdadee7ededeeefefeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeef0f3f4ecdfd6c0b1afafb3c2dce3e9f1f2f1eeeeeeee +eeeeeeeeeeeeeeeeeeeeeef6f8f8e4b67a58370d000000719292e6ffffcb9770 +481f00000000000000104d7a96cbeff6f6f3eeeeeff7f7f8d9a87d5a2a000000 +0000000b0d0b13130f0c050f346683ade8f9f8f4f0efeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffffffffe0e0e0afafafffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffd6d6d6b9b9b9ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0 +f7fcfce79a2e2918000000000000000000000000000000000000000000000000 +00267cc2cee9f4f2f2efeeeeeeeeeff5faf9d3baaa9083819cb1c9e5eaf0f2f1 +efeeeeeeeeeeeeeeeeeeeeeeeff9f9fac99b6b443916256399b798565a390500 +0052a2a2d1f7f4f4f0eeeeeeeeeeeeeeeeeeeeeeeef0f6f8f9e885685a140000 +00000a2e34384c4f4a40413d2b231d190d02305973abd0e8f6f6f4eeeeeef1f5 +f7f9e7c07d6841000000303f487e857d51483600000000000e5f7787e3faf8f6 +f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0afafafff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffd6d6d6b9b9b9ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeff1f5f6ead8b6ab9a8383828888898a8a8a8a8a8a +898a8c99a5975c2622110000005da2c2dff2f2f2f1eeeeeeeeeef0fafafba145 +453a00004b98b7d0f0f6f3f2efeeeeeeeeeeeeeeeeeeeeeef0f9f9fab5545430 +0000056aa8a9a76e593c0e00005da2a2d6f6f4f4efeeeeeeeeeeeeeeeeeeeeee +f6f8f8e8bc855a3b150000000c0d0d1916150c0a080000000000116c8c9ae4f9 +f6f5f1eeeeeeeef1f5f7f9eacf7c6a4f00000000000f687f8edfcba4794d2400 +0000446879c3eaf9f7f5f1eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffffffffe0e0e0afafafffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d6d6d6b9b9b9ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeef5fbfbf16a39350f0000136eafc8e4f3e9e5 +e0d5d0cfcecdd0e2f2e89245413a00005689a8cad5d8d5d0d2d7d7e2ececeeef +efefeeeef0f9f9fab462543209001669a8b2a66e5a3c0e00005da2a2d6f6f4f4 +efeeeeeeeeeeeeeeeeeff2f8f9fbd767674c00000012547ca0d0ebfefffedea0 +6e56280000195f8c9fd9f7f6f6efeef0f7f7f7e0c4a05f452500000012231a12 +22190000000000000000002e5673abd7f3f7f7f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffffffe0e0e0afafafffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd6d6d6b9b9b9ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f8fbfce2a73931 +200000006eb0c3e4f9e7403f3701000000000000000000000000000000000000 +000000000000005db1b1daf6f3f3efeef0f9f9fabc62543409000569a8a9a66e +593c0e00005da2a2d6f7f6f7ede6e3e6dfdae8edf1f7fbe99765572100000027 +38001b32000016698c917e6a66260000245f8aa8d9f7f6f6f2eeeef0f7f7f9c5 +96815a260d425d79aed0eca17f7a2300000000003b5b78badcf7f7f7f2eeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0 +afafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd6d6d6b9b9b9ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeef3fbfbfd9739371b010000005ec3c3e0f9f5f1e7e2dcd3cfd6e8f1e38f +433d1d00000000005f8eadd0d7d9d4d0d2d7d7e2ececeeefefefeeeff4f9faf2 +86544f1f00003b81a8c4b06c5a3a0d00005da2a2d6fffff28e60582300003c7a +9cbee3c365614b0000338a96aca07b642e0c00000000000000000011768e9bea +f7f6f4efeeeeeeeeeeeeeeeeeeeef2f6f7f0e4cf8164500d0000000000000000 +0d1212181d1a111814223c5e95abd0f9f7f7f0eeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffffffffffffe0e0e0afafafffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffd6d6d6b9b9b9ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef2fbfbfcbd81372515000000005e9dc5e0f1f7f2 +f2efeeeeeffafbfbd49c5834200800000000000067a3b7dff3f5f3f1efeeeeee +eeeeeeeeeeeeeff2f9fafbd754544100000065a6a8dcbd685a370a000062a2a2 +d9ad5f5e2f01000000117398a7e5f7f6f5f1efeeeeeeeeeeeef7f8f8e1b26d57 +34010000000000002b4f6dadcce4f6f6f5f0eef0f5f7f2ded4b9795340190000 +00000000000018313a556a6e6f7071695d443a27040000407676bff8f7f7f0ee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0afafafffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffd6d6d6b9b9b9ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f5fbf9ead071312810000000 +00003676aad4e7f4f2f2f1eeeef0fbfbfbcd9156301c08000000613800542700 +629fb7d6eef6f3f1efeeeeeeeeeeeeeeeeeffafafacc8b523b1c0000002e9da8 +c0f3b972563419001e5b45113028000000000270959fe2f4f6f5f2efeeeeeeee +eeeeeff2f7f8fae0926b561d0000000000000a00002b5f8ca8d9f7f6f6efeff3 +f7f7f3927972170000002a4f45364b5e0e0059707fbcecf8f7f8f7f7f4c4867e +5e0000557676b8f8f7f7f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffff +ffe0e0e0afafafffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6d6d6b9 +b9b9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f2f6f1e8d8c4ae78 +5832140d05000000000000679abce4f1f5f2f2f0f0f3f8fbf7e38d51361a0700 +0000007bbcbca04a454d02005e9db7d6f0f6f3f1efeeeeeeeeeeeef1f8fafbe1 +ab52442b0000002e72a0c0e2fae7b6794d3212000000000000000033809fbdea +f9f6f4f1efeeeeeeeeeeeef1f5f8f9eccd795e470c000000001271919edef6f3 +e6ecede9eceeefeeeeeeeeeef0f0f0e8e5e8dfdae0efedf0c17d7d5900004f6c +7fb7e9f8f8f8f8f8f1c0867b570000537676b8f8f7f7f0eeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffffffffe0e0e0afafafffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffd6d6d6b9b9b9ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeef0f5fcfcf8c2302f22000000000000215077b5d3e9f2f3f2f0efeeeeeeee +f0f4fbfcf7c2583d3715001f88bcc7e2ebcb583e321100005ba3b7d9f3f6f3f1 +efeeeeeeeef1f8fafbdb525141010000000259aaabd6ffffffe3b6804a321800 +00154f7389c7e3e8f2f4f3f0eeeeeeeeeef0f3f6f6e9dbb08c6634220f000000 +0000277592afe8f9f6f5f1efeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f0f7f7f8d0967d511800000000000000000000000000000000000e477686c8f8 +f7f7f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0afafafff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffd6d6d6b9b9b9ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f3f4e6d8d4ccc5c7d4dde8edeeef +efefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef0f6fbfbe959433c0800 +000000037badb8e7f5f4f3f1efeeeeeeeeeeeff4f8f6d6c0b6a49697b2c7d9e6 +eef2f1f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff0f3 +f9f9ebb386653f200a254d66a1c6dbf3f6f5f1eeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef0f7f7f8c4887d5110002642526e8d9b9e9b9b98 +8c7b5b5340112b617e93c8f8f7f7f0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffffffffe0e0e0afafafffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d6d6d6b9b9b9ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffffffe0e0e0afafafffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd6d6d6b9b9b9ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0 +afafafffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd6d6d6b9b9b9ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffff +ffffffffffffffffffe0e0e0afafafffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffd6d6d6b9b9b9ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f1f1f1e2e2e2cdcdcdffffffffffffffffffffffffe0e0e0aeaeaefffffffefe +fefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfe +fefefcfcfcfefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfd +fdfdfdfdfdfdfdfdfdfdfefefeffffffd6d6d6b8b8b8ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffff +ffdfdfdfa2a2a2d9d9d9dadadad9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 +d9d9d9d9d9d9d9d9d8d8d8dadadad8d8d8dadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadad9d9d9d9d9d9d9d9d9d8d8d8d9d9 +d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9dadadabdbdbdb6 +b6b6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcd +cdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb9b9b9f3f3f3eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef1f1f1e2 +e2e2cdcdcdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9 +b9f3f3f3eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeef1f1f1e2e2e2cdcdcdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffc1c1c1cbcbcbcccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccbcbcbc2c2c2ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5 +b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefefefdfdfdfafafaf7f7f7f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f7f7f7fafafafdfdfdfefefeffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbfbfbb5b5b574747456565647474746464647474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474646464747475757577474 +74b5b5b5fbfbfbffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffc1c1c15e5e5e6c6c6cb7b7b7e8 +e8e8fcfcfcfefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefcfcfce8e8e8b7b7b76b6b6b5d5d5dc1c1c1ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5 +b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a8a85f +5f5facacacf5f5f5fefefeffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffefefefefefef3f3f3a6a5a55d +5c5ca9a9a9ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffbcbcbc595959adadadfbfbfbf8f8f8f7f7f7f8f8f8f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9fbfcfcf4ece0e1e1e3ebf1fcfcfbf9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f8f6f7f6f5f5f6f8f7f8aaabaa5d5d5dbebebeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff8f8f8707070838383e3e3e3f4f4f4f4f4f4 +f5f5f5f5f8fafbf4e3c5bbb4a7a7acaca5a2a7b5c5d7e9f8ffce87795d688593 +d7fafafaf6f6f7fbfafbd8a4835a2503002e637aabc8968e7d3c354c625e5c58 +50403f435a8d98b8f6fbfbf9f5f5f4f4f4f2f2f2f0f0f1ddddde818181737373 +f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffa8a8a8737373 +b6b5b6e3e2e3ebebebeff0f0f0f1f1f2f5f9faf5e7b695673822083f5e5e554e +4e303c312e342b1900002f2f2a2c2c27557c82d3f6e4bdb29e7c76787979809f +a9b2c5ced7a1796b535c6b82bbbd8c89747171a2fbf9f9f4f1f1f0f0f0efefef +e7e7e7dededfb4b4b5757575acacacffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff8a8a8a8a8a8acececedbdadbdcdddce3e4e3eaeaeaedeeedeeef +f5f7f8d97171778c8ca8eeb3879c996a45577384694d667c8579697dabafa6b6 +d9d7aea7926e727a7b73779aadb3b6a286591f00274c6ea2cddf938c9c7871a6 +f7f7f7efedede9e9e9e1e1e1dadadadadadacfcfcf8b8b8b8d8d8dffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffff3f3f3838383a1a1a1dddddddcdcdcdede +dee0e0e0e1e1e0e0e0e1e5eaf2f1d4936e5450818cadf2fff7dbb4785b360220 +20001d1d2534365f99b0bae5fafdd1ab9161451f1e3f5b8ba1ccfff5d7887d5b +0000145d7474858c9a8271a3eaf2efe3e0e1dfdfdfdfdfdfdddddddcdcdcdddd +dda2a2a2878787f3f3f3ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe5e5e58888 +88b1b1b1e3e3e3dfdfdfe1e1e1e2e2e2e4e4e4e6e6eaf4f5eeab70692f221c00 +1c236f745e5e6348678888af95796f696a89abc4d5d4d7ebf3f2d2bcb08e7b6e +768795b4b5b07c725518486c91c9d6a28b6a1c023e7174bdf5f4f4e6e5e5e3e3 +e3e3e3e3e1e1e1dfdfdfe2e2e2b1b1b18a8a8ae5e5e5ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffdfdfdf8f8f8fb5b5b5e3e3e3e3e3e3e5e5e5e7e7e7e9e9e9ef +f6f6f0c38a684216688e8ebb9d7361462a0a1e241b2f2f332a2a18140c11385c +91a5cffdfffcd5bcac85725e67808d9c9896a0a8a9b4b6a3886330536770cbe4 +eae9eaeeecebeae9e9e9e7e7e7e7e7e7e5e5e5e3e3e3e3e3e3b5b5b5919191de +dedeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5 +b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffe2e2e2949494adadade1e1e1e7 +e7e7e9e9e9ebebebedededf0f1f4f8f7ebac70637e8f8e91737cb68b92af7676 +958788a59579766c6c93bbd7e9e9eef8fbeeb49b85533a3133445d86a0bcd9cb +aa695953343f679da099a4aab0acaccaf6f7f6efedededededebebebe9e9e9e8 +e8e8e2e2e2aeaeae959595e3e3e3ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 +f0f09898989f9f9fdededeedededeeeeeef0f0f0f2f2f2f4f4f4f9fafaeab585 +798a682a4451978b94c5827665575c4c4b51443334456a90b1bfddffffdf8080 +8e7d7dadbe8d9f82554949512f00174d7691cffff8da8c8360456a71c7f5fbf9 +f9f5f2f2f2f0f0f0eeeeeeeeeeeedfdfdfa1a1a19a9a9af0f0f0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff9f9f9ababab999999d0d0d0edededf3f3f3f6f6f6 +f8f8f8fafafafdfdfdedae71757a510f3b44888b8dc676768675858473764f4e +657198a9b2b5c5cddfec87807f607669838074491e2f61694f46566576769a9e +8b7e4b330843766874b5f0fcfcfcf8f8f8f6f6f6f4f4f4efefefd2d2d29c9c9c +abababf9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffefefed7d7d7909090 +afafafeaeaeaf9f9f9fcfcfcfefefeffffffffffffeac6afbcc8bfd6f0f3fff9 +f5cb9888897a789eb5bfbdb7b5b2a8a5aeb9cdd7e9ef98808e75737f959b9591 +91a6d8e9e3bfac9667544b505f76a2b4d5fffffffffffffffffffefefefcfcfc +f9f9f9ecececb2b2b2919191d8d8d8fefefeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff6f6f6b4b4b48b8b8bc6c6c6f8f8f8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffefefef8f8f8c9c9c98d8d8db4b4b4f6f6f6ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffefefefacacac838383c7c7 +c7fafafafcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffdfdfdfbfbfbfafafac9c9c9848484acac +acefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefefeeeeeeeb8b8b8787878878787c2c2c2ebebebfcfcfcffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffcfcfceaeaeac2c2 +c2888888787878b8b8b8eeeeeefefefeffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffefefef2f2f2d1d1d1a7a7a78383836f +6f6f686868696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +696969696868686f6f6f838383a7a7a7d1d1d1f2f2f2fefefeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5 +b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +fefef9f9f9eeeeeee1e1e1d3d3d3c9c9c9c6c6c6c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c6c6c6c9c9c9d3d3d3e2e2e2eeeeeef9f9f9fe +fefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbf8f8f8f6f6f6 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f6f6f6f8f8f8fb +fbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5b5 +b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb +b5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffb5b5b5fcfcfcffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbfbfbb5b5b5ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffb5b5b5fcfcfcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbfbfbb5b5b5ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffb5b5b5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfbfbb5b5b5ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffc1c1c1cbcbcbcccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccbcbcbc2c2c2ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff> + +end +grestore +showpage +%%Trailer +%%EOF Added: pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0019.eps =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0019.eps (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0019.eps 2008-11-09 18:41:39 UTC (rev 1308) @@ -0,0 +1,9489 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 512 197 +%%Creator: EPS-conv ver 3.06 +%%CreationDate: 2008/11/09 18:22:11 +%%Title: PAL0019.BMP +%%Pages: 1 +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +%%EndProlog +%%Page: 1 1 +gsave +16 dict begin +/DeviceRGB setcolorspace +/ShowImg0 +{ << /ImageType 1 + /Width 512 + /Height 197 + /BitsPerComponent 8 + /Decode [ 0 1 0 1 0 1 ] + /ImageMatrix [ 512 0 0 -197 0 197 ] + /DataSource currentfile /ASCIIHexDecode filter + /Interpolate true + >> image } def +0 0 translate 512 197 scale +ShowImg0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffbf8f4eff4f4f8f8fbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffff4dad1d1d1d1d1deebf8ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffefa16543434343435086defb +fffffffffffffffffbde8650434343434365a7f4fff4a7704343434350505050 +5050505050505043434370d1f4fffff4dead8e78434343434343434343434343 +505b70a7c7e7fffffffffffffffffffffffffffff4a770434343435050505050 +50505050505043434370d1f4ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff4cc5b43434343435094ccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffd5a1704343434343439bd1 +effffffffffffff4d5a143434343434378b2defffff4a1654343434343434343 +4343434343434343434365d1edda864343434343434343434350505043434343 +4343435b94ccfffffffffffffffffffffffffffff4a165434343434343434343 +4343434343434343435bccf4ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff8d1704343434343659bd1ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffe7b85043434343435086 +c2ffffffffffffc28e5b43434343435bc2effffffff4a76543434343435b9beb +fffffbfbfbfbfbfbfbfbfbf8d5a7434343434343659bccfffffffffffffbf4e7 +bd947070a1d5fffffffffffffffffffffffffffff4a76543434343435b9bebff +fffffbfbfbfbfbfbfbfbfbfff8b88e78707878787086c7e7fbffffffebc7a170 +70787870658eb8defffbde9b7878787878869bada18670505050505070add1eb +fffffffff8d1704343434343659bd1fffffffffbebbda1865b50505050435050 +5b86a7c2effffffffffffffbde9b78787878789bb8ccccb8a1786570b2daf4ff +fff4c7ad9465505043434343505b7f9bb8ebfbfffffffffffbde9b7878787878 +9bb8ccccb8a1786570b2daf4ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffefa165434343434343 +78dafbfffffbda7843434343434370adf8fffffffff4a76543434343434370b2 +c7c7c7c2c2c2c2c2c7d1e3f0d5a143434343434343435b7f94a1b8c2cce3eff8 +fffffffffffffffffffffffffffffffffffffffff4a765434343434343659bad +adada7a7a7a7a7a7b2d1f8fffff4daad4343434343434365a1e7efd170434343 +434343437fdef8fffff4d1654343434343434343434343434343434343434350 +c2ebfffff8d1704343434343659bd1ffffeb9b5b434343434343434343434343 +434343434370a7f4fffffff4d16543434343434343434343434343439bd1e0a7 +70434343434343435050504343434343434378b2f8fffffff4d1654343434343 +4343434343434343439bd1efffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffe3b27f4343434343 +439bd1f8f8d5a143434343434386c2e7fffffffffff4a7654343434343434343 +4343434343434343434394eff8d1654343434343434343434343434343434343 +50789bdef4fffffffffffffffffffffffffffffff4a765434343434343434343 +4343434343434343509befffffffffffdeb27f43434343434343434343434343 +4350b8e3fbfffffffff8d17043434343435078a1dae7e7ccad86434343434343 +70a7d5fff8d1704343434343659bd1f4d19b434343434343709bc7f8fbf4bd8e +65434343434343a7daf8fff8d17043434343434343505b6570655b65abb79b43 +4343434343a7d5efffffffd5ad78434343434365d1f4fffff8d1704343434343 +4343505b6570655b65b2daf4ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffefc75b43434343 +435b8eb8b89465434343434370d1f8fffffffffffff4a765434343434343435b +657065656565655b6586b2f4fffffbe7c7866550434343434343434343434343 +434343437fb8fbfffffffffffffffffffffffffff4a765434343434343507886 +8686868686867f869bbdf8fffffffffffffff8b87f504343434343434343438e +c2e7fffffffffffffff8d170434343434365a1d5fffffffffbd1654343434343 +659bd1fff8d1704343434343659bd1d5a170434343434365ccf4fffffffffff4 +cc5b434343434386bde3fff8d1704343434343659bd1ffffffffffffd5a77043 +4343434343434343434343434343434343434343b2def8fff8d1704343434343 +659bd1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaafffffffffffffffffffffffffffffffffff8b278434343 +43434343434343434343507fbdfbfffffffffffffff4a76543434343435ba1f8 +fffffffffffffffffffffffbf4ebeffbfffffffffbf4ebdad1c7ad9b7f434343 +434343435ba1effffffffffffffffffffffffffff4a765434343434365a7fbff +ffffffffffffffffffffffffffffffffffffffd5a170434343434343434343a7 +d5f4fffffffffffffff8d1704343434343659bd1fffffffff8cc5b4343434343 +659bd1fff8d1704343434343659bd1d5a170434343434370d1f8fffffffffff8 +d570434343434370a1d5fff8d1704343434343659bd1ffffffffffffd5a17043 +43434343435070787f787878787878787f7f7886bde3f8fff8d1704343434343 +659bd1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffebc78e4343 +434343434343434343439bd1effffffffffffffffff4a76543434343435ba1ef +fffffffffffffffffffffff4d194434365adc2d5eff8fbffffffffefd1704343 +434343435b9beffffffffffffffffffffffffffff4a76543434343435086d5e7 +ebe7e3e7e3e3e3e3e3e7f8fffffffffff4d1a143434343434343434343434343 +4370d1f4fffffffffff8d1704343434343659bd1ffffffe7c7a1434343434343 +70a7d5fff8d1704343434343659bd1e7bd8643434343434394c7ebffffffe3bd +8e434343434343a1d5f4fff8d1704343434343659bd1ffffffffffffe7c28e43 +43434343439bc7e7ffffffffffffffffefc2adb8e3fbfffff8d1704343434343 +659bd1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaafffffffffffffffffffffffffffffffffffffff8d57043 +4343434343434343437fdefbfffffffffffffffffff4a76543434343435ba1ef +fffffffffffffffffffffff4d19b434343434343434343434343434343434343 +43434386b8e3fffffffffffffffffffffffffffff4a765434343434343434343 +4343434343434343435bccf4fffff4cc70434343434343508ec7c7a743434343 +43434370a7f4fffffff8d17043434343434343505b5b50434343434343434365 +ccf4fffff8d1654343434343659bd1fff8d570434343434343434365655b4343 +4343434343437fdefbfffff8d1654343434343659bd1fffffffffffffffbda78 +4343434343434343435b6570706543434343435bccf4fffff8d1654343434343 +659bd1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffc28e +5b4343434343435b94ccfffffffffffffffffffffff4a765434343434370a7f4 +fffffffffffffffffffffffbebd1947865434343434343434343434343435b70 +a7c7defffffffffffffffffffffffffffffffffff4a765434343434343434343 +43434343434343434370d1f4f8b27843434343434350addaf8ffffffd1a17043 +434343434378b2defff8d1704343434343434343434343434343434370b2d5ef +fffffffff8d570434343434370a7d5fffffff8e3c77f5b434343434343434343 +43436586cce7fbfffffffff8d570434343434370a7d5fffffffffffffffffffb +efd59b7f654343434343434343434343435b709bdef8fffff8d5704343434343 +70a7d5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffbf8f4efefefefefeff4f8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff8d170434343434365a1d1fffff8f4f4f4fbffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffefebe7e7e7e7ebeb +f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbf8efebebebefeff4f8fbffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff4d15b43434343435b94ccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffbe7b2a19b9b9b9bb2d1ebffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf3fc +f3fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffebd90f26670f17070f27070f17066f081b1fbfffbf94e00ef +b7e5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffbe1f78990f6e1f3fffffffffffffee1d2f7702dee +002df2d7f3ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffdbb7f59fb7f9f7ffffe5 +bdf47089f6e9fbffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffd9f4eee6697f59781f3c2e1fdffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffd972dee0066f38966ee0000f09090f3b1d2fcd29ff00000ee +4066f17066f15c5cf1abd7fdffffffffffffffffffffffffffffffffffffffff +ffd7b7a5abc7e5fffffffffffffffffffffffffffffffffffffffffffffffefb +f7fefbfbfefbfbfefbfbfefbfbfefbfbfefbfbfef7f3fdf3fbffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffff3e1facdd2fbfbffffffffffffffffffffffff +ffffffffffffffffffffffc289ef0000eeb7e5fffffffffffffd9f5cee0000ee +0000ee4090f9fffffffffffffffffffffffff7e5fab7abf59797f39090f3a5b7 +f9e9fbfffffffffffffffffffffffffffffffffffffc8100ee0040f5f7ffffb1 +66ee005cf6fbffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffe972dee89bdf8904eee0000f2e9ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffd9f4eee0000ee4e4ef05c5cf04000ee0000ee0000ee97b7f8 +c7c2f8c2c2f8bdb7f7d2e9feffffffffffffffffffffffffffffffffffffffff +f39000000089c7fffffffffffffffffffffffffffffffffffffffffff3cdf300 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee004ef5f3ffffffffff +fffffffffffffffffed2b7f6bdd2fcffffffffffffffffffffffffffffffffff +fffffffeb181f04e81f6fbffffcd89ee0000f3eeffffffffffffffffffffffff +fffffffffffffffffff3f94e00ee0000ee8190f38989f38989f27070f15c40ee +669ff9fbfffffffffffffffffffffdb789f00000ee0000ee0000ee0000ee0000 +ee0000efa5d2fdfffffffffffffffffffffffff3d2f40000ee90c7fdfffbf94e +00ee0040f19090f38181f28181f27979f4dbf7fffffffffbe1f77066f16666f1 +6666f16666f16666f02d00ee2d5cf1704eee0000f05c5cf2d2f7ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffd9740ee005cf2795cee002df08181f29097f34e2df08190f3 +9090f39089f39fc2fcffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdfffffffffffffffffffffffffffffffffffffffffffbeefbbd +bdf7c2c2f8c2c2f8c2c2f8c2c2f8c2c2f8c7c2f66600ee2d81f8ffffffffffff +fffffffffffffffffd9000ee79c2fcffffffffffffffffffffffffffffffffff +fffffffd972dee2d90f9ffffffd297ef002df4f3ffffffffffffffffffffffff +ffffffffffffffffc790f00000ee404ef04e40ef4e4eef0000ee0000efb7e5fe +fffffffffffffffffffffffd9f5cee0000ee81b1fae5c7f30000ee9fd7fdf7e5 +f8702dee0000eebde9fffffffffffffffffffeab66ee0000f0d7ffffcd89f000 +00ee0000ee0000f07981f27979f27070f3d7f7fffffffff3cdf30000ee7090f5 +9f9ff59f9ff59f9ff35c00ee4e79f39f9ff5ababf59797f6e1f7ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffd902dee0000f05c4eee2d40f05c5cf05c89f7e9e5f9a5a5f6 +ababf6a59ff4abc7fcffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffa5c00ee4090f9fffffef3eefd +eeeefdeeeefdf3f3fb892dee81bdfbf7f3fdeeeefdeeeefeffffffffffffffff +fffffffd9740ee4090f9ffffffd297ef002df4f3ffffffffffffffffffffffff +fffffffffffbe1f60000ee4090f8ffffffffffffffffffb770ee004ef5f7ffff +ffffffffffffffffffdbabf10000ee90c2fcffffffd797f00000f1d7f7ffffff +ffffeef84000ee0079f7fbfffffffffff7d2f50000ee004ef4d7d2f50000ee66 +a5f79f5cee4097fafffffffffffffffffffffffffffffff3d2f40000efcdf7ff +fffffffffffffffffe972dee90d7fffffffa8170f4e1f7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 +f94e00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +4ef5f3ffffffffffeee5fbd7c7f54e40f05c5cf05c5cf05c5cf06670f17979f1 +665cf1b1e1feffffffffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffeec7f30000ee90cdfdfff3f92d00ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000f3eeffffffffffffff +fffffffd9f40ee2d90f9ffffffd297ef002df4f3fffffffffffffffffbf3fdfb +fffffbe9f96600ee0040f3c2bdf30000ef97b7faf7f3fa5c00ee5ca5fbffffff +fffffffffffffffffd9740ee0066f6fbfffffffffeb770ee004ef5f3ffffffff +ffffffffb779ee002df3eefffffff3f96600ee0000ee005cf2895cee0000f2e9 +fffea54eee0000ee404ef04040ee709ffafffffffffffff3d2f40000ee0000ee +0000ee0000eeabdbfc9f40ee81c7fde5b7f10000eeb7e5feffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb +fcb7a5f5ababf6ababf6ababf6ababf6ababf6ababf6ababf6ababf6ababf5ab +b7f9f7fffffffffffffffff7d2f40000ee5c66f05c5cf05c5cf05c5cf0665cef +0000ee90cdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffc812dee0000f2e5fffffffffef3eefd +eeeefdf7f3fa7900ee0000ee89bdfbf7f3fdeeeefdeeeefeffffffffffffffff +fffffbfa6600ee66a5faffffffd297ef002df4f3fffffffffffff7fa6600ee70 +b1fbeecdf52d00f0c2eefffbe1f77040ee0000ee0000ee0000efc2f3ffffffff +fffffffffffffff7fa5c00ee79bdfcfffffffffffb7900ee4097faffffffffff +ffffffffd297ef004ef5f3fffffbe1f60000f0ababf2002df4eefbfde5eefeff +fffd974eee004ef2abb1f6aba5f5b7cdfcfffffffffffff3d2f40000eea5c7fb +dbcdf64000ee97d2fcb766ee4081f4792dee2d89f8ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff3cdf40000f07979f27070f17070f17070f27970f0 +0000ee90cdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffca570ee0000ee81bdfcffffffffffffffffff +fffffeb781ef0000ee0000ee90cdfdffffffffffffffffffffffffffffffffff +fffbe5f70000ee90cdfdffffffd297ef002df4f3fffffff7fb812dee0000efb1 +dbfeffffffffffffffffffffffffffffffbd81ee0000ee0000ee6690f7eeffff +fffffffffffffff7f94e00ee90cdfdfffffff7d7f50000ee97d2fdffffffffff +fffffffc812dee0040f4eefffffffffffffffff7d2f30000f3f3ffffffffffff +fffd9740ee2d81f8f7fffef7f7fef7f7fefffffffffffff3d2f40000efcdfbff +fffffa4000eec7f7ffe1abf10000ee0000efc2eeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff3cdf30000f08181f28181f27979f28181f28181f1 +0000ee90cdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffeed7f7662dee0000ee5c97f9fffffffffffffffffffffffd +b179ef0000eeabd7fba54eee89cdfdffffffffffffffffffffffffffffffffff +feab66ee0000f0cdf3ffffffffd297f0002df3d7d7f75c00ee0000eeabd7fdff +fffffffffffffffffffffffffffffbe5f75c00ee0000ef5c4eee005cf5f3ffff +fffffffffffffffffd902dee005cf5f7fffda55cee0000f1dbfbffffffffffff +febd89f00000ee70b1fbfffffffffffffffffff3d2f30000f3f3ffffffffffff +fffd9f4eee0000ee0000ee0000ee0000f3eefffffffffff7d2f40000f2d7e5fa +a590f10000efd2ffffdb9ff00000ee4e90f9fffffffbfbfeffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff7dbf6665cf04000ee002def5c66f04e2dee404ef0 +4e40f0abd7fdffffffffffffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +f7fcd2c2f68166ef0000ee0000ee89b7fafffffffffffffffffff7e5f97940ee +0000ee90c2fcfffffe972dee89cdfdffffffffffffffffffffffffffffffe9c2 +f30000ee5ca5faffffffffffffc790f00000ee0000ee0000f1bde1feffffffff +ffffffffffffffffffffffe9cdf54000ee0000efb7e1fefffffef3fbffffffff +ffffffffffffffffffe1b1f20000ee0000ee0000ee5c9ffaffffffe9dbf8814e +ee0000ee005cf5eefffffffffffffffffffffff3d2f30000f3f3ffffffffffff +fffd9740ee0079f7eef7fdeeeefdeeeefeffffffffffffd7a5f00040f5e9e9f9 +664ef07081f3a59ff20000ee0000ee0000f1c7e9fc9f4eee5ca5faffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffef3eefdeeeefcdbcdf64e00ee66abfbffffffd290f066abfb +fbfbfef7eefa7900ee9fd7fdffffffffffffffffffffffffffffffffffffffff +f39740004090cdfffffffffffffffffffffffffffffffffffffffffffffffff7 +dbf60000ee0000ee4e79f4d2e9fefffffffffffffffffffffffff3dbf64e00f0 +abd7fdfffffed7c7f64e00ee89cdfdffffffffffffffffffffffffffe9f72d00 +ee002df3e5fffffffffffffffec290f00000f089abf8eeffffffffffffffffff +fffffffffff3dbf88970f00000ee0000f0bde1feffffffffffffffffffffffff +fffffffffffffffffffffffec7a5f36666f181a5f9f7ffffffe5f70000ee0000 +ee6690f7f3fffffffffffffffffffffffffffff3d2f30000f3f3ffffffffffff +fffd9740ee4090f9ffffffffffffffffffffffffffeef94e00ee4e97faffffff +fbe9f99070ef0000ee4e90f8fbfbfc892dee0000ee0000ee89c7fdffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff3f92d00ee0000ee0000ee5c81f6e9fbffffffffd7a5f10000ee +0000ee0000ee0000f1c7eeffffffffffffffffffffffffffffffffffffffffff +f39740004090cdffffffffffffffffffffffffffffffffffffffffffffffffff +fffff3e5fbe9f3feffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff3f94000ee0000eea5d7fefffffffffffffffffffffffffffffed7bd +f7d2e9feffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffbeefa905cef5c89f6e5fbffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff3dbf9d2e1 +fdfffffffffffffffffffffffffffffffffffff3d2f3002df3f3ffffffffffff +fffd9f4eee4097faffffffffffffffffffffffffffeef9662df1cdf3ffffffff +eecdf30000ef9fc2fbfffffffffffffffbfcb190f26679f5e5fbffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000eeffffffffffffffffffffffffffffffffffffffff +f39000000089c7ffffffffffffffffffffffffffffffffffffffffff0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000 +ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee00 +00ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee +0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000ee0000eeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffe1c7b7bdd2e9ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e1dbd0cbcfcdd2dbe4e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e4ceb10033660033660033660068b1e1e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e4d2bd817e967a8ab1d8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8bf8a78546a7666abcf6e3371533373b1dde8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e1cebd7f718458678f9cb8d5 +e8e8e5bfafab716c7a0033660033660068addde8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e4d2c0877e8951597a4a56784350753b4a7234456f30436c29406b213d6a +1e3b680e336718336b8ab8d8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e4d9cba9a0a580829980869980869980 +869980869980869983899c6e5b6600336600336900336b003397d4e8e8e8e1db +ccc3c3b0afb9acafb9acafb9acafb9acafb9acafb9acafb9acafbcbec9d2dde8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd9c0033660033667db8db +e8e8d57d4b6600336600336b00336600336683c1dfe8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ddbd97003366003366003366003366003366003366003466003466003466 +0033660033660033660068ade1e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd9700336600336600336600336600 +3366003366003366003366003366003366003366719bb7c8d9e5e8e8e8ddbd9c +00336600336600336600336600336600336600336600336600336600336cb5dd +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a000336600336683bddb +e8e8e8e8e8db916066003366003382bfd9e2e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e5dfd4d1d0c6c7d0cecfd9d6dadfdad1cbaba1a78e9cb3bbcedcac8477 +0033660033660056a0d8e8e8e8e8e8e8e8e8e8e8e8e8e1d59c86937a809cb5d5 +e8e8e8e8e4d5cbb2b2bcb2c1d5e4e8e8e8e5dfd0cacab7b7bfb4b7bfb4b7bfb4 +b7bfb4b7bfb4b7bfb7babc86606a003367003378bbe1e8e8e8e8e8e8e8ddc1a0 +003366003366376c948a909e878d9e878d9e87909e645166003366003378bbdd +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a00033660033668ac1df +e8e8e8e8e8e8e8e5dbccd1d3ccd5dfe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd9c0033660033665f6a73003366 +003366004093c8e5e8e8e8e8d8c5b1563c6c3c3e7296afa30033660033660068 +ade1e8e8ddbd9c00336600336666a5cee8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e2915666003466004097d0e8e8e8e8e8e8e8e8ddc1a0 +0033660033668ac1e2e8e8e8e8e8e8e8e8e8e8e8e8c3967f003368003378bbdd +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a00033660033666199c0 +dde5e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a0003366003366003366003366 +004093c8e1e8e8e8e8e8e8e8ddc5a9003366003366004ca09c68660033660033 +668ac1dfbf967f003368003378bbe1e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8d9bd3a33660033660056a5dde8e8e8e8e8e8e8e8ddc1a0 +00336600336683bddbe8e8e8e8e8e8e8e8e8e8e8e8bf8f78003368003378bbdd +e8e8e8e8e4d5c4998f95686f8868728b68728b68728b68728b68728b68728b68 +728b68728b68728b68728868799597abc4e1e8e8ddc1a0003366003366003366 +003366335e8ca2bdcee1e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e1c1a500336600336600386d4067a0 +d0e5e8e8e8e8e8e8e8e8e8e8e8e8e8b17e730033660033668ab3af4748753145 +80a1c1dba7766600336600338ecce5e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8ac7e7300336600336676afd5e8e8e8e8e8e8e8e8e8ddc1a0 +00336600336683bddbe8e8e8e8e8e8e8e8e8e8e8e8bf8f78003368003378bbdd +e8e8e8e8ddbd9700336600336600336600336600336600336600336600336600 +3366003366003366003366003366003397d8e8e8ddc1a0003366003366003666 +0033660033660033660033717da0c0dde8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8cca58e003366003366a7d2e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8d5bd6e688b5e6ba0c8dde8e8e8e8e8e8 +e8e8d9bd3a33660033660068b1e4e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8d4b49c00336600336600338ecce8e8e8e8e8e8e8e8e8e8e8ddc1a0 +0033660033668ac1e2e8e8e8e8e8e8e8e8e8e8e8e8c3967f003368003378bbdd +e8e8e8e8e8e5dfd4d1d0c2c4cac2c4cac2c4cac2c4cac2c4cac2c4cac2c4cac2 +c4cac2c4cac2c4cac2c4cac2c7d0d4d9dfe8e8e8ddc1a000336600336691c5df +d0c1b7705a6d00336600336600338ed0e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8db8a4b66003366003389c8e5e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8ac7e730033660033668abddfe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e5bb9b8d0033660033660033668abddbe8e8e8e8e8e8e8e8e8e8e8e8ddc1a0 +0033660033664c7fa09a9ea9969ba9969ba99aa1a9775c66003366003378bbdd +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a000336600336683bddb +e8e8e8e8e8e8d8c9c0aeb3b9bbcedfe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8c8a0890033660033663a7ebde8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e2ac8a +7d0033660033660060a5dde8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8d8c9bd6e +4e660033660033660033668ab4d5e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a0 +003366003366003366003366003366003366003366003366003366003378bbdd +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a000336600336683bddb +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8c8a593003366003366003384bfdde8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddcec0704f660033 +66003366004b93c8e1e8e8e8e8e8e8e8e8e8e8e4d9ce9e919347436800336600 +3366003366003e82accee2e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd9c +003366003366467ca2a1a5ae9da1ae9da1ae9da5ae7b676f003367003378bbdd +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a000336600336683bddb +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e5a7766b00336600336600336c9cc5dfe8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e4d2bd6c50690033660033660033 +664d84b1d8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e5ce6e336600336600336600 +33717da0c0dde8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e1db +c8bfc3bac3ced8e5e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd9c0033660033667db8db +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e1c9b1443d73333e7ca7c9dfe8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc75c33661833662c5d92b1c9 +dbe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddd5c3bfc4c0c9d5e4 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e4d5c4938b987e8dabc3d9e5 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b5946d6b6e758db0 +e6eeeeeeeeeeeeeeeee6d6ba88797d7c82a0d2e6eeeeeeeeeeeeeeeeeeeeeeee +eeeedeba560000000000005b92c7cfc3b7bcbcc4cddaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeedebf9a380000100000356094d6eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec4872a0044220079bf +eeeeeeeeeeeeeeeeeee2bf80000041000079deeeeeeeeeeeeeeeeeeeeeeeeeee +d6803c0000000000000000000000000000000000003cb0daeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeee6d6c8a58f7c655e5450504c5761698da8ba +daeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee28d3c3968383c8663295c512779badeeeeeeeeeeeeeeeeeeeea +eaeae2e2e2dbdbdbd3d3d3cbc3bfbcbcc6cdd6e6eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffe1c7ab8989899097b1e5fbfffbf7f3f7fbff +fffffffffff7c7ab9fb7d2e9ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff7c7a59fb7d7eefffffffffffffffffffffff7c7a59fb7d7eeffffff +fffffffffffffffff7c7a59fb7d7eeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeadabaa89c89827f644100002300004864 +7e868da5b0bfe6eeeeeac88700005000008de6eeeeeeeeeeeeeeeeeee2c88045 +000000000000001d4b626b5e4d000000000000002b5773777f8fa2b0d6eaeeee +eeeeeeeeeeeeeeeeeeeedeab8050000000000000000000000000000000000000 +0000379ac4deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeae2b57e512d342912001d34003babd6eaeeeeeee2c48d00000000 +0000000000000000000000000000000000000029abd6eaeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffdbb170000000000000000040c7ebcd2d00000089c7 +fffffffffff3902d000089c7ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe5b700000081c2e9ffffffffffffffffffffe5b700000081c2e9ffffff +ffffffffffffffe5b700000081c2e9ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf5600000000000000000b100b000008 +0000000b00001e303935311e00001000001b445a6dabcde6e6cda00000000000 +0000000000303d48483c2000000b0000193644483b2200000b00002abae2eeee +eeeeeeeeeeeeeede9456000000000000006d81710000000000008fb4ac642500 +00000000002ab0daeeeeeeeeeeeeeeeeeeeeeeeeeecdab948a86829dbad2eaee +eee6cd9a000000000000548195b0b4b9c8d6e6eeeeeeeeeeeee6d2b582716b57 +535f6b6f737e868d98917a000000000000004887d6eaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffba54e000079b7fbfffffffffffffbe9bdaba5c2dbee +fffffffffff39740004090cdffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffcd9040000081e5ffffffffffffffffffffffcd9040000081e5ffffffffff +ffffffffffffcd9040000081e5ffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6e2eae6e2eaeeeeeac4600031 +3400254b54504c48453c34200000100000204d637cb0d2e6eee6cd9488845839 +00000000000030484844290000000000001e3041392c00001500003cbae2eeee +eeeeeeeeeecda06800000000000087b5dac88d4900001e000060c8e6eeeedeb5 +3c00000000000070abeaeeeeeeeeeeeeeeeeeeeee28d4800000000000049c4e6 +eeeeead2793b0000000000002aabdaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeec48d56000000000000a5d2eaeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffd7ab790000000000404e4e4070a5d2fffff7b7897089b7db +fffffffffff39740004090cdfffffffffffffff7e1a5815c000000000000405c +89cde9fbfffffffffffffffff3b1815c5c79b1f3ffffffffffffffffffffffff +fbd76600005ca5d7fffffffffffffffffffffbd76600005ca5d7ffffffffffff +fffffffffbd76600005ca5d7ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c0000100000399d9f7500001e +00003594adc0c8c4d6eac88700005000008de6eeeeeeeeeeeeeeeeeeeeeeeede +c8ab9a814b000000000000000000002d6b7b75370000000000000056d2eeeeee +eeeeeeeee28d3c000018000060a0eaeeeaab6800002000004994e2eeeeeeeeee +ab7000001300002a87deeeeeeeeeeeeeeeeeeed6ab2900000b00003c80baeeee +eeeeeeeeeacda00000000000000060a0e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeedebf8d000000000000609ac8eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffff3dbbd660000006690bdc2bdc7d7e9fffff3972d002d90cd +fffffffffff39740004090cdffffffffffe5810000004081c2dbe5e9e1cd9066 +00000079e1fffffffffffffff3902d00002d90f3ffffffffffffffffffffffe9 +bd81000040c7f3ffffffffffffffffffffe9bd81000040c7f3ffffffffffffff +ffffffe9bd81000040c7f3ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d28d5300000000000000000000 +416b6100000000000084a58200004c000087e2eeeeeeeeeeeeeee2c4b5a37a61 +502500000000000000000000000000183129000000000000004d6f9ad6eaeeee +eeeeeee6c456000029000070b0d6eeeed27000001d00003c8dc4eeeeeeeeeeee +c48d3c002b25004994e2eeeeeeeeeeeeeeeebf8749000000000000a0d2eaeeee +eeeeeeeeeeeeeaab70290000000000009acde6eeeeeeeeeeeeeeeeeeeeeeeeee +eeeee2c49a2700000000000000005694bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffff79f40004097d2fffffffffffffffff39740004090cd +fffffffffff39740004090cdfffffff3d29700000089bdd7e1dbd7d7dbe1cdab +79000000b7e5fbfffffffffffff7f3eef3f7fbfffffffffffffffffffffff397 +40000079b7fffffffffffffffffffffff39740000079b7ffffffffffffffffff +fffff39740000079b7ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2945600000000000000 +569ac99a5600001000002250000050000087e2eeeeeeeeeeeeeed2793c001e15 +001e2e35352e1e00000000000000000000000000003babd2eaeeeeeeeeeeeeee +eeeeeee6bf48000029000087bfe2e6c89a0000000000008dc4e2eeeeeeeeeed6 +792900000b00003c8ddeeeeeeeeeeeeee6bf560000000000004994e2eeeeeeee +eeeeeeeeeeeeeeead2a00000000000002a70abeeeeeeeeeeeeeeeeeeeeeeeed6 +b5870000000000000015100000000000002770a0deeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffff39740004090cdfffffffffffffffff39740004090cd +fffffffffff39740004090cdfffffff7d79f0000002d4040404040404040404e +4e4e4e5cabdbf3fffffffffffffffffffffffffffffffffffffffffffbe1ab00 +0000a5d7f7fffffffffffffffffffbe1ab000000a5d7f7ffffffffffffffffff +fbe1ab000000a5d7f7ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b0480000000000000000 +00000092ada377777f686c6400214c002a87e2eeeeeeeeeeeeeeeab58d6e3724 +13000000000000121a1a000000000000000000000000003363b0cde2eeeeeeee +eeeeeeeede872900001000005692955600000000000068cdeaeeeeeee6b08046 +00000000000068a5d2eeeeeeeeeeeab0793b0000000000008dbfe2eeeeeeeeee +eeeeeeeeeeeeeeeeeee2945600000000000049badeeeeeeeeeeeeeeaba946600 +0000000000003b79cdeae2a5793900000000000000568ddaeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffff39740004090cdfffffffffffffffff39740004090cd +fffffffffff39740004090cdfffffff3cd90000000b7e9ffffffffffffffffff +fffffffffffffffffffffffffffbf7f7f7fbfbffffffffffffffffffc2812d00 +2d90eeffffffffffffffffffffffc2812d002d90eeffffffffffffffffffffff +c2812d002d90eeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c4680000000000000067793900 +00120000499ae6eeeeeac48700004c000087e2eeeeeeeeeeeeeeeedabfa06f67 +5e4e50534335190000080000120000000000003c1b00000000000000486f95c8 +dae6eeeeeed2a5700000000000000000000000005694c4dacdb56f3f00000000 +000000005694deeeeeeeeeeee6c8940000000000000060a0e6eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeedab07000000000000087bfe2e6dabf7c4e0000000000 +0000266094daeeeeeeeeeeeeeeeaba8d54000000000000003980cde6eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffff39740004090cdfffffffffffffffff39740002d90cd +fffffffffff39740002d90cdfffffffff7d770000000005ca5bdcddbe1dbcdc2 +ab662d5cc7f3fffffffffffff3974000002d90eefffffffffffff7d24e000070 +b7e5fffffffffffffffffffff7d24e000070b7e5fffffffffffffffffffff7d2 +4e000070b7e5ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeac860000000000000003babd2eaeaded2 +d2d6d2d6e6ead2c8c09b8155001a3b002a87deeeeeeeeeeeeeeee6b59475412d +1500000000000000294f81887e23000018000087c4d3a0794200000000000060 +a5d2eeeeeeeeeeeaba9a7e4b3e34303e4b759abae6d6ab000000000000000000 +5b87b0e2eeeeeeeeeeeeeeeeeeeeeacdb5adb0acb0cde2eeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeae2dad6d7dadae2eeeeeedab5870000000000006f +9abfeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeba8d5600192c002879c8e2eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffff39740004097cdfffffffffffffffff39740004e9fd2 +fffffffffff39740004e9fd2fffffffffffffbe9cd815c2d0000000000000000 +002d5c90e1fbfffffffffffff39f4e00005c9ff3ffffffffffe1b17000005cd2 +f7ffffffffffffffffffffe1b17000005cd2f7ffffffffffffffffffffe1b170 +00005cd2f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2a070636f6163a5cde2eeeeeeeeeeee +eeeeeeeeeee28d3c0000000000000028609ae2eeeeeeeeeeeeeeeeba87562e37 +2e2c4e71b0c4d2c88d3c000000000000002970cdeaeeeeeeeeded2d2cfced2de +eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2cdbfbab5b6c4d2e2 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae6eaeae6eaee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff7f3eeeeeef3f7fb +ffffffffffffffffffffffffffffffffffffffffffffffffe9902d002d89c7ff +ffffffffffffffffffffe9902d002d89c7ffffffffffffffffffffffe9902d00 +2d89c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeae2e2dedbe2e2e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffbe1b12d0040b7e5fbff +fffffffffffffffffbe1b12d0040b7e5fbfffffffffffffffffffbe1b12d0040 +b7e5fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffffffffffffffffcfcfce8e8e8919191 +6a6a6a4f4f4f4747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474f4f4f6b6b6b919191e8e8e8fcfc +fcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffffffffffafafa9d9d9d575757939393 +cdcdcdf2f2f2fefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefef2f2f2cdcdcd9393935656569c9c +9cfafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffff9f9f9868686737373d8d8d8fcfcfc +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbd4d4d46f6e +6e868686f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbeee1e9f7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffdbc7bdcde1eeffffffffffffffffffffffe17900002d70a5e5fb +fffffffff7e5dbe1eeffffffe9b1979097979797979fb7c7c7ab9f9797979797 +9797abc7e5ffffffffffffffffffd7a5660066abf7fffffbf3e9dbdbdbe1e1e1 +e1e1e1e1e1e1dbdbdbe1e9f7fffffffffffffffffffffffffff7d7895c5c97bd +e1ffffffffffffffffffffffffffffffffffffffffffdbb1814e79b1f3ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffe1bd977089b7f7ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffe9dbd7e9f7ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b5946d6b6e75 +8db0e6eeeeeeeeeeeeeeeee6d6ba88797d7c82a0d2e6eeeeeeeeeeeeeeeeeeee +eeeeeeeedeba560000000000005b92c7cfc3b7bcbcc4cddaeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeaded2d6d6d2dae6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffafafa9b9b9b636363e5e5e5f6f6f6f8f8f8 +f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f5f1f1f5f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9ede4e0e8f1f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8f8f7f5f5f5f3f2f3e0e0 +e06666669d9d9dfafafafffffffffffffffffffffffffffffbfbf7fbfbfbfbfb +fbfbfbfbfbfbfbfbfbfbfbfbfbfbf7f3eef3fbffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe1810000000079e1fbffffffffffffffffffffffffffff +fffffffffff3e1d7cdd2e1fbffffffffffffffffffffffffffffffffffffffff +ffffffffffe989000000409ff7ffffffffffffffe5904e2d5c7079662d00004e +a5f7fbdb660000000070cde5dba579707979795c000040799797897970797970 +4e004089c7ffffffffffffffffffd290402d90cdffffffd29040000000000000 +0000000000000000002d89c7ffffffffffffffffffffffffffffe58100004097 +d2ffffffffffffffffffffffffffffffffffffffffffcd892d0089c7ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffbfbf3eee9dbd7cdb7bdcdf7fffffffff7cdb7b1c7db +e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffd7902d0081c7ffffffffffffffffffffffffffffff +fffffffffffffffffff7eee9e5e9f3fffffffffffffffff39f4e0066abdbffff +ffffffffffffffffffffffffffffffffffffffffffdb700000000079e1ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec4872a00442200 +79bfeeeeeeeeeeeeeeeeeee2bf80000041000079deeeeeeeeeeeeeeeeeeeeeee +eeeed6803c0000000000000000000000000000000000003cb0daeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d6c8a58f7c655e5450504c5761698d +a8badaeaeeeeeeeeeeeeeeeeeeeeeeeeeaeae6e6e6e2e6e6e6e6e6e6e6e6e6e6 +e6e6e6e6e6e6e2dedadbdfdee2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeed2790000000000000070d2eaeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee2d2c8b6adb1bcc4d2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffdbdbdb565656bbbbbbebebebf3f3f3f4f4f4 +f5f5f5f5f6f5f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6e19f8492cae5f2f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6e1 +b1000059d4f6f6f6f6f6f6f6f6f6f6f6f6f6dd996c74bbe5f2d4a5742c2c3e2c +003e7d928b593e3e4b3e2c004b99eaf6f6f6f6f6f6f6e5840000abe1f6f6d9b1 +74636c6c6c6c6c6c6c6c6c63748bb1eef6f6f5f5f5f4f4f4f3f3f3f0f0f0e6e6 +e7b8b8b8585858dbdbdbfcfcfcfffffffffffffffffff3cd8900000000000000 +0000000000000000000000000000000000004e9ff3ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff3a5660000000089b7dbfffffffffffffffffffffff7b1814e4e +81b1fbffffcd892d000089eeffffffffffffffffffffffffffffffffffffffff +fffffffff3c72d000090d2f7fffffffffffffff7e1976640000000005c9fe5fb +fffffffff3dbb12d0000408190662d00002d2d0000004e81907040002d2d402d +00002d89c7fffffffffff7e9e9e5b7792d2d79b1e9f3eec2904e000089e9ffff +fbfbfbfffffbc7892d2d89cdfffffffffffffffffffffffffffff7b779000040 +89d7e5e1cdc7bd9f90a5dbf7ffffffffffffffffffffd797400081c7ffffffff +fffffbf3e9e1e5eefffffffffffffffffffffffffbf3e5d2cdc7c2bdb7aba59f +9089817970664e402d00000000000000000000004ecdf7fffffff3972d000079 +b7fbfffffffffffffffffffffff3e1bd795c70c2e5fbfffffffffffff7e5c79f +909797909089898981818166400000002d4040402d2d00000000004097f3ffff +fffffffffffffffff3972d000070b7fffffffffffffffff3902d0089cdf3ffff +ffffffffffffffffffffffffffffffffffffffe1b17900000097cdeeffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeadabaa89c89827f64410000230000 +48647e868da5b0bfe6eeeeeac88700005000008de6eeeeeeeeeeeeeeeeeee2c8 +8045000000000000001d4b626b5e4d000000000000002b5773777f8fa2b0d6ea +eeeeeeeeeeeeeeeeeeeeeeeedeab805000000000000000000000000000000000 +00000000379ac4deeeeeeeeeeeeee2bf80000000000000000000000000000000 +000000000000000000000000004994e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeee29a600000000000000080abcdeeeeeeeeeeeeeeeeeeeeeee6a57946 +323e324879a5bc8029000016000080deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff8b8b8b878787d3d2d3e3e3e3eeeeeeeff0f0 +f1f1f1f2f2f2d5b38f6a6a727272727272727272727272727b7b726a6172b8dd +eef2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2 +f2f2f2f2f2f2f2f2f2f2eeae7b2b0000008fbdddf2f2f2f2f2f2eee6d0b3aeb8 +e2f2f2cc8f574a89c2f2f2f2f2f2f2f2f2f2f2f2f2eee6d9c2bdbdbdbdbda282 +4a00002b7b89826a573d6197c7f2f2f2f2f2e2975700000061a2a2896161613d +002b7ba2a27b6a6161572b003d8fe6f2f2f2f2f2f2f2e2893d4abdeaf2eac289 +004a82b3b8b3b3b3b8b3a882002b89e2f2f2f1f1f1f0f0f0efefefecececdede +ded1d1d28888888e8e8ef3f3f3fffffffffffffffffffbeedbbdbdbdc2c2c2c2 +c2c2c2c2c2c2c2c2c2c2c2c7c2b16600002d81c2fbf3eee9e9e9e5e5e5e1e1e1 +dbdbdbd7d7d7d2d2d2d2d2cdb7b7c7f3ffffffffffffffffffffffffffffffff +ffffffeea5702d00000070abd7fffffffffffffffffffffffffffff3972d002d +90cdffffffd29740002d97f3fffffffffffffffffffffffffffffffffff3eee9 +e5e5e5cdb1810000006697abababb7e5fbffdba55c0000007097b7e1eefbffff +ffffffffffffffeedbe1eeeecd40000081abb7ab895c00000000002d89abb7b1 +9f7000002dcdf3fffff3c72d000000000000000000002d81794e00409ff7ffff +ffffffffffffd797402d89cdfffffff3d2970000000000000000000000000000 +0000000000000000002dabdbf7fffffbe9dbd2b7a5905c400000002d9fcdd7bd +90660000000000005ca5d7fffffffffffffffffff7d79f00000000000000002d +66705c000000000000406690c2d7e1eef3f7fbffffffffffffffe981000090d2 +f3fffffffffffffffffffffffff7dbb12d0000002d89e5fffffffffff7d7a540 +2d404e4e5c5c66667079704e0000005c81a5a5abababb1b1b7b7bdc2d7fbffff +fffffffffffffffffb9f40004097d7fffffffffffffffff7972d0081c7e9ffff +fbf7f3f7fbffffffffffffffffffffffffffe17000000070b7fbffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf5600000000000000000b100b00 +00080000000b00001e303935311e00001000001b445a6dabcde6e6cda0000000 +00000000000000303d48483c2000000b0000193644483b2200000b00002abae2 +eeeeeeeeeeeeeeeeeede9456000000000000006d81710000000000008fb4ac64 +250000000000002ab0daeeeeeeeeeadecdada4978686868a8a8a8a8a8a8a8a8a +8a8a8a8d8a7e4b00001000002a79b5eae2ded6cfcbc4c4c4bdbdbdb4b4b4acac +aca5a5a5a1a19d8d8d95a3abbae2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eede9a682600000000000068a0c8eeeeeeeeeeeeeeeeeeeeeeeeeeeee28d2900 +1918002a87bfc48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff707070b2b2b2d5d5d5dadadadfe0dfe7e6e6 +ecececeeeeedd6baa08087878d8d8d8d8d8d8d8d8d8d8d8d8d8770000000a0d2 +e6eeeae6e6e6e2e2e2e2dededededadadad6dad6d6cdcdd6e2eeeeeeeeeeeeee +eeeeeeeeeeeeeeeab080490000008dbfdeeeeeeeeeeeeeeeeeeee2bf80000070 +deeeeec4873c2a80bfeeeeeeeeeeeeeeeeeeeeeeeee2c4942a0049563c000000 +0060808d9a949aa0a5abbacddeeeeeeeeeeeeeeeead6b5bac8b5802a00608d9a +8056000000002a68a0a087000000a5d2eae2c48d000000000000000000687960 +608dc4eeeeeeeeeeeeeeeec4492a80deeeeeededeeebebebe4e4e4ddddddd9d9 +d9d6d6d6b3b3b3727272e8e8e8fefefeffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffd75c00004090cdcd892d000000000000000000 +00000000000000000000000000000097d2f3fffffffffffffffffffffffffbe9 +cd79400000000079abd7fffffffffffffffffffffffffffffffffff397400040 +90cdffffffd29740002d97f3ffffffffffffffffffffffffffffffffee890000 +0000000000000000002d2d2d0000000070b7fffffba55c00000070dbfbffffff +ffffffffffffffffffffffffeeb1908170664e00000090c2d7bd894e0000005c +7070819fc2f7fffffffffffbfffbc7892d2d81c2ffffffcd974e00004ea5bdbd +bdb7bdbdbdbd905c004090cdfffffffffbeed2c7c7d2d2d2d7d7dbe5e5d28940 +00002d81e5fffffffffffffffffff7d240000000004040000000000000000000 +002d97b7c29f66004089cdfffffffffffffffffffffff7e9e9e9f7fbfbffffff +eec79000000079abd2fffffffffffffffffffffffffffffffff3cd40000090cd +eeffffffffffffffffffffffffffffffe1b17900000066abdbffffffffffffff +ffffffffffffffffffffffd797402d89cdffffffffffffffffffffffffffffff +fbe9d2aba5a5a59f905c2d0000004e66665c4e40402d00000000000000000000 +00000000c2f3ffffffffffffffffffffe1b17000004ecdf7ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6e2eae6e2eaeeeeeac460 +00313400254b54504c48453c34200000100000204d637cb0d2e6eee6cd948884 +583900000000000030484844290000000000001e3041392c00001500003cbae2 +eeeeeeeeeeeeeecda06800000000000087b5dac88d4900001e000060c8e6eeee +deb53c00000000000070abeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeec85600001500003c87bfbf802a0000000000000000000000000000 +000000000000000000000000008dc4e2eeeeeeeeeeeeeeeeeeeeeeeeeadabf6e +370000000000000070a0c8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d3c00 +2422003c87bfc48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff727272ccccccd9d9d9dddddddfdfdfe1e1e1 +e1e1e1e1e1e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2c798000038b1d7 +e2ba864500000000000000282838383838280000000000388dd7e2e2e2e2e2e2 +e2e2e2e2cf92632800000080b1cfe2e2e2e2e2e2e2e2e2e2e2e2d7ba80000080 +dbe2e2ba8038287ab6e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2b180450000 +0086a7b6d3dee2e2e2e2e2e2e2dbdbdee2e2e2e2e2e2e2e2e2cfb1926b5b3800 +003898b1b17a38000028516b7a98cbdee2e2dededbd7c7732845a7cfded3b680 +28457aa3a7a3a7a7a7a39873283880d3e2e2e2e1e2e0e0e0e0e0e0dedededcdc +dcdadadacdcdcd757575dbdbdbfdfdfdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffeec79000000090cdeefbfbf7f7f7f7fbfbfbfffff7 +c29781a5cde9e5c29000000066a5d2fffffffffffffffffffffff3c7a5810000 +0000000000005cd2f7fffffffffffffffffffffffffffffffffffff39f40002d +90cdffffffd29740002d97f3fffffffffffffffffbf3eefbfffffffffbe9e1e1 +eee9d26600004e9fd7ffffffe1b166000090eeffffffe5b100000066abdbffff +fff7e1bd817981818189c7e5e9b7815c4e4e4000000000404e4e402d00000040 +405cabdbf7ffffffffffffffffffd797402d89c7fbfff3c2905c000000000000 +0000000000000000002d89c7ffffffffffffffffffffffffffffffffffffffe1 +b12d00004e90c7ffffffffffffffffffe9e5e5ffffffc7894e000000004081d7 +f3ffffffffd290402d89cdfffffffffffffffffffffffffffffffffffffffff3 +972d000081bdfffffffffffffffffffffffffffffffffffffff7cd4e000090cd +eeffffffffffffffffffffffffffffffffffe5812d00000070dbfbfffffffff3 +d7a540002d2d2d2d2d0000000000000000000000000000000040c7f3ffffffff +f3cd9700000040402d0000002d4e709097979fa5abbdbdab66000070a5c2d7d7 +d7d2d7dbf3fffffffffffffffffffbd7660000004089c2c2c2d2e5f7ffffffff +fffffffffff7eee5e9f7ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c0000100000399d9f7500 +001e00003594adc0c8c4d6eac88700005000008de6eeeeeeeeeeeeeeeeeeeeee +eedec8ab9a814b000000000000000000002d6b7b75370000000000000056d2ee +eeeeeeeeeeeee28d3c000018000060a0eaeeeaab6800002000004994e2eeeeee +eeeeab7000001300002a87deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeedeba8700000000000087bfdeeaeae6e2e2dfe2e2e2eaeae2b58d757571 +6f8a917b000000000000609ac4eeeeeeeeeeeeeeeeeeeeeee2ba9a7300000000 +0000000000000056c4e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2943c00 +1922002a87bfc48d3c001924002a8de2eeeeeeeeeeeae2dee6e2deeaeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff808080d7d7d7dddddde0e0e0e2e2e2e3e3e3 +e5e5e5e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6b48239002982d6e6 +e6e6e6e6e6e6e6e6e6e6caa0756d8fafb49565000053b9d6e6e6e6e6e6e6e6d3 +c1a5530000000000000053b9dfe6e6e6e6e6e6e6e6e6e6e6e6e6dfbd82000082 +dfe6e6bd8239297cb9e6e6e6e6e6e6e2d3c6cadbe2e6e6dbaa7c46000000536d +7c6d4600006595aa9a82460000002982bc9a6d3939465c82a5b9a57c39292900 +00294646463929000000006d9ac6e6e6e6e6e6e6e6e6df82393995b9c1b9a07c +292953756d460000005c6d5c294688dbe6e6e6e6e6e4e4e4e3e3e3e2e2e2e0e0 +e0ddddddd7d7d7828282cdcdcdfafafaffffffffffffffffffffffffffffffff +ffffffffffffffffffffe5812d00000081e5fffffffffffffffffffffffffff3 +9740000000000000005c9fcdfffffffffffffffbf3d2b79f5c00000000002d66 +97c2b789000040cdf3fffffffffffffffffffffffffffffffffffbd766000066 +a5d7ffffffd29740002d97f3fffffffffffff7d266000070b1e1ffffffffffff +fbdba5000000b1e1fbfffffff7d290000090f3fffffffff7ab6600000089e9ff +fff7dbb77970662d000090cdeeeee1d7d2c7a52d000097c2d7cdab79000066bd +cdd7e5f3fffffffffff7e9cdc2b1815c2d00000000002d79794e002d97fbfff3 +89000090d2f7fff7e9e9eef7ffffffffffffffffffe1c7b18970665c5c5c7070 +5c0000000000006697c2f7fffffffffffffffff3cd97000000004e89e1ffffff +fffffffff39740004090cdfffffffffffffffffffffffffffffffffffffff7d2 +4e000090d2f3fffffffffffffffffffffffffffffffffffffff7cd4e000090cd +eeffffffffffffffffffffffffffffffffffffd7a5660000009fd7f7fffffffb +e5c79f979fabb1b1b7bdb7905c0000669fc7cdcdcdcdcdd2d2dbf3fbffffffff +fffffffffffffffff79f40004097d2fffffffffffffffff7902d0089cdf3ffff +ffffffffffffffffffffffffffd29f5c000000000000000000000081e5ffffff +ffffffffffc78900002d90f3ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d28d530000000000000000 +0000416b6100000000000084a58200004c000087e2eeeeeeeeeeeeeee2c4b5a3 +7a61502500000000000000000000000000183129000000000000004d6f9ad6ea +eeeeeeeeeee6c456000029000070b0d6eeeed27000001d00003c8dc4eeeeeeee +eeeec48d3c002b25004994e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeed6792900000000000079d6eeeeeeeeeeeeeeeeeeeeeeeeeee28d3c000000 +000000000000005694bfeeeeeeeeeeeeeeeae2c4a88d47000000000000000020 +444c00002000003cbfe2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeac8600000 +260000609ac8c48d3c001924002a8de2eeeeeee6c460000029000068a5d2eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff8b8b8bd6d6d6e0e0e0e4e4e4e6e6e6e8e8e8 +e9e9e9eaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae6c99d00000077add6eaea +eaeaeaeaeaeaeaeaeaeac08b3b00000000005eb7daeaeaeaeae6d2b2673b0000 +0000547ea8dadabc48003bb7dfeaeaeaeaeaeaeaeaeaeaeaeaeac99754003b92 +e2eaeac0843b297eb7eaeaeaeae6c96f0000298bc0cea26700005ebcdae6e2d2 +bc7e54290000003b546f97a8b7c9d2dae2dacead925400297ec5cec9bcad8b29 +2967b2c5c59767295484a8c0c5c9dfeaead2b792543b2900000000003b848b67 +5484c5eaeac03b006fd6eaeaeaeaeaeaeaeaeaeaeae8e8e8e8e8e8e6e6e6e4e4 +e4e0e0e0d6d6d68d8d8dc8c8c8f8f8f8ffffffffffffffffffffffffffffffff +ffffffffffffffe9a5702d00000081bde5ffffffffffffffffffffffffffffe5 +81000040708197b1d2ffffffffffffffffffffe5b700000000004e9fc2dbffff +fffbd297000040cdf3fffffffffffffffffffffffffffffffffbe5b700000090 +cdf3ffffffd29740002d97f3fffffff7db812d00000040b1dbf7ffffffffffff +c2812d002d90eefffffffffff7d290000090f3ffffffffffeec7890000009fd7 +f7fffffffffffb9f4000708981402d2d4e4e40000000002d40402d0000000040 +4e40000066cdf3fff3cd890000000000002d6690d2e9eecd97400070bdfffffb +a54e004097d2fffffffffffffffffffffffbc289400000002d5c819fa5a59f97 +908179662d000000000079bde5ffffffffeec75c00000000004e97d2ffffffff +fffffffff39740002d89c7fffffffbf7fbfffffffffffffffffffffffffff3cd +40000090cdf3fffffffffffffffffffffffffffffffffffffff3cd40000090d2 +f3ffffffe1c2b1c7e5f7fffffffffffffffffffbdba50000004e97d2ffffffff +fffffffffbe5dbd7d7dbdbab70002d89c7ffffffffffffffffffffffffffffff +fffffffffffffffff39740004090d2ffffd77040404e4e2d00000089cdeeffff +ffffffffffffffffffffffeec2400000005c9fe9ffffeec281000040cdf3ffff +ffffffffe9892d000066b1fbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee294560000000000 +0000569ac99a5600001000002250000050000087e2eeeeeeeeeeeeeed2793c00 +1e15001e2e35352e1e00000000000000000000000000003babd2eaeeeeeeeeee +eeeeeeeeeee6bf48000029000087bfe2e6c89a0000000000008dc4e2eeeeeeee +eed6792900000b00003c8ddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeda +9a682600000000000079b0d6eeeeeeeeeeeeeeeeeeeeeeeeeeeed67900001e00 +002448638da5c4eeeeeeeeeeeeeeeeeeeed6ab00000000000000003f94b5cdea +c48d00002400003cbfe2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeead6ab000000 +00000087bfe2c48d3c001924002a8de2e6cd792800000000000039a5cde6eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff8d8d8dcdcdcde3e3e3e7e7e7eaeaeaececec +eeeeeeefefefefefefefefefefefefefefefd7bb952a000000609be4efefefef +efefefefefefefefefefbb7a3c5695c0e7efefefefefefefefefe7ce8e7a8ec0 +d7e7efefefefe7c03c003cbbe4efefefefefefefefefefefefdf872a003c87c5 +efefefc0873c3c87c5efe7c5690000003c87d7ebefefefefefefebc095600000 +0060562a002a8ee7efefefefefefefefefefefe7c58e002a71958e7a60560000 +000049696900000000003c606987c9e7efe7ceac959b9b602a49bbebefdfb169 +2a7ac0efefdf7a000087c5e4efefefefefefeeeeeeeeeeeeecececeaeaeae8e8 +e8e4e4e4cecece8f8f8fcdcdcdfafafaffffffffffffffffffffffffffffffff +ffffeed7b7662d000000005c97c7ffffffffffffffffffffffffffffffffeebd +000000b1e5fffffffffffffffffffffffffffffffff3e9e5f3ffffffffffffff +fff3d297000040cdf3fffffffffffffffffffffffffffffff7ab660000005ccd +f3ffffffffd2974e002d89d7d7bd5c000000002dabd7f3fffffffffffffff3cd +4e000066abdbffffffffffffe1ab66002d90eefffffffffffffbe9cdcddbf7ff +fffffffffffff3972d0081bddbe5dbcd9f79000000009fcddbc2902d00000070 +90abcdd7e1f7fffffffbf7f3f7fbcd90402d90d2ffffffbd79002d89cdffffff +e5b779000040bde5fbfffffffffffffffff3902d0066abdbffffffffffffffff +fffffffffffbeed7d2dbfbfffffff7db7900000040799779404089cdffffffff +fffffffff3972d0079c2eefffff797400066abdbffffffffffffffffffffffee +902d000066abf3ffffffffffffffffffffffffffffffffffffffe98900005cab +e1ffffe9810000005cabfbfffffffffffffffffffbe1a5909fc7e1f3ffffffff +f3cd6600000000000000000000000000000000407990abd2e1eeffffffffffff +fffffffffffffffff3972d004090d2ffffeeab8981818981899fb7eeffffffff +fffffffffffffffffffbb77000000066d7fbffffffffffeec22d00009fd7f7ff +fffffbdbab00000081bde9ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b048000000000000 +000000000092ada377777f686c6400214c002a87e2eeeeeeeeeeeeeeeab58d6e +372413000000000000121a1a000000000000000000000000003363b0cde2eeee +eeeeeeeeeeeede872900001000005692955600000000000068cdeaeeeeeee6b0 +804600000000000068a5d2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeedec8ab592300 +000000000000568dbaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedeb00000000000 +00a5d6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2dad6d7dad6e2eeeeeeeeeee2 +c48d00002400003cbfe2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6a06000000000 +000056bfe2eec48d4900192700245f480000000000000028a0c8e2eeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff898989c0c0c0e7e7e7ecececefefeff1f1f1 +f3f3f3f4f4f4f3f3f3f3efebdacdb98a612b0000003d7ca9e7f3f3f3f3f3f3f3 +f3f3f3f3f3f3f3f3deb92b000097cdebf3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3 +f3f3f3f3f3f3ebc33d003dbee7f3f3f3f3f3f3f3f3f3f3d6a96b00003dbee3f3 +f3f3f3c8904a000000000000005890daf3f3f3f3f3f3f3f3ebcd9000004ac3e7 +f3f3daa34a589debf3f3f3f3f3f3f3f3f3f3f3ebc88a002b8acdc8a958000000 +5890e7f3f3cd9d730000004a739ddef3f3f3f3f3f3f3eb903d4ac3eff3b46b00 +2b8ac3f3f3f3d1a36100003db4deeff3f3f3f3f3f3f2f2f2f1f1f1efefefecec +ece8e8e8c2c2c28b8b8bdbdbdbfdfdfdfffffffffffffffffffff7e9d2c2b181 +664000000000000089b7d7ffffffffffffffffffffffffffffffffffe9904e00 +000079e1ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff3d297000040cdf3ffffffffffffffffffffffffffe9c2890000005ca5d7ff +ffffffffffc7904e000000000000000066bde1f7ffffffffffffffffffd2974e +00005cc7dbc75c000089abab792d000070b7fbffffffffffffffffffffffffff +fffffffffffbe181000079abb7894e000000007997bdeefffffff7db9f794e00 +00000066abfbffffffffffffffffd290402d89d2ffffd75c00005ca5d7ffffff +ffffe9892d00000066cdeefffffffffffff39740002d81b1eeffffffffffffff +ffffffffffffffffffffffffffd79f4e00002dbdeeffdb97402d89cdffffffff +ffffffffee902d002d70909f814e0000009fd2f3ffffffffffffffffffffffff +e9c289000000004070b1c7d7eef7f7fbfffffffffffffffffffffbb166000000 +4e70704e00000097cdeefffffffffffffffffffffffffffffffffffffffffff7 +d797000070dbfbffffffffb1660000669fb7ab892d00000000002d79b7fbffff +fffffffffffffffffbb170000079b1f3fbfffffffffffffffffffbf7f7f7fbff +ffffffffffffffeec79000000070b1e1fffffffffffffff7d25c000066a5d2f7 +f3d2814000000066dbfbffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c468000000000000006779 +390000120000499ae6eeeeeac48700004c000087e2eeeeeeeeeeeeeeeedabfa0 +6f675e4e50534335190000080000120000000000003c1b00000000000000486f +95c8dae6eeeeeed2a5700000000000000000000000005694c4dacdb56f3f0000 +0000000000005694deeeeeeeeeeeeeeeeeeee6dac4af97634929000000000000 +00000080abc8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeda8748000000000000 +70d2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2 +c48d00002400003cbfe2eeeeeeeeeeeeeeeeeeeeeeeeeedab580000000000000 +569ac8eeeeeeba874900000000000000000000005cb0d2e6eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff979797b1b1b1e0e0e0efefeff4f4f4f7f7f7 +f9f9f9fafafafafafad7a864000000002c5aa2c3dcfafafafafafafafafafafa +fafafafaeed7b44c00002c86befafafafafafafafafafafafafafafafafafafa +fafafafafafaf2c32c002cc3eefafafafafafafaf6dca800000064a2d3fafafa +fafafac38d5a002c5a9cb9d3f6fafafafafafafafafafafaeec98600005ab9d3 +dce5e5e5e5e5e5e1e1e1e1e5eefafafadcbe9c3f00000000000000003f7fa2c9 +ced3cec9c9ced3cebeae94645a7fbedceefafafafaf6dc7f2c5aa8b99c000000 +b4e1f6fafafafafaf6b4762c00002ca2cee9f9f9f9f8f8f8f7f7f7f4f4f4f1f1 +f1e2e2e2b5b5b5979797e8e8e8fefefefffffffffffffffffff7dbab00000000 +00004e7997d2e9fbfffffffffffffffffffffffffffffffff3d7814e00000000 +abdbf7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff3d290000040c7f3ffffffffffffffffffffffe9bd2d0000002d89e5ffffff +fffffffffbc2905c00004e89abc2eeffffffffffffffffffffffffe9b7000000 +2d89c7ffffe5905c00000000000000abd7f7ffffffffffffffffffffffffffff +ffdbbd9740000000000000000000000081abbdcdcdcdc7c2c2c2c7c7cdcdc7ab +97817081a5d7e9f7fffffffffff7c2812d4090bdbd904000004ecdf3ffffffff +ffffffffe9c24e0000000040a5cde9ffffffe1b7810000000000006679899797 +97909089909fc2f7ffffffffffffffeed7dbe9ffffffcd892d2d89c7ffffffff +ffffffffffdbb18900000000002d89b7dbffffffffffffffffffffffffffffff +ffffffe5c7a55c2d00000000000000004097f3ffffffffffffffffffeec76600 +000000006697c7fffffffffffffffffffffffffffffffffffffffffffffffff7 +d79f0000007090a5a5907000000070b7e5fffffffffff3c29f81a5cdeeffffff +ffffffffffffffffffdbab7000000000000000000000000000000000000079c2 +e9fffffffffffff7e5cd907990d7f7fffffffffffffffffffbb7700000000000 +0000000040abd7f3ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeac860000000000000003babd2eaea +ded2d2d6d2d6e6ead2c8c09b8155001a3b002a87deeeeeeeeeeeeeeee6b59475 +412d1500000000000000294f81887e23000018000087c4d3a079420000000000 +0060a5d2eeeeeeeeeeeaba9a7e4b3e34303e4b759abae6d6ab00000000000000 +00005b87b0e2eeeeeeeeeeeeeeeeeeeeeee6cda00000000000000000003c678b +c4daeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c8794500000000000000a0cd +e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2 +c48700002200003cbae2eeeeeeeeeeeeeeeeeeeeeedab0290000000000002a80 +d6eeeeeeeeeab5875400001a00003778a0b5deeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffc0c0c08e8e8ed0d0d0f1f1f1fafafafdfdfd +fffffffffffffffffffffffbe9e9eeffffffffffffffffffffffffffffffffff +fffffffff3d7ab7989b1f3ffffffffffffffffffffffffffffffffffffffffff +fffffffffffff7db9789a5e1fbfffffffffffffffffff3d2c7d7f7ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbeeb790660000 +00000000000000000000004e9ff3ffffd7a5664e89c2f7f7e5b19079665c5c5c +4e4e4e4e4e4e4e4e5c5c5c665c4e81b1dbffffffcd904000004e705c2d5c97cd +fffffffffffffffffffffff3b1794e81bde5fffffffffffffdfdfdfafafaf2f2 +f2d3d3d3909090c0c0c0f4f4f4fffffffffffffffffffffffffffffff3e5e1e9 +f3fbfffffffffffffffffffffffffffffffffffffffffffff3d279404e9fc7e9 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff7dbb15c4e81d7f7fffffffffffffffffffffffffbd7bdb7d2e9fbffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbe5dbd7 +e5f3fffffffffffffbe9e5e1e9f3fbffffffffffffffffffffffffffffffffff +ffdbab66000070d7f3fbe1c29f66402d00000000000000000000000000000000 +002d00000081bde5ffffffe9bd790000004e81904e000070b1dbffffffffffff +fffffffffffffbe5bd4e000090cdeefffffffffffff7e5cd9f89704e402d2d2d +40402d2d2d66a5f3ffffffffffffffffffffffffffffd7ab70669fd2ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffbe9dbd2c2b7b7c2d7e9fffffffffffffffffffffffffffb +f7f3f7fbffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbd7b7975c4e4040405c89abcdf7ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe5d7cdc2c7c7c7c7c7c7c7c7c7c7c7c7c2c7dbee +fbfffffffffffffffffffffffffffffffffffffffffffffffffffff3d7cdc7c7 +c7d2e9f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2a070636f6163a5cde2eeeeeeee +eeeeeeeeeeeeeee28d3c0000000000000028609ae2eeeeeeeeeeeeeeeeba8756 +2e372e2c4e71b0c4d2c88d3c000000000000002970cdeaeeeeeeeeded2d2cfce +d2deeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2cdbfbab5b6c4 +d2e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2d6d2cfcbcedae2eaeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c470393c462e4294badaeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6 +cda5533f54484679c8e6eeeeeeeeeeeeeeeeeeeeeeeeeac8b0a8a5a1a8c4daea +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffe5e5e59f9f9f9c9c9ce3e3e3fafafaffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafae6e6 +e69f9f9f9f9f9fe5e5e5fcfcfcffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffbf7fbffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffbf7eee9eef7fffff7eeeefbffffffffffffffff +fffffffffffffffffffffbf7fbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeae2e2dedbe2e2e6eeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffafafadcdcdc979797969696e8e8e8f8f8f8 +fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffefefefcfcfcf8f8f8eaeaea9898 +98979797dcdcdcfafafaffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffff9f9f9dcdcdca0a0a0767676a4a4a4 +d4d4d4f4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff4f4f4d4d4d4a5a5a5767676a0a0 +a0dcdcdcf9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffffffffffafafae6e6e6c0c0c0989898 +7a7a7a6c6c6c6969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696c6c6c7a7a7a989898c0c0c0e6e6 +e6fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffffffffffffffffdfdfdf5f5f5e9e9e9 +dcdcdccfcfcfc8c8c8c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c8c8c8cfcfcfdcdcdce9e9e9f5f5f5fdfd +fdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe +fdfdfdfafafaf8f8f8f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f8f8f8fafafafdfdfdfefefeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefcfcfcf9f9f9f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f9f9f9fcfcfcfefefeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfce8e8e8 +9191916a6a6a4f4f4f4747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +47474747474747474747474747474747474f4f4f6b6b6b919191e8e8e8fcfcfc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffafafa9d9d9d575757 +939393cdcdcdf2f2f2fefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefef2f2f2cdcdcd9393935656569c9c9c +fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff9f9f9868686737373d8d8d8 +fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbd4d4d46f6e6e +868686f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffafafa9b9b9b636363e5e5e5f6f6f6 +f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d2b38d646d8dd2edf9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f5e8e4edf9f9f9f9f9f9f9f8f8f7f5f5f5f3f2f3e0e0e0 +6666669d9d9dfafafaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffcfcfcdbdbdb565656bbbbbbebebebf3f3f3 +f4f4f4f5f5f5f5f6f5f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f2c66c74b1eaddab597dbbf6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f2cab19fb1 +c6e1f6f6f6ead9c69f845900004bbbddf2f5f5f5f4f4f4f3f3f3f0f0f0e6e6e7 +b8b8b8585858dbdbdbfcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff3f3f38b8b8b878787d3d2d3e3e3e3eeeeee +eff0f0f1f1f1f2f2f2cca27b3d3d4a4a4a3d3d3d2b2b2b2b2b00000000000000 +0000003da8d5eef2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2d5 +b38f6a6a7272727272727272727272727b7b724a000000616a6197c2e2f2f2ee +ccb3a29d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9daed9eef2f2f2f2f2f2f2f2f2 +f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2e682000072 +b8ddf2f2f2e2c28f00002b616a6182aed0f1f1f1f0f0f0efefefecececdedede +d1d1d28888888e8e8ef3f3f3ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffefefee8e8e8707070b2b2b2d5d5d5dadadadfe0df +e7e6e6ecececeeeeedd6baa5949aa0a5a5abb0b0b0a5a0a0abb5bfc8bfa02a00 +00003c80cde6eeeeeeeeeeeeeeeeeee2d2cddaeeeeeeeeeeeeeae6e6eaeeeeda +bfa58787878d8d8d8d8d8d8d8d8d8d8d8d8d877000002ab5deeeeeeeeeeeeee2 +872a00003c5668686860606860686868563c00002abae2eeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2872a0087 +c4e2eeeeeeeeeeeedebfa5a5c4deeeeeeeededeeebebebe4e4e4ddddddd9d9d9 +d6d6d6b3b3b3727272e8e8e8fefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffdfdfddbdbdb727272ccccccd9d9d9dddddddfdfdf +e1e1e1e1e1e1e1e1e2e2e2e2e2e2e2e2e2e2e2e2db8628006ba3b1925b000000 +63badbe2e2e2e2cbac866386b6dbcb980000009dc7dee2e2e2ac6b003880bae2 +e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2c792000045badbe2e2e2e2e2e2d7 +80280080badbe2e2e2e2e2e2e2e2e2e2deba380038b1d7e2e2e2e2e2e2e2e2e2 +e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d786380051 +8daccfd7dee2e2e2e2e2e2e2e2e2e2e2e2e2e1e2e0e0e0e0e0e0dedededcdcdc +dadadacdcdcd757575dbdbdbfdfdfdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffafafacdcdcd808080d7d7d7dddddde0e0e0e2e2e2 +e3e3e3e5e5e5e6e6e6e6e6e6e6e6e6e6e6e6e6e6db8f460000000000296dbddb +e6e6e6e6e6e6e6dbbd8f000000a5cfdba55c00005ca5e6e6df8229007cb4d6e6 +e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6b4823900398fdfe6e6e6e6e6e6e6db +8229007cb9d6e6e6e6e6e6e6e6e6e6e6dfb9390039b4dbe6c1956d3939464646 +4646464646464646464646464646464646464639396dbddbe6e6e6db8f460000 +0000000000395c75a5b9cae2e6e6e6e6e6e6e6e6e4e4e4e3e3e3e2e2e2e0e0e0 +ddddddd7d7d7828282cdcdcdfafafaffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffff8f8f8c8c8c88b8b8bd6d6d6e0e0e0e4e4e4e6e6e6 +e8e8e8e9e9e9eaeaeaeaeaeaeaeaeaeaeaeaeaeace6f000084b7cee2e6eaeaea +eaeaeaeaeaeaeaeaeae6a26f5484b2d6eaeadfdfe6eaeadfb7290000a8d2e6ea +eaeaeaeaeaeaeaeaeaeaeaeaeaeae6c99d00000077b2d6eaeaeaeaeaeaeaeadf +84290084c0e2eaeaeaeaeaeaeaeaeaeae6c03b003bb7dfeadfc9b7a2a2a8a8a8 +a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a2a2b2d6e6eaeaeadf8b290077 +b2ced6c5ad7754290000003b8bc0eaeaeaeaeaeae8e8e8e8e8e8e6e6e6e4e4e4 +e0e0e0d6d6d68d8d8dc8c8c8f8f8f8ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffafafacdcdcd8d8d8dcdcdcde3e3e3e7e7e7eaeaea +ecececeeeeeeefefefefefefefefefefefefefd7ac00002ac0e7efefefefefef +efefefefefefefefefefefefefefefefefefefefefefb17a2a003c95e4efefef +efefefefefefefefefefefd7bb952a00000060a0e4efefefefefefefefefefe4 +8e3c005687a0b1b1acacacacacacb1aca08000003cbbe4efefefefefefefefef +efefefefefefefefefefefefefefefefefefefefefefefefefefefe4872a0080 +c0e4efefefefefefdfd3ced7e7efefefefeeeeeeeeeeeeecececeaeaeae8e8e8 +e4e4e4cecece8f8f8fcdcdcdfafafaffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffdfdfddbdbdb898989c0c0c0e7e7e7ecececefefef +f1f1f1f3f3f3f4f4f4f3f3f3f3f3f3f3ebcd7300000061a3ebf3f3f3f3f3f3f3 +f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3efdea3732b00002bafd6eff3f3f3f3 +f3f3efebe7dacdb98a612b0000003d7ca9e7f3f3f3f3f3f3f3f3f3f3f3f3f3e7 +8a2b00002b3d4a4a4a4a4a4a4a4a4a4a3d0000002bbee7f3f3f3f3f3f3f3f3f3 +f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e7902b0083 +c3e3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f2f2f2f1f1f1efefefececec +e8e8e8c2c2c28b8b8bdbdbdbfdfdfdffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffefefee8e8e8979797b1b1b1e0e0e0efefeff4f4f4 +f7f7f7f9f9f9fafafafafafaf6e1b94c0000000076dcf6fafafafafafafafafa +fafafafafafafafafafafafae9b99c7f2c000000006dc3e1f6fafafafafafafa +faface9c5a000000002c64a8c3dcfafafafafafafafafafafafafafafafafaf6 +d3b9b4cee9fafafafafafafafafafafafafae1dce1eefafafafafafafafafafa +fafafafafafafafafafafafafafafafafafafafafafafafafafafaee8600007f +c3e9fafafafafafafafafafafafafafafaf9f9f9f8f8f8f7f7f7f4f4f4f1f1f1 +e2e2e2b5b5b5979797e8e8e8fefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffff4f4f4c0c0c08e8e8ed0d0d0f1f1f1fafafa +fdfdfdfffffffffffffffffffffbe5ab97a5dbf7ffffffffffffffffffffffff +fffffffffffffffffffffffff3b1897090b7d2f7ffffffffffffffffffffffff +fffffffffbe9e9eeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffbe1cdc7db +eefbfffffffffffffffffffffffffffffffffffffffffffdfdfdfafafaf2f2f2 +d3d3d3909090c0c0c0f4f4f4ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffcfcfce5e5e59f9f9f9c9c9ce3e3e3fafafa +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffafafae6e6e6 +9f9f9f9f9f9fe5e5e5fcfcfcffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffafafadcdcdc979797969696e8e8e8 +f8f8f8fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffefefefcfcfcf8f8f8eaeaea989898 +979797dcdcdcfafafaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff9f9f9dcdcdca0a0a0767676 +a4a4a4d4d4d4f4f4f4ffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffff4f4f4d4d4d4a5a5a5767676a0a0a0 +dcdcdcf9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffafafae6e6e6c0c0c0 +9898987a7a7a6c6c6c6969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +69696969696969696969696969696969696c6c6c7a7a7a989898c0c0c0e6e6e6 +fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf5f5f5 +e9e9e9dcdcdccfcfcfc8c8c8c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c8c8c8cfcfcfdcdcdce9e9e9f5f5f5fdfdfd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefdfdfdfafafaf8f8f8f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f8f8f8fafafafdfdfdfefefeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +> + +end +grestore +showpage +%%Trailer +%%EOF From svnnotify ¡÷ sourceforge.jp Mon Nov 10 03:43:11 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 03:43:11 +0900 Subject: [pal-cvs 3574] [1309] kakikake Message-ID: <1226256191.401372.18195.nullmailer@users.sourceforge.jp> Revision: 1309 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1309 Author: takakura Date: 2008-11-10 03:43:11 +0900 (Mon, 10 Nov 2008) Log Message: ----------- kakikake Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex Added Paths: ----------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0020.eps -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:41:39 UTC (rev 1308) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:43:11 UTC (rev 1309) @@ -104,7 +104,7 @@ \subsection{ÀßÄê} \begin{figure}[h] \begin{center} -\epsfile{file=PAL0020.eps,width=1.0\hsize} +\epsfile{file=0020.eps,width=1.0\hsize} \caption{} \label{fig:VFS Portlet configuration} \end{center} @@ -129,9 +129,9 @@ ¤Ê¤ª¡¢¸½»þÅÀ¤Ç¤Ï¶õÇò¤ò´Þ¤à¥Ñ¥¹¤ò»ÈÍѤ¹¤ë¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É¤¬Àµ¾ï¤Ë¹Ô¤ï¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¤¤¤ï¤æ¤ë 8.3 ·Á¼°¤Îû¤¤¥Õ¥¡¥¤¥ë¡¦¥Õ¥©¥ë¥À̾¤ò»ÈÍѤ¹¤ë¤ÈÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \subsection{´ðËÜŪ¤ÊÁàºî} -\begin{figure}[htbp] +\begin{figure}[h] \begin{center} -\epsfile{file=PAL0015.eps,width=1.0\hsize} +\epsfile{file=0015.eps,width=1.0\hsize} \caption{} \label{fig:VFS Portlet} \end{center} @@ -154,9 +154,9 @@ ¤Ê¤ª¡¢¥Õ¥©¥ë¥À¤òºï½ü¤·¤¿¾ì¹ç¡¢¤½¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤µ¤ì¤Þ¤¹¡£ \subsubsection{¥Õ¥©¥ë¥À¤òºîÀ®¤¹¤ë} -\begin{figure}[htbp] +\begin{figure}[h] \begin{center} -\epsfile{file=PAL0017.eps,width=1.0\hsize} +\epsfile{file=0017.eps,width=1.0\hsize} \caption{} \label{fig:VFS Portlet making folder} \end{center} @@ -165,9 +165,9 @@ ¤³¤³¤Ç¤Ï¡¢¡Ö¥Õ¥©¥ë¥À̾¡×¤òÆþÎϤ¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥©¥ë¥À¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤ËºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \subsubsection{¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë} -\begin{figure}[htbp] +\begin{figure}[h] \begin{center} -\epsfile{file=PAL0019.eps,width=1.0\hsize} +\epsfile{file=0019.eps,width=1.0\hsize} \caption{} \label{fig:VFS Portlet upload} \end{center} Added: pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0020.eps =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0020.eps (rev 0) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/0020.eps 2008-11-09 18:43:11 UTC (rev 1309) @@ -0,0 +1,10709 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 292 390 +%%Creator: EPS-conv ver 3.06 +%%CreationDate: 2008/11/09 18:22:11 +%%Title: PAL0020.BMP +%%Pages: 1 +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +%%EndProlog +%%Page: 1 1 +gsave +16 dict begin +/DeviceRGB setcolorspace +/ShowImg0 +{ << /ImageType 1 + /Width 292 + /Height 390 + /BitsPerComponent 8 + /Decode [ 0 1 0 1 0 1 ] + /ImageMatrix [ 292 0 0 -390 0 390 ] + /DataSource currentfile /ASCIIHexDecode filter + /Interpolate true + >> image } def +0 0 translate 292 390 scale +ShowImg0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaa +aaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbf8f4eff4f4f8f8fbffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffbf8f4efeff4f4f8f8ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff8ebdec7c2c2c2c7c7ccd2ddd6d1d1d1d1d1dae7f4ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffaaaaaaffffffffffffffffffffffefa1654343434343 +5086defbfffffffffffffffffbde8650434343434365a7f4fff4a77043434343 +505050505050505050505043434370d1f4fffff4dead8e784343434343434343 +43434343505b70a7c7e7ffffffffffffffffffffffffffffffffffffe7ccb278 +5b5043434343434343434343505b8eadd1fbffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffe7c79443434343434343434342427b4f434343434343 +8eccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff8bd9b867f867f9bbddeffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffff +ffffffffffd5a1704343434343439bd1effffffffffffff4d5a1434343434343 +78b2defffff4a16543434343434343434343434343434343434365d1edda8643 +434343434343434343505050434343434343435b94ccffffffffffffffffffff +ffffffffffe3bd8e434343434343434343434343434343434343435b9befffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff8a76543434343435b86b8 +c2bdb2b6bbaa9494949494b2cce7ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff8a75b434343435b9bd5ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffaaaaaaffffffffffffffffffffffffffe7b85043434343435086c2ffffff +ffffffc28e5b43434343435bc2effffffff4a76543434343435b9bebfffffbfb +fbfbfbfbfbfbfbf8d5a7434343434343659bccfffffffffffffbf4e7bd947070 +a1d5fffffffffffffffffffffffffff4cc654343434343434350a1c7e3fbffff +fbf8efccad7f435094effffffffbebbda1865b505050504350505b86a7c2efff +fffffffffffbde9b787878787886a1ada78e78505050505065a1c7e3fffff8bd +9478504343434343435b70867f86c2e0dfa1868686867fa7c7e3ffffffffefda +9b7f705050505b5b708686867f7878707894daf8fffff8da947870707078b2da +f4fffffffbe7c27f7078787078b8def8fffbde9b78787878789bb8ccccb8a178 +6570b2daedc29b7f6565655b5b505050505b657094adc7f4fffffffff8bd9478 +504343434343435b657f7f787f94bdf8fffffffbebbda1865b50505050435050 +5b86a7c2effffffffffffffbde9b78787878789bb8ccccb8a1786570b2daf4ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffffffffffef +a16543434343434378dafbfffffbda7843434343434370adf8fffffffff4a765 +43434343434370b2c7c7c7c2c2c2c2c2c7d1e3f0d5a143434343434343435b7f +94a1b8c2cce3eff8fffffffffffffffffffffffffffffffffffff4d1a1434343 +43434365a1d1fffffffffffffffffffffffff8eff4fbffeb9b5b434343434343 +434343434343434343434370a7f4fffffff4d165434343434343434343434343 +4343434343434350bde7eb9b504343434343434343434343434394c3c4654343 +4343435b9bd1ffffe3864343434343434343434343434343434343434365ccf4 +fffff4d16543434343439bd1effffffff4d19b4343434343439bd1effff4d165 +43434343434343434343434343439bd1e49b5043434343434343434343434343 +43434365a7d5ffffef9b5043434343434343434343434343434394efffeb9b5b +434343434343434343434343434343434370a7f4fffffff4d165434343434343 +43434343434343439bd1efffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffff +ffffffffffffffffffffffffe3b27f4343434343439bd1f8f8d5a14343434343 +4386c2e7fffffffffff4a76543434343434343434343434343434343434394ef +f8d165434343434343434343434343434343434350789bdef4ffffffffffffff +ffffffffffffebc794434343434343a1d5f4ffffffffffffffffffffffffffff +fff4d19b434343434343709bc7f8fbf4bd8e65434343434343a7daf8fff8d170 +4343434343436586bdd1d1b28e654343434343439bcceff8ebda945b43434343 +5b8ebde7ebe7eff1d1704343434343659bd1efcc944343434343435b86b2e3f4 +f4dab88e434343434365d1f4fffff8d17043434343439bd1effffffff4d5a143 +43434343439bd1effff8d17043434343434343505b6570655b65b2daedd1c2c2 +dae7eff4f4f4e7dabd654343434343435ba1effffff8ebda945b434343435b8e +b8e7ebe7e7ebf4f4d19b434343434343709bc7f8fbf4bd8e65434343434343a7 +daf8fff8d17043434343434343505b6570655b65b2daf4ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffefc75b43434343 +435b8eb8b89465434343434370d1f8fffffffffffff4a765434343434343435b +657065656565655b6586b2f4fffffbe7c7866550434343434343434343434343 +434343437fb8fbffffffffffffffffffffffefcc94434343434343a1d5f4ffff +ffffffffffffffffffffffffffd5a170434343434365ccf4fffffffffff4cc5b +434343434386bde3fff8d170434343434365a1d5ffffffffe3b2434343434343 +9bd1effffff4a7654343434365a1d1fffffffff8d1704343434343659bd1d19b +65434343434365ccf4fffffffff8d5a1434343434365d1f4fffff8d170434343 +4343a1d5f4fffffff4d5a14343434343439bd1effff8d1704343434343659bd1 +ffffffffffffffffffe3c7ad78655b4343434343434343434343434365a1f4ff +fffffff4a7654343434365a1d1ffffffffffffd5a170434343434365ccf4ffff +fffffff4cc5b434343434386bde3fff8d1704343434343659bd1ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffff +fffffffffffff8b27843434343434343434343434343507fbdfbffffffffffff +fff4a76543434343435ba1f8fffffffffffffffffffffffbf4ebeffbffffffff +fbf4ebdad1c7ad9b7f434343434343435ba1effffffffffffffffffffffff4d1 +9b4343434343435b94c7ffffffffffffffffffffffffebe3e7d2a17043434343 +4370d1f8fffffffffff8d570434343434370a1d5fff8d1704343434343659bd1 +fffffffff8d57043434343439bd1effffff4a76543434343659bd1fffffffff8 +d1704343434343659bd1d19b65434343434365d1f8fffffffffbdaa743434343 +4365d1f4fffff8d170434343434386bde3fffffff8d5a14343434343439bd1ef +fff8d1704343434343659bd1ffffffffffffefd19b4343434343434350658e94 +86504343434343435ba1f4fffffffff4a7654343434365a1d1ffffffffffffd5 +a170434343434370d1f8fffffffffff8d570434343434370a1d5fff8d1704343 +434343659bd1ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaa +aaffffffffffffffffffffffffffffffffffffebc78e43434343434343434343 +43439bd1effffffffffffffffff4a76543434343435ba1efffffffffffffffff +fffffff4d194434365adc2d5eff8fbffffffffefd1704343434343435b9befff +fffffffffffffffffffffff4d170434343434343434386b2d1eff8f8f4efe3b8 +9465434394d9bd8643434343434394c7ebffffffe3bd8e434343434343a1d5f4 +fff8d1704343434343659bd1fffffffff8d17043434343439bd1effffff4a765 +43434343659bd1fffffffff8d1704343434343659bd1ebc28e43434343434365 +8eb2dee3dab28e70434343434365d1f4fffff4d1654343434343507fb2effffb +dab8864343434343439bd1effff8d1704343434343659bd1ffffffffffffd19b +6543434343435bccf4fffffff89b5b43434343435ba1f4fffffffff4a1654343 +43435086bdffffffffffffe7bd8643434343434394c7ebffffffe3bd8e434343 +434343a1d5f4fff8d1704343434343659bd1ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffff +f8d570434343434343434343437fdefbfffffffffffffffffff4a76543434343 +435ba1effffffffffffffffffffffff4d19b4343434343434343434343434343 +4343434343434386b8e3ffffffffffffffffffffffffffffffdeb87f43434343 +434343434343434343434343434343509beff8d570434343434343434365655b +43434343434343437fdefbfffff8d1654343434343659bd1fffffffff8d17043 +434343439bd1effffff4a76543434343659bd1fffffffff8d165434343434365 +9bd1fff8d5704343434343434343434343434343434343434365d1f4fffffbda +7843434343434343434343434343434343434343439bd1effff8d16543434343 +43659bd1ffffffffffffe3b886434343434343506570705b4343434343434343 +5ba1effffffffff4a15b43434343434343505b504365a1f4f8d5704343434343 +43434365655b43434343434343437fdefbfffff8d1654343434343659bd1ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffff +ffffffffffffffffffffffffffffc28e5b4343434343435b94ccffffffffffff +fffffffffff4a765434343434370a7f4fffffffffffffffffffffffbebd19478 +65434343434343434343434343435b70a7c7deffffffffffffffffffffffffff +ffffffffffffffffe3c7a770504343434343434343434343505b8eadd1fbffff +f8e3c77f5b43434343434343434343436586cce7fbfffffffff8d57043434343 +4370a7d5fffffffff8d1704343434343a7d5f4fffff4a7654343434365a1d1ff +fffffff8d570434343434370a7d5ffffffffefd5a18678656565707f8e8e7850 +434343434365ccf4ffffffffe3c29443434343434343435b7065434343434343 +43a7d5f4fff8d570434343434370a7d5fffffffffffffff8da94654343434343 +4343505b654343434343434365a7f4ffffffffffefd5ad5b4343434343434343 +4370adf4fffff8e3c77f5b43434343434343434343436586cce7fbfffffffff8 +d570434343434370a7d5ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffbf8f4efefefefefeff4f8ffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff8f4efebebeb +eff4f8ffffffffffffffffffffffffffffffefebe7e7e7e7ebebf4ffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8bd9486 +9bb2bdd1d5dad5ccb87f5b43434343434378daf8fffffffffffffffff8efebeb +ebf4f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff4efebefeff4ffffffffffffffffffffffffffffffffffff +fffffffffffbf4eff4f4f4f8fbffffffffffffffffffffffefebe7e7e7e7ebeb +f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffef9b504343434343434343434343434343434386b8e3ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffbdeccbdada7a19b94948e8e +8e9ba7b2d1e3efffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaa +aaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffaaaaaaffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaaaffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8cccc +ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e1df +d0cbcdbec0c7bec1c7bec7d0d4dde2e8e5e5e4e1e2e0e1e2e0e1e2e0e1e5e4e5 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e4d5c48e +848e647897a1bdd5e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8ddbd97003366003366003366003366007ec0bf8f780033 +6600336600336600336600337fbfe1e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e1c19c00336600336676b4d8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddd2cbaca3ab8d90a38d93 +a1929dafbbc5d5bf8f7800336800336f4c4766003366003378b5dde8e8e8e8e8 +e8e8e8e8e8c39b892239680b34670e35670e35670b3366003366003366003366 +0e35670e35670e3566193e6a6696c7e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd +9c00336600336600336600336600336600336630647200396d0040a0c4967f00 +3368003378afc3cec6c7ced8e5e8e8e8e8bf8f78003367003368344d753c4d73 +3c4d733c4d733c4d733c4d733c4d73404d701633660b33663a8ac4e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8ddd2b1a3a67f8094788094788094788097909dac7d +51660039660060a9bc8a7800336800336e00336600336676b8dbe8e8e8bf8f73 +00386b0040a0dde8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8df8a40 +661837662984c4e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8cccc +ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e1c5a000336600 +33660033660033663967820033660033665d9bced4af93003366003366003366 +0033669cc9e2e8e8e8c3a093464b6b0033660033660033660033660033660033 +660033660033660033660033663d61888aabcee8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e4d5c799949a6c758d6c758d7784985f3c6600346600549dcad6d9 +dad3d0c1b8b49897a69ea8bfd0d9e2e8e8e8e8e8e8e8e8e8e8e8dbb1abad8386 +978086967778811d33660e33663c668a747c8f6c789894a5c0dde8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ddc1a0003366003366003366003366 +507c8800336600336600336600336600336600336600336696c5e2e8e8e8e8e8 +e8e8e8e8e8e8e8e8d9c47d708b65709cbbd9cb4733662a33668ac5e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e4d5c7 +99949a6c758d70758d7887a5acbccaa78b830033660033665380994433660033 +66003389c3e1e8e8e8e8e8e8e8e8e8e8e8e8e8ddbd9c003366003366accfc447 +336600336600386a253f6b213a6b384d7c9cc5dfe8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8c3a0933c4b6d19396a1e396a1e3b6d485f97c8e5cb5c33 +661d336646889f0033660033665da0cee8e8e8e8e8e8e8e8e8e8e8e8e8e8e8bb +8f7800336800337fc3dec447336600336600386a253f6b213a6b384d7c9cc5df +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8bf8a73003c6900407e5c5a +6c003367003378b5dde8c8a0890033660033660033660056a0d8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ce6e336600336600336676a5b947336628336683c1e2 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8bb8a7321596f298acbe8cea500336b003373bfe5e8d0b49700336600336600 +3366005b9dc8d9e2e8e8e8e8e8e8e8e8e8e8e8e8b18478003366003366003366 +0033660033660033668ac1e2e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8bf8f78003d6a003e754a506b00336600336647 +4c69003366003366003b6c0033660033660033662753839cbdd5e8e8e2b18f82 +003366003366003393ac9b8e0033660033660033661640704a5b7c515e7d515e +7c4d62887d96bddde8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8cccc +ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8bb846c00336600 +33671d386600336600336600336600336a709bbddde8e8e1d2c78c737b003366 +00336676b4d8e8e5d26e3366003366003372a1cee2e8e8e8e1d5cb917a832e37 +670033660033660033660033660033660056a0d8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8ddcecbb9bac6c3d2e2e8e8e8e1e1e5ddd6d5d4d7d8d8e1e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e1e2e4e1e2e4e8e8e8e8e8e4d5cebfc1c9c3d2e2e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccce8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8ccccccffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ccccccffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccce8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8 +e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8cccc +ccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b5946d6b6e +758db0e6eeeeeeeeeeeeeeeee6d6ba88797d7c82a0d2e6eeeeeeeeeeeeeeeeee +eeeeeeeeeedeba560000000000005b92c7cfc3b7bcbcc4cddaeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeec4872a0044220079bfeeeeeeeeeeeeeeeeeee2bf800000410000 +79deeeeeeeeeeeeeeeeeeeeeeeeeeed6803c0000000000000000000000000000 +000000003cb0daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffffffffffffffffffffffffffbe5c79f97 +b1e9fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffe1c7ab8989899097b1e5fbffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c7ab +9fb7d2e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeadabaa89c89827f6441000023000048647e868da5b0 +bfe6eeeeeac88700005000008de6eeeeeeeeeeeeeeeeeee2c880450000000000 +00001d4b626b5e4d000000000000002b5773777f8fa2b0d6eaeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +fffffffffffffff3cd9000002dc7f3ffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffdbb170000000000000000040c7f3ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff3902d000089c7fffffffffff7bd97819fc2e1ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf5600000000000000 +000b100b0000080000000b00001e303935311e00001000001b445a6dabcde6e6 +cda000000000000000000000303d48483c2000000b0000193644483b2200000b +00002abae2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffffffffffffffffffffffffffbd79f000040cdf3ffffffffff +fffffffffffffffffffffffffffffffffffffffffffffba54e000079b7fbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff39740004090cdffffffff +fff7972d002d90d2ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee6e2eae6e2eaeeeeeac46000313400254b54504c48453c342000 +00100000204d637cb0d2e6eee6cd948884583900000000000030484844290000 +000000001e3041392c00001500003cbae2eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffff3d797705c0000000000404e +4e2d00004ecdf3fffffffffff7e1a5815c000000000000405c89cde9fbffffff +d7ab790000000000404e4e4070a5d2fffff7b7895c2d2d0000000000002d6679 +9fdbf7fffffffffffbdb894e4ea5d7f3fffffffffffff7e1b15c4079d7f7ffff +fff39740004090cdfffff7b1814e00000000002d4e4e4e404e81d7f7ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c0000100000399d9f7500001e00 +003594adc0c8c4d6eac88700005000008de6eeeeeeeeeeeeeeeeeeeeeeeedec8 +ab9a814b000000000000000000002d6b7b75370000000000000056d2eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffe589 +2d0000005ca5c2cdd2cdc297794e00004ecdf3ffffffe5810000004081c2dbe5 +e9e1cd906600000079e1fffff3dbbd660000006690bdc2bdc7d7e9fffff3b189 +819fb7c2d7d7dbd2c2a54e00000070b1fbfffffff3cd40000090cdeeffffffff +fffff3d290000040c7f3fffffff39740004090cdffffffe5d2b7662d00005c90 +bdc2c2bdbdcdeeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d28d +5300000000000000000000416b6100000000000084a58200004c000087e2eeee +eeeeeeeeeee2c4b5a37a61502500000000000000000000000000183129000000 +000000004d6f9ad6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffff3d297000000a5dbfbfffffffffffffbd797000040cdf3ff +f3d29700000089bdd7e1dbd7d7dbe1cdab79000000b7e5fbfffff79f40004097 +d2fffffffffffffffffffffffbe5d7cdb7b1aba5a597664000004090eeffffff +f7cd40000090cdeefffffffffffff3d297000040cdf3fffffff39740004090cd +fffffffffff79f40004097d2ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeee2945600000000000000569ac99a5600001000 +002250000050000087e2eeeeeeeeeeeeeed2793c001e15001e2e35352e1e0000 +0000000000000000000000003babd2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffff3d29700004ecdf7ffffffff +fffffff3d297000040cdf3fff7d79f0000002d4040404040404040404e4e4e4e +5cabdbf3fffff39740004090cdffffffffffffffeecd6600000000004e667089 +9090704000004097f3fffffff7cd40000090d2f3fffffffffffff3d297000040 +cdf3fffffff39740004090cdfffffffffff39740004090cdffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b0480000000000 +00000000000092ada377777f686c6400214c002a87e2eeeeeeeeeeeeeeeab58d +6e372413000000000000121a1a000000000000000000000000003363b0cde2ee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +f3cd9000002dbde9fffffffffffffff7d297000040cdf3fff3cd90000000b7e9 +fffffffffffffffffffffffffffffffffffff39740004090cdfffffffffffff3 +cd9000002dc2eeffffffffffffffdb9f4e002d97f3fffffff7d25c00005ca5d7 +fffffffffffff7d297000040cdf3fffffff39740004090cdfffffffffff39740 +004097d2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eee2c468000000000000006779390000120000499ae6eeeeeac48700004c0000 +87e2eeeeeeeeeeeeeeeedabfa06f675e4e505343351900000800001200000000 +00003c1b00000000000000486f95c8dae6eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffff3c74e0000004e89c7d7d7c2b1974e00000000 +4ec7f3fffff7d770000000005ca5bdcddbe1dbcdc2ab662d5cc7f3fffffff397 +40004090cdfffffffffffff3d29000000081abc2dbe1d7b79f79000000004097 +eefffffffff3974000002d70bdd2d7cdbd9f5c000000004ecdf3fffffff39740 +002d90cdfffffffffff3974000004081c7d7d7c7c2cdeefbffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeac860000000000000003babd2eaeaded2d2d6d2d6e6 +ead2c8c09b8155001a3b002a87deeeeeeeeeeeeeeee6b59475412d1500000000 +000000294f81887e23000018000087c4d3a0794200000000000060a5d2eeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffe5c2970000 +0000000000002d70704e00005cd2f7fffffffffbe9cd815c2d00000000000000 +00002d5c90e1fbfffffff39740004097cdfffffffffffffffbe59f662d000000 +00000000405c664000005ca5f3ffffffffffe5c2970000000000000000005c4e +2d00004ecdf3fffffff39740004e9fd2ffffffffffffe5c29000000000000000 +004ed2f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2a070636f6163a5cd +e2eeeeeeeeeeeeeeeeeeeeeee28d3c0000000000000028609ae2eeeeeeeeeeee +eeeeba87562e372e2c4e71b0c4d2c88d3c000000000000002970cdeaeeeeeeee +ded2d2cfced2deeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffffffffff7eee9e9e9f3fbffffffffffffffffffffffffffff +fffffffffff7f3eeeeeef3f7fbffffffffffffffffffffffffffffffffffffff +fffffffffffffffffff3eee9e9eef3ffffffffffffffffffffffffffffffffff +fffff7f3e9e9e9f3f7ffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffbf7eef3f3f7fbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae2e2de +dbe2e2e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffa0a0a06b6b6b5454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +54545454545454545454545454545415167a17187c17187c17187c17187c1718 +7c17187c17187c17187c17187c17187c17187c17187c17187c1f20805c5da2cd +cde2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ff8d8d8d808080d4d4d4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4a7bfdcc6d8 +eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6 +d8eec6d8eebccee87483bc202483cecfe3ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffcccccc5f5f5fe4e4e4f1f1f1f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f699bbdcbfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bf +d7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bcd5efaccbea6079ba50589cfefefe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeee6cda564606258698dc8deeeeeeeeaa06029393b245694c8ee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2deded3cfcfcfcfcfcfcfcfcfcfcf +cfcfcfcfcfcfcfcfcfcfcfcfcfd3dadee2eaeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffefefe8e8e8e8e8e8ee2e2e2eb +ebebf2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2ee +e5e2e2e5eef2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f289b1dab3d0eeb3d0eeb3d0eeb3 +d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeaeceed +9cc3ea79a6db102486fbfbfbffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec8945600001a00003d8ea5adb5 +b0a0620000000000005c85acb0aca8a8b1bfc8d2e2eeeeeeeeeeeee6bf480000 +0000000000000000000000000000000000000000000000000000002a80baeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffc +fcfc7b7b7b8b8b8bd9d9d9e5e5e5ecececececececececececececece4995e29 +00292900005ec2e8ececdcaf290055c7e8ecececececececececece8dcd0b8b4 +b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8bebebeb8b8b8b8d0e1e8ecececec +ecececececececececece186000068aad4ececececececececececececececec +ecece4b493867878787070685e553b004886d8ececececececececececececec +ececececececececececececececececececececececececececececececec7d +abd9aaccedaaccedaaccedaaccedaaccedaaccedaaccedaaccedaaccedaacced +aaccedaaccedaacceda2c6eb92bde84f91d711298df2f2f2ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee294 +4800191e0008000000000000000000000000000000000000000000000000003c +bae2eeeeeeeeeee6bf48000025000077adcae6e6cf8429003f1f006fadcae2e6 +dfaf7e282045222a80bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffcfcfc7a7a7a8f8f8fd5d5d5e3e3e3e9e9e9e9e9e9 +e9e9e9e9e9e9e5d9c49c9191919191919191a8c0d5d9bc84000047a2b6bcb6b6 +b1b1b1c0dee9e9dec09100000029292929292929292929292929292900000000 +000000002991c0dee9e9e9e9e9e9e9e5e5e5e2e5e5e5d17d29006ea2c0d1cdc8 +c0bcb6adadbcd9e9e9e9e9e9e9e9e5b19176768a97977d3a0000006691b6e2e9 +e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 +e9e9e9e9e9e9e9e9e9e9e971a4d7a2c7eca2c7eca2c7eca2c7eca2c7eca2c7ec +a2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7ec9cc4eb8bb9e7478ed61431 +93ebebebfefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeed6ab2900000e0000488db4c9c7bdb8bca8640000000000 +00608fb9bcbdc0c2cedae2eaeeeeeeeeeeeeeee6bf4800002000005c85a0b4b0 +a4602400311d005c899cb4b5ad8a5b001b38002a80bfeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc7d7d7d949494 +cccccce0e0e0e5e5e5e5e5e5e5e5e5e5e5e5dec19f645c646c6c6c6c6c647588 +9a885c29003946290000002946525c7bc5dee5e5e5e5e5e5e5e5e5e5e5e5e5e5 +e5e5e5e5e5e5e5e5debd81000081dee5e5e5e5e5bd8846000000000000000000 +000000000000000000000000292929293964bddee5e5e5e5e5e5e5e5e5e5e5e5 +ce7529005288b8e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5 +e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5689fd59bc3eb9bc3eb +9bc3eb99c0e799c0e799c0e799c0e799c0e799c0e799c0e79bc3eb9bc3eb9bc3 +eb97c0ea81b3e5488ed6173898ebebebfefefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaab6829000000000000717438 +00000000000000000000000000000000000000000080badeeeeeeeeeeeeeeee6 +bf56000000000000000000000000000000000000000000000000000000000049 +87bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffcfcfc808080989898c8c8c8d7d7d6e1e1e1e1e1e1e1e1e1e1e1e1e1e1 +da9c6a51455151455179a7a785000028b5dada92380080bedde1e1e1e1e1e1e1 +e1e1e1dab95a00000000000000000000005a92c1dabe85000080d2e1e1e1e1e1 +dad2cac6cacad2d6d2beab9c928c8038000080b5d6e1e1e1e1e1e1e1e1e1e1e1 +e1e1e1e1e1e1e1e1e1ce803800000073b9c6c6c6c6cee1e1e1e1e1e1e1e1e1e1 +e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 +e1e1e15c97d393bee993bee993bee9526a82080a0d080a0d080a0d080a0d080a +0d4b617893bee993bee993bee98ab9e761a0df4b8fd71b3f9eebebebfefefeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b080 +0000000000000000007c77392350312a87c4943c001922002a87c8942a005022 +0080bfdeeeeeeeeeeeeeeee6bf3c000022000087bfe2eeeee68d29004c220080 +bfe2eeeeeec4873c2248302a80bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffcfcfc8484849d9d9dcacacacecececfcf +cfcfcfcfcfcfcfcfcfcfcfcfc8a28b81818181818695a69d7b3f5b8bbdc5b269 +00005b8baabdbdbabdc5cbcfcfcfcfc8a634002495b6c1c5c5c19969242475aa +c8b27b000075c5cfcfcfcfcfcfcfcfcfcfcfc8aa7b000034696f6924000075aa +c5cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc58653000000000024344b3f3400 +000000346fb2c8cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf +cfcfcfcfcfcfcfcfcfcfcfcfcfcfcf4e8fd15f9fe05f9fe05f9fe05e9ede1c2f +4205090c05090c05090c192a3b5e9ddd5f9fe05f9fe05f9fe05fa0e1569add4e +92d91e46a3ebebebfefefeffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeed6ab70000013000000000000777739002b1e002d412700 +0000000000243000000000000087bfdeeeeeeeeeeeeeeee6bf48000016000036 +5c6f7e7b734500002300003f5c6f7e7f7b6140002230003c87bfeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc8787 +87a1a1a1ccccccd1d1d1d4d4d4d4d4d4d4d4d4d4d4d4d4d4cd936c554c4c4c40 +5578a6aa8e4000000000000000000000000000004c7eafd4d4d4d4cdaa350035 +a6cad4d4d4d4af78352578b2cdb67e000078cad4d4d4d4d4d4d4d4d4d4d4b27e +35006ca6d4d4ca7825004084b2d4d4d4d4d4d4d4d4d4d4d4d4d4d4ca8e5d0000 +0055a1bbcad4d4d4d4d4d4d4d4c5844000357eafd4d4d4d4d4d4d4d4d4d4d4d4 +d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d45a98d669a7 +e569a7e569a7e569a7e55e96cd0c141b06090c0b11175c92c869a7e569a7e569 +a7e569a7e565a4e35e9edf4f93da214da8ebebebfefefeffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeadebf4700002b00 +0086a19200000000000000000000000000243b2b000029000087bfdeeeeeeeee +eeeeeee6bf48000000000000000b10100b000000000000000b0b10100b000000 +0000004987bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffcfcfc8a8a8aa5a5a5ccccccd4d4d4dadadadadadadadadada +dadadad3b76f42374242423726428db7d3dadadadadad381260075afcfdadada +dadadadadadadad3af420000000000000000000000377bb3d3bc8100007bcfda +dadadadadadadadadadadac7a64e00000000000000006097bcdadadadadadada +dadadadadac3a167000057aab7aa6f420000004297b7cbdadadacbaa6f003787 +cfdadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadada65a0db74afea74afea74afea74afea74afea5078a106090d4c +729974afea74afea74afea74afea74afea6eaae663a3e25195da2455adebebeb +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeee6bf3c000022000087bfdec89a600000180000000000008dc8eaee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf3c00002b0000abdaeeeeeee68d2900 +4c230080c4e6eeeeeec4873c2248302a80bfeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffcfcfc8d8d8daaaaaacdcdcdd7 +d7d7e0e0e0e0e0e0e0e0e0e0e0e0e0d5af382879d1e0e0af723872afd1e0e0e0 +e0e0d57f280079b4d1e0e0e0e0e0e0e0e0e0e0d9b9440038a6c5d1d9d5d5bdab +9ca6c5dce0c18500007fd5e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0dcc9a628 +00008bbdd9e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0dce0e0bd8b380062a6cdbd85 +000072d5e0e0b97f280072afe0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 +e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e070a9e17fb8f07fb8f07fb8f07f +b8f07fb8f07fb8f0577da37fb8f07fb8f07fb8f07fb8f07fb8f07fb8f079b2ec +66a5e45498dc285cb3ebebebfefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf3c000022000087bfe2eeeeda70 +0000000000000000256b9dd2e2eaeeeeeeeeeeeeeeeeeeeeeeeed6ab70000023 +000049bfe2eeeeeee287290048220080bfdeeeeeeec8873c2348302a80bfeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffc +fcfc919191afafafcfcfcfdadadae7e7e7e7e7e7e7e7e7e7e7e7e7dcb5470047 +96a6a07629007cb5d7e7e7e7e7e7dc8329007cb5d7e7e7e7e7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7d7beab896d47002983d7e7e7e7e7e7e7e7e7e7 +e7e7e7e7e7dccbb05300000065a0e0e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7 +e7e7e7e0be8900003a90a08929000047533a000029a6cbe0e7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e77a +b1e889c0f789c0f789c0f789c0f789c0f789c0f789c0f789c0f789c0f789c0f7 +89c0f789c0f789c0f780b8f06ba9e65599dd2b63b8ebebebfefefeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf48 +00002700007394976d48000000000000001000000000000000002235466f879d +c4daeaeee2bf5600000000000068a5eaeeeeeeeee287000044000079bfc38056 +3f1600000b00003c80baeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffcfcfc979797b6b6b6d5d5d5e5e5e5efefefefefef +efefefefefefefe7c5693c568ea0a0877171a6c9e4efefefefefe49b56499bc9 +e4efefefefefefefefefefefefefefefefefefefefefefefefcea07a49566071 +8eb6e7efefefefefefefefefefefefefebac712a2a69a0dfefefefefefefefef +efefefefefefefefefefefefefefefefefefdbc5ac7a60606969697a87a0cee4 +efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef +efefefefefefefefefefef88bdf397ccff97ccff97ccff97ccff97ccff97ccff +97ccff97ccff97ccff97ccff97ccff97ccff97ccff91c7fd7ab4ed61a0e03a71 +beebebebfefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeee6bf3c0000000000000000000000003f69b0cddeeee2d6 +b09279402700000000000000a0d2eaeedab548002d36003bb0daeaeeeeeeeeee +e6ab806c776e6da5cddba5806b483831404f5e94b5d6eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc9f9f9fb8b8b8 +dededef0f0f0f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f794c9faa3d8ffa3d8ff +a3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8 +ff9fd5ff90c6fd6fa5e35178abedededffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2dee2dbd6d7d7d7db +dedee6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeaeeeaeaeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffdfdfdc1c1c1979797dadadaf5f5f5fcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfca2d8f9b1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7 +feb1e7feb1e7feb1e7feb1e7feace2fe99cdf87baae5737e8cfafafaffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffffffff9f9f9828282979797dbdbdbf5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5a9def2b7ecf7b7ecf7b7ecf7b7ecf7b7ec +f7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b2e5f290b3c667 +707bc0c0c0fdfdfdffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffeaeaea9090905f5f5f5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c6c6c6cb9b9b9fbfbfbffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffffffffffffffefefefafafae7e7e7d6d6d6d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5dbdbdbf9f9f9fdfdfdffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffffffffffffffffffffffffffe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffff6262626f6f6f717171717171717171717171 +7171717171717272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272717171717171717171717171717171717171 +6f6f6f626262ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffff939393c4c4c4 +cacacacacacacacacacacacacacacacacacacbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacaca +cacacacacacacacacacacacac4c4c4939393ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffaeaeaeedededf6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6edededaeaeaeffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb3b3b3f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b3b3b3ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecda0704a56535480a7c4 +bfb1a19a959a9a9a9a9a9a9a9a9a9a9a9a959a9dadbcc4deeaeeeeeeeeeeeada +b09d9c9898a8cde2ead6b087646d6c7094bcab79666f61609abfdaeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeec4872a2248232a80a1560000000000000000000000000000000000000000 +000056bae2eeeeeeeeead2a500000000000000006d6f000000000000003d0000 +000000002c5767828d97b0c4daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d6c8a5 +8f7c655e5450504c5761698da8badaeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeee6c4600000000000568dbfeeeeeeeeeeeeeee6c45600000000 +00568dbfeeeeeeeeeee29456000000002a2a2a2a2a2a2a002a2a2a2a56708dc8 +e2eeeeeeeee2c4940000002a2a2a00002a00002a0000008dbfe2eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +ffffffffffffffffe1c7ab8989899097b1e5fbfffbf7f3f7fbfffffffffffff7 +c7ab9fb7d2e9ffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c7 +a59fb7d7eefffffffffffffffffffffff7c7a59fb7d7eeffffffffffffffffff +fffff7c7a59fb7d7eeffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeae6e6e2dbaf7c2700411f0079a4a88d714b3924000000 +00000000000000000020354f7e94b5eaeeeeeeeeeeded2c8ad9f9495a0a49a7c +43000016000027352e160000080000153135353d485880a5c8eeeeeeeeeeeeee +eeeeeeeedeab80500000000000000000000000000000000000000000379ac4de +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf4900000000004987bfeeee +eeeeeeeeeee6bf4900000000004987bfeeeeeeeeeee28d490000000000000000 +0000000000000000000000000079d2eaeee2c48d000000000000000000000000 +00000087bfdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5ffffffffffffffffffdbb170000000000000000040c7ebcd +2d00000089c7fffffffffff3902d000089c7ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe5b700000081c2e9ffffffffffffffffffffe5b7000000 +81c2e9ffffffffffffffffffffe5b700000081c2e9ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2bf80000000000000000000 +000000000b001a1a000b001a1900242400191a000e000029000087deeeeeeeea +cd680000000000000010000000000000000012231a000000000000001f1d263e +405cabd2e6eeeeeeeeeeeeeeeede9456000000000000006d8171000000000000 +8fb4ac64250000000000002ab0daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6 +bf5600000000004987bfeeeeeeeeeeeeeee6bf5600000000004987bfeeeeeeee +eee2944900000000003c87daeeeeeae2d2874900000000000049bfe2eeeeeeee +eeeede8d4900000000003c8ddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5fffffffffffffffffba54e00 +0079b7fbfffffffffffffbe9bdaba5c2dbeefffffffffff39740004090cdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffcd9040000081e5ffffffffff +ffffffffffffcd9040000081e5ffffffffffffffffffffffcd9040000081e5ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeae6e2dac67300001500002980a6842900000e000000000000000000000000 +00001018002a87deeeeeeeeeeeeee6cd9a8f8a726e6f7a7a67321d352d1e3e60 +5c3e000015000029646f738995a2cddeeaeeeeeeeeeeeecda068000000000000 +87b5dac88d4900001e000060c8e6eeeedeb53c00000000000070abeaeeeeeeee +eeeeeeeeeeeeeeeeeeeeeee6bf5600000000004987bfeeeeeeeeeeeeeee6bf56 +00000000004987bfeeeeeeeeeee2944900000000004994e6eeeeeeeee6a0602a +000000000049bae2eeeeeeeeeeeee2944900000000003c8de2eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffd7ab790000000000404e4e4070a5d2fffff7b7897089b7dbffff +fffffff39740004090cdfffffffffffffff7e1a5815c000000000000405c89cd +e9fbfffffffffffffffff3b1815c5c79b1f3fffffffffffffffffffffffffbd7 +6600005ca5d7fffffffffffffffffffffbd76600005ca5d7ffffffffffffffff +fffffbd76600005ca5d7ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2ba4800000000000025568d8d796156 +4841484545444545444845484448535c829ab5e6eeeeeeeeeeeeeeeebf9a6800 +00000000004200000000000008000000000000000000080000299ac8e6eeeeee +eeeee28d3c000018000060a0eaeeeaab6800002000004994e2eeeeeeeeeeab70 +00001300002a87deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf56000000000049 +87bfeeeeeeeeeeeeeee6bf5600000000004987bfeeeeeeeeeee2944900000000 +00002a607070563c0000000000000000569ae2eeeeeeeeeeeeeee29449000000 +00003c8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5fffffffffffff3dbbd660000006690bdc2bdc7d7 +e9fffff3972d002d90cdfffffffffff39740004090cdffffffffffe581000000 +4081c2dbe5e9e1cd906600000079e1fffffffffffffff3902d00002d90f3ffff +ffffffffffffffffffe9bd81000040c7f3ffffffffffffffffffffe9bd810000 +40c7f3ffffffffffffffffffffe9bd81000040c7f3ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeb0702a0000 +0000000000000000002e00000000000008080808080800000000000094cdeaee +eeeeeee6cd8753000000000000006097a14800453200436f6139000016000036 +6f7e7e7f8690adbac8eaeeeeeee6c456000029000070b0d6eeeed27000001d00 +003c8dc4eeeeeeeeeeeec48d3c002b25004994e2eeeeeeeeeeeeeeeeeeeeeeee +eeeeeee6bf560000000000498dc4eeeeeeeeeeeeeee6bf5600000000004987bf +eeeeeeeeeee294490000000000000000000000000000000000498ddaeeeeeeee +eeeeeeeeeeeee2944900000000003c8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +f79f40004097d2fffffffffffffffff39740004090cdfffffffffff397400040 +90cdfffffff3d29700000089bdd7e1dbd7d7dbe1cdab79000000b7e5fbffffff +fffffff7f3eef3f7fbfffffffffffffffffffffff39740000079b7ffffffffff +fffffffffffff39740000079b7fffffffffffffffffffffff39740000079b7ff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeedab587000000000000000000314e686f686359565448484c4c4c4c4c +4c4c48484c5056648095adcddeeaeee6c860000034000080b0d2eeeed68d6841 +0000000000002535353535312e2e2a2a38445c80abe6eeeeeee6bf4800002900 +0087bfe2e6c89a0000000000008dc4e2eeeeeeeeeed6792900000b00003c8dde +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2bf4900000000002a70abeeeeeeeeeeee +eee2bf4900000000004987bfeeeeeeeeeee2944900000000000060a0a0870000 +00000000000068c4e2eeeeeeeeeeeeeeeeeee294490000000000498de2eeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5fffffffffffffffff39740004090cdfffffffffffffffff397400040 +90cdfffffffffff39740004090cdfffffff7d79f0000002d4040404040404040 +404e4e4e4e5cabdbf3fffffffffffffffffffffffffffffffffffffffffffbe1 +ab000000a5d7f7fffffffffffffffffffbe1ab000000a5d7f7ffffffffffffff +fffffbe1ab000000a5d7f7ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeba802a00341d0038302d533c34655c00 +000000000000000000000000000000080000000000000087bfdeeadac4917b74 +6761626f736f6b6f737373611e001818001e64737b7e7b7b7b7b7b7b77778994 +a0bfd6e6eeeede872900001000005692955600000000000068cdeaeeeeeee6b0 +804600000000000068a5d2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed2792a00 +000000000060b5d6e6eeeeeabf9a68000000000000498dc4eeeeeeeeeee29449 +00000000004994eaeeeebf8d5600000000000000498ddeeeeeeeeeeaeeead687 +3c00000000003c87d6eaeaeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5fffffffffffffffff39740004090cdff +fffffffffffffff39740004090cdfffffffffff39740004090cdfffffff3cd90 +000000b7e9fffffffffffffffffffffffffffffffffffffffffffffbf7f7f7fb +fbffffffffffffffffffc2812d002d90eeffffffffffffffffffffffc2812d00 +2d90eeffffffffffffffffffffffc2812d002d90eeffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6ea +eee6c0873c2248302a80bfd2b08000002700003940003933001e002230003777 +bfdaeaeeeeeee2c89a39001a10000b10101010101010100b0000000000000b10 +101010101010100b000b1a002894c4e2eeeeeed2a57000000000000000000000 +00005694c4dacdb56f3f00000000000000005694deeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeec48d560000000000000000000000000000000000000000 +3cb5deeeeeeeeeeeeee2944900000000003c8ddeeeeeeeeeda873c0000000000 +0000498dbfe2c48d00000000000000000000000000000087bfdeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +fffffffff39740004090cdfffffffffffffffff39740002d90cdfffffffffff3 +9740002d90cdfffffffff7d770000000005ca5bdcddbe1dbcdc2ab662d5cc7f3 +fffffffffffff3974000002d90eefffffffffffff7d24e000070b7e5ffffffff +fffffffffffff7d24e000070b7e5fffffffffffffffffffff7d24e000070b7e5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeebf873c304c2d2c4c370000000000003f6b77 +24003220003b55240000000000000094c8e6eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeac43c003130003cbfe6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeaba9a7e4b3e34303e4b759abae6d6ab0000000000000000005b87b0e2eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6b594792a00000000 +000000000000002a4968abcde2eeeeeeeeeeeeeeeee2944900000000005694e2 +eeeeeeeeeeeedab549000000000000000092a988000000000000000000000000 +0000008dbfdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5fffffffffffffffff39740004097cdfffffffffffffffff3 +9740004e9fd2fffffffffff39740004e9fd2fffffffffffffbe9cd815c2d0000 +000000000000002d5c90e1fbfffffffffffff39f4e00005c9ff3ffffffffffe1 +b17000005cd2f7ffffffffffffffffffffe1b17000005cd2f7ffffffffffffff +ffffffe1b17000005cd2f7ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebf8000004500 +005f6968766f79a0c4ba802a000010000056c4e6daaba09c9d9dabdaeaeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeee2ba000000000000b5e2eeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2cdbf +bab5b6c4d2e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeae6dedadadadadadadee6eeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffff7f3eeeeeef3f7fbffffffffffffffffffffffffffff +ffffffffffffffffffffe9902d002d89c7ffffffffffffffffffffffe9902d00 +2d89c7ffffffffffffffffffffffe9902d002d89c7ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee6dedad3d3d6dae2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeadededada +dedeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffbe1b12d0040b7e5fbffffff +fffffffffffffbe1b12d0040b7e5fbfffffffffffffffffffbe1b12d0040b7e5 +fbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb3b3 +b3f4f4f4fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefdfd +fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf4f4f4b3b3b3ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffacacacd2d2d2d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 +d9d9dadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadad9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d2d2d2ac +acacffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffff6262626f6f6f +7171717171717171717171717171717171717272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272717171717171 +7171717171717171717171716f6f6f626262ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffff939393c4c4c4cacacacacacacacacacacacacacacacacacacbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcacacacacacacacacacacacacacacacacacac4c4c4939393ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffaeaeaeedededf6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6edededaeaeaeffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb3b3 +b3f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b3b3b3ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae6e6e2e6 +e6e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeee2d2c8b6adb1bcc4d2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeec48d4900001e000060c8e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeee6c4600000000000568dbfeeeeeeeeeeeeeee6c45600 +00000000568dbfeeeeeeeeeee29456000000002a2a2a2a2a2a2a002a2a2a2a56 +708dc8e2eeeeeeeee2c4940000002a2a2a00002a00002a0000008dbfe2eeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5ffffffffffffffffffffffffe1c7ab8989899097b1e5fbff +fbf7f3f7fbfffffffffffff7c7ab9fb7d2e9ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffff7c7a59fb7d7eefffffffffffffffffffffff7c7a59f +b7d7eefffffffffffffffffffffff7c7a59fb7d7eeffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeee6a57946323e324879a5bc8029000016000080deeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c002424003c8de2eeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf4900000000004987 +bfeeeeeeeeeeeeeee6bf4900000000004987bfeeeeeeeeeee28d490000000000 +0000000000000000000000000000000079d2eaeee2c48d000000000000000000 +00000000000087bfdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffdbb170 +000000000000000040c7ebcd2d00000089c7fffffffffff3902d000089c7ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe5b700000081c2e9ffffff +ffffffffffffffe5b700000081c2e9ffffffffffffffffffffe5b700000081c2 +e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d29001918002a87bfc48d3c0019 +24002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c +001924002a8de6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeee6bf5600000000004987bfeeeeeeeeeeeeeee6bf5600000000004987bfee +eeeeeeeee2944900000000003c87daeeeeeae2d2874900000000000049bfe2ee +eeeeeeeeeede8d4900000000003c8ddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +fffffffffffffffffba54e000079b7fbfffffffffffffbe9bdaba5c2dbeeffff +fffffff39740004090cdffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +cd9040000081e5ffffffffffffffffffffffcd9040000081e5ffffffffffffff +ffffffffcd9040000081e5ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d3c +002422003c87bfc48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeec48d4900001e000056adcdd6eaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf5600000000004987bfeeeeeeeeeeeeee +e6bf5600000000004987bfeeeeeeeeeee2944900000000004994e6eeeeeeeee6 +a0602a000000000049bae2eeeeeeeeeeeee2944900000000003c8de2eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffd7ab790000000000404e4e4070a5 +d2fffff7b7897089b7dbfffffffffff39740004090cdfffffffffffffff7e1a5 +815c000000000000405c89cde9fbfffffffffffffffff3b1815c5c79b1f3ffff +fffffffffffffffffffffbd76600005ca5d7fffffffffffffffffffffbd76600 +005ca5d7fffffffffffffffffffffbd76600005ca5d7ffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeee2943c001922002a87bfc48d3c001924002a8de2eeeeee +eeeeeae2dee6e2deeaeeeed6b59a6d5c53414145454545454545454545454545 +4545454545454545454545454141506b7594d2e6eec48d560000000000000000 +000000295e81a0c8dae6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf56000000 +00004987bfeeeeeeeeeeeeeee6bf5600000000004987bfeeeeeeeeeee2944900 +00000000002a607070563c0000000000000000569ae2eeeeeeeeeeeeeee29449 +00000000003c8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5fffffffffffff3db +bd660000006690bdc2bdc7d7e9fffff3972d002d90cdfffffffffff397400040 +90cdffffffffffe5810000004081c2dbe5e9e1cd906600000079e1ffffffffff +fffff3902d00002d90f3ffffffffffffffffffffffe9bd81000040c7f3ffffff +ffffffffffffffe9bd81000040c7f3ffffffffffffffffffffe9bd81000040c7 +f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeac8600000260000609ac8c4 +8d3c001924002a8de2eeeeeee6c460000029000068a5d2cda579241d1e0e0e12 +1616161616161616161616161616161616161616161616120e121b233970c4e6 +eec48d4900002200004e53411d0000000000000000003970a5e6eeeeeeeeeeee +eeeeeeeeeeeee6bf560000000000498dc4eeeeeeeeeeeeeee6bf560000000000 +4987bfeeeeeeeeeee294490000000000000000000000000000000000498ddaee +eeeeeeeeeeeeeeeeeee2944900000000003c8de2eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5fffffffffffffffff79f40004097d2fffffffffffffffff397400040 +90cdfffffffffff39740004090cdfffffff3d29700000089bdd7e1dbd7d7dbe1 +cdab79000000b7e5fbfffffffffffff7f3eef3f7fbffffffffffffffffffffff +f39740000079b7fffffffffffffffffffffff39740000079b7ffffffffffffff +fffffffff39740000079b7ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea +d6ab00000000000087bfe2c48d3c001924002a8de2e6cd792800000000000039 +a5cde6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeec48d3c001924002a8de6eeeee2d6c4865d312b +3b2e4987baeeeeeeeeeeeeeeeeeeeeeeeeeee2bf4900000000002a70abeeeeee +eeeeeeeee2bf4900000000004987bfeeeeeeeeeee2944900000000000060a0a0 +87000000000000000068c4e2eeeeeeeeeeeeeeeeeee294490000000000498de2 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5fffffffffffffffff39740004090cdff +fffffffffffffff39740004090cdfffffffffff39740004090cdfffffff7d79f +0000002d4040404040404040404e4e4e4e5cabdbf3ffffffffffffffffffffff +fffffffffffffffffffffbe1ab000000a5d7f7fffffffffffffffffffbe1ab00 +0000a5d7f7fffffffffffffffffffbe1ab000000a5d7f7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeee6a06000000000000056bfe2eec48d4900192700245f +480000000000000028a0c8e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c00192400 +2a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed2 +792a00000000000060b5d6e6eeeeeabf9a68000000000000498dc4eeeeeeeeee +e2944900000000004994eaeeeebf8d5600000000000000498ddeeeeeeeeeeaee +ead6873c00000000003c87d6eaeaeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +fffffffff39740004090cdfffffffffffffffff39740004090cdfffffffffff3 +9740004090cdfffffff3cd90000000b7e9ffffffffffffffffffffffffffffff +fffffffffffffffbf7f7f7fbfbffffffffffffffffffc2812d002d90eeffffff +ffffffffffffffffc2812d002d90eeffffffffffffffffffffffc2812d002d90 +eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedab580000000000000569ac8 +eeeeeeba874900000000000000000000005cb0d2e6eeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeec48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeec48d560000000000000000000000000000000000 +0000003cb5deeeeeeeeeeeeee2944900000000003c8ddeeeeeeeeeda873c0000 +0000000000498dbfe2c48d00000000000000000000000000000087bfdeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5fffffffffffffffff39740004090cdfffffffffffffffff3 +9740002d90cdfffffffffff39740002d90cdfffffffff7d770000000005ca5bd +cddbe1dbcdc2ab662d5cc7f3fffffffffffff3974000002d90eeffffffffffff +f7d24e000070b7e5fffffffffffffffffffff7d24e000070b7e5ffffffffffff +fffffffff7d24e000070b7e5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedab0 +290000000000002a80d6eeeeeeeeeab5875400001a00003778a0b5deeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebf872a000016000080deeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6b594792a00 +000000000000000000002a4968abcde2eeeeeeeeeeeeeeeee294490000000000 +5694e2eeeeeeeeeeeedab549000000000000000092a988000000000000000000 +0000000000008dbfdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5fffffffffffffffff3974000 +4097cdfffffffffffffffff39740004e9fd2fffffffffff39740004e9fd2ffff +fffffffffbe9cd815c2d0000000000000000002d5c90e1fbfffffffffffff39f +4e00005c9ff3ffffffffffe1b17000005cd2f7ffffffffffffffffffffe1b170 +00005cd2f7ffffffffffffffffffffe1b17000005cd2f7ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeac8b0a8a5a1a8c4daeaeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2d2bf +a39fa1a8b5c8eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeae6dedadadadadadadee6eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffff7f3eeeeeef3f7fbffff +ffffffffffffffffffffffffffffffffffffffffffffe9902d002d89c7ffffff +ffffffffffffffffe9902d002d89c7ffffffffffffffffffffffe9902d002d89 +c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fbe1b12d0040b7e5fbfffffffffffffffffffbe1b12d0040b7e5fbffffffffff +fffffffffbe1b12d0040b7e5fbffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb3b3b3f4f4f4fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd +fdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf4f4f4b3 +b3b3ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffacacacd2d2d2d9d9d9d9 +d9d9d9d9d9d9d9d9d9d9d9d9d9d9dadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadad9d9d9d9d9d9d9d9d9d9 +d9d9d9d9d9d9d9d9d2d2d2acacacffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffff6262626f6f6f7171717171717171717171717171717171717272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727171717171717171717171717171717171716f6f6f626262ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffff939393c4c4c4cacacacacacacaca +cacacacacacacacacacacbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacacacaca +cacacacac4c4c4939393ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffaeae +aeedededf6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6edededaeaeaeffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb3b3b3f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b3 +b3b3ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeed6bfab857c6f646363676b7c95a5bfe6e6cd87646e695e7cbad6e6eeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeee6a5683a4240316094c4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eae6e2d6d3cfc7c4c4c0b8b8ada0937a78828d9ab5e2eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedebf9a38000010 +0000356094d6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeed2a57940322c1e1a1a2329325470a5ead6a5 +0000000000009ad2eeeeeeeeeeeeeeeeeeeeeeeeeee6c89a0000000000000000 +00000000000000000000000000000000000000080800000000000056bfe2eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee68d3c002424003c8dc4eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeecd9a560000000000000000000000000000000000 +008dc4e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeee28d3c3968383c8663295c512779badeeeeeeeeeeeeeeeeeeeeaeaea +e2e2e2dbdbdbd3d3d3cbc3bfbcbcc6cdd6e6eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d2ab644b452e2529 +2e2e2e2e2a2535444b6d826b00000000000013252e2d2525232c3c5179a5e2ee +eeeadac497877a63606063636363636363636363636363636363635b38000000 +0000002f4e8295a5d2e6eee6e2dacfcbc0bdb8b4b0aca9a5a19d9d95895a2100 +000800001a3e504b4838312c252d3c5370a5e6eeeeeeeeeeeee2d6c4bab8b7ba +bfa47a3800000000000087badaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae2b57e512d342912001d34003babd6ea +eeeeeee2c48d000000000000000000000000000000000000000000000029abd6 +eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeead6ba917e6e5c58585c5c5c5c585c6b6e745c2e00001500001f000000 +0000001950646e8fa0bae6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeea943c002524003c8dc4eeeeeeeeeeeec89449000000000000 +000000000000000000000000000000000e151e1e25292d31354253758db0e6ee +eeeeeeeeeeeeeeeeeeeedab08000000000000079abd2eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeecdab948a86829dbad2eaeeeee6cd9a000000000000 +548195b0b4b9c8d6e6eeeeeeeeeeeee6d2b582716b57535f6b6f737e868d9891 +7a000000000000004887d6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecd9a68001a12000b08101a1b2e48 +4800000000000088874700272d003c94e6eeeeeeeeeeeeeeeeeeeeeeeeeeeec4 +8d560000000000000000000000000000004987b98d3c002422003c87bfeeeeee +eeeeeeeeeae2d6d2cfc7cbd3dadbd3b7a5928177673c00001500003c8dc4eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c49400000000000000608fb9 +c0c3ced2daeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d4800000000000049 +c4e6eeeeead2793b0000000000002aabdaeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeec48d56000000000000a5d2eaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedac4 +b09284766f6f6b737e807e754d2043422968a5bc873c001822002a87deeeeeee +eeeeeeeeeeeeeeeeeeeeeec48d4900002000005ca4b0a45b00001a00003c87b9 +8d3c002422003c87bfeeeeeeeeeeeeeeeeeeeeeeeeeeeee6a060000000000000 +080000000000004987bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6cda528 +0000000000000000000000000000000000000051abcde2eeeeeeeeeeeeeeeeee +eed6ab2900000b00003c80baeeeeeeeeeeeeeacda00000000000000060a0e6ee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedebf8d000000000000609ac8ee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeec48d49000000000000000000003f6000000000000000 +000000000000000000000000000080badeeeeeeeeeeeeec48d3c002425003c94 +eaeeee9a49001a29002a87b98d3c002422003c87bfeeeeeeeeeeeeeeeeeeeeee +eeeee2bf3c000022000087c4e68d29002418003c87bfeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeead6b03b000000000000004ba0bfd2e6eeeee2dac47a4200000000 +000060c8eaeeeeeeeeeeeeeebf8749000000000000a0d2eaeeeeeeeeeeeeeeee +eaab70290000000000009acde6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c49a27 +00000000000000005694bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed2b5a582756b60636360 +687285959eb4b7b0a8a9a581592300001200005895a5a5b0bac0d6e2eaeeeeee +eeeeeec48d49000012000029626b623200001200003c87b98d3c002422003c87 +bfeeeeeeeeeeeeeeeeeeeeeeeeeeeed679000000000000343800000000000049 +87bfeeeeeeeeeeeeeeeeeeeeeeeeead6b03b000000000000266d9da39e91919b +b2bfd2eaeeeeeedeb529000018000087bfdeeeeeeeeee6bf5600000000000049 +94e2eeeeeeeeeeeeeeeeeeeeeeead2a00000000000002a70abeeeeeeeeeeeeee +eeeeeeeeeed6b5870000000000000015100000000000002770a0deeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eee287290000000000001200001200003cbae2eeeeeeeec88d4900192b002a8d +e6eeeeeeeeeeeeeeeeeeeeeeeeeeeec48d490000000000000e120e0000000000 +002a80b98d3c002422003c87bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2d2b57a +5b4f3c2e20000000000000498dbfeeeeeeeeeeeeeeeeeeeeeeeeeee2c4795163 +66516f7739000000000000000000003c80b5eee6ba29000018000087bfdeeeee +eab0793b0000000000008dbfe2eeeeeeeeeeeeeeeeeeeeeeeeeeeee294560000 +0000000049badeeeeeeeeeeeeeeaba9466000000000000003b79cdeae2a57939 +00000000000000568ddaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeee28729004c240087c8ee8d3c496b3849b5e2ee +eeeeeec48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeecda0704a51 +515679abeeeeeee6dad2cfcbd2d6deea943c001922002a87bfeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeedaba8700000000000087bfe2eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeee6bf2900001e0000abbf9400002d000049bbb5 +87000000000000a5d2eae6c8940000000000000060a0e6eeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeedab07000000000000087bfe2e6dabf7c4e00000000000000 +266094daeeeeeeeeeeeeeeeaba8d54000000000000003980cde6eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d3c00191800 +1a3b452500272e0049bae2eeeeeeeec48d3c001922002a87e2eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c8ab806c5729000012 +00003c87bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bfa06c000000000000 +2970abe6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee29448000000 +0000002c0000000000000000000000004987baeeeeeeeeeeeacdb5adb0acb0cd +e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae2dad6d7dadae2eeeeee +dab5870000000000006f9abfeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeba8d560019 +2c002879c8e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeee28d3c00191800193641332938454568bfe2eeeeeeeec48d490024 +2d003c94e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeee2c4942700190b000b222c3587b0d6eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ead2a50000000000003870a5e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeadaab8a662b1913100b0e121822324c65a5bfd6eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae6eaeae6eaeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6e6eee6e6eeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb3b3b3f4f4f4fdfdfdfd +fdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfd +fdfdfdfdfdfdfdfdf4f4f4b3b3b3ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffacacacd2d2d2d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9dadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadad9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d2d2d2acacacffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffff6262626f6f6f7171717171717171 +7171717171717171717172727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727272727272727272727272727272 +7272727272727272727272727272727272727171717171717171717171717171 +717171716f6f6f626262ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffff9393 +93c4c4c4cacacacacacacacacacacacacacacacacacacbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb +cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcaca +cacacacacacacacacacacacacacacacac4c4c4939393ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffaeaeaeedededf6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6edededae +aeaeffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb3b3b3f5f5f5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b3b3b3ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeb08056595c4b79abd2eeeeee +eeeeeecd9a604a5b50568dc8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeedac4b0979191a2b0c4eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6a5683a4240316094c4eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeae6e2d6d3cfc7c4c4c0b8b8ada0937a78828d9a +b5e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeedebf9a380000100000356094d6eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeac8b0a8907e6f +3400001e000044657d9797999b968d644500001d0000365c778290a2b0c8eaee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebf872a000016000080deeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee68d3c00 +2424003c8dc4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecd9a560000000000 +000000000000000000000000008dc4e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d3c3968383c8663295c512779bade +eeeeeeeeeeeeeeeeeeeaeaeae2e2e2dbdbdbd3d3d3cbc3bfbcbcc6cdd6e6eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeee2a5806b422e000000000000000000003b53655a452b0000000000 +000000001334486b80a5e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec4 +8d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeee6e2dacfcbc0bdb8b4 +b0aca9a5a19d9d95895a2100000800001a3e504b4838312c252d3c5370a5e6ee +eeeeeeeeeee2d6c4bab8b7babfa47a3800000000000087badaeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae2b57e51 +2d342912001d34003babd6eaeeeeeee2c48d0000000000000000000000000000 +00000000000000000029abd6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeda9a68260000000000000000 +003870a0b18d60000000000000000000004d7abfd6e2eeeeeeeeeeeeeeeeeeee +e6c456000029000070a5cdc48d3c001922002a87deeeeeeeeeeeeeeeeeeeeeee +eeeeeec89449000000000000000000000000000000000000000000000e151e1e +25292d31354253758db0e6eeeeeeeeeeeeeeeeeeeeeedab08000000000000079 +abd2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecdab948a86829dbad2 +eaeeeee6cd9a000000000000548195b0b4b9c8d6e6eeeeeeeeeeeee6d2b58271 +6b57535f6b6f737e868d98917a000000000000004887d6eaeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6cda00000 +00000000000000000000352700000000000000000000101a00192e1900000000 +000094c8e6eeeeeeeeeeeeeee6bf3c000022000087c4e2c48d56000000000000 +000000000000000049bae2eeeeeeeeeeeae2d6d2cfc7cbd3dadbd3b7a5928177 +673c00001500003c8dc4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2 +c49400000000000000608fb9c0c3ced2daeaeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeee28d4800000000000049c4e6eeeeead2793b0000000000002aabdaeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d56000000000000a5 +d2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeee2c88d7a817a788d8e684e5d554d84acb8845b525d505684 +7c5d4d5c535e94bcc9bfc0bfbfc4deeeeeeeeeeeeeeeeeeee6bf3c0000220000 +87bfdec48d4900001600003267736f6f6f76929db0daeaeeeeeeeeeeeeeeeeee +eeeeeee6a060000000000000080000000000004987bfeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeee6cda5280000000000000000000000000000000000000051 +abcde2eeeeeeeeeeeeeeeeeeeed6ab2900000b00003c80baeeeeeeeeeeeeeacd +a00000000000000060a0e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeede +bf8d000000000000609ac8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecd945600000000 +000000000000000000000000000000000000000087bfe6eeeeeeeeeeeeeeeeee +eeeeeeeee6bf3c000022000087bfdec48d3c002424003c8de6eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeee2bf3c000022000087c4e68d29002418003c +87bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeead6b03b000000000000004ba0bfd2 +e6eeeee2dac47a4200000000000060c8eaeeeeeeeeeeeeeebf87490000000000 +00a0d2eaeeeeeeeeeeeeeeeeeaab70290000000000009acde6eeeeeeeeeeeeee +eeeeeeeeeeeeeeeee2c49a2700000000000000005694bfeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeac8b5a88b7e736b6b6763636363636363636363636363636363606368676b +737e8ba8b5c8eaeeeeeeeeeeeeeeeeeee6bf3c000022000087bfdec48d3c0019 +24002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed679000000 +00000034380000000000004987bfeeeeeeeeeeeeeeeeeeeeeeeeead6b03b0000 +00000000266d9da39e91919bb2bfd2eaeeeeeedeb529000018000087bfdeeeee +eeeee6bf560000000000004994e2eeeeeeeeeeeeeeeeeeeeeeead2a000000000 +00002a70abeeeeeeeeeeeeeeeeeeeeeeeed6b587000000000000001510000000 +0000002770a0deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeee2945627191a0e000000000000000b00000000 +0000000000000000000000080e1a1a285694e2eeeeeeeeeeeeeeeeeee6c44800 +0029000087c4e2c48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeee2d2b57a5b4f3c2e20000000000000498dbfeeeeeeeeeeee +eeeeeeeeeeeeeee2c479516366516f7739000000000000000000003c80b5eee6 +ba29000018000087bfdeeeeeeab0793b0000000000008dbfe2eeeeeeeeeeeeee +eeeeeeeeeeeeeee2945600000000000049badeeeeeeeeeeeeeeaba9466000000 +000000003b79cdeae2a5793900000000000000568ddaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedabf9a +37000018000060a0b84800002b000074774500001600003d8fb0c8e6eeeeeeee +eeeee6dacdc6c0b5a9913400001a00005e92a9946f3400001a00005ca0b4b4b0 +b0b0b0acb0bcbfc9dae2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedaba87000000 +00000087bfe2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6bf2900001e00 +00abbf9400002d000049bbb587000000000000a5d2eae6c89400000000000000 +60a0e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedab07000000000000087bfe2 +e6dabf7c4e00000000000000266094daeeeeeeeeeeeeeeeaba8d540000000000 +00003980cde6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeead68d542500000000000000376f99927500000000000087b2ba8050 +00000000000000000060c8e6eee2ba8000000000000000000000000000000000 +000000000000000000000000000000000000000079badeeeeeeeeeeeeeeeeeee +eeeee6bfa06c0000000000002970abe6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee294480000000000002c0000000000000000000000004987baee +eeeeeeeeeacdb5adb0acb0cde2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeae2dad6d7dadae2eeeeeedab5870000000000006f9abfeaeeeeeeeeeeeeee +eeeeeeeeeeeeeeba8d5600192c002879c8e2eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4b4b4ffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6a57046484237638db5e2eac85600 +00000000000039a0cde6eeeeeed6bfab8a89909aabc8eeeeeeeeeae2dad6cfc7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7cfd3da +e2e6eeeeeeeeeeeeeeeeeeeeead2a50000000000003870a5e2eeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeadaab8a662b1913100b0e12 +1822324c65a5bfd6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae6eaeae6 +eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6e6eee6 +e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffb4b4 +b4f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff5f5f5b4b4b4ffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffb4b4b4f5f5f5ffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5b4 +b4b4ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffb4b4b4f5f5f5ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff5f5f5b4b4b4ffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffb3b3b3f4f4f4fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf4f4f4b3b3b3ffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffacacacd2d2d2d9d9d9d9d9d9d9d9d9d9d9d9 +d9d9d9d9d9d9dadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadad9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9 +d2d2d2acacacffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffa0a0a06b6b6b54545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +54545454545454545454545454545454545454545454545454545415167a1718 +7c17187c17187c17187c17187c17187c17187c17187c17187c17187c17187c17 +187c17187c1f20805c5da2cdcde2ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffff8d8d8d808080d4d4d4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4a7bfdcc6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6 +d8eec6d8eec6d8eec6d8eec6d8eec6d8eebccee87483bc202483cecfe3ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffcccccc5f5f5fe4e4e4f1 +f1f1f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f699bbdcbfd7f0bfd7f0bfd7f0bf +d7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bcd5ef +accbea6079ba50589cfefefeffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeedebf9a380000100000356094d6eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecd68293f4d26 +49b0daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffe +fefe8e8e8e8e8e8ee2e2e2ebebebf2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2 +f1f2f2f1f2f2f1f2f2f1f2eee5e2e2e5eef2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f289 +b1dab3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0ee +b3d0eeb3d0eeb3d0eeaeceed9cc3ea79a6db102486fbfbfbffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d3c3968383c8663295c51 +2779badeeeeeeeeeeeeeeeeeeeeaeaeae2e2e2dbdbdbd3d3d3cbc3bfbcbcc6cd +d6e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6d6c8a58f7c655e54 +50504c5761698da8badaeaeeeeeeeeeeeeeeeeeeeeeeeeeed6baa06d64564448 +484c4c4c4c483b00000000000036484c4c4c4c4844485f6b7cb0d2e6eeeeeeee +eeeeeeeeeee2c494270000080000080808080808080808080808080000120000 +6094c4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffcfcfc7b7b7b8b8b8bd9d9d9e5e5e5ecececececec +ecececececececece4995e2900292900005ec2e8ececdcaf290055c7e8ececec +ececececececece8dcd0b8b4b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8bebe +beb8b8b8b8d0e1e8ecececececececececececececece186000068aad4ececec +ecececececececececececececece4b493867878787070685e553b004886d8ec +ecececececececececececececececececececececececececececececececec +ececececececececececec7dabd9aaccedaaccedaaccedaaccedaaccedaacced +aaccedaaccedaaccedaaccedaaccedaaccedaacceda2c6eb92bde84f91d71129 +8df2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea +e2b57e512d342912001d34003babd6eaeeeeeee2c48d00000000000000000000 +0000000000000000000000000029abd6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeede +ab80500000000000000000000000000000000000000000379ac4deeeeeeeeeee +eeeeeeeed2b08d5b534835393e3e3e3e3e39310000000000002c393e3e3e3e39 +35394e586ba5c8e2eeeeeeeeeeeeeeeeeee6d2b58271614c48484c4c4c4c4c4c +4c4c4c4c4c4c4c48485761739ab5d6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc7a7a7a8f8f8f +d5d5d5e3e3e3e9e9e9e9e9e9e9e9e9e9e9e9e5d9c49c9191919191919191a8c0 +d5d9bc84000047a2b6bcb6b6b1b1b1c0dee9e9dec09100000029292929292929 +292929292929292900000000000000002991c0dee9e9e9e9e9e9e9e5e5e5e2e5 +e5e5d17d29006ea2c0d1cdc8c0bcb6adadbcd9e9e9e9e9e9e9e9e5b19176768a +97977d3a0000006691b6e2e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 +e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e971a4d7a2c7eca2c7ec +a2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7 +ec9cc4eb8bb9e7478ed6143193ebebebfefefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecdab948a86 +829dbad2eaeeeee6cd9a000000000000548195b0b4b9c8d6e6eeeeeeeeeeeee6 +d2b582716b57535f6b6f737e868d98917a000000000000004887d6eaeeeeeeee +eeeeeeeeeeeeeeeede9456000000000000006d81710000000000008fb4ac6425 +0000000000002ab0daeeeeeeeeeeeeeeeeeeeab0876e4d3f3531353935352c00 +00000000002c313539353135424f6f8db5eaeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffcfcfc7d7d7d949494cccccce0e0e0e5e5e5e5e5e5e5e5e5e5e5e5dec1 +9f645c646c6c6c6c6c6475889a885c29003946290000002946525c7bc5dee5e5 +e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5debd81000081dee5e5e5e5e5 +bd8846000000000000000000000000000000000000000000292929293964bdde +e5e5e5e5e5e5e5e5e5e5e5e5ce7529005288b8e5e5e5e5e5e5e5e5e5e5e5e5e5 +e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5 +e5e5e5689fd59bc3eb9bc3eb9bc3eb99c0e799c0e799c0e799c0e799c0e799c0 +e799c0e79bc3eb9bc3eb9bc3eb97c0ea81b3e5488ed6173898ebebebfefefeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee28d4800000000000049c4e6eeeeead2793b0000000000002aab +daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d56000000 +000000a5d2eaeeeeeeeeeeeeeeeeeeeeeeeecda06800000000000087b5dac88d +4900001e000060c8e6eeeedeb53c00000000000070abeaeeeeeeeeeeeeeeeebf +a59471675c585c605c584e00000000000048545c605c585c677494a5c4eeeeee +eeeeeeeee6c460000010000008080808080808080b0b0e121012120b0b0b0808 +08080808000012000060c4e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffcfcfc808080989898c8c8c8d7d7d6e1e1 +e1e1e1e1e1e1e1e1e1e1e1e1da9c6a51455151455179a7a785000028b5dada92 +380080bedde1e1e1e1e1e1e1e1e1e1dab95a00000000000000000000005a92c1 +dabe85000080d2e1e1e1e1e1dad2cac6cacad2d6d2beab9c928c8038000080b5 +d6e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1ce803800000073b9c6c6c6 +c6cee1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 +e1e1e1e1e1e1e1e1e1e1e1e1e1e1e15c97d393bee993bee993bee9526a82080a +0d080a0d080a0d080a0d080a0d4b617893bee993bee993bee98ab9e761a0df4b +8fd71b3f9eebebebfefefeffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6ab2900000b00003c80baeeeeeeee +eeeeeacda00000000000000060a0e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeedebf8d000000000000609ac8eeeeeeeeeeeeeeeeeeeeeeeeeeeee28d3c +000018000060a0eaeeeaab6800002000004994e2eeeeeeeeeeab700000130000 +2a87deeeeeeee6c46000001800001216161a1e1e23261d0000000000001a1a1a +1a161a1e1e1a00001e000060c4e6eeeeead29a8477575050545b5b5c60605854 +46000000000000253b53605c605b585450505a7784a0d2eaeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc8484 +849d9d9dcacacacecececfcfcfcfcfcfcfcfcfcfcfcfcfcfc8a28b8181818181 +8695a69d7b3f5b8bbdc5b26900005b8baabdbdbabdc5cbcfcfcfcfc8a6340024 +95b6c1c5c5c19969242475aac8b27b000075c5cfcfcfcfcfcfcfcfcfcfcfc8aa +7b000034696f6924000075aac5cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc586 +53000000000024344b3f3400000000346fb2c8cfcfcfcfcfcfcfcfcfcfcfcfcf +cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf4e8fd15f9f +e05f9fe05f9fe05e9ede1c2f4205090c05090c05090c192a3b5e9ddd5f9fe05f +9fe05f9fe05fa0e1569add4e92d91e46a3ebebebfefefeffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebf874900 +0000000000a0d2eaeeeeeeeeeeeeeeeeeaab70290000000000009acde6eeeeee +eeeeeeeeeeeeeeeeeeeeeeeee2c49a2700000000000000005694bfeeeeeeeeee +eeeeeeeeeeeeeeeee6c456000029000070b0d6eeeed27000001d00003c8dc4ee +eeeeeeeeeec48d3c002b25004994e2eeeeeeeadab5a2977e777a7e827e4f0000 +00000000000000000b00002068736100001600002183a5badeeeeeeeeeeeeeee +eeeeeeeeba94948d8292b5d2c44800002b00008db4ad87858a8794baeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffcfcfc878787a1a1a1ccccccd1d1d1d4d4d4d4d4d4d4d4d4d4 +d4d4d4d4cd936c554c4c4c405578a6aa8e400000000000000000000000000000 +4c7eafd4d4d4d4cdaa350035a6cad4d4d4d4af78352578b2cdb67e000078cad4 +d4d4d4d4d4d4d4d4d4d4b27e35006ca6d4d4ca7825004084b2d4d4d4d4d4d4d4 +d4d4d4d4d4d4d4ca8e5d00000055a1bbcad4d4d4d4d4d4d4d4c5844000357eaf +d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4 +d4d4d4d4d4d4d45a98d669a7e569a7e569a7e569a7e55e96cd0c141b06090c0b +11175c92c869a7e569a7e569a7e569a7e565a4e35e9edf4f93da214da8ebebeb +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeee6bf560000000000004994e2eeeeeeeeeeeeeeeeeeeeeeead2a0 +0000000000002a70abeeeeeeeeeeeeeeeeeeeeeeeed6b5870000000000000015 +100000000000002770a0deeeeeeeeeeeeeeeeeeee6bf48000029000087bfe2e6 +c89a0000000000008dc4e2eeeeeeeeeed6792900000b00003c8ddeeeeeeeeeee +eeeeeeeeeedea58050000000000000608d982900001b000068532300000b0000 +3cb0d6eeeeeeeeeeeeeeeeeeeedeba870000000000002a7e994800002b00007f +906400000000000070abd2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffcfcfc8a8a8aa5a5a5ccccccd4 +d4d4dadadadadadadadadadadadadad3b76f42374242423726428db7d3dadada +dadad381260075afcfdadadadadadadadadadad3af4200000000000000000000 +00377bb3d3bc8100007bcfdadadadadadadadadadadadac7a64e000000000000 +00006097bcdadadadadadadadadadadadac3a167000057aab7aa6f4200000042 +97b7cbdadadacbaa6f003787cfdadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadadadadadada65a0db74afea74afea74afea74 +afea74afea5078a106090d4c729974afea74afea74afea74afea74afea6eaae6 +63a3e25195da2455adebebebfefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeab0793b0000000000008dbfe2eeeeee +eeeeeeeeeeeeeeeeeeeeeee2945600000000000049badeeeeeeeeeeeeeeaba94 +66000000000000003b79cdeae2a5793900000000000000568ddaeeeeeeeeeeee +eede872900001000005692955600000000000068cdeaeeeeeee6b08046000000 +00000068a5d2eeeeeeeadec8977e580000000000000000000000008dc4dfa568 +29000000000000000079cde6eeeeeeeeeeeeeeeeeeeeeadab547000000000000 +0079d6e6bf3c000022000087bfdba0600000000000000080b0cdeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffc +fcfc8d8d8daaaaaacdcdcdd7d7d7e0e0e0e0e0e0e0e0e0e0e0e0e0d5af382879 +d1e0e0af723872afd1e0e0e0e0e0d57f280079b4d1e0e0e0e0e0e0e0e0e0e0d9 +b9440038a6c5d1d9d5d5bdab9ca6c5dce0c18500007fd5e0e0e0e0e0e0e0e0e0 +e0e0e0e0e0e0e0e0dcc9a62800008bbdd9e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 +dce0e0bd8b380062a6cdbd85000072d5e0e0b97f280072afe0e0e0e0e0e0e0e0 +e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e070 +a9e17fb8f07fb8f07fb8f07fb8f07fb8f07fb8f0577da37fb8f07fb8f07fb8f0 +7fb8f07fb8f07fb8f079b2ec66a5e45498dc285cb3ebebebfefefeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6c894000000 +0000000060a0e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedab0700000000000 +0087bfe2e6dabf7c4e00000000000000266094daeeeeeeeeeeeeeeeaba8d5400 +0000000000003980cde6eeeeeeeed2a5700000000000000000000000005694c4 +dacdb56f3f00000000000000005694deeeeeeeeeeeeedab02900001300006b94 +aa8d3c0050300080bfe2d6b579000000000000002563b5d2e2eeeeeeeeeeeeee +eac8600000000000000029a5d2e6eeeac448000029000087bfdeeeeed2803c00 +000000000000a5d2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffcfcfc919191afafafcfcfcfdadadae7e7e7e7e7e7 +e7e7e7e7e7e7e7dcb547004796a6a07629007cb5d7e7e7e7e7e7dc8329007cb5 +d7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7beab896d4700 +2983d7e7e7e7e7e7e7e7e7e7e7e7e7e7e7dccbb05300000065a0e0e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e0be8900003a90a08929000047533a0000 +29a6cbe0e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e77ab1e889c0f789c0f789c0f789c0f789c0f789c0f7 +89c0f789c0f789c0f789c0f789c0f789c0f789c0f780b8f06ba9e65599dd2b63 +b8ebebebfefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeacdb5adb0acb0cde2eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeae2dad6d7dadae2eeeeeedab5870000000000006f9abfeaeeeeee +eeeeeeeeeeeeeeeeeeeeeeba8d5600192c002879c8e2eeeeeeeeeeeeeaba9a7e +4b3e34303e4b759abae6d6ab0000000000000000005b87b0e2eeeeeeeeeeeeee +eeeeeeeeeeeeead6c4b2947e673200000000000000000000000000002d000000 +00000000003c678bc4daeaeeeeeecdab948e8d8aa5c4dee6c8a0462300000000 +00000080badeeeeeeeeee6d6babec0bac4d6eeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc979797b6b6b6 +d5d5d5e5e5e5efefefefefefefefefefefefefe7c5693c568ea0a0877171a6c9 +e4efefefefefe49b56499bc9e4efefefefefefefefefefefefefefefefefefef +efefefefefcea07a495660718eb6e7efefefefefefefefefefefefefebac712a +2a69a0dfefefefefefefefefefefefefefefefefefefefefefefefefefefdbc5 +ac7a60606969697a87a0cee4efefefefefefefefefefefefefefefefefefefef +efefefefefefefefefefefefefefefefefefefefefefef88bdf397ccff97ccff +97ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff97cc +ff91c7fd7ab4ed61a0e03a71beebebebfefefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea +e6eaeae6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2cdbfbab5b6c4d2 +e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee69a480000000000000035465777 +8697b2c1cedee6eaeee6d29a754b00001f000056c4e6eeeeeeeeeeeeeeeeeeee +eeeeeee6cdab6c594b35313e5e6b8dc8e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffcfcfc9f9f9fb8b8b8dededef0f0f0f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f794c9faa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8 +ffa3d8ffa3d8ffa3d8ffa3d8ff9fd5ff90c6fd6fa5e35178abedededffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6 +dad6dbd6d6e2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffdfdfdc1c1c1979797dadadaf5f5f5fcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfca2d8f9b1e7feb1e7feb1e7feb1e7feb1e7 +feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feace2fe99cdf87b +aae5737e8cfafafaffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffffffff9f9 +f9828282979797dbdbdbf5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5a9def2b7ec +f7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7 +ecf7b7ecf7b2e5f290b3c667707bc0c0c0fdfdfdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffeaeaea9090905f5f5f5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c6c6c6cb9b9b9fbfbfbffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffffffffffffffefefefafafae7 +e7e7d6d6d6d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5dbdbdb +f9f9f9fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +fffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccccccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +a0a0a06b6b6b5454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +545454545454545454545454545454545454545454545415167a17187c17187c +17187c17187c17187c17187c17187c17187c17187c17187c17187c17187c1718 +7c1f20805c5da2cdcde2ffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffff8d8d8d808080d4d4d4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4a7bfdcc6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8 +eec6d8eec6d8eec6d8eec6d8eebccee87483bc202483cecfe3ffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeae2dadedfdae2eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffcccccc5f5f5fe4e4e4f1f1f1f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f699bbdcbfd7f0bfd7f0bfd7f0bfd7f0bfd7 +f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bcd5efaccbea60 +79ba50589cfefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeead2b07e777a7180a5d2e2eeeeeee6d2c4aa5b2200000800002879c8e2eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecdab947f7b778fabbfcfb08d5d5f +62607ea5daeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeee29448273c2b1b3848536b6b7ab5d2e2eeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffefefe8e8e +8e8e8e8ee2e2e2ebebebf2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2 +f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2eee5e2e2e5eef2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2 +f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f289b1dab3d0 +eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3 +d0eeb3d0eeaeceed9cc3ea79a6db102486fbfbfbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeae6e6e6e2e6e6e6 +e6e6e6e6e6e6e6e6e6e6e6e6e6e2dedadbdfdee2eaeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeee2d2c8b6adb1bcc4d2eaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeb5803c000000000000abd6eeeeeee294560000 +00000000000000003c87bfeeeeeeeeeeeeeeeeeeeeeeeee6d6c8a58f7c655e54 +50504c5761698da8badaeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed67900 +00000000003c94a060000023000056a0eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea8d29004c1f00483600000000 +000079daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffcfcfc7b7b7b8b8b8bd9d9d9e5e5e5ecececececececececec +ecececece4995e2900292900005ec2e8ececdcaf290055c7e8ececececececec +ececece8dcd0b8b4b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8bebebeb8b8b8 +b8d0e1e8ecececececececececececececece186000068aad4ececececececec +ecececececececececece4b493867878787070685e553b004886d8ececececec +ecececececececececececececececececececececececececececececececec +ececececececec7dabd9aaccedaaccedaaccedaaccedaaccedaaccedaaccedaa +ccedaaccedaaccedaaccedaaccedaacceda2c6eb92bde84f91d711298df2f2f2 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eee2bf8000000000000000000000000000000000000000000000000000000000 +4994e2eeeeeeeeeeeeeeeeeeeeeeeeeeeac4ab9d918d92b0c4daeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeee6a57946323e324879a5bc80290000160000 +80deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2ba48000000000000 +0018414848454541383835251a122325215e94baeaeeeeeeeeeeeeeeeeeeeede +ab80500000000000000000000000000000000000000000379ac4deeeeeeeeeee +eeeeeeeeeeeeeee2c48d00000000000087b7b64800000000000022384444413e +3e3e393948616d8dcde6eeeeeeeeead2b06655472a2626262626262626262623 +100000080000121a00000000000025465379c4e6eeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffcfcfc7a7a7a8f8f8fd5d5d5e3 +e3e3e9e9e9e9e9e9e9e9e9e9e9e9e5d9c49c9191919191919191a8c0d5d9bc84 +000047a2b6bcb6b6b1b1b1c0dee9e9dec0910000002929292929292929292929 +2929292900000000000000002991c0dee9e9e9e9e9e9e9e5e5e5e2e5e5e5d17d +29006ea2c0d1cdc8c0bcb6adadbcd9e9e9e9e9e9e9e9e5b19176768a97977d3a +0000006691b6e2e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 +e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e971a4d7a2c7eca2c7eca2c7eca2 +c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7ec9cc4eb +8bb9e7478ed6143193ebebebfefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeadecdada4978686868a8a8a8a8a8a8a8a8a8a +8a8a8d8a7e4b00001000002a79b5eeeeeeeeeeeeeeeeeeeeeeeeeeeee2870000 +3f000070b5daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee28d29001918 +002a87bfc48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeba874900000000000012121216121000000000000000003babd6eaeeeeee +eeeeeeeeeeeeeeeede9456000000000000006d81710000000000008fb4ac6425 +0000000000002ab0daeeeeeeeeeeeeeeeeeee6a06000000000000056a1804800 +0000000000000000000022353935313140586587c8e6eeeeeeeee2bf87000000 +00000040545c5c5c5c5c5c543500001a00002d46576464635e5e687c88a0d2e6 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffc +fcfc7d7d7d949494cccccce0e0e0e5e5e5e5e5e5e5e5e5e5e5e5dec19f645c64 +6c6c6c6c6c6475889a885c29003946290000002946525c7bc5dee5e5e5e5e5e5 +e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5debd81000081dee5e5e5e5e5bd884600 +0000000000000000000000000000000000000000292929293964bddee5e5e5e5 +e5e5e5e5e5e5e5e5ce7529005288b8e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5 +e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e568 +9fd59bc3eb9bc3eb9bc3eb99c0e799c0e799c0e799c0e799c0e799c0e799c0e7 +9bc3eb9bc3eb9bc3eb97c0ea81b3e5488ed6173898ebebebfefefeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec85600001500003c87bfeeeeeae2deda +d3cfcfcfcfcfd3d3c37a2700411f0075a7bfd7d3cfcfcfd6dedee6eeeeeeeeee +eeeeeeeeeeeee28d3c002422003c87bfc48d3c001924002a8de2eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeead2a50000000000003c87b5eeeeeeeeeeeeab6800 +00200000499ae6eeeeeeeeeeeeeeeeeeeeeecda06800000000000087b5dac88d +4900001e000060c8e6eeeedeb53c00000000000070abeaeeeeeeeeeee6c49400 +0000000000003c5b0000000000003b38002533003c8dc8eeeeeeeeeeeeeeeeee +eeeeeeeeeeeee2c48d00002400003cbfe6eeeeeeeeeeeeea8d290050240087c8 +c87968776b658dd2e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffcfcfc808080989898c8c8c8d7d7d6e1e1e1e1e1e1 +e1e1e1e1e1e1e1e1da9c6a51455151455179a7a785000028b5dada92380080be +dde1e1e1e1e1e1e1e1e1e1dab95a00000000000000000000005a92c1dabe8500 +0080d2e1e1e1e1e1dad2cac6cacad2d6d2beab9c928c8038000080b5d6e1e1e1 +e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1ce803800000073b9c6c6c6c6cee1e1 +e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 +e1e1e1e1e1e1e1e1e1e1e15c97d393bee993bee993bee9526a82080a0d080a0d +080a0d080a0d080a0d4b617893bee993bee993bee98ab9e761a0df4b8fd71b3f +9eebebebfefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedeba87000000 +00000087bfdeeee2ba2900000000000000000000000000000000000000000000 +00000000000080deeeeeeeeeeeeeeeeeeeeee2943c001922002a87bfc48d3c00 +1924002a8de2eeeeeeeeeeeae2dee6e2deeaeeeeeadaba5e0000000000002c45 +00002000003288a3a55300001f0000569acdeeeeeeeeeeeeeeeeeeeeeee28d3c +000018000060a0eaeeeaab6800002000004994e2eeeeeeeeeeab700000130000 +2a87deeeeeeee2bf600000000000000000001f000000000000758d4800000000 +00000010120e1a25236894c4eeeeeeeeeeeee2c48d0000000000000000000000 +000000006334004b2e006d8561000012000029abd6eaeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc8484849d9d9d +cacacacecececfcfcfcfcfcfcfcfcfcfcfcfcfcfc8a28b81818181818695a69d +7b3f5b8bbdc5b26900005b8baabdbdbabdc5cbcfcfcfcfc8a634002495b6c1c5 +c5c19969242475aac8b27b000075c5cfcfcfcfcfcfcfcfcfcfcfc8aa7b000034 +696f6924000075aac5cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc58653000000 +000024344b3f3400000000346fb2c8cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf +cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf4e8fd15f9fe05f9fe0 +5f9fe05e9ede1c2f4205090c05090c05090c192a3b5e9ddd5f9fe05f9fe05f9f +e05fa0e1569add4e92d91e46a3ebebebfefefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeed6792900000000000079d6eeeeeeeeeae2dedad3cfd3d6d3be6c00 +000000000000007ca7c3d7d3cfcfcfd6dedee6eeeeeeeeeeeeeeeeeeeeeac860 +0000260000609ac8c48d3c001924002a8de2eeeeeee6c460000029000068a5d2 +debf94260035200056b2c3b066340000000000000000000000003cb5e2eeeeee +eeeeeeeeeeeeeeeee6c456000029000070b0d6eeeed27000001d00003c8dc4ee +eeeeeeeeeec48d3c002b25004994e2eeeeead2a5000032000025001b48002986 +c7dadfd6dede8d48000016000032546b6b6b737c8aabbfd6eeeeeeeeeeeee2c4 +8d00000000000085958e340000240000654f002b30001b15001316002a80b5ee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffcfcfc878787a1a1a1ccccccd1d1d1d4d4d4d4d4d4d4d4d4d4d4d4d4d4 +cd936c554c4c4c405578a6aa8e4000000000000000000000000000004c7eafd4 +d4d4d4cdaa350035a6cad4d4d4d4af78352578b2cdb67e000078cad4d4d4d4d4 +d4d4d4d4d4d4b27e35006ca6d4d4ca7825004084b2d4d4d4d4d4d4d4d4d4d4d4 +d4d4d4ca8e5d00000055a1bbcad4d4d4d4d4d4d4d4c5844000357eafd4d4d4d4 +d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4 +d4d4d45a98d669a7e569a7e569a7e569a7e55e96cd0c141b06090c0b11175c92 +c869a7e569a7e569a7e569a7e565a4e35e9edf4f93da214da8ebebebfefefeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeda9a682600000000000079b0d6eeeeeeeeee +eeeeeeeeeeeeeaab793b00000000000000000087bfe2eeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeead6ab00000000000087bfe2c48d3c001924002a8de2e6cd +792800000000000039a5cde6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeb0792a0000 +000000000000005987abdeeeeeeeeeeeeeeeeeeee6bf48000029000087bfe2e6 +c89a0000000000008dc4e2eeeeeeeeeed6792900000b00003c8ddeeeeeeeeeee +eeeeeee6c48700004c000087e2eeeeeeeee28d3c00191e002979b2dfe6e2dfdf +dfe6e6e6eeeeeeeeeeeee2c48d00002400003cbfeac83c00232e002aa49b6000 +000000000000003cb5deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffcfcfc8a8a8aa5a5a5ccccccd4d4d4dada +dadadadadadadadadadadad3b76f42374242423726428db7d3dadadadadad381 +260075afcfdadadadadadadadadadad3af420000000000000000000000377bb3 +d3bc8100007bcfdadadadadadadadadadadadac7a64e00000000000000006097 +bcdadadadadadadadadadadadac3a167000057aab7aa6f420000004297b7cbda +dadacbaa6f003787cfdadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadadadadadada65a0db74afea74afea74afea74afea74af +ea5078a106090d4c729974afea74afea74afea74afea74afea6eaae663a3e251 +95da2455adebebebfefefeffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedec8ab5923000000000000 +00568dbaeeeeeeeeeeeeeeeeeeeeeee2a57039000000000000673d00533b0080 +bfdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6a06000000000000056bfe2ee +c48d4900192700245f480000000000000028a0c8e2eeeeeeeeeeeeeeeeeeeeee +eeeeeeeeead6b0540000000000000000001a0000569ae2eeeeeeeeeeeeeeeeee +eede872900001000005692955600000000000068cdeaeeeeeee6b08046000000 +00000068a5d2eeeeeeeeeeeeeeeeeee2c48700004c000087e2eeeeeeeee29448 +00000000000000000000000000000080deeeeeeeeeeee6c48d00004200005e81 +795800001a00003ca994480000000000004987bfeaeaeaeaeaeaeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc8d8d +8daaaaaacdcdcdd7d7d7e0e0e0e0e0e0e0e0e0e0e0e0e0d5af382879d1e0e0af +723872afd1e0e0e0e0e0d57f280079b4d1e0e0e0e0e0e0e0e0e0e0d9b9440038 +a6c5d1d9d5d5bdab9ca6c5dce0c18500007fd5e0e0e0e0e0e0e0e0e0e0e0e0e0 +e0e0e0e0dcc9a62800008bbdd9e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0dce0e0bd +8b380062a6cdbd85000072d5e0e0b97f280072afe0e0e0e0e0e0e0e0e0e0e0e0 +e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e070a9e17fb8 +f07fb8f07fb8f07fb8f07fb8f07fb8f0577da37fb8f07fb8f07fb8f07fb8f07f +b8f07fb8f079b2ec66a5e45498dc285cb3ebebebfefefeffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6dac4af976349 +2900000000000000000080abc8eeeeeeeeeeeeeeeeeee6d6ba6c350000000000 +000087b5d68d29004c220080bfdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedab580 +000000000000569ac8eeeeeeba874900000000000000000000005cb0d2e6eeee +eeeeeeeeeeeeeeeeeeeeeeeeeedabf9a37000000000000003babd2e6e2eaeae2 +eaeeeeeeeeeeeeeeeeeeeeeeeeeed2a5700000000000000000000000005694c4 +dacdb56f3f00000000000000005694deeeeeeeeeeeeeeeeeeeeeeee2c4870000 +4c000087e2eeeeeeeee28d3c00001b00006da3cfd7d3cfcfd6dedee6eeeeeeee +eeeec89a56002735003774584243292530434b3f000000000000000000000056 +734200352f00569ac8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffcfcfc919191afafafcfcfcfdadadae7e7e7e7e7e7e7e7e7e7 +e7e7e7dcb547004796a6a07629007cb5d7e7e7e7e7e7dc8329007cb5d7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7beab896d47002983d7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7dccbb05300000065a0e0e7e7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e0be8900003a90a08929000047533a000029a6cbe0 +e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e77ab1e889c0f789c0f789c0f789c0f789c0f789c0f789c0f789 +c0f789c0f789c0f789c0f789c0f789c0f780b8f06ba9e65599dd2b63b8ebebeb +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeee6cda00000000000000000003c678bc4daeaeeeeeeeeeeeeeeeeeeee +eeeee2cda5450032310045a0c8dbc8baa03d000027000080bfdeeeeeeeeeeeee +eeeeeeeeeeeeeedab0290000000000002a80d6eeeeeeeeeab5875400001a0000 +3778a0b5deeeeeeeeeeeeeeeeeeeeeeeeeeeeee2cdb57a593700000000000000 +0053b0d2e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaba9a7e +4b3e34303e4b759abae6d6ab0000000000000000005b87b0e2eeeeeeeeeeeeee +eeeeeeeeeeeeeee2c48700004c000087e2eeeeeeeee28d3c002422003c87bfee +eeeeeeeeeeeeeeeeeeeeeeeedeba480000160000498dc4eadabf845f30000000 +0000004884a37e290000000000000000000080badeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffcfcfc979797b6b6b6d5d5d5e5 +e5e5efefefefefefefefefefefefefe7c5693c568ea0a0877171a6c9e4efefef +efefe49b56499bc9e4efefefefefefefefefefefefefefefefefefefefefefef +efcea07a495660718eb6e7efefefefefefefefefefefefefebac712a2a69a0df +efefefefefefefefefefefefefefefefefefefefefefefefefefdbc5ac7a6060 +6969697a87a0cee4efefefefefefefefefefefefefefefefefefefefefefefef +efefefefefefefefefefefefefefefefefefef88bdf397ccff97ccff97ccff97 +ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff91c7fd +7ab4ed61a0e03a71beebebebfefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2d6d2cfcbcedae2eaeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2bf3c0000000000 +0000299ac8e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeac8b0a8a5a1a8c4daeaeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea +dec8845032302e284d7ea0d6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2cdbfbab5b6c4d2 +e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2c48700224c002a87e2eeeeee +eee2944800252b003c8dc4eeeeeeeeeeeeeeeeeeeeeeeeeedeba60264b4c2860 +bfe2eedebf8700002200003494b5d2eeeeeeeeead6a5846d423f4b566f94d6ea +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffc +fcfc9f9f9fb8b8b8dededef0f0f0f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f794 +c9faa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ff +a3d8ffa3d8ffa3d8ff9fd5ff90c6fd6fa5e35178abedededffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffdfdfdc1c1c1979797dadadaf5f5f5fcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfca2d8f9b1e7feb1e7feb1e7feb1e7feb1e7feb1e7fe +b1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feace2fe99cdf87baae5737e +8cfafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffffffff9f9f9828282 +979797dbdbdbf5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5a9def2b7ecf7b7ecf7 +b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ec +f7b2e5f290b3c667707bc0c0c0fdfdfdffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffeaeaea9090905f5f5f5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c6c6c6cb9b9b9fbfbfbffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffffffffffffffefefefafafae7e7e7d6d6 +d6d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5dbdbdbf9f9f9fd +fdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +fffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffffa0a0a06b +6b6b545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545454545454545454545454545454 +5454545454545454545454545454545454545415167a17187c17187c17187c17 +187c17187c17187c17187c17187c17187c17187c17187c17187c17187c1f2080 +5c5da2cdcde2ffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffff8d8d8d808080d4d4d4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4 +f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4a7 +bfdcc6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8eec6d8ee +c6d8eec6d8eec6d8eebccee87483bc202483cecfe3ffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeadab5a8978a9097 +b5c8daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +ffffffffffffffffffffffffffffcccccc5f5f5fe4e4e4f1f1f1f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f699bbdcbfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0 +bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bfd7f0bcd5efaccbea6079ba5058 +9cfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeaab68293e3b1a250019460029a0d2eaeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaea +e6e2e2e6e6e6eeeeeeeeeeeed2b079001f3e002979cdeaeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffefefe8e8e8e8e8e8e +e2e2e2ebebebf2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2 +f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2 +f2f1f2eee5e2e2e5eef2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1 +f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2 +f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f2f2f1f289b1dab3d0eeb3d0ee +b3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0eeb3d0 +eeaeceed9cc3ea79a6db102486fbfbfbffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeae2ded6cfcbc7c7c4c4c4bdbdbdb9b4b4 +b4acacaca5a5a59d9d9d9591898d989fb5c8deeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeae6e6e6e2e6 +e6e6e6e6e6e6e6e6e6e6e6e6eaead68729005a25006b4000563b0080bfe2eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeec48d3c00001a000068cdeaeaa56000002300001f000000 +00000080daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffcfcfc7b7b7b8b8b8bd9d9d9e5e5e5ecececececececececececececec +e4995e2900292900005ec2e8ececdcaf290055c7e8ecececececececececece8 +dcd0b8b4b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8bebebeb8b8b8b8d0e1e8 +ecececececececececececececece186000068aad4ececececececececececec +ecececececece4b493867878787070685e553b004886d8ececececececececec +ecececececececececececececececececececececececececececececececec +ececec7dabd9aaccedaaccedaaccedaaccedaaccedaaccedaaccedaaccedaacc +edaaccedaaccedaaccedaacceda2c6eb92bde84f91d711298df2f2f2ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c0000 +00000000000000000000000000000000000000000000000000000000000049c4 +e6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeee2bf800000000000000000000000000000000000000000000000000000 +000000006387abe2eeeec89a68001a1200000000000000000000000000000000 +0000121a006094c4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c002424003c8de2ee +eeeadebf5e0000000000004c74aabfcde6eeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffcfcfc7a7a7a8f8f8fd5d5d5e3e3e3e9e9 +e9e9e9e9e9e9e9e9e9e9e5d9c49c9191919191919191a8c0d5d9bc84000047a2 +b6bcb6b6b1b1b1c0dee9e9dec091000000292929292929292929292929292929 +00000000000000002991c0dee9e9e9e9e9e9e9e5e5e5e2e5e5e5d17d29006ea2 +c0d1cdc8c0bcb6adadbcd9e9e9e9e9e9e9e9e5b19176768a97977d3a00000066 +91b6e2e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 +e9e9e9e9e9e9e9e9e9e9e9e9e9e9e971a4d7a2c7eca2c7eca2c7eca2c7eca2c7 +eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7eca2c7ec9cc4eb8bb9e747 +8ed6143193ebebebfefefeffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeee2d6bfb6b0a1a1a5adadb1b5b5b0a49b949594a1bcc1c07e +3a0000000000000087b5d6eeeeeeeeeeeeeeeeeeeeeeeedec8baa9a8adb5c8de +eeeeeee6dad6cfcfd2d6e2eaeeeeeeeadecdada4978686868a8a8a8a8a8a8a8a +8a8a8a8a8d8a7e4b00001d0000498dc4eeeeeeeeeeeec48d4900000e00001b50 +5c605c5c5c5c5c5c605c542700001000003c87bfeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eec48d3c001924002a8de6eeeeeeeeeeeadecdbcbabfbfc8deeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc7d7d +7d949494cccccce0e0e0e5e5e5e5e5e5e5e5e5e5e5e5dec19f645c646c6c6c6c +6c6475889a885c29003946290000002946525c7bc5dee5e5e5e5e5e5e5e5e5e5 +e5e5e5e5e5e5e5e5e5e5e5e5debd81000081dee5e5e5e5e5bd88460000000000 +00000000000000000000000000000000292929293964bddee5e5e5e5e5e5e5e5 +e5e5e5e5ce7529005288b8e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5 +e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5689fd59bc3 +eb9bc3eb9bc3eb99c0e799c0e799c0e799c0e799c0e799c0e799c0e79bc3eb9b +c3eb9bc3eb97c0ea81b3e5488ed6173898ebebebfefefeffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +e6bf29000015000054533000000000000070a5cdeeeeeeeeeeeedabf9a4e3b53 +4d497e8f4800000000000068cdeaeebf872a000010000056c4e6eeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec856000023000060a0cdeeeeeeee +eeeec48d3c002425003c94e6eeeeeeeeeeeeeeeeeeeeea943c001922002a87bf +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeec48d49000020000061b7d2deeaeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffcfcfc808080989898c8c8c8d7d7d6e1e1e1e1e1e1e1e1e1e1 +e1e1e1e1da9c6a51455151455179a7a785000028b5dada92380080bedde1e1e1 +e1e1e1e1e1e1e1dab95a00000000000000000000005a92c1dabe85000080d2e1 +e1e1e1e1dad2cac6cacad2d6d2beab9c928c8038000080b5d6e1e1e1e1e1e1e1 +e1e1e1e1e1e1e1e1e1e1e1e1e1ce803800000073b9c6c6c6c6cee1e1e1e1e1e1 +e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1 +e1e1e1e1e1e1e15c97d393bee993bee993bee9526a82080a0d080a0d080a0d08 +0a0d080a0d4b617893bee993bee993bee98ab9e761a0df4b8fd71b3f9eebebeb +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeee6c456000000000000000000000070a0c8eeeeee +eeeeeeeeeeeee2c89a000000000000569291000000000000499ac8ba802a0027 +1b00499ae6eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedeba8700 +00000000008dc4e2eeeeeeeeeeeec48d3c001924002a8de2eeeeeeeeeeeeeeee +eeeee28d3c002422003c87bfeeeeeed6b59a6d5c534141454545454545454545 +454545454545454545454545454545454141506b7594d2e6eec48d5600000000 +0000000000000034718aa8d2deeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffcfcfc8484849d9d9dcacacace +cececfcfcfcfcfcfcfcfcfcfcfcfcfcfc8a28b81818181818695a69d7b3f5b8b +bdc5b26900005b8baabdbdbabdc5cbcfcfcfcfc8a634002495b6c1c5c5c19969 +242475aac8b27b000075c5cfcfcfcfcfcfcfcfcfcfcfc8aa7b000034696f6924 +000075aac5cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc5865300000000002434 +4b3f3400000000346fb2c8cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf +cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf4e8fd15f9fe05f9fe05f9fe05e +9ede1c2f4205090c05090c05090c192a3b5e9ddd5f9fe05f9fe05f9fe05fa0e1 +569add4e92d91e46a3ebebebfefefeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedeba3c0000180000 +446988abbad2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeab680000000000006faca5 +a29d97a2c4dad27900001e00003c8dc4eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeed6792900000800002a79d6eeeeeeeeeeeeeeeec48d3c001924 +002a8de2eeeeeeeeeeeeeeeeeeeee28d3c002422003c87bfeeeeeecda579241d +1e0e0e121616161616161616161616161616161616161616161616120e121b23 +3970c4e6eec48d490000200000464b36000000000000000000004679abe6eeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffc +fcfc878787a1a1a1ccccccd1d1d1d4d4d4d4d4d4d4d4d4d4d4d4d4d4cd936c55 +4c4c4c405578a6aa8e4000000000000000000000000000004c7eafd4d4d4d4cd +aa350035a6cad4d4d4d4af78352578b2cdb67e000078cad4d4d4d4d4d4d4d4d4 +d4d4b27e35006ca6d4d4ca7825004084b2d4d4d4d4d4d4d4d4d4d4d4d4d4d4ca +8e5d00000055a1bbcad4d4d4d4d4d4d4d4c5844000357eafd4d4d4d4d4d4d4d4 +d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d45a +98d669a7e569a7e569a7e569a7e55e96cd0c141b06090c0b11175c92c869a7e5 +69a7e569a7e569a7e565a4e35e9edf4f93da214da8ebebebfefefeffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeedeb580000000000000abdaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeee2d6d2d3cfd2dee6eeeeeeeeeeeedeba8700000000000094c8e6eeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeda9a682600000000000080b5daeeeeee +eeeeeeeeeeeec48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeee28d3c002422 +003c87bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c001924002a8de6eeeedecdba +774a2e383732689ac8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffcfcfc8a8a8aa5a5a5ccccccd4d4d4dadadadadada +dadadadadadadad3b76f42374242423726428db7d3dadadadadad381260075af +cfdadadadadadadadadadad3af420000000000000000000000377bb3d3bc8100 +007bcfdadadadadadadadadadadadac7a64e00000000000000006097bcdadada +dadadadadadadadadac3a167000057aab7aa6f420000004297b7cbdadadacbaa +6f003787cfdadadadadadadadadadadadadadadadadadadadadadadadadadada +dadadadadadadadadadada65a0db74afea74afea74afea74afea74afea5078a1 +06090d4c729974afea74afea74afea74afea74afea6eaae663a3e25195da2455 +adebebebfefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeede873c00000b00002a80daeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedaba56000000 +0000004994e2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedec8ab592300000000 +000000568dbaeeeeeeeeeeeeeeeeeeeeeeeec48d560000000000000000000000 +000000000000000000000000004987bfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeec48d3c +001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc8d8d8daaaaaa +cdcdcdd7d7d7e0e0e0e0e0e0e0e0e0e0e0e0e0d5af382879d1e0e0af723872af +d1e0e0e0e0e0d57f280079b4d1e0e0e0e0e0e0e0e0e0e0d9b9440038a6c5d1d9 +d5d5bdab9ca6c5dce0c18500007fd5e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 +dcc9a62800008bbdd9e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0dce0e0bd8b380062 +a6cdbd85000072d5e0e0b97f280072afe0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 +e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e070a9e17fb8f07fb8f0 +7fb8f07fb8f07fb8f07fb8f0577da37fb8f07fb8f07fb8f07fb8f07fb8f07fb8 +f079b2ec66a5e45498dc285cb3ebebebfefefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6a5703a0000000000 +0080b5daeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeacdb08a240000000000000056badeeeeeeeeeeeeeeeeeeeeee6ded6bea994 +63492900000000000000000080abcdeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebf87 +2a00000b000026545c605c5c5c5c5c5c605c542700000b00002a80bfeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeec48d3c001924002a8de2eeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +fffffffcfcfc919191afafafcfcfcfdadadae7e7e7e7e7e7e7e7e7e7e7e7e7dc +b547004796a6a07629007cb5d7e7e7e7e7e7dc8329007cb5d7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7d7beab896d47002983d7e7e7e7e7e7 +e7e7e7e7e7e7e7e7e7dccbb05300000065a0e0e7e7e7e7e7e7e7e7e7e7e7e7e7 +e7e7e7e7e7e7e7e0be8900003a90a08929000047533a000029a6cbe0e7e7e7e7 +e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7 +e7e7e77ab1e889c0f789c0f789c0f789c0f789c0f789c0f789c0f789c0f789c0 +f789c0f789c0f789c0f789c0f780b8f06ba9e65599dd2b63b8ebebebfefefeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea +d2793b00000000000000498dbaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeac8ab8a482b0000000000000000538dcde6eeeeeeeeeeeeee +eeeeeeeeeeeee2c89a000000000000000000486992c8deeaeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeee2d6c4b1acadbabfd2eeeeeeeeeeeeeeeeeeeeeeeeee +e6e2e2dfdfe2e6eaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeebf872a000016000080deee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccfffffffffffffffffffffffffcfcfc979797b6b6b6d5d5d5e5e5e5efef +efefefefefefefefefefefe7c5693c568ea0a0877171a6c9e4efefefefefe49b +56499bc9e4efefefefefefefefefefefefefefefefefefefefefefefefcea07a +495660718eb6e7efefefefefefefefefefefefefebac712a2a69a0dfefefefef +efefefefefefefefefefefefefefefefefefefefefefdbc5ac7a60606969697a +87a0cee4efefefefefefefefefefefefefefefefefefefefefefefefefefefef +efefefefefefefefefefefefefefef88bdf397ccff97ccff97ccff97ccff97cc +ff97ccff97ccff97ccff97ccff97ccff97ccff97ccff97ccff91c7fd7ab4ed61 +a0e03a71beebebebfefefeffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeec4a0795c6761709abfeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed6b587352d3b29305ca5bfd2 +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2d6d2cfcbcedae2eaeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eedec8ba9f98a0a8b5cdeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccfffffffffffffffffffffffffcfcfc9f9f +9fb8b8b8dededef0f0f0f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f794c9faa3d8 +ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3d8ffa3 +d8ffa3d8ff9fd5ff90c6fd6fa5e35178abedededffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffff +fffffffffffffffdfdfdc1c1c1979797dadadaf5f5f5fcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc +fcfcfcfcfcfcfca2d8f9b1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1e7feb1 +e7feb1e7feb1e7feb1e7feb1e7feb1e7feace2fe99cdf87baae5737e8cfafafa +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeccccccfffffffffffffffffffffffffffffff9f9f9828282979797db +dbdbf5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5 +f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5a9def2b7ecf7b7ecf7b7ecf7b7 +ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b7ecf7b2e5f2 +90b3c667707bc0c0c0fdfdfdffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccceeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffff +ffffffffffeaeaea9090905f5f5f5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c +5c5c5c5c5c5c5c5c5c5c5c5c6c6c6cb9b9b9fbfbfbffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccff +fffffffffffffffffffffffffffffffffffefefefafafae7e7e7d6d6d6d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5 +d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5dbdbdbf9f9f9fdfdfdffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffffffffffff +fffffffefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +cccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffcccccceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +ccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffcccccceeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +eeeeeeeeeeeeeeeeeeeeeeeeccccccffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffcccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffccccccffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +ccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffccccccffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffccccccffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffccccccffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffccccccffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffefefefcfcfcf9f9f9f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6 +f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f9f9f9fcfc +fcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +ccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffcfcfce8e8e89191916a +6a6a4f4f4f474747474747474747474747474747474747474747474747474747 +4747474747474747474747474747474747474747474747474747474747474747 +474747474747474f4f4f6b6b6b919191e8e8e8fcfcfcffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffccccccffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa +fafa9d9d9d575757939393cdcdcdf2f2f2fefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe +fefefefefefefefefefefefefefefefefefefef2f2f2cdcdcd9393935656569c +9c9cfafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffccccccffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffff9f9f9868686737373d8d8d8fcfcfcfefefeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +fefefdfdfdfbfbfbd4d4d46f6e6e868686f9f9f9ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffccccccffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffafafa9b9b9b636363e5e5e5f6f6f6 +f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f5ede4e4edf9f9f9f9f9f9f9f9f9f9 +f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8f8f7f5f5f5f3f2f3e0e0e06666669d9d9d +fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcdbdbdb +565656bbbbbbebebebf3f3f3f4f4f4f5f5f5f5f6f5eacf9f2c002c3e3e3e3e3e +3e3e3e4b5959594b3e3e3e3e3e3e3e3e000063c6eaf6f6f6f6f6f6f6e5c07d00 +007de1f6f6f6f6f2e5e1ddd9d4c69f8b6c3e5992e1f6f6f5f5f5f4f4f4f3f3f3 +f0f0f0e6e6e7b8b8b8585858dbdbdbfcfcfcffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff3f3f38b8b8b878787d3d2d3e3e3e3eeeeeeeff0f0f1f1f1f2f2 +f2f2eaddccc7c7bdbdbdbdbdc2bdae890000008fb3bdc2bdbdbdbdbdc2c7d0e6 +eef2f2e6c23d0000000000000000000000578fae8f4a0000003d6172829da8b3 +ddeef2f1f1f1f0f0f0efefefecececdededed1d1d28888888e8e8ef3f3f3ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffefefee8e8e8707070b2b2b2d5d5d5dada +dadfe0dfe7e6e6ecececeeeeedeeeeeeeee6bf49000049565649492a0000002a +3c495656490000008dc4e2eeeeeeeeeeeec487000056a5ded29a000079daeee6 +8d3c49bfeeeeeeeeeeeeeeeeeeeeeeededeeebebebe4e4e4ddddddd9d9d9d6d6 +d6b3b3b3727272e8e8e8fefefeffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffccccccffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfddbdb +db727272ccccccd9d9d9dddddddfdfdfe1e1e1e1e1e1e1e1e2e2e2e2e2d7b145 +00519dacb1ac9d7a000000809dacb1ac9d51000080b6d3e2e2e2cbac92633800 +0000006b63380000287a929273453863808d9292928d868092acc7e2e1e2e0e0 +e0e0e0e0dedededcdcdcdadadacdcdcd757575dbdbdbfdfdfdffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +ccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffafafacdcdcd808080d7d7d7dddddde0e0e0e2e2e2e3e3e3e5 +e5e5e6e6e6e6e6e6e6dbb94600468295958f82650000006d888f959582460000 +82b9d6e6e6e6d6c6b4a0a5afa088530000469aaaaaaaafaa7c463965827c3900 +00295c759ab4cae6e6e6e4e4e4e3e3e3e2e2e2e0e0e0ddddddd7d7d7828282cd +cdcdfafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffccccccffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffff8f8f8c8c8c88b8b8bd6d6d6e0 +e0e0e4e4e4e6e6e6e8e8e8e9e9e9eaeaeaeaeaeaeadfb73b00006f7e7e6f5e48 +0000003b54676f675e00000084bcdaeaeaeae2c99d3b00293b29000000003b3b +296f9db28b545ec0eae697290084c0e2eaeaeaeaeaeae8e8e8e8e8e8e6e6e6e4 +e4e4e0e0e0d6d6d68d8d8dc8c8c8f8f8f8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffccccccffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa +fafacdcdcd8d8d8dcdcdcde3e3e3e7e7e7eaeaeaecececeeeeeeefefefefefef +efebd7a08e7a492a5695a68e2a0056b6ced7d7d7c9956960a6cee7efefefefeb +e7dfd7bb60000000002a7a9bb6dbdfc9690049c0e7e4952a0080c0dfefefefee +eeeeeeeeeeecececeaeaeae8e8e8e4e4e4cecece8f8f8fcdcdcdfafafaffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffccccccffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffdfdfddbdbdb898989c0c0c0e7e7e7ecececefefef +f1f1f1f3f3f3f4f4f4f3f3f3f3f3f3f3f3f3be8a4a000000004a90e3f3f3f3f3 +f3f3f3f3f3f3f3f3f3f3f3f3e7af7c3d0000000000000000008aa3902b0058cd +efe7972b0083c3e3f3f3f3f3f3f3f2f2f2f1f1f1efefefececece8e8e8c2c2c2 +8b8b8bdbdbdbfdfdfdffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffefefee8e8e8979797 +b1b1b1e0e0e0efefeff4f4f4f7f7f7f9f9f9fafafafaf6eee1d7ceb49c863f00 +00002c4c3f2c000000005a768daeb9c3d3d7dce9f2faf2d39c000064b4b48600 +4c9cd7c9a20000003f86c3fafaf28d2c0086c9e9fafafaf9f9f9f8f8f8f7f7f7 +f4f4f4f1f1f1e2e2e2b5b5b5979797e8e8e8fefefeffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff4f4f4c0c0c08e8e8ed0d0d0f1f1f1fafafafdfdfdffffffffff +fff7dba5000000004e70a5bdd2f7fffffffff7dbcdbd978170402d0000000089 +cdeefffffffbfffff7d797004ea5d2bd894070abf3fffffffff39f4e2d90d2f3 +fffffffffffffffffffdfdfdfafafaf2f2f2d3d3d3909090c0c0c0f4f4f4ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffcfcfce5e5e59f9f9f9c9c9ce3e3 +e3fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffafafae6e6e69f9f +9f9f9f9fe5e5e5fcfcfcffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffccccccffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffafafadcdcdc979797969696e8e8e8f8f8f8fcfcfcfefefeffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfc +fcf8f8f8eaeaea989898979797dcdcdcfafafaffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +ccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffff9f9f9dcdcdca0a0a0767676a4a4a4d4 +d4d4f4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffff4f4f4d4d4d4a5a5a5767676a0a0a0dcdcdcf9f9f9ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffccccccffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa +fafae6e6e6c0c0c09898987a7a7a6c6c6c696969696969696969696969696969 +6969696969696969696969696969696969696969696969696969696969696969 +696969696969696969696969696969696969696c6c6c7a7a7a989898c0c0c0e6 +e6e6fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffccccccffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffdfdfdf5f5f5e9e9e9dcdcdccfcfcfc8c8c8 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7 +c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c8c8c8cf +cfcfdcdcdce9e9e9f5f5f5fdfdfdffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffccccccffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefdfdfdfafafaf8f8f8f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 +f7f7f7f7f7f7f7f7f8f8f8fafafafdfdfdfefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffccccccffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffccccccffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffccccccffffffffffffffffffffffffffffffffffffffffffffffffffffffcc +ccccffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffccccccffffffffffffffffffffffffffffffff +ffffffffffffffffffffffccccccffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffccccccffffffff +ffffffffffffffffffffffffffffffffffffffffffffffccccccffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffccccccffffffffffffffffffffffffffffffffffffffffffffffff +ffffffccccccffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffccccccffffffffffffffffffffffff +ffffffffffffffffffffffffffffffccccccffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcccccc +ffffffffffffffffffffffffffffffffffffffffffffffffffffffccccccffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffccccccffffffffffffffffffffffffffffffffffffffff +ffffffffffffffcccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ccccccccccccccccccccccccccccccccccccccccccccccccffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffff> + +end +grestore +showpage +%%Trailer +%%EOF From svnnotify ¡÷ sourceforge.jp Mon Nov 10 03:47:53 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 03:47:53 +0900 Subject: [pal-cvs 3575] [1310] kakikake Message-ID: <1226256473.680889.21344.nullmailer@users.sourceforge.jp> Revision: 1310 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1310 Author: takakura Date: 2008-11-10 03:47:53 +0900 (Mon, 10 Nov 2008) Log Message: ----------- kakikake Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:43:11 UTC (rev 1309) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:47:53 UTC (rev 1310) @@ -104,7 +104,7 @@ \subsection{ÀßÄê} \begin{figure}[h] \begin{center} -\epsfile{file=0020.eps,width=1.0\hsize} +\includegraphics[width=8cm,clip]{PAL0020.eps} \caption{} \label{fig:VFS Portlet configuration} \end{center} @@ -129,13 +129,6 @@ ¤Ê¤ª¡¢¸½»þÅÀ¤Ç¤Ï¶õÇò¤ò´Þ¤à¥Ñ¥¹¤ò»ÈÍѤ¹¤ë¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É¤¬Àµ¾ï¤Ë¹Ô¤ï¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¤¤¤ï¤æ¤ë 8.3 ·Á¼°¤Îû¤¤¥Õ¥¡¥¤¥ë¡¦¥Õ¥©¥ë¥À̾¤ò»ÈÍѤ¹¤ë¤ÈÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \subsection{´ðËÜŪ¤ÊÁàºî} -\begin{figure}[h] -\begin{center} -\epsfile{file=0015.eps,width=1.0\hsize} -\caption{} -\label{fig:VFS Portlet} -\end{center} -\end{figure} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤È¡¢¡Öɸ½à¤ÎURI¡×¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¥µ¥¤¥º¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¥Õ¥¡¥¤¥ë¡¢¥µ¥¤¥º¤Îɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤¬¥Õ¥©¥ë¥À¤Ç¤¹¡£ ¤Ê¤ª¡¢OS¾å¤Ç¥Õ¥¡¥¤¥ë¤òÁàºî¤¹¤ë¸¢¸Â¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤ò¼Â¹Ô¤¹¤ë¥æ¡¼¥¶¡¼¤Î¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ @@ -154,24 +147,10 @@ ¤Ê¤ª¡¢¥Õ¥©¥ë¥À¤òºï½ü¤·¤¿¾ì¹ç¡¢¤½¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤µ¤ì¤Þ¤¹¡£ \subsubsection{¥Õ¥©¥ë¥À¤òºîÀ®¤¹¤ë} -\begin{figure}[h] -\begin{center} -\epsfile{file=0017.eps,width=1.0\hsize} -\caption{} -\label{fig:VFS Portlet making folder} -\end{center} -\end{figure} ¡Ö¥Õ¥©¥ë¥À¤ÎºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥©¥ë¥À¤ÎºîÀ®²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï¡¢¡Ö¥Õ¥©¥ë¥À̾¡×¤òÆþÎϤ¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥©¥ë¥À¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤ËºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \subsubsection{¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë} -\begin{figure}[h] -\begin{center} -\epsfile{file=0019.eps,width=1.0\hsize} -\caption{} -\label{fig:VFS Portlet upload} -\end{center} -\end{figure} ¡Ö¥¢¥Ã¥×¥í¡¼¥É¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï¡¢¡Ö»²¾È...¡×¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Ê¤ª¡¢°ìÅ٤˥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Ï 1 ¸Ä¤Î¤ß¤Ç¤¹¡£ From svnnotify ¡÷ sourceforge.jp Mon Nov 10 03:58:15 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 03:58:15 +0900 Subject: [pal-cvs 3576] [1311] kakikake Message-ID: <1226257095.855393.32128.nullmailer@users.sourceforge.jp> Revision: 1311 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1311 Author: takakura Date: 2008-11-10 03:58:15 +0900 (Mon, 10 Nov 2008) Log Message: ----------- kakikake Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:47:53 UTC (rev 1310) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:58:15 UTC (rev 1311) @@ -56,7 +56,6 @@ \subsubsection{µ­»ö¤òÅê¹Æ¤¹¤ë} TBD - \subsubsection{µ­»ö¤ËÂФ·¤ÆÊÖ¿®¤¹¤ë} TBD @@ -81,11 +80,24 @@ ºîÀ®¤·¤¿¥«¥Æ¥´¥ê¤ä¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÏÅÐÏ¿¼Ô°Ê³°¤¬»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢¶¦Í­¤Î¥«¥Æ¥´¥ê¤Ë¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òÅÐÏ¿¤·¤¿¾ì¹ç¡¢ÅÐÏ¿¼Ô°Ê³°¤âÍøÍѤǤ­¤ë¶¦Í­¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \section{»È¤¤Êý} -TBD +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -\subsection{¥«¥Æ¥´¥ê¤ÎÄɲÃ} -TBD +\subsection{´ðËÜŪ¤ÊÁàºî} +\subsubsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òºîÀ®¤¹¤ë} +¥Ö¥Ã¥¯¥Þ¡¼¥¯ºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +\begin{itemize} +\item ̾Á° : ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Ëɽ¼¨¤µ¤ì¤ë̾Á°¤òÆþÎϤ·¤Þ¤¹¡£ +\item URL : ³«¤­¤¿¤¤¥µ¥¤¥È¤ÎURL¤òµ­½Ò¤·¤Þ¤¹¡£ +\item ¥á¥â : ¥á¥â¤òµ­½Ò¤·¤Þ¤¹¡£ +\item ¥«¥Æ¥´¥ê : ¥«¥Æ¥´¥ê¤òÁªÂò¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̤ʬÎà¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¥«¥Æ¥´¥ê¤òºîÀ®¤·¤ÆÅÐÏ¿¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +\item ¼ïÎà : ¿·¤·¤¤¥¦¥¤¥ó¥É¥¦¤Þ¤¿¤Ï¥¿¥Ö¤Ç³«¤¯¡Ê¥Ö¥é¥¦¥¶¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡Ë¤«¡¢Æ±¤¸¥¦¥¤¥ó¥É¥¦¤Ç³«¤¯¤«ÁªÂò¤·¤Þ¤¹¡£ +\end{itemize} + +\subsubsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò³«¤¯} +¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Î¹àÌÜ̾¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢ºîÀ®»þ¤ËÀßÄꤷ¤¿Ä̤ê¤Ë¥¦¥¤¥ó¥É¥¦¤¬³«¤­¤Þ¤¹¡£ + + \chapter{VFS} \section{¤Ï¤¸¤á¤Ë} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ @@ -102,13 +114,6 @@ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \subsection{ÀßÄê} -\begin{figure}[h] -\begin{center} -\includegraphics[width=8cm,clip]{PAL0020.eps} -\caption{} -\label{fig:VFS Portlet configuration} -\end{center} -\end{figure} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÏÇÛÈ÷¤·¤¿Ä¾¸å¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¾õÂ֤ˤʤäƤ¤¤ë¤¿¤á¡¢ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Configulator ¥Ý¡¼¥È¥ì¥Ã¥È¤«¤éÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌܤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ ¤Ê¤ª¡¢URI¤Î»ØÄê¹àÌܤǡ¢__USERNAME__¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÑ¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ From svnnotify ¡÷ sourceforge.jp Mon Nov 10 04:04:12 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 04:04:12 +0900 Subject: [pal-cvs 3577] [1312] Message-ID: <1226257452.786589.5297.nullmailer@users.sourceforge.jp> Revision: 1312 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1312 Author: takakura Date: 2008-11-10 04:04:12 +0900 (Mon, 10 Nov 2008) Log Message: ----------- Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 18:58:15 UTC (rev 1311) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-09 19:04:12 UTC (rev 1312) @@ -116,7 +116,7 @@ \subsection{ÀßÄê} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÏÇÛÈ÷¤·¤¿Ä¾¸å¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¾õÂ֤ˤʤäƤ¤¤ë¤¿¤á¡¢ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Configulator ¥Ý¡¼¥È¥ì¥Ã¥È¤«¤éÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -ÀßÄê¹àÌܤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ ¤Ê¤ª¡¢URI¤Î»ØÄê¹àÌܤǡ¢__USERNAME__¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÑ¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +ÀßÄê¹àÌܤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ ¤Ê¤ª¡¢URI¤Î»ØÄê¹àÌܤǡ¢¡Ö\verb|__USERNAME__|¡×¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÑ¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \begin{itemize} \item »ÈÍÑ : ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»ÈÍѤòµö²Ä¤¹¤ë¤«Èݤ«¤ÎÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤³¤òµö²Ä¤·¤Ê¤¤¾ì¹ç¡¢¤¹¤Ù¤Æ¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ \item ɸ½à¤ÎURI : ½é´ü¤Ëɽ¼¨¤µ¤ì¤ë¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ From svnnotify ¡÷ sourceforge.jp Mon Nov 10 11:39:58 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 11:39:58 +0900 Subject: [pal-cvs 3578] [1313] excluded null for deleted_by. Message-ID: <1226284798.161418.2672.nullmailer@users.sourceforge.jp> Revision: 1313 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1313 Author: shinsuke Date: 2008-11-10 11:39:57 +0900 (Mon, 10 Nov 2008) Log Message: ----------- excluded null for deleted_by. Modified Paths: -------------- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java -------------- next part -------------- Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-09 19:04:12 UTC (rev 1312) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-10 02:39:57 UTC (rev 1313) @@ -69,6 +69,7 @@ // setup + cb.query().setDeletedBy_IsNull(); cb.query().setGroupId_Equal(groupId); return groupInfoBhv.selectEntity(cb); } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-09 19:04:12 UTC (rev 1312) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-10 02:39:57 UTC (rev 1313) @@ -68,6 +68,7 @@ // setup + cb.query().setDeletedBy_IsNull(); cb.query().setRoleId_Equal(roleId); return roleInfoBhv.selectEntity(cb); } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java 2008-11-09 19:04:12 UTC (rev 1312) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java 2008-11-10 02:39:57 UTC (rev 1313) @@ -56,6 +56,7 @@ // setup + cb.query().setDeletedBy_IsNull(); cb.query().setUserId_Equal(userId); return userInfoBhv.selectEntity(cb); } From svnnotify ¡÷ sourceforge.jp Mon Nov 10 11:41:03 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 11:41:03 +0900 Subject: [pal-cvs 3579] [1314] excluded null for deleted_by. Message-ID: <1226284863.374432.4117.nullmailer@users.sourceforge.jp> Revision: 1314 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1314 Author: shinsuke Date: 2008-11-10 11:41:03 +0900 (Mon, 10 Nov 2008) Log Message: ----------- excluded null for deleted_by. Modified Paths: -------------- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java -------------- next part -------------- Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-10 02:39:57 UTC (rev 1313) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-10 02:41:03 UTC (rev 1314) @@ -31,6 +31,7 @@ private void initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); UserInfo userInfo = userInfoBhv.selectEntity(cb); if (userInfo == null) { Timestamp now = new Timestamp(new Date().getTime()); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-10 02:39:57 UTC (rev 1313) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-10 02:41:03 UTC (rev 1314) @@ -37,6 +37,7 @@ private void initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); UserInfo userInfo = userInfoBhv.selectEntity(cb); if (userInfo == null) { Timestamp now = new Timestamp(new Date().getTime()); From svnnotify ¡÷ sourceforge.jp Mon Nov 10 15:33:41 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 15:33:41 +0900 Subject: [pal-cvs 3580] [1315] fixed English Mode Error Message-ID: <1226298821.737464.5129.nullmailer@users.sourceforge.jp> Revision: 1315 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1315 Author: takakura Date: 2008-11-10 15:33:41 +0900 (Mon, 10 Nov 2008) Log Message: ----------- fixed English Mode Error Modified Paths: -------------- timecard/trunk/src/main/resources/application.properties -------------- next part -------------- Modified: timecard/trunk/src/main/resources/application.properties =================================================================== --- timecard/trunk/src/main/resources/application.properties 2008-11-10 02:41:03 UTC (rev 1314) +++ timecard/trunk/src/main/resources/application.properties 2008-11-10 06:33:41 UTC (rev 1315) @@ -72,7 +72,7 @@ labels.to_next=Next labels.to_back=Back -labels.confirm_time_card=Confirmation of edit at time +labels.confirm_timecard=Confirmation of edit at time labels.date=Date labels.working_status=Working status From svnnotify ¡÷ sourceforge.jp Mon Nov 10 16:46:05 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 16:46:05 +0900 Subject: [pal-cvs 3581] [1316] upload draft file Message-ID: <1226303165.835960.12450.nullmailer@users.sourceforge.jp> Revision: 1316 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1316 Author: takakura Date: 2008-11-10 16:46:05 +0900 (Mon, 10 Nov 2008) Log Message: ----------- upload draft file Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-10 06:33:41 UTC (rev 1315) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-10 07:46:05 UTC (rev 1316) @@ -42,15 +42,7 @@ \section{»È¤¤Êý} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -\subsection{µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë} -¤³¤³¤Ç¤Ï¡¢µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë¤¿¤á¤Î¥«¥Æ¥´¥ê¤ÎÄɲäÎÊýË¡¤È¡¢¥«¥Æ¥´¥ê¤Î¥¢¥¯¥»¥¹¸¢¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ - -\subsubsection{¥«¥Æ¥´¥ê¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} -¥«¥Æ¥´¥ê¤Ï¡¢ - -\subsubsection{¥«¥Æ¥´¥êÊ̤Υ¢¥¯¥»¥¹¸¢¤ÎÀßÄê} - -\subsection{µ­»ö¤ÎÅê¹Æ¤È¥Õ¥¡¥¤¥ë¤ÎźÉÕ} +\subsection{·Ç¼¨ÈĤò»ÈÍѤ¹¤ë} ¤³¤³¤Ç¤Ï¡¢µ­»ö¤òÅê¹Æ¤¹¤ëÊýË¡¤È¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ëÊýË¡¡¢Ê¸»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ \subsubsection{µ­»ö¤òÅê¹Æ¤¹¤ë} @@ -62,6 +54,17 @@ \subsubsection{¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ë} TBD +\subsection{·Ç¼¨ÈĤò´ÉÍý¤¹¤ë} +¤³¤³¤Ç¤Ï¡¢µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë¤¿¤á¤Î¥«¥Æ¥´¥ê¤ÎÄɲäÎÊýË¡¤È¡¢¥«¥Æ¥´¥ê¤Î¥¢¥¯¥»¥¹¸¢¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ + +\subsubsection{¥«¥Æ¥´¥ê¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} +¥«¥Æ¥´¥ê¤Ï¡¢ + +\subsubsection{¥¢¥¯¥»¥¹¸¢¤ÎÀßÄê} +TBD + + + \subsubsection{ʸ»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ë} admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ @@ -80,12 +83,16 @@ ºîÀ®¤·¤¿¥«¥Æ¥´¥ê¤ä¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÏÅÐÏ¿¼Ô°Ê³°¤¬»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤¬¡¢¶¦Í­¤Î¥«¥Æ¥´¥ê¤Ë¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òÅÐÏ¿¤·¤¿¾ì¹ç¡¢ÅÐÏ¿¼Ô°Ê³°¤âÍøÍѤǤ­¤ë¶¦Í­¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \section{»È¤¤Êý} + ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -\subsection{´ðËÜŪ¤ÊÁàºî} +\subsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò»ÈÍѤ¹¤ë} +¤Þ¤º¡¢¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È(Bookmark Viewer)¤òÇÛÈ÷¤·¤Æ¤¯¤À¤µ¤¤¡£ \subsubsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òºîÀ®¤¹¤ë} -¥Ö¥Ã¥¯¥Þ¡¼¥¯ºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +¡Ö¥ê¥ó¥¯ºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Ö¥Ã¥¯¥Þ¡¼¥¯ºîÀ®²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +¥Ö¥Ã¥¯¥Þ¡¼¥¯ºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤǤ­¤Þ¤¹¡£ + \begin{itemize} \item ̾Á° : ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Ëɽ¼¨¤µ¤ì¤ë̾Á°¤òÆþÎϤ·¤Þ¤¹¡£ \item URL : ³«¤­¤¿¤¤¥µ¥¤¥È¤ÎURL¤òµ­½Ò¤·¤Þ¤¹¡£ @@ -94,10 +101,41 @@ \item ¼ïÎà : ¿·¤·¤¤¥¦¥¤¥ó¥É¥¦¤Þ¤¿¤Ï¥¿¥Ö¤Ç³«¤¯¡Ê¥Ö¥é¥¦¥¶¤Ë¤è¤Ã¤Æ°Û¤Ê¤ê¤Þ¤¹¡Ë¤«¡¢Æ±¤¸¥¦¥¤¥ó¥É¥¦¤Ç³«¤¯¤«ÁªÂò¤·¤Þ¤¹¡£ \end{itemize} +¤Á¤Ê¤ß¤Ë¡¢³Æ¥Ö¥é¥¦¥¶¤Ç¡Ö¿·¤·¤¤¥¦¥¤¥ó¥É¥¦¤Þ¤¿¤Ï¥¿¥Ö¤Ç³«¤¯¡×¾ì¹ç¤ÎÆ°ºî¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ +\begin{itemize} +\item Microsoft Internet Explorer 6 : ¿·¤·¤¤¥¦¥¤¥ó¥É¥¦¤Ç³«¤­¤Þ¤¹¡£ +\item Microsoft Internet Explorer 7 : ¿·¤·¤¤¥¦¥¤¥ó¥É¥¦¤Ç³«¤­¤Þ¤¹¡£ +\item Mozilla Firefox 3 : ¿·¤·¤¤¥¿¥Ö¤Ç³«¤­¤Þ¤¹¡£ +\item Google Chrome : ¿·¤·¤¤¥¿¥Ö¤Ç³«¤­¤Þ¤¹¡£ +\item Apple Safari : ¿·¤·¤¤¥¦¥¤¥ó¥É¥¦¤Ç³«¤­¤Þ¤¹¡£ +\end{itemize} + +¤³¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Ï´ÉÍý¼Ô¤ò½ü¤­¡¢ºîÀ®¤·¤¿ËܿͤΤߤ¬ÍøÍѤǤ­¤Þ¤¹¡£ + \subsubsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò³«¤¯} ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Î¹àÌÜ̾¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢ºîÀ®»þ¤ËÀßÄꤷ¤¿Ä̤ê¤Ë¥¦¥¤¥ó¥É¥¦¤¬³«¤­¤Þ¤¹¡£ +\subsubsection{¥«¥Æ¥´¥ê¤òºîÀ®¤¹¤ë} +½é´üɽ¼¨²èÌ̤ˤơ֥«¥Æ¥´¥ê°ìÍ÷¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥«¥Æ¥´¥ê°ìÍ÷²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +¤³¤³¤Ç¡¢¡Ö¥«¥Æ¥´¥êºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥«¥Æ¥´¥ê¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¥«¥Æ¥´¥êºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤǤ­¤Þ¤¹¡£ +\begin{itemize} +\item ¥«¥Æ¥´¥ê̾ : ¥«¥Æ¥´¥ê¤Î̾Á°¤òÆþÎϤ·¤Þ¤¹¡£ +\item ¥á¥â : ¥á¥â¤òµ­½Ò¤·¤Þ¤¹¡£ +\end{itemize} +¤³¤Î¥«¥Æ¥´¥ê¤Ï¡¢´ÉÍý¼Ô¤ò½ü¤­¡¢ºîÀ®¤·¤¿ËܿͤΤߤ¬ÍøÍѤǤ­¤Þ¤¹¡£ + +\subsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤È¥«¥Æ¥´¥ê¤ò´ÉÍý¤¹¤ë} +admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¾ì¹ç¡¢´ÉÍýÍѤΥݡ¼¥È¥ì¥Ã¥È(Bookmark Manager)¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÈÄ̾ï¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï°Ê²¼¤ÎÅÀ¤Ç°Û¤Ê¤ê¤Þ¤¹¡£ +\begin{itemize} +\item ¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼¤ÎºîÀ®¤·¤¿¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ä¥«¥Æ¥´¥ê¤ò±ÜÍ÷¡¦ÊÔ½¸¡¦ºï½ü¤Ç¤­¤ëÅÀ +\item ¥«¥Æ¥´¥ê¤Ø¤ÎÅÐÏ¿¤Î¾ì¹ç¡¢ID ¤òÆþÎϤ¹¤ëɬÍפ¬¤¢¤ëÅÀ(̤ʬÎ५¥Æ¥´¥ê¤Î ID ¤Ï 1 ¤Ë¤Ê¤ê¤Þ¤¹) +\item ¶¦Í­¥«¥Æ¥´¥ê¤Ë¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òÅÐÏ¿¤Ç¤­¤ëÅÀ(¶¦Í­¥«¥Æ¥´¥ê¤Î ID ¤Ï 2 ¤Ë¤Ê¤ê¤Þ¤¹) +\item ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Îɽ¼¨½ç¤ò¿ô»ú¤ÇÀßÄꤹ¤ëÅÀ(¿ô»ú¤Î¾®¤µ¤¤¤â¤Î¤¬¾å¤Ëɽ¼¨¤µ¤ì¤Þ¤¹) +\end{itemize} + \chapter{VFS} \section{¤Ï¤¸¤á¤Ë} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ @@ -113,9 +151,9 @@ \section{»È¤¤Êý} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -\subsection{ÀßÄê} +\subsection{VFS¥Ý¡¼¥È¥ì¥Ã¥È¤òÀßÄꤹ¤ë} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÏÇÛÈ÷¤·¤¿Ä¾¸å¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¾õÂ֤ˤʤäƤ¤¤ë¤¿¤á¡¢ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ -admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Configulator ¥Ý¡¼¥È¥ì¥Ã¥È¤«¤éÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +´ÉÍý¤Ï¡¢admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê VFS Configulator ¥Ý¡¼¥È¥ì¥Ã¥È(VFS Explorer ÍÑ)¡¢¤Þ¤¿¤Ï Personal Folder Configulator ¥Ý¡¼¥È¥ì¥Ã¥È(VFS Personal Folder Explorer ÍÑ)¤«¤éÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌܤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ ¤Ê¤ª¡¢URI¤Î»ØÄê¹àÌܤǡ¢¡Ö\verb|__USERNAME__|¡×¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÑ¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \begin{itemize} \item »ÈÍÑ : ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»ÈÍѤòµö²Ä¤¹¤ë¤«Èݤ«¤ÎÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤³¤òµö²Ä¤·¤Ê¤¤¾ì¹ç¡¢¤¹¤Ù¤Æ¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ @@ -129,11 +167,11 @@ \end{itemize} \subsubsection{Windows¤Ç¤ÎÆÃÍ­¤ÊÀßÄê} -Windows¤Ç¤Ï¥Ñ¥¹¤Î»ØÄê¤ò¡Ö\verb|file:///c:\/......|¡×¤Î¤è¤¦¤Ë¡¢³Æ¥É¥é¥¤¥Ö¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Î¤ß¡Ö\verb|x:\|¡×¤Î·Á¤ÇÆþÎϤ·¡¢¸å¤Ï/¤Ç¥Ñ¥¹¤ò¶èÀÚ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +Windows¤Ç¤Ï¥Ñ¥¹¤Î»ØÄê¤ò¡Öfile:///c:Y\hspace{-.75em}=/......¡×¤Î¤è¤¦¤Ë¡¢³Æ¥É¥é¥¤¥Ö¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Î¤ß¡Öx:Y\hspace{-.75em}=¡×¤Î·Á¤ÇÆþÎϤ·¡¢¸å¤Ï/¤Ç¥Ñ¥¹¤ò¶èÀÚ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤Ê¤ª¡¢¸½»þÅÀ¤Ç¤Ï¶õÇò¤ò´Þ¤à¥Ñ¥¹¤ò»ÈÍѤ¹¤ë¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É¤¬Àµ¾ï¤Ë¹Ô¤ï¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¤¤¤ï¤æ¤ë 8.3 ·Á¼°¤Îû¤¤¥Õ¥¡¥¤¥ë¡¦¥Õ¥©¥ë¥À̾¤ò»ÈÍѤ¹¤ë¤ÈÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -\subsection{´ðËÜŪ¤ÊÁàºî} +\subsection{VFS¥Ý¡¼¥È¥ì¥Ã¥È¤ò»È¤¦} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤È¡¢¡Öɸ½à¤ÎURI¡×¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¥µ¥¤¥º¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¥Õ¥¡¥¤¥ë¡¢¥µ¥¤¥º¤Îɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤¬¥Õ¥©¥ë¥À¤Ç¤¹¡£ ¤Ê¤ª¡¢OS¾å¤Ç¥Õ¥¡¥¤¥ë¤òÁàºî¤¹¤ë¸¢¸Â¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤ò¼Â¹Ô¤¹¤ë¥æ¡¼¥¶¡¼¤Î¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ From svnnotify ¡÷ sourceforge.jp Mon Nov 10 17:04:30 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 17:04:30 +0900 Subject: [pal-cvs 3582] [1317] copy images/ to target/. Message-ID: <1226304270.347476.31799.nullmailer@users.sourceforge.jp> Revision: 1317 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1317 Author: shinsuke Date: 2008-11-10 17:04:30 +0900 (Mon, 10 Nov 2008) Log Message: ----------- copy images/ to target/. Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/build.xml -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-10 07:46:05 UTC (rev 1316) +++ pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-10 08:04:30 UTC (rev 1317) @@ -34,6 +34,12 @@ + + + + + + Revision: 1318 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1318 Author: takakura Date: 2008-11-10 17:20:51 +0900 (Mon, 10 Nov 2008) Log Message: ----------- upload draft file Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-10 08:04:30 UTC (rev 1317) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-10 08:20:51 UTC (rev 1318) @@ -1,4 +1,5 @@ \documentclass[titlepage]{jbook} +\usepackage{graphicx} \title{¥°¥ë¡¼¥×¥¦¥§¥¢¥¬¥¤¥É} \author{Portal Application Laboratory} @@ -57,14 +58,16 @@ \subsection{·Ç¼¨ÈĤò´ÉÍý¤¹¤ë} ¤³¤³¤Ç¤Ï¡¢µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë¤¿¤á¤Î¥«¥Æ¥´¥ê¤ÎÄɲäÎÊýË¡¤È¡¢¥«¥Æ¥´¥ê¤Î¥¢¥¯¥»¥¹¸¢¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +\subsubsection{µ­»ö¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} +admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Message Admin ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢Ä̾ï¤ÈƱÍͤ˵­»ö¤ò±ÜÍ÷¡¦ÊÔ½¸¡¦ºï½ü¤Ç¤­¤Þ¤¹¤¬¡¢°ìÈ̤Υ桼¥¶¤¬Åê¹Æ¤·¤¿µ­»ö¤ËÂФ·¤Æ¤âÊÔ½¸¡¦ºï½ü¤ò¹Ô¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + \subsubsection{¥«¥Æ¥´¥ê¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} -¥«¥Æ¥´¥ê¤Ï¡¢ +admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Category Editor ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ \subsubsection{¥¢¥¯¥»¥¹¸¢¤ÎÀßÄê} -TBD +TBD - - \subsubsection{ʸ»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ë} admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ @@ -152,6 +155,13 @@ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \subsection{VFS¥Ý¡¼¥È¥ì¥Ã¥È¤òÀßÄꤹ¤ë} +\begin{figure}[h] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/0020.eps} +\caption{VFS Configulator ¥Ý¡¼¥È¥ì¥Ã¥È} +\label{fig:PAL0020} +\end{center} +\end{figure} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÏÇÛÈ÷¤·¤¿Ä¾¸å¤Ç¤Ï»ÈÍѤǤ­¤Ê¤¤¾õÂ֤ˤʤäƤ¤¤ë¤¿¤á¡¢ÀßÄê¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ´ÉÍý¤Ï¡¢admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê VFS Configulator ¥Ý¡¼¥È¥ì¥Ã¥È(VFS Explorer ÍÑ)¡¢¤Þ¤¿¤Ï Personal Folder Configulator ¥Ý¡¼¥È¥ì¥Ã¥È(VFS Personal Folder Explorer ÍÑ)¤«¤éÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ÀßÄê¹àÌܤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ ¤Ê¤ª¡¢URI¤Î»ØÄê¹àÌܤǡ¢¡Ö\verb|__USERNAME__|¡×¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢¥æ¡¼¥¶¡¼Ì¾¤òÊÑ¿ô¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ From svnnotify ¡÷ sourceforge.jp Mon Nov 10 18:43:46 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 18:43:46 +0900 Subject: [pal-cvs 3584] [1319] upload document file Message-ID: <1226310226.878664.4745.nullmailer@users.sourceforge.jp> Revision: 1319 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1319 Author: takakura Date: 2008-11-10 18:43:46 +0900 (Mon, 10 Nov 2008) Log Message: ----------- upload document file Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-10 08:20:51 UTC (rev 1318) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-10 09:43:46 UTC (rev 1319) @@ -44,19 +44,78 @@ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \subsection{·Ç¼¨ÈĤò»ÈÍѤ¹¤ë} -¤³¤³¤Ç¤Ï¡¢µ­»ö¤òÅê¹Æ¤¹¤ëÊýË¡¤È¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ëÊýË¡¡¢Ê¸»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +¤³¤³¤Ç¤Ï¡¢°ìÈ̥桼¥¶¡¼¤È¤·¤Æµ­»ö¤òÅê¹Æ¤¹¤ëÊýË¡¤È¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +¤Þ¤º¡¢¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È(Message Viewer)¤òÇÛÈ÷¤·¤Æ¤¯¤À¤µ¤¤¡£ +¤¹¤ë¤È¡¢¤³¤Î¤è¤¦¤Ê²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0004.eps} +\caption{Message Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Îµ­»ö°ìÍ÷²èÌÌɽ¼¨} +\label{fig:PAL0004} +\end{center} +\end{figure} + \subsubsection{µ­»ö¤òÅê¹Æ¤¹¤ë} -TBD +µ­»ö¤òÅê¹Æ¤¹¤ë¤Ë¤Ï¡¢¡Ö¿·µ¬ºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ +µ­»ö¤òÅê¹Æ¤¹¤ëºÝ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤ¬»ØÄê¤Ç¤­¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0001.eps} +\caption{Message Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Îµ­»öÅê¹Æ²èÌÌɽ¼¨} +\label{fig:PAL0001} +\end{center} +\end{figure} + +\begin{itemize} +\item º¹½Ð¿Í̾ : º¹½Ð¿Í¤Î̾Á°¤òÆþÎϤ·¤Þ¤¹¡£(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥æ¡¼¥¶¡¼Ì¾¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤¹) +\item ɸÂê : ɸÂê¤òÆþÎϤ·¤Þ¤¹¡£ +\item ËÜʸ : ËÜʸ¤òÆþÎϤ·¤Þ¤¹¡£Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç»ØÄꤷ¤¿ºÇÂçʸ»ú¿ô¤Þ¤ÇÆþÎϤǤ­¤Þ¤¹¡£ +\item ¸ø³«³«»ÏÆü»þ : ¤³¤Îµ­»ö¤Îɽ¼¨¤ò³«»Ï¤¹¤ëÆü»þ¤ò»ØÄꤷ¤Þ¤¹¡£ +\item ¸ø³«½ªÎ»Æü»þ : ¤³¤Îµ­»ö¤Îɽ¼¨¤ò½ªÎ»¤¹¤ëÆü»þ¤ò»ØÄꤷ¤Þ¤¹¡£ +\item ¤³¤Îµ­»ö¾å¤ÇµÄÏÀ¤¹¤ë : ¤³¤Îµ­»ö¤Ø¤ÎÊÖ¿®¤òǧ¤á¤ë¤«Èݤ«¤òÀßÄꤷ¤Þ¤¹¡£ +\item ¸ø³« : ¤³¤Îµ­»ö¤ò¸ø³«¤¹¤ë¤«°ì»þÊݸµ­»ö¤Ë¤¹¤ë¤«¤òÀßÄꤷ¤Þ¤¹¡£¸ø³«¤·¤¿¾ì¹ç¡¢Â¾¤Î¥æ¡¼¥¶¡¼¤¬±ÜÍ÷¤¹¤ë¤³¤È¤Î¤Ç¤­¤ëµ­»ö¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤ÎÀßÄê¤Ë¤è¤Ã¤Æ¤Ï¸ø³«¸å¤ÎÊÔ½¸¤Ï¤Ç¤­¤Ê¤¤¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£°ì»þÊݸµ­»ö¤Î¾ì¹ç¤Ï¼«Ê¬¤Î¤ß±ÜÍ÷¤Ç¤­¤Þ¤¹¡£ +\end{itemize} + +¤Ê¤ª¡¢µ­»ö¤òÅê¹Æ¤¹¤ë¤Þ¤Ç¤Ï¥Õ¥¡¥¤¥ë¤ÎźÉդϹԤ¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ + \subsubsection{µ­»ö¤ËÂФ·¤ÆÊÖ¿®¤¹¤ë} -TBD +µ­»ö¤ÎɸÂê¤ò¥¯¥ê¥Ã¥¯¤·¡¢µ­»ö¤òɽ¼¨¤µ¤»¤Æ¤¯¤À¤µ¤¤¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0006.eps} +\caption{Message Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Îµ­»ö¾ÜºÙ²èÌÌɽ¼¨ : ¥³¥á¥ó¥È¤ÎÅê¹Æ} +\label{fig:PAL0006} +\end{center} +\end{figure} + +µ­»ö¤ÎËÜʸÅù¤Î²¼¤ËÊÖ¿®¤Î½ñ¤­¹þ¤ßÍ󤬤¢¤ê¤Þ¤¹¡£¤³¤³¤ÇÊÖ¿®¤ò½ñ¤­¹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{itemize} +\item º¹½Ð¿Í̾ : º¹½Ð¿Í¤Î̾Á°¤òÆþÎϤ·¤Þ¤¹¡£(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥æ¡¼¥¶¡¼Ì¾¤¬ÆþÎϤµ¤ì¤Æ¤¤¤Þ¤¹) +\item ËÜʸ : ËÜʸ¤òÆþÎϤ·¤Þ¤¹¡£Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç»ØÄꤷ¤¿ºÇÂçʸ»ú¿ô¤Þ¤ÇÆþÎϤǤ­¤Þ¤¹¡£ +\end{itemize} + +¤Ê¤ª¡¢¿Æµ­»ö¤ÎÅê¹Æ¼Ô¤Ï¡¢µ­»ö¤Ø¤Î¥³¥á¥ó¥È¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + \subsubsection{¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ë} -TBD +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ïµ­»ö¤Î¿·µ¬Åê¹Æ»þ¤Ë¥Õ¥¡¥¤¥ë¤òźÉÕ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ +¤¤¤Ã¤¿¤ó°ì»þÊݸµ­»ö¤È¤·¤ÆÅê¹Æ¤·¤¿¸å¤Ëµ­»ö¤òÊÔ½¸¤·¡¢¤½¤ÎºÝ¤ËźÉÕ¥Õ¥¡¥¤¥ë¤òÁ÷¿®¤¹¤ë¤³¤È¤¬É¬ÍפǤ¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0007.eps} +\caption{Message Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Îµ­»öÊÔ½¸²èÌÌɽ¼¨} +\label{fig:PAL0007} +\end{center} +\end{figure} + +µ­»ö¤òÊÔ½¸¤¹¤ëºÝ¤Ë¡¢¥Õ¥¡¥¤¥ë¤òźÉդǤ­¤Þ¤¹¡£ÅºÉÕ¥Õ¥¡¥¤¥ë¤ò»ØÄꤹ¤ë¤È¶¦¤Ë¡¢ÅºÉÕ¤¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥³¥á¥ó¥È¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + \subsection{·Ç¼¨ÈĤò´ÉÍý¤¹¤ë} -¤³¤³¤Ç¤Ï¡¢µ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë¤¿¤á¤Î¥«¥Æ¥´¥ê¤ÎÄɲäÎÊýË¡¤È¡¢¥«¥Æ¥´¥ê¤Î¥¢¥¯¥»¥¹¸¢¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +¤³¤³¤Ç¤Ï¡¢´ÉÍý¼Ô¤È¤·¤Æ¡¢µ­»ö¤òÄɲá¦ÊÔ½¸¡¦ºï½ü¤¹¤ëÊýË¡¤äµ­»ö¤ò¥«¥Æ¥´¥êʬ¤±¤¹¤ë¤¿¤á¤Î¥«¥Æ¥´¥ê¤ÎÄɲäÎÊýË¡¡¢¥«¥Æ¥´¥ê¤Î¥¢¥¯¥»¥¹¸¢¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ \subsubsection{µ­»ö¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Message Admin ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ @@ -65,12 +124,40 @@ \subsubsection{¥«¥Æ¥´¥ê¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü} admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Category Editor ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0009.eps} +\caption{Category Editor ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥«¥Æ¥´¥êÊÔ½¸²èÌÌɽ¼¨} +\label{fig:PAL0009} +\end{center} +\end{figure} + +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¡Ö¿·µ¬ºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥«¥Æ¥´¥ê¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0010.eps} +\caption{Category Editor ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥«¥Æ¥´¥êºîÀ®²èÌÌɽ¼¨} +\label{fig:PAL0010} +\end{center} +\end{figure} + +¤Ê¤ª¡¢¥«¥Æ¥´¥ê¤ÎºîÀ®¤ËɬÍפʾðÊó¤Ï¥«¥Æ¥´¥ê̾¤Î¤ß¤Ç¤¹¡£ + \subsubsection{¥¢¥¯¥»¥¹¸¢¤ÎÀßÄê} TBD \subsubsection{ʸ»ú¿ô¤äźÉդǤ­¤ë¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òÀ©¸Â¤¹¤ë} admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¤ß¤¬»ÈÍѲÄǽ¤Ê Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ·¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0014.eps} +\caption{Board Configuration ¥Ý¡¼¥È¥ì¥Ã¥È¤Î²èÌÌɽ¼¨} +\label{fig:PAL0014} +\end{center} +\end{figure} + ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï°Ê²¼¤Î¹àÌܤ¬»ØÄê¤Ç¤­¤Þ¤¹¡£ \begin{itemize} @@ -90,9 +177,28 @@ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \subsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò»ÈÍѤ¹¤ë} +¤³¤³¤Ç¤Ï¡¢°ìÈ̥桼¥¶¡¼¤È¤·¤Æ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ ¤Þ¤º¡¢¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È(Bookmark Viewer)¤òÇÛÈ÷¤·¤Æ¤¯¤À¤µ¤¤¡£ +¤¹¤ë¤È¡¢¤³¤Î¤è¤¦¤Ê²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0026.eps} +\caption{Bookmark Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯°ìÍ÷²èÌÌɽ¼¨} +\label{fig:PAL0026} +\end{center} +\end{figure} + \subsubsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤òºîÀ®¤¹¤ë} + +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0028.eps} +\caption{Bookmark Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯ÅÐÏ¿²èÌÌɽ¼¨} +\label{fig:PAL0028} +\end{center} +\end{figure} + ¡Ö¥ê¥ó¥¯ºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Ö¥Ã¥¯¥Þ¡¼¥¯ºîÀ®²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¥Ö¥Ã¥¯¥Þ¡¼¥¯ºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤǤ­¤Þ¤¹¡£ @@ -120,17 +226,27 @@ \subsubsection{¥«¥Æ¥´¥ê¤òºîÀ®¤¹¤ë} ½é´üɽ¼¨²èÌ̤ˤơ֥«¥Æ¥´¥ê°ìÍ÷¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥«¥Æ¥´¥ê°ìÍ÷²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0029.eps} +\caption{Bookmark Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥«¥Æ¥´¥ê°ìÍ÷²èÌÌɽ¼¨} +\label{fig:PAL0029} +\end{center} +\end{figure} + ¤³¤³¤Ç¡¢¡Ö¥«¥Æ¥´¥êºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥«¥Æ¥´¥ê¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -¥«¥Æ¥´¥êºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤǤ­¤Þ¤¹¡£ -\begin{itemize} -\item ¥«¥Æ¥´¥ê̾ : ¥«¥Æ¥´¥ê¤Î̾Á°¤òÆþÎϤ·¤Þ¤¹¡£ -\item ¥á¥â : ¥á¥â¤òµ­½Ò¤·¤Þ¤¹¡£ -\end{itemize} +¤³¤³¤Ç¤Ï´ÉÍý¼Ô¤È¤·¤Æ¡¢¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´ÉÍý¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¾ì¹ç¡¢´ÉÍýÍѤΥݡ¼¥È¥ì¥Ã¥È(Bookmark Manager)¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -¤³¤Î¥«¥Æ¥´¥ê¤Ï¡¢´ÉÍý¼Ô¤ò½ü¤­¡¢ºîÀ®¤·¤¿ËܿͤΤߤ¬ÍøÍѤǤ­¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0021.eps} +\caption{Bookmark Manager ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯´ÉÍý²èÌÌɽ¼¨} +\label{fig:PAL0021} +\end{center} +\end{figure} -\subsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤È¥«¥Æ¥´¥ê¤ò´ÉÍý¤¹¤ë} -admin ¥í¡¼¥ë¤Î¥æ¡¼¥¶¤Î¾ì¹ç¡¢´ÉÍýÍѤΥݡ¼¥È¥ì¥Ã¥È(Bookmark Manager)¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÈÄ̾ï¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï°Ê²¼¤ÎÅÀ¤Ç°Û¤Ê¤ê¤Þ¤¹¡£ \begin{itemize} \item ¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼¤ÎºîÀ®¤·¤¿¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ä¥«¥Æ¥´¥ê¤ò±ÜÍ÷¡¦ÊÔ½¸¡¦ºï½ü¤Ç¤­¤ëÅÀ @@ -139,6 +255,47 @@ \item ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Îɽ¼¨½ç¤ò¿ô»ú¤ÇÀßÄꤹ¤ëÅÀ(¿ô»ú¤Î¾®¤µ¤¤¤â¤Î¤¬¾å¤Ëɽ¼¨¤µ¤ì¤Þ¤¹) \end{itemize} +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0030.eps} +\caption{Bookmark Viewer ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥«¥Æ¥´¥êÅÐÏ¿²èÌÌɽ¼¨} +\label{fig:PAL0030} +\end{center} +\end{figure} + +¥«¥Æ¥´¥êºîÀ®»þ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòÆþÎϤǤ­¤Þ¤¹¡£ +\begin{itemize} +\item ¥«¥Æ¥´¥ê̾ : ¥«¥Æ¥´¥ê¤Î̾Á°¤òÆþÎϤ·¤Þ¤¹¡£ +\item ¥á¥â : ¥á¥â¤òµ­½Ò¤·¤Þ¤¹¡£ +\end{itemize} + +¤³¤Î¥«¥Æ¥´¥ê¤Ï¡¢´ÉÍý¼Ô¤ò½ü¤­¡¢ºîÀ®¤·¤¿ËܿͤΤߤ¬ÍøÍѤǤ­¤Þ¤¹¡£ + +\subsection{¥Ö¥Ã¥¯¥Þ¡¼¥¯¤È¥«¥Æ¥´¥ê¤ò´ÉÍý¤¹¤ë} +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0022.eps} +\caption{Bookmark Manager ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯ÊÔ½¸²èÌÌɽ¼¨} +\label{fig:PAL0022} +\end{center} +\end{figure} + +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0024.eps} +\caption{Bookmark Manager ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥«¥Æ¥´¥ê´ÉÍý²èÌÌɽ¼¨} +\label{fig:PAL0024} +\end{center} +\end{figure} + +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0025.eps} +\caption{Bookmark Manager ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥«¥Æ¥´¥êÊÔ½¸²èÌÌɽ¼¨} +\label{fig:PAL0025} +\end{center} +\end{figure} + \chapter{VFS} \section{¤Ï¤¸¤á¤Ë} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ @@ -155,10 +312,11 @@ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \subsection{VFS¥Ý¡¼¥È¥ì¥Ã¥È¤òÀßÄꤹ¤ë} -\begin{figure}[h] +¤³¤³¤Ç¤Ï´ÉÍý¼Ô¤È¤·¤Æ¡¢¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÀßÄꤹ¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +\begin{figure}[ht] \begin{center} -\includegraphics{/home/takakura/trunk/src/tex/images/0020.eps} -\caption{VFS Configulator ¥Ý¡¼¥È¥ì¥Ã¥È} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0020.eps} +\caption{VFS Configulator ¥Ý¡¼¥È¥ì¥Ã¥È¤Î²èÌÌɽ¼¨} \label{fig:PAL0020} \end{center} \end{figure} @@ -182,10 +340,19 @@ ¤Ê¤ª¡¢¸½»þÅÀ¤Ç¤Ï¶õÇò¤ò´Þ¤à¥Ñ¥¹¤ò»ÈÍѤ¹¤ë¤È¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É¤¬Àµ¾ï¤Ë¹Ô¤ï¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¤¤¤ï¤æ¤ë 8.3 ·Á¼°¤Îû¤¤¥Õ¥¡¥¤¥ë¡¦¥Õ¥©¥ë¥À̾¤ò»ÈÍѤ¹¤ë¤ÈÌäÂê¤ò²óÈò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \subsection{VFS¥Ý¡¼¥È¥ì¥Ã¥È¤ò»È¤¦} +¤³¤³¤Ç¤Ï¡¢°ìÈ̥桼¥¶¡¼¤È¤·¤Æ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò»ÈÍѤ¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤È¡¢¡Öɸ½à¤ÎURI¡×¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¥µ¥¤¥º¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¥Õ¥¡¥¤¥ë¡¢¥µ¥¤¥º¤Îɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤¬¥Õ¥©¥ë¥À¤Ç¤¹¡£ ¤Ê¤ª¡¢OS¾å¤Ç¥Õ¥¡¥¤¥ë¤òÁàºî¤¹¤ë¸¢¸Â¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤ò¼Â¹Ô¤¹¤ë¥æ¡¼¥¶¡¼¤Î¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0015.eps} +\caption{VFS Explorer ¥Ý¡¼¥È¥ì¥Ã¥È¤Î²èÌÌɽ¼¨} +\label{fig:PAL0015} +\end{center} +\end{figure} + \subsubsection{¥Õ¥©¥ë¥À¤ò°ÜÆ°¤¹¤ë} ¥Õ¥©¥ë¥À¤Î¾ì¹ç¡¢¥Õ¥©¥ë¥À̾¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¤½¤Î¥Õ¥©¥ë¥À¤Ë°ÜÆ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¾å°Ì¥Õ¥©¥ë¥À¤Ø°ÜÆ°¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö..¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ @@ -200,10 +367,24 @@ ¤Ê¤ª¡¢¥Õ¥©¥ë¥À¤òºï½ü¤·¤¿¾ì¹ç¡¢¤½¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤µ¤ì¤Þ¤¹¡£ \subsubsection{¥Õ¥©¥ë¥À¤òºîÀ®¤¹¤ë} +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0017.eps} +\caption{VFS Explorer ¥Õ¥©¥ë¥ÀºîÀ®²èÌÌ} +\label{fig:PAL0017} +\end{center} +\end{figure} ¡Ö¥Õ¥©¥ë¥À¤ÎºîÀ®¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥©¥ë¥À¤ÎºîÀ®²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï¡¢¡Ö¥Õ¥©¥ë¥À̾¡×¤òÆþÎϤ¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥©¥ë¥À¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤ËºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \subsubsection{¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë} +\begin{figure}[ht] +\begin{center} +\includegraphics{/home/takakura/trunk/src/tex/images/PAL0019.eps} +\caption{VFS Explorer ¥¢¥Ã¥×¥í¡¼¥É²èÌÌ} +\label{fig:PAL0019} +\end{center} +\end{figure} ¡Ö¥¢¥Ã¥×¥í¡¼¥É¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï¡¢¡Ö»²¾È...¡×¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Ê¤ª¡¢°ìÅ٤˥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Ï 1 ¸Ä¤Î¤ß¤Ç¤¹¡£ From svnnotify ¡÷ sourceforge.jp Mon Nov 10 19:55:30 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 19:55:30 +0900 Subject: [pal-cvs 3585] [1320] created todolist. Message-ID: <1226314530.128107.13414.nullmailer@users.sourceforge.jp> Revision: 1320 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1320 Author: shinsuke Date: 2008-11-10 19:55:30 +0900 (Mon, 10 Nov 2008) Log Message: ----------- created todolist. Added Paths: ----------- todolist/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Mon Nov 10 19:55:38 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 19:55:38 +0900 Subject: [pal-cvs 3586] [1321] created trunk. Message-ID: <1226314538.771495.13479.nullmailer@users.sourceforge.jp> Revision: 1321 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1321 Author: shinsuke Date: 2008-11-10 19:55:38 +0900 (Mon, 10 Nov 2008) Log Message: ----------- created trunk. Added Paths: ----------- todolist/trunk/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Mon Nov 10 20:23:26 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 20:23:26 +0900 Subject: [pal-cvs 3587] [1322] initial commit. Message-ID: <1226316206.888220.10904.nullmailer@users.sourceforge.jp> Revision: 1322 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1322 Author: shinsuke Date: 2008-11-10 20:23:25 +0900 (Mon, 10 Nov 2008) Log Message: ----------- initial commit. Added Paths: ----------- todolist/trunk/.classpath todolist/trunk/.project todolist/trunk/.settings/ todolist/trunk/.settings/org.eclipse.jdt.core.prefs todolist/trunk/.settings/org.eclipse.jdt.ui.prefs todolist/trunk/.settings/org.seasar.sastrutsplugin.prefs todolist/trunk/dbflute/ todolist/trunk/dbflute/_project.bat todolist/trunk/dbflute/_project.sh todolist/trunk/dbflute/build-todolist.properties todolist/trunk/dbflute/dfprop/ todolist/trunk/dbflute/dfprop/databaseInfoMap.dfprop todolist/trunk/dbflute/doc.bat todolist/trunk/dbflute/doc.sh todolist/trunk/dbflute/generate.bat todolist/trunk/dbflute/generate.sh todolist/trunk/dbflute/jdbc.bat todolist/trunk/dbflute/jdbc.sh todolist/trunk/dbflute/log/ todolist/trunk/dbflute/log/readme.txt todolist/trunk/dbflute/output/ todolist/trunk/dbflute/output/doc/ todolist/trunk/dbflute/output/doc/readme.txt todolist/trunk/dbflute/outside-sql-test.bat todolist/trunk/dbflute/outside-sql-test.sh todolist/trunk/dbflute/playsql/ todolist/trunk/dbflute/playsql/replace-schema.sql todolist/trunk/dbflute/replace-schema.bat todolist/trunk/dbflute/replace-schema.sh todolist/trunk/dbflute/schema/ todolist/trunk/dbflute/schema/readme.txt todolist/trunk/dbflute/sql2entity.bat todolist/trunk/dbflute/sql2entity.sh todolist/trunk/mydbflute/ todolist/trunk/mydbflute/README.txt todolist/trunk/pom.xml todolist/trunk/src/ todolist/trunk/src/main/ todolist/trunk/src/main/config/ todolist/trunk/src/main/config/erd/ todolist/trunk/src/main/config/erd/todolist.erd todolist/trunk/src/main/config/sql/ todolist/trunk/src/main/config/sql/todolist.ddl todolist/trunk/src/main/java/ todolist/trunk/src/main/java/jp/ todolist/trunk/src/main/java/jp/sf/ todolist/trunk/src/main/java/jp/sf/pal/ todolist/trunk/src/main/java/jp/sf/pal/todolist/ todolist/trunk/src/main/java/jp/sf/pal/todolist/ToDoListConstants.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonConstants.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/creator/ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/creator/PagerCreator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/dxo/ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/dxo/PagerDxo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/form/ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/form/PagingResultForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/pager/ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/pager/DefaultPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/ConfigUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/DateUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/PagingResultBeanWrapper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/SAStrutsUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/AccessContext.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BFinder.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BehaviorSelector.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheAbstractSelector.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheBehaviorSelector.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheDaoSelector.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CallbackContext.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DBFluteConfig.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoReadable.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoSelector.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoWritable.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/Entity.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/EntityDefinedCommonColumn.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/GenMetaData.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/InternalMapContext.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/QLog.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/XLog.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/annotation/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/annotation/OutsideSql.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorReadable.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorWritable.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorReadable.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorWritable.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputResult.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionResult.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/load/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/load/LoadReferrerOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ConditionBeanSetupper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/EntityListSetupper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelBox.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelSetupper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionQuery.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBeanContext.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionQuery.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBeanContext.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ListResultBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/MapParameterBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/OrderByBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingInvoker.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingResultBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ResultBeanBuilder.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SelectResource.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimpleOrderByBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimplePagingBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SubQuery.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/UnionQuery.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKey.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyEqual.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyInScope.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/ConditionOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/DateFromToOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/FromToOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/InScopeOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/LikeSearchOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/SimpleStringOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/SplitOptionParts.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/local/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/cvalue/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/cvalue/ConditionValue.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowResource.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowSetupper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/mapping/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/mapping/EntityDtoMapper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/ProcedurePmb.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLink.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByClause.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByElement.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClause.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseH2.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/AbstractDBMeta.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMeta.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMetaInstanceHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ColumnInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ForeignInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ReferrerInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/RelationInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/UniqueInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableParameterNullValueException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/DangerousResultSizeException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EndCommentNotFoundException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyDeletedException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyExistsException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyUpdatedException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityDuplicatedException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentConditionNotFoundException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentNotBooleanResultException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentWrongExpressionException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/OutsideSqlNotFoundException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasOverlappedException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RequiredOptionNotFoundException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/SQLFailureException.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListString.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListStringImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilder.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilderImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/GeneralCharacter.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/JapaneseCharacter.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrder.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/impl/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameResult.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/impl/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingCallback.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingRowResource.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileToken.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingCallback.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingRowResource.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileTokenImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineMakingOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineToken.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineTokenizingOption.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/impl/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/impl/LineTokenImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/CursorHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/LatestSqlProvider.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/SqlLogHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/StatementConfig.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoInterceptor.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataExtension.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/util/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/valuetype/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRowCreator.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleAssertUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleStringUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleSystemUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/TraceViewUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/ValueLabelUtil.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupMappingBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleMappingBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoCategoryBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoMappingBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupInfoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupMappingDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleInfoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleMappingDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoCategoryDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoMappingDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsUserInfoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoCategory.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupInfoDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupMappingDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleInfoDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleMappingDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoCategoryDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoMappingDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupMappingCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleMappingCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCategoryCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoMappingCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/UserInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupMappingCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleMappingCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCategoryCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoMappingCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCategoryCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/UserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCategoryCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCategoryCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoMappingCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupInfoCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupMappingCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleInfoCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleMappingCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCategoryCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoMappingCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupInfoNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupMappingNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleInfoNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleMappingNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoCategoryNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoMappingNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/UserInfoNss.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupMappingBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleMappingBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoCategoryBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoMappingBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/UserInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupInfoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupMappingDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleInfoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleMappingDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoCategoryDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoMappingDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/UserInfoDao.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/Todo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/UserInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/ todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/ConfigForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/CategoryForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/CategoryPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java todolist/trunk/src/main/java/jp/sf/pal/todolist/util/ todolist/trunk/src/main/java/jp/sf/pal/todolist/util/ToDoListUtil.java todolist/trunk/src/main/resources/ todolist/trunk/src/main/resources/app.dicon todolist/trunk/src/main/resources/application.properties todolist/trunk/src/main/resources/convention.dicon todolist/trunk/src/main/resources/creator.dicon todolist/trunk/src/main/resources/customizer.dicon todolist/trunk/src/main/resources/dbflute.dicon todolist/trunk/src/main/resources/env.txt todolist/trunk/src/main/resources/env_ut.txt todolist/trunk/src/main/resources/jdbc.dicon todolist/trunk/src/main/resources/log4j.properties todolist/trunk/src/main/resources/s2container.dicon todolist/trunk/src/main/webapp/ todolist/trunk/src/main/webapp/WEB-INF/ todolist/trunk/src/main/webapp/WEB-INF/db/ todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db todolist/trunk/src/main/webapp/WEB-INF/db/todolist.index.db todolist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml todolist/trunk/src/main/webapp/WEB-INF/portlet.xml todolist/trunk/src/main/webapp/WEB-INF/struts-config.xml todolist/trunk/src/main/webapp/WEB-INF/todolist.xml todolist/trunk/src/main/webapp/WEB-INF/validator-rules.xml todolist/trunk/src/main/webapp/WEB-INF/view/ todolist/trunk/src/main/webapp/WEB-INF/view/common/ todolist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp todolist/trunk/src/main/webapp/WEB-INF/view/config/ todolist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/ todolist/trunk/src/main/webapp/WEB-INF/view/user/category/ todolist/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp todolist/trunk/src/main/webapp/WEB-INF/web.xml -------------- next part -------------- Added: todolist/trunk/.classpath =================================================================== --- todolist/trunk/.classpath (rev 0) +++ todolist/trunk/.classpath 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: todolist/trunk/.classpath ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/.project =================================================================== --- todolist/trunk/.project (rev 0) +++ todolist/trunk/.project 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ + + todolist + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.jdt.core.javanature + org.seasar.dolteng.eclipse.nature + + \ No newline at end of file Property changes on: todolist/trunk/.project ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/.settings/org.eclipse.jdt.core.prefs =================================================================== --- todolist/trunk/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ todolist/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,261 @@ +#Mon Sep 15 07:23:10 JST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true Added: todolist/trunk/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- todolist/trunk/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ todolist/trunk/.settings/org.eclipse.jdt.ui.prefs 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,5 @@ +#Mon Sep 15 07:23:26 JST 2008 +eclipse.preferences.version=1 +formatter_profile=_Seasar +formatter_settings_version=11 +org.eclipse.jdt.ui.text.custom_code_templates= Added: todolist/trunk/.settings/org.seasar.sastrutsplugin.prefs =================================================================== --- todolist/trunk/.settings/org.seasar.sastrutsplugin.prefs (rev 0) +++ todolist/trunk/.settings/org.seasar.sastrutsplugin.prefs 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,3 @@ +#Tue Sep 16 06:52:57 JST 2008 +WebContentsRoot=/src/main/webapp +eclipse.preferences.version=1 Added: todolist/trunk/dbflute/_project.bat =================================================================== --- todolist/trunk/dbflute/_project.bat (rev 0) +++ todolist/trunk/dbflute/_project.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,5 @@ + ¡÷ echo off + +set MY_PROJECT_NAME=todolist + +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Property changes on: todolist/trunk/dbflute/_project.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/_project.sh =================================================================== --- todolist/trunk/dbflute/_project.sh (rev 0) +++ todolist/trunk/dbflute/_project.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,5 @@ +#!/bin/sh + +export MY_PROJECT_NAME=todolist + +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Property changes on: todolist/trunk/dbflute/_project.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/dbflute/build-todolist.properties =================================================================== --- todolist/trunk/dbflute/build-todolist.properties (rev 0) +++ todolist/trunk/dbflute/build-todolist.properties 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,161 @@ +# ======================================================================================= +# for All +# ======= + +# ------------------------------------------------------------------- +# P R O J E C T +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.project = todolist + +# ------------------------------------------------------------------- +# T A R G E T D A T A B A S E +# ------------------------------------------------------------------- +# This is the target database, only considered when generating +# the SQL for your Torque project. Your possible choices are: +# +# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql, +# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2 +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.database = h2 + +# ------------------------------------------------------------------- +# T A R G E T L A N G U A G E +# ------------------------------------------------------------------- +# (Default 'java') +# The target language. Your possible choices are: +# java, csharp +# ------------------------------------------------------------------- +# @FirstProperty +#torque.targetLanguage = java + + + +# ======================================================================================= +# for OM task +# =========== + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Basic +# _/_/_/_/ +# /--------------------------------------------------------------------------- +# [Output Directory] +# java.dir: (Default '../src/main/java') +# The base output directory. +# +# If this value is '../src/main/java' and your project stype is under maven, +# you don't need to set up this property! +# +# {project} +# | +# |-dbflute_ldb +# | |-build-ldb.properties +# | |-... +# | +# |-src/main/java // *Here! +# |-src/main/resources +# |-... +# +# +# @FirstProperty +#torque.java.dir = ../src/main/java +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Package +# _/_/ +# /--------------------------------------------------------------------------- +# [EntityDao Package] +# packageBase: (Default '') +# The base directory of package. +# +# *If this property is specified and other package properties is not specified, +# Then The packages of generated class are as follows: +# +# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb +# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon +# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv +# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao +# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity +# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean +# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv +# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao +# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity +# +# *If this property is not specified, you should specify the other package properties. +# +# +# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon') +# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv') +# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao') +# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity') +# conditionBeanPackage: (Default Java:'cbean' C#:'cbean') +# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv') +# extendedDaoPackage: (Default Java:'exdao' C#:'exdao') +# extendedEntityPackage: (Default Java:'exentity' C#:'exentity') +# +# @FirstProperty +torque.packageBase = jp.sf.pal.todolist.db +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# S2Dao Adjustment +# _/_/_/_/_/_/ +# /--------------------------------------------------------------------------- +# [S2Dao Version] +# s2daoVersion: (Default [The latest version]) +# +# @JavaOnly +torque.s2daoVersion = 1.0.48 +# ----------------/ + + + +# ======================================================================================= +# for JDBC task +# ============= + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# [Database Informaition] +# +# * * * * * * * * * * * * * * * * * * * * * * * * * +# You shuold use './dfprop/databaseInfoMap.dfprop' +# Look the file! +# * * * * * * * * * * * * * * * * * * * * * * * * * +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Adavance +# _/_/ + +# /--------------------------------------------------------------------------- +# [Sequence] +# sequenceDefinitionMap: (Default 'map:{}') +# The method 'XxxDao#selectNextVal()' is generated for its table primary key. +# +# ex) public String selectNextVal_SQL = "select gen_id(BOOK_BOOK_ID_INC, 1) from RDB$DATABASE"; +# public java.math.BigDecimal selectNextVal(); +# // This example is for the database of Firebird +# +# sequenceReturnType: (Default 'java.math.BigDecimal') +# The return type of The method 'XxxDao#selectNextVal()'. +# + +# +# *Apache Derby does not support Sequence-Object. +# But I want to test this property. +# +#torque.sequenceDefinitionMap = map:{ \ +# prodcts = PRODUCTS_PRODUCTS_ID_INC \ +# } + +#torque.sequenceReturnType = java.lang.Integer +# [Additional ForeignKey] +torque.additionalForeignKeyMap = map:{ \ +} + +#torque.isDeleteOldTableClass = true + Property changes on: todolist/trunk/dbflute/build-todolist.properties ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/dfprop/databaseInfoMap.dfprop =================================================================== --- todolist/trunk/dbflute/dfprop/databaseInfoMap.dfprop (rev 0) +++ todolist/trunk/dbflute/dfprop/databaseInfoMap.dfprop 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,18 @@ +# /--------------------------------------------------------------------------- +# [Database Information] +# databaseInfoMap: +# driver -- The class name of JDBC-Driver. +# url -- The url for connecting database. +# schema -- The schema name. +# user -- The database user name. +# password -- The database password. +# +# @FirstProperty +map:{ + ; driver = org.h2.Driver + ; url = jdbc:h2:file:../src/main/webapp/WEB-INF/db/todolist + ; schema = + ; user = sa + ; password = +} +# ----------------/ Added: todolist/trunk/dbflute/doc.bat =================================================================== --- todolist/trunk/dbflute/doc.bat (rev 0) +++ todolist/trunk/dbflute/doc.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: todolist/trunk/dbflute/doc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/doc.sh =================================================================== --- todolist/trunk/dbflute/doc.sh (rev 0) +++ todolist/trunk/dbflute/doc.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Document}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH + Property changes on: todolist/trunk/dbflute/doc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/dbflute/generate.bat =================================================================== --- todolist/trunk/dbflute/generate.bat (rev 0) +++ todolist/trunk/dbflute/generate.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Generate}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: todolist/trunk/dbflute/generate.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/generate.sh =================================================================== --- todolist/trunk/dbflute/generate.sh (rev 0) +++ todolist/trunk/dbflute/generate.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,16 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Generate}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH + + + Property changes on: todolist/trunk/dbflute/generate.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/dbflute/jdbc.bat =================================================================== --- todolist/trunk/dbflute/jdbc.bat (rev 0) +++ todolist/trunk/dbflute/jdbc.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {JDBC and Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: todolist/trunk/dbflute/jdbc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/jdbc.sh =================================================================== --- todolist/trunk/dbflute/jdbc.sh (rev 0) +++ todolist/trunk/dbflute/jdbc.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties" + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {JDBC and Document}." +echo "nnnnnnnnnn/" +sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH} + + Property changes on: todolist/trunk/dbflute/jdbc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/dbflute/log/readme.txt =================================================================== --- todolist/trunk/dbflute/log/readme.txt (rev 0) +++ todolist/trunk/dbflute/log/readme.txt 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1 @@ +Directory for LogFile Property changes on: todolist/trunk/dbflute/log/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/output/doc/readme.txt =================================================================== --- todolist/trunk/dbflute/output/doc/readme.txt (rev 0) +++ todolist/trunk/dbflute/output/doc/readme.txt 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1 @@ +Directory for Document Property changes on: todolist/trunk/dbflute/output/doc/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/outside-sql-test.bat =================================================================== --- todolist/trunk/dbflute/outside-sql-test.bat (rev 0) +++ todolist/trunk/dbflute/outside-sql-test.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Outsite-Sql-Test}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: todolist/trunk/dbflute/outside-sql-test.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/outside-sql-test.sh =================================================================== --- todolist/trunk/dbflute/outside-sql-test.sh (rev 0) +++ todolist/trunk/dbflute/outside-sql-test.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Outsite-Sql-Test}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH + + Property changes on: todolist/trunk/dbflute/outside-sql-test.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/dbflute/playsql/replace-schema.sql =================================================================== --- todolist/trunk/dbflute/playsql/replace-schema.sql (rev 0) +++ todolist/trunk/dbflute/playsql/replace-schema.sql 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,418 @@ +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST +; + +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP +; + +ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP +; + +ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE +; + +ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID +; + + +DROP TABLE AUTHOR +; +DROP TABLE BLACK_ACTION +; +DROP TABLE BLACK_ACTION_LOOKUP +; +DROP TABLE BLACK_LIST +; +DROP TABLE BOOK +; +DROP TABLE COLLECTION +; +DROP TABLE COLLECTION_STATUS +; +DROP TABLE COLLECTION_STATUS_LOOKUP +; +DROP TABLE GARBAGE +; +DROP TABLE GENRE +; +DROP TABLE LB_USER +; +DROP TABLE LENDING +; +DROP TABLE LENDING_COLLECTION +; +DROP TABLE LIBRARY +; +DROP TABLE NEXT_LIBRARY +; +DROP TABLE PUBLISHER +; + +CREATE TABLE AUTHOR ( + AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + AUTHOR_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION ( + BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + BLACK_LIST_ID integer NOT NULL, + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_LEVEL smallint NOT NULL, + EVIDENCE_PHOTOGRAPH blob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION_LOOKUP ( + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_ACTION_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_LIST ( + BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_ID integer NOT NULL, + BLACK_RANK char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BOOK ( + BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + ISBN_NO varchar(20) NOT NULL, + BOOK_NAME varchar(80) NOT NULL, + AUTHOR_ID integer NOT NULL, + PUBLISHER_ID integer NOT NULL, + MAX_LENDING_DATE_COUNT smallint NOT NULL, + GENRE_CODE varchar(12), + OPENING_PART clob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION ( + COLLECTION_ID integer NOT NULL, + LIBRARY_ID smallint NOT NULL, + BOOK_ID integer NOT NULL, + ARRIVAL_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS ( + COLLECTION_ID integer NOT NULL, + COLLECTION_STATUS_CODE char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS_LOOKUP ( + COLLECTION_STATUS_CODE char(3) NOT NULL, + COLLECTION_STATUS_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE GARBAGE ( + GARBAGE_MEMO varchar(50), + GARBAGE_TIME timestamp +) +; + +CREATE TABLE GENRE ( + GENRE_CODE varchar(12) NOT NULL, + GENRE_NAME varchar(80) NOT NULL, + PARENT_GENRE_CODE varchar(12), + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LB_USER ( + LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_NAME varchar(80) NOT NULL, + LIBRARY_ID smallint NOT NULL, + USER_PASSWORD varchar(50) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING ( + LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_ID smallint NOT NULL, + LB_USER_ID integer NOT NULL, + LENDING_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING_COLLECTION ( + LENDING_ID integer NOT NULL, + COLLECTION_ID integer NOT NULL, + RETURN_LIMIT_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LIBRARY ( + LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE NEXT_LIBRARY ( + LIBRARY_ID smallint NOT NULL, + NEXT_LIBRARY_ID smallint NOT NULL, + DISTANCE_KM integer NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE PUBLISHER ( + PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + PUBLISHER_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + + +ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR + PRIMARY KEY (AUTHOR_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION + PRIMARY KEY (BLACK_ACTION_ID) +; + +ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP + PRIMARY KEY (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST + PRIMARY KEY (BLACK_LIST_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK + PRIMARY KEY (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP + PRIMARY KEY (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE + PRIMARY KEY (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER + PRIMARY KEY (LB_USER_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING + PRIMARY KEY (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION + PRIMARY KEY (LENDING_ID, COLLECTION_ID) +; + +ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY + PRIMARY KEY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY + PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID) +; + +ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER + PRIMARY KEY (PUBLISHER_ID) +; + + +ALTER TABLE BOOK + ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO) +; + +ALTER TABLE COLLECTION + ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID) +; + +ALTER TABLE LENDING + ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID) +; + +ALTER TABLE BLACK_LIST + ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID) +; + +ALTER TABLE LIBRARY + ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME) +; + + + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST + FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP + FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR + FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER + FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE + FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK + FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP + FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE + FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING + FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID + FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; Added: todolist/trunk/dbflute/replace-schema.bat =================================================================== --- todolist/trunk/dbflute/replace-schema.bat (rev 0) +++ todolist/trunk/dbflute/replace-schema.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Replace-Schema}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: todolist/trunk/dbflute/replace-schema.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/replace-schema.sh =================================================================== --- todolist/trunk/dbflute/replace-schema.sh (rev 0) +++ todolist/trunk/dbflute/replace-schema.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Replace-Schema}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH + + Property changes on: todolist/trunk/dbflute/replace-schema.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/dbflute/schema/readme.txt =================================================================== --- todolist/trunk/dbflute/schema/readme.txt (rev 0) +++ todolist/trunk/dbflute/schema/readme.txt 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1 @@ +Directory for SchemaFile Property changes on: todolist/trunk/dbflute/schema/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/sql2entity.bat =================================================================== --- todolist/trunk/dbflute/sql2entity.bat (rev 0) +++ todolist/trunk/dbflute/sql2entity.bat 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Invoke Sql Directory}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: todolist/trunk/dbflute/sql2entity.bat ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/dbflute/sql2entity.sh =================================================================== --- todolist/trunk/dbflute/sql2entity.sh (rev 0) +++ todolist/trunk/dbflute/sql2entity.sh 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Invoke Sql Directory}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH + + Property changes on: todolist/trunk/dbflute/sql2entity.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: todolist/trunk/mydbflute/README.txt =================================================================== --- todolist/trunk/mydbflute/README.txt (rev 0) +++ todolist/trunk/mydbflute/README.txt 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: todolist/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/pom.xml =================================================================== --- todolist/trunk/pom.xml (rev 0) +++ todolist/trunk/pom.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,302 @@ + + + 4.0.0 + jp.sf.pal + todolist + 1.0-SNAPSHOT + war + ToDoList + + + todolist + validate + + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-surefire-plugin + 2.3 + + + maven-deploy-plugin + + true + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.0-SNAPSHOT + + + + clean + + + + + + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + mvnrepository.com + Maven2 Repository on mvnrepository.com + http://mvnrepository.com/artifact/ + + + maven.marevol.com + Maven2 Repository on marevol.com + http://maven2.marevol.com/ + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + portlet-api + portlet-api + 1.0 + provided + + + org.apache.portals.bridges + portals-bridges-portletfilter + 1.0.4 + + + logkit + logkit + + + avalon-framework + avalon-framework + + + javax.servlet + servlet-api + + + log4j + log4j + + + + + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + + jstl + jstl + 1.1.2 + + + taglibs + standard + 1.1.2 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 1.3 + + + commons-lang + commons-lang + 2.3 + + + commons-validator + commons-validator + 1.2.0 + + + commons-logging + commons-logging + 1.0.4 + + + log4j + log4j + 1.2.13 + jar + + + + org.apache.portals.jetspeed-2 + jetspeed-api + 2.1.3 + provided + + + junit + junit + + + + + javax.servlet + servlet-api + 2.3 + provided + + + + org.seasar.container + s2-extension + 2.4.29 + + + log4j + log4j + + + junit + junit + + + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.easymock + easymock + + + junit + junit + + + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + org.easymock + easymock + + + commons-logging + commons-logging + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.1.1 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + junit + junit + + + + + + org.seasar.dao + s2-dao + 1.0.48 + + + org.seasar.dao + s2-dao-tiger + 1.0.48 + + + com.h2database + h2 + 1.0.79 + + + + Property changes on: todolist/trunk/pom.xml ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/config/erd/todolist.erd =================================================================== --- todolist/trunk/src/main/config/erd/todolist.erd (rev 0) +++ todolist/trunk/src/main/config/erd/todolist.erd 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1515 @@ + + + + + + + user_info + User Information + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 566 + 757 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 40 + 1201 + -1 + -1 + + + + + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 44 + 389 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 864 + 1201 + -1 + -1 + + + + + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 872 + 389 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + FK_from_mapping_to_user + + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + todo_mapping + ToDo Mapping + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + true + + + + status + Status + + INT + Integer + false + 4 + + 10 + true + false + + false + + + + memo + Memo + + 255 + false + false + + false + + + + todo_id + ToDo ID + + 20 + true + false + + false + + + + + category_id + Category ID + + 20 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 580 + 40 + -1 + -1 + + + + + FK_from_mapping_to_todo + + + + id + ID + + 20 + true + true + + true + + + + + + + + + + todo + ToDo + + + + + name + Name + + 100 + true + false + + false + + + + description + Description + + 200 + false + false + + false + + + + priority + Priority + + 50 + true + false + + false + + + + status + Status + + 100 + true + false + + false + + + + start_date + Start Date + + 100 + false + false + + false + + + + end_date + End Date + + 255 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 305 + 389 + -1 + -1 + + + + FK_from_todo_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_mapping_to_category + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + true + + + + + + + + + + todo_category + ToDo Category + + + + + name + Name + + 100 + true + false + + false + + + + sort_order + Sort Order + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 1 + + + user_id + User ID + + 255 + true + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + + + 583 + 389 + -1 + -1 + + + + FK_from_category_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + hsqldb + false + /home/taro/.m2/repository/com/h2database/h2/1.0.79/h2-1.0.79.jar + org.h2.Driver + jdbc:h2:tcp://localhost:9092/todolist + sa + + + + false + + + + 2 + + + + + + \ No newline at end of file Added: todolist/trunk/src/main/config/sql/todolist.ddl =================================================================== --- todolist/trunk/src/main/config/sql/todolist.ddl (rev 0) +++ todolist/trunk/src/main/config/sql/todolist.ddl 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,155 @@ +DROP TABLE todo_mapping; +DROP TABLE todo_category; +DROP TABLE todo; +DROP TABLE role_mapping; +DROP TABLE group_mapping; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; + +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: ToDo +**********************************/ +CREATE TABLE todo( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + description VARCHAR(200), + priority INTEGER NOT NULL, + status INTEGER NOT NULL, + start_date TIMESTAMP, + end_date TIMESTAMP, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (created_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: ToDo Category +**********************************/ +CREATE TABLE todo_category( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 1 NOT NULL, + user_id VARCHAR(255) NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + FOREIGN KEY (user_id) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: ToDo Mapping +**********************************/ +CREATE TABLE todo_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + status INT NOT NULL, + memo VARCHAR(255), + todo_id BIGINT(20) NOT NULL, + user_id VARCHAR(255) NOT NULL, + category_id BIGINT(20), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (todo_id) REFERENCES todo (id), + FOREIGN KEY (category_id) REFERENCES todo_category (id) +); + Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/ToDoListConstants.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/ToDoListConstants.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/ToDoListConstants.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,12 @@ +package jp.sf.pal.todolist; + +public class ToDoListConstants { + + public static final int WORKING = 1; + + public static final int COMPLETED = 10; + + public static final int DELETE_MAPPING_MODE = 5; + + public static final String GUEST_NAME = "guest"; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/ToDoListConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,74 @@ +package jp.sf.pal.todolist.action; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.form.ConfigForm; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class ConfigAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(ConfigAction.class); + + @ActionForm + private ConfigForm configForm; + + private transient HttpServletRequest request; + + protected String displayIndex() { + configForm.guestName = ConfigUtil.getString( + ToDoListConstants.GUEST_NAME, "guest"); + return "index.jsp"; + } + + @Execute(validator = false, input = "index.jsp") + public String index() { + ConfigUtil.init(request); + return displayIndex(); + } + + @Execute(validator = false, input = "index.jsp") + public String update() { + ConfigUtil.init(request); + ConfigUtil.setProperty(ToDoListConstants.GUEST_NAME, + configForm.guestName); + try { + ConfigUtil.save(); + SAStrutsUtil.addMessage(request, "success.update_config"); + + return displayIndex(); + } catch (ConfigurationException e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_config"); + } + } + + public ConfigForm getConfigForm() { + return configForm; + } + + public void setConfigForm(ConfigForm configForm) { + this.configForm = configForm; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,337 @@ +package jp.sf.pal.todolist.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.common.CommonConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.dxo.CategoryDxo; +import jp.sf.pal.todolist.form.user.CategoryForm; +import jp.sf.pal.todolist.pager.CategoryPager; +import jp.sf.pal.todolist.service.CategoryService; +import jp.sf.pal.todolist.util.ToDoListUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CategoryAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CategoryAction.class); + + // for list + + public List categoryItems; + + // for edit/confirm/delete + + @ActionForm + private CategoryForm categoryForm; + + private CategoryService categoryService; + + private CategoryPager categoryPager; + + private PagerDxo pagerDxo; + + private CategoryDxo categoryDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + String userId = ToDoListUtil.getUserId(request); + categoryItems = categoryService.getTodoCategoryList(categoryPager, + userId); + + // restore from pager + // categoryForm.categoryname = categoryPager.getCategoryname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(categoryForm, categoryPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // categoryPager.setCategoryname(categoryForm.categoryname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + categoryPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{groupId}") + public String confirmpage() { + if (categoryForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + categoryForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + categoryForm.initialize(); + categoryForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{groupId}") + public String editpage() { + if (categoryForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, categoryForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + categoryForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{groupId}") + public String deletepage() { + if (categoryForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + categoryForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + categoryForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + TodoCategory todoCategory = createTodoCategory(); + categoryService.store(todoCategory); + SAStrutsUtil.addMessage(request, "success.create_category"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_category"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + TodoCategory todoCategory = createTodoCategory(); + categoryService.store(todoCategory); + SAStrutsUtil.addMessage(request, "success.update_category"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + categoryService.disable(Long.parseLong(categoryForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_category"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_category"); + } + } + + private void loadCategory() { + String userId = ToDoListUtil.getUserId(request); + TodoCategory todoCategory = categoryService.getTodoCategory(Long + .parseLong(categoryForm.id), userId); + if (todoCategory == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + categoryDxo.convertFromCategoryToForm(todoCategory, categoryForm); + + } + + private TodoCategory createTodoCategory() { + String userId = ToDoListUtil.getUserId(request); + TodoCategory todoCategory; + if (categoryForm.mode == CommonConstants.EDIT_MODE) { + todoCategory = categoryService.getTodoCategory(Long + .parseLong(categoryForm.id), userId); + todoCategory.setUpdatedBy(request.getRemoteUser()); + } else { + todoCategory = new TodoCategory(); + todoCategory.setUserId(userId); + todoCategory.setUpdatedBy(userId); + todoCategory.setCreatedBy(userId); + } + categoryDxo.convertFromFormToCategory(categoryForm, todoCategory); + + return todoCategory; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CategoryForm getCategoryForm() { + return categoryForm; + } + + public void setCategoryForm(CategoryForm categoryForm) { + this.categoryForm = categoryForm; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public CategoryPager getCategoryPager() { + return categoryPager; + } + + public void setCategoryPager(CategoryPager categoryPager) { + this.categoryPager = categoryPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CategoryDxo getCategoryDxo() { + return categoryDxo; + } + + public void setCategoryDxo(CategoryDxo categoryDxo) { + this.categoryDxo = categoryDxo; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,500 @@ +package jp.sf.pal.todolist.action.user; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.CommonConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.DateUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.dxo.TodoDxo; +import jp.sf.pal.todolist.form.user.TodoForm; +import jp.sf.pal.todolist.pager.TodoPager; +import jp.sf.pal.todolist.service.CategoryService; +import jp.sf.pal.todolist.service.TodoService; +import jp.sf.pal.todolist.util.ToDoListUtil; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class TodoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(TodoAction.class); + + // for list + + public List todoItems; + + // for edit/confirm/delete + + @ActionForm + private TodoForm todoForm; + + private TodoService todoService; + + private CategoryService categoryService; + + private TodoPager todoPager; + + private PagerDxo pagerDxo; + + private TodoDxo todoDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + String userId = ToDoListUtil.getUserId(request); + todoItems = todoService.getTodoMappingList(todoPager, userId); + + // restore from pager + // todoForm.todoname = todoPager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(todoForm, todoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // todoPager.setGroupInfoname(todoForm.todoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + todoPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (todoForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + todoForm.initialize(); + todoForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (todoForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + todoForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (todoForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletemappingpage/{mode}/{id}") + public String deletemappingpage() { + if (todoForm.mode != ToDoListConstants.DELETE_MAPPING_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + todoForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletemappingpagefromconfirm() { + todoForm.mode = ToDoListConstants.DELETE_MAPPING_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Todo todo = createTodo(); + todoService.store(todo); + SAStrutsUtil.addMessage(request, "success.create_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_todo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Todo todo = createTodo(); + todoService.store(todo); + + TodoMapping todoMapping = createTodoMapping(); + todoService.store(todoMapping); + + SAStrutsUtil.addMessage(request, "success.update_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_todo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String updatemapping() { + try { + TodoMapping todoMapping = createTodoMapping(); + todoService.store(todoMapping); + SAStrutsUtil.addMessage(request, "success.update_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_todo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + todoService.disable(Long.parseLong(todoForm.idForTodo), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_todo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String deletemapping() { + try { + todoService.disableMapping(Long.parseLong(todoForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_todo"); + } + } + + private void loadTodoMapping() { + String userId = ToDoListUtil.getUserId(request); + TodoMapping todo = todoService.getTodoMapping(Long + .parseLong(todoForm.id), userId); + if (todo == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_todo", + new Object[] { todoForm.id }); + } + todoDxo.convertFromTodoMappingToForm(todo, todoForm); + + } + + private Todo createTodo() { + String userId = ToDoListUtil.getUserId(request); + Todo todo; + if (todoForm.mode == CommonConstants.EDIT_MODE) { + TodoMapping todoMapping = todoService.getTodoMapping(Long + .parseLong(todoForm.id), userId); + if (todoMapping == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_todo", + new Object[] { todoForm.id }); + } + todo = todoMapping.getTodo(); + todo.setUpdatedBy(userId); + } else { + todo = new Todo(); + todo.setUpdatedBy(userId); + todo.setCreatedBy(userId); + + List todoMappingList = new ArrayList(); + todoMappingList.add(new TodoMapping(userId)); + todo.setTodoMappingList(todoMappingList); + } + todoDxo.convertFromFormToTodo(todoForm, todo); + + return todo; + } + + private TodoMapping createTodoMapping() { + String userId = ToDoListUtil.getUserId(request); + TodoMapping todoMapping; + todoMapping = todoService.getTodoMapping(Long.parseLong(todoForm.id), + userId); + todoMapping.setUpdatedBy(userId); + todoDxo.convertFromFormToTodoMapping(todoForm, todoMapping); + + if (StringUtils.isEmpty(todoForm.categoryId)) { + todoMapping.setCategoryId(null); + } + + return todoMapping; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getYearItems() { + int year = DateUtil.getYear(new Date()) + 1900; + List list = new ArrayList(); + for (int i = year - 5; i < year + 5; i++) { + list.add(String.valueOf(i)); + } + return list; + } + + public List getMonthItems() { + List list = new ArrayList(); + for (int i = 1; i < 13; i++) { + list.add(String.valueOf(i)); + } + return list; + } + + public List getDateItems() { + List list = new ArrayList(); + for (int i = 1; i < 32; i++) { + list.add(String.valueOf(i)); + } + return list; + } + + public List getCategoryItems() { + String userId = ToDoListUtil.getUserId(request); + return categoryService.getTodoCategoryList(userId); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public TodoForm getGroupInfoForm() { + return todoForm; + } + + public void setGroupInfoForm(TodoForm todoForm) { + this.todoForm = todoForm; + } + + public TodoService getGroupInfoService() { + return todoService; + } + + public void setGroupInfoService(TodoService todoService) { + this.todoService = todoService; + } + + public TodoPager getGroupInfoPager() { + return todoPager; + } + + public void setGroupInfoPager(TodoPager todoPager) { + this.todoPager = todoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public TodoDxo getGroupInfoDxo() { + return todoDxo; + } + + public void setGroupInfoDxo(TodoDxo todoDxo) { + this.todoDxo = todoDxo; + } + + public TodoForm getTodoForm() { + return todoForm; + } + + public void setTodoForm(TodoForm todoForm) { + this.todoForm = todoForm; + } + + public TodoService getTodoService() { + return todoService; + } + + public void setTodoService(TodoService todoService) { + this.todoService = todoService; + } + + public TodoPager getTodoPager() { + return todoPager; + } + + public void setTodoPager(TodoPager todoPager) { + this.todoPager = todoPager; + } + + public TodoDxo getTodoDxo() { + return todoDxo; + } + + public void setTodoDxo(TodoDxo todoDxo) { + this.todoDxo = todoDxo; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonConstants.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonConstants.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonConstants.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.common; + +public class CommonConstants { + public static final int LIST_MODE = 0; + + public static final int CREATE_MODE = 1; + + public static final int EDIT_MODE = 2; + + public static final int DELETE_MODE = 3; + + public static final int CONFIRM_MODE = 4; + + public static final String TIMESTAMP_PATTERN = "yyyy/MM/dd HH:mm:ss"; + + public static final String TRUE = "T"; + + public static final String FALSE = "F"; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.todolist.common; + +/** + * @author shinsuke + */ +public class CommonException extends Exception { + + /** + * Serial Version UID + */ + private static final long serialVersionUID = 4564000116499132363L; + + private String messageId; + + private Object[] args; + + /** + * @return Returns the messageId. + */ + public String getMessageId() { + return messageId; + } + + /** + * @param messageId The messageId to set. + */ + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * @return Returns the args. + */ + public Object[] getArgs() { + return args; + } + + /** + * @param args The args to set. + */ + public void setArgs(Object[] args) { + this.args = args; + } + + public CommonException(String messageId) { + super(messageId); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args) { + super(messageId); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message, Throwable cause) { + super(message, cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message, + Throwable cause) { + super(message, cause); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message) { + super(message); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message) { + super(message); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, Throwable cause) { + super(cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, Throwable cause) { + super(cause); + this.messageId = messageId; + this.args = args; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/CommonException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/creator/PagerCreator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/creator/PagerCreator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/creator/PagerCreator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,29 @@ +package jp.sf.pal.todolist.common.creator; + +import org.seasar.framework.container.ComponentCustomizer; +import org.seasar.framework.container.assembler.AutoBindingDefFactory; +import org.seasar.framework.container.creator.ComponentCreatorImpl; +import org.seasar.framework.container.deployer.InstanceDefFactory; +import org.seasar.framework.convention.NamingConvention; + +/** + * @author shinsuke + */ +public class PagerCreator extends ComponentCreatorImpl { + public static final String SUFFIX = "Pager"; + + public PagerCreator(NamingConvention namingConvention) { + super(namingConvention); + setNameSuffix(SUFFIX); + setInstanceDef(InstanceDefFactory.SESSION); + setAutoBindingDef(AutoBindingDefFactory.NONE); + } + + public ComponentCustomizer getPagerCustomizer() { + return getCustomizer(); + } + + public void setPagerCustomizer(ComponentCustomizer customizer) { + setCustomizer(customizer); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/creator/PagerCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/dxo/PagerDxo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/dxo/PagerDxo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/dxo/PagerDxo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,24 @@ +package jp.sf.pal.todolist.common.dxo; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; +import jp.sf.pal.todolist.common.pager.DefaultPager; +import jp.sf.pal.todolist.common.util.PagingResultBeanWrapper; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface PagerDxo extends Serializable { + + @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" + + ",currentPageNumber : currentPageNumber" + + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" + + ",existNextPage : existNextPage") + public void convert(PagingResultBeanWrapper result, DefaultPager pager); + + @ExcludeNull + @ConversionRule(// "pageSize : pageSize, " + + "currentPageNumber : pageNumber") + public void convert(PagingResultForm page, DefaultPager pager); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/dxo/PagerDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/form/PagingResultForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/form/PagingResultForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/form/PagingResultForm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,5 @@ +package jp.sf.pal.todolist.common.form; + +public interface PagingResultForm { + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/form/PagingResultForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/pager/DefaultPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/pager/DefaultPager.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/pager/DefaultPager.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,101 @@ +package jp.sf.pal.todolist.common.pager; + +import java.io.Serializable; +import java.util.List; + +public abstract class DefaultPager implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DEFAULT_PAGE_SIZE = 50; + + public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; + + private int allRecordCount; + + private int allPageCount; + + private boolean existPrePage; + + private boolean existNextPage; + + private List pageNumberList; + + private int pageSize; + + private int currentPageNumber; + + public void clear() { + pageSize = getDefaultPageSize(); + currentPageNumber = getDefaultCurrentPageNumber(); + } + + protected int getDefaultPageSize() { + return DEFAULT_PAGE_SIZE; + } + + protected int getDefaultCurrentPageNumber() { + return DEFAULT_CURRENT_PAGE_NUMBER; + } + + public int getAllRecordCount() { + return allRecordCount; + } + + public void setAllRecordCount(int allRecordCount) { + this.allRecordCount = allRecordCount; + } + + public int getAllPageCount() { + return allPageCount; + } + + public void setAllPageCount(int allPageCount) { + this.allPageCount = allPageCount; + } + + public boolean isExistPrePage() { + return existPrePage; + } + + public void setExistPrePage(boolean existPrePage) { + this.existPrePage = existPrePage; + } + + public boolean isExistNextPage() { + return existNextPage; + } + + public void setExistNextPage(boolean existNextPage) { + this.existNextPage = existNextPage; + } + + public int getPageSize() { + if (pageSize <= 0) { + pageSize = getDefaultPageSize(); + } + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNumber() { + if (currentPageNumber <= 0) { + currentPageNumber = getDefaultCurrentPageNumber(); + } + return currentPageNumber; + } + + public void setCurrentPageNumber(int currentPageNumber) { + this.currentPageNumber = currentPageNumber; + } + + public List getPageNumberList() { + return pageNumberList; + } + + public void setPageNumberList(List pageNumberList) { + this.pageNumberList = pageNumberList; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/pager/DefaultPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/ConfigUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/ConfigUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/ConfigUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,207 @@ +package jp.sf.pal.todolist.common.util; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.XMLConfiguration; + +public class ConfigUtil { + + public static final String CONFIG_PATH = "/WEB-INF/todolist.xml"; + + private static XMLConfiguration config; + + public static void init(HttpServletRequest request) { + if (config == null) { + synchronized (ConfigUtil.class) { + if (config == null) { + try { + config = new XMLConfiguration(SAStrutsUtil.getRealPath( + request, CONFIG_PATH)); + } catch (ConfigurationException e) { + throw new IllegalStateException( + "Could not load a config file: " + + SAStrutsUtil.getRealPath(request, + CONFIG_PATH), e); + } + } + } + } + } + + public static void save() throws ConfigurationException { + config.save(); + } + + public static void addProperty(String s, Object obj) { + config.addProperty(s, obj); + } + + public static void clear() { + config.clear(); + } + + public static void clearProperty(String s) { + config.clearProperty(s); + } + + public static boolean containsKey(String s) { + return config.containsKey(s); + } + + public static BigDecimal getBigDecimal(String s, BigDecimal bigdecimal) { + return config.getBigDecimal(s, bigdecimal); + } + + public static BigDecimal getBigDecimal(String s) { + return config.getBigDecimal(s); + } + + public static BigInteger getBigInteger(String s, BigInteger biginteger) { + return config.getBigInteger(s, biginteger); + } + + public static BigInteger getBigInteger(String s) { + return config.getBigInteger(s); + } + + public static boolean getBoolean(String s, boolean flag) { + return config.getBoolean(s, flag); + } + + public static Boolean getBoolean(String s, Boolean boolean1) { + return config.getBoolean(s, boolean1); + } + + public static boolean getBoolean(String s) { + return config.getBoolean(s); + } + + public static byte getByte(String s, byte byte0) { + return config.getByte(s, byte0); + } + + public static Byte getByte(String s, Byte byte1) { + return config.getByte(s, byte1); + } + + public static byte getByte(String s) { + return config.getByte(s); + } + + public static double getDouble(String s, double d) { + return config.getDouble(s, d); + } + + public static Double getDouble(String s, Double double1) { + return config.getDouble(s, double1); + } + + public static double getDouble(String s) { + return config.getDouble(s); + } + + public static float getFloat(String s, float f) { + return config.getFloat(s, f); + } + + public static Float getFloat(String s, Float float1) { + return config.getFloat(s, float1); + } + + public static float getFloat(String s) { + return config.getFloat(s); + } + + public static int getInt(String s, int i) { + return config.getInt(s, i); + } + + public static int getInt(String s) { + return config.getInt(s); + } + + public static Integer getInteger(String s, Integer integer) { + return config.getInteger(s, integer); + } + + public static Iterator getKeys() { + return config.getKeys(); + } + + public static Iterator getKeys(String s) { + return config.getKeys(s); + } + + public static List getList(String s, List list) { + return config.getList(s, list); + } + + public static List getList(String s) { + return config.getList(s); + } + + public static long getLong(String s, long l) { + return config.getLong(s, l); + } + + public static Long getLong(String s, Long long1) { + return config.getLong(s, long1); + } + + public static long getLong(String s) { + return config.getLong(s); + } + + public static Properties getProperties(String s) { + return config.getProperties(s); + } + + public static Object getProperty(String s) { + return config.getProperty(s); + } + + public static short getShort(String s, short word0) { + return config.getShort(s, word0); + } + + public static Short getShort(String s, Short short1) { + return config.getShort(s, short1); + } + + public static short getShort(String s) { + return config.getShort(s); + } + + public static String getString(String s, String s1) { + return config.getString(s, s1); + } + + public static String getString(String s) { + return config.getString(s); + } + + public static String[] getStringArray(String s) { + return config.getStringArray(s); + } + + public static boolean isEmpty() { + return config.isEmpty(); + } + + public static void setProperty(String s, Object obj) { + config.setProperty(s, obj); + } + + public static Configuration subset(String s) { + return config.subset(s); + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/ConfigUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/DateUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/DateUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/DateUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,251 @@ +/* + * Copyright 2004-2007 The Portal Application Laboratory Team. Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License + * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable + * law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.todolist.common.util; + +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class DateUtil { + /** + * Logger for this class + */ + private static final Log log = LogFactory.getLog(DateUtil.class); + + /** + * Allocates a Date object and initializes it so that it represents + * midnight, local time, at the beginning of the day specified by the year, + * month, and date arguments. + * + * @param year + * @param month + * @param date + * @return + */ + public static Date get(int year, int month, int date) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int) - : year=" + year + ", month=" + + month + ", date=" + date); + } + + return get(year, month, date, 0, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the minute specified by the year, month, date, + * hrs, and min arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min); + } + + return get(year, month, date, hrs, min, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, and sec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec); + } + + return get(year, month, date, hrs, min, sec, 0); + + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, sec and millisec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @param millisec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec, int millisec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec + ", millisec=" + + millisec); + } + + Calendar cal = Calendar.getInstance(); + cal.set(year + 1900, month, date, hrs, min, sec); + cal.set(Calendar.MILLISECOND, millisec); + return cal.getTime(); + + } + + /** + * Returns a value that is the result of subtracting 1900 from the year that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getYear(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.YEAR) - 1900; + } + + /** + * Returns a number representing the month that contains or begins with the + * instant in time represented by this Date object. The value returned is + * between 0 and 11, with the value 0 representing January. + * + * @param d + * @return + */ + public static int getMonth(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MONTH); + } + + /** + * Returns the day of the month represented by this Date object. The value + * returned is between 1 and 31 representing the day of the month that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDate(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_MONTH); + } + + /** + * Returns the day of the week represented by this date. The returned value + * (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = + * Friday, 6 = Saturday) represents the day of the week that contains or + * begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDay(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + } + + /** + * Returns the hour represented by this Date object. The returned value is a + * number (0 through 23) representing the hour within the day that contains + * or begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getHours(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.HOUR_OF_DAY); + } + + /** + * Returns the number of minutes past the hour represented by this date, as + * interpreted in the local time zone. The value returned is between 0 and + * 59. + * + * @param d + * @return + */ + public static int getMinutes(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MINUTE); + } + + /** + * Returns the number of seconds past the minute represented by this date. + * The value returned is between 0 and 61. The values 60 and 61 can only + * occur on those Java Virtual Machines that take leap seconds into account. + * + * @param d + * @return + */ + public static int getSeconds(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.SECOND); + } + + public static Integer calculateAge(Date date) { + if (date == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int age = DateUtil.getYear(now) - DateUtil.getYear(date); + if (age > 0) { + if (DateUtil.getMonth(now) < DateUtil.getMonth(date)) { + if (DateUtil.getDate(now) < DateUtil.getDate(date)) { + age--; + } + } + return new Integer(age); + } + return null; + } + + public static Date calculateDate(Integer age) { + if (age == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int year = DateUtil.getYear(now) - age.intValue(); + + return DateUtil.get(year, DateUtil.getMonth(now), + DateUtil.getDate(now), 0, 0, 0, 0); + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/DateUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/PagingResultBeanWrapper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/PagingResultBeanWrapper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/PagingResultBeanWrapper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,68 @@ +package jp.sf.pal.todolist.common.util; + +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; + +public class PagingResultBeanWrapper { + private PagingResultBean pagingResultBean; + + public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public PagingResultBean getPagingResultBean() { + return pagingResultBean; + } + + public void setPagingResultBean(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public int getAllRecordCount() { + return pagingResultBean.getAllRecordCount(); + } + + public void setAllRecordCount(int allRecordCount) { + pagingResultBean.setAllRecordCount(allRecordCount); + } + + public int getPageSize() { + return pagingResultBean.getPageSize(); + } + + public void setPageSize(int pageSize) { + pagingResultBean.setPageSize(pageSize); + } + + public int getCurrentPageNumber() { + return pagingResultBean.getCurrentPageNumber(); + } + + public void setCurrentPageNumber(int currentPageNumber) { + pagingResultBean.setCurrentPageNumber(currentPageNumber); + } + + public int getAllPageCount() { + return pagingResultBean.getAllPageCount(); + } + + public void setAllPageCount(int allPageCount) { + // nothing + } + + public boolean isExistPrePage() { + return pagingResultBean.isExistPrePage(); + } + + public void setExistPrePage(boolean existPrePage) { + // nothing + } + + public boolean isExistNextPage() { + return pagingResultBean.isExistNextPage(); + } + + public void setExistNextPage(boolean existNextPage) { + // nothing + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/PagingResultBeanWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/SAStrutsUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/SAStrutsUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/SAStrutsUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,76 @@ +package jp.sf.pal.todolist.common.util; + +import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.seasar.struts.portlet.util.PortletUtil; +import org.seasar.struts.util.ActionMessagesUtil; + +public class SAStrutsUtil { + + public static void addMessage(HttpServletRequest request, String key) { + ActionMessages msgs = new ActionMessages(); + msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key)); + ActionMessagesUtil.saveMessages(request, msgs); + } + + public static PortletRequest getPortletRequest(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest; + } + return null; + } + + public static PortletConfig getPortletConfig(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig; + } + return null; + } + + public static PortletContext getPortletContext(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig.getPortletContext(); + } + return null; + } + + public static String getRealPath(HttpServletRequest request, String path) { + PortletContext portletContext = getPortletContext(request); + if (portletContext != null) { + return portletContext.getRealPath(path); + } + return path; + } + + public static String getRequestParameter(HttpServletRequest request, + String key) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getParameter(key); + } + return null; + } + + public static PortletSession getPortletSession(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getPortletSession(); + } + return null; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/common/util/SAStrutsUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/AccessContext.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/AccessContext.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/AccessContext.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,315 @@ +package jp.sf.pal.todolist.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of DB access. + * + * @author DBFlute(AutoGenerator) + */ +public class AccessContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get access-context on thread. + * + * @return The context of DB access.. (Nullable) + */ + public static AccessContext getAccessContextOnThread() { + return (AccessContext) _threadLocal.get(); + } + + /** + * Set access-context on thread. + * + * @param accessContext The context of DB access.. (NotNull) + */ + public static void setAccessContextOnThread(AccessContext accessContext) { + if (accessContext == null) { + String msg = "The argument[accessContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(accessContext); + } + + /** + * Is existing access-context on thread? + * + * @return Determination. + */ + public static boolean isExistAccessContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear access-context on thread. + */ + public static void clearAccessContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Access Information + // ================== + /** + * Get access user on thread. + *

    + * If it can't get access user from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access user. (NotNull) + */ + public static String getAccessUserOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessUser = userContextOnThread.getAccessUser(); + if (accessUser != null) { + return accessUser; + } + } + return "Anonymous";// as Default + } + + /** + * Get access process on thread. + *

    + * If it can't get access process from access-context, returns 'Anonymous' + * as default value! + *

    + * + * @return Access process. (NotNull) + */ + public static String getAccessProcessOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessProcess = userContextOnThread.getAccessProcess(); + if (accessProcess != null) { + return accessProcess; + } + } + return "Anonymous";// as Default + } + + /** + * Get access module on thread. + *

    + * If it can't get access module from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access module. (NotNull) + */ + public static String getAccessModuleOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessModule = userContextOnThread.getAccessModule(); + if (accessModule != null) { + return accessModule; + } + } + return "Anonymous";// as Default + } + + /** + * Get access date on thread. + *

    + * If it can't get access date from access-context, returns application + * current time as default value! + *

    + * + * @return Access date. (NotNull) + */ + public static java.util.Date getAccessDateOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.util.Date accessDate = userContextOnThread + .getAccessDate(); + if (accessDate != null) { + return accessDate; + } + if (userContextOnThread.getAccessDateProvider() != null) { + return userContextOnThread.getAccessDateProvider() + .getAccessDate(); + } + } + return new java.util.Date();// as Default + } + + /** + * Get access timestamp on thread. + *

    + * If it can't get access timestamp from access-context, returns application + * current time as default value! + *

    + * + * @return Access timestamp. (NotNull) + */ + public static java.sql.Timestamp getAccessTimestampOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.sql.Timestamp accessTimestamp = userContextOnThread + .getAccessTimestamp(); + if (accessTimestamp != null) { + return accessTimestamp; + } + if (userContextOnThread.getAccessTimestampProvider() != null) { + return userContextOnThread.getAccessTimestampProvider() + .getAccessTimestamp(); + } + } + return new java.sql.Timestamp(System.currentTimeMillis());// as Default + } + + /** + * Get access value on thread. + *

    + * If it can't get access value from access-context, returns null as default + * value! + *

    + * + * @param key Key. (NotNull) + * @return Access value. (Nullable) + */ + public static Object getAccessValueOnThread(String key) { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final Map accessValueMap = userContextOnThread + .getAccessValueMap(); + if (accessValueMap != null) { + return accessValueMap.get(key); + } + } + return null;// as Default + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected String accessUser; + + protected String accessProcess; + + protected String accessModule; + + protected java.util.Date accessDate; + + protected AccessDateProvider accessDateProvider; + + protected java.sql.Timestamp accessTimestamp; + + protected AccessTimestampProvider accessTimestampProvider; + + protected Map accessValueMap; + + //========================================================================== + // ========= + // Accessor + // ======== + public String getAccessUser() { + return accessUser; + } + + public void setAccessUser(String accessUser) { + this.accessUser = accessUser; + } + + public String getAccessProcess() { + return accessProcess; + } + + public void setAccessProcess(String accessProcess) { + this.accessProcess = accessProcess; + } + + public String getAccessModule() { + return accessModule; + } + + public void setAccessModule(String accessModule) { + this.accessModule = accessModule; + } + + public java.util.Date getAccessDate() { + return accessDate; + } + + public void setAccessDate(java.util.Date accessDate) { + this.accessDate = accessDate; + } + + public AccessDateProvider getAccessDateProvider() { + return accessDateProvider; + } + + public void setAccessDateProvider(AccessDateProvider accessDateProvider) { + this.accessDateProvider = accessDateProvider; + } + + public java.sql.Timestamp getAccessTimestamp() { + return accessTimestamp; + } + + public void setAccessTimestamp(java.sql.Timestamp accessTimestamp) { + this.accessTimestamp = accessTimestamp; + } + + public AccessTimestampProvider getAccessTimestampProvider() { + return accessTimestampProvider; + } + + public void setAccessTimestampProvider( + AccessTimestampProvider accessTimestampProvider) { + this.accessTimestampProvider = accessTimestampProvider; + } + + public Map getAccessValueMap() { + return accessValueMap; + } + + public void registerAccessValue(String key, Object value) { + if (accessValueMap == null) { + accessValueMap = new HashMap(); + } + accessValueMap.put(key, value); + } + + //========================================================================== + // ========= + // Provider Interface + // ================== + /** + * The provider interface of access date. + */ + public static interface AccessDateProvider { + + /** + * Get access date. + * + * @return Access date. (NotNull) + */ + public java.util.Date getAccessDate(); + } + + /** + * The provider interface of access date. + */ + public static interface AccessTimestampProvider { + + /** + * Get access timestamp. + * + * @return Access timestamp. (NotNull) + */ + public java.sql.Timestamp getAccessTimestamp(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/AccessContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BFinder.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BFinder.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BFinder.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,110 @@ +package jp.sf.pal.todolist.db.allcommon; + +import jp.sf.pal.todolist.db.allcommon.bhv.BehaviorReadable; + +/** + * The entry of DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BFinder { + + //========================================================================== + // ========= + // Definition + // ========== + protected static String _dbfluteDiconName = "dbflute.dicon"; + + //========================================================================== + // ========= + // Constructor + // =========== + private BFinder() { + } + + //========================================================================== + // ========= + // Finder + // ====== + public static BEHAVIOR_TYPE find( + Class behaviorType) { + assertObjectNotNull("behaviorType", behaviorType); + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + synchronized (BFinder.class) { + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + final String configFile = _dbfluteDiconName; + if (org.seasar.framework.util.ResourceUtil + .isExist(configFile)) { + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .setConfigPath(configFile); + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .init(); + } else { + String msg = "S2Container is not initialized! Confirm your initializer and your dicon files."; + throw new IllegalStateException(msg); + } + } + } + } + final org.seasar.framework.container.S2Container container = org.seasar.framework.container.factory.SingletonS2ContainerFactory + .getContainer(); + final BEHAVIOR_TYPE behavior = (BEHAVIOR_TYPE) container + .getComponent(behaviorType); + return behavior; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public static void setDBFluteDiconName(String dbfluteDiconName) { + _dbfluteDiconName = dbfluteDiconName; + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BFinder.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BehaviorSelector.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BehaviorSelector.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BehaviorSelector.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,35 @@ +package jp.sf.pal.todolist.db.allcommon; + +import jp.sf.pal.todolist.db.allcommon.bhv.BehaviorReadable; + +/** + * The interface of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorSelector { + + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData(); + + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType); + + /** + * Select behavior-readable. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/BehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheAbstractSelector.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheAbstractSelector.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheAbstractSelector.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,115 @@ +package jp.sf.pal.todolist.db.allcommon; + +import org.seasar.framework.container.ComponentNotFoundRuntimeException; +import org.seasar.framework.container.S2Container; + +/** + * The abstract class of cache-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class CacheAbstractSelector { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The container of Seasar. */ + protected S2Container _container; + + //========================================================================== + // ========= + // Component + // ========= + public COMPONENT getComponent(Class componentType) { + assertObjectNotNull("componentType", componentType); + assertObjectNotNull("_container", _container); + try { + return (COMPONENT) _container.getComponent(componentType); + } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't + // come. + final COMPONENT component; + try { + // for HotDeploy Mode + component = (COMPONENT) _container.getRoot().getComponent( + componentType); + } catch (ComponentNotFoundRuntimeException ignored) { + throw e; + } + _container = _container.getRoot(); // Change container. + return component; + } + } + + //========================================================================== + // ========= + // Destroy + // ======= + public void destroy() { + _container = null; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected String initUncap(String str) { + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setContainer(S2Container container) { + this._container = container; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheAbstractSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheBehaviorSelector.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheBehaviorSelector.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheBehaviorSelector.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,131 @@ +package jp.sf.pal.todolist.db.allcommon; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.bhv.BehaviorReadable; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.util.TraceViewUtil; + +/** + * The implementation of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheBehaviorSelector extends CacheAbstractSelector implements + BehaviorSelector { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(CacheBehaviorSelector.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The cache of behavior. (It's the generic hell!) */ + protected Map, BehaviorReadable> _behaviorCache = new LinkedHashMap, BehaviorReadable>(); + + //========================================================================== + // ========= + // Initialize + // ========== + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData() { + final Map dbmetaMap = DBMetaInstanceHandler + .getDBMetaMap(); + final Collection dbmetas = dbmetaMap.values(); + long before = 0; + if (_log.isInfoEnabled()) { + before = System.currentTimeMillis(); + _log + .info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()"); + } + for (DBMeta dbmeta : dbmetas) { + final BehaviorReadable bhv = byName(dbmeta.getTableDbName()); + final DaoReadable dao = bhv.getDaoReadable(); + dao.initializeDaoMetaData("selectList"); + } + if (_log.isInfoEnabled()) { + long after = System.currentTimeMillis(); + _log.info("Initialized Count: " + dbmetas.size()); + _log.info("= = = = = = = = = =/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + "]"); + } + } + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + synchronized (_behaviorCache) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + final BEHAVIOR bhv = (BEHAVIOR) getComponent(behaviorType); + _behaviorCache.put(behaviorType, bhv); + return bhv; + } + } + + /** + * Select behavior-readable by name. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getBehaviorType(dbmeta)); + } + + /** + * Get behavior-type by dbmeta. + * + * @param dbmeta Dbmeta. (NotNull) + * @return Behavior-type. (NotNull) + */ + protected Class getBehaviorType(DBMeta dbmeta) { + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + if (behaviorTypeName == null) { + String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class behaviorType; + try { + behaviorType = (Class) Class + .forName(behaviorTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + behaviorTypeName, e); + } + return behaviorType; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheBehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheDaoSelector.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheDaoSelector.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheDaoSelector.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,66 @@ +package jp.sf.pal.todolist.db.allcommon; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; + +/** + * The implementation of DAO-selector. + * + *
    + * Long long ago this object have cache of DAO and behavior.
    + * But the cache cause wrong performance when this is initialized.
    + * So now this object don't have cache.
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheDaoSelector extends CacheAbstractSelector implements + DaoSelector { + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return DAO. (NotNull) + */ + public DAO select(Class daoType) { + return (DAO) getComponent(daoType); + } + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getDaoType(dbmeta)); + } + + protected Class getDaoType(DBMeta dbmeta) { + final String daoTypeName = dbmeta.getDaoTypeName(); + if (daoTypeName == null) { + String msg = "The dbmeta.getDaoTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class daoType; + try { + daoType = (Class) Class.forName(daoTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + daoTypeName, e); + } + return daoType; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CacheDaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CallbackContext.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CallbackContext.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CallbackContext.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,75 @@ +package jp.sf.pal.todolist.db.allcommon; + +import jp.sf.pal.todolist.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DBFluteConfig.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DBFluteConfig.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DBFluteConfig.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,314 @@ +package jp.sf.pal.todolist.db.allcommon; + +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; + +/** + * @author DBFlute(AutoGenerator) + */ +public class DBFluteConfig { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(DBFluteConfig.class); + + /** Singleton instance. */ + private static final DBFluteConfig _instance = new DBFluteConfig(); + + //========================================================================== + // ========= + // Attribute + // ========= + protected StatementConfig _defaultStatementConfig; + + protected boolean _conditionBeanFormatSql = true;// This is for + + // compatibility! + + protected boolean _queryLogLevelInfo; + + protected boolean _executeStatusLogLevelInfo; + + protected boolean _useSqlLogRegistry; + + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; + + protected boolean _sqlExceptionOldStyleHandling = false;// This is for + + // compatibility! + + protected String _logDateFormat; + + protected String _logTimestampFormat; + + protected String _outsideSqlPackage; + + protected boolean _internalDebug; + + protected boolean _locked = true; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + private DBFluteConfig() { + } + + //========================================================================== + // ========= + // Singleton + // ========= + /** + * Get instance. + * + * @return Singleton instance. (NotNull) + */ + public static DBFluteConfig getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Default Statement Config + // ======================== + public StatementConfig getDefaultStatementConfig() { + return _defaultStatementConfig; + } + + public void setDefaultStatementConfig(StatementConfig defaultStatementConfig) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting defaultStatementConfig: " + + defaultStatementConfig); + } + _defaultStatementConfig = defaultStatementConfig; + } + + //========================================================================== + // ========= + // ConditionBean Format Sql + // ======================== + public boolean isConditionBeanFormatSql() { + return _conditionBeanFormatSql; + } + + /** + * @param conditionBeanFormatSql The value of the config. + * @deprecated This is for compatibility! + */ + public void setConditionBeanFormatSql(boolean conditionBeanFormatSql) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting conditionBeanFormatSql: " + + conditionBeanFormatSql); + } + _conditionBeanFormatSql = conditionBeanFormatSql; + } + + //========================================================================== + // ========= + // Query Log Level Info + // ==================== + public boolean isQueryLogLevelInfo() { + return _queryLogLevelInfo; + } + + public void setQueryLogLevelInfo(boolean queryLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting queryLogLevelInfo: " + queryLogLevelInfo); + } + _queryLogLevelInfo = queryLogLevelInfo; + } + + //========================================================================== + // ========= + // Execute Status Log Level Info + // ============================= + public boolean isExecuteStatusLogLevelInfo() { + return _executeStatusLogLevelInfo; + } + + public void setExecuteStatusLogLevelInfo(boolean executeStatusLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting executeStatusLogLevelInfo: " + + executeStatusLogLevelInfo); + } + _executeStatusLogLevelInfo = executeStatusLogLevelInfo; + } + + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return _uniqueConstraintDeterminator; + } + + public void setUniqueConstraintDeterminator( + UniqueConstraintDeterminator uniqueConstraintDeterminator) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting uniqueConstraintDeterminator: " + + uniqueConstraintDeterminator); + } + _uniqueConstraintDeterminator = uniqueConstraintDeterminator; + } + + public static interface UniqueConstraintDeterminator { + public boolean isUniqueConstraintException(Throwable t); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // SQL Exception Old Style + // ======================= + public boolean isSqlExceptionOldStyleHandling() { + return _sqlExceptionOldStyleHandling; + } + + /** + * @param sqlExceptionOldStyleHandling The value of the config. + * @deprecated This is for compatibility! + */ + public void setSqlExceptionOldStyleHandling( + boolean sqlExceptionOldStyleHandling) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting sqlExceptionOldStyleHandling: " + + sqlExceptionOldStyleHandling); + } + _sqlExceptionOldStyleHandling = sqlExceptionOldStyleHandling; + } + + //========================================================================== + // ========= + // Log Format + // ========== + public String getLogDateFormat() { + return _logDateFormat; + } + + public void setLogDateFormat(String logDateFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logDateFormat: " + logDateFormat); + } + _logDateFormat = logDateFormat; + } + + public String getLogTimestampFormat() { + return _logTimestampFormat; + } + + public void setLogTimestampFormat(String logTimestampFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logTimestampFormat: " + logTimestampFormat); + } + _logTimestampFormat = logTimestampFormat; + } + + //========================================================================== + // ========= + // OutsideSql Package + // ================== + public String getOutsideSqlPackage() { + return _outsideSqlPackage; + } + + public void setOutsideSqlPackage(String outsideSqlPackage) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting outsideSqlPackage: " + outsideSqlPackage); + } + _outsideSqlPackage = outsideSqlPackage; + } + + //========================================================================== + // ========= + // Internal Debug + // ============== + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(boolean internalDebug) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting internalDebug: " + internalDebug); + } + _internalDebug = internalDebug; + } + + //========================================================================== + // ========= + // Config Lock + // =========== + public boolean isLocked() { + return _locked; + } + + public void lock() { + if (_log.isInfoEnabled()) { + _log.info("...Locking the config of dbflute!"); + } + _locked = true; + } + + public void unlock() { + if (_log.isInfoEnabled()) { + _log.info("...Unlocking the config of dbflute!"); + } + _locked = false; + } + + protected void assertNotLocked() { + if (!isLocked()) { + return; + } + String msg = "The config of dbflute is locked! Don't access at this timing!"; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Config Clear + // ============ + public void clear() { // the only properties that update OK while executing + _defaultStatementConfig = null; + _conditionBeanFormatSql = true; // as default + _queryLogLevelInfo = false; + _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; + _logDateFormat = null; + _logTimestampFormat = null; + _internalDebug = false; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DBFluteConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoReadable.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoReadable.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoReadable.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,11 @@ +package jp.sf.pal.todolist.db.allcommon; + +/** + * The interface of dao-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoReadable { + public void initializeDaoMetaData(String methodName);// Very Internal + // Method! +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoSelector.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoSelector.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoSelector.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,26 @@ +package jp.sf.pal.todolist.db.allcommon; + +/** + * The interface of DAO-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoSelector { + + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return Dao. (NotNull) + */ + public DAO select(Class daoType); + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoWritable.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoWritable.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoWritable.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,70 @@ +package jp.sf.pal.todolist.db.allcommon; + +import java.util.List; + +/** + * The interface of dao-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoWritable extends DaoReadable { + + /** + * Insert one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Inserted count. + */ + public int create(Entity entity); + + /** + * Update one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modify(Entity entity); + + /** + * Update one entity that the type is entity-interface. (modified only) + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modifyModifiedOnly(Entity entity); + + /** + * Delete one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Deleted count. + */ + public int remove(Entity entity); + + /** + * Insert several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of inserted count. + */ + public int[] createList(List entityList); + + /** + * Update several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of updated count. + */ + public int[] modifyList(List entityList); + + /** + * Delete several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of deleted count. + */ + public int[] removeList(List entityList); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/DaoWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/Entity.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/Entity.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/Entity.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,126 @@ +package jp.sf.pal.todolist.db.allcommon; + +import java.util.LinkedHashSet; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of entity. + * + * @author DBFlute(AutoGenerator) + */ +public interface Entity { + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get the instance of target dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB name. + * + * @return Table DB name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property name. + * + * @return Table property name. (NotNull) + */ + public String getTablePropertyName(); + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has the value of primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKeyValue(); + + //========================================================================== + // ========= + // Modified Properties + // =================== + /** + * Get modified property names. (JavaBeansRule) + * + * @return Modified property names. (NotNull) + */ + public Set getModifiedPropertyNames(); + + /** + * Clear modified property names. + */ + public void clearModifiedPropertyNames(); + + /** + * Entity modified properties. + */ + public static class EntityModifiedProperties implements + java.io.Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Set of properties. */ + protected Set _propertiesSet = new LinkedHashSet(); + + /** + * Add property name. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void addPropertyName(String propertyName) { + _propertiesSet.add(propertyName); + } + + /** + * Get the set of properties. + * + * @return The set of properties. (NotNull) + */ + public Set getPropertyNames() { + return _propertiesSet; + } + + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _propertiesSet.isEmpty(); + } + + /** + * Clear the set of properties. + */ + public void clear() { + _propertiesSet.clear(); + } + + /** + * Remove property name from the set. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void remove(String propertyName) { + _propertiesSet.remove(propertyName); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/Entity.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/EntityDefinedCommonColumn.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/EntityDefinedCommonColumn.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/EntityDefinedCommonColumn.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon; + +/** + * The interface of entity defined common column. + * + * @author DBFlute(AutoGenerator) + */ +public interface EntityDefinedCommonColumn extends Entity { + + /** + * Disable common column auto set up. + */ + public void disableCommonColumnAutoSetup(); + + /** + * Can the entity set up common column by auto? + * + * @return Determination. + */ + public boolean canCommonColumnAutoSetup(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/EntityDefinedCommonColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/GenMetaData.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/GenMetaData.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/GenMetaData.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,258 @@ +package jp.sf.pal.todolist.db.allcommon; + +/** + * The sigleton class that has generate-meta-data(GenMetaData). + * + * @author DBFlute(AutoGenerator) + */ +public class GenMetaData { + + /** Singleton instance. */ + private static final GenMetaData _instance = new GenMetaData(); + + /** + * Constructor. + */ + private GenMetaData() { + } + + /** + * Get instance. + * + * @return Singleton instance. + */ + public static GenMetaData getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Basic + // ===== + /** + * Get the property-value of targetLanguage. + * + * @return The property-value. + */ + public String getTargetLanguage() { + return "java"; + } + + /** + * Get the property-value of templateFileExtension. + * + * @return The property-value. + */ + public String getTemplateFileExtension() { + return "vm"; + } + + /** + * Get the property-value of classFileExtension. + * + * @return The property-value. + */ + public String getClassFileExtension() { + return "java"; + } + + /** + * Get the property-value of templateFileEncoding. + * + * @return The property-value. + */ + public String getTemplateEncoding() { + return "UTF-8"; + } + + /** + * Get the property-value of classAuthor. + * + * @return The property-value. + */ + public String getClassAuthor() { + return "DBFlute(AutoGenerator)"; + } + + //========================================================================== + // ========= + // Naming + // ====== + /** + * Is java name of table same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfTableSameAsDbName() { + return false; + } + + /** + * Is java name of column same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfColumnSameAsDbName() { + return false; + } + + //========================================================================== + // ========= + // Prefix + // ====== + /** + * Get the property-value of projectPrefix. + * + * @return The property-value. + */ + public String getProjectPrefix() { + return ""; + } + + /** + * Get the property-value of basePrefix. + * + * @return The property-value. + */ + public String getBasePrefix() { + return "Bs"; + } + + //========================================================================== + // ========= + // Package + // ======= + /** + * Get the property-value of baseCommonPackage. + * + * @return The property-value. + */ + public String getBaseCommonPackage() { + return "jp.sf.pal.todolist.db.allcommon"; + } + + /** + * Get the property-value of baseBehaviorPackage. + * + * @return The property-value. + */ + public String getBaseBehaviorPackage() { + return "jp.sf.pal.todolist.db.bsbhv"; + } + + /** + * Get the property-value of baseDaoPackage. + * + * @return The property-value. + */ + public String getBaseDaoPackage() { + return "jp.sf.pal.todolist.db.bsdao"; + } + + /** + * Get the property-value of baseEntityPackage. + * + * @return The property-value. + */ + public String getBaseEntityPackage() { + return "jp.sf.pal.todolist.db.bsentity"; + } + + /** + * Get the property-value of conditionBeanPackage. + * + * @return The property-value. + */ + public String getConditionBeanPackage() { + return "jp.sf.pal.todolist.db.cbean"; + } + + /** + * Get the property-value of extendedDaoPackage. + * + * @return The property-value. + */ + public String getExtendedDaoPackage() { + return "jp.sf.pal.todolist.db.exdao"; + } + + /** + * Get the property-value of extendedBehaviorPackage. + * + * @return The property-value. + */ + public String getExtendedBehaviorPackage() { + return "jp.sf.pal.todolist.db.exbhv"; + } + + /** + * Get the property-value of extendedEntityPackage. + * + * @return The property-value. + */ + public String getExtendedEntityPackage() { + return "jp.sf.pal.todolist.db.exentity"; + } + + //========================================================================== + // ========= + // Optimistic Lock + // =============== + /** + * Get the property-value of updateDateFieldName. + * + * @return The property-value. + */ + public String getUpdateDateFieldName() { + return ""; + } + + /** + * Get the property-value of versionNoFieldName. + * + * @return The property-value. + */ + public String getVersionNoFieldName() { + return ""; + } + + //========================================================================== + // ========= + // Extract + // ======= + /** + * Get the value of 'extractAcceptStartBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptStartBrace() { + return "@{"; + } + + /** + * Get the value of 'extractAcceptEndBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEndBrace() { + return "@}"; + } + + /** + * Get the value of 'extractAcceptDelimiter'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptDelimiter() { + return "@;"; + } + + /** + * Get the value of 'extractAcceptEqual'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEqual() { + return "@="; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/GenMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/InternalMapContext.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/InternalMapContext.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/InternalMapContext.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,64 @@ +package jp.sf.pal.todolist.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of internal map. + * + * @author DBFlute(AutoGenerator) + */ +public class InternalMapContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal> threadLocal = new ThreadLocal>(); + + protected static void initialize() { + if (threadLocal.get() != null) { + return; + } + threadLocal.set(new HashMap()); + } + + /** + * Get the value of the object by the key. + * + * @param key The key of the object. (NotNull) + * @return The value of the object. (Nullable) + */ + public static Object getObject(String key) { + initialize(); + return threadLocal.get().get(key); + } + + /** + * Set the value of the object. + * + * @param key The key of the object. (NotNull) + * @param value The value of the object. (Nullable) + */ + public static void setObject(String key, Object value) { + initialize(); + threadLocal.get().put(key, value); + } + + /** + * Is existing internal-map-context on thread? + * + * @return Determination. + */ + public static boolean isExistInternalMapContextOnThread() { + return (threadLocal.get() != null); + } + + /** + * Clear internal-map-context on thread. + */ + public static void clearInternalMapContextOnThread() { + threadLocal.set(null); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/InternalMapContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/QLog.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/QLog.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/QLog.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,39 @@ +package jp.sf.pal.todolist.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class QLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(QLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String sql) {// Very Internal + if (isQueryLogLevelInfo()) { + _log.info(sql); + } else { + _log.debug(sql); + } + } + + public static boolean isLogEnabled() { + if (isQueryLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isQueryLogLevelInfo() { + return DBFluteConfig.getInstance().isQueryLogLevelInfo(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/QLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/XLog.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/XLog.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/XLog.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,39 @@ +package jp.sf.pal.todolist.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class XLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(XLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String msg) {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + _log.info(msg); + } else { + _log.debug(msg); + } + } + + public static boolean isLogEnabled() {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isExecuteStatusLogLevelInfo() { + return DBFluteConfig.getInstance().isExecuteStatusLogLevelInfo(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/XLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/annotation/OutsideSql.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/annotation/OutsideSql.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/annotation/OutsideSql.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,18 @@ +package jp.sf.pal.todolist.db.allcommon.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + ¡÷ Inherited + ¡÷ Retention(RetentionPolicy.RUNTIME) + ¡÷ Target(ElementType.METHOD) +public @interface OutsideSql { + boolean dynamicBinding() default false; + + boolean offsetByCursor() default false; + + boolean limitByCursor() default false; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/annotation/OutsideSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorReadable.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,973 @@ +package jp.sf.pal.todolist.db.allcommon.bhv; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.BehaviorSelector; +import jp.sf.pal.todolist.db.allcommon.DaoSelector; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.batch.TokenFileOutputOption; +import jp.sf.pal.todolist.db.allcommon.bhv.batch.TokenFileOutputResult; +import jp.sf.pal.todolist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelBox; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.executor.OutsideSqlBasicExecutor; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBehaviorReadable implements BehaviorReadable { + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * Behavior-selector instance. It's basically referred at loadReferrer. + * (Required for loadReferrer) + */ + protected BehaviorSelector _behaviorSelector; + + /** + * Dao-selector instance. It's basically referred at loadReferrer. (Required + * for OutsideSql) + */ + protected DaoSelector _daoSelector; + + //========================================================================== + // =========== + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll() { + return callGetCountAll(); + } + + //========================================================================== + // =========== + // Count Read + // ========== + /** + * The implementation. + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return callReadCount(cb); + } + + //========================================================================== + // =========== + // Entity Read + // =========== + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + //========================================================================== + // =========== + // Entity Read Internal Helper + // =========================== + protected ENTITY helpSelectEntityInternally( + CB cb, InternalSelectEntityCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.todolist.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityCallback { + public List callbackSelectList(CB cb); + } + + protected ENTITY helpSelectEntityWithDeletedCheckInternally( + CB cb, + InternalSelectEntityWithDeletedCheckCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.todolist.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityWithDeletedCheckCallback { + public List callbackSelectList(CB cb); + } + + //========================================================================== + // =========== + // List Read + // ========= + /** + * The implementation. + * + * @param cb Condition-bean. + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, callReadList(cb)); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return readCount(cb); + } + + public List paging() { + return readList(cb); + } + }; + return invoker.invokePaging(handler); + } + + /** + * Assert that the entity is not deleted. + * + * @param entity Selected entity. (Nullable) + * @param searchKey4Log Search-key for Logging. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + protected void assertEntityNotDeleted( + jp.sf.pal.todolist.db.allcommon.Entity entity, Object searchKey4Log) { + if (entity == null) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is not deleted. + * + * @param ls Selected list. (Nullable) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + */ + protected void assertEntityNotDeleted(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is selected as one. + * + * @param ls Selected list. (NotNull) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + */ + protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", searchKey4Log, null); + } + } + + private void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + private void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Various Select + // ============== + public OutsideSqlBasicExecutor outsideSql() { + assertDaoSelectorNotNull("outsideSql"); + final OutsideSqlDao outsideSqlDao = _daoSelector + .select(OutsideSqlDao.class); + return new OutsideSqlBasicExecutor(outsideSqlDao, getTableDbName()); + } + + private void assertDaoSelectorNotNull(String methodName) { + if (_daoSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of dao as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Create value-label list. + * + * @param The type of entity. + * @param entityList The list of entity. (NotNull) + * @param valueLabelSetupper Value-label-setupper. (NotNull) + * @return Value-label list. (NotNull) + */ + public List> createValueLabelList( + List entityList, + ValueLabelSetupper valueLabelSetupper) { + final List> valueLabelList = new ArrayList>(); + final ValueLabelBox box = new ValueLabelBox(); + for (ENTITY entity : entityList) { + final Map valueLabel = new HashMap(); + valueLabelSetupper.setup(box, entity); + valueLabel.put("value", box.getValue()); + valueLabel.put("label", box.getLabel()); + valueLabelList.add(valueLabel); + } + return valueLabelList; + } + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal() { + try { + final Method method = getClass().getMethod("selectNextVal", + new Class[] {}); + Object sequenceObject = method.invoke(this, new Object[] {}); + if (sequenceObject instanceof java.math.BigDecimal) { + return (java.math.BigDecimal) sequenceObject; + } + return (java.math.BigDecimal) helpConvertingSequenceObject( + java.math.BigDecimal.class, sequenceObject); + } catch (NoSuchMethodException e) { + throw new RuntimeException("The table does not have sequence: " + + getTableDbName(), e); + } catch (Exception e) { + throw new RuntimeException( + "The selectNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + } + + protected Object helpConvertingSequenceObject(Class resultClass, + Object sequenceObject) { + try { + final Constructor constructor = resultClass + .getConstructor(new Class[] { String.class }); + return constructor.newInstance(new Object[] { sequenceObject + .toString() }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + try { + final Method method = resultClass.getMethod("valueOf", + new Class[] { long.class }); + return method.invoke(null, new Object[] { Long + .valueOf(sequenceObject.toString()) }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + String msg = "Cannot convert sequenceObject to resultClass:"; + msg = msg + " resultClass=" + resultClass + " sequenceObjectType=" + + sequenceObject.getClass(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Load Referrer Internal Helper + // ============================= + /** + * Help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void helpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, + callback); + } + + /** + * Do help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void doHelpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + + // - - - - - - - - - - - + // Assert pre-condition + // - - - - - - - - - - - + assertBehaviorSelectorNotNull("loadReferrer"); + assertObjectNotNull("localEntityList", localEntityList); + assertObjectNotNull("loadReferrerOption", loadReferrerOption); + if (localEntityList.isEmpty()) { + return; + } + + // - - - - - - - - - - - - - - + // Prepare temporary container + // - - - - - - - - - - - - - - + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK primaryKeyValue = callback + .callbackBase_getPrimaryKeyValue(localEntity); + pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); + } + + // - - - - - - - - - - - - - - - - + // Prepare referrer condition bean + // - - - - - - - - - - - - - - - - + final REFERRER_CB cb; + if (loadReferrerOption.getReferrerConditionBean() != null) { + cb = loadReferrerOption.getReferrerConditionBean(); + } else { + cb = callback.callbackReferrer_newMyConditionBean(); + } + + // - - - - - - - - - - - - - - + // Select the list of referrer + // - - - - - - - - - - - - - - + callback.callbackReferrer_queryForeignKeyInScope(cb, pkList); + loadReferrerOption + .delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb); + if (!loadReferrerOption.isStopOrderByKey()) { + callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb); + cb.getSqlComponentOfOrderByClause() + .exchangeFirstOrderByElementForLastOne(); + } + loadReferrerOption.delegateConditionBeanSettingUp(cb); + final List referrerList = callback + .callbackReferrer_selectList(cb); + loadReferrerOption.delegateEntitySettingUp(referrerList); + + // - - - - - - - - - - - - - - - - - - - - - - - - + // Create the map of {primary key / referrer list} + // - - - - - - - - - - - - - - - - - - - - - - - - + final Map> pkReferrerListMap = new LinkedHashMap>(); + for (REFERRER_ENTITY referrerEntity : referrerList) { + final PK referrerListKey; + { + final PK foreignKeyValue = callback + .callbackReferrer_getForeignKeyValue(referrerEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); + } + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); + } + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); + + // for Reverse Reference. + final LOCAL_ENTITY localEntity = pkLocalEntityMap + .get(referrerListKey); + callback.callbackReferrer_setForeignEntity(referrerEntity, + localEntity); + } + + // - - - - - - - - - - - - - - - - - - + // Relate referrer list to base entity + // - - - - - - - - - - - - - - - - - - + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK referrerListKey; + { + final PK primaryKey = callback + .callbackBase_getPrimaryKeyValue(localEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); + } + if (pkReferrerListMap.containsKey(referrerListKey)) { + callback.callbackBase_setReferrerList(localEntity, + pkReferrerListMap.get(referrerListKey)); + } else { + callback.callbackBase_setReferrerList(localEntity, + new ArrayList()); + } + } + } + + /** + * To lower case for primary key if the value is string. + * + * @param The type of primary key. + * @param value The value of primary key. (Nullable) + * @return The value of primary key. (Nullable) + */ + protected PK toLowerCasePrimaryKeyIfString(PK value) { + return (PK) toLowerCaseIfString(value); + } + + /** + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer conditionBean. + * @param The type of referrer entity. + */ + protected static interface InternalLoadReferrerCallback { + // For Base + public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity); + + public void callbackBase_setReferrerList(LOCAL_ENTITY entity, + List referrerList); + + // For Referrer + public REFERRER_CB callbackReferrer_newMyConditionBean(); + + public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, + List pkList); + + public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb); + + public List callbackReferrer_selectList(REFERRER_CB cb); + + public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity); + + public void callbackReferrer_setForeignEntity( + REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); + } + + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + + private void assertBehaviorSelectorNotNull(String methodName) { + if (_behaviorSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of behavior as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Pullout Internal Helper + // ======================= + protected List helpPulloutInternally( + List localEntityList, + InternalPulloutCallback callback) { + assertObjectNotNull("localEntityList", localEntityList); + final Set foreignSet = new LinkedHashSet(); + for (LOCAL_ENTITY entity : localEntityList) { + final FOREIGN_ENTITY foreignEntity = callback + .callbackGetForeignEntity(entity); + if (foreignEntity == null || foreignSet.contains(foreignEntity)) { + continue; + } + foreignSet.add(foreignEntity); + } + return new ArrayList(foreignSet); + } + + protected static interface InternalPulloutCallback { + public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity); + } + + //========================================================================== + // ========= + // Token File + // ========== + public TokenFileOutputExecutor tokenFileOutput() + throws java.io.FileNotFoundException, java.io.IOException { + return new TokenFileOutputExecutor(); + } + + public class TokenFileOutputExecutor { + /** + * Output token-file from this table records. + * + * @param cb Condition-bean. (NotNull) + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileOutputOption token-file-output-option. (NotNull and + * Required{delimiter and encoding}) + * @return Token-file-output-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileOutputResult outputTokenFile(ConditionBean cb, + String filename, TokenFileOutputOption tokenFileOutputOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertConditionBeanNotNull(cb); + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption); + + final List ls = readList(cb); + List> rowList = new ArrayList>(); + for (java.util.Iterator ite = ls.iterator(); ite.hasNext();) { + final Entity entity = (Entity) ite.next(); + final List valueList = getDBMeta() + .convertToColumnStringValueList(entity); + rowList.add(valueList); + } + final FileMakingSimpleFacade fileMakingSimpleFacade = new FileMakingSimpleFacadeImpl(); + final FileMakingOption fileMakingOption = tokenFileOutputOption + .getFileMakingOption(); + final FileMakingHeaderInfo fileMakingHeaderInfo = new FileMakingHeaderInfo(); + final List columnDbNameList = new ArrayList(); + for (final java.util.Iterator ite = getDBMeta().getColumnInfoList() + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + fileMakingHeaderInfo.setColumnNameList(columnDbNameList); + fileMakingOption.setFileMakingHeaderInfo(fileMakingHeaderInfo); + fileMakingSimpleFacade.makeFromRowList(filename, rowList, + fileMakingOption); + final TokenFileOutputResult tokeFileOutputResult = new TokenFileOutputResult(); + tokeFileOutputResult.setSelectedList(ls); + return tokeFileOutputResult; + } + } + + //========================================================================== + // ========= + // Delegate Method + // =============== + /** + * The implementation. + * + * @return All count. + */ + protected int callGetCountAll() { + return readCount(newConditionBean()); + } + + /** + * The implementation. + * + * @return All list. (NotNull) + */ + protected List callGetListAll() { + return readList(newConditionBean()); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read count. (NotNull) + */ + protected int callReadCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final java.lang.reflect.Method mtd = getMethod(getDaoReadable() + .getClass(), "selectCount", types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return ((Integer) result).intValue(); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read list. If the select result is zero, it returns empty list. + * (NotNull) + */ + protected List callReadList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return (List) result; + } + + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + private Object invoke(Method method, Object target, Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + protected abstract boolean hasVersionNoValue(Entity entity); + + protected abstract boolean hasUpdateDateValue(Entity entity); + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * To lower case if the type is String. + * + * @param obj Object. (Nullable) + * @return Lower object. (Nullable) + */ + protected Object toLowerCaseIfString(Object obj) { + if (obj != null && obj instanceof String) { + return ((String) obj).toLowerCase(); + } + return obj; + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected ENTITY helpDowncastInternally( + Entity entity, Class clazz) { + assertObjectNotNull("entity", entity); + assertObjectNotNull("clazz", clazz); + try { + return (ENTITY) entity; + } catch (ClassCastException e) { + String msg = "The entity should be " + clazz.getSimpleName() + + " but it was: " + entity.getClass(); + throw new RuntimeException(msg, e); + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNull(Entity entity) { + assertObjectNotNull("entity", entity); + } + + /** + * Assert that the condition-bean is not null. + * + * @param cb Condition-bean. (NotNull) + */ + protected void assertConditionBeanNotNull( + jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean cb) { + assertObjectNotNull("cb", cb); + } + + /** + * Assert that the entity has primary-key value. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNullAndHasPrimaryKeyValue(Entity entity) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + String msg = "The entity must should primary-key: entity=" + entity; + throw new IllegalArgumentException(msg + entity); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert List + // ----------- + /** + * Assert that the list is empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (!ls.isEmpty()) { + String msg = "The list should be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list is not empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndNotEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (ls.isEmpty()) { + String msg = "The list should not be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list having only one. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndHasOnlyOne(List ls) { + assertObjectNotNull("ls", ls); + if (ls.size() != 1) { + String msg = "The list should contain only one object: ls=" + + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the selector of behavior. + * + * @return The select of behavior. (Nullable: But normally NotNull) + */ + protected BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + /** + * Set the selector of behavior. + * + * @param behaviorSelector The selector of behavior. (NotNull) + */ + public void setBehaviorSelector(BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + /** + * Get the selector of DAO. + * + * @return The select of DAO. (Nullable: But normally NotNull) + */ + protected DaoSelector getDaoSelector() { + return _daoSelector; + } + + /** + * Set the selector of DAO. + * + * @param daoSelector The selector of DAO. (NotNull) + */ + public void setDaoSelector(DaoSelector daoSelector) { + _daoSelector = daoSelector; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorWritable.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorWritable.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,997 @@ +package jp.sf.pal.todolist.db.allcommon.bhv; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.batch.TokenFileReflectionFailure; +import jp.sf.pal.todolist.db.allcommon.bhv.batch.TokenFileReflectionOption; +import jp.sf.pal.todolist.db.allcommon.bhv.batch.TokenFileReflectionResult; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.todolist.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.impl.FileTokenImpl; + +/** + * The abstract class of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractBehaviorWritable extends AbstractBehaviorReadable + implements BehaviorWritable { + + //========================================================================== + // ========= + // Entity Update + // ============= + // ----------------------------------------------------- + // Create + // ------ + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(Entity entity) { + doCreate(entity); + } + + protected abstract void doCreate(Entity entity); + + // ----------------------------------------------------- + // Modify + // ------ + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(Entity entity) { + doModify(entity); + } + + protected abstract void doModify(Entity entity); + + /** + * Modify non strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity) { + doModifyNonstrict(entity); + } + + protected abstract void doModifyNonstrict(Entity entity); + + // ----------------------------------------------------- + // Create or Modify + // ---------------- + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.todolist.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdate(entity); + } + + protected abstract void doCreateOrUpdate(Entity entity); + + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.todolist.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdateNonstrict(entity); + } + + protected abstract void doCreateOrUpdateNonstrict(Entity entity); + + // ----------------------------------------------------- + // Remove + // ------ + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.todolist.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + callRemove(entity); + } + + protected abstract void doRemove(Entity entity); + + //========================================================================== + // ========= + // Entity Update Internal Helper + // ============================= + // ----------------------------------------------------- + // Update + // ------ + protected void helpUpdateInternally(ENTITY entity, + InternalUpdateCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int updatedCount = callback.callbackDelegateUpdate(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalUpdateCallback { + public int callbackDelegateUpdate(ENTITY entity); + } + + protected void helpUpdateNonstrictInternally( + ENTITY entity, InternalUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + final int updatedCount = callback + .callbackDelegateUpdateNonstrict(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + } + } + + protected static interface InternalUpdateNonstrictCallback { + public int callbackDelegateUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // InsertOrUpdate + // -------------- + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + RuntimeException exception = null; + try { + callback.callbackUpdate(entity); + } catch (jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException e) { + if (e.getRows() == 0) { + exception = e; + } + } catch (jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException e) { + exception = e; + } catch (OptimisticLockColumnValueNullException e) { + exception = e; + } + if (exception != null) { + final CB_TYPE cb = callback.callbackNewMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta() + .extractPrimaryKeyMapString(entity)); + if (callback.callbackSelectCount(cb) == 0) { + callback.callbackInsert(entity); + } else { + throw exception; + } + } + } + } + + protected static interface InternalInsertOrUpdateCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdate(ENTITY entity); + + public CB_TYPE callbackNewMyConditionBean(); + + public int callbackSelectCount(CB_TYPE cb); + } + + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + try { + callback.callbackUpdateNonstrict(entity); + } catch (jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException e) { + callback.callbackInsert(entity); + } catch (jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException e) { + callback.callbackInsert(entity); + } + } + } + + protected static interface InternalInsertOrUpdateNonstrictCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // Delete + // ------ + protected void helpDeleteInternally(ENTITY entity, + InternalDeleteCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int deletedCount = callback.callbackDelegateDelete(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteCallback { + public int callbackDelegateDelete(ENTITY entity); + } + + protected void helpDeleteNonstrictInternally( + ENTITY entity, InternalDeleteNonstrictCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + protected void helpDeleteNonstrictIgnoreDeletedInternally( + ENTITY entity, + InternalDeleteNonstrictIgnoreDeletedCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + return; + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + //========================================================================== + // ========= + // Lump Update + // =========== + /** + * Lump create the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callCreateList(entityList); + } + + /** + * Lump Modify the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpModify(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callModifyList(entityList); + } + + /** + * Lump remove the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpRemove(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callRemoveList(entityList); + } + + /** + * Inject sequence to primary key if it needs. + * + * @param entity Entity. (NotNull) + */ + protected void injectSequenceToPrimaryKeyIfNeeds(Entity entity) { + final DBMeta dbmeta = entity.getDBMeta(); + if (!dbmeta.hasSequence() || dbmeta.hasTwoOrMorePrimaryKeys() + || entity.hasPrimaryKeyValue()) { + return; + } + final java.math.BigDecimal sequenceValue = readNextVal(); + final String columnDbName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final java.util.Map map = new java.util.HashMap(); + map.put(columnDbName, sequenceValue.toString()); + dbmeta.acceptPrimaryKeyMap(entity, map); + } + + //========================================================================== + // =========== + // Token File + // ========== + public TokenFileReflectionExecutor tokenFileReflection() { + return new TokenFileReflectionExecutor(); + } + + public class TokenFileReflectionExecutor { + + /** + * Reflect(insert or update) token-file to this table. + * + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile(String filename, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(filename, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + /** + * Reflect(insert or update) token-file to this table. + * + * @param inputStream Input stream. (NotNull and NotClosed) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile( + java.io.InputStream inputStream, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(inputStream, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + protected void assertFileTokenReflectionOption( + TokenFileReflectionOption tokenFileReflectionOption) { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + } + + protected TokenFileReflectionResult buildTokenFileReflectionResult() { + final TokenFileReflectionResult result = new TokenFileReflectionResult(); + final java.util.List failureList = new java.util.ArrayList(); + result.setFailureList(failureList); + return result; + } + + protected FileTokenizingCallback buildFileTokenReflectionFileTokenizingCallback( + TokenFileReflectionOption tokenFileReflectionOption, + final TokenFileReflectionResult result) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + final boolean interruptIfError = tokenFileReflectionOption + .isInterruptIfError(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final java.util.List failureList = result + .getFailureList(); + assertObjectNotNull("failureList", failureList); + + final FileTokenizingCallback fileTokenizingCallback = new FileTokenizingCallback() { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource) { + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = fileTokenizingRowResource + .getFileTokenizingHeaderInfo(); + final java.util.List columnNameList = fileTokenizingHeaderInfo + .getColumnNameList(); + final java.util.List valueList = fileTokenizingRowResource + .getValueList(); + + // Set up columnNameList of result object. + if (result.getColumnNameList() == null) { + result.setColumnNameList(columnNameList); + } + + Entity entity = null; + try { + // Create entity by the list of value composed of + // String. + entity = createEntityByStringValueList(columnNameList, + valueList); + + // Create or modify as non-strict. + doCreateOrUpdateNonstrict(entity); + + // Increment successCount of result object. + result.incrementSuccessCount(); + } catch (RuntimeException e) { + if (interruptIfError) { + throw e; + } + final TokenFileReflectionFailure failure = new TokenFileReflectionFailure(); + failure.setColumnNameList(columnNameList); + failure.setValueList(valueList); + failure.setRowString(fileTokenizingRowResource + .getRowString()); + failure.setRowNumber(fileTokenizingRowResource + .getRowNumber()); + failure.setLineNumber(fileTokenizingRowResource + .getLineNumber()); + if (entity != null) { + failure.setEntity(entity); + } + failure.setException(e); + failureList.add(failure); + } + } + }; + return fileTokenizingCallback; + } + + protected Entity createEntityByStringValueList( + java.util.List columnNameList, + java.util.List valueList) { + final MapStringBuilder builder = new MapStringBuilderImpl(); + builder.setMsMapMark(MAP_STRING_MAP_MARK); + builder.setMsStartBrace(MAP_STRING_START_BRACE); + builder.setMsEndBrace(MAP_STRING_END_BRACE); + builder.setMsDelimiter(MAP_STRING_DELIMITER); + builder.setMsEqual(MAP_STRING_EQUAL); + builder.setColumnNameList(columnNameList); + final String mapString = builder.buildFromList(valueList); + + final Entity entity = getDBMeta().newEntity(); + getDBMeta().acceptColumnValueMapString(entity, mapString); + return entity; + } + + protected FileTokenizingOption buildFileTokenReflectionFileTokenizingOption( + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + final FileTokenizingOption fileTokenizingOption = new FileTokenizingOption(); + fileTokenizingOption.setEncoding(encoding); + fileTokenizingOption.setDelimiter(delimiter); + if (tokenFileReflectionOption.isHandleEmptyAsNull()) { + fileTokenizingOption.handleEmptyAsNull(); + } + return fileTokenizingOption; + } + } + + //========================================================================== + // =========== + // Delegate Method + // =============== + // ----------------------------------------------------- + // Insert + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Inserted count. + */ + protected int callCreate(Entity entity) { + if (!processBeforeInsert(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().create(entity); + } + + /** + * Process before insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeInsert(Entity entity) { + if (!determineExecuteInsert(entity)) { + return false; + } + assertEntityNotNull(entity);// If this table use identity, the entity + // does not have primary-key. + frameworkFilterEntityOfInsert(entity); + filterEntityOfInsert(entity); + assertEntityOfInsert(entity); + return true; + } + + // ----------------------------------------------------- + // Update + // ------ + /** + * The implementation. {modified only} + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Updated count. + */ + protected int callModify(Entity entity) { + if (!processBeforeUpdate(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().modifyModifiedOnly(entity); + } + + /** + * Process before update. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeUpdate(Entity entity) { + if (!determineExecuteUpdate(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfUpdate(entity); + filterEntityOfUpdate(entity); + assertEntityOfUpdate(entity); + return true; + } + + // ----------------------------------------------------- + // Delete + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Deleted count. + */ + protected int callRemove(Entity entity) { + if (!processBeforeDelete(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().remove(entity); + } + + /** + * Process before delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeDelete(Entity entity) { + if (!determineExecuteDelete(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfDelete(entity); + filterEntityOfDelete(entity); + assertEntityOfDelete(entity); + return true; + } + + // ----------------------------------------------------- + // Pre-Process Insert + // ------------------ + /** + * Determine execution of insert. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteInsert(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfInsert(Entity targetEntity) { + injectSequenceToPrimaryKeyIfNeeds(targetEntity); + setupCommonColumnOfInsertIfNeeds(targetEntity); + } + + /** + * Set up common columns of insert if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfInsertIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfInsert(Entity targetEntity) { + } + + /** + * Assert the entity of insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfInsert(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Update + // ------------------ + /** + * Determine execution of update. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteUpdate(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfUpdate(Entity targetEntity) { + setupCommonColumnOfUpdateIfNeeds(targetEntity); + } + + /** + * Set up common columns of update if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfUpdateIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfUpdate(Entity targetEntity) { + } + + /** + * Assert the entity of update. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfUpdate(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Delete + // ------------------ + /** + * Determine execution of delete. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteDelete(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfDelete(Entity targetEntity) { + } + + /** + * Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfDelete(Entity targetEntity) { + } + + /** + * Assert the entity of delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfDelete(Entity entity) { + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Inserted count. + */ + public int[] callCreateList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeInsertInternally(entityList); + return getDaoWritable().createList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Updated count. + */ + public int[] callModifyList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeUpdateInternally(entityList); + return getDaoWritable().modifyList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Deleted count. + */ + public int[] callRemoveList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeDeleteInternally(entityList); + return getDaoWritable().removeList(entityList); + } + + protected void assertEntityHasVersionNoValue(Entity entity) { + if (!getDBMeta().hasVersionNo()) { + return; + } + if (hasVersionNoValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'version no' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'version no' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'version no' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + protected void assertEntityHasUpdateDateValue(Entity entity) { + if (!getDBMeta().hasUpdateDate()) { + return; + } + if (hasUpdateDateValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'update date' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'update date' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'update date' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + public static class OptimisticLockColumnValueNullException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public OptimisticLockColumnValueNullException(String msg) { + super(msg); + } + } + + //========================================================================== + // ========= + // Delegate Method Internal Helper + // =============================== + protected List helpFilterBeforeInsertInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeInsert(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeUpdateInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeUpdate(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeDeleteInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeDelete(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/AbstractBehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorReadable.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorReadable.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorReadable.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,176 @@ +package jp.sf.pal.todolist.db.allcommon.bhv; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorReadable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table name + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Dao Accessor + // ============ + /** + * Get dao-readable. + * + * @return Dao-readable. (NotNull) + */ + public DaoReadable getDaoReadable(); + + //========================================================================== + // ========= + // New Instance + // ============ + /** + * New entity. + * + * @return Entity. (NotNull) + */ + public Entity newEntity(); + + /** + * New condition-bean. + * + * @return Condition-bean. (NotNull) + */ + public ConditionBean newConditionBean(); + + //========================================================================== + // ========= + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll(); + + //========================================================================== + // ========= + // Basic Read Count + // ================ + /** + * Read count by condition-bean. + * + *
    +     * If the argument 'condition-bean' is effective about fetch-scope,
    +     * this method invoke select count ignoring the fetch-scope.
    +     * 
    + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read Entity + // ================= + /** + * Read entity by condition-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb); + + /** + * Read simple entity by condition-bean with deleted check. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read List + // =============== + /** + * Read list as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb); + + /** + * Read page as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb); + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorWritable.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorWritable.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorWritable.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,149 @@ +package jp.sf.pal.todolist.db.allcommon.bhv; + +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; + +/** + * The interface of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorWritable extends BehaviorReadable { + + /** + * Get dao-writable. + * + * @return Dao-writable. (NotNull) + */ + public DaoWritable getDaoWritable(); + + //========================================================================== + // =========== + // Basic Entity Update + // =================== + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(jp.sf.pal.todolist.db.allcommon.Entity entity); + + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(jp.sf.pal.todolist.db.allcommon.Entity entity); + + /** + * Modify non-strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity); + + /** + * Create or modify.
    {modify: modified only}
    This method is + * faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.todolist.db.allcommon.Entity entity); + + /** + * Create or modify non-strict.
    {modify: modified only}
    This + * method is faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.todolist.db.allcommon.Entity entity); + + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.todolist.db.allcommon.Entity entity); + + //========================================================================== + // =========== + // Basic Batch Update + // ================== + /** + * Lump create the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList); + + /** + * Lump Modify the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpModify(java.util.List entityList); + + /** + * Lump remove the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpRemove(java.util.List entityList); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/BehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,90 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.batch; + +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileMakingOption _fileMakingOption = new FileMakingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileOutputOption delimitateByComma() { + _fileMakingOption.delimitateByComma(); + return this; + } + + public TokenFileOutputOption delimitateByTab() { + _fileMakingOption.delimitateByTab(); + return this; + } + + public TokenFileOutputOption encodeAsUTF8() { + _fileMakingOption.encodeAsUTF8(); + return this; + } + + public TokenFileOutputOption encodeAsWindows31J() { + _fileMakingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileOutputOption separateCrLf() { + _fileMakingOption.separateCrLf(); + return this; + } + + public TokenFileOutputOption separateLf() { + _fileMakingOption.separateLf(); + return this; + } + + public TokenFileOutputOption goodByeDoubleQuotation() { + _fileMakingOption.goodByeDoubleQuotation(); + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _fileMakingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileMakingOption.setDelimiter(encoding); + } + + public String getDelimiter() { + return _fileMakingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileMakingOption.setDelimiter(delimiter); + } + + public String getLineSeparator() { + return _fileMakingOption.getLineSeparator(); + } + + public void setLineSeparator(String lineSeparator) { + _fileMakingOption.setLineSeparator(lineSeparator); + } + + public boolean isGoodByeDoubleQuotation() { + return _fileMakingOption.isGoodByeDoubleQuotation(); + } + + public FileMakingOption getFileMakingOption() { + return _fileMakingOption; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputResult.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputResult.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputResult.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,27 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.batch; + +import jp.sf.pal.todolist.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _selectedList; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getSelectedList() { + return _selectedList; + } + + public void setSelectedList(java.util.List selectedList) { + _selectedList = selectedList; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileOutputResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,89 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.batch; + +import jp.sf.pal.todolist.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionFailure { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + protected Entity _entity; + + protected Exception _exception; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } + + public Entity getEntity() { + return _entity; + } + + public void setEntity(Entity value) { + _entity = value; + } + + public Exception getException() { + return _exception; + } + + public void setException(Exception value) { + _exception = value; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionFailure.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,79 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.batch; + +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _interruptIfError; + + protected FileTokenizingOption _fileTokenizingOption = new FileTokenizingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileReflectionOption delimitateByComma() { + _fileTokenizingOption.delimitateByComma(); + return this; + } + + public TokenFileReflectionOption delimitateByTab() { + _fileTokenizingOption.delimitateByTab(); + return this; + } + + public TokenFileReflectionOption encodeAsUTF8() { + _fileTokenizingOption.encodeAsUTF8(); + return this; + } + + public TokenFileReflectionOption encodeAsWindows31J() { + _fileTokenizingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileReflectionOption handleEmptyAsNull() { + _fileTokenizingOption.handleEmptyAsNull(); + return this; + } + + public TokenFileReflectionOption interruptIfError() { + _interruptIfError = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _fileTokenizingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileTokenizingOption.setDelimiter(delimiter); + } + + public String getEncoding() { + return _fileTokenizingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileTokenizingOption.setDelimiter(encoding); + } + + public boolean isHandleEmptyAsNull() { + return _fileTokenizingOption.isHandleEmptyAsNull(); + } + + public boolean isInterruptIfError() { + return _interruptIfError; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionResult.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionResult.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionResult.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,54 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.batch; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected int _successCount; + + protected java.util.List _failureList; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public void incrementSuccessCount() { + ++_successCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public int getSuccessCount() { + return _successCount; + } + + public void setSuccessCount(int successCount) { + _successCount = successCount; + } + + public java.util.List getFailureList() { + return _failureList; + } + + public void setFailureList( + java.util.List failureList) { + this._failureList = failureList; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/batch/TokenFileReflectionResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/load/LoadReferrerOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,146 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.load; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.EntityListSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; + +/** + * The class of load referrer option. + * + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @author DBFlute(AutoGenerator) + */ +public class LoadReferrerOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ConditionBeanSetupper _conditionBeanSetupper; + + protected EntityListSetupper _entityListSetupper; + + protected REFERRER_CONDITION_BEAN _referrerConditionBean; + + protected boolean _toLastKeyCondition; + + protected boolean _stopOrderByKey; + + //========================================================================== + // ========= + // Constructor + // =========== + public LoadReferrerOption() { + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper, + EntityListSetupper entityListSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + this._entityListSetupper = entityListSetupper; + } + + public LoadReferrerOption( + LoadReferrerOption option) { + this._conditionBeanSetupper = option._conditionBeanSetupper; + this._entityListSetupper = option._entityListSetupper; + this._referrerConditionBean = option._referrerConditionBean; + this._toLastKeyCondition = option._toLastKeyCondition; + this._stopOrderByKey = option._stopOrderByKey; + } + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + /** + * Specify that the key condition is added as last condition.
    This + * method is valid only after you use reffererConditionBean and add your + * original condition to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption toLastKeyCondition() { + _toLastKeyCondition = true; + return this; + } + + /** + * Specify that it stops adding order-by of the key.
    This method is + * valid only after you use reffererConditionBean and add your original + * order-by to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption stopOrderByKey() { + _stopOrderByKey = true; + return this; + } + + public void delegateKeyConditionExchangingFirstWhereClauseForLastOne( + REFERRER_CONDITION_BEAN cb) {// Internal + if (!_toLastKeyCondition) { + cb.getSqlClause().exchangeFirstWhereClauseForLastOne(); + } + } + + public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal + if (_conditionBeanSetupper != null) { + _conditionBeanSetupper.setup(cb); + } + } + + public void delegateEntitySettingUp(List entityList) {// Internal + if (_entityListSetupper != null) { + _entityListSetupper.setup(entityList); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ConditionBeanSetupper getConditionBeanSetupper() { + return _conditionBeanSetupper; + } + + public void setConditionBeanSetupper( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public EntityListSetupper getEntityListSetupper() { + return _entityListSetupper; + } + + public void setEntityListSetupper( + EntityListSetupper entityListSetupper) { + this._entityListSetupper = entityListSetupper; + } + + public REFERRER_CONDITION_BEAN getReferrerConditionBean() { + return _referrerConditionBean; + } + + public void setReferrerConditionBean( + REFERRER_CONDITION_BEAN referrerConditionBean) { + this._referrerConditionBean = referrerConditionBean; + } + + public boolean isToLastKeyCondition() { + return _toLastKeyCondition; + } + + public boolean isStopOrderByKey() { + return _stopOrderByKey; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/load/LoadReferrerOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ConditionBeanSetupper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ConditionBeanSetupper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ConditionBeanSetupper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.setup; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; + +/** + * The interface of condition-bean setupper. + * + * @param The type of condition-bean. + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBeanSetupper { + + /** + * Set up condition. + * + * @param cb Condition-bean. (NotNull) + */ + public void setup(CONDITION_BEAN cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ConditionBeanSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/EntityListSetupper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.setup; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.Entity; + +/** + * The interface of entity list setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface EntityListSetupper { + + /** + * Set up the list of entity. + * + * @param entityList The list of entity. (NotNull) + */ + public void setup(List entityList); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/EntityListSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelBox.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelBox.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelBox.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,26 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.setup; + +/** + * The class of Value-Label Box. + * + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelBox { + + protected Object _value; + + protected String _label; + + public void setValueLabel(Object value, String label) { + this._value = value; + this._label = label; + } + + public Object getValue() { + return _value; + } + + public String getLabel() { + return _label; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelBox.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelSetupper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelSetupper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelSetupper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,20 @@ +package jp.sf.pal.todolist.db.allcommon.bhv.setup; + +import jp.sf.pal.todolist.db.allcommon.Entity; + +/** + * The interface of Value-Label Setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface ValueLabelSetupper { + + /** + * Set up value-label. + * + * @param box Value-label box. (NotNull) + * @param entity Entity. (NotNull) + */ + public void setup(ValueLabelBox box, ENTITY entity); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/bhv/setup/ValueLabelSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1199 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.WhereClauseSimpleFilter; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.helper.MapListString; +import jp.sf.pal.todolist.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * The condition-bean as abstract. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionBean implements ConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause(this); + } + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check + // logics by these purpose types. + protected boolean _forDeriveReferrer; + + protected boolean _forUnion; + + protected boolean _forExistsSubQuery; + + protected boolean _forInScopeSubQuery; + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * The implementation. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Where Clause Filter + // =================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + this._sqlClause.addWhereClauseSimpleFilter(whereClauseSimpleFilter); + } + + //========================================================================== + // ========= + // ConditionQuery + // ============== + /** + * Get condition query as interface. At the future, change public to + * protected. + * + * @return Instance of query as interface. (NotNull) + */ + abstract public ConditionQuery getConditionQueryAsInterface(); + + /** + * The implementation. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ() { + return getConditionQueryAsInterface(); + } + + //========================================================================== + // ========= + // Accept PrimaryKey + // ================= + /** + * The implementation. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] must not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + acceptPrimaryKeyMap(mapListString.generateMap(primaryKeyMapString)); + } + + protected void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException("The value should not be null: " + + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + protected long parseDateStringAsMillis(Object value, String propertyName, + String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = (String) value; + if (valueString.indexOf("-") >= 0 + && valueString.indexOf("-") != valueString.lastIndexOf("-")) { + return java.sql.Timestamp.valueOf(valueString).getTime(); + } else { + return getParseDateFormat().parse((String) value).getTime(); + } + } catch (java.text.ParseException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } + } + + private java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateTimeInstance(); + } + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) {// Very Internal! + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table left outer join ... on ... + * [from-hint] where ...} + * + * @return from-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * The implementation. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * The implementation. + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective() { + return getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + // Do nothing! + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return _sqlClause.getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Limit Select + // ============ + /** Is limit-select PK only? */ + protected boolean _isLimitSelectPKOnly; + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly() { + return _isLimitSelectPKOnly; + } + + /** + * Limit select PK only. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly() { + _isLimitSelectPKOnly = true; + return this; + } + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off() { + _isLimitSelectPKOnly = false; + return this; + } + + //========================================================================== + // ========= + // Lock Setting + // ============ + /** + * The implementation. + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate() { + getSqlClause().lockForUpdate(); + return this; + } + + //========================================================================== + // ========= + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = true; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().ignoreIncludedSelectColumn(); + } + + getSqlClause().ignoreOrderBy(); + getSqlClause().ignoreFetchScope(); + return this; + } + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = false; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().makeIncludedSelectColumnEffective(); + } + + getSqlClause().makeOrderByEffective(); + getSqlClause().makeFetchScopeEffective(); + return this; + } + + /** Is set up various things for select-count-ignore-fetch-scope? */ + protected boolean _isSelectCountIgnoreFetchScope; + + /** + * Is set up various things for select-count-ignore-fetch-scope? This method + * is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope() { + return _isSelectCountIgnoreFetchScope; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected static abstract class AbstractSpecification { + protected ConditionBean _baseCB; + + protected SpQyCall _qyCall; + + protected CQ _query; + + protected boolean _forDeriveReferrer; + + protected boolean alreadySpecifyRequiredColumn; + + /** + * @param baseCB The condition-bean of base level. (NotNull) + * @param qyCall The callback for condition-query. (NotNull) + * @param forDeriveReferrer Is this for derive referrer? + */ + protected AbstractSpecification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + _baseCB = baseCB; + _qyCall = qyCall; + _forDeriveReferrer = forDeriveReferrer; + } + + protected void doColumn(String columnName) { + assertColumn(columnName); + if (_query == null) { + _query = _qyCall.qy(); + } + if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) { + alreadySpecifyRequiredColumn = true; + doSpecifyRequiredColumn(); + } + String relationPath = _query.getRelationPath() != null ? _query + .getRelationPath() : ""; + final String tableAliasName; + if (_query.isBaseQuery(_query)) { + tableAliasName = _baseCB.getSqlClause() + .getLocalTableAliasName(); + } else { + tableAliasName = _baseCB.getSqlClause().resolveJoinAliasName( + relationPath, _query.getNestLevel()); + } + _baseCB.getSqlClause().specifySelectColumn(tableAliasName, + columnName); + } + + protected void assertColumn(String columnName) { + if (_query == null && !_qyCall.has()) { + throwSpecifyColumnNotSetupSelectColumnException(columnName); + } + } + + protected void assertForeign(String foreignPropertyName) { + if (_forDeriveReferrer) { + throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); + } + } + + protected abstract void doSpecifyRequiredColumn(); + + protected abstract String getTableDbName(); + + protected void throwSpecifyColumnNotSetupSelectColumnException( + String columnName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You specified the column that had Not been Set up!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName(); // *No!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + " cb.setupSelect_MemberStatus(); // *Point!" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName();" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + + _baseCB.getClass().getName() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Column]" + getLineSeparator() + + getTableDbName() + "." + columnName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifyColumnNotSetupSelectColumnException(msg); + } + + protected void throwDeriveReferrerInvalidForeignSpecificationException( + String foreignPropertyName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "You specified a foreign table column in spite of derive-sub-query!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified a local table column at condition-bean for derive-sub-query." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Foreign Property]" + getLineSeparator() + + foreignPropertyName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidForeignSpecificationException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + protected static interface SpQyCall { + public boolean has(); + + public CQ qy(); + } + + public static class SpecifyColumnNotSetupSelectColumnException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifyColumnNotSetupSelectColumnException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerInvalidForeignSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidForeignSpecificationException(String msg) { + super(msg); + } + } + + public static class RAFunction { + protected ConditionBean _baseCB; + + protected LOCAL_CQ _localCQ; + + protected RAQSetupper _querySetupper; + + public RAFunction(ConditionBean baseCB, LOCAL_CQ localCQ, + RAQSetupper querySetupper) { + _baseCB = baseCB; + _localCQ = localCQ; + _querySetupper = querySetupper; + } + + public void max(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("max", subQuery, _localCQ, aliasName.trim()); + } + + public void min(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("min", subQuery, _localCQ, aliasName.trim()); + } + + public void sum(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("sum", subQuery, _localCQ, aliasName.trim()); + } + + public void avg(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("avg", subQuery, _localCQ, aliasName.trim()); + } + + public void count(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("count", subQuery, _localCQ, aliasName.trim()); + } + + protected void assertAliasName(String aliasName) { + if (aliasName == null || aliasName.trim().length() == 0) { + throwDeriveReferrerInvalidAliasNameException(); + } + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_baseCB + .getTableDbName()); + Method[] methods = dbmeta.getEntityType().getMethods(); + String targetMethodName = "set" + + replaceString(aliasName, "_", "").toLowerCase(); + boolean existsSetterMethod = false; + for (Method method : methods) { + if (!method.getName().startsWith("set")) { + continue; + } + if (targetMethodName.equals(method.getName().toLowerCase())) { + existsSetterMethod = true; + break; + } + } + if (!existsSetterMethod) { + throwDeriveReferrerEntityPropertyNotFoundException(aliasName, + dbmeta.getEntityType()); + } + } + + protected void throwDeriveReferrerInvalidAliasNameException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The alias name for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Local Table]" + getLineSeparator() + + _localCQ.getTableDbName() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidAliasNameException(msg); + } + + protected void throwDeriveReferrerEntityPropertyNotFoundException( + String aliasName, Class entityType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "A property for derive-referrer was Not Found in the entity!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should implement a property(setter and getter) in the entity." + + getLineSeparator(); + msg = msg + + "Or you should confirm whether the alias name has typo or not." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [ConditionBean Invoking]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Extended Entity]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " // At the entity of Purchase..." + + getLineSeparator(); + msg = msg + " protected Date _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " public Date getLatestPurchaseDatetime() {" + + getLineSeparator(); + msg = msg + " return _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + + getLineSeparator(); + msg = msg + + " _latestPurchaseDatetime = latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entityType + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerEntityPropertyNotFoundException(msg); + } + + protected String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + public static interface RAQSetupper { + public void setup(String function, SubQuery subQuery, + LOCAL_CQ cq, String aliasName); + } + + public static class DeriveReferrerInvalidAliasNameException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidAliasNameException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerEntityPropertyNotFoundException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerEntityPropertyNotFoundException(String msg) { + super(msg); + } + } + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected void doSetupSelect(SsCall callback) { + String foreignPropertyName = callback.qf().getForeignPropertyName(); + assertSetupSelectBeforeUnion(foreignPropertyName); + limitSelect_Off(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + String localRelationPath = localCQ().getRelationPath(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, localRelationPath); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + protected static interface SsCall { + public ConditionQuery qf(); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + protected void assertPrimaryKeyMap( + Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] must not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] must not be empty."; + throw new IllegalArgumentException(msg); + } + List columnInfoList = DBMetaInstanceHandler.findDBMeta( + getTableDbName()).getPrimaryUniqueInfo().getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnDbName = columnInfo.getColumnDbName(); + if (!primaryKeyMap.containsKey(columnDbName)) { + String msg = "The primaryKeyMap must have the value of " + + columnDbName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + } + + protected void assertSetupSelectBeforeUnion(String foreignPropertyName) { + if (hasUnionQueryOrUnionAllQuery()) { + throwSetupSelectAfterUnionException( + this.getClass().getSimpleName(), foreignPropertyName); + } + } + + protected void throwSetupSelectAfterUnionException(String className, + String foreignPropertyName) { + String methodName = "setupSelect_" + initCap(foreignPropertyName) + + "()"; + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You should NOT call " + methodName + + " after calling union()!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + methodName + " should be called before calling union()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " " + className + " cb = new " + className + "();" + + getLineSeparator(); + msg = msg + " cb." + methodName + "; // You shuold call here!" + + getLineSeparator(); + msg = msg + " cb.query().setXxx...;" + getLineSeparator(); + msg = msg + " cb.union(new UnionQuery<" + className + ">() {" + + getLineSeparator(); + msg = msg + " public void query(" + className + " unionCB) {" + + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " });" + getLineSeparator(); + msg = msg + + " // You should not call setupSelect after calling union()!" + + getLineSeparator(); + msg = msg + " // cb." + methodName + ";" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SetupSelect Method]" + getLineSeparator() + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean SQL]" + getLineSeparator() + toDisplaySql() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql() { + return ConditionBeanContext.convertConditionBean2DisplaySql(this); + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Purpose Type + // ============ + public void xsetupForDeriveReferrer() { + _forDeriveReferrer = true; + } + + public void xsetupForUnion() { + _forUnion = true; + } + + public void xsetupForExistsSubQuery() { + _forExistsSubQuery = true; + } + + public void xsetupForInScopeSubQuery() { + _forInScopeSubQuery = true; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * The override. + * + * @return SQL for display. (NotNull) + */ + public String toString() { + try { + return toDisplaySql(); + } catch (RuntimeException e) { + return getSqlClause().getClause(); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionQuery.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionQuery.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionQuery.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1666 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; +import jp.sf.pal.todolist.db.allcommon.util.TraceViewUtil; + +/** + * The abstract class of condition-query. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionQuery implements ConditionQuery { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final ConditionKey CK_EQ = ConditionKey.CK_EQUAL; + + protected static final ConditionKey CK_NE = ConditionKey.CK_NOT_EQUAL; + + protected static final ConditionKey CK_GE = ConditionKey.CK_GREATER_EQUAL; + + protected static final ConditionKey CK_GT = ConditionKey.CK_GREATER_THAN; + + protected static final ConditionKey CK_LE = ConditionKey.CK_LESS_EQUAL; + + protected static final ConditionKey CK_LT = ConditionKey.CK_LESS_THAN; + + protected static final ConditionKey CK_PS = ConditionKey.CK_PREFIX_SEARCH; + + protected static final ConditionKey CK_LS = ConditionKey.CK_LIKE_SEARCH; + + protected static final ConditionKey CK_INS = ConditionKey.CK_IN_SCOPE; + + protected static final ConditionKey CK_NINS = ConditionKey.CK_NOT_IN_SCOPE; + + protected static final ConditionKey CK_ISN = ConditionKey.CK_IS_NULL; + + protected static final ConditionKey CK_ISNN = ConditionKey.CK_IS_NOT_NULL; + + /** Condition value for DUMMY. */ + protected static final ConditionValue DUMMY_CONDITION_VALUE = new ConditionValue(); + + /** Object for DUMMY. */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** The property of condition-query. */ + protected static final String CQ_PROPERTY = "conditionQuery"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause. */ + protected final SqlClause _sqlClause; + + /** My alias name. */ + protected final String _aliasName; + + /** The level of nest. */ + protected final int _nestLevel; + + /** The level of subQuery. */ + protected int _subQueryLevel; + + // ----------------------------------------------------- + // Foreign Info + // ------------ + /** The property name of foreign. */ + protected String _foreignPropertyName; + + /** The path of relation. */ + protected String _relationPath; + + /** The query of child. */ + protected final ConditionQuery _childQuery; + + // ----------------------------------------------------- + // Inline + // ------ + /** Is it the inline for on-clause. (Property for Inline Only) */ + protected boolean _onClauseInline; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query. (Nullable: If null, this is base + * instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public AbstractConditionQuery(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + _childQuery = childQuery; + _sqlClause = sqlClause; + _aliasName = aliasName; + _nestLevel = nestLevel; + } + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery() { + return _childQuery; + } + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName() { + return _aliasName; + } + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel() { + return _nestLevel; + } + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel() { + return _nestLevel + 1; + } + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query) { + return (query.getChildQuery() == null); + } + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel() { + return _subQueryLevel; + } + + // ----------------------------------------------------- + // Real Name + // --------- + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. + */ + public String getRealAliasName() { + return getAliasName(); + } + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. This should not contain + * comma. (NotNull) + * @return Real column name. + */ + public String getRealColumnName(String columnName) { + assertColumnName(columnName); + return buildRealColumnName(getRealAliasName(), columnName); + } + + /** + * Build real column name. + * + * @param aliasName Alias name. (NotNull) + * @param columnName Column name. (NotNull) + * @return Real column name. (NotNull) + */ + protected String buildRealColumnName(String aliasName, String columnName) { + return aliasName + "." + columnName; + } + + // ----------------------------------------------------- + // Foreign Info + // ------------ + public String getForeignPropertyName() { + return _foreignPropertyName; + } + + public void xsetForeignPropertyName(String foreignPropertyName) { + this._foreignPropertyName = foreignPropertyName; + } + + public String getRelationPath() { + return _relationPath; + } + + public void xsetRelationPath(String relationPath) { + this._relationPath = relationPath; + } + + // ----------------------------------------------------- + // Inline + // ------ + public void xsetOnClauseInline(boolean onClauseInline) { + _onClauseInline = onClauseInline; + } + + //========================================================================== + // ========= + // Location + // ======== + /** + * Get location. + * + * @param columnPropertyName Column property name. + * @param key Condition key. + * @return Next nest level. + */ + protected String getLocation(String columnPropertyName, ConditionKey key) { + return getLocationBase(columnPropertyName) + "." + + key.getConditionKey(); + } + + protected String getLocationBase() { + final StringBuffer sb = new StringBuffer(); + ConditionQuery query = this; + while (true) { + if (query.isBaseQuery(query)) { + sb.insert(0, CQ_PROPERTY + "."); + break; + } else { + final String foreignPropertyName = query + .getForeignPropertyName(); + if (foreignPropertyName == null) { + String msg = "The foreignPropertyName of the query should not be null:"; + msg = msg + " query=" + query; + throw new IllegalStateException(msg); + } + sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + "."); + } + query = query.getChildQuery(); + } + return sb.toString(); + } + + protected String getLocationBase(String columnPropertyName) { + return getLocationBase() + columnPropertyName; + } + + //========================================================================== + // ========= + // Union Query + // =========== + /** The map of union query. */ + protected Map _unionQueryMap; + + /** + * Get the map of union query. + * + * @return The map of union query. (NotNull) + */ + public Map getUnionQueryMap() {// for Internal + if (_unionQueryMap == null) { + _unionQueryMap = new LinkedHashMap(); + } + return _unionQueryMap; + } + + /** + * Set union query. {Internal} + * + * @param unionQuery Union query. (NotNull) + */ + public void xsetUnionQuery(ConditionQuery unionQuery) { + xsetupUnion(unionQuery, false, getUnionQueryMap()); + } + + /** The map of union all query. */ + protected Map _unionAllQueryMap; + + /** + * Get the map of union all query. + * + * @return The map of union all query. (NotNull) + */ + public Map getUnionAllQueryMap() {// for Internal + if (_unionAllQueryMap == null) { + _unionAllQueryMap = new LinkedHashMap(); + } + return _unionAllQueryMap; + } + + /** + * Set union all query. {Internal} + * + * @param unionAllQuery Union all query. (NotNull) + */ + public void xsetUnionAllQuery(ConditionQuery unionAllQuery) { + xsetupUnion(unionAllQuery, true, getUnionAllQueryMap()); + } + + protected void xsetupUnion(ConditionQuery unionQuery, boolean unionAll, + Map unionQueryMap) { + if (unionQuery == null) { + String msg = "The argument[unionQuery] should not be null."; + throw new IllegalArgumentException(msg); + } + reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation! + getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect + // IncludedSelectColumn + // ! + if (getSqlClause().isFormatClauseEffective()) { + unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect + // FormatClause + // ! + } + String key = (unionAll ? "unionAllQuery" : "unionQuery") + + unionQueryMap.size(); + unionQueryMap.put(key, unionQuery); + registerUnionQuery(unionQuery, unionAll, (unionAll ? "unionAllQueryMap" + : "unionQueryMap") + + "." + key); + } + + /** + * Reflect relation on union query. + * + * @param baseQueryAsSuper Base query as super. (NotNull) + * @param unionQueryAsSuper Union query as super. (NotNull) + */ + abstract protected void reflectRelationOnUnionQuery( + ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper); + + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery() { + return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) + || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty()); + } + + /** + * Get the list of union query. + * + * @return The list of union query. (NotNull) + */ + public List getUnionQueryList() { + if (_unionQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionQueryMap.values()); + } + + /** + * Get the list of union all query. + * + * @return The list of union all query. (NotNull) + */ + public List getUnionAllQueryList() { + if (_unionAllQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionAllQueryMap.values()); + } + + //========================================================================== + // ========= + // Register + // ======== + // ----------------------------------------------------- + // Include-As-Mine + // --------------- + /** + * Register included-select-column. + * + * @param aliasName Alias name. This should not contain comma. (NotNull) + * @param realColumnName Real column name. This should not contain comma. + * (NotNull) + * @deprecated Unsupported! + */ + protected void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + throw new UnsupportedOperationException(); + } + + // ----------------------------------------------------- + // Query + // ----- + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName); + } + } + + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + + // ----------------------------------------------------- + // FromTo Query + // ------------ + protected void registerFromToQuery(java.util.Date fromDate, + java.util.Date toDate, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, FromToOption option) { + { + final java.util.Date filteredFromDate = option + .filterFromDate(fromDate); + final ConditionKey fromKey = option.getFromDateConditionKey(); + if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(fromKey, + filteredFromDate, cvalue, colName, capPropName, + uncapPropName); + } + } + { + final java.util.Date filteredToDate = option.filterToDate(toDate); + final ConditionKey toKey = option.getToDateConditionKey(); + if (toKey.isValidRegistration(cvalue, filteredToDate, toKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(toKey, + filteredToDate, cvalue, colName, capPropName, + uncapPropName); + } + } + } + + // ----------------------------------------------------- + // LikeSearch Query + // ---------------- + @SuppressWarnings("deprecation") + protected void registerLikeSearchQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, LikeSearchOption option) { + final String validationMsg = key.getConditionKey() + " of " + + getRealAliasName() + "." + colName; + if (!key.isValidRegistration(cvalue, value, validationMsg)) { + return; + } + if (option == null) { + throwLikeSearchOptionNotFoundException(capPropName, value); + return;// Unreachable! + } + if (value == null || !option.isSplit()) { + // As Normal Condition. + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + return; + } + // - - - - - - - - - + // Use splitByXxx(). + // - - - - - - - - - + final String[] strArray = option.generateSplitValueArray(value); + if (!option.isAsOrSplit()) { + // As 'and' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + setupConditionValueAndRegisterWhereClause(key, currentValue, + cvalue, colName, capPropName, uncapPropName, option); + + // Callback for LikeAsOr! + final List callbackList = option + .getLikeAsOrCallbackList(); + if (!callbackList.isEmpty()) { + getSqlClause().makeAdditionalConditionAsOrEffective(); + for (Iterator ite = callbackList + .iterator(); ite.hasNext();) { + final LikeSearchOption.LikeAsOrCallback likeAsOrCallback = (LikeSearchOption.LikeAsOrCallback) ite + .next(); + final String additionalTargetPropertyName = likeAsOrCallback + .getAdditionalTargetPropertyName(); + final String filteredValue = likeAsOrCallback + .filterValue(currentValue); + final LikeSearchOption optionDeepCopy = (LikeSearchOption) option + .createDeepCopy(); + optionDeepCopy.clearLikeAsOrCallback(); + final LikeSearchOption filteredOption = likeAsOrCallback + .filterOption(optionDeepCopy); + invokeSetterLikeSearch(additionalTargetPropertyName, + filteredValue, filteredOption); + } + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + } else { + // As 'or' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + if (i == 0) { + setupConditionValueAndRegisterWhereClause(key, + currentValue, cvalue, colName, capPropName, + uncapPropName, option); + } else { + getSqlClause().makeAdditionalConditionAsOrEffective(); + invokeSetterLikeSearch(uncapPropName, currentValue, option); + } + } + + // @jflute -- Callback for LikeAsOr! + // final List callbackList = + // option.getLikeAsOrCallbackList(); + // ... + + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + + protected void throwLikeSearchOptionNotFoundException(String capPropName, + String value) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = getClass().getSimpleName(); + final String methodName = "set" + capPropName + "_LikeSearch('" + value + + "', likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new RequiredOptionNotFoundException(msg); + } + + protected void invokeSetterLikeSearch(String columnFlexibleName, + Object value, LikeSearchOption option) { + if (value == null) { + return; + } + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "set" + columnCapPropName + "_LikeSearch"; + Method method = null; + try { + method = this.getClass().getMethod(methodName, + new Class[] { value.getClass(), LikeSearchOption.class }); + } catch (NoSuchMethodException e) { + String msg = "The columnFlexibleName is not existing in this table: columnFlexibleName=" + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + method.invoke(this, new Object[] { value, option }); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + // ----------------------------------------------------- + // InScope Query + // ------------- + protected void registerInScopeQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, InScopeOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + if (value != null && option.isSplit()) { + final String[] strArray = option.generateSplitValueArray(value); + final List realValueList = new ArrayList(); + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + realValueList.add(currentValue); + } + setupConditionValueAndRegisterWhereClause(key, realValueList, + cvalue, colName, capPropName, uncapPropName, option); + } else { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + } + + // ----------------------------------------------------- + // Inline Query + // ------------ + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key));// If Java, it is necessary to use uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, + _onClauseInline); + } + } + } + + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key), option);// If Java, it is necessary to use + // uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue, option); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, option, + _onClauseInline); + } + } + } + + // ----------------------------------------------------- + // InScopeSubQuery + // --------------- + // {Modified at DBFlute-0.7.5} + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String inScopeOption) { + assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery); + inScopeOption = inScopeOption != null ? inScopeOption + " " : ""; + String realColumnName = getInScopeSubQueryRealColumnName(columnName); + String subQueryClause = getInScopeSubQuerySql(subQuery, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = realColumnName + " " + inScopeOption + "in (" + beginMark + + subQueryClause + ln + endIndent + ")" + endMark; + } else { + clause = realColumnName + " " + inScopeOption + "in (" + + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + protected String getInScopeSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getInScopeSubQuerySql(ConditionQuery subQuery, + String relatedColumnName, String propertyName) { + String selectClause = "select " + + getSqlClause().getLocalTableAliasName() + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + return selectClause + " " + fromWhereClause; + } + + // ----------------------------------------------------- + // ExistsSubQuery + // -------------- + // {Modified at DBFlute-0.7.5} + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String existsOption) { + assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery); + existsOption = existsOption != null ? existsOption + " " : ""; + String realColumnName = getExistsSubQueryRealColumnName(columnName); + String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = existsOption + "exists (" + beginMark + subQueryClause + + ln + endIndent + ")" + endMark; + } else { + clause = existsOption + "exists (" + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // *Unsupport ExistsSubQuery as inline because it's so dangerous. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + protected String getExistsSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getExistsSubQuerySql(ConditionQuery subQuery, + String realColumnName, String relatedColumnName, String propertyName) { + int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + String tableAliasName = "dfsublocal_" + subQueryLevel; + String selectClause = "select " + tableAliasName + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + String joinCondition = tableAliasName + "." + relatedColumnName + " = " + + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + // [DBFlute-0.7.4] + // ----------------------------------------------------- + // DeriveSubQuery + // -------------- + protected void registerDeriveSubQuery(String function, + ConditionQuery subQuery, String columnName, + String relatedColumnName, String propertyName, String aliasName) { + assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery); + final String realColumnName = getDeriveSubQueryRealColumnName(columnName); + final String subQueryClause = getDeriveSubQuerySql(function, subQuery, + realColumnName, relatedColumnName, propertyName, aliasName); + final String clause; + if (getSqlClause().isFormatClauseEffective()) { + final String ln = getLineSeparator(); + final int subQueryLevel = subQuery.getSubQueryLevel(); + final String subQueryIdentity = propertyName + "[" + subQueryLevel + + "]"; + final String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + final String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + final String endIndent = " "; + clause = "(" + beginMark + subQueryClause + ln + endIndent + + ") as " + aliasName + endMark; + } else { + clause = "(" + subQueryClause + ") as " + aliasName; + } + getSqlClause().specifyDeriveSubQuery(aliasName, clause); + } + + protected String getDeriveSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getDeriveSubQuerySql(String function, + ConditionQuery subQuery, String realColumnName, + String relatedColumnName, String propertyName, String aliasName) { + final int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + final String tableAliasName = "dfsublocal_" + subQueryLevel; + final String deriveColumnName = subQuery.getSqlClause() + .getSpecifiedColumnNameAsOne(); + if (deriveColumnName == null || deriveColumnName.trim().length() == 0) { + throwDeriveReferrerInvalidColumnSpecificationException(function, + aliasName); + } + assertDeriveReferrerColumnType(function, subQuery, deriveColumnName); + subQuery.getSqlClause().clearSpecifiedSelectColumn(); + final String selectClause = "select " + function + "(" + tableAliasName + + "." + deriveColumnName + ")"; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + final String joinCondition = tableAliasName + "." + relatedColumnName + + " = " + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + protected void throwDeriveReferrerInvalidColumnSpecificationException( + String function, String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The specified the column for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + " You should call specify().column[TargetColumn]() only once." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " // *No! It's empty!" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime(); // *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidColumnSpecificationException(msg); + } + + public static class DeriveReferrerInvalidColumnSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidColumnSpecificationException(String msg) { + super(msg); + } + } + + protected void assertDeriveReferrerColumnType(String function, + ConditionQuery subQuery, String deriveColumnName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(subQuery + .getTableDbName()); + final Class deriveColumnType = dbmeta.findColumnInfo( + deriveColumnName).getPropertyType(); + if ("sum".equalsIgnoreCase(function) + || "avg".equalsIgnoreCase(function)) { + if (!Number.class.isAssignableFrom(deriveColumnType)) { + throwDeriveReferrerUnmatchedColumnTypeException(function, + deriveColumnName, deriveColumnType); + } + } + } + + protected void throwDeriveReferrerUnmatchedColumnTypeException( + String function, String deriveColumnName, Class deriveColumnType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The type of the specified the column unmatched with the function!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should confirm the list as follow:" + + getLineSeparator(); + msg = msg + " max() : String, Number, Date" + getLineSeparator(); + msg = msg + " min() : String, Number, Date" + getLineSeparator(); + msg = msg + " sum() : Number" + getLineSeparator(); + msg = msg + " avg() : Number" + getLineSeparator(); + msg = msg + " count() : String, Number, Date" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Function]" + getLineSeparator() + function + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + + "(" + deriveColumnType.getName() + ")" + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerUnmatchedColumnTypeException(msg); + } + + public static class DeriveReferrerUnmatchedColumnTypeException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerUnmatchedColumnTypeException(String msg) { + super(msg); + } + } + + // ----------------------------------------------------- + // Where Clause + // ------------ + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If + // Java + // , + // it + // is + // necessary + // to + // use + // uncapPropName + // ! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue); + } + + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), + option);// If Java, it is necessary to use uncapPropName! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue, option); + } + + protected void registerWhereClause(String whereClause) { + getSqlClause().registerWhereClause(whereClause); + } + + protected void registerInlineWhereClause(String whereClause) { + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(whereClause); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), whereClause, _onClauseInline); + } + } + + // ----------------------------------------------------- + // Union Query + // ----------- + public void registerUnionQuery(ConditionQuery unionQuery, boolean unionAll, + String unionQueryPropertyName) { + final String unionQueryClause = getUnionQuerySql(unionQuery, + unionQueryPropertyName); + + // At the future, building SQL will be moved to sqlClause. + getSqlClause().registerUnionQuery(unionQueryClause, unionAll); + } + + protected String getUnionQuerySql(ConditionQuery unionQuery, + String unionQueryPropertyName) { + final String fromClause = unionQuery.getSqlClause().getFromClause(); + final String whereClause = unionQuery.getSqlClause().getWhereClause(); + final String unionQueryClause; + if (whereClause.trim().length() <= 0) { + unionQueryClause = fromClause + " " + + getSqlClause().getUnionWhereClauseMark(); + } else { + final int whereIndex = whereClause.indexOf("where "); + if (whereIndex < 0) { + String msg = "The whereClause should have 'where' string: " + + whereClause; + throw new IllegalStateException(msg); + } + final int clauseIndex = whereIndex + "where ".length(); + final String mark = getSqlClause() + .getUnionWhereFirstConditionMark(); + unionQueryClause = fromClause + " " + + whereClause.substring(0, clauseIndex) + mark + + whereClause.substring(clauseIndex); + } + final String oldStr = ".conditionQuery."; + final String newStr = ".conditionQuery." + unionQueryPropertyName + "."; + return replaceString(unionQueryClause, oldStr, newStr);// Very + // Important! + } + + // ----------------------------------------------------- + // OrderBy + // ------- + public void withNullsFirst() {// is User Public! + getSqlClause().addNullsFirstToPreviousOrderBy(); + } + + public void withNullsLast() {// is User Public! + getSqlClause().addNullsLastToPreviousOrderBy(); + } + + protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, true); + } + + protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, false); + } + + protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException( + String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The aliasName was Not Found in specified alias names." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified an alias name that is the same as one in specify-derived-referrer." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg); + } + + public static class SpecifiedDerivedOrderByAliasNameNotFoundException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) { + super(msg); + } + } + + protected void registerOrderBy(String columnName, boolean ascOrDesc) { + getSqlClause().registerOrderBy(getRealColumnName(columnName), null, + ascOrDesc); + } + + protected void regOBA(String columnName) { + registerOrderBy(columnName, true); + } + + protected void regOBD(String columnName) { + registerOrderBy(columnName, false); + } + + //========================================================================== + // ========= + // Name Resolver + // ============= + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param nestLevel Nest level. + * @return Resolved join alias name. (NotNull) + */ + protected String resolveJoinAliasName(String relationPath, int nestLevel) { + return getSqlClause().resolveJoinAliasName(relationPath, nestLevel); + } + + protected String resolveNestLevelExpression(String name) { + return getSqlClause().resolveNestLevelExpression(name, getNestLevel()); + } + + protected String resolveNextRelationPath(String tableName, + String relationPropertyName) { + final int relationNo = getSqlClause().resolveRelationNo(tableName, + relationPropertyName); + String nextRelationPath = "_" + relationNo; + if (_relationPath != null) { + nextRelationPath = _relationPath + nextRelationPath; + } + return nextRelationPath; + } + + //========================================================================== + // ========= + // Fixed Condition + // =============== + protected String prepareFixedCondition(String fixedCondition, + String localAliasName, String foreignAliasName) { + fixedCondition = replaceString(fixedCondition, "$$alias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$localAlias$$", + localAliasName); + return fixedCondition; + } + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "get" + columnCapPropName; + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, columnFlexibleName); + return (ConditionValue) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", + conditionKeyName); + if (value == null) { + return; + } + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "set" + columnCapPropName + "_" + + initCap(conditionKeyName); + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] { value.getClass() }, propertyName); + helpInvokingCQMethod(cq, method, new Object[] { value }); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of a column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final String ascDesc = isAsc ? "Asc" : "Desc"; + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "addOrderBy_" + columnCapPropName + "_" + + ascDesc; + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] {}, propertyName); + helpInvokingCQMethod(cq, method, new Object[] {}); + } + + /** + * The implementation. + * + * @param foreignPropertyName The property name of foreign. (NotNull and + * NotEmpty) + * @return The conditionQuery of foreign as interface. (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = "query" + initCap(foreignPropertyName); + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, foreignPropertyName); + return (ConditionQuery) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + private PropertyNameCQContainer helpExtractingPropertyNameCQContainer( + String name) { + final String[] strings = name.split("\\."); + final int length = strings.length; + String propertyName = null; + ConditionQuery cq = this; + int index = 0; + for (String element : strings) { + if (length == (index + 1)) {// at last loop! + propertyName = element; + break; + } + cq = cq.invokeForeignCQ(element); + ++index; + } + return new PropertyNameCQContainer(propertyName, cq); + } + + private static class PropertyNameCQContainer { + protected String _propertyName; + + protected ConditionQuery _cq; + + public PropertyNameCQContainer(String propertyName, ConditionQuery cq) { + this._propertyName = propertyName; + this._cq = cq; + } + + public String getPropertyName() { + return _propertyName; + } + + public ConditionQuery getConditionQuery() { + return _cq; + } + } + + private Method helpGettingCQMethod(ConditionQuery cq, String methodName, + Class[] argTypes, String property) { + try { + return cq.getClass().getMethod(methodName, argTypes); + } catch (NoSuchMethodException e) { + String msg = "The method is not existing:"; + msg = msg + " methodName=" + methodName; + msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes); + msg = msg + " tableName=" + cq.getTableDbName(); + msg = msg + " property=" + property; + throw new IllegalStateException(msg, e); + } + } + + private Object helpInvokingCQMethod(ConditionQuery cq, Method method, + Object[] args) { + try { + return method.invoke(cq, args); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e.getCause()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String fRES(String value) { + return filterRemoveEmptyString(value); + } + + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + private String filterRemoveEmptyString(String value) { + return ((value != null && !"".equals(value)) ? value : null); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + protected List cTL( + Collection col) { + return convertToList(col); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + private List convertToList( + Collection col) { + if (col == null) { + return null; + } + if (col instanceof List) { + return filterRemoveNullOrEmptyValueFromList((List) col); + } + return filterRemoveNullOrEmptyValueFromList(new ArrayList( + col)); + } + + private List filterRemoveNullOrEmptyValueFromList( + List ls) { + if (ls == null) { + return null; + } + List newList = new ArrayList(); + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final PROPERTY_TYPE element = ite.next(); + if (element == null) { + continue; + } + if (element instanceof String) { + if (((String) element).length() == 0) { + continue; + } + } + newList.add(element); + } + return newList; + } + + public void doNss(NssCall callback) {// Very Internal + String foreignPropertyName = callback.qf().getForeignPropertyName(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, getRelationPath()); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + public static interface NssCall {// Very Internal + public ConditionQuery qf(); + } + + protected void registerOuterJoin(ConditionQuery cq, + Map joinOnMap) { + getSqlClause().registerOuterJoin(cq.getTableSqlName(), + cq.getRealAliasName(), joinOnMap); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected String convertObjectArrayToStringView(Object[] objArray) { + return TraceViewUtil.convertObjectArrayToStringView(objArray); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the column-name is not null and is not empty and does not + * contain comma. + * + * @param columnName Column-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertColumnName(String columnName) { + if (columnName == null) { + String msg = "The columnName should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnName.trim().length() == 0) { + String msg = "The columnName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (columnName.indexOf(",") >= 0) { + String msg = "The columnName should not contain comma ',': " + + columnName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the alias-name is not null and is not empty and does not + * contain comma. + * + * @param aliasName Alias-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertAliasName(String aliasName) { + if (aliasName == null) { + String msg = "The aliasName should not be null."; + throw new IllegalArgumentException(msg); + } + if (aliasName.trim().length() == 0) { + String msg = "The aliasName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (aliasName.indexOf(",") >= 0) { + String msg = "The aliasName should not contain comma ',': " + + aliasName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return getClass().getSimpleName() + ":{aliasName=" + _aliasName + + ", nestLevel=" + _nestLevel + ", subQueryLevel=" + + _subQueryLevel + ", foreignPropertyName=" + + _foreignPropertyName + ", relationPath=" + _relationPath + + ", onClauseInline=" + _onClauseInline + "}"; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/AbstractConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,226 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; + +/** + * The interface of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBean extends PagingBean { + + //========================================================================== + // =========== + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get SQL-clause instance. + * + * @return SQL-clause. (NotNull) + */ + public SqlClause getSqlClause(); + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + /** + * Accept primary-key map-string. + * + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap( + java.util.Map primaryKeyMap); + + /** + * Accept primary-key map-string. Delimiter is at-mark and semicolon. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString); + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + /** + * Add order-by PrimaryKey asc. {order by primaryKey1 asc, primaryKey2 + * asc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Asc(); + + /** + * Add order-by PrimaryKey desc. {order by primaryKey1 desc, primaryKey2 + * desc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Desc(); + + //========================================================================== + // ========= + // Query + // ===== + /** + * Get condition-query as interface. + * + * @return Instance of query as interface. (NotNull) + * @deprecated + */ + public ConditionQuery getConditionQueryAsInterface(); + + /** + * Get the conditionQuery of the local table as interface. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ(); + + //========================================================================== + // ========= + // Union Query + // =========== + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery(); + + //========================================================================== + // ========= + // Limit Select + // ============ + /** + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly(); + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off(); + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly(); + + //========================================================================== + // =========== + // Lock Setting + // ============ + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate(); + + //========================================================================== + // =========== + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope(); + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope(); + + /** + * Is set up various things for select-count-ignore-fetch-scope? {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope(); + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig); + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig(); + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBeanContext.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBeanContext.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,428 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.DBFluteConfig; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseDb2; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseDerby; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseFirebird; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseH2; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseMySql; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseOracle; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClausePostgreSql; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClauseSqlServer; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The context of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionBeanContext { + + /** Log instance. */ + private static final Log _log = LogFactory + .getLog(ConditionBeanContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get condition-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static ConditionBean getConditionBeanOnThread() { + return (ConditionBean) _threadLocal.get(); + } + + /** + * Set condition-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setConditionBeanOnThread(ConditionBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing condition-bean on thread? + * + * @return Determination. + */ + public static boolean isExistConditionBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear condition-bean on thread. + */ + public static void clearConditionBeanOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Initialize against the ClassLoader Headache + // =========================================== + @SuppressWarnings("unused") + public static void initialize() { + boolean debugEnabled = _log.isDebugEnabled(); + // Against the ClassLoader Headache! + final StringBuilder sb = new StringBuilder(); + { + final Class clazz = jp.sf.pal.todolist.db.allcommon.cbean.SimplePagingBean.class; + if (debugEnabled) { + sb.append( + " ...Loading class of " + clazz.getName() + " by " + + clazz.getClassLoader().getClass()).append( + getLineSeparator()); + } + } + { + Class clazz = jp.sf.pal.todolist.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.todolist.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingOption.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingRowEndDeterminer.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingRowResource.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingRowSetupper.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.PageNumberLink.class; + clazz = jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper.class; + clazz = jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler.class; + if (debugEnabled) { + sb.append(" ...Loading class of ...and so on"); + } + } + if (debugEnabled) { + _log.debug("{Initialize against the ClassLoader Headache}" + + getLineSeparator() + sb); + } + } + + //========================================================================== + // ========= + // Type Determination + // ================== + /** + * Is the argument condition-bean? + * + * @param dtoInstance DTO instance. + * @return Determination. + */ + public static boolean isTheArgumentConditionBean(final Object dtoInstance) { + if (dtoInstance instanceof ConditionBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type condition-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeConditionBean(final Class dtoClass) { + if (ConditionBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ========= + // Product Name + // ============ + public static final String DB_NAME_DERBY = "derby"; + + public static final String DB_NAME_H2 = "h2"; + + public static final String DB_NAME_ORACLE = "oracle"; + + public static final String DB_NAME_MYSQL = "mysql"; + + public static final String DB_NAME_POSTGRESQL = "postgresql"; + + public static final String DB_NAME_FIREBIRD = "firebird"; + + public static final String DB_NAME_MSSQL = "mssql"; + + public static final String DB_NAME_SYBASE = "sybase"; + + public static final String DB_NAME_DB2 = "db2"; + + protected static final Map _driverHintDatabaseProductNameMap; + static { + final Map tmpMap = Collections + .synchronizedMap(new LinkedHashMap()); + tmpMap.put("org.apache.derby", DB_NAME_DERBY); + tmpMap.put("org.h2", DB_NAME_H2); + tmpMap.put("oracle", DB_NAME_ORACLE); + tmpMap.put("mysql", DB_NAME_MYSQL); + tmpMap.put("postgresql", DB_NAME_POSTGRESQL); + tmpMap.put("firebird", DB_NAME_FIREBIRD); + tmpMap.put("sqlserver", DB_NAME_MSSQL); + tmpMap.put("sybase", DB_NAME_SYBASE); + tmpMap.put("db2", DB_NAME_DB2); + _driverHintDatabaseProductNameMap = java.util.Collections + .unmodifiableMap(tmpMap); + } + + public static boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + final java.util.Set keySet = _driverHintDatabaseProductNameMap + .keySet(); + for (final java.util.Iterator ite = keySet.iterator(); ite + .hasNext();) { + final String driverHint = (String) ite.next(); + if (driverClassName.indexOf(driverHint) >= 0) { + final String databaseProductName = (String) _driverHintDatabaseProductNameMap + .get(driverHint); + setDatabaseProductName(databaseProductName); + return true; + } + } + return false; + } + + /** The database product name. */ + private static String _databaseProductName; + + /** + * Get database product name. + * + * @return Database product name. + */ + public static String getDatabaseProductName() { + return _databaseProductName; + } + + /** + * Set database product name. + * + * @param name Database product name. (NotNull) + */ + public static void setDatabaseProductName(String name) { + if (_databaseProductName != null) { + String msg = "Already set up: current=" + _databaseProductName + + " your=" + name; + throw new IllegalStateException(msg); + } + _databaseProductName = name; + } + + //========================================================================== + // ========= + // SqlClause Creator + // ================= + /** + * Create SQL-clause. {for condition-bean} + * + * @param cb Condition-bean. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(ConditionBean cb) { + final String tableSqlName = cb.getTableSqlName(); + final SqlClause sqlClause = createSqlClause(tableSqlName); + if (DBFluteConfig.getInstance().isConditionBeanFormatSql()) { + sqlClause.makeFormatClauseEffective(); + } + return sqlClause; + } + + /** + * Create SQL-clause. {for SimplePagingBean} + * + * @param tableDbName The DB name of table. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(String tableDbName) { + final String databaseProductName = getDatabaseProductName(); + if (databaseProductName == null) { + return new SqlClauseH2(tableDbName); + } + final String name = databaseProductName.toLowerCase(); + if (name.equalsIgnoreCase(DB_NAME_DERBY)) { + return new SqlClauseDerby(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_H2)) { + return new SqlClauseH2(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_ORACLE)) { + return new SqlClauseOracle(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_FIREBIRD)) { + return new SqlClauseFirebird(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MYSQL)) { + return new SqlClauseMySql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_POSTGRESQL)) { + return new SqlClausePostgreSql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MSSQL)) { + return new SqlClauseSqlServer(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_DB2)) { + return new SqlClauseDb2(tableDbName); + } else { + return new SqlClauseH2(tableDbName); + } + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwEntityAlreadyDeletedException(Object searchKey4Log) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity was Not Found! it has already been deleted!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target record on your database." + + getLineSeparator(); + msg = msg + + "Does the target record really created before this operation?" + + getLineSeparator(); + msg = msg + "Has the target record been deleted by other thread?" + + getLineSeparator(); + msg = msg + + "It is precondition that the record exists on your database." + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } + + public static void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + + resultCountString + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm your search condition. Does it really select the only one?" + + getLineSeparator(); + msg = msg + + "Please confirm your database. Does it really exist the only one?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + if (cause != null) { + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException( + msg, cause); + } else { + throw new jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + //========================================================================== + // ========= + // Display SQL + // =========== + public static String convertConditionBean2DisplaySql(ConditionBean cb) { + final String twoWaySql; + if (cb.isLimitSelect_PKOnly()) { + twoWaySql = cb.getSqlClause().getClausePKOnly(); + } else { + twoWaySql = cb.getSqlClause().getClause(); + } + return InternalSqlParser.convertTwoWaySql2DisplaySql(twoWaySql, cb); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public static boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return createSqlClause("dummy").isUniqueConstraintException(sqlState, + errorCode); + } + + // [DBFlute-0.7.8] + //========================================================================== + // ========= + // Database Type + // ============= + /** + * Is the database Oracle? + * + * @return Is the database Oracle? + */ + public static boolean isOracle() { + return createSqlClause("dummy") instanceof SqlClauseOracle; + } + + /** + * Is the database PostgreSQL? + * + * @return Is the database PostgreSQL? + */ + public static boolean isPostgreSql() { + return createSqlClause("dummy") instanceof SqlClausePostgreSql; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionQuery.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionQuery.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionQuery.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,153 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The condition-query as interface. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface ConditionQuery { + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. (NotNull) + */ + public String getRealAliasName(); + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. (NotNull) + * @return Real column name. (NotNull) + */ + public String getRealColumnName(String columnName); + + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery(); + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause(); + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName(); + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel(); + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel(); + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query); + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel(); + + /** + * Get the property name of foreign relation. + * + * @return The property name of foreign relation. (NotNull) + */ + public String getForeignPropertyName(); + + /** + * Get the path of foreign relation. + * + * @return The path of foreign relation. (NotNull) + */ + public String getRelationPath(); + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * Invoke getting value. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName); + + /** + * Invoke setting query. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value); + + /** + * Invoke adding orderBy. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc); + + /** + * Invoke getting foreign conditionQuery. + * + * @param foreignPropertyName The property name of the foreign relation. + * (NotNull and NotEmpty) + * @return The conditionQuery of the foreign relation as interface. + * (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,62 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +/** + * The bean of fetch narrowing. + * + * @author DBFlute(AutoGenerator) + */ +public interface FetchNarrowingBean { + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective(); + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing(); + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing(); + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBeanContext.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBeanContext.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBeanContext.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,79 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +/** + * Fetch-Narrowing-Bean context. (referring to s2pager) + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingBeanContext { + + /** The thread-local for this. */ + private static ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get fetch-narrowing-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static FetchNarrowingBean getFetchNarrowingBeanOnThread() { + return (FetchNarrowingBean) _threadLocal.get(); + } + + /** + * Set fetch-narrowing-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setFetchNarrowingBeanOnThread(FetchNarrowingBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing fetch-narrowing-bean on thread? + * + * @return Determination. + */ + public static boolean isExistFetchNarrowingBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear fetch-narrowing-bean on thread. + */ + public static void clearFetchNarrowingBeanOnThread() { + _threadLocal.set(null); + } + + /** + * Is the argument fetch-narrowing-bean? + * + * @param dtoInstance Dto instance. + * @return Determination. + */ + public static boolean isTheArgumentFetchNarrowingBean( + final Object dtoInstance) { + if (dtoInstance instanceof FetchNarrowingBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type fetch-narrowing-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeFetchNarrowingBean(final Class dtoClass) { + if (FetchNarrowingBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/FetchNarrowingBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ListResultBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ListResultBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ListResultBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,392 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingOption; +import jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; +import jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingRowResource; +import jp.sf.pal.todolist.db.allcommon.cbean.grouping.GroupingRowSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The result bean for list. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class ListResultBean implements List, Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + protected String _tableDbName; + + /** The value of all record count. */ + protected int _allRecordCount; + + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); + + /** The clause of order-by. (NotNull) */ + protected OrderByClause _orderByClause = new OrderByClause(); + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public ListResultBean() { + } + + //========================================================================== + // ========= + // Grouping + // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ + public List groupingList( + GroupingRowSetupper groupingRowSetupper, + GroupingOption groupingOption) { + final List groupingList = new ArrayList(); + GroupingRowEndDeterminer rowEndDeterminer = groupingOption + .getGroupingRowEndDeterminer(); + if (rowEndDeterminer == null) { + rowEndDeterminer = new GroupingRowEndDeterminer() { + public boolean determine( + GroupingRowResource rowResource, + ENTITY nextEntity) { + return rowResource.isSizeUpBreakCount(); + } + }; // as Default + } + GroupingRowResource rowResource = new GroupingRowResource(); + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; + for (ENTITY entity : _selectedList) { + // Set up row resource. + rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); + + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + break; + } + + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); + + // Do at row end. + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + + // Initialize! + rowResource = new GroupingRowResource(); + rowElementIndex = 0; + ++allElementIndex; + continue; + } + ++rowElementIndex; + ++allElementIndex; + } + return groupingList; + } + + //========================================================================== + // ========= + // Mapping + // ======= + public ListResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean mappingList = new ListResultBean(); + for (ENTITY entity : _selectedList) { + mappingList.add(entityDtoMapper.map(entity)); + } + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + return mappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has this result selected? + * + * @return Determination. {Whether table DB name is not null} + */ + public boolean isSelectedResult() { + return _tableDbName != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return Hash-code from primary-keys. + */ + public int hashCode() { + if (_selectedList == null) { + return super.hashCode(); + } + return _selectedList.hashCode(); + } + + /** + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (_selectedList == null) { + return false; + } + if (other == null) { + return false; + } + if (!(other instanceof List)) { + return false; + } + return _selectedList.equals(other); + } + + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // List Elements + // ============= + public boolean add(ENTITY o) { + return _selectedList.add(o); + } + + public boolean addAll(Collection c) { + return _selectedList.addAll(c); + } + + public void clear() { + _selectedList.clear(); + } + + public boolean contains(Object o) { + return _selectedList.contains(o); + } + + public boolean containsAll(Collection c) { + return _selectedList.containsAll(c); + } + + public boolean isEmpty() { + return _selectedList.isEmpty(); + } + + public Iterator iterator() { + return _selectedList.iterator(); + } + + public boolean remove(Object o) { + return _selectedList.remove(o); + } + + public boolean removeAll(Collection c) { + return _selectedList.removeAll(c); + } + + public boolean retainAll(Collection c) { + return _selectedList.retainAll(c); + } + + public int size() { + return _selectedList.size(); + } + + public Object[] toArray() { + return _selectedList.toArray(); + } + + public TYPE[] toArray(TYPE[] a) { + return _selectedList.toArray(a); + } + + public void add(int index, ENTITY element) { + _selectedList.add(index, element); + } + + public boolean addAll(int index, Collection c) { + return _selectedList.addAll(index, c); + } + + public ENTITY get(int index) { + return _selectedList.get(index); + } + + public int indexOf(Object o) { + return _selectedList.indexOf(o); + } + + public int lastIndexOf(Object o) { + return _selectedList.lastIndexOf(o); + } + + public ListIterator listIterator() { + return _selectedList.listIterator(); + } + + public ListIterator listIterator(int index) { + return _selectedList.listIterator(index); + } + + public ENTITY remove(int index) { + return _selectedList.remove(index); + } + + public ENTITY set(int index, ENTITY element) { + return _selectedList.set(index, element); + } + + public List subList(int fromIndex, int toIndex) { + return _selectedList.subList(fromIndex, toIndex); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of tableDbName. + * + * @return The value of tableDbName. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + public String getTableDbName() { + return _tableDbName; + } + + /** + * Set the value of tableDbName. + * + * @param tableDbName The value of tableDbName. (NotNull) + */ + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } + + /** + * Get the value of allRecordCount. + * + * @return The value of allRecordCount. + */ + public int getAllRecordCount() { + return _allRecordCount; + } + + /** + * Set the value of allRecordCount. + * + * @param allRecordCount The value of allRecordCount. + */ + public void setAllRecordCount(int allRecordCount) { + _allRecordCount = allRecordCount; + } + + /** + * Get the value of selectedList. + * + * @return Selected list. (NotNull) + */ + public List getSelectedList() { + return _selectedList; + } + + /** + * Set the value of selectedList. + * + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) + */ + public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list + _selectedList = selectedList; + } + + /** + * Get the value of orderByClause. + * + * @return The value of orderByClause. (NotNull) + */ + public OrderByClause getOrderByClause() { + return _orderByClause; + } + + /** + * Set the value of orderByClause. + * + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) + */ + public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list + _orderByClause = orderByClause; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ListResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/MapParameterBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/MapParameterBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/MapParameterBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,18 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.util.Map; + +/** + * The bean of map parameter. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapParameterBean { + + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/MapParameterBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/OrderByBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/OrderByBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/OrderByBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,46 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The order-by-bean as interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface OrderByBean extends SelectResource { + + /** + * Get sql component of order-by clause. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause(); + + /** + * Get order-by clause. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause(); + + /** + * Clear order-by. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy(); + + /** + * Ignore order-by. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy(); + + /** + * Make order-by effective. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/OrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,163 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +/** + * The bean of paging. + * + * @author DBFlute(AutoGenerator) + */ +public interface PagingBean extends FetchNarrowingBean, OrderByBean { + + //========================================================================== + // ========= + // Paging Determination + // ==================== + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Is the execution for paging(NOT count)? + * + * @return Determination. + */ + public boolean isPaging(); + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * Is the count executed later? + * + * @return Determination. + */ + public boolean isCountLater(); + + //========================================================================== + // ========= + // Paging Setting + // ============== + /** + * Set up paging resources. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber); + + /** + * Set whether the execution for paging(NOT count). {INTERNAL METHOD} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging); + + //========================================================================== + // ========= + // Fetch Setting + // ============= + /** + * Fetch first.
    If you invoke this, your SQL returns [fetch-size] + * records from first. + * + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize); + + /** + * Fetch scope.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index]. + * + * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus) + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page.
    When you invoke this, it is normally necessary to + * invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
    But you + * also can use default-fetch-size without invoking 'fetchFirst()' or + * 'fetchScope()'.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index] calculated by [fetch-page-number]. + * + * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & + * NotZero: If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber); + + //========================================================================== + // ========= + // Fetch Property + // ============== + /** + * Get fetch-start-index. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch-size. + * + * @return Fetch-size. + */ + public int getFetchSize(); + + /** + * Get fetch-page-number. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective(); + + //========================================================================== + // ========= + // Hint Property + // ============= + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint(); + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint(); + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,33 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.util.List; + +/** + * The handler of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface PagingHandler { + + /** + * Get the bean of paging. + * + * @return The bean of paging. (NotNull) + */ + public PagingBean getPagingBean(); + + /** + * Execute SQL for count. + * + * @return The count of execution. + */ + public int count(); + + /** + * Execute SQL for paging. + * + * @return The list of entity. (NotNull) + */ + public List paging(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingInvoker.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingInvoker.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingInvoker.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,116 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.util.List; + +/** + * The invoker of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class PagingInvoker { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + protected boolean _countLater; + + //========================================================================== + // ========= + // Constructor + // =========== + public PagingInvoker(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke select-page by handler. + * + * @param handler The handler of paging. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean invokePaging(PagingHandler handler) { + assertObjectNotNull("handler", handler); + final PagingBean pagingBean = handler.getPagingBean(); + assertObjectNotNull("handler.getPagingBean()", pagingBean); + if (!pagingBean.isFetchScopeEffective()) { + String msg = "The paging bean is not effective about fetch-scope!"; + msg = msg + + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!)."; + msg = msg + " The paging bean is: " + pagingBean; + throw new IllegalStateException(msg); + } + final int allRecordCount; + final List selectedList; + if (_countLater) { + selectedList = handler.paging(); + allRecordCount = handler.count(); + } else { + allRecordCount = handler.count(); + selectedList = handler.paging(); + } + final PagingResultBean rb = new ResultBeanBuilder( + _tableDbName).buildPagingResultBean(pagingBean, allRecordCount, + selectedList); + if (isNecessaryToReadPageAgain(rb)) { + pagingBean.fetchPage(rb.getAllPageCount()); + final int reAllRecordCount = handler.count(); + final java.util.List reSelectedList = handler.paging(); + return new ResultBeanBuilder(_tableDbName) + .buildPagingResultBean(pagingBean, reAllRecordCount, + reSelectedList); + } else { + return rb; + } + } + + /** + * Is it necessary to read page again? + * + * @param rb The result bean of paging. (NotNull) + * @return Determination. + */ + protected boolean isNecessaryToReadPageAgain(PagingResultBean rb) { + return rb.getAllRecordCount() > 0 && rb.getSelectedList().isEmpty(); + } + + //========================================================================== + // ========= + // Option + // ====== + public PagingInvoker countLater() { + _countLater = true; + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingInvoker.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingResultBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingResultBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingResultBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,375 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import jp.sf.pal.todolist.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.group.PageGroupBean; +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.group.PageGroupOption; +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.range.PageRangeBean; +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.range.PageRangeOption; + +/** + * The result bean of paging. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class PagingResultBean extends ListResultBean { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Page Basic Info + // --------------- + /** The value of current page number. */ + protected int _pageSize; + + /** The value of current page number. */ + protected int _currentPageNumber; + + // ----------------------------------------------------- + // Page Group + // ---------- + /** The value of page-group bean. */ + protected PageGroupBean _pageGroupBean; + + /** The value of page-group option. */ + protected PageGroupOption _pageGroupOption; + + // ----------------------------------------------------- + // Page Range + // ---------- + /** The value of page-range bean. */ + protected PageRangeBean _pageRangeBean; + + /** The value of page-range option. */ + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public PagingResultBean() { + } + + //========================================================================== + // ========= + // Calculated Property + // =================== + /** + * Get the value of allPageCount that is calculated. + * + * @return The value of allPageCount. + */ + public int getAllPageCount() { + return calculateAllPageCount(_allRecordCount, _pageSize); + } + + /** + * Get the value of currentStartRecordNumber that is calculated. + * + * @return The value of currentStartRecordNumber. + */ + public int getCurrentStartRecordNumber() { + return calculateCurrentStartRecordNumber(_currentPageNumber, _pageSize); + } + + /** + * Get the value of currentEndRecordNumber that is calculated. + * + * @return The value of currentEndRecordNumber. + */ + public int getCurrentEndRecordNumber() { + return calculateCurrentEndRecordNumber(_currentPageNumber, _pageSize); + } + + //========================================================================== + // ========= + // Page Group/Range + // ================ + // ----------------------------------------------------- + // Page Group + // ---------- + /** + * Get the value of pageGroupSize. + * + * @return The value of pageGroupSize. + */ + public int getPageGroupSize() { + return _pageGroupOption != null ? _pageGroupOption.getPageGroupSize() + : 0; + } + + /** + * Set the value of pageGroupSize. + * + * @param pageGroupSize The value of pageGroupSize. + */ + public void setPageGroupSize(int pageGroupSize) { + final PageGroupOption option = new PageGroupOption(); + option.setPageGroupSize(pageGroupSize); + setPageGroupOption(option); + } + + /** + * Set the value of pageGroupOption. + * + * @param pageGroupOption The value of pageGroupOption. (Nullable) + */ + public void setPageGroupOption(PageGroupOption pageGroupOption) { + _pageGroupOption = pageGroupOption; + } + + /** + * Get the value of pageGroupBean. + * + * @return The value of pageGroupBean. (NotNull) + */ + public PageGroupBean pageGroup() { + assertPageGroupValid(); + if (_pageGroupBean == null) { + _pageGroupBean = new PageGroupBean(); + } + _pageGroupBean.setPageGroupOption(_pageGroupOption); + _pageGroupBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageGroupBean.setAllPageCount(getAllPageCount()); + return _pageGroupBean; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + // ----------------------------------------------------- + // Page Range + // ---------- + /** + * Get the value of pageRangeSize. + * + * @return The value of pageRangeSize. + */ + public int getPageRangeSize() { + return _pageRangeOption != null ? _pageRangeOption.getPageRangeSize() + : 0; + } + + /** + * Set the value of pageRangeSize. + * + * @param pageRangeSize The value of pageRangeSize. + */ + public void setPageRangeSize(int pageRangeSize) { + final PageRangeOption option = new PageRangeOption(); + option.setPageRangeSize(pageRangeSize); + setPageRangeOption(option); + } + + /** + * Set the value of pageRangeOption. + * + * @param pageRangeOption The value of pageRangeOption. (Nullable) + */ + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + /** + * Get the value of pageRangeBean. + * + * @return The value of pageRangeBean. (NotNull) + */ + public PageRangeBean pageRange() { + assertPageRangeValid(); + if (_pageRangeBean == null) { + _pageRangeBean = new PageRangeBean(); + } + _pageRangeBean.setPageRangeOption(_pageRangeOption); + _pageRangeBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageRangeBean.setAllPageCount(getAllPageCount()); + return _pageRangeBean; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is existing previous page? Using values are currentPageNumber. + * + * @return Determination. + */ + public boolean isExistPrePage() { + return (_allRecordCount > 0 && _currentPageNumber > 1); + } + + /** + * Is existing next page? Using values are currentPageNumber and + * allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPage() { + return (_allRecordCount > 0 && _currentPageNumber < getAllPageCount()); + } + + //========================================================================== + // ========= + // Mapping + // ======= + public PagingResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean ls = super.mappingList(entityDtoMapper); + final PagingResultBean mappingList = new PagingResultBean(); + mappingList.setSelectedList(ls.getSelectedList()); + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + mappingList.setPageSize(getPageSize()); + mappingList.setCurrentPageNumber(getCurrentPageNumber()); + mappingList.setPageRangeOption(_pageRangeOption); + mappingList.setPageGroupOption(_pageGroupOption); + return mappingList; + } + + //========================================================================== + // ========= + // Calculate(Internal) + // =================== + /** + * Calculate all page count. + * + * @param allRecordCount All record count. + * @param pageSize Fetch-size. + * @return All page count. + */ + protected int calculateAllPageCount(int allRecordCount, int pageSize) { + if (allRecordCount == 0) { + return 1; + } + int pageCountBase = (allRecordCount / pageSize); + if (allRecordCount % pageSize > 0) { + pageCountBase++; + } + return pageCountBase; + } + + protected int calculateCurrentStartRecordNumber(int currentPageNumber, + int pageSize) { + return ((currentPageNumber - 1) * pageSize) + 1; + } + + protected int calculateCurrentEndRecordNumber(int currentPageNumber, + int pageSize) { + return calculateCurrentStartRecordNumber(currentPageNumber, pageSize) + + _selectedList.size() - 1; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); + sb.append(" of ").append(getAllRecordCount()); + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() + .size()) : null); + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of pageSize. + * + * @return The value of pageSize. + */ + public int getPageSize() { + return _pageSize; + } + + /** + * Set the value of pageSize. + * + * @param pageSize The value of pageSize. + */ + public void setPageSize(int pageSize) { + _pageSize = pageSize; + } + + /** + * Get the value of currentPageNumber. + * + * @return The value of currentPageNumber. + */ + public int getCurrentPageNumber() { + return _currentPageNumber; + } + + /** + * Set the value of currentPageNumber. + * + * @param currentPageNumber The value of currentPageNumber. + */ + public void setCurrentPageNumber(int currentPageNumber) { + _currentPageNumber = currentPageNumber; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/PagingResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ResultBeanBuilder.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,81 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.util.List; + +/** + * The builder of result bean. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class ResultBeanBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public ResultBeanBuilder(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Builder + // ======= + /** + * Build the result bean of list without order-by clause. {for Various} + * + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, + List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); + return rb; + } + + /** + * Build the result bean of paging. {for Paging} + * + * @param pb The bean of paging. (NotNull) + * @param allRecordCount All record count. + * @param selectedList The list of selected entity. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean buildPagingResultBean(PagingBean pb, + int allRecordCount, List selectedList) { + PagingResultBean rb = new PagingResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(allRecordCount); + rb.setSelectedList(selectedList); + rb.setOrderByClause(pb.getSqlComponentOfOrderByClause()); + rb.setPageSize(pb.getFetchSize()); + rb.setCurrentPageNumber(pb.getFetchPageNumber()); + return rb; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ResultBeanBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SelectResource.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SelectResource.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SelectResource.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +/** + * The select-resource as marker-interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface SelectResource { + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SelectResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimpleOrderByBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimpleOrderByBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimpleOrderByBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,165 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * @deprecated + */ +public class SimpleOrderByBean implements OrderByBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public SimpleOrderByBean() { + } + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get sql-clause. + * + * @return Sql clause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Select Resource + // =============== + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + throw new UnsupportedOperationException(); + } + + //========================================================================== + // ========= + // OrderBy + // ======= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + /** + * Register order-by-asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByAsc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, true); + return this; + } + + /** + * Register order-by-desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByDesc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, false); + return this; + } + + /** + * Reverse order-by or Override order-by asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByAsc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, true); + return this; + } + + /** + * Reverse order-by or Override order-by desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByDesc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, false); + return this; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimpleOrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimplePagingBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimplePagingBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimplePagingBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,419 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The simple pagingBean. + * + * @author DBFlute(AutoGenerator) + */ +public class SimplePagingBean implements PagingBean, MapParameterBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + /** The map of parameter. (Nullable) */ + protected Map _parameterMap; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** Is the execution for paging(NOT count)? */ + protected boolean _paging = true; + + /** Is the count executed later? */ + protected boolean _countLater; + + /** Is fetch narrowing valid? */ + protected boolean _fetchNarrowing = true; + + /** The map for parameter. */ + protected Map _map; + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + return _paging; + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + return _countLater; + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. {INTERNAL METHOD: Don't Invoke This!} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) { + if (paging) { + getSqlClause().makeFetchScopeEffective(); + } else { + getSqlClause().ignoreFetchScope(); + } + this._paging = paging; + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * Get fetch-narrowing start-index. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * Get fetch-narrowing size. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _fetchNarrowing && getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + _fetchNarrowing = false; + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + _fetchNarrowing = true; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Implementation of SelectResource + // ================================ + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of MapParameterBean + // ================================== + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap() { + return _parameterMap; + } + + /** + * Add the parameter to the map. + * + * @param key The key of parameter. (NotNull) + * @param value The value of parameter. (Nullable) + */ + public void addParameter(String key, Object value) { + if (_parameterMap == null) { + _parameterMap = new LinkedHashMap(); + } + _parameterMap.put(key, value); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // SqlClause + // --------- + /** + * Get sqlClause. + * + * @return SqlClause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SimplePagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SubQuery.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SubQuery.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SubQuery.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,5 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +public interface SubQuery { + public void query(SUB_CB subCB); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/SubQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/UnionQuery.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/UnionQuery.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/UnionQuery.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,5 @@ +package jp.sf.pal.todolist.db.allcommon.cbean; + +public interface UnionQuery { + public void query(UNION_CB unionCB); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/UnionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKey.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKey.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKey.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,307 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The abstract class of condition-key. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class ConditionKey { + + /** Mark of replaced value. */ + public static final String MARK_OF_REPLACED_VALUE = "ReplacedValue"; + + /** The condition key of equal. */ + public static final ConditionKey CK_EQUAL = new ConditionKeyEqual(); + + /** The condition key of notEqual. */ + public static final ConditionKey CK_NOT_EQUAL = new ConditionKeyNotEqual(); + + /** The condition key of greaterThan. */ + public static final ConditionKey CK_GREATER_THAN = new ConditionKeyGreaterThan(); + + /** The condition key of lessrThan. */ + public static final ConditionKey CK_LESS_THAN = new ConditionKeyLessThan(); + + /** The condition key of greaterEqual. */ + public static final ConditionKey CK_GREATER_EQUAL = new ConditionKeyGreaterEqual(); + + /** The condition key of lessEqual. */ + public static final ConditionKey CK_LESS_EQUAL = new ConditionKeyLessEqual(); + + /** The condition key of prefixSearch. */ + public static final ConditionKey CK_PREFIX_SEARCH = new ConditionKeyPrefixSearch(); + + /** The condition key of likeSearch. */ + public static final ConditionKey CK_LIKE_SEARCH = new ConditionKeyLikeSearch(); + + /** The condition key of inScope. */ + public static final ConditionKey CK_IN_SCOPE = new ConditionKeyInScope(); + + /** The condition key of notInScope. */ + public static final ConditionKey CK_NOT_IN_SCOPE = new ConditionKeyNotInScope(); + + /** The condition key of isNull. */ + public static final ConditionKey CK_IS_NULL = new ConditionKeyIsNull(); + + /** The condition key of isNotNull. */ + public static final ConditionKey CK_IS_NOT_NULL = new ConditionKeyIsNotNull(); + + /** Dummy-object for IsNull and IsNotNull and so on... */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** Condition-key. */ + protected String _conditionKey; + + /** Operand. */ + protected String _operand; + + /** + * Get condition-key. + * + * @return Condition-key. + */ + public String getConditionKey() { + return _conditionKey; + } + + /** + * Get operand. + * + * @return Operand. + */ + public String getOperand() { + return _operand; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + abstract public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName); + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value); + return this; + } + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value, option); + return this; + } + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value); + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option); + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location); + return conditionValue; + } + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @param option Condition option. (NotNull) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location, option); + return conditionValue; + } + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location); + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location, + ConditionOption option); + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null"; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param rearOption Rear option. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClauseWithRearOption(String columnName, + String location, String rearOption) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null" + rearOption; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param dummyValue Dummy value. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location, + String dummyValue) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/" + dummyValue; + } + + /** + * Build clause without value. + * + * @param columnName Column name. (NotNull) + * @return Clause without value. (NotNull) + */ + protected String buildClauseWithoutValue(String columnName) { + return columnName + " " + getOperand(); + } + + /** + * Get wild-card. + * + * @return Wild-card. + */ + protected String getWildCard() { + return "%"; + } + + /** + * The override. Returns hash-code of this condition-key string. + * + * @return HashCode. + */ + public int hashCode() { + return getConditionKey().hashCode(); + } + + /** + * The override. If the condition-key of the other is same as this one, + * returns true. + * + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (other instanceof ConditionKey) { + if (this.getConditionKey().equals( + ((ConditionKey) other).getConditionKey())) { + return true; + } + } + return false; + } + + /** + * The override. + * + * @return View-string of condition key information. + */ + public String toString() { + return "ConditionKey: " + getConditionKey() + " " + getOperand() + + " wild-card=[" + getWildCard() + "]"; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKey.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyEqual.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyEqual.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyEqual.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,108 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of equal. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyEqual() { + _conditionKey = "equal"; + _operand = "="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasEqual()) { + if (conditionValue.equalEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getEqual() == null) { + return; + } + conditionList + .add(buildBindClause(columnName, value.getEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setEqual(value).setEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,109 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterEqual() { + _conditionKey = "greaterEqual"; + _operand = ">="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterEqual()) { + if (conditionValue.equalGreaterEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterEqual(value).setGreaterEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,109 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterThan.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterThan() { + _conditionKey = "greaterThan"; + _operand = ">"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterThan()) { + if (conditionValue.equalGreaterThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterThan(value).setGreaterThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyInScope.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyInScope.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyInScope.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,127 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of inScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyInScope() { + _conditionKey = "inScope"; + _operand = "in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasInScope()) { + if (conditionValue.equalInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue.overrideInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof InScopeOption)) { + String msg = "The argument[option] should be InScopeOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setInScope((java.util.List) value) + .setInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setInScope((java.util.List) value, + (InScopeOption) option).setInScopeLocation(location); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,100 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNotNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNotNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyIsNotNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNotNull() { + _conditionKey = "isNotNull"; + _operand = "is not null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNotNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNotNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNotNull(DUMMY_OBJECT) + .setIsNotNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,98 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyIsNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNull() { + _conditionKey = "isNull"; + _operand = "is null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNull(DUMMY_OBJECT).setIsNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyIsNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,109 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyLessEqual() { + _conditionKey = "lessEqual"; + _operand = "<="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessEqual()) { + if (conditionValue.equalLessEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessEqual(value).setLessEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,109 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessThan.class); + + /** + * Constructor. + */ + protected ConditionKeyLessThan() { + _conditionKey = "lessThan"; + _operand = "<"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessThan()) { + if (conditionValue.equalLessThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessThan(value).setLessThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLessThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,104 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The condition-key of likeSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLikeSearch extends ConditionKey { + + /** + * Constructor. + */ + protected ConditionKeyLikeSearch() { + _conditionKey = "likeSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value) { + throw new UnsupportedOperationException( + "doAddWhereClause without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof LikeSearchOption)) { + String msg = "The argument[option] should be LikeSearchOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + final LikeSearchOption myOption = (LikeSearchOption) option; + conditionList.add(buildBindClauseWithRearOption(columnName, value + .getLikeSearchLocation(), myOption.getRearOption())); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + throw new UnsupportedOperationException( + "doSetupConditionValue without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setLikeSearch((String) value, (LikeSearchOption) option) + .setLikeSearchLocation(location); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,109 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyNotEqual() { + _conditionKey = "notEqual"; + _operand = "!="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasNotEqual()) { + if (conditionValue.equalNotEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideNotEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotEqual(value).setNotEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,117 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notInScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyNotInScope() { + _conditionKey = "notInScope"; + _operand = "not in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasNotInScope()) { + if (conditionValue.equalNotInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue + .overrideNotInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotInScope((java.util.List) value) + .setNotInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,111 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.ckey; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of prefixSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyPrefixSearch extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyPrefixSearch.class); + + /** + * Constructor. + */ + protected ConditionKeyPrefixSearch() { + _conditionKey = "prefixSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasPrefixSearch()) { + if (conditionValue.equalPrefixSearch(value + getWildCard())) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overridePrefixSearch(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getPrefixSearch() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getPrefixSearchLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setPrefixSearch( + (value != null ? value + getWildCard() : null)) + .setPrefixSearchLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/ConditionOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/ConditionOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/ConditionOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,10 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionOption { + public String getRearOption(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/ConditionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/DateFromToOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/DateFromToOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/DateFromToOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,27 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption; + +/** + * The option of date-from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new DateFromToOption(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class DateFromToOption extends FromToOption { + + //========================================================================== + // ========= + // Constructor + // =========== + public DateFromToOption() { + compareAsDate(); + } +} Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/FromToOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/FromToOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/FromToOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,160 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption; + +/** + * The option of from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new FromToOption().compareAsDate(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + * 
    + *   new FromToOption(); 
    + *     --> column >= '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().lessThan(); 
    + *     --> column >= '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan().lessThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class FromToOption implements ConditionOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected boolean _fromDateGreaterThan; + + protected boolean _toDateLessThan; + + protected boolean _compareAsDate; + + //========================================================================== + // ========= + // Interface Implementation + // ======================== + public String getRearOption() { + String msg = "Thie option does not use getRearOption()!"; + throw new UnsupportedOperationException(msg); + } + + //========================================================================== + // ========= + // Main + // ==== + public FromToOption greaterThan() { + _fromDateGreaterThan = true; + return this; + } + + public FromToOption lessThan() { + _toDateLessThan = true; + return this; + } + + /** + * Compare as date. + * + *
    +     * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    +     * 
    +     *   new FromToOption().compareAsDate();
    +     *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    +     * 
    +     * This method ignore greaterThan() and lessThan().
    +     * 
    + * + * @return this. (NotNull) + */ + public FromToOption compareAsDate() { + _compareAsDate = true; + return this; + } + + //========================================================================== + // ========= + // Internal Main + // ============= + public java.util.Date filterFromDate(java.util.Date fromDate) { + if (fromDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(fromDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + final java.util.Date cloneDate = (java.util.Date) fromDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return fromDate; + } + + public java.util.Date filterToDate(java.util.Date toDate) { + if (toDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(toDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + addCalendarNextDay(cal);// Key Point! + final java.util.Date cloneDate = (java.util.Date) toDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return toDate; + } + + public jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey getFromDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL; + } + if (_fromDateGreaterThan) { + return jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_THAN;// Default + // ! + } else { + return jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL;// Default + // ! + } + } + + public jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey getToDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN; + } + if (_toDateLessThan) { + return jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN;// Default + // ! + } else { + return jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_EQUAL;// Default + // ! + } + } + + //========================================================================== + // ========= + // Calendar Helper + // =============== + protected void addCalendarNextDay(java.util.Calendar cal) { + cal.add(java.util.Calendar.DAY_OF_MONTH, 1); + } + + protected void clearCalendarHourMinuteSecondMilli(java.util.Calendar cal) { + cal.clear(java.util.Calendar.MILLISECOND); + cal.clear(java.util.Calendar.SECOND); + cal.clear(java.util.Calendar.MINUTE); + cal.set(java.util.Calendar.HOUR_OF_DAY, cal + .getActualMinimum(java.util.Calendar.HOUR_OF_DAY)); + } +} Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/InScopeOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/InScopeOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/InScopeOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,95 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of in-scope-option. + * + * @author DBFlute(AutoGenerator) + */ +public class InScopeOption extends SimpleStringOption { + + //========================================================================== + // =========== + // Split + // ===== + public InScopeOption splitBySpace() { + return (InScopeOption) doSplitBySpace(); + } + + public InScopeOption splitBySpace(int splitLimitCount) { + return (InScopeOption) doSplitBySpace(splitLimitCount); + } + + public InScopeOption splitBySpaceContainsDoubleByte() { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(); + } + + public InScopeOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public InScopeOption splitByPipeLine() { + return (InScopeOption) doSplitByPipeLine(); + } + + public InScopeOption splitByPipeLine(int splitLimitCount) { + return (InScopeOption) doSplitByPipeLine(splitLimitCount); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + public InScopeOption toUpperCase() { + return (InScopeOption) doToUpperCase(); + } + + public InScopeOption toLowerCase() { + return (InScopeOption) doToLowerCase(); + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + public InScopeOption toSingleByteSpace() { + return (InScopeOption) doToSingleByteSpace(); + } + + public InScopeOption toSingleByteAlphabetNumber() { + return (InScopeOption) doToSingleByteAlphabetNumber(); + } + + public InScopeOption toSingleByteAlphabetNumberMark() { + return (InScopeOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // =========== + // Real Value + // ========== + public java.util.List generateRealValueList( + java.util.List valueList) { + final java.util.List resultList = new java.util.ArrayList(); + for (final java.util.Iterator ite = valueList.iterator(); ite + .hasNext();) { + final String value = ite.next(); + resultList.add(generateRealValue(value)); + } + return resultList; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/InScopeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/LikeSearchOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/LikeSearchOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/LikeSearchOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,281 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of like-search-option. + * + * @author DBFlute(AutoGenerator) + */ +public class LikeSearchOption extends SimpleStringOption { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String LIKE_PREFIX = "prefix"; + + protected static final String LIKE_SUFFIX = "suffix"; + + protected static final String LIKE_CONTAIN = "contain"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _like; + + protected String _escape; + + protected boolean _asOrSplit; + + protected List _likeAsOrCallbackList; + + //========================================================================== + // ========= + // Rear Option + // =========== + public String getRearOption() { + if (_escape == null || _escape.trim().length() == 0) { + return ""; + } + return " escape '" + _escape + "'"; + } + + //========================================================================== + // ========= + // AsOr + // ==== + /** @deprecated */ + public static interface LikeAsOrCallback { + public String getAdditionalTargetPropertyName(); + + public String filterValue(String currentValue); + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback); + } + + /** @deprecated */ + public static abstract class DefaultLikeAsOrCallback implements + LikeAsOrCallback { + public String filterValue(String currentValue) { + return currentValue; + } + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback) { + return optionDeepCopyWithoutCallback; + } + } + + public boolean hasLikeAsOrCallback() { + return _likeAsOrCallbackList != null + && !_likeAsOrCallbackList.isEmpty(); + } + + public List getLikeAsOrCallbackList() { + if (_likeAsOrCallbackList == null) { + _likeAsOrCallbackList = new ArrayList(); + } + return _likeAsOrCallbackList; + } + + /** + * @param likeAsOrCallback Callback. + * @deprecated + */ + public void addLikeAsOrCallback(LikeAsOrCallback likeAsOrCallback) { + getLikeAsOrCallbackList().add(likeAsOrCallback); + } + + public void clearLikeAsOrCallback() { + getLikeAsOrCallbackList().clear(); + } + + //========================================================================== + // ========= + // Like + // ==== + public LikeSearchOption likePrefix() { + _like = LIKE_PREFIX; + return this; + } + + public LikeSearchOption likeSuffix() { + _like = LIKE_SUFFIX; + return this; + } + + public LikeSearchOption likeContain() { + _like = LIKE_CONTAIN; + return this; + } + + //========================================================================== + // ========= + // Escape + // ====== + public LikeSearchOption escapeByPipeLine() { + _escape = "|"; + return this; + } + + public LikeSearchOption escapeByAtMark() { + _escape = "@"; + return this; + } + + public LikeSearchOption escapeBySlash() { + _escape = "/"; + return this; + } + + public LikeSearchOption escapeByBackSlash() { + _escape = "\\"; + return this; + } + + //========================================================================== + // ========= + // Split + // ===== + public LikeSearchOption splitBySpace() { + return (LikeSearchOption) doSplitBySpace(); + } + + public LikeSearchOption splitBySpace(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpace(splitLimitCount); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte() { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public LikeSearchOption splitByPipeLine() { + return (LikeSearchOption) doSplitByPipeLine(); + } + + public LikeSearchOption splitByPipeLine(int splitLimitCount) { + return (LikeSearchOption) doSplitByPipeLine(splitLimitCount); + } + + public LikeSearchOption asOrSplit() { + _asOrSplit = true; + return this; + } + + public boolean isAsOrSplit() { + return _asOrSplit; + } + + //========================================================================== + // ========= + // To Upper/Lower Case + // =================== + public LikeSearchOption toUpperCase() { + return (LikeSearchOption) doToUpperCase(); + } + + public LikeSearchOption toLowerCase() { + return (LikeSearchOption) doToLowerCase(); + } + + //========================================================================== + // ========= + // To Single Byte + // ============== + public LikeSearchOption toSingleByteSpace() { + return (LikeSearchOption) doToSingleByteSpace(); + } + + public LikeSearchOption toSingleByteAlphabetNumber() { + return (LikeSearchOption) doToSingleByteAlphabetNumber(); + } + + public LikeSearchOption toSingleByteAlphabetNumberMark() { + return (LikeSearchOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // ========= + // To Double Byte + // ============== + + //========================================================================== + // ========= + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // ========= + // Real Value + // ========== + public String generateRealValue(String value) { + value = super.generateRealValue(value); + + // Escape + if (_escape != null && _escape.trim().length() != 0) { + String tmp = replace(value, _escape, _escape + _escape); + tmp = replace(tmp, "%", _escape + "%"); + tmp = replace(tmp, "_", _escape + "_"); + value = tmp; + } + final String wildCard = "%"; + if (_like == null || _like.trim().length() == 0) { + return value; + } else if (_like.equals(LIKE_PREFIX)) { + return value + wildCard; + } else if (_like.equals(LIKE_SUFFIX)) { + return wildCard + value; + } else if (_like.equals(LIKE_CONTAIN)) { + return wildCard + value + wildCard; + } else { + String msg = "The like was wrong string: " + _like; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // DeepCopy + // ======== + public Object createDeepCopy() { + final LikeSearchOption deepCopy = (LikeSearchOption) super + .createDeepCopy(); + deepCopy._like = _like; + deepCopy._escape = _escape; + if (hasLikeAsOrCallback()) { + for (Iterator ite = _likeAsOrCallbackList + .iterator(); ite.hasNext();) { + deepCopy.addLikeAsOrCallback((LikeAsOrCallback) ite.next()); + } + } + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new LikeSearchOption(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "like=" + _like + ", escape=" + _escape + ", split=" + isSplit() + + ", asOrSplit = " + _asOrSplit; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/LikeSearchOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/SimpleStringOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/SimpleStringOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/SimpleStringOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,192 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.SplitOptionParts; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.ToSingleByteOptionParts; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.ToUpperLowerCaseOptionParts; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; + +/** + * The class of simple-string-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringOption implements ConditionOption { + + protected SplitOptionParts _splitOptionParts; + + protected ToUpperLowerCaseOptionParts _toUpperLowerCaseOptionParts; + + protected ToSingleByteOptionParts _toSingleByteCaseOptionParts; + + protected JapaneseOptionPartsAgent _japaneseOptionPartsAgent; + + //========================================================================== + // =========== + // Rear Option + // =========== + public String getRearOption() { + return ""; + } + + //========================================================================== + // =========== + // Split + // ===== + protected SimpleStringOption doSplitBySpace() { + getSplitOptionParts().splitBySpace(); + return this; + } + + protected SimpleStringOption doSplitBySpace(int splitLimitCount) { + getSplitOptionParts().splitBySpace(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte() { + getSplitOptionParts().splitBySpaceContainsDoubleByte(); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte( + int splitLimitCount) { + getSplitOptionParts().splitBySpaceContainsDoubleByte(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitByPipeLine() { + getSplitOptionParts().splitByPipeLine(); + return this; + } + + protected SimpleStringOption doSplitByPipeLine(int splitLimitCount) { + getSplitOptionParts().splitByPipeLine(splitLimitCount); + return this; + } + + protected SplitOptionParts getSplitOptionParts() { + if (_splitOptionParts == null) { + _splitOptionParts = new SplitOptionParts(); + } + return _splitOptionParts; + } + + public boolean isSplit() { + return getSplitOptionParts().isSplit(); + } + + public String[] generateSplitValueArray(String value) { + return getSplitOptionParts().generateSplitValueArray(value); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + protected SimpleStringOption doToUpperCase() { + getToUpperLowerCaseOptionParts().toUpperCase(); + return this; + } + + protected SimpleStringOption doToLowerCase() { + getToUpperLowerCaseOptionParts().toLowerCase(); + return this; + } + + protected ToUpperLowerCaseOptionParts getToUpperLowerCaseOptionParts() { + if (_toUpperLowerCaseOptionParts == null) { + _toUpperLowerCaseOptionParts = new ToUpperLowerCaseOptionParts(); + } + return _toUpperLowerCaseOptionParts; + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + protected SimpleStringOption doToSingleByteSpace() { + getToSingleByteOptionParts().toSingleByteSpace(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumber() { + getToSingleByteOptionParts().toSingleByteAlphabetNumber(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumberMark() { + getToSingleByteOptionParts().toSingleByteAlphabetNumberMark(); + return this; + } + + protected ToSingleByteOptionParts getToSingleByteOptionParts() { + if (_toSingleByteCaseOptionParts == null) { + _toSingleByteCaseOptionParts = new ToSingleByteOptionParts(); + } + return _toSingleByteCaseOptionParts; + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + protected JapaneseOptionPartsAgent doLocalJapanese() { + return getJapaneseOptionPartsAgent(); + } + + protected JapaneseOptionPartsAgent getJapaneseOptionPartsAgent() { + if (_japaneseOptionPartsAgent == null) { + _japaneseOptionPartsAgent = new JapaneseOptionPartsAgent(); + } + return _japaneseOptionPartsAgent; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + value = getToUpperLowerCaseOptionParts().generateRealValue(value); + value = getToSingleByteOptionParts().generateRealValue(value); + value = getJapaneseOptionPartsAgent().generateRealValue(value); + return value; + } + + //========================================================================== + // =========== + // General Helper + // ============== + protected String replace(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SimpleStringOption deepCopy = newDeepCopyInstance(); + deepCopy._splitOptionParts = _splitOptionParts != null ? (SplitOptionParts) _splitOptionParts + .createDeepCopy() + : null; + deepCopy._toUpperLowerCaseOptionParts = _toUpperLowerCaseOptionParts != null ? (ToUpperLowerCaseOptionParts) _toUpperLowerCaseOptionParts + .createDeepCopy() + : null; + deepCopy._toSingleByteCaseOptionParts = _toSingleByteCaseOptionParts != null ? (ToSingleByteOptionParts) _toSingleByteCaseOptionParts + .createDeepCopy() + : null; + deepCopy._japaneseOptionPartsAgent = _japaneseOptionPartsAgent != null ? (JapaneseOptionPartsAgent) _japaneseOptionPartsAgent + .createDeepCopy() + : null; + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new SimpleStringOption(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/SimpleStringOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/SplitOptionParts.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/SplitOptionParts.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/SplitOptionParts.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,161 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption.parts; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SplitOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _split; + + protected String _splitContainedDelimiter; + + protected int _splitLimitCount; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isSplit() { + return _split != null; + } + + public void splitBySpace() { + _split = " "; + } + + public void splitBySpace(int splitLimitCount) { + _split = " "; + _splitLimitCount = splitLimitCount; + } + + public void splitBySpaceContainsDoubleByte() { + _split = " "; + _splitContainedDelimiter = "\u3000"; + } + + public void splitBySpaceContainsDoubleByte(int splitLimitCount) { + _split = " "; + _splitContainedDelimiter = "\u3000"; + _splitLimitCount = splitLimitCount; + } + + public void splitByPipeLine() { + _split = "|"; + } + + public void splitByPipeLine(int splitLimitCount) { + _split = "|"; + _splitLimitCount = splitLimitCount; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String[] generateSplitValueArray(String value) { + if (value == null) { + String msg = "The argument[value] should not be null of empty: " + + value; + throw new IllegalArgumentException(msg); + } + value = repalceContainedDelimiterToRealDelimiter(value); + final java.util.StringTokenizer st = new java.util.StringTokenizer( + value, _split); + final String[] tokenizedValues = new String[st.countTokens()]; + int count = 0; + while (st.hasMoreTokens()) { + tokenizedValues[count] = st.nextToken(); + count++; + } + final String[] values = removeInvalidValue(tokenizedValues); + if (_splitLimitCount > 0 && values.length > _splitLimitCount) { + final String[] realValues = new String[_splitLimitCount]; + for (int i = 0; i < values.length; i++) { + if (i == _splitLimitCount) { + break; + } + realValues[i] = values[i]; + } + return realValues; + } else { + return values; + } + + } + + protected String repalceContainedDelimiterToRealDelimiter(String value) { + if (value == null) { + return value; + } + if (_splitContainedDelimiter == null) { + return value; + } + if (_split == null) { + return value; + } + return replace(value, _splitContainedDelimiter, _split); + } + + protected String[] removeInvalidValue(String[] values) { + final java.util.List ls = new java.util.ArrayList(); + for (int i = 0; i < values.length; i++) { + final String value = values[i]; + if (value == null || value.equals("")) {// Don't trim!!! + continue; + } + ls.add(value); + } + final String[] resultArray = new String[ls.size()]; + for (int i = 0; i < ls.size(); i++) { + resultArray[i] = (String) ls.get(i); + } + return resultArray; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected final String replace(String text, String fromText, String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SplitOptionParts deepCopy = new SplitOptionParts(); + deepCopy._split = _split; + deepCopy._splitContainedDelimiter = _splitContainedDelimiter; + deepCopy._splitLimitCount = _splitLimitCount; + return deepCopy; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/SplitOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,88 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption.parts; + +import jp.sf.pal.todolist.db.allcommon.helper.character.GeneralCharacter; +import jp.sf.pal.todolist.db.allcommon.helper.character.impl.GeneralCharacterImpl; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class ToSingleByteOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toSingleByteSpace; + + protected boolean _toSingleByteAlphabetNumber; + + protected boolean _toSingleByteAlphabetNumberMark; + + private GeneralCharacter _generalCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToSingleByteSpace() { + return _toSingleByteSpace; + } + + public void toSingleByteSpace() { + _toSingleByteSpace = true; + } + + public void toSingleByteAlphabetNumber() { + _toSingleByteAlphabetNumber = true; + } + + public void toSingleByteAlphabetNumberMark() { + _toSingleByteAlphabetNumberMark = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Single Byte + if (_toSingleByteSpace) { + value = (value != null ? value.replaceAll("\u3000", " ") : value); + } + if (_toSingleByteAlphabetNumberMark) { + value = getGeneralCharacter().toSingleByteAlphabetNumberMark(value); + } else if (_toSingleByteAlphabetNumber) { + value = getGeneralCharacter().toSingleByteAlphabetNumber(value); + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected GeneralCharacter getGeneralCharacter() { + if (_generalCharacter == null) { + _generalCharacter = new GeneralCharacterImpl(); + } + return _generalCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToSingleByteOptionParts deepCopy = new ToSingleByteOptionParts(); + deepCopy._toSingleByteSpace = _toSingleByteSpace; + deepCopy._toSingleByteAlphabetNumber = _toSingleByteAlphabetNumber; + deepCopy._toSingleByteAlphabetNumberMark = _toSingleByteAlphabetNumberMark; + return deepCopy; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,61 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption.parts; + +/** + * The class of condition-option-parts about toUpperCase/toLowerCase. + * + * @author DBFlute(AutoGenerator) + */ +public class ToUpperLowerCaseOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toUpperCase; + + protected boolean _toLowerCase; + + //========================================================================== + // =========== + // Main + // ==== + public void toUpperCase() { + _toUpperCase = true; + _toLowerCase = false; + } + + public void toLowerCase() { + _toUpperCase = false; + _toLowerCase = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Upper/Lower Case + if (_toUpperCase) { + value = (value != null ? value.toUpperCase() : value); + } + if (_toLowerCase) { + value = (value != null ? value.toLowerCase() : value); + } + return value; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToUpperLowerCaseOptionParts deepCopy = new ToUpperLowerCaseOptionParts(); + deepCopy._toUpperCase = _toUpperCase; + deepCopy._toLowerCase = _toLowerCase; + return deepCopy; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,87 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.coption.parts.local; + +import jp.sf.pal.todolist.db.allcommon.helper.character.JapaneseCharacter; +import jp.sf.pal.todolist.db.allcommon.helper.character.impl.JapaneseCharacterImpl; + +/** + * The class of condition-option-parts-agent. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseOptionPartsAgent { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toDoubleByteKatakana; + + protected boolean _removeLastLongVowel; + + private JapaneseCharacter _japaneseCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToDoubleByteKatakana() { + return _toDoubleByteKatakana; + } + + public void toDoubleByteKatakana() { + _toDoubleByteKatakana = true; + } + + public boolean isRemoveLastLongVowel() { + return _removeLastLongVowel; + } + + public void removeLastLongVowel() { + _removeLastLongVowel = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Double Byte + if (_toDoubleByteKatakana) { + value = getJapaneseCharacter().toDoubleByteKatakana(value); + } + + // Remove + if (_removeLastLongVowel) { + if (value != null && value.endsWith("\u30fc")) { + value = value.substring(0, value.length() - "\u30fc".length()); + } + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected JapaneseCharacter getJapaneseCharacter() { + if (_japaneseCharacter == null) { + _japaneseCharacter = new JapaneseCharacterImpl(); + } + return _japaneseCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final JapaneseOptionPartsAgent deepCopy = new JapaneseOptionPartsAgent(); + deepCopy._toDoubleByteKatakana = _toDoubleByteKatakana; + deepCopy._removeLastLongVowel = _removeLastLongVowel; + return deepCopy; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/cvalue/ConditionValue.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/cvalue/ConditionValue.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/cvalue/ConditionValue.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1218 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.cvalue; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption; + +/** + * Condition value. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionValue { + + //========================================================================== + // ========= + // Equal + // ===== + /** Value of equal. */ + protected Object _equalValue; + + /** + * Get the value of equal. + * + * @return The value of equal. (Nullable) + */ + public Object getEqual() { + return filterValue(_equalValue); + } + + /** + * Set the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqual(Object value) { + _equalValue = value; + return this; + } + + /** + * Does it has the value of equal? + * + * @return Determination. (NotNull) + */ + public boolean hasEqual() { + return _equalValue != null; + } + + /** + * Does the value equal the value of equal? + * + * @param value The value of equal. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalEqual(Object value) { + return hasEqual() ? _equalValue.equals(value) : value == null; + } + + /** + * Override the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideEqual(Object value) { + _equalValue = value; + return this; + } + + /** Location of equal. */ + protected String _equalLocation; + + /** + * Get the location of equal. + * + * @return The location of equal. (Nullable) + */ + public String getEqualLocation() { + return _equalLocation; + } + + /** + * Set the location of equal. + * + * @param location The location of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqualLocation(String location) { + _equalLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not Equal + // ========= + /** Value of notEqual. */ + protected Object _notEqualValue; + + /** + * Get the value of notEqual. + * + * @return The value of notEqual. (Nullable) + */ + public Object getNotEqual() { + return filterValue(_notEqualValue); + } + + /** + * Set the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** + * Does it has the value of notEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasNotEqual() { + return _notEqualValue != null; + } + + /** + * Does the value equal the value of notEqual? + * + * @param value The value of notEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotEqual(Object value) { + return hasNotEqual() ? _notEqualValue.equals(value) : value == null; + } + + /** + * Override the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** Location of notEqual. */ + protected String _notEqualLocation; + + /** + * Get the location of notEqual. + * + * @return The location of notEqual. (Nullable) + */ + public String getNotEqualLocation() { + return _notEqualLocation; + } + + /** + * Set the location of notEqual. + * + * @param location The location of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqualLocation(String location) { + _notEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Than + // ============ + /** Value of greaterThan. */ + protected Object _greaterThanValue; + + /** + * Get the value of greaterThan. + * + * @return The value of greaterThan. (Nullable) + */ + public Object getGreaterThan() { + return filterValue(_greaterThanValue); + } + + /** + * Set the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** + * Does it has the value of greaterThan? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterThan() { + return _greaterThanValue != null; + } + + /** + * Does the value equal the value of greaterThan? + * + * @param value The value of greaterThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterThan(Object value) { + return hasGreaterThan() ? _greaterThanValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** Location of GreaterThan. */ + protected String _greaterThanLocation; + + /** + * Get the location of greaterThan. + * + * @return The location of greaterThan. (Nullable) + */ + public String getGreaterThanLocation() { + return _greaterThanLocation; + } + + /** + * Set the location of greaterThan. + * + * @param location The location of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThanLocation(String location) { + _greaterThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Than + // ========= + /** Value of lessThan. */ + protected Object _lessThanValue; + + /** + * Get the value of lessThan. + * + * @return The value of lessThan. (Nullable) + */ + public Object getLessThan() { + return filterValue(_lessThanValue); + } + + /** + * Set the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** + * Does it has the value of lessThan? + * + * @return Determination. (NotNull) + */ + public boolean hasLessThan() { + return _lessThanValue != null; + } + + /** + * Does the value equal the value of lessThan? + * + * @param value The value of lessThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessThan(Object value) { + return hasLessThan() ? _lessThanValue.equals(value) : value == null; + } + + /** + * Override the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** Location of lessThan. */ + protected String _lessThanLocation; + + /** + * Get the location of lessThan. + * + * @return The location of lessThan. (Nullable) + */ + public String getLessThanLocation() { + return _lessThanLocation; + } + + /** + * Set the location of lessThan. + * + * @param location The location of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThanLocation(String location) { + _lessThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Equal + // ============= + /** Value of greaterEqual. */ + protected Object _greaterEqualValue; + + /** + * Get the value of greaterEqual. + * + * @return The value of greaterEqual. (Nullable) + */ + public Object getGreaterEqual() { + return filterValue(_greaterEqualValue); + } + + /** + * Set the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** + * Does it has the value of greaterEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterEqual() { + return _greaterEqualValue != null; + } + + /** + * Does the value equal the value of greaterEqual? + * + * @param value The value of greaterEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterEqual(Object value) { + return hasGreaterEqual() ? _greaterEqualValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** Location of greaterEqual. */ + protected String _greaterEqualLocation; + + /** + * Get the location of greaterEqual. + * + * @return The location of greaterEqual. (Nullable) + */ + public String getGreaterEqualLocation() { + return _greaterEqualLocation; + } + + /** + * Set the location of greaterEqual. + * + * @param location The location of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqualLocation(String location) { + _greaterEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Equal + // ========== + /** Value of lessEqual. */ + protected Object _lessEqualValue; + + /** + * Get the value of lessEqual. + * + * @return The value of lessEqual. (Nullable) + */ + public Object getLessEqual() { + return filterValue(_lessEqualValue); + } + + /** + * Set the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** + * Does it has the value of lessEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasLessEqual() { + return _lessEqualValue != null; + } + + /** + * Does the value equal the value of lessEqual? + * + * @param value The value of lessEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessEqual(Object value) { + return hasLessEqual() ? _lessEqualValue.equals(value) : value == null; + } + + /** + * Override the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** Location of lessEqual. */ + protected String _lessEqualLocation; + + /** + * Get the location of lessEqual. + * + * @return The location of lessEqual. (Nullable) + */ + public String getLessEqualLocation() { + return _lessEqualLocation; + } + + /** + * Set the location of lessEqual. + * + * @param location The location of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqualLocation(String location) { + _lessEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Prefix Search + // ============= + /** Value of prefixSearch. */ + protected Object _prefixSearch; + + /** + * Get the value of prefixSearch. + * + * @return The value of prefixSearch. (Nullable) + */ + public Object getPrefixSearch() { + return filterValue(_prefixSearch); + } + + /** + * Set the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** + * Does it has the value of prefixSearch? + * + * @return Determination. (NotNull) + */ + public boolean hasPrefixSearch() { + return _prefixSearch != null; + } + + /** + * Does the value equal the value of prefixSearch? + * + * @param value The value of prefixSearch. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalPrefixSearch(Object value) { + return hasPrefixSearch() ? _prefixSearch.equals(value) : value == null; + } + + /** + * Override the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overridePrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** Location of prefixSearch. */ + protected String _prefixSearchLocation; + + /** + * Get the location of prefixSearch. + * + * @return The location of prefixSearch. (Nullable) + */ + public String getPrefixSearchLocation() { + return _prefixSearchLocation; + } + + /** + * Set the location of prefixSearch. + * + * @param location The location of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearchLocation(String location) { + _prefixSearchLocation = location; + return this; + } + + //========================================================================== + // ========= + // Like Search + // =========== + /** Value of likeSearch. */ + protected List _likeSearch; + + /** Value of likeSearch for spare. */ + protected List _likeSearch4Spare; + + /** + * Get the value of likeSearch. + * + * @return The value of likeSearch. (Nullable) + */ + public String getLikeSearch() { + if (_likeSearch == null) { + return null; + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + final LikeSearchValue likeSearchValue = (LikeSearchValue) _likeSearch + .remove(0); + return (String) filterValue(likeSearchValue.generateRealValue()); + } + + /** + * Set the value of likeSearch. + * + * @param value The value of likeSearch. (Nullable) + * @param option The option of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearch(String value, LikeSearchOption option) { + if (_likeSearch == null) { + _likeSearch = new ArrayList(); + _likeSearch4Spare = new ArrayList(); + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + LikeSearchValue likeSearchValue = new LikeSearchValue(value, option); + _likeSearch.add(likeSearchValue); + _likeSearch4Spare.add(likeSearchValue); + return this; + } + + /** Location of likeSearch. */ + protected String _likeSearchLocation; + + /** + * Get the location of likeSearch. + * + * @return The location of likeSearch. (Nullable) + */ + public String getLikeSearchLocation() { + return _likeSearchLocation; + } + + /** + * Set the location of likeSearch. + * + * @param location The location of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearchLocation(String location) { + _likeSearchLocation = location; + return this; + } + + protected static class LikeSearchValue { + protected String _value; + + protected LikeSearchOption _option; + + public LikeSearchValue(String value, LikeSearchOption option) { + _value = value; + _option = option; + } + + public String getValue() { + return _value; + } + + public LikeSearchOption getOption() { + return _option; + } + + public String generateRealValue() { + if (_option == null) { + return _value; + } + return _option.generateRealValue(_value); + } + } + + //========================================================================== + // ========= + // In Scope + // ======== + /** Value of inScope. */ + protected List _inScope; + + protected InScopeOption _inScopeOption; + + /** + * Get the value of inScope. + * + * @return The value of inScope. (Nullable) + */ + @SuppressWarnings("unchecked") + public List getInScope() { + if (_inScopeOption != null) { + return filterValue(_inScopeOption + .generateRealValueList((List) _inScope)); + } + return filterValue(_inScope); + } + + /** + * Set the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScope(List value) { + _inScope = value; + return this; + } + + public ConditionValue setInScope(List value, InScopeOption option) { + _inScope = value; + _inScopeOption = option; + return this; + } + + /** + * Does it has the value of inScope? + * + * @return Determination. (NotNull) + */ + public boolean hasInScope() { + return _inScope != null; + } + + /** + * Does the value equal the value of inScope? + * + * @param value The value of inScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalInScope(List value) { + return hasInScope() ? _inScope.equals(value) : value == null; + } + + /** + * Override the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideInScope(List value) { + _inScope = value; + return this; + } + + /** Location of InScope. */ + protected String _inScopeLocation; + + /** + * Get the location of inScope. + * + * @return The location of inScope. (Nullable) + */ + public String getInScopeLocation() { + return _inScopeLocation; + } + + /** + * Set the location of inScope. + * + * @param location The location of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScopeLocation(String location) { + _inScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not In Scope + // ============ + /** Value of notInScope. */ + protected List _notInScope; + + /** + * Get the value of notInScope. + * + * @return The value of notInScope. (Nullable) + */ + public List getNotInScope() { + return filterValue(_notInScope); + } + + /** + * Set the value of notInScope. + * + * @param value The value of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScope(List value) { + _notInScope = value; + return this; + } + + /** + * Does it has the value of inNotScope? + * + * @return Determination. (NotNull) + */ + public boolean hasNotInScope() { + return _notInScope != null; + } + + /** + * Does the value equal the value of inNotScope? + * + * @param value The value of inNotScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotInScope(List value) { + return hasNotInScope() ? _notInScope.equals(value) : value == null; + } + + /** + * Override the value of inNotScope. + * + * @param value The value of inNotScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotInScope(List value) { + _notInScope = value; + return this; + } + + /** Location of notInScope. */ + protected String _notInScopeLocation; + + /** + * Get the location of notInScope. + * + * @return The location of notInScope. (Nullable) + */ + public String getNotInScopeLocation() { + return _notInScopeLocation; + } + + /** + * Set the location of notInScope. + * + * @param location The location of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScopeLocation(String location) { + _notInScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Null + // ======= + /** Value of isNull. */ + protected Object _isNullValue; + + /** + * Get the value of isNull. + * + * @return The value of isNull. (Nullable) + */ + public Object getIsNull() { + return _isNullValue; + } + + /** + * Set the value of isNull. + * + * @param value The value of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNull(Object value) { + _isNullValue = value; + return this; + } + + /** + * Does it has the value of isNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNull() { + return _isNullValue != null; + } + + /** Location of isNull. */ + protected String _isNullLocation; + + /** + * Get the location of isNull. + * + * @return The location of isNull. (Nullable) + */ + public String getIsNullLocation() { + return _isNullLocation; + } + + /** + * Set the location of isNull. + * + * @param location The location of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNullLocation(String location) { + _isNullLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Not Null + // =========== + /** Value of isNotNull. */ + protected Object _isNotNullValue; + + /** + * Get the value of isNotNull. + * + * @return The value of isNotNull. (Nullable) + */ + public Object getIsNotNull() { + return _isNotNullValue; + } + + /** + * Set the value of isNotNull. + * + * @param value The value of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNull(Object value) { + _isNotNullValue = value; + return this; + } + + /** + * Does it has the value of isNotNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNotNull() { + return _isNotNullValue != null; + } + + /** Location of isNotNull. */ + protected String _isNotNullLocation; + + /** + * Get the location of isNotNull. + * + * @return The location of isNotNull. (Nullable) + */ + public String getIsNotNullLocation() { + return _isNotNullLocation; + } + + /** + * Set the location of isNotNull. + * + * @param location The location of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNullLocation(String location) { + _isNotNullLocation = location; + return this; + } + + //========================================================================== + // =========== + // Filter + // ====== + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param value Value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected Object filterValue(Object value) { + if (value == null) { + return value; + } + if (value instanceof java.sql.Time) { + return value; + } + if (value instanceof java.sql.Timestamp) { + return value; + } + if (value instanceof java.util.Date + || value instanceof java.util.Calendar) { + return SqlDateConversionUtil.toDate(value); + } else { + return value; + } + } + + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param valueList Value-list. (Nullable) + * @return Filtered value-list. (Nullable) + */ + protected List filterValue(List valueList) { + if (valueList == null || valueList.isEmpty()) { + return valueList; + } + final List resultList = new ArrayList(); + for (Iterator ite = valueList.iterator(); ite.hasNext();) { + Object value = ite.next(); + resultList.add(filterValue(value)); + } + return resultList; + } + + protected static class SqlDateConversionUtil { + + private SqlDateConversionUtil() { + } + + public static java.sql.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.sql.Date toDate(Object o, String pattern) { + if (o instanceof java.sql.Date) { + return (java.sql.Date) o; + } + java.util.Date date = DateConversionUtil.toDate(o, pattern); + if (date != null) { + return new java.sql.Date(date.getTime()); + } + return null; + } + } + + protected static class DateConversionUtil { + + private DateConversionUtil() { + } + + public static java.util.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.util.Date toDate(Object o, String pattern) { + if (o == null) { + return null; + } else if (o instanceof String) { + return toDate((String) o, pattern); + } else if (o instanceof java.util.Date) { + return (java.util.Date) o; + } else if (o instanceof java.util.Calendar) { + return ((java.util.Calendar) o).getTime(); + } else { + return toDate(o.toString(), pattern); + } + } + + public static java.util.Date toDate(String s, String pattern) { + return toDate(s, pattern, java.util.Locale.getDefault()); + } + + public static java.util.Date toDate(String s, String pattern, + java.util.Locale locale) { + java.text.SimpleDateFormat sdf = getDateFormat(s, pattern, locale); + try { + return sdf.parse(s); + } catch (java.text.ParseException ex) { + throw new RuntimeException(ex); + } + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + String pattern, java.util.Locale locale) { + if (pattern != null) { + return new java.text.SimpleDateFormat(pattern); + } + return getDateFormat(s, locale); + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + java.util.Locale locale) { + String pattern = getPattern(locale); + String shortPattern = removeDelimiter(pattern); + String delimitor = findDelimiter(s); + if (delimitor == null) { + if (s.length() == shortPattern.length()) { + return new java.text.SimpleDateFormat(shortPattern); + } + if (s.length() == shortPattern.length() + 2) { + return new java.text.SimpleDateFormat(InternalStringUtil + .replace(shortPattern, "yy", "yyyy")); + } + } else { + String[] array = InternalStringUtil.split(s, delimitor); + for (int i = 0; i < array.length; ++i) { + if (array[i].length() == 4) { + pattern = InternalStringUtil.replace(pattern, "yy", + "yyyy"); + break; + } + } + return new java.text.SimpleDateFormat(pattern); + } + return new java.text.SimpleDateFormat(); + } + + public static java.text.SimpleDateFormat getDateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getPattern(locale)); + } + + public static java.text.SimpleDateFormat getY4DateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getY4Pattern(locale)); + } + + public static String getY4Pattern(java.util.Locale locale) { + String pattern = getPattern(locale); + if (pattern.indexOf("yyyy") < 0) { + pattern = InternalStringUtil.replace(pattern, "yy", "yyyy"); + } + return pattern; + } + + public static String getPattern(java.util.Locale locale) { + java.text.SimpleDateFormat df = (java.text.SimpleDateFormat) java.text.DateFormat + .getDateInstance(java.text.DateFormat.SHORT, locale); + String pattern = df.toPattern(); + int index = pattern.indexOf(' '); + if (index > 0) { + pattern = pattern.substring(0, index); + } + if (pattern.indexOf("MM") < 0) { + pattern = InternalStringUtil.replace(pattern, "M", "MM"); + } + if (pattern.indexOf("dd") < 0) { + pattern = InternalStringUtil.replace(pattern, "d", "dd"); + } + return pattern; + } + + public static String findDelimiter(String value) { + for (int i = 0; i < value.length(); ++i) { + char c = value.charAt(i); + if (Character.isDigit(c)) { + continue; + } + return Character.toString(c); + } + return null; + } + + public static String removeDelimiter(String pattern) { + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < pattern.length(); ++i) { + char c = pattern.charAt(i); + if (c == 'y' || c == 'M' || c == 'd') { + buf.append(c); + } + } + return buf.toString(); + } + } + + protected static class InternalStringUtil { + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new java.util.ArrayList(); + java.util.StringTokenizer st = new java.util.StringTokenizer(str, + delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/cvalue/ConditionValue.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,55 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.grouping; + +/** + * The class of option for grouping. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected int _elementCount; + + protected GroupingRowEndDeterminer _groupingRowEndDeterminer; + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { + } + + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public int getElementCount() { + return this._elementCount; + } + + public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { + return this._groupingRowEndDeterminer; + } + + public void setGroupingRowEndDeterminer( + GroupingRowEndDeterminer groupingRowEndDeterminer) { + this._groupingRowEndDeterminer = groupingRowEndDeterminer; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,24 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.grouping; + +/** + * The interface of grouping end(switch point) determiner. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowEndDeterminer { + + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowResource.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,93 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.grouping; + +import java.util.ArrayList; +import java.util.List; + +/** + * The class of row resource for grouping making. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _groupingRowList = new ArrayList(); + + protected int _elementCurrentIndex; + + protected int _breakCount; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } + + //========================================================================== + // =========== + // Accessor + // ======== + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { + return this._groupingRowList; + } + + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ + public void addGroupingRowList(ENTITY groupingRow) { + this._groupingRowList.add(groupingRow); + } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowSetupper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.grouping; + +/** + * The setupper of grouping row. + * + * @param The type of row. + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowSetupper { + + /** + * Set up the instance of grouping row. + * + * @param groupingRowResource Grouping row resource. (NotNull) + * @return The instance of grouping row. (NotNull) + */ + public ROW setup(GroupingRowResource groupingRowResource); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/grouping/GroupingRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/mapping/EntityDtoMapper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/mapping/EntityDtoMapper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/mapping/EntityDtoMapper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.mapping; + +/** + * The mapper of entity-to-dto. + * + * @param The type of entity. + * @param The type of dto. + * @author DBFlute(AutoGenerator) + */ +public interface EntityDtoMapper { + + /** + * Map entity to data transfer object. + * + * @param entity Entity. (NotNull) + * @return Data transfer object. (NotNull) + */ + public DTO map(ENTITY entity); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/mapping/EntityDtoMapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,427 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.todolist.db.allcommon.DBFluteConfig; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.framework.util.InputStreamReaderUtil; +import org.seasar.framework.util.ReaderUtil; +import org.seasar.framework.util.ResourceUtil; + +/** + * The context of outside-SQL. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlContext { + + /** Log instance. */ + private static final Log _log = LogFactory.getLog(OutsideSqlContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get outside-SQL context on thread. + * + * @return Outside-SQL context. (Nullable) + */ + public static OutsideSqlContext getOutsideSqlContextOnThread() { + return (OutsideSqlContext) _threadLocal.get(); + } + + /** + * Set outside-SQL context on thread. + * + * @param outsideSqlContext Outside-SQL context. (NotNull) + */ + public static void setOutsideSqlContextOnThread( + OutsideSqlContext outsideSqlContext) { + if (outsideSqlContext == null) { + String msg = "The argument[outsideSqlContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(outsideSqlContext); + } + + /** + * Is existing outside-SQL context on thread? + * + * @return Determination. + */ + public static boolean isExistOutsideSqlContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear outside-SQL context on thread. + */ + public static void clearOutsideSqlContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public static String generateSpecifiedOutsideSqlUniqueKey( + String methodName, String path, Object pmb, + OutsideSqlOption option, Object resultTypeSpecification) { + final String pmbKey = (pmb != null ? pmb.getClass().getName() : "null"); + final String resultKey = (resultTypeSpecification != null ? ":" + + resultTypeSpecification : "null"); + final String tableDbName = option.getTableDbName(); + final String generatedUniqueKey = option.generateUniqueKey(); + return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + + ":" + generatedUniqueKey + resultKey; + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwOutsideSqlNotFoundException(String path) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The outsideSql was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target file of outsideSql on your classpath." + + getLineSeparator(); + msg = msg + + "And please confirm the file name and the file path STRICTLY!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified OutsideSql Path]" + getLineSeparator() + path + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException( + msg); + } + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected boolean _dynamicBinding; + + protected boolean _offsetByCursorForcedly; + + protected boolean _limitByCursorForcedly; + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + /** The path of outside-sql. (The mark of Specified-OutsideSql) */ + protected String _outsideSqlPath; + + protected Object _parameterBean; + + protected Object _resultTypeSpecification; + + protected String _methodName; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + /** The DB name of table for using behavior-SQL-path. (Nullable) */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Read SQL + // ======== + /** + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The filtered outside-SQL. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readFilteredOutsideSql(String sqlFileEncoding, + String dbmsSuffix) { + final String sql = readOutsideSql(sqlFileEncoding, dbmsSuffix); + return replaceOutsideSqlBindCharacterOnLineComment(sql); + } + + protected String replaceOutsideSqlBindCharacterOnLineComment(String sql) { + final String bindCharacter = "?"; + if (sql.indexOf(bindCharacter) < 0) { + return sql; + } + final String lineSeparator = "\n"; + if (sql.indexOf(lineSeparator) < 0) { + return sql; + } + final String lineCommentMark = "--"; + if (sql.indexOf(lineCommentMark) < 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split(lineSeparator); + for (String line : lines) { + final int lineCommentIndex = line.indexOf("--"); + if (lineCommentIndex < 0) { + sb.append(line).append(lineSeparator); + continue; + } + final String lineComment = line.substring(lineCommentIndex); + if (lineComment.contains("ELSE") + || !lineComment.contains(bindCharacter)) { + sb.append(line).append(lineSeparator); + continue; + } + + if (_log.isDebugEnabled()) { + _log.debug("...Replacing bind character on line comment: " + + lineComment); + } + final String filteredLineComment = replaceString(lineComment, + bindCharacter, "Q"); + sb.append(line.substring(0, lineCommentIndex)).append( + filteredLineComment).append(lineSeparator); + } + return sb.toString(); + } + + /** + * Read outside-sql path. Required attribute is 'outsideSqlPath'. + * + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The text of SQL. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readOutsideSql(String sqlFileEncoding, String dbmsSuffix) { + final String standardPath = _outsideSqlPath; + final String dbmsPath = buildDbmsPath(standardPath, dbmsSuffix); + String sql; + if (isExistResource(dbmsPath)) { + sql = readText(dbmsPath, sqlFileEncoding); + } else if (isExistResource(standardPath)) { + sql = readText(standardPath, sqlFileEncoding); + } else { + throwOutsideSqlNotFoundException(standardPath); + return null; // Non Reachable. + } + return removeInitialUnicodeBomIfNeeds(sqlFileEncoding, sql); + } + + protected String buildDbmsPath(String standardPath, String dbmsSuffix) { + final String dbmsPath; + final int lastIndexOfDot = standardPath.lastIndexOf("."); + if (lastIndexOfDot >= 0 + && !standardPath.substring(lastIndexOfDot).contains("/")) { + final String base = standardPath.substring(0, lastIndexOfDot); + dbmsPath = base + dbmsSuffix + + standardPath.substring(lastIndexOfDot); + } else { + dbmsPath = standardPath + dbmsSuffix; + } + return dbmsPath; + } + + protected String removeInitialUnicodeBomIfNeeds(String sqlFileEncoding, + String sql) { + if ("UTF-8".equalsIgnoreCase(sqlFileEncoding) && sql.length() > 0 + && sql.charAt(0) == '\uFEFF') { + sql = sql.substring(1); + } + return sql; + } + + //========================================================================== + // ========= + // Behavior Query Path + // =================== + public void setupBehaviorQueryPathIfNeeds() { + if (!isBehaviorQueryPathEnabled()) { + return; + } + if (_outsideSqlPath.contains(":")) { + final String subDirectoryValue = _outsideSqlPath.substring(0, + _outsideSqlPath.lastIndexOf(":")); + final String subDirectoryPath = replaceString(subDirectoryValue, + ":", "/"); + final String behaviorQueryPath = _outsideSqlPath + .substring(_outsideSqlPath.lastIndexOf(":") + ":".length()); + final String behaviorClassPath = replaceString( + buildBehaviorSqlPackageName(), ".", "/"); + final String behaviorPackagePath = behaviorClassPath.substring(0, + behaviorClassPath.lastIndexOf("/")); + final String behaviorClassName = behaviorClassPath + .substring(behaviorClassPath.lastIndexOf("/") + + "/".length()); + _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + + "/" + behaviorClassName + "_" + behaviorQueryPath + + ".sql"; + } else { + _outsideSqlPath = replaceString(buildBehaviorSqlPackageName(), ".", + "/") + + "_" + _outsideSqlPath + ".sql"; + } + } + + protected String buildBehaviorSqlPackageName() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableDbName); + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + final String outsideSqlPackage = DBFluteConfig.getInstance() + .getOutsideSqlPackage(); + if (outsideSqlPackage != null && outsideSqlPackage.trim().length() > 0) { + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + ".".length()); + String tmp = behaviorTypeName.substring(0, behaviorTypeName + .lastIndexOf(".")); + final String exbhvName = tmp.contains(".") ? tmp.substring(tmp + .lastIndexOf(".") + + ".".length()) : tmp; + return outsideSqlPackage + "." + exbhvName + "." + + behaviorClassName; + } else { + return behaviorTypeName; + } + } + + protected boolean isBehaviorQueryPathEnabled() { + if (isProcedure()) {// [DBFlute-0.7.5] + return false; + } + return _outsideSqlPath != null && !_outsideSqlPath.contains("/") + && !_outsideSqlPath.contains(".") && _tableDbName != null; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean isSpecifiedOutsideSql() { + return _outsideSqlPath != null; + } + + // [DBFlute-0.7.5] + public boolean isProcedure() { + return _methodName != null && _methodName.startsWith("call"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected boolean isExistResource(String path) { + return ResourceUtil.isExist(path); + } + + protected String readText(final String path, String sqlFileEncoding) { + final java.io.InputStream is = ResourceUtil.getResourceAsStream(path); + final java.io.Reader reader = InputStreamReaderUtil.create(is, + sqlFileEncoding); + return ReaderUtil.readText(reader); + } + + protected static String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public void setDynamicBinding(boolean dynamicBinding) { + this._dynamicBinding = dynamicBinding; + } + + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public void setOffsetByCursorForcedly(boolean offsetByCursorForcedly) { + this._offsetByCursorForcedly = offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public void setLimitByCursorForcedly(boolean limitByCursorForcedly) { + this._limitByCursorForcedly = limitByCursorForcedly; + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + public String getOutsideSqlPath() { + return _outsideSqlPath; + } + + public void setOutsideSqlPath(String outsideSqlPath) { + this._outsideSqlPath = outsideSqlPath; + } + + public Object getParameterBean() { + return _parameterBean; + } + + public void setParameterBean(Object parameterBean) { + this._parameterBean = parameterBean; + } + + public Object getResultTypeSpecification() { + return _resultTypeSpecification; + } + + public void setResultTypeSpecification(Object resultTypeSpecification) { + this._resultTypeSpecification = resultTypeSpecification; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + this._methodName = methodName; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + this._statementConfig = statementConfig; + } + + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + this._tableDbName = tableDbName; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,37 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler; + +/** + * The dao of outside-sql. + * + * @author DBFlute(AutoGenerator) + */ +public interface OutsideSqlDao extends DaoReadable { + + //========================================================================== + // ========= + // Select + // ====== + List selectList(String path, Object pmb, + OutsideSqlOption option, Class entityType); + + Object selectCursor(String path, Object pmb, + OutsideSqlOption option, CursorHandler handler); + + //========================================================================== + // ========= + // Execute + // ======= + int execute(String path, Object pmb, OutsideSqlOption option); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Call + // ==== + void call(String path, Object pmb, OutsideSqlOption option); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,116 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; + +/** + * The option of outside-SQL. It contains various information about execution. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlOption { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Option + // ------ + protected String _pagingRequestType = "non"; + + protected boolean _dynamicBinding; + + /** The configuration of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // ----------------------------------------------------- + // Information + // ----------- + /** The DB name of table. It is not related with the options of outside-SQL. */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void autoPaging() { + _pagingRequestType = "auto"; + } + + public void manualPaging() { + _pagingRequestType = "manual"; + } + + public void dynamicBinding() { + _dynamicBinding = true; + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public String generateUniqueKey() { + return "{" + _pagingRequestType + "/" + _dynamicBinding + "}"; + } + + //========================================================================== + // ========= + // Copy + // ==== + public OutsideSqlOption copyOptionWithoutPaging() { + final OutsideSqlOption copyOption = new OutsideSqlOption(); + if (isDynamicBinding()) { + copyOption.dynamicBinding(); + } + copyOption.setTableDbName(_tableDbName); + return copyOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Option + // ------ + public boolean isAutoPaging() { + return "auto".equals(_pagingRequestType); + } + + public boolean isManualPaging() { + return "manual".equals(_pagingRequestType); + } + + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + // ----------------------------------------------------- + // Information + // ----------- + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/OutsideSqlOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/ProcedurePmb.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/ProcedurePmb.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/ProcedurePmb.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,16 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql; + +/** + * The parameter-bean for procedure. + * + * @author DBFlute(AutoGenerator) + */ +public interface ProcedurePmb { + + /** + * Get the value of procedure name. + * + * @return The value of procedure name. (NotNull) + */ + public String getProcedureName(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/ProcedurePmb.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,251 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.ProcedurePmb; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; + +/** + * The executor of outside-sql.
    + * + *
    + * {Basic}
    + *   o selectList()
    + *   o execute()
    + *   o call()
    + * 
    + * {Entity}
    + *   o entityHandling().selectEntity()
    + *   o entityHandling().selectEntityWithDeletedCheck()
    + * 
    + * {Cursor}
    + *   o cursorHandling().selectCursor()
    + * 
    + * {Paging}
    + *   o autoPaging().selectList()
    + *   o autoPaging().selectPage()
    + *   o manualPaging().selectList()
    + *   o manualPaging().selectPage()
    + * 
    + * {Option -- Dynamic}
    + *   o dynamicBinding().selectList()
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlBasicExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outside-sql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** Table DB name. (NotNull) */ + protected final String _tableDbName; + + /** Is it dynamic binding? */ + protected boolean _dynamicBinding; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlBasicExecutor(OutsideSqlDao outsideSqlDao, + String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the list of the entity. + * + * @param The type of entity for element. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The element type of entity. (NotNull) + * @return The result bean of selected list. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, Object pmb, + Class entityType) { + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + //========================================================================== + // ========= + // Execute + // ======= + /** + * Execute. {Insert/Update/Delete/Etc...} + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @return The count of execution. + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public int execute(String path, Object pmb) { + return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Procedure Call + // ============== + /** + * Call stored procedure. + * + * @param pmb The parameter-bean for procedure. (NotNull) + */ + public void call(ProcedurePmb pmb) { + if (pmb == null) { + throw new IllegalArgumentException( + "The argument of call() 'pmb' should not be null!"); + } + _outsideSqlDao.call(pmb.getProcedureName(), pmb, + createOutsideSqlOption()); + } + + //========================================================================== + // ========= + // Option + // ====== + // ----------------------------------------------------- + // Result Handling + // --------------- + /** + * Specify cursor handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.cursorHandling().selectCursor(path, pmb, handler);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlCursorExecutor cursorHandling() { + return new OutsideSqlCursorExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + /** + * Specify entity handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.entityHandling().selectEntityWithDeletedCheck(path, pmb, Xxx.class);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlEntityExecutor entityHandling() { + return new OutsideSqlEntityExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + // ----------------------------------------------------- + // Paging + // ------ + /** + * Option of autoPaging.
    If you invoke this, you don't need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * # -- limit 40, 20        *Here is unnecessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is auto. (NotNull) + */ + public OutsideSqlPagingExecutor autoPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.autoPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + /** + * Option of manualPaging.
    If you invoke this, you need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * #  limit 40, 20        *Here is necessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is manual. (NotNull) + */ + public OutsideSqlPagingExecutor manualPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.manualPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + // ----------------------------------------------------- + // Dynamic Binding + // --------------- + public OutsideSqlBasicExecutor dynamicBinding() { + _dynamicBinding = true; + return this; + } + + // ----------------------------------------------------- + // Statement Config + // ---------------- + public OutsideSqlBasicExecutor configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + return this; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected OutsideSqlOption createOutsideSqlOption() { + final OutsideSqlOption option = new OutsideSqlOption(); + option.setStatementConfig(_statementConfig); + if (_dynamicBinding) { + option.dynamicBinding(); + } + option.setTableDbName(_tableDbName);// as information + return option; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,69 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.executor; + +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlCursorExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlCursorExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public Object selectCursor(String path, PARAMETER_BEAN pmb, + CursorHandler handler) { + return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, + handler); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + public OutsideSqlCursorExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,155 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlEntityExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlEntityExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select entity. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, + Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls.isEmpty()) { + return null; + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + /** + * Select entity with deleted check. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted(not found). + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntityWithDeletedCheck(String path, + PARAMETER_BEAN pmb, Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(buildSearch4LogString(path, pmb, + entityType)); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + protected String buildSearch4LogString(String path, + PARAMETER_BEAN pmb, Class entityType) { + String tmp = "Table = " + _outsideSqlOption.getTableDbName() + + getLineSeparator(); + tmp = tmp + "Path = " + path + getLineSeparator(); + tmp = tmp + "Pmb = " + + (pmb != null ? pmb.getClass().getSimpleName() : "null") + ":" + + pmb + getLineSeparator(); + tmp = tmp + "Entity = " + + (entityType != null ? entityType.getSimpleName() : "null") + + getLineSeparator(); + tmp = tmp + "Option = " + _outsideSqlOption; + return tmp; + } + + // ----------------------------------------------------- + // Helper + // ------ + protected void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + protected void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlEntityExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlEntityExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,221 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DBFluteConfig; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; + +/** + * The paging executor of outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlPagingExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outsideSql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** The option of outsideSql. (NotNull) */ + protected final OutsideSqlOption _outsideSqlOption; + + /** The DB name of table. (NotNull) */ + protected final String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlPagingExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption, String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { + setupScrollableCursorIfNeeds(); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + /** + * Select page. + *

    + * The SQL should have Count and Paging.
    You can realize by + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * #   from MEMBER member
    +     * #     /[*]IF pmb.isPaging()[*]/
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #     /[*]END[*]/
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * #  /[*]END[*]/
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Wrong SQL {part 1}
    +     *     -- Line comment before ELSE comment --
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME -- The name of member...    *NG
    +     * #      -- The status name of member...                  *NG
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * # ...
    +     * o It's S2Dao's restriction...Sorry
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paging. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public PagingResultBean selectPage(final String path, + final PagingBean pmb, final Class entityType) { + final OutsideSqlOption countOption = _outsideSqlOption + .copyOptionWithoutPaging(); + final OutsideSqlEntityExecutor countExecutor = new OutsideSqlEntityExecutor( + _outsideSqlDao, countOption); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return pmb; + } + + public int count() { + pmb.xsetPaging(false); + return countExecutor.selectEntityWithDeletedCheck(path, pmb, + Integer.class); + } + + public List paging() { + pmb.xsetPaging(true); + return selectList(path, pmb, entityType); + } + }; + final PagingInvoker invoker = new PagingInvoker( + _tableDbName); + if (pmb.isCountLater()) { + invoker.countLater(); + } + return invoker.invokePaging(handler); + } + + protected void setupScrollableCursorIfNeeds() { + if (!_outsideSqlOption.isAutoPaging()) { + return; + } + StatementConfig statementConfig = _outsideSqlOption + .getStatementConfig(); + if (statementConfig != null + && statementConfig.getResultSetType() != null) { + return; + } + StatementConfig defaultStatementConfig = DBFluteConfig.getInstance() + .getDefaultStatementConfig(); + if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + return; + } + if (statementConfig == null) { + statementConfig = new StatementConfig(); + configure(statementConfig); + } + statementConfig.typeScrollInsensitive(); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlPagingExecutor configure(StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlPagingExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLink.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLink.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLink.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,91 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.pagenavi; + +/** + * The class of page number link. + * + * @author DBFlute(AutoGenerator) + */ +public class PageNumberLink implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageNumberElement; + + protected boolean _current; + + protected String _pageNumberLinkHref; + + //========================================================================== + // ========= + // Constructor + // =========== + public PageNumberLink() { + } + + //========================================================================== + // ========= + // Initializer + // =========== + public PageNumberLink initialize(int pageNumberElement, boolean current, + String pageNumberLinkHref) { + setPageNumberElement(pageNumberElement); + setCurrent(current); + setPageNumberLinkHref(pageNumberLinkHref); + return this; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuffer sb = new StringBuffer(); + + sb.append(" pageNumberElement=").append(_pageNumberElement); + sb.append(" pageNumberLinkHref=").append(_pageNumberLinkHref); + sb.append(" current=").append(_current); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageNumberElement() { + return _pageNumberElement; + } + + public void setPageNumberElement(int pageNumberElement) { + this._pageNumberElement = pageNumberElement; + } + + public boolean isCurrent() { + return _current; + } + + public void setCurrent(boolean current) { + this._current = current; + } + + public String getPageNumberLinkHref() { + return _pageNumberLinkHref; + } + + public void setPageNumberLinkHref(String pageNumberLinkHref) { + this._pageNumberLinkHref = pageNumberLinkHref; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLink.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.pagenavi; + +/** + * The setupper of page number link. + * + * @param The type of link. + * @author DBFlute(AutoGenerator) + */ +public interface PageNumberLinkSetupper { + + /** + * Set up page number link. + * + * @param pageNumberElement Page number element. + * @param current Is current page? + * @return Page number link. (NotNull) + */ + public LINK setup(int pageNumberElement, boolean current); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,215 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.group; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageGroupOption _pageGroupOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Calculate start page number. + * + * @return Start page number. + */ + public int calculateStartPageNumber() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int currentPageNumber = _currentPageNumber; + + int currentPageGroupNumber = (currentPageNumber / pageGroupSize); + if ((currentPageNumber % pageGroupSize) == 0) { + currentPageGroupNumber--; + } + final int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1; + if (!(currentPageNumber >= currentPageGroupStartPageNumber)) { + String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:"; + msg = msg + " currentPageNumber=" + currentPageNumber; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + return currentPageGroupStartPageNumber; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int allPageCount = _allPageCount; + final int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + final int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + pageGroupSize; + + final List resultList = new ArrayList(); + for (int i = currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + return resultList; + } + + /** + * Create the array of page number. + * + * @return The array of page number. (NotNUll) + */ + public int[] createPageNumberArray() { + assertPageGroupValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page-group? Using values are currentPageNumber and + * pageGroupSize. + * + * @return Determination. + */ + public boolean isExistPrePageGroup() { + assertPageGroupValid(); + return (_currentPageNumber > _pageGroupOption.getPageGroupSize()); + } + + /** + * Is existing next page-group? Using values are currentPageNumber and + * pageGroupSize and allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPageGroup() { + assertPageGroupValid(); + int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + _pageGroupOption.getPageGroupSize(); + return (nextPageGroupStartPageNumber <= _allPageCount); + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageGroupOption=").append(_pageGroupOption); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageGroupOption(PageGroupOption pageGroupOption) { + this._pageGroupOption = pageGroupOption; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,50 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.group; + +/** + * The option of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageGroupSize; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageGroupSize=").append(_pageGroupSize); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageGroupSize() { + return _pageGroupSize; + } + + public void setPageGroupSize(int pageGroupSize) { + this._pageGroupSize = pageGroupSize; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/group/PageGroupOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,202 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.range; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageRangeValid(); + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + final int allPageCount = _allPageCount; + final int currentPageNumber = _currentPageNumber; + + final List resultList = new ArrayList(); + for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) { + if (i < 1) { + continue; + } + resultList.add(new Integer(i)); + } + + resultList.add(new Integer(currentPageNumber)); + + final int endPageNumber = (currentPageNumber + pageRangeSize); + for (int i = currentPageNumber + 1; i <= endPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + + final boolean fillLimit = _pageRangeOption.isFillLimit(); + final int limitSize = (pageRangeSize * 2) + 1; + if (fillLimit && !resultList.isEmpty() && resultList.size() < limitSize) { + final Integer firstElements = (Integer) resultList.get(0); + final Integer lastElements = (Integer) resultList.get(resultList + .size() - 1); + if (firstElements.intValue() > 1) { + for (int i = firstElements.intValue() - 1; resultList.size() < limitSize + && i > 0; i--) { + resultList.add(0, new Integer(i)); + } + } + for (int i = lastElements.intValue() + 1; resultList.size() < limitSize + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + } + return resultList; + } + + /** + * Get the array of page number. + * + * @return The array of page number. (NotNull) + */ + public int[] createPageNumberArray() { + assertPageRangeValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page range? + * + * @return Determination. + */ + public boolean isExistPrePageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[0] > 1; + } + + /** + * Is existing next page range? + * + * @return Determination. + */ + public boolean isExistNextPageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[array.length - 1] < _allPageCount; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageRangeOption=").append(_pageRangeOption); + + return sb.toString(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,61 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.pagenavi.range; + +/** + * The option of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageRangeSize; + + protected boolean _fillLimit; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageRangeSize=").append(_pageRangeSize); + sb.append(" fillLimit=").append(_fillLimit); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageRangeSize() { + return _pageRangeSize; + } + + public void setPageRangeSize(int pageRangeSize) { + this._pageRangeSize = pageRangeSize; + } + + public boolean isFillLimit() { + return _fillLimit; + } + + public void setFillLimit(boolean fillLimit) { + this._fillLimit = fillLimit; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/pagenavi/range/PageRangeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1799 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of SqlClause. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractSqlClause implements SqlClause { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String SELECT_HINT = "/*$dto.selectHint*/"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Basic + // ----- + /** Target table name. */ + protected final String _tableName; + + // ----------------------------------------------------- + // Clause Resource + // --------------- + /** + * Selected select column map. map:{tableAliasName : map:{columnName : + * selectColumnInfo}} + */ + protected Map> _selectedSelectColumnMap = new LinkedHashMap>(); + + /** + * Specified select column map. map:{ tableAliasName = map:{ columnName : + * null } } + */ + protected Map> _specifiedSelectColumnMap;// [ + + // DBFlute + // - + // 0.7.4 + // ] + + /** Specified derive sub-query map. */ + protected Map _specifiedDeriveSubQueryMap;// [DBFlute-0.7.4] + + /** Included select column map. */ + protected Map _includedSelectColumnMap = new LinkedHashMap(); + + /** + * The map of real column and alias of select clause. map:{realColumnName : + * aliasName} + */ + protected Map _selectClauseRealColumnAliasMap = new HashMap();// Without + + // linked + // ! + + /** Outer join map. */ + protected Map _outerJoinMap = new LinkedHashMap(); + + /** Where list. */ + protected List _whereList = new ArrayList(); + + /** Inline where list for BaseTable. */ + protected List _baseTableInlineWhereList = new ArrayList(); + + /** Order-by clause. */ + protected final OrderByClause _orderByClause = new OrderByClause(); + + /** Union clause list. */ + protected List _unionQueryInfoList = new ArrayList(); + + /** Is included-select-column effective? Default value is false. */ + protected boolean _isIncludedSelectColumnEffective = false; + + /** Is order-by effective? Default value is false. */ + protected boolean _isOrderByEffective = false; + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** Fetch start index. (for fetchXxx()) */ + protected int _fetchStartIndex = 0; + + /** Fetch size. (for fetchXxx()) */ + protected int _fetchSize = 0; + + /** Fetch page number. (for fetchXxx()) This value should be plus. */ + protected int _fetchPageNumber = 1; + + /** Is fetch-narrowing effective? Default value is false. */ + protected boolean _isFetchScopeEffective = false; + + // ----------------------------------------------------- + // AdditionalConditionAsOr + // ----------------------- + /** Is additional condition as or effective? */ + protected boolean _isAdditionalConditionAsOrEffective = false; + + // ----------------------------------------------------- + // WhereClauseSimpleFilter + // ----------------------- + /** The filter for where clause. */ + protected List _whereClauseSimpleFilterList; + + // ----------------------------------------------------- + // Selected Foreign Info + // --------------------- + /** The information of selected foreign table. */ + protected Map _selectedForeignInfo; + + // ----------------------------------------------------- + // Optional Info + // ------------- + protected boolean _formatClause; + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractSqlClause(String tableName) { + if (tableName == null) { + String msg = "Argument[tableName] must not be null."; + throw new IllegalArgumentException(msg); + } + _tableName = tableName; + } + + //========================================================================== + // ========= + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + public String getClause() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClause()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(false)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + public String getClausePKOnly() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClausePKOnly()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(true)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + protected String buildClauseWithoutMainSelect(boolean pkonly) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(getWhereClause()); + String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() + : getSelectClause()); + + // Delete template mark! (At the future this will be unnecessary.) + unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required + // ! + unionClause = replaceString(unionClause, + getUnionWhereFirstConditionMark(), "");// Required! + + sb.append(unionClause); + if (_isOrderByEffective && !_orderByClause.isEmpty()) { + sb.append(" "); + sb.append(getOrderByClause()); + } + sb.append(" "); + sb.append(getSqlSuffix()); + return sb.toString(); + } + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + public String getClauseFromWhereWithUnionTemplate() { + return buildClauseFromWhereAsTemplate(false); + } + + public String getClauseFromWhereWithWhereUnionTemplate() { + return buildClauseFromWhereAsTemplate(true); + } + + protected String buildClauseFromWhereAsTemplate(boolean template) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(buildWhereClause(template)); + sb.append(buildUnionClause(getUnionSelectClauseMark())); + return sb.toString(); + } + + protected String buildUnionClause(String selectClause) { + StringBuilder sb = new StringBuilder(); + for (final Iterator ite = _unionQueryInfoList + .iterator(); ite.hasNext();) { + final UnionQueryInfo unionQueryInfo = (UnionQueryInfo) ite.next(); + final String unionQueryClause = unionQueryInfo + .getUnionQueryClause(); + final boolean unionAll = unionQueryInfo.isUnionAll(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(unionAll ? " union all " : " union "); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(selectClause).append(" ").append(unionQueryClause); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // Clause Parts + // ============ + public String getSelectClause() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + List columnInfoList = dbmeta.getColumnInfoList(); + + // [DBFlute-0.7.4] + Map localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(getLocalTableAliasName()) + : null; + boolean existsSpecifiedLocal = localSpecifiedMap != null + && !localSpecifiedMap.isEmpty(); + + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedLocal + && !localSpecifiedMap.containsKey(columnName)) { + continue; + } + + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + Set tableAliasNameSet = _selectedSelectColumnMap.keySet(); + for (String tableAliasName : tableAliasNameSet) { + Map map = _selectedSelectColumnMap + .get(tableAliasName); + Collection selectColumnInfoList = map + .values(); + + // [DBFlute-0.7.4] + Map foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(tableAliasName) + : null; + boolean existsSpecifiedForeign = foreginSpecifiedMap != null + && !foreginSpecifiedMap.isEmpty(); + + for (SelectedSelectColumnInfo selectColumnInfo : selectColumnInfoList) { + String realColumnName = selectColumnInfo.buildRealColumnName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedForeign + && !foreginSpecifiedMap.containsKey(selectColumnInfo + .getColumnName())) { + continue; + } + + sb.append(", ").append(realColumnName).append(" as ").append( + selectColumnInfo.getColumnAliasName()); + _selectClauseRealColumnAliasMap.put(realColumnName, + selectColumnInfo.getColumnAliasName()); + } + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectClausePKOnly() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + UniqueInfo uniqueInfo = dbmeta.getPrimaryUniqueInfo(); + List columnInfoList = uniqueInfo.getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectHint() { + return createSelectHint(); + } + + public String getIncludedSelectColumnClause() { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _includedSelectColumnMap.keySet() + .iterator(); ite.hasNext(); count++) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sb.append(", ").append(realColumnName).append(" as ").append( + aliasName); + _selectClauseRealColumnAliasMap.put(realColumnName, aliasName); + } + return sb.toString(); + } + + public String getFromClause() { + StringBuilder sb = new StringBuilder(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("from "); + if (_baseTableInlineWhereList.isEmpty()) { + sb.append(_tableName).append(" dflocal"); + } else { + sb.append( + getInlineViewClause(_tableName, _baseTableInlineWhereList)) + .append(" dflocal"); + } + sb.append(getFromBaseTableHint()); + sb.append(getLeftOuterJoinClause()); + return sb.toString(); + } + + protected String getLeftOuterJoinClause() { + StringBuilder sb = new StringBuilder(); + for (Iterator ite = _outerJoinMap.keySet().iterator(); ite + .hasNext();) { + String aliasName = ite.next(); + LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + String joinTableName = joinInfo.getJoinTableName(); + List inlineWhereClauseList = joinInfo + .getInlineWhereClauseList(); + List additionalOnClauseList = joinInfo + .getAdditionalOnClauseList(); + Map joinOnMap = joinInfo.getJoinOnMap(); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" left outer join "); + if (inlineWhereClauseList.isEmpty()) { + sb.append(joinTableName); + } else { + sb.append(getInlineViewClause(joinTableName, + inlineWhereClauseList)); + } + sb.append(" ").append(aliasName).append(" on "); + int count = 0; + Set localColumnNameSet = joinOnMap.keySet(); + for (String localColumnName : localColumnNameSet) { + String foreignColumnName = (String) joinOnMap + .get(localColumnName); + if (count > 0) { + sb.append(" and "); + } + if (localColumnName.equals("$$fixedCondition$$")) { + sb.append(foreignColumnName); + } else { + sb.append(localColumnName).append(" = ").append( + foreignColumnName); + } + ++count; + } + for (String additionalOnClause : additionalOnClauseList) { + sb.append(" and ").append(additionalOnClause); + } + } + return sb.toString(); + } + + protected String getInlineViewClause(String joinTableName, + List inlineWhereClauseList) { + StringBuilder sb = new StringBuilder(); + sb.append("(select * from ").append(joinTableName).append(" where "); + int count = 0; + for (final Iterator ite = inlineWhereClauseList.iterator(); ite + .hasNext();) { + String clauseElement = ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count > 0) { + sb.append(" and "); + } + sb.append(clauseElement); + ++count; + } + sb.append(")"); + return sb.toString(); + } + + public String getFromBaseTableHint() { + return createFromBaseTableHint(); + } + + public String getFromHint() { + return createFromHint(); + } + + public String getWhereClause() { + return buildWhereClause(false); + } + + protected String buildWhereClause(boolean template) { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _whereList.iterator(); ite.hasNext(); count++) { + String clauseElement = (String) ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count == 0) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("where ").append( + template ? getWhereFirstConditionMark() : "").append( + clauseElement); + } else { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" and ").append(clauseElement); + } + } + if (template && sb.length() == 0) { + sb.append(getWhereClauseMark()); + } + return sb.toString(); + } + + public String getOrderByClause() { + String orderByClause = null; + if (!_unionQueryInfoList.isEmpty()) { + if (_selectClauseRealColumnAliasMap == null + || _selectClauseRealColumnAliasMap.isEmpty()) { + String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + + toString(); + throw new IllegalStateException(msg); + } + orderByClause = _orderByClause + .getOrderByClause(_selectClauseRealColumnAliasMap); + } else { + orderByClause = _orderByClause.getOrderByClause(); + } + if (isFormatClauseEffective() && orderByClause != null + && orderByClause.trim().length() > 0) { + return getLineSeparator() + " " + orderByClause; + } else { + return orderByClause; + } + } + + public String getSqlSuffix() { + String sqlSuffix = createSqlSuffix(); + if (isFormatClauseEffective() && sqlSuffix != null + && sqlSuffix.trim().length() > 0) { + return getLineSeparator() + sqlSuffix; + } else { + return sqlSuffix; + } + } + + //========================================================================== + // ========= + // Copy Parts + // ========== + public void copyIncludedSelectColumn(SqlClause sqlClause) { + Set keySet = _includedSelectColumnMap.keySet(); + for (Iterator ite = keySet.iterator(); ite.hasNext();) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sqlClause.registerIncludedSelectColumn(aliasName, realColumnName); + } + } + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected select column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath) { + _selectedSelectColumnMap + .put(foreignTableAliasName, createSelectedSelectColumnInfo( + foreignTableAliasName, localTableName, + foreignPropertyName, localRelationPath)); + } + + protected Map createSelectedSelectColumnInfo( + String foreignTableAliasName, String localTableName, + String foreignPropertyName, String localRelationPath) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + final int relationNo = foreignInfo.getRelationNo(); + String nextRelationPath = "_" + relationNo; + if (localRelationPath != null) { + nextRelationPath = localRelationPath + nextRelationPath; + } + final Map resultMap = new LinkedHashMap(); + final DBMeta foreignDBMeta = foreignInfo.getForeignDBMeta(); + final List columnInfoList = foreignDBMeta + .getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + final String columnDbName = columnInfo.getColumnDbName(); + final SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo(); + selectColumnInfo.setTableAliasName(foreignTableAliasName); + selectColumnInfo.setColumnName(columnDbName); + selectColumnInfo + .setColumnAliasName(columnDbName + nextRelationPath); + resultMap.put(columnDbName, selectColumnInfo); + } + return resultMap; + } + + public static class SelectedSelectColumnInfo { + protected String tableAliasName; + + protected String columnName; + + protected String columnAliasName; + + public String buildRealColumnName() { + if (tableAliasName != null) { + return tableAliasName + "." + columnName; + } else { + return columnName; + } + } + + public String getTableAliasName() { + return tableAliasName; + } + + public void setTableAliasName(String tableAliasName) { + this.tableAliasName = tableAliasName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnAliasName() { + return columnAliasName; + } + + public void setColumnAliasName(String columnAliasName) { + this.columnAliasName = columnAliasName; + } + } + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + public void ignoreIncludedSelectColumn() { + _isIncludedSelectColumnEffective = false; + } + + public void makeIncludedSelectColumnEffective() { + if (!_includedSelectColumnMap.isEmpty()) { + _isIncludedSelectColumnEffective = true; + } + } + + public void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + _isIncludedSelectColumnEffective = true; + _includedSelectColumnMap.put(aliasName, realColumnName); + } + + //========================================================================== + // ========= + // OuterJoin + // ========= + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap) { + assertAlreadyOuterJoin(aliasName); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + final LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo(); + joinInfo.setAliasName(aliasName); + joinInfo.setJoinTableName(joinTableName); + joinInfo.setJoinOnMap(joinOnMap); + _outerJoinMap.put(aliasName, joinInfo); + } + + protected static class LeftOuterJoinInfo { + protected String _aliasName; + + protected String _joinTableName; + + protected List _inlineWhereClauseList = new ArrayList(); + + protected List _additionalOnClauseList = new ArrayList(); + + protected Map _joinOnMap; + + protected boolean _onClauseInline; + + public String getAliasName() { + return _aliasName; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public String getJoinTableName() { + return _joinTableName; + } + + public void setJoinTableName(String value) { + _joinTableName = value; + } + + public List getInlineWhereClauseList() { + return _inlineWhereClauseList; + } + + public void addInlineWhereClause(String value) { + _inlineWhereClauseList.add(value); + } + + public List getAdditionalOnClauseList() { + return _additionalOnClauseList; + } + + public void addAdditionalOnClause(String value) { + _additionalOnClauseList.add(value); + } + + public Map getJoinOnMap() { + return _joinOnMap; + } + + public void setJoinOnMap(Map value) { + _joinOnMap = value; + } + + public boolean isOnClauseInline() { + return _onClauseInline; + } + + public void setOnClauseInline(boolean value) { + _onClauseInline = value; + } + } + + protected void assertAlreadyOuterJoin(String aliasName) { + if (_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have already registered in outer join: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + protected void assertJoinOnMapNotEmpty(Map joinOnMap, + String aliasName) { + if (joinOnMap.isEmpty()) { + String msg = "The joinOnMap should not be empty: aliasName=" + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Where + // ===== + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + key.addWhereClause(_whereList, columnFullName, value); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + assertObjectNotNull("option of " + columnFullName, option); + key.addWhereClause(_whereList, columnFullName, value, option); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String clause) { + assertStringNotNullAndNotTrimmedEmpty("clause", clause); + _whereList.add(clause); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void exchangeFirstWhereClauseForLastOne() { + if (_whereList.size() > 1) { + final String first = (String) _whereList.get(0); + final String last = (String) _whereList.get(_whereList.size() - 1); + _whereList.set(0, last); + _whereList.set(_whereList.size() - 1, first); + } + } + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + key.addWhereClause(_baseTableInlineWhereList, columnName, value); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + assertObjectNotNull("option of " + columnName, option); + key + .addWhereClause(_baseTableInlineWhereList, columnName, value, + option); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String value) { + _baseTableInlineWhereList.add(value); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value); + } + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + joinInfo.addAdditionalOnClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + joinInfo.addInlineWhereClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + protected void assertNotYetOuterJoin(String aliasName) { + if (!_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have not registered in outer join yet: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective() { + _isAdditionalConditionAsOrEffective = true; + } + + public void ignoreAdditionalConditionAsOr() { + _isAdditionalConditionAsOrEffective = false; + } + + protected void arrangeWhereListAdditionalConditionAsOr( + List whereList) { + if (_isAdditionalConditionAsOrEffective) { + if (whereList.size() < 2) { + String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + + toString(); + throw new IllegalStateException(msg); + } + final String lastWhereClause = (String) whereList.remove(whereList + .size() - 1); + final String preWhereClause = (String) whereList.remove(whereList + .size() - 1); + if (preWhereClause.startsWith("(") && preWhereClause.endsWith(")")) { + final String plainClause = preWhereClause.substring("(" + .length(), preWhereClause.length() - ")".length()); + whereList.add("(" + plainClause + " or " + lastWhereClause + + ")"); + } else { + whereList.add("(" + preWhereClause + " or " + lastWhereClause + + ")"); + } + } + } + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause() { + return _orderByClause; + } + + public SqlClause clearOrderBy() { + _isOrderByEffective = false; + _orderByClause.clear(); + return this; + } + + public SqlClause ignoreOrderBy() { + _isOrderByEffective = false; + return this; + } + + public SqlClause makeOrderByEffective() { + if (!_orderByClause.isEmpty()) { + _isOrderByEffective = true; + } + return this; + } + + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + _isOrderByEffective = true; + if (!_orderByClause.isSameOrderByColumn(orderByProperty)) { + clearOrderBy(); + registerOrderBy(orderByProperty, registeredOrderByProperty, + ascOrDesc); + } else { + _orderByClause.reverseAll(); + } + } + + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + try { + _isOrderByEffective = true; + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, + "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + + if (registeredOrderByProperty == null + || registeredOrderByProperty.trim().length() == 0) { + registeredOrderByProperty = orderByProperty; + } + + final List registeredOrderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer( + registeredOrderByProperty, "/"); + while (st.hasMoreElements()) { + registeredOrderByList.add(st.nextToken()); + } + } + + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite + .hasNext();) { + String orderBy = ite.next(); + String registeredOrderBy = (String) registeredOrderByList + .get(count); + + _isOrderByEffective = true; + String aliasName = null; + String columnName = null; + String registeredAliasName = null; + String registeredColumnName = null; + + if (orderBy.indexOf(".") < 0) { + columnName = orderBy; + } else { + aliasName = orderBy.substring(0, orderBy.lastIndexOf(".")); + columnName = orderBy + .substring(orderBy.lastIndexOf(".") + 1); + } + + if (registeredOrderBy.indexOf(".") < 0) { + registeredColumnName = registeredOrderBy; + } else { + registeredAliasName = registeredOrderBy.substring(0, + registeredOrderBy.lastIndexOf(".")); + registeredColumnName = registeredOrderBy + .substring(registeredOrderBy.lastIndexOf(".") + 1); + } + + OrderByElement element = new OrderByElement(); + element.setAliasName(aliasName); + element.setColumnName(columnName); + element.setRegisteredAliasName(registeredAliasName); + element.setRegisteredColumnName(registeredColumnName); + if (ascOrDesc) { + element.setupAsc(); + } else { + element.setupDesc(); + } + _orderByClause.addOrderByElement(element); + + count++; + } + } catch (RuntimeException e) { + String msg = "registerOrderBy() threw the exception: orderByProperty=" + + orderByProperty; + msg = msg + " registeredColumnFullName=" + + registeredOrderByProperty; + msg = msg + " ascOrDesc=" + ascOrDesc; + msg = msg + " sqlClause=" + this.toString(); + throw new RuntimeException(msg, e); + } + } + + public void addNullsFirstToPreviousOrderBy() { + _orderByClause + .addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + public void addNullsLastToPreviousOrderBy() { + _orderByClause + .addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() {// As + // Default + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + return orderByElementClause + " nulls " + + (nullsFirst ? "first" : "last"); + } + }; + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper + // For + // Nulls + // Unsupported + // Database + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + final String thenNumber = nullsFirst ? "1" : "0"; + final String elseNumber = nullsFirst ? "0" : "1"; + final String caseWhen = "case when " + columnName + + " is not null then " + thenNumber + " else " + + elseNumber + " end asc"; + return caseWhen + ", " + orderByElementClause; + } + }; + } + + //========================================================================== + // ========= + // UnionQuery + // ========== + public void registerUnionQuery(String unionQueryClause, boolean unionAll) { + assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", + unionQueryClause); + final UnionQueryInfo unionQueryInfo = new UnionQueryInfo(); + unionQueryInfo.setUnionQueryClause(unionQueryClause); + unionQueryInfo.setUnionAll(unionAll); + _unionQueryInfoList.add(unionQueryInfo); + } + + protected static class UnionQueryInfo { + protected String _unionQueryClause; + + protected boolean _unionAll; + + public String getUnionQueryClause() { + return _unionQueryClause; + } + + public void setUnionQueryClause(String unionQueryClause) { + _unionQueryClause = unionQueryClause; + } + + public boolean isUnionAll() { + return _unionAll; + } + + public void setUnionAll(boolean unionAll) { + _unionAll = unionAll; + } + } + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize) { + _isFetchScopeEffective = true; + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = 0; + _fetchSize = fetchSize; + _fetchPageNumber = 1; + doClearFetchPageClause(); + doFetchFirst(); + return this; + } + + /** + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize) { + _isFetchScopeEffective = true; + if (fetchStartIndex < 0) { + String msg = "Argument[fetchStartIndex] must be plus or zero: " + + fetchStartIndex; + throw new IllegalArgumentException(msg); + } + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = fetchStartIndex; + _fetchSize = fetchSize; + return fetchPage(1); + } + + /** + * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If + * minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber) { + _isFetchScopeEffective = true; + if (fetchPageNumber <= 0) { + fetchPageNumber = 1; + } + if (_fetchSize <= 0) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Fetch size should not be minus or zero!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "When you invoke this method, it is necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. " + + getLineSeparator(); + msg = msg + + "Please confirm your program. Does it really invoke 'fetchPage()' with 'fetchFirst()' or 'fetchScope()'?" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchPage(3);" + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchFirst(20); // The size of page" + + getLineSeparator(); + msg = msg + " cb.fetchPage(3); // The number of target page" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Actual Parameter Value]" + getLineSeparator(); + msg = msg + "fetchSize=" + _fetchSize + getLineSeparator(); + msg = msg + "fetchPageNumber=" + fetchPageNumber + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + _fetchPageNumber = fetchPageNumber; + if (_fetchPageNumber == 1 && _fetchStartIndex == 0) { + return fetchFirst(_fetchSize); + } + doClearFetchPageClause(); + doFetchPage(); + return this; + } + + abstract protected void doFetchFirst(); + + abstract protected void doFetchPage(); + + abstract protected void doClearFetchPageClause(); + + public int getFetchStartIndex() { + return _fetchStartIndex; + } + + public int getFetchSize() { + return _fetchSize; + } + + public int getFetchPageNumber() { + return _fetchPageNumber; + } + + /** + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1)); + } + + /** + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * _fetchPageNumber); + } + + public boolean isFetchScopeEffective() { + return _isFetchScopeEffective; + } + + public SqlClause ignoreFetchScope() { + _isFetchScopeEffective = false; + doClearFetchPageClause(); + return this; + } + + public SqlClause makeFetchScopeEffective() { + if (getFetchSize() > 0 && getFetchPageNumber() > 0) { + fetchPage(getFetchPageNumber()); + } + return this; + } + + public boolean isFetchStartIndexSupported() { + return true; // Default + } + + public boolean isFetchSizeSupported() { + return true; // Default + } + + abstract protected String createSelectHint(); + + abstract protected String createFromBaseTableHint(); + + abstract protected String createFromHint(); + + abstract protected String createSqlSuffix(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * The implementation. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getFetchSize(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _isFetchScopeEffective; + } + + //========================================================================== + // ========= + // Resolver + // ======== + public String resolveJoinAliasName(String relationPath, int cqNestNo) { + return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo); + } + + public String resolveNestLevelExpression(String name, int cqNestNo) { + // if (cqNestNo > 1) { + // return name + "_n" + cqNestNo; + // } else { + // return name; + // } + return name; + } + + public int resolveRelationNo(String localTableName, + String foreignPropertyName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + return foreignInfo.getRelationNo(); + } + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName() { + return "dflocal"; + } + + public String getForeignTableAliasPrefix() { + return "dfrelation"; + } + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark() { + return "#df:whereClause#"; + } + + public String getWhereFirstConditionMark() { + return "#df:whereFirstCondition#"; + } + + public String getUnionSelectClauseMark() { + return "#df:unionSelectClause#"; + } + + public String getUnionWhereClauseMark() { + return "#df:unionWhereClause#"; + } + + public String getUnionWhereFirstConditionMark() { + return "#df:unionWhereFirstCondition#"; + } + + //========================================================================== + // =========== + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + if (_whereClauseSimpleFilterList == null) { + _whereClauseSimpleFilterList = new ArrayList(); + } + _whereClauseSimpleFilterList.add(whereClauseSimpleFilter); + } + + protected String filterWhereClauseSimply(String clauseElement) { + if (_whereClauseSimpleFilterList == null + || _whereClauseSimpleFilterList.isEmpty()) { + return clauseElement; + } + for (final Iterator ite = _whereClauseSimpleFilterList + .iterator(); ite.hasNext();) { + final WhereClauseSimpleFilter filter = ite.next(); + if (filter == null) { + String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + + _whereClauseSimpleFilterList; + throw new IllegalStateException(msg); + } + clauseElement = filter.filterClauseElement(clauseElement); + } + return clauseElement; + } + + //========================================================================== + // =========== + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty() { + if (_selectedForeignInfo == null) { + return true; + } + return _selectedForeignInfo.isEmpty(); + } + + public boolean hasSelectedForeignInfo(String relationPath) { + if (_selectedForeignInfo == null) { + return false; + } + return _selectedForeignInfo.containsKey(relationPath); + } + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName) { + if (_selectedForeignInfo == null) { + _selectedForeignInfo = new HashMap(); + } + _selectedForeignInfo.put(relationPath, foreignPropertyName); + } + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective() { + return _formatClause; + } + + public void makeFormatClauseEffective() { + _formatClause = true; + } + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity) { + return getSubQueryBeginMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + public String resolveSubQueryEndMark(String subQueryIdentity) { + return getSubQueryEndMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + protected String getSubQueryBeginMarkPrefix() { + return "--df:SubQueryBegin#"; + } + + protected String getSubQueryEndMarkPrefix() { + return "--df:SubQueryEnd#"; + } + + protected String getSubQueryIdentityTerminal() { + return "#IdentityTerminal#"; + } + + public String filterSubQueryIndent(String sql) { + return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql; + } + + protected String filterSubQueryIndent(String sql, String preIndent) { + if (!isFormatClauseEffective()) { + return sql; + } + final String lineSeparator = getLineSeparator(); + if (!sql.contains(getSubQueryBeginMarkPrefix())) { + return sql; + } + final String[] lines = sql.split(lineSeparator); + final String beginMarkPrefix = getSubQueryBeginMarkPrefix(); + final String endMarkPrefix = getSubQueryEndMarkPrefix(); + final String identityTerminal = getSubQueryIdentityTerminal(); + final int terminalLength = identityTerminal.length(); + StringBuilder mainSb = new StringBuilder(); + StringBuilder subSb = null; + boolean throughBegin = false; + boolean throughBeginFirst = false; + String subQueryIdentity = null; + String indent = null; + for (String line : lines) { + if (!throughBegin) { + if (line.contains(beginMarkPrefix)) { + throughBegin = true; + subSb = new StringBuilder(); + final int markIndex = line.indexOf(beginMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subQueryIdentity = line.substring(markIndex + + beginMarkPrefix.length(), terminalIndex); + subSb.append(clause); + indent = buildSpaceBar(markIndex - preIndent.length()); + } else { + mainSb.append(line).append(getLineSeparator()); + } + } else { + // - - - - - - - - + // In begin to end + // - - - - - - - - + if (line.contains(endMarkPrefix + subQueryIdentity)) {// The end + final int markIndex = line.indexOf(endMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subSb.append(clause).append(getLineSeparator()); + final String currentSql = filterSubQueryIndent(subSb + .toString(), preIndent + indent); + mainSb.append(currentSql); + throughBegin = false; + throughBeginFirst = false; + } else { + if (!throughBeginFirst) { + subSb.append(line.trim()).append(getLineSeparator()); + throughBeginFirst = true; + } else { + subSb.append(indent).append(line).append( + getLineSeparator()); + } + } + } + } + final String filteredSql = mainSb.toString(); + + if (throughBegin) { + String msg = "End Mark Not Found!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + if (filteredSql.contains(beginMarkPrefix)) { + String msg = "Any begin marks are not filtered!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + return filteredSql; + } + + protected String buildSpaceBar(int size) { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < size; i++) { + sb.append(" "); + } + return sb.toString(); + } + + public static class SubQueryIndentFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SubQueryIndentFailureException(String msg) { + super(msg); + } + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName) { + if (_specifiedSelectColumnMap == null) { + _specifiedSelectColumnMap = new HashMap>(); + } + if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) { + _specifiedSelectColumnMap.put(tableAliasName, + new HashMap()); + } + Map elementMap = _specifiedSelectColumnMap + .get(tableAliasName); + elementMap.put(columnName, null); // The value is dummy for extension at + // the future. + _specifiedSelectColumnMap.put(tableAliasName, elementMap); + } + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) { + if (_specifiedDeriveSubQueryMap == null) { + _specifiedDeriveSubQueryMap = new LinkedHashMap(); + } + _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery); + } + + public boolean hasSpecifiedDeriveSubQuery(String aliasName) { + if (_specifiedDeriveSubQueryMap == null) { + return false; + } + return _specifiedDeriveSubQueryMap.containsKey(aliasName); + } + + public String getSpecifiedColumnNameAsOne() { + if (_specifiedSelectColumnMap != null + && _specifiedSelectColumnMap.size() == 1) { + Map elementMap = _specifiedSelectColumnMap + .get(_specifiedSelectColumnMap.keySet().iterator().next()); + if (elementMap != null && elementMap.size() == 1) { + return elementMap.keySet().iterator().next(); + } + } + return null; + } + + public void clearSpecifiedSelectColumn() { + if (_specifiedSelectColumnMap != null) { + _specifiedSelectColumnMap.clear(); + _specifiedSelectColumnMap = null; + } + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + public String getClauseQueryUpdate(Map columnParameterMap) { + if (columnParameterMap.isEmpty()) { + return null; + } + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryUpdate() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("update ").append(_tableName).append(ln); + int index = 0; + // It is guaranteed that the map has one or more elements. + for (String columnName : columnParameterMap.keySet()) { + final String parameter = columnParameterMap.get(columnName); + if (index == 0) { + sb.append(" set ").append(columnName).append(" = ").append( + parameter).append(ln); + } else { + sb.append(" , ").append(columnName).append(" = ").append( + parameter).append(ln); + } + ++index; + } + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("where ")); + sb.append(" ").append(subQuery); + return sb.toString(); + } + } + + public String getClauseQueryDelete() { + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryDelete() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("delete from ").append(_tableName).append(ln); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("from ")); + return "delete " + subQuery; + } + } + + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return true; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return false; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + return DBMetaInstanceHandler.findDBMeta(_tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String replaceString(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/AbstractSqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByClause.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByClause.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByClause.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,281 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByClause implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _orderByList = new ArrayList(); + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. + */ + public OrderByClause() { + } + + //========================================================================== + // =========== + // Manipulation + // ============ + /** + * Add order-by element. + * + * @param orderByElement Order-by element. (NotNull) + */ + public void addOrderByElement(OrderByElement orderByElement) { + _orderByList.add(orderByElement); + } + + /** + * Insert first order-by element . + * + * @param orderByElement Order-by element. (NotNull) + */ + public void insertFirstOrderByElement(OrderByElement orderByElement) { + _orderByList.add(0, orderByElement); + } + + public void reverseAll() { + for (Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + ite.next().reverse(); + } + } + + public void exchangeFirstOrderByElementForLastOne() { + if (_orderByList.size() > 1) { + final OrderByElement first = _orderByList.get(0); + final OrderByElement last = _orderByList + .get(_orderByList.size() - 1); + _orderByList.set(0, last); + _orderByList.set(_orderByList.size() - 1, first); + } + } + + public void addNullsFirstToPreviousOrderByElement( + OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, true); + } + + public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, false); + } + + public static interface OrderByNullsSetupper { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst); + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public List getOrderByList() { + return _orderByList; + } + + public String getOrderByClause() { + return getOrderByClause(null); + } + + public String getOrderByClause( + Map selectClauseRealColumnAliasMap) { + if (_orderByList.isEmpty()) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + final String delimiter = ", "; + for (final Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + final OrderByElement element = ite.next(); + sb.append(delimiter); + if (selectClauseRealColumnAliasMap != null) { + sb.append(element + .getElementClause(selectClauseRealColumnAliasMap)); + } else { + sb.append(element.getElementClause()); + } + } + sb.delete(0, delimiter.length()).insert(0, "order by "); + return sb.toString(); + } + + public boolean isSameOrderByColumn(String orderByProperty) { + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + if (_orderByList.size() != orderByList.size()) { + return false; + } + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite.hasNext();) { + final String columnFullName = ite.next(); + final OrderByElement element = (OrderByElement) _orderByList + .get(count); + if (!element.getColumnFullName().equals(columnFullName)) { + return false; + } + count++; + } + return true; + } + + //========================================================================== + // =========== + // First Element + // ============= + public boolean isFirstElementAsc() { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new IllegalStateException(msg); + } + final OrderByElement element = (OrderByElement) _orderByList.get(0); + return element.isAsc(); + } + + public boolean isFirstElementDesc() { + return !isFirstElementAsc(); + } + + public boolean isSameAsFirstElementAliasName(String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementColumnName(String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + /** + * @param expectedAliasName Expected alias-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredAliasName( + String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getRegisteredAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredColumnName( + String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getRegisteredColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + //========================================================================== + // =========== + // Delegate of List + // ================ + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _orderByList.isEmpty(); + } + + /** + * Get iterator of order-by list. + * + * @return Determination. + */ + public Iterator iterator() { + return _orderByList.iterator(); + } + + /** + * Clear order-by list. + */ + public void clear() { + _orderByList.clear(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view string of all-columns value. (NotNUll) + */ + public String toString() { + return _orderByList.toString(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByElement.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByElement.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByElement.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,273 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByElement implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + /** The value of alias name. */ + protected String _aliasName; + + /** The value of column name. */ + protected String _columnName; + + /** The value of registered alias name. */ + protected String _registeredAliasName; + + /** The value of registered column name. */ + protected String _registeredColumnName; + + /** The value of ascDesc. */ + protected String _ascDesc = "asc"; + + /** The setupper of order-by nulls. */ + protected OrderByClause.OrderByNullsSetupper _orderByNullsSetupper; + + /** Is nulls ordered first? */ + protected boolean _nullsFirst; + + //========================================================================== + // =========== + // Manipulation + // ============ + public void setupAsc() { + _ascDesc = "asc"; + } + + public void setupDesc() { + _ascDesc = "desc"; + } + + public void reverse() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + _ascDesc = "desc"; + } else if (_ascDesc.equals("desc")) { + _ascDesc = "asc"; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public boolean isAsc() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + return true; + } else if (_ascDesc.equals("desc")) { + return false; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + public String getColumnFullName() { + final StringBuilder sb = new StringBuilder(); + if (_aliasName != null) { + sb.append(_aliasName).append("."); + } + if (_columnName == null) { + String msg = "The attribute[columnName] should not be null."; + throw new IllegalStateException(msg); + } + sb.append(_columnName); + return sb.toString(); + } + + public String getElementClause() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + sb.append(getColumnFullName()).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(getColumnFullName(), sb + .toString(), _nullsFirst); + } else { + return sb.toString(); + } + } + + public String getElementClause( + Map selectClauseRealColumnAliasMap) { + if (selectClauseRealColumnAliasMap == null) { + String msg = "The argument[selectClauseRealColumnAliasMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + final String columnAlias = selectClauseRealColumnAliasMap + .get(getColumnFullName()); + if (columnAlias == null || columnAlias.trim().length() == 0) { + throwOrderByColumnNotFoundException(getColumnFullName(), + selectClauseRealColumnAliasMap); + } + sb.append(columnAlias).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(columnAlias, sb.toString(), + _nullsFirst); + } else { + return sb.toString(); + } + } + + protected void throwOrderByColumnNotFoundException(String columnName, + Map selectClauseRealColumnAliasMap) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The column for order-by was Not Found in select-clause!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "If you use 'union()' or 'unionAll()', Check your condition-bean!" + + getLineSeparator(); + msg = msg + "Order-by for union can use only columns on select-clause." + + getLineSeparator(); + msg = msg + + "So the rule when using union is little difference from the one when NOT using." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " [before (x)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *NG!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [after (o)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.setupSelect_Bbb();// *Point!" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *OK!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + + "Or else if you DON'T use 'union()' or 'unionAll()', This is the Framework Exception!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Column]" + getLineSeparator(); + msg = msg + columnName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Internal Object]" + getLineSeparator(); + msg = msg + "selectClauseRealColumnAliasMap=" + + selectClauseRealColumnAliasMap + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view-string of all-columns value. (NotNull) + */ + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{aliasName=").append(_aliasName); + sb.append(" columnName=").append(_columnName); + sb.append(" registeredAliasName=").append(_registeredAliasName); + sb.append(" registeredColumnName=").append(_registeredColumnName); + sb.append(" ascDesc=").append(_ascDesc).append("}"); + return sb.toString(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getAliasName() { + return _aliasName; + } + + public String getColumnName() { + return _columnName; + } + + public String getRegisteredAliasName() { + return _registeredAliasName; + } + + public String getRegisteredColumnName() { + return _registeredColumnName; + } + + public String getAscDesc() { + return _ascDesc; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public void setColumnName(String value) { + _columnName = value; + } + + public void setRegisteredAliasName(String value) { + _registeredAliasName = value; + } + + public void setRegisteredColumnName(String value) { + _registeredColumnName = value; + } + + public void setAscDesc(String value) { + _ascDesc = value; + } + + public void setOrderByNullsSetupper( + OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) { + _orderByNullsSetupper = value; + _nullsFirst = nullsFirst; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/OrderByElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClause.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClause.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClause.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,624 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The interface of SQL-clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlClause { + + //========================================================================== + // =========== + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + /** + * Get the clause of all parts. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts. (NotNull) + */ + public String getClause(); + + /** + * Get clause of all parts as PK-only. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts as PK-Only. (NotNull) + */ + public String getClausePKOnly(); + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + /** + * Get from-where clause without select and orderBy and sqlSuffix. For + * subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithUnionTemplate(); + + /** + * Get from-where clause without select and orderBy and sqlSuffix as + * template. For subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark and WhereClauseMark and + * WhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithWhereUnionTemplate(); + + //========================================================================== + // =========== + // Clause Parts + // ============ + /** + * Get the clause of 'select'. This is an internal method. + * + * @return The clause of select. {[select ...] from table...} (NotNull) + */ + public String getSelectClause(); + + /** + * Get The clause of 'select' as PK-only. This is an internal method. + * + * @return The clause of select PK-only. {[select ...] from table...} + * (NotNull) + */ + public String getSelectClausePKOnly(); + + /** + * Get the hint of 'select'. This is an internal method. + * + * @return The hint of 'select'. {select [select-hint] * from table...} + * (NotNull) + */ + public String getSelectHint(); + + /** + * Get the clause of included-select-column. This is an internal method. + * + * @return The clause of included-select-column. {select ... , + * [included-select-column clause] from table...} (NotNull) + */ + public String getIncludedSelectColumnClause(); + + /** + * Get the clause of 'from'. This is an internal method. + * + * @return The clause of 'from'. (NotNull) + */ + public String getFromClause(); + + /** + * Get the clause of from-base-table. This is an internal method. + * + * @return The hint of from-base-table. {select * from table + * [from-base-table-hint] where ...} (NotNull) + */ + public String getFromBaseTableHint(); + + /** + * Get the hint of 'from'. This is an internal method. + * + * @return The hint of 'from'. {select * from table left outer join ... on + * ... [from-hint] where ...} (NotNull) + */ + public String getFromHint(); + + /** + * Get the clause of 'where'. This is an internal method. + * + * @return The clause of 'where'. (NotNull) + */ + public String getWhereClause(); + + /** + * Get the clause of 'order-by'. This is an internal method. + * + * @return The clause of 'order-by'. (NotNull) + */ + public String getOrderByClause(); + + /** + * Get the suffix of SQL. This is an internal method. + * + * @return The suffix of SQL. {select * from table where ... order by ... + * [sql-suffix]} (NotNull) + */ + public String getSqlSuffix(); + + //========================================================================== + // ========= + // Copy Parts + // ========== + /** + * Copy included-select-column. + * + * @param sqlClause SQL-clause. (NotNull) + */ + public void copyIncludedSelectColumn(SqlClause sqlClause); + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected-select-column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath); + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + /** + * Ignore included-select-column. + */ + public void ignoreIncludedSelectColumn(); + + /** + * Make included-select-column effective. + */ + public void makeIncludedSelectColumnEffective(); + + /** + * Register included-select-column. + * + * @param aliasName The alias name of the included-select-column. (NotNull) + * @param realColumnName The real column name of the included-select-column. + * (NotNull) + */ + public void registerIncludedSelectColumn(String aliasName, + String realColumnName); + + //========================================================================== + // ========= + // OuterJoin + // ========= + /** + * Register outer-join. + * + * @param joinTableName The name of join table. {left outer join + * [joinTableName]} (NotNull) + * @param aliasName The alias name of join table. {left outer join + * joinTableName [aliasName]} (NotNull and Unique per invoking + * method) + * @param joinOnMap Map that has conditions of on-clause. (NotNull) + */ + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap); + + //========================================================================== + // ========= + // Where + // ===== + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value); + + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + * @param option Condition-option. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option); + + /** + * Register 'where' clause. + * + * @param clause The clause of 'where'. (NotNull) + */ + public void registerWhereClause(String clause); + + /** + * Exchange first The clause of 'where' for last one. + */ + public void exchangeFirstWhereClauseForLastOne(); + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value); + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option); + + public void registerBaseTableInlineWhereClause(String value); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline); + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective(); + + public void ignoreAdditionalConditionAsOr(); + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause(); + + public SqlClause clearOrderBy(); + + public SqlClause ignoreOrderBy(); + + public SqlClause makeOrderByEffective(); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + public void addNullsFirstToPreviousOrderBy(); + + public void addNullsLastToPreviousOrderBy(); + + //========================================================================== + // ========= + // Union + // ===== + public void registerUnionQuery(String unionClause, boolean unionAll); + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * Fetch first. + * + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize); + + /** + * Fetch scope. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page. + *

    + * When you invoke this, it is normally necessary to invoke 'fetchFirst()' + * or 'fetchScope()' ahead of that. But you also can use default-fetch-size + * without invoking 'fetchFirst()' or 'fetchScope()'. If you invoke this, + * your SQL returns [fetch-size] records from [fetch-start-index] calculated + * by [fetch-page-number]. + *

    + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber); + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchSize(); + + /** + * Get fetch page number. + * + * @return Fetch page number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective(); + + /** + * Ignore fetch-scope. + * + * @return this. (NotNull) + */ + public SqlClause ignoreFetchScope(); + + /** + * Make fetch-scope effective. + * + * @return this. (NotNull) + */ + public SqlClause makeFetchScopeEffective(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchSizeSupported(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * Is fetch-narrowing effective? + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Get fetch-narrowing skip-start-index. + * + * @return Skip-start-index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch-narrowing loop-count. + * + * @return Loop-count. + */ + public int getFetchNarrowingLoopCount(); + + //========================================================================== + // ========= + // Lock + // ==== + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate(); + + //========================================================================== + // ========= + // Resolver + // ======== + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved join alias name. (NotNull) + */ + public String resolveJoinAliasName(String relationPath, int cqNestNo); + + /** + * Resolve nest level expression. + * + * @param name Name. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved name about nest level. (NotNull) + */ + public String resolveNestLevelExpression(String name, int cqNestNo); + + /** + * Resolve relation no. + * + * @param baseTableName The table name of base. (NotNull) + * @param foreignPropertyName The property name of foreign. (NotNull) + * @return Resolved relation no. + */ + public int resolveRelationNo(String baseTableName, + String foreignPropertyName); + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName(); + + public String getForeignTableAliasPrefix(); + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark(); + + public String getWhereFirstConditionMark(); + + public String getUnionSelectClauseMark(); + + public String getUnionWhereClauseMark(); + + public String getUnionWhereFirstConditionMark(); + + //========================================================================== + // ========= + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter); + + //========================================================================== + // ========= + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty(); + + public boolean hasSelectedForeignInfo(String relationPath); + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName); + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective(); + + public void makeFormatClauseEffective(); + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity); + + public String resolveSubQueryEndMark(String subQueryIdentity); + + public String filterSubQueryIndent(String sql); + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName); + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery); + + public boolean hasSpecifiedDeriveSubQuery(String aliasName); + + public String getSpecifiedColumnNameAsOne(); + + public void clearSpecifiedSelectColumn(); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + /** + * @param columnParameterMap The map of column parameters. (NotNull) + * @return The clause of query update. (Nullable: If columnParameterMap is + * empty, return null) + */ + public String getClauseQueryUpdate(Map columnParameterMap); + + public String getClauseQueryDelete(); + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,165 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for DB2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDb2 extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as sql-suffix. */ + protected String _fetchFirstSqlSuffix = ""; + + /** String of lock as from-hint. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDb2(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } else { + _fetchFirstSqlSuffix = " fetch first " + getPageEndIndex() + + " rows only"; + } + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doClearFetchPageClause() { + _fetchFirstSqlSuffix = ""; + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with RS"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchFirstSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } + + // [DBFlute-0.7.9] + //========================================================================== + // ========= + // DB2 Dependency + // ============== + public void lockWithRR() { + _lockSqlSuffix = " with RR"; + } + + public void lockWithRS() { + _lockSqlSuffix = " with RS"; + } + + public void lockWithCS() { + _lockSqlSuffix = " with CS"; + } + + public void lockWithUR() { + _lockSqlSuffix = " with UR"; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDb2.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,113 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDefault extends AbstractSqlClause { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDefault(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + + toString(); + throw new UnsupportedOperationException(msg); + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDefault.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,136 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDerby extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDerby(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseDerby.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,103 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Firebird. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseFirebird extends AbstractSqlClause { + + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseFirebird(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseH2.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseH2.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseH2.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,104 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for H2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseH2 extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseH2(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getFetchSize() + " offset " + + getPageStartIndex(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23001".equals(sqlState); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseH2.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,111 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Interbase. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseInterbase extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseInterbase(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,135 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MySQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseMySql extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseMySql(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getPageStartIndex() + ", " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update Override + // ===================== + @Override + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return false; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1062; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseMySql.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,182 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * SqlClause for Oracle. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseOracle extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseOracle(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // Database Original Override + // ========================== + @Override + protected String buildUnionClause(String selectClause) { + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Remove select-hint comment from select clause of union + // for fetch-scope with union(). + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + selectClause = replaceString(selectClause, SELECT_HINT, ""); + return super.buildUnionClause(selectClause); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) { + return; + } + String ln = null; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } else { + ln = ""; + } + _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + + ln + "select"; + _fetchScopeSqlSuffix = ""; + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + + getPageStartIndex(); + } + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + + getPageEndIndex(); + } else { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + _fetchScopeSqlSuffix = ""; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + if (dbmeta.hasPrimaryKey()) { + final String primaryKeyColumnName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + primaryKeyColumnName; + } else { + final String randomColumnName = ((ColumnInfo) dbmeta + .getColumnInfoList().get(0)).getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + randomColumnName; + } + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseOracle.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,104 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for PostreSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClausePostgreSql extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClausePostgreSql(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " offset " + getPageStartIndex() + " limit " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,147 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MSSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseSqlServer extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as select-hint. */ + protected String _fetchFirstSelectHint = ""; + + /** String of lock as from-hint. */ + protected String _lockFromHint = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseSqlServer(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } else { + _fetchFirstSelectHint = " top " + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchFirstSelectHint = ""; + } + + /** + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. {Implement} + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockFromHint = " with (updlock)"; + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchFirstSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return _lockFromHint; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 2627; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,146 @@ +package jp.sf.pal.todolist.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * The interface of simple filter for where clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface WhereClauseSimpleFilter { + + public static final String BIND_COMMENT_BEGIN_PART = "/*dto"; + + public static final String BIND_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_BEGIN_PART = "/*$dto"; + + public static final String EMBEDDED_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_QUOTED_BEGIN_PART = "'/*$dto"; + + public static final String EMBEDDED_COMMENT_QUOTED_END_PART = "*/'dummy''"; + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement); + + /** + * The simple filter for where clause to embedded.
    *Attension -- + * Target column is not perfect. This class determines by column name only! + * So when the column name of base table is same as the column name of join + * table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedSimpleFilter implements + WhereClauseSimpleFilter { + + protected java.util.Set _filterTargetColumnInfoSet; + + public WhereClauseToEmbeddedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + this._filterTargetColumnInfoSet = new java.util.HashSet(); + this._filterTargetColumnInfoSet.add(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + this._filterTargetColumnInfoSet = filterTargetColumnInfoSet; + } + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement) { + if (_filterTargetColumnInfoSet == null + || _filterTargetColumnInfoSet.isEmpty()) { + return toEmbedded(clauseElement); + } + for (final java.util.Iterator ite = _filterTargetColumnInfoSet + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (isTargetClause(clauseElement, columnInfo.getColumnDbName())) { + return toEmbedded(clauseElement); + } + } + return clauseElement; + } + + protected boolean isTargetClause(String clauseElement, + final String columnDbName) { + return clauseElement.indexOf("." + columnDbName + " ") >= 0; + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_END_PART); + return clauseElement; + } + + protected final String replace(String text, String fromText, + String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + } + + /** + * The simple filter for where clause to embedded and quoted.
    + * *Attension -- Target column is not perfect. This class determines by + * column name only! So when the column name of base table is same as the + * column name of join table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedQuotedSimpleFilter extends + WhereClauseToEmbeddedSimpleFilter { + + public WhereClauseToEmbeddedQuotedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + super(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedQuotedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + super(filterTargetColumnInfoSet); + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_QUOTED_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_QUOTED_END_PART); + return clauseElement; + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/AbstractDBMeta.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/AbstractDBMeta.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/AbstractDBMeta.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1250 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.allcommon.helper.MapListString; +import jp.sf.pal.todolist.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.todolist.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.todolist.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.todolist.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractDBMeta implements DBMeta { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _columnInfoList; + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName) { + if (!hasFlexibleName(columnFlexibleName)) { + return false; + } + final String propertyName = findPropertyName(columnFlexibleName); + return hasMethod("column" + initCap(propertyName)); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + if (!hasColumn(columnFlexibleName)) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName(); + throw new IllegalArgumentException(msg); + } + String methodName = "column" + + initCap(findPropertyName(columnFlexibleName)); + Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ColumnInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) {// createColumnInfo() + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits); + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {// createColumnInfo + // ( + // ) + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits, optimisticLockType); + } + + /** + * The implementation. + * + * @return The list of columns. (NotNull and NotEmpty) + */ + public List getColumnInfoList() { + if (_columnInfoList != null) { + return _columnInfoList; + } + synchronized (this) { + if (_columnInfoList != null) { + return _columnInfoList; + } + Method[] methods = this.getClass().getMethods(); + _columnInfoList = newArrayList(); + String prefix = "column"; + Class returnType = ColumnInfo.class; + Object[] args = new Object[] {}; + try { + for (Method method : methods) { + if (method.getName().startsWith(prefix) + && returnType.equals(method.getReturnType())) { + _columnInfoList.add((ColumnInfo) method.invoke(this, + args)); + } + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return _columnInfoList; + } + } + + protected void initializeColumnInfoList() { + getColumnInfoList();// Ignore return value because of initialization + // only! + } + + //========================================================================== + // =========== + // Name Handling + // ============= + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return true; + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return true; + } + return false; + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get(key); + } + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + final String dbNameKeyToLower = ((String) getDbNamePropertyNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey( + dbNameKeyToLower)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get( + dbNameKeyToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get(key); + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + final String dbNameToLower = ((String) getPropertyNameDbNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(dbNameToLower)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get( + dbNameToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + protected UniqueInfo createPrimaryUniqueInfo() { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + return uniqueInfo; + } + + protected UniqueInfo createPrimaryUniqueInfo(ColumnInfo uniqueColumnInfo) { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + uniqueInfo.addUniqueColumnList(uniqueColumnInfo); + return uniqueInfo; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + /** + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return The information of relation. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("relationPropertyName", + relationPropertyName); + return hasForeign(relationPropertyName) ? (RelationInfo) findForeignInfo(relationPropertyName) + : (RelationInfo) findReferrerInfo(relationPropertyName); + } + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + return hasMethod(methodName); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropertyName) { + return findForeignInfo(foreignPropertyName).getForeignDBMeta(); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign information. (NotNull) + */ + public jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo findForeignInfo( + String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found foreign by foreignPropertyName: foreignPropertyName=" + + foreignPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ForeignInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ForeignInfo cfi(String propName, DBMeta localDbm, + DBMeta foreignDbm, + Map localForeignColumnInfoMap, int relNo, + boolean oneToOne) {// createForeignInfo() + final ForeignInfo foreignInfo = new ForeignInfo(); + foreignInfo.setForeignPropertyName(propName); + foreignInfo.setLocalDBMeta(localDbm); + foreignInfo.setForeignDBMeta(foreignDbm); + foreignInfo.setLocalForeignColumnInfoMap(localForeignColumnInfoMap); + foreignInfo.setRelationNo(relNo); + foreignInfo.setOneToOne(oneToOne); + return foreignInfo; + } + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + return hasMethod(methodName); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + return findReferrerInfo(referrerPropertyName).getReferrerDBMeta(); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found referrer by referrerPropertyName: referrerPropertyName=" + + referrerPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ReferrerInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ReferrerInfo cri(String propName, DBMeta localDbm, + DBMeta referrerDbm, + Map localReferrerColumnInfoMap, + boolean oneToOne) {// createReferrerInfo() + final ReferrerInfo referrerInfo = new ReferrerInfo(); + referrerInfo.setReferrerPropertyName(propName); + referrerInfo.setLocalDBMeta(localDbm); + referrerInfo.setReferrerDBMeta(referrerDbm); + referrerInfo.setLocalReferrerColumnInfoMap(localReferrerColumnInfoMap); + referrerInfo.setOneToOne(oneToOne); + return referrerInfo; + } + + // ----------------------------------------------------- + // Common Logic + // ------------ + protected String buildRelationInfoGetterMethodNameInitCap( + String targetName, String relationPropertyName) { + return targetName + relationPropertyName.substring(0, 1).toUpperCase() + + relationPropertyName.substring(1); + } + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + protected static abstract class AbstractRelationTrace implements + RelationTrace { + + /** The list of relation. */ + protected List _relationList; + + /** The list of relation trace. */ + protected List _relationTraceList; + + /** The list of relation info as trace. */ + protected List _traceRelationInfoList; + + /** The column info as trace. */ + protected ColumnInfo _traceColumnInfo; + + /** The handler of fixed relation trace. */ + protected RelationTraceFixHandler _relationTraceFixHandler; + + /** + * Constructor for first step. + * + * @param relationTraceFixHandler The handler of fixed relation trace. + * (Nullable) + */ + public AbstractRelationTrace( + RelationTraceFixHandler relationTraceFixHandler) { + this(new ArrayList(), + new ArrayList()); + this._relationTraceFixHandler = relationTraceFixHandler; + } + + /** + * Constructor for relation step. + * + * @param relationList The list of relation. (NotNull) + * @param relationTraceList The list of relation trace. (NotNull) + */ + public AbstractRelationTrace(List relationList, + List relationTraceList) { + this._relationList = relationList; + this._relationTraceList = relationTraceList; + this._relationTraceList.add(this); + } + + /** + * The implementation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation() { + return _traceRelationInfoList; + } + + /** + * The implementation. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn() { + return _traceColumnInfo; + } + + /** + * Fix trace. + * + * @param traceRelationInfoList The trace of relation as the list of + * relation info. (NotNull) + * @param traceColumnInfo The trace of column as column info. (Nullable) + * @return Relation trace(result). (NotNull) + */ + protected RelationTrace fixTrace( + List traceRelationInfoList, + ColumnInfo traceColumnInfo) { + final AbstractRelationTrace localRelationTrace = (AbstractRelationTrace) _relationTraceList + .get(0); + localRelationTrace.setTraceRelation(traceRelationInfoList); + localRelationTrace.setTraceColumn(traceColumnInfo); + localRelationTrace.recycle(); + localRelationTrace.handleFixedRelationTrace(); + return localRelationTrace; + } + + protected void setTraceRelation(List traceRelationInfoList) { + this._traceRelationInfoList = traceRelationInfoList; + } + + protected void setTraceColumn(ColumnInfo traceColumn) { + this._traceColumnInfo = traceColumn; + } + + /** + * The implementation. + */ + protected void recycle() { + this._relationList = new ArrayList(); + this._relationTraceList = new ArrayList(); + this._relationTraceList.add(this); + } + + protected void handleFixedRelationTrace() { + if (_relationTraceFixHandler != null) { + _relationTraceFixHandler.handleFixedTrace(this); + } + } + } + + //========================================================================== + // ========= + // Map String + // ========== + /** + * The implementation. + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString() { + return MapStringUtil.createMapListString(); + } + + /** + * The implementation. + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder() { + final List columnDbNameList = new ArrayList(); + for (final Iterator ite = getColumnInfoList().iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + return MapStringUtil.createMapStringBuilder(columnDbNameList); + } + + //========================================================================== + // ========= + // Various Info + // ============ + // These methods is expected to override if it needs. + public boolean hasSequence() { + return false; + } + + public String getSequenceNextValSql() { + return null; + } + + public boolean hasVersionNo() { + return false; + } + + public ColumnInfo getVersionNoColumnInfo() { + return null; + } + + public boolean hasUpdateDate() { + return false; + } + + public ColumnInfo getUpdateDateColumnInfo() { + return null; + } + + public boolean hasCommonColumn() { + return false; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + protected void doAcceptPrimaryKeyMap(ENTITY entity, + Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected void doAcceptColumnValueMap( + ENTITY entity, Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected String doExtractPrimaryKeyMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + protected String doExtractColumnValueMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getColumnInfoList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + // ----------------------------------------------------- + // Convert + // ------- + protected Map doConvertToColumnValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + protected Map doConvertToColumnStringValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, helpGettingColumnStringValue(value)); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected void setupEps( + Map> entityPropertySetupperMap, + Eps setupper, ColumnInfo columnInfo) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + registerEntityPropertySetupper(columnName, propertyName, setupper, + entityPropertySetupperMap); + } + + protected void registerEntityPropertySetupper( + String columnName, String propertyName, Eps setupper, + Map> entityPropertySetupperMap) { + entityPropertySetupperMap.put(columnName, setupper); + entityPropertySetupperMap.put(propertyName, setupper); + entityPropertySetupperMap.put(columnName.toLowerCase(), setupper); + entityPropertySetupperMap.put(propertyName.toLowerCase(), setupper); + } + + protected Eps findEps( + Map> entityPropertySetupperMap, + String propertyName) { + Eps setupper = entityPropertySetupperMap.get(propertyName); + if (setupper == null) { + String msg = "The propertyName was Not Found in the map of setupper of entity property:"; + msg = msg + " propertyName=" + propertyName + + " _entityPropertySetupperMap.keySet()=" + + entityPropertySetupperMap.keySet(); + throw new IllegalStateException(msg); + } + return setupper; + } + + //========================================================================== + // ========= + // Util Class + // ========== + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringUtil { + + public static void acceptPrimaryKeyMapString( + String primaryKeyMapString, Entity entity) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptPrimaryKeyMap(entity, + mapListString.generateMap(primaryKeyMapString)); + } + + public static void acceptColumnValueMapString( + String columnValueMapString, Entity entity) { + if (columnValueMapString == null) { + String msg = "The argument[columnValueMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!columnValueMapString.trim().startsWith(prefix)) { + columnValueMapString = prefix + columnValueMapString; + } + if (!columnValueMapString.trim().endsWith(suffix)) { + columnValueMapString = columnValueMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptColumnValueMap(entity, + mapListString.generateMap(columnValueMapString)); + } + + public static String extractPrimaryKeyMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractPrimaryKeyMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static String extractColumnValueMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractColumnValueMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException( + "The value should not be null: " + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + public static long parseDateStringAsMillis(Object value, + String propertyName, String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = filterTimestampValue(((String) value) + .trim()); + return java.sql.Timestamp.valueOf(valueString).getTime(); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + + " threw the exception: value=[" + value + "]", e); + } + } + + public static String filterTimestampValue(String value) { + value = value.trim(); + if (value.indexOf("/") == 4 && value.lastIndexOf("/") == 7) { + value = value.replaceAll("/", "-"); + } + if (value.indexOf("-") == 4 && value.lastIndexOf("-") == 7) { + if (value.length() == "2007-07-09".length()) { + value = value + " 00:00:00"; + } + } + return value; + } + + public static String formatDate(java.util.Date value) { + return getFormatDateFormat().format(value); + } + + public static String formatTimestamp(java.sql.Timestamp value) { + return getFormatDateFormat().format(value); + } + + public static java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateInstance(); + } + + public static java.text.DateFormat getFormatDateFormat() { + return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + } + + public static MapListString createMapListString() { + final MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + return mapListString; + } + + public static MapStringBuilder createMapStringBuilder( + List columnNameList) { + MapStringBuilder mapStringBuilder = new MapStringBuilderImpl(); + mapStringBuilder.setMsMapMark(MAP_STRING_MAP_MARK); + mapStringBuilder.setMsStartBrace(MAP_STRING_START_BRACE); + mapStringBuilder.setMsEndBrace(MAP_STRING_END_BRACE); + mapStringBuilder.setMsEqual(MAP_STRING_EQUAL); + mapStringBuilder.setMsDelimiter(MAP_STRING_DELIMITER); + mapStringBuilder.setColumnNameList(columnNameList); + return mapStringBuilder; + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapAssertUtil { + public static void assertPrimaryKeyMapNotNullAndNotEmpty( + java.util.Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + + public static void assertColumnExistingInPrimaryKeyMap( + java.util.Map primaryKeyMap, + String columnName) { + if (!primaryKeyMap.containsKey(columnName)) { + String msg = "The primaryKeyMap must have the value of " + + columnName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + + public static void assertColumnValueMapNotNullAndNotEmpty( + java.util.Map columnValueMap) { + if (columnValueMap == null) { + String msg = "The argument[columnValueMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnValueMap.isEmpty()) { + String msg = "The argument[columnValueMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringValueAnalyzer { + protected java.util.Map _valueMap; + + protected java.util.Set _modifiedPropertyNames; + + protected String _columnName; + + protected String _uncapPropName; + + protected String _propertyName; + + public MapStringValueAnalyzer( + java.util.Map valueMap, + java.util.Set modifiedPropertyNames) { + this._valueMap = valueMap; + this._modifiedPropertyNames = modifiedPropertyNames; + } + + public boolean init(String columnName, String uncapPropName, + String propertyName) { + this._columnName = columnName; + this._uncapPropName = uncapPropName; + this._propertyName = propertyName; + return _valueMap.containsKey(_columnName); + } + + public COLUMN_TYPE analyzeString( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + helpCheckingTypeString(obj, _uncapPropName, javaType.getName()); + return (COLUMN_TYPE) obj; + } + + public COLUMN_TYPE analyzeNumber( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, + String.class, obj.toString()); + } + + public COLUMN_TYPE analyzeDate(Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, long.class, + helpParsingDateString(obj, _uncapPropName, javaType + .getName())); + } + + public COLUMN_TYPE analyzeOther( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + return (COLUMN_TYPE) obj; + } + + private void helpCheckingTypeString(Object value, String uncapPropName, + String typeName) { + MapStringUtil.checkTypeString(value, uncapPropName, typeName); + } + + private long helpParsingDateString(Object value, String uncapPropName, + String typeName) { + return MapStringUtil.parseDateStringAsMillis(value, uncapPropName, + typeName); + } + + protected Object newInstanceByConstructor(Class targetType, + Class argType, Object arg) { + java.lang.reflect.Constructor constructor; + try { + constructor = targetType + .getConstructor(new Class[] { argType }); + } catch (SecurityException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (NoSuchMethodException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + try { + return constructor.newInstance(new Object[] { arg }); + } catch (IllegalArgumentException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (InstantiationException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (IllegalAccessException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (java.lang.reflect.InvocationTargetException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected ENTITY downcast(Entity entity) { + checkDowncast(entity); + return (ENTITY) entity; + } + + protected void checkDowncast(Entity entity) { + assertObjectNotNull("entity", entity); + Class entityType = getEntityType(); + Class targetType = entity.getClass(); + if (!entityType.isAssignableFrom(targetType)) { + String name = entityType.getSimpleName(); + String msg = "The entity should be " + name + " but it was: " + + targetType; + throw new IllegalStateException(msg); + } + } + + protected void helpAppendingColumnValueString(StringBuilder sb, + String delimiter, String equal, String colName, Object value) { + sb.append(delimiter).append(colName).append(equal); + sb.append(helpGettingColumnStringValue(value)); + } + + protected String helpGettingColumnStringValue(Object value) { + if (value instanceof java.sql.Timestamp) { + return (value != null ? helpFormatingTimestamp((java.sql.Timestamp) value) + : ""); + } else if (value instanceof java.util.Date) { + return (value != null ? helpFormatingDate((java.util.Date) value) + : ""); + } else { + return (value != null ? value.toString() : ""); + } + } + + protected String helpFormatingDate(java.util.Date date) { + return MapStringUtil.formatDate(date); + } + + protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) { + return MapStringUtil.formatTimestamp(timestamp); + } + + protected Map setupKeyToLowerMap(boolean dbNameKey) { + final Map map; + if (dbNameKey) { + map = newLinkedHashMap(getTableDbName().toLowerCase(), + getTablePropertyName()); + } else { + map = newLinkedHashMap(getTablePropertyName().toLowerCase(), + getTableDbName()); + } + Method[] methods = this.getClass().getMethods(); + String columnInfoMethodPrefix = "column"; + try { + for (Method method : methods) { + String name = method.getName(); + if (!name.startsWith(columnInfoMethodPrefix)) { + continue; + } + ColumnInfo columnInfo = (ColumnInfo) method.invoke(this); + String dbName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + if (dbNameKey) { + map.put(dbName.toLowerCase(), propertyName); + } else { + map.put(propertyName.toLowerCase(), dbName); + } + } + return Collections.unmodifiableMap(map); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // String Handling + // --------------- + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String initUncap(String str) { + return SimpleStringUtil.initUncap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected HashMap newHashMap() { + return new HashMap(); + } + + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + protected LinkedHashMap newLinkedHashMap(KEY key, + VALUE value) { + LinkedHashMap map = newLinkedHashMap(); + map.put(key, value); + return map; + } + + protected ArrayList newArrayList() { + return new ArrayList(); + } + + protected ArrayList newArrayList( + Collection collection) { + return new ArrayList(collection); + } + + // ----------------------------------------------------- + // Reflection Handling + // ------------------- + private Set _cachedMethodNames = new HashSet(); // for + + // performance + + protected boolean hasMethod(String methodName) { + assertStringNotNullAndNotTrimmedEmpty("methodName", methodName); + if (_cachedMethodNames.isEmpty()) { + synchronized (_cachedMethodNames) { + if (_cachedMethodNames.isEmpty()) { + final Method[] methods = this.getClass().getMethods(); + for (Method method : methods) { + _cachedMethodNames.add(method.getName()); + } + } + } + } + return _cachedMethodNames.contains(methodName); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the argument is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the string is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/AbstractDBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMeta.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMeta.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMeta.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,601 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.allcommon.helper.MapListString; +import jp.sf.pal.todolist.db.allcommon.helper.MapStringBuilder; + +/** + * The interface of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface DBMeta { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Info + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property-name(JavaBeansRule). + * + * @return Table property-name(JavaBeansRule). (NotNull) + */ + public String getTablePropertyName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // Name Handling + // ============= + /** + * Has object of flexible name? {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName); + + /** + * Find db name by flexible name. {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName); + + /** + * Find property name(JavaBeansRule) by flexible name. {Target objects are + * TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName); + + //========================================================================== + // ========= + // Name Map + // ======== + /** + * Get the key-to-lower map of DB name(lower) and property name. + * + * @return The key-to-lower map of DB name(lower) and property name. + * (NotNull) + */ + public Map getDbNamePropertyNameKeyToLowerMap(); + + /** + * Get the key-to-lower map of property name(lower) and db name. + * + * @return The key-to-lower map of property name(lower) and db name. + * (NotNull) + */ + public Map getPropertyNameDbNameKeyToLowerMap(); + + //========================================================================== + // ========= + // Type Name + // ========= + /** + * Get the type-name of entity. + * + * @return The type-name of entity. (NotNull) + */ + public String getEntityTypeName(); + + /** + * Get the type-name of condition-bean. + * + * @return The type-name of condition-bean. (Nullable: If the condition-bean + * does not exist) + */ + public String getConditionBeanTypeName(); + + /** + * Get the type-name of dao. + * + * @return The type-name of dao. (Nullable: If the dao does not exist) + */ + public String getDaoTypeName(); + + /** + * Get the type-name of behavior. + * + * @return The type-name of behavior. (Nullable: If the behavior does not + * exist) + */ + public String getBehaviorTypeName(); + + //========================================================================== + // ========= + // Object Type + // =========== + /** + * Get the type of entity. + * + * @return The type of entity. (NotNull) + */ + public Class getEntityType(); + + //========================================================================== + // ========= + // Object Instance + // =============== + /** + * New the instance of entity. + * + * @return The instance of entity. (NotNull) + */ + public Entity newEntity(); + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * @return The list of DB name of column. (NotNull and NotEmpty) + */ + public List getColumnInfoList(); + + /** + * Has column? + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName); + + /** + * Find the information of the column by the flexible name of the column. + * + *
    +     * If the table name is 'BOOK_ID', you can find the dbmeta by ...(as follows)
    +     *     'BOOK_ID', 'BOok_iD', 'book_id'
    +     *     , 'BookId', 'bookid', 'bOoKiD'
    +     * 
    + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName); + + //========================================================================== + // ========= + // Unique Info + // =========== + /** + * Get primary unique info. + * + * @return Primary unique info. (NotNull) + */ + public UniqueInfo getPrimaryUniqueInfo(); + + /** + * Has primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKey(); + + /** + * Has two or more primary-keys? + * + * @return Determination. + */ + public boolean hasTwoOrMorePrimaryKeys(); + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Relation Element + // ---------------- + /** + * Find relation info. + * + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return Relation info. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName); + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * Has foreign? + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropName); + + /** + * Find foreign dbmeta. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropName); + + /** + * Find foreign info. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign info. (NotNull) + */ + public ForeignInfo findForeignInfo(String foreignPropName); + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * Has referrer? + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName); + + /** + * Find referrer dbmeta. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName); + + /** + * Find referrer information. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName); + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + public static interface RelationTrace { + + /** + * Get the trace of relation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation(); + + /** + * Get the trace of column. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn(); + } + + public static interface RelationTraceFixHandler { + public void handleFixedTrace(RelationTrace relationTrace); + } + + //========================================================================== + // ========= + // Sequence Info + // ============= + /** + * Has sequence? + * + * @return Determination. + */ + public boolean hasSequence(); + + /** + * Get the SQL string for getting next value of sequence. + * + * @return The SQL string for getting next value of sequence. (Nullable: If + * it does not have sequence, returns null.) + */ + public String getSequenceNextValSql(); + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + /** + * Has version no? + * + * @return Determination. + */ + public boolean hasVersionNo(); + + /** + * Get the column information of version no. + * + * @return The column information of version no. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getVersionNoColumnInfo(); + + /** + * Has update date? + * + * @return Determination. + */ + public boolean hasUpdateDate(); + + /** + * Get the column information of update date. + * + * @return The column information of update date. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getUpdateDateColumnInfo(); + + //========================================================================== + // ========= + // Common Column Info + // ================== + /** + * Has common column? + * + * @return Determination. + */ + public boolean hasCommonColumn(); + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + /** + * Accept primary-key map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap); + + /** + * Accept primary-key map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMapString Primary-key map-string. (NotNull) + */ + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString); + + /** + * Accept column-value map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMap Column-value map. (NotNull and NotEmpty) + */ + public void acceptColumnValueMap(Entity entity, + Map columnValueMap); + + /** + * Accept column-value map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMapString Column-value map-string. (NotNull) + */ + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString); + + // ----------------------------------------------------- + // Extract + // ------- + /** + * Extract primary-key map-string. Delimiter is at-mark and semicolon. + *

    + * + *

    +     * ex) Uses that this method have.
    +     *   final String primaryKeyMapString = LdBookDbm.extractPrimaryKeyMapString(entity);
    +     *   final LdBook entity = dao.selectEntity(new LdBookCB().acceptPrimaryKeyMapString(primaryKeyMapString));
    +     *   ... // as primary key for condition.
    +     * 
    + * + * @param entity Target entity. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity); + + /** + * Extract primary-key map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + /** + * Extract column-value map-string. Delimiter is at-mark and semicolon. + * + * @param entity Target entity. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity); + + /** + * Extract column-value map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + // ----------------------------------------------------- + // Convert + // ------- + /** + * Convert entity to column value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column value. (NotNull) + */ + public List convertToColumnValueList(Entity entity); + + /** + * Convert entity to column value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column value. (NotNull) + */ + public Map convertToColumnValueMap(Entity entity); + + /** + * Convert entity to column string-value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column string-value. (NotNull) + */ + public List convertToColumnStringValueList(Entity entity); + + /** + * Convert entity to column string-value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column string-value. (NotNull) + */ + public Map convertToColumnStringValueMap(Entity entity); + + //========================================================================== + // ========= + // Map String + // ========== + /** + * Create map list string that is prepared. (for INTERNAL) + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString(); + + /** + * Create map string builder that is prepared. (for INTERNAL) + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder(); + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + /** + * Has the setupper of entity property by the name of property?
    + * Comparing is so flexible. {Ignore cases and underscore} + * + * @param propertyName The name of the property. (NotNull) + * @return Determination. + */ + public boolean hasEntityPropertySetupper(String propertyName); + + /** + * Set up entity property. (for INTERNAL) + * + * @param propertyName The name of the property. (NotNull) + * @param entity The entity for the property. (NotNull) + * @param value The value of the property. (Nullable) + */ + public void setupEntityProperty(String propertyName, Object entity, + Object value); + + /** + * The setupper of entity property.
    This class is for Internal. Don't + * use this! + * + * @param The type of entity. + */ + public interface Eps { + + /** + * @param entity Entity. (NotNull) + * @param value Value. (Nullable) + */ + void setup(ENTITY_TYPE entity, Object value); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public static enum OptimisticLockType { + NONE, VERSION_NO, UPDATE_DATE + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMetaInstanceHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,235 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.util.SimpleAssertUtil; + +/** + * DBMeta instance handler. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class DBMetaInstanceHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Table DB-name instance map. */ + protected static final Map _tableDbNameInstanceMap = new LinkedHashMap(); + + /** The map of table DB-name and class name. */ + protected static final Map _tableDbNameClassNameMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO", + "jp.sf.pal.todolist.db.bsentity.dbmeta.GroupInfoDbm"); + tmpMap.put("GROUP_MAPPING", + "jp.sf.pal.todolist.db.bsentity.dbmeta.GroupMappingDbm"); + tmpMap.put("ROLE_INFO", + "jp.sf.pal.todolist.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("ROLE_MAPPING", + "jp.sf.pal.todolist.db.bsentity.dbmeta.RoleMappingDbm"); + tmpMap.put("TODO", "jp.sf.pal.todolist.db.bsentity.dbmeta.TodoDbm"); + tmpMap.put("TODO_CATEGORY", + "jp.sf.pal.todolist.db.bsentity.dbmeta.TodoCategoryDbm"); + tmpMap.put("TODO_MAPPING", + "jp.sf.pal.todolist.db.bsentity.dbmeta.TodoMappingDbm"); + tmpMap.put("USER_INFO", + "jp.sf.pal.todolist.db.bsentity.dbmeta.UserInfoDbm"); + + _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of DB-name and property-name for table. */ + protected static final Map _tableDbNamePropertyNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); + tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); + tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping"); + tmpMap.put("TODO".toLowerCase(), "todo"); + tmpMap.put("TODO_CATEGORY".toLowerCase(), "todoCategory"); + tmpMap.put("TODO_MAPPING".toLowerCase(), "todoMapping"); + tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); + + _tableDbNamePropertyNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of property-name and DB-name for table. */ + protected static final Map _tablePropertyNameDbNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); + tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); + tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING"); + tmpMap.put("todo".toLowerCase(), "TODO"); + tmpMap.put("todoCategory".toLowerCase(), "TODO_CATEGORY"); + tmpMap.put("todoMapping".toLowerCase(), "TODO_MAPPING"); + tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); + + _tablePropertyNameDbNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + protected static DBMeta getDBMeta(String className) { + try { + Class clazz = Class.forName(className); + java.lang.reflect.Method methoz = clazz.getMethod("getInstance", + (Class[]) null); + Object result = methoz.invoke(null, (Object[]) null); + return (DBMeta) result; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * @return The initialized map that contains all instances of dbmeta. + * (NotNull & NotEmpty) + */ + public static Map getDBMetaMap() { + initializeDBMetaMap(); + return _tableDbNameInstanceMap; + } + + protected static void initializeDBMetaMap() { + if (isInitialized()) { + return; + } + final Set tableDbNameSet = _tableDbNameClassNameMap.keySet(); + for (String tableDbName : tableDbNameSet) { + findDBMeta(tableDbName); // Initialize! + } + if (!isInitialized()) { + String msg = "Failed to initialize tableDbNameInstanceMap:"; + msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap; + throw new IllegalStateException(msg); + } + } + + protected static boolean isInitialized() { + return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap + .size(); + } + + //========================================================================== + // ========= + // Main Method + // =========== + /** + * Find dbmeta by table flexible-name. + * + *
    +     * If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)
    +     *     'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'
    +     *     , 'OrderDetail', 'orderdetail', 'oRderDetaIl'
    +     * 
    + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return The instance of dbmeta. (NotNull) + * @exception DBMetaNotFoundException When the dbmeta is not found. + */ + public static DBMeta findDBMeta(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) { + return byTableDbName(tableFlexibleName); + } + String toLowerKey = tableFlexibleName.toLowerCase(); + if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) { + String propertyName = (String) _tableDbNamePropertyNameKeyToLowerMap + .get(toLowerKey); + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(propertyName.toLowerCase()); + return byTableDbName(dbName); + } + if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) { + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(toLowerKey); + return byTableDbName(dbName); + } + final int dotLastIndex = tableFlexibleName.lastIndexOf("."); + if (dotLastIndex >= 0) { + try { + return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1)); + } catch (DBMetaNotFoundException e) { + // Nothing + } + } + String msg = "The instance map returned null by the key: key=" + + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + + public static class DBMetaNotFoundException extends IllegalStateException { + private static final long serialVersionUID = 1L; + + public DBMetaNotFoundException(String msg) { + super(msg); + } + } + + /** + * Get instance by table DB-name. + * + * @param tableDbName Table DB-name. (NotNull) + * @return Instance. (NotNull) + */ + protected static DBMeta byTableDbName(String tableDbName) { + assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName); + DBMeta instance = getCachedDBMeta(tableDbName); + if (instance == null) { + String msg = "The instance map returned null by the key: key=" + + tableDbName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + return instance; + } + + protected static DBMeta getCachedDBMeta(String tableName) {// For lazy-load! + // Thank you + // koyak! + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + synchronized (_tableDbNameInstanceMap) { + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + String entityName = _tableDbNameClassNameMap.get(tableName); + _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName)); + } + return _tableDbNameInstanceMap.get(tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // Assert Object + // ------------- + protected static void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/DBMetaInstanceHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,915 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.RelationInfo; + +/** + * The arranger of hierarchy. + * + *
    + * ex) LIBRARY Hierarchy
    + * 
    + * LIBRARY
    + *  |1
    + *  |--* NEXT_LIBRARY (Referrer)
    + *  |       |*
    + *  |       |--1 LIBRARY (Foreign)
    + *  |
    + *  |--* COLLECTION (Referrer)
    + *  |       |1 
    + *  |       |--1 COLLECTION_STATUS (Referrer)
    + *  |       |       |*
    + *  |       |       |--1 COLLECTION_STATUS_LOOKUP (Foreign)
    + *  |       |
    + *  |       |--1 BOOK (Foreign)
    + *  |       |     |*
    + *  |       |     |--1 AUTHOR (Foreign)
    + *  |       |     |--1 PUBLISER (Foreign)
    + *  |       |     |--1 GENRE (Foreign)
    + *  |       |           |*
    + *  |       |           |--1 GENRE (Foreign)
    + *  |       |
    + *  |       |--* LENDING_COLLECTION (Referrer)
    + *  |       |
    + *  |
    + *  |--* LIBRARY_USER (Referrer)
    + *         |*  |1
    + *         |   |--* LENDING (Referrer)
    + *         |         |1
    + *         |         |--* LENDING_COLLECTION (Referrer)
    + *         |
    + *         |--1 LB_USER (Foreign)
    + *                 |1
    + *                 |--* BLACK_LIST (Referrer)
    + *                         |1
    + *                         |--* BLACK_ACTION (Referrer)
    + *                                 |*
    + *                                 |--1 BLACK_ACTION_LOOKUP (Foreign)
    + *          
    + *          
    + * ex) The SQL of LIBRARY Hierarchy as FLAT
    + * 
    + * select library.LIBRARY_ID as LIBRARY_ID
    + *      , library.LIBRARY_NAME as LIBRARY_NAME
    + *      , library.R_USER as R_USER
    + *      , library.R_TIMESTAMP as R_TIMESTAMP
    + *      , nextBase.LIBRARY_ID as BASE_LIBRARY_ID
    + *      , nextBase.NEXT_LIBRARY_ID as NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_ID as NEXT_LIBRARY_NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_NAME as NEXT_LIBRARY_NEXT_LIBRARY_NAME
    + *      , collection.COLLECTION_ID as COLLECTION_ID
    + *      , collection.ARRIVAL_DATE as COLLECTION_ARRIVAL_DATE
    + *      , collectionStatus.COLLECTION_ID as COLLECTION_STATUS_ID
    + *      , collectionStatus.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_NAME as COLLECTION_STATUS_NAME
    + *      , book.BOOK_ID as COLLECTION_BOOK_ID
    + *      , book.BOOK_NAME as COLLECTION_BOOK_NAME
    + *      , author.AUTHOR_ID as COLLECTION_BOOK_AUTHOR_ID
    + *      , author.AUTHOR_NAME as COLLECTION_BOOK_AUTHOR_NAME
    + *      , libraryUser.LIBRARY_ID as LIBRARY_USER_LIBRARY_ID 
    + *      , libraryUser.LB_USER_ID as LIBRARY_USER_LB_USER_ID
    + *      , lending.LIBRARY_ID as LENDING_LIBRARY_ID
    + *      , lending.LB_USER_ID as LENDING_LB_USER_ID
    + *      , lending.LENDING_DATE as LENDING_DATE
    + *      , lending.U_USER as LENDING_U_USER
    + *      , lending.U_MODULE as LENDING_U_MODULE
    + *      , lbUser.LB_USER_ID as LB_USER_ID
    + *      , lbUser.LB_USER_NAME as LB_USER_NAME
    + *   from LIBRARY library
    + *     left outer join NEXT_LIBRARY nextBase on library.LIBRARY_ID = nextBase.LIBRARY_ID
    + *       left outer join LIBRARY nextBaseNextLibrary on nextBase.NEXT_LIBRARY_ID = nextBaseNextLibrary.LIBRARY_ID
    + *     left outer join COLLECTION collection on library.LIBRARY_ID = collection.LIBRARY_ID
    + *       left outer join COLLECTION_STATUS collectionStatus on collection.COLLECTION_ID = collectionStatus.COLLECTION_ID
    + *         left outer join COLLECTION_STATUS_LOOKUP collectionStatusLookup on collectionStatus.COLLECTION_STATUS_CODE = collectionStatusLookup.COLLECTION_STATUS_CODE
    + *       left outer join BOOK book on collection.BOOK_ID = book.BOOK_ID
    + *         left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID
    + *     left outer join LIBRARY_USER libraryUser on library.LIBRARY_ID = libraryUser.LIBRARY_ID
    + *       left outer join LENDING lending on libraryUser.LIBRARY_ID = lending.LIBRARY_ID and libraryUser.LB_USER_ID = lending.LB_USER_ID
    + *       left outer join LB_USER lbUser on libraryUser.LB_USER_ID = lbUser.LB_USER_ID
    + * 
    + * 
    + * ex) Invoking Hierarchy Arranger
    + * 
    + * private List<Library> makeLibraryList() {
    + *     final HierarchyRequest<Library> request = createHierarchyRequest(createFlatLibraryList());
    + *     return new HierarchyArranger<Library>().arrangeHierarchy(request);
    + * }
    + * 
    + * 
    + * ex) Creating Hierarchy Request
    + * 
    + * private HierarchyRequest<Library> createHierarchsyRequest(java.util.List>HierarchyFlatLibrary> flatLibraryList) {
    + * 
    + *     // Define dbmeta.
    + *     final HierarchyFlatLibraryDbm sourceDbm = HierarchyFlatLibraryDbm.getInstance();
    + * 
    + *     // Define hierarychy request as library.
    + *     final HierarchyRequest<Library> request = new HierarchyRequest<Library>(Library.class);
    + * 
    + *     // Register the list of source iterator. (by calling creator for flat library list)
    + *     request.registerSourceList(flatLibraryList);
    + * 
    + *     // Create relation trace.
    + *     final LibraryRelationTrace trace = LibraryDbm.getInstance().createRelationTrace(null);
    + *     
    + *     // Register column [libraryId]
    + *     request.mapping(sourceDbm.columnLibraryId(), trace.columnLibraryId());
    + * 
    + *     // Register column [libraryName]
    + *     request.mapping(sourceDbm.columnLibraryName(), trace.columnLibraryName());
    + * 
    + *     // Register column [RUser]
    + *     request.mapping(sourceDbm.columnRUser(), trace.columnRUser());
    + * 
    + *     // Register column [RTimestamp]
    + *     request.mapping(sourceDbm.columnRTimestamp(), trace.columnRTimestamp());
    + * 
    + *     // Register column [baseLibraryId]
    + *     request.mapping(sourceDbm.columnBaseLibraryId(), trace.referrerNextLibraryByBaseIdList().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryId(), trace.referrerNextLibraryByBaseIdList().columnNextLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryId(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryName]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryName(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryName());
    + * 
    + *     // Register column [collectionId]
    + *     request.mapping(sourceDbm.columnCollectionId(), trace.referrerCollectionList().columnCollectionId());
    + * 
    + *     // Register column [arrivalDate]
    + *     request.mapping(sourceDbm.columnCollectionArrivalDate(), trace.referrerCollectionList().columnArrivalDate());
    + * 
    + *     // Register column [collectionStatusId]
    + *     request.mapping(sourceDbm.columnCollectionStatusId(), trace.referrerCollectionList().foreignCollectionStatusAsOne().columnCollectionId());
    + * 
    + *     // Register column [collectionStatusCode]
    + *     request.mapping(sourceDbm.columnCollectionStatusCode(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusCode());
    + * 
    + *     // Register column [collectionStatusName]
    + *     request.mapping(sourceDbm.columnCollectionStatusName(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusName());
    + * 
    + *     // Register column [collectionBookId]
    + *     request.mapping(sourceDbm.columnCollectionBookId(), trace.referrerCollectionList().foreignBook().columnBookId());
    + * 
    + *     // Register column [collectionBookName]
    + *     request.mapping(sourceDbm.columnCollectionBookName(), trace.referrerCollectionList().foreignBook().columnBookName());
    + * 
    + *     // Register column [collectionBookAuthorId]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorId(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorId());
    + * 
    + *     // Register column [collectionBookAuthorName]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorName(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorName());
    + * 
    + *     // Register column [libraryUserLibraryId]
    + *     request.mapping(sourceDbm.columnLibraryUserLibraryId(), trace.referrerLibraryUserList().columnLibraryId());
    + * 
    + *     // Register column [libraryUserLbUserId]
    + *     request.mapping(sourceDbm.columnLibraryUserLbUserId(), trace.referrerLibraryUserList().columnLbUserId());
    + * 
    + *     // Register column [lendingLibraryId]
    + *     request.mapping(sourceDbm.columnLendingLibraryId(), trace.referrerLibraryUserList().referrerLendingList().columnLibraryId());
    + * 
    + *     // Register column [lendingLbUserId]
    + *     request.mapping(sourceDbm.columnLendingLbUserId(), trace.referrerLibraryUserList().referrerLendingList().columnLbUserId());
    + * 
    + *     // Register column [lendingDate]
    + *     request.mapping(sourceDbm.columnLendingDate(), trace.referrerLibraryUserList().referrerLendingList().columnLendingDate());
    + * 
    + *     // Register column [lendingUUser]
    + *     request.mapping(sourceDbm.columnLendingUUser(), trace.referrerLibraryUserList().referrerLendingList().columnUUser());
    + * 
    + *     // Register column [lendingUModule]
    + *     request.mapping(sourceDbm.columnLendingUModule(), trace.referrerLibraryUserList().referrerLendingList().columnUModule());
    + * 
    + *     // Register column [lbUserId]
    + *     request.mapping(sourceDbm.columnLbUserId(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserId());
    + * 
    + *     // Register column [lbUserName]
    + *     request.mapping(sourceDbm.columnLbUserName(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserName());
    + * 
    + *     return request;
    + * }
    + * 
    + * private java.util.List>HierarchyFlatLibrary> createFlatLibraryList() {
    + *     (...select and get list)
    + *     return flatLibraryList;
    + * }
    + * 
    + * 
    + * === Relation Trace Tips ===
    + * 
    + *   RelationTrace.f + [Code Assist] -- go to Foreign
    + *   RelationTrace.r + [Code Assist] -- go to Referrer
    + * RelationTrace.c + [Code Assist] -- end relation by Column
    + * 
    + * 
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity extends Entity
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyArranger {
    +
    +    //==========================================================================
    +    // =========
    +    // Main
    +    // ====
    +    /**
    +     * Arrange hierarchy.
    +     * 
    +     * @param request Hierarchy request. (NotNull)
    +     * @return The list of local entity. (NotNull)
    +     */
    +    public List arrangeHierarchy(
    +            HierarchyRequest request) {
    +        final List localTableList = new ArrayList();
    +        final Map alreadyRegisteredEntityMap = new HashMap();
    +
    +        // ============
    +        // Record Loop!
    +        // ============
    +        final HierarchySourceIterator sourceIterator = request
    +                .getSourceIterator();
    +        while (sourceIterator.hasNext()) {
    +            final HierarchySourceRow sourceRow = sourceIterator.next();
    +            final TopInfo topInfo = new TopInfo();
    +            topInfo.setHierarchyRequest(request);
    +            topInfo.setSourceRow(sourceRow);
    +            topInfo.setAlreadyRegisteredEntityMap(alreadyRegisteredEntityMap);
    +
    +            final Map primaryKeyMap = extractTopPrimaryKeyMapFromSource(topInfo);
    +            final String alreadyRegisteredKey = buildTopAlreadyRegisteredKey(primaryKeyMap);
    +            if (alreadyRegisteredEntityMap.containsKey(alreadyRegisteredKey)) {
    +                final Entity localEntity = alreadyRegisteredEntityMap
    +                        .get(alreadyRegisteredKey);
    +                topInfo.setLocalEntity(localEntity);
    +            } else {
    +                // Make local entity and register it to the result list.
    +                final LOCAL_ENTITY localEntity = newLocalEntity(request
    +                        .getDestinationDBMeta());
    +                topInfo.setLocalEntity(localEntity);
    +                localTableList.add(localEntity);
    +                alreadyRegisteredEntityMap.put(alreadyRegisteredKey,
    +                        localEntity);
    +            }
    +
    +            // ============
    +            // Column Loop!
    +            // ============
    +            doColumnLoop(topInfo);
    +        }
    +
    +        // Clear modified properties.
    +        final java.util.Set alreadyRegisteredEntityKeySet = alreadyRegisteredEntityMap
    +                .keySet();
    +        for (String key : alreadyRegisteredEntityKeySet) {
    +            final Entity currentRegisteredEntity = alreadyRegisteredEntityMap
    +                    .get(key);
    +            currentRegisteredEntity.clearModifiedPropertyNames();
    +        }
    +
    +        return localTableList;
    +    }
    +
    +    /**
    +     * Build top already-registered key.
    +     * 
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     * @return Top already-registered key. (NotNull)
    +     */
    +    protected String buildTopAlreadyRegisteredKey(
    +            Map primaryKeyMap) {
    +        return HierarchyRequestElement.TOP_KEY + ":" + primaryKeyMap;
    +    }
    +
    +    /**
    +     * Do column loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of the
    +     *            type of local entity. (NotNull)
    +     */
    +    protected void doColumnLoop(TopInfo topInfo) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Entity localEntity = topInfo.getLocalEntity();
    +        final List requestElementList = request
    +                .getRequestElementList();
    +
    +        // ============
    +        // Column Loop!
    +        // ============
    +        for (HierarchyRequestElement requestElement : requestElementList) {
    +            final List relationPropertyNameList = requestElement
    +                    .getRelationPropertyNameList();
    +
    +            // If the column belongs to local entity, inject the value to entity
    +            // and continue loop.
    +            if (relationPropertyNameList == null
    +                    || relationPropertyNameList.isEmpty()) {
    +                final HierarchySourceColumn sourceColumn = requestElement
    +                        .getSourceColumnInfo();
    +                final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +                final Object sourceColumnValue = extractColumnValueFromSource(
    +                        sourceRow, sourceColumn);
    +                final ColumnInfo destinationColumnInfo = requestElement
    +                        .getDestinationColumnInfo();
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +                continue;
    +            }
    +
    +            // ==============
    +            // Relation Loop!
    +            // ==============
    +            doRelationLoop(topInfo, requestElement, relationPropertyNameList);
    +        }
    +    }
    +
    +    /**
    +     * Do relation loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param relationPropNameList The list of relation property name that has
    +     *            generics of string. (NotNull)
    +     */
    +    protected void doRelationLoop(TopInfo topInfo,
    +            HierarchyRequestElement requestElement,
    +            java.util.List relationPropNameList) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map alreadyRegisteredEntityMap = topInfo
    +                .getAlreadyRegisteredEntityMap();
    +
    +        // Temporary variables for local
    +        Entity localEntity = topInfo.getLocalEntity();// as Default
    +        DBMeta localDBMeta = request.getDestinationDBMeta();// as Default
    +        String localRelationPath = HierarchyRequestElement.TOP_KEY;// as Default
    +
    +        // ==============
    +        // Relation Loop!
    +        // ==============
    +        final StringBuilder relationPropKeyStringBuilder = new StringBuilder();
    +        int relationLoopCount = 0;
    +        for (String relationPropName : relationPropNameList) {
    +            if (relationPropKeyStringBuilder.length() > 0) {
    +                relationPropKeyStringBuilder.append("_");
    +            }
    +            relationPropKeyStringBuilder.append(relationPropName);
    +            final String targetRelationPath = relationPropKeyStringBuilder
    +                    .toString();
    +            final RelationInfo relationInfo = localDBMeta
    +                    .findRelationInfo(relationPropName);
    +
    +            final Map targetPrimaryKeyMap;
    +            final String alreadyRegisteredEntityKey;
    +            if (!relationInfo.isReferrer()) {
    +                // =======
    +                // Foreign
    +                // =======
    +                final ForeignInfo foreignInfo = localDBMeta
    +                        .findForeignInfo(relationPropName);
    +                final String foreignPropName = foreignInfo
    +                        .getForeignPropertyName();
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    // Initialize the foreign entity and inject it.
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = foreignInfo.getForeignDBMeta()
    +                            .newEntity();
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of foreign.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectForeignPrimaryKey(foreignEntity, targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of local.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectLocalForeignKey(topInfo, localEntity, foreignInfo,
    +                            targetRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put foreign entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), foreignEntity);
    +                } else {
    +                    // - - - - - - - - - - - - - -
    +                    // Inject the foreign entity.
    +                    // - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = alreadyRegisteredEntityMap
    +                            .get(alreadyRegisteredEntityKey);
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +                }
    +            } else {
    +                // =======
    +                // Referrer
    +                // =======
    +                final ReferrerInfo referrerInfo = localDBMeta
    +                        .findReferrerInfo(relationPropName);
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                // Extract referrer list from current local entity and
    +                // initialize it if needs.
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                List referrerList = extractReferrerList(localEntity,
    +                        referrerInfo);
    +                if (referrerList == null) {
    +                    String msg = "The referrer list should not be null: localEntity="
    +                            + localEntity + " referrerInfo=" + referrerInfo;
    +                    throw new IllegalStateException(msg);
    +                }
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    // Initialize referrer entity and register it to the list of
    +                    // referrer with primary key value.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    final Entity referrerEntity = relationInfo
    +                            .getTargetDBMeta().newEntity();
    +                    referrerList.add(referrerEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerPrimaryKey(referrerEntity,
    +                            targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerForeignKey(topInfo, referrerEntity,
    +                            referrerInfo, localRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put referrer entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), referrerEntity);
    +                }
    +            }
    +
    +            // - - - - - - - - - - - - - - - - - -
    +            // Set next value to current element.
    +            // - - - - - - - - - - - - - - - - - -
    +            localEntity = alreadyRegisteredEntityMap
    +                    .get(alreadyRegisteredEntityKey);
    +            localDBMeta = localEntity.getDBMeta();
    +            localRelationPath = targetRelationPath;
    +
    +            if (relationLoopCount == (relationPropNameList.size() - 1)) {// The
    +                // last
    +                // loop
    +                // !
    +                // - - - - - - - - - - - -
    +                // Here is the last loop!
    +                // - - - - - - - - - - - -
    +                doLastLoopInjection(topInfo, requestElement, localEntity,
    +                        targetPrimaryKeyMap);
    +            }
    +            ++relationLoopCount;
    +        }
    +    }
    +
    +    /**
    +     * Is not existing primary key at the relation path?.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param relationPath The path of relation. (NotNull)
    +     * @return Determination.
    +     */
    +    protected boolean isNotExistPrimaryKey(TopInfo topInfo,
    +            String relationPath) {
    +        final Map primaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, relationPath);
    +        final Set keySet = primaryKeyMap.keySet();
    +        for (String key : keySet) {
    +            final Object value = primaryKeyMap.get(key);
    +            if (value == null) {
    +                return true;
    +            }
    +        }
    +        return false;
    +    }
    +
    +    /**
    +     * Do last loop injection.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param localEntity The interface of local entity. (NotNull)
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     */
    +    protected void doLastLoopInjection(TopInfo topInfo,
    +            HierarchyRequestElement requestElement, Entity localEntity,
    +            Map primaryKeyMap) {
    +        final ColumnInfo destinationColumnInfo = requestElement
    +                .getDestinationColumnInfo();
    +        if (!primaryKeyMap.containsKey(destinationColumnInfo.getColumnDbName())) {// The
    +            // column
    +            // is
    +            // primary
    +            // key
    +            // !
    +            final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +            final HierarchySourceColumn sourceColumnInfo = requestElement
    +                    .getSourceColumnInfo();
    +            final Object sourceColumnValue = extractColumnValueFromSource(
    +                    sourceRow, sourceColumnInfo);
    +            if (sourceColumnValue != null) {
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +            }
    +        }
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Extract Logic
    +    // =============
    +    protected Map extractTopPrimaryKeyMapFromSource(
    +            TopInfo topInfo) {
    +        return extractPrimaryKeyMapFromSource(topInfo,
    +                HierarchyRequestElement.TOP_KEY);
    +    }
    +
    +    protected Map extractPrimaryKeyMapFromSource(
    +            TopInfo topInfo, String relationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +        final java.util.List primaryKeyElement = request
    +                .findPrimaryKeyElement(relationPath);
    +        final java.util.Map primaryKeyMap = new java.util.LinkedHashMap();
    +        for (HierarchyRequestElement element : primaryKeyElement) {
    +            final HierarchySourceColumn sourcePrimaryKey = element
    +                    .getSourceColumnInfo();
    +            final Object sourcePrimaryKeyValue = extractColumnValueFromSource(
    +                    sourceRow, sourcePrimaryKey);
    +            primaryKeyMap.put(element.getDestinationColumnInfo()
    +                    .getColumnDbName(), sourcePrimaryKeyValue);
    +        }
    +        return primaryKeyMap;
    +    }
    +
    +    protected Object extractColumnValueFromSource(HierarchySourceRow sourceRow,
    +            HierarchySourceColumn sourceColumn) {
    +        return sourceRow.extractColumnValue(sourceColumn);
    +    }
    +
    +    @SuppressWarnings("unchecked")
    +    protected java.util.List extractReferrerList(Entity entity,
    +            ReferrerInfo referrerInfo) {
    +        return (java.util.List) invoke(referrerInfo.findGetter(),
    +                entity, new Object[] {});
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Inject Logic
    +    // ============
    +    /**
    +     * @param entity Entity. (NotNull)
    +     * @param columnInfo Column info. (NotNull)
    +     * @param columnValue Column value. (NotNull)
    +     */
    +    protected void injectColumnValueToDestinationIfNotNull(Entity entity,
    +            ColumnInfo columnInfo, final Object columnValue) {
    +        if (columnValue != null) {
    +            injectColumnValueToDestination(entity,
    +                    columnInfo.getColumnDbName(), columnValue);
    +        }
    +    }
    +
    +    protected void injectColumnValueToDestination(Entity entity,
    +            String columnDbName, final Object columnValue) {
    +        if (columnValue == null) {
    +            String msg = "The argument[columnValue] should not be null: ";
    +            msg = msg + " table=" + entity.getTableDbName() + " column="
    +                    + columnDbName;
    +            throw new IllegalStateException(msg);
    +        }
    +        invoke(entity.getDBMeta().findColumnInfo(columnDbName).findSetter(),
    +                entity, new Object[] { columnValue });
    +    }
    +
    +    protected void injectColumnValueMapToDestination(Entity entity,
    +            final Map columnValueMap) {
    +        final Set columnNameSet = columnValueMap.keySet();
    +        for (String columnName : columnNameSet) {
    +            final Object columnValue = columnValueMap.get(columnName);
    +            injectColumnValueToDestination(entity, columnName, columnValue);
    +        }
    +    }
    +
    +    protected void injectForeignEntity(Entity entity, String foreignPropName,
    +            Entity foreignEntity) {
    +        final String capPropReferrerName = initCap(foreignPropName);
    +        final Method method = findMethod(entity.getClass(), "set"
    +                + capPropReferrerName, new Class[] { foreignEntity.getDBMeta()
    +                .getEntityType() });
    +        invoke(method, entity, new Object[] { foreignEntity });
    +    }
    +
    +    protected void injectReferrerList(Entity entity, ReferrerInfo referrerInfo,
    +            java.util.List referrerList) {
    +        invoke(referrerInfo.findSetter(), entity, new Object[] { referrerList });
    +    }
    +
    +    protected void injectForeignPrimaryKey(Entity foreignEntity,
    +            Map foreigPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(foreignEntity, foreigPrimaryKeyMap);
    +    }
    +
    +    protected void injectReferrerPrimaryKey(Entity referrerEntity,
    +            Map referrerPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(referrerEntity, referrerPrimaryKeyMap);
    +    }
    +
    +    protected void injectLocalForeignKey(TopInfo topInfo,
    +            Entity localEntity, ForeignInfo foreignInfo,
    +            String foreignRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map foreignPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, foreignRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(foreignRelationPath);
    +        final Map localForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement foreignElement : primaryKeyElementList) {
    +            final String foreignPrimaryKeyColumnName = foreignElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo localForeignKeyInfo = foreignInfo
    +                    .findLocalByForeign(foreignPrimaryKeyColumnName);
    +            final Object localForeignKeyValue = foreignPrimaryKeyMap
    +                    .get(foreignPrimaryKeyColumnName);
    +            localForeignKeyMap.put(localForeignKeyInfo.getColumnDbName(),
    +                    localForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(localEntity, localForeignKeyMap);
    +    }
    +
    +    protected void injectReferrerForeignKey(TopInfo topInfo,
    +            Entity referrerEntity, ReferrerInfo referrerInfo,
    +            String localRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map localPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, localRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(localRelationPath);
    +        final Map referrerForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement localElement : primaryKeyElementList) {
    +            final String localPrimaryKeyName = localElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo referrerForeignKeyInfo = referrerInfo
    +                    .findReferrerByLocal(localPrimaryKeyName);
    +            final Object referrerForeignKeyValue = localPrimaryKeyMap
    +                    .get(localPrimaryKeyName);
    +            referrerForeignKeyMap.put(referrerForeignKeyInfo.getColumnDbName(),
    +                    referrerForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(referrerEntity, referrerForeignKeyMap);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Other Logic
    +    // ===========
    +    @SuppressWarnings("unchecked")
    +    protected LOCAL_ENTITY newLocalEntity(final DBMeta destinationDBMeta) {
    +        final LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = (LOCAL_ENTITY) destinationDBMeta.getEntityType()
    +                    .newInstance();
    +        } catch (InstantiationException e) {
    +            throw new IllegalStateException(e);
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        }
    +        return localEntity;
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Helper
    +    // ======
    +    protected String initCap(final String name) {
    +        final String capPropReferrerName = name.substring(0, 1).toUpperCase()
    +                + name.substring(1);
    +        return capPropReferrerName;
    +    }
    +
    +    private java.lang.reflect.Method findMethod(Class clazz, String methodName,
    +            Class[] argTypes) {
    +        try {
    +            return clazz.getMethod(methodName, argTypes);
    +        } catch (NoSuchMethodException ex) {
    +            String msg = "class=" + clazz + " method=" + methodName + "-"
    +                    + java.util.Arrays.asList(argTypes);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private Object invoke(java.lang.reflect.Method method, Object target,
    +            Object[] args) {
    +        try {
    +            return method.invoke(target, args);
    +        } catch (RuntimeException e) {
    +            final String lineSeparator = System.getProperty("line.separator");
    +            final Class[] parameterTypes = method.getParameterTypes();
    +            String msg = "Invoking method threw the exception:" + lineSeparator;
    +            msg = msg
    +                    + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * *"
    +                    + lineSeparator;
    +            msg = msg + "[" + method.getDeclaringClass().getSimpleName() + "."
    +                    + method.getName() + "()]" + lineSeparator;
    +            msg = msg + " methodArgTypes     = {"
    +                    + createTypeViewFromTypeArray(parameterTypes) + "}"
    +                    + lineSeparator;
    +            msg = msg + " specifiedArgValues = {"
    +                    + createValueViewFromValueArray(args) + "}" + lineSeparator;
    +            msg = msg + " specifiedArgTypes  = {"
    +                    + createTypeViewFromValueArray(args) + "}" + lineSeparator;
    +            if (parameterTypes.length > 0 && args.length > 0 && args[0] != null
    +                    && !parameterTypes[0].equals(args[0].getClass())) {
    +                msg = msg + " " + lineSeparator;
    +                final String compareString = "{" + parameterTypes[0] + " -- "
    +                        + args[0].getClass() + "}";
    +                msg = msg + " *Warning! The argType is ummatched: "
    +                        + compareString + lineSeparator;
    +            }
    +            msg = msg + "* * * * * * * * * */" + lineSeparator;
    +            throw new RuntimeException(msg, e);
    +        } catch (java.lang.reflect.InvocationTargetException ex) {
    +            Throwable t = ex.getCause();
    +            if (t instanceof RuntimeException) {
    +                throw (RuntimeException) t;
    +            }
    +            if (t instanceof Error) {
    +                throw (Error) t;
    +            }
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        } catch (IllegalAccessException ex) {
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private String createValueViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(value);
    +            } else {
    +                sb.append(", ").append(value);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            final String typeName = value != null ? value.getClass()
    +                    .getSimpleName() : "null";
    +            if (sb.length() == 0) {
    +                sb.append(typeName);
    +            } else {
    +                sb.append(", ").append(typeName);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromTypeArray(Class[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Class type = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(type.getSimpleName());
    +            } else {
    +                sb.append(", ").append(type.getSimpleName());
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Info Class
    +    // ==========
    +    protected static class TopInfo {
    +        private HierarchyRequest hierarchyRequest;
    +
    +        private HierarchySourceRow sourceRow;
    +
    +        private Entity localEntity;
    +
    +        private Map alreadyRegisteredEntityMap;
    +
    +        public HierarchySourceRow getSourceRow() {
    +            return sourceRow;
    +        }
    +
    +        public void setSourceRow(HierarchySourceRow sourceRow) {
    +            this.sourceRow = sourceRow;
    +        }
    +
    +        public Entity getLocalEntity() {
    +            return localEntity;
    +        }
    +
    +        public void setLocalEntity(Entity localEntity) {
    +            this.localEntity = localEntity;
    +        }
    +
    +        public Map getAlreadyRegisteredEntityMap() {
    +            return alreadyRegisteredEntityMap;
    +        }
    +
    +        public void setAlreadyRegisteredEntityMap(
    +                Map alreadyRegisteredEntityMap) {
    +            this.alreadyRegisteredEntityMap = alreadyRegisteredEntityMap;
    +        }
    +
    +        public HierarchyRequest getHierarchyRequest() {
    +            return hierarchyRequest;
    +        }
    +
    +        public void setHierarchyRequest(
    +                HierarchyRequest hierarchyRequest) {
    +            this.hierarchyRequest = hierarchyRequest;
    +        }
    +    }
    +}
    
    Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ===================================================================
    --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	                        (rev 0)
    +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	2008-11-10 11:23:25 UTC (rev 1322)
    @@ -0,0 +1,94 @@
    +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy;
    +
    +import jp.sf.pal.todolist.db.allcommon.Entity;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo;
    +
    +/**
    + * The basic request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + * @param  The type of local relation trace.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyBasicRequest
    +        extends HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    protected ColumnInfo _currentSourceColumnInfo;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyBasicRequest(Class localEntityType) {
    +        super(localEntityType);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Set up source.
    +     * 
    +     * @param sourceColumnInfo The column info of source. (NotNull)
    +     * @return Destination relation trace. (NotNull)
    +     */
    +    public DestinationRelationTrace src(
    +            ColumnInfo sourceColumnInfo) {
    +        this._currentSourceColumnInfo = sourceColumnInfo;
    +        final HierarchyBasicRequest outer = this;
    +        return new DestinationRelationTrace() {
    +            public LOCAL_RELATION_TRACE dst() {
    +                return outer.dst();
    +            }
    +        };
    +    }
    +
    +    /**
    +     * Set up destination.
    +     * 
    +     * @return Local relation trace. (NotNull)
    +     */
    +    public LOCAL_RELATION_TRACE dst() {
    +        final DBMeta.RelationTraceFixHandler handler = new DBMeta.RelationTraceFixHandler() {
    +            public void handleFixedTrace(DBMeta.RelationTrace relationTrace) {
    +                mapping(_currentSourceColumnInfo, relationTrace);
    +            }
    +        };
    +        final Object target = destinationDBMeta;
    +        java.lang.reflect.Method method = null;
    +        try {
    +            method = target.getClass().getMethod("createRelationTrace",
    +                    new Class[] { DBMeta.RelationTraceFixHandler.class });
    +        } catch (NoSuchMethodException e) {
    +            String msg = "Not found method: method=createRelationTrace(DBMeta.RelationTraceFixHandler)";
    +            throw new IllegalStateException(msg, e);
    +        }
    +        try {
    +            return (LOCAL_RELATION_TRACE) method.invoke(target,
    +                    new Object[] { handler });
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        } catch (java.lang.reflect.InvocationTargetException e) {
    +            throw new IllegalStateException(e.getCause());
    +        }
    +    }
    +
    +    public static interface DestinationRelationTrace {
    +        public LOCAL_RELATION_TRACE dst();
    +    }
    +}
    
    
    Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ___________________________________________________________________
    Name: svn:eol-style
       + native
    
    Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java
    ===================================================================
    --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	                        (rev 0)
    +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	2008-11-10 11:23:25 UTC (rev 1322)
    @@ -0,0 +1,347 @@
    +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import jp.sf.pal.todolist.db.allcommon.Entity;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityColumn;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityListIterator;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo;
    +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.RelationInfo;
    +
    +/**
    + * The request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    /** The dbmeta of desination. */
    +    protected DBMeta destinationDBMeta;
    +
    +    /** The iterator of hierarychy source. */
    +    protected HierarchySourceIterator sourceIterator;
    +
    +    /** The list of request element. */
    +    protected List requestElementList = new ArrayList();
    +
    +    /** The set of already registered source column info for check. */
    +    protected java.util.Set alreadyRegisteredSourceColumnInfoSet4Check = new java.util.HashSet();
    +
    +    /** First source column info for check. */
    +    protected ColumnInfo firstSourceColumnInfo4Check;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyRequest(Class localEntityType) {
    +        LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = localEntityType.newInstance();
    +        } catch (InstantiationException e) {
    +            String msg = "localEntityType.newInstance() threw the InstantiationException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        } catch (IllegalAccessException e) {
    +            String msg = "localEntityType.newInstance() threw the IllegalAccessException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        }
    +        destinationDBMeta = localEntity.getDBMeta();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Register the list of source. 
    This method uses the default source + * iterator. + * + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + */ + public void registerSourceList(java.util.List sourceList) { + sourceIterator = createDefaultSourceIterator(sourceList); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumn The column of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumn, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(ColumnInfo sourceColumnInfo, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumnInfo, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + // ----------------------------------------------------- + // internal + // ------- + /** + * Set up element. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Set up element.
    This method uses the default source column. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(ColumnInfo sourceColumnInfo, + ColumnInfo destinationColumnInfo) { + if (alreadyRegisteredSourceColumnInfoSet4Check + .contains(sourceColumnInfo)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The source column has already been registered:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + " sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + " registeredColumnInfo=" + + alreadyRegisteredSourceColumnInfoSet4Check + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + alreadyRegisteredSourceColumnInfoSet4Check.add(sourceColumnInfo); + assertSameSourceDBMeta(sourceColumnInfo); + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + final HierarchySourceColumn sourceColumn = createDefaultSourceColumn(sourceColumnInfo); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Make relatetion by the list of relation info. + * + * @param relationInfoList The list of relation info. (NotNull) + */ + protected void addRelationToLastElement(List relationInfoList) { + if (requestElementList.isEmpty()) { + String msg = "You shuold invoke mapping() before invoking relation()!"; + throw new IllegalStateException(msg); + } + for (RelationInfo relationInfo : relationInfoList) { + final int lastIndex = requestElementList.size() - 1; + final HierarchyRequestElement element = (HierarchyRequestElement) requestElementList + .get(lastIndex); + element.relation(relationInfo); + } + } + + /** + * Assert same source dbmeta. + * + * @param sourceColumnInfo The column info of source. (NotNull) + */ + protected void assertSameSourceDBMeta(ColumnInfo sourceColumnInfo) { + if (firstSourceColumnInfo4Check == null) { + firstSourceColumnInfo4Check = sourceColumnInfo; + return; + } + final DBMeta expectedDBMeta = firstSourceColumnInfo4Check.getDBMeta(); + final DBMeta actualDBMeta = sourceColumnInfo.getDBMeta(); + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The dbmeta of sourceColumnInfo is difference from"; + msg = msg + " the one of Your First Source Column Info:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + "firstSourceColumnInfo4Check=" + + firstSourceColumnInfo4Check + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Assert same source dbmeta. + * + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void assertSameLocalDestinationDBMeta( + ColumnInfo destinationColumnInfo) { + if (!requestElementList.isEmpty()) { + final HierarchyRequestElement currentElement = currentElement(); + final List relationInfoList = currentElement + .getRelationInfoList(); + if (relationInfoList.isEmpty()) { + final DBMeta actualDBMeta = currentElement() + .getDestinationDBMeta(); + final DBMeta expectedDBMeta = destinationDBMeta; + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong destinationColumnInfo!" + + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The dbmeta of destinationColumnInfo is difference from"; + msg = msg + " the one of Your Local Entity:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "destinationColumnInfo=" + + currentElement.getDestinationColumnInfo() + + getLineSeparator(); + msg = msg + "localEntity=" + + destinationDBMeta.getEntityTypeName() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + } + } + + /** + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + * @return Default source iterator. (NotNull) + */ + protected HierarchySourceIterator createDefaultSourceIterator( + java.util.List sourceList) { + return new HierarchySourceEntityListIterator(sourceList); + } + + /** + * @param sourceColumnInfo The column info of source. (NotNull) + * @return Default source column. (NotNull) + */ + protected HierarchySourceColumn createDefaultSourceColumn( + ColumnInfo sourceColumnInfo) { + return new HierarchySourceEntityColumn(sourceColumnInfo); + } + + /** + * Get current element. + * + * @return Current element. (NotNull) + */ + protected HierarchyRequestElement currentElement() { + final int lastIndex = requestElementList.size() - 1; + return (HierarchyRequestElement) requestElementList.get(lastIndex); + } + + // ----------------------------------------------------- + // Internal + // -------- + /** + * @param relationPropertyKey Relation Property key. (NotNull) + * @return The list of request element. (NotNull) + */ + public List findPrimaryKeyElement( + String relationPropertyKey) { + final List resultList = new ArrayList(); + for (HierarchyRequestElement element : requestElementList) { + if (!relationPropertyKey.equals(element.getRelationPropertyKey())) { + continue; + } + final ColumnInfo destinationColumnInfo = element + .getDestinationColumnInfo(); + if (!destinationColumnInfo.isPrimary()) { + continue; + } + resultList.add(element); + } + if (resultList.isEmpty()) { + String msg = "Not found primary key element by relationPropertyKey in requestElementList: "; + msg = msg + " relationPropertyKey=" + relationPropertyKey + + " requestElementList=" + requestElementList; + throw new IllegalStateException(msg); + } + return resultList; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public List getRequestElementList() { + return requestElementList; + } + + public void addRequestElementList(HierarchyRequestElement element) { + this.requestElementList.add(element); + } + + public HierarchySourceIterator getSourceIterator() { + return sourceIterator; + } + + public void setSourceIterator(HierarchySourceIterator sourceIterator) { + this.sourceIterator = sourceIterator; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,132 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.RelationInfo; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class HierarchyRequestElement { + + //========================================================================== + // ========= + // Definition + // ========== + /** Top key. */ + public static final String TOP_KEY = "$top$"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** The column of source. */ + protected HierarchySourceColumn sourceColumn; + + /** The dbmeta of destination. */ + protected DBMeta destinationDBMeta; + + /** The column info of destination. */ + protected ColumnInfo destinationColumnInfo; + + /** The list of relation info. */ + protected java.util.List relationInfoList = new java.util.ArrayList(); + + /** the list of relation property name. */ + protected java.util.List relationPropertyNameList = new java.util.ArrayList(); + + /** Relation property key. Default value is TOP_KEY. */ + protected String relationPropertyKey = TOP_KEY; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + // ----------------------------------------------------- + // Internal + // -------- + /** + * Make mapping between the source column and the destination one. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + this.sourceColumn = sourceColumn; + this.destinationColumnInfo = destinationColumnInfo; + } + + /** + * Make relatetion by relation info. + * + * @param relationInfo Relation info. (NotNull) + */ + public void relation(RelationInfo relationInfo) { + addRelationInfoList(relationInfo); + } + + protected void addRelationInfoList(RelationInfo relationInfo) { + relationInfoList.add(relationInfo); + addRelationPropertyNameList(relationInfo.getRelationPropertyName()); + } + + protected void addRelationPropertyNameList(String relationPropertyName) { + relationPropertyNameList.add(relationPropertyName); + setupRelationPropertyKey(); + } + + protected void setupRelationPropertyKey() { + final StringBuilder sb = new StringBuilder(); + for (String relationPropertyName : relationPropertyNameList) { + if (sb.length() > 0) { + sb.append("_"); + } + sb.append(relationPropertyName); + } + this.relationPropertyKey = sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public HierarchySourceColumn getSourceColumnInfo() { + return sourceColumn; + } + + public void setSourceColumnInfo(HierarchySourceColumn sourceColumn) { + this.sourceColumn = sourceColumn; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public ColumnInfo getDestinationColumnInfo() { + return destinationColumnInfo; + } + + public java.util.List getRelationInfoList() { + return relationInfoList; + } + + public List getRelationPropertyNameList() { + return relationPropertyNameList; + } + + public String getRelationPropertyKey() { + return relationPropertyKey; + } + + public String toString() { + return sourceColumn + "," + destinationColumnInfo; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,10 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceColumn { + + public String getColumnName(); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceIterator { + + public boolean hasNext(); + + public HierarchySourceRow next(); + + public HierarchySourceRow current(); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,10 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceRow { + + public Object extractColumnValue(HierarchySourceColumn columnInfo); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,24 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityColumn implements HierarchySourceColumn { + + protected ColumnInfo columnInfo; + + public HierarchySourceEntityColumn(ColumnInfo columnInfo) { + this.columnInfo = columnInfo; + } + + public String getColumnName() { + return columnInfo.getColumnDbName(); + } + + public java.lang.reflect.Method findGetter() { + return columnInfo.findGetter(); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,24 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceEntityListIterator extends + HierarchySourceListIterator { + + /** + * Constructor. + * + * @param sourceRowList The list of source row. (NotNull) + */ + public HierarchySourceEntityListIterator( + java.util.List sourceRowList) { + super(sourceRowList, new HierarchySourceRowSetupper() { + public jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source) { + return new HierarchySourceEntityRow(source); + } + }); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,48 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityRow implements + jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow { + + protected Object sourceBean; + + public HierarchySourceEntityRow(Object sourceBean) { + this.sourceBean = sourceBean; + } + + public Object extractColumnValue( + jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn columnInfo) { + if (!(columnInfo instanceof HierarchySourceEntityColumn)) { + String msg = "The column info should be HierarchySourceEntityColumn! but: " + + columnInfo; + throw new IllegalStateException(msg); + } + final HierarchySourceEntityColumn sourceEntityColumn = (HierarchySourceEntityColumn) columnInfo; + return invoke(sourceEntityColumn.findGetter(), sourceBean, + new Object[] {}); + } + + private Object invoke(java.lang.reflect.Method method, Object target, + Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,40 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceListIterator + implements + jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceIterator { + + protected java.util.List sourceRowList; + + protected HierarchySourceRowSetupper sourceRowSetupper; + + protected java.util.Iterator sourceBeanListIterator; + + protected jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow currentSourceEntity; + + public HierarchySourceListIterator( + java.util.List sourceRowList, + HierarchySourceRowSetupper sourceRowSetupper) { + this.sourceRowList = sourceRowList; + this.sourceRowSetupper = sourceRowSetupper; + this.sourceBeanListIterator = sourceRowList.iterator(); + } + + public boolean hasNext() { + return this.sourceBeanListIterator.hasNext(); + } + + public jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow next() { + this.currentSourceEntity = this.sourceRowSetupper + .setup(this.sourceBeanListIterator.next()); + return this.currentSourceEntity; + } + + public jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow current() { + return this.currentSourceEntity; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,11 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public interface HierarchySourceRowSetupper { + + public jp.sf.pal.todolist.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ColumnInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ColumnInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ColumnInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,217 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.info; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta.OptimisticLockType; + +/** + * The information of column. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ColumnInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected String columnDbName; + + protected String propertyName; + + protected Class propertyType; + + protected boolean primary; + + protected Integer columnSize; + + protected Integer columnDecimalDigits; + + protected OptimisticLockType optimisticLockType; + + //========================================================================== + // ========= + // Constructor + // =========== + public ColumnInfo(DBMeta dbmeta, String columnDbName) { + this(dbmeta, columnDbName, null, null, false, null, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, columnDecimalDigits, OptimisticLockType.NONE); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) { + this.dbmeta = dbmeta; + this.columnDbName = columnDbName; + this.propertyName = propertyName; + this.propertyType = propertyType; + this.primary = primary; + this.columnSize = columnSize; + this.columnDecimalDigits = columnDecimalDigits; + this.optimisticLockType = optimisticLockType; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.propertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(dbmeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { this.propertyType }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(dbmeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public boolean isOptimisticLock() { + return isVersionNo() || isUpdateDate(); + } + + public boolean isVersionNo() { + return OptimisticLockType.VERSION_NO == optimisticLockType; + } + + public boolean isUpdateDate() { + return OptimisticLockType.UPDATE_DATE == optimisticLockType; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + public int hashCode() { + return dbmeta.hashCode() + columnDbName.hashCode(); + } + + public boolean equals(Object obj) { + if (!(obj instanceof ColumnInfo)) { + return false; + } + final ColumnInfo target = (ColumnInfo) obj; + if (this.dbmeta == null || target.getDBMeta() == null) { + return false; + } + if (!this.dbmeta.equals(target.getDBMeta())) { + return false; + } + if (this.columnDbName == null || target.getColumnDbName() == null) { + return false; + } + if (!this.columnDbName.equals(target.getColumnDbName())) { + return false; + } + return true; + } + + public String toString() { + return dbmeta.getTableDbName() + "." + columnDbName; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public String getColumnDbName() { + return this.columnDbName; + } + + public void setColumnDbName(String columnDbName) { + this.columnDbName = columnDbName; + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public Class getPropertyType() { + return this.propertyType; + } + + public void setPropertyType(Class propertyType) { + this.propertyType = propertyType; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } + + public Integer getColumnSize() { + return this.columnSize; + } + + public void setColumnSize(Integer columnSize) { + this.columnSize = columnSize; + } + + public Integer getColumnDecimalDigits() { + return this.columnDecimalDigits; + } + + public void setColumnDecimalDigits(Integer columnDecimalDigits) { + this.columnDecimalDigits = columnDecimalDigits; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ColumnInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ForeignInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ForeignInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ForeignInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,175 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.info; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of foreign information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ForeignInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String foreignPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta foreignDBMeta; + + protected java.util.Map localForeignColumnInfoMap; + + protected java.util.Map foreignLocalColumnInfoMap; + + protected int relationNo; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByForeign(String foreignColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(foreignDBMeta, + foreignColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) foreignLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:"; + msg = msg + " foreignColumnDbName=" + foreignColumnDbName + + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.foreignPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getForeignPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getForeignDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalForeignColumnInfoMap(); + } + + public boolean isReferrer() { + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getForeignPropertyName() { + return foreignPropertyName; + } + + public void setForeignPropertyName(String foreignPropertyName) { + this.foreignPropertyName = foreignPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getForeignDBMeta() { + return foreignDBMeta; + } + + public void setForeignDBMeta(DBMeta foreignDBMeta) { + this.foreignDBMeta = foreignDBMeta; + } + + public java.util.Map getLocalForeignColumnInfoMap() { + return localForeignColumnInfoMap; + } + + public void setLocalForeignColumnInfoMap( + java.util.Map localForeignColumnInfoMap) { + this.localForeignColumnInfoMap = localForeignColumnInfoMap; + final java.util.Set keySet = localForeignColumnInfoMap.keySet(); + foreignLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localForeignColumnInfoMap + .get(key); + foreignLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getForeignLocalColumnInfoMap() { + return foreignLocalColumnInfoMap; + } + + public int getRelationNo() { + return relationNo; + } + + public void setRelationNo(int relationNo) { + this.relationNo = relationNo; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ForeignInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ReferrerInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ReferrerInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ReferrerInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,181 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.info; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referrer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ReferrerInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String referrerPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta referrerDBMeta; + + protected java.util.Map localReferrerColumnInfoMap; + + protected java.util.Map referrerLocalColumnInfoMap; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByReferrer(String referrerColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(referrerDBMeta, + referrerColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) referrerLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:"; + msg = msg + " referrerColumnDbName=" + referrerColumnDbName + + " referrerLocalColumnInfoMap=" + + referrerLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + public ColumnInfo findReferrerByLocal(String localColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(localDBMeta, + localColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) localReferrerColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:"; + msg = msg + " localColumnDbName=" + localColumnDbName + + " localReferrerColumnInfoMap=" + + localReferrerColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.referrerPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getReferrerPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getReferrerDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalReferrerColumnInfoMap(); + } + + public boolean isReferrer() { + return true; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getReferrerPropertyName() { + return referrerPropertyName; + } + + public void setReferrerPropertyName(String referrerPropertyName) { + this.referrerPropertyName = referrerPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getReferrerDBMeta() { + return referrerDBMeta; + } + + public void setReferrerDBMeta(DBMeta referrerDBMeta) { + this.referrerDBMeta = referrerDBMeta; + } + + public java.util.Map getLocalReferrerColumnInfoMap() { + return localReferrerColumnInfoMap; + } + + public void setLocalReferrerColumnInfoMap( + java.util.Map localReferrerColumnInfoMap) { + this.localReferrerColumnInfoMap = localReferrerColumnInfoMap; + final java.util.Set keySet = localReferrerColumnInfoMap.keySet(); + referrerLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localReferrerColumnInfoMap + .get(key); + referrerLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getReferrerLocalColumnInfoMap() { + return referrerLocalColumnInfoMap; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/ReferrerInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/RelationInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/RelationInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/RelationInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,24 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.info; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RelationInfo { + + public String getRelationPropertyName(); + + public DBMeta getLocalDBMeta(); + + public DBMeta getTargetDBMeta(); + + public java.util.Map getLocalTargetColumnInfoMap(); + + public boolean isOneToOne(); + + public boolean isReferrer(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/RelationInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/UniqueInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/UniqueInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/UniqueInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,77 @@ +package jp.sf.pal.todolist.db.allcommon.dbmeta.info; + +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +/** + * The class of unique info. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UniqueInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected java.util.List uniqueColumnList = new java.util.ArrayList(); + + protected boolean primary; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public boolean containsColumn(String columnName) { + for (final java.util.Iterator ite = uniqueColumnList.iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (columnInfo.getColumnDbName().equals(columnName)) { + return true; + } + } + return false; + } + + public boolean containsColumn(ColumnInfo column) { + return containsColumn(column.getColumnDbName()); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public java.util.List getUniqueColumnList() { + return uniqueColumnList; + } + + public void addUniqueColumnList(ColumnInfo uniqueColumn) { + this.uniqueColumnList.add(uniqueColumn); + } + + public ColumnInfo getFirstColumn() { + return (ColumnInfo) this.uniqueColumnList.get(0); + } + + public boolean isTwoOrMore() { + return this.uniqueColumnList.size() > 1; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/dbmeta/info/UniqueInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the entity has already been updated by other thread in + * batch update. + * + * @author DBFlute(AutoGenerator) + */ +public class BatchEntityAlreadyUpdatedException extends + EntityAlreadyUpdatedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected Integer _batchUpdateCount; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows(Update count per One entity). + * @param batchUpdateCount Batch update count(Total). + */ + public BatchEntityAlreadyUpdatedException(Object bean, int rows, + Integer batchUpdateCount) { + super(bean, rows); + _batchUpdateCount = batchUpdateCount; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Integer getBatchUpdateCount() { + return _batchUpdateCount; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,34 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the property on bind variable comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public BindVariableCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableParameterNullValueException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableParameterNullValueException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableParameterNullValueException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the value of bind variable is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/BindVariableParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/DangerousResultSizeException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/DangerousResultSizeException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/DangerousResultSizeException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,36 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the result size is dangerous. + * + * @author DBFlute(AutoGenerator) + */ +public class DangerousResultSizeException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** + * Constructor. + * + * @param msg Exception message. + * @param safetyMaxResultSize Safety max result size. + * @param selectedCount Selected count. + */ + public DangerousResultSizeException(String msg, int safetyMaxResultSize) { + super(msg); + this._safetyMaxResultSize = safetyMaxResultSize; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/DangerousResultSizeException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,34 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the property on embedded value comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the value of embedded value is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EmbeddedValueParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EndCommentNotFoundException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EndCommentNotFoundException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EndCommentNotFoundException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the end comment is not found about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EndCommentNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EndCommentNotFoundException(String msg) { + super(msg); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EndCommentNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyDeletedException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyDeletedException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyDeletedException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,22 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the entity has already been deleted by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyDeletedException extends + RecordHasAlreadyBeenDeletedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityAlreadyDeletedException(String msg) { + super(msg); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyExistsException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyExistsException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyExistsException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,25 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the entity already exists on the database. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyExistsException extends SQLFailureException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public EntityAlreadyExistsException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyExistsException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyUpdatedException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyUpdatedException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyUpdatedException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,38 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; + +/** + * The exception of when the entity has already been updated by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyUpdatedException extends + NotSingleRowUpdatedRuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows. + */ + public EntityAlreadyUpdatedException(Object bean, int rows) { + super(bean, rows); + } + + /** + * Constructor. + * + * @param e NotSingleRowUpdatedRuntimeException. (NotNull) + */ + public EntityAlreadyUpdatedException(NotSingleRowUpdatedRuntimeException e) { + super(e.getBean(), e.getRows()); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityDuplicatedException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityDuplicatedException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityDuplicatedException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,31 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the entity has been duplicated. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityDuplicatedException extends RecordHasOverlappedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityDuplicatedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public EntityDuplicatedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/EntityDuplicatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentConditionNotFoundException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentConditionNotFoundException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentConditionNotFoundException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,23 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the condition of IF comment is not found about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentConditionNotFoundException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentConditionNotFoundException(String msg) { + super(msg); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentConditionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentNotBooleanResultException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentNotBooleanResultException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentNotBooleanResultException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,33 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the result of IF comment is not boolean about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentNotBooleanResultException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentNotBooleanResultException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentNotBooleanResultException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentNotBooleanResultException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentWrongExpressionException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentWrongExpressionException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentWrongExpressionException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,31 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the IF comment has a wrong expression about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentWrongExpressionException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentWrongExpressionException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentWrongExpressionException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/IfCommentWrongExpressionException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/OutsideSqlNotFoundException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/OutsideSqlNotFoundException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/OutsideSqlNotFoundException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,31 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the outside-sql is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public OutsideSqlNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public OutsideSqlNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/OutsideSqlNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,22 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception when the record has already been deleted (by other thread).
    This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasAlreadyBeenDeletedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasAlreadyBeenDeletedException(String msg) { + super(msg); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasOverlappedException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasOverlappedException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasOverlappedException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,31 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception when the record has overlapped. This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasOverlappedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasOverlappedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RecordHasOverlappedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RecordHasOverlappedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RequiredOptionNotFoundException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RequiredOptionNotFoundException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RequiredOptionNotFoundException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,31 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +/** + * The exception of when the required option is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class RequiredOptionNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RequiredOptionNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RequiredOptionNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/RequiredOptionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/SQLFailureException.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/SQLFailureException.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/SQLFailureException.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,31 @@ +package jp.sf.pal.todolist.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the SQL failed to execute. + * + * @author DBFlute(AutoGenerator) + */ +public class SQLFailureException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + protected SQLException sqlEx; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public SQLFailureException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } + + public SQLException getSQLException() { + return sqlEx; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/exception/SQLFailureException.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListString.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListString.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListString.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,105 @@ +package jp.sf.pal.todolist.db.allcommon.helper; + +import java.util.List; +import java.util.Map; + +/** + * MapList-String. + *

    + * + *

    + * # Interface that offers generation of map and list from the following character strings (map list string). 
    + * # 
    + * #   ex) map:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #   ex) list:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public interface MapListString { + + /** Default of map-mark. */ + public static final String DEFAULT_MAP_MARK = "map:"; + + /** Default of list-mark. */ + public static final String DEFAULT_LIST_MARK = "list:"; + + /** Default of start-brace. */ + public static final String DEFAULT_START_BRACE = "{"; + + /** Default of end-brace. */ + public static final String DEFAULT_END_BRACE = "}"; + + /** Default of delimter. */ + public static final String DEFAULT_DELIMITER = ";"; + + /** Default of equal. */ + public static final String DEFAULT_EQUAL = "="; + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map-mark. (NotNull) + */ + public void setMapMark(String mapMark); + + /** + * Set list-mark. + * + * @param listMark List-mark. (NotNull) + */ + public void setListMark(String listMark); + + /** + * Set start brace. + * + * @param startBrace Start brace. (NotNull) + */ + public void setStartBrace(String startBrace); + + /** + * Set end brace. + * + * @param endBrace End brace. (NotNull) + */ + public void setEndBrace(String endBrace); + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public void setDelimiter(String delimiter); + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal); + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public Map generateMap(String mapString); + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public List generateList(String listString); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListString.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListStringImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListStringImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListStringImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1079 @@ +package jp.sf.pal.todolist.db.allcommon.helper; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * The implementation of MapList-String. + * + * @author DBFlute(AutoGenerator) + */ +public class MapListStringImpl implements MapListString { + + /** Line separator. */ + public static final String NEW_LINE = System.getProperty("line.separator"); + + /** Map-mark. */ + protected String _mapMark; + + /** List-mark. */ + protected String _listMark; + + /** Start-brace. */ + protected String _startBrace; + + /** End-brace. */ + protected String _endBrace; + + /** Delimiter. */ + protected String _delimiter; + + /** Equal. */ + protected String _equal; + + /** Top string. */ + protected String _topString; + + /** Remainder string. */ + protected String _remainderString; + + /** + * Constructor. + */ + public MapListStringImpl() { + _mapMark = DEFAULT_MAP_MARK; + _listMark = DEFAULT_LIST_MARK; + _startBrace = DEFAULT_START_BRACE; + _endBrace = DEFAULT_END_BRACE; + _delimiter = DEFAULT_DELIMITER; + _equal = DEFAULT_EQUAL; + } + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map mark. (NotNull) + */ + public void setMapMark(String mapMark) { + _mapMark = mapMark; + } + + /** + * Set list-mark. + * + * @param listMark List mark. (NotNull) + */ + public void setListMark(String listMark) { + _listMark = listMark; + } + + /** + * Set start-brace. + * + * @param startBrace Start-brace. (NotNull) + */ + public synchronized void setStartBrace(String startBrace) { + _startBrace = startBrace; + } + + /** + * Set end-brace. + * + * @param endBrace End-brace. (NotNull) + */ + public synchronized void setEndBrace(String endBrace) { + _endBrace = endBrace; + } + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public synchronized void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal) { + _equal = equal; + } + + //************************************************************************** + // ************************** + // Main Method + // *********** + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. {Implement} + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public synchronized Map generateMap(String mapString) { + assertMapString(mapString); + + _topString = mapString; + _remainderString = mapString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixMapMarkAndStartBrace(); + + final Map generatedMap = newStringObjectMap(); + parseRemainderMapString(generatedMap); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # generatedMap --> " + + generatedMap; + throw new IllegalStateException(msg); + } + return generatedMap; + } + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public synchronized List generateList(String listString) { + assertListString(listString); + + _topString = listString; + _remainderString = listString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixListMarkAndStartBrace(); + + final List generatedList = newObjectList(); + parseRemainderListString(generatedList); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # generatedList --> " + + generatedList; + throw new IllegalStateException(msg); + } + return generatedList; + } + + //========================================================================== + // ================ + // Parse + // ===== + /** + * Parse remainder map string. + * + * @param currentMap current map. + */ + protected void parseRemainderMapString(final Map currentMap) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the key of the map. + // *** + + final int equalIndex = _remainderString.indexOf(_equal); + assertEqualIndex(_remainderString, equalIndex, _topString, + currentMap); + final String mapKey = _remainderString.substring(0, equalIndex) + .trim(); + removePrefixTargetIndexPlus(equalIndex, _equal.length()); + removeBothSideSpaceAndTabAndNewLine(); + + // *** Now, _remainderString should starts with the value of the + // map. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBracekIndex(_remainderString, endBraceIndex, _topString, + currentMap); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1,key2=value2} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String mapValue = _remainderString.substring(0, + delimiterIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Because the map element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1}, key2=value2} + final String mapValue = _remainderString + .substring(0, endBraceIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Analyzing map is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Parse remainder list string. + * + * @param currentList current list. + */ + protected void parseRemainderListString(final List currentList) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the value of the + // list. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBraceIndex(_remainderString, endBraceIndex, _topString, + currentList); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1,value2,value3} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String listValue = _remainderString.substring(0, + delimiterIndex); + currentList.add(filterMapListValue(listValue)); + + // Because the list element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1}, value2, } + final String listValue = _remainderString.substring(0, + endBraceIndex); + currentList.add(filterMapListValue(listValue)); + + // Analyzing list is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Initialize at loop beginning. + * + * @return Is return? + */ + protected boolean initializeAtLoopBeginning() { + // Remove prefix delimiter. (Result string is always trimmed.) + removePrefixAllDelimiter(); + + // If the remainder string is empty-string, Analyzing is over! + if (_remainderString.equals("")) { + return true; + } + + // If the remainder string starts with end-brace, Analyzing current map + // is over! + // And then remove the end-brace. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close after parse nest map list. + * + * @return Is return? + */ + protected boolean closingAfterParseNestMapList() { + // If the remainder string starts with end-brace, remove it and return + // true. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close by end-brace index. + * + * @param endBraceIndex End-brace index. + */ + protected void closingByEndBraceIndex(int endBraceIndex) { + // Remove the value that was finished analyzing and end-brace. + _remainderString = _remainderString.substring(endBraceIndex); + removePrefixEndBrace(); + } + + //************************************************************************** + // ************************** + // StateFul Method + // *************** + + //========================================================================== + // ================ + // Remove + // ====== + /** + * Remove prefix map-mark and start-brace. + */ + protected void removePrefixMapMarkAndStartBrace() { + removePrefix(_mapMark + _startBrace); + } + + /** + * Remove prefix list-mark and start-brace. + */ + protected void removePrefixListMarkAndStartBrace() { + removePrefix(_listMark + _startBrace); + } + + /** + * Remove prefix delimiter. + */ + protected void removePrefixDelimiter() { + removePrefix(_delimiter); + } + + /** + * Remove prefix end-brace. + */ + protected void removePrefixEndBrace() { + removePrefix(_endBrace); + } + + /** + * Remove prefix. + * + * @param prefixString Prefix string. (NotNull) + */ + protected void removePrefix(String prefixString) { + if (_remainderString == null) { + String msg = "Argument[remainderString] must not be null: " + + _remainderString; + throw new IllegalArgumentException(msg); + } + if (prefixString == null) { + String msg = "Argument[prefixString] must not be null: " + + prefixString; + throw new IllegalArgumentException(msg); + } + + removeBothSideSpaceAndTabAndNewLine(); + + if (_remainderString.length() < prefixString.length()) { + String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString=" + + prefixString; + throw new IllegalArgumentException(msg); + } + if (!_remainderString.startsWith(prefixString)) { + String msg = "Argument[remainderString] must start with Argument[prefixString:]"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString --> " + + prefixString; + throw new IllegalArgumentException(msg); + } + + _remainderString = _remainderString.substring(prefixString.length()); + removeBothSideSpaceAndTabAndNewLine(); + } + + /** + * Remove prefix and delimiter. + */ + protected void removePrefixAllDelimiter() { + removeBothSideSpaceAndTabAndNewLine(); + + while (true) { + if (!isStartsWithDelimiter(_remainderString)) { + break; + } + + if (isStartsWithDelimiter(_remainderString)) { + removePrefixDelimiter(); + removeBothSideSpaceAndTabAndNewLine(); + } + } + } + + /** + * Remove both side space and tab and new-line. + */ + protected void removeBothSideSpaceAndTabAndNewLine() { + _remainderString = _remainderString.trim(); + } + + /** + * Remove prefix (target index plus one). + * + * @param index Index. + * @param plusCount Plus count. + */ + protected void removePrefixTargetIndexPlus(int index, int plusCount) { + _remainderString = _remainderString.substring(index + plusCount); + } + + //************************************************************************** + // ************************** + // StateLess Method + // **************** + + //========================================================================== + // ================ + // Assert + // ====== + /** + * Assert map-string. + * + * @param mapString Map-string. (NotNull) + */ + protected void assertMapString(String mapString) { + if (mapString == null) { + String msg = "Argument[mapString] must not be null: "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + mapString = mapString.trim(); + if (!isStartsWithMapPrefix(mapString)) { + String msg = "Argument[mapString] must start with '" + _mapMark + + _startBrace + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + if (!isEndsWithEndBrace(mapString)) { + String msg = "Argument[mapString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + + final int startBraceCount = getDelimiterCount(mapString, _startBrace); + final int endBraceCount = getDelimiterCount(mapString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert list-string. + * + * @param listString List-string. (NotNull) + */ + protected void assertListString(String listString) { + if (listString == null) { + String msg = "Argument[listString] must not be null: "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + listString = listString.trim(); + if (!isStartsWithListPrefix(listString)) { + String msg = "Argument[listString] must start with '" + _mapMark + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + if (!isEndsWithEndBrace(listString)) { + String msg = "Argument[listString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + + final int startBraceCount = getDelimiterCount(listString, _startBrace); + final int endBraceCount = getDelimiterCount(listString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert equal-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param equalIndex Equal-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEqualIndex(String remainderMapString, int equalIndex, + String mapString4Log, Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (equalIndex < 0) { + String msg = "Argument[equalIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < equalIndex) { + String msg = "Argument[remainderMapString] length must be larger than equalIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + equalIndex, equalIndex + _equal.length()); + if (!expectedAsEndMark.equals(_equal)) { + String msg = "Argument[remainderMapString] must have '" + _equal + + "' at Argument[equalIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEndBracekIndex(String remainderMapString, + int endBraceIndex, String mapString4Log, + Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> =" + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < endBraceIndex) { + String msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndMark.equals(_endBrace)) { + String msg = "Argument[remainderMapString] must have '" + _endBrace + + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderListString Remainder list-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param listString4Log List-string for log. (NotNull) + * @param currentList4Log Current-list for log. (NotNull) + */ + protected void assertEndBraceIndex(String remainderListString, + int endBraceIndex, String listString4Log, List currentList4Log) { + if (remainderListString == null) { + String msg = "Argument[remainderListString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderListString.length() < endBraceIndex) { + String msg = "Argument[remainderListString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndBrace = remainderListString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndBrace.equals(_endBrace)) { + String msg = "Argument[remainderListString] must have '" + + _endBrace + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + + expectedAsEndBrace; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ================ + // Filter + // ====== + /** + * Filter map or list value. + *

    + * + *

    +     * # The value is trimmed.
    +     * # If the value is null, this returns null.
    +     * # If the value is 'null', this returns null.
    +     * # If the trimmed value is empty string, this returns null.
    +     * 
    + * + * @param value value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String filterMapListValue(String value) { + if (value == null) { + return null; + } + value = value.trim(); + return (("".equals(value) || "null".equals(value)) ? null : value); + } + + //========================================================================== + // ================ + // Judgement + // ========= + /** + * Does it start with map-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithMapPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_mapMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with list-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithListPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_listMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with delimiter? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithDelimiter(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_delimiter)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it end with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isEndsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.endsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ================ + // Other + // ===== + /** + * Setup nest map. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(Map currentMap, + String mapKey) { + final Map nestMap = newStringObjectMap(); + currentMap.put(mapKey, nestMap); + return nestMap; + } + + /** + * Setup nest map. + * + * @param currentList Current-list. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(List currentList) { + final Map nestMap = newStringObjectMap(); + currentList.add(nestMap); + return nestMap; + } + + /** + * Setup nest list. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(Map currentMap, + String mapKey) { + final List nestList = newObjectList(); + currentMap.put(mapKey, nestList); + return nestList; + } + + /** + * Setup nest list. + * + * @param currentList Current-list. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(List currentList) { + final List nestList = newObjectList(); + currentList.add(nestList); + return nestList; + } + + /** + * New string-object-map. + * + * @return String-object-map. (NotNull) + */ + protected Map newStringObjectMap() { + return new LinkedHashMap(); + } + + /** + * New object-list. + * + * @return String-object-list. (NotNull) + */ + protected List newObjectList() { + return new ArrayList(); + } + + /** + * Get new-line and indent. + * + * @return New-line and indent. (NotNull) + */ + protected String getNewLineAndIndent() { + return NEW_LINE + " "; + } + + /** + * Get count that target string exist in the base string. + * + * @param targetString Target string. + * @param delimiter Delimiter + * @return Delimiter count that _remainderString contains. + */ + protected int getDelimiterCount(String targetString, String delimiter) { + int result = 0; + for (int i = 0;;) { + if (targetString.indexOf(delimiter, i) != -1) { + result++; + i = targetString.indexOf(delimiter, i) + 1; + } else { + break; + } + } + if (result == 0) { + result = -1; + } + return result; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapListStringImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilder.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilder.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilder.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,78 @@ +package jp.sf.pal.todolist.db.allcommon.helper; + +/** + * The interface of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapStringBuilder { + + //========================================================================== + // =========== + // Setter + // ====== + public void setColumnNames(String[] columnNames); + + public void setColumnNameList(java.util.List columnNameList); + + public void setMsMapMark(String value); + + public void setMsStartBrace(String value); + + public void setMsEndBrace(String value); + + public void setMsDelimiter(String value); + + public void setMsEqual(String value); + + //========================================================================== + // =========== + // Main + // ==== + public String buildByDelimiter(String values, String delimiter); + + public String buildFromList(java.util.List valueList); + + //========================================================================== + // =========== + // Exception Static Class + // ====================== + public static class DifferentDelimiterCountException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //====================================================================== + // =============== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + //====================================================================== + // =============== + // Constructor + // =========== + public DifferentDelimiterCountException(String msg, + java.util.List columnNameList, + java.util.List valueList) { + super(msg); + _columnNameList = columnNameList; + _valueList = valueList; + } + + //====================================================================== + // =============== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilderImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilderImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilderImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,183 @@ +package jp.sf.pal.todolist.db.allcommon.helper; + +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * The implementation of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public class MapStringBuilderImpl implements MapStringBuilder { + + protected java.util.List _columnNameList; + + protected String _msMapMark; + + protected String _msStartBrace; + + protected String _msEndBrace; + + protected String _msDelimiter; + + protected String _msEqual; + + protected boolean _trimDoubleQuotation; + + public void setColumnNames(String[] columnNames) { + _columnNameList = java.util.Arrays.asList(columnNames); + } + + public void setColumnNameList(java.util.List columnNameList) { + _columnNameList = columnNameList; + } + + public void setMsMapMark(String value) { + _msMapMark = value; + } + + public void setMsStartBrace(String value) { + _msStartBrace = value; + } + + public void setMsEndBrace(String value) { + _msEndBrace = value; + } + + public void setMsDelimiter(String value) { + _msDelimiter = value; + } + + public void setMsEqual(String value) { + _msEqual = value; + } + + public void trimDoubleQuotation() { + _trimDoubleQuotation = true; + } + + public String buildByDelimiter(String values, String delimiter) { + if (values == null) { + String msg = "The argument[values] should not be null."; + throw new IllegalArgumentException(msg); + } + if (delimiter == null) { + String msg = "The argument[delimiter] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + + final java.util.List valueList = tokenize(values, delimiter); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + public String buildFromList(java.util.List valueList) { + if (valueList == null) { + String msg = "The argument[valueList] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + protected java.util.List tokenize(String value, String delimiter) { + final LineToken lineToken = new LineTokenImpl(); + final LineTokenizingOption lineTokenizingOption = new LineTokenizingOption(); + lineTokenizingOption.setDelimiter(delimiter); + if (_trimDoubleQuotation) { + lineTokenizingOption.trimDoubleQuotation(); + } + return lineToken.tokenize(value, lineTokenizingOption); + } + + protected void assertStringComponent() { + if (_columnNameList == null) { + String msg = "The columnNameList should not be null."; + throw new IllegalStateException(msg); + } + if (_columnNameList.isEmpty()) { + String msg = "The columnNameList should not be empty."; + throw new IllegalStateException(msg); + } + if (_msMapMark == null) { + String msg = "The msMapMark should not be null."; + throw new IllegalStateException(msg); + } + if (_msStartBrace == null) { + String msg = "The msStartBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msEndBrace == null) { + String msg = "The msEndBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msDelimiter == null) { + String msg = "The msDelimiter should not be null."; + throw new IllegalStateException(msg); + } + if (_msEqual == null) { + String msg = "The msEqual should not be null."; + throw new IllegalStateException(msg); + } + } + + protected void assertColumnValueList(java.util.List columnNameList, + java.util.List valueList) { + if (columnNameList.size() != valueList.size()) { + String msg = "The length of columnNameList and valueList are difference. (" + + columnNameList.size() + ", " + valueList.size() + ")"; + msg = msg + " columnNameList=" + columnNameList; + msg = msg + " valueList=" + valueList; + throw new DifferentDelimiterCountException(msg, columnNameList, + valueList); + } + } + + protected static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + final StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/MapStringBuilderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/GeneralCharacter.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/GeneralCharacter.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/GeneralCharacter.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.allcommon.helper.character; + +/** + * The interface of general character. + * + * @author DBFlute(AutoGenerator) + */ +public interface GeneralCharacter { + + public String toSingleByteAlphabet(String s); + + public String toSingleByteNumber(String s); + + public String toSingleByteAlphabetNumber(String target); + + public String toSingleByteAlphabetNumberMark(String target); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/GeneralCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/JapaneseCharacter.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/JapaneseCharacter.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/JapaneseCharacter.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,11 @@ +package jp.sf.pal.todolist.db.allcommon.helper.character; + +/** + * The interface of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public interface JapaneseCharacter { + + public String toDoubleByteKatakana(String target); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/JapaneseCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,101 @@ +package jp.sf.pal.todolist.db.allcommon.helper.character.impl; + +import jp.sf.pal.todolist.db.allcommon.helper.character.GeneralCharacter; + +/** + * The implementation of general character. + * + * @author DBFlute(AutoGenerator) + */ +public class GeneralCharacterImpl implements GeneralCharacter { + + public String toSingleByteAlphabet(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumberMark(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(target.length()); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff01 && currentChar <= 0xff5e) { + sb.append(toSingleByteCharacter(currentChar)); + + // It needs to append more mark... + } else if (currentChar == '\u2019' || currentChar == '\u2018' + || currentChar == '\u2032') { + sb.append('\''); + } else if (currentChar == '\u201d' || currentChar == '\u201c' + || currentChar == '\u2033') { + sb.append('\"'); + } else if (currentChar == '\uffe5') { + sb.append('\\'); + } else if (currentChar == '\u2010') { + sb.append('-'); + } else if (currentChar == '\uff5e') { + sb.append('~'); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + protected char toSingleByteCharacter(final char currentChar) { + return (char) (currentChar - 0xfee0); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/GeneralCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,96 @@ +package jp.sf.pal.todolist.db.allcommon.helper.character.impl; + +import jp.sf.pal.todolist.db.allcommon.helper.character.JapaneseCharacter; + +/** + * The implementation of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseCharacterImpl implements JapaneseCharacter { + + // Double-byte Katakana + protected static final String TABLE_ZENKANA = "\u3002\u300c\u300d\u3001\u30fb\u30f2\u30a1\u30a3\u30a5" + + "\u30a7\u30a9\u30e3\u30e5\u30e7\u30c3\u30fc\u30a2\u30a4" + + "\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5" + + "\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8" + + "\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8" + + "\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f3\u309b\u309c"; + + // (uff71 - uff9d) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA = "\u30a2\u30a4\u30f4\u30a8\u30aa" + + "\u30ac\u30ae\u30b0\u30b2\u30b4" + + "\u30b6\u30b8\u30ba\u30bc\u30be" + + "\u30c0\u30c2\u30c5\u30c7\u30c9" + + "\u30ca\u30cb\u30cc\u30cd\u30ce" + + "\u30d0\u30d3\u30d6\u30d9\u30dc" + + "\u30de\u30df\u30e0\u30e1\u30e2" + + "\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed" + "\u30ef\u30f3"; + + // (uff66 - uff6f) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA = "\u30fa\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7"; + + // (u30cf - u30dd) + protected static final String DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA = "\u30d1\u30d4\u30d7\u30da\u30dd"; + + public String toDoubleByteKatakana(String target) { + if (target == null) { + return target; + } + + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + final char nextChar; + if (i < target.length() - 1) { + nextChar = target.charAt(i + 1); + } else { + nextChar = ' '; + } + + if (isVoicedSoundKatakana(currentChar, nextChar)) { + if (currentChar >= 0xff66 && currentChar <= 0xff6f) {// Voiced + // sound + // special + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA + .charAt(currentChar - 0xff66)); + i++; + } else if (currentChar >= 0xff71 && currentChar <= 0xff9d) {// Voiced + // sound + // normal + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA + .charAt(currentChar - 0xff71)); + i++; + } + + } else if (isSemiVoicedSoundKatakana(currentChar, nextChar)) { + sb.append(DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA + .charAt(currentChar - 0xff8a)); + i++; + } else if (currentChar != 0xff9e && currentChar != 0xff9f) { + if (currentChar >= 0xff61 && currentChar <= 0xff9f) { + sb.append(TABLE_ZENKANA.charAt(currentChar - 0xff61)); + } else { + sb.append(currentChar); + } + } + } + return sb.toString(); + } + + protected boolean isVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return ((currentChar >= 0xff66 && currentChar <= 0xff6f) || (currentChar >= 0xff71 && (currentChar <= 0xff9d))) + && (nextChar == 0xff9e); + } + + protected boolean isSemiVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return (currentChar >= 0xff8a && currentChar <= 0xff8e) + && (nextChar == 0xff9f); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrder.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrder.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrder.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,20 @@ +package jp.sf.pal.todolist.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface AccordingToOrder { + + /** + * Order the unordered list. + * + * @param option The option of according-to-order. (NotNull) + * @param unorderedList The unordered list. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + void order(List unorderedList, + AccordingToOrderOption option); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrder.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.allcommon.helper.collection.order; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public interface AccordingToOrderIdExtractor { + + /** + * Extract ID from the element instance. + * + * @param element Element instance. (NotNull) + * @return Extracted ID. (NotNull) + */ + ID_TYPE extractId(ELEMENT_TYPE element); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,50 @@ +package jp.sf.pal.todolist.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public class AccordingToOrderOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _orderedUniqueIdList; + + protected AccordingToOrderIdExtractor _idExtractor; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void setupOrderedResource(List orderedUniqueIdList, + AccordingToOrderIdExtractor idExtractor) { + setOrderedUniqueIdList(orderedUniqueIdList); + setIdExtractor(idExtractor); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public List getOrderedUniqueIdList() { + return _orderedUniqueIdList; + } + + public void setOrderedUniqueIdList(List orderedUniqueIdList) { + this._orderedUniqueIdList = orderedUniqueIdList; + } + + public AccordingToOrderIdExtractor getIdExtractor() { + return _idExtractor; + } + + public void setIdExtractor( + AccordingToOrderIdExtractor idExtractor) { + _idExtractor = idExtractor; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/AccordingToOrderOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,103 @@ +package jp.sf.pal.todolist.db.allcommon.helper.collection.order.impl; + +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.helper.collection.order.AccordingToOrder; +import jp.sf.pal.todolist.db.allcommon.helper.collection.order.AccordingToOrderIdExtractor; +import jp.sf.pal.todolist.db.allcommon.helper.collection.order.AccordingToOrderOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class AccordingToOrderImpl implements AccordingToOrder { + + //========================================================================== + // ========= + // Main + // ==== + /** + * The implementation. + * + * @param unorderedList The unordered list. (NotNull) + * @param option The option of according-to-order. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + public void order( + final List unorderedList, + final AccordingToOrderOption option) { + assertObjectNotNull("unorderedList", unorderedList); + if (unorderedList.isEmpty()) { + return; + } + assertObjectNotNull("option", option); + final List orderedUniqueIdList = option + .getOrderedUniqueIdList(); + assertObjectNotNull("option.getOrderedUniqueIdList()", + orderedUniqueIdList); + if (orderedUniqueIdList.isEmpty()) { + return; + } + final AccordingToOrderIdExtractor idExtractor = option + .getIdExtractor(); + assertObjectNotNull("option.getIdExtractor()", idExtractor); + + final Map idIndexMap = new LinkedHashMap(); + int index = 0; + for (ID_TYPE id : orderedUniqueIdList) { + if (idIndexMap.containsKey(id)) { + String msg = "The id was duplicated: id=" + id + + " orderedUniqueIdList=" + orderedUniqueIdList; + throw new IllegalStateException(msg); + } + idIndexMap.put(id, index); + ++index; + } + final Comparator comp = new Comparator() { + public int compare(ELEMENT_TYPE o1, ELEMENT_TYPE o2) { + final ID_TYPE id1 = idExtractor.extractId(o1); + final ID_TYPE id2 = idExtractor.extractId(o2); + assertObjectNotNull("id1 of " + o1, id1); + assertObjectNotNull("id2 of " + o2, id2); + final Integer index1 = idIndexMap.get(id1); + final Integer index2 = idIndexMap.get(id2); + if (index1 != null && index2 != null) { + return index1.compareTo(index2); + } + if (index1 == null && index2 == null) { + return 0; + } + return index1 == null ? 1 : -1; + } + }; + Collections.sort(unorderedList, comp); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractingResource { + + public boolean isTargetElement(String className, String methodName); + + public String filterSimpleClassName(String simpleClassName); + + public boolean isUseAdditionalInfo(); + + public int getStartIndex(); + + public int getLoopSize(); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,16 @@ +package jp.sf.pal.todolist.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractor { + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameResult.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameResult.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameResult.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,86 @@ +package jp.sf.pal.todolist.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameResult { + + //========================================================================== + // ================ + // Attribute + // ========= + protected String _simpleClassName; + + protected String _methodName; + + protected String _invokeName; + + protected int _foundIndex; + + protected int _foundFirstIndex; + + //========================================================================== + // ================ + // Manipulation + // ============ + public int getNextStartIndex() { + return _foundIndex + 1; + } + + public void beEmptyResult() { + _simpleClassName = null; + _invokeName = ""; // As Default + } + + //========================================================================== + // ================ + // Determination + // ============= + public boolean isEmptyResult() { + return _simpleClassName == null; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public String getSimpleClassName() { + return _simpleClassName; + } + + public void setSimpleClassName(String simpleClassName) { + _simpleClassName = simpleClassName; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + _methodName = methodName; + } + + public String getInvokeName() { + return _invokeName; + } + + public void setInvokeName(String invokeName) { + _invokeName = invokeName; + } + + public int getFoundIndex() { + return _foundIndex; + } + + public void setFoundIndex(int foundIndex) { + _foundIndex = foundIndex; + } + + public int getFoundFirstIndex() { + return _foundFirstIndex; + } + + public void setFoundFirstIndex(int foundFirstIndex) { + _foundFirstIndex = foundFirstIndex; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/InvokeNameResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,103 @@ +package jp.sf.pal.todolist.db.allcommon.helper.stacktrace.impl; + +import jp.sf.pal.todolist.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.todolist.db.allcommon.helper.stacktrace.InvokeNameExtractor; +import jp.sf.pal.todolist.db.allcommon.helper.stacktrace.InvokeNameResult; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameExtractorImpl implements InvokeNameExtractor { + + //========================================================================== + // ================ + // Attribute + // ========= + protected StackTraceElement[] _stackTrace; + + //========================================================================== + // ================ + // Main + // ==== + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return Invoke name. (NotNull: If not found, returns empty string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource) { + if (_stackTrace == null) { + String msg = "The attribute 'stackTrace' should not be null: resource=" + + resource; + throw new IllegalStateException(msg); + } + String targetSimpleClassName = null; + String targetMethodName = null; + int lineNumber = 0; + int foundIndex = -1; // The minus one means 'Not Found'. + int foundFirstIndex = -1; // The minus one means 'Not Found'. + boolean onTarget = false; + for (int i = resource.getStartIndex(); i < _stackTrace.length; i++) { + final StackTraceElement element = _stackTrace[i]; + if (i > resource.getStartIndex() + resource.getLoopSize()) { + break; + } + final String className = element.getClassName(); + if (className.startsWith("sun.") || className.startsWith("java.")) { + if (onTarget) { + break; + } + continue; + } + final String methodName = element.getMethodName(); + if (resource.isTargetElement(className, methodName)) { + if (methodName.equals("invoke")) { + continue; + } + targetSimpleClassName = className.substring(className + .lastIndexOf(".") + 1); + targetMethodName = methodName; + if (resource.isUseAdditionalInfo()) { + lineNumber = element.getLineNumber(); + } + foundIndex = i; + if (foundFirstIndex == -1) { + foundFirstIndex = i; + } + onTarget = true; + continue; + } + if (onTarget) { + break; + } + } + final InvokeNameResult result = new InvokeNameResult(); + if (targetSimpleClassName == null) { + result.beEmptyResult(); // Not Found! It sets empty result. + return result; + } + final String filteredClassName = resource + .filterSimpleClassName(targetSimpleClassName); + result.setSimpleClassName(resource + .filterSimpleClassName(targetSimpleClassName)); + result.setMethodName(targetMethodName); + if (lineNumber > 0) { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "():" + lineNumber + " --> "); + } else { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "() --> "); + } + result.setFoundIndex(foundIndex); + result.setFoundFirstIndex(foundFirstIndex); + return result; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public void setStackTrace(StackTraceElement[] stackTrace) { + _stackTrace = stackTrace; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingCallback.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingCallback.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingCallback.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingCallback { + + /** + * Get file-making header information. + * + *
    +     * You should return your row resource for file-making.
    +     * It continues invoking until this method returns null.
    +     * 
    + * + * @return File-making header information. (Nullable) + */ + public FileMakingRowResource getRowResource(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,23 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingHeaderInfo { + + protected List columnNameList = new java.util.ArrayList(); + + public List getColumnNameList() { + return columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this.columnNameList = columnNameList; + } + + public boolean isEmpty() { + return this.columnNameList.isEmpty(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,107 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Encoding. (Required) */ + protected String _encoding; + + /** Delimiter. (Required) */ + protected String _delimiter; + + /** Line separator. (NotRequired) */ + protected String _lineSeparator; + + /** Good bye double quotation. (NotRequired) */ + protected boolean _goodByeDoubleQuotation; + + /** File-making header information. (NotRequired) */ + protected FileMakingHeaderInfo _fileMakingHeaderInfo; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileMakingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileMakingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileMakingOption separateCrLf() { + _lineSeparator = "\r\n"; + return this; + } + + public FileMakingOption separateLf() { + _lineSeparator = "\n"; + return this; + } + + public FileMakingOption goodByeDoubleQuotation() { + _goodByeDoubleQuotation = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getLineSeparator() { + return _lineSeparator; + } + + public void setLineSeparator(String lineSeparator) { + _lineSeparator = lineSeparator; + } + + public boolean isGoodByeDoubleQuotation() { + return _goodByeDoubleQuotation; + } + + public FileMakingHeaderInfo getFileMakingHeaderInfo() { + return _fileMakingHeaderInfo; + } + + public void setFileMakingHeaderInfo( + FileMakingHeaderInfo fileMakingHeaderInfo) { + _fileMakingHeaderInfo = fileMakingHeaderInfo; + } + +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingRowResource.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingRowResource.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingRowResource.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,47 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _valueList; + + protected java.util.LinkedHashMap _nameValueMap; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getValueList() { + return _valueList; + } + + /** + * Set the list of value. {Priority One} + * + * @param valueList The list of value. (NotNull and NotEmpty) + */ + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public java.util.LinkedHashMap getNameValueMap() { + return _nameValueMap; + } + + /** + * Set the map of name and value. {Priority Two}
    If valueList is set, + * This nameValueMap is ignored. + * + * @param nameValueMap The map of name and value. (NotNull and NotEmpty) + */ + public void setNameValueMap( + java.util.LinkedHashMap nameValueMap) { + this._nameValueMap = nameValueMap; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,37 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingSimpleFacade { + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileMakingSimpleFacade.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileToken.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileToken.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileToken.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,78 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * File-Token. + * + * @author DBFlute(AutoGenerator) + */ +public interface FileToken { + + /** + * Tokenize token-file data of a specified file. + * + * @param filename Input target file name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + * @param filename Output target file name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingCallback.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingCallback.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingCallback.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,9 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileTokenizingCallback { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingHeaderInfo { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _columnNameList = new java.util.ArrayList(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + protected String _columnNameRowString; + + public boolean isEmpty() { + return this._columnNameList.isEmpty(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this._columnNameList = columnNameList; + } + + public String getColumnNameRowString() { + return _columnNameRowString; + } + + public void setColumnNameRowString(String columnNameRowString) { + _columnNameRowString = columnNameRowString; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,81 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _encoding; + + protected String _delimiter; + + protected boolean _beginFirstLine; + + protected boolean _handleEmptyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileTokenizingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileTokenizingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileTokenizingOption beginFirstLine() { + _beginFirstLine = true; + return this; + } + + public FileTokenizingOption handleEmptyAsNull() { + _handleEmptyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public boolean isBeginFirstLine() { + return _beginFirstLine; + } + + public boolean isHandleEmptyAsNull() { + return _handleEmptyAsNull; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingRowResource.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingRowResource.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingRowResource.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,68 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileTokenizingHeaderInfo fileTokenizingHeaderInfo; + + protected java.util.List valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + //========================================================================== + // =========== + // Accessor + // ======== + public FileTokenizingHeaderInfo getFileTokenizingHeaderInfo() { + return fileTokenizingHeaderInfo; + } + + public void setFirstLineInfo( + FileTokenizingHeaderInfo fileTokenizingHeaderInfo) { + this.fileTokenizingHeaderInfo = fileTokenizingHeaderInfo; + } + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(java.util.List valueList) { + this.valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/FileTokenizingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,85 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file.impl; + +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileToken; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingSimpleFacadeImpl implements FileMakingSimpleFacade { + + protected FileToken _fileToken = new FileTokenImpl(); + + public void setFileToken(FileToken fileToken) { + this._fileToken = fileToken; + } + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + _fileToken.make(filename, fileMakingCallback, fileMakingOption); + } + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); + _fileToken.make(baos, fileMakingCallback, fileMakingOption); + return baos.toByteArray(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileTokenImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileTokenImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileTokenImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,565 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.file.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenImpl implements FileToken { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Line-token for help. */ + protected final LineToken _lineToken = new LineTokenImpl(); + + //========================================================================== + // =========== + // Main + // ==== + /** + * Tokenize token-file data of a specified file. + * + * @param filename File name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileInputStream fis = null; + try { + fis = new java.io.FileInputStream(filename); + tokenize(fis, fileTokenizingCallback, fileTokenizingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (fis != null) { + fis.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertObjectNotNull("fileTokenizingCallback", fileTokenizingCallback); + assertObjectNotNull("fileTokenizingOption", fileTokenizingOption); + final String delimiter = fileTokenizingOption.getDelimiter(); + final String encoding = fileTokenizingOption.getEncoding(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + java.io.InputStreamReader ir = null; + java.io.BufferedReader br = null; + + String lineString = null; + String preContinueString = ""; + final List temporaryValueList = new ArrayList(); + final List filteredValueList = new ArrayList(); + + try { + ir = new java.io.InputStreamReader(inputStream, encoding); + br = new java.io.BufferedReader(ir); + + FileTokenizingHeaderInfo fileTokenizingHeaderInfo = null; + int count = -1; + int rowNumber = 1; + int lineNumber = 0; + while (true) { + ++count; + if ("".equals(preContinueString)) { + lineNumber = count + 1; + } + + lineString = br.readLine(); + if (lineString == null) { + break; + } + if (count == 0) { + if (fileTokenizingOption.isBeginFirstLine()) { + fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo();// As + // empty + } else { + fileTokenizingHeaderInfo = analyzeHeaderInfo(delimiter, + lineString); + continue; + } + } + final String rowString; + if (preContinueString.equals("")) { + rowString = lineString; + } else { + final String lineSeparator = System + .getProperty("line.separator"); + rowString = preContinueString + lineSeparator + lineString; + } + final ValueLineInfo valueLineInfo = arrangeValueList(rowString, + delimiter); + final List ls = valueLineInfo.getValueList(); + if (valueLineInfo.isContinueNextLine()) { + preContinueString = (String) ls.remove(ls.size() - 1); + temporaryValueList.addAll(ls); + continue; + } + temporaryValueList.addAll(ls); + + try { + final FileTokenizingRowResource fileTokenizingRowResource = new FileTokenizingRowResource(); + fileTokenizingRowResource + .setFirstLineInfo(fileTokenizingHeaderInfo); + + if (fileTokenizingOption.isHandleEmptyAsNull()) { + for (final Iterator ite = temporaryValueList + .iterator(); ite.hasNext();) { + final String value = (String) ite.next(); + if ("".equals(value)) { + filteredValueList.add(null); + } else { + filteredValueList.add(value); + } + } + fileTokenizingRowResource + .setValueList(filteredValueList); + } else { + fileTokenizingRowResource + .setValueList(temporaryValueList); + } + + fileTokenizingRowResource.setRowString(rowString); + fileTokenizingRowResource.setRowNumber(rowNumber); + fileTokenizingRowResource.setLineNumber(lineNumber); + fileTokenizingCallback + .handleRowResource(fileTokenizingRowResource); + } finally { + ++rowNumber; + temporaryValueList.clear(); + filteredValueList.clear(); + preContinueString = ""; + } + } + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (ir != null) { + ir.close(); + } + if (br != null) { + br.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + protected ValueLineInfo arrangeValueList(final String lineString, + String delimiter) { + final List valueList = new ArrayList(); + + // Don't use split! + // final String[] values = lineString.split(delimiter); + final LineTokenizingOption tokenizingOption = new LineTokenizingOption(); + tokenizingOption.setDelimiter(delimiter); + final List list = _lineToken.tokenize(lineString, + tokenizingOption); + final String[] values = (String[]) list + .toArray(new String[list.size()]); + for (int i = 0; i < values.length; i++) { + valueList.add(values[i]); + } + return arrangeValueList(valueList, delimiter); + } + + protected ValueLineInfo arrangeValueList(List valueList, + String delimiter) { + final ValueLineInfo valueLineInfo = new ValueLineInfo(); + final ArrayList resultList = new ArrayList(); + String preString = ""; + for (int i = 0; i < valueList.size(); i++) { + final String value = (String) valueList.get(i); + if (value == null) { + continue; + } + if (i == valueList.size() - 1) {// The last loop + if (preString.equals("")) { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(value); + break; + } else if (isRearQOnly(value)) { + resultList.add(value); + break; + } else if (isNotBothQ(value)) { + resultList.add(value); + break; + } else { + resultList.add(removeDoubleQuotation(value)); + break; + } + } else { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } else if (isNotBothQ(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } + } + } + + if (preString.equals("")) { + if (isFrontQOnly(value)) { + preString = value; + continue; + } else if (isRearQOnly(value)) { + preString = value; + continue; + } else if (isNotBothQ(value)) { + resultList.add(value); + } else { + resultList.add(removeDoubleQuotation(value)); + } + } else { + if (isFrontQOnly(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } else if (isNotBothQ(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } + } + preString = ""; + } + valueLineInfo.setValueList(resultList); + return valueLineInfo; + } + + protected String connectPreString(String preString, String delimiter, + String value) { + if (preString.equals("")) { + return value; + } else { + return preString + delimiter + value; + } + } + + protected boolean isNotBothQ(final String value) { + return !value.startsWith("\"") && !value.endsWith("\""); + } + + protected boolean isRearQOnly(final String value) { + return !value.startsWith("\"") && value.endsWith("\""); + } + + protected boolean isFrontQOnly(final String value) { + return value.startsWith("\"") && !value.endsWith("\""); + } + + protected String removeDoubleQuotation(String value) { + if (!value.startsWith("\"") && !value.endsWith("\"")) { + return value; + } + if (value.startsWith("\"")) { + value = value.substring(1); + } + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected String removeRightDoubleQuotation(String value) { + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected FileTokenizingHeaderInfo analyzeHeaderInfo(String delimiter, + final String lineString) { + final java.util.List columnNameList = new ArrayList(); + final String[] values = lineString.split(delimiter); + for (int i = 0; i < values.length; i++) { + final String value = values[i].trim();// Trimming is Header Only!; + if (value.startsWith("\"") && value.endsWith("\"")) { + columnNameList.add(value.substring(1, value.length() - 1)); + } else { + columnNameList.add(value); + } + } + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo(); + fileTokenizingHeaderInfo.setColumnNameList(columnNameList); + fileTokenizingHeaderInfo.setColumnNameRowString(lineString); + return fileTokenizingHeaderInfo; + } + + public static class ValueLineInfo { + protected java.util.List valueList; + + protected boolean continueNextLine; + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(List valueList) { + this.valueList = valueList; + } + + public boolean isContinueNextLine() { + return continueNextLine; + } + + public void setContinueNextLine(boolean continueNextLine) { + this.continueNextLine = continueNextLine; + } + } + + /** + * Make token-file from specified row resources. + * + * @param filename File name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileOutputStream fos = null; + try { + fos = new java.io.FileOutputStream(filename); + make(fos, fileMakingCallback, fileMakingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (fos != null) { + fos.close(); + } + } + } + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("outputStream", outputStream); + assertObjectNotNull("fileMakingCallback", fileMakingCallback); + assertObjectNotNull("fileMakingOption", fileMakingOption); + final String encoding = fileMakingOption.getEncoding(); + final String delimiter = fileMakingOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final String lineSeparator; + if (fileMakingOption.getLineSeparator() != null + && !fileMakingOption.getLineSeparator().equals("")) { + lineSeparator = fileMakingOption.getLineSeparator(); + } else { + lineSeparator = System.getProperty("line.separator");// Default! + } + + java.io.BufferedOutputStream bos = null; + java.io.Writer writer = null; + try { + bos = new java.io.BufferedOutputStream(outputStream); + writer = new java.io.OutputStreamWriter(bos, encoding); + + boolean headerDone = false; + + // Make header. + final FileMakingHeaderInfo fileMakingHeaderInfo = fileMakingOption + .getFileMakingHeaderInfo(); + if (fileMakingHeaderInfo != null) { + final List columnNameList = fileMakingHeaderInfo + .getColumnNameList(); + if (columnNameList != null && !columnNameList.isEmpty()) { + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + } + + // Make row. + FileMakingRowResource rowResource = null; + while (true) { + rowResource = fileMakingCallback.getRowResource(); + if (rowResource == null) { + break;// The End! + } + final java.util.List valueList; + if (rowResource.getValueList() != null) { + valueList = rowResource.getValueList(); + } else { + final java.util.LinkedHashMap nameValueMap = rowResource + .getNameValueMap(); + if (!headerDone) { + final java.util.List columnNameList = new java.util.ArrayList( + nameValueMap.keySet()); + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + valueList = new ArrayList(nameValueMap.values()); + } + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + if (!fileMakingOption.isGoodByeDoubleQuotation()) { + lineMakingOption.quoteByDoubleQuotation(); + } + final String lineString = _lineToken.make(valueList, + lineMakingOption); + writer.write(lineString + lineSeparator); + } + writer.flush(); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (bos != null) { + bos.close(); + } + if (writer != null) { + writer.close(); + } + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/file/impl/FileTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineMakingOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineMakingOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineMakingOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,49 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineMakingOption { + + protected String _delimiter; + + protected boolean _quoteByDoubleQuotation; + + protected boolean _trimSpace; + + public LineMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public LineMakingOption quoteByDoubleQuotation() { + _quoteByDoubleQuotation = true; + return this; + } + + public boolean isQuoteByDoubleQuotation() { + return _quoteByDoubleQuotation; + } + + public LineMakingOption trimSpace() { + _trimSpace = true; + return this; + } + + public boolean isTrimSpace() { + return _trimSpace; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineToken.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineToken.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineToken.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,13 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface LineToken { + + public java.util.List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption); + + public String make(java.util.List valueList, + LineMakingOption lineMakingOption); +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineTokenizingOption.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineTokenizingOption.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineTokenizingOption.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,61 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _delimiter; + + protected boolean _trimDoubleQuotation; + + protected boolean _handleEmtpyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public LineTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public LineTokenizingOption trimDoubleQuotation() { + _trimDoubleQuotation = true; + return this; + } + + public LineTokenizingOption handleEmtpyAsNull() { + _handleEmtpyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public boolean isTrimDoubleQuotation() { + return _trimDoubleQuotation; + } + + public boolean isHandleEmtpyAsNull() { + return _handleEmtpyAsNull; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/LineTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/impl/LineTokenImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/impl/LineTokenImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,136 @@ +package jp.sf.pal.todolist.db.allcommon.helper.token.line.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.todolist.db.allcommon.helper.token.line.LineTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenImpl implements LineToken { + + //========================================================================== + // ========= + // Tokenize Line + // ============= + public List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption) { + final String delimiter = lineTokenizingOption.getDelimiter(); + final List list = new ArrayList(); + int i = 0; + int j = lineString.indexOf(delimiter); + for (int h = 0; j >= 0; h++) { + final String pureValue = lineString.substring(i, j); + if (lineTokenizingOption.isTrimDoubleQuotation()) { + final String before = pureValue; + if (before.length() > 1 && before.startsWith("\"") + && before.endsWith("\"")) { + final String after = before.substring(1, + before.length() - 1); + list.add(filterHandlingEmptyAsNull(after, + lineTokenizingOption)); + } else { + list.add(filterHandlingEmptyAsNull(before, + lineTokenizingOption)); + } + } else { + list.add(filterHandlingEmptyAsNull(pureValue, + lineTokenizingOption)); + } + i = j + delimiter.length(); + j = lineString.indexOf(delimiter, i); + } + list.add(filterHandlingEmptyAsNull(lineString.substring(i), + lineTokenizingOption)); + return list; + } + + protected String filterHandlingEmptyAsNull(String target, + LineTokenizingOption lineTokenizingOption) { + if (target == null) { + return null; + } + if (lineTokenizingOption.isHandleEmtpyAsNull() && "".equals(target)) { + return null; + } + return target; + } + + //========================================================================== + // ========= + // Make Line + // ========= + public String make(java.util.List valueList, + LineMakingOption lineMakingOption) { + assertObjectNotNull("valueList", valueList); + assertObjectNotNull("lineMakingOption", lineMakingOption); + final String delimiter = lineMakingOption.getDelimiter(); + assertObjectNotNull("lineMakingOption.getDelimiter()", delimiter); + return createLineString(valueList, delimiter, lineMakingOption + .isQuoteByDoubleQuotation(), lineMakingOption.isTrimSpace()); + } + + protected String createLineString(List valueList, String delimiter, + boolean quoteByDoubleQuotation, boolean trimSpace) { + final StringBuffer sb = new StringBuffer(); + for (final Iterator ite = valueList.iterator(); ite.hasNext();) { + String value = (String) ite.next(); + value = (value != null ? value : ""); + if (trimSpace) { + value = value.trim(); + } + if (quoteByDoubleQuotation) { + sb.append(delimiter).append("\"").append(value).append("\""); + } else { + sb.append(delimiter).append(value); + } + } + sb.delete(0, delimiter.length()); + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/helper/token/line/impl/LineTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/CursorHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/CursorHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/CursorHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,19 @@ +package jp.sf.pal.todolist.db.allcommon.jdbc; + +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * The handler of cursor. + * + * @author DBFlute(AutoGenerator) + */ +public interface CursorHandler { + + /** + * @param resultSet Result set. (NotNull) + * @return Result + * @throws java.sql.SQLException + */ + Object handle(ResultSet resultSet) throws SQLException; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/CursorHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/LatestSqlProvider.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/LatestSqlProvider.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/LatestSqlProvider.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon.jdbc; + +/** + * The provider of latest SQL. + * + * @author DBFlute(AutoGenerator) + */ +public interface LatestSqlProvider { + + /** + * Get display SQL. + * + * @return Display SQL. (Nullable: If it was not found, returns null.) + */ + public String getDisplaySql(); + + /** + * Clear the cache of SQL. + */ + public void clearSqlCache(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/LatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/SqlLogHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/SqlLogHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/SqlLogHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,18 @@ +package jp.sf.pal.todolist.db.allcommon.jdbc; + +/** + * The handler of SQL log. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlLogHandler { + + /** + * @param executedSql The executed SQL. (NotNull) + * @param displaySql The SQL for display. (NotNull) + * @param args The arguments of the SQL. (Nullable) + * @param argTypes The argument types of the SQL. (Nullable) + */ + void handle(String executedSql, String displaySql, Object[] args, + Class[] argTypes); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/SqlLogHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/StatementConfig.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/StatementConfig.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/StatementConfig.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,135 @@ +package jp.sf.pal.todolist.db.allcommon.jdbc; + +import java.sql.ResultSet; + +/** + * The config of statement. + * + * @author DBFlute(AutoGenerator) + */ +public class StatementConfig { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + protected Integer _resultSetType; + + // ----------------------------------------------------- + // Statement Option + // ---------------- + protected Integer _queryTimeout; + + protected Integer _fetchSize; + + protected Integer _maxRows; + + //========================================================================== + // ========= + // Setting Interface + // ================= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public StatementConfig typeForwardOnly() { + _resultSetType = ResultSet.TYPE_FORWARD_ONLY; + return this; + } + + public StatementConfig typeScrollInsensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + return this; + } + + public StatementConfig typeScrollSensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_SENSITIVE; + return this; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public StatementConfig queryTimeout(int queryTimeout) { + this._queryTimeout = queryTimeout; + return this; + } + + public StatementConfig fetchSize(int fetchSize) { + this._fetchSize = fetchSize; + return this; + } + + public StatementConfig maxRows(int maxRows) { + this._maxRows = maxRows; + return this; + } + + //========================================================================== + // ========= + // Determination + // ============= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public boolean hasResultSetType() { + return _resultSetType != null; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public boolean hasStatementOptions() { + return hasQueryTimeout() || hasFetchSize() || hasMaxRows(); + } + + public boolean hasQueryTimeout() { + return _queryTimeout != null; + } + + public boolean hasFetchSize() { + return _fetchSize != null; + } + + public boolean hasMaxRows() { + return _maxRows != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{" + _resultSetType + ", " + _queryTimeout + ", " + _fetchSize + + ", " + _maxRows + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public Integer getResultSetType() { + return _resultSetType; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public Integer getQueryTimeout() { + return _queryTimeout; + } + + public Integer getFetchSize() { + return _fetchSize; + } + + public Integer getMaxRows() { + return _maxRows; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/jdbc/StatementConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,125 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.ResultSetFactory; + +/** + * This is unused in DBFlute so this is very NORMAL result-set-factory for + * S2Dao. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetFactory implements ResultSetFactory { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public FetchNarrowingResultSetFactory() { + } + + //========================================================================== + // ========= + // Main + // ==== + /** + * Get result set. + * + * @param statement Statement. (NotNull) + * @return Result set for procedure executing of s2dao. (NotNull) + */ + public ResultSet getResultSet(Statement statement) { // Unused in DBFlute + return doGetResultSet(statement); + } + + /** + * Create result set. + * + * @param ps Prepared statement. (NotNull) + * @return Result set. (NotNull) + */ + public ResultSet createResultSet(PreparedStatement ps) { // Unused in + // DBFlute + return executeQuery(ps); + + // *Move to InternalBasicSelectHandler + // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // return resultSet; + // } + // final FetchNarrowingBean cb = + // FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread(); + // if (!isUseFetchNarrowingResultSetWrapper(cb)) { + // return resultSet; + // } + // final FetchNarrowingResultSetWrapper wrapper; + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + // outsideSqlContext.isOffsetByCursorForcedly(), + // outsideSqlContext.isLimitByCursorForcedly()); + // } else { + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + // false); + // } + // return wrapper; + } + + // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean + // cb) { + // if (cb.getSafetyMaxResultSize() > 0) { + // return true; + // } + // if (!cb.isFetchNarrowingEffective()) { + // return false;// It is not necessary to control. + // } + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // if (outsideSqlContext.isOffsetByCursorForcedly() || + // outsideSqlContext.isLimitByCursorForcedly()) { + // return true; + // } + // } + // if (cb.isFetchNarrowingSkipStartIndexEffective() || + // cb.isFetchNarrowingLoopCountEffective()) { + // return true; + // } + // return false; + // } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected ResultSet doGetResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected ResultSet executeQuery(PreparedStatement ps) { + try { + return ps.executeQuery(); + } catch (SQLException e) { + handleSQLException(e, ps); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,237 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.todolist.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.impl.ResultSetWrapper; + +/** + * The wrapper of fetch narrowing result set. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetWrapper extends ResultSetWrapper { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The real result set. (NotNull) */ + protected ResultSet _resultSet; + + /** The bean of fetch narrowing. (NotNull) */ + protected FetchNarrowingBean _fetchNarrowingBean; + + /** The counter of fetch. */ + protected long _fetchCounter; + + /** the counter of request. */ + protected long _requestCounter; + + /** Does it offset by cursor forcedly? */ + protected boolean _offsetByCursorForcedly; + + /** Does it limit by cursor forcedly? */ + protected boolean _limitByCursorForcedly; + + /** Does it skip to cursor end? */ + protected boolean _skipToCursorEnd; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param resultSet Original result set. (NotNull) + * @param fetchNarrowingBean Fetch-narrowing-bean. (NotNull) + * @param offsetByCursorForcedly Offset by cursor forcedly. + * @param limitByCursorForcedly Limit by cursor forcedly. + */ + public FetchNarrowingResultSetWrapper(ResultSet resultSet, + FetchNarrowingBean fetchNarrowingBean, + boolean offsetByCursorForcedly, boolean limitByCursorForcedly) { + super(resultSet); + + _resultSet = resultSet; + _fetchNarrowingBean = fetchNarrowingBean; + _offsetByCursorForcedly = offsetByCursorForcedly; + _limitByCursorForcedly = limitByCursorForcedly; + + skip(); + } + + //========================================================================== + // ========= + // Skip + // ==== + /** + * Skip to start-index. + */ + protected void skip() { + if (!isAvailableSkipRecord()) { + return; + } + final int skipStartIndex = getFetchNarrowingSkipStartIndex(); + if (isScrollableCursor()) { + try { + if (0 == skipStartIndex) { + _resultSet.beforeFirst(); + } else { + _resultSet.absolute(skipStartIndex); + } + _fetchCounter = _resultSet.getRow(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } else { + try { + while (true) { + if (_fetchCounter >= skipStartIndex) { + break; + } + if (!_resultSet.next()) { + _skipToCursorEnd = true;// [DBFLUTE-243] + break; + } + ++_fetchCounter; + } + } catch (SQLException e) { + handleSQLException(e, null); + } + } + } + + protected boolean isAvailableSkipRecord() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isOffsetByCursorForcedly()) { + return true; + } + if (isFetchNarrowingSkipStartIndexEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Next + // ==== + /** + * Next. + * + * @return Does the result set have next record? + * @throws SQLException + */ + public boolean next() throws SQLException { + final boolean hasNext = super.next(); + ++_requestCounter; + if (!isAvailableLimitLoopCount()) { + checkSafetyResult(hasNext); + return hasNext; + } + + if (hasNext + && _fetchCounter < getFetchNarrowingSkipStartIndex() + + getFetchNarrowingLoopCount()) { + ++_fetchCounter; + checkSafetyResult(true); + return true; + } else { + return false; + } + } + + protected boolean isAvailableLimitLoopCount() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isLimitByCursorForcedly()) { + return true; + } + if (isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + protected void checkSafetyResult(boolean hasNext) { + if (hasNext && getSafetyMaxResultSize() > 0 + && _requestCounter > (getSafetyMaxResultSize() + 1)) { + String msg = "You have already been in Danger Zone!"; + msg = msg + + " Please confirm your query or data of table: safetyMaxResultSize=" + + getSafetyMaxResultSize(); + throw new jp.sf.pal.todolist.db.allcommon.exception.DangerousResultSizeException( + msg, getSafetyMaxResultSize()); + } + } + + //========================================================================== + // ========= + // Fetch Option + // ============ + protected boolean isFetchNarrowingEffective() { + return _fetchNarrowingBean.isFetchNarrowingEffective(); + } + + protected boolean isFetchNarrowingSkipStartIndexEffective() { + return _fetchNarrowingBean.isFetchNarrowingSkipStartIndexEffective(); + } + + protected boolean isFetchNarrowingLoopCountEffective() { + return _fetchNarrowingBean.isFetchNarrowingLoopCountEffective(); + } + + protected int getFetchNarrowingSkipStartIndex() { + return _fetchNarrowingBean.getFetchNarrowingSkipStartIndex(); + } + + protected int getFetchNarrowingLoopCount() { + return _fetchNarrowingBean.getFetchNarrowingLoopCount(); + } + + public int getSafetyMaxResultSize() { + return _fetchNarrowingBean.getSafetyMaxResultSize(); + } + + protected boolean isScrollableCursor() { + try { + return !(_resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY); + } catch (SQLException e) { + handleSQLException(e, null); + return false;// Unreachable! + } + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public boolean isSkipToCursorEnd() { + return _skipToCursorEnd; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,116 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.impl.BeanMetaDataFactoryImpl; +import org.seasar.dao.impl.BeanMetaDataImpl; + +/** + * BeanMetaDataFactoryImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2BeanMetaDataFactoryImpl extends BeanMetaDataFactoryImpl { + + protected Map, BeanMetaData> _metaMap = Collections + .synchronizedMap(new HashMap, BeanMetaData>()); + + @Override + public BeanMetaData createBeanMetaData(Class beanClass) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass); + } + } + + @Override + public BeanMetaData createBeanMetaData(Class beanClass, + int relationNestLevel) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass, relationNestLevel); + } + } + + @Override + public BeanMetaData createBeanMetaData(DatabaseMetaData dbMetaData, + Class beanClass, int relationNestLevel) { + final BeanMetaData cachedMeta = findOrCreateCachedMetaIfNeeds( + dbMetaData, beanClass, relationNestLevel); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, + relationNestLevel); + } + } + + protected BeanMetaData findCachedMeta(Class beanClass) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } + } + return null; + } + + protected BeanMetaData findOrCreateCachedMetaIfNeeds( + DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, 0); + } + } + return null; + } + + @Override + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + @Override + public void initialize() { + final Class myBeanClass = getBeanClass(); + if (isDBFluteEntity(myBeanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(myBeanClass); + if (cachedMeta == null) { + _metaMap.put(myBeanClass, this); + } + } + super.initialize(); + } + }; + } + + protected boolean isDBFluteEntity(Class beanClass) { + return Entity.class.isAssignableFrom(beanClass); + } + + protected BeanMetaData getMetaFromCache(Class beanClass) { + return _metaMap.get(beanClass); + } + + /** + * Get the limit nest level of relation. + * + * @return The limit nest level of relation. + */ + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible to old version DBFlute + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoInterceptor.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoInterceptor.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1027 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.InternalMapContext; +import jp.sf.pal.todolist.db.allcommon.XLog; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.todolist.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.todolist.db.allcommon.helper.stacktrace.InvokeNameResult; +import jp.sf.pal.todolist.db.allcommon.helper.stacktrace.impl.InvokeNameExtractorImpl; +import jp.sf.pal.todolist.db.allcommon.util.TraceViewUtil; + +import org.aopalliance.intercept.MethodInvocation; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; + +/** + * The interceptor of S2Dao for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoInterceptor extends + org.seasar.framework.aop.interceptors.AbstractInterceptor { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoInterceptor.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The factory of DAO meta data. */ + protected DaoMetaDataFactory _daoMetaDataFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param daoMetaDataFactory The factory of DAO meta data. (NotNull) + */ + public S2DaoInterceptor(DaoMetaDataFactory daoMetaDataFactory) { + _daoMetaDataFactory = daoMetaDataFactory; + } + + //========================================================================== + // ========= + // Execute Status Log + // ================== + protected void log(String msg) { + XLog.log(msg); + } + + protected boolean isLogEnabled() { + return XLog.isLogEnabled(); + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + public Object invoke(MethodInvocation invocation) throws Throwable { + clearThreadLocal(); + try { + return dispatchInvoking(invocation); + } finally { + clearThreadLocal(); + } + } + + /** + * Dispatch invoking the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + protected Object dispatchInvoking(MethodInvocation invocation) + throws Throwable { + final Method method = invocation.getMethod(); + if (!isAbstract(method)) { + return invocation.proceed(); + } + + // - - - - - - - - - - - - - + // Initialize DAO meta data + // - - - - - - - - - - - - - + if (method.getName().equals("initializeDaoMetaData")) { + initializeSqlCommand(invocation); + return null;// The end! (Initilization Only) + } + + // - - - - - - - - - - - - + // Preprocess outside-SQL + // - - - - - - - - - - - - + preprocessOutsideSql(invocation); + + // - - - - - - - - - - - - - + // Preprocess condition-bean + // - - - - - - - - - - - - - + final ConditionBean cb = preprocessConditionBean(invocation); + + // - - - - - - - - - - + // Set up SQL-command + // - - - - - - - - - - + final SqlCommand cmd; + try { + long beforeCmd = 0; + if (isLogEnabled()) { + beforeCmd = System.currentTimeMillis(); + } + cmd = findSqlCommand(invocation); + if (isLogEnabled()) { + final long afterCmd = System.currentTimeMillis(); + if (beforeCmd != afterCmd) { + logSqlCommand(invocation, cmd, beforeCmd, afterCmd); + } + } + } finally { + if (isLogEnabled()) { + logInvocation(invocation); + } + } + + long before = 0; + if (isLogEnabled()) { + before = System.currentTimeMillis(); + } + + // - - - - - - - - - - + // Execute SQL-command + // - - - - - - - - - - + Object ret = null; + try { + ret = cmd.execute(invocation.getArguments()); + } catch (Exception e) { + if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) { + throw new EntityAlreadyUpdatedException( + (NotSingleRowUpdatedRuntimeException) e); + } + throw e; + } finally { + postprocessConditionBean(invocation, cb); + } + final Class retType = method.getReturnType(); + assertRetType(retType, ret); + + if (isLogEnabled()) { + final long after = System.currentTimeMillis(); + logReturn(invocation, retType, ret, before, after); + } + + // - - - - - - - - - - + // Convert and Return! + // - - - - - - - - - - + if (retType.isPrimitive()) { + return org.seasar.framework.util.NumberConversionUtil + .convertPrimitiveWrapper(retType, ret); + } else if (Number.class.isAssignableFrom(retType)) { + return org.seasar.framework.util.NumberConversionUtil + .convertNumber(retType, ret); + } else { + return ret; + } + } + + //========================================================================== + // ========= + // SqlCommand + // ========== + protected void initializeSqlCommand(MethodInvocation invocation) { + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + return;// Do nothing! + } else { + final Object[] arguments = invocation.getArguments(); + if (arguments != null && arguments.length > 0 + && arguments[0] instanceof String) { + final String methodName = (String) arguments[0]; + try { + dmd.getSqlCommand(methodName); + } catch (MethodNotFoundRuntimeException ignored) { + // Do nothing! + if (isLogEnabled()) { + log("Not Found the method: " + methodName + " msg=" + + ignored.getMessage()); + } + } + return; + } else { + String msg = "The method should have one string argument as method name: " + + invocation; + throw new IllegalStateException(msg); + } + } + } + + protected SqlCommand findSqlCommand(MethodInvocation invocation) { + final SqlCommand cmd; + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + cmd = dmd + .getSqlCommand(generateSpecifiedOutsideSqlUniqueKey(invocation)); + } else { + cmd = dmd.getSqlCommand(invocation.getMethod().getName()); + } + return cmd; + } + + protected String generateSpecifiedOutsideSqlUniqueKey( + MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + final String path = (String) args[0]; + final Object pmb = args[1]; + final OutsideSqlOption option = (OutsideSqlOption) args[2]; + Object resultTypeSpecification = null; + if (args.length > 3) { + resultTypeSpecification = args[3]; + } + return OutsideSqlContext.generateSpecifiedOutsideSqlUniqueKey( + invocation.getMethod().getName(), path, pmb, option, + resultTypeSpecification); + } + + //========================================================================== + // ========= + // Log Invocation + // ============== + protected void logInvocation(MethodInvocation invocation) { + final StackTraceElement[] stackTrace = new Exception().getStackTrace(); + final InvokeNameResult behaviorResult = extractBehaviorInvokeName(stackTrace); + + final String invokeClassName; + final String invokeMethodName; + if (!behaviorResult.isEmptyResult()) { + invokeClassName = behaviorResult.getSimpleClassName(); + invokeMethodName = behaviorResult.getMethodName(); + } else { + final Method method = invocation.getMethod(); + invokeClassName = extractInvocationExpression(method); + invokeMethodName = method.getName(); + } + final String expWithoutKakko = buildInvocationExpressionWithoutKakko( + invocation, invokeClassName, invokeMethodName); + + // Save behavior invoke name for error message. + putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()"); + + final String equalBorder = buildFitBorder("", "=", expWithoutKakko, + false); + final String invocationExpression = expWithoutKakko + "()"; + + log("/=====================================================" + + equalBorder + "=="); + log(" " + + invocationExpression); + log(" " + + equalBorder + "=/"); + + logPath(invocation, stackTrace, behaviorResult); + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (!outsideSqlContext.isProcedure()) {// [DBFlute-0.7.5] + Object[] args = invocation.getArguments(); + if (outsideSqlContext != null) { + log("path: " + outsideSqlContext.getOutsideSqlPath()); + } else { + log("path: " + getOutsideSqlPath(args)); + } + log("option: " + getOutsideSqlOption(args)); + } + } + } + + protected String buildInvocationExpressionWithoutKakko( + MethodInvocation invocation, String invokeClassName, + String invokeMethodName) { + if (invokeClassName.contains("OutsideSql") + && invokeClassName.endsWith("Executor")) { // OutsideSql + // Executor Handling + try { + final String originalName = invokeClassName; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final String tableDbName = outsideSqlContext + .getTableDbName(); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableDbName); + final String behaviorTypeName = dbmeta + .getBehaviorTypeName(); + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + + ".".length()); + invokeClassName = behaviorClassName + ".outsideSql()"; + if (originalName.endsWith("OutsideSqlEntityExecutor")) { + invokeClassName = invokeClassName + ".entityHandling()"; + } else if (originalName + .endsWith("OutsideSqlPagingExecutor")) { + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + invokeClassName = invokeClassName + ".autoPaging()"; + } else { + invokeClassName = invokeClassName + + ".manualPaging()"; + } + } else if (originalName + .endsWith("OutsideSqlCursorExecutor")) { + invokeClassName = invokeClassName + ".cursorHandling()"; + } + } else { + invokeClassName = "OutsideSql"; + } + } catch (RuntimeException ignored) { + log("Ignored exception occurred: msg=" + ignored.getMessage()); + } + } + String invocationExpressionWithoutKakko = invokeClassName + "." + + invokeMethodName; + if ("selectPage".equals(invokeMethodName)) { // Special Handling! + boolean resultTypeInteger = false; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + if (resultTypeSpecification != null + && resultTypeSpecification instanceof Class) { + final Class resultType = (Class) resultTypeSpecification; + if (Integer.class.isAssignableFrom(resultType)) { + resultTypeInteger = true; + } + } + } + if (resultTypeInteger + || "selectCount".equals(invocation.getMethod().getName())) { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():count"; + } else { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():paging"; + } + } + return invocationExpressionWithoutKakko; + } + + protected void logPath(MethodInvocation invocation, + StackTraceElement[] stackTrace, InvokeNameResult behaviorResult) { + final int bhvNextIndex = behaviorResult.getNextStartIndex(); + final InvokeNameResult clientResult = extractClientInvokeName( + stackTrace, bhvNextIndex); + final int clientFirstIndex = clientResult.getFoundFirstIndex(); + final InvokeNameResult byPassResult = extractByPassInvokeName( + stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex); + + final String clientInvokeName = clientResult.getInvokeName(); + final String byPassInvokeName = byPassResult.getInvokeName(); + final String behaviorInvokeName = behaviorResult.getInvokeName(); + if (clientInvokeName.trim().length() == 0 + && byPassInvokeName.trim().length() == 0) { + return; + } + + // Save client invoke name for error message. + if (!clientResult.isEmptyResult()) { + putObjectToMapContext("df:ClientInvokeName", clientInvokeName); + } + // Save by-pass invoke name for error message. + if (!byPassResult.isEmptyResult()) { + putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName); + } + + log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "..."); + } + + protected String buildFitBorder(String prefix, String element, + String lengthTargetString, boolean space) { + final int length = space ? lengthTargetString.length() / 2 + : lengthTargetString.length(); + final StringBuffer sb = new StringBuffer(); + sb.append(prefix); + for (int i = 0; i < length; i++) { + sb.append(element); + if (space) { + sb.append(" "); + } + } + if (space) { + sb.append(element); + } + return sb.toString(); + } + + protected InvokeNameResult extractClientInvokeName( + StackTraceElement[] stackTrace, final int startIndex) { + final List suffixList = Arrays.asList(new String[] { "Page", + "Action" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractByPassInvokeName( + StackTraceElement[] stackTrace, final int startIndex, + final int loopSize) { + final List suffixList = Arrays.asList(new String[] { "Service", + "ServiceImpl", "Facade", "FacadeImpl" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return loopSize >= 0 ? loopSize : 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractBehaviorInvokeName( + StackTraceElement[] stackTrace) { + final List suffixList = Arrays.asList(new String[] { "Bhv", + "BehaviorReadable", "BehaviorWritable", "PagingInvoker" }); + final List keywordList = Arrays.asList(new String[] { "Bhv$", + "BehaviorReadable$", "BehaviorWritable$" }); + final List ousideSql1List = Arrays + .asList(new String[] { "OutsideSql" }); + final List ousideSql2List = Arrays + .asList(new String[] { "Executor" }); + final List ousideSql3List = Arrays + .asList(new String[] { "Executor$" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + if (isClassNameEndsWith(className, suffixList)) { + return true; + } + if (isClassNameContains(className, keywordList)) { + return true; + } + if (isClassNameContains(className, ousideSql1List) + && (isClassNameEndsWith(className, ousideSql2List) || isClassNameContains( + className, ousideSql3List))) { + return true; + } + return false; + } + + public String filterSimpleClassName(String simpleClassName) { + return removeBasePrefixFromSimpleClassName(simpleClassName); + } + + public boolean isUseAdditionalInfo() { + return false; + } + + public int getStartIndex() { + return 0; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected boolean isClassNameEndsWith(String className, + List suffixList) { + for (String suffix : suffixList) { + if (className.endsWith(suffix)) { + return true; + } + } + return false; + } + + protected boolean isClassNameContains(String className, + List keywordList) { + for (String keyword : keywordList) { + if (className.contains(keyword)) { + return true; + } + } + return false; + } + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @param stackTrace Stack log. (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + protected InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource, + StackTraceElement[] stackTrace) { + final InvokeNameExtractorImpl extractor = new InvokeNameExtractorImpl(); + extractor.setStackTrace(stackTrace); + return extractor.extractInvokeName(resource); + } + + /** + * @param method The invoked method. (NotNull) + * @return The expression of invocation. (NotNull) + */ + protected String extractInvocationExpression(Method method) { + final Class declaringClass = method.getDeclaringClass(); + return removeBasePrefixFromSimpleClassName(declaringClass + .getSimpleName()); + } + + /** + * @param simpleClassName The simple class name. (NotNull) + * @return The simple class name removed the base prefix. (NotNull) + */ + protected String removeBasePrefixFromSimpleClassName(String simpleClassName) { + if (!simpleClassName.startsWith("Bs")) { + return simpleClassName; + } + final int prefixLength = "Bs".length(); + if (!Character.isUpperCase(simpleClassName.substring(prefixLength) + .charAt(0))) { + return simpleClassName; + } + if (simpleClassName.length() <= prefixLength) { + return simpleClassName; + } + return "" + simpleClassName.substring(prefixLength); + } + + //========================================================================== + // ========= + // Log SqlCommand + // ============== + protected void logSqlCommand(MethodInvocation invocation, SqlCommand cmd, + long beforeCmd, long afterCmd) { + log("SqlCommand Initialization Cost: [" + + TraceViewUtil.convertToPerformanceView(afterCmd - beforeCmd) + + "]"); + } + + protected void assertRetType(Class retType, Object ret) { + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof java.util.List)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof Entity)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } + } + + //========================================================================== + // ========= + // Log Return + // ========== + protected void logReturn( + org.aopalliance.intercept.MethodInvocation invocation, + Class retType, Object ret, long before, long after) + throws Throwable { + try { + final String daoResultPrefix = "===========/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + " - "; + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected list: null]"); + } else { + final java.util.List ls = (java.util.List) ret; + if (ls.isEmpty()) { + log(daoResultPrefix + "Selected list: 0]"); + } else if (ls.size() == 1 && ls.get(0) instanceof Number) { + log(daoResultPrefix + "Selected count: " + ls.get(0) + + "]"); + } else { + log(daoResultPrefix + "Selected list: " + ls.size() + + " first=" + ls.get(0) + "]"); + } + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (int[].class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final int[] resultArray = (int[]) ret; + if (resultArray.length == 0) { + log(daoResultPrefix + "All updated count: 0]"); + } else { + final StringBuilder sb = new StringBuilder(); + boolean resultExpressionScope = true; + int resultCount = 0; + int loopCount = 0; + for (int element : resultArray) { + resultCount = resultCount + element; + if (resultExpressionScope) { + if (loopCount <= 10) { + if (sb.length() == 0) { + sb.append(element); + } else { + sb.append(",").append(element); + } + } else { + sb.append(",").append("..."); + resultExpressionScope = false; + } + } + ++loopCount; + } + sb.insert(0, "{").append("}"); + log(daoResultPrefix + "All updated count: " + + resultCount + " result=" + sb + "]"); + } + } + } else { + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + log(daoResultPrefix + "Selected count: " + ret + "]"); + } else { + log(daoResultPrefix + "Result: " + ret + "]"); + } + } + log(" "); + } catch (Exception e) { + String msg = "Result object debug threw the exception: methodName="; + msg = msg + invocation.getMethod().getName() + " retType=" + + retType; + msg = msg + " ret=" + ret; + _log.warn(msg, e); + throw e; + } + } + + //========================================================================== + // ========= + // Pre Post Process + // ================ + // ----------------------------------------------------- + // OutsideSql + // ---------- + protected void preprocessOutsideSql(MethodInvocation invocation) { + final Class outsideSqlType = jp.sf.pal.todolist.db.allcommon.annotation.OutsideSql.class; + final jp.sf.pal.todolist.db.allcommon.annotation.OutsideSql outsideSql = invocation + .getMethod().getAnnotation(outsideSqlType); + + // Traditional OutsideSql + if (outsideSql != null + && (outsideSql.dynamicBinding() || outsideSql.offsetByCursor() + || outsideSql.offsetByCursor() || outsideSql + .limitByCursor())) { + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(outsideSql.dynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(outsideSql + .offsetByCursor()); + outsideSqlContext.setLimitByCursorForcedly(outsideSql + .limitByCursor()); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return; + } + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(args[0] + .getClass())) { + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) args[0]); + } + return; + } + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + if (isOutsideSqlDaoMethodSelect(invocation)) { + setupOutsideSqlContextSelect(invocation); + } else { + setupOutsideSqlContextExecute(invocation); + } + return; + } + } + + protected boolean isSpecifiedOutsideSql(MethodInvocation invocation) { + return OutsideSqlDao.class.isAssignableFrom(getTargetClass(invocation)); + } + + // - - - - - - - - - - - - + // Select + // - - - + protected boolean isOutsideSqlDaoMethodSelect(MethodInvocation invocation) { + return invocation.getMethod().getName().startsWith("select"); + } + + protected void setupOutsideSqlContextSelect(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 4) { + String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final Object resultTypeSpecification = args[3]; + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setResultTypeSpecification(resultTypeSpecification); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupOutsideSqlContextExecute(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Common + // - - - + protected String getOutsideSqlPath(Object[] args) { + return (String) args[0]; + } + + protected Object getOutsideSqlParameterBean(Object[] args) { + return args[1]; + } + + protected OutsideSqlOption getOutsideSqlOption(Object[] args) { + return (OutsideSqlOption) args[2]; + } + + protected void setupOutsideSqlFetchNarrowingBean(Object pmb, + OutsideSqlOption option) { + if (pmb == null + || !FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(pmb + .getClass())) { + return; + } + final FetchNarrowingBean fetchNarrowingBean = (FetchNarrowingBean) pmb; + if (option.isManualPaging()) { + fetchNarrowingBean.ignoreFetchNarrowing(); + } + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread(fetchNarrowingBean); + } + + // ----------------------------------------------------- + // ConditionBean + // ------------- + /** + * Pre-process conditionBean. + *

    + * If this method is condition bean select target, make dynamic SQL. Else + * nothing. + * + * @param invocation Method invocation. (NotNull) + * @return ConditionBean. (Nullable) + */ + protected ConditionBean preprocessConditionBean(MethodInvocation invocation) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (outsideSqlContext != null) { + return null; // Because it has already finished setting up + // fetchNarrowingBean for outsideSql here. + } + + final ConditionBean cb; + { + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return null; + } + final Object arg0 = args[0]; + if (arg0 == null) { + return null; + } + if (!ConditionBeanContext.isTheTypeConditionBean(arg0.getClass())) {// The + // argument + // is + // not + // condition + // - + // bean + // ... + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(arg0 + .getClass()) + && !isSelectCountIgnoreFetchScopeMethod(invocation)) { + // Fetch-narrowing-bean and Not select count! + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) arg0); + } + return null; + } + cb = (ConditionBean) arg0; + } + + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xsetupSelectCountIgnoreFetchScope(); + } else { + FetchNarrowingBeanContext.setFetchNarrowingBeanOnThread(cb); + } + + ConditionBeanContext.setConditionBeanOnThread(cb); + return cb; + } + + /** + * Post-process condition-bean. + * + * @param invocation Method invocation. (NotNull) + * @param cb Condition-bean. (Nullable) + */ + protected void postprocessConditionBean(MethodInvocation invocation, + ConditionBean cb) { + if (cb == null) { + return; + } + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xafterCareSelectCountIgnoreFetchScope(); + } + } + + // ----------------------------------------------------- + // Clear Thread Local + // ------------------ + protected void clearThreadLocal() { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + OutsideSqlContext.clearOutsideSqlContextOnThread(); + } + if (FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + // Because there is possible that fetch narrowing has been ignored + // for manualPaging of outsideSql. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread() + .restoreIgnoredFetchNarrowing(); + + FetchNarrowingBeanContext.clearFetchNarrowingBeanOnThread(); + } + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + ConditionBeanContext.clearConditionBeanOnThread(); + } + if (InternalMapContext.isExistInternalMapContextOnThread()) { + InternalMapContext.clearInternalMapContextOnThread(); + } + } + + //========================================================================== + // ========= + // Context Helper + // ============== + protected OutsideSqlContext getOutsideSqlContext() { + if (!OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + return null; + } + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + return outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql(); + } + + protected void putObjectToMapContext(String key, Object value) { + InternalMapContext.setObject(key, value); + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is select count ignore-fetch-scope method? + * + * @param invocation Method invocation. (NotNull) + * @return Determination. + */ + protected boolean isSelectCountIgnoreFetchScopeMethod( + MethodInvocation invocation) { + final String name = invocation.getMethod().getName(); + return name.startsWith("readCount") || name.startsWith("selectCount"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Is the method abstract? + * + * @param method Method. (NotNull) + * @return Determination. (NotNull) + */ + public boolean isAbstract(Method method) { + final int mod = method.getModifiers(); + return Modifier.isAbstract(mod); + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoInterceptor.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,20 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import jp.sf.pal.todolist.db.allcommon.jdbc.LatestSqlProvider; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +/** + * The provider of latest SQL as S2Dao. This instance should be singleton. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoLatestSqlProvider implements LatestSqlProvider { + + public String getDisplaySql() { + return InternalSqlLogRegistry.peekCompleteSql(); + } + + public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoLatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataExtension.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1460 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.BehaviorSelector; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.annotation.OutsideSql; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException; +import jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException; +import jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException; +import jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.rshandler.InternalBeanArrayMetaDataResultSetHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.rshandler.InternalBeanListMetaDataResultSetHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteAutoStaticCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteBatchAutoStaticCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteQueryAutoDynamicCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalInsertAutoDynamicCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalInsertBatchAutoStaticCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalProcedureCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateAutoDynamicCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateBatchAutoStaticCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateDynamicCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateModifiedOnlyCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateQueryAutoDynamicCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.SqlCommand; +import org.seasar.dao.TableNaming; +import org.seasar.dao.dbms.DbmsManager; +import org.seasar.dao.impl.BeanMetaDataImpl; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.impl.ResultSetHandlerFactoryImpl; +import org.seasar.dao.impl.SelectDynamicCommand; +import org.seasar.dao.impl.UpdateAutoStaticCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.MethodUtil; + +/** + * The extension of DaoMetaDataImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoMetaDataExtension extends DaoMetaDataImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataExtension.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** Bean enhancer. */ + protected BeanEnhancer beanEnhancer; + + /** The factory of annotation reader. */ + protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory; + + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The selector of behavior. {Since DBFlute-0.7.1} */ + protected BehaviorSelector _behaviorSelector; + + /** The lock monitor of method initialization. */ + protected Object _methodInitializationLockMonitor = new Object(); + + /** The determination of internal debug. {Since DBFlute-0.6.2} */ + protected boolean _internalDebug; + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataExtension() { + } + + //========================================================================== + // ========= + // Initialize Override + // =================== + @Override + public void initialize() { + beanClass = daoAnnotationReader.getBeanClass(); + daoInterface = getDaoInterface(daoClass); + daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final Connection conn = getConnection();// It is first impact to + // Database! + try { + final DatabaseMetaData dbMetaData = getMetaData(conn); + dbms = DbmsManager.getDbms(getDatabaseProductName(dbMetaData)); + } finally { + close(conn); + } + this.beanMetaData = beanMetaDataFactory.createBeanMetaData( + daoInterface, beanClass); + checkSingleRowUpdateForAll = daoAnnotationReader + .isCheckSingleRowUpdate(); + + // Comment out for lazy-load! + // setupSqlCommand(); + } + + //========================================================================== + // ========= + // SqlCommand Setup Override + // ========================= + @Override + public SqlCommand getSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + synchronized (_methodInitializationLockMonitor) { + cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + if (_log.isDebugEnabled()) { + _log + .debug("...Getting sqlCommand as cache because the previous thread have already initilized."); + } + return cmd; + } + if (_log.isDebugEnabled()) { + _log.debug("...Initializing sqlCommand for " + methodName + + "()."); + } + cmd = initializeSqlCommand(methodName); + } + return cmd; + } + + protected SqlCommand initializeSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql()) { + return initializeSpecifiedOutsideSqlCommand(methodName, + outsideSqlContext); + } + } + final Method[] methods = daoBeanDesc.getMethods(methodName); + if (methods.length == 1 && MethodUtil.isAbstract(methods[0])) { + setupMethod(methods[0]); + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + throw new MethodNotFoundRuntimeException(daoClass, methodName, null); + } + + protected SqlCommand initializeSpecifiedOutsideSqlCommand( + String sqlCommandKey, OutsideSqlContext outsideSqlContext) + throws MethodNotFoundRuntimeException { + final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext + .getMethodName());// By real method name. + if (methods.length == 1 + && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) { + final Method method = methods[0]; + if (isOutsideSqlDaoMethodSelect(method)) { + setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, + outsideSqlContext); + } else if (isOutsideSqlDaoMethodCall(method)) { + setupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, + outsideSqlContext); + } else { + setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, + outsideSqlContext); + } + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey); + if (cmd != null) { + return cmd; + } + String msg = "Internal Error! The sql-command is not found:"; + msg = msg + " sqlCommandKey=" + sqlCommandKey; + msg = msg + " sqlCommands=" + sqlCommands; + throw new IllegalStateException(msg); + } + + protected boolean isOutsideSqlDaoMethodSelect(Method method) { + return method.getName().startsWith("select"); + } + + protected boolean isOutsideSqlDaoMethodCall(Method method) { + return method.getName().startsWith("call"); + } + + //========================================================================== + // ========= + // Assert Override + // =============== + @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override + protected void setupMethodByAuto(Method method) { + final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); + if (outsideSql != null) { + String msg = "This method '" + method.getName() + + "()' should use Outside Sql but the file was not found!"; + msg = msg + " Expected sql file name is '" + + method.getDeclaringClass().getSimpleName() + "_" + + method.getName() + ".sql'"; + throw new IllegalStateException(msg); + } + super.setupMethodByAuto(method); + } + + //========================================================================== + // ========= + // ConditionBean Override + // ====================== + @Override + protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. + final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); + final String[] argNames = daoAnnotationReader.getArgNames(method); + final String query = daoAnnotationReader.getQuery(method); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + final Class[] types = method.getParameterTypes(); + final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, + query); + cmd.setArgNames(argNames); + cmd.setArgTypes(types); + putSqlCommand(method.getName(), cmd); + return true; + } + + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + // For condition-bean! + protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); + return cmd; + } + + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + //========================================================================== + // ========= + // Insert and Update and Delete By Auto Override + // ============================================= + // ----------------------------------------------------- + // Insert + // ------ + @Override + protected void setupInsertMethodByAuto(final Method method) { + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand command; + if (isUpdateSignatureForBean(method)) { + final InternalInsertAutoDynamicCommand cmd = new InternalInsertAutoDynamicCommand(); + cmd.setBeanMetaData(getBeanMetaData()); + cmd.setDataSource(dataSource); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd.setPropertyNames(propertyNames); + cmd.setStatementFactory(statementFactory); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + command = cmd; + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + final InternalInsertBatchAutoStaticCommand cmd = new InternalInsertBatchAutoStaticCommand( + dataSource, statementFactory, getBeanMetaData(), + propertyNames, returningRows); + command = cmd; + } + putSqlCommand(method.getName(), command); + } + + // ----------------------------------------------------- + // Update + // ------ + @Override + protected void setupUpdateMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalUpdateQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + if (isUnlessNull(method.getName())) { + cmd = createInternalUpdateAutoDynamicCommand(method, + propertyNames); + } else if (isModifiedOnly(method.getName())) { + cmd = createInternalUpdateModifiedOnlyCommand(method, + propertyNames); + } else { + cmd = createInternalUpdateAutoStaticCommand(method, + propertyNames); + } + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalUpdateBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand( + final Method method, final String[] propertyNames) { + final UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand( + dataSource, statementFactory, beanMetaData, propertyNames); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand createInternalUpdateAutoDynamicCommand( + Method method, String[] propertyNames) { + final InternalUpdateAutoDynamicCommand cmd = newUpdateAutoDynamicCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand newUpdateAutoDynamicCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateAutoDynamicCommand(ds, sf); + } + + protected InternalUpdateModifiedOnlyCommand createInternalUpdateModifiedOnlyCommand( + final Method method, final String[] propertyNames) { + final InternalUpdateModifiedOnlyCommand cmd = newInternalUpdateModifiedOnlyCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateModifiedOnlyCommand newInternalUpdateModifiedOnlyCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateModifiedOnlyCommand(ds, sf); + } + + protected InternalUpdateBatchAutoStaticCommand createInternalUpdateBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalUpdateBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows, isUpdateVersionNoAutoIncrementOnMemory(method)) { + @Override + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Delete + // ------ + @Override + protected void setupDeleteMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalDeleteQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + cmd = createInternalDeleteAutoStaticCommand(method, propertyNames); + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalDeleteBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected InternalDeleteAutoStaticCommand createInternalDeleteAutoStaticCommand( + final Method method, final String[] propertyNames) { + final InternalDeleteAutoStaticCommand cmd = new InternalDeleteAutoStaticCommand( + dataSource, statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + return cmd; + } + + protected InternalDeleteBatchAutoStaticCommand createInternalDeleteBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalDeleteBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows) { + @Override + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Common Helper + // ------------- + protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) { + if (isNonstrictMethod(method)) { + return createNonConcurrencyBmdFactory().createBeanMetaData( + getBeanClass()); + } else { + return getBeanMetaData(); + } + } + + protected boolean isUpdateVersionNoAutoIncrementOnMemory(Method method) { + return !isNonstrictMethod(method); + } + + protected boolean isNonstrictMethod(Method method) { + return method.getName().contains("Nonstrict"); + } + + protected BeanMetaDataFactory createNonConcurrencyBmdFactory() { + final S2BeanMetaDataFactoryImpl nonConcurrencyBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + public boolean hasVersionNoPropertyType() { + return false; + } + + public boolean hasTimestampPropertyType() { + return false; + } + }; + } + }; + nonConcurrencyBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + nonConcurrencyBmdFactory + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + nonConcurrencyBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + nonConcurrencyBmdFactory.setTableNaming(this.tableNaming); + nonConcurrencyBmdFactory.setDataSource(this.dataSource); + nonConcurrencyBmdFactory + .setDaoNamingConvention(this.daoNamingConvention); + nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer); + return nonConcurrencyBmdFactory; + } + + protected boolean isFirstArgumentConditionBean(final Method method) { + final Class[] pmbTypes = method.getParameterTypes(); + return pmbTypes.length > 0 + && ConditionBean.class.isAssignableFrom(pmbTypes[0]); + } + + protected void handleBatchUpdateResultWithOptimisticLock( + PreparedStatement ps, List list, int[] result, Method method) + throws SQLException { + if (ConditionBeanContext.isOracle()) { + final int updateCount = ps.getUpdateCount(); + handleBatchUpdateResultWithOptimisticLockByUpdateCount(list, + updateCount, method); + } else { + handleBatchUpdateResultWithOptimisticLockByResult(list, result, + method); + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByUpdateCount( + List list, int updateCount, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (updateCount < 0) { + return;// for Safety! + } + final int entityCount = list.size(); + if (updateCount < entityCount) { + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " updateCount=" + updateCount; + msg = msg + " entityCount=" + entityCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(0), 0, + updateCount); + } + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByResult( + List list, Object result, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (!(result instanceof int[])) { + return;// for Safety! + } + final int[] updatedCountArray = (int[]) result; + final int entityCount = list.size(); + int index = 0; + boolean alreadyUpdated = false; + for (int oneUpdateCount : updatedCountArray) { + if (entityCount <= index) { + break;// for Safety! + } + if (oneUpdateCount == 0) { + alreadyUpdated = true; + break; + } else if (oneUpdateCount > 1) { + String msg = "The entity updated two or more records in batch update:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updatedCount=" + oneUpdateCount; + msg = msg + " allEntities=" + list; + throw new EntityDuplicatedException(msg); + } + ++index; + } + if (alreadyUpdated) { + int updateCount = 0; + for (int oneUpdateCount : updatedCountArray) { + updateCount = updateCount + oneUpdateCount; + } + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updateCount=" + updateCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(index), + 0, updateCount); + } + } + } + + //========================================================================== + // ========= + // OutsideSql Override + // =================== + // ----------------------------------------------------- + // Normal OutsideSql + // ----------------- + @Override + protected void setupSelectMethodByManual(Method method, String sql) { + final Class[] pmbTypes = method.getParameterTypes(); + final String[] argNames = this.daoAnnotationReader.getArgNames(method); + final Class[] argTypes; + if (pmbTypes != null + && pmbTypes.length > 0 + && CursorHandler.class + .isAssignableFrom(pmbTypes[pmbTypes.length - 1])) { + argTypes = new Class[pmbTypes.length - 1]; + for (int i = 0; i < pmbTypes.length - 1; i++) { + argTypes[i] = pmbTypes[i]; + } + } else { + argTypes = pmbTypes; + } + final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method); + registerSqlCommand(method.getName(), method, sql, argNames, argTypes, + myBeanMetaData); + } + + protected BeanMetaData getOutsideSqlBeanMetaData(Method method) { + final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method); + if (beanClass4SelectMethodByManual.equals(getBeanClass())) { + return getBeanMetaData(); + } + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + // - - - - - - - - - - - - + // Select + // - - - + protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + // - - - - - - - - - - - - - - - - + // Create customized BeanMetaData. + // - - - - - - - - - - - - - - - - + final Class lastestArguementType = method.getParameterTypes()[method + .getParameterTypes().length - 1]; + final ResultSetHandler myResultSetHandler; + if (Class.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // EntityHandling + // - - - - - - - - + final Class customizeEntityType = (Class) resultTypeSpecification; + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType); + if (List.class.isAssignableFrom(method.getReturnType())) { + myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + myBeanMetaData, customizeEntityType); + } else { + throw new UnsupportedOperationException( + "The return type of method is unsupported: method.getReturnType()=" + + method.getReturnType()); + // myResultSetHandler = + // createSpecifiedOutsideSqlCustomizeBeanResultSetHandler + // (myBeanMetaData, customizeEntityType); + } + } else if (CursorHandler.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // CursorHandling + // - - - - - - - - + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method); + myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData); + } else { + String msg = "The lastestArguementType is unsupported:"; + msg = msg + " lastestArguementType=" + lastestArguementType; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + + // - - - - - - - - - - - + // Register Sql-Command. + // - - - - - - - - - - - + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + myResultSetHandler); + } + + protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData( + Class clazz) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(clazz); + } + + /** + * Create the handler of result set of specified outside-sql for the list of + * customize bean. + * + * @param specifiedBeanMetaData Specified bean meta data. (NotNull) + * @param customizeEntityType The type of customize entity. (NotNull) + * @return The handler of result set. (NotNull) + */ + protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + BeanMetaData specifiedBeanMetaData, Class customizeEntityType) { + final ValueType valueType = ValueTypes + .getValueType(customizeEntityType); + if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { + return new InternalObjectListResultSetHandler(valueType); + } + final InternalRowCreator rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData); + final InternalRelationRowCreator relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData); + return new InternalBeanListMetaDataResultSetHandler( + specifiedBeanMetaData, rowCreator, relationRowCreator); + } + + protected InternalRowCreator createSpecifiedOutsideSqlInternalRowCreator( + BeanMetaData bmd) { + final Class clazz = bmd.getBeanClass(); + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createSpecifiedOutsideSqlInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); + } + + protected class InternalObjectListResultSetHandler implements + ResultSetHandler { + private ValueType valueType; + + public InternalObjectListResultSetHandler(ValueType valueType) { + this.valueType = valueType; + } + + public Object handle(ResultSet rs) throws SQLException { + final List ret = new ArrayList(); + while (rs.next()) { + ret.add(valueType.getValue(rs, 1)); + } + return ret; + } + } + + protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData( + Method method) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler( + BeanMetaData specifiedBeanMetaData) { + return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This + // is + // dummy + // for + // cursor + // handling + // ! + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + final InternalUpdateDynamicCommand cmd = new InternalUpdateDynamicCommand( + dataSource, statementFactory) { + @Override + public Object execute(Object[] args) { + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + Object arg = args[1]; + return super.execute(new Object[] { arg }); + } + }; + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + // - - - - - - - - - - - - + // Call Procedure + // - - - - - - - + protected void setupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final Object pmb = outsideSqlContext.getParameterBean(); + final String procedureName = outsideSqlContext.getOutsideSqlPath(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final InternalProcedureMetaDataFactory factory = createInternalProcedureMetaDataFactory(); + factory.setValueTypeFactory(valueTypeFactory); + final Class pmbType = pmb != null ? pmb.getClass() : null; + final InternalProcedureMetaData metaData = factory + .createProcedureMetaData(procedureName, pmbType); + final InternalProcedureCommand cmd = createInternalProcedureCommand( + method, metaData); + putSqlCommand(sqlCommandKey, cmd); + } + + protected InternalProcedureMetaDataFactory createInternalProcedureMetaDataFactory() { + return new InternalProcedureMetaDataFactory(); + } + + protected InternalProcedureCommand createInternalProcedureCommand( + Method method, InternalProcedureMetaData metaData) { + final ResultSetHandler resultSetHandler = createResultSetHandler(method); + return new InternalProcedureCommand(dataSource, resultSetHandler, + statementFactory, metaData); + } + + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() { + final S2BeanMetaDataFactoryImpl originalBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return newOutsideSqlCustomizeBeanMetaDataImpl(); + } + }; + originalBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + originalBmdFactory + .setPropertyTypeFactoryBuilder(createOutsideSqlPropertyTypeFactoryBuilder()); + originalBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + originalBmdFactory.setTableNaming(this.tableNaming); + originalBmdFactory.setDataSource(this.dataSource); + originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention); + originalBmdFactory.setBeanEnhancer(this.beanEnhancer); + return originalBmdFactory; + } + + protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() { + return new OutsideSqlCustomizeBeanMetaDataImpl(); + } + + protected static class OutsideSqlCustomizeBeanMetaDataImpl extends + BeanMetaDataImpl { + // Though nothing to override, it uses original class just in case. + } + + protected S2DaoPropertyTypeFactoryBuilderExtension createOutsideSqlPropertyTypeFactoryBuilder() { + final S2DaoPropertyTypeFactoryBuilderExtension impl = new S2DaoPropertyTypeFactoryBuilderExtension(); + if (columnNaming == null) { + String msg = "Internal Error! The columnNaming should not be null! {Failed to Injection!}"; + throw new IllegalStateException(msg); + } + impl.setColumnNaming(columnNaming); + impl.setValueTypeFactory(valueTypeFactory); + return impl; + } + + protected Class getOutsideSqlDefaultBeanClass(Method method) { + final Class retType = method.getReturnType(); + if (java.util.List.class.isAssignableFrom(retType)) { + final Class elementType = InternalMethodUtil + .getElementTypeOfListFromReturnMethod(method); + if (elementType != null) { + return elementType; + } else { + return getBeanClass(); + } + } else if (retType.isArray()) { + return retType.getComponentType(); + } else if (retType.isPrimitive() + || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) { + return getBeanClass(); + } else { + return retType; + } + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + BeanMetaData myBeanMetaData) { + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + createResultSetHandler(myBeanMetaData, method)); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + ResultSetHandler myResultSetHandler) { + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(myResultSetHandler); + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + S2DaoSelectDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + InternalUpdateDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + //========================================================================== + // ========= + // Common Handlnig + // =============== + @Override + protected void putSqlCommand(String methodName, SqlCommand cmd) { + sqlCommands.put(methodName, cmd); + } + + protected boolean isCheckSingleRowUpdate(Method method) { + return checkSingleRowUpdateForAll + & daoAnnotationReader.isCheckSingleRowUpdate(method); + } + + //========================================================================== + // ========= + // Customize SelectDynamicCommand Creation + // ======================================= + /** + * Create the customize select dynamic command that is for all select SQL on + * DBFlute. + * + * @param handler The handler of result set. (NotNull) + * @return The customize select dynamic command. (NotNull) + */ + protected S2DaoSelectDynamicCommand createCustomizeSelectDynamicCommand( + ResultSetHandler handler) { + return new S2DaoSelectDynamicCommand(dataSource, statementFactory, + handler); + } + + //========================================================================== + // ========= + // ResultSetHandler Override + // ========================= + @Override + protected ResultSetHandler createResultSetHandler(Method method) { + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, beanMetaData, method); + } + + protected ResultSetHandler createResultSetHandler( + BeanMetaData specifiedBeanMetaData, Method method) {// For specified + // BeanMetaData + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, specifiedBeanMetaData, method); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected DatabaseMetaData getMetaData(Connection conn) { + try { + return conn.getMetaData(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected String getDatabaseProductName(DatabaseMetaData dbMetaData) { + try { + return dbMetaData.getDatabaseProductName(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Exception Handlnig + // ================== + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // ResultSetHandlerFactoryImpl Extension + // ===================================== + public static class ResultSetHandlerFactoryExtension extends + ResultSetHandlerFactoryImpl { + public ResultSetHandlerFactoryExtension() { + super(); + } + + @Override + protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25) + return createInternalRowCreator(null); + } + + @Override + protected RelationRowCreator createRelationRowCreator() { + return createInternalRelationRowCreator(null); + } + + @Override + protected ResultSetHandler createBeanListMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanListMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + @Override + protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanArrayMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + protected InternalRowCreator createInternalRowCreator(BeanMetaData bmd) { + final Class clazz = bmd != null ? bmd.getBeanClass() : null; + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); // Not yet implemented + // about performance + // tuning! + } + } + + //========================================================================== + // ========= + // Vert Internal + // ============= + protected static class InternalMethodUtil { + public static Class getElementTypeOfListFromReturnMethod(Method method) { + return InternalReflectionUtil + .getElementTypeOfListFromReturnType(method); + } + } + + protected static class InternalReflectionUtil { + public static Class getElementTypeOfList(final Type parameterizedList) { + if (!(parameterizedList instanceof ParameterizedType)) { + return null; + } + final ParameterizedType parameterizedType = ParameterizedType.class + .cast(parameterizedList); + final Type rawType = parameterizedType.getRawType(); + if (!(rawType instanceof Class)) { + return null; + } + final Class rawClass = Class.class.cast(rawType); + if (!rawClass.isAssignableFrom(List.class)) { + return null; + } + final Type[] actualTypeArgument = parameterizedType + .getActualTypeArguments(); + if (actualTypeArgument == null || actualTypeArgument.length != 1) { + return null; + } + if (!(actualTypeArgument[0] instanceof Class)) { + return null; + } + return Class.class.cast(actualTypeArgument[0]); + } + + public static Class getElementTypeOfListFromParameterType( + final Method method, final int parameterPosition) { + final Type[] pmbTypes = method.getGenericParameterTypes(); + return getElementTypeOfList(pmbTypes[parameterPosition]); + } + + public static Class getElementTypeOfListFromReturnType( + final Method method) { + return getElementTypeOfList(method.getGenericReturnType()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Sql File Encoding + // ----------------- + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + // ----------------------------------------------------- + // Bean Enhancer + // ------------- + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Annotation Reader Factory + // ------------------------- + public void setAnnotationReaderFactory( + org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + public BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + public void setBehaviorSelector(final BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(final boolean internalDebug) { + this._internalDebug = internalDebug; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,655 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import jp.sf.pal.todolist.db.allcommon.DBFluteConfig; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +import org.seasar.dao.AnnotationReaderFactory; +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.DaoAnnotationReader; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.DaoNamingConvention; +import org.seasar.dao.DtoMetaDataFactory; +import org.seasar.dao.ProcedureMetaDataFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.ResultSetHandlerFactory; +import org.seasar.dao.TableNaming; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.pager.PagingSqlRewriter; +import org.seasar.extension.jdbc.ResultSetFactory; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.Disposable; +import org.seasar.framework.util.DisposableUtil; + +/** + * The implementation of DaoMetaDataFactory for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoMetaDataFactoryImpl implements DaoMetaDataFactory, Disposable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataFactoryImpl.class); + + // ----------------------------------------------------- + // For Logging + // ----------- + /** The binding annotation for xaDataSource. {bindingType=may} */ + public static final String xaDataSource_BINDING = "bindingType=may"; + + // ----------------------------------------------------- + // Factory Basic + // ------------- + public static final String dataSource_BINDING = "bindingType=must"; + + public static final String annotationReaderFactory_BINDING = "bindingType=must"; + + public static final String valueTypeFactory_BINDING = "bindingType=must"; + + public static final String beanMetaDataFactory_BINDING = "bindingType=must"; + + public static final String daoNamingConvention_BINDING = "bindingType=must"; + + public static final String resultSetHandlerFactory_BINDING = "bindingType=must"; + + public static final String dtoMetaDataFactory_BINDING = "bindingType=must"; + + public static final String procedureMetaDataFactory_BINDING = "bindingType=must"; + + public static final String pagingSQLRewriter_BINDING = "bindingType=may"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Factory Basic + // ------------- + protected DataSource dataSource; + + protected AnnotationReaderFactory annotationReaderFactory; + + protected ValueTypeFactory valueTypeFactory; + + protected BeanMetaDataFactory beanMetaDataFactory; + + protected DaoNamingConvention daoNamingConvention; + + protected ResultSetHandlerFactory resultSetHandlerFactory; + + protected DtoMetaDataFactory dtoMetaDataFactory; + + protected ProcedureMetaDataFactory procedureMetaDataFactory; + + protected PagingSqlRewriter pagingSqlRewriter; + + protected Map daoMetaDataCache = new HashMap(); + + protected boolean initialized; + + protected boolean useDaoClassForLog; + + protected String sqlFileEncoding; + + protected BeanEnhancer beanEnhancer; + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The lock monitor of DAO meta data initialization. */ + protected Object _daoMetaDataInitializationLockMonitor = new Object(); + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataFactoryImpl(DataSource dataSource, + AnnotationReaderFactory annotationReaderFactory, + XADataSource xaDataSource) { + this.dataSource = dataSource; + this.annotationReaderFactory = annotationReaderFactory; + + _log + .info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}"); + showInformation(dataSource, xaDataSource); + + // Stop the LinkageError! + ConditionBeanContext.initialize(); + + initializeDatabaseProductNameOfContext(xaDataSource); + + handleSqlLogRegistry(); + + DBFluteConfig.getInstance().lock(); + _log.info("* * * * */"); + } + + protected void showInformation(javax.sql.DataSource dataSource, + javax.sql.XADataSource xaDataSource) { + final StringBuilder sb = new StringBuilder(); + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + final String url = xaDataSourceImpl.getURL(); + final String user = xaDataSourceImpl.getUser(); + sb.append(" [XADataSource]:").append(getLineSeparator()); + sb.append(" driver = " + driverClassName).append( + getLineSeparator()); + sb.append(" url = " + url).append(getLineSeparator()); + sb.append(" user = " + user); + } + _log.info("{Injection Information}" + getLineSeparator() + sb); + } + + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + + // ----------------------------------------------------- + // Database Product Name + // --------------------- + protected void initializeDatabaseProductNameOfContext( + javax.sql.XADataSource xaDataSource) { + if (getDatabaseProductNameFromContext() != null) { + return; + } + + // From JDBC Driver! + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + if (driverClassName != null) { + if (setupDatabaseProductNameByDriverClassName(driverClassName)) { + _log + .info("...Initializing database product name from driverClassName: " + + getDatabaseProductNameFromContext()); + return; + } + } + } + + _log.info("...Initializing database product name as default: H2"); + setDatabaseProductNameToContext("H2"); + } + + protected String getDatabaseProductNameFromContext() { + return ConditionBeanContext.getDatabaseProductName(); + } + + protected void setDatabaseProductNameToContext(String name) { + ConditionBeanContext.setDatabaseProductName(name); + } + + protected boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + return ConditionBeanContext + .setupDatabaseProductNameByDriverClassName(driverClassName); + } + + //========================================================================== + // ========= + // Implementation + // ============== + @SuppressWarnings("unchecked") + public DaoMetaData getDaoMetaData(final Class daoClass) { + if (!initialized) { + DisposableUtil.add(this); + initialized = true; + } + final String key = daoClass.getName(); + + // [A] + DaoMetaData dmd = getSynchronizedDaoMetaDataCache(key); + + // [B] + if (dmd != null) { + return dmd; + } + + // [C] + synchronized (_daoMetaDataInitializationLockMonitor) {// One Thread Only + // Entered + // [D] + dmd = getSynchronizedDaoMetaDataCache(key); + // [E] + if (dmd != null) { + // The second thread that stops at [C] can find + // because the first thread have already initialized. + if (_log.isDebugEnabled()) { + _log + .debug("...Getting daoMetaData as cache because the previous thread have already initilized."); + } + return dmd; + } + // [F] + if (_log.isDebugEnabled()) { + _log.debug("...Creating daoMetaData for " + + daoClass.getSimpleName() + "."); + } + final DaoMetaData dmdi = createDaoMetaData(daoClass); + putSynchronizedDaoMetaDataCache(key, dmdi); + } + // [G] + dmd = getSynchronizedDaoMetaDataCache(key); + if (dmd != null) { + return dmd; + } + String msg = "The cache should have data meta data here: key=" + key + + " cache=" + daoMetaDataCache; + throw new IllegalStateException(msg); + } + + @SuppressWarnings("unchecked") + protected void putSynchronizedDaoMetaDataCache(String key, DaoMetaData dmd) { + synchronized (daoMetaDataCache) { + daoMetaDataCache.put(key, dmd); + } + } + + protected DaoMetaData getSynchronizedDaoMetaDataCache(String key) { + DaoMetaData dmd = null; + synchronized (daoMetaDataCache) { + dmd = (DaoMetaData) daoMetaDataCache.get(key); + } + return dmd; + } + + //========================================================================== + // ========= + // DataMetaData Creation + // ===================== + protected DaoMetaData createDaoMetaData(final Class daoClass) { + final BeanDesc daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final DaoAnnotationReader daoAnnotationReader = annotationReaderFactory + .createDaoAnnotationReader(daoBeanDesc); + + final DaoMetaDataImpl daoMetaData = createDaoMetaDataExtension(); + daoMetaData.setDaoClass(daoClass); + daoMetaData.setDataSource(dataSource); + daoMetaData.setStatementFactory(createCustomizeStatememtFactory()); + daoMetaData.setResultSetFactory(createCustomizeResultSetFactory()); + daoMetaData.setValueTypeFactory(valueTypeFactory); + daoMetaData.setBeanMetaDataFactory(getBeanMetaDataFactory()); + daoMetaData.setDaoNamingConvention(getDaoNamingConvention()); + daoMetaData.setUseDaoClassForLog(useDaoClassForLog); + daoMetaData.setDaoAnnotationReader(daoAnnotationReader); + daoMetaData.setProcedureMetaDataFactory(procedureMetaDataFactory); + daoMetaData.setDtoMetaDataFactory(dtoMetaDataFactory); + daoMetaData.setResultSetHandlerFactory(resultSetHandlerFactory); + if (sqlFileEncoding != null) { + daoMetaData.setSqlFileEncoding(sqlFileEncoding); + } + if (pagingSqlRewriter != null) { + daoMetaData.setPagingSQLRewriter(pagingSqlRewriter); + } + daoMetaData.initialize(); + return daoMetaData; + } + + protected S2DaoMetaDataExtension createDaoMetaDataExtension() { + final S2DaoMetaDataExtension dmdExtension = newDaoMetaDataExtension(); + dmdExtension.setBeanEnhancer(beanEnhancer); + dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory); + dmdExtension.setColumnNaming(this.columnNaming); + dmdExtension + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + dmdExtension + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + dmdExtension.setTableNaming(tableNaming); + dmdExtension.setInternalDebug(DBFluteConfig.getInstance() + .isInternalDebug()); + return dmdExtension; + } + + protected S2DaoMetaDataExtension newDaoMetaDataExtension() { + return new S2DaoMetaDataExtension(); + } + + //========================================================================== + // ========= + // Result Set Factory + // ================== + /** + * Create the customize result set factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected ResultSetFactory createCustomizeResultSetFactory() { + return new FetchNarrowingResultSetFactory(); + } + + //========================================================================== + // ========= + // Statement Factory + // ================= + /** + * Create the customize statement factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected StatementFactory createCustomizeStatememtFactory() { + final StatementConfig defaultStatementConfig = DBFluteConfig + .getInstance().getDefaultStatementConfig(); + final boolean internalDebug = DBFluteConfig.getInstance() + .isInternalDebug(); + return new StatementFactory() { + public PreparedStatement createPreparedStatement(Connection con, + String sql) { + try { + final StatementConfig config = findStatementConfigOnThread(); + ; + final int resultSetType; + if (config != null && config.hasResultSetType()) { + resultSetType = config.getResultSetType(); + } else if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + resultSetType = defaultStatementConfig + .getResultSetType(); + } else { + resultSetType = java.sql.ResultSet.TYPE_FORWARD_ONLY; + } + final int resultSetConcurrency = java.sql.ResultSet.CONCUR_READ_ONLY; + if (internalDebug) { + _log.debug("...Creating prepareStatement(sql, " + + resultSetType + ", " + resultSetConcurrency + + ")"); + } + final PreparedStatement ps = con.prepareStatement(sql, + resultSetType, resultSetConcurrency); + if (config != null && config.hasStatementOptions()) { + if (internalDebug) { + _log + .debug("...Setting statement config as request: " + + config); + } + reflectStatementOptions(config, ps); + } else { + reflectDefaultOptionsToStatementIfNeeds(ps); + } + return ps; + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + public CallableStatement createCallableStatement(Connection conn, + String sql) { + return prepareCall(conn, sql); + } + + protected StatementConfig findStatementConfigOnThread() { + final StatementConfig config; + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + config = cb.getStatementConfig(); + } else if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + config = context.getStatementConfig(); + } else { + config = null; + } + return config; + } + + protected void reflectDefaultOptionsToStatementIfNeeds( + PreparedStatement ps) { + if (defaultStatementConfig != null + && defaultStatementConfig.hasStatementOptions()) { + if (internalDebug) { + _log.debug("...Setting statement config as default: " + + defaultStatementConfig); + } + reflectStatementOptions(defaultStatementConfig, ps); + return; + } + } + + protected void reflectStatementOptions(StatementConfig config, + PreparedStatement ps) { + try { + if (config.hasQueryTimeout()) { + ps.setQueryTimeout(config.getQueryTimeout()); + } + if (config.hasFetchSize()) { + ps.setFetchSize(config.getFetchSize()); + } + if (config.hasMaxRows()) { + ps.setMaxRows(config.getMaxRows()); + } + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + + protected CallableStatement prepareCall(Connection conn, String sql) { + try { + return conn.prepareCall(sql); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, + Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + }; + } + + //========================================================================== + // ========= + // Dispose + // ======= + public synchronized void dispose() { + daoMetaDataCache.clear(); + initialized = false; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return System.getProperty("line.separator"); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Factory Basic + // ------------- + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected BeanMetaDataFactory getBeanMetaDataFactory() { + return beanMetaDataFactory; + } + + public void setBeanMetaDataFactory( + final BeanMetaDataFactory beanMetaDataFactory) { + this.beanMetaDataFactory = beanMetaDataFactory; + } + + public DaoNamingConvention getDaoNamingConvention() { + return daoNamingConvention; + } + + public void setDaoNamingConvention( + final DaoNamingConvention daoNamingConvention) { + this.daoNamingConvention = daoNamingConvention; + } + + public void setAnnotationReaderFactory( + final AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + public void setDataSource(final DataSource dataSource) { + this.dataSource = dataSource; + } + + public void setUseDaoClassForLog(final boolean userDaoClassForLog) { + useDaoClassForLog = userDaoClassForLog; + } + + public void setResultSetHandlerFactory( + final ResultSetHandlerFactory resultSetHandlerFactory) { + this.resultSetHandlerFactory = resultSetHandlerFactory; + } + + public void setDtoMetaDataFactory( + final DtoMetaDataFactory dtoMetaDataFactory) { + this.dtoMetaDataFactory = dtoMetaDataFactory; + } + + public void setProcedureMetaDataFactory( + ProcedureMetaDataFactory procedureMetaDataFactory) { + this.procedureMetaDataFactory = procedureMetaDataFactory; + } + + public void setPagingSQLRewriter(final PagingSqlRewriter pagingSqlRewriter) { + this.pagingSqlRewriter = pagingSqlRewriter; + } + + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + public void setSqlFileEncoding(final String encoding) { + sqlFileEncoding = encoding; + } + + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,215 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanAnnotationReader; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.Dbms; +import org.seasar.dao.PropertyTypeFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.AbstractPropertyTypeFactory; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; + +/** + * The factory builder of property type for S2Dao. {Since S2Dao-1.0.47} + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoPropertyTypeFactoryBuilderExtension implements + PropertyTypeFactoryBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected ColumnNaming columnNaming; + + //========================================================================== + // ========= + // Build + // ===== + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming); + } + + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader, Dbms dbms, + DatabaseMetaData databaseMetaData) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming, dbms); + } + + //========================================================================== + // ========= + // Extension Class + // =============== + protected static class FastPropertyTypeFactoryExtension extends + AbstractPropertyTypeFactory { + + protected DBMeta _dbmeta; + + protected String[] _noPersisteneProps; + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming); + initializeResources(); + } + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming, + Dbms dbms) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming, dbms); + initializeResources(); + } + + protected void initializeResources() { + if (isEntity()) { + _dbmeta = findDBMeta(); + } + _noPersisteneProps = beanAnnotationReader.getNoPersisteneProps(); + } + + protected boolean isEntity() { + return Entity.class.isAssignableFrom(beanClass); + } + + protected boolean hasDBMeta() { + return _dbmeta != null; + } + + protected DBMeta findDBMeta() { + try { + final Entity entity = (Entity) beanClass.newInstance(); + return entity.getDBMeta(); + } catch (Exception e) { + String msg = "beanClass.newInstance() threw the exception: beanClass=" + + beanClass; + throw new RuntimeException(msg, e); + } + } + + public PropertyType[] createBeanPropertyTypes(String tableName) { + final List list = new ArrayList(); + final BeanDesc beanDesc = getBeanDesc(); + for (int i = 0; i < beanDesc.getPropertyDescSize(); ++i) { + final PropertyDesc pd = beanDesc.getPropertyDesc(i); + + // Read-only property is unnecessary! + if (!pd.hasWriteMethod()) { + continue; + } + + // Relation property is unnecessary! + if (isRelation(pd)) { + continue; + } + + final PropertyType pt = createPropertyType(pd); + pt.setPrimaryKey(isPrimaryKey(pd)); + pt.setPersistent(isPersistent(pt)); + list.add(pt); + } + return list.toArray(new PropertyType[list.size()]); + } + + @Override + protected boolean isRelation(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() + && (_dbmeta.hasForeign(propertyName) || _dbmeta + .hasReferrer(propertyName))) { + return true; + } + return hasRelationNoAnnotation(propertyDesc); + } + + protected boolean hasRelationNoAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.hasRelationNo(propertyDesc); + } + + @Override + protected boolean isPrimaryKey(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() && _dbmeta.hasPrimaryKey() + && _dbmeta.hasColumn(propertyName)) { + if (_dbmeta.findColumnInfo(propertyName).isPrimary()) { + return true; + } + } + return hasIdAnnotation(propertyDesc); + } + + protected boolean hasIdAnnotation(PropertyDesc propertyDesc) { + final Dbms dbms = getDbms(); + return beanAnnotationReader.getId(propertyDesc, dbms) != null; + } + + @Override + protected boolean isPersistent(PropertyType propertyType) { + final String propertyName = propertyType.getPropertyName(); + final PropertyDesc propertyDesc = propertyType.getPropertyDesc(); + if ((hasDBMeta() && _dbmeta.hasColumn(propertyName)) + || hasColumnAnnotation(propertyDesc)) { + if (!isElementOfNoPersistentProps(propertyDesc)) { + return true; + } + } + return false; + } + + protected boolean hasColumnAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.getColumnAnnotation(propertyDesc) != null; + } + + protected boolean isElementOfNoPersistentProps(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + final String[] props = _noPersisteneProps; + if (props != null && props.length >= 0) { + for (int i = 0; i < props.length; ++i) { + if (props[i].equals(propertyName)) { + return true; + } + } + } + return false; + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ValueTypeFactory getValueTypeFactory() { + return valueTypeFactory; + } + + public void setValueTypeFactory(ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,491 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand.InternalAbstractDynamicCommand; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicSelectHandler; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * SelectDynamicCommand for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoSelectDynamicCommand extends InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The handler of resultSet. */ + protected ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param dataSource Data source. + * @param statementFactory The factory of statement. + * @param resultSetHandler The handler of resultSet. + */ + public S2DaoSelectDynamicCommand(DataSource dataSource, + StatementFactory statementFactory, ResultSetHandler resultSetHandler) { + super(dataSource, statementFactory); + this.resultSetHandler = resultSetHandler; + } + + //========================================================================== + // ========= + // Very Important Extension + // ======================== + // ----------------------------------------------------- + // SelectDynamicCommand Creation + // ----------------------------- + protected S2DaoSelectDynamicCommand createMySelectDynamicCommand() { + return new S2DaoSelectDynamicCommand(getDataSource(), + getStatementFactory(), resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + // ----------------------------------------------------- + // Top Execute + // ----------- + /** + * @param args The array of argument. (Nullable) + * @return The object of execution result. (Nullable) + */ + public Object execute(Object[] args) { + // - - - - - - - - - - - - + // This is top execution. + // - - - - - - - - - - - - + + if (!ConditionBeanContext.isExistConditionBeanOnThread()) { + // - - - - - - - - - - + // Execute outsideSql. + // - - - - - - - - - - + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isDynamicBinding()) { + return executeOutsideSqlAsDynamic(args, outsideSqlContext); + } else { + return executeOutsideSqlAsStatic(args, outsideSqlContext); + } + } + + // - - - - - - - - - + // Execute default. + // - - - - - - - - - + return executeDefault(args); + } + + // - - - - - - - - - - - - + // Execute conditionBean. + // - - - - - - - - - - - - + final List bindVariableList = new ArrayList(4); + final List bindVariableTypeList = new ArrayList(4); + + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String finalClause; + if (cb.hasUnionQueryOrUnionAllQuery()) { + final String realClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + if (cb.isSelectCountIgnoreFetchScope()) { + // If the query uses union and it selects count, the way of + // select-count is as follows. + finalClause = "select count(*) from (" + realClause + + ") dfmain"; + } else { + finalClause = realClause; + } + } else { + if (cb.isSelectCountIgnoreFetchScope()) { + finalClause = setupRealSelectCountClause(args, + bindVariableList, bindVariableTypeList); + } else { + finalClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + } + } + + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + finalClause, this.resultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + // ----------------------------------------------------- + // Default Execute + // --------------- + /** + * Execute default. + * + * @param args The array of argument. (Nullable) + * @return Result. (Nullable) + */ + protected Object executeDefault(Object args[]) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs = filterArgumentsForResultSetHandler(args); + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + // ----------------------------------------------------- + // OutsideSql Execute + // ------------------ + /** + * Execute outsideSql as static. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsStatic(Object[] args, + OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + /** + * Execute outsideSql as Dynamic. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsDynamic(Object[] args, + OutsideSqlContext outsideSqlContext) { + final Object firstArg; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + firstArg = parameterBean; + } else { + firstArg = args[0]; + } + String filteredSql = getSql(); + if (firstArg != null) { + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(firstArg + .getClass()); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + // Resolve embedded comment for parsing bind variable comment in + // embedded comment. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + for (int i = 0; i < beanDesc.getPropertyDescSize(); i++) { + final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(i); + final Class propertyType = propertyDesc.getPropertyType(); + if (!propertyType.equals(String.class)) { + continue; + } + final String outsideSqlPiece = (String) propertyDesc + .getValue(firstArg); + if (outsideSqlPiece == null) { + continue; + } + final String embeddedComment = "/*$pmb." + + propertyDesc.getPropertyName() + "*/"; + filteredSql = replaceString(filteredSql, embeddedComment, + outsideSqlPiece); + } + } + final S2DaoSelectDynamicCommand outsideSqlCommand = createMySelectDynamicCommand(); + if (outsideSqlContext.isSpecifiedOutsideSql()) { + outsideSqlCommand.setArgNames(new String[] { "pmb" }); + outsideSqlCommand + .setArgTypes(new Class[] { firstArg != null ? firstArg + .getClass() : Object.class }); + } else { + outsideSqlCommand.setArgNames(getArgNames()); + outsideSqlCommand.setArgTypes(getArgTypes()); + } + outsideSqlCommand.setSql(filteredSql); + + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = outsideSqlCommand + .apply(filteredArgs); + final java.util.List bindVariableList = new java.util.ArrayList(); + final java.util.List bindVariableTypeList = new java.util.ArrayList(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + protected Object[] filterArgumentsForResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return args; + } + final Object[] filteredArgs; + if (args[args.length - 1] instanceof jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler) { + filteredArgs = new Object[args.length - 1]; + for (int i = 0; i < args.length - 1; i++) { + filteredArgs[i] = args[i]; + } + } else { + filteredArgs = args; + } + return filteredArgs; + } + + protected ResultSetHandler findSpecifiedResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return this.resultSetHandler; + } + if (args[args.length - 1] instanceof jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler) { + final jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler cursorHandler = (jp.sf.pal.todolist.db.allcommon.jdbc.CursorHandler) args[args.length - 1]; + return new ResultSetHandler() { + public Object handle(java.sql.ResultSet rs) + throws java.sql.SQLException { + return cursorHandler.handle(rs); + } + }; + } + if (getArgTypes().length + 1 == args.length + && args[args.length - 1] == null) { + String msg = "System Level Exception!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The size of arg types have not been same as the size of arg objects:"; + msg = msg + " argTypes=" + getArgTypes().length + " args=" + + args.length + getLineSeparator(); + msg = msg + + "If the arguments contain ResultSetHandler, the argument value should not be null!" + + getLineSeparator(); + for (int i = 0; i < args.length - 1; i++) { + msg = msg + " args[" + i + "] -- " + args[i] + + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + return this.resultSetHandler; + } + + // ----------------------------------------------------- + // Setup Clause + // ------------ + protected String setupRealClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realClause; + { + final S2DaoSelectDynamicCommand dynamicCommand = createMySelectDynamicCommand(); + dynamicCommand.setArgNames(getArgNames()); + dynamicCommand.setArgTypes(getArgTypes()); + if (cb.isLimitSelect_PKOnly()) { + dynamicCommand.setSql(cb.getSqlClause().getClausePKOnly()); + } else { + dynamicCommand.setSql(cb.getSqlClause().getClause()); + } + final CommandContext ctx = dynamicCommand.apply(args); + realClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realClause; + } + + protected String setupRealSelectCountClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realSelectCountClause; + { + final S2DaoSelectDynamicCommand selectCountCommand = createMySelectDynamicCommand(); + selectCountCommand.setArgNames(getArgNames()); + selectCountCommand.setArgTypes(getArgTypes()); + final String selectClause = "select count(*)"; + String fromWhereClause = cb.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + final String sql = cb.getSqlClause().filterSubQueryIndent( + selectClause + " " + fromWhereClause); + selectCountCommand.setSql(sql); + + final CommandContext ctx = selectCountCommand.apply(args); + realSelectCountClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realSelectCountClause; + } + + protected InternalBasicSelectHandler createBasicSelectHandler( + String realSql, ResultSetHandler specifiedResultSetHandler) { + return newBasicSelectHandler(realSql, specifiedResultSetHandler, + getStatementFactory()); + } + + protected InternalBasicSelectHandler newBasicSelectHandler(String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + return new InternalBasicSelectHandler(getDataSource(), sql, + resultSetHandler, statementFactory) { + @Override + protected void bindArgs(java.sql.PreparedStatement ps, + Object[] args, Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + final ValueType valueType = findValueType(argTypes[i], + args[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (java.sql.SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected ValueType findValueType(Class argType, Object arg) { + ValueType valueType = ValueTypes.getValueType(arg); + if (valueType != null) { + return valueType; + } + valueType = ValueTypes.getValueType(argType); + if (valueType != null) { + return valueType; + } + String msg = "Unknown type¡§argType=" + argType + " args=" + arg; + throw new IllegalStateException(msg); + } + }; + } + + // ----------------------------------------------------- + // Setup Helper + // ------------ + protected Class[] toClassArray(List bindVariableTypeList) { + final Class[] bindVariableTypesArray = new Class[bindVariableTypeList + .size()]; + for (int i = 0; i < bindVariableTypeList.size(); i++) { + final Class bindVariableType = (Class) bindVariableTypeList.get(i); + bindVariableTypesArray[i] = bindVariableType; + } + return bindVariableTypesArray; + } + + protected void addBindVariableInfo(CommandContext ctx, + List bindVariableList, List bindVariableTypeList) { + final Object[] bindVariables = ctx.getBindVariables(); + addBindVariableList(bindVariableList, bindVariables); + final Class[] bindVariableTypes = ctx.getBindVariableTypes(); + addBindVariableTypeList(bindVariableTypeList, bindVariableTypes); + } + + protected void addBindVariableList(List bindVariableList, + Object[] bindVariables) { + for (int i = 0; i < bindVariables.length; i++) { + bindVariableList.add(bindVariables[i]); + } + } + + protected void addBindVariableTypeList(List bindVariableTypeList, + Class[] bindVariableTypes) { + for (int i = 0; i < bindVariableTypes.length; i++) { + bindVariableTypeList.add(bindVariableTypes[i]); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,130 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractBeanMetaDataResultSetHandler extends + InternalAbstractDtoMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + protected RelationRowCreator relationRowCreator; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalAbstractBeanMetaDataResultSetHandler( + BeanMetaData beanMetaData, RowCreator rowCreator, + RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator); + this.beanMetaData = beanMetaData; + this.relationRowCreator = relationRowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + return rowCreator.createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + final Class beanClass = beanMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of relation property cache. Map{String(relationNoSuffix), + * Map{String(columnName), PropertyType}} (NotNull) + * @throws SQLException + */ + protected Map createRelationPropertyCache(Set columnNames) + throws SQLException { + return relationRowCreator + .createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param rpt The type of relation property. (NotNull) + * @param columnNames The set of column name. (NotNull) + * @param relKeyValues The map of rel key values. (Nullable) + * @param relationPropertyCache The map of relation property cache. + * Map{String(relationNoSuffix), Map{String(columnName), + * PropertyType}} (NotNull) + * @return Created relation row. (Nullable) + * @throws SQLException + */ + protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt, + Set columnNames, Map relKeyValues, Map relationPropertyCache) + throws SQLException { + return relationRowCreator.createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + } + + /** + * @param row The row of result list. (NotNull) + */ + protected void postCreateRow(final Object row) { + if (row instanceof Entity) { // DBFlute Target + ((Entity) row).clearModifiedPropertyNames(); + } else { // Basically Unreachable + final BeanMetaData bmd = getBeanMetaData(); + final Set names = bmd.getModifiedPropertyNames(row); + names.clear(); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,89 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import org.seasar.dao.DtoMetaData; +import org.seasar.dao.RowCreator; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.framework.util.CaseInsensitiveSet; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractDtoMetaDataResultSetHandler implements + ResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DtoMetaData dtoMetaData; + + protected RowCreator rowCreator; // [DAO-118] (2007/08/25) + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param dtoMetaData Dto meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + */ + public InternalAbstractDtoMetaDataResultSetHandler(DtoMetaData dtoMetaData, + RowCreator rowCreator) { + this.dtoMetaData = dtoMetaData; + this.rowCreator = rowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + return rowCreator.createPropertyCache(columnNames, dtoMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + final Class beanClass = dtoMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + protected Set createColumnNames(final ResultSetMetaData rsmd) + throws SQLException { + final int count = rsmd.getColumnCount(); + final Set columnNames = new CaseInsensitiveSet(); + for (int i = 0; i < count; ++i) { + final String columnName = rsmd.getColumnLabel(i + 1); + final int pos = columnName.lastIndexOf('.'); // [DAO-41] + if (-1 < pos) { + columnNames.add(columnName.substring(pos + 1)); + } else { + columnNames.add(columnName); + } + } + return columnNames; + } + + public DtoMetaData getDtoMetaData() { + return dtoMetaData; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,42 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.rshandler; + +import java.lang.reflect.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanArrayMetaDataResultSetHandler extends + InternalBeanListMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanArrayMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + List list = (List) super.handle(rs); + return list.toArray((Object[]) Array.newInstance(getBeanMetaData() + .getBeanClass(), list.size())); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,236 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.impl.RelationKey; +import org.seasar.dao.impl.RelationRowCache; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanListMetaDataResultSetHandler extends + InternalAbstractBeanMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanListMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; + + final List list = new ArrayList(); + final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); + final boolean hasCB = hasConditionBean(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + + while (rs.next()) { + if (columnNames == null) { + columnNames = createColumnNames(rs.getMetaData()); + } + if (propertyCache == null) { + propertyCache = createPropertyCache(columnNames); + } + + // Create row instance of base table by row property cache. + final Object row = createRow(rs, propertyCache); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { + postCreateRow(row); + list.add(row); + continue; + } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } + for (int i = 0; i < relSize; ++i) { + final RelationPropertyType rpt = getBeanMetaData() + .getRelationPropertyType(i); + if (rpt == null) { + continue; + } + + // Do only selected foreign property for performance if + // condition-bean exists. + if (hasCB + && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) { + continue; + } + + final Map relKeyValues = new HashMap(); + final RelationKey relKey = createRelationKey(rs, rpt, + columnNames, relKeyValues); + Object relationRow = null; + if (relKey != null) { + relationRow = relRowCache.getRelationRow(i, relKey); + if (relationRow == null) { // when no cache + relationRow = createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + if (relationRow != null) { + relRowCache.addRelationRow(i, relKey, relationRow); + postCreateRow(relationRow); + } + } + } + if (relationRow != null) { + final PropertyDesc pd = rpt.getPropertyDesc(); + pd.setValue(row, relationRow); + } + } + postCreateRow(row); + list.add(row); + } + return list; + } + + protected RelationKey createRelationKey(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues) + throws SQLException { + final List keyList = new ArrayList(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final ValueType valueType; + String columnName = rpt.getMyKey(i); + if (columnNames.contains(columnName)) { + final PropertyType pt = getBeanMetaData() + .getPropertyTypeByColumnName(columnName); + valueType = pt.getValueType(); + } else { + final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt + .getYourKey(i)); + columnName = pt.getColumnName() + buildRelationNoSuffix(rpt); + if (columnNames.contains(columnName)) { + valueType = pt.getValueType(); + } else { + return null; + } + } + final Object value = valueType.getValue(rs, columnName); + if (value == null) { + return null; + } + relKeyValues.put(columnName, value); + keyList.add(value); + } + if (keyList.size() > 0) { + Object[] keys = keyList.toArray(); + return new RelationKey(keys); + } else { + return null; + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean isSelectedForeignInfoEmpty() { + if (!hasConditionBean()) { + return true; + } + ConditionBean cb = ConditionBeanContext.getConditionBeanOnThread(); + if (cb.getSqlClause().isSelectedForeignInfoEmpty()) { + return true; + } + return false; + } + + /** + * Has it selected foreign information? You should call hasConditionBean() + * before calling this! + * + * @param relationNoSuffix The suffix of relation NO. (NotNull) + * @return Determination. + */ + protected boolean hasSelectedForeignInfo(String relationNoSuffix) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) { + return true; + } + return false; + } + + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ + protected String buildRelationNoSuffix(RelationPropertyType rpt) { + return "_" + rpt.getRelationNo(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,227 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.PrimaryKeyNotFoundRuntimeException; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoStaticCommand extends + InternalAbstractStaticCommand { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final boolean DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY = true; + + //========================================================================== + // ========= + // Attribute + // ========= + private PropertyType[] propertyTypes; + + private boolean checkSingleRowUpdate = true; + + protected boolean versionNoAutoIncrementOnMemory = DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData); + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + setupPropertyTypes(propertyNames); + setupSql(); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + InternalAbstractAutoHandler handler = createAutoHandler(); + handler.setSql(getSql()); + handler.setLoggingMessageSqlArgs(args); + int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw createNotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } + + protected NotSingleRowUpdatedRuntimeException createNotSingleRowUpdatedRuntimeException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected abstract InternalAbstractAutoHandler createAutoHandler(); + + protected abstract void setupPropertyTypes(String[] propertyNames); + + protected void setupInsertPropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (isInsertTarget(pt)) { + types.add(pt); + } + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected boolean isInsertTarget(PropertyType propertyType) { + if (propertyType.isPrimaryKey()) { + String name = propertyType.getPropertyName(); + final IdentifierGenerator generator = getBeanMetaData() + .getIdentifierGenerator(name); + return generator.isSelfGenerate(); + } + return true; + } + + protected void setupUpdatePropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (pt.isPrimaryKey()) { + continue; + } + types.add(pt); + } + if (types.size() == 0) { + throw new SRuntimeException("EDAO0020"); + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected void setupDeletePropertyTypes(String[] propertyNames) { + } + + protected abstract void setupSql(); + + protected void setupInsertSql() { + BeanMetaData bmd = getBeanMetaData(); + StringBuilder sb = new StringBuilder(100); + sb.append("insert into "); + sb.append(bmd.getTableName()); + sb.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append(pt.getColumnName()); + sb.append(", "); + } + } + sb.setLength(sb.length() - 2); + sb.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append("?, "); + } + } + sb.setLength(sb.length() - 2); + sb.append(")"); + setSql(sb.toString()); + } + + protected void setupUpdateSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(getBeanMetaData().getTableName()); + sb.append(" set "); + String versionNoPropertyName = getBeanMetaData() + .getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName) + && !versionNoAutoIncrementOnMemory) { + sb.append(pt.getColumnName()).append(" = ").append( + pt.getColumnName()).append(" + 1, "); + continue; + } + sb.append(pt.getColumnName()).append(" = ?, "); + } + sb.setLength(sb.length() - 2); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void setupDeleteSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("delete from "); + sb.append(getBeanMetaData().getTableName()); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void checkPrimaryKey() { + BeanMetaData bmd = getBeanMetaData(); + if (bmd.getPrimaryKeySize() == 0) { + throw new PrimaryKeyNotFoundRuntimeException(bmd.getBeanClass()); + } + } + + protected void setupUpdateWhere(StringBuilder sb) { + BeanMetaData bmd = getBeanMetaData(); + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,64 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final boolean returningRows; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + versionNoAutoIncrementOnMemory); + this.returningRows = returningRows; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final InternalAbstractBatchAutoHandler handler = createBatchAutoHandler(); + + // It is unnecessary! + // injectDaoClass(handler); + + handler.setSql(getSql()); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(args); + if (this.returningRows) { + return handler.executeBatch(args); + } else { + final int updatedRows = handler.execute(args); + return new Integer(updatedRows); + } + } + + protected abstract InternalAbstractBatchAutoHandler createBatchAutoHandler(); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,83 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractDynamicCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected Node rootNode; + + protected String[] argNames = new String[0]; + + protected Class[] argTypes = new Class[0]; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Sql Handling + // ============ + public void setSql(String sql) { + super.setSql(sql); + this.rootNode = createInternalSqlParser(sql).parse(); + } + + protected InternalSqlParser createInternalSqlParser(String sql) { + return new InternalSqlParser(sql); + } + + public CommandContext apply(Object[] args) {// It is necessary to be public! + final CommandContext ctx = createCommandContext(args); + rootNode.accept(ctx); + return ctx; + } + + protected CommandContext createCommandContext(Object[] args) { + return createCommandContextCreator().createCommandContext(args); + } + + protected InternalCommandContextCreator createCommandContextCreator() { + return new InternalCommandContextCreator(argNames, argTypes); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String[] getArgNames() { + return argNames; + } + + public void setArgNames(String[] argNames) { + this.argNames = argNames; + } + + public Class[] getArgTypes() { + return argTypes; + } + + public void setArgTypes(Class[] argTypes) { + this.argTypes = argTypes; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,52 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractSqlCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private StatementFactory statementFactory; + + private String sql; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractSqlCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,37 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractStaticCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,46 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + super(dataSource, statementFactory, beanMetaData, propertyNames); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return new InternalDeleteAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,57 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return newInternalBatchAutoHandler(); + } + + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,103 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + String[] argNames = new String[] { "dto" }; + Class[] argTypes = new Class[] { cb.getClass() }; + String twoWaySql = buildQueryDeleteTwoWaySql(cb); + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + if (args == null || args.length == 0) { + String msg = "The arguments should have one argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + protected String buildQueryDeleteTwoWaySql(ConditionBean cb) { + return cb.getSqlClause().getClauseQueryDelete(); + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,172 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalInsertAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + protected BeanMetaData beanMetaData; + + protected String[] propertyNames; + + protected boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoDynamicCommand() { + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createInsertPropertyTypes(bmd, + bean, getPropertyNames()); + final String sql = createInsertSql(bmd, propertyTypes); + final InternalInsertAutoHandler handler = new InternalInsertAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler.setSql(sql); + handler.setLoggingMessageSqlArgs(args); + final int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw new NotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + protected String createInsertSql(BeanMetaData bmd, + PropertyType[] propertyTypes) { + StringBuffer buf = new StringBuffer(100); + buf.append("insert into "); + buf.append(bmd.getTableName()); + buf.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + buf.append(", "); + } + buf.append(columnName); + } + buf.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + if (i > 0) { + buf.append(", "); + } + buf.append("?"); + } + buf.append(")"); + return buf.toString(); + } + + protected PropertyType[] createInsertPropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + + if (0 == propertyNames.length) { + throw new SRuntimeException("EDAO0024", new Object[] { bean + .getClass().getName() }); + } + List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey()) { + final IdentifierGenerator generator = bmd + .getIdentifierGenerator(pt.getPropertyName()); + if (!generator.isSelfGenerate()) { + continue; + } + } else { + if (pt.getPropertyDesc().getValue(bean) == null) { + final String propertyName = pt.getPropertyName(); + if (!propertyName.equalsIgnoreCase(timestampPropertyName) + && !propertyName + .equalsIgnoreCase(versionNoPropertyName)) { + continue; + } + } + } + types.add(pt); + } + if (types.isEmpty()) { + throw new SRuntimeException("EDAO0014"); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + protected DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + protected StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + protected BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + protected String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,53 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalInsertBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return new InternalInsertBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupInsertSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupInsertPropertyTypes(propertyNames); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,83 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalProcedureHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected ResultSetHandler resultSetHandler; + + protected StatementFactory statementFactory; + + protected InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureCommand(DataSource dataSource, + ResultSetHandler resultSetHandler, + StatementFactory statementFactory, + InternalProcedureMetaData procedureMetaData) { + this.dataSource = dataSource; + this.resultSetHandler = resultSetHandler; + this.statementFactory = statementFactory; + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(final Object[] args) { + final InternalProcedureHandler handler = newArgumentDtoProcedureHandler(); + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + final Object pmb = outsideSqlContext.getParameterBean(); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(...); + return handler.execute(new Object[] { pmb }); + } + + protected InternalProcedureHandler newArgumentDtoProcedureHandler() { + return new InternalProcedureHandler(dataSource, + createSql(procedureMetaData), resultSetHandler, + statementFactory, procedureMetaData); + } + + protected String createSql(final InternalProcedureMetaData procedureMetaData) { + final StringBuilder sb = new StringBuilder(); + sb.append("{"); + int size = procedureMetaData.parameterTypes().size(); + if (procedureMetaData.hasReturnParameterType()) { + sb.append("? = "); + size--; + } + sb.append("call ").append(procedureMetaData.getProcedureName()).append( + "("); + for (int i = 0; i < size; i++) { + sb.append("?, "); + } + if (size > 0) { + sb.setLength(sb.length() - 2); + } + sb.append(")}"); + return sb.toString(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,233 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.NoUpdatePropertyTypeRuntimeException; +import org.seasar.dao.impl.AbstractSqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoDynamicCommand extends AbstractSqlCommand { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalUpdateAutoDynamicCommand.class); + + private static final Integer NO_UPDATE = new Integer(0); + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + private String[] propertyNames; + + private boolean checkSingleRowUpdate = true; + + private boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createUpdatePropertyTypes(bmd, + bean, getPropertyNames()); + if (propertyTypes.length == 0) { + if (_log.isDebugEnabled()) { + _log.debug(createNoUpdateLogMessage(bean, bmd)); + } + return NO_UPDATE; + } + InternalUpdateAutoHandler handler = createInternalUpdateAutoHandler( + bmd, propertyTypes); + handler.setSql(createUpdateSql(bmd, propertyTypes, bean)); + handler.setLoggingMessageSqlArgs(args); + int i = handler.execute(args); + + // [Comment Out]: This statement moved to the handler at + // [DBFlute-0.8.0]. + // if (isCheckSingleRowUpdate() && i < 1) { + // throw createNotSingleRowUpdatedRuntimeException(args[0], i); + // } + + return new Integer(i); + } + + protected InternalUpdateAutoHandler createInternalUpdateAutoHandler( + BeanMetaData bmd, PropertyType[] propertyTypes) { + InternalUpdateAutoHandler handler = new InternalUpdateAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + handler.setCheckSingleRowUpdate(isCheckSingleRowUpdate()); //[DBFlute-0.8 + // .0] + return handler; + } + + protected PropertyType[] createUpdatePropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || pt.getPropertyDesc().getValue(bean) != null) { + types.add(pt); + } + } + } + if (types.isEmpty()) { + throw new NoUpdatePropertyTypeRuntimeException(); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + protected String createNoUpdateLogMessage(final Object bean, + final BeanMetaData bmd) { + final StringBuffer sb = new StringBuffer(); + sb.append("skip UPDATE: table=").append(bmd.getTableName()); + final int size = bmd.getPrimaryKeySize(); + for (int i = 0; i < size; i++) { + if (i == 0) { + sb.append(", key{"); + } else { + sb.append(", "); + } + final String keyName = bmd.getPrimaryKey(i); + sb.append(keyName).append("="); + sb.append(bmd.getPropertyTypeByColumnName(keyName) + .getPropertyDesc().getValue(bean)); + if (i == size - 1) { + sb.append("}"); + } + } + final String s = new String(sb); + return s; + } + + /** + * Create update SQL. The update is by the primary keys. + * + * @param bmd The meta data of bean. (NotNull & RequiredPrimaryKeys) + * @param propertyTypes The types of property for update. (NotNull) + * @param bean A bean for update for handling version no and so on. + * (NotNull) + * @return The update SQL. (NotNull) + */ + protected String createUpdateSql(BeanMetaData bmd, + PropertyType[] propertyTypes, Object bean) { + if (bmd.getPrimaryKeySize() == 0) { + String msg = "The table '" + bmd.getTableName() + + "' does not have primary keys!"; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(bmd.getTableName()); + sb.append(" set "); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + sb.append(", "); + } + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + final Object versionNo = pt.getPropertyDesc().getValue(bean); + if (versionNo == null) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + } + sb.append(columnName).append(" = ?"); + } + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + return sb.toString(); + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } + + protected void setupVersionNoAutoIncrementOnQuery(StringBuilder sb, + String columnName) { + sb.append(columnName).append(" = ").append(columnName).append(" + 1"); + } + + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,61 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, versionNoAutoIncrementOnMemory); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + InternalUpdateBatchAutoHandler handler = newInternalBatchAutoHandler(); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + return handler; + } + + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupUpdateSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupUpdatePropertyTypes(propertyNames); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,38 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalBasicUpdateHandler; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateDynamicCommand extends + InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object args[]) { + final CommandContext ctx = apply(args); + final InternalBasicUpdateHandler updateHandler = new InternalBasicUpdateHandler( + getDataSource(), ctx.getSql(), getStatementFactory()); + Object[] bindVariables = ctx.getBindVariables(); + updateHandler.setLoggingMessageSqlArgs(bindVariables); + return new Integer(updateHandler.execute(bindVariables, ctx + .getBindVariableTypes())); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,55 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateModifiedOnlyCommand extends + InternalUpdateAutoDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateModifiedOnlyCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // No.1 Point Override + // =================== + @Override + protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, + final Object bean, final String[] propertyNames) { + final Set modifiedPropertyNames = getBeanMetaData() + .getModifiedPropertyNames(bean); + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + final PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + final String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || modifiedPropertyNames.contains(propertyName)) { + types.add(pt); + } + } + } + final PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,229 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlcommand; + +import java.lang.reflect.Method; +import java.sql.Timestamp; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + Entity entity = extractEntityWithCheck(args); + String[] argNames = new String[] { "dto", "entity" }; + Class[] argTypes = new Class[] { cb.getClass(), entity.getClass() }; + String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity); + if (twoWaySql == null) { + return 0;// No execute! + } + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + assertArgument(args); + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of first argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected Entity extractEntityWithCheck(Object[] args) { + assertArgument(args); + Object secondArg = args[1]; + if (!(secondArg instanceof Entity)) { + String msg = "The type of second argument should be " + + Entity.class + "! But:"; + msg = msg + " type=" + secondArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (Entity) secondArg; + } + + protected void assertArgument(Object[] args) { + if (args == null || args.length <= 1) { + String msg = "The arguments should have two argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + /** + * @param cb Condition-bean. (NotNull) + * @param entity Entity. (NotNull) + * @return The two-way SQL of query update. (Nullable: If the set of + * modified properties is empty, return null.) + */ + protected String buildQueryUpdateTwoWaySql(ConditionBean cb, Entity entity) { + Map columnParameterMap = new LinkedHashMap(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(entity + .getTableDbName()); + Set modifiedPropertyNames = entity.getModifiedPropertyNames(); + if (modifiedPropertyNames.isEmpty()) { + return null; + } + String currentPropertyName = null; + try { + for (String propertyName : modifiedPropertyNames) { + currentPropertyName = propertyName; + ColumnInfo columnInfo = dbmeta.findColumnInfo(propertyName); + String columnName = columnInfo.getColumnDbName(); + Method getter = columnInfo.findGetter(); + Object value = getter.invoke(entity, (Object[]) null); + if (value != null) { + columnParameterMap.put(columnName, "/*entity." + + propertyName + "*/null"); + } else { + columnParameterMap.put(columnName, "null"); + } + } + if (dbmeta.hasVersionNo()) { + ColumnInfo columnInfo = dbmeta.getVersionNoColumnInfo(); + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, columnName + " + 1"); + } + if (dbmeta.hasUpdateDate()) { + ColumnInfo columnInfo = dbmeta.getUpdateDateColumnInfo(); + Method setter = columnInfo.findSetter(); + if (Timestamp.class.isAssignableFrom(columnInfo + .getPropertyType())) { + setter.invoke(entity, new Timestamp(System + .currentTimeMillis())); + } else { + setter.invoke(entity, new Date()); + } + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, "/*entity." + + columnInfo.getPropertyName() + "*/null"); + } + } catch (Exception e) { + throwQueryUpdateFailureException(cb, entity, currentPropertyName, e); + } + return cb.getSqlClause().getClauseQueryUpdate(columnParameterMap); + } + + protected void throwQueryUpdateFailureException(ConditionBean cb, + Entity entity, String propertyName, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "queryUpdate() failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Doubtful Property Name]" + getLineSeparator() + + propertyName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + cb + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new QueryUpdateFailureException(msg, e); + } + + public static class QueryUpdateFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public QueryUpdateFailureException(String msg, Exception e) { + super(msg, e); + } + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,271 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.util.IntegerConversionUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BeanMetaData beanMetaData; + + protected Object[] bindVariables; + + protected ValueType[] bindVariableValueTypes; + + protected Timestamp timestamp; + + protected Integer versionNo; + + protected PropertyType[] propertyTypes; + + protected boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + this.propertyTypes = propertyTypes; + } + + public int execute(Object[] args) { + Connection connection = getConnection(); + try { + return execute(connection, args[0]); + } finally { + close(connection); + } + } + + public int execute(Object[] args, Class[] argTypes) { + return execute(args); + } + + protected int execute(Connection connection, Object bean) { + preUpdateBean(bean); + setupBindVariables(bean); + logSql(bindVariables, getArgTypes(bindVariables)); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, bindVariables, bindVariableValueTypes); + ret = executeUpdate(ps); + } finally { + close(ps); + } + postUpdateBean(bean, ret); + return ret; + } + + protected void bindArgs(PreparedStatement ps, Object[] args, + ValueType[] valueTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = valueTypes[i]; + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected void preUpdateBean(Object bean) { + } + + protected void postUpdateBean(Object bean, int ret) { + } + + protected abstract void setupBindVariables(Object bean); + + protected void setupInsertBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + setVersionNo(new Integer(0)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupUpdateBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + continue;// because of always 'VERSION_NO = VERSION_NO + 1' + } + Object value = pt.getPropertyDesc().getValue(bean); + if (value == null) { + continue;// because of 'VERSION_NO = VERSION_NO + 1' + } + int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1; + setVersionNo(new Integer(intValue)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupDeleteBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void addAutoUpdateWhereBindVariables(List varList, + List varValueTypeList, Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + PropertyType pt = bmd.getPropertyTypeByColumnName(bmd + .getPrimaryKey(i)); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + } + + protected void updateTimestampIfNeed(Object bean) { + if (getTimestamp() != null) { + PropertyDesc pd = getBeanMetaData().getTimestampPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getTimestamp()); + } + } + + protected void updateVersionNoIfNeed(Object bean) { + if (getVersionNo() != null) { + PropertyDesc pd = getBeanMetaData().getVersionNoPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getVersionNo()); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + protected Object[] getBindVariables() { + return bindVariables; + } + + protected void setBindVariables(Object[] bindVariables) { + this.bindVariables = bindVariables; + } + + protected ValueType[] getBindVariableValueTypes() { + return bindVariableValueTypes; + } + + protected void setBindVariableValueTypes(ValueType[] bindVariableValueTypes) { + this.bindVariableValueTypes = bindVariableValueTypes; + } + + protected Timestamp getTimestamp() { + return timestamp; + } + + protected void setTimestamp(Timestamp timestamp) { + this.timestamp = timestamp; + } + + protected Integer getVersionNo() { + return versionNo; + } + + protected void setVersionNo(Integer versionNo) { + this.versionNo = versionNo; + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,137 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoHandler extends + InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalAbstractBatchAutoHandler.class); + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int[] execute(List list, Class[] argTypes) { + return execute(list); + } + + public int[] execute(List list) { + if (list == null) { + throw new IllegalArgumentException("list"); + } + if (list.isEmpty()) { + if (_log.isDebugEnabled()) { + _log.debug("Skip executeBatch() bacause of the empty list."); + } + return new int[0]; + } + final Connection connection = getConnection(); + try { + final PreparedStatement ps = prepareStatement(connection); + try { + for (Iterator iter = list.iterator(); iter.hasNext();) { + final Object bean = (Object) iter.next(); + prepareBatchElement(ps, bean); + } + return executeBatch(ps, list); + } finally { + close(ps); + } + } finally { + close(connection); + } + // Reflection to bean is unsupported at batch update. + // postBatchUpdateBean(...); + } + + public int execute(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + int[] ret = execute(list); + int updatedRow = 0; + for (int i = 0; i < ret.length; i++) { + if (ret[i] > 0) { + updatedRow += ret[i]; + } + } + return updatedRow; + } + + public int[] executeBatch(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + return execute(list); + } + + protected void prepareBatchElement(PreparedStatement ps, Object bean) { + setupBindVariables(bean); + logSql(getBindVariables(), getArgTypes(getBindVariables())); + bindArgs(ps, getBindVariables(), getBindVariableValueTypes()); + addBatch(ps); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected int[] executeBatch(PreparedStatement ps, List list) { + try { + return ps.executeBatch(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return null; // Unreachable! + } + } + + protected void addBatch(PreparedStatement ps) { + try { + ps.addBatch(); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,623 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.CallbackContext; +import jp.sf.pal.todolist.db.allcommon.DBFluteConfig; +import jp.sf.pal.todolist.db.allcommon.InternalMapContext; +import jp.sf.pal.todolist.db.allcommon.QLog; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException; +import jp.sf.pal.todolist.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.todolist.db.allcommon.jdbc.SqlLogHandler; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.exception.SQLRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private String sql; + + private StatementFactory statementFactory; + + private Object[] loggingMessageSqlArgs; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicHandler(DataSource ds, StatementFactory statementFactory) { + setDataSource(ds); + setStatementFactory(statementFactory); + } + + public InternalBasicHandler(DataSource ds, String sql, + StatementFactory statementFactory) { + setDataSource(ds); + setSql(sql); + setStatementFactory(statementFactory); + } + + //========================================================================== + // ========= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- + protected void bindArgs(PreparedStatement ps, Object[] args, + Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = getValueType(argTypes[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected Class[] getArgTypes(Object[] args) { + if (args == null) { + return null; + } + Class[] argTypes = new Class[args.length]; + for (int i = 0; i < args.length; ++i) { + Object arg = args[i]; + if (arg != null) { + argTypes[i] = arg.getClass(); + } + } + return argTypes; + } + + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } + } + + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); + } + + protected void log(String msg) { + QLog.log(msg); + } + + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; + } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); + } + + protected boolean isContainsLineSeparatorInSql() { + return sql != null ? sql.contains(getLineSeparator()) : false; + } + + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + protected void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + String completeSql = buildLoggingMessageSql(); + new SQLExceptionHandler().handleSQLException(e, statement, + uniqueConstraintValid, completeSql); + } + + protected String buildLoggingMessageSql() { + String completeSql = null; + if (sql != null && loggingMessageSqlArgs != null) { + try { + completeSql = getCompleteSql(loggingMessageSqlArgs); + } catch (RuntimeException ignored) { + } + } + return completeSql; + } + + public static class SQLExceptionHandler { + + public void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + handleSQLException(e, statement, uniqueConstraintValid, null); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid, String completeSql) { + if (isSqlExceptionOldStyleHandling()) { + throw new SQLRuntimeException(e); + } + if (uniqueConstraintValid && isUniqueConstraintException(e)) { + throwEntityAlreadyExistsException(e, statement, completeSql); + } + throwSQLFailureException(e, statement, completeSql); + } + + protected boolean isUniqueConstraintException(SQLException e) { + DBFluteConfig.UniqueConstraintDeterminator determinator = getUniqueConstraintDeterminator(); + if (determinator != null) { + return determinator.isUniqueConstraintException(e); + } + return ConditionBeanContext.isUniqueConstraintException( + extractSQLState(e), e.getErrorCode()); + } + + protected DBFluteConfig.UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return DBFluteConfig.getInstance() + .getUniqueConstraintDeterminator(); + } + + protected boolean isSqlExceptionOldStyleHandling() { + return DBFluteConfig.getInstance().isSqlExceptionOldStyleHandling(); + } + + protected void throwEntityAlreadyExistsException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity already exists on the database!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the primary key whether it already exists on the database." + + getLineSeparator(); + msg = msg + "And confirm the unique constraint for other columns." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new EntityAlreadyExistsException(msg, e); + } + + protected void throwSQLFailureException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The SQL failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the SQLException message." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new SQLFailureException(msg, e); + } + + protected String extractSQLState(SQLException e) { + String sqlState = e.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next + SQLException nextEx = e.getNextException(); + if (nextEx == null) { + return null; + } + sqlState = nextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx == null) { + return null; + } + sqlState = nextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next Next + SQLException nextNextNextEx = nextNextEx.getNextException(); + if (nextNextNextEx == null) { + return null; + } + sqlState = nextNextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // It doesn't use recursive call by design because JDBC is + // unpredictable fellow. + return null; + } + + protected String extractBehaviorInvokeName() { + final Object behaviorInvokeName = InternalMapContext + .getObject("df:BehaviorInvokeName"); + if (behaviorInvokeName == null) { + return null; + } + final Object clientInvokeName = InternalMapContext + .getObject("df:ClientInvokeName"); + final Object byPassInvokeName = InternalMapContext + .getObject("df:ByPassInvokeName"); + final StringBuilder sb = new StringBuilder(); + boolean existsPath = false; + if (clientInvokeName != null) { + existsPath = true; + sb.append(clientInvokeName); + } + if (byPassInvokeName != null) { + existsPath = true; + sb.append(byPassInvokeName); + } + sb.append(behaviorInvokeName); + if (existsPath) { + sb.append("..."); + } + return sb.toString(); + } + + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected ConditionBean getConditionBean() { + return ConditionBeanContext.getConditionBeanOnThread(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected OutsideSqlContext getOutsideSqlContext() { + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected PreparedStatement prepareStatement(Connection conn) { + if (sql == null) { + throw new IllegalStateException("The sql should not be null!"); + } + return statementFactory.createPreparedStatement(conn, sql); + } + + protected int executeUpdate(PreparedStatement ps) { + try { + return ps.executeUpdate(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return 0;// Unreachable! + } + } + + protected void setFetchSize(Statement statement, int fetchSize) { + if (statement == null) { + return; + } + try { + statement.setFetchSize(fetchSize); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void setMaxRows(Statement statement, int maxRows) { + if (statement == null) { + return; + } + try { + statement.setMaxRows(maxRows); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(Statement statement) { + if (statement == null) { + return; + } + try { + statement.close(); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(ResultSet resultSet) { + if (resultSet == null) { + return; + } + try { + resultSet.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) { + this.loggingMessageSqlArgs = loggingMessageSqlArgs; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,146 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.todolist.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.todolist.db.allcommon.s2dao.FetchNarrowingResultSetWrapper; + +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicSelectHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicSelectHandler(DataSource dataSource, String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + super(dataSource, statementFactory); + setSql(sql); + setResultSetHandler(resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public Object execute(Object[] args, Class[] argTypes) { + Connection conn = getConnection(); + try { + return execute(conn, args, argTypes); + } finally { + close(conn); + } + } + + @SuppressWarnings("unchecked") + public Object execute(Connection conn, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = null; + try { + ps = prepareStatement(conn); + bindArgs(ps, args, argTypes); + return execute(ps); + } catch (SQLException e) { + handleSQLException(e, ps); + return null; // Unreachable! + } finally { + close(ps); + } + } + + protected Object execute(PreparedStatement ps) throws SQLException { + if (resultSetHandler == null) { + throw new IllegalStateException( + "The resultSetHandler should not be null!"); + } + ResultSet resultSet = null; + try { + resultSet = createResultSet(ps); + return resultSetHandler.handle(resultSet); + } finally { + close(resultSet); + } + } + + protected ResultSet createResultSet(PreparedStatement ps) + throws SQLException { + final ResultSet resultSet = ps.executeQuery(); + if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + return resultSet; + } + final FetchNarrowingBean cb = FetchNarrowingBeanContext + .getFetchNarrowingBeanOnThread(); + if (!isUseFetchNarrowingResultSetWrapper(cb)) { + return resultSet; + } + final FetchNarrowingResultSetWrapper wrapper; + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + outsideSqlContext.isOffsetByCursorForcedly(), + outsideSqlContext.isLimitByCursorForcedly()); + } else { + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + false); + } + return wrapper; + } + + protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { + if (cb.getSafetyMaxResultSize() > 0) { + return true; + } + if (!cb.isFetchNarrowingEffective()) { + return false; // It is not necessary to control. + } + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + return true; + } + } + if (cb.isFetchNarrowingSkipStartIndexEffective() + || cb.isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ResultSetHandler getResultSetHandler() { + return resultSetHandler; + } + + public void setResultSetHandler(ResultSetHandler resultSetHandler) { + this.resultSetHandler = resultSetHandler; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,53 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicUpdateHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicUpdateHandler(DataSource dataSource, String sql, + StatementFactory statementFactory) { + super(dataSource, sql, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public int execute(Object[] args, Class[] argTypes) { + Connection connection = getConnection(); + try { + return execute(connection, args, argTypes); + } finally { + close(connection); + } + } + + @SuppressWarnings("unchecked") + public int execute(Connection connection, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = prepareStatement(connection); + try { + bindArgs(ps, args, argTypes); + return executeUpdate(ps); + } finally { + close(ps); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,60 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CommandContext commandContext; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextHandler(DataSource dataSource, + StatementFactory statementFactory, CommandContext commandContext) { + super(dataSource, statementFactory); + this.commandContext = commandContext; + setSql(commandContext.getSql()); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + final Connection connection = getConnection(); + try { + return execute(connection, commandContext); + } finally { + close(connection); + } + } + + protected int execute(Connection connection, CommandContext context) { + logSql(context.getBindVariables(), getArgTypes(context + .getBindVariables())); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, context.getBindVariables(), context + .getBindVariableTypes()); + ret = executeUpdate(ps); + } finally { + close(ps); + } + return ret; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,33 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,34 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,58 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void preUpdateBean(Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (!generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,34 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,262 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.various.InternalProcedureParameterType; + +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.impl.PropertyTypeImpl; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.util.CaseInsensitiveMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureHandler extends InternalBasicSelectHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureHandler(final DataSource dataSource, + final String sql, final ResultSetHandler resultSetHandler, + final StatementFactory statementFactory, + final InternalProcedureMetaData procedureMetaData) { + super(dataSource, sql, resultSetHandler, statementFactory); + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + @SuppressWarnings("unchecked") + public Object execute(final Connection connection, final Object[] args, + final Class[] argTypes) { + final Object dto = getArgumentDto(args); + logSql(args, argTypes); + CallableStatement cs = null; + try { + cs = prepareCallableStatement(connection); + bindArgs(cs, dto); + Object returnValue = null; + if (cs.execute()) { + final ResultSet resultSet = cs.getResultSet(); + if (resultSet != null) { + final ResultSetHandler handler = createReturnResultSetHandler(resultSet); + try { + returnValue = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + } + return handleOutParameters(cs, dto, returnValue); + } catch (SQLException e) { + handleSQLException(e, cs); + return null;// Unreachable! + } finally { + close(cs); + } + } + + protected ResultSetHandler createReturnResultSetHandler(ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + @Override + protected String getCompleteSql(final Object[] args) {// for Procedure Call + String sql = getSql(); + Object dto = getArgumentDto(args); + if (args == null || dto == null) { + return sql; + } + StringBuilder sb = new StringBuilder(100); + int pos = 0; + int pos2 = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + if ((pos2 = sql.indexOf('?', pos)) < 0) { + break; + } + sb.append(sql.substring(pos, pos2)); + pos = pos2 + 1; + if (ppt.isInType()) { + sb.append(getBindVariableText(ppt.getValue(dto))); + } else { + sb.append(sql.substring(pos2, pos)); + } + } + sb.append(sql.substring(pos)); + return sb.toString(); + } + + protected CallableStatement prepareCallableStatement( + final Connection connection) { + if (getSql() == null) { + throw new IllegalStateException("The SQL should not be null!"); + } + return getStatementFactory().createCallableStatement(connection, + getSql()); + } + + protected void bindArgs(final CallableStatement cs, final Object dto) + throws SQLException { + if (dto == null) { + return; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + valueType.registerOutParameter(cs, i + 1); + } + if (ppt.isInType()) { + final Object value = ppt.getValue(dto); + valueType.bindValue(cs, i + 1, value); + } + ++i; + } + } + + protected Object handleResultSet(final CallableStatement cs) + throws SQLException { + ResultSet rs = null; + try { + rs = getResultSet(cs); + return getResultSetHandler().handle(rs); + } finally { + close(rs); + } + } + + protected ResultSet getResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected Object handleOutParameters(final CallableStatement cs, + final Object dto, Object returnValue) throws SQLException { + if (dto == null) { + return null; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + Object value = valueType.getValue(cs, i + 1); + if (value instanceof ResultSet) { + final ResultSet resultSet = (ResultSet) value; + final ResultSetHandler handler = createOutParameterResultSetHandler( + ppt, resultSet); + try { + value = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + ppt.setValue(dto, value); + } else if (ppt.isReturnType()) { + ppt.setValue(dto, returnValue); + } + ++i; + } + return dto; + } + + protected Object getArgumentDto(Object[] args) { + if (args.length == 0) { + return null; + } + if (args.length == 1) { + if (args[0] == null) { + throw new IllegalArgumentException( + "args[0] should not be null!"); + } + return args[0]; + } + throw new IllegalArgumentException("args"); + } + + protected ResultSetHandler createOutParameterResultSetHandler( + InternalProcedureParameterType ppt, ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + //========================================================================== + // ========= + // Map Result Set Handler + // ====================== + protected static abstract class InternalAbstractMapResultSetHandler + implements ResultSetHandler { + + @SuppressWarnings("unchecked") + protected Map createRow(ResultSet rs, + PropertyType[] propertyTypes) throws SQLException { + Map row = new CaseInsensitiveMap(); + for (int i = 0; i < propertyTypes.length; ++i) { + Object value = propertyTypes[i].getValueType().getValue(rs, + i + 1); + row.put(propertyTypes[i].getPropertyName(), value); + } + return row; + } + + protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) + throws SQLException { + int count = rsmd.getColumnCount(); + PropertyType[] propertyTypes = new PropertyType[count]; + for (int i = 0; i < count; ++i) { + String propertyName = rsmd.getColumnLabel(i + 1); + ValueType valueType = ValueTypes.getValueType(rsmd + .getColumnType(i + 1)); + propertyTypes[i] = new PropertyTypeImpl(propertyName, valueType); + } + return propertyTypes; + } + } + + protected static class InternalMapListResultSetHandler extends + InternalAbstractMapResultSetHandler { + + public Object handle(ResultSet resultSet) throws SQLException { + PropertyType[] propertyTypes = createPropertyTypes(resultSet + .getMetaData()); + List> list = new ArrayList>(); + while (resultSet.next()) { + list.add(createRow(resultSet, propertyTypes)); + } + return list; + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,67 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + private boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + if (isCheckSingleRowUpdate() && ret < 1) { + throw createEntityAlreadyUpdatedException(bean, ret); + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } + + protected EntityAlreadyUpdatedException createEntityAlreadyUpdatedException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,34 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,55 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqllog; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLog { + + //========================================================================== + // ========= + // Attribute + // ========= + private String rawSql; + + private String completeSql; + + private Object[] bindArgs; + + private Class[] bindArgTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlLog(String rawSql, String completeSql, Object[] bindArgs, + Class[] bindArgTypes) { + this.rawSql = rawSql; + this.completeSql = completeSql; + this.bindArgs = bindArgs; + this.bindArgTypes = bindArgTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Object[] getBindArgs() { + return bindArgs; + } + + public Class[] getBindArgTypes() { + return bindArgTypes; + } + + public String getCompleteSql() { + return completeSql; + } + + public String getRawSql() { + return rawSql; + } + + public String toString() { + return rawSql; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,277 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqllog; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLogRegistry { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalSqlLogRegistry.class); + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String NAME_SqlLogRegistryLocator = "org.seasar.extension.jdbc.SqlLogRegistryLocator"; + + protected static final String NAME_getInstance = "getInstance"; + + protected static final String NAME_setInstance = "setInstance"; + + protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; + + protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; + static { + forNameContainerSqlLogRegistryLocator(); + } + + //========================================================================== + // ========= + // Public Entry + // ============ + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + + public static Object findContainerSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return null; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_getInstance, (Class[]) null); + return method.invoke(null, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_getInstance=" + NAME_getInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void closeRegistration() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Closing the registry of sqlLog."); + method.invoke(null, new Object[] { null }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void push(String rawSql, String completeSql, + Object[] bindArgs, Class[] bindArgTypes, Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + throw new IllegalArgumentException( + "sqlLogRegistry should not be null!"); + } + final Object sqlLogImpl = createContainerSqlLogImpl(rawSql, + completeSql, bindArgs, bindArgTypes); + reflectSqlLogToContainerSqlLogRegistry(sqlLogImpl, sqlLogRegistry); + } + + public static String peekCompleteSql() { + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return null; + } + final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry); + if (sqlLog == null) { + return null; + } + return extractCompleteSqlFromContainerSqlLog(sqlLog); + } + + //========================================================================== + // ========= + // Container Reflection + // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static Object createContainerSqlLogImpl(String rawSql, + String completeSql, Object[] bindArgs, Class[] bindArgTypes) { + try { + final Class sqlLogImplType = Class.forName(NAME_SqlLogImpl); + final Class[] argTypes = new Class[] { String.class, + String.class, Object[].class, Class[].class }; + final Constructor constructor = sqlLogImplType + .getConstructor(argTypes); + return constructor.newInstance(new Object[] { rawSql, completeSql, + bindArgs, bindArgTypes }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.createContainerSqlLogImpl() threw the exception:"; + msg = msg + " completeSql=" + completeSql; + msg = msg + " NAME_SqlLogImpl=" + NAME_SqlLogImpl; + throw new IllegalStateException(msg, e); + } + } + + protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLog, + Object sqlLogRegistry) { + if (sqlLog == null || sqlLogRegistry == null) { + return; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Class sqlLogType = Class.forName(NAME_SqlLog); + final Method method = sqlLogRegistryType.getMethod("add", + new Class[] { sqlLogType }); + method.invoke(sqlLogRegistry, new Object[] { sqlLog }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.reflectToContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + + sqlLogRegistry; + msg = msg + " NAME_SqlLog=" + NAME_SqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Object findLastContainerSqlLog(Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + return null; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Method method = sqlLogRegistryType.getMethod("getLast", + (Class[]) null); + return method.invoke(sqlLogRegistry, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findLastContainerSqlLog() threw the exception:"; + msg = msg + " sqlLogRegistry=" + sqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) { + if (sqlLog == null) { + return null; + } + try { + final Class sqlLogType = sqlLog.getClass(); + final Method method = sqlLogType.getMethod("getCompleteSql", + (Class[]) null); + return (String) method.invoke(sqlLog, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.extractCompleteSqlFromContainerSqlLog() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Class forNameContainerSqlLogRegistryLocator() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryLocator); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistry() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistry); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,53 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.context.CommandContextImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextCreator { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String[] argNames; + + protected Class[] argTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextCreator(String[] argNames, Class[] argTypes) { + this.argNames = (argNames != null ? argNames : new String[0]); + this.argTypes = (argTypes != null ? argTypes : new Class[0]); + } + + //========================================================================== + // ========= + // Create + // ====== + public CommandContext createCommandContext(Object[] args) { + final CommandContext ctx = new CommandContextImpl(); + if (args != null) { + for (int i = 0; i < args.length; ++i) { + Class argType = null; + if (args[i] != null) { + if (i < argTypes.length) { + argType = argTypes[i]; + } else if (args[i] != null) { + argType = args[i].getClass(); + } + } + if (i < argNames.length) { + ctx.addArg(argNames[i], args[i], argType); + } else { + ctx.addArg("$" + (i + 1), args[i], argType); + } + } + } + return ctx; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1290 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser; + +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Stack; +import java.util.StringTokenizer; + +import jp.sf.pal.todolist.db.allcommon.cbean.MapParameterBean; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.todolist.db.allcommon.exception.BindVariableCommentNotFoundPropertyException; +import jp.sf.pal.todolist.db.allcommon.exception.BindVariableParameterNullValueException; +import jp.sf.pal.todolist.db.allcommon.exception.EmbeddedValueCommentNotFoundPropertyException; +import jp.sf.pal.todolist.db.allcommon.exception.EmbeddedValueParameterNullValueException; +import jp.sf.pal.todolist.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.todolist.db.allcommon.exception.IfCommentConditionNotFoundException; +import jp.sf.pal.todolist.db.allcommon.exception.IfCommentNotBooleanResultException; +import jp.sf.pal.todolist.db.allcommon.exception.IfCommentWrongExpressionException; +import jp.sf.pal.todolist.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.todolist.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.node.AbstractNode; +import org.seasar.dao.node.BeginNode; +import org.seasar.dao.node.ContainerNode; +import org.seasar.dao.node.ElseNode; +import org.seasar.dao.node.PrefixSqlNode; +import org.seasar.dao.node.SqlNode; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.OgnlUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlParser { + + //========================================================================== + // ========= + // Attribute + // ========= + protected InternalSqlTokenizer tokenizer; + + protected Stack nodeStack = new Stack(); + + protected String specifiedSql;// Extension! + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlParser(String sql) { + sql = sql.trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); + } + specifiedSql = sql;// Extension! + tokenizer = new InternalSqlTokenizer(sql); + } + + //========================================================================== + // ========= + // Parse + // ===== + public Node parse() { + push(new ContainerNode()); + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + parseToken(); + } + return pop(); + } + + protected void parseToken() { + switch (tokenizer.getTokenType()) { + case InternalSqlTokenizer.SQL: + parseSql(); + break; + case InternalSqlTokenizer.COMMENT: + parseComment(); + break; + case InternalSqlTokenizer.ELSE: + parseElse(); + break; + case InternalSqlTokenizer.BIND_VARIABLE: + parseBindVariable(); + break; + } + } + + protected void parseSql() { + String sql = tokenizer.getToken(); + if (isElseMode()) { + sql = InternalStringUtil.replace(sql, "--", ""); + } + Node node = peek(); + if ((node instanceof InternalIfNode || node instanceof ElseNode) + && node.getChildSize() == 0) { + + InternalSqlTokenizer st = new InternalSqlTokenizer(sql); + st.skipWhitespace(); + String token = st.skipToken(); + st.skipWhitespace(); + if (sql.startsWith(",")) { + if (sql.startsWith(", ")) { + node.addChild(new PrefixSqlNode(", ", sql.substring(2))); + } else { + node.addChild(new PrefixSqlNode(",", sql.substring(1))); + } + } else if ("AND".equalsIgnoreCase(token) + || "OR".equalsIgnoreCase(token)) { + node.addChild(new PrefixSqlNode(st.getBefore(), st.getAfter())); + } else { + node.addChild(new SqlNode(sql)); + } + } else { + node.addChild(new SqlNode(sql)); + } + } + + protected void parseComment() { + final String comment = tokenizer.getToken(); + if (isTargetComment(comment)) { + if (isIfComment(comment)) { + parseIf(); + } else if (isBeginComment(comment)) { + parseBegin(); + } else if (isEndComment(comment)) { + return; + } else { + parseCommentBindVariable(); + } + } else if (comment != null && 0 < comment.length()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + // [UnderReview]: Should I resolve bind character on scope + // comment(normal comment)? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + String before = tokenizer.getBefore(); + peek().addChild( + new SqlNode(before.substring(before.lastIndexOf("/*")))); + } + } + + protected void parseIf() { + final String condition = tokenizer.getToken().substring(2).trim(); + if (InternalStringUtil.isEmpty(condition)) { + throwIfCommentConditionNotFoundException(); + } + final ContainerNode ifNode = createIfNode(condition); + peek().addChild(ifNode); + push(ifNode); + parseEnd(); + } + + protected void throwIfCommentConditionNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The condition of IF comment was Not Found!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the IF comment expression." + + getLineSeparator(); + msg = msg + + "It may exist the IF comment that DOESN'T have a condition." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + tokenizer.getToken() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentConditionNotFoundException(msg); + } + + protected void parseBegin() { + BeginNode beginNode = new BeginNode(); + peek().addChild(beginNode); + push(beginNode); + parseEnd(); + } + + protected void parseEnd() { + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + if (tokenizer.getTokenType() == InternalSqlTokenizer.COMMENT + && isEndComment(tokenizer.getToken())) { + pop(); + return; + } + parseToken(); + } + throwEndCommentNotFoundException(); + } + + protected void throwEndCommentNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new EndCommentNotFoundException(msg); + } + + protected void parseElse() { + final Node parent = peek(); + if (!(parent instanceof InternalIfNode)) { + return; + } + final InternalIfNode ifNode = (InternalIfNode) pop(); + final InternalElseNode elseNode = new InternalElseNode(); + ifNode.setElseNode(elseNode); + push(elseNode); + tokenizer.skipWhitespace(); + } + + protected void parseCommentBindVariable() { + final String expr = tokenizer.getToken(); + final String s = tokenizer.skipToken(); + if (expr.startsWith("$")) { + peek().addChild(createEmbeddedValueNode(expr.substring(1), s));// Extension + // ! + } else { + peek().addChild(createBindVariableNode(expr, s));// Extension! + } + } + + protected void parseBindVariable() { + final String expr = tokenizer.getToken(); + peek().addChild(createBindVariableNode(expr, null));// Extension! + } + + protected Node pop() { + return (Node) nodeStack.pop(); + } + + protected Node peek() { + return (Node) nodeStack.peek(); + } + + protected void push(Node node) { + nodeStack.push(node); + } + + protected boolean isElseMode() { + for (int i = 0; i < nodeStack.size(); ++i) { + if (nodeStack.get(i) instanceof InternalElseNode) { + return true; + } + } + return false; + } + + private static boolean isTargetComment(String comment) { + return comment != null && comment.length() > 0 + && Character.isJavaIdentifierStart(comment.charAt(0)); + } + + private static boolean isIfComment(String comment) { + return comment.startsWith("IF"); + } + + private static boolean isBeginComment(String content) { + return content != null && "BEGIN".equals(content); + } + + private static boolean isEndComment(String content) { + return content != null && "END".equals(content); + } + + protected AbstractNode createBindVariableNode(String expr, String testValue) {// Extension + // ! + return new InternalBindVariableNode(expr, testValue, specifiedSql); + } + + protected AbstractNode createEmbeddedValueNode(String expr, String testValue) {// Extension + // ! + return new InternalEmbeddedValueNode(expr, testValue, specifiedSql); + } + + protected ContainerNode createIfNode(String expr) {// Extension! + return new InternalIfNode(expr, specifiedSql); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // ========= + // Extension + // ========= + // ----------------------------------------------------- + // BindVariableNode + // ---------------- + protected static class InternalBindVariableNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalBindVariableNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + bindArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + bindArray(ctx, valueAndType.getTargetValue()); + } else { + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, true); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, true); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void bindArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + Class clazz = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + clazz = currentElement.getClass(); + break; + } + } + if (clazz == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql("?", currentElement, clazz); + existsValidElements = true; + } else { + ctx.addSql(", ?", currentElement, clazz); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, true); + } + } + + // ----------------------------------------------------- + // EmbeddedValueNode + // ----------------- + protected static class InternalEmbeddedValueNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalEmbeddedValueNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + // [UnderReview]: Should I make an original exception instead of + // this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + embedArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + embedArray(ctx, valueAndType.getTargetValue()); + } else { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + // [UnderReview]: Should I make an original exception + // instead of this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, false); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, false); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void embedArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + String quote = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + quote = !(currentElement instanceof Number) ? "'" : ""; + break; + } + } + if (quote == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql(quote + currentElement + quote); + existsValidElements = true; + } else { + ctx.addSql(", " + quote + currentElement + quote); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, false); + } + } + + // ----------------------------------------------------- + // Value and Type + // -------------- + protected static class InternalValueAndType { + public Object _targetValue; + + public Class _targetType; + + protected String _rearOption; + + public boolean isValidRearOption() { + return _targetValue != null && _rearOption != null + && _rearOption.trim().length() > 0; + } + + public String buildRearOptionOnSql() { + return " " + _rearOption.trim() + " "; + } + + public Object getTargetValue() { + return _targetValue; + } + + public void setTargetValue(Object targetValue) { + this._targetValue = targetValue; + } + + public Class getTargetType() { + return _targetType; + } + + public void setTargetType(Class targetType) { + this._targetType = targetType; + } + + public String getRearOption() { + return _rearOption; + } + + public void setRearOption(String rearOption) { + this._rearOption = rearOption; + } + } + + protected static class InternalValueAndTypeSetuper { + protected String _expression; + + protected String[] _names; + + protected String _specifiedSql; + + protected boolean _bind; + + public InternalValueAndTypeSetuper(String expression, String[] names, + String specifiedSql, boolean bind) { + this._expression = expression; + this._names = names; + this._specifiedSql = specifiedSql; + this._bind = bind; + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + Object value = valueAndType.getTargetValue(); + Class clazz = valueAndType.getTargetType(); + + // LikeSearchOption handling here is for OutsideSql. + LikeSearchOption likeSearchOption = null; + String rearOption = null; + + for (int pos = 1; pos < _names.length; ++pos) { + if (value == null) { + break; + } + final String currentName = _names[pos]; + if (pos == 1) {// at the First Loop + final BeanDesc beanDesc = BeanDescFactory + .getBeanDesc(clazz); + if (hasLikeSearchOption(beanDesc, currentName)) { + likeSearchOption = getLikeSearchOption(beanDesc, + currentName, value); + } + } + if (Map.class.isInstance(value)) { + final Map map = (Map) value; + value = map.get(_names[pos]); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : clazz); + continue; + } + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz); + if (beanDesc.hasPropertyDesc(currentName)) { + final PropertyDesc pd = beanDesc + .getPropertyDesc(currentName); + value = getPropertyValue(clazz, value, currentName, pd); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : pd + .getPropertyType()); + continue; + } + final String methodName = "get" + initCap(currentName); + if (beanDesc.hasMethod(methodName)) {// Is this unused??? + final Method method = beanDesc.getMethod(methodName); + value = invokeGetter(method, value); + clazz = method.getReturnType(); + continue; + } + if (pos == 1 && MapParameterBean.class.isAssignableFrom(clazz)) { + final MapParameterBean pmb = (MapParameterBean) value; + final Map map = pmb.getParameterMap(); + final Object elementValue = (map != null ? map + .get(_names[pos]) : null); + if (elementValue != null) { + value = elementValue; + clazz = value.getClass(); + continue; + } + } + throwBindOrEmbeddedCommentNotFoundPropertyException( + _expression, clazz, currentName, _specifiedSql, _bind); + } + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + valueAndType.setRearOption(rearOption); + } + + // for OutsideSql + protected boolean isLastLoop4LikeSearch(int pos, + LikeSearchOption likeSearchOption) { + return _names.length == (pos + 1) && likeSearchOption != null; + } + + protected boolean isValidStringValue(Object value) { + return value != null && value instanceof String + && ((String) value).length() > 0; + } + + // for OutsideSql + protected boolean hasLikeSearchOption(BeanDesc beanDesc, + String currentName) { + return beanDesc.hasPropertyDesc(currentName + + "InternalLikeSearchOption"); + } + + // for OutsideSql + protected LikeSearchOption getLikeSearchOption(BeanDesc beanDesc, + String currentName, Object resourceBean) { + final PropertyDesc pb = beanDesc.getPropertyDesc(currentName + + "InternalLikeSearchOption"); + final LikeSearchOption option = (LikeSearchOption) pb + .getValue(resourceBean); + if (option == null) { + throwLikeSearchOptionNotFoundException(resourceBean, + currentName); + } + if (option.isSplit()) { + throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + option, resourceBean, currentName); + } + return option; + } + + // for OutsideSql + protected void throwLikeSearchOptionNotFoundException( + Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new RequiredOptionNotFoundException(msg); + } + + // for OutsideSql + protected void throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + LikeSearchOption option, Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + + " likeSearchOption.splitBySpace(); // *No! Don't invoke this!" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target LikeSearchOption]" + getLineSeparator() + + option + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + protected Object getPropertyValue(Class beanType, Object beanValue, + String currentName, PropertyDesc pd) { + try { + return pd.getValue(beanValue); + } catch (RuntimeException e) { + throwPropertyHandlingFailureException(beanType, beanValue, + currentName, _expression, _specifiedSql, _bind, e); + return null;// Unreachable! + } + } + + protected void throwPropertyHandlingFailureException(Class beanType, + Object beanValue, String currentName, String expression, + String specifiedSql, boolean bind, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The handlig of the property was failed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "This is the Framework Exception!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Type]" + getLineSeparator() + beanType + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Value]" + getLineSeparator() + beanValue + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Property Name]" + getLineSeparator() + currentName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalStateException(msg, e); + } + + protected String initCap(String name) { + return SimpleStringUtil.initCap(name); + } + + protected Object invokeGetter(Method method, Object target) { + try { + return method.invoke(target, (Object[]) null); + } catch (IllegalArgumentException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + protected void throwBindOrEmbeddedCommentNotFoundPropertyException( + String expression, Class targetType, + String notFoundProperty, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The property on the " + + (bind ? "bind variable" : "embedded value") + + " comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "Abd has the property had misspelling?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[NotFound Property]" + getLineSeparator() + + (targetType != null ? targetType.getName() + "#" : "") + + notFoundProperty + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableCommentNotFoundPropertyException(msg); + } else { + throw new EmbeddedValueCommentNotFoundPropertyException(msg); + } + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // Exception Provider + // ------------------ + protected static class ParameterCommentExceptionProvider { + public static void throwBindOrEmbeddedParameterNullValueException( + String expression, Class targetType, String specifiedSql, + boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of " + + (bind ? "bind variable" : "embedded value") + + " was Null!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Is it within the scope of your assumption?" + + getLineSeparator(); + msg = msg + + "If the answer is YES, please confirm your application logic about the parameter." + + getLineSeparator(); + msg = msg + + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + + getLineSeparator(); + msg = msg + " --> For example:" + getLineSeparator(); + msg = msg + " before (x) -- XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Parameter Property Type]" + getLineSeparator() + + targetType + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableParameterNullValueException(msg); + } else { + throw new EmbeddedValueParameterNullValueException(msg); + } + } + + public static void throwBindOrEmbeddedParameterEmptyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was empty!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + public static void throwBindOrEmbeddedParameterNullOnlyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was 'Null Only List'!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // IfNode + // ------ + protected static class InternalIfNode extends ContainerNode { + private String _expression; + + private Object _parsedExpression; + + private InternalElseNode _elseNode; + + private String _specifiedSql; + + public InternalIfNode(String expression, String specifiedSql) { + this._expression = expression; + this._parsedExpression = OgnlUtil.parseExpression(expression); + this._specifiedSql = specifiedSql; + } + + public String getExpression() { + return _expression; + } + + public InternalElseNode getElseNode() { + return _elseNode; + } + + public void setElseNode(InternalElseNode elseNode) { + this._elseNode = elseNode; + } + + public void accept(CommandContext ctx) { + Object result = null; + try { + result = OgnlUtil.getValue(_parsedExpression, ctx); + } catch (RuntimeException e) { + if (!_expression.contains("pmb.")) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + final String replaced = InternalStringUtil.replace(_expression, + "pmb.", "pmb.parameterMap."); + final Object secondParsedExpression = OgnlUtil + .parseExpression(replaced); + try { + result = OgnlUtil.getValue(secondParsedExpression, ctx); + } catch (RuntimeException ignored) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + if (result == null) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + _parsedExpression = secondParsedExpression; + } + if (result != null && result instanceof Boolean) { + if (((Boolean) result).booleanValue()) { + super.accept(ctx); + ctx.setEnabled(true); + } else if (_elseNode != null) { + _elseNode.accept(ctx); + ctx.setEnabled(true); + } + } else { + throwIfCommentNotBooleanResultException(_expression, result, + _specifiedSql); + } + } + + protected void throwIfCommentWrongExpressionException( + String expression, RuntimeException cause, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "And confirm the IF comment of your specified SQL." + + getLineSeparator(); + msg = msg + " For example, correct IF comment is as below:" + + getLineSeparator(); + msg = msg + " /*IF pmb.xxxId != null*/XXX_ID = .../*END*/" + + getLineSeparator(); + msg = msg + " /*IF pmb.isPaging()*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null && pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null || pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Cause Message]" + getLineSeparator(); + msg = msg + cause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + cause.getMessage() + getLineSeparator(); + final Throwable nestedCause = cause.getCause(); + if (nestedCause != null) { + msg = msg + nestedCause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + nestedCause.getMessage() + + getLineSeparator(); + } + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentWrongExpressionException(msg, cause); + } + + protected void throwIfCommentNotBooleanResultException( + String expression, Object result, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The boolean expression on IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the grammar of your IF comment. Does it really express boolean?" + + getLineSeparator(); + msg = msg + + "And confirm the existence of your property on your arguments if you use parameterMap." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Result Value]" + getLineSeparator() + + result + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentNotBooleanResultException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // ElseNode + // -------- + protected static class InternalElseNode extends ContainerNode { + public void accept(CommandContext ctx) { + super.accept(ctx); + ctx.setEnabled(true); + } + } + + // ----------------------------------------------------- + // StringUtil + // ---------- + protected static class InternalStringUtil { + + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new ArrayList(); + StringTokenizer st = new StringTokenizer(str, delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } + + //========================================================================== + // ========= + // Convert + // ======= + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + Object arg) { + final String[] argNames = new String[] { "dto" }; + final Class[] argTypes = new Class[] { arg.getClass() }; + final Object[] args = new Object[] { arg }; + return convertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args); + } + + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + final CommandContext context; + { + final InternalSqlParser parser = new InternalSqlParser(twoWaySql); + final Node node = parser.parse(); + final InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + final String preparedSql = context.getSql(); + return InternalBindVariableUtil.getCompleteSql(preparedSql, context + .getBindVariables()); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,301 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.sqlparser; + +import jp.sf.pal.todolist.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlTokenizer { + + //========================================================================== + // ========= + // Definition + // ========== + public static final int SQL = 1; + + public static final int COMMENT = 2; + + public static final int ELSE = 3; + + public static final int BIND_VARIABLE = 4; + + public static final int EOF = 99; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String sql; + + protected int position = 0; + + protected String token; + + protected int tokenType = SQL; + + protected int nextTokenType = SQL; + + protected int bindVariableNum = 0; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlTokenizer(String sql) { + this.sql = sql; + } + + //========================================================================== + // ========= + // Tokenize + // ======== + public int next() { + if (position >= sql.length()) { + token = null; + tokenType = EOF; + nextTokenType = EOF; + return tokenType; + } + switch (nextTokenType) { + case SQL: + parseSql(); + break; + case COMMENT: + parseComment(); + break; + case ELSE: + parseElse(); + break; + case BIND_VARIABLE: + parseBindVariable(); + break; + default: + parseEof(); + break; + } + return tokenType; + } + + protected void parseSql() { + int commentStartPos = sql.indexOf("/*", position); + int commentStartPos2 = sql.indexOf("#*", position); + if (0 < commentStartPos2 && commentStartPos2 < commentStartPos) { + commentStartPos = commentStartPos2; + } + int lineCommentStartPos = sql.indexOf("--", position); + int bindVariableStartPos = sql.indexOf("?", position); + int elseCommentStartPos = -1; + int elseCommentLength = -1; + if (lineCommentStartPos >= 0) { + int skipPos = skipWhitespace(lineCommentStartPos + 2); + if (skipPos + 4 < sql.length() + && "ELSE".equals(sql.substring(skipPos, skipPos + 4))) { + elseCommentStartPos = lineCommentStartPos; + elseCommentLength = skipPos + 4 - lineCommentStartPos; + } + } + int nextStartPos = getNextStartPos(commentStartPos, + elseCommentStartPos, bindVariableStartPos); + if (nextStartPos < 0) { + token = sql.substring(position); + nextTokenType = EOF; + position = sql.length(); + tokenType = SQL; + } else { + token = sql.substring(position, nextStartPos); + tokenType = SQL; + boolean needNext = nextStartPos == position; + if (nextStartPos == commentStartPos) { + nextTokenType = COMMENT; + position = commentStartPos + 2; + } else if (nextStartPos == elseCommentStartPos) { + nextTokenType = ELSE; + position = elseCommentStartPos + elseCommentLength; + } else if (nextStartPos == bindVariableStartPos) { + nextTokenType = BIND_VARIABLE; + position = bindVariableStartPos; + } + if (needNext) { + next(); + } + } + } + + protected int getNextStartPos(int commentStartPos, int elseCommentStartPos, + int bindVariableStartPos) { + int nextStartPos = -1; + if (commentStartPos >= 0) { + nextStartPos = commentStartPos; + } + if (elseCommentStartPos >= 0 + && (nextStartPos < 0 || elseCommentStartPos < nextStartPos)) { + nextStartPos = elseCommentStartPos; + } + if (bindVariableStartPos >= 0 + && (nextStartPos < 0 || bindVariableStartPos < nextStartPos)) { + nextStartPos = bindVariableStartPos; + } + return nextStartPos; + } + + protected String nextBindVariableName() { + return "$" + ++bindVariableNum; + } + + protected void parseComment() { + int commentEndPos = sql.indexOf("*/", position); + int commentEndPos2 = sql.indexOf("*#", position); + if (0 < commentEndPos2 && commentEndPos2 < commentEndPos) { + commentEndPos = commentEndPos2; + } + if (commentEndPos < 0) { + throwEndCommentNotFoundException(sql.substring(position)); + } + token = sql.substring(position, commentEndPos); + nextTokenType = SQL; + position = commentEndPos + 2; + tokenType = COMMENT; + } + + protected void throwEndCommentNotFoundException(String expression) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[End Comment Expected Place]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + sql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new EndCommentNotFoundException(msg); + } + + protected void parseBindVariable() { + token = nextBindVariableName(); + nextTokenType = SQL; + position += 1; + tokenType = BIND_VARIABLE; + } + + protected void parseElse() { + token = null; + nextTokenType = SQL; + tokenType = ELSE; + } + + protected void parseEof() { + token = null; + tokenType = EOF; + nextTokenType = EOF; + } + + public String skipToken() { + int index = sql.length(); + char quote = position < sql.length() ? sql.charAt(position) : '\0'; + boolean quoting = quote == '\'' || quote == '('; + if (quote == '(') { + quote = ')'; + } + for (int i = quoting ? position + 1 : position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if ((Character.isWhitespace(c) || c == ',' || c == ')' || c == '(') + && !quoting) { + index = i; + break; + } else if (c == '/' && i + 1 < sql.length() + && sql.charAt(i + 1) == '*') { + index = i; + break; + } else if (c == '-' && i + 1 < sql.length() + && sql.charAt(i + 1) == '-') { + index = i; + break; + } else if (quoting && quote == '\'' && c == '\'' + && (i + 1 >= sql.length() || sql.charAt(i + 1) != '\'')) { + index = i + 1; + break; + } else if (quoting && c == quote) { + index = i + 1; + break; + } + } + token = sql.substring(position, index); + tokenType = SQL; + nextTokenType = SQL; + position = index; + return token; + } + + public String skipWhitespace() { + int index = skipWhitespace(position); + token = sql.substring(position, index); + position = index; + return token; + } + + protected int skipWhitespace(int position) { + int index = sql.length(); + for (int i = position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if (!Character.isWhitespace(c)) { + index = i; + break; + } + } + return index; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPosition() { + return position; + } + + public String getToken() { + return token; + } + + public String getBefore() { + return sql.substring(0, position); + } + + public String getAfter() { + return sql.substring(position); + } + + public int getTokenType() { + return tokenType; + } + + public int getNextTokenType() { + return nextTokenType; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,304 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import jp.sf.pal.todolist.db.allcommon.DBFluteConfig; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBindVariableUtil { + + //========================================================================== + // ========= + // Definition + // ========== + private static final String NULL = "null"; + + //========================================================================== + // ========= + // Constructor + // =========== + private InternalBindVariableUtil() { + } + + public static String getCompleteSql(String sql, Object[] args) { + if (args == null || args.length == 0) { + return sql; + } + return getCompleteSql(sql, args, new ValueType[args.length]); + } + + public static String getCompleteSql(String sql, Object[] args, + ValueType[] valueTypes) { + if (args == null || args.length == 0) { + return sql; + } + StringBuffer buf = new StringBuffer(sql.length() + args.length * 15); + int pos = 0; + int pos2 = 0; + int pos3 = 0; + int pos4 = 0; + int pos5 = 0; + int pos6 = 0; + int index = 0; + while (true) { + pos = sql.indexOf('?', pos2); + pos3 = sql.indexOf('\'', pos2); + pos4 = sql.indexOf('\'', pos3 + 1); + pos5 = sql.indexOf("/*", pos2); + pos6 = sql.indexOf("*/", pos5 + 1); + if (pos > 0) { + if (pos3 >= 0 && pos3 < pos && pos < pos4) { + buf.append(sql.substring(pos2, pos4 + 1)); + pos2 = pos4 + 1; + } else if (pos5 >= 0 && pos5 < pos && pos < pos6) { + buf.append(sql.substring(pos2, pos6 + 1)); + pos2 = pos6 + 1; + } else { + if (args.length <= index) { + String msg = "The size of bind arguments is illegal:"; + msg = msg + " size=" + args.length + " sql=" + sql; + throw new IllegalStateException(msg); + } + buf.append(sql.substring(pos2, pos)); + buf.append(getBindVariableText(args[index], + valueTypes[index])); + pos2 = pos + 1; + index++; + } + } else { + buf.append(sql.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String getBindVariableText(Object bindVariable) { + if (bindVariable instanceof String) { + return quote(bindVariable.toString()); + } else if (bindVariable instanceof Number) { + return bindVariable.toString(); + } else if (bindVariable instanceof Time) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Timestamp) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogTimestampFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof java.util.Date) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogDateFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Boolean) { + return bindVariable.toString(); + } else if (bindVariable == null) { + return NULL; + } else { + return quote(bindVariable.toString()); + } + } + + protected static String getLogDateFormat() { + String logDateFormat = DBFluteConfig.getInstance().getLogDateFormat(); + return logDateFormat != null ? logDateFormat : "yyyy-MM-dd"; + } + + protected static String getLogTimestampFormat() { + String logTimestampFormat = DBFluteConfig.getInstance() + .getLogTimestampFormat(); + return logTimestampFormat != null ? logTimestampFormat + : "yyyy-MM-dd HH:mm:ss"; + } + + // For various seasar's version. + protected static final Class[] TOTEXT_ARGUMENT_TYPES = new Class[] { Object.class }; + + protected static final Method TOTEXT_METHOD; + static { + Method method = null; + try { + method = ValueType.class.getMethod("toText", TOTEXT_ARGUMENT_TYPES); + } catch (SecurityException e) { + } catch (NoSuchMethodException e) { + } + TOTEXT_METHOD = method; + } + + public static String getBindVariableText(Object bindVariable, + ValueType valueType) { + if (valueType != null && TOTEXT_METHOD != null) { + try { + return (String) TOTEXT_METHOD.invoke(valueType, + new Object[] { bindVariable }); + } catch (IllegalArgumentException e) { + String msg = "ValueType.toText() threw the IllegalArgumentException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (IllegalAccessException e) { + String msg = "ValueType.toText() threw the IllegalAccessException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (InvocationTargetException e) { + if (e.getTargetException() instanceof RuntimeException) { + throw (RuntimeException) e.getTargetException(); + } else { + String msg = "ValueType.toText() threw the exception:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e.getTargetException()); + } + } + } + return getBindVariableText(bindVariable); + } + + public static String nullText() { + return NULL; + } + + public static String toText(Number value) { + if (value == null) { + return NULL; + } + return value.toString(); + } + + public static String toText(Boolean value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + public static String toText(String value) { + if (value == null) { + return NULL; + } + return quote(value); + } + + public static String toText(Date value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addDate(buf, calendar); + return quote(buf.toString()); + } + + public static String toText(Time value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addTime(buf, calendar); + addTimeDecimalPart(buf, calendar.get(Calendar.MILLISECOND)); + return quote(buf.toString()); + } + + public static String toText(Timestamp value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(30); + addDate(buf, calendar); + addTime(buf, calendar); + addTimeDecimalPart(buf, value.getNanos()); + return quote(buf.toString()); + } + + public static String toText(byte[] value) { + if (value == null) { + return NULL; + } + return quote(value.toString() + "(byteLength=" + + Integer.toString(value.length) + ")"); + } + + /** + * {@link Object}¤Îʸ»úÎóɽ¸½¤òÊÖ¤·¤Þ¤¹¡£ + * + * @param value ÃÍ + * @return ʸ»úÎóɽ¸½ + */ + public static String toText(Object value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + // yyyy-mm-dd + protected static void addDate(StringBuilder buf, Calendar calendar) { + int year = calendar.get(Calendar.YEAR); + buf.append(year); + buf.append('-'); + int month = calendar.get(Calendar.MONTH) + 1; + if (month < 10) { + buf.append('0'); + } + buf.append(month); + buf.append('-'); + int date = calendar.get(Calendar.DATE); + if (date < 10) { + buf.append('0'); + } + buf.append(date); + } + + // hh:mm:ss + protected static void addTime(StringBuilder buf, Calendar calendar) { + if (buf.length() > 0) { + buf.append(' '); + } + int hour = calendar.get(Calendar.HOUR_OF_DAY); + if (hour < 10) { + buf.append('0'); + } + buf.append(hour); + buf.append(':'); + int minute = calendar.get(Calendar.MINUTE); + if (minute < 10) { + buf.append('0'); + } + buf.append(minute); + buf.append(':'); + int second = calendar.get(Calendar.SECOND); + if (second < 10) { + buf.append('0'); + } + buf.append(second); + } + + // .000 + protected static void addTimeDecimalPart(StringBuilder buf, int decimalPart) { + if (decimalPart == 0) { + return; + } + if (buf.length() > 0) { + buf.append('.'); + } + buf.append(decimalPart); + } + + // 'text' + protected static String quote(String text) { + return "'" + text + "'"; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,137 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,101 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.various; + +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaData { + + //========================================================================== + // ========= + // Attribute + // ========= + private String procedureName; + + private Map unorderedMap = createUnorderedMap(); + + private Map parameterTypes = createParameterTypes(); + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureMetaData(final String procedureName) { + this.procedureName = procedureName; + } + + //========================================================================== + // ========= + // Factory + // ======= + protected Map createUnorderedMap() { + return new HashMap(); + } + + protected Map createParameterTypes() { + return new TreeMap( + new ParameterComparator()); + } + + protected class ParameterComparator implements Comparator { + public int compare(String o1, String o2) { + final int oneGreaterThanTwo = 1; + final int twoGreaterThanOne = -1; + final InternalProcedureParameterType parameterType1 = unorderedMap + .get(o1); + final InternalProcedureParameterType parameterType2 = unorderedMap + .get(o2); + if (parameterType1.isReturnType()) { + return twoGreaterThanOne; // Return type is prior + } + if (parameterType2.isReturnType()) { + return oneGreaterThanTwo; // Return type is prior + } + final Integer parameterIndex1 = parameterType1.getParameterIndex(); + final Integer parameterIndex2 = parameterType2.getParameterIndex(); + if (parameterIndex1 == null && parameterIndex2 == null) { + return oneGreaterThanTwo; // No changes + } + if (parameterIndex1 != null && parameterIndex2 == null) { + return twoGreaterThanOne; // Not null is prior + } + if (parameterIndex1 == null && parameterIndex2 != null) { + return oneGreaterThanTwo; // Not null is prior + } + return parameterIndex1.compareTo(parameterIndex2); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getProcedureName() { + return procedureName; + } + + public Collection parameterTypes() { + return parameterTypes.values(); + } + + public void addParameterType( + final InternalProcedureParameterType parameterType) { + final String name = parameterType.getParameterName(); + unorderedMap.put(name, parameterType); + parameterTypes.put(name, parameterType); + if (parameterType.isReturnType()) { + returnType = true; + } + } + + public boolean hasReturnParameterType() { + return returnType; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,232 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; + +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.util.TypeUtil; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaDataFactory { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); + + //========================================================================== + // ========= + // Main + // ==== + public InternalProcedureMetaData createProcedureMetaData( + final String procedureName, final Class pmbType) { + final InternalProcedureMetaData metaData = new InternalProcedureMetaData( + procedureName); + if (pmbType == null) { + return metaData; + } else { + if (!isDtoType(pmbType)) { + throw new IllegalStateException( + "The pmb type was Not DTO type: " + pmbType.getName()); + } + } + final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); + + // *Point + final Stack> stack = new Stack>(); + for (Class clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz + .getSuperclass()) { + stack.push(clazz); + } + for (; !stack.isEmpty();) { + final Class clazz = stack.pop(); + registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields()); + } + + return metaData; + } + + protected void registerParameterType(InternalProcedureMetaData metaData, + BeanDesc pmbDesc, Field[] fields) { + for (Field field : fields) { + if (!isInstanceField(field)) { + continue; + } + final InternalProcedureParameterType ppt = getProcedureParameterType( + pmbDesc, field); + if (ppt == null) { + continue; + } + metaData.addParameterType(ppt); + } + } + + protected InternalProcedureParameterType getProcedureParameterType( + final BeanDesc dtoDesc, final Field field) { + final String procedureParameter = annotationReader + .getProcedureParameter(dtoDesc, field); + if (procedureParameter == null) { + return null; + } + final String type = extractParameterType(procedureParameter); + field.setAccessible(true); + final InternalProcedureParameterType ppt = new InternalProcedureParameterType( + field); + if (type.equalsIgnoreCase("in")) { + ppt.setInType(true); + } else if (type.equalsIgnoreCase("out")) { + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("inout")) { + ppt.setInType(true); + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("return")) { + ppt.setOutType(true); + ppt.setReturnType(true); + } else { + String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterType=" + type; + throw new IllegalStateException(msg); + } + final Integer index = extractParameterIndex(procedureParameter, field); + ppt.setParameterIndex(index); + final ValueType valueType = getValueType(dtoDesc, field); + ppt.setValueType(valueType); + return ppt; + } + + protected String extractParameterType(String procedureParameter) { + if (procedureParameter.contains(",")) { + return procedureParameter.substring(0, + procedureParameter.indexOf(",")).trim(); + } + return procedureParameter.trim(); + } + + protected Integer extractParameterIndex(String procedureParameter, + Field field) { + if (procedureParameter.contains(",")) { + String tmp = procedureParameter.substring( + procedureParameter.indexOf(",") + ",".length()).trim(); + try { + return Integer.valueOf(tmp); + } catch (NumberFormatException e) { + String msg = "The parameter index should be number:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + + procedureParameter; + throw new IllegalStateException(msg, e); + } + } + return null; + } + + protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) { + final String name = annotationReader.getValueType(dtoDesc, field); + if (name != null) { + return valueTypeFactory.getValueTypeByName(name); + } + final Class type = field.getType(); + if (List.class.isAssignableFrom(type)) {// is for out parameter cursor. + if (ConditionBeanContext.isOracle()) { + return ValueTypes.ORACLE_RESULT_SET; + } else if (ConditionBeanContext.isPostgreSql()) { + return ValueTypes.POSTGRE_RESULT_SET; + } else { + return ValueTypes.SERIALIZABLE_BYTE_ARRAY; + } + } + return valueTypeFactory.getValueTypeByClass(type); + } + + protected boolean isInstanceField(final Field field) { + final int mod = field.getModifiers(); + return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); + } + + protected boolean isDtoType(final Class clazz) { + return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); + } + + protected boolean isContainerType(final Class clazz) { + if (clazz == null) { + throw new NullPointerException("clazz"); + } + return Collection.class.isAssignableFrom(clazz) + || Map.class.isAssignableFrom(clazz) || clazz.isArray(); + } + + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected static class InternalFieldProcedureAnnotationReader { + protected String PROCEDURE_PARAMETER_SUFFIX; + + protected String VALUE_TYPE_SUFFIX; + + public InternalFieldProcedureAnnotationReader() { + PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; + VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; + } + + public String getProcedureParameter(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + public String getValueType(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + VALUE_TYPE_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + protected String removeInstanceVariablePrefix(String fieldName) { + return fieldName.startsWith("_") ? fieldName + .substring("_".length()) : fieldName; + } + + protected Object getValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,112 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureParameterType { + + //========================================================================== + // ========= + // Attribute + // ========= + private String parameterName; + + private Integer parameterIndex; + + private Field field; + + private ValueType valueType; + + private boolean inType; + + private boolean outType; + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureParameterType(Field field) { + this.field = field; + this.parameterName = field.getName(); + } + + //========================================================================== + // ========= + // Field Value + // =========== + public Object getValue(Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + public void setValue(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + String msg = "The setting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getParameterName() { + return parameterName; + } + + public Integer getParameterIndex() { + return parameterIndex; + } + + public void setParameterIndex(Integer parameterIndex) { + this.parameterIndex = parameterIndex; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(final ValueType valueType) { + this.valueType = valueType; + } + + public boolean isInType() { + return inType; + } + + public void setInType(final boolean inType) { + this.inType = inType; + } + + public boolean isOutType() { + return outType; + } + + public void setOutType(final boolean outType) { + this.outType = outType; + } + + public boolean isReturnType() { + return returnType; + } + + public void setReturnType(final boolean returnType) { + this.returnType = returnType; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,327 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.impl.RelationRowCreationResource; +import org.seasar.dao.impl.RelationRowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRelationRowCreator extends RelationRowCreatorImpl { + + @Override + protected Object createRelationRow(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + if (!res.hasPropertyCacheElement()) { + return null; + } + setupRelationKeyValue(res); + setupRelationAllValue(res); + return res.getRow(); + } + + @Override + protected void setupRelationKeyValue(RelationRowCreationResource res) { + final RelationPropertyType rpt = res.getRelationPropertyType(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + final DBMeta dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName()); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); + + if (!res.containsColumnName(columnName)) { + continue; + } + if (!res.hasRowInstance()) { + final Object row; + if (dbmeta != null) { + row = dbmeta.newEntity(); + } else { + row = newRelationRow(rpt); + } + res.setRow(row); + } + if (!res.containsRelKeyValueIfExists(columnName)) { + continue; + } + final Object value = res.extractRelKeyValue(columnName); + if (value == null) { + continue; + } + + final String yourKey = rpt.getYourKey(i); + final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey); + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + continue; + } + } + + protected Object createRelationRowInstance(DBMeta dbmeta) { + if (dbmeta != null) { + return dbmeta.newEntity(); + } + return null; + } + + protected DBMeta findDBMeta(Class rowType, String tableName) { + return InternalRowCreator.findDBMeta(rowType, tableName); + } + + @SuppressWarnings("unchecked") + @Override + protected void setupRelationAllValue(RelationRowCreationResource res) + throws SQLException { + final Map propertyCacheElement = res.extractPropertyCacheElement(); + final Set columnNameCacheElementKeySet = propertyCacheElement.keySet(); + for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite + .hasNext();) { + final String columnName = (String) ite.next(); + final PropertyType pt = (PropertyType) propertyCacheElement + .get(columnName); + res.setCurrentPropertyType(pt); + if (!isValidRelationPerPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + setupRelationProperty(res); + } + if (!isValidRelationAfterPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + res.clearValidValueCount(); + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + setupNextRelationRow(res); + } + } + + @Override + protected void registerRelationValue(RelationRowCreationResource res, + String columnName) throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + Object value = null; + if (res.containsRelKeyValueIfExists(columnName)) { + value = res.extractRelKeyValue(columnName); + } else { + final ValueType valueType = pt.getValueType(); + value = valueType.getValue(res.getResultSet(), columnName); + } + + if (value != null) { + res.incrementValidValueCount(); + final DBMeta dbmeta = findDBMeta(res.getRow()); + final String propertyName = pt.getPropertyName(); + if (dbmeta != null + && dbmeta.hasEntityPropertySetupper(propertyName)) { + dbmeta.setupEntityProperty(propertyName, res.getRow(), value); + } else { + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + } + } + } + + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + protected DBMeta findDBMeta(Object row) { + return InternalRowCreator.findDBMeta(row); + } + + @Override + protected void setupPropertyCache(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + res.initializePropertyCacheElement(); + + // Do only selected foreign property for performance if condition-bean + // exists. + if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) { + return; + } + + // Set up property cache about current beanMetaData. + final BeanMetaData nextBmd = res.getRelationBeanMetaData(); + for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { + final PropertyType pt = nextBmd.getPropertyType(i); + res.setCurrentPropertyType(pt); + if (!isTargetProperty(res)) { + continue; + } + setupPropertyCacheElement(res); + } + + // Set up next relation. + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + res.backupRelationPropertyType(); + res.incrementCurrentRelationNestLevel(); + try { + setupNextPropertyCache(res, nextBmd); + } finally { + res.restoreRelationPropertyType(); + res.decrementCurrentRelationNestLevel(); + } + } + } + + @Override + protected boolean isTargetProperty(RelationRowCreationResource res) + throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + if (!pt.getPropertyDesc().hasWriteMethod()) { + return false; + } + if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() + .getPropertyType())) { + return false; + } + return true; + } + + @Override + protected boolean isCreateDeadLink() { + return false; + } + + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForRow(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues, + Map relationPropertyCache) throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setResultSet(rs); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelKeyValues(relKeyValues); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix("");// as Default + res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); + res.setLimitRelationNestLevel(getLimitRelationNestLevel()); + res.setCurrentRelationNestLevel(1);// as Default + res.setCreateDeadLink(isCreateDeadLink()); + return res; + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForPropertyCache( + RelationPropertyType rpt, Set columnNames, + Map relationPropertyCache, String baseSuffix, + String relationNoSuffix, int limitRelationNestLevel) + throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix(baseSuffix); + res.setRelationNoSuffix(relationNoSuffix); + res.setLimitRelationNestLevel(limitRelationNestLevel); + res.setCurrentRelationNestLevel(1);// as Default + return res; + } + + protected boolean isConditionBeanSelectedRelation( + RelationRowCreationResource res) { + if (hasConditionBean(res)) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo( + res.getRelationNoSuffix())) { + return true; + } + } + return false; + } + + protected boolean hasConditionBean(RelationRowCreationResource res) { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) { + return true; + } + return false; + } + + protected static class RelationRowCreationResourceExtension extends + RelationRowCreationResource { + protected Stack backupRelationPropertyType = new Stack(); + + protected Stack backupBaseSuffix = new Stack(); + + protected Stack backupRelationSuffix = new Stack(); + + @Override + public void backupRelationPropertyType() { + backupRelationPropertyType.push(getRelationPropertyType()); + } + + @Override + public void restoreRelationPropertyType() { + setRelationPropertyType(backupRelationPropertyType.pop()); + } + + @Override + public void backupSuffixAndPrepare(String baseSuffix, + String additionalRelationNoSuffix) { + backupBaseSuffixExtension(); + backupRelationNoSuffixExtension(); + setBaseSuffix(baseSuffix); + addRelationNoSuffix(additionalRelationNoSuffix); + } + + @Override + public void restoreSuffix() { + restoreBaseSuffixExtension(); + restoreRelationNoSuffixExtension(); + } + + protected void backupBaseSuffixExtension() { + backupBaseSuffix.push(getBaseSuffix()); + } + + protected void restoreBaseSuffixExtension() { + setBaseSuffix(backupBaseSuffix.pop()); + } + + protected void backupRelationNoSuffixExtension() { + backupRelationSuffix.push(getRelationNoSuffix()); + } + + protected void restoreRelationNoSuffixExtension() { + setRelationNoSuffix(backupRelationSuffix.pop()); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRowCreator.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRowCreator.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRowCreator.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,289 @@ +package jp.sf.pal.todolist.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.InternalMapContext; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.impl.RowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRowCreator extends RowCreatorImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalRowCreator.class); + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta _dbmeta; + + //========================================================================== + // ========= + // Constructor + // =========== + protected InternalRowCreator() { + } + + /** + * @param beanClass The class of target bean to find DB-meta. (Nullable) + * @return The instance of internal row creator. (NotNull) + */ + public static InternalRowCreator createInternalRowCreator(Class beanClass) { + final InternalRowCreator rowCreator = new InternalRowCreator(); + if (beanClass != null) { + rowCreator.setDBMeta(findDBMetaByClass(beanClass)); + } + return rowCreator; + } + + //========================================================================== + // ========= + // Main + // ==== + @SuppressWarnings("unchecked") + @Override + public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) + throws SQLException { + final Set columnNameSet = propertyCache.keySet(); + String columnName = null; + PropertyType pt = null; + String propertyName = null; + final Object row; + final DBMeta dbmeta; + if (_dbmeta != null) { + dbmeta = _dbmeta; + row = dbmeta.newEntity(); + } else { + row = newBean(beanClass); + dbmeta = findDBMeta(row); + } + try { + if (dbmeta != null) { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + if (dbmeta.hasEntityPropertySetupper(propertyName)) { + final ValueType valueType = pt.getValueType(); + final Object value = valueType.getValue(rs, columnName); + dbmeta.setupEntityProperty(propertyName, row, value); + } else { + registerValue(rs, row, pt, columnName); + } + } + } else { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + registerValue(rs, row, pt, columnName); + } + } + return row; + } catch (ClassCastException e) { + if (_log.isWarnEnabled()) { + String msg = ClassCastException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName + " dbmeta"); + } + throwNonsenseClassCastException(row, dbmeta, e); + return null; // Unreachable! + } catch (SQLException e) { + if (_log.isWarnEnabled()) { + String msg = SQLException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName); + } + throw e; + } + } + + protected void throwNonsenseClassCastException(Object entity, + DBMeta dbmeta, ClassCastException e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "This exception may be from ClassLoader Headache about HotDeploy." + + getLineSeparator(); + msg = msg + + "Please add the ignore-package setting to convention.dicon like as follows:" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + + getLineSeparator(); + msg = msg + " ¡Écom.example.xxx.dbflute¡É" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + + entity.getClass().getClassLoader() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + + dbmeta.getClass().getClassLoader() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new NonsenseClassCastException(msg, e); + } + + public static class NonsenseClassCastException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public NonsenseClassCastException(String msg, ClassCastException e) { + super(msg, e); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Object row) { + return DBMetaCacheHandler.findDBMeta(row); + } + + /** + * @param rowType The type of row. (NotNull) + * @param tableName The name of table. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Class rowType, String tableName) { + return DBMetaCacheHandler.findDBMeta(rowType, tableName); + } + + protected static class DBMetaCacheHandler { + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + public static DBMeta findDBMeta(Object row) { + if (!(row instanceof Entity)) { + return null; + } + final Entity entity = (Entity) row; + DBMeta dbmeta = findCachedDBMeta(entity.getClass()); + if (dbmeta != null) { + return dbmeta; + } + dbmeta = entity.getDBMeta(); + cacheDBMeta(entity, dbmeta); + return dbmeta; + } + + public static DBMeta findDBMeta(Class rowType, String tableName) { + DBMeta dbmeta = findCachedDBMeta(rowType); + if (dbmeta != null) { + return dbmeta; + } + try { + dbmeta = DBMetaInstanceHandler.findDBMeta(tableName); + } catch (DBMetaInstanceHandler.DBMetaNotFoundException ignored) { + return null; + } + cacheDBMeta(rowType, dbmeta); + return dbmeta; + } + + protected static DBMeta findCachedDBMeta(Class rowType) { + Map, DBMeta> dbmetaCache = findDBMetaCache(); + if (dbmetaCache == null) { + dbmetaCache = new HashMap, DBMeta>(); + InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); + } + return dbmetaCache.get(rowType); + } + + protected static void cacheDBMeta(Entity entity, DBMeta dbmeta) { + cacheDBMeta(entity.getClass(), dbmeta); + } + + protected static void cacheDBMeta(Class type, DBMeta dbmeta) { + final Map, DBMeta> dbmetaCache = findDBMetaCache(); + dbmetaCache.put(type, dbmeta); + } + + @SuppressWarnings("unchecked") + protected static Map, DBMeta> findDBMetaCache() { + return (Map, DBMeta>) InternalMapContext + .getObject(DBMETA_CACHE_KEY); + } + } + + protected static DBMeta findDBMetaByClass(Class beanClass) { + final Object instance = newInstance(beanClass); + if (!(instance instanceof Entity)) { + return null; + } + return ((Entity) instance).getDBMeta(); + } + + protected static Object newInstance(Class clazz) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setDBMeta(DBMeta dbmeta) { + this._dbmeta = dbmeta; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/s2dao/internal/various/InternalRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleAssertUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleAssertUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleAssertUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,54 @@ +package jp.sf.pal.todolist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleAssertUtil { + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + public static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + public static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleAssertUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleStringUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleStringUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleStringUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,67 @@ +package jp.sf.pal.todolist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringUtil { + + //========================================================================== + // ========= + // String + // ====== + public static String replace(String text, String fromText, String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + int pos = 0; + int pos2 = 0; + do { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + sb.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + sb.append(text.substring(pos2, pos)); + sb.append(toText); + pos2 = pos + fromText.length(); + } else { + sb.append(text.substring(pos2)); + return sb.toString(); + } + } while (true); + } + + public static String initCap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + + public static String initUncap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleStringUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleSystemUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleSystemUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleSystemUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleSystemUtil { + + //========================================================================== + // ========= + // System + // ====== + public static String getLineSeparator() { + // /- - - - - - - - - - - - - - - - - - - - - - + // Because 'CR + LF' caused many trouble! + // And Now 'LF' have little trouble. + // + // return System.getProperty("line.separator"); + // - - - - - - - - - -/ + return "\n"; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/SimpleSystemUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/TraceViewUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/TraceViewUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/TraceViewUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,67 @@ +package jp.sf.pal.todolist.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TraceViewUtil { + + /** + * Convert to performance view. + * + * @param afterMinusBefore The value of after-minus-before millisecond. + * @return Performance view. (ex. 1m23s456ms) (NotNull) + */ + public static String convertToPerformanceView(long afterMinusBefore) { + if (afterMinusBefore < 0) { + return String.valueOf(afterMinusBefore); + } + + long sec = afterMinusBefore / 1000; + final long min = sec / 60; + sec = sec % 60; + final long mil = afterMinusBefore % 1000; + + final StringBuffer sb = new StringBuffer(); + if (min >= 10) { // Minute + sb.append(min).append("m"); + } else if (min < 10 && min >= 0) { + sb.append("0").append(min).append("m"); + } + if (sec >= 10) { // Second + sb.append(sec).append("s"); + } else if (sec < 10 && sec >= 0) { + sb.append("0").append(sec).append("s"); + } + if (mil >= 100) { // Millisecond + sb.append(mil).append("ms"); + } else if (mil < 100 && mil >= 10) { + sb.append("0").append(mil).append("ms"); + } else if (mil < 10 && mil >= 0) { + sb.append("00").append(mil).append("ms"); + } + + return sb.toString(); + } + + /** + * Convert object array to string view. + * + * @param objArray The array of object. (Nullable) + * @return The string divided with comma. (NotNull: If the argument is null, + * returns empty string.) + */ + public static String convertObjectArrayToStringView(Object[] objArray) { + if (objArray == null) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < objArray.length; i++) { + if (i == 0) { + sb.append(objArray[i]); + } else { + sb.append(", ").append(objArray[i]); + } + } + return sb.toString(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/TraceViewUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/ValueLabelUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/ValueLabelUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/ValueLabelUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,65 @@ +package jp.sf.pal.todolist.db.allcommon.util; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelUtil { + + /** + * Find the label by the value from the list of value label. + * + * @param valueLabelList The list of value label. (NotNull and NotEmpty) + * @param value Value. (NotNull) + * @return Label. (NotNull) + */ + public static String findLabel(List> valueLabelList, + Object value) { + if (valueLabelList == null) { + String msg = "The arguement[valueLabelList] should not be null."; + throw new IllegalArgumentException(msg); + } + if (valueLabelList.isEmpty()) { + String msg = "The arguement[valueLabelList] should not be empty."; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The arguement[value] should not be null."; + throw new IllegalArgumentException(msg); + } + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + if (value.equals(currentValue)) { + return (String) elementMap.get("label"); + } + } + String msg = "Not found label by the value: value=" + value + + " valueLabelList=" + valueLabelList; + throw new IllegalStateException(msg); + } + + public static Map createValueLabelMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentValue, currentLabel); + } + return resultMap; + } + + public static Map createLabelValueMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentLabel, currentValue); + } + return resultMap; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/allcommon/util/ValueLabelUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupInfoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,897 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.GroupMappingBhv; +import jp.sf.pal.todolist.db.exbhv.UserInfoBhv; +import jp.sf.pal.todolist.db.exdao.GroupInfoDao; +import jp.sf.pal.todolist.db.exentity.GroupInfo; +import jp.sf.pal.todolist.db.exentity.GroupMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupMappingBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,602 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.exdao.GroupMappingDao; +import jp.sf.pal.todolist.db.exentity.GroupInfo; +import jp.sf.pal.todolist.db.exentity.GroupMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleInfoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,895 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.RoleMappingBhv; +import jp.sf.pal.todolist.db.exbhv.UserInfoBhv; +import jp.sf.pal.todolist.db.exdao.RoleInfoDao; +import jp.sf.pal.todolist.db.exentity.RoleInfo; +import jp.sf.pal.todolist.db.exentity.RoleMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleMappingBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,597 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.exdao.RoleMappingDao; +import jp.sf.pal.todolist.db.exentity.RoleInfo; +import jp.sf.pal.todolist.db.exentity.RoleMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,815 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.TodoDbm; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.exbhv.TodoMappingBhv; +import jp.sf.pal.todolist.db.exdao.TodoDao; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of TODO. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, DESCRIPTION, PRIORITY, STATUS, START_DATE, END_DATE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     TODO_MAPPING
    + * 
    + * [foreign-property]
    + *     userInfo
    + * 
    + * [referrer-property]
    + *     todoMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsTodoBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "TODO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return TodoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public TodoDbm getMyDBMeta() { + return TodoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public TodoDao getMyDao() { + return _dao; + } + + public void setMyDao(TodoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Todo newMyEntity() { + return new Todo(); + } + + public TodoCB newMyConditionBean() { + return new TodoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Todo. (NotNull) + * @return The selected count. + */ + public int selectCount(TodoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Todo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Todo selectEntity(final TodoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(TodoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Todo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Todo selectEntityWithDeletedCheck(final TodoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(TodoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public Todo selectByPKValueWithDeletedCheck(Long id) { + Todo entity = new Todo(); + entity.setId(id); + final TodoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Todo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(TodoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Todo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final TodoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Todo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList(TodoCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of todoMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setTodoId_InScope(pkList);
    +     * cb.query().addOrderBy_TodoId_Asc();
    +     * 
    + * + * @param todoList The entity list of todo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadTodoMappingList(List todoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("todoList", todoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (todoList.isEmpty()) { + return; + } + loadTodoMappingList(todoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param todoList The entity list of todo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadTodoMappingList(List todoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("todoList", todoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (todoList.isEmpty()) { + return; + } + final TodoMappingBhv referrerBhv = xgetBSFLR().select( + TodoMappingBhv.class); + helpLoadReferrerInternally( + todoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue(Todo entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList(Todo entity, + List referrerList) { + entity.setTodoMappingList(referrerList); + } + + public TodoMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + TodoMappingCB cb, List pkList) { + cb.query().setTodoId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + TodoMappingCB cb) { + cb.query().addOrderBy_TodoId_Asc(); + } + + public List callbackReferrer_selectList( + TodoMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + TodoMapping entity) { + return entity.getTodoId(); + } + + public void callbackReferrer_setForeignEntity( + TodoMapping referrerEntity, Todo baseEntity) { + referrerEntity.setTodo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param todoList The list of todo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List todoList) { + return helpPulloutInternally(todoList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Todo entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param todo The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Todo todo) { + assertEntityNotNull(todo); + delegateInsert(todo); + } + + @Override + protected void doCreate(Entity todo) { + insert((Todo) todo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param todo The entity of update target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Todo todo) { + helpUpdateInternally(todo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Todo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Todo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param todo The entity of update target. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final Todo todo) { + helpUpdateNonstrictInternally(todo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(Todo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((Todo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param todo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Todo todo) { + helpInsertOrUpdateInternally(todo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Todo entity) { + insert(entity); + } + + public void callbackUpdate(Todo entity) { + update(entity); + } + + public TodoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(TodoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity todo) { + insertOrUpdate((Todo) todo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param todo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(Todo todo) { + helpInsertOrUpdateInternally(todo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(Todo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(Todo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((Todo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param todo The entity of delete target. (NotNull) {PrimaryKeyRequired, + * ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Todo todo) { + helpDeleteInternally(todo, new InternalDeleteCallback() { + public int callbackDelegateDelete(Todo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity todo) { + delete((Todo) todo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param todo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(Todo todo) { + helpDeleteNonstrictInternally(todo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(Todo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param todo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(Todo todo) { + helpDeleteNonstrictIgnoreDeletedInternally(todo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(Todo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List todoList) { + assertObjectNotNull("todoList", todoList); + return delegateInsertList(todoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param todoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List todoList) { + assertObjectNotNull("todoList", todoList); + return delegateUpdateList(todoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List todoList) { + assertObjectNotNull("todoList", todoList); + return delegateUpdateListNonstrict(todoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List todoList) { + assertObjectNotNull("todoList", todoList); + return delegateDeleteList(todoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param todoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List todoList) { + assertObjectNotNull("todoList", todoList); + return delegateDeleteListNonstrict(todoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param todo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Todo todo, TodoCB cb) { + assertObjectNotNull("todo", todo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(todo); + filterEntityOfUpdate(todo); + assertEntityOfUpdate(todo); + return getMyDao().updateByQuery(cb, todo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(TodoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(TodoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(TodoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Todo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Todo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(Todo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(Todo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(Todo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("todoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("todoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("todoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("todoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("todoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Todo downcast(Entity entity) { + return helpDowncastInternally(entity, Todo.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoCategoryBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoCategoryBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoCategoryBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,680 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.TodoCategoryDbm; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.exbhv.TodoMappingBhv; +import jp.sf.pal.todolist.db.exdao.TodoCategoryDao; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of TODO_CATEGORY. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, SORT_ORDER, USER_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     TODO_MAPPING
    + * 
    + * [foreign-property]
    + *     userInfo
    + * 
    + * [referrer-property]
    + *     todoMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsTodoCategoryBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoCategoryDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "TODO_CATEGORY"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return TodoCategoryDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public TodoCategoryDbm getMyDBMeta() { + return TodoCategoryDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public TodoCategoryDao getMyDao() { + return _dao; + } + + public void setMyDao(TodoCategoryDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public TodoCategory newMyEntity() { + return new TodoCategory(); + } + + public TodoCategoryCB newMyConditionBean() { + return new TodoCategoryCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of TodoCategory. (NotNull) + * @return The selected count. + */ + public int selectCount(TodoCategoryCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of TodoCategory. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public TodoCategory selectEntity(final TodoCategoryCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + TodoCategoryCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of TodoCategory. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public TodoCategory selectEntityWithDeletedCheck(final TodoCategoryCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + TodoCategoryCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public TodoCategory selectByPKValueWithDeletedCheck(Long id) { + TodoCategory entity = new TodoCategory(); + entity.setId(id); + final TodoCategoryCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of TodoCategory. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(TodoCategoryCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of TodoCategory. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final TodoCategoryCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of TodoCategory. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + TodoCategoryCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of todoMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setCategoryId_InScope(pkList);
    +     * cb.query().addOrderBy_CategoryId_Asc();
    +     * 
    + * + * @param todoCategoryList The entity list of todoCategory. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadTodoMappingList(List todoCategoryList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("todoCategoryList", todoCategoryList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (todoCategoryList.isEmpty()) { + return; + } + loadTodoMappingList(todoCategoryList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param todoCategoryList The entity list of todoCategory. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadTodoMappingList(List todoCategoryList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("todoCategoryList", todoCategoryList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (todoCategoryList.isEmpty()) { + return; + } + final TodoMappingBhv referrerBhv = xgetBSFLR().select( + TodoMappingBhv.class); + helpLoadReferrerInternally( + todoCategoryList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue( + TodoCategory entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + TodoCategory entity, List referrerList) { + entity.setTodoMappingList(referrerList); + } + + public TodoMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + TodoMappingCB cb, List pkList) { + cb.query().setCategoryId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + TodoMappingCB cb) { + cb.query().addOrderBy_CategoryId_Asc(); + } + + public List callbackReferrer_selectList( + TodoMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + TodoMapping entity) { + return entity.getCategoryId(); + } + + public void callbackReferrer_setForeignEntity( + TodoMapping referrerEntity, TodoCategory baseEntity) { + referrerEntity.setTodoCategory(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param todoCategoryList The list of todoCategory. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List todoCategoryList) { + return helpPulloutInternally(todoCategoryList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(TodoCategory entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param todoCategory The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(TodoCategory todoCategory) { + assertEntityNotNull(todoCategory); + delegateInsert(todoCategory); + } + + @Override + protected void doCreate(Entity todoCategory) { + insert((TodoCategory) todoCategory); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param todoCategory The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final TodoCategory todoCategory) { + helpUpdateInternally(todoCategory, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(TodoCategory entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((TodoCategory) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((TodoCategory) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param todoCategory The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final TodoCategory todoCategory) { + helpInsertOrUpdateInternally( + todoCategory, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(TodoCategory entity) { + insert(entity); + } + + public void callbackUpdate(TodoCategory entity) { + update(entity); + } + + public TodoCategoryCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(TodoCategoryCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity todoCategory) { + insertOrUpdate((TodoCategory) todoCategory); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((TodoCategory) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param todoCategory The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(TodoCategory todoCategory) { + helpDeleteInternally(todoCategory, + new InternalDeleteCallback() { + public int callbackDelegateDelete(TodoCategory entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity todoCategory) { + delete((TodoCategory) todoCategory); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoCategoryList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List todoCategoryList) { + assertObjectNotNull("todoCategoryList", todoCategoryList); + return delegateInsertList(todoCategoryList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param todoCategoryList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List todoCategoryList) { + assertObjectNotNull("todoCategoryList", todoCategoryList); + return delegateUpdateList(todoCategoryList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoCategoryList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List todoCategoryList) { + assertObjectNotNull("todoCategoryList", todoCategoryList); + return delegateDeleteList(todoCategoryList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param todoCategory Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(TodoCategory todoCategory, TodoCategoryCB cb) { + assertObjectNotNull("todoCategory", todoCategory); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(todoCategory); + filterEntityOfUpdate(todoCategory); + assertEntityOfUpdate(todoCategory); + return getMyDao().updateByQuery(cb, todoCategory); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(TodoCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(TodoCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(TodoCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(TodoCategory e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(TodoCategory e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(TodoCategory e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("todoCategoryList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("todoCategoryList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("todoCategoryList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected TodoCategory downcast(Entity entity) { + return helpDowncastInternally(entity, TodoCategory.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoCategoryBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoMappingBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoMappingBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoMappingBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,763 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.TodoMappingDbm; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.exdao.TodoMappingDao; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of TODO_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, STATUS, MEMO, TODO_ID, USER_ID, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     TODO, TODO_CATEGORY, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     todo, todoCategory, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsTodoMappingBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "TODO_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return TodoMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public TodoMappingDbm getMyDBMeta() { + return TodoMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public TodoMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(TodoMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public TodoMapping newMyEntity() { + return new TodoMapping(); + } + + public TodoMappingCB newMyConditionBean() { + return new TodoMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of TodoMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(TodoMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of TodoMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public TodoMapping selectEntity(final TodoMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(TodoMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of TodoMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public TodoMapping selectEntityWithDeletedCheck(final TodoMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(TodoMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public TodoMapping selectByPKValueWithDeletedCheck(Long id) { + TodoMapping entity = new TodoMapping(); + entity.setId(id); + final TodoMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of TodoMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(TodoMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of TodoMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final TodoMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of TodoMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + TodoMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Todo'. + * + * @param todoMappingList The list of todoMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutTodo(List todoMappingList) { + return helpPulloutInternally(todoMappingList, + new InternalPulloutCallback() { + public Todo callbackGetForeignEntity(TodoMapping entity) { + return entity.getTodo(); + } + }); + } + + /** + * Pull out the list of foreign table 'TodoCategory'. + * + * @param todoMappingList The list of todoMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutTodoCategory( + List todoMappingList) { + return helpPulloutInternally(todoMappingList, + new InternalPulloutCallback() { + public TodoCategory callbackGetForeignEntity( + TodoMapping entity) { + return entity.getTodoCategory(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param todoMappingList The list of todoMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List todoMappingList) { + return helpPulloutInternally(todoMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(TodoMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param todoMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(TodoMapping todoMapping) { + assertEntityNotNull(todoMapping); + delegateInsert(todoMapping); + } + + @Override + protected void doCreate(Entity todoMapping) { + insert((TodoMapping) todoMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param todoMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final TodoMapping todoMapping) { + helpUpdateInternally(todoMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(TodoMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((TodoMapping) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param todoMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final TodoMapping todoMapping) { + helpUpdateNonstrictInternally(todoMapping, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + TodoMapping entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((TodoMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param todoMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final TodoMapping todoMapping) { + helpInsertOrUpdateInternally( + todoMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(TodoMapping entity) { + insert(entity); + } + + public void callbackUpdate(TodoMapping entity) { + update(entity); + } + + public TodoMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(TodoMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity todoMapping) { + insertOrUpdate((TodoMapping) todoMapping); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param todoMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(TodoMapping todoMapping) { + helpInsertOrUpdateInternally(todoMapping, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(TodoMapping entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(TodoMapping entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((TodoMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param todoMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(TodoMapping todoMapping) { + helpDeleteInternally(todoMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(TodoMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity todoMapping) { + delete((TodoMapping) todoMapping); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param todoMapping Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(TodoMapping todoMapping) { + helpDeleteNonstrictInternally(todoMapping, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + TodoMapping entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param todoMapping Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(TodoMapping todoMapping) { + helpDeleteNonstrictIgnoreDeletedInternally( + todoMapping, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + TodoMapping entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List todoMappingList) { + assertObjectNotNull("todoMappingList", todoMappingList); + return delegateInsertList(todoMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param todoMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List todoMappingList) { + assertObjectNotNull("todoMappingList", todoMappingList); + return delegateUpdateList(todoMappingList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List todoMappingList) { + assertObjectNotNull("todoMappingList", todoMappingList); + return delegateUpdateListNonstrict(todoMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param todoMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List todoMappingList) { + assertObjectNotNull("todoMappingList", todoMappingList); + return delegateDeleteList(todoMappingList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param todoMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List todoMappingList) { + assertObjectNotNull("todoMappingList", todoMappingList); + return delegateDeleteListNonstrict(todoMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param todoMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(TodoMapping todoMapping, TodoMappingCB cb) { + assertObjectNotNull("todoMapping", todoMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(todoMapping); + filterEntityOfUpdate(todoMapping); + assertEntityOfUpdate(todoMapping); + return getMyDao().updateByQuery(cb, todoMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(TodoMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(TodoMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(TodoMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(TodoMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(TodoMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(TodoMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(TodoMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(TodoMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("todoMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("todoMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("todoMappingList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("todoMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("todoMappingList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected TodoMapping downcast(Entity entity) { + return helpDowncastInternally(entity, TodoMapping.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsTodoMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1206 @@ +package jp.sf.pal.todolist.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.todolist.db.allcommon.DaoReadable; +import jp.sf.pal.todolist.db.allcommon.DaoWritable; +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.todolist.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingBean; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.GroupMappingBhv; +import jp.sf.pal.todolist.db.exbhv.RoleMappingBhv; +import jp.sf.pal.todolist.db.exbhv.TodoBhv; +import jp.sf.pal.todolist.db.exbhv.TodoCategoryBhv; +import jp.sf.pal.todolist.db.exbhv.TodoMappingBhv; +import jp.sf.pal.todolist.db.exdao.UserInfoDao; +import jp.sf.pal.todolist.db.exentity.GroupInfo; +import jp.sf.pal.todolist.db.exentity.GroupMapping; +import jp.sf.pal.todolist.db.exentity.RoleInfo; +import jp.sf.pal.todolist.db.exentity.RoleMapping; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING, TODO, TODO_CATEGORY, TODO_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList, todoList, todoCategoryList, todoMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.todolist.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of todoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setCreatedBy_InScope(pkList);
    +     * cb.query().addOrderBy_CreatedBy_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadTodoList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadTodoList(userInfoList, new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadTodoList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final TodoBhv referrerBhv = xgetBSFLR().select(TodoBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setTodoList(referrerList); + } + + public TodoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + TodoCB cb, List pkList) { + cb.query().setCreatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + TodoCB cb) { + cb.query().addOrderBy_CreatedBy_Asc(); + } + + public List callbackReferrer_selectList(TodoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Todo entity) { + return entity.getCreatedBy(); + } + + public void callbackReferrer_setForeignEntity( + Todo referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of todoCategoryList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadTodoCategoryList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadTodoCategoryList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadTodoCategoryList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final TodoCategoryBhv referrerBhv = xgetBSFLR().select( + TodoCategoryBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setTodoCategoryList(referrerList); + } + + public TodoCategoryCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + TodoCategoryCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + TodoCategoryCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + TodoCategoryCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + TodoCategory entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + TodoCategory referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of todoMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadTodoMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadTodoMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadTodoMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final TodoMappingBhv referrerBhv = xgetBSFLR().select( + TodoMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setTodoMappingList(referrerList); + } + + public TodoMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + TodoMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + TodoMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + TodoMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + TodoMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + TodoMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.todolist.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupInfoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupInfoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupInfoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupMappingDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupMappingDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupMappingDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,37 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleInfoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleInfoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleInfoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleMappingDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleMappingDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleMappingDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,37 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoCategoryDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoCategoryDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoCategoryDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,37 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.exentity.TodoCategory; + +/** + * The DAO interface of TODO_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsTodoCategoryDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = TodoCategory.class; // For S2Dao + + public int selectCount(TodoCategoryCB cb); + + public List selectList(TodoCategoryCB cb); + + int insert(TodoCategory entity); + + int updateModifiedOnly(TodoCategory entity); + + int delete(TodoCategory entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(TodoCategoryCB cb, TodoCategory entity); + + int[] deleteList(List entityList); + + int deleteByQuery(TodoCategoryCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoCategoryDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,44 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.exentity.Todo; + +/** + * The DAO interface of TODO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsTodoDao extends jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = Todo.class; // For S2Dao + + public int selectCount(TodoCB cb); + + public List selectList(TodoCB cb); + + int insert(Todo entity); + + int updateModifiedOnly(Todo entity); + + int updateNonstrictModifiedOnly(Todo entity); + + int delete(Todo entity); + + int deleteNonstrict(Todo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(TodoCB cb, Todo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(TodoCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoMappingDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoMappingDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoMappingDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.exentity.TodoMapping; + +/** + * The DAO interface of TODO_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsTodoMappingDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = TodoMapping.class; // For S2Dao + + public int selectCount(TodoMappingCB cb); + + public List selectList(TodoMappingCB cb); + + int insert(TodoMapping entity); + + int updateModifiedOnly(TodoMapping entity); + + int updateNonstrictModifiedOnly(TodoMapping entity); + + int delete(TodoMapping entity); + + int deleteNonstrict(TodoMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(TodoMappingCB cb, TodoMapping entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(TodoMappingCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsTodoMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsUserInfoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsUserInfoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsUserInfoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.bsdao; + +import java.util.List; + +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends + jp.sf.pal.todolist.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,611 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.GroupMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupMapping.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupMapping.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,356 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.GroupInfo; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,611 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.RoleMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleMapping.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleMapping.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,356 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.RoleInfo; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,643 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of TODO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, DESCRIPTION, PRIORITY, STATUS, START_DATE, END_DATE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     TODO_MAPPING
    + * 
    + * [foreign-property]
    + *     userInfo
    + * 
    + * [referrer-property]
    + *     todoMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsTodo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is TODO. */ + public static final String TABLE = "TODO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(200)} */ + protected String _description; + + /** PRIORITY: {NotNull : INTEGER} */ + protected Integer _priority; + + /** STATUS: {NotNull : INTEGER} */ + protected Integer _status; + + /** START_DATE: {TIMESTAMP} */ + protected java.sql.Timestamp _startDate; + + /** END_DATE: {TIMESTAMP} */ + protected java.sql.Timestamp _endDate; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsTodo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "todo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 0; + + public static final String userInfo_RELKEYS = "CREATED_BY:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [todoMappingList] + // * * * * * * * * */ + /** TODO_MAPPING as 'todoMappingList'. */ + protected List _childrenTodoMappingList; + + /** + * TODO_MAPPING as 'todoMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'todoMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getTodoMappingList() { + if (_childrenTodoMappingList == null) { + _childrenTodoMappingList = new ArrayList(); + } + return _childrenTodoMappingList; + } + + /** + * TODO_MAPPING as 'todoMappingList'. + * + * @param todoMappingList The entity list of referrer property + * 'todoMappingList'. (Nullable) + */ + public void setTodoMappingList(List todoMappingList) { + _childrenTodoMappingList = todoMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsTodo)) { + return false; + } + BsTodo otherEntity = (BsTodo) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getPriority()); + sb.append(delimiter).append(getStatus()); + sb.append(delimiter).append(getStartDate()); + sb.append(delimiter).append(getEndDate()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(200)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(200)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String priority_COLUMN = "PRIORITY"; + + /** + * PRIORITY: {NotNull : INTEGER}
    + * + * @return The value of the column 'PRIORITY'. (Nullable) + */ + public Integer getPriority() { + return _priority; + } + + /** + * PRIORITY: {NotNull : INTEGER}
    + * + * @param priority The value of the column 'PRIORITY'. (Nullable) + */ + public void setPriority(Integer priority) { + _modifiedProperties.addPropertyName("priority"); + this._priority = priority; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String status_COLUMN = "STATUS"; + + /** + * STATUS: {NotNull : INTEGER}
    + * + * @return The value of the column 'STATUS'. (Nullable) + */ + public Integer getStatus() { + return _status; + } + + /** + * STATUS: {NotNull : INTEGER}
    + * + * @param status The value of the column 'STATUS'. (Nullable) + */ + public void setStatus(Integer status) { + _modifiedProperties.addPropertyName("status"); + this._status = status; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String startDate_COLUMN = "START_DATE"; + + /** + * START_DATE: {TIMESTAMP}
    + * + * @return The value of the column 'START_DATE'. (Nullable) + */ + public java.sql.Timestamp getStartDate() { + return _startDate; + } + + /** + * START_DATE: {TIMESTAMP}
    + * + * @param startDate The value of the column 'START_DATE'. (Nullable) + */ + public void setStartDate(java.sql.Timestamp startDate) { + _modifiedProperties.addPropertyName("startDate"); + this._startDate = startDate; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String endDate_COLUMN = "END_DATE"; + + /** + * END_DATE: {TIMESTAMP}
    + * + * @return The value of the column 'END_DATE'. (Nullable) + */ + public java.sql.Timestamp getEndDate() { + return _endDate; + } + + /** + * END_DATE: {TIMESTAMP}
    + * + * @param endDate The value of the column 'END_DATE'. (Nullable) + */ + public void setEndDate(java.sql.Timestamp endDate) { + _modifiedProperties.addPropertyName("endDate"); + this._endDate = endDate; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoCategory.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoCategory.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoCategory.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,536 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of TODO_CATEGORY that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, SORT_ORDER, USER_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     TODO_MAPPING
    + * 
    + * [foreign-property]
    + *     userInfo
    + * 
    + * [referrer-property]
    + *     todoMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsTodoCategory implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is TODO_CATEGORY. */ + public static final String TABLE = "TODO_CATEGORY"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[1]} */ + protected Integer _sortOrder; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsTodoCategory() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO_CATEGORY"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "todoCategory"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 0; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [todoMappingList] + // * * * * * * * * */ + /** TODO_MAPPING as 'todoMappingList'. */ + protected List _childrenTodoMappingList; + + /** + * TODO_MAPPING as 'todoMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'todoMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getTodoMappingList() { + if (_childrenTodoMappingList == null) { + _childrenTodoMappingList = new ArrayList(); + } + return _childrenTodoMappingList; + } + + /** + * TODO_MAPPING as 'todoMappingList'. + * + * @param todoMappingList The entity list of referrer property + * 'todoMappingList'. (Nullable) + */ + public void setTodoMappingList(List todoMappingList) { + _childrenTodoMappingList = todoMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsTodoCategory)) { + return false; + } + BsTodoCategory otherEntity = (BsTodoCategory) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[1]}
    + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[1]}
    + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoCategory.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoMapping.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoMapping.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,647 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The entity of TODO_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, STATUS, MEMO, TODO_ID, USER_ID, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     TODO, TODO_CATEGORY, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     todo, todoCategory, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsTodoMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is TODO_MAPPING. */ + public static final String TABLE = "TODO_MAPPING"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** STATUS: {NotNull : INTEGER} */ + protected Integer _status; + + /** MEMO: {VARCHAR(255)} */ + protected String _memo; + + /** TODO_ID: {NotNull : BIGINT : FK to TODO} */ + protected Long _todoId; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** CATEGORY_ID: {BIGINT : FK to TODO_CATEGORY} */ + protected Long _categoryId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsTodoMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "todoMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [todo] + // * * * * * * * * */ + public static final int todo_RELNO = 0; + + public static final String todo_RELKEYS = "TODO_ID:ID"; + + /** TODO as 'todo'. */ + protected Todo _parentTodo; + + /** + * TODO as 'todo'. {without lazy-load} + * + * @return The entity of foreign property 'todo'. (Nullable: If the foreign + * key does not have 'NotNull' constraint, please check null.) + */ + public Todo getTodo() { + return _parentTodo; + } + + /** + * TODO as 'todo'. + * + * @param todo The entity of foreign property 'todo'. (Nullable) + */ + public void setTodo(Todo todo) { + _parentTodo = todo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [todoCategory] + // * * * * * * * * */ + public static final int todoCategory_RELNO = 1; + + public static final String todoCategory_RELKEYS = "CATEGORY_ID:ID"; + + /** TODO_CATEGORY as 'todoCategory'. */ + protected TodoCategory _parentTodoCategory; + + /** + * TODO_CATEGORY as 'todoCategory'. {without lazy-load} + * + * @return The entity of foreign property 'todoCategory'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public TodoCategory getTodoCategory() { + return _parentTodoCategory; + } + + /** + * TODO_CATEGORY as 'todoCategory'. + * + * @param todoCategory The entity of foreign property 'todoCategory'. + * (Nullable) + */ + public void setTodoCategory(TodoCategory todoCategory) { + _parentTodoCategory = todoCategory; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 2; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsTodoMapping)) { + return false; + } + BsTodoMapping otherEntity = (BsTodoMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getStatus()); + sb.append(delimiter).append(getMemo()); + sb.append(delimiter).append(getTodoId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getCategoryId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String status_COLUMN = "STATUS"; + + /** + * STATUS: {NotNull : INTEGER}
    + * + * @return The value of the column 'STATUS'. (Nullable) + */ + public Integer getStatus() { + return _status; + } + + /** + * STATUS: {NotNull : INTEGER}
    + * + * @param status The value of the column 'STATUS'. (Nullable) + */ + public void setStatus(Integer status) { + _modifiedProperties.addPropertyName("status"); + this._status = status; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String memo_COLUMN = "MEMO"; + + /** + * MEMO: {VARCHAR(255)}
    + * + * @return The value of the column 'MEMO'. (Nullable) + */ + public String getMemo() { + return _memo; + } + + /** + * MEMO: {VARCHAR(255)}
    + * + * @param memo The value of the column 'MEMO'. (Nullable) + */ + public void setMemo(String memo) { + _modifiedProperties.addPropertyName("memo"); + this._memo = memo; + } + + /** The column annotation for S2Dao. {NotNull : BIGINT : FK to TODO} */ + public static final String todoId_COLUMN = "TODO_ID"; + + /** + * TODO_ID: {NotNull : BIGINT : FK to TODO}
    + * + * @return The value of the column 'TODO_ID'. (Nullable) + */ + public Long getTodoId() { + return _todoId; + } + + /** + * TODO_ID: {NotNull : BIGINT : FK to TODO}
    + * + * @param todoId The value of the column 'TODO_ID'. (Nullable) + */ + public void setTodoId(Long todoId) { + _modifiedProperties.addPropertyName("todoId"); + this._todoId = todoId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {BIGINT : FK to TODO_CATEGORY} */ + public static final String categoryId_COLUMN = "CATEGORY_ID"; + + /** + * CATEGORY_ID: {BIGINT : FK to TODO_CATEGORY}
    + * + * @return The value of the column 'CATEGORY_ID'. (Nullable) + */ + public Long getCategoryId() { + return _categoryId; + } + + /** + * CATEGORY_ID: {BIGINT : FK to TODO_CATEGORY}
    + * + * @param categoryId The value of the column 'CATEGORY_ID'. (Nullable) + */ + public void setCategoryId(Long categoryId) { + _modifiedProperties.addPropertyName("categoryId"); + this._categoryId = categoryId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsTodoMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,898 @@ +package jp.sf.pal.todolist.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.todolist.db.exentity.GroupInfo; +import jp.sf.pal.todolist.db.exentity.GroupMapping; +import jp.sf.pal.todolist.db.exentity.RoleInfo; +import jp.sf.pal.todolist.db.exentity.RoleMapping; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.TodoMapping; + +/** + * The entity of USER_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING, TODO, TODO_CATEGORY, TODO_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList, todoList, todoCategoryList, todoMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [todoList] + // * * * * * * * * */ + /** TODO as 'todoList'. */ + protected List _childrenTodoList; + + /** + * TODO as 'todoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'todoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getTodoList() { + if (_childrenTodoList == null) { + _childrenTodoList = new ArrayList(); + } + return _childrenTodoList; + } + + /** + * TODO as 'todoList'. + * + * @param todoList The entity list of referrer property 'todoList'. + * (Nullable) + */ + public void setTodoList(List todoList) { + _childrenTodoList = todoList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [todoCategoryList] + // * * * * * * * * */ + /** TODO_CATEGORY as 'todoCategoryList'. */ + protected List _childrenTodoCategoryList; + + /** + * TODO_CATEGORY as 'todoCategoryList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'todoCategoryList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getTodoCategoryList() { + if (_childrenTodoCategoryList == null) { + _childrenTodoCategoryList = new ArrayList(); + } + return _childrenTodoCategoryList; + } + + /** + * TODO_CATEGORY as 'todoCategoryList'. + * + * @param todoCategoryList The entity list of referrer property + * 'todoCategoryList'. (Nullable) + */ + public void setTodoCategoryList(List todoCategoryList) { + _childrenTodoCategoryList = todoCategoryList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [todoMappingList] + // * * * * * * * * */ + /** TODO_MAPPING as 'todoMappingList'. */ + protected List _childrenTodoMappingList; + + /** + * TODO_MAPPING as 'todoMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'todoMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getTodoMappingList() { + if (_childrenTodoMappingList == null) { + _childrenTodoMappingList = new ArrayList(); + } + return _childrenTodoMappingList; + } + + /** + * TODO_MAPPING as 'todoMappingList'. + * + * @param todoMappingList The entity list of referrer property + * 'todoMappingList'. (Nullable) + */ + public void setTodoMappingList(List todoMappingList) { + _childrenTodoMappingList = todoMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,447 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,299 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,447 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,299 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoCategoryDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoCategoryDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoCategoryDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,398 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; + +/** + * The DB meta of TODO_CATEGORY. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategoryDbm extends AbstractDBMeta { + + private static final TodoCategoryDbm _instance = new TodoCategoryDbm(); + + private TodoCategoryDbm() { + } + + public static TodoCategoryDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "TODO_CATEGORY"; + } + + public String getTablePropertyName() { + return "todoCategory"; + } + + public String getTableSqlName() { + return "TODO_CATEGORY"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.TodoCategory"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.TodoCategoryCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.TodoCategoryDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.TodoCategoryBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return TodoCategory.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public TodoCategory newMyEntity() { + return new TodoCategory(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 0, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerTodoMappingList() { + Map map = newLinkedHashMap(columnId(), + TodoMappingDbm.getInstance().columnCategoryId()); + return cri("todoMappingList", this, TodoMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((TodoCategory) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((TodoCategory) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((TodoCategory) entity, value); + } + + public static class EpsId implements Eps { + public void setup(TodoCategory e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsName implements Eps { + public void setup(TodoCategory e, Object v) { + e.setName((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(TodoCategory e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(TodoCategory e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(TodoCategory e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(TodoCategory e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(TodoCategory e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(TodoCategory e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(TodoCategory e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(TodoCategory e, Object v) { + e.setDeletedBy((String) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoCategoryDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,461 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.Todo; + +/** + * The DB meta of TODO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoDbm extends AbstractDBMeta { + + private static final TodoDbm _instance = new TodoDbm(); + + private TodoDbm() { + } + + public static TodoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "TODO"; + } + + public String getTablePropertyName() { + return "todo"; + } + + public String getTableSqlName() { + return "TODO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 200, 0); + + protected ColumnInfo _columnPriority = cci("PRIORITY", "priority", + Integer.class, false, null, null); + + protected ColumnInfo _columnStatus = cci("STATUS", "status", Integer.class, + false, null, null); + + protected ColumnInfo _columnStartDate = cci("START_DATE", "startDate", + java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnEndDate = cci("END_DATE", "endDate", + java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnPriority() { + return _columnPriority; + } + + public ColumnInfo columnStatus() { + return _columnStatus; + } + + public ColumnInfo columnStartDate() { + return _columnStartDate; + } + + public ColumnInfo columnEndDate() { + return _columnEndDate; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.Todo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.TodoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.TodoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.TodoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Todo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Todo newMyEntity() { + return new Todo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnCreatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 0, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerTodoMappingList() { + Map map = newLinkedHashMap(columnId(), + TodoMappingDbm.getInstance().columnTodoId()); + return cri("todoMappingList", this, TodoMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Todo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Todo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsPriority(), columnPriority()); + setupEps(_epsMap, new EpsStatus(), columnStatus()); + setupEps(_epsMap, new EpsStartDate(), columnStartDate()); + setupEps(_epsMap, new EpsEndDate(), columnEndDate()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Todo) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Todo e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsName implements Eps { + public void setup(Todo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(Todo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsPriority implements Eps { + public void setup(Todo e, Object v) { + e.setPriority((Integer) v); + } + } + + public static class EpsStatus implements Eps { + public void setup(Todo e, Object v) { + e.setStatus((Integer) v); + } + } + + public static class EpsStartDate implements Eps { + public void setup(Todo e, Object v) { + e.setStartDate((java.sql.Timestamp) v); + } + } + + public static class EpsEndDate implements Eps { + public void setup(Todo e, Object v) { + e.setEndDate((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(Todo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(Todo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(Todo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(Todo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(Todo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(Todo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(Todo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoMappingDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoMappingDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoMappingDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,453 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; + +/** + * The DB meta of TODO_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMappingDbm extends AbstractDBMeta { + + private static final TodoMappingDbm _instance = new TodoMappingDbm(); + + private TodoMappingDbm() { + } + + public static TodoMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "TODO_MAPPING"; + } + + public String getTablePropertyName() { + return "todoMapping"; + } + + public String getTableSqlName() { + return "TODO_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnStatus = cci("STATUS", "status", Integer.class, + false, null, null); + + protected ColumnInfo _columnMemo = cci("MEMO", "memo", String.class, false, + 255, 0); + + protected ColumnInfo _columnTodoId = cci("TODO_ID", "todoId", Long.class, + false, null, null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnCategoryId = cci("CATEGORY_ID", "categoryId", + Long.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnStatus() { + return _columnStatus; + } + + public ColumnInfo columnMemo() { + return _columnMemo; + } + + public ColumnInfo columnTodoId() { + return _columnTodoId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnCategoryId() { + return _columnCategoryId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.TodoMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.TodoMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.TodoMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.TodoMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return TodoMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public TodoMapping newMyEntity() { + return new TodoMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignTodo() { + Map map = newLinkedHashMap(columnTodoId(), + TodoDbm.getInstance().columnId()); + return cfi("todo", this, TodoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignTodoCategory() { + Map map = newLinkedHashMap(columnCategoryId(), + TodoCategoryDbm.getInstance().columnId()); + return cfi("todoCategory", this, TodoCategoryDbm.getInstance(), map, 1, + false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 2, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((TodoMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((TodoMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsStatus(), columnStatus()); + setupEps(_epsMap, new EpsMemo(), columnMemo()); + setupEps(_epsMap, new EpsTodoId(), columnTodoId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsCategoryId(), columnCategoryId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((TodoMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(TodoMapping e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsStatus implements Eps { + public void setup(TodoMapping e, Object v) { + e.setStatus((Integer) v); + } + } + + public static class EpsMemo implements Eps { + public void setup(TodoMapping e, Object v) { + e.setMemo((String) v); + } + } + + public static class EpsTodoId implements Eps { + public void setup(TodoMapping e, Object v) { + e.setTodoId((Long) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(TodoMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsCategoryId implements Eps { + public void setup(TodoMapping e, Object v) { + e.setCategoryId((Long) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(TodoMapping e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(TodoMapping e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(TodoMapping e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(TodoMapping e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(TodoMapping e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(TodoMapping e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(TodoMapping e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/TodoMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,550 @@ +package jp.sf.pal.todolist.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.Entity; +import jp.sf.pal.todolist.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.todolist.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.todolist.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.todolist.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.todolist.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.todolist.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.todolist.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerTodoList() { + Map map = newLinkedHashMap(columnUserId(), + TodoDbm.getInstance().columnCreatedBy()); + return cri("todoList", this, TodoDbm.getInstance(), map, false); + } + + public ReferrerInfo referrerTodoCategoryList() { + Map map = newLinkedHashMap(columnUserId(), + TodoCategoryDbm.getInstance().columnUserId()); + return cri("todoCategoryList", this, TodoCategoryDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerTodoMappingList() { + Map map = newLinkedHashMap(columnUserId(), + TodoMappingDbm.getInstance().columnUserId()); + return cri("todoMappingList", this, TodoMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupInfoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupInfoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.todolist.db.cbean.bs.BsGroupInfoCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupMappingCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupMappingCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupMappingCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.todolist.db.cbean.bs.BsGroupMappingCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleInfoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleInfoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.todolist.db.cbean.bs.BsRoleInfoCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleMappingCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleMappingCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleMappingCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.todolist.db.cbean.bs.BsRoleMappingCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of TODO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCB extends jp.sf.pal.todolist.db.cbean.bs.BsTodoCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCategoryCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCategoryCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCategoryCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of TODO_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategoryCB extends + jp.sf.pal.todolist.db.cbean.bs.BsTodoCategoryCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoCategoryCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoMappingCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoMappingCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoMappingCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of TODO_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMappingCB extends + jp.sf.pal.todolist.db.cbean.bs.BsTodoMappingCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/TodoMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/UserInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/UserInfoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/UserInfoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.todolist.db.cbean.bs.BsUserInfoCB { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupInfoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,295 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupMappingCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,325 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.todolist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleInfoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,292 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleMappingCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,325 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.todolist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,329 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of TODO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsTodoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO"; + } + + public String getTableSqlName() { + return "TODO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public TodoCQ query() { + return getConditionQuery(); + } + + public TodoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new TodoCQ(null, getSqlClause(), getSqlClause() + .getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<TodoCB>() {
    +     *     public void query(TodoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final TodoCB cb = new TodoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final TodoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<TodoCB>() {
    +     *     public void query(TodoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final TodoCB cb = new TodoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final TodoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(TodoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(TodoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public TodoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnPriority() { + doColumn("PRIORITY"); + } + + public void columnStatus() { + doColumn("STATUS"); + } + + public void columnStartDate() { + doColumn("START_DATE"); + } + + public void columnEndDate() { + doColumn("END_DATE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnCreatedBy();// FK + } + } + + protected String getTableDbName() { + return "TODO"; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + + public RAFunction derivedTodoMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, TodoCQ cq, + String aliasName) { + cq.xderiveTodoMappingList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return TodoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCategoryCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCategoryCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCategoryCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,319 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of TODO_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsTodoCategoryCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoCategoryCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO_CATEGORY"; + } + + public String getTableSqlName() { + return "TODO_CATEGORY"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public TodoCategoryCQ query() { + return getConditionQuery(); + } + + public TodoCategoryCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new TodoCategoryCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<TodoCategoryCB>() {
    +     *     public void query(TodoCategoryCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final TodoCategoryCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<TodoCategoryCB>() {
    +     *     public void query(TodoCategoryCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final TodoCategoryCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(TodoCategoryCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(TodoCategoryCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public TodoCategoryCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "TODO_CATEGORY"; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + + public RAFunction derivedTodoMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + TodoCategoryCQ cq, String aliasName) { + cq.xderiveTodoMappingList(function, subQuery, + aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return TodoCategoryCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoCategoryCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoCategoryCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoMappingCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoMappingCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoMappingCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,414 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.nss.TodoCategoryNss; +import jp.sf.pal.todolist.db.cbean.nss.TodoNss; +import jp.sf.pal.todolist.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of TODO_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsTodoMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO_MAPPING"; + } + + public String getTableSqlName() { + return "TODO_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public TodoMappingCQ query() { + return getConditionQuery(); + } + + public TodoMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new TodoMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<TodoMappingCB>() {
    +     *     public void query(TodoMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final TodoMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<TodoMappingCB>() {
    +     *     public void query(TodoMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final TodoMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(TodoMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(TodoMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected TodoNss _nssTodo; + + public TodoNss getNssTodo() { + if (_nssTodo == null) { + _nssTodo = new TodoNss(null); + } + return _nssTodo; + } + + public TodoNss setupSelect_Todo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryTodo(); + } + }); + if (_nssTodo == null || !_nssTodo.hasConditionQuery()) { + _nssTodo = new TodoNss(query().queryTodo()); + } + return _nssTodo; + } + + protected TodoCategoryNss _nssTodoCategory; + + public TodoCategoryNss getNssTodoCategory() { + if (_nssTodoCategory == null) { + _nssTodoCategory = new TodoCategoryNss(null); + } + return _nssTodoCategory; + } + + public TodoCategoryNss setupSelect_TodoCategory() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryTodoCategory(); + } + }); + if (_nssTodoCategory == null || !_nssTodoCategory.hasConditionQuery()) { + _nssTodoCategory = new TodoCategoryNss(query().queryTodoCategory()); + } + return _nssTodoCategory; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public TodoMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected TodoCB.Specification _todo; + + protected TodoCategoryCB.Specification _todoCategory; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnStatus() { + doColumn("STATUS"); + } + + public void columnMemo() { + doColumn("MEMO"); + } + + public void columnTodoId() { + doColumn("TODO_ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnCategoryId() { + doColumn("CATEGORY_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryTodo()) { + columnTodoId();// FK + } + if (_myQyCall.qy().hasConditionQueryTodoCategory()) { + columnCategoryId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "TODO_MAPPING"; + } + + public TodoCB.Specification specifyTodo() { + assertForeign("todo"); + if (_todo == null) { + _todo = new TodoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryTodo(); + } + + public TodoCQ qy() { + return _myQyCall.qy().queryTodo(); + } + }, _forDeriveReferrer); + } + return _todo; + } + + public TodoCategoryCB.Specification specifyTodoCategory() { + assertForeign("todoCategory"); + if (_todoCategory == null) { + _todoCategory = new TodoCategoryCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryTodoCategory(); + } + + public TodoCategoryCQ qy() { + return _myQyCall.qy().queryTodoCategory(); + } + }, _forDeriveReferrer); + } + return _todoCategory; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return TodoMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsTodoMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,448 @@ +package jp.sf.pal.todolist.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.todolist.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedTodoList() { + return new RAFunction(_baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveTodoList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedTodoCategoryList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveTodoCategoryList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedTodoMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveTodoMappingList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsTodoCQ; + +/** + * The condition-query of TODO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCQ extends BsTodoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public TodoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCategoryCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCategoryCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCategoryCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsTodoCategoryCQ; + +/** + * The condition-query of TODO_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategoryCQ extends BsTodoCategoryCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public TodoCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsTodoMappingCQ; + +/** + * The condition-query of TODO_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMappingCQ extends BsTodoMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public TodoMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/TodoMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/UserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/UserInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/UserInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,45 @@ +package jp.sf.pal.todolist.db.cbean.cq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1896 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,465 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1894 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,464 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1744 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of TODO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsTodoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsTodoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO"; + } + + public String getTableSqlName() { + return "TODO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param todoMappingCBquery Query. + * @deprecated Please use inScopeTodoMappingList(subQuery) method. + */ + public void setId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ todoMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_TodoMappingList(todoMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoMappingCBquery, "ID", "TODO_ID", + subQueryPropertyName); + } + + public void inScopeTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "TODO_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + public void notInScopeTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "TODO_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * @param todoMappingCBquery Query. + * @deprecated Please use existsTodoMappingList(subQuery) method. + */ + public void setId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ todoMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_TodoMappingList(todoMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(todoMappingCBquery, "ID", "TODO_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select TODO_ID from TODO_MAPPING + * where ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_TodoMappingList for + * 'exists'. (NotNull) + */ + public void existsTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "TODO_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select TODO_ID from + * TODO_MAPPING where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_TodoMappingList for + * 'not exists'. (NotNull) + */ + public void notExistsTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "TODO_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + public void xderiveTodoMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "TODO_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param priority The value of priority as equal. + */ + public void setPriority_Equal(Integer priority) { + regPriority(CK_EQ, priority); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param priority The value of priority as notEqual. + */ + public void setPriority_NotEqual(Integer priority) { + regPriority(CK_NE, priority); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param priority The value of priority as greaterThan. + */ + public void setPriority_GreaterThan(Integer priority) { + regPriority(CK_GT, priority); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param priority The value of priority as lessThan. + */ + public void setPriority_LessThan(Integer priority) { + regPriority(CK_LT, priority); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param priority The value of priority as greaterEqual. + */ + public void setPriority_GreaterEqual(Integer priority) { + regPriority(CK_GE, priority); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param priority The value of priority as lessEqual. + */ + public void setPriority_LessEqual(Integer priority) { + regPriority(CK_LE, priority); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param priorityList The collection of priority as inScope. + */ + public void setPriority_InScope(Collection priorityList) { + regPriority(CK_INS, cTL(priorityList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param priorityList The collection of priority as notInScope. + */ + public void setPriority_NotInScope(Collection priorityList) { + regPriority(CK_NINS, cTL(priorityList)); + } + + protected void regPriority(ConditionKey key, Object value) { + registerQuery(key, value, getCValuePriority(), "PRIORITY", "Priority", + "priority"); + } + + protected void registerInlinePriority(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValuePriority(), "PRIORITY", + "Priority", "priority"); + } + + abstract protected ConditionValue getCValuePriority(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param status The value of status as equal. + */ + public void setStatus_Equal(Integer status) { + regStatus(CK_EQ, status); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param status The value of status as notEqual. + */ + public void setStatus_NotEqual(Integer status) { + regStatus(CK_NE, status); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param status The value of status as greaterThan. + */ + public void setStatus_GreaterThan(Integer status) { + regStatus(CK_GT, status); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param status The value of status as lessThan. + */ + public void setStatus_LessThan(Integer status) { + regStatus(CK_LT, status); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param status The value of status as greaterEqual. + */ + public void setStatus_GreaterEqual(Integer status) { + regStatus(CK_GE, status); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param status The value of status as lessEqual. + */ + public void setStatus_LessEqual(Integer status) { + regStatus(CK_LE, status); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param statusList The collection of status as inScope. + */ + public void setStatus_InScope(Collection statusList) { + regStatus(CK_INS, cTL(statusList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param statusList The collection of status as notInScope. + */ + public void setStatus_NotInScope(Collection statusList) { + regStatus(CK_NINS, cTL(statusList)); + } + + protected void regStatus(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStatus(), "STATUS", "Status", + "status"); + } + + protected void registerInlineStatus(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStatus(), "STATUS", "Status", + "status"); + } + + abstract protected ConditionValue getCValueStatus(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param startDate The value of startDate as equal. + */ + public void setStartDate_Equal(java.sql.Timestamp startDate) { + regStartDate(CK_EQ, startDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as notEqual. + */ + public void setStartDate_NotEqual(java.sql.Timestamp startDate) { + regStartDate(CK_NE, startDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterThan. + */ + public void setStartDate_GreaterThan(java.sql.Timestamp startDate) { + regStartDate(CK_GT, startDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessThan. + */ + public void setStartDate_LessThan(java.sql.Timestamp startDate) { + regStartDate(CK_LT, startDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterEqual. + */ + public void setStartDate_GreaterEqual(java.sql.Timestamp startDate) { + regStartDate(CK_GE, startDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessEqual. + */ + public void setStartDate_LessEqual(java.sql.Timestamp startDate) { + regStartDate(CK_LE, startDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setStartDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueStartDate(), "START_DATE", + "StartDate", "startDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + */ + public void setStartDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setStartDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setStartDate_IsNull() { + regStartDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setStartDate_IsNotNull() { + regStartDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regStartDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + protected void registerInlineStartDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + abstract protected ConditionValue getCValueStartDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param endDate The value of endDate as equal. + */ + public void setEndDate_Equal(java.sql.Timestamp endDate) { + regEndDate(CK_EQ, endDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as notEqual. + */ + public void setEndDate_NotEqual(java.sql.Timestamp endDate) { + regEndDate(CK_NE, endDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterThan. + */ + public void setEndDate_GreaterThan(java.sql.Timestamp endDate) { + regEndDate(CK_GT, endDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessThan. + */ + public void setEndDate_LessThan(java.sql.Timestamp endDate) { + regEndDate(CK_LT, endDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterEqual. + */ + public void setEndDate_GreaterEqual(java.sql.Timestamp endDate) { + regEndDate(CK_GE, endDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessEqual. + */ + public void setEndDate_LessEqual(java.sql.Timestamp endDate) { + regEndDate(CK_LE, endDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setEndDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueEndDate(), "END_DATE", + "EndDate", "endDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + */ + public void setEndDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setEndDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEndDate_IsNull() { + regEndDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEndDate_IsNotNull() { + regEndDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEndDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndDate(), "END_DATE", "EndDate", + "endDate"); + } + + protected void registerInlineEndDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndDate(), "END_DATE", + "EndDate", "endDate"); + } + + abstract protected ConditionValue getCValueEndDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setCreatedBy_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepCreatedBy_InScopeSubQuery_UserInfo( + jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return TodoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCategoryCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCategoryCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCategoryCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1333 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of TODO_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsTodoCategoryCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsTodoCategoryCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO_CATEGORY"; + } + + public String getTableSqlName() { + return "TODO_CATEGORY"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param todoMappingCBquery Query. + * @deprecated Please use inScopeTodoMappingList(subQuery) method. + */ + public void setId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ todoMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_TodoMappingList(todoMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoMappingCBquery, "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + public void inScopeTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + public void notInScopeTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * @param todoMappingCBquery Query. + * @deprecated Please use existsTodoMappingList(subQuery) method. + */ + public void setId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ todoMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_TodoMappingList(todoMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(todoMappingCBquery, "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CATEGORY_ID from TODO_MAPPING + * where ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_TodoMappingList for + * 'exists'. (NotNull) + */ + public void existsTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CATEGORY_ID from + * TODO_MAPPING where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_TodoMappingList for + * 'not exists'. (NotNull) + */ + public void notExistsTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + public void xderiveTodoMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[1]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return TodoCategoryCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoCategoryCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1561 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of TODO_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsTodoMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsTodoMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "TODO_MAPPING"; + } + + public String getTableSqlName() { + return "TODO_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param status The value of status as equal. + */ + public void setStatus_Equal(Integer status) { + regStatus(CK_EQ, status); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param status The value of status as notEqual. + */ + public void setStatus_NotEqual(Integer status) { + regStatus(CK_NE, status); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param status The value of status as greaterThan. + */ + public void setStatus_GreaterThan(Integer status) { + regStatus(CK_GT, status); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param status The value of status as lessThan. + */ + public void setStatus_LessThan(Integer status) { + regStatus(CK_LT, status); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param status The value of status as greaterEqual. + */ + public void setStatus_GreaterEqual(Integer status) { + regStatus(CK_GE, status); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param status The value of status as lessEqual. + */ + public void setStatus_LessEqual(Integer status) { + regStatus(CK_LE, status); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param statusList The collection of status as inScope. + */ + public void setStatus_InScope(Collection statusList) { + regStatus(CK_INS, cTL(statusList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param statusList The collection of status as notInScope. + */ + public void setStatus_NotInScope(Collection statusList) { + regStatus(CK_NINS, cTL(statusList)); + } + + protected void regStatus(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStatus(), "STATUS", "Status", + "status"); + } + + protected void registerInlineStatus(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStatus(), "STATUS", "Status", + "status"); + } + + abstract protected ConditionValue getCValueStatus(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param memo The value of memo as equal. + */ + public void setMemo_Equal(String memo) { + regMemo(CK_EQ, fRES(memo)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as notEqual. + */ + public void setMemo_NotEqual(String memo) { + regMemo(CK_NE, fRES(memo)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as greaterThan. + */ + public void setMemo_GreaterThan(String memo) { + regMemo(CK_GT, fRES(memo)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as lessThan. + */ + public void setMemo_LessThan(String memo) { + regMemo(CK_LT, fRES(memo)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as greaterEqual. + */ + public void setMemo_GreaterEqual(String memo) { + regMemo(CK_GE, fRES(memo)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as lessEqual. + */ + public void setMemo_LessEqual(String memo) { + regMemo(CK_LE, fRES(memo)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as prefixSearch. + */ + public void setMemo_PrefixSearch(String memo) { + regMemo(CK_PS, fRES(memo)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param memo The value of memo as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMemo_LikeSearch( + String memo, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(memo), getCValueMemo(), "MEMO", + "Memo", "memo", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memoList The collection of memo as inScope. + */ + public void setMemo_InScope(Collection memoList) { + regMemo(CK_INS, cTL(memoList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memo The collection of memo as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMemo_InScope( + String memo, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(memo), getCValueMemo(), "MEMO", + "Memo", "memo", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memoList The collection of memo as notInScope. + */ + public void setMemo_NotInScope(Collection memoList) { + regMemo(CK_NINS, cTL(memoList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMemo_IsNull() { + regMemo(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMemo_IsNotNull() { + regMemo(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMemo(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); + } + + protected void registerInlineMemo(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); + } + + abstract protected ConditionValue getCValueMemo(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * TODO} + * + * @param todoId The value of todoId as equal. + */ + public void setTodoId_Equal(Long todoId) { + regTodoId(CK_EQ, todoId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param todoId The value of todoId as notEqual. + */ + public void setTodoId_NotEqual(Long todoId) { + regTodoId(CK_NE, todoId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param todoId The value of todoId as greaterThan. + */ + public void setTodoId_GreaterThan(Long todoId) { + regTodoId(CK_GT, todoId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param todoId The value of todoId as lessThan. + */ + public void setTodoId_LessThan(Long todoId) { + regTodoId(CK_LT, todoId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param todoId The value of todoId as greaterEqual. + */ + public void setTodoId_GreaterEqual(Long todoId) { + regTodoId(CK_GE, todoId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param todoId The value of todoId as lessEqual. + */ + public void setTodoId_LessEqual(Long todoId) { + regTodoId(CK_LE, todoId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param todoIdList The collection of todoId as inScope. + */ + public void setTodoId_InScope(Collection todoIdList) { + regTodoId(CK_INS, cTL(todoIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param todoIdList The collection of todoId as notInScope. + */ + public void setTodoId_NotInScope(Collection todoIdList) { + regTodoId(CK_NINS, cTL(todoIdList)); + } + + /** + * @param todoCBquery Query. + * @deprecated Please use inScopeTodo(subQuery) method. + */ + public void setTodoId_InScopeSubQuery_Todo(TodoCQ todoCBquery) { + String subQueryPropertyName = keepTodoId_InScopeSubQuery_Todo(todoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoCBquery, "TODO_ID", "ID", + subQueryPropertyName); + } + + public void inScopeTodo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCB cb = new TodoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepTodoId_InScopeSubQuery_Todo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "TODO_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepTodoId_InScopeSubQuery_Todo(TodoCQ subQuery); + + protected void regTodoId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTodoId(), "TODO_ID", "TodoId", + "todoId"); + } + + protected void registerInlineTodoId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTodoId(), "TODO_ID", "TodoId", + "todoId"); + } + + abstract protected ConditionValue getCValueTodoId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : FK to TODO_CATEGORY} + * + * @param categoryId The value of categoryId as equal. + */ + public void setCategoryId_Equal(Long categoryId) { + regCategoryId(CK_EQ, categoryId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as notEqual. + */ + public void setCategoryId_NotEqual(Long categoryId) { + regCategoryId(CK_NE, categoryId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as greaterThan. + */ + public void setCategoryId_GreaterThan(Long categoryId) { + regCategoryId(CK_GT, categoryId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as lessThan. + */ + public void setCategoryId_LessThan(Long categoryId) { + regCategoryId(CK_LT, categoryId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as greaterEqual. + */ + public void setCategoryId_GreaterEqual(Long categoryId) { + regCategoryId(CK_GE, categoryId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as lessEqual. + */ + public void setCategoryId_LessEqual(Long categoryId) { + regCategoryId(CK_LE, categoryId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param categoryIdList The collection of categoryId as inScope. + */ + public void setCategoryId_InScope(Collection categoryIdList) { + regCategoryId(CK_INS, cTL(categoryIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param categoryIdList The collection of categoryId as notInScope. + */ + public void setCategoryId_NotInScope(Collection categoryIdList) { + regCategoryId(CK_NINS, cTL(categoryIdList)); + } + + /** + * @param todoCategoryCBquery Query. + * @deprecated Please use inScopeTodoCategory(subQuery) method. + */ + public void setCategoryId_InScopeSubQuery_TodoCategory( + TodoCategoryCQ todoCategoryCBquery) { + String subQueryPropertyName = keepCategoryId_InScopeSubQuery_TodoCategory(todoCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoCategoryCBquery, "CATEGORY_ID", "ID", + subQueryPropertyName); + } + + public void inScopeTodoCategory(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCategoryId_InScopeSubQuery_TodoCategory(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CATEGORY_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepCategoryId_InScopeSubQuery_TodoCategory( + TodoCategoryCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCategoryId_IsNull() { + regCategoryId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCategoryId_IsNotNull() { + regCategoryId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCategoryId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", + "CategoryId", "categoryId"); + } + + protected void registerInlineCategoryId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", + "CategoryId", "categoryId"); + } + + abstract protected ConditionValue getCValueCategoryId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return TodoMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoMappingCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsTodoMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,3004 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.todolist.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.SubQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.GroupInfoCB; +import jp.sf.pal.todolist.db.cbean.GroupMappingCB; +import jp.sf.pal.todolist.db.cbean.RoleInfoCB; +import jp.sf.pal.todolist.db.cbean.RoleMappingCB; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param todoCBquery Query. + * @deprecated Please use inScopeTodoList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_TodoList(TodoCQ todoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_TodoList(todoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + public void inScopeTodoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCB cb = new TodoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_TodoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_TodoList(TodoCQ subQuery); + + /** + * @param todoCategoryCBquery Query. + * @deprecated Please use inScopeTodoCategoryList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_TodoCategoryList( + TodoCategoryCQ todoCategoryCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_TodoCategoryList(todoCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoCategoryCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeTodoCategoryList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_TodoCategoryList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery); + + /** + * @param todoMappingCBquery Query. + * @deprecated Please use inScopeTodoMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ todoMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_TodoMappingList(todoMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(todoMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeTodoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCB cb = new TodoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_TodoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_TodoList( + TodoCQ subQuery); + + public void notInScopeTodoCategoryList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_TodoCategoryList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery); + + public void notInScopeTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param todoCBquery Query. + * @deprecated Please use existsTodoList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_TodoList(TodoCQ todoCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_TodoList(todoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(todoCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CREATED_BY from TODO where + * ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_TodoList for + * 'exists'. (NotNull) + */ + public void existsTodoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCB cb = new TodoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_TodoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_TodoList(TodoCQ subQuery); + + /** + * @param todoCategoryCBquery Query. + * @deprecated Please use existsTodoCategoryList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_TodoCategoryList( + TodoCategoryCQ todoCategoryCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_TodoCategoryList(todoCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(todoCategoryCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from TODO_CATEGORY + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_TodoCategoryList + * for 'exists'. (NotNull) + */ + public void existsTodoCategoryList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_TodoCategoryList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery); + + /** + * @param todoMappingCBquery Query. + * @deprecated Please use existsTodoMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ todoMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_TodoMappingList(todoMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(todoMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from TODO_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_TodoMappingList + * for 'exists'. (NotNull) + */ + public void existsTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CREATED_BY from TODO + * where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_TodoList for + * 'not exists'. (NotNull) + */ + public void notExistsTodoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCB cb = new TodoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_TodoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_TodoList(TodoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * TODO_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_TodoCategoryList for 'not exists'. + * (NotNull) + */ + public void notExistsTodoCategoryList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_TodoCategoryList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * TODO_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_TodoMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsTodoMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveTodoList(String function, SubQuery subQuery, + String aliasName) { + assertObjectNotNull("subQuery", subQuery); + TodoCB cb = new TodoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_TodoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_TodoList(TodoCQ subQuery); + + public void xderiveTodoCategoryList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + TodoCategoryCB cb = new TodoCategoryCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_TodoCategoryList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery); + + public void xderiveTodoMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + TodoMappingCB cb = new TodoMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_TodoMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_TodoMappingList( + TodoMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,575 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,291 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,574 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,291 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,571 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.TodoCIQ; + +/** + * The base condition-query of TODO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsTodoCQ extends AbstractBsTodoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsTodoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from TODO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public TodoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new TodoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join TODO + * on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public TodoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + TodoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_TodoMappingListMap; + + public Map getId_InScopeSubQuery_TodoMappingList() { + return _id_InScopeSubQuery_TodoMappingListMap; + } + + public String keepId_InScopeSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + if (_id_InScopeSubQuery_TodoMappingListMap == null) { + _id_InScopeSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_TodoMappingListMap.size() + 1); + _id_InScopeSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_TodoMappingList." + key; + } + + protected Map _id_NotInScopeSubQuery_TodoMappingListMap; + + public Map getId_NotInScopeSubQuery_TodoMappingList() { + return _id_NotInScopeSubQuery_TodoMappingListMap; + } + + public String keepId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_TodoMappingListMap == null) { + _id_NotInScopeSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_TodoMappingListMap.size() + 1); + _id_NotInScopeSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_TodoMappingList." + key; + } + + protected Map _id_ExistsSubQuery_TodoMappingListMap; + + public Map getId_ExistsSubQuery_TodoMappingList() { + return _id_ExistsSubQuery_TodoMappingListMap; + } + + public String keepId_ExistsSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + if (_id_ExistsSubQuery_TodoMappingListMap == null) { + _id_ExistsSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_TodoMappingListMap.size() + 1); + _id_ExistsSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_TodoMappingList." + key; + } + + protected Map _id_NotExistsSubQuery_TodoMappingListMap; + + public Map getId_NotExistsSubQuery_TodoMappingList() { + return _id_NotExistsSubQuery_TodoMappingListMap; + } + + public String keepId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_id_NotExistsSubQuery_TodoMappingListMap == null) { + _id_NotExistsSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_TodoMappingListMap.size() + 1); + _id_NotExistsSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_TodoMappingList." + key; + } + + protected Map _id_DeriveSubQuery_TodoMappingListMap; + + public Map getId_DeriveSubQuery_TodoMappingList() { + return _id_DeriveSubQuery_TodoMappingListMap; + } + + public String keepId_DeriveSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + if (_id_DeriveSubQuery_TodoMappingListMap == null) { + _id_DeriveSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_TodoMappingListMap.size() + 1); + _id_DeriveSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_TodoMappingList." + key; + } + + public BsTodoCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsTodoCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsTodoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsTodoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsTodoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsTodoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _priority; + + public ConditionValue getPriority() { + if (_priority == null) { + _priority = new ConditionValue(); + } + return _priority; + } + + protected ConditionValue getCValuePriority() { + return getPriority(); + } + + public BsTodoCQ addOrderBy_Priority_Asc() { + regOBA("PRIORITY"); + return this; + } + + public BsTodoCQ addOrderBy_Priority_Desc() { + regOBD("PRIORITY"); + return this; + } + + protected ConditionValue _status; + + public ConditionValue getStatus() { + if (_status == null) { + _status = new ConditionValue(); + } + return _status; + } + + protected ConditionValue getCValueStatus() { + return getStatus(); + } + + public BsTodoCQ addOrderBy_Status_Asc() { + regOBA("STATUS"); + return this; + } + + public BsTodoCQ addOrderBy_Status_Desc() { + regOBD("STATUS"); + return this; + } + + protected ConditionValue _startDate; + + public ConditionValue getStartDate() { + if (_startDate == null) { + _startDate = new ConditionValue(); + } + return _startDate; + } + + protected ConditionValue getCValueStartDate() { + return getStartDate(); + } + + public BsTodoCQ addOrderBy_StartDate_Asc() { + regOBA("START_DATE"); + return this; + } + + public BsTodoCQ addOrderBy_StartDate_Desc() { + regOBD("START_DATE"); + return this; + } + + protected ConditionValue _endDate; + + public ConditionValue getEndDate() { + if (_endDate == null) { + _endDate = new ConditionValue(); + } + return _endDate; + } + + protected ConditionValue getCValueEndDate() { + return getEndDate(); + } + + public BsTodoCQ addOrderBy_EndDate_Asc() { + regOBA("END_DATE"); + return this; + } + + public BsTodoCQ addOrderBy_EndDate_Desc() { + regOBD("END_DATE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsTodoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsTodoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + protected Map _createdBy_InScopeSubQuery_UserInfoMap; + + public Map getCreatedBy_InScopeSubQuery_UserInfo() { + return _createdBy_InScopeSubQuery_UserInfoMap; + } + + public String keepCreatedBy_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_createdBy_InScopeSubQuery_UserInfoMap == null) { + _createdBy_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_createdBy_InScopeSubQuery_UserInfoMap.size() + 1); + _createdBy_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "createdBy_InScopeSubQuery_UserInfo." + key; + } + + public BsTodoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsTodoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsTodoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsTodoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsTodoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsTodoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsTodoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsTodoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsTodoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsTodoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsTodoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsTodoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsTodoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsTodoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + TodoCQ baseQuery = (TodoCQ) baseQueryAsSuper; + TodoCQ unionQuery = (TodoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CREATED_BY"), + getConditionQueryUserInfo().getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("TODO", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return TodoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCategoryCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCategoryCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCategoryCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,479 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.TodoCategoryCIQ; + +/** + * The base condition-query of TODO_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsTodoCategoryCQ extends AbstractBsTodoCategoryCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoCategoryCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsTodoCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from TODO_CATEGORY) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public TodoCategoryCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new TodoCategoryCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * TODO_CATEGORY on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public TodoCategoryCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + TodoCategoryCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_TodoMappingListMap; + + public Map getId_InScopeSubQuery_TodoMappingList() { + return _id_InScopeSubQuery_TodoMappingListMap; + } + + public String keepId_InScopeSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + if (_id_InScopeSubQuery_TodoMappingListMap == null) { + _id_InScopeSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_TodoMappingListMap.size() + 1); + _id_InScopeSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_TodoMappingList." + key; + } + + protected Map _id_NotInScopeSubQuery_TodoMappingListMap; + + public Map getId_NotInScopeSubQuery_TodoMappingList() { + return _id_NotInScopeSubQuery_TodoMappingListMap; + } + + public String keepId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_TodoMappingListMap == null) { + _id_NotInScopeSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_TodoMappingListMap.size() + 1); + _id_NotInScopeSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_TodoMappingList." + key; + } + + protected Map _id_ExistsSubQuery_TodoMappingListMap; + + public Map getId_ExistsSubQuery_TodoMappingList() { + return _id_ExistsSubQuery_TodoMappingListMap; + } + + public String keepId_ExistsSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + if (_id_ExistsSubQuery_TodoMappingListMap == null) { + _id_ExistsSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_TodoMappingListMap.size() + 1); + _id_ExistsSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_TodoMappingList." + key; + } + + protected Map _id_NotExistsSubQuery_TodoMappingListMap; + + public Map getId_NotExistsSubQuery_TodoMappingList() { + return _id_NotExistsSubQuery_TodoMappingListMap; + } + + public String keepId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_id_NotExistsSubQuery_TodoMappingListMap == null) { + _id_NotExistsSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_TodoMappingListMap.size() + 1); + _id_NotExistsSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_TodoMappingList." + key; + } + + protected Map _id_DeriveSubQuery_TodoMappingListMap; + + public Map getId_DeriveSubQuery_TodoMappingList() { + return _id_DeriveSubQuery_TodoMappingListMap; + } + + public String keepId_DeriveSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + if (_id_DeriveSubQuery_TodoMappingListMap == null) { + _id_DeriveSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_TodoMappingListMap.size() + 1); + _id_DeriveSubQuery_TodoMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_TodoMappingList." + key; + } + + public BsTodoCategoryCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsTodoCategoryCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsTodoCategoryCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsTodoCategoryCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsTodoCategoryCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsTodoCategoryCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsTodoCategoryCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsTodoCategoryCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsTodoCategoryCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsTodoCategoryCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsTodoCategoryCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsTodoCategoryCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsTodoCategoryCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + TodoCategoryCQ baseQuery = (TodoCategoryCQ) baseQueryAsSuper; + TodoCategoryCQ unionQuery = (TodoCategoryCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("TODO_CATEGORY", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return TodoCategoryCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoMappingCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoMappingCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoMappingCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,578 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.TodoMappingCIQ; + +/** + * The base condition-query of TODO_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsTodoMappingCQ extends AbstractBsTodoMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected TodoMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsTodoMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from TODO_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public TodoMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new TodoMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * TODO_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public TodoMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + TodoMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsTodoMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsTodoMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _status; + + public ConditionValue getStatus() { + if (_status == null) { + _status = new ConditionValue(); + } + return _status; + } + + protected ConditionValue getCValueStatus() { + return getStatus(); + } + + public BsTodoMappingCQ addOrderBy_Status_Asc() { + regOBA("STATUS"); + return this; + } + + public BsTodoMappingCQ addOrderBy_Status_Desc() { + regOBD("STATUS"); + return this; + } + + protected ConditionValue _memo; + + public ConditionValue getMemo() { + if (_memo == null) { + _memo = new ConditionValue(); + } + return _memo; + } + + protected ConditionValue getCValueMemo() { + return getMemo(); + } + + public BsTodoMappingCQ addOrderBy_Memo_Asc() { + regOBA("MEMO"); + return this; + } + + public BsTodoMappingCQ addOrderBy_Memo_Desc() { + regOBD("MEMO"); + return this; + } + + protected ConditionValue _todoId; + + public ConditionValue getTodoId() { + if (_todoId == null) { + _todoId = new ConditionValue(); + } + return _todoId; + } + + protected ConditionValue getCValueTodoId() { + return getTodoId(); + } + + protected Map _todoId_InScopeSubQuery_TodoMap; + + public Map getTodoId_InScopeSubQuery_Todo() { + return _todoId_InScopeSubQuery_TodoMap; + } + + public String keepTodoId_InScopeSubQuery_Todo(TodoCQ subQuery) { + if (_todoId_InScopeSubQuery_TodoMap == null) { + _todoId_InScopeSubQuery_TodoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_todoId_InScopeSubQuery_TodoMap.size() + 1); + _todoId_InScopeSubQuery_TodoMap.put(key, subQuery); + return "todoId_InScopeSubQuery_Todo." + key; + } + + public BsTodoMappingCQ addOrderBy_TodoId_Asc() { + regOBA("TODO_ID"); + return this; + } + + public BsTodoMappingCQ addOrderBy_TodoId_Desc() { + regOBD("TODO_ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsTodoMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsTodoMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _categoryId; + + public ConditionValue getCategoryId() { + if (_categoryId == null) { + _categoryId = new ConditionValue(); + } + return _categoryId; + } + + protected ConditionValue getCValueCategoryId() { + return getCategoryId(); + } + + protected Map _categoryId_InScopeSubQuery_TodoCategoryMap; + + public Map getCategoryId_InScopeSubQuery_TodoCategory() { + return _categoryId_InScopeSubQuery_TodoCategoryMap; + } + + public String keepCategoryId_InScopeSubQuery_TodoCategory( + TodoCategoryCQ subQuery) { + if (_categoryId_InScopeSubQuery_TodoCategoryMap == null) { + _categoryId_InScopeSubQuery_TodoCategoryMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_categoryId_InScopeSubQuery_TodoCategoryMap.size() + 1); + _categoryId_InScopeSubQuery_TodoCategoryMap.put(key, subQuery); + return "categoryId_InScopeSubQuery_TodoCategory." + key; + } + + public BsTodoMappingCQ addOrderBy_CategoryId_Asc() { + regOBA("CATEGORY_ID"); + return this; + } + + public BsTodoMappingCQ addOrderBy_CategoryId_Desc() { + regOBD("CATEGORY_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsTodoMappingCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsTodoMappingCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsTodoMappingCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsTodoMappingCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsTodoMappingCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsTodoMappingCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsTodoMappingCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsTodoMappingCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsTodoMappingCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsTodoMappingCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsTodoMappingCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsTodoMappingCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsTodoMappingCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsTodoMappingCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsTodoMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsTodoMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + TodoMappingCQ baseQuery = (TodoMappingCQ) baseQueryAsSuper; + TodoMappingCQ unionQuery = (TodoMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryTodo()) { + unionQuery.queryTodo().reflectRelationOnUnionQuery( + baseQuery.queryTodo(), unionQuery.queryTodo()); + } + if (baseQuery.hasConditionQueryTodoCategory()) { + unionQuery.queryTodoCategory().reflectRelationOnUnionQuery( + baseQuery.queryTodoCategory(), + unionQuery.queryTodoCategory()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public TodoCQ queryTodo() { + return getConditionQueryTodo(); + } + + protected TodoCQ _conditionQueryTodo; + + public TodoCQ getConditionQueryTodo() { + if (_conditionQueryTodo == null) { + _conditionQueryTodo = createQueryTodo(); + setupOuterJoin_Todo(); + } + return _conditionQueryTodo; + } + + protected void setupOuterJoin_Todo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("TODO_ID"), getConditionQueryTodo() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryTodo(), joinOnMap); + } + + protected TodoCQ createQueryTodo() { + String nrp = resolveNextRelationPath("TODO_MAPPING", "todo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + TodoCQ cq = new TodoCQ(this, getSqlClause(), jan, getNextNestLevel()); + cq.xsetForeignPropertyName("todo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryTodo() { + return _conditionQueryTodo != null; + } + + public TodoCategoryCQ queryTodoCategory() { + return getConditionQueryTodoCategory(); + } + + protected TodoCategoryCQ _conditionQueryTodoCategory; + + public TodoCategoryCQ getConditionQueryTodoCategory() { + if (_conditionQueryTodoCategory == null) { + _conditionQueryTodoCategory = createQueryTodoCategory(); + setupOuterJoin_TodoCategory(); + } + return _conditionQueryTodoCategory; + } + + protected void setupOuterJoin_TodoCategory() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CATEGORY_ID"), + getConditionQueryTodoCategory().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryTodoCategory(), joinOnMap); + } + + protected TodoCategoryCQ createQueryTodoCategory() { + String nrp = resolveNextRelationPath("TODO_MAPPING", "todoCategory"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + TodoCategoryCQ cq = new TodoCategoryCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("todoCategory"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryTodoCategory() { + return _conditionQueryTodoCategory != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("TODO_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return TodoMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsTodoMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,1061 @@ +package jp.sf.pal.todolist.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_TodoListMap; + + public Map getUserId_InScopeSubQuery_TodoList() { + return _userId_InScopeSubQuery_TodoListMap; + } + + public String keepUserId_InScopeSubQuery_TodoList(TodoCQ subQuery) { + if (_userId_InScopeSubQuery_TodoListMap == null) { + _userId_InScopeSubQuery_TodoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_TodoListMap.size() + 1); + _userId_InScopeSubQuery_TodoListMap.put(key, subQuery); + return "userId_InScopeSubQuery_TodoList." + key; + } + + protected Map _userId_InScopeSubQuery_TodoCategoryListMap; + + public Map getUserId_InScopeSubQuery_TodoCategoryList() { + return _userId_InScopeSubQuery_TodoCategoryListMap; + } + + public String keepUserId_InScopeSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + if (_userId_InScopeSubQuery_TodoCategoryListMap == null) { + _userId_InScopeSubQuery_TodoCategoryListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_TodoCategoryListMap.size() + 1); + _userId_InScopeSubQuery_TodoCategoryListMap.put(key, subQuery); + return "userId_InScopeSubQuery_TodoCategoryList." + key; + } + + protected Map _userId_InScopeSubQuery_TodoMappingListMap; + + public Map getUserId_InScopeSubQuery_TodoMappingList() { + return _userId_InScopeSubQuery_TodoMappingListMap; + } + + public String keepUserId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_userId_InScopeSubQuery_TodoMappingListMap == null) { + _userId_InScopeSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_TodoMappingListMap.size() + 1); + _userId_InScopeSubQuery_TodoMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_TodoMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_TodoListMap; + + public Map getUserId_NotInScopeSubQuery_TodoList() { + return _userId_NotInScopeSubQuery_TodoListMap; + } + + public String keepUserId_NotInScopeSubQuery_TodoList(TodoCQ subQuery) { + if (_userId_NotInScopeSubQuery_TodoListMap == null) { + _userId_NotInScopeSubQuery_TodoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_TodoListMap.size() + 1); + _userId_NotInScopeSubQuery_TodoListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_TodoList." + key; + } + + protected Map _userId_NotInScopeSubQuery_TodoCategoryListMap; + + public Map getUserId_NotInScopeSubQuery_TodoCategoryList() { + return _userId_NotInScopeSubQuery_TodoCategoryListMap; + } + + public String keepUserId_NotInScopeSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + if (_userId_NotInScopeSubQuery_TodoCategoryListMap == null) { + _userId_NotInScopeSubQuery_TodoCategoryListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_TodoCategoryListMap.size() + 1); + _userId_NotInScopeSubQuery_TodoCategoryListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_TodoCategoryList." + key; + } + + protected Map _userId_NotInScopeSubQuery_TodoMappingListMap; + + public Map getUserId_NotInScopeSubQuery_TodoMappingList() { + return _userId_NotInScopeSubQuery_TodoMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_TodoMappingListMap == null) { + _userId_NotInScopeSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_TodoMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_TodoMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_TodoMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_TodoListMap; + + public Map getUserId_ExistsSubQuery_TodoList() { + return _userId_ExistsSubQuery_TodoListMap; + } + + public String keepUserId_ExistsSubQuery_TodoList(TodoCQ subQuery) { + if (_userId_ExistsSubQuery_TodoListMap == null) { + _userId_ExistsSubQuery_TodoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_TodoListMap.size() + 1); + _userId_ExistsSubQuery_TodoListMap.put(key, subQuery); + return "userId_ExistsSubQuery_TodoList." + key; + } + + protected Map _userId_ExistsSubQuery_TodoCategoryListMap; + + public Map getUserId_ExistsSubQuery_TodoCategoryList() { + return _userId_ExistsSubQuery_TodoCategoryListMap; + } + + public String keepUserId_ExistsSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + if (_userId_ExistsSubQuery_TodoCategoryListMap == null) { + _userId_ExistsSubQuery_TodoCategoryListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_TodoCategoryListMap.size() + 1); + _userId_ExistsSubQuery_TodoCategoryListMap.put(key, subQuery); + return "userId_ExistsSubQuery_TodoCategoryList." + key; + } + + protected Map _userId_ExistsSubQuery_TodoMappingListMap; + + public Map getUserId_ExistsSubQuery_TodoMappingList() { + return _userId_ExistsSubQuery_TodoMappingListMap; + } + + public String keepUserId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_userId_ExistsSubQuery_TodoMappingListMap == null) { + _userId_ExistsSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_TodoMappingListMap.size() + 1); + _userId_ExistsSubQuery_TodoMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_TodoMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_TodoListMap; + + public Map getUserId_NotExistsSubQuery_TodoList() { + return _userId_NotExistsSubQuery_TodoListMap; + } + + public String keepUserId_NotExistsSubQuery_TodoList(TodoCQ subQuery) { + if (_userId_NotExistsSubQuery_TodoListMap == null) { + _userId_NotExistsSubQuery_TodoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_TodoListMap.size() + 1); + _userId_NotExistsSubQuery_TodoListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_TodoList." + key; + } + + protected Map _userId_NotExistsSubQuery_TodoCategoryListMap; + + public Map getUserId_NotExistsSubQuery_TodoCategoryList() { + return _userId_NotExistsSubQuery_TodoCategoryListMap; + } + + public String keepUserId_NotExistsSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + if (_userId_NotExistsSubQuery_TodoCategoryListMap == null) { + _userId_NotExistsSubQuery_TodoCategoryListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_TodoCategoryListMap.size() + 1); + _userId_NotExistsSubQuery_TodoCategoryListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_TodoCategoryList." + key; + } + + protected Map _userId_NotExistsSubQuery_TodoMappingListMap; + + public Map getUserId_NotExistsSubQuery_TodoMappingList() { + return _userId_NotExistsSubQuery_TodoMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_TodoMappingListMap == null) { + _userId_NotExistsSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_TodoMappingListMap.size() + 1); + _userId_NotExistsSubQuery_TodoMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_TodoMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_TodoListMap; + + public Map getUserId_DeriveSubQuery_TodoList() { + return _userId_DeriveSubQuery_TodoListMap; + } + + public String keepUserId_DeriveSubQuery_TodoList(TodoCQ subQuery) { + if (_userId_DeriveSubQuery_TodoListMap == null) { + _userId_DeriveSubQuery_TodoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_TodoListMap.size() + 1); + _userId_DeriveSubQuery_TodoListMap.put(key, subQuery); + return "userId_DeriveSubQuery_TodoList." + key; + } + + protected Map _userId_DeriveSubQuery_TodoCategoryListMap; + + public Map getUserId_DeriveSubQuery_TodoCategoryList() { + return _userId_DeriveSubQuery_TodoCategoryListMap; + } + + public String keepUserId_DeriveSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + if (_userId_DeriveSubQuery_TodoCategoryListMap == null) { + _userId_DeriveSubQuery_TodoCategoryListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_TodoCategoryListMap.size() + 1); + _userId_DeriveSubQuery_TodoCategoryListMap.put(key, subQuery); + return "userId_DeriveSubQuery_TodoCategoryList." + key; + } + + protected Map _userId_DeriveSubQuery_TodoMappingListMap; + + public Map getUserId_DeriveSubQuery_TodoMappingList() { + return _userId_DeriveSubQuery_TodoMappingListMap; + } + + public String keepUserId_DeriveSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + if (_userId_DeriveSubQuery_TodoMappingListMap == null) { + _userId_DeriveSubQuery_TodoMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_TodoMappingListMap.size() + 1); + _userId_DeriveSubQuery_TodoMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_TodoMappingList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,202 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,118 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,201 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,118 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,183 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsTodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsTodoCQ; + +/** + * The condition-inline-query of TODO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCIQ extends AbstractBsTodoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsTodoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public TodoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsTodoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_TodoMappingList(subQuery); + } + + public String keepId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_TodoMappingList(subQuery); + } + + public String keepId_ExistsSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValuePriority() { + return _myCQ.getPriority(); + } + + protected ConditionValue getCValueStatus() { + return _myCQ.getStatus(); + } + + protected ConditionValue getCValueStartDate() { + return _myCQ.getStartDate(); + } + + protected ConditionValue getCValueEndDate() { + return _myCQ.getEndDate(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + public String keepCreatedBy_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepCreatedBy_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCategoryCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCategoryCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCategoryCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,167 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsTodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsTodoCategoryCQ; + +/** + * The condition-inline-query of TODO_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategoryCIQ extends AbstractBsTodoCategoryCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsTodoCategoryCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public TodoCategoryCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsTodoCategoryCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_TodoMappingList(subQuery); + } + + public String keepId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_TodoMappingList(subQuery); + } + + public String keepId_ExistsSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_TodoMappingList(TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoCategoryCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoCategoryCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoMappingCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoMappingCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoMappingCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,164 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsTodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsTodoMappingCQ; + +/** + * The condition-inline-query of TODO_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMappingCIQ extends AbstractBsTodoMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsTodoMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public TodoMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsTodoMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueStatus() { + return _myCQ.getStatus(); + } + + protected ConditionValue getCValueMemo() { + return _myCQ.getMemo(); + } + + protected ConditionValue getCValueTodoId() { + return _myCQ.getTodoId(); + } + + public String keepTodoId_InScopeSubQuery_Todo(TodoCQ subQuery) { + return _myCQ.keepTodoId_InScopeSubQuery_Todo(subQuery); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueCategoryId() { + return _myCQ.getCategoryId(); + } + + public String keepCategoryId_InScopeSubQuery_TodoCategory( + TodoCategoryCQ subQuery) { + return _myCQ.keepCategoryId_InScopeSubQuery_TodoCategory(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return TodoMappingCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/TodoMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,318 @@ +package jp.sf.pal.todolist.db.cbean.cq.ciq; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.todolist.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.todolist.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.todolist.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.todolist.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_TodoList(TodoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_TodoList(subQuery); + } + + public String keepUserId_InScopeSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_TodoCategoryList(subQuery); + } + + public String keepUserId_InScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_TodoMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_TodoList(TodoCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_TodoList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_TodoCategoryList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_TodoMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_TodoList(TodoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_TodoList(TodoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_TodoList(TodoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_TodoCategoryList( + TodoCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_TodoMappingList( + TodoMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupInfoNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupInfoNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupInfoNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,32 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupMappingNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupMappingNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupMappingNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,50 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleInfoNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleInfoNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleInfoNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,32 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleMappingNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleMappingNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleMappingNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,50 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoCategoryNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoCategoryNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoCategoryNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,41 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.cbean.cq.TodoCategoryCQ; + +/** + * The nest-select-setupper of TODO_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategoryNss { + + protected TodoCategoryCQ _query; + + public TodoCategoryNss(TodoCategoryCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public UserInfoNss withUserInfo() { + _query.doNss(new TodoCategoryCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoCategoryNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoMappingNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoMappingNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoMappingNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,59 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.cbean.cq.TodoMappingCQ; + +/** + * The nest-select-setupper of TODO_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMappingNss { + + protected TodoMappingCQ _query; + + public TodoMappingNss(TodoMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public TodoNss withTodo() { + _query.doNss(new TodoMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryTodo(); + } + }); + return new TodoNss(_query.queryTodo()); + } + + public TodoCategoryNss withTodoCategory() { + _query.doNss(new TodoMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryTodoCategory(); + } + }); + return new TodoCategoryNss(_query.queryTodoCategory()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new TodoMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,41 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.cbean.cq.TodoCQ; + +/** + * The nest-select-setupper of TODO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoNss { + + protected TodoCQ _query; + + public TodoNss(TodoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public UserInfoNss withUserInfo() { + _query.doNss(new TodoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/TodoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/UserInfoNss.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/UserInfoNss.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/UserInfoNss.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,50 @@ +package jp.sf.pal.todolist.db.cbean.nss; + +import jp.sf.pal.todolist.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.todolist.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupInfoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupInfoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.todolist.db.bsbhv.BsGroupInfoBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupMappingBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupMappingBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupMappingBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.todolist.db.bsbhv.BsGroupMappingBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleInfoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleInfoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.todolist.db.bsbhv.BsRoleInfoBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleMappingBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleMappingBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleMappingBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends + jp.sf.pal.todolist.db.bsbhv.BsRoleMappingBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of TODO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoBhv extends jp.sf.pal.todolist.db.bsbhv.BsTodoBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoCategoryBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoCategoryBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoCategoryBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of TODO_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategoryBhv extends + jp.sf.pal.todolist.db.bsbhv.BsTodoCategoryBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoCategoryBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoMappingBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoMappingBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoMappingBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of TODO_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMappingBhv extends + jp.sf.pal.todolist.db.bsbhv.BsTodoMappingBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/TodoMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/UserInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/UserInfoBhv.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/UserInfoBhv.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exbhv; + +/** + * The behavior of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.todolist.db.bsbhv.BsUserInfoBhv { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupInfoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupInfoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupInfoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of GROUP_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends + jp.sf.pal.todolist.db.bsdao.BsGroupInfoDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupMappingDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupMappingDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupMappingDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.todolist.db.bsdao.BsGroupMappingDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleInfoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleInfoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleInfoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of ROLE_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.todolist.db.bsdao.BsRoleInfoDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleMappingDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleMappingDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleMappingDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.todolist.db.bsdao.BsRoleMappingDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoCategoryDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoCategoryDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoCategoryDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of TODO_CATEGORY.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface TodoCategoryDao extends + jp.sf.pal.todolist.db.bsdao.BsTodoCategoryDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoCategoryDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of TODO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface TodoDao extends jp.sf.pal.todolist.db.bsdao.BsTodoDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoMappingDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoMappingDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoMappingDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of TODO_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface TodoMappingDao extends + jp.sf.pal.todolist.db.bsdao.BsTodoMappingDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/TodoMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/UserInfoDao.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/UserInfoDao.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/UserInfoDao.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,14 @@ +package jp.sf.pal.todolist.db.exdao; + +/** + * The dao interface of USER_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.todolist.db.bsdao.BsUserInfoDao { +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.exentity; + +/** + * The entity of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.todolist.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupMapping.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupMapping.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends jp.sf.pal.todolist.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.exentity; + +/** + * The entity of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.todolist.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleMapping.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleMapping.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.todolist.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/Todo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/Todo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/Todo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,44 @@ +package jp.sf.pal.todolist.db.exentity; + +import org.apache.commons.lang.StringUtils; + +/** + * The entity of TODO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Todo extends jp.sf.pal.todolist.db.bsentity.BsTodo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public String getCreatedByFromUserInfo() { + StringBuilder buf = new StringBuilder(); + if (getUserInfo() != null) { + // TODO i18n name order + if (getUserInfo().getFamilyName() != null) { + buf.append(getUserInfo().getFamilyName()); + } + if (getUserInfo().getFamilyName() != null + && getUserInfo().getGivenName() != null) { + buf.append(" "); + } + if (getUserInfo().getGivenName() != null) { + buf.append(getUserInfo().getGivenName()); + } + + if (StringUtils.isEmpty(buf.toString())) { + buf.append(getCreatedBy()); + } + } else { + buf.append(getCreatedBy()); + } + + return buf.toString(); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/Todo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.exentity; + +/** + * The entity of TODO_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoCategory extends jp.sf.pal.todolist.db.bsentity.BsTodoCategory { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,29 @@ +package jp.sf.pal.todolist.db.exentity; + +import jp.sf.pal.todolist.ToDoListConstants; + +/** + * The entity of TODO_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class TodoMapping extends jp.sf.pal.todolist.db.bsentity.BsTodoMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public TodoMapping() { + super(); + } + + public TodoMapping(String userId) { + super(); + setUserId(userId); + setStatus(ToDoListConstants.WORKING); + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/UserInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/UserInfo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/UserInfo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,17 @@ +package jp.sf.pal.todolist.db.exentity; + +/** + * The entity of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.todolist.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,48 @@ +package jp.sf.pal.todolist.dxo; + +import java.io.Serializable; + +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.form.user.CategoryForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface CategoryDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", name : name" // + + ", userId : userId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromCategoryToForm(TodoCategory todoCategory, + CategoryForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "name : name" // + // + ", userId : userId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToCategory(CategoryForm form, + TodoCategory todoCategory); + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,89 @@ +package jp.sf.pal.todolist.dxo; + +import java.io.Serializable; + +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.form.user.TodoForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface TodoDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", status : status" // + + ", memo : memo" // + + ", todoId : todoId" // + + ", userId : userId" // + + ", categoryId : categoryId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", idForTodo : todo.id" // + + ", nameForTodo : todo.name" // + + ", descriptionForTodo : todo.description" // + + ", priorityForTodo : todo.priority" // + + ", statusForTodo : todo.status" // + + ", startDateForTodo : todo.startDate" // + + ", endDateForTodo : todo.endDate" // + + ", createdTimeForTodo : todo.createdTime" // + + ", createdByForTodo : todo.createdBy" // + + ", updatedTimeForTodo : todo.updatedTime" // + + ", updatedByForTodo : todo.updatedBy" // + + ", deletedTimeForTodo : todo.deletedTime" // + + ", deletedByForTodo : todo.deletedBy" // + // + ", versionnoForTodo : todo.versionno" // + ) + public void convertFromTodoMappingToForm(TodoMapping todoMapping, + TodoForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "status : status" // + + ", memo : memo" // + + ", todoId : todoId" // + + ", userId : userId" // + + ", categoryId : categoryId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToTodoMapping(TodoForm form, + TodoMapping todoMapping); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "id : idForTodo" // + + ", name : nameForTodo" // + + ", description : descriptionForTodo" // + + ", priority : priorityForTodo" // + + ", status : statusForTodo" // + + ", startDate : startDateForTodo" // + + ", endDate : endDateForTodo" // + // + ", createdTime : createdTimeForTodo" // + // + ", createdBy : createdByForTodo" // + // + ", updatedTime : updatedTimeForTodo" // + // + ", updatedBy : updatedByForTodo" // + // + ", deletedTime : deletedTimeForTodo" // + // + ", deletedBy : deletedByForTodo" // + // + ", versionno : versionnoForTodo" // + ) + public void convertFromFormToTodo(TodoForm form, Todo todo); + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/ConfigForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/ConfigForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/ConfigForm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,16 @@ +package jp.sf.pal.todolist.form; + +import java.io.Serializable; + +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class ConfigForm implements Serializable { + + private static final long serialVersionUID = 3402068931354386170L; + + @Required(target = "update") + @Maxbytelength(maxbytelength = 255) + public String guestName; + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/ConfigForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/CategoryForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/CategoryForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/CategoryForm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,63 @@ +package jp.sf.pal.todolist.form.user; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CategoryForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6969085674310253357L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 255) + public String userId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + name = null; + userId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/CategoryForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,222 @@ +package jp.sf.pal.todolist.form.user; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class TodoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 204253893787965783L; + + @IntegerType + public int mode; + + @LongType + public String id; + + @IntegerType + public String status; + + @Maxbytelength(maxbytelength = 200) + public String memo; + + @LongType + public String todoId; + + @Maxbytelength(maxbytelength = 255) + public String userId; + + @LongType + public String categoryId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Required(target = "update,delete") + @LongType + public String idForTodo; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String nameForTodo; + + @Maxbytelength(maxbytelength = 200) + public String descriptionForTodo; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String priorityForTodo; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String statusForTodo; + + // @DateType + // public String startDateForTodo; + // + // @DateType + // public String endDateForTodo; + + @DateType + public String createdTimeForTodo; + + @Maxbytelength(maxbytelength = 255) + public String createdByForTodo; + + @DateType + public String updatedTimeForTodo; + + @Maxbytelength(maxbytelength = 255) + public String updatedByForTodo; + + @DateType + public String deletedTimeForTodo; + + @Maxbytelength(maxbytelength = 255) + public String deletedByForTodo; + + @IntegerType + public String startDateYear; + + @IntegerType + public String startDateMonth; + + @IntegerType + public String startDateDate; + + @IntegerType + public String endDateYear; + + @IntegerType + public String endDateMonth; + + @IntegerType + public String endDateDate; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + status = "1"; + memo = null; + todoId = null; + userId = null; + categoryId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + idForTodo = null; + nameForTodo = null; + descriptionForTodo = null; + priorityForTodo = "3"; + statusForTodo = "1"; + // startDateForTodo = null; + // endDateForTodo = null; + createdTimeForTodo = null; + createdByForTodo = null; + updatedTimeForTodo = null; + updatedByForTodo = null; + deletedTimeForTodo = null; + deletedByForTodo = null; + } + + public void setStartDateForTodo(String value) { + if (value != null) { + String[] values = value.split(" ")[0].split("/"); + startDateYear = values[0]; + if (values.length > 1) { + startDateMonth = String.valueOf(Integer.parseInt(values[1])); + } + if (values.length > 2) { + startDateDate = String.valueOf(Integer.parseInt(values[2])); + } + } + } + + public String getStartDateForTodo() { + if (!StringUtils.isEmpty(startDateYear) + && !StringUtils.isEmpty(startDateMonth) + && !StringUtils.isEmpty(startDateDate)) { + StringBuilder buf = new StringBuilder(); + buf.append(startDateYear); + buf.append("/"); + int month = Integer.parseInt(startDateMonth); + if (month < 10) { + buf.append("0"); + } + buf.append(month); + buf.append("/"); + int date = Integer.parseInt(startDateDate); + if (date < 10) { + buf.append("0"); + } + buf.append(date); + buf.append(" 00:00:00"); + return buf.toString(); + } + return null; + } + + public void setEndDateForTodo(String value) { + if (value != null) { + String[] values = value.split(" ")[0].split("/"); + endDateYear = values[0]; + if (values.length > 1) { + endDateMonth = String.valueOf(Integer.parseInt(values[1])); + } + if (values.length > 2) { + endDateDate = String.valueOf(Integer.parseInt(values[2])); + } + } + } + + public String getEndDateForTodo() { + if (!StringUtils.isEmpty(endDateYear) + && !StringUtils.isEmpty(endDateMonth) + && !StringUtils.isEmpty(endDateDate)) { + StringBuilder buf = new StringBuilder(); + buf.append(endDateYear); + buf.append("/"); + int month = Integer.parseInt(endDateMonth); + if (month < 10) { + buf.append("0"); + } + buf.append(month); + buf.append("/"); + int date = Integer.parseInt(endDateDate); + if (date < 10) { + buf.append("0"); + } + buf.append(date); + buf.append(" 00:00:00"); + return buf.toString(); + } + return null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/CategoryPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/CategoryPager.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/CategoryPager.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.pager; + +import jp.sf.pal.todolist.common.pager.DefaultPager; + +public class CategoryPager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + public CategoryPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/CategoryPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.pager; + +import jp.sf.pal.todolist.common.pager.DefaultPager; + +public class TodoPager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + public TodoPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,165 @@ +package jp.sf.pal.todolist.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.PagingResultBeanWrapper; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.cbean.TodoCategoryCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.TodoCategoryBhv; +import jp.sf.pal.todolist.db.exbhv.UserInfoBhv; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.pager.CategoryPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class CategoryService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient TodoCategoryBhv todoCategoryBhv; + + private PagerDxo pagerDxo; + + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + + public List getTodoCategoryList(CategoryPager categoryPager, + String userId) { + + HotdeployUtil.rebuildValue(categoryPager); + + TodoCategoryCB cb = new TodoCategoryCB(); + + cb.fetchFirst(categoryPager.getPageSize()); + cb.fetchPage(categoryPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + + // TODO sort order + cb.query().addOrderBy_Name_Asc(); + + PagingResultBean categoryList = todoCategoryBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(categoryList), + categoryPager); + categoryList.setPageRangeSize(5); + categoryPager.setPageNumberList(categoryList.pageRange() + .createPageNumberList()); + + return categoryList; + } + + public List getTodoCategoryList(String userId) { + + TodoCategoryCB cb = new TodoCategoryCB(); + + // setup + cb.specify().columnId(); + cb.specify().columnName(); + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + + // TODO sort order + cb.query().addOrderBy_Name_Asc(); + return todoCategoryBhv.selectList(cb); + + } + + public TodoCategory getTodoCategory(Long id, String userId) { + TodoCategoryCB cb = new TodoCategoryCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + return todoCategoryBhv.selectEntity(cb); + } + + public void store(TodoCategory todoCategory) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + todoCategory.setUpdatedTime(now); + + initUserInfo(todoCategory.getUserId()); + + if (todoCategory.getCreatedTime() == null) { + // create + todoCategory.setCreatedTime(now); + } + todoCategoryBhv.insertOrUpdate(todoCategory); + } + + public void disable(Long id, String name) { + // not delete + TodoCategoryCB cb = new TodoCategoryCB(); + + cb.query().setId_Equal(id); + cb.query().setDeletedBy_IsNotNull(); + TodoCategory category = todoCategoryBhv.selectEntity(cb); + + // TODO throw an exception + + category.setDeletedBy(name); + category.setDeletedTime(new Timestamp(new Date().getTime())); + todoCategoryBhv.update(category); + } + + public TodoCategoryBhv getTodoCategoryBhv() { + return todoCategoryBhv; + } + + public void setTodoCategoryBhv(TodoCategoryBhv todoCategoryBhv) { + this.todoCategoryBhv = todoCategoryBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,271 @@ +package jp.sf.pal.todolist.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.PagingResultBeanWrapper; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.cbean.TodoCB; +import jp.sf.pal.todolist.db.cbean.TodoMappingCB; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.TodoBhv; +import jp.sf.pal.todolist.db.exbhv.TodoMappingBhv; +import jp.sf.pal.todolist.db.exbhv.UserInfoBhv; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.pager.TodoPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class TodoService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient TodoBhv todoBhv; + + private transient TodoMappingBhv todoMappingBhv; + + private PagerDxo pagerDxo; + + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + + public List getTodoMappingList(TodoPager todoPager, + String userId) { + + HotdeployUtil.rebuildValue(todoPager); + + TodoMappingCB cb = new TodoMappingCB(); + + cb.fetchFirst(todoPager.getPageSize()); + cb.fetchPage(todoPager.getCurrentPageNumber()); + + // setup + cb.setupSelect_Todo().withUserInfo(); + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + cb.query().queryTodo().addOrderBy_EndDate_Asc(); + + PagingResultBean todoMappingList = todoMappingBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(todoMappingList), + todoPager); + todoMappingList.setPageRangeSize(5); + todoPager.setPageNumberList(todoMappingList.pageRange() + .createPageNumberList()); + + return todoMappingList; + } + + public TodoMapping getTodoMapping(Long id, String userId) { + TodoMappingCB cb = new TodoMappingCB(); + + // setup + cb.setupSelect_Todo(); + cb.setupSelect_TodoCategory(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + + TodoMapping todoMapping = todoMappingBhv.selectEntity(cb); + if (todoMapping == null) { + return null; + } + + // bind mapping + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setTodoId_Equal(todoMapping.getTodoId()); + todoMapping.getTodo() + .setTodoMappingList(todoMappingBhv.selectList(cb2)); + + return todoMapping; + } + + public void store(Todo todo) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + todo.setUpdatedTime(now); + + initUserInfo(todo.getCreatedBy()); + + if (todo.getCreatedTime() == null) { + // create + todo.setCreatedTime(now); + todoBhv.insert(todo); + + // create TodoMapping + for (TodoMapping todoMapping : todo.getTodoMappingList()) { + todoMapping.setCreatedBy(todo.getCreatedBy()); + todoMapping.setCreatedTime(todo.getCreatedTime()); + todoMapping.setUpdatedBy(todo.getUpdatedBy()); + todoMapping.setUpdatedTime(todo.getUpdatedTime()); + todoMapping.setTodoId(todo.getId()); + todoMappingBhv.insert(todoMapping); + } + + } else { + // update + todoBhv.update(todo); + + // TODO create TodoMapping + + } + } + + public void store(TodoMapping todoMapping) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + todoMapping.setUpdatedTime(now); + + initUserInfo(todoMapping.getUserId()); + + if (todoMapping.getCreatedTime() == null) { + // create + todoMapping.setCreatedTime(now); + todoMappingBhv.insert(todoMapping); + } else { + // update + todoMappingBhv.update(todoMapping); + + // check TodoMapping status + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setTodoId_Equal(todoMapping.getTodoId()); + boolean finished = true; + for (TodoMapping tm : todoMappingBhv.selectList(cb2)) { + if (ToDoListConstants.WORKING == tm.getStatus()) { + finished = false; + } + } + Todo todo = todoMapping.getTodo(); + if (finished && todo.getStatus() == ToDoListConstants.WORKING) { + todo.setStatus(ToDoListConstants.COMPLETED); + todoBhv.update(todo); + } else if (!finished + && todo.getStatus() == ToDoListConstants.COMPLETED) { + todo.setStatus(ToDoListConstants.WORKING); + todoBhv.update(todo); + } + } + } + + public void disable(Long id, String name) { + // not delete + TodoCB cb = new TodoCB(); + + cb.query().setId_Equal(id); + Todo todo = todoBhv.selectEntity(cb); + + // TODO throw an exception + + todo.setDeletedBy(name); + todo.setDeletedTime(new Timestamp(new Date().getTime())); + todoBhv.update(todo); + + // todomapping + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setTodoId_Equal(id); + for (TodoMapping todoMapping : todoMappingBhv.selectList(cb2)) { + todoMapping.setDeletedBy(name); + todoMapping.setDeletedTime(new Timestamp(new Date().getTime())); + todoMappingBhv.update(todoMapping); + } + } + + public void disableMapping(Long id, String name) { + // not delete + TodoMappingCB cb = new TodoMappingCB(); + + // setup + cb.setupSelect_Todo(); + + cb.query().setId_Equal(id); + TodoMapping todoMapping = todoMappingBhv.selectEntity(cb); + + // TODO throw an exception + + todoMapping.setDeletedBy(name); + todoMapping.setDeletedTime(new Timestamp(new Date().getTime())); + todoMappingBhv.update(todoMapping); + + // check if todo has mapping + Todo todo = todoMapping.getTodo(); + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setTodoId_Equal(todo.getId()); + List todoMappingList = todoMappingBhv.selectList(cb2); + boolean delete = true; + for (TodoMapping tm : todoMappingList) { + if (tm.getDeletedBy() == null) { + delete = false; + break; + } + } + if (delete) { + todo.setDeletedBy(name); + todo.setDeletedTime(new Timestamp(new Date().getTime())); + todoBhv.update(todo); + } + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public TodoBhv getTodoBhv() { + return todoBhv; + } + + public void setTodoBhv(TodoBhv todoBhv) { + this.todoBhv = todoBhv; + } + + public TodoMappingBhv getTodoMappingBhv() { + return todoMappingBhv; + } + + public void setTodoMappingBhv(TodoMappingBhv todoMappingBhv) { + this.todoMappingBhv = todoMappingBhv; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/util/ToDoListUtil.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/util/ToDoListUtil.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/util/ToDoListUtil.java 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,20 @@ +package jp.sf.pal.todolist.util; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.util.ConfigUtil; + +import org.apache.commons.lang.StringUtils; + +public class ToDoListUtil { + public static String getUserId(HttpServletRequest request) { + String userId = request.getRemoteUser(); + if (StringUtils.isEmpty(userId)) { + // set guest to userId + userId = ConfigUtil + .getString(ToDoListConstants.GUEST_NAME, "guest"); + } + return userId; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/util/ToDoListUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/resources/app.dicon =================================================================== --- todolist/trunk/src/main/resources/app.dicon (rev 0) +++ todolist/trunk/src/main/resources/app.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,11 @@ + + + + + + + + + + Added: todolist/trunk/src/main/resources/application.properties =================================================================== --- todolist/trunk/src/main/resources/application.properties (rev 0) +++ todolist/trunk/src/main/resources/application.properties 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,52 @@ +errors.header=
      +errors.footer=
    +errors.prefix=
  • +errors.suffix=
  • +msg.header=
      +msg.footer=
    + +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.required.other={0} is required ({1}). +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +success.update_config=Updated configuration. +success.create_userInfo=Created a user information. +success.update_userInfo=Updated the user information. +success.delete_userInfo=Deleted the user information. +success.create_roleInfo=Created a role information. +success.update_roleInfo=Updated the role information. +success.delete_roleInfo=Deleted the role information. +success.create_groupInfo=Created a group information. +success.update_groupInfo=Updated the group information. +success.delete_groupInfo=Deleted the group information. + +errors.failed_to_update_config=Failed to update the configuration. +errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). +errors.failed_to_create_userInfo=Failed to create a new user information. +errors.failed_to_update_userInfo=Failed to update the user information. +errors.failed_to_delete_userInfo=Failed to delete the user information. +errors.could_not_find_userInfo=Could not find the user information({0}). +errors.failed_to_create_roleInfo=Failed to create a new role information. +errors.failed_to_update_roleInfo=Failed to update the role information. +errors.failed_to_delete_roleInfo=Failed to delete the role information. +errors.could_not_find_roleInfo=Could not find the role information({0}). +errors.failed_to_create_groupInfo=Failed to create a new group information. +errors.failed_to_update_groupInfo=Failed to update the group information. +errors.failed_to_delete_groupInfo=Failed to delete the group information. +errors.could_not_find_groupInfo=Could not find the group information({0}). + Property changes on: todolist/trunk/src/main/resources/application.properties ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/resources/convention.dicon =================================================================== --- todolist/trunk/src/main/resources/convention.dicon (rev 0) +++ todolist/trunk/src/main/resources/convention.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,21 @@ + + + + + + "jp.sf.pal.todolist" + + + "jp.sf.pal.todolist.common" + + + "jp.sf.pal.todolist.common.util" + + + + Added: todolist/trunk/src/main/resources/creator.dicon =================================================================== --- todolist/trunk/src/main/resources/creator.dicon (rev 0) +++ todolist/trunk/src/main/resources/creator.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + Added: todolist/trunk/src/main/resources/customizer.dicon =================================================================== --- todolist/trunk/src/main/resources/customizer.dicon (rev 0) +++ todolist/trunk/src/main/resources/customizer.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,58 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + + + + + + + + + traceCustomizer + + + s2DxoCustomizer + + + + + + + Added: todolist/trunk/src/main/resources/dbflute.dicon =================================================================== --- todolist/trunk/src/main/resources/dbflute.dicon (rev 0) +++ todolist/trunk/src/main/resources/dbflute.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,93 @@ + + + + + + + + + "UTF-8" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + Added: todolist/trunk/src/main/resources/env.txt =================================================================== --- todolist/trunk/src/main/resources/env.txt (rev 0) +++ todolist/trunk/src/main/resources/env.txt 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1 @@ +product Property changes on: todolist/trunk/src/main/resources/env.txt ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/resources/env_ut.txt =================================================================== --- todolist/trunk/src/main/resources/env_ut.txt (rev 0) +++ todolist/trunk/src/main/resources/env_ut.txt 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1 @@ +ut \ No newline at end of file Property changes on: todolist/trunk/src/main/resources/env_ut.txt ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/resources/jdbc.dicon =================================================================== --- todolist/trunk/src/main/resources/jdbc.dicon (rev 0) +++ todolist/trunk/src/main/resources/jdbc.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,160 @@ + + + + + + + + + + + + 100 + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:file:" + container.getComponent(@java.lang.Class ¡÷ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/todolist") + + + "sa" + "" + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + Added: todolist/trunk/src/main/resources/log4j.properties =================================================================== --- todolist/trunk/src/main/resources/log4j.properties (rev 0) +++ todolist/trunk/src/main/resources/log4j.properties 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,9 @@ +log4j.rootCategory=DEBUG, todolist + +log4j.appender.todolist=org.apache.log4j.RollingFileAppender +log4j.appender.todolist.MaxFileSize=100MB +log4j.appender.todolist.MaxBackupIndex=5 +log4j.appender.todolist.File=/tmp/todolist.out +log4j.appender.todolist.Append=false +log4j.appender.todolist.layout=org.apache.log4j.PatternLayout +log4j.appender.todolist.layout.ConversionPattern=%d{yyyy.MM.dd,HH:mm:ss,SSS},%F:%L,%p,%m%n Property changes on: todolist/trunk/src/main/resources/log4j.properties ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/resources/s2container.dicon =================================================================== --- todolist/trunk/src/main/resources/s2container.dicon (rev 0) +++ todolist/trunk/src/main/resources/s2container.dicon 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db =================================================================== (Binary files differ) Property changes on: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db =================================================================== (Binary files differ) Property changes on: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.index.db =================================================================== (Binary files differ) Property changes on: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.index.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: todolist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,55 @@ + + + + ToDoList + PAL Project + + ToDoListConfig + admin + + + ToDoListManager + admin + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,69 @@ + + + + ToDoListConfig + ToDoList: ToDoList Configuration + Edit configurations. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /config/ + + 0 + + text/html + VIEW + + en + ja + + ToDoList Configuration + Config + ToDoList,URL + + + + ToDoListManager + ToDoList: ToDoList Manager + Edit user information. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /userInfo/ + + 0 + + text/html + VIEW + + en + ja + + ToDoList Manager + ToDoLists + ToDoList,URL + + + + ToDoListEditor + ToDoList: ToDoList Editor + Edit my tasks. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /user/todo/ + + 0 + + text/html + VIEW + + en + ja + + ToDoList + ToDo + ToDoList,URL + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/struts-config.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/struts-config.xml ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/todolist.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/todolist.xml (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/todolist.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,3 @@ + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/todolist.xml ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/validator-rules.xml ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,9 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> + +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,32 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + +

    Custom 1Custom 1
    Custom 2
    + + + + + + + + + + + + +
    Configuration
    Guest User Name
    + +
    + + + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,64 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + +
    Confirmation of Category Info
    Name${f:h(name)}
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,49 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + +
    Edit Category Info
    Name
    + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,80 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Category +
    + + + + + + + + + + + + + + + +
    Name 
    ${f:h(c.name)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${categoryPager.currentPageNumber}/${categoryPager.allPageCount} (${categoryPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,181 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    Confirmation of Task Info
    Basic + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Title${f:h(nameForTodo)}
    Description${f:br(f:nbsp(f:h(descriptionForTodo)))}
    Priority +Blocker +Critical +Major +Minor +Trivial + + +
    Status +Working +Completed + +
    Start Date + + ${f:h(y)} + +---- +/ + + ${f:h(m)} + +-- +/ + + ${f:h(d)} + +-- + + + + +
    End Date + + ${f:h(y)} + +---- +/ + + ${f:h(m)} + +-- +/ + + ${f:h(d)} + +-- + + + +
    +
    Assigned + + + + + + + + + + + + + + + +
    Category + + ${f:h(c.name)} + +---- + +
    Status +Working +Completed + +
    Memo${f:br(f:nbsp(f:h(memo)))}
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,168 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + +
    Edit Task Info
    Basic + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Title
    Description
    Priority + + Blocker + Critical + Major + Minor + Trivial + +
    Status +Working +Completed + +
    Start Date + + + + ${f:h(y)} + + +/ + + + + ${f:h(m)} + + +/ + + + + ${f:h(d)} + + +
    End Date + + + + ${f:h(y)} + + +/ + + + + ${f:h(m)} + + +/ + + + + ${f:h(d)} + + +
    +
    Assigned + + + + + + + + + + + + + + + +
    Category + + + + ${f:h(c.name)} + + +
    Status + + Working + Completed + +
    Memo
    +
    + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/error.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,99 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Task +
    + + + + + + + + + + + + + + + + + + + + + +
    PriNameCreated ByDue Date 
    +Blocker +Critical +Major +Minor +Trivial + ${f:h(t.todo.name)}${f:h(t.todo.createdByFromUserInfo)} + + + + + Edit + +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${todoPager.currentPageNumber}/${todoPager.allPageCount} (${todoPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/web.xml (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-10 11:23:25 UTC (rev 1322) @@ -0,0 +1,168 @@ + + + + ToDoList + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + encodingfilter + /* + + + portletRequestFilter + /* + INCLUDE + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + routingfilter + /* + REQUEST + + + portletRoutingfilter + /* + INCLUDE + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + 1 + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + s2container + /s2container + + + + index.html + index.htm + index.jsp + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Mon Nov 10 20:28:11 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 10 Nov 2008 20:28:11 +0900 Subject: [pal-cvs 3588] [1323] removed log4j.properties Message-ID: <1226316491.468407.17112.nullmailer@users.sourceforge.jp> Revision: 1323 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1323 Author: shinsuke Date: 2008-11-10 20:28:11 +0900 (Mon, 10 Nov 2008) Log Message: ----------- removed log4j.properties Removed Paths: ------------- todolist/trunk/src/main/resources/log4j.properties -------------- next part -------------- Deleted: todolist/trunk/src/main/resources/log4j.properties =================================================================== --- todolist/trunk/src/main/resources/log4j.properties 2008-11-10 11:23:25 UTC (rev 1322) +++ todolist/trunk/src/main/resources/log4j.properties 2008-11-10 11:28:11 UTC (rev 1323) @@ -1,9 +0,0 @@ -log4j.rootCategory=DEBUG, todolist - -log4j.appender.todolist=org.apache.log4j.RollingFileAppender -log4j.appender.todolist.MaxFileSize=100MB -log4j.appender.todolist.MaxBackupIndex=5 -log4j.appender.todolist.File=/tmp/todolist.out -log4j.appender.todolist.Append=false -log4j.appender.todolist.layout=org.apache.log4j.PatternLayout -log4j.appender.todolist.layout.ConversionPattern=%d{yyyy.MM.dd,HH:mm:ss,SSS},%F:%L,%p,%m%n From svnnotify ¡÷ sourceforge.jp Tue Nov 11 11:08:17 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 11:08:17 +0900 Subject: [pal-cvs 3589] [1324] add/remove users, display categories, and fixed bugs. Message-ID: <1226369297.455642.2894.nullmailer@users.sourceforge.jp> Revision: 1324 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1324 Author: shinsuke Date: 2008-11-11 11:08:17 +0900 (Tue, 11 Nov 2008) Log Message: ----------- add/remove users, display categories, and fixed bugs. Modified Paths: -------------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java todolist/trunk/src/main/resources/application.properties todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp Added Paths: ----------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/ todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp -------------- next part -------------- Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -100,7 +100,7 @@ return "edit.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{groupId}") + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") public String confirmpage() { if (categoryForm.mode != CommonConstants.CONFIRM_MODE) { throw new ActionMessagesException("errors.invalid.mode", @@ -128,7 +128,7 @@ return "edit.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{groupId}") + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") public String editpage() { if (categoryForm.mode != CommonConstants.EDIT_MODE) { throw new ActionMessagesException( @@ -161,7 +161,7 @@ return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{groupId}") + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") public String deletepage() { if (categoryForm.mode != CommonConstants.DELETE_MODE) { throw new ActionMessagesException("errors.invalid.mode", Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -38,7 +38,7 @@ // for list - public List todoItems; + public List todoMappingItems; // for edit/confirm/delete @@ -60,7 +60,7 @@ protected String displayList() { // page navi String userId = ToDoListUtil.getUserId(request); - todoItems = todoService.getTodoMappingList(todoPager, userId); + todoMappingItems = todoService.getTodoMappingList(todoPager, userId); // restore from pager // todoForm.todoname = todoPager.getGroupInfoname(); @@ -97,6 +97,22 @@ } @Execute(validator = false, input = "error.jsp") + public String allcategory() { + // page navi + todoPager.setCategoryId(null); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "selectcategory/{categoryId}") + public String selectcategory() { + // page navi + todoPager.setCategoryId(Long.parseLong(todoForm.categoryId)); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") public String back() { // reset edit page loadListPageParameters(); @@ -106,6 +122,8 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { + todoMappingItems = todoService.getTodoMappingList(Long + .parseLong(todoForm.idForTodo), null); return "edit.jsp"; } @@ -281,8 +299,8 @@ @Execute(validator = false, input = "error.jsp") public String delete() { try { - todoService.disable(Long.parseLong(todoForm.idForTodo), request - .getRemoteUser()); + String userId = ToDoListUtil.getUserId(request); + todoService.disable(Long.parseLong(todoForm.idForTodo), userId); SAStrutsUtil.addMessage(request, "success.delete_todo"); // reset edit page @@ -298,9 +316,9 @@ @Execute(validator = false, input = "error.jsp") public String deletemapping() { try { - todoService.disableMapping(Long.parseLong(todoForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_todo"); + String userId = ToDoListUtil.getUserId(request); + todoService.disableMapping(Long.parseLong(todoForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo_mapping"); // reset edit page loadListPageParameters(); @@ -308,21 +326,40 @@ return displayList(); } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_delete_todo"); + throw new ActionMessagesException( + "errors.failed_to_delete_todo_mapping"); } } + @Execute(validator = false, input = "error.jsp", urlPattern = "removemapping/{id}") + public String removemapping() { + try { + String userId = ToDoListUtil.getUserId(request); + todoService.disableMapping(Long.parseLong(todoForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo_mapping"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_todo_mapping"); + } + } + private void loadTodoMapping() { String userId = ToDoListUtil.getUserId(request); - TodoMapping todo = todoService.getTodoMapping(Long + TodoMapping todoMapping = todoService.getTodoMapping(Long .parseLong(todoForm.id), userId); - if (todo == null) { + if (todoMapping == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_todo", new Object[] { todoForm.id }); } - todoDxo.convertFromTodoMappingToForm(todo, todoForm); - + todoDxo.convertFromTodoMappingToForm(todoMapping, todoForm); + todoMappingItems = todoMapping.getTodo().getTodoMappingList(); } private Todo createTodo() { Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,208 @@ +package jp.sf.pal.todolist.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.form.user.UserInfoForm; +import jp.sf.pal.todolist.pager.UserInfoPager; +import jp.sf.pal.todolist.service.TodoService; +import jp.sf.pal.todolist.service.UserInfoService; +import jp.sf.pal.todolist.util.ToDoListUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class UserInfoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(UserInfoAction.class); + + // for list + + public List userInfoItems; + + // for edit/confirm/delete + + @ActionForm + private UserInfoForm userInfoForm; + + private UserInfoService userInfoService; + + private TodoService todoService; + + private UserInfoPager userInfoPager; + + private PagerDxo pagerDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + userInfoItems = userInfoService.getUserInfoList(userInfoPager); + + // restore from pager + // userInfoForm.userInfoname = userInfoPager.getUserInfoname(); + + return "index.jsp"; + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "index/{todoId}/{todoMappingId}") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "list/{todoId}/{todoMappingId}/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(userInfoForm, userInfoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // userInfoPager.setUserInfoname(userInfoForm.userInfoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + userInfoPager.clear(); + + return displayList(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "adduser/{todoId}/{todoMappingId}/{userId}") + public String adduser() { + TodoMapping todoMapping = createTodoMapping(); + try { + + todoService.store(todoMapping); + + SAStrutsUtil.addMessage(request, "success.add_userInfo_to_task"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_add_userInfo_to_task"); + } + } + + private TodoMapping createTodoMapping() { + Long id = Long.parseLong(userInfoForm.todoId); + Todo todo = todoService.getTodo(id, null); + if (todo == null) { + throw new ActionMessagesException("errors.could_not_find_todo"); + } + + for (TodoMapping tm : todo.getTodoMappingList()) { + if (tm.getUserId().equals(userInfoForm.userId)) { + throw new ActionMessagesException( + "errors.user_already_exists_in_task"); + } + } + + UserInfo userInfo = createUserInfo(); + + String userId = ToDoListUtil.getUserId(request); + + TodoMapping todoMapping = new TodoMapping(); + todoMapping.setStatus(ToDoListConstants.WORKING); + todoMapping.setTodoId(id); + todoMapping.setUserId(userInfo.getUserId()); + todoMapping.setCreatedBy(userId); + todoMapping.setUpdatedBy(userId); + + return todoMapping; + } + + private UserInfo createUserInfo() { + UserInfo userInfo; + userInfo = userInfoService.getUserInfo(userInfoForm.userId); + if (userInfo == null) { + throw new ActionMessagesException("errors.could_not_find_userInfo"); + } + + return userInfo; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public UserInfoForm getUserInfoForm() { + return userInfoForm; + } + + public void setUserInfoForm(UserInfoForm userInfoForm) { + this.userInfoForm = userInfoForm; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public UserInfoPager getUserInfoPager() { + return userInfoPager; + } + + public void setUserInfoPager(UserInfoPager userInfoPager) { + this.userInfoPager = userInfoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public TodoService getTodoService() { + return todoService; + } + + public void setTodoService(TodoService todoService) { + this.todoService = todoService; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -2,6 +2,8 @@ import jp.sf.pal.todolist.ToDoListConstants; +import org.apache.commons.lang.StringUtils; + /** * The entity of TODO_MAPPING. *

    @@ -26,4 +28,29 @@ setUserId(userId); setStatus(ToDoListConstants.WORKING); } + + public String getUserIdFromUserInfo() { + StringBuilder buf = new StringBuilder(); + if (getUserInfo() != null) { + // TODO i18n name order + if (getUserInfo().getFamilyName() != null) { + buf.append(getUserInfo().getFamilyName()); + } + if (getUserInfo().getFamilyName() != null + && getUserInfo().getGivenName() != null) { + buf.append(" "); + } + if (getUserInfo().getGivenName() != null) { + buf.append(getUserInfo().getGivenName()); + } + + if (StringUtils.isEmpty(buf.toString())) { + buf.append(getUserId()); + } + } else { + buf.append(getUserId()); + } + + return buf.toString(); + } } Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -33,6 +33,7 @@ @Maxbytelength(maxbytelength = 255) public String userId; + @Required(target = "selectcategory") @LongType public String categoryId; Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,36 @@ +package jp.sf.pal.todolist.form.user; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class UserInfoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -8519727811159440695L; + + @Required(target = "adduser") + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Required + @LongType + public String todoId; + + @Required + @LongType + public String todoMappingId; + + @IntegerType + public String pageNumber; + + public void initialize() { + userId = null; + todoId = null; + todoMappingId = null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -6,16 +6,27 @@ private static final long serialVersionUID = 208357552837282806L; + private Long categoryId; + public TodoPager() { - + categoryId = null; } public void clear() { super.clear(); + categoryId = null; } protected int getDefaultPageSize() { return 50; } + public Long getCategoryId() { + return categoryId; + } + + public void setCategoryId(Long categoryId) { + this.categoryId = categoryId; + } + } Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.pager; + +import jp.sf.pal.todolist.common.pager.DefaultPager; + +public class UserInfoPager extends DefaultPager { + + private static final long serialVersionUID = -1518841728377756219L; + + public UserInfoPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -128,7 +128,7 @@ TodoCategoryCB cb = new TodoCategoryCB(); cb.query().setId_Equal(id); - cb.query().setDeletedBy_IsNotNull(); + cb.query().setDeletedBy_IsNull(); TodoCategory category = todoCategoryBhv.selectEntity(cb); // TODO throw an exception Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -68,6 +68,9 @@ if (userId != null) { cb.query().setUserId_Equal(userId); } + if (todoPager.getCategoryId() != null) { + cb.query().setCategoryId_Equal(todoPager.getCategoryId()); + } cb.query().queryTodo().addOrderBy_EndDate_Asc(); PagingResultBean todoMappingList = todoMappingBhv @@ -83,6 +86,24 @@ return todoMappingList; } + public List getTodoMappingList(Long todoId, String userId) { + + TodoMappingCB cb = new TodoMappingCB(); + + // setup + cb.setupSelect_UserInfo(); + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + cb.query().setTodoId_Equal(todoId); + cb.query().queryTodo().addOrderBy_EndDate_Asc(); + + return todoMappingBhv.selectList(cb); + + } + public TodoMapping getTodoMapping(Long id, String userId) { TodoMappingCB cb = new TodoMappingCB(); @@ -103,6 +124,8 @@ // bind mapping TodoMappingCB cb2 = new TodoMappingCB(); + cb2.setupSelect_UserInfo(); + cb2.query().setDeletedBy_IsNull(); cb2.query().setTodoId_Equal(todoMapping.getTodoId()); todoMapping.getTodo() .setTodoMappingList(todoMappingBhv.selectList(cb2)); @@ -110,6 +133,27 @@ return todoMapping; } + public Todo getTodo(Long id, String userId) { + TodoCB cb = new TodoCB(); + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + if (userId != null) { + cb.query().setCreatedBy_Equal(userId); + } + Todo todo = todoBhv.selectEntity(cb); + if (todo == null) { + return null; + } + + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNull(); + cb2.query().setTodoId_Equal(id); + todo.setTodoMappingList(todoMappingBhv.selectList(cb2)); + return todo; + } + public void store(Todo todo) { Timestamp now = new Timestamp(System.currentTimeMillis()); todo.setUpdatedTime(now); @@ -146,34 +190,37 @@ initUserInfo(todoMapping.getUserId()); + Todo todo; if (todoMapping.getCreatedTime() == null) { // create todoMapping.setCreatedTime(now); todoMappingBhv.insert(todoMapping); + + todo = getTodo(todoMapping.getTodoId(), null); } else { // update todoMappingBhv.update(todoMapping); + todo = todoMapping.getTodo(); + } - // check TodoMapping status - TodoMappingCB cb2 = new TodoMappingCB(); - cb2.query().setDeletedBy_IsNotNull(); - cb2.query().setTodoId_Equal(todoMapping.getTodoId()); - boolean finished = true; - for (TodoMapping tm : todoMappingBhv.selectList(cb2)) { - if (ToDoListConstants.WORKING == tm.getStatus()) { - finished = false; - } + // check TodoMapping status + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNull(); + cb2.query().setTodoId_Equal(todoMapping.getTodoId()); + boolean finished = true; + for (TodoMapping tm : todoMappingBhv.selectList(cb2)) { + if (ToDoListConstants.WORKING == tm.getStatus()) { + finished = false; } - Todo todo = todoMapping.getTodo(); - if (finished && todo.getStatus() == ToDoListConstants.WORKING) { - todo.setStatus(ToDoListConstants.COMPLETED); - todoBhv.update(todo); - } else if (!finished - && todo.getStatus() == ToDoListConstants.COMPLETED) { - todo.setStatus(ToDoListConstants.WORKING); - todoBhv.update(todo); - } } + + if (finished && todo.getStatus() == ToDoListConstants.WORKING) { + todo.setStatus(ToDoListConstants.COMPLETED); + todoBhv.update(todo); + } else if (!finished && todo.getStatus() == ToDoListConstants.COMPLETED) { + todo.setStatus(ToDoListConstants.WORKING); + todoBhv.update(todo); + } } public void disable(Long id, String name) { @@ -191,7 +238,7 @@ // todomapping TodoMappingCB cb2 = new TodoMappingCB(); - cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setDeletedBy_IsNull(); cb2.query().setTodoId_Equal(id); for (TodoMapping todoMapping : todoMappingBhv.selectList(cb2)) { todoMapping.setDeletedBy(name); @@ -219,17 +266,10 @@ // check if todo has mapping Todo todo = todoMapping.getTodo(); TodoMappingCB cb2 = new TodoMappingCB(); - cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setDeletedBy_IsNull(); cb2.query().setTodoId_Equal(todo.getId()); List todoMappingList = todoMappingBhv.selectList(cb2); - boolean delete = true; - for (TodoMapping tm : todoMappingList) { - if (tm.getDeletedBy() == null) { - delete = false; - break; - } - } - if (delete) { + if (todoMappingList.isEmpty()) { todo.setDeletedBy(name); todo.setDeletedTime(new Timestamp(new Date().getTime())); todoBhv.update(todo); Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,77 @@ +package jp.sf.pal.todolist.service; + +import java.io.Serializable; +import java.util.List; + +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.PagingResultBeanWrapper; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.UserInfoBhv; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.pager.UserInfoPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class UserInfoService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient UserInfoBhv userInfoBhv; + + private PagerDxo pagerDxo; + + public List getUserInfoList(UserInfoPager userInfoPager) { + + HotdeployUtil.rebuildValue(userInfoPager); + + UserInfoCB cb = new UserInfoCB(); + + cb.fetchFirst(userInfoPager.getPageSize()); + cb.fetchPage(userInfoPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_UserId_Asc(); + + PagingResultBean userInfoList = userInfoBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(userInfoList), + userInfoPager); + userInfoList.setPageRangeSize(5); + userInfoPager.setPageNumberList(userInfoList.pageRange() + .createPageNumberList()); + + return userInfoList; + } + + public UserInfo getUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setUserId_Equal(userId); + return userInfoBhv.selectEntity(cb); + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv messageBhv) { + this.userInfoBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/resources/application.properties =================================================================== --- todolist/trunk/src/main/resources/application.properties 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/resources/application.properties 2008-11-11 02:08:17 UTC (rev 1324) @@ -28,12 +28,14 @@ success.create_userInfo=Created a user information. success.update_userInfo=Updated the user information. success.delete_userInfo=Deleted the user information. -success.create_roleInfo=Created a role information. -success.update_roleInfo=Updated the role information. -success.delete_roleInfo=Deleted the role information. -success.create_groupInfo=Created a group information. -success.update_groupInfo=Updated the group information. -success.delete_groupInfo=Deleted the group information. +success.create_todo=Created a task. +success.update_todo=Updated the task. +success.delete_todo=Deleted the task. +success.create_category=Created a category information. +success.update_category=Updated the category information. +success.delete_category=Deleted the category information. +success.add_userInfo_to_task=Added the user to the task. +success.delete_todo_mapping=Removed the user from this task. errors.failed_to_update_config=Failed to update the configuration. errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). @@ -41,12 +43,15 @@ errors.failed_to_update_userInfo=Failed to update the user information. errors.failed_to_delete_userInfo=Failed to delete the user information. errors.could_not_find_userInfo=Could not find the user information({0}). -errors.failed_to_create_roleInfo=Failed to create a new role information. -errors.failed_to_update_roleInfo=Failed to update the role information. -errors.failed_to_delete_roleInfo=Failed to delete the role information. -errors.could_not_find_roleInfo=Could not find the role information({0}). -errors.failed_to_create_groupInfo=Failed to create a new group information. -errors.failed_to_update_groupInfo=Failed to update the group information. -errors.failed_to_delete_groupInfo=Failed to delete the group information. -errors.could_not_find_groupInfo=Could not find the group information({0}). - +errors.failed_to_create_todo=Failed to create a new task. +errors.failed_to_update_todo=Failed to update the task. +errors.failed_to_delete_todo=Failed to delete the task. +errors.could_not_find_todo=Could not find the task({0}). +errors.failed_to_create_category=Failed to create a new category information. +errors.failed_to_update_category=Failed to update the category information. +errors.failed_to_delete_category=Failed to delete the category information. +errors.could_not_find_category=Could not find the category information({0}). +errors.failed_to_add_userInfo_to_task=Failed to add the user to the task. +errors.could_not_find_userInfo=Could not find the user information({0}). +errors.failed_to_delete_todo_mapping=Failed to remove the user. +errors.user_already_exists_in_task=The user already exists in this task. Modified: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -112,7 +112,7 @@

    AssignedPersonal @@ -142,7 +142,31 @@
    Assigned + + + + + + + + + + + + + +
    NameStatus
    ${f:h(t.userIdFromUserInfo)} +Working +Completed +
    +
    AssignedPersonal @@ -149,6 +149,33 @@
    Assigned + + + + + + + + + + + + + + + +
    NameStatus 
    ${f:h(t.userIdFromUserInfo)} +Working +Completed + Remove
    +
    +Add User to This Task +
    +
    + + + + + + + + + + +
    Category
    +
      +
    • All
    • + +
    • ${f:h(c.name)}
    • +
      +
    +
    + + +
    Create New Task
    @@ -35,7 +57,7 @@
    Blocker @@ -46,7 +68,7 @@ ${f:h(t.todo.name)} ${f:h(t.todo.createdByFromUserInfo)} + @@ -94,6 +116,6 @@ - +
    Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + + +
    +Back +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,83 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + +
    +
    +Back to Task Detail +
    + + + + + + + + + + + + + + + + + + + +
    User IDNameEmail 
    ${f:h(u.userId)}${f:h(u.familyName)} ${f:h(u.givenName)}${f:h(u.email)} + Add +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${userInfoPager.currentPageNumber}/${userInfoPager.allPageCount} (${userInfoPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Tue Nov 11 12:23:03 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 12:23:03 +0900 Subject: [pal-cvs 3590] [1325] added admin tool. Message-ID: <1226373783.312202.13836.nullmailer@users.sourceforge.jp> Revision: 1325 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1325 Author: shinsuke Date: 2008-11-11 12:23:02 +0900 (Tue, 11 Nov 2008) Log Message: ----------- added admin tool. Modified Paths: -------------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java todolist/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/CategoryForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/TodoForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/UserInfoForm.java todolist/trunk/src/main/webapp/WEB-INF/view/admin/ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/ todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/index.jsp -------------- next part -------------- Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,335 @@ +package jp.sf.pal.todolist.action.admin; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.common.CommonConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.dxo.CategoryDxo; +import jp.sf.pal.todolist.form.admin.CategoryForm; +import jp.sf.pal.todolist.pager.CategoryPager; +import jp.sf.pal.todolist.service.CategoryService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CategoryAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CategoryAction.class); + + // for list + + public List categoryItems; + + // for edit/confirm/delete + + @ActionForm + private CategoryForm categoryForm; + + private CategoryService categoryService; + + private CategoryPager categoryPager; + + private PagerDxo pagerDxo; + + private CategoryDxo categoryDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + categoryItems = categoryService + .getTodoCategoryList(categoryPager, null); + + // restore from pager + // categoryForm.categoryname = categoryPager.getCategoryname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(categoryForm, categoryPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // categoryPager.setCategoryname(categoryForm.categoryname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + categoryPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (categoryForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + categoryForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + categoryForm.initialize(); + categoryForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (categoryForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, categoryForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + categoryForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (categoryForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + categoryForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + categoryForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + TodoCategory todoCategory = createTodoCategory(); + categoryService.store(todoCategory); + SAStrutsUtil.addMessage(request, "success.create_category"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_category"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + TodoCategory todoCategory = createTodoCategory(); + categoryService.store(todoCategory); + SAStrutsUtil.addMessage(request, "success.update_category"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + categoryService.disable(Long.parseLong(categoryForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_category"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_category"); + } + } + + private void loadCategory() { + TodoCategory todoCategory = categoryService.getTodoCategory(Long + .parseLong(categoryForm.id), null); + if (todoCategory == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + categoryDxo.convertFromCategoryToForm(todoCategory, categoryForm); + + } + + private TodoCategory createTodoCategory() { + TodoCategory todoCategory; + if (categoryForm.mode == CommonConstants.EDIT_MODE) { + todoCategory = categoryService.getTodoCategory(Long + .parseLong(categoryForm.id), null); + String userId = request.getRemoteUser(); + todoCategory.setUpdatedBy(userId); + } else { + String userId = request.getRemoteUser(); + todoCategory = new TodoCategory(); + todoCategory.setUserId(userId); + todoCategory.setUpdatedBy(userId); + todoCategory.setCreatedBy(userId); + } + categoryDxo.convertFromFormToCategory(categoryForm, todoCategory); + + return todoCategory; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CategoryForm getCategoryForm() { + return categoryForm; + } + + public void setCategoryForm(CategoryForm categoryForm) { + this.categoryForm = categoryForm; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public CategoryPager getCategoryPager() { + return categoryPager; + } + + public void setCategoryPager(CategoryPager categoryPager) { + this.categoryPager = categoryPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CategoryDxo getCategoryDxo() { + return categoryDxo; + } + + public void setCategoryDxo(CategoryDxo categoryDxo) { + this.categoryDxo = categoryDxo; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,534 @@ +package jp.sf.pal.todolist.action.admin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.CommonConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.DateUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoCategory; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.dxo.TodoDxo; +import jp.sf.pal.todolist.form.admin.TodoForm; +import jp.sf.pal.todolist.pager.TodoPager; +import jp.sf.pal.todolist.service.CategoryService; +import jp.sf.pal.todolist.service.TodoService; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class TodoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(TodoAction.class); + + // for list + + public List todoMappingItems; + + // for edit/confirm/delete + + @ActionForm + private TodoForm todoForm; + + private TodoService todoService; + + private CategoryService categoryService; + + private TodoPager todoPager; + + private PagerDxo pagerDxo; + + private TodoDxo todoDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + todoMappingItems = todoService.getTodoMappingList(todoPager, null); + + // restore from pager + // todoForm.todoname = todoPager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(todoForm, todoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // todoPager.setGroupInfoname(todoForm.todoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + todoPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String allcategory() { + // page navi + todoPager.setCategoryId(null); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "selectcategory/{categoryId}") + public String selectcategory() { + // page navi + todoPager.setCategoryId(Long.parseLong(todoForm.categoryId)); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + todoMappingItems = todoService.getTodoMappingList(Long + .parseLong(todoForm.idForTodo), null); + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (todoForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + todoForm.initialize(); + todoForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (todoForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + todoForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (todoForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletemappingpage/{mode}/{id}") + public String deletemappingpage() { + if (todoForm.mode != ToDoListConstants.DELETE_MAPPING_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, todoForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + todoForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletemappingpagefromconfirm() { + todoForm.mode = ToDoListConstants.DELETE_MAPPING_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadTodoMapping(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Todo todo = createTodo(); + todoService.store(todo); + SAStrutsUtil.addMessage(request, "success.create_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_todo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Todo todo = createTodo(); + todoService.store(todo); + + TodoMapping todoMapping = createTodoMapping(); + todoService.store(todoMapping); + + SAStrutsUtil.addMessage(request, "success.update_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_todo"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String updatemapping() { + try { + TodoMapping todoMapping = createTodoMapping(); + todoService.store(todoMapping); + SAStrutsUtil.addMessage(request, "success.update_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_todo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + String userId = request.getRemoteUser(); + todoService.disable(Long.parseLong(todoForm.idForTodo), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_todo"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String deletemapping() { + try { + String userId = request.getRemoteUser(); + todoService.disableMapping(Long.parseLong(todoForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo_mapping"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_todo_mapping"); + } + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "removemapping/{id}") + public String removemapping() { + try { + String userId = request.getRemoteUser(); + todoService.disableMapping(Long.parseLong(todoForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo_mapping"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_todo_mapping"); + } + } + + private void loadTodoMapping() { + TodoMapping todoMapping = todoService.getTodoMapping(Long + .parseLong(todoForm.id), null); + if (todoMapping == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_todo", + new Object[] { todoForm.id }); + } + todoDxo.convertFromTodoMappingToForm(todoMapping, todoForm); + todoMappingItems = todoMapping.getTodo().getTodoMappingList(); + } + + private Todo createTodo() { + Todo todo; + if (todoForm.mode == CommonConstants.EDIT_MODE) { + TodoMapping todoMapping = todoService.getTodoMapping(Long + .parseLong(todoForm.id), null); + if (todoMapping == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_todo", + new Object[] { todoForm.id }); + } + todo = todoMapping.getTodo(); + String userId = request.getRemoteUser(); + todo.setUpdatedBy(userId); + } else { + String userId = request.getRemoteUser(); + todo = new Todo(); + todo.setUpdatedBy(userId); + todo.setCreatedBy(userId); + + List todoMappingList = new ArrayList(); + todoMappingList.add(new TodoMapping(userId)); + todo.setTodoMappingList(todoMappingList); + } + todoDxo.convertFromFormToTodo(todoForm, todo); + + return todo; + } + + private TodoMapping createTodoMapping() { + TodoMapping todoMapping; + todoMapping = todoService.getTodoMapping(Long.parseLong(todoForm.id), + null); + String userId = request.getRemoteUser(); + todoMapping.setUpdatedBy(userId); + todoDxo.convertFromFormToTodoMapping(todoForm, todoMapping); + + if (StringUtils.isEmpty(todoForm.categoryId)) { + todoMapping.setCategoryId(null); + } + + return todoMapping; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getYearItems() { + int year = DateUtil.getYear(new Date()) + 1900; + List list = new ArrayList(); + for (int i = year - 5; i < year + 5; i++) { + list.add(String.valueOf(i)); + } + return list; + } + + public List getMonthItems() { + List list = new ArrayList(); + for (int i = 1; i < 13; i++) { + list.add(String.valueOf(i)); + } + return list; + } + + public List getDateItems() { + List list = new ArrayList(); + for (int i = 1; i < 32; i++) { + list.add(String.valueOf(i)); + } + return list; + } + + public List getCategoryItems() { + return categoryService.getTodoCategoryList(null); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public TodoForm getGroupInfoForm() { + return todoForm; + } + + public void setGroupInfoForm(TodoForm todoForm) { + this.todoForm = todoForm; + } + + public TodoService getGroupInfoService() { + return todoService; + } + + public void setGroupInfoService(TodoService todoService) { + this.todoService = todoService; + } + + public TodoPager getGroupInfoPager() { + return todoPager; + } + + public void setGroupInfoPager(TodoPager todoPager) { + this.todoPager = todoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public TodoDxo getGroupInfoDxo() { + return todoDxo; + } + + public void setGroupInfoDxo(TodoDxo todoDxo) { + this.todoDxo = todoDxo; + } + + public TodoForm getTodoForm() { + return todoForm; + } + + public void setTodoForm(TodoForm todoForm) { + this.todoForm = todoForm; + } + + public TodoService getTodoService() { + return todoService; + } + + public void setTodoService(TodoService todoService) { + this.todoService = todoService; + } + + public TodoPager getTodoPager() { + return todoPager; + } + + public void setTodoPager(TodoPager todoPager) { + this.todoPager = todoPager; + } + + public TodoDxo getTodoDxo() { + return todoDxo; + } + + public void setTodoDxo(TodoDxo todoDxo) { + this.todoDxo = todoDxo; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,207 @@ +package jp.sf.pal.todolist.action.admin; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.form.admin.UserInfoForm; +import jp.sf.pal.todolist.pager.UserInfoPager; +import jp.sf.pal.todolist.service.TodoService; +import jp.sf.pal.todolist.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class UserInfoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(UserInfoAction.class); + + // for list + + public List userInfoItems; + + // for edit/confirm/delete + + @ActionForm + private UserInfoForm userInfoForm; + + private UserInfoService userInfoService; + + private TodoService todoService; + + private UserInfoPager userInfoPager; + + private PagerDxo pagerDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + userInfoItems = userInfoService.getUserInfoList(userInfoPager); + + // restore from pager + // userInfoForm.userInfoname = userInfoPager.getUserInfoname(); + + return "index.jsp"; + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "index/{todoId}/{todoMappingId}") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "list/{todoId}/{todoMappingId}/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(userInfoForm, userInfoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // userInfoPager.setUserInfoname(userInfoForm.userInfoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + userInfoPager.clear(); + + return displayList(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "adduser/{todoId}/{todoMappingId}/{userId}") + public String adduser() { + TodoMapping todoMapping = createTodoMapping(); + try { + + todoService.store(todoMapping); + + SAStrutsUtil.addMessage(request, "success.add_userInfo_to_task"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_add_userInfo_to_task"); + } + } + + private TodoMapping createTodoMapping() { + Long id = Long.parseLong(userInfoForm.todoId); + Todo todo = todoService.getTodo(id, null); + if (todo == null) { + throw new ActionMessagesException("errors.could_not_find_todo"); + } + + for (TodoMapping tm : todo.getTodoMappingList()) { + if (tm.getUserId().equals(userInfoForm.userId)) { + throw new ActionMessagesException( + "errors.user_already_exists_in_task"); + } + } + + UserInfo userInfo = createUserInfo(); + + String userId = request.getRemoteUser(); + + TodoMapping todoMapping = new TodoMapping(); + todoMapping.setStatus(ToDoListConstants.WORKING); + todoMapping.setTodoId(id); + todoMapping.setUserId(userInfo.getUserId()); + todoMapping.setCreatedBy(userId); + todoMapping.setUpdatedBy(userId); + + return todoMapping; + } + + private UserInfo createUserInfo() { + UserInfo userInfo; + userInfo = userInfoService.getUserInfo(userInfoForm.userId); + if (userInfo == null) { + throw new ActionMessagesException("errors.could_not_find_userInfo"); + } + + return userInfo; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public UserInfoForm getUserInfoForm() { + return userInfoForm; + } + + public void setUserInfoForm(UserInfoForm userInfoForm) { + this.userInfoForm = userInfoForm; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public UserInfoPager getUserInfoPager() { + return userInfoPager; + } + + public void setUserInfoPager(UserInfoPager userInfoPager) { + this.userInfoPager = userInfoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public TodoService getTodoService() { + return todoService; + } + + public void setTodoService(TodoService todoService) { + this.todoService = todoService; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-11 02:08:17 UTC (rev 1324) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -262,7 +262,7 @@ if (categoryForm.mode == CommonConstants.EDIT_MODE) { todoCategory = categoryService.getTodoCategory(Long .parseLong(categoryForm.id), userId); - todoCategory.setUpdatedBy(request.getRemoteUser()); + todoCategory.setUpdatedBy(userId); } else { todoCategory = new TodoCategory(); todoCategory.setUserId(userId); Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java 2008-11-11 02:08:17 UTC (rev 1324) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoCategory.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -1,5 +1,7 @@ package jp.sf.pal.todolist.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of TODO_CATEGORY. *

    @@ -14,4 +16,29 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getUserIdFromUserInfo() { + StringBuilder buf = new StringBuilder(); + if (getUserInfo() != null) { + // TODO i18n name order + if (getUserInfo().getFamilyName() != null) { + buf.append(getUserInfo().getFamilyName()); + } + if (getUserInfo().getFamilyName() != null + && getUserInfo().getGivenName() != null) { + buf.append(" "); + } + if (getUserInfo().getGivenName() != null) { + buf.append(getUserInfo().getGivenName()); + } + + if (StringUtils.isEmpty(buf.toString())) { + buf.append(getUserId()); + } + } else { + buf.append(getUserId()); + } + + return buf.toString(); + } } Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java 2008-11-11 02:08:17 UTC (rev 1324) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/CategoryDxo.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -45,4 +45,37 @@ public void convertFromFormToCategory(CategoryForm form, TodoCategory todoCategory); + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", name : name" // + + ", userId : userId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromCategoryToForm(TodoCategory todoCategory, + jp.sf.pal.todolist.form.admin.CategoryForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "name : name" // + // + ", userId : userId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToCategory( + jp.sf.pal.todolist.form.admin.CategoryForm form, + TodoCategory todoCategory); } Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java 2008-11-11 02:08:17 UTC (rev 1324) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/dxo/TodoDxo.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -86,4 +86,77 @@ ) public void convertFromFormToTodo(TodoForm form, Todo todo); + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", status : status" // + + ", memo : memo" // + + ", todoId : todoId" // + + ", userId : userId" // + + ", categoryId : categoryId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", idForTodo : todo.id" // + + ", nameForTodo : todo.name" // + + ", descriptionForTodo : todo.description" // + + ", priorityForTodo : todo.priority" // + + ", statusForTodo : todo.status" // + + ", startDateForTodo : todo.startDate" // + + ", endDateForTodo : todo.endDate" // + + ", createdTimeForTodo : todo.createdTime" // + + ", createdByForTodo : todo.createdBy" // + + ", updatedTimeForTodo : todo.updatedTime" // + + ", updatedByForTodo : todo.updatedBy" // + + ", deletedTimeForTodo : todo.deletedTime" // + + ", deletedByForTodo : todo.deletedBy" // + // + ", versionnoForTodo : todo.versionno" // + ) + public void convertFromTodoMappingToForm(TodoMapping todoMapping, + jp.sf.pal.todolist.form.admin.TodoForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "status : status" // + + ", memo : memo" // + + ", todoId : todoId" // + + ", userId : userId" // + + ", categoryId : categoryId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToTodoMapping( + jp.sf.pal.todolist.form.admin.TodoForm form, TodoMapping todoMapping); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "id : idForTodo" // + + ", name : nameForTodo" // + + ", description : descriptionForTodo" // + + ", priority : priorityForTodo" // + + ", status : statusForTodo" // + + ", startDate : startDateForTodo" // + + ", endDate : endDateForTodo" // + // + ", createdTime : createdTimeForTodo" // + // + ", createdBy : createdByForTodo" // + // + ", updatedTime : updatedTimeForTodo" // + // + ", updatedBy : updatedByForTodo" // + // + ", deletedTime : deletedTimeForTodo" // + // + ", deletedBy : deletedByForTodo" // + // + ", versionno : versionnoForTodo" // + ) + public void convertFromFormToTodo( + jp.sf.pal.todolist.form.admin.TodoForm form, Todo todo); } Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/CategoryForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/CategoryForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/CategoryForm.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,63 @@ +package jp.sf.pal.todolist.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CategoryForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6690208299980988424L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 255) + public String userId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + name = null; + userId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/CategoryForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/TodoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/TodoForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/TodoForm.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,223 @@ +package jp.sf.pal.todolist.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class TodoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6934686701735296674L; + + @IntegerType + public int mode; + + @LongType + public String id; + + @IntegerType + public String status; + + @Maxbytelength(maxbytelength = 200) + public String memo; + + @LongType + public String todoId; + + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Required(target = "selectcategory") + @LongType + public String categoryId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Required(target = "update,delete") + @LongType + public String idForTodo; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String nameForTodo; + + @Maxbytelength(maxbytelength = 200) + public String descriptionForTodo; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String priorityForTodo; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String statusForTodo; + + // @DateType + // public String startDateForTodo; + // + // @DateType + // public String endDateForTodo; + + @DateType + public String createdTimeForTodo; + + @Maxbytelength(maxbytelength = 255) + public String createdByForTodo; + + @DateType + public String updatedTimeForTodo; + + @Maxbytelength(maxbytelength = 255) + public String updatedByForTodo; + + @DateType + public String deletedTimeForTodo; + + @Maxbytelength(maxbytelength = 255) + public String deletedByForTodo; + + @IntegerType + public String startDateYear; + + @IntegerType + public String startDateMonth; + + @IntegerType + public String startDateDate; + + @IntegerType + public String endDateYear; + + @IntegerType + public String endDateMonth; + + @IntegerType + public String endDateDate; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + status = "1"; + memo = null; + todoId = null; + userId = null; + categoryId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + idForTodo = null; + nameForTodo = null; + descriptionForTodo = null; + priorityForTodo = "3"; + statusForTodo = "1"; + // startDateForTodo = null; + // endDateForTodo = null; + createdTimeForTodo = null; + createdByForTodo = null; + updatedTimeForTodo = null; + updatedByForTodo = null; + deletedTimeForTodo = null; + deletedByForTodo = null; + } + + public void setStartDateForTodo(String value) { + if (value != null) { + String[] values = value.split(" ")[0].split("/"); + startDateYear = values[0]; + if (values.length > 1) { + startDateMonth = String.valueOf(Integer.parseInt(values[1])); + } + if (values.length > 2) { + startDateDate = String.valueOf(Integer.parseInt(values[2])); + } + } + } + + public String getStartDateForTodo() { + if (!StringUtils.isEmpty(startDateYear) + && !StringUtils.isEmpty(startDateMonth) + && !StringUtils.isEmpty(startDateDate)) { + StringBuilder buf = new StringBuilder(); + buf.append(startDateYear); + buf.append("/"); + int month = Integer.parseInt(startDateMonth); + if (month < 10) { + buf.append("0"); + } + buf.append(month); + buf.append("/"); + int date = Integer.parseInt(startDateDate); + if (date < 10) { + buf.append("0"); + } + buf.append(date); + buf.append(" 00:00:00"); + return buf.toString(); + } + return null; + } + + public void setEndDateForTodo(String value) { + if (value != null) { + String[] values = value.split(" ")[0].split("/"); + endDateYear = values[0]; + if (values.length > 1) { + endDateMonth = String.valueOf(Integer.parseInt(values[1])); + } + if (values.length > 2) { + endDateDate = String.valueOf(Integer.parseInt(values[2])); + } + } + } + + public String getEndDateForTodo() { + if (!StringUtils.isEmpty(endDateYear) + && !StringUtils.isEmpty(endDateMonth) + && !StringUtils.isEmpty(endDateDate)) { + StringBuilder buf = new StringBuilder(); + buf.append(endDateYear); + buf.append("/"); + int month = Integer.parseInt(endDateMonth); + if (month < 10) { + buf.append("0"); + } + buf.append(month); + buf.append("/"); + int date = Integer.parseInt(endDateDate); + if (date < 10) { + buf.append("0"); + } + buf.append(date); + buf.append(" 00:00:00"); + return buf.toString(); + } + return null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/TodoForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/UserInfoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/UserInfoForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/UserInfoForm.java 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,36 @@ +package jp.sf.pal.todolist.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class UserInfoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 8965243750361809346L; + + @Required(target = "adduser") + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Required + @LongType + public String todoId; + + @Required + @LongType + public String todoMappingId; + + @IntegerType + public String pageNumber; + + public void initialize() { + userId = null; + todoId = null; + todoMappingId = null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/admin/UserInfoForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-11 02:08:17 UTC (rev 1324) +++ todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-11 03:23:02 UTC (rev 1325) @@ -29,7 +29,7 @@ org.seasar.struts.portlet.SAStrutsPortlet viewPage - /userInfo/ + /admin/todo/ 0 Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,64 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +

    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + +
    Confirmation of Category Info
    Name${f:h(name)}
    + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,49 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + +
    Edit Category Info
    Name
    + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Category +
    + + + + + + + + + + + + + + + + + +
    NameOwner 
    ${f:h(c.name)}${f:h(c.userIdFromUserInfo)} + Edit + Delete +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${categoryPager.currentPageNumber}/${categoryPager.allPageCount} (${categoryPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,199 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Confirmation of Task Info
    Basic + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Title${f:h(nameForTodo)}
    Description${f:br(f:nbsp(f:h(descriptionForTodo)))}
    Priority +Blocker +Critical +Major +Minor +Trivial + + +
    Status +Working +Completed + +
    Start Date + + ${f:h(y)} + +---- +/ + + ${f:h(m)} + +-- +/ + + ${f:h(d)} + +-- + + + + +
    End Date + + ${f:h(y)} + +---- +/ + + ${f:h(m)} + +-- +/ + + ${f:h(d)} + +-- + + + +
    +
    Personal + + + + + + + + + + + + + + + +
    Category ID${f:h(categoryId)}
    Status +Working +Completed + +
    Memo${f:br(f:nbsp(f:h(memo)))}
    +
    Assigned + + + + + + + + + + + + + +
    NameStatus
    ${f:h(t.userIdFromUserInfo)} +Working +Completed +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,188 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Edit Task Info
    Basic + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Title
    Description
    Priority + + Blocker + Critical + Major + Minor + Trivial + +
    Status +Working +Completed + +
    Start Date + + + + ${f:h(y)} + + +/ + + + + ${f:h(m)} + + +/ + + + + ${f:h(d)} + + +
    End Date + + + + ${f:h(y)} + + +/ + + + + ${f:h(m)} + + +/ + + + + ${f:h(d)} + + +
    +
    Personal + + + + + + + + + + + + + + + +
    Category ID
    Status + + Working + Completed + +
    Memo
    +
    Assigned + + + + + + + + + + + + + + + +
    NameStatus 
    ${f:h(t.userIdFromUserInfo)} +Working +Completed + Remove
    +
    +Add User to This Task +
    +
    + + +
    +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + + +
    +Ìá¤ë +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,101 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + +
    +
    +Create New Task +
    + + + + + + + + + + + + + + + + + + + + + + + +
    PriNameAssignedCreated ByDue Date 
    +Blocker +Critical +Major +Minor +Trivial + ${f:h(t.todo.name)}${f:h(t.userIdFromUserInfo)}${f:h(t.todo.createdByFromUserInfo)} + + + + + Edit + +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${todoPager.currentPageNumber}/${todoPager.allPageCount} (${todoPager.allRecordCount}) + +
    +
    +
    +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/error.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + + +
    +Back +
    + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/index.jsp 2008-11-11 03:23:02 UTC (rev 1325) @@ -0,0 +1,83 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Tasks
    • +
    • +
    • Category
    • +
    • +
    +
    + + +
    + +
    +
    +Back to Task Detail +
    + + + + + + + + + + + + + + + + + + + +
    User IDNameEmail 
    ${f:h(u.userId)}${f:h(u.familyName)} ${f:h(u.givenName)}${f:h(u.email)} + Add +
    + +
    + + + Á°¤Ø + + + + + + + ${p} + + + ${p} + + + + + + + ¼¡¤Ø + + +
    +
    + + ${userInfoPager.currentPageNumber}/${userInfoPager.allPageCount} (${userInfoPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Tue Nov 11 15:28:27 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 15:28:27 +0900 Subject: [pal-cvs 3591] [1326] integrated userinfo, modified shared categories handling. Message-ID: <1226384907.667262.20622.nullmailer@users.sourceforge.jp> Revision: 1326 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1326 Author: shinsuke Date: 2008-11-11 15:28:27 +0900 (Tue, 11 Nov 2008) Log Message: ----------- integrated userinfo, modified shared categories handling. Modified Paths: -------------- bookmark/trunk/dbflute/_project.bat bookmark/trunk/dbflute/_project.sh bookmark/trunk/src/main/config/erd/bookmark.erd bookmark/trunk/src/main/config/sql/bookmark.ddl bookmark/trunk/src/main/config/sql/bookmark.dml bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/category/EditAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/link/ViewAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/AccessContext.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/DBFluteConfig.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/AbstractBehaviorReadable.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/load/LoadReferrerOption.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/setup/EntityListSetupper.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/AbstractConditionBean.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBean.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBeanContext.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ListResultBean.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/PagingResultBean.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ResultBeanBuilder.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingOption.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowResource.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowSetupper.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/AbstractSqlClause.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByClause.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByElement.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/AbstractDBMeta.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMeta.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMetaInstanceHandler.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/helper/token/line/impl/LineTokenImpl.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/CursorHandler.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoLatestSqlProvider.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataExtension.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/CategoryForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/LinkForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/category/EditForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/link/ViewForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/CategoryPager.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/LinkPager.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java bookmark/trunk/src/main/resources/application.properties bookmark/trunk/src/main/resources/application_ja.properties bookmark/trunk/src/main/resources/convention.dicon bookmark/trunk/src/main/resources/creator.dicon bookmark/trunk/src/main/resources/dbflute.dicon bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.index.db bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/index.jsp Added Paths: ----------- bookmark/trunk/mydbflute/README.txt bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/CommonException.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/creator/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/creator/PagerCreator.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/dxo/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/dxo/PagerDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/form/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/form/PagingResultForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/pager/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/pager/DefaultPager.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/util/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/util/PagingResultBeanWrapper.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/CallbackContext.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/SqlLogHandler.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/valuetype/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupMappingBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleMappingBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkCategoryDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkLinkDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupInfoDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupMappingDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleInfoDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleMappingDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsUserInfoDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupMapping.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleMapping.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupInfoDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupMappingDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleInfoDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleMappingDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkCategoryCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkLinkCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupMappingCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleMappingCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/UserInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupMappingCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleMappingCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupMappingCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleMappingCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/UserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupMappingCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleMappingCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupInfoCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupMappingCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleInfoCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleMappingCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupInfoNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupMappingNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleInfoNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleMappingNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/UserInfoNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkCategoryBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkLinkBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupMappingBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleMappingBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/UserInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkCategoryDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkLinkDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupInfoDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupMappingDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleInfoDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleMappingDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/UserInfoDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkCategory.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkLink.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupMapping.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleMapping.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/UserInfo.java Removed Paths: ------------- bookmark/trunk/dbflute/schema/project-schema-bookmark.xml bookmark/trunk/src/main/java/jp/sf/pal/bookmark/CommonException.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/creator/PagerCreator.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsCategoryBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsLinkBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsCategoryDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsLinkDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsCategory.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsLink.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/CategoryDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/LinkDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/CategoryCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/LinkCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsCategoryCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsLinkCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/CategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/LinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/CategoryCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/LinkCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/CategoryNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/LinkNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/CategoryBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/LinkBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/CategoryDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/LinkDao.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Category.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Link.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/PagerDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/PagingResultForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/DefaultPager.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/util/PagingResultBeanWrapper.java bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db -------------- next part -------------- Modified: bookmark/trunk/dbflute/_project.bat =================================================================== --- bookmark/trunk/dbflute/_project.bat 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/dbflute/_project.bat 2008-11-11 06:28:27 UTC (rev 1326) @@ -2,4 +2,4 @@ set MY_PROJECT_NAME=bookmark -set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.1 +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Modified: bookmark/trunk/dbflute/_project.sh =================================================================== --- bookmark/trunk/dbflute/_project.sh 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/dbflute/_project.sh 2008-11-11 06:28:27 UTC (rev 1326) @@ -2,4 +2,4 @@ export MY_PROJECT_NAME=bookmark -export DBFLUTE_HOME=../mydbflute/dbflute-0.8.1 +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Deleted: bookmark/trunk/dbflute/schema/project-schema-bookmark.xml =================================================================== --- bookmark/trunk/dbflute/schema/project-schema-bookmark.xml 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/dbflute/schema/project-schema-bookmark.xml 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - -
    -
    Added: bookmark/trunk/mydbflute/README.txt =================================================================== --- bookmark/trunk/mydbflute/README.txt (rev 0) +++ bookmark/trunk/mydbflute/README.txt 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: bookmark/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: bookmark/trunk/src/main/config/erd/bookmark.erd =================================================================== --- bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-11 06:28:27 UTC (rev 1326) @@ -4,11 +4,868 @@ - category - Category + user_info + User Information + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 185 + 408 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 40 + 852 + -1 + -1 + + + + + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 44 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 364 + 852 + -1 + -1 + + + + + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 372 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + bookmark_category + Bookmark Category + + + id ID @@ -57,6 +914,22 @@ + type + Type + + VARCHAR + String + true + 12 + + 1 + true + false + + false + 'P' + + sort_order Sort Order @@ -107,7 +980,7 @@ updated_time Updated Time - + 10 true false @@ -118,7 +991,7 @@ updated_by Updated by - + 255 true false @@ -129,7 +1002,7 @@ deleted_time Deleted Time - + 10 false false @@ -140,7 +1013,7 @@ deleted_by Deleted by - + 255 false false @@ -177,7 +1050,7 @@ - 46 + 624 408 -1 -1 @@ -210,8 +1083,8 @@ - link - Link + bookmark_link + Bookmark Link @@ -385,7 +1258,7 @@ - 40 + 624 40 -1 -1 @@ -426,14 +1299,14 @@ - + hsqldb false /home/taro/.m2/repository/com/h2database/h2/1.0.79/h2-1.0.79.jar org.h2.Driver - jdbc:h2:tcp://localhost:9092/bookmark + jdbc:h2:tcp://localhost:9092/userinfo sa Modified: bookmark/trunk/src/main/config/sql/bookmark.ddl =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,13 +1,105 @@ -DROP TABLE link; -DROP TABLE category; +DROP TABLE bookmark_link; +DROP TABLE bookmark_category; +DROP TABLE role_mapping; +DROP TABLE group_mapping; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; /********************************** -Table Name: Category +Table Name: Group Information **********************************/ -CREATE TABLE category( +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Bookmark Category +**********************************/ +CREATE TABLE bookmark_category( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, memo VARCHAR(200), + type VARCHAR(1) DEFAULT 'P' NOT NULL, sort_order INTEGER DEFAULT 0 NOT NULL, created_time TIMESTAMP NOT NULL, created_by VARCHAR(255) NOT NULL, @@ -19,9 +111,9 @@ ); /********************************** -Table Name: Link +Table Name: Bookmark Link **********************************/ -CREATE TABLE link( +CREATE TABLE bookmark_link( id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, memo VARCHAR(200), @@ -36,11 +128,11 @@ deleted_time TIMESTAMP, deleted_by VARCHAR(255), versionNo INTEGER DEFAULT 0 NOT NULL, - FOREIGN KEY (category_id) REFERENCES category (id) + FOREIGN KEY (category_id) REFERENCES bookmark_category (id) ); -CREATE INDEX IDX_created_by_for_category ON category (created_by); +CREATE INDEX IDX_created_by_for_category ON bookmark_category (created_by); -CREATE INDEX IDX_created_by_and_category_id_for_link ON link (created_by, category_id); +CREATE INDEX IDX_created_by_and_category_id_for_link ON bookmark_link (created_by, category_id); Modified: bookmark/trunk/src/main/config/sql/bookmark.dml =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.dml 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/config/sql/bookmark.dml 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,2 +1,2 @@ -insert into CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO) values (1, '(Unclassified)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, ''); -insert into CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO) values (2, '(Shared)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, ''); +insert into BOOKMARK_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO, TYPE) values (1, '(Unclassified)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, '', 'P'); +insert into BOOKMARK_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO, TYPE) values (2, '(Shared)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, '', 'P'); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -22,4 +22,8 @@ public static final int SHARED_CATEGORY_ID = 2; + public static final String PUBLIC_CATEGORY = "P"; + + public static final String PERSONAL_CATEGORY = "C"; + } Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/CommonException.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/CommonException.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/CommonException.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with this - * work for additional information regarding copyright ownership. The ASF - * licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law - * or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package jp.sf.pal.bookmark; - -/** - * @author shinsuke - */ -public class CommonException extends Exception { - - /** - * Serial Version UID - */ - private static final long serialVersionUID = 4564000116499132363L; - - private String messageId; - - private Object[] args; - - /** - * @return Returns the messageId. - */ - public String getMessageId() { - return messageId; - } - - /** - * @param messageId The messageId to set. - */ - public void setMessageId(String messageId) { - this.messageId = messageId; - } - - /** - * @return Returns the args. - */ - public Object[] getArgs() { - return args; - } - - /** - * @param args The args to set. - */ - public void setArgs(Object[] args) { - this.args = args; - } - - public CommonException(String messageId) { - super(messageId); - this.messageId = messageId; - } - - public CommonException(String messageId, Object[] args) { - super(messageId); - this.messageId = messageId; - this.args = args; - } - - public CommonException(String messageId, String message, Throwable cause) { - super(message, cause); - this.messageId = messageId; - } - - public CommonException(String messageId, Object[] args, String message, - Throwable cause) { - super(message, cause); - this.messageId = messageId; - this.args = args; - } - - public CommonException(String messageId, String message) { - super(message); - this.messageId = messageId; - } - - public CommonException(String messageId, Object[] args, String message) { - super(message); - this.messageId = messageId; - this.args = args; - } - - public CommonException(String messageId, Throwable cause) { - super(cause); - this.messageId = messageId; - } - - public CommonException(String messageId, Object[] args, Throwable cause) { - super(cause); - this.messageId = messageId; - this.args = args; - } - -} Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -6,9 +6,9 @@ import javax.servlet.http.HttpServletRequest; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.db.exentity.Category; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.dxo.CategoryDxo; -import jp.sf.pal.bookmark.dxo.PagerDxo; import jp.sf.pal.bookmark.form.admin.CategoryForm; import jp.sf.pal.bookmark.pager.CategoryPager; import jp.sf.pal.bookmark.service.CategoryService; @@ -28,7 +28,7 @@ // for list - public List categoryItems; + public List categoryItems; // for edit/confirm/delete @@ -140,7 +140,7 @@ if (categoryForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Category category = categoryService.getCategory(Integer + BookmarkCategory category = categoryService.getCategory(Integer .parseInt(categoryForm.id)); if (category == null) { throw new ActionMessagesException("errors.could_not_find_category", @@ -164,7 +164,7 @@ if (categoryForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Category category = categoryService.getCategory(Integer + BookmarkCategory category = categoryService.getCategory(Integer .parseInt(categoryForm.id)); if (category == null) { throw new ActionMessagesException("errors.could_not_find_category", @@ -186,7 +186,7 @@ @Execute(validator = true, input = "edit.jsp") public String create() { try { - Category category = createCategory(); + BookmarkCategory category = createCategory(); categoryService.store(category); BookmarkUtil.addMessage(request, "success.create_category"); // reset edit page @@ -201,7 +201,7 @@ @Execute(validator = true, input = "edit.jsp") public String update() { try { - Category category = createCategory(); + BookmarkCategory category = createCategory(); categoryService.store(category); BookmarkUtil.addMessage(request, "success.update_category"); // reset edit page @@ -231,7 +231,7 @@ private void loadCategory() { Integer categoryId = Integer.parseInt(categoryForm.id); - Category category = categoryService.getCategory(categoryId); + BookmarkCategory category = categoryService.getCategory(categoryId); if (category == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_category", @@ -241,14 +241,14 @@ } - private Category createCategory() { - Category category; + private BookmarkCategory createCategory() { + BookmarkCategory category; if (categoryForm.mode == BookmarkConstants.EDIT_MODE) { Integer categoryId = Integer.parseInt(categoryForm.id); category = categoryService.getCategory(categoryId); category.setUpdatedBy(request.getRemoteUser()); } else { - category = new Category(); + category = new BookmarkCategory(); String remoteUser = request.getRemoteUser(); category.setUpdatedBy(remoteUser); category.setCreatedBy(remoteUser); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -6,9 +6,9 @@ import javax.servlet.http.HttpServletRequest; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.db.exentity.Link; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.dxo.LinkDxo; -import jp.sf.pal.bookmark.dxo.PagerDxo; import jp.sf.pal.bookmark.form.admin.LinkForm; import jp.sf.pal.bookmark.pager.LinkPager; import jp.sf.pal.bookmark.service.CategoryService; @@ -29,7 +29,7 @@ // for list - public List linkItems; + public List linkItems; // for edit/confirm/delete @@ -151,7 +151,7 @@ @Execute(validator = true, input = "edit.jsp") public String create() { try { - Link link = createLink(); + BookmarkLink link = createLink(); linkService.store(link); BookmarkUtil.addMessage(request, "success.create_link"); @@ -168,7 +168,7 @@ @Execute(validator = true, input = "edit.jsp") public String update() { try { - Link link = createLink(); + BookmarkLink link = createLink(); linkService.store(link); BookmarkUtil.addMessage(request, "success.update_link"); @@ -202,7 +202,7 @@ private void loadLink() { Long linkId = Long.parseLong(linkForm.id); - Link link = linkService.getLink(linkId); + BookmarkLink link = linkService.getLink(linkId); if (link == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_link", @@ -212,14 +212,14 @@ } - private Link createLink() { - Link link; + private BookmarkLink createLink() { + BookmarkLink link; if (linkForm.mode == BookmarkConstants.EDIT_MODE) { Long linkId = Long.parseLong(linkForm.id); link = linkService.getLink(linkId); link.setUpdatedBy(request.getRemoteUser()); } else { - link = new Link(); + link = new BookmarkLink(); String remoteUser = request.getRemoteUser(); link.setUpdatedBy(remoteUser); link.setCreatedBy(remoteUser); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/category/EditAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/category/EditAction.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/category/EditAction.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -6,9 +6,9 @@ import javax.servlet.http.HttpServletRequest; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.db.exentity.Category; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.dxo.CategoryDxo; -import jp.sf.pal.bookmark.dxo.PagerDxo; import jp.sf.pal.bookmark.form.category.EditForm; import jp.sf.pal.bookmark.pager.CategoryPager; import jp.sf.pal.bookmark.service.CategoryService; @@ -28,7 +28,7 @@ // for list - public List categoryItems; + public List categoryItems; // for edit/confirm/delete @@ -139,7 +139,7 @@ if (editForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Category category = categoryService.getCategory(Integer + BookmarkCategory category = categoryService.getCategory(Integer .parseInt(editForm.id)); if (category == null) { throw new ActionMessagesException("errors.could_not_find_category", @@ -163,7 +163,7 @@ if (editForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Category category = categoryService.getCategory(Integer + BookmarkCategory category = categoryService.getCategory(Integer .parseInt(editForm.id)); if (category == null) { throw new ActionMessagesException("errors.could_not_find_category", @@ -185,7 +185,7 @@ @Execute(validator = true, input = "edit.jsp") public String create() { try { - Category category = createCategory(); + BookmarkCategory category = createCategory(); categoryService.store(category); BookmarkUtil.addMessage(request, "success.create_category"); // reset edit page @@ -200,7 +200,7 @@ @Execute(validator = true, input = "edit.jsp") public String update() { try { - Category category = createCategory(); + BookmarkCategory category = createCategory(); categoryService.store(category); BookmarkUtil.addMessage(request, "success.update_category"); // reset edit page @@ -230,7 +230,7 @@ private void loadCategory() { Integer categoryId = Integer.parseInt(editForm.id); - Category category = categoryService.getCategory(categoryId); + BookmarkCategory category = categoryService.getCategory(categoryId); if (category == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_category", @@ -240,14 +240,14 @@ } - private Category createCategory() { - Category category; + private BookmarkCategory createCategory() { + BookmarkCategory category; if (editForm.mode == BookmarkConstants.EDIT_MODE) { Integer categoryId = Integer.parseInt(editForm.id); category = categoryService.getCategory(categoryId); category.setUpdatedBy(request.getRemoteUser()); } else { - category = new Category(); + category = new BookmarkCategory(); String remoteUser = request.getRemoteUser(); category.setUpdatedBy(remoteUser); category.setCreatedBy(remoteUser); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/link/ViewAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/link/ViewAction.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/link/ViewAction.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -6,10 +6,10 @@ import javax.servlet.http.HttpServletRequest; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.db.exentity.Category; -import jp.sf.pal.bookmark.db.exentity.Link; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.dxo.LinkDxo; -import jp.sf.pal.bookmark.dxo.PagerDxo; import jp.sf.pal.bookmark.form.link.ViewForm; import jp.sf.pal.bookmark.pager.LinkPager; import jp.sf.pal.bookmark.service.CategoryService; @@ -28,11 +28,11 @@ private static final Log log = LogFactory.getLog(ViewAction.class); - public List categoryItems; + public List categoryItems; // for list - public List linkItems; + public List linkItems; // for edit/confirm/delete @@ -176,7 +176,7 @@ if (viewForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Link link = linkService.getLink(Long.parseLong(viewForm.id)); + BookmarkLink link = linkService.getLink(Long.parseLong(viewForm.id)); if (link == null) { throw new ActionMessagesException("errors.could_not_find_link", new Object[] { viewForm.id }); @@ -198,7 +198,7 @@ if (viewForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Link link = linkService.getLink(Long.parseLong(viewForm.id)); + BookmarkLink link = linkService.getLink(Long.parseLong(viewForm.id)); if (link == null) { throw new ActionMessagesException("errors.could_not_find_link", new Object[] { viewForm.id }); @@ -218,7 +218,7 @@ @Execute(validator = true, input = "edit.jsp") public String create() { try { - Link link = createLink(); + BookmarkLink link = createLink(); linkService.store(link); BookmarkUtil.addMessage(request, "success.create_link"); @@ -235,7 +235,7 @@ @Execute(validator = true, input = "edit.jsp") public String update() { try { - Link link = createLink(); + BookmarkLink link = createLink(); linkService.store(link); BookmarkUtil.addMessage(request, "success.update_link"); @@ -269,7 +269,7 @@ private void loadLink() { Long linkId = Long.parseLong(viewForm.id); - Link link = linkService.getLink(linkId); + BookmarkLink link = linkService.getLink(linkId); if (link == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_link", @@ -279,14 +279,14 @@ } - private Link createLink() { - Link link; + private BookmarkLink createLink() { + BookmarkLink link; if (viewForm.mode == BookmarkConstants.EDIT_MODE) { Long linkId = Long.parseLong(viewForm.id); link = linkService.getLink(linkId); link.setUpdatedBy(request.getRemoteUser()); } else { - link = new Link(); + link = new BookmarkLink(); String remoteUser = request.getRemoteUser(); link.setUpdatedBy(remoteUser); link.setCreatedBy(remoteUser); Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/CommonException.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/CommonException.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/CommonException.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.bookmark.common; + +/** + * @author shinsuke + */ +public class CommonException extends Exception { + + /** + * Serial Version UID + */ + private static final long serialVersionUID = 4564000116499132363L; + + private String messageId; + + private Object[] args; + + /** + * @return Returns the messageId. + */ + public String getMessageId() { + return messageId; + } + + /** + * @param messageId The messageId to set. + */ + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * @return Returns the args. + */ + public Object[] getArgs() { + return args; + } + + /** + * @param args The args to set. + */ + public void setArgs(Object[] args) { + this.args = args; + } + + public CommonException(String messageId) { + super(messageId); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args) { + super(messageId); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message, Throwable cause) { + super(message, cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message, + Throwable cause) { + super(message, cause); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message) { + super(message); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message) { + super(message); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, Throwable cause) { + super(cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, Throwable cause) { + super(cause); + this.messageId = messageId; + this.args = args; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/CommonException.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/creator/PagerCreator.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/creator/PagerCreator.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/creator/PagerCreator.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,29 @@ +package jp.sf.pal.bookmark.common.creator; + +import org.seasar.framework.container.ComponentCustomizer; +import org.seasar.framework.container.assembler.AutoBindingDefFactory; +import org.seasar.framework.container.creator.ComponentCreatorImpl; +import org.seasar.framework.container.deployer.InstanceDefFactory; +import org.seasar.framework.convention.NamingConvention; + +/** + * @author shinsuke + */ +public class PagerCreator extends ComponentCreatorImpl { + public static final String SUFFIX = "Pager"; + + public PagerCreator(NamingConvention namingConvention) { + super(namingConvention); + setNameSuffix(SUFFIX); + setInstanceDef(InstanceDefFactory.SESSION); + setAutoBindingDef(AutoBindingDefFactory.NONE); + } + + public ComponentCustomizer getPagerCustomizer() { + return getCustomizer(); + } + + public void setPagerCustomizer(ComponentCustomizer customizer) { + setCustomizer(customizer); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/creator/PagerCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/dxo/PagerDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/dxo/PagerDxo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/dxo/PagerDxo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,24 @@ +package jp.sf.pal.bookmark.common.dxo; + +import java.io.Serializable; + +import jp.sf.pal.bookmark.common.form.PagingResultForm; +import jp.sf.pal.bookmark.common.pager.DefaultPager; +import jp.sf.pal.bookmark.common.util.PagingResultBeanWrapper; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface PagerDxo extends Serializable { + + @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" + + ",currentPageNumber : currentPageNumber" + + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" + + ",existNextPage : existNextPage") + public void convert(PagingResultBeanWrapper result, DefaultPager pager); + + @ExcludeNull + @ConversionRule(// "pageSize : pageSize, " + + "currentPageNumber : pageNumber") + public void convert(PagingResultForm page, DefaultPager pager); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/dxo/PagerDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/form/PagingResultForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/form/PagingResultForm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/form/PagingResultForm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,5 @@ +package jp.sf.pal.bookmark.common.form; + +public interface PagingResultForm { + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/form/PagingResultForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/pager/DefaultPager.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/pager/DefaultPager.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/pager/DefaultPager.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,101 @@ +package jp.sf.pal.bookmark.common.pager; + +import java.io.Serializable; +import java.util.List; + +public abstract class DefaultPager implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DEFAULT_PAGE_SIZE = 50; + + public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; + + private int allRecordCount; + + private int allPageCount; + + private boolean existPrePage; + + private boolean existNextPage; + + private List pageNumberList; + + private int pageSize; + + private int currentPageNumber; + + public void clear() { + pageSize = getDefaultPageSize(); + currentPageNumber = getDefaultCurrentPageNumber(); + } + + protected int getDefaultPageSize() { + return DEFAULT_PAGE_SIZE; + } + + protected int getDefaultCurrentPageNumber() { + return DEFAULT_CURRENT_PAGE_NUMBER; + } + + public int getAllRecordCount() { + return allRecordCount; + } + + public void setAllRecordCount(int allRecordCount) { + this.allRecordCount = allRecordCount; + } + + public int getAllPageCount() { + return allPageCount; + } + + public void setAllPageCount(int allPageCount) { + this.allPageCount = allPageCount; + } + + public boolean isExistPrePage() { + return existPrePage; + } + + public void setExistPrePage(boolean existPrePage) { + this.existPrePage = existPrePage; + } + + public boolean isExistNextPage() { + return existNextPage; + } + + public void setExistNextPage(boolean existNextPage) { + this.existNextPage = existNextPage; + } + + public int getPageSize() { + if (pageSize <= 0) { + pageSize = getDefaultPageSize(); + } + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNumber() { + if (currentPageNumber <= 0) { + currentPageNumber = getDefaultCurrentPageNumber(); + } + return currentPageNumber; + } + + public void setCurrentPageNumber(int currentPageNumber) { + this.currentPageNumber = currentPageNumber; + } + + public List getPageNumberList() { + return pageNumberList; + } + + public void setPageNumberList(List pageNumberList) { + this.pageNumberList = pageNumberList; + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/pager/DefaultPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/util/PagingResultBeanWrapper.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/util/PagingResultBeanWrapper.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/util/PagingResultBeanWrapper.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,68 @@ +package jp.sf.pal.bookmark.common.util; + +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; + +public class PagingResultBeanWrapper { + private PagingResultBean pagingResultBean; + + public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public PagingResultBean getPagingResultBean() { + return pagingResultBean; + } + + public void setPagingResultBean(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public int getAllRecordCount() { + return pagingResultBean.getAllRecordCount(); + } + + public void setAllRecordCount(int allRecordCount) { + pagingResultBean.setAllRecordCount(allRecordCount); + } + + public int getPageSize() { + return pagingResultBean.getPageSize(); + } + + public void setPageSize(int pageSize) { + pagingResultBean.setPageSize(pageSize); + } + + public int getCurrentPageNumber() { + return pagingResultBean.getCurrentPageNumber(); + } + + public void setCurrentPageNumber(int currentPageNumber) { + pagingResultBean.setCurrentPageNumber(currentPageNumber); + } + + public int getAllPageCount() { + return pagingResultBean.getAllPageCount(); + } + + public void setAllPageCount(int allPageCount) { + // nothing + } + + public boolean isExistPrePage() { + return pagingResultBean.isExistPrePage(); + } + + public void setExistPrePage(boolean existPrePage) { + // nothing + } + + public boolean isExistNextPage() { + return pagingResultBean.isExistNextPage(); + } + + public void setExistNextPage(boolean existNextPage) { + // nothing + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/common/util/PagingResultBeanWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/creator/PagerCreator.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/creator/PagerCreator.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/creator/PagerCreator.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,29 +0,0 @@ -package jp.sf.pal.bookmark.creator; - -import org.seasar.framework.container.ComponentCustomizer; -import org.seasar.framework.container.assembler.AutoBindingDefFactory; -import org.seasar.framework.container.creator.ComponentCreatorImpl; -import org.seasar.framework.container.deployer.InstanceDefFactory; -import org.seasar.framework.convention.NamingConvention; - -/** - * @author shinsuke - */ -public class PagerCreator extends ComponentCreatorImpl { - public static final String SUFFIX = "Pager"; - - public PagerCreator(NamingConvention namingConvention) { - super(namingConvention); - setNameSuffix(SUFFIX); - setInstanceDef(InstanceDefFactory.SESSION); - setAutoBindingDef(AutoBindingDefFactory.NONE); - } - - public ComponentCustomizer getPagerCustomizer() { - return getCustomizer(); - } - - public void setPagerCustomizer(ComponentCustomizer customizer) { - setCustomizer(customizer); - } -} Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/AccessContext.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/AccessContext.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/AccessContext.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -4,12 +4,7 @@ import java.util.Map; /** - * Access-Context. - *

    - * This access-context on the thread should be initialized at the beginning of - * access. The access is various. Web-Access, Batch-Access, JUnit-Access and so - * on... - *

    + * The context of DB access. * * @author DBFlute(AutoGenerator) */ @@ -20,28 +15,28 @@ // Thread Local // ============ /** The thread-local for this. */ - private static final ThreadLocal threadLocal = new ThreadLocal(); + private static final ThreadLocal _threadLocal = new ThreadLocal(); /** * Get access-context on thread. * - * @return Access-context. (Nullable) + * @return The context of DB access.. (Nullable) */ public static AccessContext getAccessContextOnThread() { - return (AccessContext) threadLocal.get(); + return (AccessContext) _threadLocal.get(); } /** * Set access-context on thread. * - * @param accessContext Access-context. (NotNull) + * @param accessContext The context of DB access.. (NotNull) */ public static void setAccessContextOnThread(AccessContext accessContext) { if (accessContext == null) { String msg = "The argument[accessContext] must not be null."; throw new IllegalArgumentException(msg); } - threadLocal.set(accessContext); + _threadLocal.set(accessContext); } /** @@ -50,14 +45,14 @@ * @return Determination. */ public static boolean isExistAccessContextOnThread() { - return (threadLocal.get() != null); + return (_threadLocal.get() != null); } /** * Clear access-context on thread. */ public static void clearAccessContextOnThread() { - threadLocal.set(null); + _threadLocal.set(null); } //========================================================================== Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/CallbackContext.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/CallbackContext.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/CallbackContext.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,75 @@ +package jp.sf.pal.bookmark.db.allcommon; + +import jp.sf.pal.bookmark.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/DBFluteConfig.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/DBFluteConfig.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/DBFluteConfig.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -32,6 +32,8 @@ protected boolean _executeStatusLogLevelInfo; + protected boolean _useSqlLogRegistry; + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; protected boolean _sqlExceptionOldStyleHandling = false;// This is for @@ -142,6 +144,23 @@ _executeStatusLogLevelInfo = executeStatusLogLevelInfo; } + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + // [DBFlute-0.7.7] //========================================================================== // ========= @@ -282,11 +301,12 @@ // ========= // Config Clear // ============ - public void clear() { + public void clear() { // the only properties that update OK while executing _defaultStatementConfig = null; - _conditionBeanFormatSql = true; + _conditionBeanFormatSql = true; // as default _queryLogLevelInfo = false; _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; _logDateFormat = null; _logTimestampFormat = null; _internalDebug = false; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -32,6 +32,7 @@ import jp.sf.pal.bookmark.db.allcommon.helper.token.file.FileMakingOption; import jp.sf.pal.bookmark.db.allcommon.helper.token.file.FileMakingSimpleFacade; import jp.sf.pal.bookmark.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.bookmark.db.allcommon.util.SimpleSystemUtil; /** * The abstract class of behavior-readable. @@ -416,7 +417,7 @@ } /** - * Help load referrer internally. About internal policy, the value of + * Do help load referrer internally. About internal policy, the value of * primary key(and others too) is treated as CaseInsensitive. * * @param The type of base entity. @@ -445,14 +446,15 @@ // - - - - - - - - - - - - - - // Prepare temporary container // - - - - - - - - - - - - - - - final Map pkBaseEntityMap = new LinkedHashMap(); - final List pkList = new java.util.ArrayList(); + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); for (LOCAL_ENTITY localEntity : localEntityList) { final PK primaryKeyValue = callback .callbackBase_getPrimaryKeyValue(localEntity); pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); - pkBaseEntityMap.put(toLowerCasePrimaryKeyIfString(primaryKeyValue), - localEntity); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); } // - - - - - - - - - - - - - - - - @@ -484,7 +486,7 @@ // - - - - - - - - - - - - - - - - - - - - - - - - // Create the map of {primary key / referrer list} // - - - - - - - - - - - - - - - - - - - - - - - - - final Map> pkReffererListMap = new LinkedHashMap>(); + final Map> pkReferrerListMap = new LinkedHashMap>(); for (REFERRER_ENTITY referrerEntity : referrerList) { final PK referrerListKey; { @@ -492,14 +494,14 @@ .callbackReferrer_getForeignKeyValue(referrerEntity); referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); } - if (!pkReffererListMap.containsKey(referrerListKey)) { - pkReffererListMap.put(referrerListKey, - new java.util.ArrayList()); + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); } - (pkReffererListMap.get(referrerListKey)).add(referrerEntity); + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); // for Reverse Reference. - final LOCAL_ENTITY localEntity = pkBaseEntityMap + final LOCAL_ENTITY localEntity = pkLocalEntityMap .get(referrerListKey); callback.callbackReferrer_setForeignEntity(referrerEntity, localEntity); @@ -515,12 +517,12 @@ .callbackBase_getPrimaryKeyValue(localEntity); referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); } - if (pkReffererListMap.containsKey(referrerListKey)) { + if (pkReferrerListMap.containsKey(referrerListKey)) { callback.callbackBase_setReferrerList(localEntity, - pkReffererListMap.get(referrerListKey)); + pkReferrerListMap.get(referrerListKey)); } else { callback.callbackBase_setReferrerList(localEntity, - new java.util.ArrayList()); + new ArrayList()); } } } @@ -539,17 +541,6 @@ /** * @param The type of base entity. * @param The type of primary key. - * @param The type of referrer condition-bean. - * @param The type of referrer entity. - */ - protected static interface InternalLoadRefererCallback - extends - InternalLoadReferrerCallback { - } - - /** - * @param The type of base entity. - * @param The type of primary key. * @param The type of referrer conditionBean. * @param The type of referrer entity. */ @@ -576,6 +567,12 @@ REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); } + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + private void assertBehaviorSelectorNotNull(String methodName) { if (_behaviorSelector == null) { String msg = "Look! Read the message below." + getLineSeparator(); @@ -693,10 +690,7 @@ * @return All count. */ protected int callGetCountAll() { - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "getCountAll", new Class[] {}); - final Object result = invoke(mtd, getDaoReadable(), new Object[] {}); - return ((Integer) result).intValue(); + return readCount(newConditionBean()); } /** @@ -705,10 +699,7 @@ * @return All list. (NotNull) */ protected List callGetListAll() { - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "getListAll", new Class[] {}); - final Object result = invoke(mtd, getDaoReadable(), new Object[] {}); - return (List) result; + return readList(newConditionBean()); } /** @@ -738,14 +729,13 @@ protected List callReadList(ConditionBean cb) { assertConditionBeanNotNull(cb); final Class[] types = new Class[] { cb.getClass() }; - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "selectList", types); + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); return (List) result; } - private java.lang.reflect.Method getMethod(Class clazz, String methodName, - Class[] argTypes) { + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { try { return clazz.getMethod(methodName, argTypes); } catch (NoSuchMethodException ex) { @@ -755,8 +745,7 @@ } } - private Object invoke(java.lang.reflect.Method method, Object target, - Object[] args) { + private Object invoke(Method method, Object target, Object[] args) { try { return method.invoke(target, args); } catch (java.lang.reflect.InvocationTargetException ex) { @@ -787,8 +776,8 @@ //========================================================================== // ========= - // Helper - // ====== + // General Helper + // ============== /** * To lower case if the type is String. * @@ -808,7 +797,7 @@ * @return The value of line separator. (NotNull) */ protected String getLineSeparator() { - return System.getProperty("line.separator"); + return SimpleSystemUtil.getLineSeparator(); } protected ENTITY helpDowncastInternally( Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,5 +1,7 @@ package jp.sf.pal.bookmark.db.allcommon.bhv.load; +import java.util.List; + import jp.sf.pal.bookmark.db.allcommon.Entity; import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ConditionBeanSetupper; import jp.sf.pal.bookmark.db.allcommon.bhv.setup.EntityListSetupper; @@ -97,8 +99,7 @@ } } - public void delegateEntitySettingUp( - java.util.List entityList) {// Internal + public void delegateEntitySettingUp(List entityList) {// Internal if (_entityListSetupper != null) { _entityListSetupper.setup(entityList); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,5 +1,7 @@ package jp.sf.pal.bookmark.db.allcommon.bhv.setup; +import java.util.List; + import jp.sf.pal.bookmark.db.allcommon.Entity; /** @@ -11,9 +13,9 @@ public interface EntityListSetupper { /** - * Set up entity list. + * Set up the list of entity. * - * @param entityList Entity list. (NotNull) + * @param entityList The list of entity. (NotNull) */ - public void setup(java.util.List entityList); + public void setup(List entityList); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/AbstractConditionBean.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/AbstractConditionBean.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1037,23 +1037,6 @@ //========================================================================== // ========= - // Format SQL - // ========== - /** @deprecated Sorry! ConditionBean must be formatted as default. */ - public void formatSql() { - getSqlClause().makeFormatClauseEffective(); - } - - /** - * @return Is the SQL formatted? - * @deprecated Sorry! ConditionBean must be formatted as default. - */ - public boolean isFormatSql() { - return getSqlClause().isFormatClauseEffective(); - } - - //========================================================================== - // ========= // Assist Helper // ============= protected void doSetupSelect(SsCall callback) { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBean.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBean.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBean.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -135,7 +135,8 @@ // Limit Select // ============ /** - * Limit select PK only. + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). * * @return this. (NotNull) */ @@ -214,19 +215,6 @@ //========================================================================== // ========= - // Format SQL - // ========== - /** @deprecated Sorry! ConditionBean must be formatted as default. */ - public void formatSql(); - - /** - * @return Is the SQL formatted? - * @deprecated Sorry! ConditionBean must be formatted as default. - */ - public boolean isFormatSql(); - - //========================================================================== - // ========= // Display SQL // =========== /** Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBeanContext.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ConditionBeanContext.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -21,7 +21,7 @@ import org.apache.commons.logging.LogFactory; /** - * Condition-Bean context. + * The context of condition-bean. * * @author DBFlute(AutoGenerator) */ @@ -95,7 +95,9 @@ } } { - Class clazz = jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption.class; + Class clazz = jp.sf.pal.bookmark.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.bookmark.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption.class; clazz = jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption.class; clazz = jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption.class; clazz = jp.sf.pal.bookmark.db.allcommon.cbean.grouping.GroupingOption.class; @@ -308,7 +310,7 @@ msg = msg + getLineSeparator(); if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { final ConditionBean cb = (ConditionBean) searchKey4Log; - msg = msg + "[Executed SQL for Display]" + getLineSeparator() + msg = msg + "[Display SQL]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator(); } else { msg = msg + "[Search Condition]" + getLineSeparator() @@ -339,7 +341,7 @@ msg = msg + getLineSeparator(); if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { final ConditionBean cb = (ConditionBean) searchKey4Log; - msg = msg + "[Executed SQL for Display]" + getLineSeparator() + msg = msg + "[Display SQL]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator(); } else { msg = msg + "[Search Condition]" + getLineSeparator() Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ListResultBean.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ListResultBean.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ListResultBean.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,7 +1,11 @@ package jp.sf.pal.bookmark.db.allcommon.cbean; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; import java.util.List; +import java.util.ListIterator; import jp.sf.pal.bookmark.db.allcommon.cbean.grouping.GroupingOption; import jp.sf.pal.bookmark.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; @@ -11,13 +15,12 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.OrderByClause; /** - * The list-result-bean for ListResultBean. + * The result bean for list. * * @param The type of entity for the element of selected list. * @author DBFlute(AutoGenerator) */ -public class ListResultBean implements List, - java.io.Serializable { +public class ListResultBean implements List, Serializable { //========================================================================== // ========= @@ -30,16 +33,19 @@ // ========= // Attribute // ========= - /** The value of table db-name. */ + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ protected String _tableDbName; /** The value of all record count. */ protected int _allRecordCount; - /** Selected list. */ - protected List _selectedList = new java.util.ArrayList(); + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); - /** Order-by clause. */ + /** The clause of order-by. (NotNull) */ protected OrderByClause _orderByClause = new OrderByClause(); //========================================================================== @@ -56,6 +62,15 @@ // ========= // Grouping // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ public List groupingList( GroupingRowSetupper groupingRowSetupper, GroupingOption groupingOption) { @@ -64,23 +79,25 @@ .getGroupingRowEndDeterminer(); if (rowEndDeterminer == null) { rowEndDeterminer = new GroupingRowEndDeterminer() { - public boolean determine(int columnIndex, int columnCount, + public boolean determine( GroupingRowResource rowResource, ENTITY nextEntity) { - return columnIndex == (columnCount - 1); + return rowResource.isSizeUpBreakCount(); } - };// as Default + }; // as Default } GroupingRowResource rowResource = new GroupingRowResource(); - int columnCount = groupingOption.getColumnCount(); - int columnIndex = 0; - int rowIndex = 0; + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; for (ENTITY entity : _selectedList) { // Set up row resource. rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); - if (_selectedList.size() == (rowIndex + 1)) {// Last Loop! - // Callback! + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! final ROW groupingRowObject = groupingRowSetupper .setup(rowResource); @@ -89,15 +106,15 @@ break; } - ENTITY nextElement = null; - if (_selectedList.size() > (rowIndex + 1)) { - nextElement = _selectedList.get(rowIndex); - } + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); // Do at row end. - if (rowEndDeterminer.determine(columnIndex, columnCount, - rowResource, nextElement)) { - // Callback! + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! final ROW groupingRowObject = groupingRowSetupper .setup(rowResource); @@ -106,12 +123,12 @@ // Initialize! rowResource = new GroupingRowResource(); - columnIndex = 0; - ++rowIndex; + rowElementIndex = 0; + ++allElementIndex; continue; } - ++columnIndex; - ++rowIndex; + ++rowElementIndex; + ++allElementIndex; } return groupingList; } @@ -139,7 +156,7 @@ /** * Has this result selected? * - * @return Determination. + * @return Determination. {Whether table DB name is not null} */ public boolean isSelectedResult() { return _tableDbName != null; @@ -182,12 +199,13 @@ @Override public String toString() { final StringBuilder sb = new StringBuilder(); - - sb.append(" tableDbName=").append(_tableDbName); - sb.append(" allRecordCount=").append(_allRecordCount); - sb.append(" selectedList.size()=").append(_selectedList.size()); - sb.append(" orderByClause=").append(_orderByClause); - + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); return sb.toString(); } @@ -199,7 +217,7 @@ return _selectedList.add(o); } - public boolean addAll(java.util.Collection c) { + public boolean addAll(Collection c) { return _selectedList.addAll(c); } @@ -211,7 +229,7 @@ return _selectedList.contains(o); } - public boolean containsAll(java.util.Collection c) { + public boolean containsAll(Collection c) { return _selectedList.containsAll(c); } @@ -219,7 +237,7 @@ return _selectedList.isEmpty(); } - public java.util.Iterator iterator() { + public Iterator iterator() { return _selectedList.iterator(); } @@ -227,11 +245,11 @@ return _selectedList.remove(o); } - public boolean removeAll(java.util.Collection c) { + public boolean removeAll(Collection c) { return _selectedList.removeAll(c); } - public boolean retainAll(java.util.Collection c) { + public boolean retainAll(Collection c) { return _selectedList.retainAll(c); } @@ -251,7 +269,7 @@ _selectedList.add(index, element); } - public boolean addAll(int index, java.util.Collection c) { + public boolean addAll(int index, Collection c) { return _selectedList.addAll(index, c); } @@ -267,11 +285,11 @@ return _selectedList.lastIndexOf(o); } - public java.util.ListIterator listIterator() { + public ListIterator listIterator() { return _selectedList.listIterator(); } - public java.util.ListIterator listIterator(int index) { + public ListIterator listIterator(int index) { return _selectedList.listIterator(index); } @@ -283,7 +301,7 @@ return _selectedList.set(index, element); } - public java.util.List subList(int fromIndex, int toIndex) { + public List subList(int fromIndex, int toIndex) { return _selectedList.subList(fromIndex, toIndex); } @@ -331,8 +349,7 @@ /** * Get the value of selectedList. * - * @return Selected list. (Nullable: If it's null, it means 'Not Selected - * Yet'.) + * @return Selected list. (NotNull) */ public List getSelectedList() { return _selectedList; @@ -341,17 +358,20 @@ /** * Set the value of selectedList. * - * @param selectedList Selected list. (NotNull) + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) */ public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list _selectedList = selectedList; } /** * Get the value of orderByClause. * - * @return The value of orderByClause. (Nullable: If it's null, it means - * 'Not Selected Yet'.) + * @return The value of orderByClause. (NotNull) */ public OrderByClause getOrderByClause() { return _orderByClause; @@ -360,9 +380,13 @@ /** * Set the value of orderByClause. * - * @param orderByClause The value of orderByClause. (NotNull) + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) */ public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list _orderByClause = orderByClause; } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/PagingResultBean.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/PagingResultBean.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/PagingResultBean.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -7,7 +7,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.pagenavi.range.PageRangeOption; /** - * The paging-result-bean for specified entity. + * The result bean of paging. * * @param The type of entity for the element of selected list. * @author DBFlute(AutoGenerator) @@ -309,18 +309,27 @@ @Override public String toString() { final StringBuilder sb = new StringBuilder(); - - sb.append(getCurrentPageNumber()).append("/").append(getAllPageCount()); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); sb.append(" of ").append(getAllRecordCount()); - sb.append(" listSize=").append( - getSelectedList() != null ? new Integer(getSelectedList() + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() .size()) : null); - sb.append(" pageSize=").append(getPageSize()); - sb.append(" page:{").append(isExistPrePage()).append("/").append( - isExistNextPage()).append("}"); - sb.append(" groupSize=").append(getPageGroupSize()); - sb.append(" rangeSize=").append(getPageRangeSize()); - + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); return sb.toString(); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -3,7 +3,7 @@ import java.util.List; /** - * The list-result-bean for ${myClassName}. + * The builder of result bean. * * @param The type of entity. * @author DBFlute(AutoGenerator) @@ -29,24 +29,38 @@ // Builder // ======= /** - * Build the result bean of list. + * Build the result bean of list without order-by clause. {for Various} * - * @param ob The bean of orderBy. (NotNull) * @param selectedList Selected list. (NotNull) * @return The result bean of list. (NotNull) */ - public ListResultBean buildListResultBean(ConditionBean ob, + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, List selectedList) { ListResultBean rb = new ListResultBean(); rb.setTableDbName(_tableDbName); rb.setAllRecordCount(selectedList.size()); rb.setSelectedList(selectedList); - rb.setOrderByClause(ob.getSqlComponentOfOrderByClause()); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); return rb; } /** - * Build the result bean of paging. + * Build the result bean of paging. {for Paging} * * @param pb The bean of paging. (NotNull) * @param allRecordCount All record count. Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,7 +1,7 @@ package jp.sf.pal.bookmark.db.allcommon.cbean.grouping; /** - * The class of option for grouping making. + * The class of option for grouping. * * @param The type of entity. * @author DBFlute(AutoGenerator) @@ -12,7 +12,7 @@ // =========== // Attribute // ========= - protected int _columnCount; + protected int _elementCount; protected GroupingRowEndDeterminer _groupingRowEndDeterminer; @@ -20,21 +20,28 @@ // =========== // Constructor // =========== - public GroupingOption(int columnCount) { - _columnCount = columnCount; + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { } - //========================================================================== - // =========== - // Easy-to-Use - // =========== + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } //========================================================================== // =========== // Accessor // ======== - public int getColumnCount() { - return this._columnCount; + public int getElementCount() { + return this._elementCount; } public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,13 +1,24 @@ package jp.sf.pal.bookmark.db.allcommon.cbean.grouping; /** - * The interface of grouping switch point determiner. + * The interface of grouping end(switch point) determiner. * * @param The type of entity. * @author DBFlute(AutoGenerator) */ public interface GroupingRowEndDeterminer { - public boolean determine(int columnIndex, int columnCount, - GroupingRowResource rowResource, ENTITY nextEntity); + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,5 +1,8 @@ package jp.sf.pal.bookmark.db.allcommon.cbean.grouping; +import java.util.ArrayList; +import java.util.List; + /** * The class of row resource for grouping making. * @@ -12,22 +15,79 @@ // =========== // Attribute // ========= - protected java.util.List _groupingRowList = new java.util.ArrayList(); + protected List _groupingRowList = new ArrayList(); + protected int _elementCurrentIndex; + + protected int _breakCount; + //========================================================================== // =========== // Easy-to-Use // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } //========================================================================== // =========== // Accessor // ======== - public java.util.List getGroupingRowList() { + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { return this._groupingRowList; } + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ public void addGroupingRowList(ENTITY groupingRow) { this._groupingRowList.add(groupingRow); } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,7 +1,7 @@ package jp.sf.pal.bookmark.db.allcommon.cbean.grouping; /** - * The interface of grouping row setupper. + * The setupper of grouping row. * * @param The type of row. * @param The type of entity. @@ -10,10 +10,10 @@ public interface GroupingRowSetupper { /** - * Set up grouping row object. + * Set up the instance of grouping row. * * @param groupingRowResource Grouping row resource. (NotNull) - * @return Grouping row object. (NotNull) + * @return The instance of grouping row. (NotNull) */ public ROW setup(GroupingRowResource groupingRowResource); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -2,6 +2,8 @@ import java.util.List; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlDao; import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlOption; import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.ProcedurePmb; @@ -76,14 +78,16 @@ * @param pmb The parameter-bean. Allowed types are Bean object and Map * object. (Nullable) * @param entityType The element type of entity. (NotNull) - * @return The list of selected entity. (NotNull) + * @return The result bean of selected list. (NotNull) * @exception jp.sf.pal.bookmark.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. */ - public List selectList(String path, Object pmb, + public ListResultBean selectList(String path, Object pmb, Class entityType) { - return _outsideSqlDao.selectList(path, pmb, createOutsideSqlOption(), - entityType); + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); } //========================================================================== @@ -98,7 +102,7 @@ * object. (Nullable) * @return The count of execution. * @exception jp.sf.pal.bookmark.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. */ public int execute(String path, Object pmb) { return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -35,6 +35,17 @@ // ========= // Select // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ public Object selectCursor(String path, PARAMETER_BEAN pmb, CursorHandler handler) { return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, @@ -45,14 +56,14 @@ // ========= // Option // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + public OutsideSqlCursorExecutor configure( StatementConfig statementConfig) { _outsideSqlOption.setStatementConfig(statementConfig); return this; } - - public OutsideSqlCursorExecutor dynamicBinding() { - _outsideSqlOption.dynamicBinding(); - return this; - } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -48,8 +48,9 @@ * @param entityType The type of entity. (NotNull) * @return The selected entity. (Nullable) * @exception jp.sf.pal.bookmark.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. */ public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, Class entityType) { @@ -75,7 +76,7 @@ * @param entityType The type of entity. (NotNull) * @return The selected entity. (Nullable) * @exception jp.sf.pal.bookmark.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException * When the entity has already been deleted(not found). * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -3,10 +3,12 @@ import java.util.List; import jp.sf.pal.bookmark.db.allcommon.DBFluteConfig; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlDao; import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlOption; import jp.sf.pal.bookmark.db.allcommon.jdbc.StatementConfig; @@ -46,20 +48,57 @@ // ========= // Select // ====== - public List selectList(String path, PagingBean pmb, - Class entityType) { + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { setupScrollableCursorIfNeeds(); - return _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, - entityType); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); } /** * Select page. *

    * The SQL should have Count and Paging.
    You can realize by - * pagingBean's isPaging() method on your 'SQL Comment'. For example, 'IF - * Comment'.
    It returns false when it executes Count. And it returns - * true when it executes Paging.
    + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    * *

          * - - - - - - - - - - - - - - - - - - - - - - -
    @@ -107,10 +146,11 @@
          * 
          * @param  The type of entity.
          * @param path The path of SQL that executes count and paging. (NotNull)
    -     * @param pagingPath The path of paging SQL. (NotNull)
          * @param pmb The bean of paging parameter. (NotNull)
          * @param entityType The type of result entity. (NotNull)
          * @return The result bean of paging. (NotNull)
    +     * @exception jp.sf.pal.bookmark.db.allcommon.exception.OutsideSqlNotFoundException
    +     *                When the outside-sql is not found.
          */
         public  PagingResultBean selectPage(final String path,
                 final PagingBean pmb, final Class entityType) {
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/AbstractSqlClause.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/AbstractSqlClause.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/AbstractSqlClause.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -1300,7 +1300,7 @@
         /**
          * The implementation.
          * 
    -     * @return Determiantion.
    +     * @return Determination.
          */
         public boolean isFetchNarrowingEffective() {
             return _isFetchScopeEffective;
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByClause.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByClause.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByClause.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -1,5 +1,6 @@
     package jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause;
     
    +import java.io.Serializable;
     import java.util.ArrayList;
     import java.util.Iterator;
     import java.util.List;
    @@ -9,7 +10,7 @@
     /**
      * @author DBFlute(AutoGenerator)
      */
    -public class OrderByClause implements java.io.Serializable {
    +public class OrderByClause implements Serializable {
     
         /** Serial version UID. (Default) */
         private static final long serialVersionUID = 1L;
    @@ -32,8 +33,8 @@
     
         //==========================================================================
         // ===========
    -    // Behavior
    -    // ========
    +    // Manipulation
    +    // ============
         /**
          * Add order-by element.
          * 
    @@ -91,6 +92,10 @@
                     boolean nullsFirst);
         }
     
    +    //==========================================================================
    +    // ===========
    +    // Order-By Expression
    +    // ===================
         public List getOrderByList() {
             return _orderByList;
         }
    @@ -250,7 +255,7 @@
          * 
          * @return Determination.
          */
    -    public java.util.Iterator iterator() {
    +    public Iterator iterator() {
             return _orderByList.iterator();
         }
     
    @@ -263,12 +268,12 @@
     
         //==========================================================================
         // ===========
    -    // Basic-Override Method
    -    // =====================
    +    // Basic Override
    +    // ==============
         /**
          * This method overrides the method that is declared at super.
          * 
    -     * @return View-string of all-columns value.
    +     * @return The view string of all-columns value. (NotNUll)
          */
         public String toString() {
             return _orderByList.toString();
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByElement.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByElement.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/cbean/sqlclause/OrderByElement.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -1,5 +1,6 @@
     package jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause;
     
    +import java.io.Serializable;
     import java.util.Map;
     
     import jp.sf.pal.bookmark.db.allcommon.util.SimpleSystemUtil;
    @@ -7,7 +8,7 @@
     /**
      * @author DBFlute(AutoGenerator)
      */
    -public class OrderByElement implements java.io.Serializable {
    +public class OrderByElement implements Serializable {
     
         /** Serial version UID. (Default) */
         private static final long serialVersionUID = 1L;
    @@ -39,58 +40,8 @@
     
         //==========================================================================
         // ===========
    -    // Accessor
    -    // ========
    -    public String getAliasName() {
    -        return _aliasName;
    -    }
    -
    -    public String getColumnName() {
    -        return _columnName;
    -    }
    -
    -    public String getRegisteredAliasName() {
    -        return _registeredAliasName;
    -    }
    -
    -    public String getRegisteredColumnName() {
    -        return _registeredColumnName;
    -    }
    -
    -    public String getAscDesc() {
    -        return _ascDesc;
    -    }
    -
    -    public void setAliasName(String value) {
    -        _aliasName = value;
    -    }
    -
    -    public void setColumnName(String value) {
    -        _columnName = value;
    -    }
    -
    -    public void setRegisteredAliasName(String value) {
    -        _registeredAliasName = value;
    -    }
    -
    -    public void setRegisteredColumnName(String value) {
    -        _registeredColumnName = value;
    -    }
    -
    -    public void setAscDesc(String value) {
    -        _ascDesc = value;
    -    }
    -
    -    public void setOrderByNullsSetupper(
    -            OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) {
    -        _orderByNullsSetupper = value;
    -        _nullsFirst = nullsFirst;
    -    }
    -
    -    //==========================================================================
    -    // ===========
    -    // Behavior
    -    // ========
    +    // Manipulation
    +    // ============
         public void setupAsc() {
             _ascDesc = "asc";
         }
    @@ -115,6 +66,10 @@
             }
         }
     
    +    //==========================================================================
    +    // ===========
    +    // Order-By Expression
    +    // ===================
         public boolean isAsc() {
             if (_ascDesc == null) {
                 String msg = "The attribute[ascDesc] should not be null.";
    @@ -254,15 +209,65 @@
         /**
          * This method overrides the method that is declared at super.
          * 
    -     * @return View-string of all-columns value.
    +     * @return The view-string of all-columns value. (NotNull)
          */
         public String toString() {
             final StringBuilder sb = new StringBuilder();
    -        sb.append("[OrderByElement] aliasName=").append(_aliasName);
    +        sb.append("{aliasName=").append(_aliasName);
             sb.append(" columnName=").append(_columnName);
             sb.append(" registeredAliasName=").append(_registeredAliasName);
             sb.append(" registeredColumnName=").append(_registeredColumnName);
    -        sb.append(" ascDesc=").append(_ascDesc);
    +        sb.append(" ascDesc=").append(_ascDesc).append("}");
             return sb.toString();
         }
    +
    +    //==========================================================================
    +    // ===========
    +    // Accessor
    +    // ========
    +    public String getAliasName() {
    +        return _aliasName;
    +    }
    +
    +    public String getColumnName() {
    +        return _columnName;
    +    }
    +
    +    public String getRegisteredAliasName() {
    +        return _registeredAliasName;
    +    }
    +
    +    public String getRegisteredColumnName() {
    +        return _registeredColumnName;
    +    }
    +
    +    public String getAscDesc() {
    +        return _ascDesc;
    +    }
    +
    +    public void setAliasName(String value) {
    +        _aliasName = value;
    +    }
    +
    +    public void setColumnName(String value) {
    +        _columnName = value;
    +    }
    +
    +    public void setRegisteredAliasName(String value) {
    +        _registeredAliasName = value;
    +    }
    +
    +    public void setRegisteredColumnName(String value) {
    +        _registeredColumnName = value;
    +    }
    +
    +    public void setAscDesc(String value) {
    +        _ascDesc = value;
    +    }
    +
    +    public void setOrderByNullsSetupper(
    +            OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) {
    +        _orderByNullsSetupper = value;
    +        _nullsFirst = nullsFirst;
    +    }
     }
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/AbstractDBMeta.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/AbstractDBMeta.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/AbstractDBMeta.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -550,6 +550,10 @@
             return false;
         }
     
    +    public String getSequenceNextValSql() {
    +        return null;
    +    }
    +
         public boolean hasVersionNo() {
             return false;
         }
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMeta.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMeta.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMeta.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -54,12 +54,19 @@
         public String getTableDbName();
     
         /**
    -     * Get table prop-name(JavaBeansRule).
    +     * Get table property-name(JavaBeansRule).
          * 
          * @return Table property-name(JavaBeansRule). (NotNull)
          */
         public String getTablePropertyName();
     
    +    /**
    +     * Get table SQL-name.
    +     * 
    +     * @return Table SQL-name. (NotNull)
    +     */
    +    public String getTableSqlName();
    +
         //==========================================================================
         // =========
         // Name Handling
    @@ -335,6 +342,14 @@
          */
         public boolean hasSequence();
     
    +    /**
    +     * Get the SQL string for getting next value of sequence.
    +     * 
    +     * @return The SQL string for getting next value of sequence. (Nullable: If
    +     *         it does not have sequence, returns null.)
    +     */
    +    public String getSequenceNextValSql();
    +
         //==========================================================================
         // =========
         // Optimistic Lock Info
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMetaInstanceHandler.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMetaInstanceHandler.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/dbmeta/DBMetaInstanceHandler.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -27,9 +27,20 @@
         static {
             Map tmpMap = new LinkedHashMap();
     
    -        tmpMap.put("CATEGORY",
    -                "jp.sf.pal.bookmark.db.bsentity.dbmeta.CategoryDbm");
    -        tmpMap.put("LINK", "jp.sf.pal.bookmark.db.bsentity.dbmeta.LinkDbm");
    +        tmpMap.put("BOOKMARK_CATEGORY",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.BookmarkCategoryDbm");
    +        tmpMap.put("BOOKMARK_LINK",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.BookmarkLinkDbm");
    +        tmpMap.put("GROUP_INFO",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.GroupInfoDbm");
    +        tmpMap.put("GROUP_MAPPING",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.GroupMappingDbm");
    +        tmpMap.put("ROLE_INFO",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.RoleInfoDbm");
    +        tmpMap.put("ROLE_MAPPING",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.RoleMappingDbm");
    +        tmpMap.put("USER_INFO",
    +                "jp.sf.pal.bookmark.db.bsentity.dbmeta.UserInfoDbm");
     
             _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap);
         }
    @@ -39,8 +50,13 @@
         static {
             Map tmpMap = new LinkedHashMap();
     
    -        tmpMap.put("CATEGORY".toLowerCase(), "category");
    -        tmpMap.put("LINK".toLowerCase(), "link");
    +        tmpMap.put("BOOKMARK_CATEGORY".toLowerCase(), "bookmarkCategory");
    +        tmpMap.put("BOOKMARK_LINK".toLowerCase(), "bookmarkLink");
    +        tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo");
    +        tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping");
    +        tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo");
    +        tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping");
    +        tmpMap.put("USER_INFO".toLowerCase(), "userInfo");
     
             _tableDbNamePropertyNameKeyToLowerMap = Collections
                     .unmodifiableMap(tmpMap);
    @@ -51,8 +67,13 @@
         static {
             Map tmpMap = new LinkedHashMap();
     
    -        tmpMap.put("category".toLowerCase(), "CATEGORY");
    -        tmpMap.put("link".toLowerCase(), "LINK");
    +        tmpMap.put("bookmarkCategory".toLowerCase(), "BOOKMARK_CATEGORY");
    +        tmpMap.put("bookmarkLink".toLowerCase(), "BOOKMARK_LINK");
    +        tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO");
    +        tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING");
    +        tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO");
    +        tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING");
    +        tmpMap.put("userInfo".toLowerCase(), "USER_INFO");
     
             _tablePropertyNameDbNameKeyToLowerMap = Collections
                     .unmodifiableMap(tmpMap);
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/helper/token/line/impl/LineTokenImpl.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/helper/token/line/impl/LineTokenImpl.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/helper/token/line/impl/LineTokenImpl.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -13,6 +13,10 @@
      */
     public class LineTokenImpl implements LineToken {
     
    +    //==========================================================================
    +    // =========
    +    // Tokenize Line
    +    // =============
         public List tokenize(String lineString,
                 LineTokenizingOption lineTokenizingOption) {
             final String delimiter = lineTokenizingOption.getDelimiter();
    @@ -37,7 +41,7 @@
                     list.add(filterHandlingEmptyAsNull(pureValue,
                             lineTokenizingOption));
                 }
    -            i = j + 1;
    +            i = j + delimiter.length();
                 j = lineString.indexOf(delimiter, i);
             }
             list.add(filterHandlingEmptyAsNull(lineString.substring(i),
    @@ -56,6 +60,10 @@
             return target;
         }
     
    +    //==========================================================================
    +    // =========
    +    // Make Line
    +    // =========
         public String make(java.util.List valueList,
                 LineMakingOption lineMakingOption) {
             assertObjectNotNull("valueList", valueList);
    @@ -85,9 +93,10 @@
             return sb.toString();
         }
     
    -    // ----------------------------------------------------------------
    -    // Assert Object
    -    // -------------
    +    //==========================================================================
    +    // =========
    +    // General Helper
    +    // ==============
         /**
          * Assert that the object is not null.
          * 
    @@ -108,9 +117,6 @@
             }
         }
     
    -    // ----------------------------------------------------------------
    -    // Assert String
    -    // -------------
         /**
          * Assert that the entity is not null and not trimmed empty.
          * 
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/CursorHandler.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/CursorHandler.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/CursorHandler.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -1,7 +1,10 @@
     package jp.sf.pal.bookmark.db.allcommon.jdbc;
     
    +import java.sql.ResultSet;
    +import java.sql.SQLException;
    +
     /**
    - * The interface of statement history witness.
    + * The handler of cursor.
      * 
      * @author DBFlute(AutoGenerator)
      */
    @@ -12,5 +15,5 @@
          * @return Result
          * @throws java.sql.SQLException
          */
    -    Object handle(java.sql.ResultSet resultSet) throws java.sql.SQLException;
    +    Object handle(ResultSet resultSet) throws SQLException;
     }
    
    Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/SqlLogHandler.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/SqlLogHandler.java	                        (rev 0)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/SqlLogHandler.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -0,0 +1,18 @@
    +package jp.sf.pal.bookmark.db.allcommon.jdbc;
    +
    +/**
    + * The handler of SQL log.
    + * 
    + * @author DBFlute(AutoGenerator)
    + */
    +public interface SqlLogHandler {
    +
    +    /**
    +     * @param executedSql The executed SQL. (NotNull)
    +     * @param displaySql The SQL for display. (NotNull)
    +     * @param args The arguments of the SQL. (Nullable)
    +     * @param argTypes The argument types of the SQL. (Nullable)
    +     */
    +    void handle(String executedSql, String displaySql, Object[] args,
    +            Class[] argTypes);
    +}
    
    
    Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/jdbc/SqlLogHandler.java
    ___________________________________________________________________
    Name: svn:eol-style
       + native
    
    Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoLatestSqlProvider.java
    ===================================================================
    --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoLatestSqlProvider.java	2008-11-11 03:23:02 UTC (rev 1325)
    +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoLatestSqlProvider.java	2008-11-11 06:28:27 UTC (rev 1326)
    @@ -4,30 +4,17 @@
     import jp.sf.pal.bookmark.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry;
     
     /**
    - * The provider of latest SQL as S2Dao. 
    This instance should be - * singleton.
    + * The provider of latest SQL as S2Dao. This instance should be singleton. * * @author DBFlute(AutoGenerator) */ public class S2DaoLatestSqlProvider implements LatestSqlProvider { - /** - * The implementation. - * - * @return Display SQL. (Nullable: If it was not found, returns null.) - */ public String getDisplaySql() { - return getLastCompleteSql(); + return InternalSqlLogRegistry.peekCompleteSql(); } - protected String getLastCompleteSql() { - try { - return InternalSqlLogRegistry.peekCompleteSql(); - } catch (RuntimeException ignored) { - return null; - } - } - public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -15,10 +15,12 @@ import javax.sql.DataSource; import jp.sf.pal.bookmark.db.allcommon.BehaviorSelector; +import jp.sf.pal.bookmark.db.allcommon.Entity; import jp.sf.pal.bookmark.db.allcommon.annotation.OutsideSql; import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBeanContext; import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException; import jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException; import jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException; @@ -43,6 +45,7 @@ import jp.sf.pal.bookmark.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; import jp.sf.pal.bookmark.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; import jp.sf.pal.bookmark.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.bookmark.db.allcommon.util.SimpleSystemUtil; import org.seasar.dao.BeanEnhancer; import org.seasar.dao.BeanMetaData; @@ -241,9 +244,57 @@ //========================================================================== // ========= - // Setup Method by Auto - // ==================== + // Assert Override + // =============== @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override protected void setupMethodByAuto(Method method) { final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); if (outsideSql != null) { @@ -259,68 +310,115 @@ //========================================================================== // ========= - // ConditionBean Setup - // =================== + // ConditionBean Override + // ====================== @Override protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); final String[] argNames = daoAnnotationReader.getArgNames(method); final String query = daoAnnotationReader.getQuery(method); - final SqlCommand cmd; - if (query != null && !startsWithOrderBy(query)) { - // For Pure S2Dao *Deprecated at the future... - cmd = setupInternalQuerySelectMethodByAuto(method, handler, - argNames, query); - } else { - cmd = setupInternalNonQuerySelectMethodByAuto(method, handler, - argNames, query); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); } - putSqlCommand(method.getName(), cmd); - } - - // For Pure S2Dao *Deprecated at the future... - protected SelectDynamicCommand setupInternalQuerySelectMethodByAuto( - final Method method, final ResultSetHandler handler, - final String[] argNames, final String query) { final Class[] types = method.getParameterTypes(); final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, query); cmd.setArgNames(argNames); cmd.setArgTypes(types); - return cmd; + putSqlCommand(method.getName(), cmd); + return true; } - protected SqlCommand setupInternalNonQuerySelectMethodByAuto( - final Method method, final ResultSetHandler handler, - final String[] argNames, final String query) { - if (isAutoSelectSqlByDto(method, argNames)) { - return setupInternalNonQuerySelectMethodByDto(method, handler, - argNames, query); - } else { - // For Pure S2Dao *Deprecated at the future... - return setupNonQuerySelectMethodByArgs(method, handler, argNames, - query); + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); } } + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + // For condition-bean! protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, - ResultSetHandler handler, String[] argNames, String query) { - Class[] types = method.getParameterTypes(); - Class clazz = types[0]; - // /----------------------------------------------------- [MyExtension] - if (!ConditionBeanContext.isTheTypeConditionBean(clazz)) { - return super.setupNonQuerySelectMethodByDto(method, handler, - argNames, query); - } - argNames = new String[] { "dto" }; + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); - cmd.setArgNames(argNames); - cmd.setArgTypes(types); - // -----------/ + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); return cmd; } + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + //========================================================================== // ========= // Insert and Update and Delete By Auto Override @@ -691,9 +789,7 @@ // Normal OutsideSql // ----------------- @Override - protected void setupSelectMethodByManual(Method method, String sql) {// Contains - // SQL- - // Annotation + protected void setupSelectMethodByManual(Method method, String sql) { final Class[] pmbTypes = method.getParameterTypes(); final String[] argNames = this.daoAnnotationReader.getArgNames(method); final Class[] argTypes; @@ -722,29 +818,16 @@ .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); } - // @jflute -- This override causes exception, it's pending... - // This is for to use QLog about SQL-Annotation. But the priority is very - // low. - // - // @Override - // protected void setupUpdateMethodByManual(Method method, final String sql) - // {// Contains SQL-Annotation - // final InternalUpdateDynamicCommand cmd = new - // InternalUpdateDynamicCommand(dataSource, statementFactory); - // cmd.setSql(sql); - // String[] argNames = daoAnnotationReader.getArgNames(method); - // if (argNames.length == 0 && isUpdateSignatureForBean(method)) { - // argNames = new String[] { - // StringUtil.decapitalize(ClassUtil.getShortClassName(beanClass)) }; - // } - // - // // It is unnecessary for DBFlute! - // // cmd.setNotSingleRowUpdatedExceptionClass( - // getNotSingleRowUpdatedExceptionClass(method)); - // - // registerSqlCommand(method.getName(), method, sql, argNames, - // method.getParameterTypes(), cmd); - // } + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } // ----------------------------------------------------- // Specified OutsideSql @@ -1260,6 +1343,37 @@ //========================================================================== // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= // Accessor // ======== // ----------------------------------------------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -160,24 +160,7 @@ initializeDatabaseProductNameOfContext(xaDataSource); - final StringBuilder sb = new StringBuilder(); - sb.append("{SqlLog Information}").append(getLineSeparator()); - sb.append(" [SqlLogRegistry]").append(getLineSeparator()); - final Object sqlLogRegistry = InternalSqlLogRegistry - .findContainerSqlLogRegistry(); - if (sqlLogRegistry != null) { - InternalSqlLogRegistry.closeRegistration(); - sb - .append( - " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") - .append(getLineSeparator()); - sb - .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); - } else { - sb - .append(" SqlLogRegistry(org.seasar.extension.jdbc) was not found!"); - } - _log.info(sb); + handleSqlLogRegistry(); DBFluteConfig.getInstance().lock(); _log.info("* * * * */"); @@ -202,6 +185,41 @@ _log.info("{Injection Information}" + getLineSeparator() + sb); } + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + // ----------------------------------------------------- // Database Product Name // --------------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -10,6 +10,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlContext; import org.seasar.dao.BeanMetaData; import org.seasar.dao.RelationPropertyType; @@ -47,42 +48,57 @@ // Handle // ====== public Object handle(ResultSet rs) throws SQLException { - // Set - Set columnNames = null; + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; - // Map - Map propertyCache = null; // [DAO-118] (2007/08/26) - - // Map> - Map relationPropertyCache = null; // [DAO-118] (2007/08/25) - final List list = new ArrayList(); final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); - final RelationRowCache relRowCache = new RelationRowCache(relSize); final boolean hasCB = hasConditionBean(); - final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + while (rs.next()) { - // Lazy initialization because if the result is zero, the resources - // are unused. if (columnNames == null) { columnNames = createColumnNames(rs.getMetaData()); } if (propertyCache == null) { propertyCache = createPropertyCache(columnNames); } - if (relationPropertyCache == null) { - relationPropertyCache = createRelationPropertyCache(columnNames); - } // Create row instance of base table by row property cache. final Object row = createRow(rs, propertyCache); - if (hasCB && emptyRelation) { + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { postCreateRow(row); list.add(row); continue; } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } for (int i = 0; i < relSize; ++i) { final RelationPropertyType rpt = getBeanMetaData() .getRelationPropertyType(i); @@ -195,7 +211,26 @@ return false; } + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ protected String buildRelationNoSuffix(RelationPropertyType rpt) { return "_" + rpt.getRelationNo(); } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -8,6 +8,7 @@ import javax.sql.DataSource; +import jp.sf.pal.bookmark.db.allcommon.CallbackContext; import jp.sf.pal.bookmark.db.allcommon.DBFluteConfig; import jp.sf.pal.bookmark.db.allcommon.InternalMapContext; import jp.sf.pal.bookmark.db.allcommon.QLog; @@ -16,6 +17,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.outsidesql.OutsideSqlContext; import jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException; import jp.sf.pal.bookmark.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.bookmark.db.allcommon.jdbc.SqlLogHandler; import jp.sf.pal.bookmark.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; import jp.sf.pal.bookmark.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; import jp.sf.pal.bookmark.db.allcommon.util.SimpleSystemUtil; @@ -60,8 +62,11 @@ //========================================================================== // ========= - // Basic Method for SubClass - // ========================= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- protected void bindArgs(PreparedStatement ps, Object[] args, Class[] argTypes) { if (args == null) { @@ -91,42 +96,65 @@ return argTypes; } - protected String getCompleteSql(Object[] args) { - return InternalBindVariableUtil.getCompleteSql(sql, args); + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } } - protected String getBindVariableText(Object bindVariable) { - return InternalBindVariableUtil.getBindVariableText(bindVariable); + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); } - protected ValueType getValueType(Class clazz) { - return ValueTypes.getValueType(clazz); + protected void log(String msg) { + QLog.log(msg); } - protected void logSql(Object[] args, Class[] argTypes) { - if (QLog.isLogEnabled() - || InternalSqlLogRegistry.existsSqlLogRegistry()) { - final String completeSql = getCompleteSql(args); - if (isContainsLineSeparatorInSql()) { - QLog.log(getLineSeparator() + completeSql); - } else { - QLog.log(completeSql); - } - if (InternalSqlLogRegistry.existsSqlLogRegistry()) { - final Object sqlLogRegistry = InternalSqlLogRegistry - .findContainerSqlLogRegistry(); - if (sqlLogRegistry != null) { - InternalSqlLogRegistry.push(getSql(), completeSql, args, - argTypes, sqlLogRegistry); - } - } + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); } protected boolean isContainsLineSeparatorInSql() { return sql != null ? sql.contains(getLineSeparator()) : false; } + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + //========================================================================== // ========= // Exception Handler @@ -530,6 +558,31 @@ //========================================================================== // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= // General Helper // ============== protected String getLineSeparator() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -28,11 +28,11 @@ protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; - - protected static boolean STATUS_SqlLogExists = false; static { forNameContainerSqlLogRegistryLocator(); } @@ -41,10 +41,56 @@ // ========= // Public Entry // ============ - public static boolean existsSqlLogRegistry() { - return STATUS_SqlLogExists; + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } } + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + public static Object findContainerSqlLogRegistry() { final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); if (sqlLogRegistryLocatorType == null) { @@ -75,7 +121,7 @@ try { final Method method = sqlLogRegistryLocatorType.getMethod( NAME_setInstance, new Class[] { sqlLogRegistryType }); - _log.info("...Closing the registration of sqlLog."); + _log.info("...Closing the registry of sqlLog."); method.invoke(null, new Object[] { null }); } catch (Exception e) { String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; @@ -113,6 +159,22 @@ // ========= // Container Reflection // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + protected static Object createContainerSqlLogImpl(String rawSql, String completeSql, Object[] bindArgs, Class[] bindArgTypes) { try { @@ -187,9 +249,7 @@ Class clazz = null; try { clazz = Class.forName(NAME_SqlLogRegistryLocator); - STATUS_SqlLogExists = true; } catch (Exception ignored) { - STATUS_SqlLogExists = false; return null; } return clazz; @@ -204,4 +264,14 @@ } return clazz; } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } } Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,137 @@ +package jp.sf.pal.bookmark.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,827 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.BookmarkCategoryDbm; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.exbhv.BookmarkLinkBhv; +import jp.sf.pal.bookmark.db.exdao.BookmarkCategoryDao; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; + +/** + * The behavior of BOOKMARK_CATEGORY. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, MEMO, TYPE, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     BOOKMARK_LINK
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     bookmarkLinkList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsBookmarkCategoryBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected BookmarkCategoryDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "BOOKMARK_CATEGORY"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return BookmarkCategoryDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public BookmarkCategoryDbm getMyDBMeta() { + return BookmarkCategoryDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public BookmarkCategoryDao getMyDao() { + return _dao; + } + + public void setMyDao(BookmarkCategoryDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public BookmarkCategory newMyEntity() { + return new BookmarkCategory(); + } + + public BookmarkCategoryCB newMyConditionBean() { + return new BookmarkCategoryCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of BookmarkCategory. (NotNull) + * @return The selected count. + */ + public int selectCount(BookmarkCategoryCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of BookmarkCategory. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public BookmarkCategory selectEntity(final BookmarkCategoryCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + BookmarkCategoryCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of BookmarkCategory. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public BookmarkCategory selectEntityWithDeletedCheck( + final BookmarkCategoryCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + BookmarkCategoryCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public BookmarkCategory selectByPKValueWithDeletedCheck(Integer id) { + BookmarkCategory entity = new BookmarkCategory(); + entity.setId(id); + final BookmarkCategoryCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of BookmarkCategory. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(BookmarkCategoryCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of BookmarkCategory. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final BookmarkCategoryCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of BookmarkCategory. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + BookmarkCategoryCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of bookmarkLinkList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setCategoryId_InScope(pkList);
    +     * cb.query().addOrderBy_CategoryId_Asc();
    +     * 
    + * + * @param bookmarkCategoryList The entity list of bookmarkCategory. + * (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadBookmarkLinkList( + List bookmarkCategoryList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("bookmarkCategoryList", + bookmarkCategoryList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (bookmarkCategoryList.isEmpty()) { + return; + } + loadBookmarkLinkList(bookmarkCategoryList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param bookmarkCategoryList The entity list of bookmarkCategory. + * (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadBookmarkLinkList( + List bookmarkCategoryList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("bookmarkCategoryList", + bookmarkCategoryList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (bookmarkCategoryList.isEmpty()) { + return; + } + final BookmarkLinkBhv referrerBhv = xgetBSFLR().select( + BookmarkLinkBhv.class); + helpLoadReferrerInternally( + bookmarkCategoryList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Integer callbackBase_getPrimaryKeyValue( + BookmarkCategory entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + BookmarkCategory entity, + List referrerList) { + entity.setBookmarkLinkList(referrerList); + } + + public BookmarkLinkCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + BookmarkLinkCB cb, List pkList) { + cb.query().setCategoryId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + BookmarkLinkCB cb) { + cb.query().addOrderBy_CategoryId_Asc(); + } + + public List callbackReferrer_selectList( + BookmarkLinkCB cb) { + return referrerBhv.selectList(cb); + } + + public Integer callbackReferrer_getForeignKeyValue( + BookmarkLink entity) { + return entity.getCategoryId(); + } + + public void callbackReferrer_setForeignEntity( + BookmarkLink referrerEntity, + BookmarkCategory baseEntity) { + referrerEntity.setBookmarkCategory(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param bookmarkCategory The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(BookmarkCategory bookmarkCategory) { + assertEntityNotNull(bookmarkCategory); + delegateInsert(bookmarkCategory); + } + + @Override + protected void doCreate(Entity bookmarkCategory) { + insert((BookmarkCategory) bookmarkCategory); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param bookmarkCategory The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final BookmarkCategory bookmarkCategory) { + helpUpdateInternally(bookmarkCategory, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(BookmarkCategory entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((BookmarkCategory) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param bookmarkCategory The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final BookmarkCategory bookmarkCategory) { + helpUpdateNonstrictInternally(bookmarkCategory, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + BookmarkCategory entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((BookmarkCategory) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param bookmarkCategory The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final BookmarkCategory bookmarkCategory) { + helpInsertOrUpdateInternally( + bookmarkCategory, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(BookmarkCategory entity) { + insert(entity); + } + + public void callbackUpdate(BookmarkCategory entity) { + update(entity); + } + + public BookmarkCategoryCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(BookmarkCategoryCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity bookmarkCategory) { + insertOrUpdate((BookmarkCategory) bookmarkCategory); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param bookmarkCategory The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(BookmarkCategory bookmarkCategory) { + helpInsertOrUpdateInternally( + bookmarkCategory, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(BookmarkCategory entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(BookmarkCategory entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((BookmarkCategory) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param bookmarkCategory The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(BookmarkCategory bookmarkCategory) { + helpDeleteInternally(bookmarkCategory, + new InternalDeleteCallback() { + public int callbackDelegateDelete(BookmarkCategory entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity bookmarkCategory) { + delete((BookmarkCategory) bookmarkCategory); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param bookmarkCategory Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(BookmarkCategory bookmarkCategory) { + helpDeleteNonstrictInternally(bookmarkCategory, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + BookmarkCategory entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param bookmarkCategory Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(BookmarkCategory bookmarkCategory) { + helpDeleteNonstrictIgnoreDeletedInternally( + bookmarkCategory, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + BookmarkCategory entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param bookmarkCategoryList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List bookmarkCategoryList) { + assertObjectNotNull("bookmarkCategoryList", bookmarkCategoryList); + return delegateInsertList(bookmarkCategoryList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param bookmarkCategoryList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List bookmarkCategoryList) { + assertObjectNotNull("bookmarkCategoryList", bookmarkCategoryList); + return delegateUpdateList(bookmarkCategoryList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param bookmarkCategoryList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict( + List bookmarkCategoryList) { + assertObjectNotNull("bookmarkCategoryList", bookmarkCategoryList); + return delegateUpdateListNonstrict(bookmarkCategoryList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param bookmarkCategoryList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List bookmarkCategoryList) { + assertObjectNotNull("bookmarkCategoryList", bookmarkCategoryList); + return delegateDeleteList(bookmarkCategoryList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param bookmarkCategoryList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict( + List bookmarkCategoryList) { + assertObjectNotNull("bookmarkCategoryList", bookmarkCategoryList); + return delegateDeleteListNonstrict(bookmarkCategoryList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param bookmarkCategory Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(BookmarkCategory bookmarkCategory, + BookmarkCategoryCB cb) { + assertObjectNotNull("bookmarkCategory", bookmarkCategory); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(bookmarkCategory); + filterEntityOfUpdate(bookmarkCategory); + assertEntityOfUpdate(bookmarkCategory); + return getMyDao().updateByQuery(cb, bookmarkCategory); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(BookmarkCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(BookmarkCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(BookmarkCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(BookmarkCategory e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(BookmarkCategory e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(BookmarkCategory e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(BookmarkCategory e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(BookmarkCategory e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("bookmarkCategoryList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("bookmarkCategoryList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("bookmarkCategoryList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("bookmarkCategoryList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("bookmarkCategoryList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected BookmarkCategory downcast(Entity entity) { + return helpDowncastInternally(entity, BookmarkCategory.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,735 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.BookmarkLinkDbm; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.exdao.BookmarkLinkDao; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; + +/** + * The behavior of BOOKMARK_LINK. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, MEMO, URL, TYPE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     BOOKMARK_CATEGORY
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     bookmarkCategory
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsBookmarkLinkBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected BookmarkLinkDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "BOOKMARK_LINK"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return BookmarkLinkDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public BookmarkLinkDbm getMyDBMeta() { + return BookmarkLinkDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public BookmarkLinkDao getMyDao() { + return _dao; + } + + public void setMyDao(BookmarkLinkDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public BookmarkLink newMyEntity() { + return new BookmarkLink(); + } + + public BookmarkLinkCB newMyConditionBean() { + return new BookmarkLinkCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of BookmarkLink. (NotNull) + * @return The selected count. + */ + public int selectCount(BookmarkLinkCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of BookmarkLink. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public BookmarkLink selectEntity(final BookmarkLinkCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + BookmarkLinkCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of BookmarkLink. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public BookmarkLink selectEntityWithDeletedCheck(final BookmarkLinkCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + BookmarkLinkCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public BookmarkLink selectByPKValueWithDeletedCheck(Long id) { + BookmarkLink entity = new BookmarkLink(); + entity.setId(id); + final BookmarkLinkCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of BookmarkLink. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(BookmarkLinkCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of BookmarkLink. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final BookmarkLinkCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of BookmarkLink. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + BookmarkLinkCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'BookmarkCategory'. + * + * @param bookmarkLinkList The list of bookmarkLink. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutBookmarkCategory( + List bookmarkLinkList) { + return helpPulloutInternally(bookmarkLinkList, + new InternalPulloutCallback() { + public BookmarkCategory callbackGetForeignEntity( + BookmarkLink entity) { + return entity.getBookmarkCategory(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param bookmarkLink The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(BookmarkLink bookmarkLink) { + assertEntityNotNull(bookmarkLink); + delegateInsert(bookmarkLink); + } + + @Override + protected void doCreate(Entity bookmarkLink) { + insert((BookmarkLink) bookmarkLink); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param bookmarkLink The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final BookmarkLink bookmarkLink) { + helpUpdateInternally(bookmarkLink, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(BookmarkLink entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((BookmarkLink) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param bookmarkLink The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final BookmarkLink bookmarkLink) { + helpUpdateNonstrictInternally(bookmarkLink, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + BookmarkLink entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((BookmarkLink) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param bookmarkLink The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final BookmarkLink bookmarkLink) { + helpInsertOrUpdateInternally( + bookmarkLink, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(BookmarkLink entity) { + insert(entity); + } + + public void callbackUpdate(BookmarkLink entity) { + update(entity); + } + + public BookmarkLinkCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(BookmarkLinkCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity bookmarkLink) { + insertOrUpdate((BookmarkLink) bookmarkLink); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param bookmarkLink The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(BookmarkLink bookmarkLink) { + helpInsertOrUpdateInternally(bookmarkLink, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(BookmarkLink entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(BookmarkLink entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((BookmarkLink) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param bookmarkLink The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(BookmarkLink bookmarkLink) { + helpDeleteInternally(bookmarkLink, + new InternalDeleteCallback() { + public int callbackDelegateDelete(BookmarkLink entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity bookmarkLink) { + delete((BookmarkLink) bookmarkLink); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param bookmarkLink Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(BookmarkLink bookmarkLink) { + helpDeleteNonstrictInternally(bookmarkLink, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + BookmarkLink entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param bookmarkLink Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(BookmarkLink bookmarkLink) { + helpDeleteNonstrictIgnoreDeletedInternally( + bookmarkLink, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + BookmarkLink entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param bookmarkLinkList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List bookmarkLinkList) { + assertObjectNotNull("bookmarkLinkList", bookmarkLinkList); + return delegateInsertList(bookmarkLinkList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param bookmarkLinkList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List bookmarkLinkList) { + assertObjectNotNull("bookmarkLinkList", bookmarkLinkList); + return delegateUpdateList(bookmarkLinkList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param bookmarkLinkList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List bookmarkLinkList) { + assertObjectNotNull("bookmarkLinkList", bookmarkLinkList); + return delegateUpdateListNonstrict(bookmarkLinkList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param bookmarkLinkList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List bookmarkLinkList) { + assertObjectNotNull("bookmarkLinkList", bookmarkLinkList); + return delegateDeleteList(bookmarkLinkList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param bookmarkLinkList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List bookmarkLinkList) { + assertObjectNotNull("bookmarkLinkList", bookmarkLinkList); + return delegateDeleteListNonstrict(bookmarkLinkList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param bookmarkLink Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(BookmarkLink bookmarkLink, BookmarkLinkCB cb) { + assertObjectNotNull("bookmarkLink", bookmarkLink); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(bookmarkLink); + filterEntityOfUpdate(bookmarkLink); + assertEntityOfUpdate(bookmarkLink); + return getMyDao().updateByQuery(cb, bookmarkLink); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(BookmarkLinkCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(BookmarkLinkCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(BookmarkLinkCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(BookmarkLink e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(BookmarkLink e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(BookmarkLink e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(BookmarkLink e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(BookmarkLink e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("bookmarkLinkList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("bookmarkLinkList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("bookmarkLinkList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("bookmarkLinkList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("bookmarkLinkList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected BookmarkLink downcast(Entity entity) { + return helpDowncastInternally(entity, BookmarkLink.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsCategoryBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsCategoryBhv.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsCategoryBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,812 +0,0 @@ -package jp.sf.pal.bookmark.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.bookmark.db.allcommon.DaoReadable; -import jp.sf.pal.bookmark.db.allcommon.DaoWritable; -import jp.sf.pal.bookmark.db.allcommon.Entity; -import jp.sf.pal.bookmark.db.allcommon.bhv.load.LoadReferrerOption; -import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ConditionBeanSetupper; -import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.bookmark.db.bsentity.dbmeta.CategoryDbm; -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.exbhv.LinkBhv; -import jp.sf.pal.bookmark.db.exdao.CategoryDao; -import jp.sf.pal.bookmark.db.exentity.Category; -import jp.sf.pal.bookmark.db.exentity.Link; - -/** - * The behavior of CATEGORY. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, NAME, MEMO, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     
    - * 
    - * [referrer-table]
    - *     LINK
    - * 
    - * [foreign-property]
    - *     
    - * 
    - * [referrer-property]
    - *     linkList
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsCategoryBhv extends - jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected CategoryDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "CATEGORY"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return CategoryDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public CategoryDbm getMyDBMeta() { - return CategoryDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public CategoryDao getMyDao() { - return _dao; - } - - public void setMyDao(CategoryDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public Category newMyEntity() { - return new Category(); - } - - public CategoryCB newMyConditionBean() { - return new CategoryCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of Category. (NotNull) - * @return The selected count. - */ - public int selectCount(CategoryCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of Category. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public Category selectEntity(final CategoryCB cb) { - return helpSelectEntityInternally(cb, - new InternalSelectEntityCallback() { - public List callbackSelectList(CategoryCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of Category. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public Category selectEntityWithDeletedCheck(final CategoryCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList(CategoryCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public Category selectByPKValueWithDeletedCheck(Integer id) { - Category entity = new Category(); - entity.setId(id); - final CategoryCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result-bean. - * - * @param cb The condition-bean of Category. (NotNull) - * @return The result-bean of selected list. (NotNull) - */ - public ListResultBean selectList(CategoryCB cb) { - assertConditionBeanNotNull(cb); - return new jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result-bean. - * - * @param cb The condition-bean of Category. (NotNull) - * @return The result-bean of selected page. (NotNull) - */ - public PagingResultBean selectPage(final CategoryCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of Category. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - CategoryCB cb, ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - /** - * Load referrer of linkList with the setupper for condition-bean of - * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as - * follows: - * - *
    -     * cb.query().setCategoryId_InScope(pkList);
    -     * cb.query().addOrderBy_CategoryId_Asc();
    -     * 
    - * - * @param categoryList The entity list of category. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) - */ - public void loadLinkList(List categoryList, - ConditionBeanSetupper conditionBeanSetupper) { - assertObjectNotNull("categoryList", categoryList); - assertObjectNotNull("conditionBeanSetupper", - conditionBeanSetupper); - if (categoryList.isEmpty()) { - return; - } - loadLinkList(categoryList, new LoadReferrerOption( - conditionBeanSetupper)); - } - - /** - * {Refer to overload method that has an argument of condition-bean - * setupper.} - * - * @param categoryList The entity list of category. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) - */ - public void loadLinkList(List categoryList, - LoadReferrerOption loadReferrerOption) { - assertObjectNotNull("categoryList", categoryList); - assertObjectNotNull("loadReferrerOption", - loadReferrerOption); - if (categoryList.isEmpty()) { - return; - } - final LinkBhv referrerBhv = getBehaviorSelector().select(LinkBhv.class); - helpLoadReferrerInternally( - categoryList, - loadReferrerOption, - new InternalLoadReferrerCallback() { - public Integer callbackBase_getPrimaryKeyValue( - Category entity) { - return entity.getId(); - } - - public void callbackBase_setReferrerList(Category entity, - List referrerList) { - entity.setLinkList(referrerList); - } - - public LinkCB callbackReferrer_newMyConditionBean() { - return referrerBhv.newMyConditionBean(); - } - - public void callbackReferrer_queryForeignKeyInScope( - LinkCB cb, List pkList) { - cb.query().setCategoryId_InScope(pkList); - } - - public void callbackReferrer_queryAddOrderByForeignKeyAsc( - LinkCB cb) { - cb.query().addOrderBy_CategoryId_Asc(); - } - - public List callbackReferrer_selectList(LinkCB cb) { - return referrerBhv.selectList(cb); - } - - public Integer callbackReferrer_getForeignKeyValue( - Link entity) { - return entity.getCategoryId(); - } - - public void callbackReferrer_setForeignEntity( - Link referrerEntity, Category baseEntity) { - referrerEntity.setCategory(baseEntity); - } - }); - } - - //========================================================================== - // ========= - // Pull Out Foreign - // ================ - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param category The entity of insert target. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(Category category) { - assertEntityNotNull(category); - delegateInsert(category); - } - - @Override - protected void doCreate(Entity category) { - insert((Category) category); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param category The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final Category category) { - helpUpdateInternally(category, new InternalUpdateCallback() { - public int callbackDelegateUpdate(Category entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((Category) entity); - } - - /** - * Update the entity non-strictly modified-only. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param category The entity of update target. (NotNull) - * {PrimaryKeyRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void updateNonstrict(final Category category) { - helpUpdateNonstrictInternally(category, - new InternalUpdateNonstrictCallback() { - public int callbackDelegateUpdateNonstrict(Category entity) { - return delegateUpdateNonstrict(entity); - } - }); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - updateNonstrict((Category) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param category The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate(final Category category) { - helpInsertOrUpdateInternally(category, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(Category entity) { - insert(entity); - } - - public void callbackUpdate(Category entity) { - update(entity); - } - - public CategoryCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(CategoryCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity category) { - insertOrUpdate((Category) category); - } - - /** - * Insert or update the entity non-strictly modified-only. - * {NonConcurrencyControl(when update)} - * - * @param category The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdateNonstrict(Category category) { - helpInsertOrUpdateInternally(category, - new InternalInsertOrUpdateNonstrictCallback() { - public void callbackInsert(Category entity) { - insert(entity); - } - - public void callbackUpdateNonstrict(Category entity) { - updateNonstrict(entity); - } - }); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdateNonstrict((Category) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param category The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(Category category) { - helpDeleteInternally(category, new InternalDeleteCallback() { - public int callbackDelegateDelete(Category entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity category) { - delete((Category) category); - } - - /** - * Delete the entity non-strictly. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param category Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrict(Category category) { - helpDeleteNonstrictInternally(category, - new InternalDeleteNonstrictCallback() { - public int callbackDelegateDeleteNonstrict(Category entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - /** - * Delete the entity non-strictly ignoring deleted. - * {UpdateCountZeroException, NonConcurrencyControl} - * - * @param category Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrictIgnoreDeleted(Category category) { - helpDeleteNonstrictIgnoreDeletedInternally(category, - new InternalDeleteNonstrictIgnoreDeletedCallback() { - public int callbackDelegateDeleteNonstrict(Category entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param categoryList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert(List categoryList) { - assertObjectNotNull("categoryList", categoryList); - return delegateInsertList(categoryList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param categoryList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchUpdate(List categoryList) { - assertObjectNotNull("categoryList", categoryList); - return delegateUpdateList(categoryList); - } - - /** - * Batch update the list non-strictly. All columns are update target. {NOT - * modified only}
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param categoryList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdateNonstrict(List categoryList) { - assertObjectNotNull("categoryList", categoryList); - return delegateUpdateListNonstrict(categoryList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param categoryList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchDelete(List categoryList) { - assertObjectNotNull("categoryList", categoryList); - return delegateDeleteList(categoryList); - } - - /** - * Batch delete the list non-strictly.
    This method use 'Batch Update' - * of java.sql.PreparedStatement. - * - * @param categoryList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDeleteNonstrict(List categoryList) { - assertObjectNotNull("categoryList", categoryList); - return delegateDeleteListNonstrict(categoryList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param category Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(Category category, CategoryCB cb) { - assertObjectNotNull("category", category); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(category); - filterEntityOfUpdate(category); - assertEntityOfUpdate(category); - return getMyDao().updateByQuery(cb, category); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(CategoryCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Category delegateGetEntity(Integer id) { - return getMyDao().getEntity(id); - } - - protected int delegateSelectCount(CategoryCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList(CategoryCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(Category e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(Category e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateUpdateNonstrict(Category e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateNonstrictModifiedOnly(e); - } - - protected int delegateDelete(Category e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int delegateDeleteNonstrict(Category e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().deleteNonstrict(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("categoryList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("categoryList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateUpdateListNonstrict(List ls) { - assertObjectNotNull("categoryList", ls); - return getMyDao().updateListNonstrict( - helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("categoryList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - protected int[] delegateDeleteListNonstrict(List ls) { - assertObjectNotNull("categoryList", ls); - return getMyDao().deleteListNonstrict( - helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return !(downcast(entity).getVersionno() + "").equals("null");// For - // primitive - // type - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected Category downcast(Entity entity) { - return helpDowncastInternally(entity, Category.class); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupInfoBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,897 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.exbhv.GroupMappingBhv; +import jp.sf.pal.bookmark.db.exbhv.UserInfoBhv; +import jp.sf.pal.bookmark.db.exdao.GroupInfoDao; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupMappingBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,602 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.exdao.GroupMappingDao; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsLinkBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsLinkBhv.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsLinkBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,735 +0,0 @@ -package jp.sf.pal.bookmark.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.bookmark.db.allcommon.DaoReadable; -import jp.sf.pal.bookmark.db.allcommon.DaoWritable; -import jp.sf.pal.bookmark.db.allcommon.Entity; -import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.bookmark.db.bsentity.dbmeta.LinkDbm; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.exdao.LinkDao; -import jp.sf.pal.bookmark.db.exentity.Category; -import jp.sf.pal.bookmark.db.exentity.Link; - -/** - * The behavior of LINK. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, NAME, MEMO, URL, TYPE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     CATEGORY
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     category
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsLinkBhv extends - jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected LinkDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "LINK"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return LinkDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public LinkDbm getMyDBMeta() { - return LinkDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public LinkDao getMyDao() { - return _dao; - } - - public void setMyDao(LinkDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public Link newMyEntity() { - return new Link(); - } - - public LinkCB newMyConditionBean() { - return new LinkCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of Link. (NotNull) - * @return The selected count. - */ - public int selectCount(LinkCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of Link. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public Link selectEntity(final LinkCB cb) { - return helpSelectEntityInternally(cb, - new InternalSelectEntityCallback() { - public List callbackSelectList(LinkCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of Link. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public Link selectEntityWithDeletedCheck(final LinkCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList(LinkCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public Link selectByPKValueWithDeletedCheck(Long id) { - Link entity = new Link(); - entity.setId(id); - final LinkCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result-bean. - * - * @param cb The condition-bean of Link. (NotNull) - * @return The result-bean of selected list. (NotNull) - */ - public ListResultBean selectList(LinkCB cb) { - assertConditionBeanNotNull(cb); - return new jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result-bean. - * - * @param cb The condition-bean of Link. (NotNull) - * @return The result-bean of selected page. (NotNull) - */ - public PagingResultBean selectPage(final LinkCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of Link. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList(LinkCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - - //========================================================================== - // ========= - // Pull Out Foreign - // ================ - - /** - * Pull out the list of foreign table 'Category'. - * - * @param linkList The list of link. (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutCategory(List linkList) { - return helpPulloutInternally(linkList, - new InternalPulloutCallback() { - public Category callbackGetForeignEntity(Link entity) { - return entity.getCategory(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param link The entity of insert target. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(Link link) { - assertEntityNotNull(link); - delegateInsert(link); - } - - @Override - protected void doCreate(Entity link) { - insert((Link) link); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param link The entity of update target. (NotNull) {PrimaryKeyRequired, - * ConcurrencyColumnRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final Link link) { - helpUpdateInternally(link, new InternalUpdateCallback() { - public int callbackDelegateUpdate(Link entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((Link) entity); - } - - /** - * Update the entity non-strictly modified-only. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param link The entity of update target. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void updateNonstrict(final Link link) { - helpUpdateNonstrictInternally(link, - new InternalUpdateNonstrictCallback() { - public int callbackDelegateUpdateNonstrict(Link entity) { - return delegateUpdateNonstrict(entity); - } - }); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - updateNonstrict((Link) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param link The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate(final Link link) { - helpInsertOrUpdateInternally(link, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(Link entity) { - insert(entity); - } - - public void callbackUpdate(Link entity) { - update(entity); - } - - public LinkCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(LinkCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity link) { - insertOrUpdate((Link) link); - } - - /** - * Insert or update the entity non-strictly modified-only. - * {NonConcurrencyControl(when update)} - * - * @param link The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdateNonstrict(Link link) { - helpInsertOrUpdateInternally(link, - new InternalInsertOrUpdateNonstrictCallback() { - public void callbackInsert(Link entity) { - insert(entity); - } - - public void callbackUpdateNonstrict(Link entity) { - updateNonstrict(entity); - } - }); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdateNonstrict((Link) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param link The entity of delete target. (NotNull) {PrimaryKeyRequired, - * ConcurrencyColumnRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(Link link) { - helpDeleteInternally(link, new InternalDeleteCallback() { - public int callbackDelegateDelete(Link entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity link) { - delete((Link) link); - } - - /** - * Delete the entity non-strictly. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param link Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrict(Link link) { - helpDeleteNonstrictInternally(link, - new InternalDeleteNonstrictCallback() { - public int callbackDelegateDeleteNonstrict(Link entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - /** - * Delete the entity non-strictly ignoring deleted. - * {UpdateCountZeroException, NonConcurrencyControl} - * - * @param link Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrictIgnoreDeleted(Link link) { - helpDeleteNonstrictIgnoreDeletedInternally(link, - new InternalDeleteNonstrictIgnoreDeletedCallback() { - public int callbackDelegateDeleteNonstrict(Link entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param linkList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert(List linkList) { - assertObjectNotNull("linkList", linkList); - return delegateInsertList(linkList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param linkList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchUpdate(List linkList) { - assertObjectNotNull("linkList", linkList); - return delegateUpdateList(linkList); - } - - /** - * Batch update the list non-strictly. All columns are update target. {NOT - * modified only}
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param linkList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdateNonstrict(List linkList) { - assertObjectNotNull("linkList", linkList); - return delegateUpdateListNonstrict(linkList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param linkList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchDelete(List linkList) { - assertObjectNotNull("linkList", linkList); - return delegateDeleteList(linkList); - } - - /** - * Batch delete the list non-strictly.
    This method use 'Batch Update' - * of java.sql.PreparedStatement. - * - * @param linkList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDeleteNonstrict(List linkList) { - assertObjectNotNull("linkList", linkList); - return delegateDeleteListNonstrict(linkList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param link Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(Link link, LinkCB cb) { - assertObjectNotNull("link", link); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(link); - filterEntityOfUpdate(link); - assertEntityOfUpdate(link); - return getMyDao().updateByQuery(cb, link); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(LinkCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Link delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - - protected int delegateSelectCount(LinkCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList(LinkCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(Link e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(Link e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateUpdateNonstrict(Link e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateNonstrictModifiedOnly(e); - } - - protected int delegateDelete(Link e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int delegateDeleteNonstrict(Link e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().deleteNonstrict(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("linkList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("linkList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateUpdateListNonstrict(List ls) { - assertObjectNotNull("linkList", ls); - return getMyDao().updateListNonstrict( - helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("linkList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - protected int[] delegateDeleteListNonstrict(List ls) { - assertObjectNotNull("linkList", ls); - return getMyDao().deleteListNonstrict( - helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return !(downcast(entity).getVersionno() + "").equals("null");// For - // primitive - // type - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected Link downcast(Entity entity) { - return helpDowncastInternally(entity, Link.class); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleInfoBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,895 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.exbhv.RoleMappingBhv; +import jp.sf.pal.bookmark.db.exbhv.UserInfoBhv; +import jp.sf.pal.bookmark.db.exdao.RoleInfoDao; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleMappingBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,597 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.exdao.RoleMappingDao; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,927 @@ +package jp.sf.pal.bookmark.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.bookmark.db.allcommon.DaoReadable; +import jp.sf.pal.bookmark.db.allcommon.DaoWritable; +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.bookmark.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.exbhv.GroupMappingBhv; +import jp.sf.pal.bookmark.db.exbhv.RoleMappingBhv; +import jp.sf.pal.bookmark.db.exdao.UserInfoDao; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.bookmark.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.bookmark.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkCategoryDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkCategoryDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkCategoryDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; + +/** + * The DAO interface of BOOKMARK_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsBookmarkCategoryDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = BookmarkCategory.class; // For S2Dao + + public int selectCount(BookmarkCategoryCB cb); + + public List selectList(BookmarkCategoryCB cb); + + int insert(BookmarkCategory entity); + + int updateModifiedOnly(BookmarkCategory entity); + + int updateNonstrictModifiedOnly(BookmarkCategory entity); + + int delete(BookmarkCategory entity); + + int deleteNonstrict(BookmarkCategory entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(BookmarkCategoryCB cb, BookmarkCategory entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(BookmarkCategoryCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkCategoryDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkLinkDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkLinkDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkLinkDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; + +/** + * The DAO interface of BOOKMARK_LINK. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsBookmarkLinkDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = BookmarkLink.class; // For S2Dao + + public int selectCount(BookmarkLinkCB cb); + + public List selectList(BookmarkLinkCB cb); + + int insert(BookmarkLink entity); + + int updateModifiedOnly(BookmarkLink entity); + + int updateNonstrictModifiedOnly(BookmarkLink entity); + + int delete(BookmarkLink entity); + + int deleteNonstrict(BookmarkLink entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(BookmarkLinkCB cb, BookmarkLink entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(BookmarkLinkCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsBookmarkLinkDao.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsCategoryDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsCategoryDao.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsCategoryDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,60 +0,0 @@ -package jp.sf.pal.bookmark.db.bsdao; - -import java.util.List; - -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.exentity.Category; - -/** - * The dao interface of CATEGORY. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface BsCategoryDao extends - jp.sf.pal.bookmark.db.allcommon.DaoWritable { - - public Class BEAN = Category.class;// For S2Dao - - public static final String getCountAll_SQL = "select count(*) from CATEGORY"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, NAME, MEMO, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from CATEGORY"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, NAME, MEMO, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from CATEGORY where CATEGORY.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Category getEntity(Integer id); - - public int selectCount(CategoryCB cb); - - public List selectList(CategoryCB cb); - - public int insert(Category entity); - - public int updateModifiedOnly(Category entity); - - public int updateNonstrictModifiedOnly(Category entity); - - public int delete(Category entity); - - public int deleteNonstrict(Category entity); - - public int[] insertList(List entityList); - - public int[] updateList(List entityList); - - public int[] updateListNonstrict(List entityList); - - public int updateByQuery(CategoryCB cb, Category entity);// {DBFlute-0.7.5} - - public int[] deleteList(List entityList); - - public int[] deleteListNonstrict(List entityList); - - public int deleteByQuery(CategoryCB cb); -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupInfoDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupInfoDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupInfoDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupMappingDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupMappingDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupMappingDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,37 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsLinkDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsLinkDao.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsLinkDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,59 +0,0 @@ -package jp.sf.pal.bookmark.db.bsdao; - -import java.util.List; - -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.exentity.Link; - -/** - * The dao interface of LINK. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface BsLinkDao extends jp.sf.pal.bookmark.db.allcommon.DaoWritable { - - public Class BEAN = Link.class;// For S2Dao - - public static final String getCountAll_SQL = "select count(*) from LINK"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, NAME, MEMO, URL, TYPE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from LINK"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, NAME, MEMO, URL, TYPE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from LINK where LINK.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Link getEntity(Long id); - - public int selectCount(LinkCB cb); - - public List selectList(LinkCB cb); - - public int insert(Link entity); - - public int updateModifiedOnly(Link entity); - - public int updateNonstrictModifiedOnly(Link entity); - - public int delete(Link entity); - - public int deleteNonstrict(Link entity); - - public int[] insertList(List entityList); - - public int[] updateList(List entityList); - - public int[] updateListNonstrict(List entityList); - - public int updateByQuery(LinkCB cb, Link entity);// {DBFlute-0.7.5} - - public int[] deleteList(List entityList); - - public int[] deleteListNonstrict(List entityList); - - public int deleteByQuery(LinkCB cb); -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleInfoDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleInfoDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleInfoDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleMappingDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleMappingDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleMappingDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,37 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsUserInfoDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsUserInfoDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsUserInfoDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.bsdao; + +import java.util.List; + +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends + jp.sf.pal.bookmark.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,558 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; + +/** + * The entity of BOOKMARK_CATEGORY that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, MEMO, TYPE, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     BOOKMARK_LINK
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     bookmarkLinkList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsBookmarkCategory implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is BOOKMARK_CATEGORY. */ + public static final String TABLE = "BOOKMARK_CATEGORY"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** MEMO: {VARCHAR(200)} */ + protected String _memo; + + /** TYPE: {NotNull : VARCHAR(1) : Default=[P]} */ + protected String _type; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[0]} */ + protected Integer _sortOrder; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsBookmarkCategory() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "BOOKMARK_CATEGORY"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "bookmarkCategory"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [bookmarkLinkList] + // * * * * * * * * */ + /** BOOKMARK_LINK as 'bookmarkLinkList'. */ + protected List _childrenBookmarkLinkList; + + /** + * BOOKMARK_LINK as 'bookmarkLinkList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'bookmarkLinkList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getBookmarkLinkList() { + if (_childrenBookmarkLinkList == null) { + _childrenBookmarkLinkList = new ArrayList(); + } + return _childrenBookmarkLinkList; + } + + /** + * BOOKMARK_LINK as 'bookmarkLinkList'. + * + * @param bookmarkLinkList The entity list of referrer property + * 'bookmarkLinkList'. (Nullable) + */ + public void setBookmarkLinkList(List bookmarkLinkList) { + _childrenBookmarkLinkList = bookmarkLinkList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsBookmarkCategory)) { + return false; + } + BsBookmarkCategory otherEntity = (BsBookmarkCategory) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getMemo()); + sb.append(delimiter).append(getType()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String memo_COLUMN = "MEMO"; + + /** + * MEMO: {VARCHAR(200)}
    + * + * @return The value of the column 'MEMO'. (Nullable) + */ + public String getMemo() { + return _memo; + } + + /** + * MEMO: {VARCHAR(200)}
    + * + * @param memo The value of the column 'MEMO'. (Nullable) + */ + public void setMemo(String memo) { + _modifiedProperties.addPropertyName("memo"); + this._memo = memo; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[P]} */ + public static final String type_COLUMN = "TYPE"; + + /** + * TYPE: {NotNull : VARCHAR(1) : Default=[P]}
    + * + * @return The value of the column 'TYPE'. (Nullable) + */ + public String getType() { + return _type; + } + + /** + * TYPE: {NotNull : VARCHAR(1) : Default=[P]}
    + * + * @param type The value of the column 'TYPE'. (Nullable) + */ + public void setType(String type) { + _modifiedProperties.addPropertyName("type"); + this._type = type; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,612 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; + +/** + * The entity of BOOKMARK_LINK that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, MEMO, URL, TYPE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     BOOKMARK_CATEGORY
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     bookmarkCategory
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsBookmarkLink implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is BOOKMARK_LINK. */ + public static final String TABLE = "BOOKMARK_LINK"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** MEMO: {VARCHAR(200)} */ + protected String _memo; + + /** URL: {NotNull : VARCHAR(255) : Default=[E]} */ + protected String _url; + + /** TYPE: {NotNull : VARCHAR(1)} */ + protected String _type; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[0]} */ + protected Integer _sortOrder; + + /** CATEGORY_ID: {INTEGER : Default=[0] : FK to BOOKMARK_CATEGORY} */ + protected Integer _categoryId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsBookmarkLink() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "BOOKMARK_LINK"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "bookmarkLink"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [bookmarkCategory] + // * * * * * * * * */ + public static final int bookmarkCategory_RELNO = 0; + + public static final String bookmarkCategory_RELKEYS = "CATEGORY_ID:ID"; + + /** BOOKMARK_CATEGORY as 'bookmarkCategory'. */ + protected BookmarkCategory _parentBookmarkCategory; + + /** + * BOOKMARK_CATEGORY as 'bookmarkCategory'. {without lazy-load} + * + * @return The entity of foreign property 'bookmarkCategory'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public BookmarkCategory getBookmarkCategory() { + return _parentBookmarkCategory; + } + + /** + * BOOKMARK_CATEGORY as 'bookmarkCategory'. + * + * @param bookmarkCategory The entity of foreign property + * 'bookmarkCategory'. (Nullable) + */ + public void setBookmarkCategory(BookmarkCategory bookmarkCategory) { + _parentBookmarkCategory = bookmarkCategory; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsBookmarkLink)) { + return false; + } + BsBookmarkLink otherEntity = (BsBookmarkLink) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getMemo()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getType()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getCategoryId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(200)} */ + public static final String memo_COLUMN = "MEMO"; + + /** + * MEMO: {VARCHAR(200)}
    + * + * @return The value of the column 'MEMO'. (Nullable) + */ + public String getMemo() { + return _memo; + } + + /** + * MEMO: {VARCHAR(200)}
    + * + * @param memo The value of the column 'MEMO'. (Nullable) + */ + public void setMemo(String memo) { + _modifiedProperties.addPropertyName("memo"); + this._memo = memo; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255) : Default=[E]} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {NotNull : VARCHAR(255) : Default=[E]}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {NotNull : VARCHAR(255) : Default=[E]}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(1)} */ + public static final String type_COLUMN = "TYPE"; + + /** + * TYPE: {NotNull : VARCHAR(1)}
    + * + * @return The value of the column 'TYPE'. (Nullable) + */ + public String getType() { + return _type; + } + + /** + * TYPE: {NotNull : VARCHAR(1)}
    + * + * @param type The value of the column 'TYPE'. (Nullable) + */ + public void setType(String type) { + _modifiedProperties.addPropertyName("type"); + this._type = type; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** + * The column annotation for S2Dao. {INTEGER : Default=[0] : FK to + * BOOKMARK_CATEGORY} + */ + public static final String categoryId_COLUMN = "CATEGORY_ID"; + + /** + * CATEGORY_ID: {INTEGER : Default=[0] : FK to BOOKMARK_CATEGORY}
    + * + * @return The value of the column 'CATEGORY_ID'. (Nullable) + */ + public Integer getCategoryId() { + return _categoryId; + } + + /** + * CATEGORY_ID: {INTEGER : Default=[0] : FK to BOOKMARK_CATEGORY}
    + * + * @param categoryId The value of the column 'CATEGORY_ID'. (Nullable) + */ + public void setCategoryId(Integer categoryId) { + _modifiedProperties.addPropertyName("categoryId"); + this._categoryId = categoryId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsCategory.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsCategory.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsCategory.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,555 +0,0 @@ -package jp.sf.pal.bookmark.db.bsentity; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import jp.sf.pal.bookmark.db.allcommon.Entity; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.bookmark.db.exentity.Link; - -/** - * The entity of CATEGORY(TABLE). - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, NAME, MEMO, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     
    - * 
    - * [referrer-table]
    - *     LINK
    - * 
    - * [foreign-property]
    - *     
    - * 
    - * [referrer-property]
    - *     linkList
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsCategory implements Entity, java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is CATEGORY. */ - public static final String TABLE = "CATEGORY"; - - /** VERSION_NO-Annotation */ - public static final String VERSION_NO_PROPERTY = "versionno"; - - /** ID-Annotation */ - public static final String id_ID = "identity"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** - * The attribute of the column 'ID'. {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_E60DF65A_0492_4AB9_BDAC_14AD8BA5A874]} - */ - protected Integer _id; - - /** The attribute of the column 'NAME'. {VARCHAR(100) : NotNull} */ - protected String _name; - - /** The attribute of the column 'MEMO'. {VARCHAR(200)} */ - protected String _memo; - - /** - * The attribute of the column 'SORT_ORDER'. {INTEGER : NotNull : - * Default=[0]} - */ - protected Integer _sortOrder; - - /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ - protected java.sql.Timestamp _createdTime; - - /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ - protected String _createdBy; - - /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ - protected java.sql.Timestamp _updatedTime; - - /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ - protected String _updatedBy; - - /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ - protected java.sql.Timestamp _deletedTime; - - /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ - protected String _deletedBy; - - /** - * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull : - * Default=[0]} - */ - protected Integer _versionno; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsCategory() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "CATEGORY"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "category"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - //========================================================================== - // ========= - // Referrer Property - // ================= - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Referrer Property = [linkList] - // * * * * * * * * */ - - /** The entity list of referrer property 'linkList'. */ - protected List _childrenLinkList; - - /** - * Get the entity list of referrer property 'linkList'. {without lazy-load} - *
    - * - * @return The entity list of referrer property 'linkList'. (NotNull: If - * it's not loaded yet, initializes the list instance of referrer as - * empty and returns it.) - */ - public List getLinkList() { - if (_childrenLinkList == null) { - _childrenLinkList = new ArrayList(); - } - return _childrenLinkList; - } - - /** - * Set the entity list of referrer property 'linkList'. - * - * @param linkList The entity list of referrer property 'linkList'. - * (Nullable) - */ - public void setLinkList(List linkList) { - _childrenLinkList = linkList; - } - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsCategory)) { - return false; - } - BsCategory otherEntity = (BsCategory) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getName()); - sb.append(delimiter).append(getMemo()); - sb.append(delimiter).append(getSortOrder()); - sb.append(delimiter).append(getCreatedTime()); - sb.append(delimiter).append(getCreatedBy()); - sb.append(delimiter).append(getUpdatedTime()); - sb.append(delimiter).append(getUpdatedBy()); - sb.append(delimiter).append(getDeletedTime()); - sb.append(delimiter).append(getDeletedBy()); - sb.append(delimiter).append(getVersionno()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** - * The column annotation for S2Dao. {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_E60DF65A_0492_4AB9_BDAC_14AD8BA5A874]} - */ - public static final String id_COLUMN = "ID"; - - /** - * Get the value of the column 'ID'.
    {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_E60DF65A_0492_4AB9_BDAC_14AD8BA5A874]} - * - * @return The value of the column 'ID'. (Nullable) - */ - public Integer getId() { - return _id; - } - - /** - * Set the value of the column 'ID'.
    {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_E60DF65A_0492_4AB9_BDAC_14AD8BA5A874]} - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Integer id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** The column annotation for S2Dao. {VARCHAR(100) : NotNull} */ - public static final String name_COLUMN = "NAME"; - - /** - * Get the value of the column 'NAME'.
    {VARCHAR(100) : NotNull} - * - * @return The value of the column 'NAME'. (Nullable) - */ - public String getName() { - return _name; - } - - /** - * Set the value of the column 'NAME'.
    {VARCHAR(100) : NotNull} - * - * @param name The value of the column 'NAME'. (Nullable) - */ - public void setName(String name) { - _modifiedProperties.addPropertyName("name"); - this._name = name; - } - - /** The column annotation for S2Dao. {VARCHAR(200)} */ - public static final String memo_COLUMN = "MEMO"; - - /** - * Get the value of the column 'MEMO'.
    {VARCHAR(200)} - * - * @return The value of the column 'MEMO'. (Nullable) - */ - public String getMemo() { - return _memo; - } - - /** - * Set the value of the column 'MEMO'.
    {VARCHAR(200)} - * - * @param memo The value of the column 'MEMO'. (Nullable) - */ - public void setMemo(String memo) { - _modifiedProperties.addPropertyName("memo"); - this._memo = memo; - } - - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ - public static final String sortOrder_COLUMN = "SORT_ORDER"; - - /** - * Get the value of the column 'SORT_ORDER'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @return The value of the column 'SORT_ORDER'. (Nullable) - */ - public Integer getSortOrder() { - return _sortOrder; - } - - /** - * Set the value of the column 'SORT_ORDER'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) - */ - public void setSortOrder(Integer sortOrder) { - _modifiedProperties.addPropertyName("sortOrder"); - this._sortOrder = sortOrder; - } - - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ - public static final String createdTime_COLUMN = "CREATED_TIME"; - - /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @return The value of the column 'CREATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getCreatedTime() { - return _createdTime; - } - - /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) - */ - public void setCreatedTime(java.sql.Timestamp createdTime) { - _modifiedProperties.addPropertyName("createdTime"); - this._createdTime = createdTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ - public static final String createdBy_COLUMN = "CREATED_BY"; - - /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @return The value of the column 'CREATED_BY'. (Nullable) - */ - public String getCreatedBy() { - return _createdBy; - } - - /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @param createdBy The value of the column 'CREATED_BY'. (Nullable) - */ - public void setCreatedBy(String createdBy) { - _modifiedProperties.addPropertyName("createdBy"); - this._createdBy = createdBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ - public static final String updatedTime_COLUMN = "UPDATED_TIME"; - - /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @return The value of the column 'UPDATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getUpdatedTime() { - return _updatedTime; - } - - /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) - */ - public void setUpdatedTime(java.sql.Timestamp updatedTime) { - _modifiedProperties.addPropertyName("updatedTime"); - this._updatedTime = updatedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ - public static final String updatedBy_COLUMN = "UPDATED_BY"; - - /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @return The value of the column 'UPDATED_BY'. (Nullable) - */ - public String getUpdatedBy() { - return _updatedBy; - } - - /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) - */ - public void setUpdatedBy(String updatedBy) { - _modifiedProperties.addPropertyName("updatedBy"); - this._updatedBy = updatedBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP} */ - public static final String deletedTime_COLUMN = "DELETED_TIME"; - - /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} - * - * @return The value of the column 'DELETED_TIME'. (Nullable) - */ - public java.sql.Timestamp getDeletedTime() { - return _deletedTime; - } - - /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} - * - * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) - */ - public void setDeletedTime(java.sql.Timestamp deletedTime) { - _modifiedProperties.addPropertyName("deletedTime"); - this._deletedTime = deletedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255)} */ - public static final String deletedBy_COLUMN = "DELETED_BY"; - - /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} - * - * @return The value of the column 'DELETED_BY'. (Nullable) - */ - public String getDeletedBy() { - return _deletedBy; - } - - /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} - * - * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) - */ - public void setDeletedBy(String deletedBy) { - _modifiedProperties.addPropertyName("deletedBy"); - this._deletedBy = deletedBy; - } - - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ - public static final String versionno_COLUMN = "VERSIONNO"; - - /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @return The value of the column 'VERSIONNO'. (Nullable) - */ - public Integer getVersionno() { - return _versionno; - } - - /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @param versionno The value of the column 'VERSIONNO'. (Nullable) - */ - public void setVersionno(Integer versionno) { - _modifiedProperties.addPropertyName("versionno"); - this._versionno = versionno; - } - -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupInfo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupInfo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,611 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupMapping.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupMapping.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupMapping.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,356 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsLink.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsLink.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsLink.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,641 +0,0 @@ -package jp.sf.pal.bookmark.db.bsentity; - -import java.util.Set; - -import jp.sf.pal.bookmark.db.allcommon.Entity; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.bookmark.db.exentity.Category; - -/** - * The entity of LINK(TABLE). - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, NAME, MEMO, URL, TYPE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     CATEGORY
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     category
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsLink implements Entity, java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is LINK. */ - public static final String TABLE = "LINK"; - - /** VERSION_NO-Annotation */ - public static final String VERSION_NO_PROPERTY = "versionno"; - - /** ID-Annotation */ - public static final String id_ID = "identity"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** - * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_22BA7FAB_912D_4214_94D9_E64E5C53706F]} - */ - protected Long _id; - - /** The attribute of the column 'NAME'. {VARCHAR(100) : NotNull} */ - protected String _name; - - /** The attribute of the column 'MEMO'. {VARCHAR(200)} */ - protected String _memo; - - /** - * The attribute of the column 'URL'. {VARCHAR(255) : NotNull : Default=[E]} - */ - protected String _url; - - /** The attribute of the column 'TYPE'. {VARCHAR(1) : NotNull} */ - protected String _type; - - /** - * The attribute of the column 'SORT_ORDER'. {INTEGER : NotNull : - * Default=[0]} - */ - protected Integer _sortOrder; - - /** - * The attribute of the column 'CATEGORY_ID'. {INTEGER : Default=[0] : FK to - * CATEGORY} - */ - protected Integer _categoryId; - - /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ - protected java.sql.Timestamp _createdTime; - - /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ - protected String _createdBy; - - /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ - protected java.sql.Timestamp _updatedTime; - - /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ - protected String _updatedBy; - - /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ - protected java.sql.Timestamp _deletedTime; - - /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ - protected String _deletedBy; - - /** - * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull : - * Default=[0]} - */ - protected Integer _versionno; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsLink() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "LINK"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "link"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [category] - // * * * * * * * * */ - public static final int category_RELNO = 0; - - public static final String category_RELKEYS = "CATEGORY_ID:ID"; - - /** The entity of foreign property 'category'. */ - protected Category _parentCategory; - - /** - * Get the entity of foreign property 'category'. {without lazy-load} - * - * @return The entity of foreign property 'category'. (Nullable: If the - * foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public Category getCategory() { - return _parentCategory; - } - - /** - * Set the entity of foreign property 'category'. - * - * @param category The entity of foreign property 'category'. (Nullable) - */ - public void setCategory(Category category) { - _parentCategory = category; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsLink)) { - return false; - } - BsLink otherEntity = (BsLink) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getName()); - sb.append(delimiter).append(getMemo()); - sb.append(delimiter).append(getUrl()); - sb.append(delimiter).append(getType()); - sb.append(delimiter).append(getSortOrder()); - sb.append(delimiter).append(getCategoryId()); - sb.append(delimiter).append(getCreatedTime()); - sb.append(delimiter).append(getCreatedBy()); - sb.append(delimiter).append(getUpdatedTime()); - sb.append(delimiter).append(getUpdatedBy()); - sb.append(delimiter).append(getDeletedTime()); - sb.append(delimiter).append(getDeletedBy()); - sb.append(delimiter).append(getVersionno()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** - * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_22BA7FAB_912D_4214_94D9_E64E5C53706F]} - */ - public static final String id_COLUMN = "ID"; - - /** - * Get the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_22BA7FAB_912D_4214_94D9_E64E5C53706F]} - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_22BA7FAB_912D_4214_94D9_E64E5C53706F]} - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** The column annotation for S2Dao. {VARCHAR(100) : NotNull} */ - public static final String name_COLUMN = "NAME"; - - /** - * Get the value of the column 'NAME'.
    {VARCHAR(100) : NotNull} - * - * @return The value of the column 'NAME'. (Nullable) - */ - public String getName() { - return _name; - } - - /** - * Set the value of the column 'NAME'.
    {VARCHAR(100) : NotNull} - * - * @param name The value of the column 'NAME'. (Nullable) - */ - public void setName(String name) { - _modifiedProperties.addPropertyName("name"); - this._name = name; - } - - /** The column annotation for S2Dao. {VARCHAR(200)} */ - public static final String memo_COLUMN = "MEMO"; - - /** - * Get the value of the column 'MEMO'.
    {VARCHAR(200)} - * - * @return The value of the column 'MEMO'. (Nullable) - */ - public String getMemo() { - return _memo; - } - - /** - * Set the value of the column 'MEMO'.
    {VARCHAR(200)} - * - * @param memo The value of the column 'MEMO'. (Nullable) - */ - public void setMemo(String memo) { - _modifiedProperties.addPropertyName("memo"); - this._memo = memo; - } - - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull : Default=[E]} */ - public static final String url_COLUMN = "URL"; - - /** - * Get the value of the column 'URL'.
    {VARCHAR(255) : NotNull : - * Default=[E]} - * - * @return The value of the column 'URL'. (Nullable) - */ - public String getUrl() { - return _url; - } - - /** - * Set the value of the column 'URL'.
    {VARCHAR(255) : NotNull : - * Default=[E]} - * - * @param url The value of the column 'URL'. (Nullable) - */ - public void setUrl(String url) { - _modifiedProperties.addPropertyName("url"); - this._url = url; - } - - /** The column annotation for S2Dao. {VARCHAR(1) : NotNull} */ - public static final String type_COLUMN = "TYPE"; - - /** - * Get the value of the column 'TYPE'.
    {VARCHAR(1) : NotNull} - * - * @return The value of the column 'TYPE'. (Nullable) - */ - public String getType() { - return _type; - } - - /** - * Set the value of the column 'TYPE'.
    {VARCHAR(1) : NotNull} - * - * @param type The value of the column 'TYPE'. (Nullable) - */ - public void setType(String type) { - _modifiedProperties.addPropertyName("type"); - this._type = type; - } - - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ - public static final String sortOrder_COLUMN = "SORT_ORDER"; - - /** - * Get the value of the column 'SORT_ORDER'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @return The value of the column 'SORT_ORDER'. (Nullable) - */ - public Integer getSortOrder() { - return _sortOrder; - } - - /** - * Set the value of the column 'SORT_ORDER'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) - */ - public void setSortOrder(Integer sortOrder) { - _modifiedProperties.addPropertyName("sortOrder"); - this._sortOrder = sortOrder; - } - - /** - * The column annotation for S2Dao. {INTEGER : Default=[0] : FK to CATEGORY} - */ - public static final String categoryId_COLUMN = "CATEGORY_ID"; - - /** - * Get the value of the column 'CATEGORY_ID'.
    {INTEGER : Default=[0] - * : FK to CATEGORY} - * - * @return The value of the column 'CATEGORY_ID'. (Nullable) - */ - public Integer getCategoryId() { - return _categoryId; - } - - /** - * Set the value of the column 'CATEGORY_ID'.
    {INTEGER : Default=[0] - * : FK to CATEGORY} - * - * @param categoryId The value of the column 'CATEGORY_ID'. (Nullable) - */ - public void setCategoryId(Integer categoryId) { - _modifiedProperties.addPropertyName("categoryId"); - this._categoryId = categoryId; - } - - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ - public static final String createdTime_COLUMN = "CREATED_TIME"; - - /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @return The value of the column 'CREATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getCreatedTime() { - return _createdTime; - } - - /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) - */ - public void setCreatedTime(java.sql.Timestamp createdTime) { - _modifiedProperties.addPropertyName("createdTime"); - this._createdTime = createdTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ - public static final String createdBy_COLUMN = "CREATED_BY"; - - /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @return The value of the column 'CREATED_BY'. (Nullable) - */ - public String getCreatedBy() { - return _createdBy; - } - - /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @param createdBy The value of the column 'CREATED_BY'. (Nullable) - */ - public void setCreatedBy(String createdBy) { - _modifiedProperties.addPropertyName("createdBy"); - this._createdBy = createdBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ - public static final String updatedTime_COLUMN = "UPDATED_TIME"; - - /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @return The value of the column 'UPDATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getUpdatedTime() { - return _updatedTime; - } - - /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} - * - * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) - */ - public void setUpdatedTime(java.sql.Timestamp updatedTime) { - _modifiedProperties.addPropertyName("updatedTime"); - this._updatedTime = updatedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ - public static final String updatedBy_COLUMN = "UPDATED_BY"; - - /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @return The value of the column 'UPDATED_BY'. (Nullable) - */ - public String getUpdatedBy() { - return _updatedBy; - } - - /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} - * - * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) - */ - public void setUpdatedBy(String updatedBy) { - _modifiedProperties.addPropertyName("updatedBy"); - this._updatedBy = updatedBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP} */ - public static final String deletedTime_COLUMN = "DELETED_TIME"; - - /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} - * - * @return The value of the column 'DELETED_TIME'. (Nullable) - */ - public java.sql.Timestamp getDeletedTime() { - return _deletedTime; - } - - /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} - * - * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) - */ - public void setDeletedTime(java.sql.Timestamp deletedTime) { - _modifiedProperties.addPropertyName("deletedTime"); - this._deletedTime = deletedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255)} */ - public static final String deletedBy_COLUMN = "DELETED_BY"; - - /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} - * - * @return The value of the column 'DELETED_BY'. (Nullable) - */ - public String getDeletedBy() { - return _deletedBy; - } - - /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} - * - * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) - */ - public void setDeletedBy(String deletedBy) { - _modifiedProperties.addPropertyName("deletedBy"); - this._deletedBy = deletedBy; - } - - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ - public static final String versionno_COLUMN = "VERSIONNO"; - - /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @return The value of the column 'VERSIONNO'. (Nullable) - */ - public Integer getVersionno() { - return _versionno; - } - - /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} - * - * @param versionno The value of the column 'VERSIONNO'. (Nullable) - */ - public void setVersionno(Integer versionno) { - _modifiedProperties.addPropertyName("versionno"); - this._versionno = versionno; - } - -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleInfo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleInfo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,611 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleMapping.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleMapping.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleMapping.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,356 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,805 @@ +package jp.sf.pal.bookmark.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; + +/** + * The entity of USER_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,428 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; + +/** + * The DB meta of BOOKMARK_CATEGORY. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategoryDbm extends AbstractDBMeta { + + private static final BookmarkCategoryDbm _instance = new BookmarkCategoryDbm(); + + private BookmarkCategoryDbm() { + } + + public static BookmarkCategoryDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "BOOKMARK_CATEGORY"; + } + + public String getTablePropertyName() { + return "bookmarkCategory"; + } + + public String getTableSqlName() { + return "BOOKMARK_CATEGORY"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnMemo = cci("MEMO", "memo", String.class, false, + 200, 0); + + protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, + 1, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnMemo() { + return _columnMemo; + } + + public ColumnInfo columnType() { + return _columnType; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.BookmarkCategory"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.BookmarkCategoryCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.BookmarkCategoryDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.BookmarkCategoryBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return BookmarkCategory.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public BookmarkCategory newMyEntity() { + return new BookmarkCategory(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerBookmarkLinkList() { + Map map = newLinkedHashMap(columnId(), + BookmarkLinkDbm.getInstance().columnCategoryId()); + return cri("bookmarkLinkList", this, BookmarkLinkDbm.getInstance(), + map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((BookmarkCategory) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((BookmarkCategory) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsMemo(), columnMemo()); + setupEps(_epsMap, new EpsType(), columnType()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((BookmarkCategory) entity, value); + } + + public static class EpsId implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsName implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setName((String) v); + } + } + + public static class EpsMemo implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setMemo((String) v); + } + } + + public static class EpsType implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setType((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(BookmarkCategory e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,455 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; + +/** + * The DB meta of BOOKMARK_LINK. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLinkDbm extends AbstractDBMeta { + + private static final BookmarkLinkDbm _instance = new BookmarkLinkDbm(); + + private BookmarkLinkDbm() { + } + + public static BookmarkLinkDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "BOOKMARK_LINK"; + } + + public String getTablePropertyName() { + return "bookmarkLink"; + } + + public String getTableSqlName() { + return "BOOKMARK_LINK"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnMemo = cci("MEMO", "memo", String.class, false, + 200, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, + 1, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnCategoryId = cci("CATEGORY_ID", "categoryId", + Integer.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnMemo() { + return _columnMemo; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnType() { + return _columnType; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnCategoryId() { + return _columnCategoryId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.BookmarkLink"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.BookmarkLinkCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.BookmarkLinkDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.BookmarkLinkBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return BookmarkLink.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public BookmarkLink newMyEntity() { + return new BookmarkLink(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignBookmarkCategory() { + Map map = newLinkedHashMap(columnCategoryId(), + BookmarkCategoryDbm.getInstance().columnId()); + return cfi("bookmarkCategory", this, BookmarkCategoryDbm.getInstance(), + map, 0, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((BookmarkLink) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((BookmarkLink) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsMemo(), columnMemo()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsType(), columnType()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsCategoryId(), columnCategoryId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((BookmarkLink) entity, value); + } + + public static class EpsId implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsName implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setName((String) v); + } + } + + public static class EpsMemo implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setMemo((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsType implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setType((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsCategoryId implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setCategoryId((Integer) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(BookmarkLink e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/CategoryDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/CategoryDbm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/CategoryDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,408 +0,0 @@ -package jp.sf.pal.bookmark.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.bookmark.db.allcommon.Entity; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ReferrerInfo; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.bookmark.db.exentity.Category; - -/** - * The DB meta of CATEGORY. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class CategoryDbm extends AbstractDBMeta { - - private static final CategoryDbm _instance = new CategoryDbm(); - - private CategoryDbm() { - } - - public static CategoryDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "CATEGORY"; - } - - public String getTablePropertyName() { - return "category"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, - null); - - protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, - 100, 0); - - protected ColumnInfo _columnMemo = cci("MEMO", "memo", String.class, false, - 200, 0); - - protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", - Integer.class, false, null, null); - - protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", - "createdTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", - "updatedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", - "deletedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", - Integer.class, false, null, null, OptimisticLockType.VERSION_NO); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnName() { - return _columnName; - } - - public ColumnInfo columnMemo() { - return _columnMemo; - } - - public ColumnInfo columnSortOrder() { - return _columnSortOrder; - } - - public ColumnInfo columnCreatedTime() { - return _columnCreatedTime; - } - - public ColumnInfo columnCreatedBy() { - return _columnCreatedBy; - } - - public ColumnInfo columnUpdatedTime() { - return _columnUpdatedTime; - } - - public ColumnInfo columnUpdatedBy() { - return _columnUpdatedBy; - } - - public ColumnInfo columnDeletedTime() { - return _columnDeletedTime; - } - - public ColumnInfo columnDeletedBy() { - return _columnDeletedBy; - } - - public ColumnInfo columnVersionno() { - return _columnVersionno; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.bookmark.db.exentity.Category"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.bookmark.db.cbean.bs.CategoryCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.bookmark.db.exdao.CategoryDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.bookmark.db.exbhv.CategoryBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return Category.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public Category newMyEntity() { - return new Category(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - public ReferrerInfo referrerLinkList() { - Map map = newLinkedHashMap(columnId(), LinkDbm - .getInstance().columnCategoryId()); - return cri("linkList", this, LinkDbm.getInstance(), map, false); - } - - //========================================================================== - // ========= - // Various Info - // ============ - public boolean hasVersionNo() { - return true; - } - - public ColumnInfo getVersionNoColumnInfo() { - return _columnVersionno; - } - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((Category) entity, primaryKeyMap, _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((Category) entity, columnValueMap, _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsName(), columnName()); - setupEps(_epsMap, new EpsMemo(), columnMemo()); - setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); - setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); - setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); - setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); - setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); - setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); - setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); - setupEps(_epsMap, new EpsVersionno(), columnVersionno()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((Category) entity, value); - } - - public static class EpsId implements Eps { - public void setup(Category e, Object v) { - e.setId((Integer) v); - } - } - - public static class EpsName implements Eps { - public void setup(Category e, Object v) { - e.setName((String) v); - } - } - - public static class EpsMemo implements Eps { - public void setup(Category e, Object v) { - e.setMemo((String) v); - } - } - - public static class EpsSortOrder implements Eps { - public void setup(Category e, Object v) { - e.setSortOrder((Integer) v); - } - } - - public static class EpsCreatedTime implements Eps { - public void setup(Category e, Object v) { - e.setCreatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsCreatedBy implements Eps { - public void setup(Category e, Object v) { - e.setCreatedBy((String) v); - } - } - - public static class EpsUpdatedTime implements Eps { - public void setup(Category e, Object v) { - e.setUpdatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsUpdatedBy implements Eps { - public void setup(Category e, Object v) { - e.setUpdatedBy((String) v); - } - } - - public static class EpsDeletedTime implements Eps { - public void setup(Category e, Object v) { - e.setDeletedTime((java.sql.Timestamp) v); - } - } - - public static class EpsDeletedBy implements Eps { - public void setup(Category e, Object v) { - e.setDeletedBy((String) v); - } - } - - public static class EpsVersionno implements Eps { - public void setup(Category e, Object v) { - e.setVersionno((Integer) v); - } - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,447 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,299 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/LinkDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/LinkDbm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/LinkDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,450 +0,0 @@ -package jp.sf.pal.bookmark.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.bookmark.db.allcommon.Entity; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.bookmark.db.exentity.Link; - -/** - * The DB meta of LINK. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class LinkDbm extends AbstractDBMeta { - - private static final LinkDbm _instance = new LinkDbm(); - - private LinkDbm() { - } - - public static LinkDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "LINK"; - } - - public String getTablePropertyName() { - return "link"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, - 100, 0); - - protected ColumnInfo _columnMemo = cci("MEMO", "memo", String.class, false, - 200, 0); - - protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, - 255, 0); - - protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, - 1, 0); - - protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", - Integer.class, false, null, null); - - protected ColumnInfo _columnCategoryId = cci("CATEGORY_ID", "categoryId", - Integer.class, false, null, null); - - protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", - "createdTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", - "updatedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", - "deletedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", - Integer.class, false, null, null, OptimisticLockType.VERSION_NO); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnName() { - return _columnName; - } - - public ColumnInfo columnMemo() { - return _columnMemo; - } - - public ColumnInfo columnUrl() { - return _columnUrl; - } - - public ColumnInfo columnType() { - return _columnType; - } - - public ColumnInfo columnSortOrder() { - return _columnSortOrder; - } - - public ColumnInfo columnCategoryId() { - return _columnCategoryId; - } - - public ColumnInfo columnCreatedTime() { - return _columnCreatedTime; - } - - public ColumnInfo columnCreatedBy() { - return _columnCreatedBy; - } - - public ColumnInfo columnUpdatedTime() { - return _columnUpdatedTime; - } - - public ColumnInfo columnUpdatedBy() { - return _columnUpdatedBy; - } - - public ColumnInfo columnDeletedTime() { - return _columnDeletedTime; - } - - public ColumnInfo columnDeletedBy() { - return _columnDeletedBy; - } - - public ColumnInfo columnVersionno() { - return _columnVersionno; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.bookmark.db.exentity.Link"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.bookmark.db.cbean.bs.LinkCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.bookmark.db.exdao.LinkDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.bookmark.db.exbhv.LinkBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return Link.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public Link newMyEntity() { - return new Link(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignCategory() { - Map map = newLinkedHashMap(columnCategoryId(), - CategoryDbm.getInstance().columnId()); - return cfi("category", this, CategoryDbm.getInstance(), map, 0, false); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - - //========================================================================== - // ========= - // Various Info - // ============ - public boolean hasVersionNo() { - return true; - } - - public ColumnInfo getVersionNoColumnInfo() { - return _columnVersionno; - } - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((Link) entity, primaryKeyMap, _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((Link) entity, columnValueMap, _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsName(), columnName()); - setupEps(_epsMap, new EpsMemo(), columnMemo()); - setupEps(_epsMap, new EpsUrl(), columnUrl()); - setupEps(_epsMap, new EpsType(), columnType()); - setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); - setupEps(_epsMap, new EpsCategoryId(), columnCategoryId()); - setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); - setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); - setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); - setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); - setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); - setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); - setupEps(_epsMap, new EpsVersionno(), columnVersionno()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((Link) entity, value); - } - - public static class EpsId implements Eps { - public void setup(Link e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsName implements Eps { - public void setup(Link e, Object v) { - e.setName((String) v); - } - } - - public static class EpsMemo implements Eps { - public void setup(Link e, Object v) { - e.setMemo((String) v); - } - } - - public static class EpsUrl implements Eps { - public void setup(Link e, Object v) { - e.setUrl((String) v); - } - } - - public static class EpsType implements Eps { - public void setup(Link e, Object v) { - e.setType((String) v); - } - } - - public static class EpsSortOrder implements Eps { - public void setup(Link e, Object v) { - e.setSortOrder((Integer) v); - } - } - - public static class EpsCategoryId implements Eps { - public void setup(Link e, Object v) { - e.setCategoryId((Integer) v); - } - } - - public static class EpsCreatedTime implements Eps { - public void setup(Link e, Object v) { - e.setCreatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsCreatedBy implements Eps { - public void setup(Link e, Object v) { - e.setCreatedBy((String) v); - } - } - - public static class EpsUpdatedTime implements Eps { - public void setup(Link e, Object v) { - e.setUpdatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsUpdatedBy implements Eps { - public void setup(Link e, Object v) { - e.setUpdatedBy((String) v); - } - } - - public static class EpsDeletedTime implements Eps { - public void setup(Link e, Object v) { - e.setDeletedTime((java.sql.Timestamp) v); - } - } - - public static class EpsDeletedBy implements Eps { - public void setup(Link e, Object v) { - e.setDeletedBy((String) v); - } - } - - public static class EpsVersionno implements Eps { - public void setup(Link e, Object v) { - e.setVersionno((Integer) v); - } - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,447 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,299 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,530 @@ +package jp.sf.pal.bookmark.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.Entity; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.bookmark.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.bookmark.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.bookmark.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.bookmark.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.bookmark.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkCategoryCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkCategoryCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkCategoryCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of BOOKMARK_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategoryCB extends + jp.sf.pal.bookmark.db.cbean.bs.BsBookmarkCategoryCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkCategoryCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkLinkCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkLinkCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkLinkCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of BOOKMARK_LINK. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLinkCB extends + jp.sf.pal.bookmark.db.cbean.bs.BsBookmarkLinkCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/BookmarkLinkCB.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/CategoryCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/CategoryCB.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/CategoryCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,14 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean; - -/** - * The condition-bean of CATEGORY. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class CategoryCB extends jp.sf.pal.bookmark.db.cbean.bs.BsCategoryCB { -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupInfoCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupInfoCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.bookmark.db.cbean.bs.BsGroupInfoCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupMappingCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupMappingCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupMappingCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.bookmark.db.cbean.bs.BsGroupMappingCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/LinkCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/LinkCB.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/LinkCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,14 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean; - -/** - * The condition-bean of LINK. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class LinkCB extends jp.sf.pal.bookmark.db.cbean.bs.BsLinkCB { -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleInfoCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleInfoCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.bookmark.db.cbean.bs.BsRoleInfoCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleMappingCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleMappingCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleMappingCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.bookmark.db.cbean.bs.BsRoleMappingCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/UserInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/UserInfoCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/UserInfoCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.bookmark.db.cbean.bs.BsUserInfoCB { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,279 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; + +/** + * The base condition-bean of BOOKMARK_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsBookmarkCategoryCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BookmarkCategoryCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "BOOKMARK_CATEGORY"; + } + + public String getTableSqlName() { + return "BOOKMARK_CATEGORY"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public BookmarkCategoryCQ query() { + return getConditionQuery(); + } + + public BookmarkCategoryCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new BookmarkCategoryCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<BookmarkCategoryCB>() {
    +     *     public void query(BookmarkCategoryCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final BookmarkCategoryCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<BookmarkCategoryCB>() {
    +     *     public void query(BookmarkCategoryCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final BookmarkCategoryCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(BookmarkCategoryCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(BookmarkCategoryCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public BookmarkCategoryCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnMemo() { + doColumn("MEMO"); + } + + public void columnType() { + doColumn("TYPE"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + } + + protected String getTableDbName() { + return "BOOKMARK_CATEGORY"; + } + + public RAFunction derivedBookmarkLinkList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + BookmarkCategoryCQ cq, String aliasName) { + cq.xderiveBookmarkLinkList(function, subQuery, + aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return BookmarkCategoryCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkCategoryCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,324 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.nss.BookmarkCategoryNss; + +/** + * The base condition-bean of BOOKMARK_LINK. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsBookmarkLinkCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BookmarkLinkCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "BOOKMARK_LINK"; + } + + public String getTableSqlName() { + return "BOOKMARK_LINK"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public BookmarkLinkCQ query() { + return getConditionQuery(); + } + + public BookmarkLinkCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new BookmarkLinkCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<BookmarkLinkCB>() {
    +     *     public void query(BookmarkLinkCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final BookmarkLinkCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<BookmarkLinkCB>() {
    +     *     public void query(BookmarkLinkCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final BookmarkLinkCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(BookmarkLinkCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(BookmarkLinkCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected BookmarkCategoryNss _nssBookmarkCategory; + + public BookmarkCategoryNss getNssBookmarkCategory() { + if (_nssBookmarkCategory == null) { + _nssBookmarkCategory = new BookmarkCategoryNss(null); + } + return _nssBookmarkCategory; + } + + public BookmarkCategoryNss setupSelect_BookmarkCategory() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryBookmarkCategory(); + } + }); + if (_nssBookmarkCategory == null + || !_nssBookmarkCategory.hasConditionQuery()) { + _nssBookmarkCategory = new BookmarkCategoryNss(query() + .queryBookmarkCategory()); + } + return _nssBookmarkCategory; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public BookmarkLinkCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected BookmarkCategoryCB.Specification _bookmarkCategory; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnMemo() { + doColumn("MEMO"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnType() { + doColumn("TYPE"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnCategoryId() { + doColumn("CATEGORY_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryBookmarkCategory()) { + columnCategoryId();// FK + } + } + + protected String getTableDbName() { + return "BOOKMARK_LINK"; + } + + public BookmarkCategoryCB.Specification specifyBookmarkCategory() { + assertForeign("bookmarkCategory"); + if (_bookmarkCategory == null) { + _bookmarkCategory = new BookmarkCategoryCB.Specification( + _baseCB, new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryBookmarkCategory(); + } + + public BookmarkCategoryCQ qy() { + return _myQyCall.qy().queryBookmarkCategory(); + } + }, _forDeriveReferrer); + } + return _bookmarkCategory; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return BookmarkLinkCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkLinkCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsCategoryCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsCategoryCB.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsCategoryCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,271 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; - -/** - * The base condition-bean of CATEGORY. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsCategoryCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected CategoryCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "CATEGORY"; - } - - public String getTableSqlName() { - return "CATEGORY"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Integer) { - query().setId_Equal((Integer) obj); - } else { - query().setId_Equal(new Integer((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public CategoryCQ query() { - return getConditionQuery(); - } - - public CategoryCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new CategoryCQ(null, getSqlClause(), - getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<CategoryCB>() {
    -     *     public void query(CategoryCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final CategoryCB cb = new CategoryCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final CategoryCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<CategoryCB>() {
    -     *     public void query(CategoryCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final CategoryCB cb = new CategoryCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final CategoryCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery unionQuery). - */ - public void union(CategoryCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use unionAll(UnionQuery - * unionQuery). - */ - public void unionAll(CategoryCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public CategoryCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends AbstractSpecification { - protected SpQyCall _myQyCall; - - public Specification(ConditionBean baseCB, SpQyCall qyCall, - boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnName() { - doColumn("NAME"); - } - - public void columnMemo() { - doColumn("MEMO"); - } - - public void columnSortOrder() { - doColumn("SORT_ORDER"); - } - - public void columnCreatedTime() { - doColumn("CREATED_TIME"); - } - - public void columnCreatedBy() { - doColumn("CREATED_BY"); - } - - public void columnUpdatedTime() { - doColumn("UPDATED_TIME"); - } - - public void columnUpdatedBy() { - doColumn("UPDATED_BY"); - } - - public void columnDeletedTime() { - doColumn("DELETED_TIME"); - } - - public void columnDeletedBy() { - doColumn("DELETED_BY"); - } - - public void columnVersionno() { - doColumn("VERSIONNO"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - } - - protected String getTableDbName() { - return "CATEGORY"; - } - - public RAFunction derivedLinkList() { - return new RAFunction(_baseCB, _myQyCall.qy(), - new RAQSetupper() { - public void setup(String function, - SubQuery subQuery, CategoryCQ cq, - String aliasName) { - cq.xderiveLinkList(function, subQuery, aliasName); - } - }); - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return CategoryCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return CategoryCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupInfoCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,295 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupMappingCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,325 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.bookmark.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsLinkCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsLinkCB.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsLinkCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,317 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; -import jp.sf.pal.bookmark.db.cbean.nss.CategoryNss; - -/** - * The base condition-bean of LINK. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsLinkCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected LinkCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "LINK"; - } - - public String getTableSqlName() { - return "LINK"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public LinkCQ query() { - return getConditionQuery(); - } - - public LinkCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new LinkCQ(null, getSqlClause(), getSqlClause() - .getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<LinkCB>() {
    -     *     public void query(LinkCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final LinkCB cb = new LinkCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final LinkCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<LinkCB>() {
    -     *     public void query(LinkCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final LinkCB cb = new LinkCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final LinkCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery unionQuery). - */ - public void union(LinkCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). - */ - public void unionAll(LinkCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected CategoryNss _nssCategory; - - public CategoryNss getNssCategory() { - if (_nssCategory == null) { - _nssCategory = new CategoryNss(null); - } - return _nssCategory; - } - - public CategoryNss setupSelect_Category() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().queryCategory(); - } - }); - if (_nssCategory == null || !_nssCategory.hasConditionQuery()) { - _nssCategory = new CategoryNss(query().queryCategory()); - } - return _nssCategory; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, new SpQyCall() { - public boolean has() { - return true; - } - - public LinkCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends AbstractSpecification { - protected SpQyCall _myQyCall; - - protected CategoryCB.Specification _category; - - public Specification(ConditionBean baseCB, SpQyCall qyCall, - boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnName() { - doColumn("NAME"); - } - - public void columnMemo() { - doColumn("MEMO"); - } - - public void columnUrl() { - doColumn("URL"); - } - - public void columnType() { - doColumn("TYPE"); - } - - public void columnSortOrder() { - doColumn("SORT_ORDER"); - } - - public void columnCategoryId() { - doColumn("CATEGORY_ID"); - } - - public void columnCreatedTime() { - doColumn("CREATED_TIME"); - } - - public void columnCreatedBy() { - doColumn("CREATED_BY"); - } - - public void columnUpdatedTime() { - doColumn("UPDATED_TIME"); - } - - public void columnUpdatedBy() { - doColumn("UPDATED_BY"); - } - - public void columnDeletedTime() { - doColumn("DELETED_TIME"); - } - - public void columnDeletedBy() { - doColumn("DELETED_BY"); - } - - public void columnVersionno() { - doColumn("VERSIONNO"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - if (_myQyCall.qy().hasConditionQueryCategory()) { - columnCategoryId();// FK - } - } - - protected String getTableDbName() { - return "LINK"; - } - - public CategoryCB.Specification specifyCategory() { - assertForeign("category"); - if (_category == null) { - _category = new CategoryCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall.qy() - .hasConditionQueryCategory(); - } - - public CategoryCQ qy() { - return _myQyCall.qy().queryCategory(); - } - }, _forDeriveReferrer); - } - return _category; - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return LinkCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return LinkCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleInfoCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,292 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleMappingCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,325 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.bookmark.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,410 @@ +package jp.sf.pal.bookmark.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.bookmark.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkCategoryCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkCategoryCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsBookmarkCategoryCQ; + +/** + * The condition-query of BOOKMARK_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategoryCQ extends BsBookmarkCategoryCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public BookmarkCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkLinkCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkLinkCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsBookmarkLinkCQ; + +/** + * The condition-query of BOOKMARK_LINK. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLinkCQ extends BsBookmarkLinkCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public BookmarkLinkCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/BookmarkLinkCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/CategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/CategoryCQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/CategoryCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,45 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.cq.bs.BsCategoryCQ; - -/** - * The condition-query of CATEGORY. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class CategoryCQ extends BsCategoryCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public CategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupMappingCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupMappingCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/LinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/LinkCQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/LinkCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,45 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.cq.bs.BsLinkCQ; - -/** - * The condition-query of LINK. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class LinkCQ extends BsLinkCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public LinkCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleMappingCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleMappingCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/UserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/UserInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/UserInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,45 @@ +package jp.sf.pal.bookmark.db.cbean.cq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,1523 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; + +/** + * The abstract condition-query of BOOKMARK_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsBookmarkCategoryCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsBookmarkCategoryCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "BOOKMARK_CATEGORY"; + } + + public String getTableSqlName() { + return "BOOKMARK_CATEGORY"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param bookmarkLinkCBquery Query. + * @deprecated Please use inScopeBookmarkLinkList(subQuery) method. + */ + public void setId_InScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ bookmarkLinkCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_BookmarkLinkList(bookmarkLinkCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(bookmarkLinkCBquery, "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + public void inScopeBookmarkLinkList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_BookmarkLinkList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery); + + public void notInScopeBookmarkLinkList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_BookmarkLinkList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery); + + /** + * @param bookmarkLinkCBquery Query. + * @deprecated Please use existsBookmarkLinkList(subQuery) method. + */ + public void setId_ExistsSubQuery_BookmarkLinkList( + BookmarkLinkCQ bookmarkLinkCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_BookmarkLinkList(bookmarkLinkCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(bookmarkLinkCBquery, "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CATEGORY_ID from BOOKMARK_LINK + * where ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_BookmarkLinkList for + * 'exists'. (NotNull) + */ + public void existsBookmarkLinkList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_BookmarkLinkList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CATEGORY_ID from + * BOOKMARK_LINK where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_BookmarkLinkList + * for 'not exists'. (NotNull) + */ + public void notExistsBookmarkLinkList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_BookmarkLinkList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery); + + public void xderiveBookmarkLinkList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_BookmarkLinkList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param memo The value of memo as equal. + */ + public void setMemo_Equal(String memo) { + regMemo(CK_EQ, fRES(memo)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as notEqual. + */ + public void setMemo_NotEqual(String memo) { + regMemo(CK_NE, fRES(memo)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as greaterThan. + */ + public void setMemo_GreaterThan(String memo) { + regMemo(CK_GT, fRES(memo)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as lessThan. + */ + public void setMemo_LessThan(String memo) { + regMemo(CK_LT, fRES(memo)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as greaterEqual. + */ + public void setMemo_GreaterEqual(String memo) { + regMemo(CK_GE, fRES(memo)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as lessEqual. + */ + public void setMemo_LessEqual(String memo) { + regMemo(CK_LE, fRES(memo)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as prefixSearch. + */ + public void setMemo_PrefixSearch(String memo) { + regMemo(CK_PS, fRES(memo)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param memo The value of memo as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMemo_LikeSearch( + String memo, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(memo), getCValueMemo(), "MEMO", + "Memo", "memo", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memoList The collection of memo as inScope. + */ + public void setMemo_InScope(Collection memoList) { + regMemo(CK_INS, cTL(memoList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memo The collection of memo as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMemo_InScope( + String memo, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(memo), getCValueMemo(), "MEMO", + "Memo", "memo", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memoList The collection of memo as notInScope. + */ + public void setMemo_NotInScope(Collection memoList) { + regMemo(CK_NINS, cTL(memoList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMemo_IsNull() { + regMemo(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMemo_IsNotNull() { + regMemo(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMemo(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); + } + + protected void registerInlineMemo(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); + } + + abstract protected ConditionValue getCValueMemo(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : + * Default=[P]} + * + * @param type The value of type as equal. + */ + public void setType_Equal(String type) { + regType(CK_EQ, fRES(type)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as notEqual. + */ + public void setType_NotEqual(String type) { + regType(CK_NE, fRES(type)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterThan. + */ + public void setType_GreaterThan(String type) { + regType(CK_GT, fRES(type)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessThan. + */ + public void setType_LessThan(String type) { + regType(CK_LT, fRES(type)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterEqual. + */ + public void setType_GreaterEqual(String type) { + regType(CK_GE, fRES(type)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessEqual. + */ + public void setType_LessEqual(String type) { + regType(CK_LE, fRES(type)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as prefixSearch. + */ + public void setType_PrefixSearch(String type) { + regType(CK_PS, fRES(type)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param type The value of type as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setType_LikeSearch( + String type, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", + "Type", "type", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as inScope. + */ + public void setType_InScope(Collection typeList) { + regType(CK_INS, cTL(typeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param type The collection of type as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setType_InScope( + String type, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", + "Type", "type", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as notInScope. + */ + public void setType_NotInScope(Collection typeList) { + regType(CK_NINS, cTL(typeList)); + } + + protected void regType(ConditionKey key, Object value) { + registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + protected void registerInlineType(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + abstract protected ConditionValue getCValueType(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return BookmarkCategoryCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkCategoryCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,1657 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; + +/** + * The abstract condition-query of BOOKMARK_LINK. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsBookmarkLinkCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsBookmarkLinkCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "BOOKMARK_LINK"; + } + + public String getTableSqlName() { + return "BOOKMARK_LINK"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} + * + * @param memo The value of memo as equal. + */ + public void setMemo_Equal(String memo) { + regMemo(CK_EQ, fRES(memo)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as notEqual. + */ + public void setMemo_NotEqual(String memo) { + regMemo(CK_NE, fRES(memo)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as greaterThan. + */ + public void setMemo_GreaterThan(String memo) { + regMemo(CK_GT, fRES(memo)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as lessThan. + */ + public void setMemo_LessThan(String memo) { + regMemo(CK_LT, fRES(memo)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as greaterEqual. + */ + public void setMemo_GreaterEqual(String memo) { + regMemo(CK_GE, fRES(memo)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as lessEqual. + */ + public void setMemo_LessEqual(String memo) { + regMemo(CK_LE, fRES(memo)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param memo The value of memo as prefixSearch. + */ + public void setMemo_PrefixSearch(String memo) { + regMemo(CK_PS, fRES(memo)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param memo The value of memo as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMemo_LikeSearch( + String memo, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(memo), getCValueMemo(), "MEMO", + "Memo", "memo", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memoList The collection of memo as inScope. + */ + public void setMemo_InScope(Collection memoList) { + regMemo(CK_INS, cTL(memoList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memo The collection of memo as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMemo_InScope( + String memo, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(memo), getCValueMemo(), "MEMO", + "Memo", "memo", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param memoList The collection of memo as notInScope. + */ + public void setMemo_NotInScope(Collection memoList) { + regMemo(CK_NINS, cTL(memoList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMemo_IsNull() { + regMemo(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMemo_IsNotNull() { + regMemo(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMemo(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); + } + + protected void registerInlineMemo(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); + } + + abstract protected ConditionValue getCValueMemo(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : Default=[E]} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1)} + * + * @param type The value of type as equal. + */ + public void setType_Equal(String type) { + regType(CK_EQ, fRES(type)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as notEqual. + */ + public void setType_NotEqual(String type) { + regType(CK_NE, fRES(type)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterThan. + */ + public void setType_GreaterThan(String type) { + regType(CK_GT, fRES(type)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessThan. + */ + public void setType_LessThan(String type) { + regType(CK_LT, fRES(type)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterEqual. + */ + public void setType_GreaterEqual(String type) { + regType(CK_GE, fRES(type)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessEqual. + */ + public void setType_LessEqual(String type) { + regType(CK_LE, fRES(type)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as prefixSearch. + */ + public void setType_PrefixSearch(String type) { + regType(CK_PS, fRES(type)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param type The value of type as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setType_LikeSearch( + String type, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", + "Type", "type", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as inScope. + */ + public void setType_InScope(Collection typeList) { + regType(CK_INS, cTL(typeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param type The collection of type as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setType_InScope( + String type, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", + "Type", "type", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as notInScope. + */ + public void setType_NotInScope(Collection typeList) { + regType(CK_NINS, cTL(typeList)); + } + + protected void regType(ConditionKey key, Object value) { + registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + protected void registerInlineType(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + abstract protected ConditionValue getCValueType(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : Default=[0] : FK to + * BOOKMARK_CATEGORY} + * + * @param categoryId The value of categoryId as equal. + */ + public void setCategoryId_Equal(Integer categoryId) { + regCategoryId(CK_EQ, categoryId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as notEqual. + */ + public void setCategoryId_NotEqual(Integer categoryId) { + regCategoryId(CK_NE, categoryId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as greaterThan. + */ + public void setCategoryId_GreaterThan(Integer categoryId) { + regCategoryId(CK_GT, categoryId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as lessThan. + */ + public void setCategoryId_LessThan(Integer categoryId) { + regCategoryId(CK_LT, categoryId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as greaterEqual. + */ + public void setCategoryId_GreaterEqual(Integer categoryId) { + regCategoryId(CK_GE, categoryId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as lessEqual. + */ + public void setCategoryId_LessEqual(Integer categoryId) { + regCategoryId(CK_LE, categoryId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param categoryIdList The collection of categoryId as inScope. + */ + public void setCategoryId_InScope(Collection categoryIdList) { + regCategoryId(CK_INS, cTL(categoryIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param categoryIdList The collection of categoryId as notInScope. + */ + public void setCategoryId_NotInScope(Collection categoryIdList) { + regCategoryId(CK_NINS, cTL(categoryIdList)); + } + + /** + * @param bookmarkCategoryCBquery Query. + * @deprecated Please use inScopeBookmarkCategory(subQuery) method. + */ + public void setCategoryId_InScopeSubQuery_BookmarkCategory( + BookmarkCategoryCQ bookmarkCategoryCBquery) { + String subQueryPropertyName = keepCategoryId_InScopeSubQuery_BookmarkCategory(bookmarkCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(bookmarkCategoryCBquery, "CATEGORY_ID", "ID", + subQueryPropertyName); + } + + public void inScopeBookmarkCategory(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCategoryId_InScopeSubQuery_BookmarkCategory(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CATEGORY_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepCategoryId_InScopeSubQuery_BookmarkCategory( + BookmarkCategoryCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCategoryId_IsNull() { + regCategoryId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCategoryId_IsNotNull() { + regCategoryId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCategoryId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", + "CategoryId", "categoryId"); + } + + protected void registerInlineCategoryId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", + "CategoryId", "categoryId"); + } + + abstract protected ConditionValue getCValueCategoryId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return BookmarkLinkCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkLinkCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsCategoryCQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsCategoryCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,1403 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; - -/** - * The abstract condition-query of CATEGORY. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsCategoryCQ extends AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "CATEGORY"; - } - - public String getTableSqlName() { - return "CATEGORY"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : INTEGER : NotNull - * : Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_E60DF65A_0492_4AB9_BDAC_14AD8BA5A874]} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Integer id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Integer id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Integer id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Integer id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Integer id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Integer id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * @param linkCBquery Query. - * @deprecated Please use inScopeLinkList(subQuery) method. - */ - public void setId_InScopeSubQuery_LinkList(LinkCQ linkCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_LinkList(linkCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(linkCBquery, "ID", "CATEGORY_ID", - subQueryPropertyName); - } - - public void inScopeLinkList(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - LinkCB cb = new LinkCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_LinkList(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", - subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_LinkList(LinkCQ subQuery); - - public void notInScopeLinkList(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - LinkCB cb = new LinkCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotInScopeSubQuery_LinkList(cb - .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", - subQueryPropertyName); - } - - abstract public String keepId_NotInScopeSubQuery_LinkList(LinkCQ subQuery); - - /** - * @param linkCBquery Query. - * @deprecated Please use existsLinkList(subQuery) method. - */ - public void setId_ExistsSubQuery_LinkList(LinkCQ linkCBquery) { - String subQueryPropertyName = keepId_ExistsSubQuery_LinkList(linkCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(linkCBquery, "ID", "CATEGORY_ID", - subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select CATEGORY_ID from LINK where - * ...)} - * - * @param subQuery The sub-query of Id_ExistsSubQuery_LinkList for 'exists'. - * (NotNull) - */ - public void existsLinkList(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - LinkCB cb = new LinkCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_ExistsSubQuery_LinkList(cb.query());// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", - subQueryPropertyName); - } - - abstract public String keepId_ExistsSubQuery_LinkList(LinkCQ subQuery); - - /** - * Set up 'not exists' sub-query. {not exists (select CATEGORY_ID from LINK - * where ...)} - * - * @param subQuery The sub-query of Id_NotExistsSubQuery_LinkList for 'not - * exists'. (NotNull) - */ - public void notExistsLinkList(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - LinkCB cb = new LinkCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotExistsSubQuery_LinkList(cb - .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", - subQueryPropertyName); - } - - abstract public String keepId_NotExistsSubQuery_LinkList(LinkCQ subQuery); - - public void xderiveLinkList(String function, SubQuery subQuery, - String aliasName) { - assertObjectNotNull("subQuery", subQuery); - LinkCB cb = new LinkCB(); - cb.xsetupForDeriveReferrer(); - subQuery.query(cb); - String subQueryPropertyName = keepId_DeriveSubQuery_LinkList(cb.query());// for - // saving - // query - // - - // value - // . - registerDeriveSubQuery(function, cb.query(), "ID", "CATEGORY_ID", - subQueryPropertyName, aliasName); - } - - abstract public String keepId_DeriveSubQuery_LinkList(LinkCQ subQuery); - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100) : - * NotNull} - * - * @param name The value of name as equal. - */ - public void setName_Equal(String name) { - regName(CK_EQ, fRES(name)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as notEqual. - */ - public void setName_NotEqual(String name) { - regName(CK_NE, fRES(name)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as greaterThan. - */ - public void setName_GreaterThan(String name) { - regName(CK_GT, fRES(name)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as lessThan. - */ - public void setName_LessThan(String name) { - regName(CK_LT, fRES(name)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as greaterEqual. - */ - public void setName_GreaterEqual(String name) { - regName(CK_GE, fRES(name)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as lessEqual. - */ - public void setName_LessEqual(String name) { - regName(CK_LE, fRES(name)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as prefixSearch. - */ - public void setName_PrefixSearch(String name) { - regName(CK_PS, fRES(name)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param name The value of name as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setName_LikeSearch( - String name, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", - "Name", "name", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param nameList The collection of name as inScope. - */ - public void setName_InScope(Collection nameList) { - regName(CK_INS, cTL(nameList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param name The collection of name as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setName_InScope( - String name, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", - "Name", "name", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param nameList The collection of name as notInScope. - */ - public void setName_NotInScope(Collection nameList) { - regName(CK_NINS, cTL(nameList)); - } - - protected void regName(ConditionKey key, Object value) { - registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); - } - - protected void registerInlineName(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); - } - - abstract protected ConditionValue getCValueName(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} - * - * @param memo The value of memo as equal. - */ - public void setMemo_Equal(String memo) { - regMemo(CK_EQ, fRES(memo)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as notEqual. - */ - public void setMemo_NotEqual(String memo) { - regMemo(CK_NE, fRES(memo)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as greaterThan. - */ - public void setMemo_GreaterThan(String memo) { - regMemo(CK_GT, fRES(memo)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as lessThan. - */ - public void setMemo_LessThan(String memo) { - regMemo(CK_LT, fRES(memo)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as greaterEqual. - */ - public void setMemo_GreaterEqual(String memo) { - regMemo(CK_GE, fRES(memo)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as lessEqual. - */ - public void setMemo_LessEqual(String memo) { - regMemo(CK_LE, fRES(memo)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as prefixSearch. - */ - public void setMemo_PrefixSearch(String memo) { - regMemo(CK_PS, fRES(memo)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param memo The value of memo as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setMemo_LikeSearch( - String memo, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(memo), getCValueMemo(), "MEMO", - "Memo", "memo", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param memoList The collection of memo as inScope. - */ - public void setMemo_InScope(Collection memoList) { - regMemo(CK_INS, cTL(memoList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param memo The collection of memo as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setMemo_InScope( - String memo, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(memo), getCValueMemo(), "MEMO", - "Memo", "memo", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param memoList The collection of memo as notInScope. - */ - public void setMemo_NotInScope(Collection memoList) { - regMemo(CK_NINS, cTL(memoList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setMemo_IsNull() { - regMemo(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setMemo_IsNotNull() { - regMemo(CK_ISNN, DUMMY_OBJECT); - } - - protected void regMemo(ConditionKey key, Object value) { - registerQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); - } - - protected void registerInlineMemo(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); - } - - abstract protected ConditionValue getCValueMemo(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : - * Default=[0]} - * - * @param sortOrder The value of sortOrder as equal. - */ - public void setSortOrder_Equal(Integer sortOrder) { - regSortOrder(CK_EQ, sortOrder); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as notEqual. - */ - public void setSortOrder_NotEqual(Integer sortOrder) { - regSortOrder(CK_NE, sortOrder); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as greaterThan. - */ - public void setSortOrder_GreaterThan(Integer sortOrder) { - regSortOrder(CK_GT, sortOrder); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as lessThan. - */ - public void setSortOrder_LessThan(Integer sortOrder) { - regSortOrder(CK_LT, sortOrder); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as greaterEqual. - */ - public void setSortOrder_GreaterEqual(Integer sortOrder) { - regSortOrder(CK_GE, sortOrder); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as lessEqual. - */ - public void setSortOrder_LessEqual(Integer sortOrder) { - regSortOrder(CK_LE, sortOrder); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param sortOrderList The collection of sortOrder as inScope. - */ - public void setSortOrder_InScope(Collection sortOrderList) { - regSortOrder(CK_INS, cTL(sortOrderList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param sortOrderList The collection of sortOrder as notInScope. - */ - public void setSortOrder_NotInScope(Collection sortOrderList) { - regSortOrder(CK_NINS, cTL(sortOrderList)); - } - - protected void regSortOrder(ConditionKey key, Object value) { - registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", - "SortOrder", "sortOrder"); - } - - protected void registerInlineSortOrder(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", - "SortOrder", "sortOrder"); - } - - abstract protected ConditionValue getCValueSortOrder(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} - * - * @param createdTime The value of createdTime as equal. - */ - public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { - regCreatedTime(CK_EQ, createdTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as notEqual. - */ - public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_NE, createdTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterThan. - */ - public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GT, createdTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessThan. - */ - public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LT, createdTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterEqual. - */ - public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GE, createdTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessEqual. - */ - public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LE, createdTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setCreatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueCreatedTime(), - "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - */ - public void setCreatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setCreatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regCreatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - protected void registerInlineCreatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - abstract protected ConditionValue getCValueCreatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} - * - * @param createdBy The value of createdBy as equal. - */ - public void setCreatedBy_Equal(String createdBy) { - regCreatedBy(CK_EQ, fRES(createdBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as notEqual. - */ - public void setCreatedBy_NotEqual(String createdBy) { - regCreatedBy(CK_NE, fRES(createdBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterThan. - */ - public void setCreatedBy_GreaterThan(String createdBy) { - regCreatedBy(CK_GT, fRES(createdBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessThan. - */ - public void setCreatedBy_LessThan(String createdBy) { - regCreatedBy(CK_LT, fRES(createdBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterEqual. - */ - public void setCreatedBy_GreaterEqual(String createdBy) { - regCreatedBy(CK_GE, fRES(createdBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessEqual. - */ - public void setCreatedBy_LessEqual(String createdBy) { - regCreatedBy(CK_LE, fRES(createdBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as prefixSearch. - */ - public void setCreatedBy_PrefixSearch(String createdBy) { - regCreatedBy(CK_PS, fRES(createdBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param createdBy The value of createdBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setCreatedBy_LikeSearch( - String createdBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as inScope. - */ - public void setCreatedBy_InScope(Collection createdByList) { - regCreatedBy(CK_INS, cTL(createdByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdBy The collection of createdBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setCreatedBy_InScope( - String createdBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as notInScope. - */ - public void setCreatedBy_NotInScope(Collection createdByList) { - regCreatedBy(CK_NINS, cTL(createdByList)); - } - - protected void regCreatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - protected void registerInlineCreatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - abstract protected ConditionValue getCValueCreatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} - * - * @param updatedTime The value of updatedTime as equal. - */ - public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_EQ, updatedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as notEqual. - */ - public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_NE, updatedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterThan. - */ - public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GT, updatedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessThan. - */ - public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LT, updatedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterEqual. - */ - public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GE, updatedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessEqual. - */ - public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LE, updatedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setUpdatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueUpdatedTime(), - "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - */ - public void setUpdatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setUpdatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regUpdatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - protected void registerInlineUpdatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - abstract protected ConditionValue getCValueUpdatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} - * - * @param updatedBy The value of updatedBy as equal. - */ - public void setUpdatedBy_Equal(String updatedBy) { - regUpdatedBy(CK_EQ, fRES(updatedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as notEqual. - */ - public void setUpdatedBy_NotEqual(String updatedBy) { - regUpdatedBy(CK_NE, fRES(updatedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterThan. - */ - public void setUpdatedBy_GreaterThan(String updatedBy) { - regUpdatedBy(CK_GT, fRES(updatedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessThan. - */ - public void setUpdatedBy_LessThan(String updatedBy) { - regUpdatedBy(CK_LT, fRES(updatedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterEqual. - */ - public void setUpdatedBy_GreaterEqual(String updatedBy) { - regUpdatedBy(CK_GE, fRES(updatedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessEqual. - */ - public void setUpdatedBy_LessEqual(String updatedBy) { - regUpdatedBy(CK_LE, fRES(updatedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as prefixSearch. - */ - public void setUpdatedBy_PrefixSearch(String updatedBy) { - regUpdatedBy(CK_PS, fRES(updatedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param updatedBy The value of updatedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUpdatedBy_LikeSearch( - String updatedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as inScope. - */ - public void setUpdatedBy_InScope(Collection updatedByList) { - regUpdatedBy(CK_INS, cTL(updatedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedBy The collection of updatedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUpdatedBy_InScope( - String updatedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as notInScope. - */ - public void setUpdatedBy_NotInScope(Collection updatedByList) { - regUpdatedBy(CK_NINS, cTL(updatedByList)); - } - - protected void regUpdatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - protected void registerInlineUpdatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - abstract protected ConditionValue getCValueUpdatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} - * - * @param deletedTime The value of deletedTime as equal. - */ - public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_EQ, deletedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as notEqual. - */ - public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_NE, deletedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterThan. - */ - public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GT, deletedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessThan. - */ - public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LT, deletedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterEqual. - */ - public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GE, deletedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessEqual. - */ - public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LE, deletedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setDeletedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueDeletedTime(), - "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - */ - public void setDeletedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setDeletedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedTime_IsNull() { - regDeletedTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedTime_IsNotNull() { - regDeletedTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - protected void registerInlineDeletedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - abstract protected ConditionValue getCValueDeletedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} - * - * @param deletedBy The value of deletedBy as equal. - */ - public void setDeletedBy_Equal(String deletedBy) { - regDeletedBy(CK_EQ, fRES(deletedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as notEqual. - */ - public void setDeletedBy_NotEqual(String deletedBy) { - regDeletedBy(CK_NE, fRES(deletedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterThan. - */ - public void setDeletedBy_GreaterThan(String deletedBy) { - regDeletedBy(CK_GT, fRES(deletedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessThan. - */ - public void setDeletedBy_LessThan(String deletedBy) { - regDeletedBy(CK_LT, fRES(deletedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterEqual. - */ - public void setDeletedBy_GreaterEqual(String deletedBy) { - regDeletedBy(CK_GE, fRES(deletedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessEqual. - */ - public void setDeletedBy_LessEqual(String deletedBy) { - regDeletedBy(CK_LE, fRES(deletedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as prefixSearch. - */ - public void setDeletedBy_PrefixSearch(String deletedBy) { - regDeletedBy(CK_PS, fRES(deletedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param deletedBy The value of deletedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setDeletedBy_LikeSearch( - String deletedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as inScope. - */ - public void setDeletedBy_InScope(Collection deletedByList) { - regDeletedBy(CK_INS, cTL(deletedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedBy The collection of deletedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setDeletedBy_InScope( - String deletedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as notInScope. - */ - public void setDeletedBy_NotInScope(Collection deletedByList) { - regDeletedBy(CK_NINS, cTL(deletedByList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedBy_IsNull() { - regDeletedBy(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedBy_IsNotNull() { - regDeletedBy(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - protected void registerInlineDeletedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - abstract protected ConditionValue getCValueDeletedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : - * Default=[0]} - * - * @param versionno The value of versionno as equal. - */ - public void setVersionno_Equal(Integer versionno) { - regVersionno(CK_EQ, versionno); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as notEqual. - */ - public void setVersionno_NotEqual(Integer versionno) { - regVersionno(CK_NE, versionno); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterThan. - */ - public void setVersionno_GreaterThan(Integer versionno) { - regVersionno(CK_GT, versionno); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessThan. - */ - public void setVersionno_LessThan(Integer versionno) { - regVersionno(CK_LT, versionno); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterEqual. - */ - public void setVersionno_GreaterEqual(Integer versionno) { - regVersionno(CK_GE, versionno); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessEqual. - */ - public void setVersionno_LessEqual(Integer versionno) { - regVersionno(CK_LE, versionno); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as inScope. - */ - public void setVersionno_InScope(Collection versionnoList) { - regVersionno(CK_INS, cTL(versionnoList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as notInScope. - */ - public void setVersionno_NotInScope(Collection versionnoList) { - regVersionno(CK_NINS, cTL(versionnoList)); - } - - protected void regVersionno(ConditionKey key, Object value) { - registerQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - protected void registerInlineVersionno(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - abstract protected ConditionValue getCValueVersionno(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return CategoryCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return CategoryCQ.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,1896 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,465 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsLinkCQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsLinkCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,1659 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; - -/** - * The abstract condition-query of LINK. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsLinkCQ extends AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsLinkCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "LINK"; - } - - public String getTableSqlName() { - return "LINK"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_22BA7FAB_912D_4214_94D9_E64E5C53706F]} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100) : - * NotNull} - * - * @param name The value of name as equal. - */ - public void setName_Equal(String name) { - regName(CK_EQ, fRES(name)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as notEqual. - */ - public void setName_NotEqual(String name) { - regName(CK_NE, fRES(name)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as greaterThan. - */ - public void setName_GreaterThan(String name) { - regName(CK_GT, fRES(name)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as lessThan. - */ - public void setName_LessThan(String name) { - regName(CK_LT, fRES(name)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as greaterEqual. - */ - public void setName_GreaterEqual(String name) { - regName(CK_GE, fRES(name)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as lessEqual. - */ - public void setName_LessEqual(String name) { - regName(CK_LE, fRES(name)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param name The value of name as prefixSearch. - */ - public void setName_PrefixSearch(String name) { - regName(CK_PS, fRES(name)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param name The value of name as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setName_LikeSearch( - String name, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", - "Name", "name", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param nameList The collection of name as inScope. - */ - public void setName_InScope(Collection nameList) { - regName(CK_INS, cTL(nameList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param name The collection of name as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setName_InScope( - String name, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", - "Name", "name", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param nameList The collection of name as notInScope. - */ - public void setName_NotInScope(Collection nameList) { - regName(CK_NINS, cTL(nameList)); - } - - protected void regName(ConditionKey key, Object value) { - registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); - } - - protected void registerInlineName(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); - } - - abstract protected ConditionValue getCValueName(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200)} - * - * @param memo The value of memo as equal. - */ - public void setMemo_Equal(String memo) { - regMemo(CK_EQ, fRES(memo)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as notEqual. - */ - public void setMemo_NotEqual(String memo) { - regMemo(CK_NE, fRES(memo)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as greaterThan. - */ - public void setMemo_GreaterThan(String memo) { - regMemo(CK_GT, fRES(memo)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as lessThan. - */ - public void setMemo_LessThan(String memo) { - regMemo(CK_LT, fRES(memo)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as greaterEqual. - */ - public void setMemo_GreaterEqual(String memo) { - regMemo(CK_GE, fRES(memo)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as lessEqual. - */ - public void setMemo_LessEqual(String memo) { - regMemo(CK_LE, fRES(memo)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param memo The value of memo as prefixSearch. - */ - public void setMemo_PrefixSearch(String memo) { - regMemo(CK_PS, fRES(memo)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param memo The value of memo as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setMemo_LikeSearch( - String memo, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(memo), getCValueMemo(), "MEMO", - "Memo", "memo", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param memoList The collection of memo as inScope. - */ - public void setMemo_InScope(Collection memoList) { - regMemo(CK_INS, cTL(memoList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param memo The collection of memo as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setMemo_InScope( - String memo, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(memo), getCValueMemo(), "MEMO", - "Memo", "memo", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param memoList The collection of memo as notInScope. - */ - public void setMemo_NotInScope(Collection memoList) { - regMemo(CK_NINS, cTL(memoList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setMemo_IsNull() { - regMemo(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setMemo_IsNotNull() { - regMemo(CK_ISNN, DUMMY_OBJECT); - } - - protected void regMemo(ConditionKey key, Object value) { - registerQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); - } - - protected void registerInlineMemo(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueMemo(), "MEMO", "Memo", "memo"); - } - - abstract protected ConditionValue getCValueMemo(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : NotNull - * : Default=[E]} - * - * @param url The value of url as equal. - */ - public void setUrl_Equal(String url) { - regUrl(CK_EQ, fRES(url)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param url The value of url as notEqual. - */ - public void setUrl_NotEqual(String url) { - regUrl(CK_NE, fRES(url)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param url The value of url as greaterThan. - */ - public void setUrl_GreaterThan(String url) { - regUrl(CK_GT, fRES(url)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param url The value of url as lessThan. - */ - public void setUrl_LessThan(String url) { - regUrl(CK_LT, fRES(url)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param url The value of url as greaterEqual. - */ - public void setUrl_GreaterEqual(String url) { - regUrl(CK_GE, fRES(url)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param url The value of url as lessEqual. - */ - public void setUrl_LessEqual(String url) { - regUrl(CK_LE, fRES(url)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param url The value of url as prefixSearch. - */ - public void setUrl_PrefixSearch(String url) { - regUrl(CK_PS, fRES(url)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param url The value of url as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUrl_LikeSearch( - String url, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", - "url", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param urlList The collection of url as inScope. - */ - public void setUrl_InScope(Collection urlList) { - regUrl(CK_INS, cTL(urlList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param url The collection of url as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUrl_InScope( - String url, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", - "url", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param urlList The collection of url as notInScope. - */ - public void setUrl_NotInScope(Collection urlList) { - regUrl(CK_NINS, cTL(urlList)); - } - - protected void regUrl(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); - } - - protected void registerInlineUrl(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); - } - - abstract protected ConditionValue getCValueUrl(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : NotNull} - * - * @param type The value of type as equal. - */ - public void setType_Equal(String type) { - regType(CK_EQ, fRES(type)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as notEqual. - */ - public void setType_NotEqual(String type) { - regType(CK_NE, fRES(type)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as greaterThan. - */ - public void setType_GreaterThan(String type) { - regType(CK_GT, fRES(type)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as lessThan. - */ - public void setType_LessThan(String type) { - regType(CK_LT, fRES(type)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as greaterEqual. - */ - public void setType_GreaterEqual(String type) { - regType(CK_GE, fRES(type)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as lessEqual. - */ - public void setType_LessEqual(String type) { - regType(CK_LE, fRES(type)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as prefixSearch. - */ - public void setType_PrefixSearch(String type) { - regType(CK_PS, fRES(type)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param type The value of type as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setType_LikeSearch( - String type, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", - "Type", "type", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param typeList The collection of type as inScope. - */ - public void setType_InScope(Collection typeList) { - regType(CK_INS, cTL(typeList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param type The collection of type as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setType_InScope( - String type, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", - "Type", "type", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param typeList The collection of type as notInScope. - */ - public void setType_NotInScope(Collection typeList) { - regType(CK_NINS, cTL(typeList)); - } - - protected void regType(ConditionKey key, Object value) { - registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); - } - - protected void registerInlineType(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); - } - - abstract protected ConditionValue getCValueType(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : - * Default=[0]} - * - * @param sortOrder The value of sortOrder as equal. - */ - public void setSortOrder_Equal(Integer sortOrder) { - regSortOrder(CK_EQ, sortOrder); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as notEqual. - */ - public void setSortOrder_NotEqual(Integer sortOrder) { - regSortOrder(CK_NE, sortOrder); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as greaterThan. - */ - public void setSortOrder_GreaterThan(Integer sortOrder) { - regSortOrder(CK_GT, sortOrder); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as lessThan. - */ - public void setSortOrder_LessThan(Integer sortOrder) { - regSortOrder(CK_LT, sortOrder); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as greaterEqual. - */ - public void setSortOrder_GreaterEqual(Integer sortOrder) { - regSortOrder(CK_GE, sortOrder); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param sortOrder The value of sortOrder as lessEqual. - */ - public void setSortOrder_LessEqual(Integer sortOrder) { - regSortOrder(CK_LE, sortOrder); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param sortOrderList The collection of sortOrder as inScope. - */ - public void setSortOrder_InScope(Collection sortOrderList) { - regSortOrder(CK_INS, cTL(sortOrderList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param sortOrderList The collection of sortOrder as notInScope. - */ - public void setSortOrder_NotInScope(Collection sortOrderList) { - regSortOrder(CK_NINS, cTL(sortOrderList)); - } - - protected void regSortOrder(ConditionKey key, Object value) { - registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", - "SortOrder", "sortOrder"); - } - - protected void registerInlineSortOrder(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", - "SortOrder", "sortOrder"); - } - - abstract protected ConditionValue getCValueSortOrder(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : Default=[0] : FK to - * CATEGORY} - * - * @param categoryId The value of categoryId as equal. - */ - public void setCategoryId_Equal(Integer categoryId) { - regCategoryId(CK_EQ, categoryId); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param categoryId The value of categoryId as notEqual. - */ - public void setCategoryId_NotEqual(Integer categoryId) { - regCategoryId(CK_NE, categoryId); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param categoryId The value of categoryId as greaterThan. - */ - public void setCategoryId_GreaterThan(Integer categoryId) { - regCategoryId(CK_GT, categoryId); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param categoryId The value of categoryId as lessThan. - */ - public void setCategoryId_LessThan(Integer categoryId) { - regCategoryId(CK_LT, categoryId); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param categoryId The value of categoryId as greaterEqual. - */ - public void setCategoryId_GreaterEqual(Integer categoryId) { - regCategoryId(CK_GE, categoryId); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param categoryId The value of categoryId as lessEqual. - */ - public void setCategoryId_LessEqual(Integer categoryId) { - regCategoryId(CK_LE, categoryId); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param categoryIdList The collection of categoryId as inScope. - */ - public void setCategoryId_InScope(Collection categoryIdList) { - regCategoryId(CK_INS, cTL(categoryIdList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param categoryIdList The collection of categoryId as notInScope. - */ - public void setCategoryId_NotInScope(Collection categoryIdList) { - regCategoryId(CK_NINS, cTL(categoryIdList)); - } - - /** - * @param categoryCBquery Query. - * @deprecated Please use inScopeCategory(subQuery) method. - */ - public void setCategoryId_InScopeSubQuery_Category( - CategoryCQ categoryCBquery) { - String subQueryPropertyName = keepCategoryId_InScopeSubQuery_Category(categoryCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(categoryCBquery, "CATEGORY_ID", "ID", - subQueryPropertyName); - } - - public void inScopeCategory(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - CategoryCB cb = new CategoryCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepCategoryId_InScopeSubQuery_Category(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "CATEGORY_ID", "ID", - subQueryPropertyName); - } - - abstract public String keepCategoryId_InScopeSubQuery_Category( - CategoryCQ subQuery); - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setCategoryId_IsNull() { - regCategoryId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setCategoryId_IsNotNull() { - regCategoryId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regCategoryId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", - "CategoryId", "categoryId"); - } - - protected void registerInlineCategoryId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", - "CategoryId", "categoryId"); - } - - abstract protected ConditionValue getCValueCategoryId(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} - * - * @param createdTime The value of createdTime as equal. - */ - public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { - regCreatedTime(CK_EQ, createdTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as notEqual. - */ - public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_NE, createdTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterThan. - */ - public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GT, createdTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessThan. - */ - public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LT, createdTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterEqual. - */ - public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GE, createdTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessEqual. - */ - public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LE, createdTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setCreatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueCreatedTime(), - "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - */ - public void setCreatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setCreatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regCreatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - protected void registerInlineCreatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - abstract protected ConditionValue getCValueCreatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} - * - * @param createdBy The value of createdBy as equal. - */ - public void setCreatedBy_Equal(String createdBy) { - regCreatedBy(CK_EQ, fRES(createdBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as notEqual. - */ - public void setCreatedBy_NotEqual(String createdBy) { - regCreatedBy(CK_NE, fRES(createdBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterThan. - */ - public void setCreatedBy_GreaterThan(String createdBy) { - regCreatedBy(CK_GT, fRES(createdBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessThan. - */ - public void setCreatedBy_LessThan(String createdBy) { - regCreatedBy(CK_LT, fRES(createdBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterEqual. - */ - public void setCreatedBy_GreaterEqual(String createdBy) { - regCreatedBy(CK_GE, fRES(createdBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessEqual. - */ - public void setCreatedBy_LessEqual(String createdBy) { - regCreatedBy(CK_LE, fRES(createdBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as prefixSearch. - */ - public void setCreatedBy_PrefixSearch(String createdBy) { - regCreatedBy(CK_PS, fRES(createdBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param createdBy The value of createdBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setCreatedBy_LikeSearch( - String createdBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as inScope. - */ - public void setCreatedBy_InScope(Collection createdByList) { - regCreatedBy(CK_INS, cTL(createdByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdBy The collection of createdBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setCreatedBy_InScope( - String createdBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as notInScope. - */ - public void setCreatedBy_NotInScope(Collection createdByList) { - regCreatedBy(CK_NINS, cTL(createdByList)); - } - - protected void regCreatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - protected void registerInlineCreatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - abstract protected ConditionValue getCValueCreatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} - * - * @param updatedTime The value of updatedTime as equal. - */ - public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_EQ, updatedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as notEqual. - */ - public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_NE, updatedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterThan. - */ - public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GT, updatedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessThan. - */ - public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LT, updatedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterEqual. - */ - public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GE, updatedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessEqual. - */ - public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LE, updatedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setUpdatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueUpdatedTime(), - "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - */ - public void setUpdatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setUpdatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regUpdatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - protected void registerInlineUpdatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - abstract protected ConditionValue getCValueUpdatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} - * - * @param updatedBy The value of updatedBy as equal. - */ - public void setUpdatedBy_Equal(String updatedBy) { - regUpdatedBy(CK_EQ, fRES(updatedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as notEqual. - */ - public void setUpdatedBy_NotEqual(String updatedBy) { - regUpdatedBy(CK_NE, fRES(updatedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterThan. - */ - public void setUpdatedBy_GreaterThan(String updatedBy) { - regUpdatedBy(CK_GT, fRES(updatedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessThan. - */ - public void setUpdatedBy_LessThan(String updatedBy) { - regUpdatedBy(CK_LT, fRES(updatedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterEqual. - */ - public void setUpdatedBy_GreaterEqual(String updatedBy) { - regUpdatedBy(CK_GE, fRES(updatedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessEqual. - */ - public void setUpdatedBy_LessEqual(String updatedBy) { - regUpdatedBy(CK_LE, fRES(updatedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as prefixSearch. - */ - public void setUpdatedBy_PrefixSearch(String updatedBy) { - regUpdatedBy(CK_PS, fRES(updatedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param updatedBy The value of updatedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUpdatedBy_LikeSearch( - String updatedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as inScope. - */ - public void setUpdatedBy_InScope(Collection updatedByList) { - regUpdatedBy(CK_INS, cTL(updatedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedBy The collection of updatedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUpdatedBy_InScope( - String updatedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as notInScope. - */ - public void setUpdatedBy_NotInScope(Collection updatedByList) { - regUpdatedBy(CK_NINS, cTL(updatedByList)); - } - - protected void regUpdatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - protected void registerInlineUpdatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - abstract protected ConditionValue getCValueUpdatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} - * - * @param deletedTime The value of deletedTime as equal. - */ - public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_EQ, deletedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as notEqual. - */ - public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_NE, deletedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterThan. - */ - public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GT, deletedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessThan. - */ - public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LT, deletedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterEqual. - */ - public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GE, deletedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessEqual. - */ - public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LE, deletedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setDeletedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueDeletedTime(), - "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - */ - public void setDeletedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setDeletedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedTime_IsNull() { - regDeletedTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedTime_IsNotNull() { - regDeletedTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - protected void registerInlineDeletedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - abstract protected ConditionValue getCValueDeletedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} - * - * @param deletedBy The value of deletedBy as equal. - */ - public void setDeletedBy_Equal(String deletedBy) { - regDeletedBy(CK_EQ, fRES(deletedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as notEqual. - */ - public void setDeletedBy_NotEqual(String deletedBy) { - regDeletedBy(CK_NE, fRES(deletedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterThan. - */ - public void setDeletedBy_GreaterThan(String deletedBy) { - regDeletedBy(CK_GT, fRES(deletedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessThan. - */ - public void setDeletedBy_LessThan(String deletedBy) { - regDeletedBy(CK_LT, fRES(deletedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterEqual. - */ - public void setDeletedBy_GreaterEqual(String deletedBy) { - regDeletedBy(CK_GE, fRES(deletedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessEqual. - */ - public void setDeletedBy_LessEqual(String deletedBy) { - regDeletedBy(CK_LE, fRES(deletedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as prefixSearch. - */ - public void setDeletedBy_PrefixSearch(String deletedBy) { - regDeletedBy(CK_PS, fRES(deletedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param deletedBy The value of deletedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setDeletedBy_LikeSearch( - String deletedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as inScope. - */ - public void setDeletedBy_InScope(Collection deletedByList) { - regDeletedBy(CK_INS, cTL(deletedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedBy The collection of deletedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setDeletedBy_InScope( - String deletedBy, - jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as notInScope. - */ - public void setDeletedBy_NotInScope(Collection deletedByList) { - regDeletedBy(CK_NINS, cTL(deletedByList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedBy_IsNull() { - regDeletedBy(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedBy_IsNotNull() { - regDeletedBy(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - protected void registerInlineDeletedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - abstract protected ConditionValue getCValueDeletedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : - * Default=[0]} - * - * @param versionno The value of versionno as equal. - */ - public void setVersionno_Equal(Integer versionno) { - regVersionno(CK_EQ, versionno); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as notEqual. - */ - public void setVersionno_NotEqual(Integer versionno) { - regVersionno(CK_NE, versionno); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterThan. - */ - public void setVersionno_GreaterThan(Integer versionno) { - regVersionno(CK_GT, versionno); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessThan. - */ - public void setVersionno_LessThan(Integer versionno) { - regVersionno(CK_LT, versionno); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterEqual. - */ - public void setVersionno_GreaterEqual(Integer versionno) { - regVersionno(CK_GE, versionno); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessEqual. - */ - public void setVersionno_LessEqual(Integer versionno) { - regVersionno(CK_LE, versionno); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as inScope. - */ - public void setVersionno_InScope(Collection versionnoList) { - regVersionno(CK_INS, cTL(versionnoList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as notInScope. - */ - public void setVersionno_NotInScope(Collection versionnoList) { - regVersionno(CK_NINS, cTL(versionnoList)); - } - - protected void regVersionno(ConditionKey key, Object value) { - registerQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - protected void registerInlineVersionno(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - abstract protected ConditionValue getCValueVersionno(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return LinkCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return LinkCQ.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,1894 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,464 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,2652 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.bookmark.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; +import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; +import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; +import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,468 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.BookmarkCategoryCIQ; + +/** + * The base condition-query of BOOKMARK_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsBookmarkCategoryCQ extends AbstractBsBookmarkCategoryCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BookmarkCategoryCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsBookmarkCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from BOOKMARK_CATEGORY) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public BookmarkCategoryCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new BookmarkCategoryCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * BOOKMARK_CATEGORY on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public BookmarkCategoryCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + BookmarkCategoryCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_BookmarkLinkListMap; + + public Map getId_InScopeSubQuery_BookmarkLinkList() { + return _id_InScopeSubQuery_BookmarkLinkListMap; + } + + public String keepId_InScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery) { + if (_id_InScopeSubQuery_BookmarkLinkListMap == null) { + _id_InScopeSubQuery_BookmarkLinkListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_BookmarkLinkListMap.size() + 1); + _id_InScopeSubQuery_BookmarkLinkListMap.put(key, subQuery); + return "id_InScopeSubQuery_BookmarkLinkList." + key; + } + + protected Map _id_NotInScopeSubQuery_BookmarkLinkListMap; + + public Map getId_NotInScopeSubQuery_BookmarkLinkList() { + return _id_NotInScopeSubQuery_BookmarkLinkListMap; + } + + public String keepId_NotInScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery) { + if (_id_NotInScopeSubQuery_BookmarkLinkListMap == null) { + _id_NotInScopeSubQuery_BookmarkLinkListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_BookmarkLinkListMap.size() + 1); + _id_NotInScopeSubQuery_BookmarkLinkListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_BookmarkLinkList." + key; + } + + protected Map _id_ExistsSubQuery_BookmarkLinkListMap; + + public Map getId_ExistsSubQuery_BookmarkLinkList() { + return _id_ExistsSubQuery_BookmarkLinkListMap; + } + + public String keepId_ExistsSubQuery_BookmarkLinkList(BookmarkLinkCQ subQuery) { + if (_id_ExistsSubQuery_BookmarkLinkListMap == null) { + _id_ExistsSubQuery_BookmarkLinkListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_BookmarkLinkListMap.size() + 1); + _id_ExistsSubQuery_BookmarkLinkListMap.put(key, subQuery); + return "id_ExistsSubQuery_BookmarkLinkList." + key; + } + + protected Map _id_NotExistsSubQuery_BookmarkLinkListMap; + + public Map getId_NotExistsSubQuery_BookmarkLinkList() { + return _id_NotExistsSubQuery_BookmarkLinkListMap; + } + + public String keepId_NotExistsSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery) { + if (_id_NotExistsSubQuery_BookmarkLinkListMap == null) { + _id_NotExistsSubQuery_BookmarkLinkListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_BookmarkLinkListMap.size() + 1); + _id_NotExistsSubQuery_BookmarkLinkListMap.put(key, subQuery); + return "id_NotExistsSubQuery_BookmarkLinkList." + key; + } + + protected Map _id_DeriveSubQuery_BookmarkLinkListMap; + + public Map getId_DeriveSubQuery_BookmarkLinkList() { + return _id_DeriveSubQuery_BookmarkLinkListMap; + } + + public String keepId_DeriveSubQuery_BookmarkLinkList(BookmarkLinkCQ subQuery) { + if (_id_DeriveSubQuery_BookmarkLinkListMap == null) { + _id_DeriveSubQuery_BookmarkLinkListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_BookmarkLinkListMap.size() + 1); + _id_DeriveSubQuery_BookmarkLinkListMap.put(key, subQuery); + return "id_DeriveSubQuery_BookmarkLinkList." + key; + } + + public BsBookmarkCategoryCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsBookmarkCategoryCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _memo; + + public ConditionValue getMemo() { + if (_memo == null) { + _memo = new ConditionValue(); + } + return _memo; + } + + protected ConditionValue getCValueMemo() { + return getMemo(); + } + + public BsBookmarkCategoryCQ addOrderBy_Memo_Asc() { + regOBA("MEMO"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_Memo_Desc() { + regOBD("MEMO"); + return this; + } + + protected ConditionValue _type; + + public ConditionValue getType() { + if (_type == null) { + _type = new ConditionValue(); + } + return _type; + } + + protected ConditionValue getCValueType() { + return getType(); + } + + public BsBookmarkCategoryCQ addOrderBy_Type_Asc() { + regOBA("TYPE"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_Type_Desc() { + regOBD("TYPE"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsBookmarkCategoryCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsBookmarkCategoryCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsBookmarkCategoryCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsBookmarkCategoryCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsBookmarkCategoryCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsBookmarkCategoryCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsBookmarkCategoryCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsBookmarkCategoryCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsBookmarkCategoryCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsBookmarkCategoryCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsBookmarkCategoryCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return BookmarkCategoryCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,491 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.BookmarkLinkCIQ; + +/** + * The base condition-query of BOOKMARK_LINK. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsBookmarkLinkCQ extends AbstractBsBookmarkLinkCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BookmarkLinkCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsBookmarkLinkCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from BOOKMARK_LINK) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public BookmarkLinkCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new BookmarkLinkCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * BOOKMARK_LINK on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public BookmarkLinkCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + BookmarkLinkCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsBookmarkLinkCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsBookmarkLinkCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _memo; + + public ConditionValue getMemo() { + if (_memo == null) { + _memo = new ConditionValue(); + } + return _memo; + } + + protected ConditionValue getCValueMemo() { + return getMemo(); + } + + public BsBookmarkLinkCQ addOrderBy_Memo_Asc() { + regOBA("MEMO"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_Memo_Desc() { + regOBD("MEMO"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsBookmarkLinkCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _type; + + public ConditionValue getType() { + if (_type == null) { + _type = new ConditionValue(); + } + return _type; + } + + protected ConditionValue getCValueType() { + return getType(); + } + + public BsBookmarkLinkCQ addOrderBy_Type_Asc() { + regOBA("TYPE"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_Type_Desc() { + regOBD("TYPE"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsBookmarkLinkCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _categoryId; + + public ConditionValue getCategoryId() { + if (_categoryId == null) { + _categoryId = new ConditionValue(); + } + return _categoryId; + } + + protected ConditionValue getCValueCategoryId() { + return getCategoryId(); + } + + protected Map _categoryId_InScopeSubQuery_BookmarkCategoryMap; + + public Map getCategoryId_InScopeSubQuery_BookmarkCategory() { + return _categoryId_InScopeSubQuery_BookmarkCategoryMap; + } + + public String keepCategoryId_InScopeSubQuery_BookmarkCategory( + BookmarkCategoryCQ subQuery) { + if (_categoryId_InScopeSubQuery_BookmarkCategoryMap == null) { + _categoryId_InScopeSubQuery_BookmarkCategoryMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_categoryId_InScopeSubQuery_BookmarkCategoryMap.size() + 1); + _categoryId_InScopeSubQuery_BookmarkCategoryMap.put(key, subQuery); + return "categoryId_InScopeSubQuery_BookmarkCategory." + key; + } + + public BsBookmarkLinkCQ addOrderBy_CategoryId_Asc() { + regOBA("CATEGORY_ID"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_CategoryId_Desc() { + regOBD("CATEGORY_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsBookmarkLinkCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsBookmarkLinkCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsBookmarkLinkCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsBookmarkLinkCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsBookmarkLinkCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsBookmarkLinkCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsBookmarkLinkCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsBookmarkLinkCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsBookmarkLinkCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsBookmarkLinkCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + BookmarkLinkCQ baseQuery = (BookmarkLinkCQ) baseQueryAsSuper; + BookmarkLinkCQ unionQuery = (BookmarkLinkCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryBookmarkCategory()) { + unionQuery.queryBookmarkCategory().reflectRelationOnUnionQuery( + baseQuery.queryBookmarkCategory(), + unionQuery.queryBookmarkCategory()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public BookmarkCategoryCQ queryBookmarkCategory() { + return getConditionQueryBookmarkCategory(); + } + + protected BookmarkCategoryCQ _conditionQueryBookmarkCategory; + + public BookmarkCategoryCQ getConditionQueryBookmarkCategory() { + if (_conditionQueryBookmarkCategory == null) { + _conditionQueryBookmarkCategory = createQueryBookmarkCategory(); + setupOuterJoin_BookmarkCategory(); + } + return _conditionQueryBookmarkCategory; + } + + protected void setupOuterJoin_BookmarkCategory() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CATEGORY_ID"), + getConditionQueryBookmarkCategory().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryBookmarkCategory(), joinOnMap); + } + + protected BookmarkCategoryCQ createQueryBookmarkCategory() { + String nrp = resolveNextRelationPath("BOOKMARK_LINK", + "bookmarkCategory"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + BookmarkCategoryCQ cq = new BookmarkCategoryCQ(this, getSqlClause(), + jan, getNextNestLevel()); + cq.xsetForeignPropertyName("bookmarkCategory"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryBookmarkCategory() { + return _conditionQueryBookmarkCategory != null; + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkLinkCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsCategoryCQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsCategoryCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,442 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; -import jp.sf.pal.bookmark.db.cbean.cq.ciq.CategoryCIQ; - -/** - * The base condition-query of CATEGORY. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsCategoryCQ extends AbstractBsCategoryCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected CategoryCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from CATEGORY) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public CategoryCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new CategoryCIQ(getChildQuery(), getSqlClause(), - getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * CATEGORY on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public CategoryCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - CategoryCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - protected Map _id_InScopeSubQuery_LinkListMap; - - public Map getId_InScopeSubQuery_LinkList() { - return _id_InScopeSubQuery_LinkListMap; - } - - public String keepId_InScopeSubQuery_LinkList(LinkCQ subQuery) { - if (_id_InScopeSubQuery_LinkListMap == null) { - _id_InScopeSubQuery_LinkListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_LinkListMap.size() + 1); - _id_InScopeSubQuery_LinkListMap.put(key, subQuery); - return "id_InScopeSubQuery_LinkList." + key; - } - - protected Map _id_NotInScopeSubQuery_LinkListMap; - - public Map getId_NotInScopeSubQuery_LinkList() { - return _id_NotInScopeSubQuery_LinkListMap; - } - - public String keepId_NotInScopeSubQuery_LinkList(LinkCQ subQuery) { - if (_id_NotInScopeSubQuery_LinkListMap == null) { - _id_NotInScopeSubQuery_LinkListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotInScopeSubQuery_LinkListMap.size() + 1); - _id_NotInScopeSubQuery_LinkListMap.put(key, subQuery); - return "id_NotInScopeSubQuery_LinkList." + key; - } - - protected Map _id_ExistsSubQuery_LinkListMap; - - public Map getId_ExistsSubQuery_LinkList() { - return _id_ExistsSubQuery_LinkListMap; - } - - public String keepId_ExistsSubQuery_LinkList(LinkCQ subQuery) { - if (_id_ExistsSubQuery_LinkListMap == null) { - _id_ExistsSubQuery_LinkListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_ExistsSubQuery_LinkListMap.size() + 1); - _id_ExistsSubQuery_LinkListMap.put(key, subQuery); - return "id_ExistsSubQuery_LinkList." + key; - } - - protected Map _id_NotExistsSubQuery_LinkListMap; - - public Map getId_NotExistsSubQuery_LinkList() { - return _id_NotExistsSubQuery_LinkListMap; - } - - public String keepId_NotExistsSubQuery_LinkList(LinkCQ subQuery) { - if (_id_NotExistsSubQuery_LinkListMap == null) { - _id_NotExistsSubQuery_LinkListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotExistsSubQuery_LinkListMap.size() + 1); - _id_NotExistsSubQuery_LinkListMap.put(key, subQuery); - return "id_NotExistsSubQuery_LinkList." + key; - } - - protected Map _id_DeriveSubQuery_LinkListMap; - - public Map getId_DeriveSubQuery_LinkList() { - return _id_DeriveSubQuery_LinkListMap; - } - - public String keepId_DeriveSubQuery_LinkList(LinkCQ subQuery) { - if (_id_DeriveSubQuery_LinkListMap == null) { - _id_DeriveSubQuery_LinkListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_DeriveSubQuery_LinkListMap.size() + 1); - _id_DeriveSubQuery_LinkListMap.put(key, subQuery); - return "id_DeriveSubQuery_LinkList." + key; - } - - public BsCategoryCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsCategoryCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _name; - - public ConditionValue getName() { - if (_name == null) { - _name = new ConditionValue(); - } - return _name; - } - - protected ConditionValue getCValueName() { - return getName(); - } - - public BsCategoryCQ addOrderBy_Name_Asc() { - regOBA("NAME"); - return this; - } - - public BsCategoryCQ addOrderBy_Name_Desc() { - regOBD("NAME"); - return this; - } - - protected ConditionValue _memo; - - public ConditionValue getMemo() { - if (_memo == null) { - _memo = new ConditionValue(); - } - return _memo; - } - - protected ConditionValue getCValueMemo() { - return getMemo(); - } - - public BsCategoryCQ addOrderBy_Memo_Asc() { - regOBA("MEMO"); - return this; - } - - public BsCategoryCQ addOrderBy_Memo_Desc() { - regOBD("MEMO"); - return this; - } - - protected ConditionValue _sortOrder; - - public ConditionValue getSortOrder() { - if (_sortOrder == null) { - _sortOrder = new ConditionValue(); - } - return _sortOrder; - } - - protected ConditionValue getCValueSortOrder() { - return getSortOrder(); - } - - public BsCategoryCQ addOrderBy_SortOrder_Asc() { - regOBA("SORT_ORDER"); - return this; - } - - public BsCategoryCQ addOrderBy_SortOrder_Desc() { - regOBD("SORT_ORDER"); - return this; - } - - protected ConditionValue _createdTime; - - public ConditionValue getCreatedTime() { - if (_createdTime == null) { - _createdTime = new ConditionValue(); - } - return _createdTime; - } - - protected ConditionValue getCValueCreatedTime() { - return getCreatedTime(); - } - - public BsCategoryCQ addOrderBy_CreatedTime_Asc() { - regOBA("CREATED_TIME"); - return this; - } - - public BsCategoryCQ addOrderBy_CreatedTime_Desc() { - regOBD("CREATED_TIME"); - return this; - } - - protected ConditionValue _createdBy; - - public ConditionValue getCreatedBy() { - if (_createdBy == null) { - _createdBy = new ConditionValue(); - } - return _createdBy; - } - - protected ConditionValue getCValueCreatedBy() { - return getCreatedBy(); - } - - public BsCategoryCQ addOrderBy_CreatedBy_Asc() { - regOBA("CREATED_BY"); - return this; - } - - public BsCategoryCQ addOrderBy_CreatedBy_Desc() { - regOBD("CREATED_BY"); - return this; - } - - protected ConditionValue _updatedTime; - - public ConditionValue getUpdatedTime() { - if (_updatedTime == null) { - _updatedTime = new ConditionValue(); - } - return _updatedTime; - } - - protected ConditionValue getCValueUpdatedTime() { - return getUpdatedTime(); - } - - public BsCategoryCQ addOrderBy_UpdatedTime_Asc() { - regOBA("UPDATED_TIME"); - return this; - } - - public BsCategoryCQ addOrderBy_UpdatedTime_Desc() { - regOBD("UPDATED_TIME"); - return this; - } - - protected ConditionValue _updatedBy; - - public ConditionValue getUpdatedBy() { - if (_updatedBy == null) { - _updatedBy = new ConditionValue(); - } - return _updatedBy; - } - - protected ConditionValue getCValueUpdatedBy() { - return getUpdatedBy(); - } - - public BsCategoryCQ addOrderBy_UpdatedBy_Asc() { - regOBA("UPDATED_BY"); - return this; - } - - public BsCategoryCQ addOrderBy_UpdatedBy_Desc() { - regOBD("UPDATED_BY"); - return this; - } - - protected ConditionValue _deletedTime; - - public ConditionValue getDeletedTime() { - if (_deletedTime == null) { - _deletedTime = new ConditionValue(); - } - return _deletedTime; - } - - protected ConditionValue getCValueDeletedTime() { - return getDeletedTime(); - } - - public BsCategoryCQ addOrderBy_DeletedTime_Asc() { - regOBA("DELETED_TIME"); - return this; - } - - public BsCategoryCQ addOrderBy_DeletedTime_Desc() { - regOBD("DELETED_TIME"); - return this; - } - - protected ConditionValue _deletedBy; - - public ConditionValue getDeletedBy() { - if (_deletedBy == null) { - _deletedBy = new ConditionValue(); - } - return _deletedBy; - } - - protected ConditionValue getCValueDeletedBy() { - return getDeletedBy(); - } - - public BsCategoryCQ addOrderBy_DeletedBy_Asc() { - regOBA("DELETED_BY"); - return this; - } - - public BsCategoryCQ addOrderBy_DeletedBy_Desc() { - regOBD("DELETED_BY"); - return this; - } - - protected ConditionValue _versionno; - - public ConditionValue getVersionno() { - if (_versionno == null) { - _versionno = new ConditionValue(); - } - return _versionno; - } - - protected ConditionValue getCValueVersionno() { - return getVersionno(); - } - - public BsCategoryCQ addOrderBy_Versionno_Asc() { - regOBA("VERSIONNO"); - return this; - } - - public BsCategoryCQ addOrderBy_Versionno_Desc() { - regOBD("VERSIONNO"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsCategoryCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsCategoryCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - protected String getConditionQueryClassNameInternally() { - return CategoryCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,575 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,291 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsLinkCQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsLinkCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,488 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; -import jp.sf.pal.bookmark.db.cbean.cq.ciq.LinkCIQ; - -/** - * The base condition-query of LINK. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsLinkCQ extends AbstractBsLinkCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected LinkCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsLinkCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from LINK) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public LinkCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new LinkCIQ(getChildQuery(), getSqlClause(), - getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join LINK - * on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public LinkCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - LinkCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - public BsLinkCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsLinkCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _name; - - public ConditionValue getName() { - if (_name == null) { - _name = new ConditionValue(); - } - return _name; - } - - protected ConditionValue getCValueName() { - return getName(); - } - - public BsLinkCQ addOrderBy_Name_Asc() { - regOBA("NAME"); - return this; - } - - public BsLinkCQ addOrderBy_Name_Desc() { - regOBD("NAME"); - return this; - } - - protected ConditionValue _memo; - - public ConditionValue getMemo() { - if (_memo == null) { - _memo = new ConditionValue(); - } - return _memo; - } - - protected ConditionValue getCValueMemo() { - return getMemo(); - } - - public BsLinkCQ addOrderBy_Memo_Asc() { - regOBA("MEMO"); - return this; - } - - public BsLinkCQ addOrderBy_Memo_Desc() { - regOBD("MEMO"); - return this; - } - - protected ConditionValue _url; - - public ConditionValue getUrl() { - if (_url == null) { - _url = new ConditionValue(); - } - return _url; - } - - protected ConditionValue getCValueUrl() { - return getUrl(); - } - - public BsLinkCQ addOrderBy_Url_Asc() { - regOBA("URL"); - return this; - } - - public BsLinkCQ addOrderBy_Url_Desc() { - regOBD("URL"); - return this; - } - - protected ConditionValue _type; - - public ConditionValue getType() { - if (_type == null) { - _type = new ConditionValue(); - } - return _type; - } - - protected ConditionValue getCValueType() { - return getType(); - } - - public BsLinkCQ addOrderBy_Type_Asc() { - regOBA("TYPE"); - return this; - } - - public BsLinkCQ addOrderBy_Type_Desc() { - regOBD("TYPE"); - return this; - } - - protected ConditionValue _sortOrder; - - public ConditionValue getSortOrder() { - if (_sortOrder == null) { - _sortOrder = new ConditionValue(); - } - return _sortOrder; - } - - protected ConditionValue getCValueSortOrder() { - return getSortOrder(); - } - - public BsLinkCQ addOrderBy_SortOrder_Asc() { - regOBA("SORT_ORDER"); - return this; - } - - public BsLinkCQ addOrderBy_SortOrder_Desc() { - regOBD("SORT_ORDER"); - return this; - } - - protected ConditionValue _categoryId; - - public ConditionValue getCategoryId() { - if (_categoryId == null) { - _categoryId = new ConditionValue(); - } - return _categoryId; - } - - protected ConditionValue getCValueCategoryId() { - return getCategoryId(); - } - - protected Map _categoryId_InScopeSubQuery_CategoryMap; - - public Map getCategoryId_InScopeSubQuery_Category() { - return _categoryId_InScopeSubQuery_CategoryMap; - } - - public String keepCategoryId_InScopeSubQuery_Category(CategoryCQ subQuery) { - if (_categoryId_InScopeSubQuery_CategoryMap == null) { - _categoryId_InScopeSubQuery_CategoryMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_categoryId_InScopeSubQuery_CategoryMap.size() + 1); - _categoryId_InScopeSubQuery_CategoryMap.put(key, subQuery); - return "categoryId_InScopeSubQuery_Category." + key; - } - - public BsLinkCQ addOrderBy_CategoryId_Asc() { - regOBA("CATEGORY_ID"); - return this; - } - - public BsLinkCQ addOrderBy_CategoryId_Desc() { - regOBD("CATEGORY_ID"); - return this; - } - - protected ConditionValue _createdTime; - - public ConditionValue getCreatedTime() { - if (_createdTime == null) { - _createdTime = new ConditionValue(); - } - return _createdTime; - } - - protected ConditionValue getCValueCreatedTime() { - return getCreatedTime(); - } - - public BsLinkCQ addOrderBy_CreatedTime_Asc() { - regOBA("CREATED_TIME"); - return this; - } - - public BsLinkCQ addOrderBy_CreatedTime_Desc() { - regOBD("CREATED_TIME"); - return this; - } - - protected ConditionValue _createdBy; - - public ConditionValue getCreatedBy() { - if (_createdBy == null) { - _createdBy = new ConditionValue(); - } - return _createdBy; - } - - protected ConditionValue getCValueCreatedBy() { - return getCreatedBy(); - } - - public BsLinkCQ addOrderBy_CreatedBy_Asc() { - regOBA("CREATED_BY"); - return this; - } - - public BsLinkCQ addOrderBy_CreatedBy_Desc() { - regOBD("CREATED_BY"); - return this; - } - - protected ConditionValue _updatedTime; - - public ConditionValue getUpdatedTime() { - if (_updatedTime == null) { - _updatedTime = new ConditionValue(); - } - return _updatedTime; - } - - protected ConditionValue getCValueUpdatedTime() { - return getUpdatedTime(); - } - - public BsLinkCQ addOrderBy_UpdatedTime_Asc() { - regOBA("UPDATED_TIME"); - return this; - } - - public BsLinkCQ addOrderBy_UpdatedTime_Desc() { - regOBD("UPDATED_TIME"); - return this; - } - - protected ConditionValue _updatedBy; - - public ConditionValue getUpdatedBy() { - if (_updatedBy == null) { - _updatedBy = new ConditionValue(); - } - return _updatedBy; - } - - protected ConditionValue getCValueUpdatedBy() { - return getUpdatedBy(); - } - - public BsLinkCQ addOrderBy_UpdatedBy_Asc() { - regOBA("UPDATED_BY"); - return this; - } - - public BsLinkCQ addOrderBy_UpdatedBy_Desc() { - regOBD("UPDATED_BY"); - return this; - } - - protected ConditionValue _deletedTime; - - public ConditionValue getDeletedTime() { - if (_deletedTime == null) { - _deletedTime = new ConditionValue(); - } - return _deletedTime; - } - - protected ConditionValue getCValueDeletedTime() { - return getDeletedTime(); - } - - public BsLinkCQ addOrderBy_DeletedTime_Asc() { - regOBA("DELETED_TIME"); - return this; - } - - public BsLinkCQ addOrderBy_DeletedTime_Desc() { - regOBD("DELETED_TIME"); - return this; - } - - protected ConditionValue _deletedBy; - - public ConditionValue getDeletedBy() { - if (_deletedBy == null) { - _deletedBy = new ConditionValue(); - } - return _deletedBy; - } - - protected ConditionValue getCValueDeletedBy() { - return getDeletedBy(); - } - - public BsLinkCQ addOrderBy_DeletedBy_Asc() { - regOBA("DELETED_BY"); - return this; - } - - public BsLinkCQ addOrderBy_DeletedBy_Desc() { - regOBD("DELETED_BY"); - return this; - } - - protected ConditionValue _versionno; - - public ConditionValue getVersionno() { - if (_versionno == null) { - _versionno = new ConditionValue(); - } - return _versionno; - } - - protected ConditionValue getCValueVersionno() { - return getVersionno(); - } - - public BsLinkCQ addOrderBy_Versionno_Asc() { - regOBA("VERSIONNO"); - return this; - } - - public BsLinkCQ addOrderBy_Versionno_Desc() { - regOBD("VERSIONNO"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsLinkCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsLinkCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - LinkCQ baseQuery = (LinkCQ) baseQueryAsSuper; - LinkCQ unionQuery = (LinkCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQueryCategory()) { - unionQuery.queryCategory().reflectRelationOnUnionQuery( - baseQuery.queryCategory(), unionQuery.queryCategory()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public CategoryCQ queryCategory() { - return getConditionQueryCategory(); - } - - protected CategoryCQ _conditionQueryCategory; - - public CategoryCQ getConditionQueryCategory() { - if (_conditionQueryCategory == null) { - _conditionQueryCategory = createQueryCategory(); - setupOuterJoin_Category(); - } - return _conditionQueryCategory; - } - - protected void setupOuterJoin_Category() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("CATEGORY_ID"), - getConditionQueryCategory().getRealColumnName("ID")); - registerOuterJoin(getConditionQueryCategory(), joinOnMap); - } - - protected CategoryCQ createQueryCategory() { - String nrp = resolveNextRelationPath("LINK", "category"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - CategoryCQ cq = new CategoryCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("category"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQueryCategory() { - return _conditionQueryCategory != null; - } - - protected String getConditionQueryClassNameInternally() { - return LinkCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,574 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,291 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,808 @@ +package jp.sf.pal.bookmark.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,171 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsBookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsBookmarkCategoryCQ; + +/** + * The condition-inline-query of BOOKMARK_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategoryCIQ extends AbstractBsBookmarkCategoryCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsBookmarkCategoryCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public BookmarkCategoryCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsBookmarkCategoryCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_BookmarkLinkList(subQuery); + } + + public String keepId_NotInScopeSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_BookmarkLinkList(subQuery); + } + + public String keepId_ExistsSubQuery_BookmarkLinkList(BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_BookmarkLinkList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_BookmarkLinkList(BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueMemo() { + return _myCQ.getMemo(); + } + + protected ConditionValue getCValueType() { + return _myCQ.getType(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkCategoryCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,158 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsBookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsBookmarkLinkCQ; + +/** + * The condition-inline-query of BOOKMARK_LINK. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLinkCIQ extends AbstractBsBookmarkLinkCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsBookmarkLinkCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public BookmarkLinkCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsBookmarkLinkCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueMemo() { + return _myCQ.getMemo(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueType() { + return _myCQ.getType(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueCategoryId() { + return _myCQ.getCategoryId(); + } + + public String keepCategoryId_InScopeSubQuery_BookmarkCategory( + BookmarkCategoryCQ subQuery) { + return _myCQ.keepCategoryId_InScopeSubQuery_BookmarkCategory(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return BookmarkLinkCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/CategoryCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/CategoryCIQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/CategoryCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,164 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq.ciq; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; -import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsCategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.bs.BsCategoryCQ; - -/** - * The condition-inline-query of CATEGORY. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class CategoryCIQ extends AbstractBsCategoryCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsCategoryCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public CategoryCIQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel, BsCategoryCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - public String keepId_InScopeSubQuery_LinkList(LinkCQ subQuery) { - return _myCQ.keepId_InScopeSubQuery_LinkList(subQuery); - } - - public String keepId_NotInScopeSubQuery_LinkList(LinkCQ subQuery) { - return _myCQ.keepId_NotInScopeSubQuery_LinkList(subQuery); - } - - public String keepId_ExistsSubQuery_LinkList(LinkCQ subQuery) { - throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_NotExistsSubQuery_LinkList(LinkCQ subQuery) { - throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_DeriveSubQuery_LinkList(LinkCQ subQuery) { - throw new UnsupportedOperationException( - "DeriveSubQuery at inline() is unsupported! Sorry!"); - } - - protected ConditionValue getCValueName() { - return _myCQ.getName(); - } - - protected ConditionValue getCValueMemo() { - return _myCQ.getMemo(); - } - - protected ConditionValue getCValueSortOrder() { - return _myCQ.getSortOrder(); - } - - protected ConditionValue getCValueCreatedTime() { - return _myCQ.getCreatedTime(); - } - - protected ConditionValue getCValueCreatedBy() { - return _myCQ.getCreatedBy(); - } - - protected ConditionValue getCValueUpdatedTime() { - return _myCQ.getUpdatedTime(); - } - - protected ConditionValue getCValueUpdatedBy() { - return _myCQ.getUpdatedBy(); - } - - protected ConditionValue getCValueDeletedTime() { - return _myCQ.getDeletedTime(); - } - - protected ConditionValue getCValueDeletedBy() { - return _myCQ.getDeletedBy(); - } - - protected ConditionValue getCValueVersionno() { - return _myCQ.getVersionno(); - } - - protected String getConditionQueryClassNameInternally() { - return CategoryCQ.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,202 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,118 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/LinkCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/LinkCIQ.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/LinkCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,157 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.cq.ciq; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; -import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsLinkCQ; -import jp.sf.pal.bookmark.db.cbean.cq.bs.BsLinkCQ; - -/** - * The condition-inline-query of LINK. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class LinkCIQ extends AbstractBsLinkCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsLinkCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public LinkCIQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel, BsLinkCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - protected ConditionValue getCValueName() { - return _myCQ.getName(); - } - - protected ConditionValue getCValueMemo() { - return _myCQ.getMemo(); - } - - protected ConditionValue getCValueUrl() { - return _myCQ.getUrl(); - } - - protected ConditionValue getCValueType() { - return _myCQ.getType(); - } - - protected ConditionValue getCValueSortOrder() { - return _myCQ.getSortOrder(); - } - - protected ConditionValue getCValueCategoryId() { - return _myCQ.getCategoryId(); - } - - public String keepCategoryId_InScopeSubQuery_Category(CategoryCQ subQuery) { - return _myCQ.keepCategoryId_InScopeSubQuery_Category(subQuery); - } - - protected ConditionValue getCValueCreatedTime() { - return _myCQ.getCreatedTime(); - } - - protected ConditionValue getCValueCreatedBy() { - return _myCQ.getCreatedBy(); - } - - protected ConditionValue getCValueUpdatedTime() { - return _myCQ.getUpdatedTime(); - } - - protected ConditionValue getCValueUpdatedBy() { - return _myCQ.getUpdatedBy(); - } - - protected ConditionValue getCValueDeletedTime() { - return _myCQ.getDeletedTime(); - } - - protected ConditionValue getCValueDeletedBy() { - return _myCQ.getDeletedBy(); - } - - protected ConditionValue getCValueVersionno() { - return _myCQ.getVersionno(); - } - - protected String getConditionQueryClassNameInternally() { - return LinkCQ.class.getName(); - } -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,201 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,118 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,236 @@ +package jp.sf.pal.bookmark.db.cbean.cq.ciq; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,32 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; + +/** + * The nest-select-setupper of BOOKMARK_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategoryNss { + + protected BookmarkCategoryCQ _query; + + public BookmarkCategoryNss(BookmarkCategoryCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,41 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; + +/** + * The nest-select-setupper of BOOKMARK_LINK. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLinkNss { + + protected BookmarkLinkCQ _query; + + public BookmarkLinkNss(BookmarkLinkCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public BookmarkCategoryNss withBookmarkCategory() { + _query.doNss(new BookmarkLinkCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryBookmarkCategory(); + } + }); + return new BookmarkCategoryNss(_query.queryBookmarkCategory()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/CategoryNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/CategoryNss.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/CategoryNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,32 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.nss; - -import jp.sf.pal.bookmark.db.cbean.cq.CategoryCQ; - -/** - * The nest-select-setupper of CATEGORY. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class CategoryNss { - - protected CategoryCQ _query; - - public CategoryNss(CategoryCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupInfoNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupInfoNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupInfoNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,32 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupMappingNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupMappingNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupMappingNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,50 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/LinkNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/LinkNss.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/LinkNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,41 +0,0 @@ -package jp.sf.pal.bookmark.db.cbean.nss; - -import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.bookmark.db.cbean.cq.LinkCQ; - -/** - * The nest-select-setupper of LINK. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class LinkNss { - - protected LinkCQ _query; - - public LinkNss(LinkCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - public CategoryNss withCategory() { - _query.doNss(new LinkCQ.NssCall() { - public ConditionQuery qf() { - return _query.queryCategory(); - } - }); - return new CategoryNss(_query.queryCategory()); - } - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleInfoNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleInfoNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleInfoNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,32 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleMappingNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleMappingNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleMappingNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,50 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/UserInfoNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/UserInfoNss.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/UserInfoNss.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,50 @@ +package jp.sf.pal.bookmark.db.cbean.nss; + +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkCategoryBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkCategoryBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkCategoryBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of BOOKMARK_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategoryBhv extends + jp.sf.pal.bookmark.db.bsbhv.BsBookmarkCategoryBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkCategoryBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkLinkBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkLinkBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkLinkBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of BOOKMARK_LINK. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLinkBhv extends + jp.sf.pal.bookmark.db.bsbhv.BsBookmarkLinkBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/BookmarkLinkBhv.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/CategoryBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/CategoryBhv.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/CategoryBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,14 +0,0 @@ -package jp.sf.pal.bookmark.db.exbhv; - -/** - * The behavior of CATEGORY. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class CategoryBhv extends jp.sf.pal.bookmark.db.bsbhv.BsCategoryBhv { -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupInfoBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupInfoBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.bookmark.db.bsbhv.BsGroupInfoBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupMappingBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupMappingBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupMappingBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.bookmark.db.bsbhv.BsGroupMappingBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/LinkBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/LinkBhv.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/LinkBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,14 +0,0 @@ -package jp.sf.pal.bookmark.db.exbhv; - -/** - * The behavior of LINK. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class LinkBhv extends jp.sf.pal.bookmark.db.bsbhv.BsLinkBhv { -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleInfoBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleInfoBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.bookmark.db.bsbhv.BsRoleInfoBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleMappingBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleMappingBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleMappingBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends + jp.sf.pal.bookmark.db.bsbhv.BsRoleMappingBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/UserInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/UserInfoBhv.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/UserInfoBhv.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.exbhv; + +/** + * The behavior of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.bookmark.db.bsbhv.BsUserInfoBhv { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkCategoryDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkCategoryDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkCategoryDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of BOOKMARK_CATEGORY.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface BookmarkCategoryDao extends + jp.sf.pal.bookmark.db.bsdao.BsBookmarkCategoryDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkCategoryDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkLinkDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkLinkDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkLinkDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of BOOKMARK_LINK.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface BookmarkLinkDao extends + jp.sf.pal.bookmark.db.bsdao.BsBookmarkLinkDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/BookmarkLinkDao.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/CategoryDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/CategoryDao.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/CategoryDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,14 +0,0 @@ -package jp.sf.pal.bookmark.db.exdao; - -/** - * The dao interface of CATEGORY.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface CategoryDao extends jp.sf.pal.bookmark.db.bsdao.BsCategoryDao { -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupInfoDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupInfoDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupInfoDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of GROUP_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends + jp.sf.pal.bookmark.db.bsdao.BsGroupInfoDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupMappingDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupMappingDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupMappingDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.bookmark.db.bsdao.BsGroupMappingDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/LinkDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/LinkDao.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/LinkDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,14 +0,0 @@ -package jp.sf.pal.bookmark.db.exdao; - -/** - * The dao interface of LINK.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface LinkDao extends jp.sf.pal.bookmark.db.bsdao.BsLinkDao { -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleInfoDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleInfoDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleInfoDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of ROLE_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.bookmark.db.bsdao.BsRoleInfoDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleMappingDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleMappingDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleMappingDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,15 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.bookmark.db.bsdao.BsRoleMappingDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/UserInfoDao.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/UserInfoDao.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/UserInfoDao.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,14 @@ +package jp.sf.pal.bookmark.db.exdao; + +/** + * The dao interface of USER_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.bookmark.db.bsdao.BsUserInfoDao { +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkCategory.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkCategory.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkCategory.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,18 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of BOOKMARK_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkCategory extends + jp.sf.pal.bookmark.db.bsentity.BsBookmarkCategory { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkCategory.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkLink.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkLink.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkLink.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,17 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of BOOKMARK_LINK. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BookmarkLink extends jp.sf.pal.bookmark.db.bsentity.BsBookmarkLink { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/BookmarkLink.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Category.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Category.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Category.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,17 +0,0 @@ -package jp.sf.pal.bookmark.db.exentity; - -/** - * The entity of CATEGORY. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class Category extends jp.sf.pal.bookmark.db.bsentity.BsCategory { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupInfo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupInfo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,17 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.bookmark.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupMapping.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupMapping.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupMapping.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,17 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends jp.sf.pal.bookmark.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Link.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Link.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/Link.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,17 +0,0 @@ -package jp.sf.pal.bookmark.db.exentity; - -/** - * The entity of LINK. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class Link extends jp.sf.pal.bookmark.db.bsentity.BsLink { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; -} Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleInfo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleInfo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,17 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.bookmark.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleMapping.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleMapping.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleMapping.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,17 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.bookmark.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/UserInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/UserInfo.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/UserInfo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -0,0 +1,17 @@ +package jp.sf.pal.bookmark.db.exentity; + +/** + * The entity of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.bookmark.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -2,7 +2,7 @@ import java.io.Serializable; -import jp.sf.pal.bookmark.db.exentity.Category; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.form.admin.CategoryForm; import jp.sf.pal.bookmark.form.category.EditForm; @@ -19,6 +19,7 @@ @ConversionRule("id : id" // + ", name : name" // + ", memo : memo" // + + ", type : type" // + ", sortOrder : sortOrder" // + ", createdTime : createdTime" // + ", createdBy : createdBy" // @@ -28,12 +29,14 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromCategoryToForm(Category category, EditForm form); + public void convertFromCategoryToForm(BookmarkCategory category, + EditForm form); @ExcludeNull @ConversionRule(// "name : name" // + ", memo : memo" // + + ", type : type" // // + ", sortOrder : sortOrder" // // + ", createdTime : createdTime" // // + ", createdBy : createdBy" // @@ -43,7 +46,8 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToCategory(EditForm form, Category category); + public void convertFromFormToCategory(EditForm form, + BookmarkCategory category); @ExcludeNull @DatePattern("yyyy/MM/dd") @@ -51,6 +55,7 @@ @ConversionRule("id : id" // + ", name : name" // + ", memo : memo" // + + ", type : type" // + ", sortOrder : sortOrder" // + ", createdTime : createdTime" // + ", createdBy : createdBy" // @@ -60,12 +65,14 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromCategoryToForm(Category category, CategoryForm form); + public void convertFromCategoryToForm(BookmarkCategory category, + CategoryForm form); @ExcludeNull @ConversionRule(// "name : name" // + ", memo : memo" // + + ", type : type" // + ", sortOrder : sortOrder" // // + ", createdTime : createdTime" // // + ", createdBy : createdBy" // @@ -75,5 +82,6 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToCategory(CategoryForm form, Category category); + public void convertFromFormToCategory(CategoryForm form, + BookmarkCategory category); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -2,7 +2,7 @@ import java.io.Serializable; -import jp.sf.pal.bookmark.db.exentity.Link; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.form.admin.LinkForm; import jp.sf.pal.bookmark.form.link.ViewForm; @@ -31,7 +31,7 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromLinkToForm(Link link, ViewForm form); + public void convertFromLinkToForm(BookmarkLink link, ViewForm form); @ExcludeNull @TimestampPattern("yyyy/MM/dd HH:mm:ss") @@ -50,7 +50,7 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToLink(ViewForm form, Link link); + public void convertFromFormToLink(ViewForm form, BookmarkLink link); @ExcludeNull @DatePattern("yyyy/MM/dd") @@ -70,7 +70,7 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromLinkToForm(Link link, LinkForm form); + public void convertFromLinkToForm(BookmarkLink link, LinkForm form); @ExcludeNull @TimestampPattern("yyyy/MM/dd HH:mm:ss") @@ -89,5 +89,5 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToLink(LinkForm form, Link link); + public void convertFromFormToLink(LinkForm form, BookmarkLink link); } Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/PagerDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/PagerDxo.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/PagerDxo.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,24 +0,0 @@ -package jp.sf.pal.bookmark.dxo; - -import java.io.Serializable; - -import jp.sf.pal.bookmark.form.PagingResultForm; -import jp.sf.pal.bookmark.pager.DefaultPager; -import jp.sf.pal.bookmark.util.PagingResultBeanWrapper; - -import org.seasar.extension.dxo.annotation.ConversionRule; -import org.seasar.extension.dxo.annotation.ExcludeNull; - -public interface PagerDxo extends Serializable { - - @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" - + ",currentPageNumber : currentPageNumber" - + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" - + ",existNextPage : existNextPage") - public void convert(PagingResultBeanWrapper result, DefaultPager pager); - - @ExcludeNull - @ConversionRule(// "pageSize : pageSize, " + - "currentPageNumber : pageNumber") - public void convert(PagingResultForm page, DefaultPager pager); -} Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/PagingResultForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/PagingResultForm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/PagingResultForm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,5 +0,0 @@ -package jp.sf.pal.bookmark.form; - -public interface PagingResultForm { - -} Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/CategoryForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/CategoryForm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/CategoryForm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -3,7 +3,7 @@ import java.io.Serializable; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.form.PagingResultForm; +import jp.sf.pal.bookmark.common.form.PagingResultForm; import org.seasar.struts.annotation.DateType; import org.seasar.struts.annotation.IntegerType; @@ -31,6 +31,9 @@ @Maxbytelength(maxbytelength = 200) public String memo; + @Maxbytelength(maxbytelength = 1) + public String type; + @IntegerType public String sortOrder; @@ -57,6 +60,7 @@ id = null; name = null; memo = null; + type = null; sortOrder = null; createdTime = null; createdBy = null; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/LinkForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/LinkForm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/admin/LinkForm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -3,7 +3,7 @@ import java.io.Serializable; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.form.PagingResultForm; +import jp.sf.pal.bookmark.common.form.PagingResultForm; import org.seasar.struts.annotation.DateType; import org.seasar.struts.annotation.IntegerType; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/category/EditForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/category/EditForm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/category/EditForm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -3,7 +3,7 @@ import java.io.Serializable; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.form.PagingResultForm; +import jp.sf.pal.bookmark.common.form.PagingResultForm; import org.seasar.struts.annotation.DateType; import org.seasar.struts.annotation.IntegerType; @@ -31,6 +31,9 @@ @Maxbytelength(maxbytelength = 200) public String memo; + @Maxbytelength(maxbytelength = 1) + public String type; + @IntegerType public String sortOrder; @@ -57,6 +60,7 @@ id = null; name = null; memo = null; + type = null; sortOrder = null; createdTime = null; createdBy = null; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/link/ViewForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/link/ViewForm.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/link/ViewForm.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -3,7 +3,7 @@ import java.io.Serializable; import jp.sf.pal.bookmark.BookmarkConstants; -import jp.sf.pal.bookmark.form.PagingResultForm; +import jp.sf.pal.bookmark.common.form.PagingResultForm; import org.seasar.struts.annotation.DateType; import org.seasar.struts.annotation.IntegerType; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/CategoryPager.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/CategoryPager.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/CategoryPager.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,5 +1,7 @@ package jp.sf.pal.bookmark.pager; +import jp.sf.pal.bookmark.common.pager.DefaultPager; + public class CategoryPager extends DefaultPager { private static final long serialVersionUID = -6261666956617549130L; Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/DefaultPager.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/DefaultPager.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/DefaultPager.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,101 +0,0 @@ -package jp.sf.pal.bookmark.pager; - -import java.io.Serializable; -import java.util.List; - -public abstract class DefaultPager implements Serializable { - private static final long serialVersionUID = 1L; - - public static final int DEFAULT_PAGE_SIZE = 50; - - public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; - - private int allRecordCount; - - private int allPageCount; - - private boolean existPrePage; - - private boolean existNextPage; - - private List pageNumberList; - - private int pageSize; - - private int currentPageNumber; - - public void clear() { - pageSize = getDefaultPageSize(); - currentPageNumber = getDefaultCurrentPageNumber(); - } - - protected int getDefaultPageSize() { - return DEFAULT_PAGE_SIZE; - } - - protected int getDefaultCurrentPageNumber() { - return DEFAULT_CURRENT_PAGE_NUMBER; - } - - public int getAllRecordCount() { - return allRecordCount; - } - - public void setAllRecordCount(int allRecordCount) { - this.allRecordCount = allRecordCount; - } - - public int getAllPageCount() { - return allPageCount; - } - - public void setAllPageCount(int allPageCount) { - this.allPageCount = allPageCount; - } - - public boolean isExistPrePage() { - return existPrePage; - } - - public void setExistPrePage(boolean existPrePage) { - this.existPrePage = existPrePage; - } - - public boolean isExistNextPage() { - return existNextPage; - } - - public void setExistNextPage(boolean existNextPage) { - this.existNextPage = existNextPage; - } - - public int getPageSize() { - if (pageSize <= 0) { - pageSize = getDefaultPageSize(); - } - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public int getCurrentPageNumber() { - if (currentPageNumber <= 0) { - currentPageNumber = getDefaultCurrentPageNumber(); - } - return currentPageNumber; - } - - public void setCurrentPageNumber(int currentPageNumber) { - this.currentPageNumber = currentPageNumber; - } - - public List getPageNumberList() { - return pageNumberList; - } - - public void setPageNumberList(List pageNumberList) { - this.pageNumberList = pageNumberList; - } -} Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/LinkPager.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/LinkPager.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/pager/LinkPager.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,6 +1,7 @@ package jp.sf.pal.bookmark.pager; import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.pager.DefaultPager; public class LinkPager extends DefaultPager { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -2,16 +2,18 @@ import java.io.Serializable; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.common.util.PagingResultBeanWrapper; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.bookmark.db.cbean.CategoryCB; -import jp.sf.pal.bookmark.db.exbhv.CategoryBhv; -import jp.sf.pal.bookmark.db.exentity.Category; -import jp.sf.pal.bookmark.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.exbhv.BookmarkCategoryBhv; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.pager.CategoryPager; -import jp.sf.pal.bookmark.util.PagingResultBeanWrapper; import org.seasar.framework.container.hotdeploy.HotdeployUtil; import org.seasar.struts.exception.ActionMessagesException; @@ -20,15 +22,15 @@ private static final long serialVersionUID = 1L; - private transient CategoryBhv categoryBhv; + private transient BookmarkCategoryBhv bookmarkCategoryBhv; private PagerDxo pagerDxo; - public List getCategoryList(CategoryPager categoryPager) { + public List getCategoryList(CategoryPager categoryPager) { HotdeployUtil.rebuildValue(categoryPager); - CategoryCB cb = new CategoryCB(); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(categoryPager.getPageSize()); cb.fetchPage(categoryPager.getCurrentPageNumber()); @@ -42,7 +44,8 @@ cb.query().addOrderBy_SortOrder_Asc(); - PagingResultBean categoryList = categoryBhv.selectPage(cb); + PagingResultBean categoryList = bookmarkCategoryBhv + .selectPage(cb); // update pager pagerDxo.convert(new PagingResultBeanWrapper(categoryList), @@ -54,16 +57,16 @@ return categoryList; } - public Category getCategory(Integer id) { - CategoryCB cb = new CategoryCB(); + public BookmarkCategory getCategory(Integer id) { + BookmarkCategoryCB cb = new BookmarkCategoryCB(); // setup cb.query().setId_Equal(id); - return categoryBhv.selectEntity(cb); + return bookmarkCategoryBhv.selectEntity(cb); } - public void store(Category category) { + public void store(BookmarkCategory category) { boolean isUpdate = category.getId() != null; Timestamp now = new Timestamp(System.currentTimeMillis()); @@ -71,15 +74,16 @@ // Category if (isUpdate) { - categoryBhv.update(category); + bookmarkCategoryBhv.update(category); } else { - CategoryCB cb = new CategoryCB(); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchPage(1); cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().setDeletedBy_IsNull(); cb.query().addOrderBy_SortOrder_Desc(); - List categoryList = categoryBhv.selectPage(cb); + List categoryList = bookmarkCategoryBhv + .selectPage(cb); // TODO mt-safe int sortOrder = 1; if (categoryList != null && !categoryList.isEmpty()) { @@ -88,7 +92,7 @@ category.setCreatedTime(now); category.setSortOrder(sortOrder); - categoryBhv.insert(category); + bookmarkCategoryBhv.insert(category); } @@ -96,32 +100,33 @@ public void disable(Integer categoryId, String name) { // not delete - CategoryCB cb = new CategoryCB(); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.query().setId_Equal(categoryId); - Category category = categoryBhv.selectEntity(cb); + BookmarkCategory category = bookmarkCategoryBhv.selectEntity(cb); // TODO throw an exception category.setDeletedBy(name); category.setDeletedTime(new Timestamp(new Date().getTime())); - categoryBhv.update(category); + bookmarkCategoryBhv.update(category); } - public void moveUp(Category category) { - CategoryCB cb = new CategoryCB(); + public void moveUp(BookmarkCategory category) { + BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setSortOrder_GreaterThan(category.getSortOrder()); cb.query().addOrderBy_SortOrder_Asc(); - List categoryList = categoryBhv.selectPage(cb); + List categoryList = bookmarkCategoryBhv + .selectPage(cb); if (categoryList != null && !categoryList.isEmpty()) { - Category targetCategory = categoryList.get(0); + BookmarkCategory targetCategory = categoryList.get(0); Integer sortOrder = targetCategory.getSortOrder(); targetCategory.setSortOrder(category.getSortOrder()); category.setSortOrder(sortOrder); - categoryBhv.update(targetCategory); - categoryBhv.update(category); + bookmarkCategoryBhv.update(targetCategory); + bookmarkCategoryBhv.update(category); } else { // TODO replace with CommonException throw new ActionMessagesException( @@ -129,20 +134,21 @@ } } - public void moveDown(Category category) { - CategoryCB cb = new CategoryCB(); + public void moveDown(BookmarkCategory category) { + BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setSortOrder_LessThan(category.getSortOrder()); cb.query().addOrderBy_SortOrder_Desc(); - List categoryList = categoryBhv.selectPage(cb); + List categoryList = bookmarkCategoryBhv + .selectPage(cb); if (categoryList != null && !categoryList.isEmpty()) { - Category targetCategory = categoryList.get(0); + BookmarkCategory targetCategory = categoryList.get(0); Integer sortOrder = targetCategory.getSortOrder(); targetCategory.setSortOrder(category.getSortOrder()); category.setSortOrder(sortOrder); - categoryBhv.update(targetCategory); - categoryBhv.update(category); + bookmarkCategoryBhv.update(targetCategory); + bookmarkCategoryBhv.update(category); } else { // TODO replace with CommonException throw new ActionMessagesException( @@ -150,28 +156,37 @@ } } - public List getCategoryList(String createdBy) { + public List getCategoryList(String createdBy) { - CategoryCB cb = new CategoryCB(); + List bookmarkCategoryList = new ArrayList(); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + // setup + cb.query().setDeletedBy_IsNull(); + cb.query().setType_Equal(BookmarkConstants.PUBLIC_CATEGORY); + cb.query().addOrderBy_SortOrder_Asc(); + + bookmarkCategoryList.addAll(bookmarkCategoryBhv.selectList(cb)); + + cb = new BookmarkCategoryCB(); cb.query().setCreatedBy_Equal(createdBy); cb.query().setDeletedBy_IsNull(); - + cb.query().setType_Equal(BookmarkConstants.PERSONAL_CATEGORY); cb.query().addOrderBy_SortOrder_Asc(); - List categoryList = categoryBhv.selectList(cb); + bookmarkCategoryList.addAll(bookmarkCategoryBhv.selectList(cb)); - return categoryList; + return bookmarkCategoryList; } - public CategoryBhv getCategoryBhv() { - return categoryBhv; + public BookmarkCategoryBhv getBookmarkCategoryBhv() { + return bookmarkCategoryBhv; } - public void setCategoryBhv(CategoryBhv categoryBhv) { - this.categoryBhv = categoryBhv; + public void setBookmarkCategoryBhv(BookmarkCategoryBhv bookmarkCategoryBhv) { + this.bookmarkCategoryBhv = bookmarkCategoryBhv; } public PagerDxo getPagerDxo() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -6,13 +6,13 @@ import java.util.List; import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.common.util.PagingResultBeanWrapper; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.bookmark.db.cbean.LinkCB; -import jp.sf.pal.bookmark.db.exbhv.LinkBhv; -import jp.sf.pal.bookmark.db.exentity.Link; -import jp.sf.pal.bookmark.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.exbhv.BookmarkLinkBhv; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.pager.LinkPager; -import jp.sf.pal.bookmark.util.PagingResultBeanWrapper; import org.seasar.framework.container.hotdeploy.HotdeployUtil; import org.seasar.struts.exception.ActionMessagesException; @@ -21,15 +21,15 @@ private static final long serialVersionUID = 1L; - private transient LinkBhv linkBhv; + private transient BookmarkLinkBhv bookmarkLinkBhv; private PagerDxo pagerDxo; - public List getLinkList(LinkPager linkPager) { + public List getLinkList(LinkPager linkPager) { HotdeployUtil.rebuildValue(linkPager); - LinkCB cb = new LinkCB(); + BookmarkLinkCB cb = new BookmarkLinkCB(); cb.fetchFirst(linkPager.getPageSize()); cb.fetchPage(linkPager.getCurrentPageNumber()); @@ -52,7 +52,8 @@ cb.query().addOrderBy_SortOrder_Asc(); - PagingResultBean messageList = linkBhv.selectPage(cb); + PagingResultBean messageList = bookmarkLinkBhv + .selectPage(cb); // update pager pagerDxo.convert(new PagingResultBeanWrapper(messageList), linkPager); @@ -63,16 +64,16 @@ return messageList; } - public Link getLink(Long id) { - LinkCB cb = new LinkCB(); + public BookmarkLink getLink(Long id) { + BookmarkLinkCB cb = new BookmarkLinkCB(); // setup cb.query().setId_Equal(id); - return linkBhv.selectEntity(cb); + return bookmarkLinkBhv.selectEntity(cb); } - public void store(Link link) { + public void store(BookmarkLink link) { boolean isUpdate = link.getId() != null; Timestamp now = new Timestamp(System.currentTimeMillis()); @@ -80,15 +81,15 @@ // Link if (isUpdate) { - linkBhv.update(link); + bookmarkLinkBhv.update(link); } else { - LinkCB cb = new LinkCB(); + BookmarkLinkCB cb = new BookmarkLinkCB(); cb.fetchFirst(1); cb.fetchPage(1); cb.query().setCreatedBy_Equal(link.getCreatedBy()); cb.query().setDeletedBy_IsNull(); cb.query().addOrderBy_SortOrder_Desc(); - List LinkList = linkBhv.selectPage(cb); + List LinkList = bookmarkLinkBhv.selectPage(cb); // TODO mt-safe int sortOrder = 1; if (LinkList != null && !LinkList.isEmpty()) { @@ -97,7 +98,7 @@ link.setSortOrder(sortOrder); link.setCreatedTime(now); - linkBhv.insert(link); + bookmarkLinkBhv.insert(link); } @@ -105,32 +106,32 @@ public void disable(Long linkId, String name) { // not delete - LinkCB cb = new LinkCB(); + BookmarkLinkCB cb = new BookmarkLinkCB(); cb.query().setId_Equal(linkId); - Link link = linkBhv.selectEntity(cb); + BookmarkLink link = bookmarkLinkBhv.selectEntity(cb); // TODO throw an exception link.setDeletedBy(name); link.setDeletedTime(new Timestamp(new Date().getTime())); - linkBhv.update(link); + bookmarkLinkBhv.update(link); } - public void moveUp(Link link) { - LinkCB cb = new LinkCB(); + public void moveUp(BookmarkLink link) { + BookmarkLinkCB cb = new BookmarkLinkCB(); cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setSortOrder_GreaterThan(link.getSortOrder()); cb.query().addOrderBy_SortOrder_Asc(); - List linkList = linkBhv.selectPage(cb); + List linkList = bookmarkLinkBhv.selectPage(cb); if (linkList != null && !linkList.isEmpty()) { - Link targetLink = linkList.get(0); + BookmarkLink targetLink = linkList.get(0); Integer sortOrder = targetLink.getSortOrder(); targetLink.setSortOrder(link.getSortOrder()); link.setSortOrder(sortOrder); - linkBhv.update(targetLink); - linkBhv.update(link); + bookmarkLinkBhv.update(targetLink); + bookmarkLinkBhv.update(link); } else { // TODO replace with CommonException throw new ActionMessagesException( @@ -138,20 +139,20 @@ } } - public void moveDown(Link link) { - LinkCB cb = new LinkCB(); + public void moveDown(BookmarkLink link) { + BookmarkLinkCB cb = new BookmarkLinkCB(); cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setSortOrder_LessThan(link.getSortOrder()); cb.query().addOrderBy_SortOrder_Desc(); - List linkList = linkBhv.selectPage(cb); + List linkList = bookmarkLinkBhv.selectPage(cb); if (linkList != null && !linkList.isEmpty()) { - Link targetLink = linkList.get(0); + BookmarkLink targetLink = linkList.get(0); Integer sortOrder = targetLink.getSortOrder(); targetLink.setSortOrder(link.getSortOrder()); link.setSortOrder(sortOrder); - linkBhv.update(targetLink); - linkBhv.update(link); + bookmarkLinkBhv.update(targetLink); + bookmarkLinkBhv.update(link); } else { // TODO replace with CommonException throw new ActionMessagesException( @@ -159,12 +160,12 @@ } } - public LinkBhv getLinkBhv() { - return linkBhv; + public BookmarkLinkBhv getBookmarkLinkBhv() { + return bookmarkLinkBhv; } - public void setLinkBhv(LinkBhv messageBhv) { - this.linkBhv = messageBhv; + public void setBookmarkLinkBhv(BookmarkLinkBhv messageBhv) { + this.bookmarkLinkBhv = messageBhv; } public PagerDxo getPagerDxo() { Deleted: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/util/PagingResultBeanWrapper.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/util/PagingResultBeanWrapper.java 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/util/PagingResultBeanWrapper.java 2008-11-11 06:28:27 UTC (rev 1326) @@ -1,68 +0,0 @@ -package jp.sf.pal.bookmark.util; - -import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; - -public class PagingResultBeanWrapper { - private PagingResultBean pagingResultBean; - - public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { - this.pagingResultBean = pagingResultBean; - } - - public PagingResultBean getPagingResultBean() { - return pagingResultBean; - } - - public void setPagingResultBean(PagingResultBean pagingResultBean) { - this.pagingResultBean = pagingResultBean; - } - - public int getAllRecordCount() { - return pagingResultBean.getAllRecordCount(); - } - - public void setAllRecordCount(int allRecordCount) { - pagingResultBean.setAllRecordCount(allRecordCount); - } - - public int getPageSize() { - return pagingResultBean.getPageSize(); - } - - public void setPageSize(int pageSize) { - pagingResultBean.setPageSize(pageSize); - } - - public int getCurrentPageNumber() { - return pagingResultBean.getCurrentPageNumber(); - } - - public void setCurrentPageNumber(int currentPageNumber) { - pagingResultBean.setCurrentPageNumber(currentPageNumber); - } - - public int getAllPageCount() { - return pagingResultBean.getAllPageCount(); - } - - public void setAllPageCount(int allPageCount) { - // nothing - } - - public boolean isExistPrePage() { - return pagingResultBean.isExistPrePage(); - } - - public void setExistPrePage(boolean existPrePage) { - // nothing - } - - public boolean isExistNextPage() { - return pagingResultBean.isExistNextPage(); - } - - public void setExistNextPage(boolean existNextPage) { - // nothing - } - -} Modified: bookmark/trunk/src/main/resources/application.properties =================================================================== --- bookmark/trunk/src/main/resources/application.properties 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/resources/application.properties 2008-11-11 06:28:27 UTC (rev 1326) @@ -28,6 +28,9 @@ labels.URL=URL labels.create_person=Creator labels.memo=Memo +labels.shared=Shared +labels.public=Public +labels.personal=Personal labels.category=Category labels.category_ID=Category ID labels.category_unselected=(Unselected) Modified: bookmark/trunk/src/main/resources/application_ja.properties =================================================================== --- bookmark/trunk/src/main/resources/application_ja.properties 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/resources/application_ja.properties 2008-11-11 06:28:27 UTC (rev 1326) @@ -21,6 +21,9 @@ labels.URL=URL labels.create_person=\u4f5c\u6210\u8005 labels.memo=\u30e1\u30e2 +labels.shared=\u5171\u6709 +labels.public=\u516c\u958b +labels.personal=\u500b\u4eba\u7528 labels.category=\u30ab\u30c6\u30b4\u30ea labels.category_ID=\u30ab\u30c6\u30b4\u30eaID labels.category_unselected=(\u672a\u5206\u985e) Modified: bookmark/trunk/src/main/resources/convention.dicon =================================================================== --- bookmark/trunk/src/main/resources/convention.dicon 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/resources/convention.dicon 2008-11-11 06:28:27 UTC (rev 1326) @@ -6,6 +6,9 @@ "jp.sf.pal.bookmark" + + "jp.sf.pal.bookmark.common" + "jp.sf.pal.bookmark.db" Modified: bookmark/trunk/src/main/resources/creator.dicon =================================================================== --- bookmark/trunk/src/main/resources/creator.dicon 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/resources/creator.dicon 2008-11-11 06:28:27 UTC (rev 1326) @@ -11,5 +11,5 @@ - + Modified: bookmark/trunk/src/main/resources/dbflute.dicon =================================================================== --- bookmark/trunk/src/main/resources/dbflute.dicon 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/resources/dbflute.dicon 2008-11-11 06:28:27 UTC (rev 1326) @@ -24,6 +24,7 @@ + @@ -41,16 +42,46 @@ - - + + dbflute.interceptor - + - - + + dbflute.interceptor - + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + Deleted: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.index.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-11 03:23:02 UTC (rev 1325) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-11 06:28:27 UTC (rev 1326) @@ -25,6 +25,14 @@
    ${f:br(f:nbsp(f:h(memo)))}
    + + + +
    + + + + +
    ${f:br(f:nbsp(f:h(memo)))}
    + + + +
    + + + + +
    - + - + - + @@ -34,7 +34,7 @@ Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,13 +10,13 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -28,30 +28,30 @@
    Configuration
    Role - Enabled - Disabled + +
    Group - Enabled - Disabled + +
    - +"/>
    - + - + - + - + - + - + - + @@ -59,21 +59,21 @@ Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,13 +10,13 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -28,38 +28,38 @@
    Confirmation of Group Info
    Group ID ${f:h(groupId)}
    Name ${f:h(name)}
    Description ${f:h(description)}
    Email ${f:h(email)}
    URL ${f:h(url)}
    Telephone Number ${f:h(telephone)}
    - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
    - + - + - + - + - + - + - + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -9,13 +9,13 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -23,7 +23,7 @@
    -Ìá¤ë + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,13 +10,13 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -26,13 +26,13 @@
    -Create New Group +
    Group Detail
    Group ID
    Name
    Description
    Email
    URL
    Telephone Number
    - - + "/> + "/>
    - - + + @@ -42,8 +42,8 @@ @@ -53,7 +53,7 @@
    - Á°¤Ø + @@ -70,7 +70,7 @@ - ¼¡¤Ø +
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,12 +10,12 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -28,30 +28,30 @@
    Group IDName  
    ${f:h(g.groupId)} ${f:h(g.name)} - Edit - Delete + +
    - + - + - + - + - + - + - + @@ -59,21 +59,21 @@ Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,12 +10,12 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -28,38 +28,38 @@
    Confirmation of Role Info
    Role ID ${f:h(roleId)}
    Name ${f:h(name)}
    Description ${f:h(description)}
    Email ${f:h(email)}
    URL ${f:h(url)}
    Telephone Number ${f:h(telephone)}
    - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
    - + - + - + - + - + - + - + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -9,12 +9,12 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -23,7 +23,7 @@
    -Ìá¤ë +
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,12 +10,12 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -26,13 +26,13 @@
    -Create New Role +
    Role Detail
    Role ID
    Name
    Description
    Email
    URL
    Telephone Number
    - - + "/> + "/>
    - - + + @@ -42,8 +42,8 @@ @@ -53,7 +53,7 @@
    - Á°¤Ø + @@ -70,7 +70,7 @@ - ¼¡¤Ø +
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,14 +10,14 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -30,64 +30,64 @@
    Role IDName  
    ${f:h(r.roleId)} ${f:h(r.name)} - Edit - Delete + +
    - + - + - + - + - + - + - + - + - + - + - + - + @@ -97,21 +97,21 @@ Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,14 +10,14 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -30,50 +30,50 @@
    Confirmation of User Info
    User ID ${f:h(userId)}
    Given Name ${f:h(givenName)}
    Given Name(Desc) ${f:h(givenNameDesc)}
    Family Name ${f:h(familyName)}
    Family Name(Desc) ${f:h(familyNameDesc)}
    Middle Name ${f:h(middleName)}
    Email ${f:h(email)}
    URL ${f:h(url)}
    Telephone Number ${f:h(telephone)}
    Role ${f:h(r.name)} -None +
    Group ${f:h(g.name)} -None +
    - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
    - + - + - + - + - + - + - + - + - + - + - + - + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -9,14 +9,14 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -25,7 +25,7 @@
    -Ìá¤ë +
    Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-11 09:32:53 UTC (rev 1328) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-11 09:38:40 UTC (rev 1329) @@ -10,14 +10,14 @@
    • -
    • User
    • +
    • -
    • Role
    • +
    • -
    • Group
    • +
    @@ -28,15 +28,15 @@
    -Create New User +
    User Detail
    User ID
    Given Name
    Given Name(Desc)
    Family Name
    Family Name(Desc)
    Middle Name
    Email
    URL
    Telephone Number
    Default Role - + ${f:h(r.name)} @@ -83,10 +83,10 @@
    Default Group - + ${f:h(g.name)} @@ -98,8 +98,8 @@
    - - + "/> + "/>
    - - - - + + + + @@ -48,8 +48,8 @@ @@ -59,7 +59,7 @@
    - Á°¤Ø + @@ -76,7 +76,7 @@ - ¼¡¤Ø +
    From svnnotify ¡÷ sourceforge.jp Tue Nov 11 18:42:48 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 18:42:48 +0900 Subject: [pal-cvs 3595] [1330] initial commit. Message-ID: <1226396568.058686.16301.nullmailer@users.sourceforge.jp> Revision: 1330 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1330 Author: shinsuke Date: 2008-11-11 18:42:47 +0900 (Tue, 11 Nov 2008) Log Message: ----------- initial commit. Added Paths: ----------- notepad/trunk/.classpath notepad/trunk/.project notepad/trunk/.settings/ notepad/trunk/.settings/org.eclipse.jdt.core.prefs notepad/trunk/.settings/org.eclipse.jdt.ui.prefs notepad/trunk/.settings/org.seasar.sastrutsplugin.prefs notepad/trunk/dbflute/ notepad/trunk/dbflute/_project.bat notepad/trunk/dbflute/_project.sh notepad/trunk/dbflute/build-notepad.properties notepad/trunk/dbflute/dfprop/ notepad/trunk/dbflute/dfprop/databaseInfoMap.dfprop notepad/trunk/dbflute/doc.bat notepad/trunk/dbflute/doc.sh notepad/trunk/dbflute/generate.bat notepad/trunk/dbflute/generate.sh notepad/trunk/dbflute/jdbc.bat notepad/trunk/dbflute/jdbc.sh notepad/trunk/dbflute/log/ notepad/trunk/dbflute/log/readme.txt notepad/trunk/dbflute/output/ notepad/trunk/dbflute/output/doc/ notepad/trunk/dbflute/output/doc/readme.txt notepad/trunk/dbflute/outside-sql-test.bat notepad/trunk/dbflute/outside-sql-test.sh notepad/trunk/dbflute/playsql/ notepad/trunk/dbflute/playsql/replace-schema.sql notepad/trunk/dbflute/replace-schema.bat notepad/trunk/dbflute/replace-schema.sh notepad/trunk/dbflute/schema/ notepad/trunk/dbflute/schema/readme.txt notepad/trunk/dbflute/sql2entity.bat notepad/trunk/dbflute/sql2entity.sh notepad/trunk/mydbflute/ notepad/trunk/mydbflute/README.txt notepad/trunk/pom.xml notepad/trunk/src/ notepad/trunk/src/main/ notepad/trunk/src/main/config/ notepad/trunk/src/main/config/erd/ notepad/trunk/src/main/config/erd/notepad.erd notepad/trunk/src/main/config/sql/ notepad/trunk/src/main/config/sql/notepad.ddl notepad/trunk/src/main/config/sql/notepad.dml notepad/trunk/src/main/java/ notepad/trunk/src/main/java/jp/ notepad/trunk/src/main/java/jp/sf/ notepad/trunk/src/main/java/jp/sf/pal/ notepad/trunk/src/main/java/jp/sf/pal/notepad/ notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/common/ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/CommonException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/common/creator/ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/creator/PagerCreator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/common/dxo/ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/dxo/PagerDxo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/common/form/ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/form/PagingResultForm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/common/pager/ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/pager/DefaultPager.java notepad/trunk/src/main/java/jp/sf/pal/notepad/common/util/ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/util/PagingResultBeanWrapper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/creator/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/AccessContext.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BFinder.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BehaviorSelector.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheAbstractSelector.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheBehaviorSelector.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheDaoSelector.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CallbackContext.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DBFluteConfig.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoReadable.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoSelector.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoWritable.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/Entity.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/EntityDefinedCommonColumn.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/GenMetaData.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/InternalMapContext.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/QLog.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/XLog.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/annotation/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/annotation/OutsideSql.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorReadable.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorWritable.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorReadable.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorWritable.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputResult.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionFailure.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionResult.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/load/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/load/LoadReferrerOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ConditionBeanSetupper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/EntityListSetupper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelBox.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelSetupper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionQuery.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBeanContext.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionQuery.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBeanContext.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ListResultBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/MapParameterBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/OrderByBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingInvoker.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingResultBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ResultBeanBuilder.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SelectResource.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimpleOrderByBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimplePagingBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SubQuery.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/UnionQuery.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKey.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyEqual.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyInScope.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNull.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessThan.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/ConditionOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/DateFromToOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/FromToOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/InScopeOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/LikeSearchOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/SimpleStringOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/SplitOptionParts.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/local/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/cvalue/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/cvalue/ConditionValue.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowResource.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowSetupper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/mapping/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/mapping/EntityDtoMapper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlContext.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/ProcedurePmb.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLink.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeBean.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/AbstractSqlClause.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByClause.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByElement.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClause.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDb2.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDefault.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDerby.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseH2.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseMySql.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseOracle.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/AbstractDBMeta.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMeta.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMetaInstanceHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ColumnInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ForeignInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ReferrerInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/RelationInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/UniqueInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableParameterNullValueException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/DangerousResultSizeException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueParameterNullValueException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EndCommentNotFoundException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyDeletedException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyExistsException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyUpdatedException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityDuplicatedException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentConditionNotFoundException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentNotBooleanResultException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentWrongExpressionException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/OutsideSqlNotFoundException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasOverlappedException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RequiredOptionNotFoundException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/SQLFailureException.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListString.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListStringImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilder.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilderImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/GeneralCharacter.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/JapaneseCharacter.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/GeneralCharacterImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrder.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/impl/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameResult.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/impl/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingCallback.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingHeaderInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingRowResource.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingSimpleFacade.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileToken.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingCallback.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingRowResource.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileTokenImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineMakingOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineToken.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineTokenizingOption.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/impl/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/impl/LineTokenImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/CursorHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/LatestSqlProvider.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/SqlLogHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/StatementConfig.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoInterceptor.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoLatestSqlProvider.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataExtension.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/util/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/valuetype/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRowCreator.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleAssertUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleStringUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleSystemUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/TraceViewUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/ValueLabelUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupMappingBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadCategoryBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadContentBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleMappingBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupInfoDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupMappingDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadCategoryDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadContentDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleInfoDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleMappingDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsUserInfoDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupMapping.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepad.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadCategory.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadContent.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleMapping.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupInfoDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupMappingDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadCategoryDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadContentDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleInfoDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleMappingDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupMappingCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCategoryCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadContentCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleMappingCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/UserInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupMappingCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCategoryCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadContentCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleMappingCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupMappingCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCategoryCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadContentCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleMappingCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/UserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCategoryCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadContentCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupMappingCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCategoryCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadContentCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleMappingCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupInfoCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupMappingCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCategoryCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadContentCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleInfoCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleMappingCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupInfoNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupMappingNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadCategoryNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadContentNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleInfoNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleMappingNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/UserInfoNss.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupMappingBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadCategoryBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadContentBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleMappingBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/UserInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupInfoDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupMappingDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadCategoryDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadContentDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleInfoDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleMappingDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/UserInfoDao.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupMapping.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/Notepad.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadCategory.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadContent.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleMapping.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/ notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/CategoryDxo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/form/ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/CategoryForm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/NotepadForm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/CategoryForm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/NotepadForm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/ notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/CategoryPager.java notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/NotepadPager.java notepad/trunk/src/main/java/jp/sf/pal/notepad/service/ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java notepad/trunk/src/main/java/jp/sf/pal/notepad/util/ notepad/trunk/src/main/java/jp/sf/pal/notepad/util/DateUtil.java notepad/trunk/src/main/java/jp/sf/pal/notepad/util/NotepadUtil.java notepad/trunk/src/main/resources/ notepad/trunk/src/main/resources/app.dicon notepad/trunk/src/main/resources/application.properties notepad/trunk/src/main/resources/application_ja.properties notepad/trunk/src/main/resources/convention.dicon notepad/trunk/src/main/resources/creator.dicon notepad/trunk/src/main/resources/customizer.dicon notepad/trunk/src/main/resources/dbflute.dicon notepad/trunk/src/main/resources/env.txt notepad/trunk/src/main/resources/env_ut.txt notepad/trunk/src/main/resources/jdbc.dicon notepad/trunk/src/main/resources/s2container.dicon notepad/trunk/src/main/webapp/ notepad/trunk/src/main/webapp/WEB-INF/ notepad/trunk/src/main/webapp/WEB-INF/db/ notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db notepad/trunk/src/main/webapp/WEB-INF/db/notepad.index.db notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml notepad/trunk/src/main/webapp/WEB-INF/portlet.xml notepad/trunk/src/main/webapp/WEB-INF/struts-config.xml notepad/trunk/src/main/webapp/WEB-INF/validator-rules.xml notepad/trunk/src/main/webapp/WEB-INF/view/ notepad/trunk/src/main/webapp/WEB-INF/view/admin/ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp notepad/trunk/src/main/webapp/WEB-INF/view/common/ notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp notepad/trunk/src/main/webapp/WEB-INF/web.xml -------------- next part -------------- Added: notepad/trunk/.classpath =================================================================== --- notepad/trunk/.classpath (rev 0) +++ notepad/trunk/.classpath 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: notepad/trunk/.classpath ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/.project =================================================================== --- notepad/trunk/.project (rev 0) +++ notepad/trunk/.project 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ + + notepad + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.jdt.core.javanature + org.seasar.dolteng.eclipse.nature + + \ No newline at end of file Property changes on: notepad/trunk/.project ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/.settings/org.eclipse.jdt.core.prefs =================================================================== --- notepad/trunk/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ notepad/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,261 @@ +#Mon Sep 15 07:23:10 JST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true Added: notepad/trunk/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- notepad/trunk/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ notepad/trunk/.settings/org.eclipse.jdt.ui.prefs 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,5 @@ +#Mon Sep 15 07:23:26 JST 2008 +eclipse.preferences.version=1 +formatter_profile=_Seasar +formatter_settings_version=11 +org.eclipse.jdt.ui.text.custom_code_templates= Added: notepad/trunk/.settings/org.seasar.sastrutsplugin.prefs =================================================================== --- notepad/trunk/.settings/org.seasar.sastrutsplugin.prefs (rev 0) +++ notepad/trunk/.settings/org.seasar.sastrutsplugin.prefs 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,3 @@ +#Tue Sep 16 06:52:57 JST 2008 +WebContentsRoot=/src/main/webapp +eclipse.preferences.version=1 Added: notepad/trunk/dbflute/_project.bat =================================================================== --- notepad/trunk/dbflute/_project.bat (rev 0) +++ notepad/trunk/dbflute/_project.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,5 @@ + ¡÷ echo off + +set MY_PROJECT_NAME=notepad + +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Property changes on: notepad/trunk/dbflute/_project.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/_project.sh =================================================================== --- notepad/trunk/dbflute/_project.sh (rev 0) +++ notepad/trunk/dbflute/_project.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,5 @@ +#!/bin/sh + +export MY_PROJECT_NAME=notepad + +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Property changes on: notepad/trunk/dbflute/_project.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/dbflute/build-notepad.properties =================================================================== --- notepad/trunk/dbflute/build-notepad.properties (rev 0) +++ notepad/trunk/dbflute/build-notepad.properties 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,161 @@ +# ======================================================================================= +# for All +# ======= + +# ------------------------------------------------------------------- +# P R O J E C T +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.project = notepad + +# ------------------------------------------------------------------- +# T A R G E T D A T A B A S E +# ------------------------------------------------------------------- +# This is the target database, only considered when generating +# the SQL for your Torque project. Your possible choices are: +# +# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql, +# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2 +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.database = h2 + +# ------------------------------------------------------------------- +# T A R G E T L A N G U A G E +# ------------------------------------------------------------------- +# (Default 'java') +# The target language. Your possible choices are: +# java, csharp +# ------------------------------------------------------------------- +# @FirstProperty +#torque.targetLanguage = java + + + +# ======================================================================================= +# for OM task +# =========== + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Basic +# _/_/_/_/ +# /--------------------------------------------------------------------------- +# [Output Directory] +# java.dir: (Default '../src/main/java') +# The base output directory. +# +# If this value is '../src/main/java' and your project stype is under maven, +# you don't need to set up this property! +# +# {project} +# | +# |-dbflute_ldb +# | |-build-ldb.properties +# | |-... +# | +# |-src/main/java // *Here! +# |-src/main/resources +# |-... +# +# +# @FirstProperty +#torque.java.dir = ../src/main/java +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Package +# _/_/ +# /--------------------------------------------------------------------------- +# [EntityDao Package] +# packageBase: (Default '') +# The base directory of package. +# +# *If this property is specified and other package properties is not specified, +# Then The packages of generated class are as follows: +# +# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb +# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon +# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv +# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao +# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity +# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean +# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv +# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao +# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity +# +# *If this property is not specified, you should specify the other package properties. +# +# +# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon') +# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv') +# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao') +# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity') +# conditionBeanPackage: (Default Java:'cbean' C#:'cbean') +# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv') +# extendedDaoPackage: (Default Java:'exdao' C#:'exdao') +# extendedEntityPackage: (Default Java:'exentity' C#:'exentity') +# +# @FirstProperty +torque.packageBase = jp.sf.pal.notepad.db +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# S2Dao Adjustment +# _/_/_/_/_/_/ +# /--------------------------------------------------------------------------- +# [S2Dao Version] +# s2daoVersion: (Default [The latest version]) +# +# @JavaOnly +torque.s2daoVersion = 1.0.48 +# ----------------/ + + + +# ======================================================================================= +# for JDBC task +# ============= + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# [Database Informaition] +# +# * * * * * * * * * * * * * * * * * * * * * * * * * +# You shuold use './dfprop/databaseInfoMap.dfprop' +# Look the file! +# * * * * * * * * * * * * * * * * * * * * * * * * * +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Adavance +# _/_/ + +# /--------------------------------------------------------------------------- +# [Sequence] +# sequenceDefinitionMap: (Default 'map:{}') +# The method 'XxxDao#selectNextVal()' is generated for its table primary key. +# +# ex) public String selectNextVal_SQL = "select gen_id(BOOK_BOOK_ID_INC, 1) from RDB$DATABASE"; +# public java.math.BigDecimal selectNextVal(); +# // This example is for the database of Firebird +# +# sequenceReturnType: (Default 'java.math.BigDecimal') +# The return type of The method 'XxxDao#selectNextVal()'. +# + +# +# *Apache Derby does not support Sequence-Object. +# But I want to test this property. +# +#torque.sequenceDefinitionMap = map:{ \ +# prodcts = PRODUCTS_PRODUCTS_ID_INC \ +# } + +#torque.sequenceReturnType = java.lang.Integer +# [Additional ForeignKey] +torque.additionalForeignKeyMap = map:{ \ +} + +#torque.isDeleteOldTableClass = true + Property changes on: notepad/trunk/dbflute/build-notepad.properties ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/dfprop/databaseInfoMap.dfprop =================================================================== --- notepad/trunk/dbflute/dfprop/databaseInfoMap.dfprop (rev 0) +++ notepad/trunk/dbflute/dfprop/databaseInfoMap.dfprop 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,18 @@ +# /--------------------------------------------------------------------------- +# [Database Information] +# databaseInfoMap: +# driver -- The class name of JDBC-Driver. +# url -- The url for connecting database. +# schema -- The schema name. +# user -- The database user name. +# password -- The database password. +# +# @FirstProperty +map:{ + ; driver = org.h2.Driver + ; url = jdbc:h2:file:../src/main/webapp/WEB-INF/db/notepad + ; schema = + ; user = sa + ; password = +} +# ----------------/ Added: notepad/trunk/dbflute/doc.bat =================================================================== --- notepad/trunk/dbflute/doc.bat (rev 0) +++ notepad/trunk/dbflute/doc.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: notepad/trunk/dbflute/doc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/doc.sh =================================================================== --- notepad/trunk/dbflute/doc.sh (rev 0) +++ notepad/trunk/dbflute/doc.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Document}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH + Property changes on: notepad/trunk/dbflute/doc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/dbflute/generate.bat =================================================================== --- notepad/trunk/dbflute/generate.bat (rev 0) +++ notepad/trunk/dbflute/generate.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Generate}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: notepad/trunk/dbflute/generate.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/generate.sh =================================================================== --- notepad/trunk/dbflute/generate.sh (rev 0) +++ notepad/trunk/dbflute/generate.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,16 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Generate}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH + + + Property changes on: notepad/trunk/dbflute/generate.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/dbflute/jdbc.bat =================================================================== --- notepad/trunk/dbflute/jdbc.bat (rev 0) +++ notepad/trunk/dbflute/jdbc.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {JDBC and Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: notepad/trunk/dbflute/jdbc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/jdbc.sh =================================================================== --- notepad/trunk/dbflute/jdbc.sh (rev 0) +++ notepad/trunk/dbflute/jdbc.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties" + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {JDBC and Document}." +echo "nnnnnnnnnn/" +sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH} + + Property changes on: notepad/trunk/dbflute/jdbc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/dbflute/log/readme.txt =================================================================== --- notepad/trunk/dbflute/log/readme.txt (rev 0) +++ notepad/trunk/dbflute/log/readme.txt 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1 @@ +Directory for LogFile Property changes on: notepad/trunk/dbflute/log/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/output/doc/readme.txt =================================================================== --- notepad/trunk/dbflute/output/doc/readme.txt (rev 0) +++ notepad/trunk/dbflute/output/doc/readme.txt 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1 @@ +Directory for Document Property changes on: notepad/trunk/dbflute/output/doc/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/outside-sql-test.bat =================================================================== --- notepad/trunk/dbflute/outside-sql-test.bat (rev 0) +++ notepad/trunk/dbflute/outside-sql-test.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Outsite-Sql-Test}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: notepad/trunk/dbflute/outside-sql-test.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/outside-sql-test.sh =================================================================== --- notepad/trunk/dbflute/outside-sql-test.sh (rev 0) +++ notepad/trunk/dbflute/outside-sql-test.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Outsite-Sql-Test}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH + + Property changes on: notepad/trunk/dbflute/outside-sql-test.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/dbflute/playsql/replace-schema.sql =================================================================== --- notepad/trunk/dbflute/playsql/replace-schema.sql (rev 0) +++ notepad/trunk/dbflute/playsql/replace-schema.sql 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,418 @@ +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST +; + +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP +; + +ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP +; + +ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE +; + +ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID +; + + +DROP TABLE AUTHOR +; +DROP TABLE BLACK_ACTION +; +DROP TABLE BLACK_ACTION_LOOKUP +; +DROP TABLE BLACK_LIST +; +DROP TABLE BOOK +; +DROP TABLE COLLECTION +; +DROP TABLE COLLECTION_STATUS +; +DROP TABLE COLLECTION_STATUS_LOOKUP +; +DROP TABLE GARBAGE +; +DROP TABLE GENRE +; +DROP TABLE LB_USER +; +DROP TABLE LENDING +; +DROP TABLE LENDING_COLLECTION +; +DROP TABLE LIBRARY +; +DROP TABLE NEXT_LIBRARY +; +DROP TABLE PUBLISHER +; + +CREATE TABLE AUTHOR ( + AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + AUTHOR_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION ( + BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + BLACK_LIST_ID integer NOT NULL, + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_LEVEL smallint NOT NULL, + EVIDENCE_PHOTOGRAPH blob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION_LOOKUP ( + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_ACTION_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_LIST ( + BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_ID integer NOT NULL, + BLACK_RANK char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BOOK ( + BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + ISBN_NO varchar(20) NOT NULL, + BOOK_NAME varchar(80) NOT NULL, + AUTHOR_ID integer NOT NULL, + PUBLISHER_ID integer NOT NULL, + MAX_LENDING_DATE_COUNT smallint NOT NULL, + GENRE_CODE varchar(12), + OPENING_PART clob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION ( + COLLECTION_ID integer NOT NULL, + LIBRARY_ID smallint NOT NULL, + BOOK_ID integer NOT NULL, + ARRIVAL_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS ( + COLLECTION_ID integer NOT NULL, + COLLECTION_STATUS_CODE char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS_LOOKUP ( + COLLECTION_STATUS_CODE char(3) NOT NULL, + COLLECTION_STATUS_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE GARBAGE ( + GARBAGE_MEMO varchar(50), + GARBAGE_TIME timestamp +) +; + +CREATE TABLE GENRE ( + GENRE_CODE varchar(12) NOT NULL, + GENRE_NAME varchar(80) NOT NULL, + PARENT_GENRE_CODE varchar(12), + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LB_USER ( + LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_NAME varchar(80) NOT NULL, + LIBRARY_ID smallint NOT NULL, + USER_PASSWORD varchar(50) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING ( + LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_ID smallint NOT NULL, + LB_USER_ID integer NOT NULL, + LENDING_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING_COLLECTION ( + LENDING_ID integer NOT NULL, + COLLECTION_ID integer NOT NULL, + RETURN_LIMIT_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LIBRARY ( + LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE NEXT_LIBRARY ( + LIBRARY_ID smallint NOT NULL, + NEXT_LIBRARY_ID smallint NOT NULL, + DISTANCE_KM integer NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE PUBLISHER ( + PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + PUBLISHER_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + + +ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR + PRIMARY KEY (AUTHOR_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION + PRIMARY KEY (BLACK_ACTION_ID) +; + +ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP + PRIMARY KEY (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST + PRIMARY KEY (BLACK_LIST_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK + PRIMARY KEY (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP + PRIMARY KEY (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE + PRIMARY KEY (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER + PRIMARY KEY (LB_USER_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING + PRIMARY KEY (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION + PRIMARY KEY (LENDING_ID, COLLECTION_ID) +; + +ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY + PRIMARY KEY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY + PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID) +; + +ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER + PRIMARY KEY (PUBLISHER_ID) +; + + +ALTER TABLE BOOK + ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO) +; + +ALTER TABLE COLLECTION + ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID) +; + +ALTER TABLE LENDING + ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID) +; + +ALTER TABLE BLACK_LIST + ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID) +; + +ALTER TABLE LIBRARY + ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME) +; + + + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST + FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP + FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR + FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER + FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE + FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK + FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP + FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE + FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING + FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID + FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; Added: notepad/trunk/dbflute/replace-schema.bat =================================================================== --- notepad/trunk/dbflute/replace-schema.bat (rev 0) +++ notepad/trunk/dbflute/replace-schema.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Replace-Schema}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: notepad/trunk/dbflute/replace-schema.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/replace-schema.sh =================================================================== --- notepad/trunk/dbflute/replace-schema.sh (rev 0) +++ notepad/trunk/dbflute/replace-schema.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Replace-Schema}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH + + Property changes on: notepad/trunk/dbflute/replace-schema.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/dbflute/schema/readme.txt =================================================================== --- notepad/trunk/dbflute/schema/readme.txt (rev 0) +++ notepad/trunk/dbflute/schema/readme.txt 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1 @@ +Directory for SchemaFile Property changes on: notepad/trunk/dbflute/schema/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/sql2entity.bat =================================================================== --- notepad/trunk/dbflute/sql2entity.bat (rev 0) +++ notepad/trunk/dbflute/sql2entity.bat 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Invoke Sql Directory}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: notepad/trunk/dbflute/sql2entity.bat ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/dbflute/sql2entity.sh =================================================================== --- notepad/trunk/dbflute/sql2entity.sh (rev 0) +++ notepad/trunk/dbflute/sql2entity.sh 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Invoke Sql Directory}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH + + Property changes on: notepad/trunk/dbflute/sql2entity.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: notepad/trunk/mydbflute/README.txt =================================================================== --- notepad/trunk/mydbflute/README.txt (rev 0) +++ notepad/trunk/mydbflute/README.txt 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: notepad/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/pom.xml =================================================================== --- notepad/trunk/pom.xml (rev 0) +++ notepad/trunk/pom.xml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,292 @@ + + + 4.0.0 + jp.sf.pal + notepad + 1.0-SNAPSHOT + war + Notepad + + + notepad + validate + + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-surefire-plugin + 2.3 + + + maven-deploy-plugin + + true + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.0-SNAPSHOT + + + + clean + + + + + + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + mvnrepository.com + Maven2 Repository on mvnrepository.com + http://mvnrepository.com/artifact/ + + + maven.marevol.com + Maven2 Repository on marevol.com + http://maven2.marevol.com/ + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + portlet-api + portlet-api + 1.0 + provided + + + org.apache.portals.bridges + portals-bridges-portletfilter + 1.0.4 + + + logkit + logkit + + + avalon-framework + avalon-framework + + + javax.servlet + servlet-api + + + log4j + log4j + + + + + jstl + jstl + 1.1.2 + + + taglibs + standard + 1.1.2 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 1.3 + + + commons-lang + commons-lang + 2.3 + + + commons-validator + commons-validator + 1.2.0 + + + commons-logging + commons-logging + 1.0.4 + + + log4j + log4j + 1.2.13 + jar + + + + org.apache.portals.jetspeed-2 + jetspeed-api + 2.1.3 + provided + + + junit + junit + + + + + javax.servlet + servlet-api + 2.3 + provided + + + + org.seasar.container + s2-extension + 2.4.29 + + + log4j + log4j + + + junit + junit + + + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.easymock + easymock + + + junit + junit + + + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + org.easymock + easymock + + + commons-logging + commons-logging + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.1.1 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + junit + junit + + + + + + org.seasar.dao + s2-dao + 1.0.48 + + + org.seasar.dao + s2-dao-tiger + 1.0.48 + + + com.h2database + h2 + 1.0.79 + + + + Property changes on: notepad/trunk/pom.xml ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/config/erd/notepad.erd =================================================================== --- notepad/trunk/src/main/config/erd/notepad.erd (rev 0) +++ notepad/trunk/src/main/config/erd/notepad.erd 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1442 @@ + + + + + + + user_info + User Information + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 428 + 802 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 40 + 1246 + -1 + -1 + + + + + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 44 + 491 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 607 + 1246 + -1 + -1 + + + + + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 615 + 491 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + FK_from_notepad_createdby_to_user + + + + + created_by + Created by + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + notepad + Notepad + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + true + + + + title + Title + + VARCHAR + String + true + 12 + + 100 + true + false + + false + + + + sort_order + Sort Order + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 0 + + + category_id + Category ID + + 1 + false + false + + false + 0 + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 23 + true + false + + false + + + + + updated_time + Updated Time + + 23 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted by + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 1 + true + false + + false + 0 + + + + + IDX_created_by_and_category_id_for_link + + INDEX + + + created_by + category_id + + + + + 443 + 180 + -1 + -1 + + + + FK_from_notepad_to_category + + + + id + ID + + INTEGER + Integer + false + 4 + + 19 + true + true + + true + + + + + + + + + + notepad_category + Notepad Category + + + + + name + Name + + 100 + true + false + + false + + + + type + Type + + VARCHAR + String + true + 12 + + 1 + true + false + + false + 'P' + + + sort_order + Sort Order + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 0 + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created_by + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted by + + 255 + false + false + + false + + + + versionNo + Version No + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 0 + + + + + IDX_created_by_for_category + + + created_by + + + + + 305 + 491 + -1 + -1 + + + + FK_from_category_createdby_to_user + + + + + + + + + + + + 2 + + + + + + + + FK_from_category_updatedby_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + FK_from_notepad_updatedby_to_user + + + + + + + + + + + + 2 + + + + + + + + + + FK_from_content_to_user + + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + false + + + + + + + + notepad_content + Notepad Content + + + + + content + Content + + 4000 + false + false + + false + + + + + + 465 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + hsqldb + false + /home/taro/.m2/repository/com/h2database/h2/1.0.79/h2-1.0.79.jar + org.h2.Driver + jdbc:h2:tcp://localhost:9092/userinfo + sa + + + + false + + + + 2 + + + + + + \ No newline at end of file Added: notepad/trunk/src/main/config/sql/notepad.ddl =================================================================== --- notepad/trunk/src/main/config/sql/notepad.ddl (rev 0) +++ notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,148 @@ +DROP TABLE notepad_content; +DROP TABLE notepad; +DROP TABLE notepad_category; +DROP TABLE role_mapping; +DROP TABLE group_mapping; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; + +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Notepad Category +**********************************/ +CREATE TABLE notepad_category( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + type VARCHAR(1) DEFAULT 'P' NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Notepad +**********************************/ +CREATE TABLE notepad( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + title VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + category_id INTEGER DEFAULT 0, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (category_id) REFERENCES notepad_category (id), + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Notepad Content +**********************************/ +CREATE TABLE notepad_content( + id BIGINT(20) NOT NULL PRIMARY KEY, + content VARCHAR(4000), + FOREIGN KEY (id) REFERENCES notepad (id) +); + + +CREATE INDEX IDX_created_by_for_category ON notepad_category (created_by); + +CREATE INDEX IDX_created_by_and_category_id_for_link ON notepad (created_by, category_id); + Added: notepad/trunk/src/main/config/sql/notepad.dml =================================================================== --- notepad/trunk/src/main/config/sql/notepad.dml (rev 0) +++ notepad/trunk/src/main/config/sql/notepad.dml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,3 @@ +insert into user_info (USER_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO) values ('admin', '2008-10-15 17:17:37', 'admin', '2008-10-15 17:17:37', 'admin', 0); +insert into NOTEPAD_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, TYPE) values (1, '(Unclassified)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, 'P'); +insert into NOTEPAD_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, TYPE) values (2, '(Shared)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, 'P'); Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,29 @@ +package jp.sf.pal.notepad; + +public class NotepadConstants { + + public static final int LIST_MODE = 0; + + public static final int CREATE_MODE = 1; + + public static final int EDIT_MODE = 2; + + public static final int DELETE_MODE = 3; + + public static final int CONFIRM_MODE = 4; + + public static final String TIMESTAMP_PATTERN = "yyyy/MM/dd HH:mm:ss"; + + public static final String TRUE = "T"; + + public static final String FALSE = "F"; + + public static final Integer DEFAULT_CATEGORY_ID = Integer.valueOf(1); + + public static final int SHARED_CATEGORY_ID = 2; + + public static final String PUBLIC_CATEGORY = "P"; + + public static final String PERSONAL_CATEGORY = "C"; + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,316 @@ +package jp.sf.pal.notepad.action.admin; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.dxo.PagerDxo; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.dxo.CategoryDxo; +import jp.sf.pal.notepad.form.admin.CategoryForm; +import jp.sf.pal.notepad.pager.CategoryPager; +import jp.sf.pal.notepad.service.CategoryService; +import jp.sf.pal.notepad.util.NotepadUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CategoryAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CategoryAction.class); + + // for list + + public List categoryItems; + + // for edit/confirm/delete + + @ActionForm + private CategoryForm categoryForm; + + private CategoryService categoryService; + + private CategoryPager categoryPager; + + private PagerDxo pagerDxo; + + private CategoryDxo categoryDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + categoryPager.setCreatedBy(null); + categoryItems = categoryService.getCategoryList(categoryPager); + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + pagerDxo.convert(categoryForm, categoryPager); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (categoryForm.mode != NotepadConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.CONFIRM_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + categoryForm.initialize(); + categoryForm.mode = NotepadConstants.CREATE_MODE; + + // update edit page + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (categoryForm.mode != NotepadConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.EDIT_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (categoryForm.mode != NotepadConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.DELETE_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + if (categoryForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + NotepadCategory category = categoryService.getCategory(Integer + .parseInt(categoryForm.id)); + if (category == null) { + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + try { + categoryService.moveUp(category); + NotepadUtil.addMessage(request, "success.move_category_up"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + return list(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + if (categoryForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + NotepadCategory category = categoryService.getCategory(Integer + .parseInt(categoryForm.id)); + if (category == null) { + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + try { + categoryService.moveDown(category); + NotepadUtil.addMessage(request, "success.move_category_down"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + return list(); + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + NotepadCategory category = createCategory(); + categoryService.store(category); + NotepadUtil.addMessage(request, "success.create_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_category"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + NotepadCategory category = createCategory(); + categoryService.store(category); + NotepadUtil.addMessage(request, "success.update_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + categoryService.disable(Integer.parseInt(categoryForm.id), request + .getRemoteUser()); + NotepadUtil.addMessage(request, "success.delete_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_category"); + } + } + + private void loadCategory() { + Integer categoryId = Integer.parseInt(categoryForm.id); + + NotepadCategory category = categoryService.getCategory(categoryId); + if (category == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryId }); + } + categoryDxo.convertFromCategoryToForm(category, categoryForm); + + } + + private NotepadCategory createCategory() { + NotepadCategory category; + if (categoryForm.mode == NotepadConstants.EDIT_MODE) { + Integer categoryId = Integer.parseInt(categoryForm.id); + category = categoryService.getCategory(categoryId); + category.setUpdatedBy(request.getRemoteUser()); + } else { + category = new NotepadCategory(); + String remoteUser = request.getRemoteUser(); + category.setUpdatedBy(remoteUser); + category.setCreatedBy(remoteUser); + } + categoryDxo.convertFromFormToCategory(categoryForm, category); + + return category; + + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public CategoryPager getCategoryPager() { + return categoryPager; + } + + public void setCategoryPager(CategoryPager categoryPager) { + this.categoryPager = categoryPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CategoryDxo getCategoryDxo() { + return categoryDxo; + } + + public void setCategoryDxo(CategoryDxo categoryDxo) { + this.categoryDxo = categoryDxo; + } + + public CategoryForm getCategoryForm() { + return categoryForm; + } + + public void setCategoryForm(CategoryForm categoryForm) { + this.categoryForm = categoryForm; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,300 @@ +package jp.sf.pal.notepad.action.admin; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.dxo.PagerDxo; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.dxo.NotepadDxo; +import jp.sf.pal.notepad.form.admin.NotepadForm; +import jp.sf.pal.notepad.pager.NotepadPager; +import jp.sf.pal.notepad.service.CategoryService; +import jp.sf.pal.notepad.service.NotepadService; +import jp.sf.pal.notepad.util.NotepadUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class NotepadAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(NotepadAction.class); + + // for list + + public List notepadItems; + + // for edit/confirm/delete + + @ActionForm + private NotepadForm notepadForm; + + private NotepadService notepadService; + + private CategoryService categoryService; + + private NotepadPager notepadPager; + + private PagerDxo pagerDxo; + + private NotepadDxo notepadDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + notepadPager.setCreatedBy(null); + notepadPager.setCategoryId(null); + notepadItems = notepadService.getNotepadList(notepadPager); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(notepadForm, notepadPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "select/{categoryId}") + public String select() { + notepadPager.setCategoryId(Integer.parseInt(notepadForm.categoryId)); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (notepadForm.mode != NotepadConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.CONFIRM_MODE, + notepadForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + notepadForm.initialize(); + notepadForm.mode = NotepadConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + notepadForm.mode = NotepadConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + notepadForm.mode = NotepadConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Notepad link = createLink(); + notepadService.store(link); + NotepadUtil.addMessage(request, "success.create_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_link"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Notepad link = createLink(); + notepadService.store(link); + NotepadUtil.addMessage(request, "success.update_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + notepadService.disable(Long.parseLong(notepadForm.id), request + .getRemoteUser()); + NotepadUtil.addMessage(request, "success.delete_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_link"); + } + } + + private void loadLink() { + Long linkId = Long.parseLong(notepadForm.id); + + Notepad link = notepadService.getNotepad(linkId); + if (link == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { linkId }); + } + notepadDxo.convertFromLinkToForm(link, notepadForm); + + } + + private Notepad createLink() { + Notepad link; + if (notepadForm.mode == NotepadConstants.EDIT_MODE) { + Long linkId = Long.parseLong(notepadForm.id); + link = notepadService.getNotepad(linkId); + link.setUpdatedBy(request.getRemoteUser()); + } else { + link = new Notepad(); + String remoteUser = request.getRemoteUser(); + link.setUpdatedBy(remoteUser); + link.setCreatedBy(remoteUser); + } + notepadDxo.convertFromFormToLink(notepadForm, link); + + return link; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public NotepadForm getNotepadForm() { + return notepadForm; + } + + public void setNotepadForm(NotepadForm notepadForm) { + this.notepadForm = notepadForm; + } + + public NotepadService getNotepadService() { + return notepadService; + } + + public void setNotepadService(NotepadService notepadService) { + this.notepadService = notepadService; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public NotepadPager getNotepadPager() { + return notepadPager; + } + + public void setNotepadPager(NotepadPager notepadPager) { + this.notepadPager = notepadPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public NotepadDxo getNotepadDxo() { + return notepadDxo; + } + + public void setNotepadDxo(NotepadDxo notepadDxo) { + this.notepadDxo = notepadDxo; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,316 @@ +package jp.sf.pal.notepad.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.dxo.PagerDxo; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.dxo.CategoryDxo; +import jp.sf.pal.notepad.form.user.CategoryForm; +import jp.sf.pal.notepad.pager.CategoryPager; +import jp.sf.pal.notepad.service.CategoryService; +import jp.sf.pal.notepad.util.NotepadUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CategoryAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CategoryAction.class); + + // for list + + public List categoryItems; + + // for edit/confirm/delete + + @ActionForm + private CategoryForm categoryForm; + + private CategoryService categoryService; + + private CategoryPager categoryPager; + + private PagerDxo pagerDxo; + + private CategoryDxo categoryDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + categoryPager.setCreatedBy(request.getRemoteUser()); + categoryItems = categoryService.getCategoryList(categoryPager); + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + pagerDxo.convert(categoryForm, categoryPager); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (categoryForm.mode != NotepadConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.CONFIRM_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + categoryForm.initialize(); + categoryForm.mode = NotepadConstants.CREATE_MODE; + + // update edit page + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (categoryForm.mode != NotepadConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.EDIT_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (categoryForm.mode != NotepadConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.DELETE_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + if (categoryForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + NotepadCategory category = categoryService.getCategory(Integer + .parseInt(categoryForm.id)); + if (category == null) { + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + try { + categoryService.moveUp(category); + NotepadUtil.addMessage(request, "success.move_category_up"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + if (categoryForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + NotepadCategory category = categoryService.getCategory(Integer + .parseInt(categoryForm.id)); + if (category == null) { + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + try { + categoryService.moveDown(category); + NotepadUtil.addMessage(request, "success.move_category_down"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + return displayList(); + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + NotepadCategory category = createCategory(); + categoryService.store(category); + NotepadUtil.addMessage(request, "success.create_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_category"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + NotepadCategory category = createCategory(); + categoryService.store(category); + NotepadUtil.addMessage(request, "success.update_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + categoryService.disable(Integer.parseInt(categoryForm.id), request + .getRemoteUser()); + NotepadUtil.addMessage(request, "success.delete_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_category"); + } + } + + private void loadCategory() { + Integer categoryId = Integer.parseInt(categoryForm.id); + + NotepadCategory category = categoryService.getCategory(categoryId); + if (category == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryId }); + } + categoryDxo.convertFromCategoryToForm(category, categoryForm); + + } + + private NotepadCategory createCategory() { + NotepadCategory category; + if (categoryForm.mode == NotepadConstants.EDIT_MODE) { + Integer categoryId = Integer.parseInt(categoryForm.id); + category = categoryService.getCategory(categoryId); + category.setUpdatedBy(request.getRemoteUser()); + } else { + category = new NotepadCategory(); + String remoteUser = request.getRemoteUser(); + category.setUpdatedBy(remoteUser); + category.setCreatedBy(remoteUser); + } + categoryDxo.convertFromFormToCategory(categoryForm, category); + + return category; + + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CategoryForm getCategoryForm() { + return categoryForm; + } + + public void setCategoryForm(CategoryForm categoryForm) { + this.categoryForm = categoryForm; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public CategoryPager getCategoryPager() { + return categoryPager; + } + + public void setCategoryPager(CategoryPager categoryPager) { + this.categoryPager = categoryPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CategoryDxo getCategoryDxo() { + return categoryDxo; + } + + public void setCategoryDxo(CategoryDxo categoryDxo) { + this.categoryDxo = categoryDxo; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,375 @@ +package jp.sf.pal.notepad.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.dxo.PagerDxo; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.dxo.NotepadDxo; +import jp.sf.pal.notepad.form.user.NotepadForm; +import jp.sf.pal.notepad.pager.NotepadPager; +import jp.sf.pal.notepad.service.CategoryService; +import jp.sf.pal.notepad.service.NotepadService; +import jp.sf.pal.notepad.util.NotepadUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class NotepadAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(NotepadAction.class); + + public List categoryItems; + + // for list + + public List notepadItems; + + // for edit/confirm/delete + + @ActionForm + private NotepadForm notepadForm; + + private NotepadService notepadService; + + private CategoryService categoryService; + + private NotepadPager notepadPager; + + private PagerDxo pagerDxo; + + private NotepadDxo notepadDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + String username = request.getRemoteUser(); + + // page navi + notepadPager.setCreatedBy(username); + notepadItems = notepadService.getNotepadList(notepadPager); + + categoryItems = categoryService.getCategoryList(username); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(notepadForm, notepadPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "select/{categoryId}") + public String select() { + notepadPager.setCategoryId(Integer.parseInt(notepadForm.categoryId)); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (notepadForm.mode != NotepadConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { NotepadConstants.CONFIRM_MODE, + notepadForm.mode }); + } + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + notepadForm.initialize(); + notepadForm.mode = NotepadConstants.CREATE_MODE; + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpage() { + notepadForm.mode = NotepadConstants.EDIT_MODE; + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepage() { + notepadForm.mode = NotepadConstants.DELETE_MODE; + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + if (notepadForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + Notepad link = notepadService + .getNotepad(Long.parseLong(notepadForm.id)); + if (link == null) { + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { notepadForm.id }); + } + try { + notepadService.moveUp(link); + NotepadUtil.addMessage(request, "success.move_link_up"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + if (notepadForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + Notepad link = notepadService + .getNotepad(Long.parseLong(notepadForm.id)); + if (link == null) { + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { notepadForm.id }); + } + try { + notepadService.moveDown(link); + NotepadUtil.addMessage(request, "success.move_link_down"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } + return displayList(); + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Notepad link = createLink(); + notepadService.store(link); + NotepadUtil.addMessage(request, "success.create_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_link"); + } finally { + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Notepad link = createLink(); + notepadService.store(link); + NotepadUtil.addMessage(request, "success.update_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } finally { + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + notepadService.disable(Long.parseLong(notepadForm.id), request + .getRemoteUser()); + NotepadUtil.addMessage(request, "success.delete_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_link"); + } + } + + private void loadLink() { + Long linkId = Long.parseLong(notepadForm.id); + + Notepad link = notepadService.getNotepad(linkId); + if (link == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { linkId }); + } + notepadDxo.convertFromLinkToForm(link, notepadForm); + + } + + private Notepad createLink() { + Notepad link; + if (notepadForm.mode == NotepadConstants.EDIT_MODE) { + Long linkId = Long.parseLong(notepadForm.id); + link = notepadService.getNotepad(linkId); + link.setUpdatedBy(request.getRemoteUser()); + } else { + link = new Notepad(); + String remoteUser = request.getRemoteUser(); + link.setUpdatedBy(remoteUser); + link.setCreatedBy(remoteUser); + } + notepadDxo.convertFromFormToLink(notepadForm, link); + + return link; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public NotepadForm getNotepadForm() { + return notepadForm; + } + + public void setNotepadForm(NotepadForm notepadForm) { + this.notepadForm = notepadForm; + } + + public NotepadService getNotepadService() { + return notepadService; + } + + public void setNotepadService(NotepadService notepadService) { + this.notepadService = notepadService; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public NotepadPager getNotepadPager() { + return notepadPager; + } + + public void setNotepadPager(NotepadPager notepadPager) { + this.notepadPager = notepadPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public NotepadDxo getNotepadDxo() { + return notepadDxo; + } + + public void setNotepadDxo(NotepadDxo notepadDxo) { + this.notepadDxo = notepadDxo; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/CommonException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/common/CommonException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/CommonException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.notepad.common; + +/** + * @author shinsuke + */ +public class CommonException extends Exception { + + /** + * Serial Version UID + */ + private static final long serialVersionUID = 4564000116499132363L; + + private String messageId; + + private Object[] args; + + /** + * @return Returns the messageId. + */ + public String getMessageId() { + return messageId; + } + + /** + * @param messageId The messageId to set. + */ + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * @return Returns the args. + */ + public Object[] getArgs() { + return args; + } + + /** + * @param args The args to set. + */ + public void setArgs(Object[] args) { + this.args = args; + } + + public CommonException(String messageId) { + super(messageId); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args) { + super(messageId); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message, Throwable cause) { + super(message, cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message, + Throwable cause) { + super(message, cause); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message) { + super(message); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message) { + super(message); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, Throwable cause) { + super(cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, Throwable cause) { + super(cause); + this.messageId = messageId; + this.args = args; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/CommonException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/creator/PagerCreator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/common/creator/PagerCreator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/creator/PagerCreator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,29 @@ +package jp.sf.pal.notepad.common.creator; + +import org.seasar.framework.container.ComponentCustomizer; +import org.seasar.framework.container.assembler.AutoBindingDefFactory; +import org.seasar.framework.container.creator.ComponentCreatorImpl; +import org.seasar.framework.container.deployer.InstanceDefFactory; +import org.seasar.framework.convention.NamingConvention; + +/** + * @author shinsuke + */ +public class PagerCreator extends ComponentCreatorImpl { + public static final String SUFFIX = "Pager"; + + public PagerCreator(NamingConvention namingConvention) { + super(namingConvention); + setNameSuffix(SUFFIX); + setInstanceDef(InstanceDefFactory.SESSION); + setAutoBindingDef(AutoBindingDefFactory.NONE); + } + + public ComponentCustomizer getPagerCustomizer() { + return getCustomizer(); + } + + public void setPagerCustomizer(ComponentCustomizer customizer) { + setCustomizer(customizer); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/creator/PagerCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/dxo/PagerDxo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/common/dxo/PagerDxo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/dxo/PagerDxo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,24 @@ +package jp.sf.pal.notepad.common.dxo; + +import java.io.Serializable; + +import jp.sf.pal.notepad.common.form.PagingResultForm; +import jp.sf.pal.notepad.common.pager.DefaultPager; +import jp.sf.pal.notepad.common.util.PagingResultBeanWrapper; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface PagerDxo extends Serializable { + + @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" + + ",currentPageNumber : currentPageNumber" + + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" + + ",existNextPage : existNextPage") + public void convert(PagingResultBeanWrapper result, DefaultPager pager); + + @ExcludeNull + @ConversionRule(// "pageSize : pageSize, " + + "currentPageNumber : pageNumber") + public void convert(PagingResultForm page, DefaultPager pager); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/dxo/PagerDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/form/PagingResultForm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/common/form/PagingResultForm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/form/PagingResultForm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,5 @@ +package jp.sf.pal.notepad.common.form; + +public interface PagingResultForm { + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/form/PagingResultForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/pager/DefaultPager.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/common/pager/DefaultPager.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/pager/DefaultPager.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,101 @@ +package jp.sf.pal.notepad.common.pager; + +import java.io.Serializable; +import java.util.List; + +public abstract class DefaultPager implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DEFAULT_PAGE_SIZE = 50; + + public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; + + private int allRecordCount; + + private int allPageCount; + + private boolean existPrePage; + + private boolean existNextPage; + + private List pageNumberList; + + private int pageSize; + + private int currentPageNumber; + + public void clear() { + pageSize = getDefaultPageSize(); + currentPageNumber = getDefaultCurrentPageNumber(); + } + + protected int getDefaultPageSize() { + return DEFAULT_PAGE_SIZE; + } + + protected int getDefaultCurrentPageNumber() { + return DEFAULT_CURRENT_PAGE_NUMBER; + } + + public int getAllRecordCount() { + return allRecordCount; + } + + public void setAllRecordCount(int allRecordCount) { + this.allRecordCount = allRecordCount; + } + + public int getAllPageCount() { + return allPageCount; + } + + public void setAllPageCount(int allPageCount) { + this.allPageCount = allPageCount; + } + + public boolean isExistPrePage() { + return existPrePage; + } + + public void setExistPrePage(boolean existPrePage) { + this.existPrePage = existPrePage; + } + + public boolean isExistNextPage() { + return existNextPage; + } + + public void setExistNextPage(boolean existNextPage) { + this.existNextPage = existNextPage; + } + + public int getPageSize() { + if (pageSize <= 0) { + pageSize = getDefaultPageSize(); + } + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNumber() { + if (currentPageNumber <= 0) { + currentPageNumber = getDefaultCurrentPageNumber(); + } + return currentPageNumber; + } + + public void setCurrentPageNumber(int currentPageNumber) { + this.currentPageNumber = currentPageNumber; + } + + public List getPageNumberList() { + return pageNumberList; + } + + public void setPageNumberList(List pageNumberList) { + this.pageNumberList = pageNumberList; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/pager/DefaultPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/util/PagingResultBeanWrapper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/common/util/PagingResultBeanWrapper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/common/util/PagingResultBeanWrapper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,68 @@ +package jp.sf.pal.notepad.common.util; + +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; + +public class PagingResultBeanWrapper { + private PagingResultBean pagingResultBean; + + public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public PagingResultBean getPagingResultBean() { + return pagingResultBean; + } + + public void setPagingResultBean(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public int getAllRecordCount() { + return pagingResultBean.getAllRecordCount(); + } + + public void setAllRecordCount(int allRecordCount) { + pagingResultBean.setAllRecordCount(allRecordCount); + } + + public int getPageSize() { + return pagingResultBean.getPageSize(); + } + + public void setPageSize(int pageSize) { + pagingResultBean.setPageSize(pageSize); + } + + public int getCurrentPageNumber() { + return pagingResultBean.getCurrentPageNumber(); + } + + public void setCurrentPageNumber(int currentPageNumber) { + pagingResultBean.setCurrentPageNumber(currentPageNumber); + } + + public int getAllPageCount() { + return pagingResultBean.getAllPageCount(); + } + + public void setAllPageCount(int allPageCount) { + // nothing + } + + public boolean isExistPrePage() { + return pagingResultBean.isExistPrePage(); + } + + public void setExistPrePage(boolean existPrePage) { + // nothing + } + + public boolean isExistNextPage() { + return pagingResultBean.isExistNextPage(); + } + + public void setExistNextPage(boolean existNextPage) { + // nothing + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/common/util/PagingResultBeanWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/AccessContext.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/AccessContext.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/AccessContext.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,315 @@ +package jp.sf.pal.notepad.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of DB access. + * + * @author DBFlute(AutoGenerator) + */ +public class AccessContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get access-context on thread. + * + * @return The context of DB access.. (Nullable) + */ + public static AccessContext getAccessContextOnThread() { + return (AccessContext) _threadLocal.get(); + } + + /** + * Set access-context on thread. + * + * @param accessContext The context of DB access.. (NotNull) + */ + public static void setAccessContextOnThread(AccessContext accessContext) { + if (accessContext == null) { + String msg = "The argument[accessContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(accessContext); + } + + /** + * Is existing access-context on thread? + * + * @return Determination. + */ + public static boolean isExistAccessContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear access-context on thread. + */ + public static void clearAccessContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Access Information + // ================== + /** + * Get access user on thread. + *

    + * If it can't get access user from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access user. (NotNull) + */ + public static String getAccessUserOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessUser = userContextOnThread.getAccessUser(); + if (accessUser != null) { + return accessUser; + } + } + return "Anonymous";// as Default + } + + /** + * Get access process on thread. + *

    + * If it can't get access process from access-context, returns 'Anonymous' + * as default value! + *

    + * + * @return Access process. (NotNull) + */ + public static String getAccessProcessOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessProcess = userContextOnThread.getAccessProcess(); + if (accessProcess != null) { + return accessProcess; + } + } + return "Anonymous";// as Default + } + + /** + * Get access module on thread. + *

    + * If it can't get access module from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access module. (NotNull) + */ + public static String getAccessModuleOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessModule = userContextOnThread.getAccessModule(); + if (accessModule != null) { + return accessModule; + } + } + return "Anonymous";// as Default + } + + /** + * Get access date on thread. + *

    + * If it can't get access date from access-context, returns application + * current time as default value! + *

    + * + * @return Access date. (NotNull) + */ + public static java.util.Date getAccessDateOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.util.Date accessDate = userContextOnThread + .getAccessDate(); + if (accessDate != null) { + return accessDate; + } + if (userContextOnThread.getAccessDateProvider() != null) { + return userContextOnThread.getAccessDateProvider() + .getAccessDate(); + } + } + return new java.util.Date();// as Default + } + + /** + * Get access timestamp on thread. + *

    + * If it can't get access timestamp from access-context, returns application + * current time as default value! + *

    + * + * @return Access timestamp. (NotNull) + */ + public static java.sql.Timestamp getAccessTimestampOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.sql.Timestamp accessTimestamp = userContextOnThread + .getAccessTimestamp(); + if (accessTimestamp != null) { + return accessTimestamp; + } + if (userContextOnThread.getAccessTimestampProvider() != null) { + return userContextOnThread.getAccessTimestampProvider() + .getAccessTimestamp(); + } + } + return new java.sql.Timestamp(System.currentTimeMillis());// as Default + } + + /** + * Get access value on thread. + *

    + * If it can't get access value from access-context, returns null as default + * value! + *

    + * + * @param key Key. (NotNull) + * @return Access value. (Nullable) + */ + public static Object getAccessValueOnThread(String key) { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final Map accessValueMap = userContextOnThread + .getAccessValueMap(); + if (accessValueMap != null) { + return accessValueMap.get(key); + } + } + return null;// as Default + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected String accessUser; + + protected String accessProcess; + + protected String accessModule; + + protected java.util.Date accessDate; + + protected AccessDateProvider accessDateProvider; + + protected java.sql.Timestamp accessTimestamp; + + protected AccessTimestampProvider accessTimestampProvider; + + protected Map accessValueMap; + + //========================================================================== + // ========= + // Accessor + // ======== + public String getAccessUser() { + return accessUser; + } + + public void setAccessUser(String accessUser) { + this.accessUser = accessUser; + } + + public String getAccessProcess() { + return accessProcess; + } + + public void setAccessProcess(String accessProcess) { + this.accessProcess = accessProcess; + } + + public String getAccessModule() { + return accessModule; + } + + public void setAccessModule(String accessModule) { + this.accessModule = accessModule; + } + + public java.util.Date getAccessDate() { + return accessDate; + } + + public void setAccessDate(java.util.Date accessDate) { + this.accessDate = accessDate; + } + + public AccessDateProvider getAccessDateProvider() { + return accessDateProvider; + } + + public void setAccessDateProvider(AccessDateProvider accessDateProvider) { + this.accessDateProvider = accessDateProvider; + } + + public java.sql.Timestamp getAccessTimestamp() { + return accessTimestamp; + } + + public void setAccessTimestamp(java.sql.Timestamp accessTimestamp) { + this.accessTimestamp = accessTimestamp; + } + + public AccessTimestampProvider getAccessTimestampProvider() { + return accessTimestampProvider; + } + + public void setAccessTimestampProvider( + AccessTimestampProvider accessTimestampProvider) { + this.accessTimestampProvider = accessTimestampProvider; + } + + public Map getAccessValueMap() { + return accessValueMap; + } + + public void registerAccessValue(String key, Object value) { + if (accessValueMap == null) { + accessValueMap = new HashMap(); + } + accessValueMap.put(key, value); + } + + //========================================================================== + // ========= + // Provider Interface + // ================== + /** + * The provider interface of access date. + */ + public static interface AccessDateProvider { + + /** + * Get access date. + * + * @return Access date. (NotNull) + */ + public java.util.Date getAccessDate(); + } + + /** + * The provider interface of access date. + */ + public static interface AccessTimestampProvider { + + /** + * Get access timestamp. + * + * @return Access timestamp. (NotNull) + */ + public java.sql.Timestamp getAccessTimestamp(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/AccessContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BFinder.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BFinder.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BFinder.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,110 @@ +package jp.sf.pal.notepad.db.allcommon; + +import jp.sf.pal.notepad.db.allcommon.bhv.BehaviorReadable; + +/** + * The entry of DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BFinder { + + //========================================================================== + // ========= + // Definition + // ========== + protected static String _dbfluteDiconName = "dbflute.dicon"; + + //========================================================================== + // ========= + // Constructor + // =========== + private BFinder() { + } + + //========================================================================== + // ========= + // Finder + // ====== + public static BEHAVIOR_TYPE find( + Class behaviorType) { + assertObjectNotNull("behaviorType", behaviorType); + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + synchronized (BFinder.class) { + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + final String configFile = _dbfluteDiconName; + if (org.seasar.framework.util.ResourceUtil + .isExist(configFile)) { + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .setConfigPath(configFile); + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .init(); + } else { + String msg = "S2Container is not initialized! Confirm your initializer and your dicon files."; + throw new IllegalStateException(msg); + } + } + } + } + final org.seasar.framework.container.S2Container container = org.seasar.framework.container.factory.SingletonS2ContainerFactory + .getContainer(); + final BEHAVIOR_TYPE behavior = (BEHAVIOR_TYPE) container + .getComponent(behaviorType); + return behavior; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public static void setDBFluteDiconName(String dbfluteDiconName) { + _dbfluteDiconName = dbfluteDiconName; + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BFinder.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BehaviorSelector.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BehaviorSelector.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BehaviorSelector.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,35 @@ +package jp.sf.pal.notepad.db.allcommon; + +import jp.sf.pal.notepad.db.allcommon.bhv.BehaviorReadable; + +/** + * The interface of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorSelector { + + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData(); + + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType); + + /** + * Select behavior-readable. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/BehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheAbstractSelector.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheAbstractSelector.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheAbstractSelector.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,115 @@ +package jp.sf.pal.notepad.db.allcommon; + +import org.seasar.framework.container.ComponentNotFoundRuntimeException; +import org.seasar.framework.container.S2Container; + +/** + * The abstract class of cache-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class CacheAbstractSelector { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The container of Seasar. */ + protected S2Container _container; + + //========================================================================== + // ========= + // Component + // ========= + public COMPONENT getComponent(Class componentType) { + assertObjectNotNull("componentType", componentType); + assertObjectNotNull("_container", _container); + try { + return (COMPONENT) _container.getComponent(componentType); + } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't + // come. + final COMPONENT component; + try { + // for HotDeploy Mode + component = (COMPONENT) _container.getRoot().getComponent( + componentType); + } catch (ComponentNotFoundRuntimeException ignored) { + throw e; + } + _container = _container.getRoot(); // Change container. + return component; + } + } + + //========================================================================== + // ========= + // Destroy + // ======= + public void destroy() { + _container = null; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected String initUncap(String str) { + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setContainer(S2Container container) { + this._container = container; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheAbstractSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheBehaviorSelector.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheBehaviorSelector.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheBehaviorSelector.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,131 @@ +package jp.sf.pal.notepad.db.allcommon; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.bhv.BehaviorReadable; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.util.TraceViewUtil; + +/** + * The implementation of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheBehaviorSelector extends CacheAbstractSelector implements + BehaviorSelector { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(CacheBehaviorSelector.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The cache of behavior. (It's the generic hell!) */ + protected Map, BehaviorReadable> _behaviorCache = new LinkedHashMap, BehaviorReadable>(); + + //========================================================================== + // ========= + // Initialize + // ========== + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData() { + final Map dbmetaMap = DBMetaInstanceHandler + .getDBMetaMap(); + final Collection dbmetas = dbmetaMap.values(); + long before = 0; + if (_log.isInfoEnabled()) { + before = System.currentTimeMillis(); + _log + .info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()"); + } + for (DBMeta dbmeta : dbmetas) { + final BehaviorReadable bhv = byName(dbmeta.getTableDbName()); + final DaoReadable dao = bhv.getDaoReadable(); + dao.initializeDaoMetaData("selectList"); + } + if (_log.isInfoEnabled()) { + long after = System.currentTimeMillis(); + _log.info("Initialized Count: " + dbmetas.size()); + _log.info("= = = = = = = = = =/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + "]"); + } + } + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + synchronized (_behaviorCache) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + final BEHAVIOR bhv = (BEHAVIOR) getComponent(behaviorType); + _behaviorCache.put(behaviorType, bhv); + return bhv; + } + } + + /** + * Select behavior-readable by name. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getBehaviorType(dbmeta)); + } + + /** + * Get behavior-type by dbmeta. + * + * @param dbmeta Dbmeta. (NotNull) + * @return Behavior-type. (NotNull) + */ + protected Class getBehaviorType(DBMeta dbmeta) { + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + if (behaviorTypeName == null) { + String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class behaviorType; + try { + behaviorType = (Class) Class + .forName(behaviorTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + behaviorTypeName, e); + } + return behaviorType; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheBehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheDaoSelector.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheDaoSelector.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheDaoSelector.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,66 @@ +package jp.sf.pal.notepad.db.allcommon; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; + +/** + * The implementation of DAO-selector. + * + *
    + * Long long ago this object have cache of DAO and behavior.
    + * But the cache cause wrong performance when this is initialized.
    + * So now this object don't have cache.
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheDaoSelector extends CacheAbstractSelector implements + DaoSelector { + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return DAO. (NotNull) + */ + public DAO select(Class daoType) { + return (DAO) getComponent(daoType); + } + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getDaoType(dbmeta)); + } + + protected Class getDaoType(DBMeta dbmeta) { + final String daoTypeName = dbmeta.getDaoTypeName(); + if (daoTypeName == null) { + String msg = "The dbmeta.getDaoTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class daoType; + try { + daoType = (Class) Class.forName(daoTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + daoTypeName, e); + } + return daoType; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CacheDaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CallbackContext.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CallbackContext.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CallbackContext.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,75 @@ +package jp.sf.pal.notepad.db.allcommon; + +import jp.sf.pal.notepad.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DBFluteConfig.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DBFluteConfig.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DBFluteConfig.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,314 @@ +package jp.sf.pal.notepad.db.allcommon; + +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; + +/** + * @author DBFlute(AutoGenerator) + */ +public class DBFluteConfig { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(DBFluteConfig.class); + + /** Singleton instance. */ + private static final DBFluteConfig _instance = new DBFluteConfig(); + + //========================================================================== + // ========= + // Attribute + // ========= + protected StatementConfig _defaultStatementConfig; + + protected boolean _conditionBeanFormatSql = true;// This is for + + // compatibility! + + protected boolean _queryLogLevelInfo; + + protected boolean _executeStatusLogLevelInfo; + + protected boolean _useSqlLogRegistry; + + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; + + protected boolean _sqlExceptionOldStyleHandling = false;// This is for + + // compatibility! + + protected String _logDateFormat; + + protected String _logTimestampFormat; + + protected String _outsideSqlPackage; + + protected boolean _internalDebug; + + protected boolean _locked = true; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + private DBFluteConfig() { + } + + //========================================================================== + // ========= + // Singleton + // ========= + /** + * Get instance. + * + * @return Singleton instance. (NotNull) + */ + public static DBFluteConfig getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Default Statement Config + // ======================== + public StatementConfig getDefaultStatementConfig() { + return _defaultStatementConfig; + } + + public void setDefaultStatementConfig(StatementConfig defaultStatementConfig) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting defaultStatementConfig: " + + defaultStatementConfig); + } + _defaultStatementConfig = defaultStatementConfig; + } + + //========================================================================== + // ========= + // ConditionBean Format Sql + // ======================== + public boolean isConditionBeanFormatSql() { + return _conditionBeanFormatSql; + } + + /** + * @param conditionBeanFormatSql The value of the config. + * @deprecated This is for compatibility! + */ + public void setConditionBeanFormatSql(boolean conditionBeanFormatSql) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting conditionBeanFormatSql: " + + conditionBeanFormatSql); + } + _conditionBeanFormatSql = conditionBeanFormatSql; + } + + //========================================================================== + // ========= + // Query Log Level Info + // ==================== + public boolean isQueryLogLevelInfo() { + return _queryLogLevelInfo; + } + + public void setQueryLogLevelInfo(boolean queryLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting queryLogLevelInfo: " + queryLogLevelInfo); + } + _queryLogLevelInfo = queryLogLevelInfo; + } + + //========================================================================== + // ========= + // Execute Status Log Level Info + // ============================= + public boolean isExecuteStatusLogLevelInfo() { + return _executeStatusLogLevelInfo; + } + + public void setExecuteStatusLogLevelInfo(boolean executeStatusLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting executeStatusLogLevelInfo: " + + executeStatusLogLevelInfo); + } + _executeStatusLogLevelInfo = executeStatusLogLevelInfo; + } + + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return _uniqueConstraintDeterminator; + } + + public void setUniqueConstraintDeterminator( + UniqueConstraintDeterminator uniqueConstraintDeterminator) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting uniqueConstraintDeterminator: " + + uniqueConstraintDeterminator); + } + _uniqueConstraintDeterminator = uniqueConstraintDeterminator; + } + + public static interface UniqueConstraintDeterminator { + public boolean isUniqueConstraintException(Throwable t); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // SQL Exception Old Style + // ======================= + public boolean isSqlExceptionOldStyleHandling() { + return _sqlExceptionOldStyleHandling; + } + + /** + * @param sqlExceptionOldStyleHandling The value of the config. + * @deprecated This is for compatibility! + */ + public void setSqlExceptionOldStyleHandling( + boolean sqlExceptionOldStyleHandling) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting sqlExceptionOldStyleHandling: " + + sqlExceptionOldStyleHandling); + } + _sqlExceptionOldStyleHandling = sqlExceptionOldStyleHandling; + } + + //========================================================================== + // ========= + // Log Format + // ========== + public String getLogDateFormat() { + return _logDateFormat; + } + + public void setLogDateFormat(String logDateFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logDateFormat: " + logDateFormat); + } + _logDateFormat = logDateFormat; + } + + public String getLogTimestampFormat() { + return _logTimestampFormat; + } + + public void setLogTimestampFormat(String logTimestampFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logTimestampFormat: " + logTimestampFormat); + } + _logTimestampFormat = logTimestampFormat; + } + + //========================================================================== + // ========= + // OutsideSql Package + // ================== + public String getOutsideSqlPackage() { + return _outsideSqlPackage; + } + + public void setOutsideSqlPackage(String outsideSqlPackage) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting outsideSqlPackage: " + outsideSqlPackage); + } + _outsideSqlPackage = outsideSqlPackage; + } + + //========================================================================== + // ========= + // Internal Debug + // ============== + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(boolean internalDebug) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting internalDebug: " + internalDebug); + } + _internalDebug = internalDebug; + } + + //========================================================================== + // ========= + // Config Lock + // =========== + public boolean isLocked() { + return _locked; + } + + public void lock() { + if (_log.isInfoEnabled()) { + _log.info("...Locking the config of dbflute!"); + } + _locked = true; + } + + public void unlock() { + if (_log.isInfoEnabled()) { + _log.info("...Unlocking the config of dbflute!"); + } + _locked = false; + } + + protected void assertNotLocked() { + if (!isLocked()) { + return; + } + String msg = "The config of dbflute is locked! Don't access at this timing!"; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Config Clear + // ============ + public void clear() { // the only properties that update OK while executing + _defaultStatementConfig = null; + _conditionBeanFormatSql = true; // as default + _queryLogLevelInfo = false; + _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; + _logDateFormat = null; + _logTimestampFormat = null; + _internalDebug = false; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DBFluteConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoReadable.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoReadable.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoReadable.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +package jp.sf.pal.notepad.db.allcommon; + +/** + * The interface of dao-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoReadable { + public void initializeDaoMetaData(String methodName);// Very Internal + // Method! +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoSelector.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoSelector.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoSelector.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,26 @@ +package jp.sf.pal.notepad.db.allcommon; + +/** + * The interface of DAO-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoSelector { + + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return Dao. (NotNull) + */ + public DAO select(Class daoType); + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoWritable.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoWritable.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoWritable.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,70 @@ +package jp.sf.pal.notepad.db.allcommon; + +import java.util.List; + +/** + * The interface of dao-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoWritable extends DaoReadable { + + /** + * Insert one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Inserted count. + */ + public int create(Entity entity); + + /** + * Update one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modify(Entity entity); + + /** + * Update one entity that the type is entity-interface. (modified only) + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modifyModifiedOnly(Entity entity); + + /** + * Delete one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Deleted count. + */ + public int remove(Entity entity); + + /** + * Insert several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of inserted count. + */ + public int[] createList(List entityList); + + /** + * Update several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of updated count. + */ + public int[] modifyList(List entityList); + + /** + * Delete several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of deleted count. + */ + public int[] removeList(List entityList); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/DaoWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/Entity.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/Entity.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/Entity.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,126 @@ +package jp.sf.pal.notepad.db.allcommon; + +import java.util.LinkedHashSet; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of entity. + * + * @author DBFlute(AutoGenerator) + */ +public interface Entity { + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get the instance of target dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB name. + * + * @return Table DB name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property name. + * + * @return Table property name. (NotNull) + */ + public String getTablePropertyName(); + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has the value of primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKeyValue(); + + //========================================================================== + // ========= + // Modified Properties + // =================== + /** + * Get modified property names. (JavaBeansRule) + * + * @return Modified property names. (NotNull) + */ + public Set getModifiedPropertyNames(); + + /** + * Clear modified property names. + */ + public void clearModifiedPropertyNames(); + + /** + * Entity modified properties. + */ + public static class EntityModifiedProperties implements + java.io.Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Set of properties. */ + protected Set _propertiesSet = new LinkedHashSet(); + + /** + * Add property name. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void addPropertyName(String propertyName) { + _propertiesSet.add(propertyName); + } + + /** + * Get the set of properties. + * + * @return The set of properties. (NotNull) + */ + public Set getPropertyNames() { + return _propertiesSet; + } + + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _propertiesSet.isEmpty(); + } + + /** + * Clear the set of properties. + */ + public void clear() { + _propertiesSet.clear(); + } + + /** + * Remove property name from the set. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void remove(String propertyName) { + _propertiesSet.remove(propertyName); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/Entity.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/EntityDefinedCommonColumn.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/EntityDefinedCommonColumn.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/EntityDefinedCommonColumn.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon; + +/** + * The interface of entity defined common column. + * + * @author DBFlute(AutoGenerator) + */ +public interface EntityDefinedCommonColumn extends Entity { + + /** + * Disable common column auto set up. + */ + public void disableCommonColumnAutoSetup(); + + /** + * Can the entity set up common column by auto? + * + * @return Determination. + */ + public boolean canCommonColumnAutoSetup(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/EntityDefinedCommonColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/GenMetaData.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/GenMetaData.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/GenMetaData.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,258 @@ +package jp.sf.pal.notepad.db.allcommon; + +/** + * The sigleton class that has generate-meta-data(GenMetaData). + * + * @author DBFlute(AutoGenerator) + */ +public class GenMetaData { + + /** Singleton instance. */ + private static final GenMetaData _instance = new GenMetaData(); + + /** + * Constructor. + */ + private GenMetaData() { + } + + /** + * Get instance. + * + * @return Singleton instance. + */ + public static GenMetaData getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Basic + // ===== + /** + * Get the property-value of targetLanguage. + * + * @return The property-value. + */ + public String getTargetLanguage() { + return "java"; + } + + /** + * Get the property-value of templateFileExtension. + * + * @return The property-value. + */ + public String getTemplateFileExtension() { + return "vm"; + } + + /** + * Get the property-value of classFileExtension. + * + * @return The property-value. + */ + public String getClassFileExtension() { + return "java"; + } + + /** + * Get the property-value of templateFileEncoding. + * + * @return The property-value. + */ + public String getTemplateEncoding() { + return "UTF-8"; + } + + /** + * Get the property-value of classAuthor. + * + * @return The property-value. + */ + public String getClassAuthor() { + return "DBFlute(AutoGenerator)"; + } + + //========================================================================== + // ========= + // Naming + // ====== + /** + * Is java name of table same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfTableSameAsDbName() { + return false; + } + + /** + * Is java name of column same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfColumnSameAsDbName() { + return false; + } + + //========================================================================== + // ========= + // Prefix + // ====== + /** + * Get the property-value of projectPrefix. + * + * @return The property-value. + */ + public String getProjectPrefix() { + return ""; + } + + /** + * Get the property-value of basePrefix. + * + * @return The property-value. + */ + public String getBasePrefix() { + return "Bs"; + } + + //========================================================================== + // ========= + // Package + // ======= + /** + * Get the property-value of baseCommonPackage. + * + * @return The property-value. + */ + public String getBaseCommonPackage() { + return "jp.sf.pal.notepad.db.allcommon"; + } + + /** + * Get the property-value of baseBehaviorPackage. + * + * @return The property-value. + */ + public String getBaseBehaviorPackage() { + return "jp.sf.pal.notepad.db.bsbhv"; + } + + /** + * Get the property-value of baseDaoPackage. + * + * @return The property-value. + */ + public String getBaseDaoPackage() { + return "jp.sf.pal.notepad.db.bsdao"; + } + + /** + * Get the property-value of baseEntityPackage. + * + * @return The property-value. + */ + public String getBaseEntityPackage() { + return "jp.sf.pal.notepad.db.bsentity"; + } + + /** + * Get the property-value of conditionBeanPackage. + * + * @return The property-value. + */ + public String getConditionBeanPackage() { + return "jp.sf.pal.notepad.db.cbean"; + } + + /** + * Get the property-value of extendedDaoPackage. + * + * @return The property-value. + */ + public String getExtendedDaoPackage() { + return "jp.sf.pal.notepad.db.exdao"; + } + + /** + * Get the property-value of extendedBehaviorPackage. + * + * @return The property-value. + */ + public String getExtendedBehaviorPackage() { + return "jp.sf.pal.notepad.db.exbhv"; + } + + /** + * Get the property-value of extendedEntityPackage. + * + * @return The property-value. + */ + public String getExtendedEntityPackage() { + return "jp.sf.pal.notepad.db.exentity"; + } + + //========================================================================== + // ========= + // Optimistic Lock + // =============== + /** + * Get the property-value of updateDateFieldName. + * + * @return The property-value. + */ + public String getUpdateDateFieldName() { + return ""; + } + + /** + * Get the property-value of versionNoFieldName. + * + * @return The property-value. + */ + public String getVersionNoFieldName() { + return ""; + } + + //========================================================================== + // ========= + // Extract + // ======= + /** + * Get the value of 'extractAcceptStartBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptStartBrace() { + return "@{"; + } + + /** + * Get the value of 'extractAcceptEndBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEndBrace() { + return "@}"; + } + + /** + * Get the value of 'extractAcceptDelimiter'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptDelimiter() { + return "@;"; + } + + /** + * Get the value of 'extractAcceptEqual'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEqual() { + return "@="; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/GenMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/InternalMapContext.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/InternalMapContext.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/InternalMapContext.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,64 @@ +package jp.sf.pal.notepad.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of internal map. + * + * @author DBFlute(AutoGenerator) + */ +public class InternalMapContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal> threadLocal = new ThreadLocal>(); + + protected static void initialize() { + if (threadLocal.get() != null) { + return; + } + threadLocal.set(new HashMap()); + } + + /** + * Get the value of the object by the key. + * + * @param key The key of the object. (NotNull) + * @return The value of the object. (Nullable) + */ + public static Object getObject(String key) { + initialize(); + return threadLocal.get().get(key); + } + + /** + * Set the value of the object. + * + * @param key The key of the object. (NotNull) + * @param value The value of the object. (Nullable) + */ + public static void setObject(String key, Object value) { + initialize(); + threadLocal.get().put(key, value); + } + + /** + * Is existing internal-map-context on thread? + * + * @return Determination. + */ + public static boolean isExistInternalMapContextOnThread() { + return (threadLocal.get() != null); + } + + /** + * Clear internal-map-context on thread. + */ + public static void clearInternalMapContextOnThread() { + threadLocal.set(null); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/InternalMapContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/QLog.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/QLog.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/QLog.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,39 @@ +package jp.sf.pal.notepad.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class QLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(QLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String sql) {// Very Internal + if (isQueryLogLevelInfo()) { + _log.info(sql); + } else { + _log.debug(sql); + } + } + + public static boolean isLogEnabled() { + if (isQueryLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isQueryLogLevelInfo() { + return DBFluteConfig.getInstance().isQueryLogLevelInfo(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/QLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/XLog.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/XLog.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/XLog.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,39 @@ +package jp.sf.pal.notepad.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class XLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(XLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String msg) {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + _log.info(msg); + } else { + _log.debug(msg); + } + } + + public static boolean isLogEnabled() {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isExecuteStatusLogLevelInfo() { + return DBFluteConfig.getInstance().isExecuteStatusLogLevelInfo(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/XLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/annotation/OutsideSql.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/annotation/OutsideSql.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/annotation/OutsideSql.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,18 @@ +package jp.sf.pal.notepad.db.allcommon.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + ¡÷ Inherited + ¡÷ Retention(RetentionPolicy.RUNTIME) + ¡÷ Target(ElementType.METHOD) +public @interface OutsideSql { + boolean dynamicBinding() default false; + + boolean offsetByCursor() default false; + + boolean limitByCursor() default false; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/annotation/OutsideSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorReadable.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,973 @@ +package jp.sf.pal.notepad.db.allcommon.bhv; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.BehaviorSelector; +import jp.sf.pal.notepad.db.allcommon.DaoSelector; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.batch.TokenFileOutputOption; +import jp.sf.pal.notepad.db.allcommon.bhv.batch.TokenFileOutputResult; +import jp.sf.pal.notepad.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelBox; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.executor.OutsideSqlBasicExecutor; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBehaviorReadable implements BehaviorReadable { + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * Behavior-selector instance. It's basically referred at loadReferrer. + * (Required for loadReferrer) + */ + protected BehaviorSelector _behaviorSelector; + + /** + * Dao-selector instance. It's basically referred at loadReferrer. (Required + * for OutsideSql) + */ + protected DaoSelector _daoSelector; + + //========================================================================== + // =========== + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll() { + return callGetCountAll(); + } + + //========================================================================== + // =========== + // Count Read + // ========== + /** + * The implementation. + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return callReadCount(cb); + } + + //========================================================================== + // =========== + // Entity Read + // =========== + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + //========================================================================== + // =========== + // Entity Read Internal Helper + // =========================== + protected ENTITY helpSelectEntityInternally( + CB cb, InternalSelectEntityCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.notepad.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityCallback { + public List callbackSelectList(CB cb); + } + + protected ENTITY helpSelectEntityWithDeletedCheckInternally( + CB cb, + InternalSelectEntityWithDeletedCheckCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.notepad.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityWithDeletedCheckCallback { + public List callbackSelectList(CB cb); + } + + //========================================================================== + // =========== + // List Read + // ========= + /** + * The implementation. + * + * @param cb Condition-bean. + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, callReadList(cb)); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return readCount(cb); + } + + public List paging() { + return readList(cb); + } + }; + return invoker.invokePaging(handler); + } + + /** + * Assert that the entity is not deleted. + * + * @param entity Selected entity. (Nullable) + * @param searchKey4Log Search-key for Logging. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + protected void assertEntityNotDeleted( + jp.sf.pal.notepad.db.allcommon.Entity entity, Object searchKey4Log) { + if (entity == null) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is not deleted. + * + * @param ls Selected list. (Nullable) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + */ + protected void assertEntityNotDeleted(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is selected as one. + * + * @param ls Selected list. (NotNull) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + */ + protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", searchKey4Log, null); + } + } + + private void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + private void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Various Select + // ============== + public OutsideSqlBasicExecutor outsideSql() { + assertDaoSelectorNotNull("outsideSql"); + final OutsideSqlDao outsideSqlDao = _daoSelector + .select(OutsideSqlDao.class); + return new OutsideSqlBasicExecutor(outsideSqlDao, getTableDbName()); + } + + private void assertDaoSelectorNotNull(String methodName) { + if (_daoSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of dao as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Create value-label list. + * + * @param The type of entity. + * @param entityList The list of entity. (NotNull) + * @param valueLabelSetupper Value-label-setupper. (NotNull) + * @return Value-label list. (NotNull) + */ + public List> createValueLabelList( + List entityList, + ValueLabelSetupper valueLabelSetupper) { + final List> valueLabelList = new ArrayList>(); + final ValueLabelBox box = new ValueLabelBox(); + for (ENTITY entity : entityList) { + final Map valueLabel = new HashMap(); + valueLabelSetupper.setup(box, entity); + valueLabel.put("value", box.getValue()); + valueLabel.put("label", box.getLabel()); + valueLabelList.add(valueLabel); + } + return valueLabelList; + } + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal() { + try { + final Method method = getClass().getMethod("selectNextVal", + new Class[] {}); + Object sequenceObject = method.invoke(this, new Object[] {}); + if (sequenceObject instanceof java.math.BigDecimal) { + return (java.math.BigDecimal) sequenceObject; + } + return (java.math.BigDecimal) helpConvertingSequenceObject( + java.math.BigDecimal.class, sequenceObject); + } catch (NoSuchMethodException e) { + throw new RuntimeException("The table does not have sequence: " + + getTableDbName(), e); + } catch (Exception e) { + throw new RuntimeException( + "The selectNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + } + + protected Object helpConvertingSequenceObject(Class resultClass, + Object sequenceObject) { + try { + final Constructor constructor = resultClass + .getConstructor(new Class[] { String.class }); + return constructor.newInstance(new Object[] { sequenceObject + .toString() }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + try { + final Method method = resultClass.getMethod("valueOf", + new Class[] { long.class }); + return method.invoke(null, new Object[] { Long + .valueOf(sequenceObject.toString()) }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + String msg = "Cannot convert sequenceObject to resultClass:"; + msg = msg + " resultClass=" + resultClass + " sequenceObjectType=" + + sequenceObject.getClass(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Load Referrer Internal Helper + // ============================= + /** + * Help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void helpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, + callback); + } + + /** + * Do help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void doHelpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + + // - - - - - - - - - - - + // Assert pre-condition + // - - - - - - - - - - - + assertBehaviorSelectorNotNull("loadReferrer"); + assertObjectNotNull("localEntityList", localEntityList); + assertObjectNotNull("loadReferrerOption", loadReferrerOption); + if (localEntityList.isEmpty()) { + return; + } + + // - - - - - - - - - - - - - - + // Prepare temporary container + // - - - - - - - - - - - - - - + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK primaryKeyValue = callback + .callbackBase_getPrimaryKeyValue(localEntity); + pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); + } + + // - - - - - - - - - - - - - - - - + // Prepare referrer condition bean + // - - - - - - - - - - - - - - - - + final REFERRER_CB cb; + if (loadReferrerOption.getReferrerConditionBean() != null) { + cb = loadReferrerOption.getReferrerConditionBean(); + } else { + cb = callback.callbackReferrer_newMyConditionBean(); + } + + // - - - - - - - - - - - - - - + // Select the list of referrer + // - - - - - - - - - - - - - - + callback.callbackReferrer_queryForeignKeyInScope(cb, pkList); + loadReferrerOption + .delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb); + if (!loadReferrerOption.isStopOrderByKey()) { + callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb); + cb.getSqlComponentOfOrderByClause() + .exchangeFirstOrderByElementForLastOne(); + } + loadReferrerOption.delegateConditionBeanSettingUp(cb); + final List referrerList = callback + .callbackReferrer_selectList(cb); + loadReferrerOption.delegateEntitySettingUp(referrerList); + + // - - - - - - - - - - - - - - - - - - - - - - - - + // Create the map of {primary key / referrer list} + // - - - - - - - - - - - - - - - - - - - - - - - - + final Map> pkReferrerListMap = new LinkedHashMap>(); + for (REFERRER_ENTITY referrerEntity : referrerList) { + final PK referrerListKey; + { + final PK foreignKeyValue = callback + .callbackReferrer_getForeignKeyValue(referrerEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); + } + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); + } + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); + + // for Reverse Reference. + final LOCAL_ENTITY localEntity = pkLocalEntityMap + .get(referrerListKey); + callback.callbackReferrer_setForeignEntity(referrerEntity, + localEntity); + } + + // - - - - - - - - - - - - - - - - - - + // Relate referrer list to base entity + // - - - - - - - - - - - - - - - - - - + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK referrerListKey; + { + final PK primaryKey = callback + .callbackBase_getPrimaryKeyValue(localEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); + } + if (pkReferrerListMap.containsKey(referrerListKey)) { + callback.callbackBase_setReferrerList(localEntity, + pkReferrerListMap.get(referrerListKey)); + } else { + callback.callbackBase_setReferrerList(localEntity, + new ArrayList()); + } + } + } + + /** + * To lower case for primary key if the value is string. + * + * @param The type of primary key. + * @param value The value of primary key. (Nullable) + * @return The value of primary key. (Nullable) + */ + protected PK toLowerCasePrimaryKeyIfString(PK value) { + return (PK) toLowerCaseIfString(value); + } + + /** + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer conditionBean. + * @param The type of referrer entity. + */ + protected static interface InternalLoadReferrerCallback { + // For Base + public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity); + + public void callbackBase_setReferrerList(LOCAL_ENTITY entity, + List referrerList); + + // For Referrer + public REFERRER_CB callbackReferrer_newMyConditionBean(); + + public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, + List pkList); + + public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb); + + public List callbackReferrer_selectList(REFERRER_CB cb); + + public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity); + + public void callbackReferrer_setForeignEntity( + REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); + } + + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + + private void assertBehaviorSelectorNotNull(String methodName) { + if (_behaviorSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of behavior as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Pullout Internal Helper + // ======================= + protected List helpPulloutInternally( + List localEntityList, + InternalPulloutCallback callback) { + assertObjectNotNull("localEntityList", localEntityList); + final Set foreignSet = new LinkedHashSet(); + for (LOCAL_ENTITY entity : localEntityList) { + final FOREIGN_ENTITY foreignEntity = callback + .callbackGetForeignEntity(entity); + if (foreignEntity == null || foreignSet.contains(foreignEntity)) { + continue; + } + foreignSet.add(foreignEntity); + } + return new ArrayList(foreignSet); + } + + protected static interface InternalPulloutCallback { + public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity); + } + + //========================================================================== + // ========= + // Token File + // ========== + public TokenFileOutputExecutor tokenFileOutput() + throws java.io.FileNotFoundException, java.io.IOException { + return new TokenFileOutputExecutor(); + } + + public class TokenFileOutputExecutor { + /** + * Output token-file from this table records. + * + * @param cb Condition-bean. (NotNull) + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileOutputOption token-file-output-option. (NotNull and + * Required{delimiter and encoding}) + * @return Token-file-output-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileOutputResult outputTokenFile(ConditionBean cb, + String filename, TokenFileOutputOption tokenFileOutputOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertConditionBeanNotNull(cb); + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption); + + final List ls = readList(cb); + List> rowList = new ArrayList>(); + for (java.util.Iterator ite = ls.iterator(); ite.hasNext();) { + final Entity entity = (Entity) ite.next(); + final List valueList = getDBMeta() + .convertToColumnStringValueList(entity); + rowList.add(valueList); + } + final FileMakingSimpleFacade fileMakingSimpleFacade = new FileMakingSimpleFacadeImpl(); + final FileMakingOption fileMakingOption = tokenFileOutputOption + .getFileMakingOption(); + final FileMakingHeaderInfo fileMakingHeaderInfo = new FileMakingHeaderInfo(); + final List columnDbNameList = new ArrayList(); + for (final java.util.Iterator ite = getDBMeta().getColumnInfoList() + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + fileMakingHeaderInfo.setColumnNameList(columnDbNameList); + fileMakingOption.setFileMakingHeaderInfo(fileMakingHeaderInfo); + fileMakingSimpleFacade.makeFromRowList(filename, rowList, + fileMakingOption); + final TokenFileOutputResult tokeFileOutputResult = new TokenFileOutputResult(); + tokeFileOutputResult.setSelectedList(ls); + return tokeFileOutputResult; + } + } + + //========================================================================== + // ========= + // Delegate Method + // =============== + /** + * The implementation. + * + * @return All count. + */ + protected int callGetCountAll() { + return readCount(newConditionBean()); + } + + /** + * The implementation. + * + * @return All list. (NotNull) + */ + protected List callGetListAll() { + return readList(newConditionBean()); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read count. (NotNull) + */ + protected int callReadCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final java.lang.reflect.Method mtd = getMethod(getDaoReadable() + .getClass(), "selectCount", types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return ((Integer) result).intValue(); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read list. If the select result is zero, it returns empty list. + * (NotNull) + */ + protected List callReadList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return (List) result; + } + + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + private Object invoke(Method method, Object target, Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + protected abstract boolean hasVersionNoValue(Entity entity); + + protected abstract boolean hasUpdateDateValue(Entity entity); + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * To lower case if the type is String. + * + * @param obj Object. (Nullable) + * @return Lower object. (Nullable) + */ + protected Object toLowerCaseIfString(Object obj) { + if (obj != null && obj instanceof String) { + return ((String) obj).toLowerCase(); + } + return obj; + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected ENTITY helpDowncastInternally( + Entity entity, Class clazz) { + assertObjectNotNull("entity", entity); + assertObjectNotNull("clazz", clazz); + try { + return (ENTITY) entity; + } catch (ClassCastException e) { + String msg = "The entity should be " + clazz.getSimpleName() + + " but it was: " + entity.getClass(); + throw new RuntimeException(msg, e); + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNull(Entity entity) { + assertObjectNotNull("entity", entity); + } + + /** + * Assert that the condition-bean is not null. + * + * @param cb Condition-bean. (NotNull) + */ + protected void assertConditionBeanNotNull( + jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean cb) { + assertObjectNotNull("cb", cb); + } + + /** + * Assert that the entity has primary-key value. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNullAndHasPrimaryKeyValue(Entity entity) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + String msg = "The entity must should primary-key: entity=" + entity; + throw new IllegalArgumentException(msg + entity); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert List + // ----------- + /** + * Assert that the list is empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (!ls.isEmpty()) { + String msg = "The list should be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list is not empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndNotEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (ls.isEmpty()) { + String msg = "The list should not be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list having only one. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndHasOnlyOne(List ls) { + assertObjectNotNull("ls", ls); + if (ls.size() != 1) { + String msg = "The list should contain only one object: ls=" + + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the selector of behavior. + * + * @return The select of behavior. (Nullable: But normally NotNull) + */ + protected BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + /** + * Set the selector of behavior. + * + * @param behaviorSelector The selector of behavior. (NotNull) + */ + public void setBehaviorSelector(BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + /** + * Get the selector of DAO. + * + * @return The select of DAO. (Nullable: But normally NotNull) + */ + protected DaoSelector getDaoSelector() { + return _daoSelector; + } + + /** + * Set the selector of DAO. + * + * @param daoSelector The selector of DAO. (NotNull) + */ + public void setDaoSelector(DaoSelector daoSelector) { + _daoSelector = daoSelector; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorWritable.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorWritable.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,997 @@ +package jp.sf.pal.notepad.db.allcommon.bhv; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.batch.TokenFileReflectionFailure; +import jp.sf.pal.notepad.db.allcommon.bhv.batch.TokenFileReflectionOption; +import jp.sf.pal.notepad.db.allcommon.bhv.batch.TokenFileReflectionResult; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.notepad.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.impl.FileTokenImpl; + +/** + * The abstract class of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractBehaviorWritable extends AbstractBehaviorReadable + implements BehaviorWritable { + + //========================================================================== + // ========= + // Entity Update + // ============= + // ----------------------------------------------------- + // Create + // ------ + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(Entity entity) { + doCreate(entity); + } + + protected abstract void doCreate(Entity entity); + + // ----------------------------------------------------- + // Modify + // ------ + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(Entity entity) { + doModify(entity); + } + + protected abstract void doModify(Entity entity); + + /** + * Modify non strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity) { + doModifyNonstrict(entity); + } + + protected abstract void doModifyNonstrict(Entity entity); + + // ----------------------------------------------------- + // Create or Modify + // ---------------- + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.notepad.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdate(entity); + } + + protected abstract void doCreateOrUpdate(Entity entity); + + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.notepad.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdateNonstrict(entity); + } + + protected abstract void doCreateOrUpdateNonstrict(Entity entity); + + // ----------------------------------------------------- + // Remove + // ------ + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.notepad.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + callRemove(entity); + } + + protected abstract void doRemove(Entity entity); + + //========================================================================== + // ========= + // Entity Update Internal Helper + // ============================= + // ----------------------------------------------------- + // Update + // ------ + protected void helpUpdateInternally(ENTITY entity, + InternalUpdateCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int updatedCount = callback.callbackDelegateUpdate(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalUpdateCallback { + public int callbackDelegateUpdate(ENTITY entity); + } + + protected void helpUpdateNonstrictInternally( + ENTITY entity, InternalUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + final int updatedCount = callback + .callbackDelegateUpdateNonstrict(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + } + } + + protected static interface InternalUpdateNonstrictCallback { + public int callbackDelegateUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // InsertOrUpdate + // -------------- + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + RuntimeException exception = null; + try { + callback.callbackUpdate(entity); + } catch (jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException e) { + if (e.getRows() == 0) { + exception = e; + } + } catch (jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException e) { + exception = e; + } catch (OptimisticLockColumnValueNullException e) { + exception = e; + } + if (exception != null) { + final CB_TYPE cb = callback.callbackNewMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta() + .extractPrimaryKeyMapString(entity)); + if (callback.callbackSelectCount(cb) == 0) { + callback.callbackInsert(entity); + } else { + throw exception; + } + } + } + } + + protected static interface InternalInsertOrUpdateCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdate(ENTITY entity); + + public CB_TYPE callbackNewMyConditionBean(); + + public int callbackSelectCount(CB_TYPE cb); + } + + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + try { + callback.callbackUpdateNonstrict(entity); + } catch (jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException e) { + callback.callbackInsert(entity); + } catch (jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException e) { + callback.callbackInsert(entity); + } + } + } + + protected static interface InternalInsertOrUpdateNonstrictCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // Delete + // ------ + protected void helpDeleteInternally(ENTITY entity, + InternalDeleteCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int deletedCount = callback.callbackDelegateDelete(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteCallback { + public int callbackDelegateDelete(ENTITY entity); + } + + protected void helpDeleteNonstrictInternally( + ENTITY entity, InternalDeleteNonstrictCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + protected void helpDeleteNonstrictIgnoreDeletedInternally( + ENTITY entity, + InternalDeleteNonstrictIgnoreDeletedCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + return; + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + //========================================================================== + // ========= + // Lump Update + // =========== + /** + * Lump create the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callCreateList(entityList); + } + + /** + * Lump Modify the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpModify(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callModifyList(entityList); + } + + /** + * Lump remove the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpRemove(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callRemoveList(entityList); + } + + /** + * Inject sequence to primary key if it needs. + * + * @param entity Entity. (NotNull) + */ + protected void injectSequenceToPrimaryKeyIfNeeds(Entity entity) { + final DBMeta dbmeta = entity.getDBMeta(); + if (!dbmeta.hasSequence() || dbmeta.hasTwoOrMorePrimaryKeys() + || entity.hasPrimaryKeyValue()) { + return; + } + final java.math.BigDecimal sequenceValue = readNextVal(); + final String columnDbName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final java.util.Map map = new java.util.HashMap(); + map.put(columnDbName, sequenceValue.toString()); + dbmeta.acceptPrimaryKeyMap(entity, map); + } + + //========================================================================== + // =========== + // Token File + // ========== + public TokenFileReflectionExecutor tokenFileReflection() { + return new TokenFileReflectionExecutor(); + } + + public class TokenFileReflectionExecutor { + + /** + * Reflect(insert or update) token-file to this table. + * + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile(String filename, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(filename, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + /** + * Reflect(insert or update) token-file to this table. + * + * @param inputStream Input stream. (NotNull and NotClosed) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile( + java.io.InputStream inputStream, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(inputStream, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + protected void assertFileTokenReflectionOption( + TokenFileReflectionOption tokenFileReflectionOption) { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + } + + protected TokenFileReflectionResult buildTokenFileReflectionResult() { + final TokenFileReflectionResult result = new TokenFileReflectionResult(); + final java.util.List failureList = new java.util.ArrayList(); + result.setFailureList(failureList); + return result; + } + + protected FileTokenizingCallback buildFileTokenReflectionFileTokenizingCallback( + TokenFileReflectionOption tokenFileReflectionOption, + final TokenFileReflectionResult result) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + final boolean interruptIfError = tokenFileReflectionOption + .isInterruptIfError(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final java.util.List failureList = result + .getFailureList(); + assertObjectNotNull("failureList", failureList); + + final FileTokenizingCallback fileTokenizingCallback = new FileTokenizingCallback() { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource) { + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = fileTokenizingRowResource + .getFileTokenizingHeaderInfo(); + final java.util.List columnNameList = fileTokenizingHeaderInfo + .getColumnNameList(); + final java.util.List valueList = fileTokenizingRowResource + .getValueList(); + + // Set up columnNameList of result object. + if (result.getColumnNameList() == null) { + result.setColumnNameList(columnNameList); + } + + Entity entity = null; + try { + // Create entity by the list of value composed of + // String. + entity = createEntityByStringValueList(columnNameList, + valueList); + + // Create or modify as non-strict. + doCreateOrUpdateNonstrict(entity); + + // Increment successCount of result object. + result.incrementSuccessCount(); + } catch (RuntimeException e) { + if (interruptIfError) { + throw e; + } + final TokenFileReflectionFailure failure = new TokenFileReflectionFailure(); + failure.setColumnNameList(columnNameList); + failure.setValueList(valueList); + failure.setRowString(fileTokenizingRowResource + .getRowString()); + failure.setRowNumber(fileTokenizingRowResource + .getRowNumber()); + failure.setLineNumber(fileTokenizingRowResource + .getLineNumber()); + if (entity != null) { + failure.setEntity(entity); + } + failure.setException(e); + failureList.add(failure); + } + } + }; + return fileTokenizingCallback; + } + + protected Entity createEntityByStringValueList( + java.util.List columnNameList, + java.util.List valueList) { + final MapStringBuilder builder = new MapStringBuilderImpl(); + builder.setMsMapMark(MAP_STRING_MAP_MARK); + builder.setMsStartBrace(MAP_STRING_START_BRACE); + builder.setMsEndBrace(MAP_STRING_END_BRACE); + builder.setMsDelimiter(MAP_STRING_DELIMITER); + builder.setMsEqual(MAP_STRING_EQUAL); + builder.setColumnNameList(columnNameList); + final String mapString = builder.buildFromList(valueList); + + final Entity entity = getDBMeta().newEntity(); + getDBMeta().acceptColumnValueMapString(entity, mapString); + return entity; + } + + protected FileTokenizingOption buildFileTokenReflectionFileTokenizingOption( + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + final FileTokenizingOption fileTokenizingOption = new FileTokenizingOption(); + fileTokenizingOption.setEncoding(encoding); + fileTokenizingOption.setDelimiter(delimiter); + if (tokenFileReflectionOption.isHandleEmptyAsNull()) { + fileTokenizingOption.handleEmptyAsNull(); + } + return fileTokenizingOption; + } + } + + //========================================================================== + // =========== + // Delegate Method + // =============== + // ----------------------------------------------------- + // Insert + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Inserted count. + */ + protected int callCreate(Entity entity) { + if (!processBeforeInsert(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().create(entity); + } + + /** + * Process before insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeInsert(Entity entity) { + if (!determineExecuteInsert(entity)) { + return false; + } + assertEntityNotNull(entity);// If this table use identity, the entity + // does not have primary-key. + frameworkFilterEntityOfInsert(entity); + filterEntityOfInsert(entity); + assertEntityOfInsert(entity); + return true; + } + + // ----------------------------------------------------- + // Update + // ------ + /** + * The implementation. {modified only} + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Updated count. + */ + protected int callModify(Entity entity) { + if (!processBeforeUpdate(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().modifyModifiedOnly(entity); + } + + /** + * Process before update. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeUpdate(Entity entity) { + if (!determineExecuteUpdate(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfUpdate(entity); + filterEntityOfUpdate(entity); + assertEntityOfUpdate(entity); + return true; + } + + // ----------------------------------------------------- + // Delete + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Deleted count. + */ + protected int callRemove(Entity entity) { + if (!processBeforeDelete(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().remove(entity); + } + + /** + * Process before delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeDelete(Entity entity) { + if (!determineExecuteDelete(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfDelete(entity); + filterEntityOfDelete(entity); + assertEntityOfDelete(entity); + return true; + } + + // ----------------------------------------------------- + // Pre-Process Insert + // ------------------ + /** + * Determine execution of insert. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteInsert(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfInsert(Entity targetEntity) { + injectSequenceToPrimaryKeyIfNeeds(targetEntity); + setupCommonColumnOfInsertIfNeeds(targetEntity); + } + + /** + * Set up common columns of insert if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfInsertIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfInsert(Entity targetEntity) { + } + + /** + * Assert the entity of insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfInsert(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Update + // ------------------ + /** + * Determine execution of update. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteUpdate(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfUpdate(Entity targetEntity) { + setupCommonColumnOfUpdateIfNeeds(targetEntity); + } + + /** + * Set up common columns of update if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfUpdateIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfUpdate(Entity targetEntity) { + } + + /** + * Assert the entity of update. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfUpdate(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Delete + // ------------------ + /** + * Determine execution of delete. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteDelete(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfDelete(Entity targetEntity) { + } + + /** + * Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfDelete(Entity targetEntity) { + } + + /** + * Assert the entity of delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfDelete(Entity entity) { + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Inserted count. + */ + public int[] callCreateList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeInsertInternally(entityList); + return getDaoWritable().createList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Updated count. + */ + public int[] callModifyList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeUpdateInternally(entityList); + return getDaoWritable().modifyList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Deleted count. + */ + public int[] callRemoveList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeDeleteInternally(entityList); + return getDaoWritable().removeList(entityList); + } + + protected void assertEntityHasVersionNoValue(Entity entity) { + if (!getDBMeta().hasVersionNo()) { + return; + } + if (hasVersionNoValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'version no' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'version no' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'version no' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + protected void assertEntityHasUpdateDateValue(Entity entity) { + if (!getDBMeta().hasUpdateDate()) { + return; + } + if (hasUpdateDateValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'update date' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'update date' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'update date' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + public static class OptimisticLockColumnValueNullException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public OptimisticLockColumnValueNullException(String msg) { + super(msg); + } + } + + //========================================================================== + // ========= + // Delegate Method Internal Helper + // =============================== + protected List helpFilterBeforeInsertInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeInsert(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeUpdateInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeUpdate(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeDeleteInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeDelete(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/AbstractBehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorReadable.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorReadable.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorReadable.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,176 @@ +package jp.sf.pal.notepad.db.allcommon.bhv; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorReadable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table name + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Dao Accessor + // ============ + /** + * Get dao-readable. + * + * @return Dao-readable. (NotNull) + */ + public DaoReadable getDaoReadable(); + + //========================================================================== + // ========= + // New Instance + // ============ + /** + * New entity. + * + * @return Entity. (NotNull) + */ + public Entity newEntity(); + + /** + * New condition-bean. + * + * @return Condition-bean. (NotNull) + */ + public ConditionBean newConditionBean(); + + //========================================================================== + // ========= + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll(); + + //========================================================================== + // ========= + // Basic Read Count + // ================ + /** + * Read count by condition-bean. + * + *
    +     * If the argument 'condition-bean' is effective about fetch-scope,
    +     * this method invoke select count ignoring the fetch-scope.
    +     * 
    + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read Entity + // ================= + /** + * Read entity by condition-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb); + + /** + * Read simple entity by condition-bean with deleted check. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read List + // =============== + /** + * Read list as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb); + + /** + * Read page as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb); + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorWritable.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorWritable.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorWritable.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,149 @@ +package jp.sf.pal.notepad.db.allcommon.bhv; + +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; + +/** + * The interface of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorWritable extends BehaviorReadable { + + /** + * Get dao-writable. + * + * @return Dao-writable. (NotNull) + */ + public DaoWritable getDaoWritable(); + + //========================================================================== + // =========== + // Basic Entity Update + // =================== + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(jp.sf.pal.notepad.db.allcommon.Entity entity); + + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(jp.sf.pal.notepad.db.allcommon.Entity entity); + + /** + * Modify non-strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity); + + /** + * Create or modify.
    {modify: modified only}
    This method is + * faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.notepad.db.allcommon.Entity entity); + + /** + * Create or modify non-strict.
    {modify: modified only}
    This + * method is faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.notepad.db.allcommon.Entity entity); + + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.notepad.db.allcommon.Entity entity); + + //========================================================================== + // =========== + // Basic Batch Update + // ================== + /** + * Lump create the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList); + + /** + * Lump Modify the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpModify(java.util.List entityList); + + /** + * Lump remove the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpRemove(java.util.List entityList); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/BehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,90 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.batch; + +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileMakingOption _fileMakingOption = new FileMakingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileOutputOption delimitateByComma() { + _fileMakingOption.delimitateByComma(); + return this; + } + + public TokenFileOutputOption delimitateByTab() { + _fileMakingOption.delimitateByTab(); + return this; + } + + public TokenFileOutputOption encodeAsUTF8() { + _fileMakingOption.encodeAsUTF8(); + return this; + } + + public TokenFileOutputOption encodeAsWindows31J() { + _fileMakingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileOutputOption separateCrLf() { + _fileMakingOption.separateCrLf(); + return this; + } + + public TokenFileOutputOption separateLf() { + _fileMakingOption.separateLf(); + return this; + } + + public TokenFileOutputOption goodByeDoubleQuotation() { + _fileMakingOption.goodByeDoubleQuotation(); + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _fileMakingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileMakingOption.setDelimiter(encoding); + } + + public String getDelimiter() { + return _fileMakingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileMakingOption.setDelimiter(delimiter); + } + + public String getLineSeparator() { + return _fileMakingOption.getLineSeparator(); + } + + public void setLineSeparator(String lineSeparator) { + _fileMakingOption.setLineSeparator(lineSeparator); + } + + public boolean isGoodByeDoubleQuotation() { + return _fileMakingOption.isGoodByeDoubleQuotation(); + } + + public FileMakingOption getFileMakingOption() { + return _fileMakingOption; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputResult.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputResult.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputResult.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,27 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.batch; + +import jp.sf.pal.notepad.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _selectedList; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getSelectedList() { + return _selectedList; + } + + public void setSelectedList(java.util.List selectedList) { + _selectedList = selectedList; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileOutputResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionFailure.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionFailure.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionFailure.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,89 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.batch; + +import jp.sf.pal.notepad.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionFailure { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + protected Entity _entity; + + protected Exception _exception; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } + + public Entity getEntity() { + return _entity; + } + + public void setEntity(Entity value) { + _entity = value; + } + + public Exception getException() { + return _exception; + } + + public void setException(Exception value) { + _exception = value; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionFailure.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,79 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.batch; + +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _interruptIfError; + + protected FileTokenizingOption _fileTokenizingOption = new FileTokenizingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileReflectionOption delimitateByComma() { + _fileTokenizingOption.delimitateByComma(); + return this; + } + + public TokenFileReflectionOption delimitateByTab() { + _fileTokenizingOption.delimitateByTab(); + return this; + } + + public TokenFileReflectionOption encodeAsUTF8() { + _fileTokenizingOption.encodeAsUTF8(); + return this; + } + + public TokenFileReflectionOption encodeAsWindows31J() { + _fileTokenizingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileReflectionOption handleEmptyAsNull() { + _fileTokenizingOption.handleEmptyAsNull(); + return this; + } + + public TokenFileReflectionOption interruptIfError() { + _interruptIfError = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _fileTokenizingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileTokenizingOption.setDelimiter(delimiter); + } + + public String getEncoding() { + return _fileTokenizingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileTokenizingOption.setDelimiter(encoding); + } + + public boolean isHandleEmptyAsNull() { + return _fileTokenizingOption.isHandleEmptyAsNull(); + } + + public boolean isInterruptIfError() { + return _interruptIfError; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionResult.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionResult.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionResult.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,54 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.batch; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected int _successCount; + + protected java.util.List _failureList; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public void incrementSuccessCount() { + ++_successCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public int getSuccessCount() { + return _successCount; + } + + public void setSuccessCount(int successCount) { + _successCount = successCount; + } + + public java.util.List getFailureList() { + return _failureList; + } + + public void setFailureList( + java.util.List failureList) { + this._failureList = failureList; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/batch/TokenFileReflectionResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/load/LoadReferrerOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,146 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.load; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.EntityListSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; + +/** + * The class of load referrer option. + * + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @author DBFlute(AutoGenerator) + */ +public class LoadReferrerOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ConditionBeanSetupper _conditionBeanSetupper; + + protected EntityListSetupper _entityListSetupper; + + protected REFERRER_CONDITION_BEAN _referrerConditionBean; + + protected boolean _toLastKeyCondition; + + protected boolean _stopOrderByKey; + + //========================================================================== + // ========= + // Constructor + // =========== + public LoadReferrerOption() { + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper, + EntityListSetupper entityListSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + this._entityListSetupper = entityListSetupper; + } + + public LoadReferrerOption( + LoadReferrerOption option) { + this._conditionBeanSetupper = option._conditionBeanSetupper; + this._entityListSetupper = option._entityListSetupper; + this._referrerConditionBean = option._referrerConditionBean; + this._toLastKeyCondition = option._toLastKeyCondition; + this._stopOrderByKey = option._stopOrderByKey; + } + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + /** + * Specify that the key condition is added as last condition.
    This + * method is valid only after you use reffererConditionBean and add your + * original condition to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption toLastKeyCondition() { + _toLastKeyCondition = true; + return this; + } + + /** + * Specify that it stops adding order-by of the key.
    This method is + * valid only after you use reffererConditionBean and add your original + * order-by to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption stopOrderByKey() { + _stopOrderByKey = true; + return this; + } + + public void delegateKeyConditionExchangingFirstWhereClauseForLastOne( + REFERRER_CONDITION_BEAN cb) {// Internal + if (!_toLastKeyCondition) { + cb.getSqlClause().exchangeFirstWhereClauseForLastOne(); + } + } + + public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal + if (_conditionBeanSetupper != null) { + _conditionBeanSetupper.setup(cb); + } + } + + public void delegateEntitySettingUp(List entityList) {// Internal + if (_entityListSetupper != null) { + _entityListSetupper.setup(entityList); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ConditionBeanSetupper getConditionBeanSetupper() { + return _conditionBeanSetupper; + } + + public void setConditionBeanSetupper( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public EntityListSetupper getEntityListSetupper() { + return _entityListSetupper; + } + + public void setEntityListSetupper( + EntityListSetupper entityListSetupper) { + this._entityListSetupper = entityListSetupper; + } + + public REFERRER_CONDITION_BEAN getReferrerConditionBean() { + return _referrerConditionBean; + } + + public void setReferrerConditionBean( + REFERRER_CONDITION_BEAN referrerConditionBean) { + this._referrerConditionBean = referrerConditionBean; + } + + public boolean isToLastKeyCondition() { + return _toLastKeyCondition; + } + + public boolean isStopOrderByKey() { + return _stopOrderByKey; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/load/LoadReferrerOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ConditionBeanSetupper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ConditionBeanSetupper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ConditionBeanSetupper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.setup; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; + +/** + * The interface of condition-bean setupper. + * + * @param The type of condition-bean. + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBeanSetupper { + + /** + * Set up condition. + * + * @param cb Condition-bean. (NotNull) + */ + public void setup(CONDITION_BEAN cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ConditionBeanSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/EntityListSetupper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.setup; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.Entity; + +/** + * The interface of entity list setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface EntityListSetupper { + + /** + * Set up the list of entity. + * + * @param entityList The list of entity. (NotNull) + */ + public void setup(List entityList); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/EntityListSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelBox.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelBox.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelBox.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,26 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.setup; + +/** + * The class of Value-Label Box. + * + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelBox { + + protected Object _value; + + protected String _label; + + public void setValueLabel(Object value, String label) { + this._value = value; + this._label = label; + } + + public Object getValue() { + return _value; + } + + public String getLabel() { + return _label; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelBox.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelSetupper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelSetupper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelSetupper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,20 @@ +package jp.sf.pal.notepad.db.allcommon.bhv.setup; + +import jp.sf.pal.notepad.db.allcommon.Entity; + +/** + * The interface of Value-Label Setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface ValueLabelSetupper { + + /** + * Set up value-label. + * + * @param box Value-label box. (NotNull) + * @param entity Entity. (NotNull) + */ + public void setup(ValueLabelBox box, ENTITY entity); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/bhv/setup/ValueLabelSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1199 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.WhereClauseSimpleFilter; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.helper.MapListString; +import jp.sf.pal.notepad.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * The condition-bean as abstract. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionBean implements ConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause(this); + } + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check + // logics by these purpose types. + protected boolean _forDeriveReferrer; + + protected boolean _forUnion; + + protected boolean _forExistsSubQuery; + + protected boolean _forInScopeSubQuery; + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * The implementation. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Where Clause Filter + // =================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + this._sqlClause.addWhereClauseSimpleFilter(whereClauseSimpleFilter); + } + + //========================================================================== + // ========= + // ConditionQuery + // ============== + /** + * Get condition query as interface. At the future, change public to + * protected. + * + * @return Instance of query as interface. (NotNull) + */ + abstract public ConditionQuery getConditionQueryAsInterface(); + + /** + * The implementation. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ() { + return getConditionQueryAsInterface(); + } + + //========================================================================== + // ========= + // Accept PrimaryKey + // ================= + /** + * The implementation. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] must not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + acceptPrimaryKeyMap(mapListString.generateMap(primaryKeyMapString)); + } + + protected void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException("The value should not be null: " + + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + protected long parseDateStringAsMillis(Object value, String propertyName, + String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = (String) value; + if (valueString.indexOf("-") >= 0 + && valueString.indexOf("-") != valueString.lastIndexOf("-")) { + return java.sql.Timestamp.valueOf(valueString).getTime(); + } else { + return getParseDateFormat().parse((String) value).getTime(); + } + } catch (java.text.ParseException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } + } + + private java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateTimeInstance(); + } + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) {// Very Internal! + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table left outer join ... on ... + * [from-hint] where ...} + * + * @return from-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * The implementation. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * The implementation. + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective() { + return getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + // Do nothing! + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return _sqlClause.getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Limit Select + // ============ + /** Is limit-select PK only? */ + protected boolean _isLimitSelectPKOnly; + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly() { + return _isLimitSelectPKOnly; + } + + /** + * Limit select PK only. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly() { + _isLimitSelectPKOnly = true; + return this; + } + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off() { + _isLimitSelectPKOnly = false; + return this; + } + + //========================================================================== + // ========= + // Lock Setting + // ============ + /** + * The implementation. + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate() { + getSqlClause().lockForUpdate(); + return this; + } + + //========================================================================== + // ========= + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = true; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().ignoreIncludedSelectColumn(); + } + + getSqlClause().ignoreOrderBy(); + getSqlClause().ignoreFetchScope(); + return this; + } + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = false; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().makeIncludedSelectColumnEffective(); + } + + getSqlClause().makeOrderByEffective(); + getSqlClause().makeFetchScopeEffective(); + return this; + } + + /** Is set up various things for select-count-ignore-fetch-scope? */ + protected boolean _isSelectCountIgnoreFetchScope; + + /** + * Is set up various things for select-count-ignore-fetch-scope? This method + * is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope() { + return _isSelectCountIgnoreFetchScope; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected static abstract class AbstractSpecification { + protected ConditionBean _baseCB; + + protected SpQyCall _qyCall; + + protected CQ _query; + + protected boolean _forDeriveReferrer; + + protected boolean alreadySpecifyRequiredColumn; + + /** + * @param baseCB The condition-bean of base level. (NotNull) + * @param qyCall The callback for condition-query. (NotNull) + * @param forDeriveReferrer Is this for derive referrer? + */ + protected AbstractSpecification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + _baseCB = baseCB; + _qyCall = qyCall; + _forDeriveReferrer = forDeriveReferrer; + } + + protected void doColumn(String columnName) { + assertColumn(columnName); + if (_query == null) { + _query = _qyCall.qy(); + } + if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) { + alreadySpecifyRequiredColumn = true; + doSpecifyRequiredColumn(); + } + String relationPath = _query.getRelationPath() != null ? _query + .getRelationPath() : ""; + final String tableAliasName; + if (_query.isBaseQuery(_query)) { + tableAliasName = _baseCB.getSqlClause() + .getLocalTableAliasName(); + } else { + tableAliasName = _baseCB.getSqlClause().resolveJoinAliasName( + relationPath, _query.getNestLevel()); + } + _baseCB.getSqlClause().specifySelectColumn(tableAliasName, + columnName); + } + + protected void assertColumn(String columnName) { + if (_query == null && !_qyCall.has()) { + throwSpecifyColumnNotSetupSelectColumnException(columnName); + } + } + + protected void assertForeign(String foreignPropertyName) { + if (_forDeriveReferrer) { + throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); + } + } + + protected abstract void doSpecifyRequiredColumn(); + + protected abstract String getTableDbName(); + + protected void throwSpecifyColumnNotSetupSelectColumnException( + String columnName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You specified the column that had Not been Set up!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName(); // *No!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + " cb.setupSelect_MemberStatus(); // *Point!" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName();" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + + _baseCB.getClass().getName() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Column]" + getLineSeparator() + + getTableDbName() + "." + columnName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifyColumnNotSetupSelectColumnException(msg); + } + + protected void throwDeriveReferrerInvalidForeignSpecificationException( + String foreignPropertyName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "You specified a foreign table column in spite of derive-sub-query!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified a local table column at condition-bean for derive-sub-query." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Foreign Property]" + getLineSeparator() + + foreignPropertyName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidForeignSpecificationException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + protected static interface SpQyCall { + public boolean has(); + + public CQ qy(); + } + + public static class SpecifyColumnNotSetupSelectColumnException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifyColumnNotSetupSelectColumnException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerInvalidForeignSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidForeignSpecificationException(String msg) { + super(msg); + } + } + + public static class RAFunction { + protected ConditionBean _baseCB; + + protected LOCAL_CQ _localCQ; + + protected RAQSetupper _querySetupper; + + public RAFunction(ConditionBean baseCB, LOCAL_CQ localCQ, + RAQSetupper querySetupper) { + _baseCB = baseCB; + _localCQ = localCQ; + _querySetupper = querySetupper; + } + + public void max(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("max", subQuery, _localCQ, aliasName.trim()); + } + + public void min(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("min", subQuery, _localCQ, aliasName.trim()); + } + + public void sum(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("sum", subQuery, _localCQ, aliasName.trim()); + } + + public void avg(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("avg", subQuery, _localCQ, aliasName.trim()); + } + + public void count(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("count", subQuery, _localCQ, aliasName.trim()); + } + + protected void assertAliasName(String aliasName) { + if (aliasName == null || aliasName.trim().length() == 0) { + throwDeriveReferrerInvalidAliasNameException(); + } + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_baseCB + .getTableDbName()); + Method[] methods = dbmeta.getEntityType().getMethods(); + String targetMethodName = "set" + + replaceString(aliasName, "_", "").toLowerCase(); + boolean existsSetterMethod = false; + for (Method method : methods) { + if (!method.getName().startsWith("set")) { + continue; + } + if (targetMethodName.equals(method.getName().toLowerCase())) { + existsSetterMethod = true; + break; + } + } + if (!existsSetterMethod) { + throwDeriveReferrerEntityPropertyNotFoundException(aliasName, + dbmeta.getEntityType()); + } + } + + protected void throwDeriveReferrerInvalidAliasNameException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The alias name for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Local Table]" + getLineSeparator() + + _localCQ.getTableDbName() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidAliasNameException(msg); + } + + protected void throwDeriveReferrerEntityPropertyNotFoundException( + String aliasName, Class entityType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "A property for derive-referrer was Not Found in the entity!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should implement a property(setter and getter) in the entity." + + getLineSeparator(); + msg = msg + + "Or you should confirm whether the alias name has typo or not." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [ConditionBean Invoking]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Extended Entity]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " // At the entity of Purchase..." + + getLineSeparator(); + msg = msg + " protected Date _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " public Date getLatestPurchaseDatetime() {" + + getLineSeparator(); + msg = msg + " return _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + + getLineSeparator(); + msg = msg + + " _latestPurchaseDatetime = latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entityType + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerEntityPropertyNotFoundException(msg); + } + + protected String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + public static interface RAQSetupper { + public void setup(String function, SubQuery subQuery, + LOCAL_CQ cq, String aliasName); + } + + public static class DeriveReferrerInvalidAliasNameException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidAliasNameException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerEntityPropertyNotFoundException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerEntityPropertyNotFoundException(String msg) { + super(msg); + } + } + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected void doSetupSelect(SsCall callback) { + String foreignPropertyName = callback.qf().getForeignPropertyName(); + assertSetupSelectBeforeUnion(foreignPropertyName); + limitSelect_Off(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + String localRelationPath = localCQ().getRelationPath(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, localRelationPath); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + protected static interface SsCall { + public ConditionQuery qf(); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + protected void assertPrimaryKeyMap( + Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] must not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] must not be empty."; + throw new IllegalArgumentException(msg); + } + List columnInfoList = DBMetaInstanceHandler.findDBMeta( + getTableDbName()).getPrimaryUniqueInfo().getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnDbName = columnInfo.getColumnDbName(); + if (!primaryKeyMap.containsKey(columnDbName)) { + String msg = "The primaryKeyMap must have the value of " + + columnDbName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + } + + protected void assertSetupSelectBeforeUnion(String foreignPropertyName) { + if (hasUnionQueryOrUnionAllQuery()) { + throwSetupSelectAfterUnionException( + this.getClass().getSimpleName(), foreignPropertyName); + } + } + + protected void throwSetupSelectAfterUnionException(String className, + String foreignPropertyName) { + String methodName = "setupSelect_" + initCap(foreignPropertyName) + + "()"; + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You should NOT call " + methodName + + " after calling union()!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + methodName + " should be called before calling union()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " " + className + " cb = new " + className + "();" + + getLineSeparator(); + msg = msg + " cb." + methodName + "; // You shuold call here!" + + getLineSeparator(); + msg = msg + " cb.query().setXxx...;" + getLineSeparator(); + msg = msg + " cb.union(new UnionQuery<" + className + ">() {" + + getLineSeparator(); + msg = msg + " public void query(" + className + " unionCB) {" + + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " });" + getLineSeparator(); + msg = msg + + " // You should not call setupSelect after calling union()!" + + getLineSeparator(); + msg = msg + " // cb." + methodName + ";" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SetupSelect Method]" + getLineSeparator() + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean SQL]" + getLineSeparator() + toDisplaySql() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql() { + return ConditionBeanContext.convertConditionBean2DisplaySql(this); + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Purpose Type + // ============ + public void xsetupForDeriveReferrer() { + _forDeriveReferrer = true; + } + + public void xsetupForUnion() { + _forUnion = true; + } + + public void xsetupForExistsSubQuery() { + _forExistsSubQuery = true; + } + + public void xsetupForInScopeSubQuery() { + _forInScopeSubQuery = true; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * The override. + * + * @return SQL for display. (NotNull) + */ + public String toString() { + try { + return toDisplaySql(); + } catch (RuntimeException e) { + return getSqlClause().getClause(); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionQuery.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionQuery.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionQuery.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1666 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; +import jp.sf.pal.notepad.db.allcommon.util.TraceViewUtil; + +/** + * The abstract class of condition-query. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionQuery implements ConditionQuery { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final ConditionKey CK_EQ = ConditionKey.CK_EQUAL; + + protected static final ConditionKey CK_NE = ConditionKey.CK_NOT_EQUAL; + + protected static final ConditionKey CK_GE = ConditionKey.CK_GREATER_EQUAL; + + protected static final ConditionKey CK_GT = ConditionKey.CK_GREATER_THAN; + + protected static final ConditionKey CK_LE = ConditionKey.CK_LESS_EQUAL; + + protected static final ConditionKey CK_LT = ConditionKey.CK_LESS_THAN; + + protected static final ConditionKey CK_PS = ConditionKey.CK_PREFIX_SEARCH; + + protected static final ConditionKey CK_LS = ConditionKey.CK_LIKE_SEARCH; + + protected static final ConditionKey CK_INS = ConditionKey.CK_IN_SCOPE; + + protected static final ConditionKey CK_NINS = ConditionKey.CK_NOT_IN_SCOPE; + + protected static final ConditionKey CK_ISN = ConditionKey.CK_IS_NULL; + + protected static final ConditionKey CK_ISNN = ConditionKey.CK_IS_NOT_NULL; + + /** Condition value for DUMMY. */ + protected static final ConditionValue DUMMY_CONDITION_VALUE = new ConditionValue(); + + /** Object for DUMMY. */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** The property of condition-query. */ + protected static final String CQ_PROPERTY = "conditionQuery"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause. */ + protected final SqlClause _sqlClause; + + /** My alias name. */ + protected final String _aliasName; + + /** The level of nest. */ + protected final int _nestLevel; + + /** The level of subQuery. */ + protected int _subQueryLevel; + + // ----------------------------------------------------- + // Foreign Info + // ------------ + /** The property name of foreign. */ + protected String _foreignPropertyName; + + /** The path of relation. */ + protected String _relationPath; + + /** The query of child. */ + protected final ConditionQuery _childQuery; + + // ----------------------------------------------------- + // Inline + // ------ + /** Is it the inline for on-clause. (Property for Inline Only) */ + protected boolean _onClauseInline; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query. (Nullable: If null, this is base + * instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public AbstractConditionQuery(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + _childQuery = childQuery; + _sqlClause = sqlClause; + _aliasName = aliasName; + _nestLevel = nestLevel; + } + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery() { + return _childQuery; + } + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName() { + return _aliasName; + } + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel() { + return _nestLevel; + } + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel() { + return _nestLevel + 1; + } + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query) { + return (query.getChildQuery() == null); + } + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel() { + return _subQueryLevel; + } + + // ----------------------------------------------------- + // Real Name + // --------- + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. + */ + public String getRealAliasName() { + return getAliasName(); + } + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. This should not contain + * comma. (NotNull) + * @return Real column name. + */ + public String getRealColumnName(String columnName) { + assertColumnName(columnName); + return buildRealColumnName(getRealAliasName(), columnName); + } + + /** + * Build real column name. + * + * @param aliasName Alias name. (NotNull) + * @param columnName Column name. (NotNull) + * @return Real column name. (NotNull) + */ + protected String buildRealColumnName(String aliasName, String columnName) { + return aliasName + "." + columnName; + } + + // ----------------------------------------------------- + // Foreign Info + // ------------ + public String getForeignPropertyName() { + return _foreignPropertyName; + } + + public void xsetForeignPropertyName(String foreignPropertyName) { + this._foreignPropertyName = foreignPropertyName; + } + + public String getRelationPath() { + return _relationPath; + } + + public void xsetRelationPath(String relationPath) { + this._relationPath = relationPath; + } + + // ----------------------------------------------------- + // Inline + // ------ + public void xsetOnClauseInline(boolean onClauseInline) { + _onClauseInline = onClauseInline; + } + + //========================================================================== + // ========= + // Location + // ======== + /** + * Get location. + * + * @param columnPropertyName Column property name. + * @param key Condition key. + * @return Next nest level. + */ + protected String getLocation(String columnPropertyName, ConditionKey key) { + return getLocationBase(columnPropertyName) + "." + + key.getConditionKey(); + } + + protected String getLocationBase() { + final StringBuffer sb = new StringBuffer(); + ConditionQuery query = this; + while (true) { + if (query.isBaseQuery(query)) { + sb.insert(0, CQ_PROPERTY + "."); + break; + } else { + final String foreignPropertyName = query + .getForeignPropertyName(); + if (foreignPropertyName == null) { + String msg = "The foreignPropertyName of the query should not be null:"; + msg = msg + " query=" + query; + throw new IllegalStateException(msg); + } + sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + "."); + } + query = query.getChildQuery(); + } + return sb.toString(); + } + + protected String getLocationBase(String columnPropertyName) { + return getLocationBase() + columnPropertyName; + } + + //========================================================================== + // ========= + // Union Query + // =========== + /** The map of union query. */ + protected Map _unionQueryMap; + + /** + * Get the map of union query. + * + * @return The map of union query. (NotNull) + */ + public Map getUnionQueryMap() {// for Internal + if (_unionQueryMap == null) { + _unionQueryMap = new LinkedHashMap(); + } + return _unionQueryMap; + } + + /** + * Set union query. {Internal} + * + * @param unionQuery Union query. (NotNull) + */ + public void xsetUnionQuery(ConditionQuery unionQuery) { + xsetupUnion(unionQuery, false, getUnionQueryMap()); + } + + /** The map of union all query. */ + protected Map _unionAllQueryMap; + + /** + * Get the map of union all query. + * + * @return The map of union all query. (NotNull) + */ + public Map getUnionAllQueryMap() {// for Internal + if (_unionAllQueryMap == null) { + _unionAllQueryMap = new LinkedHashMap(); + } + return _unionAllQueryMap; + } + + /** + * Set union all query. {Internal} + * + * @param unionAllQuery Union all query. (NotNull) + */ + public void xsetUnionAllQuery(ConditionQuery unionAllQuery) { + xsetupUnion(unionAllQuery, true, getUnionAllQueryMap()); + } + + protected void xsetupUnion(ConditionQuery unionQuery, boolean unionAll, + Map unionQueryMap) { + if (unionQuery == null) { + String msg = "The argument[unionQuery] should not be null."; + throw new IllegalArgumentException(msg); + } + reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation! + getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect + // IncludedSelectColumn + // ! + if (getSqlClause().isFormatClauseEffective()) { + unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect + // FormatClause + // ! + } + String key = (unionAll ? "unionAllQuery" : "unionQuery") + + unionQueryMap.size(); + unionQueryMap.put(key, unionQuery); + registerUnionQuery(unionQuery, unionAll, (unionAll ? "unionAllQueryMap" + : "unionQueryMap") + + "." + key); + } + + /** + * Reflect relation on union query. + * + * @param baseQueryAsSuper Base query as super. (NotNull) + * @param unionQueryAsSuper Union query as super. (NotNull) + */ + abstract protected void reflectRelationOnUnionQuery( + ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper); + + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery() { + return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) + || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty()); + } + + /** + * Get the list of union query. + * + * @return The list of union query. (NotNull) + */ + public List getUnionQueryList() { + if (_unionQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionQueryMap.values()); + } + + /** + * Get the list of union all query. + * + * @return The list of union all query. (NotNull) + */ + public List getUnionAllQueryList() { + if (_unionAllQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionAllQueryMap.values()); + } + + //========================================================================== + // ========= + // Register + // ======== + // ----------------------------------------------------- + // Include-As-Mine + // --------------- + /** + * Register included-select-column. + * + * @param aliasName Alias name. This should not contain comma. (NotNull) + * @param realColumnName Real column name. This should not contain comma. + * (NotNull) + * @deprecated Unsupported! + */ + protected void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + throw new UnsupportedOperationException(); + } + + // ----------------------------------------------------- + // Query + // ----- + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName); + } + } + + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + + // ----------------------------------------------------- + // FromTo Query + // ------------ + protected void registerFromToQuery(java.util.Date fromDate, + java.util.Date toDate, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, FromToOption option) { + { + final java.util.Date filteredFromDate = option + .filterFromDate(fromDate); + final ConditionKey fromKey = option.getFromDateConditionKey(); + if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(fromKey, + filteredFromDate, cvalue, colName, capPropName, + uncapPropName); + } + } + { + final java.util.Date filteredToDate = option.filterToDate(toDate); + final ConditionKey toKey = option.getToDateConditionKey(); + if (toKey.isValidRegistration(cvalue, filteredToDate, toKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(toKey, + filteredToDate, cvalue, colName, capPropName, + uncapPropName); + } + } + } + + // ----------------------------------------------------- + // LikeSearch Query + // ---------------- + @SuppressWarnings("deprecation") + protected void registerLikeSearchQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, LikeSearchOption option) { + final String validationMsg = key.getConditionKey() + " of " + + getRealAliasName() + "." + colName; + if (!key.isValidRegistration(cvalue, value, validationMsg)) { + return; + } + if (option == null) { + throwLikeSearchOptionNotFoundException(capPropName, value); + return;// Unreachable! + } + if (value == null || !option.isSplit()) { + // As Normal Condition. + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + return; + } + // - - - - - - - - - + // Use splitByXxx(). + // - - - - - - - - - + final String[] strArray = option.generateSplitValueArray(value); + if (!option.isAsOrSplit()) { + // As 'and' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + setupConditionValueAndRegisterWhereClause(key, currentValue, + cvalue, colName, capPropName, uncapPropName, option); + + // Callback for LikeAsOr! + final List callbackList = option + .getLikeAsOrCallbackList(); + if (!callbackList.isEmpty()) { + getSqlClause().makeAdditionalConditionAsOrEffective(); + for (Iterator ite = callbackList + .iterator(); ite.hasNext();) { + final LikeSearchOption.LikeAsOrCallback likeAsOrCallback = (LikeSearchOption.LikeAsOrCallback) ite + .next(); + final String additionalTargetPropertyName = likeAsOrCallback + .getAdditionalTargetPropertyName(); + final String filteredValue = likeAsOrCallback + .filterValue(currentValue); + final LikeSearchOption optionDeepCopy = (LikeSearchOption) option + .createDeepCopy(); + optionDeepCopy.clearLikeAsOrCallback(); + final LikeSearchOption filteredOption = likeAsOrCallback + .filterOption(optionDeepCopy); + invokeSetterLikeSearch(additionalTargetPropertyName, + filteredValue, filteredOption); + } + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + } else { + // As 'or' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + if (i == 0) { + setupConditionValueAndRegisterWhereClause(key, + currentValue, cvalue, colName, capPropName, + uncapPropName, option); + } else { + getSqlClause().makeAdditionalConditionAsOrEffective(); + invokeSetterLikeSearch(uncapPropName, currentValue, option); + } + } + + // @jflute -- Callback for LikeAsOr! + // final List callbackList = + // option.getLikeAsOrCallbackList(); + // ... + + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + + protected void throwLikeSearchOptionNotFoundException(String capPropName, + String value) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = getClass().getSimpleName(); + final String methodName = "set" + capPropName + "_LikeSearch('" + value + + "', likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new RequiredOptionNotFoundException(msg); + } + + protected void invokeSetterLikeSearch(String columnFlexibleName, + Object value, LikeSearchOption option) { + if (value == null) { + return; + } + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "set" + columnCapPropName + "_LikeSearch"; + Method method = null; + try { + method = this.getClass().getMethod(methodName, + new Class[] { value.getClass(), LikeSearchOption.class }); + } catch (NoSuchMethodException e) { + String msg = "The columnFlexibleName is not existing in this table: columnFlexibleName=" + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + method.invoke(this, new Object[] { value, option }); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + // ----------------------------------------------------- + // InScope Query + // ------------- + protected void registerInScopeQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, InScopeOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + if (value != null && option.isSplit()) { + final String[] strArray = option.generateSplitValueArray(value); + final List realValueList = new ArrayList(); + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + realValueList.add(currentValue); + } + setupConditionValueAndRegisterWhereClause(key, realValueList, + cvalue, colName, capPropName, uncapPropName, option); + } else { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + } + + // ----------------------------------------------------- + // Inline Query + // ------------ + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key));// If Java, it is necessary to use uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, + _onClauseInline); + } + } + } + + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key), option);// If Java, it is necessary to use + // uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue, option); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, option, + _onClauseInline); + } + } + } + + // ----------------------------------------------------- + // InScopeSubQuery + // --------------- + // {Modified at DBFlute-0.7.5} + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String inScopeOption) { + assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery); + inScopeOption = inScopeOption != null ? inScopeOption + " " : ""; + String realColumnName = getInScopeSubQueryRealColumnName(columnName); + String subQueryClause = getInScopeSubQuerySql(subQuery, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = realColumnName + " " + inScopeOption + "in (" + beginMark + + subQueryClause + ln + endIndent + ")" + endMark; + } else { + clause = realColumnName + " " + inScopeOption + "in (" + + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + protected String getInScopeSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getInScopeSubQuerySql(ConditionQuery subQuery, + String relatedColumnName, String propertyName) { + String selectClause = "select " + + getSqlClause().getLocalTableAliasName() + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + return selectClause + " " + fromWhereClause; + } + + // ----------------------------------------------------- + // ExistsSubQuery + // -------------- + // {Modified at DBFlute-0.7.5} + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String existsOption) { + assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery); + existsOption = existsOption != null ? existsOption + " " : ""; + String realColumnName = getExistsSubQueryRealColumnName(columnName); + String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = existsOption + "exists (" + beginMark + subQueryClause + + ln + endIndent + ")" + endMark; + } else { + clause = existsOption + "exists (" + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // *Unsupport ExistsSubQuery as inline because it's so dangerous. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + protected String getExistsSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getExistsSubQuerySql(ConditionQuery subQuery, + String realColumnName, String relatedColumnName, String propertyName) { + int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + String tableAliasName = "dfsublocal_" + subQueryLevel; + String selectClause = "select " + tableAliasName + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + String joinCondition = tableAliasName + "." + relatedColumnName + " = " + + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + // [DBFlute-0.7.4] + // ----------------------------------------------------- + // DeriveSubQuery + // -------------- + protected void registerDeriveSubQuery(String function, + ConditionQuery subQuery, String columnName, + String relatedColumnName, String propertyName, String aliasName) { + assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery); + final String realColumnName = getDeriveSubQueryRealColumnName(columnName); + final String subQueryClause = getDeriveSubQuerySql(function, subQuery, + realColumnName, relatedColumnName, propertyName, aliasName); + final String clause; + if (getSqlClause().isFormatClauseEffective()) { + final String ln = getLineSeparator(); + final int subQueryLevel = subQuery.getSubQueryLevel(); + final String subQueryIdentity = propertyName + "[" + subQueryLevel + + "]"; + final String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + final String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + final String endIndent = " "; + clause = "(" + beginMark + subQueryClause + ln + endIndent + + ") as " + aliasName + endMark; + } else { + clause = "(" + subQueryClause + ") as " + aliasName; + } + getSqlClause().specifyDeriveSubQuery(aliasName, clause); + } + + protected String getDeriveSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getDeriveSubQuerySql(String function, + ConditionQuery subQuery, String realColumnName, + String relatedColumnName, String propertyName, String aliasName) { + final int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + final String tableAliasName = "dfsublocal_" + subQueryLevel; + final String deriveColumnName = subQuery.getSqlClause() + .getSpecifiedColumnNameAsOne(); + if (deriveColumnName == null || deriveColumnName.trim().length() == 0) { + throwDeriveReferrerInvalidColumnSpecificationException(function, + aliasName); + } + assertDeriveReferrerColumnType(function, subQuery, deriveColumnName); + subQuery.getSqlClause().clearSpecifiedSelectColumn(); + final String selectClause = "select " + function + "(" + tableAliasName + + "." + deriveColumnName + ")"; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + final String joinCondition = tableAliasName + "." + relatedColumnName + + " = " + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + protected void throwDeriveReferrerInvalidColumnSpecificationException( + String function, String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The specified the column for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + " You should call specify().column[TargetColumn]() only once." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " // *No! It's empty!" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime(); // *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidColumnSpecificationException(msg); + } + + public static class DeriveReferrerInvalidColumnSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidColumnSpecificationException(String msg) { + super(msg); + } + } + + protected void assertDeriveReferrerColumnType(String function, + ConditionQuery subQuery, String deriveColumnName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(subQuery + .getTableDbName()); + final Class deriveColumnType = dbmeta.findColumnInfo( + deriveColumnName).getPropertyType(); + if ("sum".equalsIgnoreCase(function) + || "avg".equalsIgnoreCase(function)) { + if (!Number.class.isAssignableFrom(deriveColumnType)) { + throwDeriveReferrerUnmatchedColumnTypeException(function, + deriveColumnName, deriveColumnType); + } + } + } + + protected void throwDeriveReferrerUnmatchedColumnTypeException( + String function, String deriveColumnName, Class deriveColumnType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The type of the specified the column unmatched with the function!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should confirm the list as follow:" + + getLineSeparator(); + msg = msg + " max() : String, Number, Date" + getLineSeparator(); + msg = msg + " min() : String, Number, Date" + getLineSeparator(); + msg = msg + " sum() : Number" + getLineSeparator(); + msg = msg + " avg() : Number" + getLineSeparator(); + msg = msg + " count() : String, Number, Date" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Function]" + getLineSeparator() + function + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + + "(" + deriveColumnType.getName() + ")" + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerUnmatchedColumnTypeException(msg); + } + + public static class DeriveReferrerUnmatchedColumnTypeException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerUnmatchedColumnTypeException(String msg) { + super(msg); + } + } + + // ----------------------------------------------------- + // Where Clause + // ------------ + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If + // Java + // , + // it + // is + // necessary + // to + // use + // uncapPropName + // ! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue); + } + + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), + option);// If Java, it is necessary to use uncapPropName! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue, option); + } + + protected void registerWhereClause(String whereClause) { + getSqlClause().registerWhereClause(whereClause); + } + + protected void registerInlineWhereClause(String whereClause) { + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(whereClause); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), whereClause, _onClauseInline); + } + } + + // ----------------------------------------------------- + // Union Query + // ----------- + public void registerUnionQuery(ConditionQuery unionQuery, boolean unionAll, + String unionQueryPropertyName) { + final String unionQueryClause = getUnionQuerySql(unionQuery, + unionQueryPropertyName); + + // At the future, building SQL will be moved to sqlClause. + getSqlClause().registerUnionQuery(unionQueryClause, unionAll); + } + + protected String getUnionQuerySql(ConditionQuery unionQuery, + String unionQueryPropertyName) { + final String fromClause = unionQuery.getSqlClause().getFromClause(); + final String whereClause = unionQuery.getSqlClause().getWhereClause(); + final String unionQueryClause; + if (whereClause.trim().length() <= 0) { + unionQueryClause = fromClause + " " + + getSqlClause().getUnionWhereClauseMark(); + } else { + final int whereIndex = whereClause.indexOf("where "); + if (whereIndex < 0) { + String msg = "The whereClause should have 'where' string: " + + whereClause; + throw new IllegalStateException(msg); + } + final int clauseIndex = whereIndex + "where ".length(); + final String mark = getSqlClause() + .getUnionWhereFirstConditionMark(); + unionQueryClause = fromClause + " " + + whereClause.substring(0, clauseIndex) + mark + + whereClause.substring(clauseIndex); + } + final String oldStr = ".conditionQuery."; + final String newStr = ".conditionQuery." + unionQueryPropertyName + "."; + return replaceString(unionQueryClause, oldStr, newStr);// Very + // Important! + } + + // ----------------------------------------------------- + // OrderBy + // ------- + public void withNullsFirst() {// is User Public! + getSqlClause().addNullsFirstToPreviousOrderBy(); + } + + public void withNullsLast() {// is User Public! + getSqlClause().addNullsLastToPreviousOrderBy(); + } + + protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, true); + } + + protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, false); + } + + protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException( + String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The aliasName was Not Found in specified alias names." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified an alias name that is the same as one in specify-derived-referrer." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg); + } + + public static class SpecifiedDerivedOrderByAliasNameNotFoundException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) { + super(msg); + } + } + + protected void registerOrderBy(String columnName, boolean ascOrDesc) { + getSqlClause().registerOrderBy(getRealColumnName(columnName), null, + ascOrDesc); + } + + protected void regOBA(String columnName) { + registerOrderBy(columnName, true); + } + + protected void regOBD(String columnName) { + registerOrderBy(columnName, false); + } + + //========================================================================== + // ========= + // Name Resolver + // ============= + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param nestLevel Nest level. + * @return Resolved join alias name. (NotNull) + */ + protected String resolveJoinAliasName(String relationPath, int nestLevel) { + return getSqlClause().resolveJoinAliasName(relationPath, nestLevel); + } + + protected String resolveNestLevelExpression(String name) { + return getSqlClause().resolveNestLevelExpression(name, getNestLevel()); + } + + protected String resolveNextRelationPath(String tableName, + String relationPropertyName) { + final int relationNo = getSqlClause().resolveRelationNo(tableName, + relationPropertyName); + String nextRelationPath = "_" + relationNo; + if (_relationPath != null) { + nextRelationPath = _relationPath + nextRelationPath; + } + return nextRelationPath; + } + + //========================================================================== + // ========= + // Fixed Condition + // =============== + protected String prepareFixedCondition(String fixedCondition, + String localAliasName, String foreignAliasName) { + fixedCondition = replaceString(fixedCondition, "$$alias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$localAlias$$", + localAliasName); + return fixedCondition; + } + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "get" + columnCapPropName; + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, columnFlexibleName); + return (ConditionValue) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", + conditionKeyName); + if (value == null) { + return; + } + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "set" + columnCapPropName + "_" + + initCap(conditionKeyName); + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] { value.getClass() }, propertyName); + helpInvokingCQMethod(cq, method, new Object[] { value }); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of a column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final String ascDesc = isAsc ? "Asc" : "Desc"; + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "addOrderBy_" + columnCapPropName + "_" + + ascDesc; + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] {}, propertyName); + helpInvokingCQMethod(cq, method, new Object[] {}); + } + + /** + * The implementation. + * + * @param foreignPropertyName The property name of foreign. (NotNull and + * NotEmpty) + * @return The conditionQuery of foreign as interface. (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = "query" + initCap(foreignPropertyName); + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, foreignPropertyName); + return (ConditionQuery) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + private PropertyNameCQContainer helpExtractingPropertyNameCQContainer( + String name) { + final String[] strings = name.split("\\."); + final int length = strings.length; + String propertyName = null; + ConditionQuery cq = this; + int index = 0; + for (String element : strings) { + if (length == (index + 1)) {// at last loop! + propertyName = element; + break; + } + cq = cq.invokeForeignCQ(element); + ++index; + } + return new PropertyNameCQContainer(propertyName, cq); + } + + private static class PropertyNameCQContainer { + protected String _propertyName; + + protected ConditionQuery _cq; + + public PropertyNameCQContainer(String propertyName, ConditionQuery cq) { + this._propertyName = propertyName; + this._cq = cq; + } + + public String getPropertyName() { + return _propertyName; + } + + public ConditionQuery getConditionQuery() { + return _cq; + } + } + + private Method helpGettingCQMethod(ConditionQuery cq, String methodName, + Class[] argTypes, String property) { + try { + return cq.getClass().getMethod(methodName, argTypes); + } catch (NoSuchMethodException e) { + String msg = "The method is not existing:"; + msg = msg + " methodName=" + methodName; + msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes); + msg = msg + " tableName=" + cq.getTableDbName(); + msg = msg + " property=" + property; + throw new IllegalStateException(msg, e); + } + } + + private Object helpInvokingCQMethod(ConditionQuery cq, Method method, + Object[] args) { + try { + return method.invoke(cq, args); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e.getCause()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String fRES(String value) { + return filterRemoveEmptyString(value); + } + + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + private String filterRemoveEmptyString(String value) { + return ((value != null && !"".equals(value)) ? value : null); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + protected List cTL( + Collection col) { + return convertToList(col); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + private List convertToList( + Collection col) { + if (col == null) { + return null; + } + if (col instanceof List) { + return filterRemoveNullOrEmptyValueFromList((List) col); + } + return filterRemoveNullOrEmptyValueFromList(new ArrayList( + col)); + } + + private List filterRemoveNullOrEmptyValueFromList( + List ls) { + if (ls == null) { + return null; + } + List newList = new ArrayList(); + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final PROPERTY_TYPE element = ite.next(); + if (element == null) { + continue; + } + if (element instanceof String) { + if (((String) element).length() == 0) { + continue; + } + } + newList.add(element); + } + return newList; + } + + public void doNss(NssCall callback) {// Very Internal + String foreignPropertyName = callback.qf().getForeignPropertyName(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, getRelationPath()); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + public static interface NssCall {// Very Internal + public ConditionQuery qf(); + } + + protected void registerOuterJoin(ConditionQuery cq, + Map joinOnMap) { + getSqlClause().registerOuterJoin(cq.getTableSqlName(), + cq.getRealAliasName(), joinOnMap); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected String convertObjectArrayToStringView(Object[] objArray) { + return TraceViewUtil.convertObjectArrayToStringView(objArray); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the column-name is not null and is not empty and does not + * contain comma. + * + * @param columnName Column-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertColumnName(String columnName) { + if (columnName == null) { + String msg = "The columnName should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnName.trim().length() == 0) { + String msg = "The columnName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (columnName.indexOf(",") >= 0) { + String msg = "The columnName should not contain comma ',': " + + columnName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the alias-name is not null and is not empty and does not + * contain comma. + * + * @param aliasName Alias-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertAliasName(String aliasName) { + if (aliasName == null) { + String msg = "The aliasName should not be null."; + throw new IllegalArgumentException(msg); + } + if (aliasName.trim().length() == 0) { + String msg = "The aliasName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (aliasName.indexOf(",") >= 0) { + String msg = "The aliasName should not contain comma ',': " + + aliasName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return getClass().getSimpleName() + ":{aliasName=" + _aliasName + + ", nestLevel=" + _nestLevel + ", subQueryLevel=" + + _subQueryLevel + ", foreignPropertyName=" + + _foreignPropertyName + ", relationPath=" + _relationPath + + ", onClauseInline=" + _onClauseInline + "}"; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/AbstractConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,226 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; + +/** + * The interface of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBean extends PagingBean { + + //========================================================================== + // =========== + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get SQL-clause instance. + * + * @return SQL-clause. (NotNull) + */ + public SqlClause getSqlClause(); + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + /** + * Accept primary-key map-string. + * + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap( + java.util.Map primaryKeyMap); + + /** + * Accept primary-key map-string. Delimiter is at-mark and semicolon. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString); + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + /** + * Add order-by PrimaryKey asc. {order by primaryKey1 asc, primaryKey2 + * asc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Asc(); + + /** + * Add order-by PrimaryKey desc. {order by primaryKey1 desc, primaryKey2 + * desc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Desc(); + + //========================================================================== + // ========= + // Query + // ===== + /** + * Get condition-query as interface. + * + * @return Instance of query as interface. (NotNull) + * @deprecated + */ + public ConditionQuery getConditionQueryAsInterface(); + + /** + * Get the conditionQuery of the local table as interface. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ(); + + //========================================================================== + // ========= + // Union Query + // =========== + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery(); + + //========================================================================== + // ========= + // Limit Select + // ============ + /** + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly(); + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off(); + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly(); + + //========================================================================== + // =========== + // Lock Setting + // ============ + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate(); + + //========================================================================== + // =========== + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope(); + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope(); + + /** + * Is set up various things for select-count-ignore-fetch-scope? {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope(); + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig); + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig(); + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBeanContext.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBeanContext.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,428 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.DBFluteConfig; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseDb2; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseDerby; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseFirebird; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseH2; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseMySql; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseOracle; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClausePostgreSql; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClauseSqlServer; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The context of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionBeanContext { + + /** Log instance. */ + private static final Log _log = LogFactory + .getLog(ConditionBeanContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get condition-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static ConditionBean getConditionBeanOnThread() { + return (ConditionBean) _threadLocal.get(); + } + + /** + * Set condition-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setConditionBeanOnThread(ConditionBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing condition-bean on thread? + * + * @return Determination. + */ + public static boolean isExistConditionBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear condition-bean on thread. + */ + public static void clearConditionBeanOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Initialize against the ClassLoader Headache + // =========================================== + @SuppressWarnings("unused") + public static void initialize() { + boolean debugEnabled = _log.isDebugEnabled(); + // Against the ClassLoader Headache! + final StringBuilder sb = new StringBuilder(); + { + final Class clazz = jp.sf.pal.notepad.db.allcommon.cbean.SimplePagingBean.class; + if (debugEnabled) { + sb.append( + " ...Loading class of " + clazz.getName() + " by " + + clazz.getClassLoader().getClass()).append( + getLineSeparator()); + } + } + { + Class clazz = jp.sf.pal.notepad.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.notepad.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingOption.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingRowEndDeterminer.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingRowResource.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingRowSetupper.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.PageNumberLink.class; + clazz = jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper.class; + clazz = jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler.class; + if (debugEnabled) { + sb.append(" ...Loading class of ...and so on"); + } + } + if (debugEnabled) { + _log.debug("{Initialize against the ClassLoader Headache}" + + getLineSeparator() + sb); + } + } + + //========================================================================== + // ========= + // Type Determination + // ================== + /** + * Is the argument condition-bean? + * + * @param dtoInstance DTO instance. + * @return Determination. + */ + public static boolean isTheArgumentConditionBean(final Object dtoInstance) { + if (dtoInstance instanceof ConditionBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type condition-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeConditionBean(final Class dtoClass) { + if (ConditionBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ========= + // Product Name + // ============ + public static final String DB_NAME_DERBY = "derby"; + + public static final String DB_NAME_H2 = "h2"; + + public static final String DB_NAME_ORACLE = "oracle"; + + public static final String DB_NAME_MYSQL = "mysql"; + + public static final String DB_NAME_POSTGRESQL = "postgresql"; + + public static final String DB_NAME_FIREBIRD = "firebird"; + + public static final String DB_NAME_MSSQL = "mssql"; + + public static final String DB_NAME_SYBASE = "sybase"; + + public static final String DB_NAME_DB2 = "db2"; + + protected static final Map _driverHintDatabaseProductNameMap; + static { + final Map tmpMap = Collections + .synchronizedMap(new LinkedHashMap()); + tmpMap.put("org.apache.derby", DB_NAME_DERBY); + tmpMap.put("org.h2", DB_NAME_H2); + tmpMap.put("oracle", DB_NAME_ORACLE); + tmpMap.put("mysql", DB_NAME_MYSQL); + tmpMap.put("postgresql", DB_NAME_POSTGRESQL); + tmpMap.put("firebird", DB_NAME_FIREBIRD); + tmpMap.put("sqlserver", DB_NAME_MSSQL); + tmpMap.put("sybase", DB_NAME_SYBASE); + tmpMap.put("db2", DB_NAME_DB2); + _driverHintDatabaseProductNameMap = java.util.Collections + .unmodifiableMap(tmpMap); + } + + public static boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + final java.util.Set keySet = _driverHintDatabaseProductNameMap + .keySet(); + for (final java.util.Iterator ite = keySet.iterator(); ite + .hasNext();) { + final String driverHint = (String) ite.next(); + if (driverClassName.indexOf(driverHint) >= 0) { + final String databaseProductName = (String) _driverHintDatabaseProductNameMap + .get(driverHint); + setDatabaseProductName(databaseProductName); + return true; + } + } + return false; + } + + /** The database product name. */ + private static String _databaseProductName; + + /** + * Get database product name. + * + * @return Database product name. + */ + public static String getDatabaseProductName() { + return _databaseProductName; + } + + /** + * Set database product name. + * + * @param name Database product name. (NotNull) + */ + public static void setDatabaseProductName(String name) { + if (_databaseProductName != null) { + String msg = "Already set up: current=" + _databaseProductName + + " your=" + name; + throw new IllegalStateException(msg); + } + _databaseProductName = name; + } + + //========================================================================== + // ========= + // SqlClause Creator + // ================= + /** + * Create SQL-clause. {for condition-bean} + * + * @param cb Condition-bean. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(ConditionBean cb) { + final String tableSqlName = cb.getTableSqlName(); + final SqlClause sqlClause = createSqlClause(tableSqlName); + if (DBFluteConfig.getInstance().isConditionBeanFormatSql()) { + sqlClause.makeFormatClauseEffective(); + } + return sqlClause; + } + + /** + * Create SQL-clause. {for SimplePagingBean} + * + * @param tableDbName The DB name of table. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(String tableDbName) { + final String databaseProductName = getDatabaseProductName(); + if (databaseProductName == null) { + return new SqlClauseH2(tableDbName); + } + final String name = databaseProductName.toLowerCase(); + if (name.equalsIgnoreCase(DB_NAME_DERBY)) { + return new SqlClauseDerby(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_H2)) { + return new SqlClauseH2(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_ORACLE)) { + return new SqlClauseOracle(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_FIREBIRD)) { + return new SqlClauseFirebird(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MYSQL)) { + return new SqlClauseMySql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_POSTGRESQL)) { + return new SqlClausePostgreSql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MSSQL)) { + return new SqlClauseSqlServer(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_DB2)) { + return new SqlClauseDb2(tableDbName); + } else { + return new SqlClauseH2(tableDbName); + } + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwEntityAlreadyDeletedException(Object searchKey4Log) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity was Not Found! it has already been deleted!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target record on your database." + + getLineSeparator(); + msg = msg + + "Does the target record really created before this operation?" + + getLineSeparator(); + msg = msg + "Has the target record been deleted by other thread?" + + getLineSeparator(); + msg = msg + + "It is precondition that the record exists on your database." + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } + + public static void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + + resultCountString + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm your search condition. Does it really select the only one?" + + getLineSeparator(); + msg = msg + + "Please confirm your database. Does it really exist the only one?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + if (cause != null) { + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException( + msg, cause); + } else { + throw new jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + //========================================================================== + // ========= + // Display SQL + // =========== + public static String convertConditionBean2DisplaySql(ConditionBean cb) { + final String twoWaySql; + if (cb.isLimitSelect_PKOnly()) { + twoWaySql = cb.getSqlClause().getClausePKOnly(); + } else { + twoWaySql = cb.getSqlClause().getClause(); + } + return InternalSqlParser.convertTwoWaySql2DisplaySql(twoWaySql, cb); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public static boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return createSqlClause("dummy").isUniqueConstraintException(sqlState, + errorCode); + } + + // [DBFlute-0.7.8] + //========================================================================== + // ========= + // Database Type + // ============= + /** + * Is the database Oracle? + * + * @return Is the database Oracle? + */ + public static boolean isOracle() { + return createSqlClause("dummy") instanceof SqlClauseOracle; + } + + /** + * Is the database PostgreSQL? + * + * @return Is the database PostgreSQL? + */ + public static boolean isPostgreSql() { + return createSqlClause("dummy") instanceof SqlClausePostgreSql; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionQuery.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionQuery.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionQuery.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,153 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The condition-query as interface. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface ConditionQuery { + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. (NotNull) + */ + public String getRealAliasName(); + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. (NotNull) + * @return Real column name. (NotNull) + */ + public String getRealColumnName(String columnName); + + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery(); + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause(); + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName(); + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel(); + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel(); + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query); + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel(); + + /** + * Get the property name of foreign relation. + * + * @return The property name of foreign relation. (NotNull) + */ + public String getForeignPropertyName(); + + /** + * Get the path of foreign relation. + * + * @return The path of foreign relation. (NotNull) + */ + public String getRelationPath(); + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * Invoke getting value. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName); + + /** + * Invoke setting query. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value); + + /** + * Invoke adding orderBy. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc); + + /** + * Invoke getting foreign conditionQuery. + * + * @param foreignPropertyName The property name of the foreign relation. + * (NotNull and NotEmpty) + * @return The conditionQuery of the foreign relation as interface. + * (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,62 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +/** + * The bean of fetch narrowing. + * + * @author DBFlute(AutoGenerator) + */ +public interface FetchNarrowingBean { + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective(); + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing(); + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing(); + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBeanContext.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBeanContext.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBeanContext.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,79 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +/** + * Fetch-Narrowing-Bean context. (referring to s2pager) + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingBeanContext { + + /** The thread-local for this. */ + private static ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get fetch-narrowing-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static FetchNarrowingBean getFetchNarrowingBeanOnThread() { + return (FetchNarrowingBean) _threadLocal.get(); + } + + /** + * Set fetch-narrowing-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setFetchNarrowingBeanOnThread(FetchNarrowingBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing fetch-narrowing-bean on thread? + * + * @return Determination. + */ + public static boolean isExistFetchNarrowingBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear fetch-narrowing-bean on thread. + */ + public static void clearFetchNarrowingBeanOnThread() { + _threadLocal.set(null); + } + + /** + * Is the argument fetch-narrowing-bean? + * + * @param dtoInstance Dto instance. + * @return Determination. + */ + public static boolean isTheArgumentFetchNarrowingBean( + final Object dtoInstance) { + if (dtoInstance instanceof FetchNarrowingBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type fetch-narrowing-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeFetchNarrowingBean(final Class dtoClass) { + if (FetchNarrowingBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/FetchNarrowingBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ListResultBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ListResultBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ListResultBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,392 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingOption; +import jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; +import jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingRowResource; +import jp.sf.pal.notepad.db.allcommon.cbean.grouping.GroupingRowSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The result bean for list. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class ListResultBean implements List, Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + protected String _tableDbName; + + /** The value of all record count. */ + protected int _allRecordCount; + + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); + + /** The clause of order-by. (NotNull) */ + protected OrderByClause _orderByClause = new OrderByClause(); + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public ListResultBean() { + } + + //========================================================================== + // ========= + // Grouping + // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ + public List groupingList( + GroupingRowSetupper groupingRowSetupper, + GroupingOption groupingOption) { + final List groupingList = new ArrayList(); + GroupingRowEndDeterminer rowEndDeterminer = groupingOption + .getGroupingRowEndDeterminer(); + if (rowEndDeterminer == null) { + rowEndDeterminer = new GroupingRowEndDeterminer() { + public boolean determine( + GroupingRowResource rowResource, + ENTITY nextEntity) { + return rowResource.isSizeUpBreakCount(); + } + }; // as Default + } + GroupingRowResource rowResource = new GroupingRowResource(); + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; + for (ENTITY entity : _selectedList) { + // Set up row resource. + rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); + + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + break; + } + + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); + + // Do at row end. + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + + // Initialize! + rowResource = new GroupingRowResource(); + rowElementIndex = 0; + ++allElementIndex; + continue; + } + ++rowElementIndex; + ++allElementIndex; + } + return groupingList; + } + + //========================================================================== + // ========= + // Mapping + // ======= + public ListResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean mappingList = new ListResultBean(); + for (ENTITY entity : _selectedList) { + mappingList.add(entityDtoMapper.map(entity)); + } + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + return mappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has this result selected? + * + * @return Determination. {Whether table DB name is not null} + */ + public boolean isSelectedResult() { + return _tableDbName != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return Hash-code from primary-keys. + */ + public int hashCode() { + if (_selectedList == null) { + return super.hashCode(); + } + return _selectedList.hashCode(); + } + + /** + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (_selectedList == null) { + return false; + } + if (other == null) { + return false; + } + if (!(other instanceof List)) { + return false; + } + return _selectedList.equals(other); + } + + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // List Elements + // ============= + public boolean add(ENTITY o) { + return _selectedList.add(o); + } + + public boolean addAll(Collection c) { + return _selectedList.addAll(c); + } + + public void clear() { + _selectedList.clear(); + } + + public boolean contains(Object o) { + return _selectedList.contains(o); + } + + public boolean containsAll(Collection c) { + return _selectedList.containsAll(c); + } + + public boolean isEmpty() { + return _selectedList.isEmpty(); + } + + public Iterator iterator() { + return _selectedList.iterator(); + } + + public boolean remove(Object o) { + return _selectedList.remove(o); + } + + public boolean removeAll(Collection c) { + return _selectedList.removeAll(c); + } + + public boolean retainAll(Collection c) { + return _selectedList.retainAll(c); + } + + public int size() { + return _selectedList.size(); + } + + public Object[] toArray() { + return _selectedList.toArray(); + } + + public TYPE[] toArray(TYPE[] a) { + return _selectedList.toArray(a); + } + + public void add(int index, ENTITY element) { + _selectedList.add(index, element); + } + + public boolean addAll(int index, Collection c) { + return _selectedList.addAll(index, c); + } + + public ENTITY get(int index) { + return _selectedList.get(index); + } + + public int indexOf(Object o) { + return _selectedList.indexOf(o); + } + + public int lastIndexOf(Object o) { + return _selectedList.lastIndexOf(o); + } + + public ListIterator listIterator() { + return _selectedList.listIterator(); + } + + public ListIterator listIterator(int index) { + return _selectedList.listIterator(index); + } + + public ENTITY remove(int index) { + return _selectedList.remove(index); + } + + public ENTITY set(int index, ENTITY element) { + return _selectedList.set(index, element); + } + + public List subList(int fromIndex, int toIndex) { + return _selectedList.subList(fromIndex, toIndex); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of tableDbName. + * + * @return The value of tableDbName. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + public String getTableDbName() { + return _tableDbName; + } + + /** + * Set the value of tableDbName. + * + * @param tableDbName The value of tableDbName. (NotNull) + */ + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } + + /** + * Get the value of allRecordCount. + * + * @return The value of allRecordCount. + */ + public int getAllRecordCount() { + return _allRecordCount; + } + + /** + * Set the value of allRecordCount. + * + * @param allRecordCount The value of allRecordCount. + */ + public void setAllRecordCount(int allRecordCount) { + _allRecordCount = allRecordCount; + } + + /** + * Get the value of selectedList. + * + * @return Selected list. (NotNull) + */ + public List getSelectedList() { + return _selectedList; + } + + /** + * Set the value of selectedList. + * + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) + */ + public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list + _selectedList = selectedList; + } + + /** + * Get the value of orderByClause. + * + * @return The value of orderByClause. (NotNull) + */ + public OrderByClause getOrderByClause() { + return _orderByClause; + } + + /** + * Set the value of orderByClause. + * + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) + */ + public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list + _orderByClause = orderByClause; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ListResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/MapParameterBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/MapParameterBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/MapParameterBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,18 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.util.Map; + +/** + * The bean of map parameter. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapParameterBean { + + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/MapParameterBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/OrderByBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/OrderByBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/OrderByBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,46 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The order-by-bean as interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface OrderByBean extends SelectResource { + + /** + * Get sql component of order-by clause. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause(); + + /** + * Get order-by clause. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause(); + + /** + * Clear order-by. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy(); + + /** + * Ignore order-by. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy(); + + /** + * Make order-by effective. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/OrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,163 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +/** + * The bean of paging. + * + * @author DBFlute(AutoGenerator) + */ +public interface PagingBean extends FetchNarrowingBean, OrderByBean { + + //========================================================================== + // ========= + // Paging Determination + // ==================== + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Is the execution for paging(NOT count)? + * + * @return Determination. + */ + public boolean isPaging(); + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * Is the count executed later? + * + * @return Determination. + */ + public boolean isCountLater(); + + //========================================================================== + // ========= + // Paging Setting + // ============== + /** + * Set up paging resources. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber); + + /** + * Set whether the execution for paging(NOT count). {INTERNAL METHOD} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging); + + //========================================================================== + // ========= + // Fetch Setting + // ============= + /** + * Fetch first.
    If you invoke this, your SQL returns [fetch-size] + * records from first. + * + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize); + + /** + * Fetch scope.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index]. + * + * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus) + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page.
    When you invoke this, it is normally necessary to + * invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
    But you + * also can use default-fetch-size without invoking 'fetchFirst()' or + * 'fetchScope()'.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index] calculated by [fetch-page-number]. + * + * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & + * NotZero: If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber); + + //========================================================================== + // ========= + // Fetch Property + // ============== + /** + * Get fetch-start-index. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch-size. + * + * @return Fetch-size. + */ + public int getFetchSize(); + + /** + * Get fetch-page-number. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective(); + + //========================================================================== + // ========= + // Hint Property + // ============= + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint(); + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint(); + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,33 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.util.List; + +/** + * The handler of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface PagingHandler { + + /** + * Get the bean of paging. + * + * @return The bean of paging. (NotNull) + */ + public PagingBean getPagingBean(); + + /** + * Execute SQL for count. + * + * @return The count of execution. + */ + public int count(); + + /** + * Execute SQL for paging. + * + * @return The list of entity. (NotNull) + */ + public List paging(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingInvoker.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingInvoker.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingInvoker.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,116 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.util.List; + +/** + * The invoker of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class PagingInvoker { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + protected boolean _countLater; + + //========================================================================== + // ========= + // Constructor + // =========== + public PagingInvoker(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke select-page by handler. + * + * @param handler The handler of paging. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean invokePaging(PagingHandler handler) { + assertObjectNotNull("handler", handler); + final PagingBean pagingBean = handler.getPagingBean(); + assertObjectNotNull("handler.getPagingBean()", pagingBean); + if (!pagingBean.isFetchScopeEffective()) { + String msg = "The paging bean is not effective about fetch-scope!"; + msg = msg + + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!)."; + msg = msg + " The paging bean is: " + pagingBean; + throw new IllegalStateException(msg); + } + final int allRecordCount; + final List selectedList; + if (_countLater) { + selectedList = handler.paging(); + allRecordCount = handler.count(); + } else { + allRecordCount = handler.count(); + selectedList = handler.paging(); + } + final PagingResultBean rb = new ResultBeanBuilder( + _tableDbName).buildPagingResultBean(pagingBean, allRecordCount, + selectedList); + if (isNecessaryToReadPageAgain(rb)) { + pagingBean.fetchPage(rb.getAllPageCount()); + final int reAllRecordCount = handler.count(); + final java.util.List reSelectedList = handler.paging(); + return new ResultBeanBuilder(_tableDbName) + .buildPagingResultBean(pagingBean, reAllRecordCount, + reSelectedList); + } else { + return rb; + } + } + + /** + * Is it necessary to read page again? + * + * @param rb The result bean of paging. (NotNull) + * @return Determination. + */ + protected boolean isNecessaryToReadPageAgain(PagingResultBean rb) { + return rb.getAllRecordCount() > 0 && rb.getSelectedList().isEmpty(); + } + + //========================================================================== + // ========= + // Option + // ====== + public PagingInvoker countLater() { + _countLater = true; + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingInvoker.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingResultBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingResultBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingResultBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,375 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import jp.sf.pal.notepad.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.group.PageGroupBean; +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.group.PageGroupOption; +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.range.PageRangeBean; +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.range.PageRangeOption; + +/** + * The result bean of paging. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class PagingResultBean extends ListResultBean { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Page Basic Info + // --------------- + /** The value of current page number. */ + protected int _pageSize; + + /** The value of current page number. */ + protected int _currentPageNumber; + + // ----------------------------------------------------- + // Page Group + // ---------- + /** The value of page-group bean. */ + protected PageGroupBean _pageGroupBean; + + /** The value of page-group option. */ + protected PageGroupOption _pageGroupOption; + + // ----------------------------------------------------- + // Page Range + // ---------- + /** The value of page-range bean. */ + protected PageRangeBean _pageRangeBean; + + /** The value of page-range option. */ + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public PagingResultBean() { + } + + //========================================================================== + // ========= + // Calculated Property + // =================== + /** + * Get the value of allPageCount that is calculated. + * + * @return The value of allPageCount. + */ + public int getAllPageCount() { + return calculateAllPageCount(_allRecordCount, _pageSize); + } + + /** + * Get the value of currentStartRecordNumber that is calculated. + * + * @return The value of currentStartRecordNumber. + */ + public int getCurrentStartRecordNumber() { + return calculateCurrentStartRecordNumber(_currentPageNumber, _pageSize); + } + + /** + * Get the value of currentEndRecordNumber that is calculated. + * + * @return The value of currentEndRecordNumber. + */ + public int getCurrentEndRecordNumber() { + return calculateCurrentEndRecordNumber(_currentPageNumber, _pageSize); + } + + //========================================================================== + // ========= + // Page Group/Range + // ================ + // ----------------------------------------------------- + // Page Group + // ---------- + /** + * Get the value of pageGroupSize. + * + * @return The value of pageGroupSize. + */ + public int getPageGroupSize() { + return _pageGroupOption != null ? _pageGroupOption.getPageGroupSize() + : 0; + } + + /** + * Set the value of pageGroupSize. + * + * @param pageGroupSize The value of pageGroupSize. + */ + public void setPageGroupSize(int pageGroupSize) { + final PageGroupOption option = new PageGroupOption(); + option.setPageGroupSize(pageGroupSize); + setPageGroupOption(option); + } + + /** + * Set the value of pageGroupOption. + * + * @param pageGroupOption The value of pageGroupOption. (Nullable) + */ + public void setPageGroupOption(PageGroupOption pageGroupOption) { + _pageGroupOption = pageGroupOption; + } + + /** + * Get the value of pageGroupBean. + * + * @return The value of pageGroupBean. (NotNull) + */ + public PageGroupBean pageGroup() { + assertPageGroupValid(); + if (_pageGroupBean == null) { + _pageGroupBean = new PageGroupBean(); + } + _pageGroupBean.setPageGroupOption(_pageGroupOption); + _pageGroupBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageGroupBean.setAllPageCount(getAllPageCount()); + return _pageGroupBean; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + // ----------------------------------------------------- + // Page Range + // ---------- + /** + * Get the value of pageRangeSize. + * + * @return The value of pageRangeSize. + */ + public int getPageRangeSize() { + return _pageRangeOption != null ? _pageRangeOption.getPageRangeSize() + : 0; + } + + /** + * Set the value of pageRangeSize. + * + * @param pageRangeSize The value of pageRangeSize. + */ + public void setPageRangeSize(int pageRangeSize) { + final PageRangeOption option = new PageRangeOption(); + option.setPageRangeSize(pageRangeSize); + setPageRangeOption(option); + } + + /** + * Set the value of pageRangeOption. + * + * @param pageRangeOption The value of pageRangeOption. (Nullable) + */ + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + /** + * Get the value of pageRangeBean. + * + * @return The value of pageRangeBean. (NotNull) + */ + public PageRangeBean pageRange() { + assertPageRangeValid(); + if (_pageRangeBean == null) { + _pageRangeBean = new PageRangeBean(); + } + _pageRangeBean.setPageRangeOption(_pageRangeOption); + _pageRangeBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageRangeBean.setAllPageCount(getAllPageCount()); + return _pageRangeBean; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is existing previous page? Using values are currentPageNumber. + * + * @return Determination. + */ + public boolean isExistPrePage() { + return (_allRecordCount > 0 && _currentPageNumber > 1); + } + + /** + * Is existing next page? Using values are currentPageNumber and + * allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPage() { + return (_allRecordCount > 0 && _currentPageNumber < getAllPageCount()); + } + + //========================================================================== + // ========= + // Mapping + // ======= + public PagingResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean ls = super.mappingList(entityDtoMapper); + final PagingResultBean mappingList = new PagingResultBean(); + mappingList.setSelectedList(ls.getSelectedList()); + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + mappingList.setPageSize(getPageSize()); + mappingList.setCurrentPageNumber(getCurrentPageNumber()); + mappingList.setPageRangeOption(_pageRangeOption); + mappingList.setPageGroupOption(_pageGroupOption); + return mappingList; + } + + //========================================================================== + // ========= + // Calculate(Internal) + // =================== + /** + * Calculate all page count. + * + * @param allRecordCount All record count. + * @param pageSize Fetch-size. + * @return All page count. + */ + protected int calculateAllPageCount(int allRecordCount, int pageSize) { + if (allRecordCount == 0) { + return 1; + } + int pageCountBase = (allRecordCount / pageSize); + if (allRecordCount % pageSize > 0) { + pageCountBase++; + } + return pageCountBase; + } + + protected int calculateCurrentStartRecordNumber(int currentPageNumber, + int pageSize) { + return ((currentPageNumber - 1) * pageSize) + 1; + } + + protected int calculateCurrentEndRecordNumber(int currentPageNumber, + int pageSize) { + return calculateCurrentStartRecordNumber(currentPageNumber, pageSize) + + _selectedList.size() - 1; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); + sb.append(" of ").append(getAllRecordCount()); + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() + .size()) : null); + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of pageSize. + * + * @return The value of pageSize. + */ + public int getPageSize() { + return _pageSize; + } + + /** + * Set the value of pageSize. + * + * @param pageSize The value of pageSize. + */ + public void setPageSize(int pageSize) { + _pageSize = pageSize; + } + + /** + * Get the value of currentPageNumber. + * + * @return The value of currentPageNumber. + */ + public int getCurrentPageNumber() { + return _currentPageNumber; + } + + /** + * Set the value of currentPageNumber. + * + * @param currentPageNumber The value of currentPageNumber. + */ + public void setCurrentPageNumber(int currentPageNumber) { + _currentPageNumber = currentPageNumber; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/PagingResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ResultBeanBuilder.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,81 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.util.List; + +/** + * The builder of result bean. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class ResultBeanBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public ResultBeanBuilder(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Builder + // ======= + /** + * Build the result bean of list without order-by clause. {for Various} + * + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, + List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); + return rb; + } + + /** + * Build the result bean of paging. {for Paging} + * + * @param pb The bean of paging. (NotNull) + * @param allRecordCount All record count. + * @param selectedList The list of selected entity. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean buildPagingResultBean(PagingBean pb, + int allRecordCount, List selectedList) { + PagingResultBean rb = new PagingResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(allRecordCount); + rb.setSelectedList(selectedList); + rb.setOrderByClause(pb.getSqlComponentOfOrderByClause()); + rb.setPageSize(pb.getFetchSize()); + rb.setCurrentPageNumber(pb.getFetchPageNumber()); + return rb; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ResultBeanBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SelectResource.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SelectResource.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SelectResource.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +/** + * The select-resource as marker-interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface SelectResource { + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SelectResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimpleOrderByBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimpleOrderByBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimpleOrderByBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,165 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * @deprecated + */ +public class SimpleOrderByBean implements OrderByBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public SimpleOrderByBean() { + } + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get sql-clause. + * + * @return Sql clause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Select Resource + // =============== + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + throw new UnsupportedOperationException(); + } + + //========================================================================== + // ========= + // OrderBy + // ======= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + /** + * Register order-by-asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByAsc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, true); + return this; + } + + /** + * Register order-by-desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByDesc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, false); + return this; + } + + /** + * Reverse order-by or Override order-by asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByAsc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, true); + return this; + } + + /** + * Reverse order-by or Override order-by desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByDesc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, false); + return this; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimpleOrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimplePagingBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimplePagingBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimplePagingBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,419 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The simple pagingBean. + * + * @author DBFlute(AutoGenerator) + */ +public class SimplePagingBean implements PagingBean, MapParameterBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + /** The map of parameter. (Nullable) */ + protected Map _parameterMap; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** Is the execution for paging(NOT count)? */ + protected boolean _paging = true; + + /** Is the count executed later? */ + protected boolean _countLater; + + /** Is fetch narrowing valid? */ + protected boolean _fetchNarrowing = true; + + /** The map for parameter. */ + protected Map _map; + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + return _paging; + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + return _countLater; + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. {INTERNAL METHOD: Don't Invoke This!} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) { + if (paging) { + getSqlClause().makeFetchScopeEffective(); + } else { + getSqlClause().ignoreFetchScope(); + } + this._paging = paging; + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * Get fetch-narrowing start-index. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * Get fetch-narrowing size. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _fetchNarrowing && getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + _fetchNarrowing = false; + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + _fetchNarrowing = true; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Implementation of SelectResource + // ================================ + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of MapParameterBean + // ================================== + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap() { + return _parameterMap; + } + + /** + * Add the parameter to the map. + * + * @param key The key of parameter. (NotNull) + * @param value The value of parameter. (Nullable) + */ + public void addParameter(String key, Object value) { + if (_parameterMap == null) { + _parameterMap = new LinkedHashMap(); + } + _parameterMap.put(key, value); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // SqlClause + // --------- + /** + * Get sqlClause. + * + * @return SqlClause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SimplePagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SubQuery.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SubQuery.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SubQuery.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,5 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +public interface SubQuery { + public void query(SUB_CB subCB); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/SubQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/UnionQuery.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/UnionQuery.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/UnionQuery.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,5 @@ +package jp.sf.pal.notepad.db.allcommon.cbean; + +public interface UnionQuery { + public void query(UNION_CB unionCB); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/UnionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKey.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKey.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKey.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,307 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The abstract class of condition-key. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class ConditionKey { + + /** Mark of replaced value. */ + public static final String MARK_OF_REPLACED_VALUE = "ReplacedValue"; + + /** The condition key of equal. */ + public static final ConditionKey CK_EQUAL = new ConditionKeyEqual(); + + /** The condition key of notEqual. */ + public static final ConditionKey CK_NOT_EQUAL = new ConditionKeyNotEqual(); + + /** The condition key of greaterThan. */ + public static final ConditionKey CK_GREATER_THAN = new ConditionKeyGreaterThan(); + + /** The condition key of lessrThan. */ + public static final ConditionKey CK_LESS_THAN = new ConditionKeyLessThan(); + + /** The condition key of greaterEqual. */ + public static final ConditionKey CK_GREATER_EQUAL = new ConditionKeyGreaterEqual(); + + /** The condition key of lessEqual. */ + public static final ConditionKey CK_LESS_EQUAL = new ConditionKeyLessEqual(); + + /** The condition key of prefixSearch. */ + public static final ConditionKey CK_PREFIX_SEARCH = new ConditionKeyPrefixSearch(); + + /** The condition key of likeSearch. */ + public static final ConditionKey CK_LIKE_SEARCH = new ConditionKeyLikeSearch(); + + /** The condition key of inScope. */ + public static final ConditionKey CK_IN_SCOPE = new ConditionKeyInScope(); + + /** The condition key of notInScope. */ + public static final ConditionKey CK_NOT_IN_SCOPE = new ConditionKeyNotInScope(); + + /** The condition key of isNull. */ + public static final ConditionKey CK_IS_NULL = new ConditionKeyIsNull(); + + /** The condition key of isNotNull. */ + public static final ConditionKey CK_IS_NOT_NULL = new ConditionKeyIsNotNull(); + + /** Dummy-object for IsNull and IsNotNull and so on... */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** Condition-key. */ + protected String _conditionKey; + + /** Operand. */ + protected String _operand; + + /** + * Get condition-key. + * + * @return Condition-key. + */ + public String getConditionKey() { + return _conditionKey; + } + + /** + * Get operand. + * + * @return Operand. + */ + public String getOperand() { + return _operand; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + abstract public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName); + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value); + return this; + } + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value, option); + return this; + } + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value); + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option); + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location); + return conditionValue; + } + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @param option Condition option. (NotNull) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location, option); + return conditionValue; + } + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location); + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location, + ConditionOption option); + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null"; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param rearOption Rear option. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClauseWithRearOption(String columnName, + String location, String rearOption) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null" + rearOption; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param dummyValue Dummy value. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location, + String dummyValue) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/" + dummyValue; + } + + /** + * Build clause without value. + * + * @param columnName Column name. (NotNull) + * @return Clause without value. (NotNull) + */ + protected String buildClauseWithoutValue(String columnName) { + return columnName + " " + getOperand(); + } + + /** + * Get wild-card. + * + * @return Wild-card. + */ + protected String getWildCard() { + return "%"; + } + + /** + * The override. Returns hash-code of this condition-key string. + * + * @return HashCode. + */ + public int hashCode() { + return getConditionKey().hashCode(); + } + + /** + * The override. If the condition-key of the other is same as this one, + * returns true. + * + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (other instanceof ConditionKey) { + if (this.getConditionKey().equals( + ((ConditionKey) other).getConditionKey())) { + return true; + } + } + return false; + } + + /** + * The override. + * + * @return View-string of condition key information. + */ + public String toString() { + return "ConditionKey: " + getConditionKey() + " " + getOperand() + + " wild-card=[" + getWildCard() + "]"; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKey.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyEqual.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyEqual.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyEqual.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,108 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of equal. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyEqual() { + _conditionKey = "equal"; + _operand = "="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasEqual()) { + if (conditionValue.equalEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getEqual() == null) { + return; + } + conditionList + .add(buildBindClause(columnName, value.getEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setEqual(value).setEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,109 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterEqual() { + _conditionKey = "greaterEqual"; + _operand = ">="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterEqual()) { + if (conditionValue.equalGreaterEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterEqual(value).setGreaterEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,109 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterThan.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterThan() { + _conditionKey = "greaterThan"; + _operand = ">"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterThan()) { + if (conditionValue.equalGreaterThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterThan(value).setGreaterThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyInScope.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyInScope.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyInScope.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,127 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of inScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyInScope() { + _conditionKey = "inScope"; + _operand = "in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasInScope()) { + if (conditionValue.equalInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue.overrideInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof InScopeOption)) { + String msg = "The argument[option] should be InScopeOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setInScope((java.util.List) value) + .setInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setInScope((java.util.List) value, + (InScopeOption) option).setInScopeLocation(location); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,100 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNotNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNotNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyIsNotNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNotNull() { + _conditionKey = "isNotNull"; + _operand = "is not null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNotNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNotNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNotNull(DUMMY_OBJECT) + .setIsNotNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNull.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNull.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNull.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,98 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyIsNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNull() { + _conditionKey = "isNull"; + _operand = "is null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNull(DUMMY_OBJECT).setIsNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyIsNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,109 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyLessEqual() { + _conditionKey = "lessEqual"; + _operand = "<="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessEqual()) { + if (conditionValue.equalLessEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessEqual(value).setLessEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessThan.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessThan.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessThan.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,109 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessThan.class); + + /** + * Constructor. + */ + protected ConditionKeyLessThan() { + _conditionKey = "lessThan"; + _operand = "<"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessThan()) { + if (conditionValue.equalLessThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessThan(value).setLessThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLessThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,104 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The condition-key of likeSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLikeSearch extends ConditionKey { + + /** + * Constructor. + */ + protected ConditionKeyLikeSearch() { + _conditionKey = "likeSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value) { + throw new UnsupportedOperationException( + "doAddWhereClause without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof LikeSearchOption)) { + String msg = "The argument[option] should be LikeSearchOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + final LikeSearchOption myOption = (LikeSearchOption) option; + conditionList.add(buildBindClauseWithRearOption(columnName, value + .getLikeSearchLocation(), myOption.getRearOption())); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + throw new UnsupportedOperationException( + "doSetupConditionValue without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setLikeSearch((String) value, (LikeSearchOption) option) + .setLikeSearchLocation(location); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,109 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyNotEqual() { + _conditionKey = "notEqual"; + _operand = "!="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasNotEqual()) { + if (conditionValue.equalNotEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideNotEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotEqual(value).setNotEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,117 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notInScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyNotInScope() { + _conditionKey = "notInScope"; + _operand = "not in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasNotInScope()) { + if (conditionValue.equalNotInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue + .overrideNotInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotInScope((java.util.List) value) + .setNotInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,111 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.ckey; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of prefixSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyPrefixSearch extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyPrefixSearch.class); + + /** + * Constructor. + */ + protected ConditionKeyPrefixSearch() { + _conditionKey = "prefixSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasPrefixSearch()) { + if (conditionValue.equalPrefixSearch(value + getWildCard())) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overridePrefixSearch(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getPrefixSearch() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getPrefixSearchLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setPrefixSearch( + (value != null ? value + getWildCard() : null)) + .setPrefixSearchLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/ConditionOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/ConditionOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/ConditionOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,10 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionOption { + public String getRearOption(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/ConditionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/DateFromToOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/DateFromToOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/DateFromToOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,27 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption; + +/** + * The option of date-from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new DateFromToOption(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class DateFromToOption extends FromToOption { + + //========================================================================== + // ========= + // Constructor + // =========== + public DateFromToOption() { + compareAsDate(); + } +} Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/FromToOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/FromToOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/FromToOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,160 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption; + +/** + * The option of from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new FromToOption().compareAsDate(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + * 
    + *   new FromToOption(); 
    + *     --> column >= '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().lessThan(); 
    + *     --> column >= '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan().lessThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class FromToOption implements ConditionOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected boolean _fromDateGreaterThan; + + protected boolean _toDateLessThan; + + protected boolean _compareAsDate; + + //========================================================================== + // ========= + // Interface Implementation + // ======================== + public String getRearOption() { + String msg = "Thie option does not use getRearOption()!"; + throw new UnsupportedOperationException(msg); + } + + //========================================================================== + // ========= + // Main + // ==== + public FromToOption greaterThan() { + _fromDateGreaterThan = true; + return this; + } + + public FromToOption lessThan() { + _toDateLessThan = true; + return this; + } + + /** + * Compare as date. + * + *
    +     * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    +     * 
    +     *   new FromToOption().compareAsDate();
    +     *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    +     * 
    +     * This method ignore greaterThan() and lessThan().
    +     * 
    + * + * @return this. (NotNull) + */ + public FromToOption compareAsDate() { + _compareAsDate = true; + return this; + } + + //========================================================================== + // ========= + // Internal Main + // ============= + public java.util.Date filterFromDate(java.util.Date fromDate) { + if (fromDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(fromDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + final java.util.Date cloneDate = (java.util.Date) fromDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return fromDate; + } + + public java.util.Date filterToDate(java.util.Date toDate) { + if (toDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(toDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + addCalendarNextDay(cal);// Key Point! + final java.util.Date cloneDate = (java.util.Date) toDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return toDate; + } + + public jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey getFromDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL; + } + if (_fromDateGreaterThan) { + return jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_THAN;// Default + // ! + } else { + return jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL;// Default + // ! + } + } + + public jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey getToDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN; + } + if (_toDateLessThan) { + return jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN;// Default + // ! + } else { + return jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_EQUAL;// Default + // ! + } + } + + //========================================================================== + // ========= + // Calendar Helper + // =============== + protected void addCalendarNextDay(java.util.Calendar cal) { + cal.add(java.util.Calendar.DAY_OF_MONTH, 1); + } + + protected void clearCalendarHourMinuteSecondMilli(java.util.Calendar cal) { + cal.clear(java.util.Calendar.MILLISECOND); + cal.clear(java.util.Calendar.SECOND); + cal.clear(java.util.Calendar.MINUTE); + cal.set(java.util.Calendar.HOUR_OF_DAY, cal + .getActualMinimum(java.util.Calendar.HOUR_OF_DAY)); + } +} Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/InScopeOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/InScopeOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/InScopeOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,95 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of in-scope-option. + * + * @author DBFlute(AutoGenerator) + */ +public class InScopeOption extends SimpleStringOption { + + //========================================================================== + // =========== + // Split + // ===== + public InScopeOption splitBySpace() { + return (InScopeOption) doSplitBySpace(); + } + + public InScopeOption splitBySpace(int splitLimitCount) { + return (InScopeOption) doSplitBySpace(splitLimitCount); + } + + public InScopeOption splitBySpaceContainsDoubleByte() { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(); + } + + public InScopeOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public InScopeOption splitByPipeLine() { + return (InScopeOption) doSplitByPipeLine(); + } + + public InScopeOption splitByPipeLine(int splitLimitCount) { + return (InScopeOption) doSplitByPipeLine(splitLimitCount); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + public InScopeOption toUpperCase() { + return (InScopeOption) doToUpperCase(); + } + + public InScopeOption toLowerCase() { + return (InScopeOption) doToLowerCase(); + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + public InScopeOption toSingleByteSpace() { + return (InScopeOption) doToSingleByteSpace(); + } + + public InScopeOption toSingleByteAlphabetNumber() { + return (InScopeOption) doToSingleByteAlphabetNumber(); + } + + public InScopeOption toSingleByteAlphabetNumberMark() { + return (InScopeOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // =========== + // Real Value + // ========== + public java.util.List generateRealValueList( + java.util.List valueList) { + final java.util.List resultList = new java.util.ArrayList(); + for (final java.util.Iterator ite = valueList.iterator(); ite + .hasNext();) { + final String value = ite.next(); + resultList.add(generateRealValue(value)); + } + return resultList; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/InScopeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/LikeSearchOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/LikeSearchOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/LikeSearchOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,281 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of like-search-option. + * + * @author DBFlute(AutoGenerator) + */ +public class LikeSearchOption extends SimpleStringOption { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String LIKE_PREFIX = "prefix"; + + protected static final String LIKE_SUFFIX = "suffix"; + + protected static final String LIKE_CONTAIN = "contain"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _like; + + protected String _escape; + + protected boolean _asOrSplit; + + protected List _likeAsOrCallbackList; + + //========================================================================== + // ========= + // Rear Option + // =========== + public String getRearOption() { + if (_escape == null || _escape.trim().length() == 0) { + return ""; + } + return " escape '" + _escape + "'"; + } + + //========================================================================== + // ========= + // AsOr + // ==== + /** @deprecated */ + public static interface LikeAsOrCallback { + public String getAdditionalTargetPropertyName(); + + public String filterValue(String currentValue); + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback); + } + + /** @deprecated */ + public static abstract class DefaultLikeAsOrCallback implements + LikeAsOrCallback { + public String filterValue(String currentValue) { + return currentValue; + } + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback) { + return optionDeepCopyWithoutCallback; + } + } + + public boolean hasLikeAsOrCallback() { + return _likeAsOrCallbackList != null + && !_likeAsOrCallbackList.isEmpty(); + } + + public List getLikeAsOrCallbackList() { + if (_likeAsOrCallbackList == null) { + _likeAsOrCallbackList = new ArrayList(); + } + return _likeAsOrCallbackList; + } + + /** + * @param likeAsOrCallback Callback. + * @deprecated + */ + public void addLikeAsOrCallback(LikeAsOrCallback likeAsOrCallback) { + getLikeAsOrCallbackList().add(likeAsOrCallback); + } + + public void clearLikeAsOrCallback() { + getLikeAsOrCallbackList().clear(); + } + + //========================================================================== + // ========= + // Like + // ==== + public LikeSearchOption likePrefix() { + _like = LIKE_PREFIX; + return this; + } + + public LikeSearchOption likeSuffix() { + _like = LIKE_SUFFIX; + return this; + } + + public LikeSearchOption likeContain() { + _like = LIKE_CONTAIN; + return this; + } + + //========================================================================== + // ========= + // Escape + // ====== + public LikeSearchOption escapeByPipeLine() { + _escape = "|"; + return this; + } + + public LikeSearchOption escapeByAtMark() { + _escape = "@"; + return this; + } + + public LikeSearchOption escapeBySlash() { + _escape = "/"; + return this; + } + + public LikeSearchOption escapeByBackSlash() { + _escape = "\\"; + return this; + } + + //========================================================================== + // ========= + // Split + // ===== + public LikeSearchOption splitBySpace() { + return (LikeSearchOption) doSplitBySpace(); + } + + public LikeSearchOption splitBySpace(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpace(splitLimitCount); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte() { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public LikeSearchOption splitByPipeLine() { + return (LikeSearchOption) doSplitByPipeLine(); + } + + public LikeSearchOption splitByPipeLine(int splitLimitCount) { + return (LikeSearchOption) doSplitByPipeLine(splitLimitCount); + } + + public LikeSearchOption asOrSplit() { + _asOrSplit = true; + return this; + } + + public boolean isAsOrSplit() { + return _asOrSplit; + } + + //========================================================================== + // ========= + // To Upper/Lower Case + // =================== + public LikeSearchOption toUpperCase() { + return (LikeSearchOption) doToUpperCase(); + } + + public LikeSearchOption toLowerCase() { + return (LikeSearchOption) doToLowerCase(); + } + + //========================================================================== + // ========= + // To Single Byte + // ============== + public LikeSearchOption toSingleByteSpace() { + return (LikeSearchOption) doToSingleByteSpace(); + } + + public LikeSearchOption toSingleByteAlphabetNumber() { + return (LikeSearchOption) doToSingleByteAlphabetNumber(); + } + + public LikeSearchOption toSingleByteAlphabetNumberMark() { + return (LikeSearchOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // ========= + // To Double Byte + // ============== + + //========================================================================== + // ========= + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // ========= + // Real Value + // ========== + public String generateRealValue(String value) { + value = super.generateRealValue(value); + + // Escape + if (_escape != null && _escape.trim().length() != 0) { + String tmp = replace(value, _escape, _escape + _escape); + tmp = replace(tmp, "%", _escape + "%"); + tmp = replace(tmp, "_", _escape + "_"); + value = tmp; + } + final String wildCard = "%"; + if (_like == null || _like.trim().length() == 0) { + return value; + } else if (_like.equals(LIKE_PREFIX)) { + return value + wildCard; + } else if (_like.equals(LIKE_SUFFIX)) { + return wildCard + value; + } else if (_like.equals(LIKE_CONTAIN)) { + return wildCard + value + wildCard; + } else { + String msg = "The like was wrong string: " + _like; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // DeepCopy + // ======== + public Object createDeepCopy() { + final LikeSearchOption deepCopy = (LikeSearchOption) super + .createDeepCopy(); + deepCopy._like = _like; + deepCopy._escape = _escape; + if (hasLikeAsOrCallback()) { + for (Iterator ite = _likeAsOrCallbackList + .iterator(); ite.hasNext();) { + deepCopy.addLikeAsOrCallback((LikeAsOrCallback) ite.next()); + } + } + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new LikeSearchOption(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "like=" + _like + ", escape=" + _escape + ", split=" + isSplit() + + ", asOrSplit = " + _asOrSplit; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/LikeSearchOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/SimpleStringOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/SimpleStringOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/SimpleStringOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,192 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.SplitOptionParts; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.ToSingleByteOptionParts; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.ToUpperLowerCaseOptionParts; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; + +/** + * The class of simple-string-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringOption implements ConditionOption { + + protected SplitOptionParts _splitOptionParts; + + protected ToUpperLowerCaseOptionParts _toUpperLowerCaseOptionParts; + + protected ToSingleByteOptionParts _toSingleByteCaseOptionParts; + + protected JapaneseOptionPartsAgent _japaneseOptionPartsAgent; + + //========================================================================== + // =========== + // Rear Option + // =========== + public String getRearOption() { + return ""; + } + + //========================================================================== + // =========== + // Split + // ===== + protected SimpleStringOption doSplitBySpace() { + getSplitOptionParts().splitBySpace(); + return this; + } + + protected SimpleStringOption doSplitBySpace(int splitLimitCount) { + getSplitOptionParts().splitBySpace(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte() { + getSplitOptionParts().splitBySpaceContainsDoubleByte(); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte( + int splitLimitCount) { + getSplitOptionParts().splitBySpaceContainsDoubleByte(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitByPipeLine() { + getSplitOptionParts().splitByPipeLine(); + return this; + } + + protected SimpleStringOption doSplitByPipeLine(int splitLimitCount) { + getSplitOptionParts().splitByPipeLine(splitLimitCount); + return this; + } + + protected SplitOptionParts getSplitOptionParts() { + if (_splitOptionParts == null) { + _splitOptionParts = new SplitOptionParts(); + } + return _splitOptionParts; + } + + public boolean isSplit() { + return getSplitOptionParts().isSplit(); + } + + public String[] generateSplitValueArray(String value) { + return getSplitOptionParts().generateSplitValueArray(value); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + protected SimpleStringOption doToUpperCase() { + getToUpperLowerCaseOptionParts().toUpperCase(); + return this; + } + + protected SimpleStringOption doToLowerCase() { + getToUpperLowerCaseOptionParts().toLowerCase(); + return this; + } + + protected ToUpperLowerCaseOptionParts getToUpperLowerCaseOptionParts() { + if (_toUpperLowerCaseOptionParts == null) { + _toUpperLowerCaseOptionParts = new ToUpperLowerCaseOptionParts(); + } + return _toUpperLowerCaseOptionParts; + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + protected SimpleStringOption doToSingleByteSpace() { + getToSingleByteOptionParts().toSingleByteSpace(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumber() { + getToSingleByteOptionParts().toSingleByteAlphabetNumber(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumberMark() { + getToSingleByteOptionParts().toSingleByteAlphabetNumberMark(); + return this; + } + + protected ToSingleByteOptionParts getToSingleByteOptionParts() { + if (_toSingleByteCaseOptionParts == null) { + _toSingleByteCaseOptionParts = new ToSingleByteOptionParts(); + } + return _toSingleByteCaseOptionParts; + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + protected JapaneseOptionPartsAgent doLocalJapanese() { + return getJapaneseOptionPartsAgent(); + } + + protected JapaneseOptionPartsAgent getJapaneseOptionPartsAgent() { + if (_japaneseOptionPartsAgent == null) { + _japaneseOptionPartsAgent = new JapaneseOptionPartsAgent(); + } + return _japaneseOptionPartsAgent; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + value = getToUpperLowerCaseOptionParts().generateRealValue(value); + value = getToSingleByteOptionParts().generateRealValue(value); + value = getJapaneseOptionPartsAgent().generateRealValue(value); + return value; + } + + //========================================================================== + // =========== + // General Helper + // ============== + protected String replace(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SimpleStringOption deepCopy = newDeepCopyInstance(); + deepCopy._splitOptionParts = _splitOptionParts != null ? (SplitOptionParts) _splitOptionParts + .createDeepCopy() + : null; + deepCopy._toUpperLowerCaseOptionParts = _toUpperLowerCaseOptionParts != null ? (ToUpperLowerCaseOptionParts) _toUpperLowerCaseOptionParts + .createDeepCopy() + : null; + deepCopy._toSingleByteCaseOptionParts = _toSingleByteCaseOptionParts != null ? (ToSingleByteOptionParts) _toSingleByteCaseOptionParts + .createDeepCopy() + : null; + deepCopy._japaneseOptionPartsAgent = _japaneseOptionPartsAgent != null ? (JapaneseOptionPartsAgent) _japaneseOptionPartsAgent + .createDeepCopy() + : null; + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new SimpleStringOption(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/SimpleStringOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/SplitOptionParts.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/SplitOptionParts.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/SplitOptionParts.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,161 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption.parts; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SplitOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _split; + + protected String _splitContainedDelimiter; + + protected int _splitLimitCount; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isSplit() { + return _split != null; + } + + public void splitBySpace() { + _split = " "; + } + + public void splitBySpace(int splitLimitCount) { + _split = " "; + _splitLimitCount = splitLimitCount; + } + + public void splitBySpaceContainsDoubleByte() { + _split = " "; + _splitContainedDelimiter = "\u3000"; + } + + public void splitBySpaceContainsDoubleByte(int splitLimitCount) { + _split = " "; + _splitContainedDelimiter = "\u3000"; + _splitLimitCount = splitLimitCount; + } + + public void splitByPipeLine() { + _split = "|"; + } + + public void splitByPipeLine(int splitLimitCount) { + _split = "|"; + _splitLimitCount = splitLimitCount; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String[] generateSplitValueArray(String value) { + if (value == null) { + String msg = "The argument[value] should not be null of empty: " + + value; + throw new IllegalArgumentException(msg); + } + value = repalceContainedDelimiterToRealDelimiter(value); + final java.util.StringTokenizer st = new java.util.StringTokenizer( + value, _split); + final String[] tokenizedValues = new String[st.countTokens()]; + int count = 0; + while (st.hasMoreTokens()) { + tokenizedValues[count] = st.nextToken(); + count++; + } + final String[] values = removeInvalidValue(tokenizedValues); + if (_splitLimitCount > 0 && values.length > _splitLimitCount) { + final String[] realValues = new String[_splitLimitCount]; + for (int i = 0; i < values.length; i++) { + if (i == _splitLimitCount) { + break; + } + realValues[i] = values[i]; + } + return realValues; + } else { + return values; + } + + } + + protected String repalceContainedDelimiterToRealDelimiter(String value) { + if (value == null) { + return value; + } + if (_splitContainedDelimiter == null) { + return value; + } + if (_split == null) { + return value; + } + return replace(value, _splitContainedDelimiter, _split); + } + + protected String[] removeInvalidValue(String[] values) { + final java.util.List ls = new java.util.ArrayList(); + for (int i = 0; i < values.length; i++) { + final String value = values[i]; + if (value == null || value.equals("")) {// Don't trim!!! + continue; + } + ls.add(value); + } + final String[] resultArray = new String[ls.size()]; + for (int i = 0; i < ls.size(); i++) { + resultArray[i] = (String) ls.get(i); + } + return resultArray; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected final String replace(String text, String fromText, String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SplitOptionParts deepCopy = new SplitOptionParts(); + deepCopy._split = _split; + deepCopy._splitContainedDelimiter = _splitContainedDelimiter; + deepCopy._splitLimitCount = _splitLimitCount; + return deepCopy; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/SplitOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,88 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption.parts; + +import jp.sf.pal.notepad.db.allcommon.helper.character.GeneralCharacter; +import jp.sf.pal.notepad.db.allcommon.helper.character.impl.GeneralCharacterImpl; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class ToSingleByteOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toSingleByteSpace; + + protected boolean _toSingleByteAlphabetNumber; + + protected boolean _toSingleByteAlphabetNumberMark; + + private GeneralCharacter _generalCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToSingleByteSpace() { + return _toSingleByteSpace; + } + + public void toSingleByteSpace() { + _toSingleByteSpace = true; + } + + public void toSingleByteAlphabetNumber() { + _toSingleByteAlphabetNumber = true; + } + + public void toSingleByteAlphabetNumberMark() { + _toSingleByteAlphabetNumberMark = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Single Byte + if (_toSingleByteSpace) { + value = (value != null ? value.replaceAll("\u3000", " ") : value); + } + if (_toSingleByteAlphabetNumberMark) { + value = getGeneralCharacter().toSingleByteAlphabetNumberMark(value); + } else if (_toSingleByteAlphabetNumber) { + value = getGeneralCharacter().toSingleByteAlphabetNumber(value); + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected GeneralCharacter getGeneralCharacter() { + if (_generalCharacter == null) { + _generalCharacter = new GeneralCharacterImpl(); + } + return _generalCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToSingleByteOptionParts deepCopy = new ToSingleByteOptionParts(); + deepCopy._toSingleByteSpace = _toSingleByteSpace; + deepCopy._toSingleByteAlphabetNumber = _toSingleByteAlphabetNumber; + deepCopy._toSingleByteAlphabetNumberMark = _toSingleByteAlphabetNumberMark; + return deepCopy; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,61 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption.parts; + +/** + * The class of condition-option-parts about toUpperCase/toLowerCase. + * + * @author DBFlute(AutoGenerator) + */ +public class ToUpperLowerCaseOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toUpperCase; + + protected boolean _toLowerCase; + + //========================================================================== + // =========== + // Main + // ==== + public void toUpperCase() { + _toUpperCase = true; + _toLowerCase = false; + } + + public void toLowerCase() { + _toUpperCase = false; + _toLowerCase = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Upper/Lower Case + if (_toUpperCase) { + value = (value != null ? value.toUpperCase() : value); + } + if (_toLowerCase) { + value = (value != null ? value.toLowerCase() : value); + } + return value; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToUpperLowerCaseOptionParts deepCopy = new ToUpperLowerCaseOptionParts(); + deepCopy._toUpperCase = _toUpperCase; + deepCopy._toLowerCase = _toLowerCase; + return deepCopy; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,87 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.coption.parts.local; + +import jp.sf.pal.notepad.db.allcommon.helper.character.JapaneseCharacter; +import jp.sf.pal.notepad.db.allcommon.helper.character.impl.JapaneseCharacterImpl; + +/** + * The class of condition-option-parts-agent. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseOptionPartsAgent { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toDoubleByteKatakana; + + protected boolean _removeLastLongVowel; + + private JapaneseCharacter _japaneseCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToDoubleByteKatakana() { + return _toDoubleByteKatakana; + } + + public void toDoubleByteKatakana() { + _toDoubleByteKatakana = true; + } + + public boolean isRemoveLastLongVowel() { + return _removeLastLongVowel; + } + + public void removeLastLongVowel() { + _removeLastLongVowel = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Double Byte + if (_toDoubleByteKatakana) { + value = getJapaneseCharacter().toDoubleByteKatakana(value); + } + + // Remove + if (_removeLastLongVowel) { + if (value != null && value.endsWith("\u30fc")) { + value = value.substring(0, value.length() - "\u30fc".length()); + } + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected JapaneseCharacter getJapaneseCharacter() { + if (_japaneseCharacter == null) { + _japaneseCharacter = new JapaneseCharacterImpl(); + } + return _japaneseCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final JapaneseOptionPartsAgent deepCopy = new JapaneseOptionPartsAgent(); + deepCopy._toDoubleByteKatakana = _toDoubleByteKatakana; + deepCopy._removeLastLongVowel = _removeLastLongVowel; + return deepCopy; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/cvalue/ConditionValue.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/cvalue/ConditionValue.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/cvalue/ConditionValue.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1218 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.cvalue; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption; + +/** + * Condition value. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionValue { + + //========================================================================== + // ========= + // Equal + // ===== + /** Value of equal. */ + protected Object _equalValue; + + /** + * Get the value of equal. + * + * @return The value of equal. (Nullable) + */ + public Object getEqual() { + return filterValue(_equalValue); + } + + /** + * Set the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqual(Object value) { + _equalValue = value; + return this; + } + + /** + * Does it has the value of equal? + * + * @return Determination. (NotNull) + */ + public boolean hasEqual() { + return _equalValue != null; + } + + /** + * Does the value equal the value of equal? + * + * @param value The value of equal. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalEqual(Object value) { + return hasEqual() ? _equalValue.equals(value) : value == null; + } + + /** + * Override the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideEqual(Object value) { + _equalValue = value; + return this; + } + + /** Location of equal. */ + protected String _equalLocation; + + /** + * Get the location of equal. + * + * @return The location of equal. (Nullable) + */ + public String getEqualLocation() { + return _equalLocation; + } + + /** + * Set the location of equal. + * + * @param location The location of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqualLocation(String location) { + _equalLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not Equal + // ========= + /** Value of notEqual. */ + protected Object _notEqualValue; + + /** + * Get the value of notEqual. + * + * @return The value of notEqual. (Nullable) + */ + public Object getNotEqual() { + return filterValue(_notEqualValue); + } + + /** + * Set the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** + * Does it has the value of notEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasNotEqual() { + return _notEqualValue != null; + } + + /** + * Does the value equal the value of notEqual? + * + * @param value The value of notEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotEqual(Object value) { + return hasNotEqual() ? _notEqualValue.equals(value) : value == null; + } + + /** + * Override the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** Location of notEqual. */ + protected String _notEqualLocation; + + /** + * Get the location of notEqual. + * + * @return The location of notEqual. (Nullable) + */ + public String getNotEqualLocation() { + return _notEqualLocation; + } + + /** + * Set the location of notEqual. + * + * @param location The location of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqualLocation(String location) { + _notEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Than + // ============ + /** Value of greaterThan. */ + protected Object _greaterThanValue; + + /** + * Get the value of greaterThan. + * + * @return The value of greaterThan. (Nullable) + */ + public Object getGreaterThan() { + return filterValue(_greaterThanValue); + } + + /** + * Set the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** + * Does it has the value of greaterThan? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterThan() { + return _greaterThanValue != null; + } + + /** + * Does the value equal the value of greaterThan? + * + * @param value The value of greaterThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterThan(Object value) { + return hasGreaterThan() ? _greaterThanValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** Location of GreaterThan. */ + protected String _greaterThanLocation; + + /** + * Get the location of greaterThan. + * + * @return The location of greaterThan. (Nullable) + */ + public String getGreaterThanLocation() { + return _greaterThanLocation; + } + + /** + * Set the location of greaterThan. + * + * @param location The location of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThanLocation(String location) { + _greaterThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Than + // ========= + /** Value of lessThan. */ + protected Object _lessThanValue; + + /** + * Get the value of lessThan. + * + * @return The value of lessThan. (Nullable) + */ + public Object getLessThan() { + return filterValue(_lessThanValue); + } + + /** + * Set the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** + * Does it has the value of lessThan? + * + * @return Determination. (NotNull) + */ + public boolean hasLessThan() { + return _lessThanValue != null; + } + + /** + * Does the value equal the value of lessThan? + * + * @param value The value of lessThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessThan(Object value) { + return hasLessThan() ? _lessThanValue.equals(value) : value == null; + } + + /** + * Override the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** Location of lessThan. */ + protected String _lessThanLocation; + + /** + * Get the location of lessThan. + * + * @return The location of lessThan. (Nullable) + */ + public String getLessThanLocation() { + return _lessThanLocation; + } + + /** + * Set the location of lessThan. + * + * @param location The location of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThanLocation(String location) { + _lessThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Equal + // ============= + /** Value of greaterEqual. */ + protected Object _greaterEqualValue; + + /** + * Get the value of greaterEqual. + * + * @return The value of greaterEqual. (Nullable) + */ + public Object getGreaterEqual() { + return filterValue(_greaterEqualValue); + } + + /** + * Set the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** + * Does it has the value of greaterEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterEqual() { + return _greaterEqualValue != null; + } + + /** + * Does the value equal the value of greaterEqual? + * + * @param value The value of greaterEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterEqual(Object value) { + return hasGreaterEqual() ? _greaterEqualValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** Location of greaterEqual. */ + protected String _greaterEqualLocation; + + /** + * Get the location of greaterEqual. + * + * @return The location of greaterEqual. (Nullable) + */ + public String getGreaterEqualLocation() { + return _greaterEqualLocation; + } + + /** + * Set the location of greaterEqual. + * + * @param location The location of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqualLocation(String location) { + _greaterEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Equal + // ========== + /** Value of lessEqual. */ + protected Object _lessEqualValue; + + /** + * Get the value of lessEqual. + * + * @return The value of lessEqual. (Nullable) + */ + public Object getLessEqual() { + return filterValue(_lessEqualValue); + } + + /** + * Set the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** + * Does it has the value of lessEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasLessEqual() { + return _lessEqualValue != null; + } + + /** + * Does the value equal the value of lessEqual? + * + * @param value The value of lessEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessEqual(Object value) { + return hasLessEqual() ? _lessEqualValue.equals(value) : value == null; + } + + /** + * Override the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** Location of lessEqual. */ + protected String _lessEqualLocation; + + /** + * Get the location of lessEqual. + * + * @return The location of lessEqual. (Nullable) + */ + public String getLessEqualLocation() { + return _lessEqualLocation; + } + + /** + * Set the location of lessEqual. + * + * @param location The location of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqualLocation(String location) { + _lessEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Prefix Search + // ============= + /** Value of prefixSearch. */ + protected Object _prefixSearch; + + /** + * Get the value of prefixSearch. + * + * @return The value of prefixSearch. (Nullable) + */ + public Object getPrefixSearch() { + return filterValue(_prefixSearch); + } + + /** + * Set the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** + * Does it has the value of prefixSearch? + * + * @return Determination. (NotNull) + */ + public boolean hasPrefixSearch() { + return _prefixSearch != null; + } + + /** + * Does the value equal the value of prefixSearch? + * + * @param value The value of prefixSearch. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalPrefixSearch(Object value) { + return hasPrefixSearch() ? _prefixSearch.equals(value) : value == null; + } + + /** + * Override the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overridePrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** Location of prefixSearch. */ + protected String _prefixSearchLocation; + + /** + * Get the location of prefixSearch. + * + * @return The location of prefixSearch. (Nullable) + */ + public String getPrefixSearchLocation() { + return _prefixSearchLocation; + } + + /** + * Set the location of prefixSearch. + * + * @param location The location of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearchLocation(String location) { + _prefixSearchLocation = location; + return this; + } + + //========================================================================== + // ========= + // Like Search + // =========== + /** Value of likeSearch. */ + protected List _likeSearch; + + /** Value of likeSearch for spare. */ + protected List _likeSearch4Spare; + + /** + * Get the value of likeSearch. + * + * @return The value of likeSearch. (Nullable) + */ + public String getLikeSearch() { + if (_likeSearch == null) { + return null; + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + final LikeSearchValue likeSearchValue = (LikeSearchValue) _likeSearch + .remove(0); + return (String) filterValue(likeSearchValue.generateRealValue()); + } + + /** + * Set the value of likeSearch. + * + * @param value The value of likeSearch. (Nullable) + * @param option The option of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearch(String value, LikeSearchOption option) { + if (_likeSearch == null) { + _likeSearch = new ArrayList(); + _likeSearch4Spare = new ArrayList(); + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + LikeSearchValue likeSearchValue = new LikeSearchValue(value, option); + _likeSearch.add(likeSearchValue); + _likeSearch4Spare.add(likeSearchValue); + return this; + } + + /** Location of likeSearch. */ + protected String _likeSearchLocation; + + /** + * Get the location of likeSearch. + * + * @return The location of likeSearch. (Nullable) + */ + public String getLikeSearchLocation() { + return _likeSearchLocation; + } + + /** + * Set the location of likeSearch. + * + * @param location The location of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearchLocation(String location) { + _likeSearchLocation = location; + return this; + } + + protected static class LikeSearchValue { + protected String _value; + + protected LikeSearchOption _option; + + public LikeSearchValue(String value, LikeSearchOption option) { + _value = value; + _option = option; + } + + public String getValue() { + return _value; + } + + public LikeSearchOption getOption() { + return _option; + } + + public String generateRealValue() { + if (_option == null) { + return _value; + } + return _option.generateRealValue(_value); + } + } + + //========================================================================== + // ========= + // In Scope + // ======== + /** Value of inScope. */ + protected List _inScope; + + protected InScopeOption _inScopeOption; + + /** + * Get the value of inScope. + * + * @return The value of inScope. (Nullable) + */ + @SuppressWarnings("unchecked") + public List getInScope() { + if (_inScopeOption != null) { + return filterValue(_inScopeOption + .generateRealValueList((List) _inScope)); + } + return filterValue(_inScope); + } + + /** + * Set the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScope(List value) { + _inScope = value; + return this; + } + + public ConditionValue setInScope(List value, InScopeOption option) { + _inScope = value; + _inScopeOption = option; + return this; + } + + /** + * Does it has the value of inScope? + * + * @return Determination. (NotNull) + */ + public boolean hasInScope() { + return _inScope != null; + } + + /** + * Does the value equal the value of inScope? + * + * @param value The value of inScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalInScope(List value) { + return hasInScope() ? _inScope.equals(value) : value == null; + } + + /** + * Override the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideInScope(List value) { + _inScope = value; + return this; + } + + /** Location of InScope. */ + protected String _inScopeLocation; + + /** + * Get the location of inScope. + * + * @return The location of inScope. (Nullable) + */ + public String getInScopeLocation() { + return _inScopeLocation; + } + + /** + * Set the location of inScope. + * + * @param location The location of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScopeLocation(String location) { + _inScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not In Scope + // ============ + /** Value of notInScope. */ + protected List _notInScope; + + /** + * Get the value of notInScope. + * + * @return The value of notInScope. (Nullable) + */ + public List getNotInScope() { + return filterValue(_notInScope); + } + + /** + * Set the value of notInScope. + * + * @param value The value of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScope(List value) { + _notInScope = value; + return this; + } + + /** + * Does it has the value of inNotScope? + * + * @return Determination. (NotNull) + */ + public boolean hasNotInScope() { + return _notInScope != null; + } + + /** + * Does the value equal the value of inNotScope? + * + * @param value The value of inNotScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotInScope(List value) { + return hasNotInScope() ? _notInScope.equals(value) : value == null; + } + + /** + * Override the value of inNotScope. + * + * @param value The value of inNotScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotInScope(List value) { + _notInScope = value; + return this; + } + + /** Location of notInScope. */ + protected String _notInScopeLocation; + + /** + * Get the location of notInScope. + * + * @return The location of notInScope. (Nullable) + */ + public String getNotInScopeLocation() { + return _notInScopeLocation; + } + + /** + * Set the location of notInScope. + * + * @param location The location of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScopeLocation(String location) { + _notInScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Null + // ======= + /** Value of isNull. */ + protected Object _isNullValue; + + /** + * Get the value of isNull. + * + * @return The value of isNull. (Nullable) + */ + public Object getIsNull() { + return _isNullValue; + } + + /** + * Set the value of isNull. + * + * @param value The value of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNull(Object value) { + _isNullValue = value; + return this; + } + + /** + * Does it has the value of isNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNull() { + return _isNullValue != null; + } + + /** Location of isNull. */ + protected String _isNullLocation; + + /** + * Get the location of isNull. + * + * @return The location of isNull. (Nullable) + */ + public String getIsNullLocation() { + return _isNullLocation; + } + + /** + * Set the location of isNull. + * + * @param location The location of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNullLocation(String location) { + _isNullLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Not Null + // =========== + /** Value of isNotNull. */ + protected Object _isNotNullValue; + + /** + * Get the value of isNotNull. + * + * @return The value of isNotNull. (Nullable) + */ + public Object getIsNotNull() { + return _isNotNullValue; + } + + /** + * Set the value of isNotNull. + * + * @param value The value of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNull(Object value) { + _isNotNullValue = value; + return this; + } + + /** + * Does it has the value of isNotNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNotNull() { + return _isNotNullValue != null; + } + + /** Location of isNotNull. */ + protected String _isNotNullLocation; + + /** + * Get the location of isNotNull. + * + * @return The location of isNotNull. (Nullable) + */ + public String getIsNotNullLocation() { + return _isNotNullLocation; + } + + /** + * Set the location of isNotNull. + * + * @param location The location of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNullLocation(String location) { + _isNotNullLocation = location; + return this; + } + + //========================================================================== + // =========== + // Filter + // ====== + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param value Value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected Object filterValue(Object value) { + if (value == null) { + return value; + } + if (value instanceof java.sql.Time) { + return value; + } + if (value instanceof java.sql.Timestamp) { + return value; + } + if (value instanceof java.util.Date + || value instanceof java.util.Calendar) { + return SqlDateConversionUtil.toDate(value); + } else { + return value; + } + } + + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param valueList Value-list. (Nullable) + * @return Filtered value-list. (Nullable) + */ + protected List filterValue(List valueList) { + if (valueList == null || valueList.isEmpty()) { + return valueList; + } + final List resultList = new ArrayList(); + for (Iterator ite = valueList.iterator(); ite.hasNext();) { + Object value = ite.next(); + resultList.add(filterValue(value)); + } + return resultList; + } + + protected static class SqlDateConversionUtil { + + private SqlDateConversionUtil() { + } + + public static java.sql.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.sql.Date toDate(Object o, String pattern) { + if (o instanceof java.sql.Date) { + return (java.sql.Date) o; + } + java.util.Date date = DateConversionUtil.toDate(o, pattern); + if (date != null) { + return new java.sql.Date(date.getTime()); + } + return null; + } + } + + protected static class DateConversionUtil { + + private DateConversionUtil() { + } + + public static java.util.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.util.Date toDate(Object o, String pattern) { + if (o == null) { + return null; + } else if (o instanceof String) { + return toDate((String) o, pattern); + } else if (o instanceof java.util.Date) { + return (java.util.Date) o; + } else if (o instanceof java.util.Calendar) { + return ((java.util.Calendar) o).getTime(); + } else { + return toDate(o.toString(), pattern); + } + } + + public static java.util.Date toDate(String s, String pattern) { + return toDate(s, pattern, java.util.Locale.getDefault()); + } + + public static java.util.Date toDate(String s, String pattern, + java.util.Locale locale) { + java.text.SimpleDateFormat sdf = getDateFormat(s, pattern, locale); + try { + return sdf.parse(s); + } catch (java.text.ParseException ex) { + throw new RuntimeException(ex); + } + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + String pattern, java.util.Locale locale) { + if (pattern != null) { + return new java.text.SimpleDateFormat(pattern); + } + return getDateFormat(s, locale); + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + java.util.Locale locale) { + String pattern = getPattern(locale); + String shortPattern = removeDelimiter(pattern); + String delimitor = findDelimiter(s); + if (delimitor == null) { + if (s.length() == shortPattern.length()) { + return new java.text.SimpleDateFormat(shortPattern); + } + if (s.length() == shortPattern.length() + 2) { + return new java.text.SimpleDateFormat(InternalStringUtil + .replace(shortPattern, "yy", "yyyy")); + } + } else { + String[] array = InternalStringUtil.split(s, delimitor); + for (int i = 0; i < array.length; ++i) { + if (array[i].length() == 4) { + pattern = InternalStringUtil.replace(pattern, "yy", + "yyyy"); + break; + } + } + return new java.text.SimpleDateFormat(pattern); + } + return new java.text.SimpleDateFormat(); + } + + public static java.text.SimpleDateFormat getDateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getPattern(locale)); + } + + public static java.text.SimpleDateFormat getY4DateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getY4Pattern(locale)); + } + + public static String getY4Pattern(java.util.Locale locale) { + String pattern = getPattern(locale); + if (pattern.indexOf("yyyy") < 0) { + pattern = InternalStringUtil.replace(pattern, "yy", "yyyy"); + } + return pattern; + } + + public static String getPattern(java.util.Locale locale) { + java.text.SimpleDateFormat df = (java.text.SimpleDateFormat) java.text.DateFormat + .getDateInstance(java.text.DateFormat.SHORT, locale); + String pattern = df.toPattern(); + int index = pattern.indexOf(' '); + if (index > 0) { + pattern = pattern.substring(0, index); + } + if (pattern.indexOf("MM") < 0) { + pattern = InternalStringUtil.replace(pattern, "M", "MM"); + } + if (pattern.indexOf("dd") < 0) { + pattern = InternalStringUtil.replace(pattern, "d", "dd"); + } + return pattern; + } + + public static String findDelimiter(String value) { + for (int i = 0; i < value.length(); ++i) { + char c = value.charAt(i); + if (Character.isDigit(c)) { + continue; + } + return Character.toString(c); + } + return null; + } + + public static String removeDelimiter(String pattern) { + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < pattern.length(); ++i) { + char c = pattern.charAt(i); + if (c == 'y' || c == 'M' || c == 'd') { + buf.append(c); + } + } + return buf.toString(); + } + } + + protected static class InternalStringUtil { + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new java.util.ArrayList(); + java.util.StringTokenizer st = new java.util.StringTokenizer(str, + delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/cvalue/ConditionValue.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,55 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.grouping; + +/** + * The class of option for grouping. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected int _elementCount; + + protected GroupingRowEndDeterminer _groupingRowEndDeterminer; + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { + } + + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public int getElementCount() { + return this._elementCount; + } + + public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { + return this._groupingRowEndDeterminer; + } + + public void setGroupingRowEndDeterminer( + GroupingRowEndDeterminer groupingRowEndDeterminer) { + this._groupingRowEndDeterminer = groupingRowEndDeterminer; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,24 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.grouping; + +/** + * The interface of grouping end(switch point) determiner. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowEndDeterminer { + + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowResource.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,93 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.grouping; + +import java.util.ArrayList; +import java.util.List; + +/** + * The class of row resource for grouping making. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _groupingRowList = new ArrayList(); + + protected int _elementCurrentIndex; + + protected int _breakCount; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } + + //========================================================================== + // =========== + // Accessor + // ======== + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { + return this._groupingRowList; + } + + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ + public void addGroupingRowList(ENTITY groupingRow) { + this._groupingRowList.add(groupingRow); + } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowSetupper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.grouping; + +/** + * The setupper of grouping row. + * + * @param The type of row. + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowSetupper { + + /** + * Set up the instance of grouping row. + * + * @param groupingRowResource Grouping row resource. (NotNull) + * @return The instance of grouping row. (NotNull) + */ + public ROW setup(GroupingRowResource groupingRowResource); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/grouping/GroupingRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/mapping/EntityDtoMapper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/mapping/EntityDtoMapper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/mapping/EntityDtoMapper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.mapping; + +/** + * The mapper of entity-to-dto. + * + * @param The type of entity. + * @param The type of dto. + * @author DBFlute(AutoGenerator) + */ +public interface EntityDtoMapper { + + /** + * Map entity to data transfer object. + * + * @param entity Entity. (NotNull) + * @return Data transfer object. (NotNull) + */ + public DTO map(ENTITY entity); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/mapping/EntityDtoMapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlContext.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlContext.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlContext.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,427 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.notepad.db.allcommon.DBFluteConfig; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.framework.util.InputStreamReaderUtil; +import org.seasar.framework.util.ReaderUtil; +import org.seasar.framework.util.ResourceUtil; + +/** + * The context of outside-SQL. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlContext { + + /** Log instance. */ + private static final Log _log = LogFactory.getLog(OutsideSqlContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get outside-SQL context on thread. + * + * @return Outside-SQL context. (Nullable) + */ + public static OutsideSqlContext getOutsideSqlContextOnThread() { + return (OutsideSqlContext) _threadLocal.get(); + } + + /** + * Set outside-SQL context on thread. + * + * @param outsideSqlContext Outside-SQL context. (NotNull) + */ + public static void setOutsideSqlContextOnThread( + OutsideSqlContext outsideSqlContext) { + if (outsideSqlContext == null) { + String msg = "The argument[outsideSqlContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(outsideSqlContext); + } + + /** + * Is existing outside-SQL context on thread? + * + * @return Determination. + */ + public static boolean isExistOutsideSqlContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear outside-SQL context on thread. + */ + public static void clearOutsideSqlContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public static String generateSpecifiedOutsideSqlUniqueKey( + String methodName, String path, Object pmb, + OutsideSqlOption option, Object resultTypeSpecification) { + final String pmbKey = (pmb != null ? pmb.getClass().getName() : "null"); + final String resultKey = (resultTypeSpecification != null ? ":" + + resultTypeSpecification : "null"); + final String tableDbName = option.getTableDbName(); + final String generatedUniqueKey = option.generateUniqueKey(); + return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + + ":" + generatedUniqueKey + resultKey; + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwOutsideSqlNotFoundException(String path) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The outsideSql was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target file of outsideSql on your classpath." + + getLineSeparator(); + msg = msg + + "And please confirm the file name and the file path STRICTLY!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified OutsideSql Path]" + getLineSeparator() + path + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException( + msg); + } + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected boolean _dynamicBinding; + + protected boolean _offsetByCursorForcedly; + + protected boolean _limitByCursorForcedly; + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + /** The path of outside-sql. (The mark of Specified-OutsideSql) */ + protected String _outsideSqlPath; + + protected Object _parameterBean; + + protected Object _resultTypeSpecification; + + protected String _methodName; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + /** The DB name of table for using behavior-SQL-path. (Nullable) */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Read SQL + // ======== + /** + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The filtered outside-SQL. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readFilteredOutsideSql(String sqlFileEncoding, + String dbmsSuffix) { + final String sql = readOutsideSql(sqlFileEncoding, dbmsSuffix); + return replaceOutsideSqlBindCharacterOnLineComment(sql); + } + + protected String replaceOutsideSqlBindCharacterOnLineComment(String sql) { + final String bindCharacter = "?"; + if (sql.indexOf(bindCharacter) < 0) { + return sql; + } + final String lineSeparator = "\n"; + if (sql.indexOf(lineSeparator) < 0) { + return sql; + } + final String lineCommentMark = "--"; + if (sql.indexOf(lineCommentMark) < 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split(lineSeparator); + for (String line : lines) { + final int lineCommentIndex = line.indexOf("--"); + if (lineCommentIndex < 0) { + sb.append(line).append(lineSeparator); + continue; + } + final String lineComment = line.substring(lineCommentIndex); + if (lineComment.contains("ELSE") + || !lineComment.contains(bindCharacter)) { + sb.append(line).append(lineSeparator); + continue; + } + + if (_log.isDebugEnabled()) { + _log.debug("...Replacing bind character on line comment: " + + lineComment); + } + final String filteredLineComment = replaceString(lineComment, + bindCharacter, "Q"); + sb.append(line.substring(0, lineCommentIndex)).append( + filteredLineComment).append(lineSeparator); + } + return sb.toString(); + } + + /** + * Read outside-sql path. Required attribute is 'outsideSqlPath'. + * + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The text of SQL. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readOutsideSql(String sqlFileEncoding, String dbmsSuffix) { + final String standardPath = _outsideSqlPath; + final String dbmsPath = buildDbmsPath(standardPath, dbmsSuffix); + String sql; + if (isExistResource(dbmsPath)) { + sql = readText(dbmsPath, sqlFileEncoding); + } else if (isExistResource(standardPath)) { + sql = readText(standardPath, sqlFileEncoding); + } else { + throwOutsideSqlNotFoundException(standardPath); + return null; // Non Reachable. + } + return removeInitialUnicodeBomIfNeeds(sqlFileEncoding, sql); + } + + protected String buildDbmsPath(String standardPath, String dbmsSuffix) { + final String dbmsPath; + final int lastIndexOfDot = standardPath.lastIndexOf("."); + if (lastIndexOfDot >= 0 + && !standardPath.substring(lastIndexOfDot).contains("/")) { + final String base = standardPath.substring(0, lastIndexOfDot); + dbmsPath = base + dbmsSuffix + + standardPath.substring(lastIndexOfDot); + } else { + dbmsPath = standardPath + dbmsSuffix; + } + return dbmsPath; + } + + protected String removeInitialUnicodeBomIfNeeds(String sqlFileEncoding, + String sql) { + if ("UTF-8".equalsIgnoreCase(sqlFileEncoding) && sql.length() > 0 + && sql.charAt(0) == '\uFEFF') { + sql = sql.substring(1); + } + return sql; + } + + //========================================================================== + // ========= + // Behavior Query Path + // =================== + public void setupBehaviorQueryPathIfNeeds() { + if (!isBehaviorQueryPathEnabled()) { + return; + } + if (_outsideSqlPath.contains(":")) { + final String subDirectoryValue = _outsideSqlPath.substring(0, + _outsideSqlPath.lastIndexOf(":")); + final String subDirectoryPath = replaceString(subDirectoryValue, + ":", "/"); + final String behaviorQueryPath = _outsideSqlPath + .substring(_outsideSqlPath.lastIndexOf(":") + ":".length()); + final String behaviorClassPath = replaceString( + buildBehaviorSqlPackageName(), ".", "/"); + final String behaviorPackagePath = behaviorClassPath.substring(0, + behaviorClassPath.lastIndexOf("/")); + final String behaviorClassName = behaviorClassPath + .substring(behaviorClassPath.lastIndexOf("/") + + "/".length()); + _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + + "/" + behaviorClassName + "_" + behaviorQueryPath + + ".sql"; + } else { + _outsideSqlPath = replaceString(buildBehaviorSqlPackageName(), ".", + "/") + + "_" + _outsideSqlPath + ".sql"; + } + } + + protected String buildBehaviorSqlPackageName() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableDbName); + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + final String outsideSqlPackage = DBFluteConfig.getInstance() + .getOutsideSqlPackage(); + if (outsideSqlPackage != null && outsideSqlPackage.trim().length() > 0) { + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + ".".length()); + String tmp = behaviorTypeName.substring(0, behaviorTypeName + .lastIndexOf(".")); + final String exbhvName = tmp.contains(".") ? tmp.substring(tmp + .lastIndexOf(".") + + ".".length()) : tmp; + return outsideSqlPackage + "." + exbhvName + "." + + behaviorClassName; + } else { + return behaviorTypeName; + } + } + + protected boolean isBehaviorQueryPathEnabled() { + if (isProcedure()) {// [DBFlute-0.7.5] + return false; + } + return _outsideSqlPath != null && !_outsideSqlPath.contains("/") + && !_outsideSqlPath.contains(".") && _tableDbName != null; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean isSpecifiedOutsideSql() { + return _outsideSqlPath != null; + } + + // [DBFlute-0.7.5] + public boolean isProcedure() { + return _methodName != null && _methodName.startsWith("call"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected boolean isExistResource(String path) { + return ResourceUtil.isExist(path); + } + + protected String readText(final String path, String sqlFileEncoding) { + final java.io.InputStream is = ResourceUtil.getResourceAsStream(path); + final java.io.Reader reader = InputStreamReaderUtil.create(is, + sqlFileEncoding); + return ReaderUtil.readText(reader); + } + + protected static String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public void setDynamicBinding(boolean dynamicBinding) { + this._dynamicBinding = dynamicBinding; + } + + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public void setOffsetByCursorForcedly(boolean offsetByCursorForcedly) { + this._offsetByCursorForcedly = offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public void setLimitByCursorForcedly(boolean limitByCursorForcedly) { + this._limitByCursorForcedly = limitByCursorForcedly; + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + public String getOutsideSqlPath() { + return _outsideSqlPath; + } + + public void setOutsideSqlPath(String outsideSqlPath) { + this._outsideSqlPath = outsideSqlPath; + } + + public Object getParameterBean() { + return _parameterBean; + } + + public void setParameterBean(Object parameterBean) { + this._parameterBean = parameterBean; + } + + public Object getResultTypeSpecification() { + return _resultTypeSpecification; + } + + public void setResultTypeSpecification(Object resultTypeSpecification) { + this._resultTypeSpecification = resultTypeSpecification; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + this._methodName = methodName; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + this._statementConfig = statementConfig; + } + + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + this._tableDbName = tableDbName; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,37 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler; + +/** + * The dao of outside-sql. + * + * @author DBFlute(AutoGenerator) + */ +public interface OutsideSqlDao extends DaoReadable { + + //========================================================================== + // ========= + // Select + // ====== + List selectList(String path, Object pmb, + OutsideSqlOption option, Class entityType); + + Object selectCursor(String path, Object pmb, + OutsideSqlOption option, CursorHandler handler); + + //========================================================================== + // ========= + // Execute + // ======= + int execute(String path, Object pmb, OutsideSqlOption option); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Call + // ==== + void call(String path, Object pmb, OutsideSqlOption option); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,116 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; + +/** + * The option of outside-SQL. It contains various information about execution. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlOption { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Option + // ------ + protected String _pagingRequestType = "non"; + + protected boolean _dynamicBinding; + + /** The configuration of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // ----------------------------------------------------- + // Information + // ----------- + /** The DB name of table. It is not related with the options of outside-SQL. */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void autoPaging() { + _pagingRequestType = "auto"; + } + + public void manualPaging() { + _pagingRequestType = "manual"; + } + + public void dynamicBinding() { + _dynamicBinding = true; + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public String generateUniqueKey() { + return "{" + _pagingRequestType + "/" + _dynamicBinding + "}"; + } + + //========================================================================== + // ========= + // Copy + // ==== + public OutsideSqlOption copyOptionWithoutPaging() { + final OutsideSqlOption copyOption = new OutsideSqlOption(); + if (isDynamicBinding()) { + copyOption.dynamicBinding(); + } + copyOption.setTableDbName(_tableDbName); + return copyOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Option + // ------ + public boolean isAutoPaging() { + return "auto".equals(_pagingRequestType); + } + + public boolean isManualPaging() { + return "manual".equals(_pagingRequestType); + } + + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + // ----------------------------------------------------- + // Information + // ----------- + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/OutsideSqlOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/ProcedurePmb.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/ProcedurePmb.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/ProcedurePmb.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,16 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql; + +/** + * The parameter-bean for procedure. + * + * @author DBFlute(AutoGenerator) + */ +public interface ProcedurePmb { + + /** + * Get the value of procedure name. + * + * @return The value of procedure name. (NotNull) + */ + public String getProcedureName(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/ProcedurePmb.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,251 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.ProcedurePmb; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; + +/** + * The executor of outside-sql.
    + * + *
    + * {Basic}
    + *   o selectList()
    + *   o execute()
    + *   o call()
    + * 
    + * {Entity}
    + *   o entityHandling().selectEntity()
    + *   o entityHandling().selectEntityWithDeletedCheck()
    + * 
    + * {Cursor}
    + *   o cursorHandling().selectCursor()
    + * 
    + * {Paging}
    + *   o autoPaging().selectList()
    + *   o autoPaging().selectPage()
    + *   o manualPaging().selectList()
    + *   o manualPaging().selectPage()
    + * 
    + * {Option -- Dynamic}
    + *   o dynamicBinding().selectList()
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlBasicExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outside-sql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** Table DB name. (NotNull) */ + protected final String _tableDbName; + + /** Is it dynamic binding? */ + protected boolean _dynamicBinding; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlBasicExecutor(OutsideSqlDao outsideSqlDao, + String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the list of the entity. + * + * @param The type of entity for element. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The element type of entity. (NotNull) + * @return The result bean of selected list. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, Object pmb, + Class entityType) { + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + //========================================================================== + // ========= + // Execute + // ======= + /** + * Execute. {Insert/Update/Delete/Etc...} + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @return The count of execution. + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public int execute(String path, Object pmb) { + return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Procedure Call + // ============== + /** + * Call stored procedure. + * + * @param pmb The parameter-bean for procedure. (NotNull) + */ + public void call(ProcedurePmb pmb) { + if (pmb == null) { + throw new IllegalArgumentException( + "The argument of call() 'pmb' should not be null!"); + } + _outsideSqlDao.call(pmb.getProcedureName(), pmb, + createOutsideSqlOption()); + } + + //========================================================================== + // ========= + // Option + // ====== + // ----------------------------------------------------- + // Result Handling + // --------------- + /** + * Specify cursor handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.cursorHandling().selectCursor(path, pmb, handler);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlCursorExecutor cursorHandling() { + return new OutsideSqlCursorExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + /** + * Specify entity handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.entityHandling().selectEntityWithDeletedCheck(path, pmb, Xxx.class);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlEntityExecutor entityHandling() { + return new OutsideSqlEntityExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + // ----------------------------------------------------- + // Paging + // ------ + /** + * Option of autoPaging.
    If you invoke this, you don't need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * # -- limit 40, 20        *Here is unnecessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is auto. (NotNull) + */ + public OutsideSqlPagingExecutor autoPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.autoPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + /** + * Option of manualPaging.
    If you invoke this, you need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * #  limit 40, 20        *Here is necessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is manual. (NotNull) + */ + public OutsideSqlPagingExecutor manualPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.manualPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + // ----------------------------------------------------- + // Dynamic Binding + // --------------- + public OutsideSqlBasicExecutor dynamicBinding() { + _dynamicBinding = true; + return this; + } + + // ----------------------------------------------------- + // Statement Config + // ---------------- + public OutsideSqlBasicExecutor configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + return this; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected OutsideSqlOption createOutsideSqlOption() { + final OutsideSqlOption option = new OutsideSqlOption(); + option.setStatementConfig(_statementConfig); + if (_dynamicBinding) { + option.dynamicBinding(); + } + option.setTableDbName(_tableDbName);// as information + return option; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,69 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.executor; + +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlCursorExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlCursorExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public Object selectCursor(String path, PARAMETER_BEAN pmb, + CursorHandler handler) { + return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, + handler); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + public OutsideSqlCursorExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,155 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlEntityExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlEntityExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select entity. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, + Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls.isEmpty()) { + return null; + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + /** + * Select entity with deleted check. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted(not found). + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntityWithDeletedCheck(String path, + PARAMETER_BEAN pmb, Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(buildSearch4LogString(path, pmb, + entityType)); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + protected String buildSearch4LogString(String path, + PARAMETER_BEAN pmb, Class entityType) { + String tmp = "Table = " + _outsideSqlOption.getTableDbName() + + getLineSeparator(); + tmp = tmp + "Path = " + path + getLineSeparator(); + tmp = tmp + "Pmb = " + + (pmb != null ? pmb.getClass().getSimpleName() : "null") + ":" + + pmb + getLineSeparator(); + tmp = tmp + "Entity = " + + (entityType != null ? entityType.getSimpleName() : "null") + + getLineSeparator(); + tmp = tmp + "Option = " + _outsideSqlOption; + return tmp; + } + + // ----------------------------------------------------- + // Helper + // ------ + protected void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + protected void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlEntityExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlEntityExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,221 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DBFluteConfig; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; + +/** + * The paging executor of outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlPagingExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outsideSql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** The option of outsideSql. (NotNull) */ + protected final OutsideSqlOption _outsideSqlOption; + + /** The DB name of table. (NotNull) */ + protected final String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlPagingExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption, String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { + setupScrollableCursorIfNeeds(); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + /** + * Select page. + *

    + * The SQL should have Count and Paging.
    You can realize by + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * #   from MEMBER member
    +     * #     /[*]IF pmb.isPaging()[*]/
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #     /[*]END[*]/
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * #  /[*]END[*]/
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Wrong SQL {part 1}
    +     *     -- Line comment before ELSE comment --
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME -- The name of member...    *NG
    +     * #      -- The status name of member...                  *NG
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * # ...
    +     * o It's S2Dao's restriction...Sorry
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paging. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public PagingResultBean selectPage(final String path, + final PagingBean pmb, final Class entityType) { + final OutsideSqlOption countOption = _outsideSqlOption + .copyOptionWithoutPaging(); + final OutsideSqlEntityExecutor countExecutor = new OutsideSqlEntityExecutor( + _outsideSqlDao, countOption); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return pmb; + } + + public int count() { + pmb.xsetPaging(false); + return countExecutor.selectEntityWithDeletedCheck(path, pmb, + Integer.class); + } + + public List paging() { + pmb.xsetPaging(true); + return selectList(path, pmb, entityType); + } + }; + final PagingInvoker invoker = new PagingInvoker( + _tableDbName); + if (pmb.isCountLater()) { + invoker.countLater(); + } + return invoker.invokePaging(handler); + } + + protected void setupScrollableCursorIfNeeds() { + if (!_outsideSqlOption.isAutoPaging()) { + return; + } + StatementConfig statementConfig = _outsideSqlOption + .getStatementConfig(); + if (statementConfig != null + && statementConfig.getResultSetType() != null) { + return; + } + StatementConfig defaultStatementConfig = DBFluteConfig.getInstance() + .getDefaultStatementConfig(); + if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + return; + } + if (statementConfig == null) { + statementConfig = new StatementConfig(); + configure(statementConfig); + } + statementConfig.typeScrollInsensitive(); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlPagingExecutor configure(StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlPagingExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLink.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLink.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLink.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,91 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.pagenavi; + +/** + * The class of page number link. + * + * @author DBFlute(AutoGenerator) + */ +public class PageNumberLink implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageNumberElement; + + protected boolean _current; + + protected String _pageNumberLinkHref; + + //========================================================================== + // ========= + // Constructor + // =========== + public PageNumberLink() { + } + + //========================================================================== + // ========= + // Initializer + // =========== + public PageNumberLink initialize(int pageNumberElement, boolean current, + String pageNumberLinkHref) { + setPageNumberElement(pageNumberElement); + setCurrent(current); + setPageNumberLinkHref(pageNumberLinkHref); + return this; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuffer sb = new StringBuffer(); + + sb.append(" pageNumberElement=").append(_pageNumberElement); + sb.append(" pageNumberLinkHref=").append(_pageNumberLinkHref); + sb.append(" current=").append(_current); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageNumberElement() { + return _pageNumberElement; + } + + public void setPageNumberElement(int pageNumberElement) { + this._pageNumberElement = pageNumberElement; + } + + public boolean isCurrent() { + return _current; + } + + public void setCurrent(boolean current) { + this._current = current; + } + + public String getPageNumberLinkHref() { + return _pageNumberLinkHref; + } + + public void setPageNumberLinkHref(String pageNumberLinkHref) { + this._pageNumberLinkHref = pageNumberLinkHref; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLink.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.pagenavi; + +/** + * The setupper of page number link. + * + * @param The type of link. + * @author DBFlute(AutoGenerator) + */ +public interface PageNumberLinkSetupper { + + /** + * Set up page number link. + * + * @param pageNumberElement Page number element. + * @param current Is current page? + * @return Page number link. (NotNull) + */ + public LINK setup(int pageNumberElement, boolean current); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,215 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.group; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageGroupOption _pageGroupOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Calculate start page number. + * + * @return Start page number. + */ + public int calculateStartPageNumber() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int currentPageNumber = _currentPageNumber; + + int currentPageGroupNumber = (currentPageNumber / pageGroupSize); + if ((currentPageNumber % pageGroupSize) == 0) { + currentPageGroupNumber--; + } + final int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1; + if (!(currentPageNumber >= currentPageGroupStartPageNumber)) { + String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:"; + msg = msg + " currentPageNumber=" + currentPageNumber; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + return currentPageGroupStartPageNumber; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int allPageCount = _allPageCount; + final int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + final int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + pageGroupSize; + + final List resultList = new ArrayList(); + for (int i = currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + return resultList; + } + + /** + * Create the array of page number. + * + * @return The array of page number. (NotNUll) + */ + public int[] createPageNumberArray() { + assertPageGroupValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page-group? Using values are currentPageNumber and + * pageGroupSize. + * + * @return Determination. + */ + public boolean isExistPrePageGroup() { + assertPageGroupValid(); + return (_currentPageNumber > _pageGroupOption.getPageGroupSize()); + } + + /** + * Is existing next page-group? Using values are currentPageNumber and + * pageGroupSize and allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPageGroup() { + assertPageGroupValid(); + int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + _pageGroupOption.getPageGroupSize(); + return (nextPageGroupStartPageNumber <= _allPageCount); + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageGroupOption=").append(_pageGroupOption); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageGroupOption(PageGroupOption pageGroupOption) { + this._pageGroupOption = pageGroupOption; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,50 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.group; + +/** + * The option of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageGroupSize; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageGroupSize=").append(_pageGroupSize); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageGroupSize() { + return _pageGroupSize; + } + + public void setPageGroupSize(int pageGroupSize) { + this._pageGroupSize = pageGroupSize; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/group/PageGroupOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeBean.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeBean.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeBean.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,202 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.range; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageRangeValid(); + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + final int allPageCount = _allPageCount; + final int currentPageNumber = _currentPageNumber; + + final List resultList = new ArrayList(); + for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) { + if (i < 1) { + continue; + } + resultList.add(new Integer(i)); + } + + resultList.add(new Integer(currentPageNumber)); + + final int endPageNumber = (currentPageNumber + pageRangeSize); + for (int i = currentPageNumber + 1; i <= endPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + + final boolean fillLimit = _pageRangeOption.isFillLimit(); + final int limitSize = (pageRangeSize * 2) + 1; + if (fillLimit && !resultList.isEmpty() && resultList.size() < limitSize) { + final Integer firstElements = (Integer) resultList.get(0); + final Integer lastElements = (Integer) resultList.get(resultList + .size() - 1); + if (firstElements.intValue() > 1) { + for (int i = firstElements.intValue() - 1; resultList.size() < limitSize + && i > 0; i--) { + resultList.add(0, new Integer(i)); + } + } + for (int i = lastElements.intValue() + 1; resultList.size() < limitSize + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + } + return resultList; + } + + /** + * Get the array of page number. + * + * @return The array of page number. (NotNull) + */ + public int[] createPageNumberArray() { + assertPageRangeValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page range? + * + * @return Determination. + */ + public boolean isExistPrePageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[0] > 1; + } + + /** + * Is existing next page range? + * + * @return Determination. + */ + public boolean isExistNextPageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[array.length - 1] < _allPageCount; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageRangeOption=").append(_pageRangeOption); + + return sb.toString(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,61 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.pagenavi.range; + +/** + * The option of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageRangeSize; + + protected boolean _fillLimit; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageRangeSize=").append(_pageRangeSize); + sb.append(" fillLimit=").append(_fillLimit); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageRangeSize() { + return _pageRangeSize; + } + + public void setPageRangeSize(int pageRangeSize) { + this._pageRangeSize = pageRangeSize; + } + + public boolean isFillLimit() { + return _fillLimit; + } + + public void setFillLimit(boolean fillLimit) { + this._fillLimit = fillLimit; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/pagenavi/range/PageRangeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/AbstractSqlClause.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/AbstractSqlClause.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/AbstractSqlClause.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1799 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of SqlClause. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractSqlClause implements SqlClause { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String SELECT_HINT = "/*$dto.selectHint*/"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Basic + // ----- + /** Target table name. */ + protected final String _tableName; + + // ----------------------------------------------------- + // Clause Resource + // --------------- + /** + * Selected select column map. map:{tableAliasName : map:{columnName : + * selectColumnInfo}} + */ + protected Map> _selectedSelectColumnMap = new LinkedHashMap>(); + + /** + * Specified select column map. map:{ tableAliasName = map:{ columnName : + * null } } + */ + protected Map> _specifiedSelectColumnMap;// [ + + // DBFlute + // - + // 0.7.4 + // ] + + /** Specified derive sub-query map. */ + protected Map _specifiedDeriveSubQueryMap;// [DBFlute-0.7.4] + + /** Included select column map. */ + protected Map _includedSelectColumnMap = new LinkedHashMap(); + + /** + * The map of real column and alias of select clause. map:{realColumnName : + * aliasName} + */ + protected Map _selectClauseRealColumnAliasMap = new HashMap();// Without + + // linked + // ! + + /** Outer join map. */ + protected Map _outerJoinMap = new LinkedHashMap(); + + /** Where list. */ + protected List _whereList = new ArrayList(); + + /** Inline where list for BaseTable. */ + protected List _baseTableInlineWhereList = new ArrayList(); + + /** Order-by clause. */ + protected final OrderByClause _orderByClause = new OrderByClause(); + + /** Union clause list. */ + protected List _unionQueryInfoList = new ArrayList(); + + /** Is included-select-column effective? Default value is false. */ + protected boolean _isIncludedSelectColumnEffective = false; + + /** Is order-by effective? Default value is false. */ + protected boolean _isOrderByEffective = false; + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** Fetch start index. (for fetchXxx()) */ + protected int _fetchStartIndex = 0; + + /** Fetch size. (for fetchXxx()) */ + protected int _fetchSize = 0; + + /** Fetch page number. (for fetchXxx()) This value should be plus. */ + protected int _fetchPageNumber = 1; + + /** Is fetch-narrowing effective? Default value is false. */ + protected boolean _isFetchScopeEffective = false; + + // ----------------------------------------------------- + // AdditionalConditionAsOr + // ----------------------- + /** Is additional condition as or effective? */ + protected boolean _isAdditionalConditionAsOrEffective = false; + + // ----------------------------------------------------- + // WhereClauseSimpleFilter + // ----------------------- + /** The filter for where clause. */ + protected List _whereClauseSimpleFilterList; + + // ----------------------------------------------------- + // Selected Foreign Info + // --------------------- + /** The information of selected foreign table. */ + protected Map _selectedForeignInfo; + + // ----------------------------------------------------- + // Optional Info + // ------------- + protected boolean _formatClause; + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractSqlClause(String tableName) { + if (tableName == null) { + String msg = "Argument[tableName] must not be null."; + throw new IllegalArgumentException(msg); + } + _tableName = tableName; + } + + //========================================================================== + // ========= + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + public String getClause() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClause()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(false)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + public String getClausePKOnly() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClausePKOnly()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(true)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + protected String buildClauseWithoutMainSelect(boolean pkonly) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(getWhereClause()); + String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() + : getSelectClause()); + + // Delete template mark! (At the future this will be unnecessary.) + unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required + // ! + unionClause = replaceString(unionClause, + getUnionWhereFirstConditionMark(), "");// Required! + + sb.append(unionClause); + if (_isOrderByEffective && !_orderByClause.isEmpty()) { + sb.append(" "); + sb.append(getOrderByClause()); + } + sb.append(" "); + sb.append(getSqlSuffix()); + return sb.toString(); + } + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + public String getClauseFromWhereWithUnionTemplate() { + return buildClauseFromWhereAsTemplate(false); + } + + public String getClauseFromWhereWithWhereUnionTemplate() { + return buildClauseFromWhereAsTemplate(true); + } + + protected String buildClauseFromWhereAsTemplate(boolean template) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(buildWhereClause(template)); + sb.append(buildUnionClause(getUnionSelectClauseMark())); + return sb.toString(); + } + + protected String buildUnionClause(String selectClause) { + StringBuilder sb = new StringBuilder(); + for (final Iterator ite = _unionQueryInfoList + .iterator(); ite.hasNext();) { + final UnionQueryInfo unionQueryInfo = (UnionQueryInfo) ite.next(); + final String unionQueryClause = unionQueryInfo + .getUnionQueryClause(); + final boolean unionAll = unionQueryInfo.isUnionAll(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(unionAll ? " union all " : " union "); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(selectClause).append(" ").append(unionQueryClause); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // Clause Parts + // ============ + public String getSelectClause() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + List columnInfoList = dbmeta.getColumnInfoList(); + + // [DBFlute-0.7.4] + Map localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(getLocalTableAliasName()) + : null; + boolean existsSpecifiedLocal = localSpecifiedMap != null + && !localSpecifiedMap.isEmpty(); + + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedLocal + && !localSpecifiedMap.containsKey(columnName)) { + continue; + } + + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + Set tableAliasNameSet = _selectedSelectColumnMap.keySet(); + for (String tableAliasName : tableAliasNameSet) { + Map map = _selectedSelectColumnMap + .get(tableAliasName); + Collection selectColumnInfoList = map + .values(); + + // [DBFlute-0.7.4] + Map foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(tableAliasName) + : null; + boolean existsSpecifiedForeign = foreginSpecifiedMap != null + && !foreginSpecifiedMap.isEmpty(); + + for (SelectedSelectColumnInfo selectColumnInfo : selectColumnInfoList) { + String realColumnName = selectColumnInfo.buildRealColumnName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedForeign + && !foreginSpecifiedMap.containsKey(selectColumnInfo + .getColumnName())) { + continue; + } + + sb.append(", ").append(realColumnName).append(" as ").append( + selectColumnInfo.getColumnAliasName()); + _selectClauseRealColumnAliasMap.put(realColumnName, + selectColumnInfo.getColumnAliasName()); + } + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectClausePKOnly() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + UniqueInfo uniqueInfo = dbmeta.getPrimaryUniqueInfo(); + List columnInfoList = uniqueInfo.getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectHint() { + return createSelectHint(); + } + + public String getIncludedSelectColumnClause() { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _includedSelectColumnMap.keySet() + .iterator(); ite.hasNext(); count++) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sb.append(", ").append(realColumnName).append(" as ").append( + aliasName); + _selectClauseRealColumnAliasMap.put(realColumnName, aliasName); + } + return sb.toString(); + } + + public String getFromClause() { + StringBuilder sb = new StringBuilder(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("from "); + if (_baseTableInlineWhereList.isEmpty()) { + sb.append(_tableName).append(" dflocal"); + } else { + sb.append( + getInlineViewClause(_tableName, _baseTableInlineWhereList)) + .append(" dflocal"); + } + sb.append(getFromBaseTableHint()); + sb.append(getLeftOuterJoinClause()); + return sb.toString(); + } + + protected String getLeftOuterJoinClause() { + StringBuilder sb = new StringBuilder(); + for (Iterator ite = _outerJoinMap.keySet().iterator(); ite + .hasNext();) { + String aliasName = ite.next(); + LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + String joinTableName = joinInfo.getJoinTableName(); + List inlineWhereClauseList = joinInfo + .getInlineWhereClauseList(); + List additionalOnClauseList = joinInfo + .getAdditionalOnClauseList(); + Map joinOnMap = joinInfo.getJoinOnMap(); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" left outer join "); + if (inlineWhereClauseList.isEmpty()) { + sb.append(joinTableName); + } else { + sb.append(getInlineViewClause(joinTableName, + inlineWhereClauseList)); + } + sb.append(" ").append(aliasName).append(" on "); + int count = 0; + Set localColumnNameSet = joinOnMap.keySet(); + for (String localColumnName : localColumnNameSet) { + String foreignColumnName = (String) joinOnMap + .get(localColumnName); + if (count > 0) { + sb.append(" and "); + } + if (localColumnName.equals("$$fixedCondition$$")) { + sb.append(foreignColumnName); + } else { + sb.append(localColumnName).append(" = ").append( + foreignColumnName); + } + ++count; + } + for (String additionalOnClause : additionalOnClauseList) { + sb.append(" and ").append(additionalOnClause); + } + } + return sb.toString(); + } + + protected String getInlineViewClause(String joinTableName, + List inlineWhereClauseList) { + StringBuilder sb = new StringBuilder(); + sb.append("(select * from ").append(joinTableName).append(" where "); + int count = 0; + for (final Iterator ite = inlineWhereClauseList.iterator(); ite + .hasNext();) { + String clauseElement = ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count > 0) { + sb.append(" and "); + } + sb.append(clauseElement); + ++count; + } + sb.append(")"); + return sb.toString(); + } + + public String getFromBaseTableHint() { + return createFromBaseTableHint(); + } + + public String getFromHint() { + return createFromHint(); + } + + public String getWhereClause() { + return buildWhereClause(false); + } + + protected String buildWhereClause(boolean template) { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _whereList.iterator(); ite.hasNext(); count++) { + String clauseElement = (String) ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count == 0) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("where ").append( + template ? getWhereFirstConditionMark() : "").append( + clauseElement); + } else { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" and ").append(clauseElement); + } + } + if (template && sb.length() == 0) { + sb.append(getWhereClauseMark()); + } + return sb.toString(); + } + + public String getOrderByClause() { + String orderByClause = null; + if (!_unionQueryInfoList.isEmpty()) { + if (_selectClauseRealColumnAliasMap == null + || _selectClauseRealColumnAliasMap.isEmpty()) { + String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + + toString(); + throw new IllegalStateException(msg); + } + orderByClause = _orderByClause + .getOrderByClause(_selectClauseRealColumnAliasMap); + } else { + orderByClause = _orderByClause.getOrderByClause(); + } + if (isFormatClauseEffective() && orderByClause != null + && orderByClause.trim().length() > 0) { + return getLineSeparator() + " " + orderByClause; + } else { + return orderByClause; + } + } + + public String getSqlSuffix() { + String sqlSuffix = createSqlSuffix(); + if (isFormatClauseEffective() && sqlSuffix != null + && sqlSuffix.trim().length() > 0) { + return getLineSeparator() + sqlSuffix; + } else { + return sqlSuffix; + } + } + + //========================================================================== + // ========= + // Copy Parts + // ========== + public void copyIncludedSelectColumn(SqlClause sqlClause) { + Set keySet = _includedSelectColumnMap.keySet(); + for (Iterator ite = keySet.iterator(); ite.hasNext();) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sqlClause.registerIncludedSelectColumn(aliasName, realColumnName); + } + } + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected select column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath) { + _selectedSelectColumnMap + .put(foreignTableAliasName, createSelectedSelectColumnInfo( + foreignTableAliasName, localTableName, + foreignPropertyName, localRelationPath)); + } + + protected Map createSelectedSelectColumnInfo( + String foreignTableAliasName, String localTableName, + String foreignPropertyName, String localRelationPath) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + final int relationNo = foreignInfo.getRelationNo(); + String nextRelationPath = "_" + relationNo; + if (localRelationPath != null) { + nextRelationPath = localRelationPath + nextRelationPath; + } + final Map resultMap = new LinkedHashMap(); + final DBMeta foreignDBMeta = foreignInfo.getForeignDBMeta(); + final List columnInfoList = foreignDBMeta + .getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + final String columnDbName = columnInfo.getColumnDbName(); + final SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo(); + selectColumnInfo.setTableAliasName(foreignTableAliasName); + selectColumnInfo.setColumnName(columnDbName); + selectColumnInfo + .setColumnAliasName(columnDbName + nextRelationPath); + resultMap.put(columnDbName, selectColumnInfo); + } + return resultMap; + } + + public static class SelectedSelectColumnInfo { + protected String tableAliasName; + + protected String columnName; + + protected String columnAliasName; + + public String buildRealColumnName() { + if (tableAliasName != null) { + return tableAliasName + "." + columnName; + } else { + return columnName; + } + } + + public String getTableAliasName() { + return tableAliasName; + } + + public void setTableAliasName(String tableAliasName) { + this.tableAliasName = tableAliasName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnAliasName() { + return columnAliasName; + } + + public void setColumnAliasName(String columnAliasName) { + this.columnAliasName = columnAliasName; + } + } + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + public void ignoreIncludedSelectColumn() { + _isIncludedSelectColumnEffective = false; + } + + public void makeIncludedSelectColumnEffective() { + if (!_includedSelectColumnMap.isEmpty()) { + _isIncludedSelectColumnEffective = true; + } + } + + public void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + _isIncludedSelectColumnEffective = true; + _includedSelectColumnMap.put(aliasName, realColumnName); + } + + //========================================================================== + // ========= + // OuterJoin + // ========= + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap) { + assertAlreadyOuterJoin(aliasName); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + final LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo(); + joinInfo.setAliasName(aliasName); + joinInfo.setJoinTableName(joinTableName); + joinInfo.setJoinOnMap(joinOnMap); + _outerJoinMap.put(aliasName, joinInfo); + } + + protected static class LeftOuterJoinInfo { + protected String _aliasName; + + protected String _joinTableName; + + protected List _inlineWhereClauseList = new ArrayList(); + + protected List _additionalOnClauseList = new ArrayList(); + + protected Map _joinOnMap; + + protected boolean _onClauseInline; + + public String getAliasName() { + return _aliasName; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public String getJoinTableName() { + return _joinTableName; + } + + public void setJoinTableName(String value) { + _joinTableName = value; + } + + public List getInlineWhereClauseList() { + return _inlineWhereClauseList; + } + + public void addInlineWhereClause(String value) { + _inlineWhereClauseList.add(value); + } + + public List getAdditionalOnClauseList() { + return _additionalOnClauseList; + } + + public void addAdditionalOnClause(String value) { + _additionalOnClauseList.add(value); + } + + public Map getJoinOnMap() { + return _joinOnMap; + } + + public void setJoinOnMap(Map value) { + _joinOnMap = value; + } + + public boolean isOnClauseInline() { + return _onClauseInline; + } + + public void setOnClauseInline(boolean value) { + _onClauseInline = value; + } + } + + protected void assertAlreadyOuterJoin(String aliasName) { + if (_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have already registered in outer join: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + protected void assertJoinOnMapNotEmpty(Map joinOnMap, + String aliasName) { + if (joinOnMap.isEmpty()) { + String msg = "The joinOnMap should not be empty: aliasName=" + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Where + // ===== + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + key.addWhereClause(_whereList, columnFullName, value); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + assertObjectNotNull("option of " + columnFullName, option); + key.addWhereClause(_whereList, columnFullName, value, option); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String clause) { + assertStringNotNullAndNotTrimmedEmpty("clause", clause); + _whereList.add(clause); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void exchangeFirstWhereClauseForLastOne() { + if (_whereList.size() > 1) { + final String first = (String) _whereList.get(0); + final String last = (String) _whereList.get(_whereList.size() - 1); + _whereList.set(0, last); + _whereList.set(_whereList.size() - 1, first); + } + } + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + key.addWhereClause(_baseTableInlineWhereList, columnName, value); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + assertObjectNotNull("option of " + columnName, option); + key + .addWhereClause(_baseTableInlineWhereList, columnName, value, + option); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String value) { + _baseTableInlineWhereList.add(value); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value); + } + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + joinInfo.addAdditionalOnClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + joinInfo.addInlineWhereClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + protected void assertNotYetOuterJoin(String aliasName) { + if (!_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have not registered in outer join yet: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective() { + _isAdditionalConditionAsOrEffective = true; + } + + public void ignoreAdditionalConditionAsOr() { + _isAdditionalConditionAsOrEffective = false; + } + + protected void arrangeWhereListAdditionalConditionAsOr( + List whereList) { + if (_isAdditionalConditionAsOrEffective) { + if (whereList.size() < 2) { + String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + + toString(); + throw new IllegalStateException(msg); + } + final String lastWhereClause = (String) whereList.remove(whereList + .size() - 1); + final String preWhereClause = (String) whereList.remove(whereList + .size() - 1); + if (preWhereClause.startsWith("(") && preWhereClause.endsWith(")")) { + final String plainClause = preWhereClause.substring("(" + .length(), preWhereClause.length() - ")".length()); + whereList.add("(" + plainClause + " or " + lastWhereClause + + ")"); + } else { + whereList.add("(" + preWhereClause + " or " + lastWhereClause + + ")"); + } + } + } + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause() { + return _orderByClause; + } + + public SqlClause clearOrderBy() { + _isOrderByEffective = false; + _orderByClause.clear(); + return this; + } + + public SqlClause ignoreOrderBy() { + _isOrderByEffective = false; + return this; + } + + public SqlClause makeOrderByEffective() { + if (!_orderByClause.isEmpty()) { + _isOrderByEffective = true; + } + return this; + } + + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + _isOrderByEffective = true; + if (!_orderByClause.isSameOrderByColumn(orderByProperty)) { + clearOrderBy(); + registerOrderBy(orderByProperty, registeredOrderByProperty, + ascOrDesc); + } else { + _orderByClause.reverseAll(); + } + } + + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + try { + _isOrderByEffective = true; + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, + "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + + if (registeredOrderByProperty == null + || registeredOrderByProperty.trim().length() == 0) { + registeredOrderByProperty = orderByProperty; + } + + final List registeredOrderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer( + registeredOrderByProperty, "/"); + while (st.hasMoreElements()) { + registeredOrderByList.add(st.nextToken()); + } + } + + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite + .hasNext();) { + String orderBy = ite.next(); + String registeredOrderBy = (String) registeredOrderByList + .get(count); + + _isOrderByEffective = true; + String aliasName = null; + String columnName = null; + String registeredAliasName = null; + String registeredColumnName = null; + + if (orderBy.indexOf(".") < 0) { + columnName = orderBy; + } else { + aliasName = orderBy.substring(0, orderBy.lastIndexOf(".")); + columnName = orderBy + .substring(orderBy.lastIndexOf(".") + 1); + } + + if (registeredOrderBy.indexOf(".") < 0) { + registeredColumnName = registeredOrderBy; + } else { + registeredAliasName = registeredOrderBy.substring(0, + registeredOrderBy.lastIndexOf(".")); + registeredColumnName = registeredOrderBy + .substring(registeredOrderBy.lastIndexOf(".") + 1); + } + + OrderByElement element = new OrderByElement(); + element.setAliasName(aliasName); + element.setColumnName(columnName); + element.setRegisteredAliasName(registeredAliasName); + element.setRegisteredColumnName(registeredColumnName); + if (ascOrDesc) { + element.setupAsc(); + } else { + element.setupDesc(); + } + _orderByClause.addOrderByElement(element); + + count++; + } + } catch (RuntimeException e) { + String msg = "registerOrderBy() threw the exception: orderByProperty=" + + orderByProperty; + msg = msg + " registeredColumnFullName=" + + registeredOrderByProperty; + msg = msg + " ascOrDesc=" + ascOrDesc; + msg = msg + " sqlClause=" + this.toString(); + throw new RuntimeException(msg, e); + } + } + + public void addNullsFirstToPreviousOrderBy() { + _orderByClause + .addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + public void addNullsLastToPreviousOrderBy() { + _orderByClause + .addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() {// As + // Default + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + return orderByElementClause + " nulls " + + (nullsFirst ? "first" : "last"); + } + }; + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper + // For + // Nulls + // Unsupported + // Database + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + final String thenNumber = nullsFirst ? "1" : "0"; + final String elseNumber = nullsFirst ? "0" : "1"; + final String caseWhen = "case when " + columnName + + " is not null then " + thenNumber + " else " + + elseNumber + " end asc"; + return caseWhen + ", " + orderByElementClause; + } + }; + } + + //========================================================================== + // ========= + // UnionQuery + // ========== + public void registerUnionQuery(String unionQueryClause, boolean unionAll) { + assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", + unionQueryClause); + final UnionQueryInfo unionQueryInfo = new UnionQueryInfo(); + unionQueryInfo.setUnionQueryClause(unionQueryClause); + unionQueryInfo.setUnionAll(unionAll); + _unionQueryInfoList.add(unionQueryInfo); + } + + protected static class UnionQueryInfo { + protected String _unionQueryClause; + + protected boolean _unionAll; + + public String getUnionQueryClause() { + return _unionQueryClause; + } + + public void setUnionQueryClause(String unionQueryClause) { + _unionQueryClause = unionQueryClause; + } + + public boolean isUnionAll() { + return _unionAll; + } + + public void setUnionAll(boolean unionAll) { + _unionAll = unionAll; + } + } + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize) { + _isFetchScopeEffective = true; + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = 0; + _fetchSize = fetchSize; + _fetchPageNumber = 1; + doClearFetchPageClause(); + doFetchFirst(); + return this; + } + + /** + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize) { + _isFetchScopeEffective = true; + if (fetchStartIndex < 0) { + String msg = "Argument[fetchStartIndex] must be plus or zero: " + + fetchStartIndex; + throw new IllegalArgumentException(msg); + } + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = fetchStartIndex; + _fetchSize = fetchSize; + return fetchPage(1); + } + + /** + * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If + * minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber) { + _isFetchScopeEffective = true; + if (fetchPageNumber <= 0) { + fetchPageNumber = 1; + } + if (_fetchSize <= 0) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Fetch size should not be minus or zero!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "When you invoke this method, it is necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. " + + getLineSeparator(); + msg = msg + + "Please confirm your program. Does it really invoke 'fetchPage()' with 'fetchFirst()' or 'fetchScope()'?" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchPage(3);" + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchFirst(20); // The size of page" + + getLineSeparator(); + msg = msg + " cb.fetchPage(3); // The number of target page" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Actual Parameter Value]" + getLineSeparator(); + msg = msg + "fetchSize=" + _fetchSize + getLineSeparator(); + msg = msg + "fetchPageNumber=" + fetchPageNumber + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + _fetchPageNumber = fetchPageNumber; + if (_fetchPageNumber == 1 && _fetchStartIndex == 0) { + return fetchFirst(_fetchSize); + } + doClearFetchPageClause(); + doFetchPage(); + return this; + } + + abstract protected void doFetchFirst(); + + abstract protected void doFetchPage(); + + abstract protected void doClearFetchPageClause(); + + public int getFetchStartIndex() { + return _fetchStartIndex; + } + + public int getFetchSize() { + return _fetchSize; + } + + public int getFetchPageNumber() { + return _fetchPageNumber; + } + + /** + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1)); + } + + /** + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * _fetchPageNumber); + } + + public boolean isFetchScopeEffective() { + return _isFetchScopeEffective; + } + + public SqlClause ignoreFetchScope() { + _isFetchScopeEffective = false; + doClearFetchPageClause(); + return this; + } + + public SqlClause makeFetchScopeEffective() { + if (getFetchSize() > 0 && getFetchPageNumber() > 0) { + fetchPage(getFetchPageNumber()); + } + return this; + } + + public boolean isFetchStartIndexSupported() { + return true; // Default + } + + public boolean isFetchSizeSupported() { + return true; // Default + } + + abstract protected String createSelectHint(); + + abstract protected String createFromBaseTableHint(); + + abstract protected String createFromHint(); + + abstract protected String createSqlSuffix(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * The implementation. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getFetchSize(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _isFetchScopeEffective; + } + + //========================================================================== + // ========= + // Resolver + // ======== + public String resolveJoinAliasName(String relationPath, int cqNestNo) { + return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo); + } + + public String resolveNestLevelExpression(String name, int cqNestNo) { + // if (cqNestNo > 1) { + // return name + "_n" + cqNestNo; + // } else { + // return name; + // } + return name; + } + + public int resolveRelationNo(String localTableName, + String foreignPropertyName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + return foreignInfo.getRelationNo(); + } + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName() { + return "dflocal"; + } + + public String getForeignTableAliasPrefix() { + return "dfrelation"; + } + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark() { + return "#df:whereClause#"; + } + + public String getWhereFirstConditionMark() { + return "#df:whereFirstCondition#"; + } + + public String getUnionSelectClauseMark() { + return "#df:unionSelectClause#"; + } + + public String getUnionWhereClauseMark() { + return "#df:unionWhereClause#"; + } + + public String getUnionWhereFirstConditionMark() { + return "#df:unionWhereFirstCondition#"; + } + + //========================================================================== + // =========== + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + if (_whereClauseSimpleFilterList == null) { + _whereClauseSimpleFilterList = new ArrayList(); + } + _whereClauseSimpleFilterList.add(whereClauseSimpleFilter); + } + + protected String filterWhereClauseSimply(String clauseElement) { + if (_whereClauseSimpleFilterList == null + || _whereClauseSimpleFilterList.isEmpty()) { + return clauseElement; + } + for (final Iterator ite = _whereClauseSimpleFilterList + .iterator(); ite.hasNext();) { + final WhereClauseSimpleFilter filter = ite.next(); + if (filter == null) { + String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + + _whereClauseSimpleFilterList; + throw new IllegalStateException(msg); + } + clauseElement = filter.filterClauseElement(clauseElement); + } + return clauseElement; + } + + //========================================================================== + // =========== + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty() { + if (_selectedForeignInfo == null) { + return true; + } + return _selectedForeignInfo.isEmpty(); + } + + public boolean hasSelectedForeignInfo(String relationPath) { + if (_selectedForeignInfo == null) { + return false; + } + return _selectedForeignInfo.containsKey(relationPath); + } + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName) { + if (_selectedForeignInfo == null) { + _selectedForeignInfo = new HashMap(); + } + _selectedForeignInfo.put(relationPath, foreignPropertyName); + } + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective() { + return _formatClause; + } + + public void makeFormatClauseEffective() { + _formatClause = true; + } + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity) { + return getSubQueryBeginMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + public String resolveSubQueryEndMark(String subQueryIdentity) { + return getSubQueryEndMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + protected String getSubQueryBeginMarkPrefix() { + return "--df:SubQueryBegin#"; + } + + protected String getSubQueryEndMarkPrefix() { + return "--df:SubQueryEnd#"; + } + + protected String getSubQueryIdentityTerminal() { + return "#IdentityTerminal#"; + } + + public String filterSubQueryIndent(String sql) { + return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql; + } + + protected String filterSubQueryIndent(String sql, String preIndent) { + if (!isFormatClauseEffective()) { + return sql; + } + final String lineSeparator = getLineSeparator(); + if (!sql.contains(getSubQueryBeginMarkPrefix())) { + return sql; + } + final String[] lines = sql.split(lineSeparator); + final String beginMarkPrefix = getSubQueryBeginMarkPrefix(); + final String endMarkPrefix = getSubQueryEndMarkPrefix(); + final String identityTerminal = getSubQueryIdentityTerminal(); + final int terminalLength = identityTerminal.length(); + StringBuilder mainSb = new StringBuilder(); + StringBuilder subSb = null; + boolean throughBegin = false; + boolean throughBeginFirst = false; + String subQueryIdentity = null; + String indent = null; + for (String line : lines) { + if (!throughBegin) { + if (line.contains(beginMarkPrefix)) { + throughBegin = true; + subSb = new StringBuilder(); + final int markIndex = line.indexOf(beginMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subQueryIdentity = line.substring(markIndex + + beginMarkPrefix.length(), terminalIndex); + subSb.append(clause); + indent = buildSpaceBar(markIndex - preIndent.length()); + } else { + mainSb.append(line).append(getLineSeparator()); + } + } else { + // - - - - - - - - + // In begin to end + // - - - - - - - - + if (line.contains(endMarkPrefix + subQueryIdentity)) {// The end + final int markIndex = line.indexOf(endMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subSb.append(clause).append(getLineSeparator()); + final String currentSql = filterSubQueryIndent(subSb + .toString(), preIndent + indent); + mainSb.append(currentSql); + throughBegin = false; + throughBeginFirst = false; + } else { + if (!throughBeginFirst) { + subSb.append(line.trim()).append(getLineSeparator()); + throughBeginFirst = true; + } else { + subSb.append(indent).append(line).append( + getLineSeparator()); + } + } + } + } + final String filteredSql = mainSb.toString(); + + if (throughBegin) { + String msg = "End Mark Not Found!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + if (filteredSql.contains(beginMarkPrefix)) { + String msg = "Any begin marks are not filtered!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + return filteredSql; + } + + protected String buildSpaceBar(int size) { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < size; i++) { + sb.append(" "); + } + return sb.toString(); + } + + public static class SubQueryIndentFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SubQueryIndentFailureException(String msg) { + super(msg); + } + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName) { + if (_specifiedSelectColumnMap == null) { + _specifiedSelectColumnMap = new HashMap>(); + } + if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) { + _specifiedSelectColumnMap.put(tableAliasName, + new HashMap()); + } + Map elementMap = _specifiedSelectColumnMap + .get(tableAliasName); + elementMap.put(columnName, null); // The value is dummy for extension at + // the future. + _specifiedSelectColumnMap.put(tableAliasName, elementMap); + } + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) { + if (_specifiedDeriveSubQueryMap == null) { + _specifiedDeriveSubQueryMap = new LinkedHashMap(); + } + _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery); + } + + public boolean hasSpecifiedDeriveSubQuery(String aliasName) { + if (_specifiedDeriveSubQueryMap == null) { + return false; + } + return _specifiedDeriveSubQueryMap.containsKey(aliasName); + } + + public String getSpecifiedColumnNameAsOne() { + if (_specifiedSelectColumnMap != null + && _specifiedSelectColumnMap.size() == 1) { + Map elementMap = _specifiedSelectColumnMap + .get(_specifiedSelectColumnMap.keySet().iterator().next()); + if (elementMap != null && elementMap.size() == 1) { + return elementMap.keySet().iterator().next(); + } + } + return null; + } + + public void clearSpecifiedSelectColumn() { + if (_specifiedSelectColumnMap != null) { + _specifiedSelectColumnMap.clear(); + _specifiedSelectColumnMap = null; + } + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + public String getClauseQueryUpdate(Map columnParameterMap) { + if (columnParameterMap.isEmpty()) { + return null; + } + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryUpdate() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("update ").append(_tableName).append(ln); + int index = 0; + // It is guaranteed that the map has one or more elements. + for (String columnName : columnParameterMap.keySet()) { + final String parameter = columnParameterMap.get(columnName); + if (index == 0) { + sb.append(" set ").append(columnName).append(" = ").append( + parameter).append(ln); + } else { + sb.append(" , ").append(columnName).append(" = ").append( + parameter).append(ln); + } + ++index; + } + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("where ")); + sb.append(" ").append(subQuery); + return sb.toString(); + } + } + + public String getClauseQueryDelete() { + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryDelete() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("delete from ").append(_tableName).append(ln); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("from ")); + return "delete " + subQuery; + } + } + + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return true; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return false; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + return DBMetaInstanceHandler.findDBMeta(_tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String replaceString(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/AbstractSqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByClause.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByClause.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByClause.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,281 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByClause implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _orderByList = new ArrayList(); + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. + */ + public OrderByClause() { + } + + //========================================================================== + // =========== + // Manipulation + // ============ + /** + * Add order-by element. + * + * @param orderByElement Order-by element. (NotNull) + */ + public void addOrderByElement(OrderByElement orderByElement) { + _orderByList.add(orderByElement); + } + + /** + * Insert first order-by element . + * + * @param orderByElement Order-by element. (NotNull) + */ + public void insertFirstOrderByElement(OrderByElement orderByElement) { + _orderByList.add(0, orderByElement); + } + + public void reverseAll() { + for (Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + ite.next().reverse(); + } + } + + public void exchangeFirstOrderByElementForLastOne() { + if (_orderByList.size() > 1) { + final OrderByElement first = _orderByList.get(0); + final OrderByElement last = _orderByList + .get(_orderByList.size() - 1); + _orderByList.set(0, last); + _orderByList.set(_orderByList.size() - 1, first); + } + } + + public void addNullsFirstToPreviousOrderByElement( + OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, true); + } + + public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, false); + } + + public static interface OrderByNullsSetupper { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst); + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public List getOrderByList() { + return _orderByList; + } + + public String getOrderByClause() { + return getOrderByClause(null); + } + + public String getOrderByClause( + Map selectClauseRealColumnAliasMap) { + if (_orderByList.isEmpty()) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + final String delimiter = ", "; + for (final Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + final OrderByElement element = ite.next(); + sb.append(delimiter); + if (selectClauseRealColumnAliasMap != null) { + sb.append(element + .getElementClause(selectClauseRealColumnAliasMap)); + } else { + sb.append(element.getElementClause()); + } + } + sb.delete(0, delimiter.length()).insert(0, "order by "); + return sb.toString(); + } + + public boolean isSameOrderByColumn(String orderByProperty) { + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + if (_orderByList.size() != orderByList.size()) { + return false; + } + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite.hasNext();) { + final String columnFullName = ite.next(); + final OrderByElement element = (OrderByElement) _orderByList + .get(count); + if (!element.getColumnFullName().equals(columnFullName)) { + return false; + } + count++; + } + return true; + } + + //========================================================================== + // =========== + // First Element + // ============= + public boolean isFirstElementAsc() { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new IllegalStateException(msg); + } + final OrderByElement element = (OrderByElement) _orderByList.get(0); + return element.isAsc(); + } + + public boolean isFirstElementDesc() { + return !isFirstElementAsc(); + } + + public boolean isSameAsFirstElementAliasName(String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementColumnName(String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + /** + * @param expectedAliasName Expected alias-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredAliasName( + String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getRegisteredAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredColumnName( + String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getRegisteredColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + //========================================================================== + // =========== + // Delegate of List + // ================ + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _orderByList.isEmpty(); + } + + /** + * Get iterator of order-by list. + * + * @return Determination. + */ + public Iterator iterator() { + return _orderByList.iterator(); + } + + /** + * Clear order-by list. + */ + public void clear() { + _orderByList.clear(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view string of all-columns value. (NotNUll) + */ + public String toString() { + return _orderByList.toString(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByElement.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByElement.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByElement.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,273 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByElement implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + /** The value of alias name. */ + protected String _aliasName; + + /** The value of column name. */ + protected String _columnName; + + /** The value of registered alias name. */ + protected String _registeredAliasName; + + /** The value of registered column name. */ + protected String _registeredColumnName; + + /** The value of ascDesc. */ + protected String _ascDesc = "asc"; + + /** The setupper of order-by nulls. */ + protected OrderByClause.OrderByNullsSetupper _orderByNullsSetupper; + + /** Is nulls ordered first? */ + protected boolean _nullsFirst; + + //========================================================================== + // =========== + // Manipulation + // ============ + public void setupAsc() { + _ascDesc = "asc"; + } + + public void setupDesc() { + _ascDesc = "desc"; + } + + public void reverse() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + _ascDesc = "desc"; + } else if (_ascDesc.equals("desc")) { + _ascDesc = "asc"; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public boolean isAsc() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + return true; + } else if (_ascDesc.equals("desc")) { + return false; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + public String getColumnFullName() { + final StringBuilder sb = new StringBuilder(); + if (_aliasName != null) { + sb.append(_aliasName).append("."); + } + if (_columnName == null) { + String msg = "The attribute[columnName] should not be null."; + throw new IllegalStateException(msg); + } + sb.append(_columnName); + return sb.toString(); + } + + public String getElementClause() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + sb.append(getColumnFullName()).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(getColumnFullName(), sb + .toString(), _nullsFirst); + } else { + return sb.toString(); + } + } + + public String getElementClause( + Map selectClauseRealColumnAliasMap) { + if (selectClauseRealColumnAliasMap == null) { + String msg = "The argument[selectClauseRealColumnAliasMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + final String columnAlias = selectClauseRealColumnAliasMap + .get(getColumnFullName()); + if (columnAlias == null || columnAlias.trim().length() == 0) { + throwOrderByColumnNotFoundException(getColumnFullName(), + selectClauseRealColumnAliasMap); + } + sb.append(columnAlias).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(columnAlias, sb.toString(), + _nullsFirst); + } else { + return sb.toString(); + } + } + + protected void throwOrderByColumnNotFoundException(String columnName, + Map selectClauseRealColumnAliasMap) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The column for order-by was Not Found in select-clause!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "If you use 'union()' or 'unionAll()', Check your condition-bean!" + + getLineSeparator(); + msg = msg + "Order-by for union can use only columns on select-clause." + + getLineSeparator(); + msg = msg + + "So the rule when using union is little difference from the one when NOT using." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " [before (x)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *NG!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [after (o)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.setupSelect_Bbb();// *Point!" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *OK!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + + "Or else if you DON'T use 'union()' or 'unionAll()', This is the Framework Exception!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Column]" + getLineSeparator(); + msg = msg + columnName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Internal Object]" + getLineSeparator(); + msg = msg + "selectClauseRealColumnAliasMap=" + + selectClauseRealColumnAliasMap + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view-string of all-columns value. (NotNull) + */ + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{aliasName=").append(_aliasName); + sb.append(" columnName=").append(_columnName); + sb.append(" registeredAliasName=").append(_registeredAliasName); + sb.append(" registeredColumnName=").append(_registeredColumnName); + sb.append(" ascDesc=").append(_ascDesc).append("}"); + return sb.toString(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getAliasName() { + return _aliasName; + } + + public String getColumnName() { + return _columnName; + } + + public String getRegisteredAliasName() { + return _registeredAliasName; + } + + public String getRegisteredColumnName() { + return _registeredColumnName; + } + + public String getAscDesc() { + return _ascDesc; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public void setColumnName(String value) { + _columnName = value; + } + + public void setRegisteredAliasName(String value) { + _registeredAliasName = value; + } + + public void setRegisteredColumnName(String value) { + _registeredColumnName = value; + } + + public void setAscDesc(String value) { + _ascDesc = value; + } + + public void setOrderByNullsSetupper( + OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) { + _orderByNullsSetupper = value; + _nullsFirst = nullsFirst; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/OrderByElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClause.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClause.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClause.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,624 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The interface of SQL-clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlClause { + + //========================================================================== + // =========== + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + /** + * Get the clause of all parts. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts. (NotNull) + */ + public String getClause(); + + /** + * Get clause of all parts as PK-only. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts as PK-Only. (NotNull) + */ + public String getClausePKOnly(); + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + /** + * Get from-where clause without select and orderBy and sqlSuffix. For + * subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithUnionTemplate(); + + /** + * Get from-where clause without select and orderBy and sqlSuffix as + * template. For subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark and WhereClauseMark and + * WhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithWhereUnionTemplate(); + + //========================================================================== + // =========== + // Clause Parts + // ============ + /** + * Get the clause of 'select'. This is an internal method. + * + * @return The clause of select. {[select ...] from table...} (NotNull) + */ + public String getSelectClause(); + + /** + * Get The clause of 'select' as PK-only. This is an internal method. + * + * @return The clause of select PK-only. {[select ...] from table...} + * (NotNull) + */ + public String getSelectClausePKOnly(); + + /** + * Get the hint of 'select'. This is an internal method. + * + * @return The hint of 'select'. {select [select-hint] * from table...} + * (NotNull) + */ + public String getSelectHint(); + + /** + * Get the clause of included-select-column. This is an internal method. + * + * @return The clause of included-select-column. {select ... , + * [included-select-column clause] from table...} (NotNull) + */ + public String getIncludedSelectColumnClause(); + + /** + * Get the clause of 'from'. This is an internal method. + * + * @return The clause of 'from'. (NotNull) + */ + public String getFromClause(); + + /** + * Get the clause of from-base-table. This is an internal method. + * + * @return The hint of from-base-table. {select * from table + * [from-base-table-hint] where ...} (NotNull) + */ + public String getFromBaseTableHint(); + + /** + * Get the hint of 'from'. This is an internal method. + * + * @return The hint of 'from'. {select * from table left outer join ... on + * ... [from-hint] where ...} (NotNull) + */ + public String getFromHint(); + + /** + * Get the clause of 'where'. This is an internal method. + * + * @return The clause of 'where'. (NotNull) + */ + public String getWhereClause(); + + /** + * Get the clause of 'order-by'. This is an internal method. + * + * @return The clause of 'order-by'. (NotNull) + */ + public String getOrderByClause(); + + /** + * Get the suffix of SQL. This is an internal method. + * + * @return The suffix of SQL. {select * from table where ... order by ... + * [sql-suffix]} (NotNull) + */ + public String getSqlSuffix(); + + //========================================================================== + // ========= + // Copy Parts + // ========== + /** + * Copy included-select-column. + * + * @param sqlClause SQL-clause. (NotNull) + */ + public void copyIncludedSelectColumn(SqlClause sqlClause); + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected-select-column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath); + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + /** + * Ignore included-select-column. + */ + public void ignoreIncludedSelectColumn(); + + /** + * Make included-select-column effective. + */ + public void makeIncludedSelectColumnEffective(); + + /** + * Register included-select-column. + * + * @param aliasName The alias name of the included-select-column. (NotNull) + * @param realColumnName The real column name of the included-select-column. + * (NotNull) + */ + public void registerIncludedSelectColumn(String aliasName, + String realColumnName); + + //========================================================================== + // ========= + // OuterJoin + // ========= + /** + * Register outer-join. + * + * @param joinTableName The name of join table. {left outer join + * [joinTableName]} (NotNull) + * @param aliasName The alias name of join table. {left outer join + * joinTableName [aliasName]} (NotNull and Unique per invoking + * method) + * @param joinOnMap Map that has conditions of on-clause. (NotNull) + */ + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap); + + //========================================================================== + // ========= + // Where + // ===== + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value); + + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + * @param option Condition-option. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option); + + /** + * Register 'where' clause. + * + * @param clause The clause of 'where'. (NotNull) + */ + public void registerWhereClause(String clause); + + /** + * Exchange first The clause of 'where' for last one. + */ + public void exchangeFirstWhereClauseForLastOne(); + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value); + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option); + + public void registerBaseTableInlineWhereClause(String value); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline); + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective(); + + public void ignoreAdditionalConditionAsOr(); + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause(); + + public SqlClause clearOrderBy(); + + public SqlClause ignoreOrderBy(); + + public SqlClause makeOrderByEffective(); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + public void addNullsFirstToPreviousOrderBy(); + + public void addNullsLastToPreviousOrderBy(); + + //========================================================================== + // ========= + // Union + // ===== + public void registerUnionQuery(String unionClause, boolean unionAll); + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * Fetch first. + * + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize); + + /** + * Fetch scope. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page. + *

    + * When you invoke this, it is normally necessary to invoke 'fetchFirst()' + * or 'fetchScope()' ahead of that. But you also can use default-fetch-size + * without invoking 'fetchFirst()' or 'fetchScope()'. If you invoke this, + * your SQL returns [fetch-size] records from [fetch-start-index] calculated + * by [fetch-page-number]. + *

    + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber); + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchSize(); + + /** + * Get fetch page number. + * + * @return Fetch page number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective(); + + /** + * Ignore fetch-scope. + * + * @return this. (NotNull) + */ + public SqlClause ignoreFetchScope(); + + /** + * Make fetch-scope effective. + * + * @return this. (NotNull) + */ + public SqlClause makeFetchScopeEffective(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchSizeSupported(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * Is fetch-narrowing effective? + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Get fetch-narrowing skip-start-index. + * + * @return Skip-start-index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch-narrowing loop-count. + * + * @return Loop-count. + */ + public int getFetchNarrowingLoopCount(); + + //========================================================================== + // ========= + // Lock + // ==== + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate(); + + //========================================================================== + // ========= + // Resolver + // ======== + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved join alias name. (NotNull) + */ + public String resolveJoinAliasName(String relationPath, int cqNestNo); + + /** + * Resolve nest level expression. + * + * @param name Name. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved name about nest level. (NotNull) + */ + public String resolveNestLevelExpression(String name, int cqNestNo); + + /** + * Resolve relation no. + * + * @param baseTableName The table name of base. (NotNull) + * @param foreignPropertyName The property name of foreign. (NotNull) + * @return Resolved relation no. + */ + public int resolveRelationNo(String baseTableName, + String foreignPropertyName); + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName(); + + public String getForeignTableAliasPrefix(); + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark(); + + public String getWhereFirstConditionMark(); + + public String getUnionSelectClauseMark(); + + public String getUnionWhereClauseMark(); + + public String getUnionWhereFirstConditionMark(); + + //========================================================================== + // ========= + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter); + + //========================================================================== + // ========= + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty(); + + public boolean hasSelectedForeignInfo(String relationPath); + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName); + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective(); + + public void makeFormatClauseEffective(); + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity); + + public String resolveSubQueryEndMark(String subQueryIdentity); + + public String filterSubQueryIndent(String sql); + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName); + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery); + + public boolean hasSpecifiedDeriveSubQuery(String aliasName); + + public String getSpecifiedColumnNameAsOne(); + + public void clearSpecifiedSelectColumn(); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + /** + * @param columnParameterMap The map of column parameters. (NotNull) + * @return The clause of query update. (Nullable: If columnParameterMap is + * empty, return null) + */ + public String getClauseQueryUpdate(Map columnParameterMap); + + public String getClauseQueryDelete(); + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDb2.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDb2.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDb2.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,165 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for DB2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDb2 extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as sql-suffix. */ + protected String _fetchFirstSqlSuffix = ""; + + /** String of lock as from-hint. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDb2(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } else { + _fetchFirstSqlSuffix = " fetch first " + getPageEndIndex() + + " rows only"; + } + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doClearFetchPageClause() { + _fetchFirstSqlSuffix = ""; + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with RS"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchFirstSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } + + // [DBFlute-0.7.9] + //========================================================================== + // ========= + // DB2 Dependency + // ============== + public void lockWithRR() { + _lockSqlSuffix = " with RR"; + } + + public void lockWithRS() { + _lockSqlSuffix = " with RS"; + } + + public void lockWithCS() { + _lockSqlSuffix = " with CS"; + } + + public void lockWithUR() { + _lockSqlSuffix = " with UR"; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDb2.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDefault.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDefault.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDefault.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,113 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDefault extends AbstractSqlClause { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDefault(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + + toString(); + throw new UnsupportedOperationException(msg); + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDefault.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDerby.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDerby.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDerby.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,136 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDerby extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDerby(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseDerby.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,103 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Firebird. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseFirebird extends AbstractSqlClause { + + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseFirebird(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseH2.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseH2.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseH2.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,104 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for H2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseH2 extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseH2(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getFetchSize() + " offset " + + getPageStartIndex(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23001".equals(sqlState); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseH2.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,111 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Interbase. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseInterbase extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseInterbase(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseMySql.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseMySql.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseMySql.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,135 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MySQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseMySql extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseMySql(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getPageStartIndex() + ", " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update Override + // ===================== + @Override + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return false; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1062; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseMySql.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseOracle.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseOracle.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseOracle.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,182 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * SqlClause for Oracle. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseOracle extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseOracle(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // Database Original Override + // ========================== + @Override + protected String buildUnionClause(String selectClause) { + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Remove select-hint comment from select clause of union + // for fetch-scope with union(). + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + selectClause = replaceString(selectClause, SELECT_HINT, ""); + return super.buildUnionClause(selectClause); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) { + return; + } + String ln = null; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } else { + ln = ""; + } + _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + + ln + "select"; + _fetchScopeSqlSuffix = ""; + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + + getPageStartIndex(); + } + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + + getPageEndIndex(); + } else { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + _fetchScopeSqlSuffix = ""; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + if (dbmeta.hasPrimaryKey()) { + final String primaryKeyColumnName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + primaryKeyColumnName; + } else { + final String randomColumnName = ((ColumnInfo) dbmeta + .getColumnInfoList().get(0)).getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + randomColumnName; + } + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseOracle.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,104 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for PostreSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClausePostgreSql extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClausePostgreSql(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " offset " + getPageStartIndex() + " limit " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,147 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MSSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseSqlServer extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as select-hint. */ + protected String _fetchFirstSelectHint = ""; + + /** String of lock as from-hint. */ + protected String _lockFromHint = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseSqlServer(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } else { + _fetchFirstSelectHint = " top " + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchFirstSelectHint = ""; + } + + /** + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. {Implement} + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockFromHint = " with (updlock)"; + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchFirstSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return _lockFromHint; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 2627; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,146 @@ +package jp.sf.pal.notepad.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * The interface of simple filter for where clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface WhereClauseSimpleFilter { + + public static final String BIND_COMMENT_BEGIN_PART = "/*dto"; + + public static final String BIND_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_BEGIN_PART = "/*$dto"; + + public static final String EMBEDDED_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_QUOTED_BEGIN_PART = "'/*$dto"; + + public static final String EMBEDDED_COMMENT_QUOTED_END_PART = "*/'dummy''"; + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement); + + /** + * The simple filter for where clause to embedded.
    *Attension -- + * Target column is not perfect. This class determines by column name only! + * So when the column name of base table is same as the column name of join + * table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedSimpleFilter implements + WhereClauseSimpleFilter { + + protected java.util.Set _filterTargetColumnInfoSet; + + public WhereClauseToEmbeddedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + this._filterTargetColumnInfoSet = new java.util.HashSet(); + this._filterTargetColumnInfoSet.add(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + this._filterTargetColumnInfoSet = filterTargetColumnInfoSet; + } + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement) { + if (_filterTargetColumnInfoSet == null + || _filterTargetColumnInfoSet.isEmpty()) { + return toEmbedded(clauseElement); + } + for (final java.util.Iterator ite = _filterTargetColumnInfoSet + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (isTargetClause(clauseElement, columnInfo.getColumnDbName())) { + return toEmbedded(clauseElement); + } + } + return clauseElement; + } + + protected boolean isTargetClause(String clauseElement, + final String columnDbName) { + return clauseElement.indexOf("." + columnDbName + " ") >= 0; + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_END_PART); + return clauseElement; + } + + protected final String replace(String text, String fromText, + String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + } + + /** + * The simple filter for where clause to embedded and quoted.
    + * *Attension -- Target column is not perfect. This class determines by + * column name only! So when the column name of base table is same as the + * column name of join table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedQuotedSimpleFilter extends + WhereClauseToEmbeddedSimpleFilter { + + public WhereClauseToEmbeddedQuotedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + super(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedQuotedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + super(filterTargetColumnInfoSet); + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_QUOTED_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_QUOTED_END_PART); + return clauseElement; + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/AbstractDBMeta.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/AbstractDBMeta.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/AbstractDBMeta.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1250 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.allcommon.helper.MapListString; +import jp.sf.pal.notepad.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.notepad.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.notepad.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.notepad.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractDBMeta implements DBMeta { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _columnInfoList; + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName) { + if (!hasFlexibleName(columnFlexibleName)) { + return false; + } + final String propertyName = findPropertyName(columnFlexibleName); + return hasMethod("column" + initCap(propertyName)); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + if (!hasColumn(columnFlexibleName)) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName(); + throw new IllegalArgumentException(msg); + } + String methodName = "column" + + initCap(findPropertyName(columnFlexibleName)); + Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ColumnInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) {// createColumnInfo() + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits); + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {// createColumnInfo + // ( + // ) + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits, optimisticLockType); + } + + /** + * The implementation. + * + * @return The list of columns. (NotNull and NotEmpty) + */ + public List getColumnInfoList() { + if (_columnInfoList != null) { + return _columnInfoList; + } + synchronized (this) { + if (_columnInfoList != null) { + return _columnInfoList; + } + Method[] methods = this.getClass().getMethods(); + _columnInfoList = newArrayList(); + String prefix = "column"; + Class returnType = ColumnInfo.class; + Object[] args = new Object[] {}; + try { + for (Method method : methods) { + if (method.getName().startsWith(prefix) + && returnType.equals(method.getReturnType())) { + _columnInfoList.add((ColumnInfo) method.invoke(this, + args)); + } + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return _columnInfoList; + } + } + + protected void initializeColumnInfoList() { + getColumnInfoList();// Ignore return value because of initialization + // only! + } + + //========================================================================== + // =========== + // Name Handling + // ============= + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return true; + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return true; + } + return false; + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get(key); + } + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + final String dbNameKeyToLower = ((String) getDbNamePropertyNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey( + dbNameKeyToLower)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get( + dbNameKeyToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get(key); + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + final String dbNameToLower = ((String) getPropertyNameDbNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(dbNameToLower)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get( + dbNameToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + protected UniqueInfo createPrimaryUniqueInfo() { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + return uniqueInfo; + } + + protected UniqueInfo createPrimaryUniqueInfo(ColumnInfo uniqueColumnInfo) { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + uniqueInfo.addUniqueColumnList(uniqueColumnInfo); + return uniqueInfo; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + /** + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return The information of relation. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("relationPropertyName", + relationPropertyName); + return hasForeign(relationPropertyName) ? (RelationInfo) findForeignInfo(relationPropertyName) + : (RelationInfo) findReferrerInfo(relationPropertyName); + } + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + return hasMethod(methodName); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropertyName) { + return findForeignInfo(foreignPropertyName).getForeignDBMeta(); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign information. (NotNull) + */ + public jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo findForeignInfo( + String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found foreign by foreignPropertyName: foreignPropertyName=" + + foreignPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ForeignInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ForeignInfo cfi(String propName, DBMeta localDbm, + DBMeta foreignDbm, + Map localForeignColumnInfoMap, int relNo, + boolean oneToOne) {// createForeignInfo() + final ForeignInfo foreignInfo = new ForeignInfo(); + foreignInfo.setForeignPropertyName(propName); + foreignInfo.setLocalDBMeta(localDbm); + foreignInfo.setForeignDBMeta(foreignDbm); + foreignInfo.setLocalForeignColumnInfoMap(localForeignColumnInfoMap); + foreignInfo.setRelationNo(relNo); + foreignInfo.setOneToOne(oneToOne); + return foreignInfo; + } + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + return hasMethod(methodName); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + return findReferrerInfo(referrerPropertyName).getReferrerDBMeta(); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found referrer by referrerPropertyName: referrerPropertyName=" + + referrerPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ReferrerInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ReferrerInfo cri(String propName, DBMeta localDbm, + DBMeta referrerDbm, + Map localReferrerColumnInfoMap, + boolean oneToOne) {// createReferrerInfo() + final ReferrerInfo referrerInfo = new ReferrerInfo(); + referrerInfo.setReferrerPropertyName(propName); + referrerInfo.setLocalDBMeta(localDbm); + referrerInfo.setReferrerDBMeta(referrerDbm); + referrerInfo.setLocalReferrerColumnInfoMap(localReferrerColumnInfoMap); + referrerInfo.setOneToOne(oneToOne); + return referrerInfo; + } + + // ----------------------------------------------------- + // Common Logic + // ------------ + protected String buildRelationInfoGetterMethodNameInitCap( + String targetName, String relationPropertyName) { + return targetName + relationPropertyName.substring(0, 1).toUpperCase() + + relationPropertyName.substring(1); + } + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + protected static abstract class AbstractRelationTrace implements + RelationTrace { + + /** The list of relation. */ + protected List _relationList; + + /** The list of relation trace. */ + protected List _relationTraceList; + + /** The list of relation info as trace. */ + protected List _traceRelationInfoList; + + /** The column info as trace. */ + protected ColumnInfo _traceColumnInfo; + + /** The handler of fixed relation trace. */ + protected RelationTraceFixHandler _relationTraceFixHandler; + + /** + * Constructor for first step. + * + * @param relationTraceFixHandler The handler of fixed relation trace. + * (Nullable) + */ + public AbstractRelationTrace( + RelationTraceFixHandler relationTraceFixHandler) { + this(new ArrayList(), + new ArrayList()); + this._relationTraceFixHandler = relationTraceFixHandler; + } + + /** + * Constructor for relation step. + * + * @param relationList The list of relation. (NotNull) + * @param relationTraceList The list of relation trace. (NotNull) + */ + public AbstractRelationTrace(List relationList, + List relationTraceList) { + this._relationList = relationList; + this._relationTraceList = relationTraceList; + this._relationTraceList.add(this); + } + + /** + * The implementation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation() { + return _traceRelationInfoList; + } + + /** + * The implementation. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn() { + return _traceColumnInfo; + } + + /** + * Fix trace. + * + * @param traceRelationInfoList The trace of relation as the list of + * relation info. (NotNull) + * @param traceColumnInfo The trace of column as column info. (Nullable) + * @return Relation trace(result). (NotNull) + */ + protected RelationTrace fixTrace( + List traceRelationInfoList, + ColumnInfo traceColumnInfo) { + final AbstractRelationTrace localRelationTrace = (AbstractRelationTrace) _relationTraceList + .get(0); + localRelationTrace.setTraceRelation(traceRelationInfoList); + localRelationTrace.setTraceColumn(traceColumnInfo); + localRelationTrace.recycle(); + localRelationTrace.handleFixedRelationTrace(); + return localRelationTrace; + } + + protected void setTraceRelation(List traceRelationInfoList) { + this._traceRelationInfoList = traceRelationInfoList; + } + + protected void setTraceColumn(ColumnInfo traceColumn) { + this._traceColumnInfo = traceColumn; + } + + /** + * The implementation. + */ + protected void recycle() { + this._relationList = new ArrayList(); + this._relationTraceList = new ArrayList(); + this._relationTraceList.add(this); + } + + protected void handleFixedRelationTrace() { + if (_relationTraceFixHandler != null) { + _relationTraceFixHandler.handleFixedTrace(this); + } + } + } + + //========================================================================== + // ========= + // Map String + // ========== + /** + * The implementation. + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString() { + return MapStringUtil.createMapListString(); + } + + /** + * The implementation. + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder() { + final List columnDbNameList = new ArrayList(); + for (final Iterator ite = getColumnInfoList().iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + return MapStringUtil.createMapStringBuilder(columnDbNameList); + } + + //========================================================================== + // ========= + // Various Info + // ============ + // These methods is expected to override if it needs. + public boolean hasSequence() { + return false; + } + + public String getSequenceNextValSql() { + return null; + } + + public boolean hasVersionNo() { + return false; + } + + public ColumnInfo getVersionNoColumnInfo() { + return null; + } + + public boolean hasUpdateDate() { + return false; + } + + public ColumnInfo getUpdateDateColumnInfo() { + return null; + } + + public boolean hasCommonColumn() { + return false; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + protected void doAcceptPrimaryKeyMap(ENTITY entity, + Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected void doAcceptColumnValueMap( + ENTITY entity, Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected String doExtractPrimaryKeyMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + protected String doExtractColumnValueMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getColumnInfoList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + // ----------------------------------------------------- + // Convert + // ------- + protected Map doConvertToColumnValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + protected Map doConvertToColumnStringValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, helpGettingColumnStringValue(value)); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected void setupEps( + Map> entityPropertySetupperMap, + Eps setupper, ColumnInfo columnInfo) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + registerEntityPropertySetupper(columnName, propertyName, setupper, + entityPropertySetupperMap); + } + + protected void registerEntityPropertySetupper( + String columnName, String propertyName, Eps setupper, + Map> entityPropertySetupperMap) { + entityPropertySetupperMap.put(columnName, setupper); + entityPropertySetupperMap.put(propertyName, setupper); + entityPropertySetupperMap.put(columnName.toLowerCase(), setupper); + entityPropertySetupperMap.put(propertyName.toLowerCase(), setupper); + } + + protected Eps findEps( + Map> entityPropertySetupperMap, + String propertyName) { + Eps setupper = entityPropertySetupperMap.get(propertyName); + if (setupper == null) { + String msg = "The propertyName was Not Found in the map of setupper of entity property:"; + msg = msg + " propertyName=" + propertyName + + " _entityPropertySetupperMap.keySet()=" + + entityPropertySetupperMap.keySet(); + throw new IllegalStateException(msg); + } + return setupper; + } + + //========================================================================== + // ========= + // Util Class + // ========== + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringUtil { + + public static void acceptPrimaryKeyMapString( + String primaryKeyMapString, Entity entity) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptPrimaryKeyMap(entity, + mapListString.generateMap(primaryKeyMapString)); + } + + public static void acceptColumnValueMapString( + String columnValueMapString, Entity entity) { + if (columnValueMapString == null) { + String msg = "The argument[columnValueMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!columnValueMapString.trim().startsWith(prefix)) { + columnValueMapString = prefix + columnValueMapString; + } + if (!columnValueMapString.trim().endsWith(suffix)) { + columnValueMapString = columnValueMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptColumnValueMap(entity, + mapListString.generateMap(columnValueMapString)); + } + + public static String extractPrimaryKeyMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractPrimaryKeyMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static String extractColumnValueMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractColumnValueMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException( + "The value should not be null: " + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + public static long parseDateStringAsMillis(Object value, + String propertyName, String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = filterTimestampValue(((String) value) + .trim()); + return java.sql.Timestamp.valueOf(valueString).getTime(); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + + " threw the exception: value=[" + value + "]", e); + } + } + + public static String filterTimestampValue(String value) { + value = value.trim(); + if (value.indexOf("/") == 4 && value.lastIndexOf("/") == 7) { + value = value.replaceAll("/", "-"); + } + if (value.indexOf("-") == 4 && value.lastIndexOf("-") == 7) { + if (value.length() == "2007-07-09".length()) { + value = value + " 00:00:00"; + } + } + return value; + } + + public static String formatDate(java.util.Date value) { + return getFormatDateFormat().format(value); + } + + public static String formatTimestamp(java.sql.Timestamp value) { + return getFormatDateFormat().format(value); + } + + public static java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateInstance(); + } + + public static java.text.DateFormat getFormatDateFormat() { + return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + } + + public static MapListString createMapListString() { + final MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + return mapListString; + } + + public static MapStringBuilder createMapStringBuilder( + List columnNameList) { + MapStringBuilder mapStringBuilder = new MapStringBuilderImpl(); + mapStringBuilder.setMsMapMark(MAP_STRING_MAP_MARK); + mapStringBuilder.setMsStartBrace(MAP_STRING_START_BRACE); + mapStringBuilder.setMsEndBrace(MAP_STRING_END_BRACE); + mapStringBuilder.setMsEqual(MAP_STRING_EQUAL); + mapStringBuilder.setMsDelimiter(MAP_STRING_DELIMITER); + mapStringBuilder.setColumnNameList(columnNameList); + return mapStringBuilder; + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapAssertUtil { + public static void assertPrimaryKeyMapNotNullAndNotEmpty( + java.util.Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + + public static void assertColumnExistingInPrimaryKeyMap( + java.util.Map primaryKeyMap, + String columnName) { + if (!primaryKeyMap.containsKey(columnName)) { + String msg = "The primaryKeyMap must have the value of " + + columnName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + + public static void assertColumnValueMapNotNullAndNotEmpty( + java.util.Map columnValueMap) { + if (columnValueMap == null) { + String msg = "The argument[columnValueMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnValueMap.isEmpty()) { + String msg = "The argument[columnValueMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringValueAnalyzer { + protected java.util.Map _valueMap; + + protected java.util.Set _modifiedPropertyNames; + + protected String _columnName; + + protected String _uncapPropName; + + protected String _propertyName; + + public MapStringValueAnalyzer( + java.util.Map valueMap, + java.util.Set modifiedPropertyNames) { + this._valueMap = valueMap; + this._modifiedPropertyNames = modifiedPropertyNames; + } + + public boolean init(String columnName, String uncapPropName, + String propertyName) { + this._columnName = columnName; + this._uncapPropName = uncapPropName; + this._propertyName = propertyName; + return _valueMap.containsKey(_columnName); + } + + public COLUMN_TYPE analyzeString( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + helpCheckingTypeString(obj, _uncapPropName, javaType.getName()); + return (COLUMN_TYPE) obj; + } + + public COLUMN_TYPE analyzeNumber( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, + String.class, obj.toString()); + } + + public COLUMN_TYPE analyzeDate(Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, long.class, + helpParsingDateString(obj, _uncapPropName, javaType + .getName())); + } + + public COLUMN_TYPE analyzeOther( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + return (COLUMN_TYPE) obj; + } + + private void helpCheckingTypeString(Object value, String uncapPropName, + String typeName) { + MapStringUtil.checkTypeString(value, uncapPropName, typeName); + } + + private long helpParsingDateString(Object value, String uncapPropName, + String typeName) { + return MapStringUtil.parseDateStringAsMillis(value, uncapPropName, + typeName); + } + + protected Object newInstanceByConstructor(Class targetType, + Class argType, Object arg) { + java.lang.reflect.Constructor constructor; + try { + constructor = targetType + .getConstructor(new Class[] { argType }); + } catch (SecurityException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (NoSuchMethodException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + try { + return constructor.newInstance(new Object[] { arg }); + } catch (IllegalArgumentException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (InstantiationException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (IllegalAccessException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (java.lang.reflect.InvocationTargetException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected ENTITY downcast(Entity entity) { + checkDowncast(entity); + return (ENTITY) entity; + } + + protected void checkDowncast(Entity entity) { + assertObjectNotNull("entity", entity); + Class entityType = getEntityType(); + Class targetType = entity.getClass(); + if (!entityType.isAssignableFrom(targetType)) { + String name = entityType.getSimpleName(); + String msg = "The entity should be " + name + " but it was: " + + targetType; + throw new IllegalStateException(msg); + } + } + + protected void helpAppendingColumnValueString(StringBuilder sb, + String delimiter, String equal, String colName, Object value) { + sb.append(delimiter).append(colName).append(equal); + sb.append(helpGettingColumnStringValue(value)); + } + + protected String helpGettingColumnStringValue(Object value) { + if (value instanceof java.sql.Timestamp) { + return (value != null ? helpFormatingTimestamp((java.sql.Timestamp) value) + : ""); + } else if (value instanceof java.util.Date) { + return (value != null ? helpFormatingDate((java.util.Date) value) + : ""); + } else { + return (value != null ? value.toString() : ""); + } + } + + protected String helpFormatingDate(java.util.Date date) { + return MapStringUtil.formatDate(date); + } + + protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) { + return MapStringUtil.formatTimestamp(timestamp); + } + + protected Map setupKeyToLowerMap(boolean dbNameKey) { + final Map map; + if (dbNameKey) { + map = newLinkedHashMap(getTableDbName().toLowerCase(), + getTablePropertyName()); + } else { + map = newLinkedHashMap(getTablePropertyName().toLowerCase(), + getTableDbName()); + } + Method[] methods = this.getClass().getMethods(); + String columnInfoMethodPrefix = "column"; + try { + for (Method method : methods) { + String name = method.getName(); + if (!name.startsWith(columnInfoMethodPrefix)) { + continue; + } + ColumnInfo columnInfo = (ColumnInfo) method.invoke(this); + String dbName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + if (dbNameKey) { + map.put(dbName.toLowerCase(), propertyName); + } else { + map.put(propertyName.toLowerCase(), dbName); + } + } + return Collections.unmodifiableMap(map); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // String Handling + // --------------- + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String initUncap(String str) { + return SimpleStringUtil.initUncap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected HashMap newHashMap() { + return new HashMap(); + } + + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + protected LinkedHashMap newLinkedHashMap(KEY key, + VALUE value) { + LinkedHashMap map = newLinkedHashMap(); + map.put(key, value); + return map; + } + + protected ArrayList newArrayList() { + return new ArrayList(); + } + + protected ArrayList newArrayList( + Collection collection) { + return new ArrayList(collection); + } + + // ----------------------------------------------------- + // Reflection Handling + // ------------------- + private Set _cachedMethodNames = new HashSet(); // for + + // performance + + protected boolean hasMethod(String methodName) { + assertStringNotNullAndNotTrimmedEmpty("methodName", methodName); + if (_cachedMethodNames.isEmpty()) { + synchronized (_cachedMethodNames) { + if (_cachedMethodNames.isEmpty()) { + final Method[] methods = this.getClass().getMethods(); + for (Method method : methods) { + _cachedMethodNames.add(method.getName()); + } + } + } + } + return _cachedMethodNames.contains(methodName); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the argument is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the string is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/AbstractDBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMeta.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMeta.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMeta.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,601 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.allcommon.helper.MapListString; +import jp.sf.pal.notepad.db.allcommon.helper.MapStringBuilder; + +/** + * The interface of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface DBMeta { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Info + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property-name(JavaBeansRule). + * + * @return Table property-name(JavaBeansRule). (NotNull) + */ + public String getTablePropertyName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // Name Handling + // ============= + /** + * Has object of flexible name? {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName); + + /** + * Find db name by flexible name. {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName); + + /** + * Find property name(JavaBeansRule) by flexible name. {Target objects are + * TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName); + + //========================================================================== + // ========= + // Name Map + // ======== + /** + * Get the key-to-lower map of DB name(lower) and property name. + * + * @return The key-to-lower map of DB name(lower) and property name. + * (NotNull) + */ + public Map getDbNamePropertyNameKeyToLowerMap(); + + /** + * Get the key-to-lower map of property name(lower) and db name. + * + * @return The key-to-lower map of property name(lower) and db name. + * (NotNull) + */ + public Map getPropertyNameDbNameKeyToLowerMap(); + + //========================================================================== + // ========= + // Type Name + // ========= + /** + * Get the type-name of entity. + * + * @return The type-name of entity. (NotNull) + */ + public String getEntityTypeName(); + + /** + * Get the type-name of condition-bean. + * + * @return The type-name of condition-bean. (Nullable: If the condition-bean + * does not exist) + */ + public String getConditionBeanTypeName(); + + /** + * Get the type-name of dao. + * + * @return The type-name of dao. (Nullable: If the dao does not exist) + */ + public String getDaoTypeName(); + + /** + * Get the type-name of behavior. + * + * @return The type-name of behavior. (Nullable: If the behavior does not + * exist) + */ + public String getBehaviorTypeName(); + + //========================================================================== + // ========= + // Object Type + // =========== + /** + * Get the type of entity. + * + * @return The type of entity. (NotNull) + */ + public Class getEntityType(); + + //========================================================================== + // ========= + // Object Instance + // =============== + /** + * New the instance of entity. + * + * @return The instance of entity. (NotNull) + */ + public Entity newEntity(); + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * @return The list of DB name of column. (NotNull and NotEmpty) + */ + public List getColumnInfoList(); + + /** + * Has column? + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName); + + /** + * Find the information of the column by the flexible name of the column. + * + *
    +     * If the table name is 'BOOK_ID', you can find the dbmeta by ...(as follows)
    +     *     'BOOK_ID', 'BOok_iD', 'book_id'
    +     *     , 'BookId', 'bookid', 'bOoKiD'
    +     * 
    + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName); + + //========================================================================== + // ========= + // Unique Info + // =========== + /** + * Get primary unique info. + * + * @return Primary unique info. (NotNull) + */ + public UniqueInfo getPrimaryUniqueInfo(); + + /** + * Has primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKey(); + + /** + * Has two or more primary-keys? + * + * @return Determination. + */ + public boolean hasTwoOrMorePrimaryKeys(); + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Relation Element + // ---------------- + /** + * Find relation info. + * + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return Relation info. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName); + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * Has foreign? + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropName); + + /** + * Find foreign dbmeta. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropName); + + /** + * Find foreign info. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign info. (NotNull) + */ + public ForeignInfo findForeignInfo(String foreignPropName); + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * Has referrer? + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName); + + /** + * Find referrer dbmeta. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName); + + /** + * Find referrer information. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName); + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + public static interface RelationTrace { + + /** + * Get the trace of relation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation(); + + /** + * Get the trace of column. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn(); + } + + public static interface RelationTraceFixHandler { + public void handleFixedTrace(RelationTrace relationTrace); + } + + //========================================================================== + // ========= + // Sequence Info + // ============= + /** + * Has sequence? + * + * @return Determination. + */ + public boolean hasSequence(); + + /** + * Get the SQL string for getting next value of sequence. + * + * @return The SQL string for getting next value of sequence. (Nullable: If + * it does not have sequence, returns null.) + */ + public String getSequenceNextValSql(); + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + /** + * Has version no? + * + * @return Determination. + */ + public boolean hasVersionNo(); + + /** + * Get the column information of version no. + * + * @return The column information of version no. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getVersionNoColumnInfo(); + + /** + * Has update date? + * + * @return Determination. + */ + public boolean hasUpdateDate(); + + /** + * Get the column information of update date. + * + * @return The column information of update date. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getUpdateDateColumnInfo(); + + //========================================================================== + // ========= + // Common Column Info + // ================== + /** + * Has common column? + * + * @return Determination. + */ + public boolean hasCommonColumn(); + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + /** + * Accept primary-key map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap); + + /** + * Accept primary-key map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMapString Primary-key map-string. (NotNull) + */ + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString); + + /** + * Accept column-value map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMap Column-value map. (NotNull and NotEmpty) + */ + public void acceptColumnValueMap(Entity entity, + Map columnValueMap); + + /** + * Accept column-value map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMapString Column-value map-string. (NotNull) + */ + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString); + + // ----------------------------------------------------- + // Extract + // ------- + /** + * Extract primary-key map-string. Delimiter is at-mark and semicolon. + *

    + * + *

    +     * ex) Uses that this method have.
    +     *   final String primaryKeyMapString = LdBookDbm.extractPrimaryKeyMapString(entity);
    +     *   final LdBook entity = dao.selectEntity(new LdBookCB().acceptPrimaryKeyMapString(primaryKeyMapString));
    +     *   ... // as primary key for condition.
    +     * 
    + * + * @param entity Target entity. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity); + + /** + * Extract primary-key map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + /** + * Extract column-value map-string. Delimiter is at-mark and semicolon. + * + * @param entity Target entity. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity); + + /** + * Extract column-value map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + // ----------------------------------------------------- + // Convert + // ------- + /** + * Convert entity to column value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column value. (NotNull) + */ + public List convertToColumnValueList(Entity entity); + + /** + * Convert entity to column value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column value. (NotNull) + */ + public Map convertToColumnValueMap(Entity entity); + + /** + * Convert entity to column string-value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column string-value. (NotNull) + */ + public List convertToColumnStringValueList(Entity entity); + + /** + * Convert entity to column string-value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column string-value. (NotNull) + */ + public Map convertToColumnStringValueMap(Entity entity); + + //========================================================================== + // ========= + // Map String + // ========== + /** + * Create map list string that is prepared. (for INTERNAL) + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString(); + + /** + * Create map string builder that is prepared. (for INTERNAL) + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder(); + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + /** + * Has the setupper of entity property by the name of property?
    + * Comparing is so flexible. {Ignore cases and underscore} + * + * @param propertyName The name of the property. (NotNull) + * @return Determination. + */ + public boolean hasEntityPropertySetupper(String propertyName); + + /** + * Set up entity property. (for INTERNAL) + * + * @param propertyName The name of the property. (NotNull) + * @param entity The entity for the property. (NotNull) + * @param value The value of the property. (Nullable) + */ + public void setupEntityProperty(String propertyName, Object entity, + Object value); + + /** + * The setupper of entity property.
    This class is for Internal. Don't + * use this! + * + * @param The type of entity. + */ + public interface Eps { + + /** + * @param entity Entity. (NotNull) + * @param value Value. (Nullable) + */ + void setup(ENTITY_TYPE entity, Object value); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public static enum OptimisticLockType { + NONE, VERSION_NO, UPDATE_DATE + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMetaInstanceHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,237 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.util.SimpleAssertUtil; + +/** + * DBMeta instance handler. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class DBMetaInstanceHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Table DB-name instance map. */ + protected static final Map _tableDbNameInstanceMap = new LinkedHashMap(); + + /** The map of table DB-name and class name. */ + protected static final Map _tableDbNameClassNameMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO", + "jp.sf.pal.notepad.db.bsentity.dbmeta.GroupInfoDbm"); + tmpMap.put("GROUP_MAPPING", + "jp.sf.pal.notepad.db.bsentity.dbmeta.GroupMappingDbm"); + tmpMap + .put("NOTEPAD", + "jp.sf.pal.notepad.db.bsentity.dbmeta.NotepadDbm"); + tmpMap.put("NOTEPAD_CATEGORY", + "jp.sf.pal.notepad.db.bsentity.dbmeta.NotepadCategoryDbm"); + tmpMap.put("NOTEPAD_CONTENT", + "jp.sf.pal.notepad.db.bsentity.dbmeta.NotepadContentDbm"); + tmpMap.put("ROLE_INFO", + "jp.sf.pal.notepad.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("ROLE_MAPPING", + "jp.sf.pal.notepad.db.bsentity.dbmeta.RoleMappingDbm"); + tmpMap.put("USER_INFO", + "jp.sf.pal.notepad.db.bsentity.dbmeta.UserInfoDbm"); + + _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of DB-name and property-name for table. */ + protected static final Map _tableDbNamePropertyNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); + tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); + tmpMap.put("NOTEPAD".toLowerCase(), "notepad"); + tmpMap.put("NOTEPAD_CATEGORY".toLowerCase(), "notepadCategory"); + tmpMap.put("NOTEPAD_CONTENT".toLowerCase(), "notepadContent"); + tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping"); + tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); + + _tableDbNamePropertyNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of property-name and DB-name for table. */ + protected static final Map _tablePropertyNameDbNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); + tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); + tmpMap.put("notepad".toLowerCase(), "NOTEPAD"); + tmpMap.put("notepadCategory".toLowerCase(), "NOTEPAD_CATEGORY"); + tmpMap.put("notepadContent".toLowerCase(), "NOTEPAD_CONTENT"); + tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING"); + tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); + + _tablePropertyNameDbNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + protected static DBMeta getDBMeta(String className) { + try { + Class clazz = Class.forName(className); + java.lang.reflect.Method methoz = clazz.getMethod("getInstance", + (Class[]) null); + Object result = methoz.invoke(null, (Object[]) null); + return (DBMeta) result; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * @return The initialized map that contains all instances of dbmeta. + * (NotNull & NotEmpty) + */ + public static Map getDBMetaMap() { + initializeDBMetaMap(); + return _tableDbNameInstanceMap; + } + + protected static void initializeDBMetaMap() { + if (isInitialized()) { + return; + } + final Set tableDbNameSet = _tableDbNameClassNameMap.keySet(); + for (String tableDbName : tableDbNameSet) { + findDBMeta(tableDbName); // Initialize! + } + if (!isInitialized()) { + String msg = "Failed to initialize tableDbNameInstanceMap:"; + msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap; + throw new IllegalStateException(msg); + } + } + + protected static boolean isInitialized() { + return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap + .size(); + } + + //========================================================================== + // ========= + // Main Method + // =========== + /** + * Find dbmeta by table flexible-name. + * + *
    +     * If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)
    +     *     'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'
    +     *     , 'OrderDetail', 'orderdetail', 'oRderDetaIl'
    +     * 
    + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return The instance of dbmeta. (NotNull) + * @exception DBMetaNotFoundException When the dbmeta is not found. + */ + public static DBMeta findDBMeta(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) { + return byTableDbName(tableFlexibleName); + } + String toLowerKey = tableFlexibleName.toLowerCase(); + if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) { + String propertyName = (String) _tableDbNamePropertyNameKeyToLowerMap + .get(toLowerKey); + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(propertyName.toLowerCase()); + return byTableDbName(dbName); + } + if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) { + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(toLowerKey); + return byTableDbName(dbName); + } + final int dotLastIndex = tableFlexibleName.lastIndexOf("."); + if (dotLastIndex >= 0) { + try { + return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1)); + } catch (DBMetaNotFoundException e) { + // Nothing + } + } + String msg = "The instance map returned null by the key: key=" + + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + + public static class DBMetaNotFoundException extends IllegalStateException { + private static final long serialVersionUID = 1L; + + public DBMetaNotFoundException(String msg) { + super(msg); + } + } + + /** + * Get instance by table DB-name. + * + * @param tableDbName Table DB-name. (NotNull) + * @return Instance. (NotNull) + */ + protected static DBMeta byTableDbName(String tableDbName) { + assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName); + DBMeta instance = getCachedDBMeta(tableDbName); + if (instance == null) { + String msg = "The instance map returned null by the key: key=" + + tableDbName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + return instance; + } + + protected static DBMeta getCachedDBMeta(String tableName) {// For lazy-load! + // Thank you + // koyak! + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + synchronized (_tableDbNameInstanceMap) { + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + String entityName = _tableDbNameClassNameMap.get(tableName); + _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName)); + } + return _tableDbNameInstanceMap.get(tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // Assert Object + // ------------- + protected static void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/DBMetaInstanceHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,915 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.RelationInfo; + +/** + * The arranger of hierarchy. + * + *
    + * ex) LIBRARY Hierarchy
    + * 
    + * LIBRARY
    + *  |1
    + *  |--* NEXT_LIBRARY (Referrer)
    + *  |       |*
    + *  |       |--1 LIBRARY (Foreign)
    + *  |
    + *  |--* COLLECTION (Referrer)
    + *  |       |1 
    + *  |       |--1 COLLECTION_STATUS (Referrer)
    + *  |       |       |*
    + *  |       |       |--1 COLLECTION_STATUS_LOOKUP (Foreign)
    + *  |       |
    + *  |       |--1 BOOK (Foreign)
    + *  |       |     |*
    + *  |       |     |--1 AUTHOR (Foreign)
    + *  |       |     |--1 PUBLISER (Foreign)
    + *  |       |     |--1 GENRE (Foreign)
    + *  |       |           |*
    + *  |       |           |--1 GENRE (Foreign)
    + *  |       |
    + *  |       |--* LENDING_COLLECTION (Referrer)
    + *  |       |
    + *  |
    + *  |--* LIBRARY_USER (Referrer)
    + *         |*  |1
    + *         |   |--* LENDING (Referrer)
    + *         |         |1
    + *         |         |--* LENDING_COLLECTION (Referrer)
    + *         |
    + *         |--1 LB_USER (Foreign)
    + *                 |1
    + *                 |--* BLACK_LIST (Referrer)
    + *                         |1
    + *                         |--* BLACK_ACTION (Referrer)
    + *                                 |*
    + *                                 |--1 BLACK_ACTION_LOOKUP (Foreign)
    + *          
    + *          
    + * ex) The SQL of LIBRARY Hierarchy as FLAT
    + * 
    + * select library.LIBRARY_ID as LIBRARY_ID
    + *      , library.LIBRARY_NAME as LIBRARY_NAME
    + *      , library.R_USER as R_USER
    + *      , library.R_TIMESTAMP as R_TIMESTAMP
    + *      , nextBase.LIBRARY_ID as BASE_LIBRARY_ID
    + *      , nextBase.NEXT_LIBRARY_ID as NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_ID as NEXT_LIBRARY_NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_NAME as NEXT_LIBRARY_NEXT_LIBRARY_NAME
    + *      , collection.COLLECTION_ID as COLLECTION_ID
    + *      , collection.ARRIVAL_DATE as COLLECTION_ARRIVAL_DATE
    + *      , collectionStatus.COLLECTION_ID as COLLECTION_STATUS_ID
    + *      , collectionStatus.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_NAME as COLLECTION_STATUS_NAME
    + *      , book.BOOK_ID as COLLECTION_BOOK_ID
    + *      , book.BOOK_NAME as COLLECTION_BOOK_NAME
    + *      , author.AUTHOR_ID as COLLECTION_BOOK_AUTHOR_ID
    + *      , author.AUTHOR_NAME as COLLECTION_BOOK_AUTHOR_NAME
    + *      , libraryUser.LIBRARY_ID as LIBRARY_USER_LIBRARY_ID 
    + *      , libraryUser.LB_USER_ID as LIBRARY_USER_LB_USER_ID
    + *      , lending.LIBRARY_ID as LENDING_LIBRARY_ID
    + *      , lending.LB_USER_ID as LENDING_LB_USER_ID
    + *      , lending.LENDING_DATE as LENDING_DATE
    + *      , lending.U_USER as LENDING_U_USER
    + *      , lending.U_MODULE as LENDING_U_MODULE
    + *      , lbUser.LB_USER_ID as LB_USER_ID
    + *      , lbUser.LB_USER_NAME as LB_USER_NAME
    + *   from LIBRARY library
    + *     left outer join NEXT_LIBRARY nextBase on library.LIBRARY_ID = nextBase.LIBRARY_ID
    + *       left outer join LIBRARY nextBaseNextLibrary on nextBase.NEXT_LIBRARY_ID = nextBaseNextLibrary.LIBRARY_ID
    + *     left outer join COLLECTION collection on library.LIBRARY_ID = collection.LIBRARY_ID
    + *       left outer join COLLECTION_STATUS collectionStatus on collection.COLLECTION_ID = collectionStatus.COLLECTION_ID
    + *         left outer join COLLECTION_STATUS_LOOKUP collectionStatusLookup on collectionStatus.COLLECTION_STATUS_CODE = collectionStatusLookup.COLLECTION_STATUS_CODE
    + *       left outer join BOOK book on collection.BOOK_ID = book.BOOK_ID
    + *         left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID
    + *     left outer join LIBRARY_USER libraryUser on library.LIBRARY_ID = libraryUser.LIBRARY_ID
    + *       left outer join LENDING lending on libraryUser.LIBRARY_ID = lending.LIBRARY_ID and libraryUser.LB_USER_ID = lending.LB_USER_ID
    + *       left outer join LB_USER lbUser on libraryUser.LB_USER_ID = lbUser.LB_USER_ID
    + * 
    + * 
    + * ex) Invoking Hierarchy Arranger
    + * 
    + * private List<Library> makeLibraryList() {
    + *     final HierarchyRequest<Library> request = createHierarchyRequest(createFlatLibraryList());
    + *     return new HierarchyArranger<Library>().arrangeHierarchy(request);
    + * }
    + * 
    + * 
    + * ex) Creating Hierarchy Request
    + * 
    + * private HierarchyRequest<Library> createHierarchsyRequest(java.util.List>HierarchyFlatLibrary> flatLibraryList) {
    + * 
    + *     // Define dbmeta.
    + *     final HierarchyFlatLibraryDbm sourceDbm = HierarchyFlatLibraryDbm.getInstance();
    + * 
    + *     // Define hierarychy request as library.
    + *     final HierarchyRequest<Library> request = new HierarchyRequest<Library>(Library.class);
    + * 
    + *     // Register the list of source iterator. (by calling creator for flat library list)
    + *     request.registerSourceList(flatLibraryList);
    + * 
    + *     // Create relation trace.
    + *     final LibraryRelationTrace trace = LibraryDbm.getInstance().createRelationTrace(null);
    + *     
    + *     // Register column [libraryId]
    + *     request.mapping(sourceDbm.columnLibraryId(), trace.columnLibraryId());
    + * 
    + *     // Register column [libraryName]
    + *     request.mapping(sourceDbm.columnLibraryName(), trace.columnLibraryName());
    + * 
    + *     // Register column [RUser]
    + *     request.mapping(sourceDbm.columnRUser(), trace.columnRUser());
    + * 
    + *     // Register column [RTimestamp]
    + *     request.mapping(sourceDbm.columnRTimestamp(), trace.columnRTimestamp());
    + * 
    + *     // Register column [baseLibraryId]
    + *     request.mapping(sourceDbm.columnBaseLibraryId(), trace.referrerNextLibraryByBaseIdList().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryId(), trace.referrerNextLibraryByBaseIdList().columnNextLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryId(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryName]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryName(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryName());
    + * 
    + *     // Register column [collectionId]
    + *     request.mapping(sourceDbm.columnCollectionId(), trace.referrerCollectionList().columnCollectionId());
    + * 
    + *     // Register column [arrivalDate]
    + *     request.mapping(sourceDbm.columnCollectionArrivalDate(), trace.referrerCollectionList().columnArrivalDate());
    + * 
    + *     // Register column [collectionStatusId]
    + *     request.mapping(sourceDbm.columnCollectionStatusId(), trace.referrerCollectionList().foreignCollectionStatusAsOne().columnCollectionId());
    + * 
    + *     // Register column [collectionStatusCode]
    + *     request.mapping(sourceDbm.columnCollectionStatusCode(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusCode());
    + * 
    + *     // Register column [collectionStatusName]
    + *     request.mapping(sourceDbm.columnCollectionStatusName(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusName());
    + * 
    + *     // Register column [collectionBookId]
    + *     request.mapping(sourceDbm.columnCollectionBookId(), trace.referrerCollectionList().foreignBook().columnBookId());
    + * 
    + *     // Register column [collectionBookName]
    + *     request.mapping(sourceDbm.columnCollectionBookName(), trace.referrerCollectionList().foreignBook().columnBookName());
    + * 
    + *     // Register column [collectionBookAuthorId]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorId(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorId());
    + * 
    + *     // Register column [collectionBookAuthorName]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorName(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorName());
    + * 
    + *     // Register column [libraryUserLibraryId]
    + *     request.mapping(sourceDbm.columnLibraryUserLibraryId(), trace.referrerLibraryUserList().columnLibraryId());
    + * 
    + *     // Register column [libraryUserLbUserId]
    + *     request.mapping(sourceDbm.columnLibraryUserLbUserId(), trace.referrerLibraryUserList().columnLbUserId());
    + * 
    + *     // Register column [lendingLibraryId]
    + *     request.mapping(sourceDbm.columnLendingLibraryId(), trace.referrerLibraryUserList().referrerLendingList().columnLibraryId());
    + * 
    + *     // Register column [lendingLbUserId]
    + *     request.mapping(sourceDbm.columnLendingLbUserId(), trace.referrerLibraryUserList().referrerLendingList().columnLbUserId());
    + * 
    + *     // Register column [lendingDate]
    + *     request.mapping(sourceDbm.columnLendingDate(), trace.referrerLibraryUserList().referrerLendingList().columnLendingDate());
    + * 
    + *     // Register column [lendingUUser]
    + *     request.mapping(sourceDbm.columnLendingUUser(), trace.referrerLibraryUserList().referrerLendingList().columnUUser());
    + * 
    + *     // Register column [lendingUModule]
    + *     request.mapping(sourceDbm.columnLendingUModule(), trace.referrerLibraryUserList().referrerLendingList().columnUModule());
    + * 
    + *     // Register column [lbUserId]
    + *     request.mapping(sourceDbm.columnLbUserId(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserId());
    + * 
    + *     // Register column [lbUserName]
    + *     request.mapping(sourceDbm.columnLbUserName(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserName());
    + * 
    + *     return request;
    + * }
    + * 
    + * private java.util.List>HierarchyFlatLibrary> createFlatLibraryList() {
    + *     (...select and get list)
    + *     return flatLibraryList;
    + * }
    + * 
    + * 
    + * === Relation Trace Tips ===
    + * 
    + *   RelationTrace.f + [Code Assist] -- go to Foreign
    + *   RelationTrace.r + [Code Assist] -- go to Referrer
    + * RelationTrace.c + [Code Assist] -- end relation by Column
    + * 
    + * 
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity extends Entity
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyArranger {
    +
    +    //==========================================================================
    +    // =========
    +    // Main
    +    // ====
    +    /**
    +     * Arrange hierarchy.
    +     * 
    +     * @param request Hierarchy request. (NotNull)
    +     * @return The list of local entity. (NotNull)
    +     */
    +    public List arrangeHierarchy(
    +            HierarchyRequest request) {
    +        final List localTableList = new ArrayList();
    +        final Map alreadyRegisteredEntityMap = new HashMap();
    +
    +        // ============
    +        // Record Loop!
    +        // ============
    +        final HierarchySourceIterator sourceIterator = request
    +                .getSourceIterator();
    +        while (sourceIterator.hasNext()) {
    +            final HierarchySourceRow sourceRow = sourceIterator.next();
    +            final TopInfo topInfo = new TopInfo();
    +            topInfo.setHierarchyRequest(request);
    +            topInfo.setSourceRow(sourceRow);
    +            topInfo.setAlreadyRegisteredEntityMap(alreadyRegisteredEntityMap);
    +
    +            final Map primaryKeyMap = extractTopPrimaryKeyMapFromSource(topInfo);
    +            final String alreadyRegisteredKey = buildTopAlreadyRegisteredKey(primaryKeyMap);
    +            if (alreadyRegisteredEntityMap.containsKey(alreadyRegisteredKey)) {
    +                final Entity localEntity = alreadyRegisteredEntityMap
    +                        .get(alreadyRegisteredKey);
    +                topInfo.setLocalEntity(localEntity);
    +            } else {
    +                // Make local entity and register it to the result list.
    +                final LOCAL_ENTITY localEntity = newLocalEntity(request
    +                        .getDestinationDBMeta());
    +                topInfo.setLocalEntity(localEntity);
    +                localTableList.add(localEntity);
    +                alreadyRegisteredEntityMap.put(alreadyRegisteredKey,
    +                        localEntity);
    +            }
    +
    +            // ============
    +            // Column Loop!
    +            // ============
    +            doColumnLoop(topInfo);
    +        }
    +
    +        // Clear modified properties.
    +        final java.util.Set alreadyRegisteredEntityKeySet = alreadyRegisteredEntityMap
    +                .keySet();
    +        for (String key : alreadyRegisteredEntityKeySet) {
    +            final Entity currentRegisteredEntity = alreadyRegisteredEntityMap
    +                    .get(key);
    +            currentRegisteredEntity.clearModifiedPropertyNames();
    +        }
    +
    +        return localTableList;
    +    }
    +
    +    /**
    +     * Build top already-registered key.
    +     * 
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     * @return Top already-registered key. (NotNull)
    +     */
    +    protected String buildTopAlreadyRegisteredKey(
    +            Map primaryKeyMap) {
    +        return HierarchyRequestElement.TOP_KEY + ":" + primaryKeyMap;
    +    }
    +
    +    /**
    +     * Do column loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of the
    +     *            type of local entity. (NotNull)
    +     */
    +    protected void doColumnLoop(TopInfo topInfo) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Entity localEntity = topInfo.getLocalEntity();
    +        final List requestElementList = request
    +                .getRequestElementList();
    +
    +        // ============
    +        // Column Loop!
    +        // ============
    +        for (HierarchyRequestElement requestElement : requestElementList) {
    +            final List relationPropertyNameList = requestElement
    +                    .getRelationPropertyNameList();
    +
    +            // If the column belongs to local entity, inject the value to entity
    +            // and continue loop.
    +            if (relationPropertyNameList == null
    +                    || relationPropertyNameList.isEmpty()) {
    +                final HierarchySourceColumn sourceColumn = requestElement
    +                        .getSourceColumnInfo();
    +                final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +                final Object sourceColumnValue = extractColumnValueFromSource(
    +                        sourceRow, sourceColumn);
    +                final ColumnInfo destinationColumnInfo = requestElement
    +                        .getDestinationColumnInfo();
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +                continue;
    +            }
    +
    +            // ==============
    +            // Relation Loop!
    +            // ==============
    +            doRelationLoop(topInfo, requestElement, relationPropertyNameList);
    +        }
    +    }
    +
    +    /**
    +     * Do relation loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param relationPropNameList The list of relation property name that has
    +     *            generics of string. (NotNull)
    +     */
    +    protected void doRelationLoop(TopInfo topInfo,
    +            HierarchyRequestElement requestElement,
    +            java.util.List relationPropNameList) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map alreadyRegisteredEntityMap = topInfo
    +                .getAlreadyRegisteredEntityMap();
    +
    +        // Temporary variables for local
    +        Entity localEntity = topInfo.getLocalEntity();// as Default
    +        DBMeta localDBMeta = request.getDestinationDBMeta();// as Default
    +        String localRelationPath = HierarchyRequestElement.TOP_KEY;// as Default
    +
    +        // ==============
    +        // Relation Loop!
    +        // ==============
    +        final StringBuilder relationPropKeyStringBuilder = new StringBuilder();
    +        int relationLoopCount = 0;
    +        for (String relationPropName : relationPropNameList) {
    +            if (relationPropKeyStringBuilder.length() > 0) {
    +                relationPropKeyStringBuilder.append("_");
    +            }
    +            relationPropKeyStringBuilder.append(relationPropName);
    +            final String targetRelationPath = relationPropKeyStringBuilder
    +                    .toString();
    +            final RelationInfo relationInfo = localDBMeta
    +                    .findRelationInfo(relationPropName);
    +
    +            final Map targetPrimaryKeyMap;
    +            final String alreadyRegisteredEntityKey;
    +            if (!relationInfo.isReferrer()) {
    +                // =======
    +                // Foreign
    +                // =======
    +                final ForeignInfo foreignInfo = localDBMeta
    +                        .findForeignInfo(relationPropName);
    +                final String foreignPropName = foreignInfo
    +                        .getForeignPropertyName();
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    // Initialize the foreign entity and inject it.
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = foreignInfo.getForeignDBMeta()
    +                            .newEntity();
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of foreign.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectForeignPrimaryKey(foreignEntity, targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of local.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectLocalForeignKey(topInfo, localEntity, foreignInfo,
    +                            targetRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put foreign entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), foreignEntity);
    +                } else {
    +                    // - - - - - - - - - - - - - -
    +                    // Inject the foreign entity.
    +                    // - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = alreadyRegisteredEntityMap
    +                            .get(alreadyRegisteredEntityKey);
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +                }
    +            } else {
    +                // =======
    +                // Referrer
    +                // =======
    +                final ReferrerInfo referrerInfo = localDBMeta
    +                        .findReferrerInfo(relationPropName);
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                // Extract referrer list from current local entity and
    +                // initialize it if needs.
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                List referrerList = extractReferrerList(localEntity,
    +                        referrerInfo);
    +                if (referrerList == null) {
    +                    String msg = "The referrer list should not be null: localEntity="
    +                            + localEntity + " referrerInfo=" + referrerInfo;
    +                    throw new IllegalStateException(msg);
    +                }
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    // Initialize referrer entity and register it to the list of
    +                    // referrer with primary key value.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    final Entity referrerEntity = relationInfo
    +                            .getTargetDBMeta().newEntity();
    +                    referrerList.add(referrerEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerPrimaryKey(referrerEntity,
    +                            targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerForeignKey(topInfo, referrerEntity,
    +                            referrerInfo, localRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put referrer entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), referrerEntity);
    +                }
    +            }
    +
    +            // - - - - - - - - - - - - - - - - - -
    +            // Set next value to current element.
    +            // - - - - - - - - - - - - - - - - - -
    +            localEntity = alreadyRegisteredEntityMap
    +                    .get(alreadyRegisteredEntityKey);
    +            localDBMeta = localEntity.getDBMeta();
    +            localRelationPath = targetRelationPath;
    +
    +            if (relationLoopCount == (relationPropNameList.size() - 1)) {// The
    +                // last
    +                // loop
    +                // !
    +                // - - - - - - - - - - - -
    +                // Here is the last loop!
    +                // - - - - - - - - - - - -
    +                doLastLoopInjection(topInfo, requestElement, localEntity,
    +                        targetPrimaryKeyMap);
    +            }
    +            ++relationLoopCount;
    +        }
    +    }
    +
    +    /**
    +     * Is not existing primary key at the relation path?.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param relationPath The path of relation. (NotNull)
    +     * @return Determination.
    +     */
    +    protected boolean isNotExistPrimaryKey(TopInfo topInfo,
    +            String relationPath) {
    +        final Map primaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, relationPath);
    +        final Set keySet = primaryKeyMap.keySet();
    +        for (String key : keySet) {
    +            final Object value = primaryKeyMap.get(key);
    +            if (value == null) {
    +                return true;
    +            }
    +        }
    +        return false;
    +    }
    +
    +    /**
    +     * Do last loop injection.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param localEntity The interface of local entity. (NotNull)
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     */
    +    protected void doLastLoopInjection(TopInfo topInfo,
    +            HierarchyRequestElement requestElement, Entity localEntity,
    +            Map primaryKeyMap) {
    +        final ColumnInfo destinationColumnInfo = requestElement
    +                .getDestinationColumnInfo();
    +        if (!primaryKeyMap.containsKey(destinationColumnInfo.getColumnDbName())) {// The
    +            // column
    +            // is
    +            // primary
    +            // key
    +            // !
    +            final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +            final HierarchySourceColumn sourceColumnInfo = requestElement
    +                    .getSourceColumnInfo();
    +            final Object sourceColumnValue = extractColumnValueFromSource(
    +                    sourceRow, sourceColumnInfo);
    +            if (sourceColumnValue != null) {
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +            }
    +        }
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Extract Logic
    +    // =============
    +    protected Map extractTopPrimaryKeyMapFromSource(
    +            TopInfo topInfo) {
    +        return extractPrimaryKeyMapFromSource(topInfo,
    +                HierarchyRequestElement.TOP_KEY);
    +    }
    +
    +    protected Map extractPrimaryKeyMapFromSource(
    +            TopInfo topInfo, String relationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +        final java.util.List primaryKeyElement = request
    +                .findPrimaryKeyElement(relationPath);
    +        final java.util.Map primaryKeyMap = new java.util.LinkedHashMap();
    +        for (HierarchyRequestElement element : primaryKeyElement) {
    +            final HierarchySourceColumn sourcePrimaryKey = element
    +                    .getSourceColumnInfo();
    +            final Object sourcePrimaryKeyValue = extractColumnValueFromSource(
    +                    sourceRow, sourcePrimaryKey);
    +            primaryKeyMap.put(element.getDestinationColumnInfo()
    +                    .getColumnDbName(), sourcePrimaryKeyValue);
    +        }
    +        return primaryKeyMap;
    +    }
    +
    +    protected Object extractColumnValueFromSource(HierarchySourceRow sourceRow,
    +            HierarchySourceColumn sourceColumn) {
    +        return sourceRow.extractColumnValue(sourceColumn);
    +    }
    +
    +    @SuppressWarnings("unchecked")
    +    protected java.util.List extractReferrerList(Entity entity,
    +            ReferrerInfo referrerInfo) {
    +        return (java.util.List) invoke(referrerInfo.findGetter(),
    +                entity, new Object[] {});
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Inject Logic
    +    // ============
    +    /**
    +     * @param entity Entity. (NotNull)
    +     * @param columnInfo Column info. (NotNull)
    +     * @param columnValue Column value. (NotNull)
    +     */
    +    protected void injectColumnValueToDestinationIfNotNull(Entity entity,
    +            ColumnInfo columnInfo, final Object columnValue) {
    +        if (columnValue != null) {
    +            injectColumnValueToDestination(entity,
    +                    columnInfo.getColumnDbName(), columnValue);
    +        }
    +    }
    +
    +    protected void injectColumnValueToDestination(Entity entity,
    +            String columnDbName, final Object columnValue) {
    +        if (columnValue == null) {
    +            String msg = "The argument[columnValue] should not be null: ";
    +            msg = msg + " table=" + entity.getTableDbName() + " column="
    +                    + columnDbName;
    +            throw new IllegalStateException(msg);
    +        }
    +        invoke(entity.getDBMeta().findColumnInfo(columnDbName).findSetter(),
    +                entity, new Object[] { columnValue });
    +    }
    +
    +    protected void injectColumnValueMapToDestination(Entity entity,
    +            final Map columnValueMap) {
    +        final Set columnNameSet = columnValueMap.keySet();
    +        for (String columnName : columnNameSet) {
    +            final Object columnValue = columnValueMap.get(columnName);
    +            injectColumnValueToDestination(entity, columnName, columnValue);
    +        }
    +    }
    +
    +    protected void injectForeignEntity(Entity entity, String foreignPropName,
    +            Entity foreignEntity) {
    +        final String capPropReferrerName = initCap(foreignPropName);
    +        final Method method = findMethod(entity.getClass(), "set"
    +                + capPropReferrerName, new Class[] { foreignEntity.getDBMeta()
    +                .getEntityType() });
    +        invoke(method, entity, new Object[] { foreignEntity });
    +    }
    +
    +    protected void injectReferrerList(Entity entity, ReferrerInfo referrerInfo,
    +            java.util.List referrerList) {
    +        invoke(referrerInfo.findSetter(), entity, new Object[] { referrerList });
    +    }
    +
    +    protected void injectForeignPrimaryKey(Entity foreignEntity,
    +            Map foreigPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(foreignEntity, foreigPrimaryKeyMap);
    +    }
    +
    +    protected void injectReferrerPrimaryKey(Entity referrerEntity,
    +            Map referrerPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(referrerEntity, referrerPrimaryKeyMap);
    +    }
    +
    +    protected void injectLocalForeignKey(TopInfo topInfo,
    +            Entity localEntity, ForeignInfo foreignInfo,
    +            String foreignRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map foreignPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, foreignRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(foreignRelationPath);
    +        final Map localForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement foreignElement : primaryKeyElementList) {
    +            final String foreignPrimaryKeyColumnName = foreignElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo localForeignKeyInfo = foreignInfo
    +                    .findLocalByForeign(foreignPrimaryKeyColumnName);
    +            final Object localForeignKeyValue = foreignPrimaryKeyMap
    +                    .get(foreignPrimaryKeyColumnName);
    +            localForeignKeyMap.put(localForeignKeyInfo.getColumnDbName(),
    +                    localForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(localEntity, localForeignKeyMap);
    +    }
    +
    +    protected void injectReferrerForeignKey(TopInfo topInfo,
    +            Entity referrerEntity, ReferrerInfo referrerInfo,
    +            String localRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map localPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, localRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(localRelationPath);
    +        final Map referrerForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement localElement : primaryKeyElementList) {
    +            final String localPrimaryKeyName = localElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo referrerForeignKeyInfo = referrerInfo
    +                    .findReferrerByLocal(localPrimaryKeyName);
    +            final Object referrerForeignKeyValue = localPrimaryKeyMap
    +                    .get(localPrimaryKeyName);
    +            referrerForeignKeyMap.put(referrerForeignKeyInfo.getColumnDbName(),
    +                    referrerForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(referrerEntity, referrerForeignKeyMap);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Other Logic
    +    // ===========
    +    @SuppressWarnings("unchecked")
    +    protected LOCAL_ENTITY newLocalEntity(final DBMeta destinationDBMeta) {
    +        final LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = (LOCAL_ENTITY) destinationDBMeta.getEntityType()
    +                    .newInstance();
    +        } catch (InstantiationException e) {
    +            throw new IllegalStateException(e);
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        }
    +        return localEntity;
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Helper
    +    // ======
    +    protected String initCap(final String name) {
    +        final String capPropReferrerName = name.substring(0, 1).toUpperCase()
    +                + name.substring(1);
    +        return capPropReferrerName;
    +    }
    +
    +    private java.lang.reflect.Method findMethod(Class clazz, String methodName,
    +            Class[] argTypes) {
    +        try {
    +            return clazz.getMethod(methodName, argTypes);
    +        } catch (NoSuchMethodException ex) {
    +            String msg = "class=" + clazz + " method=" + methodName + "-"
    +                    + java.util.Arrays.asList(argTypes);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private Object invoke(java.lang.reflect.Method method, Object target,
    +            Object[] args) {
    +        try {
    +            return method.invoke(target, args);
    +        } catch (RuntimeException e) {
    +            final String lineSeparator = System.getProperty("line.separator");
    +            final Class[] parameterTypes = method.getParameterTypes();
    +            String msg = "Invoking method threw the exception:" + lineSeparator;
    +            msg = msg
    +                    + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * *"
    +                    + lineSeparator;
    +            msg = msg + "[" + method.getDeclaringClass().getSimpleName() + "."
    +                    + method.getName() + "()]" + lineSeparator;
    +            msg = msg + " methodArgTypes     = {"
    +                    + createTypeViewFromTypeArray(parameterTypes) + "}"
    +                    + lineSeparator;
    +            msg = msg + " specifiedArgValues = {"
    +                    + createValueViewFromValueArray(args) + "}" + lineSeparator;
    +            msg = msg + " specifiedArgTypes  = {"
    +                    + createTypeViewFromValueArray(args) + "}" + lineSeparator;
    +            if (parameterTypes.length > 0 && args.length > 0 && args[0] != null
    +                    && !parameterTypes[0].equals(args[0].getClass())) {
    +                msg = msg + " " + lineSeparator;
    +                final String compareString = "{" + parameterTypes[0] + " -- "
    +                        + args[0].getClass() + "}";
    +                msg = msg + " *Warning! The argType is ummatched: "
    +                        + compareString + lineSeparator;
    +            }
    +            msg = msg + "* * * * * * * * * */" + lineSeparator;
    +            throw new RuntimeException(msg, e);
    +        } catch (java.lang.reflect.InvocationTargetException ex) {
    +            Throwable t = ex.getCause();
    +            if (t instanceof RuntimeException) {
    +                throw (RuntimeException) t;
    +            }
    +            if (t instanceof Error) {
    +                throw (Error) t;
    +            }
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        } catch (IllegalAccessException ex) {
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private String createValueViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(value);
    +            } else {
    +                sb.append(", ").append(value);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            final String typeName = value != null ? value.getClass()
    +                    .getSimpleName() : "null";
    +            if (sb.length() == 0) {
    +                sb.append(typeName);
    +            } else {
    +                sb.append(", ").append(typeName);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromTypeArray(Class[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Class type = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(type.getSimpleName());
    +            } else {
    +                sb.append(", ").append(type.getSimpleName());
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Info Class
    +    // ==========
    +    protected static class TopInfo {
    +        private HierarchyRequest hierarchyRequest;
    +
    +        private HierarchySourceRow sourceRow;
    +
    +        private Entity localEntity;
    +
    +        private Map alreadyRegisteredEntityMap;
    +
    +        public HierarchySourceRow getSourceRow() {
    +            return sourceRow;
    +        }
    +
    +        public void setSourceRow(HierarchySourceRow sourceRow) {
    +            this.sourceRow = sourceRow;
    +        }
    +
    +        public Entity getLocalEntity() {
    +            return localEntity;
    +        }
    +
    +        public void setLocalEntity(Entity localEntity) {
    +            this.localEntity = localEntity;
    +        }
    +
    +        public Map getAlreadyRegisteredEntityMap() {
    +            return alreadyRegisteredEntityMap;
    +        }
    +
    +        public void setAlreadyRegisteredEntityMap(
    +                Map alreadyRegisteredEntityMap) {
    +            this.alreadyRegisteredEntityMap = alreadyRegisteredEntityMap;
    +        }
    +
    +        public HierarchyRequest getHierarchyRequest() {
    +            return hierarchyRequest;
    +        }
    +
    +        public void setHierarchyRequest(
    +                HierarchyRequest hierarchyRequest) {
    +            this.hierarchyRequest = hierarchyRequest;
    +        }
    +    }
    +}
    
    Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ===================================================================
    --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	                        (rev 0)
    +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	2008-11-11 09:42:47 UTC (rev 1330)
    @@ -0,0 +1,94 @@
    +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy;
    +
    +import jp.sf.pal.notepad.db.allcommon.Entity;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo;
    +
    +/**
    + * The basic request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + * @param  The type of local relation trace.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyBasicRequest
    +        extends HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    protected ColumnInfo _currentSourceColumnInfo;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyBasicRequest(Class localEntityType) {
    +        super(localEntityType);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Set up source.
    +     * 
    +     * @param sourceColumnInfo The column info of source. (NotNull)
    +     * @return Destination relation trace. (NotNull)
    +     */
    +    public DestinationRelationTrace src(
    +            ColumnInfo sourceColumnInfo) {
    +        this._currentSourceColumnInfo = sourceColumnInfo;
    +        final HierarchyBasicRequest outer = this;
    +        return new DestinationRelationTrace() {
    +            public LOCAL_RELATION_TRACE dst() {
    +                return outer.dst();
    +            }
    +        };
    +    }
    +
    +    /**
    +     * Set up destination.
    +     * 
    +     * @return Local relation trace. (NotNull)
    +     */
    +    public LOCAL_RELATION_TRACE dst() {
    +        final DBMeta.RelationTraceFixHandler handler = new DBMeta.RelationTraceFixHandler() {
    +            public void handleFixedTrace(DBMeta.RelationTrace relationTrace) {
    +                mapping(_currentSourceColumnInfo, relationTrace);
    +            }
    +        };
    +        final Object target = destinationDBMeta;
    +        java.lang.reflect.Method method = null;
    +        try {
    +            method = target.getClass().getMethod("createRelationTrace",
    +                    new Class[] { DBMeta.RelationTraceFixHandler.class });
    +        } catch (NoSuchMethodException e) {
    +            String msg = "Not found method: method=createRelationTrace(DBMeta.RelationTraceFixHandler)";
    +            throw new IllegalStateException(msg, e);
    +        }
    +        try {
    +            return (LOCAL_RELATION_TRACE) method.invoke(target,
    +                    new Object[] { handler });
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        } catch (java.lang.reflect.InvocationTargetException e) {
    +            throw new IllegalStateException(e.getCause());
    +        }
    +    }
    +
    +    public static interface DestinationRelationTrace {
    +        public LOCAL_RELATION_TRACE dst();
    +    }
    +}
    
    
    Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ___________________________________________________________________
    Name: svn:eol-style
       + native
    
    Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java
    ===================================================================
    --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	                        (rev 0)
    +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	2008-11-11 09:42:47 UTC (rev 1330)
    @@ -0,0 +1,347 @@
    +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import jp.sf.pal.notepad.db.allcommon.Entity;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityColumn;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityListIterator;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo;
    +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.RelationInfo;
    +
    +/**
    + * The request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    /** The dbmeta of desination. */
    +    protected DBMeta destinationDBMeta;
    +
    +    /** The iterator of hierarychy source. */
    +    protected HierarchySourceIterator sourceIterator;
    +
    +    /** The list of request element. */
    +    protected List requestElementList = new ArrayList();
    +
    +    /** The set of already registered source column info for check. */
    +    protected java.util.Set alreadyRegisteredSourceColumnInfoSet4Check = new java.util.HashSet();
    +
    +    /** First source column info for check. */
    +    protected ColumnInfo firstSourceColumnInfo4Check;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyRequest(Class localEntityType) {
    +        LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = localEntityType.newInstance();
    +        } catch (InstantiationException e) {
    +            String msg = "localEntityType.newInstance() threw the InstantiationException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        } catch (IllegalAccessException e) {
    +            String msg = "localEntityType.newInstance() threw the IllegalAccessException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        }
    +        destinationDBMeta = localEntity.getDBMeta();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Register the list of source. 
    This method uses the default source + * iterator. + * + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + */ + public void registerSourceList(java.util.List sourceList) { + sourceIterator = createDefaultSourceIterator(sourceList); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumn The column of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumn, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(ColumnInfo sourceColumnInfo, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumnInfo, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + // ----------------------------------------------------- + // internal + // ------- + /** + * Set up element. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Set up element.
    This method uses the default source column. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(ColumnInfo sourceColumnInfo, + ColumnInfo destinationColumnInfo) { + if (alreadyRegisteredSourceColumnInfoSet4Check + .contains(sourceColumnInfo)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The source column has already been registered:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + " sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + " registeredColumnInfo=" + + alreadyRegisteredSourceColumnInfoSet4Check + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + alreadyRegisteredSourceColumnInfoSet4Check.add(sourceColumnInfo); + assertSameSourceDBMeta(sourceColumnInfo); + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + final HierarchySourceColumn sourceColumn = createDefaultSourceColumn(sourceColumnInfo); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Make relatetion by the list of relation info. + * + * @param relationInfoList The list of relation info. (NotNull) + */ + protected void addRelationToLastElement(List relationInfoList) { + if (requestElementList.isEmpty()) { + String msg = "You shuold invoke mapping() before invoking relation()!"; + throw new IllegalStateException(msg); + } + for (RelationInfo relationInfo : relationInfoList) { + final int lastIndex = requestElementList.size() - 1; + final HierarchyRequestElement element = (HierarchyRequestElement) requestElementList + .get(lastIndex); + element.relation(relationInfo); + } + } + + /** + * Assert same source dbmeta. + * + * @param sourceColumnInfo The column info of source. (NotNull) + */ + protected void assertSameSourceDBMeta(ColumnInfo sourceColumnInfo) { + if (firstSourceColumnInfo4Check == null) { + firstSourceColumnInfo4Check = sourceColumnInfo; + return; + } + final DBMeta expectedDBMeta = firstSourceColumnInfo4Check.getDBMeta(); + final DBMeta actualDBMeta = sourceColumnInfo.getDBMeta(); + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The dbmeta of sourceColumnInfo is difference from"; + msg = msg + " the one of Your First Source Column Info:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + "firstSourceColumnInfo4Check=" + + firstSourceColumnInfo4Check + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Assert same source dbmeta. + * + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void assertSameLocalDestinationDBMeta( + ColumnInfo destinationColumnInfo) { + if (!requestElementList.isEmpty()) { + final HierarchyRequestElement currentElement = currentElement(); + final List relationInfoList = currentElement + .getRelationInfoList(); + if (relationInfoList.isEmpty()) { + final DBMeta actualDBMeta = currentElement() + .getDestinationDBMeta(); + final DBMeta expectedDBMeta = destinationDBMeta; + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong destinationColumnInfo!" + + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The dbmeta of destinationColumnInfo is difference from"; + msg = msg + " the one of Your Local Entity:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "destinationColumnInfo=" + + currentElement.getDestinationColumnInfo() + + getLineSeparator(); + msg = msg + "localEntity=" + + destinationDBMeta.getEntityTypeName() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + } + } + + /** + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + * @return Default source iterator. (NotNull) + */ + protected HierarchySourceIterator createDefaultSourceIterator( + java.util.List sourceList) { + return new HierarchySourceEntityListIterator(sourceList); + } + + /** + * @param sourceColumnInfo The column info of source. (NotNull) + * @return Default source column. (NotNull) + */ + protected HierarchySourceColumn createDefaultSourceColumn( + ColumnInfo sourceColumnInfo) { + return new HierarchySourceEntityColumn(sourceColumnInfo); + } + + /** + * Get current element. + * + * @return Current element. (NotNull) + */ + protected HierarchyRequestElement currentElement() { + final int lastIndex = requestElementList.size() - 1; + return (HierarchyRequestElement) requestElementList.get(lastIndex); + } + + // ----------------------------------------------------- + // Internal + // -------- + /** + * @param relationPropertyKey Relation Property key. (NotNull) + * @return The list of request element. (NotNull) + */ + public List findPrimaryKeyElement( + String relationPropertyKey) { + final List resultList = new ArrayList(); + for (HierarchyRequestElement element : requestElementList) { + if (!relationPropertyKey.equals(element.getRelationPropertyKey())) { + continue; + } + final ColumnInfo destinationColumnInfo = element + .getDestinationColumnInfo(); + if (!destinationColumnInfo.isPrimary()) { + continue; + } + resultList.add(element); + } + if (resultList.isEmpty()) { + String msg = "Not found primary key element by relationPropertyKey in requestElementList: "; + msg = msg + " relationPropertyKey=" + relationPropertyKey + + " requestElementList=" + requestElementList; + throw new IllegalStateException(msg); + } + return resultList; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public List getRequestElementList() { + return requestElementList; + } + + public void addRequestElementList(HierarchyRequestElement element) { + this.requestElementList.add(element); + } + + public HierarchySourceIterator getSourceIterator() { + return sourceIterator; + } + + public void setSourceIterator(HierarchySourceIterator sourceIterator) { + this.sourceIterator = sourceIterator; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,132 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.RelationInfo; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class HierarchyRequestElement { + + //========================================================================== + // ========= + // Definition + // ========== + /** Top key. */ + public static final String TOP_KEY = "$top$"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** The column of source. */ + protected HierarchySourceColumn sourceColumn; + + /** The dbmeta of destination. */ + protected DBMeta destinationDBMeta; + + /** The column info of destination. */ + protected ColumnInfo destinationColumnInfo; + + /** The list of relation info. */ + protected java.util.List relationInfoList = new java.util.ArrayList(); + + /** the list of relation property name. */ + protected java.util.List relationPropertyNameList = new java.util.ArrayList(); + + /** Relation property key. Default value is TOP_KEY. */ + protected String relationPropertyKey = TOP_KEY; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + // ----------------------------------------------------- + // Internal + // -------- + /** + * Make mapping between the source column and the destination one. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + this.sourceColumn = sourceColumn; + this.destinationColumnInfo = destinationColumnInfo; + } + + /** + * Make relatetion by relation info. + * + * @param relationInfo Relation info. (NotNull) + */ + public void relation(RelationInfo relationInfo) { + addRelationInfoList(relationInfo); + } + + protected void addRelationInfoList(RelationInfo relationInfo) { + relationInfoList.add(relationInfo); + addRelationPropertyNameList(relationInfo.getRelationPropertyName()); + } + + protected void addRelationPropertyNameList(String relationPropertyName) { + relationPropertyNameList.add(relationPropertyName); + setupRelationPropertyKey(); + } + + protected void setupRelationPropertyKey() { + final StringBuilder sb = new StringBuilder(); + for (String relationPropertyName : relationPropertyNameList) { + if (sb.length() > 0) { + sb.append("_"); + } + sb.append(relationPropertyName); + } + this.relationPropertyKey = sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public HierarchySourceColumn getSourceColumnInfo() { + return sourceColumn; + } + + public void setSourceColumnInfo(HierarchySourceColumn sourceColumn) { + this.sourceColumn = sourceColumn; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public ColumnInfo getDestinationColumnInfo() { + return destinationColumnInfo; + } + + public java.util.List getRelationInfoList() { + return relationInfoList; + } + + public List getRelationPropertyNameList() { + return relationPropertyNameList; + } + + public String getRelationPropertyKey() { + return relationPropertyKey; + } + + public String toString() { + return sourceColumn + "," + destinationColumnInfo; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,10 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceColumn { + + public String getColumnName(); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceIterator { + + public boolean hasNext(); + + public HierarchySourceRow next(); + + public HierarchySourceRow current(); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,10 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceRow { + + public Object extractColumnValue(HierarchySourceColumn columnInfo); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,24 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityColumn implements HierarchySourceColumn { + + protected ColumnInfo columnInfo; + + public HierarchySourceEntityColumn(ColumnInfo columnInfo) { + this.columnInfo = columnInfo; + } + + public String getColumnName() { + return columnInfo.getColumnDbName(); + } + + public java.lang.reflect.Method findGetter() { + return columnInfo.findGetter(); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,24 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceEntityListIterator extends + HierarchySourceListIterator { + + /** + * Constructor. + * + * @param sourceRowList The list of source row. (NotNull) + */ + public HierarchySourceEntityListIterator( + java.util.List sourceRowList) { + super(sourceRowList, new HierarchySourceRowSetupper() { + public jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source) { + return new HierarchySourceEntityRow(source); + } + }); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,48 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityRow implements + jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceRow { + + protected Object sourceBean; + + public HierarchySourceEntityRow(Object sourceBean) { + this.sourceBean = sourceBean; + } + + public Object extractColumnValue( + jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn columnInfo) { + if (!(columnInfo instanceof HierarchySourceEntityColumn)) { + String msg = "The column info should be HierarchySourceEntityColumn! but: " + + columnInfo; + throw new IllegalStateException(msg); + } + final HierarchySourceEntityColumn sourceEntityColumn = (HierarchySourceEntityColumn) columnInfo; + return invoke(sourceEntityColumn.findGetter(), sourceBean, + new Object[] {}); + } + + private Object invoke(java.lang.reflect.Method method, Object target, + Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,39 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceListIterator implements + jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceIterator { + + protected java.util.List sourceRowList; + + protected HierarchySourceRowSetupper sourceRowSetupper; + + protected java.util.Iterator sourceBeanListIterator; + + protected jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceRow currentSourceEntity; + + public HierarchySourceListIterator( + java.util.List sourceRowList, + HierarchySourceRowSetupper sourceRowSetupper) { + this.sourceRowList = sourceRowList; + this.sourceRowSetupper = sourceRowSetupper; + this.sourceBeanListIterator = sourceRowList.iterator(); + } + + public boolean hasNext() { + return this.sourceBeanListIterator.hasNext(); + } + + public jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceRow next() { + this.currentSourceEntity = this.sourceRowSetupper + .setup(this.sourceBeanListIterator.next()); + return this.currentSourceEntity; + } + + public jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceRow current() { + return this.currentSourceEntity; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public interface HierarchySourceRowSetupper { + + public jp.sf.pal.notepad.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ColumnInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ColumnInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ColumnInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,217 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.info; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta.OptimisticLockType; + +/** + * The information of column. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ColumnInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected String columnDbName; + + protected String propertyName; + + protected Class propertyType; + + protected boolean primary; + + protected Integer columnSize; + + protected Integer columnDecimalDigits; + + protected OptimisticLockType optimisticLockType; + + //========================================================================== + // ========= + // Constructor + // =========== + public ColumnInfo(DBMeta dbmeta, String columnDbName) { + this(dbmeta, columnDbName, null, null, false, null, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, columnDecimalDigits, OptimisticLockType.NONE); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) { + this.dbmeta = dbmeta; + this.columnDbName = columnDbName; + this.propertyName = propertyName; + this.propertyType = propertyType; + this.primary = primary; + this.columnSize = columnSize; + this.columnDecimalDigits = columnDecimalDigits; + this.optimisticLockType = optimisticLockType; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.propertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(dbmeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { this.propertyType }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(dbmeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public boolean isOptimisticLock() { + return isVersionNo() || isUpdateDate(); + } + + public boolean isVersionNo() { + return OptimisticLockType.VERSION_NO == optimisticLockType; + } + + public boolean isUpdateDate() { + return OptimisticLockType.UPDATE_DATE == optimisticLockType; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + public int hashCode() { + return dbmeta.hashCode() + columnDbName.hashCode(); + } + + public boolean equals(Object obj) { + if (!(obj instanceof ColumnInfo)) { + return false; + } + final ColumnInfo target = (ColumnInfo) obj; + if (this.dbmeta == null || target.getDBMeta() == null) { + return false; + } + if (!this.dbmeta.equals(target.getDBMeta())) { + return false; + } + if (this.columnDbName == null || target.getColumnDbName() == null) { + return false; + } + if (!this.columnDbName.equals(target.getColumnDbName())) { + return false; + } + return true; + } + + public String toString() { + return dbmeta.getTableDbName() + "." + columnDbName; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public String getColumnDbName() { + return this.columnDbName; + } + + public void setColumnDbName(String columnDbName) { + this.columnDbName = columnDbName; + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public Class getPropertyType() { + return this.propertyType; + } + + public void setPropertyType(Class propertyType) { + this.propertyType = propertyType; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } + + public Integer getColumnSize() { + return this.columnSize; + } + + public void setColumnSize(Integer columnSize) { + this.columnSize = columnSize; + } + + public Integer getColumnDecimalDigits() { + return this.columnDecimalDigits; + } + + public void setColumnDecimalDigits(Integer columnDecimalDigits) { + this.columnDecimalDigits = columnDecimalDigits; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ColumnInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ForeignInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ForeignInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ForeignInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,175 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.info; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +/** + * The class of foreign information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ForeignInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String foreignPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta foreignDBMeta; + + protected java.util.Map localForeignColumnInfoMap; + + protected java.util.Map foreignLocalColumnInfoMap; + + protected int relationNo; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByForeign(String foreignColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(foreignDBMeta, + foreignColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) foreignLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:"; + msg = msg + " foreignColumnDbName=" + foreignColumnDbName + + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.foreignPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getForeignPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getForeignDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalForeignColumnInfoMap(); + } + + public boolean isReferrer() { + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getForeignPropertyName() { + return foreignPropertyName; + } + + public void setForeignPropertyName(String foreignPropertyName) { + this.foreignPropertyName = foreignPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getForeignDBMeta() { + return foreignDBMeta; + } + + public void setForeignDBMeta(DBMeta foreignDBMeta) { + this.foreignDBMeta = foreignDBMeta; + } + + public java.util.Map getLocalForeignColumnInfoMap() { + return localForeignColumnInfoMap; + } + + public void setLocalForeignColumnInfoMap( + java.util.Map localForeignColumnInfoMap) { + this.localForeignColumnInfoMap = localForeignColumnInfoMap; + final java.util.Set keySet = localForeignColumnInfoMap.keySet(); + foreignLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localForeignColumnInfoMap + .get(key); + foreignLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getForeignLocalColumnInfoMap() { + return foreignLocalColumnInfoMap; + } + + public int getRelationNo() { + return relationNo; + } + + public void setRelationNo(int relationNo) { + this.relationNo = relationNo; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ForeignInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ReferrerInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ReferrerInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ReferrerInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,181 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.info; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referrer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ReferrerInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String referrerPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta referrerDBMeta; + + protected java.util.Map localReferrerColumnInfoMap; + + protected java.util.Map referrerLocalColumnInfoMap; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByReferrer(String referrerColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(referrerDBMeta, + referrerColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) referrerLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:"; + msg = msg + " referrerColumnDbName=" + referrerColumnDbName + + " referrerLocalColumnInfoMap=" + + referrerLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + public ColumnInfo findReferrerByLocal(String localColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(localDBMeta, + localColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) localReferrerColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:"; + msg = msg + " localColumnDbName=" + localColumnDbName + + " localReferrerColumnInfoMap=" + + localReferrerColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.referrerPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getReferrerPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getReferrerDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalReferrerColumnInfoMap(); + } + + public boolean isReferrer() { + return true; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getReferrerPropertyName() { + return referrerPropertyName; + } + + public void setReferrerPropertyName(String referrerPropertyName) { + this.referrerPropertyName = referrerPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getReferrerDBMeta() { + return referrerDBMeta; + } + + public void setReferrerDBMeta(DBMeta referrerDBMeta) { + this.referrerDBMeta = referrerDBMeta; + } + + public java.util.Map getLocalReferrerColumnInfoMap() { + return localReferrerColumnInfoMap; + } + + public void setLocalReferrerColumnInfoMap( + java.util.Map localReferrerColumnInfoMap) { + this.localReferrerColumnInfoMap = localReferrerColumnInfoMap; + final java.util.Set keySet = localReferrerColumnInfoMap.keySet(); + referrerLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localReferrerColumnInfoMap + .get(key); + referrerLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getReferrerLocalColumnInfoMap() { + return referrerLocalColumnInfoMap; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/ReferrerInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/RelationInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/RelationInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/RelationInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,24 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.info; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RelationInfo { + + public String getRelationPropertyName(); + + public DBMeta getLocalDBMeta(); + + public DBMeta getTargetDBMeta(); + + public java.util.Map getLocalTargetColumnInfoMap(); + + public boolean isOneToOne(); + + public boolean isReferrer(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/RelationInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/UniqueInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/UniqueInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/UniqueInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,77 @@ +package jp.sf.pal.notepad.db.allcommon.dbmeta.info; + +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +/** + * The class of unique info. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UniqueInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected java.util.List uniqueColumnList = new java.util.ArrayList(); + + protected boolean primary; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public boolean containsColumn(String columnName) { + for (final java.util.Iterator ite = uniqueColumnList.iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (columnInfo.getColumnDbName().equals(columnName)) { + return true; + } + } + return false; + } + + public boolean containsColumn(ColumnInfo column) { + return containsColumn(column.getColumnDbName()); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public java.util.List getUniqueColumnList() { + return uniqueColumnList; + } + + public void addUniqueColumnList(ColumnInfo uniqueColumn) { + this.uniqueColumnList.add(uniqueColumn); + } + + public ColumnInfo getFirstColumn() { + return (ColumnInfo) this.uniqueColumnList.get(0); + } + + public boolean isTwoOrMore() { + return this.uniqueColumnList.size() > 1; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/dbmeta/info/UniqueInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the entity has already been updated by other thread in + * batch update. + * + * @author DBFlute(AutoGenerator) + */ +public class BatchEntityAlreadyUpdatedException extends + EntityAlreadyUpdatedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected Integer _batchUpdateCount; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows(Update count per One entity). + * @param batchUpdateCount Batch update count(Total). + */ + public BatchEntityAlreadyUpdatedException(Object bean, int rows, + Integer batchUpdateCount) { + super(bean, rows); + _batchUpdateCount = batchUpdateCount; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Integer getBatchUpdateCount() { + return _batchUpdateCount; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,34 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the property on bind variable comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public BindVariableCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableParameterNullValueException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableParameterNullValueException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableParameterNullValueException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the value of bind variable is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/BindVariableParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/DangerousResultSizeException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/DangerousResultSizeException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/DangerousResultSizeException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,36 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the result size is dangerous. + * + * @author DBFlute(AutoGenerator) + */ +public class DangerousResultSizeException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** + * Constructor. + * + * @param msg Exception message. + * @param safetyMaxResultSize Safety max result size. + * @param selectedCount Selected count. + */ + public DangerousResultSizeException(String msg, int safetyMaxResultSize) { + super(msg); + this._safetyMaxResultSize = safetyMaxResultSize; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/DangerousResultSizeException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,34 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the property on embedded value comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueParameterNullValueException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueParameterNullValueException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueParameterNullValueException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the value of embedded value is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EmbeddedValueParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EndCommentNotFoundException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EndCommentNotFoundException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EndCommentNotFoundException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the end comment is not found about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EndCommentNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EndCommentNotFoundException(String msg) { + super(msg); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EndCommentNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyDeletedException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyDeletedException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyDeletedException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,22 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the entity has already been deleted by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyDeletedException extends + RecordHasAlreadyBeenDeletedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityAlreadyDeletedException(String msg) { + super(msg); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyExistsException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyExistsException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyExistsException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,25 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the entity already exists on the database. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyExistsException extends SQLFailureException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public EntityAlreadyExistsException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyExistsException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyUpdatedException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyUpdatedException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyUpdatedException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,38 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; + +/** + * The exception of when the entity has already been updated by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyUpdatedException extends + NotSingleRowUpdatedRuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows. + */ + public EntityAlreadyUpdatedException(Object bean, int rows) { + super(bean, rows); + } + + /** + * Constructor. + * + * @param e NotSingleRowUpdatedRuntimeException. (NotNull) + */ + public EntityAlreadyUpdatedException(NotSingleRowUpdatedRuntimeException e) { + super(e.getBean(), e.getRows()); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityDuplicatedException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityDuplicatedException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityDuplicatedException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,31 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the entity has been duplicated. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityDuplicatedException extends RecordHasOverlappedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityDuplicatedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public EntityDuplicatedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/EntityDuplicatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentConditionNotFoundException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentConditionNotFoundException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentConditionNotFoundException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,23 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the condition of IF comment is not found about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentConditionNotFoundException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentConditionNotFoundException(String msg) { + super(msg); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentConditionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentNotBooleanResultException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentNotBooleanResultException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentNotBooleanResultException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,33 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the result of IF comment is not boolean about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentNotBooleanResultException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentNotBooleanResultException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentNotBooleanResultException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentNotBooleanResultException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentWrongExpressionException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentWrongExpressionException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentWrongExpressionException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,31 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the IF comment has a wrong expression about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentWrongExpressionException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentWrongExpressionException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentWrongExpressionException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/IfCommentWrongExpressionException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/OutsideSqlNotFoundException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/OutsideSqlNotFoundException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/OutsideSqlNotFoundException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,31 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the outside-sql is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public OutsideSqlNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public OutsideSqlNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/OutsideSqlNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,22 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception when the record has already been deleted (by other thread).
    This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasAlreadyBeenDeletedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasAlreadyBeenDeletedException(String msg) { + super(msg); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasOverlappedException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasOverlappedException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasOverlappedException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,31 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception when the record has overlapped. This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasOverlappedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasOverlappedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RecordHasOverlappedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RecordHasOverlappedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RequiredOptionNotFoundException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RequiredOptionNotFoundException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RequiredOptionNotFoundException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,31 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +/** + * The exception of when the required option is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class RequiredOptionNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RequiredOptionNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RequiredOptionNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/RequiredOptionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/SQLFailureException.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/SQLFailureException.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/SQLFailureException.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,31 @@ +package jp.sf.pal.notepad.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the SQL failed to execute. + * + * @author DBFlute(AutoGenerator) + */ +public class SQLFailureException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + protected SQLException sqlEx; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public SQLFailureException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } + + public SQLException getSQLException() { + return sqlEx; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/exception/SQLFailureException.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListString.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListString.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListString.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,105 @@ +package jp.sf.pal.notepad.db.allcommon.helper; + +import java.util.List; +import java.util.Map; + +/** + * MapList-String. + *

    + * + *

    + * # Interface that offers generation of map and list from the following character strings (map list string). 
    + * # 
    + * #   ex) map:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #   ex) list:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public interface MapListString { + + /** Default of map-mark. */ + public static final String DEFAULT_MAP_MARK = "map:"; + + /** Default of list-mark. */ + public static final String DEFAULT_LIST_MARK = "list:"; + + /** Default of start-brace. */ + public static final String DEFAULT_START_BRACE = "{"; + + /** Default of end-brace. */ + public static final String DEFAULT_END_BRACE = "}"; + + /** Default of delimter. */ + public static final String DEFAULT_DELIMITER = ";"; + + /** Default of equal. */ + public static final String DEFAULT_EQUAL = "="; + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map-mark. (NotNull) + */ + public void setMapMark(String mapMark); + + /** + * Set list-mark. + * + * @param listMark List-mark. (NotNull) + */ + public void setListMark(String listMark); + + /** + * Set start brace. + * + * @param startBrace Start brace. (NotNull) + */ + public void setStartBrace(String startBrace); + + /** + * Set end brace. + * + * @param endBrace End brace. (NotNull) + */ + public void setEndBrace(String endBrace); + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public void setDelimiter(String delimiter); + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal); + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public Map generateMap(String mapString); + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public List generateList(String listString); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListString.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListStringImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListStringImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListStringImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1079 @@ +package jp.sf.pal.notepad.db.allcommon.helper; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * The implementation of MapList-String. + * + * @author DBFlute(AutoGenerator) + */ +public class MapListStringImpl implements MapListString { + + /** Line separator. */ + public static final String NEW_LINE = System.getProperty("line.separator"); + + /** Map-mark. */ + protected String _mapMark; + + /** List-mark. */ + protected String _listMark; + + /** Start-brace. */ + protected String _startBrace; + + /** End-brace. */ + protected String _endBrace; + + /** Delimiter. */ + protected String _delimiter; + + /** Equal. */ + protected String _equal; + + /** Top string. */ + protected String _topString; + + /** Remainder string. */ + protected String _remainderString; + + /** + * Constructor. + */ + public MapListStringImpl() { + _mapMark = DEFAULT_MAP_MARK; + _listMark = DEFAULT_LIST_MARK; + _startBrace = DEFAULT_START_BRACE; + _endBrace = DEFAULT_END_BRACE; + _delimiter = DEFAULT_DELIMITER; + _equal = DEFAULT_EQUAL; + } + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map mark. (NotNull) + */ + public void setMapMark(String mapMark) { + _mapMark = mapMark; + } + + /** + * Set list-mark. + * + * @param listMark List mark. (NotNull) + */ + public void setListMark(String listMark) { + _listMark = listMark; + } + + /** + * Set start-brace. + * + * @param startBrace Start-brace. (NotNull) + */ + public synchronized void setStartBrace(String startBrace) { + _startBrace = startBrace; + } + + /** + * Set end-brace. + * + * @param endBrace End-brace. (NotNull) + */ + public synchronized void setEndBrace(String endBrace) { + _endBrace = endBrace; + } + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public synchronized void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal) { + _equal = equal; + } + + //************************************************************************** + // ************************** + // Main Method + // *********** + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. {Implement} + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public synchronized Map generateMap(String mapString) { + assertMapString(mapString); + + _topString = mapString; + _remainderString = mapString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixMapMarkAndStartBrace(); + + final Map generatedMap = newStringObjectMap(); + parseRemainderMapString(generatedMap); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # generatedMap --> " + + generatedMap; + throw new IllegalStateException(msg); + } + return generatedMap; + } + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public synchronized List generateList(String listString) { + assertListString(listString); + + _topString = listString; + _remainderString = listString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixListMarkAndStartBrace(); + + final List generatedList = newObjectList(); + parseRemainderListString(generatedList); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # generatedList --> " + + generatedList; + throw new IllegalStateException(msg); + } + return generatedList; + } + + //========================================================================== + // ================ + // Parse + // ===== + /** + * Parse remainder map string. + * + * @param currentMap current map. + */ + protected void parseRemainderMapString(final Map currentMap) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the key of the map. + // *** + + final int equalIndex = _remainderString.indexOf(_equal); + assertEqualIndex(_remainderString, equalIndex, _topString, + currentMap); + final String mapKey = _remainderString.substring(0, equalIndex) + .trim(); + removePrefixTargetIndexPlus(equalIndex, _equal.length()); + removeBothSideSpaceAndTabAndNewLine(); + + // *** Now, _remainderString should starts with the value of the + // map. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBracekIndex(_remainderString, endBraceIndex, _topString, + currentMap); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1,key2=value2} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String mapValue = _remainderString.substring(0, + delimiterIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Because the map element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1}, key2=value2} + final String mapValue = _remainderString + .substring(0, endBraceIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Analyzing map is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Parse remainder list string. + * + * @param currentList current list. + */ + protected void parseRemainderListString(final List currentList) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the value of the + // list. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBraceIndex(_remainderString, endBraceIndex, _topString, + currentList); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1,value2,value3} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String listValue = _remainderString.substring(0, + delimiterIndex); + currentList.add(filterMapListValue(listValue)); + + // Because the list element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1}, value2, } + final String listValue = _remainderString.substring(0, + endBraceIndex); + currentList.add(filterMapListValue(listValue)); + + // Analyzing list is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Initialize at loop beginning. + * + * @return Is return? + */ + protected boolean initializeAtLoopBeginning() { + // Remove prefix delimiter. (Result string is always trimmed.) + removePrefixAllDelimiter(); + + // If the remainder string is empty-string, Analyzing is over! + if (_remainderString.equals("")) { + return true; + } + + // If the remainder string starts with end-brace, Analyzing current map + // is over! + // And then remove the end-brace. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close after parse nest map list. + * + * @return Is return? + */ + protected boolean closingAfterParseNestMapList() { + // If the remainder string starts with end-brace, remove it and return + // true. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close by end-brace index. + * + * @param endBraceIndex End-brace index. + */ + protected void closingByEndBraceIndex(int endBraceIndex) { + // Remove the value that was finished analyzing and end-brace. + _remainderString = _remainderString.substring(endBraceIndex); + removePrefixEndBrace(); + } + + //************************************************************************** + // ************************** + // StateFul Method + // *************** + + //========================================================================== + // ================ + // Remove + // ====== + /** + * Remove prefix map-mark and start-brace. + */ + protected void removePrefixMapMarkAndStartBrace() { + removePrefix(_mapMark + _startBrace); + } + + /** + * Remove prefix list-mark and start-brace. + */ + protected void removePrefixListMarkAndStartBrace() { + removePrefix(_listMark + _startBrace); + } + + /** + * Remove prefix delimiter. + */ + protected void removePrefixDelimiter() { + removePrefix(_delimiter); + } + + /** + * Remove prefix end-brace. + */ + protected void removePrefixEndBrace() { + removePrefix(_endBrace); + } + + /** + * Remove prefix. + * + * @param prefixString Prefix string. (NotNull) + */ + protected void removePrefix(String prefixString) { + if (_remainderString == null) { + String msg = "Argument[remainderString] must not be null: " + + _remainderString; + throw new IllegalArgumentException(msg); + } + if (prefixString == null) { + String msg = "Argument[prefixString] must not be null: " + + prefixString; + throw new IllegalArgumentException(msg); + } + + removeBothSideSpaceAndTabAndNewLine(); + + if (_remainderString.length() < prefixString.length()) { + String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString=" + + prefixString; + throw new IllegalArgumentException(msg); + } + if (!_remainderString.startsWith(prefixString)) { + String msg = "Argument[remainderString] must start with Argument[prefixString:]"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString --> " + + prefixString; + throw new IllegalArgumentException(msg); + } + + _remainderString = _remainderString.substring(prefixString.length()); + removeBothSideSpaceAndTabAndNewLine(); + } + + /** + * Remove prefix and delimiter. + */ + protected void removePrefixAllDelimiter() { + removeBothSideSpaceAndTabAndNewLine(); + + while (true) { + if (!isStartsWithDelimiter(_remainderString)) { + break; + } + + if (isStartsWithDelimiter(_remainderString)) { + removePrefixDelimiter(); + removeBothSideSpaceAndTabAndNewLine(); + } + } + } + + /** + * Remove both side space and tab and new-line. + */ + protected void removeBothSideSpaceAndTabAndNewLine() { + _remainderString = _remainderString.trim(); + } + + /** + * Remove prefix (target index plus one). + * + * @param index Index. + * @param plusCount Plus count. + */ + protected void removePrefixTargetIndexPlus(int index, int plusCount) { + _remainderString = _remainderString.substring(index + plusCount); + } + + //************************************************************************** + // ************************** + // StateLess Method + // **************** + + //========================================================================== + // ================ + // Assert + // ====== + /** + * Assert map-string. + * + * @param mapString Map-string. (NotNull) + */ + protected void assertMapString(String mapString) { + if (mapString == null) { + String msg = "Argument[mapString] must not be null: "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + mapString = mapString.trim(); + if (!isStartsWithMapPrefix(mapString)) { + String msg = "Argument[mapString] must start with '" + _mapMark + + _startBrace + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + if (!isEndsWithEndBrace(mapString)) { + String msg = "Argument[mapString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + + final int startBraceCount = getDelimiterCount(mapString, _startBrace); + final int endBraceCount = getDelimiterCount(mapString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert list-string. + * + * @param listString List-string. (NotNull) + */ + protected void assertListString(String listString) { + if (listString == null) { + String msg = "Argument[listString] must not be null: "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + listString = listString.trim(); + if (!isStartsWithListPrefix(listString)) { + String msg = "Argument[listString] must start with '" + _mapMark + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + if (!isEndsWithEndBrace(listString)) { + String msg = "Argument[listString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + + final int startBraceCount = getDelimiterCount(listString, _startBrace); + final int endBraceCount = getDelimiterCount(listString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert equal-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param equalIndex Equal-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEqualIndex(String remainderMapString, int equalIndex, + String mapString4Log, Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (equalIndex < 0) { + String msg = "Argument[equalIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < equalIndex) { + String msg = "Argument[remainderMapString] length must be larger than equalIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + equalIndex, equalIndex + _equal.length()); + if (!expectedAsEndMark.equals(_equal)) { + String msg = "Argument[remainderMapString] must have '" + _equal + + "' at Argument[equalIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEndBracekIndex(String remainderMapString, + int endBraceIndex, String mapString4Log, + Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> =" + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < endBraceIndex) { + String msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndMark.equals(_endBrace)) { + String msg = "Argument[remainderMapString] must have '" + _endBrace + + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderListString Remainder list-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param listString4Log List-string for log. (NotNull) + * @param currentList4Log Current-list for log. (NotNull) + */ + protected void assertEndBraceIndex(String remainderListString, + int endBraceIndex, String listString4Log, List currentList4Log) { + if (remainderListString == null) { + String msg = "Argument[remainderListString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderListString.length() < endBraceIndex) { + String msg = "Argument[remainderListString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndBrace = remainderListString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndBrace.equals(_endBrace)) { + String msg = "Argument[remainderListString] must have '" + + _endBrace + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + + expectedAsEndBrace; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ================ + // Filter + // ====== + /** + * Filter map or list value. + *

    + * + *

    +     * # The value is trimmed.
    +     * # If the value is null, this returns null.
    +     * # If the value is 'null', this returns null.
    +     * # If the trimmed value is empty string, this returns null.
    +     * 
    + * + * @param value value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String filterMapListValue(String value) { + if (value == null) { + return null; + } + value = value.trim(); + return (("".equals(value) || "null".equals(value)) ? null : value); + } + + //========================================================================== + // ================ + // Judgement + // ========= + /** + * Does it start with map-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithMapPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_mapMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with list-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithListPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_listMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with delimiter? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithDelimiter(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_delimiter)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it end with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isEndsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.endsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ================ + // Other + // ===== + /** + * Setup nest map. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(Map currentMap, + String mapKey) { + final Map nestMap = newStringObjectMap(); + currentMap.put(mapKey, nestMap); + return nestMap; + } + + /** + * Setup nest map. + * + * @param currentList Current-list. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(List currentList) { + final Map nestMap = newStringObjectMap(); + currentList.add(nestMap); + return nestMap; + } + + /** + * Setup nest list. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(Map currentMap, + String mapKey) { + final List nestList = newObjectList(); + currentMap.put(mapKey, nestList); + return nestList; + } + + /** + * Setup nest list. + * + * @param currentList Current-list. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(List currentList) { + final List nestList = newObjectList(); + currentList.add(nestList); + return nestList; + } + + /** + * New string-object-map. + * + * @return String-object-map. (NotNull) + */ + protected Map newStringObjectMap() { + return new LinkedHashMap(); + } + + /** + * New object-list. + * + * @return String-object-list. (NotNull) + */ + protected List newObjectList() { + return new ArrayList(); + } + + /** + * Get new-line and indent. + * + * @return New-line and indent. (NotNull) + */ + protected String getNewLineAndIndent() { + return NEW_LINE + " "; + } + + /** + * Get count that target string exist in the base string. + * + * @param targetString Target string. + * @param delimiter Delimiter + * @return Delimiter count that _remainderString contains. + */ + protected int getDelimiterCount(String targetString, String delimiter) { + int result = 0; + for (int i = 0;;) { + if (targetString.indexOf(delimiter, i) != -1) { + result++; + i = targetString.indexOf(delimiter, i) + 1; + } else { + break; + } + } + if (result == 0) { + result = -1; + } + return result; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapListStringImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilder.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilder.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilder.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,78 @@ +package jp.sf.pal.notepad.db.allcommon.helper; + +/** + * The interface of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapStringBuilder { + + //========================================================================== + // =========== + // Setter + // ====== + public void setColumnNames(String[] columnNames); + + public void setColumnNameList(java.util.List columnNameList); + + public void setMsMapMark(String value); + + public void setMsStartBrace(String value); + + public void setMsEndBrace(String value); + + public void setMsDelimiter(String value); + + public void setMsEqual(String value); + + //========================================================================== + // =========== + // Main + // ==== + public String buildByDelimiter(String values, String delimiter); + + public String buildFromList(java.util.List valueList); + + //========================================================================== + // =========== + // Exception Static Class + // ====================== + public static class DifferentDelimiterCountException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //====================================================================== + // =============== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + //====================================================================== + // =============== + // Constructor + // =========== + public DifferentDelimiterCountException(String msg, + java.util.List columnNameList, + java.util.List valueList) { + super(msg); + _columnNameList = columnNameList; + _valueList = valueList; + } + + //====================================================================== + // =============== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilderImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilderImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilderImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,183 @@ +package jp.sf.pal.notepad.db.allcommon.helper; + +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * The implementation of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public class MapStringBuilderImpl implements MapStringBuilder { + + protected java.util.List _columnNameList; + + protected String _msMapMark; + + protected String _msStartBrace; + + protected String _msEndBrace; + + protected String _msDelimiter; + + protected String _msEqual; + + protected boolean _trimDoubleQuotation; + + public void setColumnNames(String[] columnNames) { + _columnNameList = java.util.Arrays.asList(columnNames); + } + + public void setColumnNameList(java.util.List columnNameList) { + _columnNameList = columnNameList; + } + + public void setMsMapMark(String value) { + _msMapMark = value; + } + + public void setMsStartBrace(String value) { + _msStartBrace = value; + } + + public void setMsEndBrace(String value) { + _msEndBrace = value; + } + + public void setMsDelimiter(String value) { + _msDelimiter = value; + } + + public void setMsEqual(String value) { + _msEqual = value; + } + + public void trimDoubleQuotation() { + _trimDoubleQuotation = true; + } + + public String buildByDelimiter(String values, String delimiter) { + if (values == null) { + String msg = "The argument[values] should not be null."; + throw new IllegalArgumentException(msg); + } + if (delimiter == null) { + String msg = "The argument[delimiter] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + + final java.util.List valueList = tokenize(values, delimiter); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + public String buildFromList(java.util.List valueList) { + if (valueList == null) { + String msg = "The argument[valueList] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + protected java.util.List tokenize(String value, String delimiter) { + final LineToken lineToken = new LineTokenImpl(); + final LineTokenizingOption lineTokenizingOption = new LineTokenizingOption(); + lineTokenizingOption.setDelimiter(delimiter); + if (_trimDoubleQuotation) { + lineTokenizingOption.trimDoubleQuotation(); + } + return lineToken.tokenize(value, lineTokenizingOption); + } + + protected void assertStringComponent() { + if (_columnNameList == null) { + String msg = "The columnNameList should not be null."; + throw new IllegalStateException(msg); + } + if (_columnNameList.isEmpty()) { + String msg = "The columnNameList should not be empty."; + throw new IllegalStateException(msg); + } + if (_msMapMark == null) { + String msg = "The msMapMark should not be null."; + throw new IllegalStateException(msg); + } + if (_msStartBrace == null) { + String msg = "The msStartBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msEndBrace == null) { + String msg = "The msEndBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msDelimiter == null) { + String msg = "The msDelimiter should not be null."; + throw new IllegalStateException(msg); + } + if (_msEqual == null) { + String msg = "The msEqual should not be null."; + throw new IllegalStateException(msg); + } + } + + protected void assertColumnValueList(java.util.List columnNameList, + java.util.List valueList) { + if (columnNameList.size() != valueList.size()) { + String msg = "The length of columnNameList and valueList are difference. (" + + columnNameList.size() + ", " + valueList.size() + ")"; + msg = msg + " columnNameList=" + columnNameList; + msg = msg + " valueList=" + valueList; + throw new DifferentDelimiterCountException(msg, columnNameList, + valueList); + } + } + + protected static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + final StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/MapStringBuilderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/GeneralCharacter.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/GeneralCharacter.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/GeneralCharacter.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.allcommon.helper.character; + +/** + * The interface of general character. + * + * @author DBFlute(AutoGenerator) + */ +public interface GeneralCharacter { + + public String toSingleByteAlphabet(String s); + + public String toSingleByteNumber(String s); + + public String toSingleByteAlphabetNumber(String target); + + public String toSingleByteAlphabetNumberMark(String target); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/GeneralCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/JapaneseCharacter.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/JapaneseCharacter.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/JapaneseCharacter.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +package jp.sf.pal.notepad.db.allcommon.helper.character; + +/** + * The interface of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public interface JapaneseCharacter { + + public String toDoubleByteKatakana(String target); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/JapaneseCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/GeneralCharacterImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/GeneralCharacterImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,101 @@ +package jp.sf.pal.notepad.db.allcommon.helper.character.impl; + +import jp.sf.pal.notepad.db.allcommon.helper.character.GeneralCharacter; + +/** + * The implementation of general character. + * + * @author DBFlute(AutoGenerator) + */ +public class GeneralCharacterImpl implements GeneralCharacter { + + public String toSingleByteAlphabet(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumberMark(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(target.length()); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff01 && currentChar <= 0xff5e) { + sb.append(toSingleByteCharacter(currentChar)); + + // It needs to append more mark... + } else if (currentChar == '\u2019' || currentChar == '\u2018' + || currentChar == '\u2032') { + sb.append('\''); + } else if (currentChar == '\u201d' || currentChar == '\u201c' + || currentChar == '\u2033') { + sb.append('\"'); + } else if (currentChar == '\uffe5') { + sb.append('\\'); + } else if (currentChar == '\u2010') { + sb.append('-'); + } else if (currentChar == '\uff5e') { + sb.append('~'); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + protected char toSingleByteCharacter(final char currentChar) { + return (char) (currentChar - 0xfee0); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/GeneralCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,96 @@ +package jp.sf.pal.notepad.db.allcommon.helper.character.impl; + +import jp.sf.pal.notepad.db.allcommon.helper.character.JapaneseCharacter; + +/** + * The implementation of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseCharacterImpl implements JapaneseCharacter { + + // Double-byte Katakana + protected static final String TABLE_ZENKANA = "\u3002\u300c\u300d\u3001\u30fb\u30f2\u30a1\u30a3\u30a5" + + "\u30a7\u30a9\u30e3\u30e5\u30e7\u30c3\u30fc\u30a2\u30a4" + + "\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5" + + "\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8" + + "\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8" + + "\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f3\u309b\u309c"; + + // (uff71 - uff9d) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA = "\u30a2\u30a4\u30f4\u30a8\u30aa" + + "\u30ac\u30ae\u30b0\u30b2\u30b4" + + "\u30b6\u30b8\u30ba\u30bc\u30be" + + "\u30c0\u30c2\u30c5\u30c7\u30c9" + + "\u30ca\u30cb\u30cc\u30cd\u30ce" + + "\u30d0\u30d3\u30d6\u30d9\u30dc" + + "\u30de\u30df\u30e0\u30e1\u30e2" + + "\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed" + "\u30ef\u30f3"; + + // (uff66 - uff6f) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA = "\u30fa\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7"; + + // (u30cf - u30dd) + protected static final String DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA = "\u30d1\u30d4\u30d7\u30da\u30dd"; + + public String toDoubleByteKatakana(String target) { + if (target == null) { + return target; + } + + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + final char nextChar; + if (i < target.length() - 1) { + nextChar = target.charAt(i + 1); + } else { + nextChar = ' '; + } + + if (isVoicedSoundKatakana(currentChar, nextChar)) { + if (currentChar >= 0xff66 && currentChar <= 0xff6f) {// Voiced + // sound + // special + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA + .charAt(currentChar - 0xff66)); + i++; + } else if (currentChar >= 0xff71 && currentChar <= 0xff9d) {// Voiced + // sound + // normal + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA + .charAt(currentChar - 0xff71)); + i++; + } + + } else if (isSemiVoicedSoundKatakana(currentChar, nextChar)) { + sb.append(DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA + .charAt(currentChar - 0xff8a)); + i++; + } else if (currentChar != 0xff9e && currentChar != 0xff9f) { + if (currentChar >= 0xff61 && currentChar <= 0xff9f) { + sb.append(TABLE_ZENKANA.charAt(currentChar - 0xff61)); + } else { + sb.append(currentChar); + } + } + } + return sb.toString(); + } + + protected boolean isVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return ((currentChar >= 0xff66 && currentChar <= 0xff6f) || (currentChar >= 0xff71 && (currentChar <= 0xff9d))) + && (nextChar == 0xff9e); + } + + protected boolean isSemiVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return (currentChar >= 0xff8a && currentChar <= 0xff8e) + && (nextChar == 0xff9f); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrder.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrder.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrder.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,20 @@ +package jp.sf.pal.notepad.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface AccordingToOrder { + + /** + * Order the unordered list. + * + * @param option The option of according-to-order. (NotNull) + * @param unorderedList The unordered list. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + void order(List unorderedList, + AccordingToOrderOption option); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrder.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.allcommon.helper.collection.order; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public interface AccordingToOrderIdExtractor { + + /** + * Extract ID from the element instance. + * + * @param element Element instance. (NotNull) + * @return Extracted ID. (NotNull) + */ + ID_TYPE extractId(ELEMENT_TYPE element); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,50 @@ +package jp.sf.pal.notepad.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public class AccordingToOrderOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _orderedUniqueIdList; + + protected AccordingToOrderIdExtractor _idExtractor; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void setupOrderedResource(List orderedUniqueIdList, + AccordingToOrderIdExtractor idExtractor) { + setOrderedUniqueIdList(orderedUniqueIdList); + setIdExtractor(idExtractor); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public List getOrderedUniqueIdList() { + return _orderedUniqueIdList; + } + + public void setOrderedUniqueIdList(List orderedUniqueIdList) { + this._orderedUniqueIdList = orderedUniqueIdList; + } + + public AccordingToOrderIdExtractor getIdExtractor() { + return _idExtractor; + } + + public void setIdExtractor( + AccordingToOrderIdExtractor idExtractor) { + _idExtractor = idExtractor; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/AccordingToOrderOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,103 @@ +package jp.sf.pal.notepad.db.allcommon.helper.collection.order.impl; + +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.helper.collection.order.AccordingToOrder; +import jp.sf.pal.notepad.db.allcommon.helper.collection.order.AccordingToOrderIdExtractor; +import jp.sf.pal.notepad.db.allcommon.helper.collection.order.AccordingToOrderOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class AccordingToOrderImpl implements AccordingToOrder { + + //========================================================================== + // ========= + // Main + // ==== + /** + * The implementation. + * + * @param unorderedList The unordered list. (NotNull) + * @param option The option of according-to-order. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + public void order( + final List unorderedList, + final AccordingToOrderOption option) { + assertObjectNotNull("unorderedList", unorderedList); + if (unorderedList.isEmpty()) { + return; + } + assertObjectNotNull("option", option); + final List orderedUniqueIdList = option + .getOrderedUniqueIdList(); + assertObjectNotNull("option.getOrderedUniqueIdList()", + orderedUniqueIdList); + if (orderedUniqueIdList.isEmpty()) { + return; + } + final AccordingToOrderIdExtractor idExtractor = option + .getIdExtractor(); + assertObjectNotNull("option.getIdExtractor()", idExtractor); + + final Map idIndexMap = new LinkedHashMap(); + int index = 0; + for (ID_TYPE id : orderedUniqueIdList) { + if (idIndexMap.containsKey(id)) { + String msg = "The id was duplicated: id=" + id + + " orderedUniqueIdList=" + orderedUniqueIdList; + throw new IllegalStateException(msg); + } + idIndexMap.put(id, index); + ++index; + } + final Comparator comp = new Comparator() { + public int compare(ELEMENT_TYPE o1, ELEMENT_TYPE o2) { + final ID_TYPE id1 = idExtractor.extractId(o1); + final ID_TYPE id2 = idExtractor.extractId(o2); + assertObjectNotNull("id1 of " + o1, id1); + assertObjectNotNull("id2 of " + o2, id2); + final Integer index1 = idIndexMap.get(id1); + final Integer index2 = idIndexMap.get(id2); + if (index1 != null && index2 != null) { + return index1.compareTo(index2); + } + if (index1 == null && index2 == null) { + return 0; + } + return index1 == null ? 1 : -1; + } + }; + Collections.sort(unorderedList, comp); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractingResource { + + public boolean isTargetElement(String className, String methodName); + + public String filterSimpleClassName(String simpleClassName); + + public boolean isUseAdditionalInfo(); + + public int getStartIndex(); + + public int getLoopSize(); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,16 @@ +package jp.sf.pal.notepad.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractor { + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameResult.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameResult.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameResult.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,86 @@ +package jp.sf.pal.notepad.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameResult { + + //========================================================================== + // ================ + // Attribute + // ========= + protected String _simpleClassName; + + protected String _methodName; + + protected String _invokeName; + + protected int _foundIndex; + + protected int _foundFirstIndex; + + //========================================================================== + // ================ + // Manipulation + // ============ + public int getNextStartIndex() { + return _foundIndex + 1; + } + + public void beEmptyResult() { + _simpleClassName = null; + _invokeName = ""; // As Default + } + + //========================================================================== + // ================ + // Determination + // ============= + public boolean isEmptyResult() { + return _simpleClassName == null; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public String getSimpleClassName() { + return _simpleClassName; + } + + public void setSimpleClassName(String simpleClassName) { + _simpleClassName = simpleClassName; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + _methodName = methodName; + } + + public String getInvokeName() { + return _invokeName; + } + + public void setInvokeName(String invokeName) { + _invokeName = invokeName; + } + + public int getFoundIndex() { + return _foundIndex; + } + + public void setFoundIndex(int foundIndex) { + _foundIndex = foundIndex; + } + + public int getFoundFirstIndex() { + return _foundFirstIndex; + } + + public void setFoundFirstIndex(int foundFirstIndex) { + _foundFirstIndex = foundFirstIndex; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/InvokeNameResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,103 @@ +package jp.sf.pal.notepad.db.allcommon.helper.stacktrace.impl; + +import jp.sf.pal.notepad.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.notepad.db.allcommon.helper.stacktrace.InvokeNameExtractor; +import jp.sf.pal.notepad.db.allcommon.helper.stacktrace.InvokeNameResult; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameExtractorImpl implements InvokeNameExtractor { + + //========================================================================== + // ================ + // Attribute + // ========= + protected StackTraceElement[] _stackTrace; + + //========================================================================== + // ================ + // Main + // ==== + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return Invoke name. (NotNull: If not found, returns empty string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource) { + if (_stackTrace == null) { + String msg = "The attribute 'stackTrace' should not be null: resource=" + + resource; + throw new IllegalStateException(msg); + } + String targetSimpleClassName = null; + String targetMethodName = null; + int lineNumber = 0; + int foundIndex = -1; // The minus one means 'Not Found'. + int foundFirstIndex = -1; // The minus one means 'Not Found'. + boolean onTarget = false; + for (int i = resource.getStartIndex(); i < _stackTrace.length; i++) { + final StackTraceElement element = _stackTrace[i]; + if (i > resource.getStartIndex() + resource.getLoopSize()) { + break; + } + final String className = element.getClassName(); + if (className.startsWith("sun.") || className.startsWith("java.")) { + if (onTarget) { + break; + } + continue; + } + final String methodName = element.getMethodName(); + if (resource.isTargetElement(className, methodName)) { + if (methodName.equals("invoke")) { + continue; + } + targetSimpleClassName = className.substring(className + .lastIndexOf(".") + 1); + targetMethodName = methodName; + if (resource.isUseAdditionalInfo()) { + lineNumber = element.getLineNumber(); + } + foundIndex = i; + if (foundFirstIndex == -1) { + foundFirstIndex = i; + } + onTarget = true; + continue; + } + if (onTarget) { + break; + } + } + final InvokeNameResult result = new InvokeNameResult(); + if (targetSimpleClassName == null) { + result.beEmptyResult(); // Not Found! It sets empty result. + return result; + } + final String filteredClassName = resource + .filterSimpleClassName(targetSimpleClassName); + result.setSimpleClassName(resource + .filterSimpleClassName(targetSimpleClassName)); + result.setMethodName(targetMethodName); + if (lineNumber > 0) { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "():" + lineNumber + " --> "); + } else { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "() --> "); + } + result.setFoundIndex(foundIndex); + result.setFoundFirstIndex(foundFirstIndex); + return result; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public void setStackTrace(StackTraceElement[] stackTrace) { + _stackTrace = stackTrace; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingCallback.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingCallback.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingCallback.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingCallback { + + /** + * Get file-making header information. + * + *
    +     * You should return your row resource for file-making.
    +     * It continues invoking until this method returns null.
    +     * 
    + * + * @return File-making header information. (Nullable) + */ + public FileMakingRowResource getRowResource(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingHeaderInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingHeaderInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingHeaderInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,23 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingHeaderInfo { + + protected List columnNameList = new java.util.ArrayList(); + + public List getColumnNameList() { + return columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this.columnNameList = columnNameList; + } + + public boolean isEmpty() { + return this.columnNameList.isEmpty(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,107 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Encoding. (Required) */ + protected String _encoding; + + /** Delimiter. (Required) */ + protected String _delimiter; + + /** Line separator. (NotRequired) */ + protected String _lineSeparator; + + /** Good bye double quotation. (NotRequired) */ + protected boolean _goodByeDoubleQuotation; + + /** File-making header information. (NotRequired) */ + protected FileMakingHeaderInfo _fileMakingHeaderInfo; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileMakingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileMakingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileMakingOption separateCrLf() { + _lineSeparator = "\r\n"; + return this; + } + + public FileMakingOption separateLf() { + _lineSeparator = "\n"; + return this; + } + + public FileMakingOption goodByeDoubleQuotation() { + _goodByeDoubleQuotation = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getLineSeparator() { + return _lineSeparator; + } + + public void setLineSeparator(String lineSeparator) { + _lineSeparator = lineSeparator; + } + + public boolean isGoodByeDoubleQuotation() { + return _goodByeDoubleQuotation; + } + + public FileMakingHeaderInfo getFileMakingHeaderInfo() { + return _fileMakingHeaderInfo; + } + + public void setFileMakingHeaderInfo( + FileMakingHeaderInfo fileMakingHeaderInfo) { + _fileMakingHeaderInfo = fileMakingHeaderInfo; + } + +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingRowResource.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingRowResource.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingRowResource.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,47 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _valueList; + + protected java.util.LinkedHashMap _nameValueMap; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getValueList() { + return _valueList; + } + + /** + * Set the list of value. {Priority One} + * + * @param valueList The list of value. (NotNull and NotEmpty) + */ + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public java.util.LinkedHashMap getNameValueMap() { + return _nameValueMap; + } + + /** + * Set the map of name and value. {Priority Two}
    If valueList is set, + * This nameValueMap is ignored. + * + * @param nameValueMap The map of name and value. (NotNull and NotEmpty) + */ + public void setNameValueMap( + java.util.LinkedHashMap nameValueMap) { + this._nameValueMap = nameValueMap; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingSimpleFacade.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingSimpleFacade.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingSimpleFacade.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,37 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingSimpleFacade { + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileMakingSimpleFacade.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileToken.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileToken.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileToken.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,78 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * File-Token. + * + * @author DBFlute(AutoGenerator) + */ +public interface FileToken { + + /** + * Tokenize token-file data of a specified file. + * + * @param filename Input target file name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + * @param filename Output target file name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingCallback.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingCallback.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingCallback.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,9 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileTokenizingCallback { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingHeaderInfo { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _columnNameList = new java.util.ArrayList(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + protected String _columnNameRowString; + + public boolean isEmpty() { + return this._columnNameList.isEmpty(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this._columnNameList = columnNameList; + } + + public String getColumnNameRowString() { + return _columnNameRowString; + } + + public void setColumnNameRowString(String columnNameRowString) { + _columnNameRowString = columnNameRowString; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,81 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _encoding; + + protected String _delimiter; + + protected boolean _beginFirstLine; + + protected boolean _handleEmptyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileTokenizingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileTokenizingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileTokenizingOption beginFirstLine() { + _beginFirstLine = true; + return this; + } + + public FileTokenizingOption handleEmptyAsNull() { + _handleEmptyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public boolean isBeginFirstLine() { + return _beginFirstLine; + } + + public boolean isHandleEmptyAsNull() { + return _handleEmptyAsNull; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingRowResource.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingRowResource.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingRowResource.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,68 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileTokenizingHeaderInfo fileTokenizingHeaderInfo; + + protected java.util.List valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + //========================================================================== + // =========== + // Accessor + // ======== + public FileTokenizingHeaderInfo getFileTokenizingHeaderInfo() { + return fileTokenizingHeaderInfo; + } + + public void setFirstLineInfo( + FileTokenizingHeaderInfo fileTokenizingHeaderInfo) { + this.fileTokenizingHeaderInfo = fileTokenizingHeaderInfo; + } + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(java.util.List valueList) { + this.valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/FileTokenizingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,85 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file.impl; + +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileToken; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingSimpleFacadeImpl implements FileMakingSimpleFacade { + + protected FileToken _fileToken = new FileTokenImpl(); + + public void setFileToken(FileToken fileToken) { + this._fileToken = fileToken; + } + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + _fileToken.make(filename, fileMakingCallback, fileMakingOption); + } + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); + _fileToken.make(baos, fileMakingCallback, fileMakingOption); + return baos.toByteArray(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileTokenImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileTokenImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileTokenImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,565 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.file.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenImpl implements FileToken { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Line-token for help. */ + protected final LineToken _lineToken = new LineTokenImpl(); + + //========================================================================== + // =========== + // Main + // ==== + /** + * Tokenize token-file data of a specified file. + * + * @param filename File name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileInputStream fis = null; + try { + fis = new java.io.FileInputStream(filename); + tokenize(fis, fileTokenizingCallback, fileTokenizingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (fis != null) { + fis.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertObjectNotNull("fileTokenizingCallback", fileTokenizingCallback); + assertObjectNotNull("fileTokenizingOption", fileTokenizingOption); + final String delimiter = fileTokenizingOption.getDelimiter(); + final String encoding = fileTokenizingOption.getEncoding(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + java.io.InputStreamReader ir = null; + java.io.BufferedReader br = null; + + String lineString = null; + String preContinueString = ""; + final List temporaryValueList = new ArrayList(); + final List filteredValueList = new ArrayList(); + + try { + ir = new java.io.InputStreamReader(inputStream, encoding); + br = new java.io.BufferedReader(ir); + + FileTokenizingHeaderInfo fileTokenizingHeaderInfo = null; + int count = -1; + int rowNumber = 1; + int lineNumber = 0; + while (true) { + ++count; + if ("".equals(preContinueString)) { + lineNumber = count + 1; + } + + lineString = br.readLine(); + if (lineString == null) { + break; + } + if (count == 0) { + if (fileTokenizingOption.isBeginFirstLine()) { + fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo();// As + // empty + } else { + fileTokenizingHeaderInfo = analyzeHeaderInfo(delimiter, + lineString); + continue; + } + } + final String rowString; + if (preContinueString.equals("")) { + rowString = lineString; + } else { + final String lineSeparator = System + .getProperty("line.separator"); + rowString = preContinueString + lineSeparator + lineString; + } + final ValueLineInfo valueLineInfo = arrangeValueList(rowString, + delimiter); + final List ls = valueLineInfo.getValueList(); + if (valueLineInfo.isContinueNextLine()) { + preContinueString = (String) ls.remove(ls.size() - 1); + temporaryValueList.addAll(ls); + continue; + } + temporaryValueList.addAll(ls); + + try { + final FileTokenizingRowResource fileTokenizingRowResource = new FileTokenizingRowResource(); + fileTokenizingRowResource + .setFirstLineInfo(fileTokenizingHeaderInfo); + + if (fileTokenizingOption.isHandleEmptyAsNull()) { + for (final Iterator ite = temporaryValueList + .iterator(); ite.hasNext();) { + final String value = (String) ite.next(); + if ("".equals(value)) { + filteredValueList.add(null); + } else { + filteredValueList.add(value); + } + } + fileTokenizingRowResource + .setValueList(filteredValueList); + } else { + fileTokenizingRowResource + .setValueList(temporaryValueList); + } + + fileTokenizingRowResource.setRowString(rowString); + fileTokenizingRowResource.setRowNumber(rowNumber); + fileTokenizingRowResource.setLineNumber(lineNumber); + fileTokenizingCallback + .handleRowResource(fileTokenizingRowResource); + } finally { + ++rowNumber; + temporaryValueList.clear(); + filteredValueList.clear(); + preContinueString = ""; + } + } + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (ir != null) { + ir.close(); + } + if (br != null) { + br.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + protected ValueLineInfo arrangeValueList(final String lineString, + String delimiter) { + final List valueList = new ArrayList(); + + // Don't use split! + // final String[] values = lineString.split(delimiter); + final LineTokenizingOption tokenizingOption = new LineTokenizingOption(); + tokenizingOption.setDelimiter(delimiter); + final List list = _lineToken.tokenize(lineString, + tokenizingOption); + final String[] values = (String[]) list + .toArray(new String[list.size()]); + for (int i = 0; i < values.length; i++) { + valueList.add(values[i]); + } + return arrangeValueList(valueList, delimiter); + } + + protected ValueLineInfo arrangeValueList(List valueList, + String delimiter) { + final ValueLineInfo valueLineInfo = new ValueLineInfo(); + final ArrayList resultList = new ArrayList(); + String preString = ""; + for (int i = 0; i < valueList.size(); i++) { + final String value = (String) valueList.get(i); + if (value == null) { + continue; + } + if (i == valueList.size() - 1) {// The last loop + if (preString.equals("")) { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(value); + break; + } else if (isRearQOnly(value)) { + resultList.add(value); + break; + } else if (isNotBothQ(value)) { + resultList.add(value); + break; + } else { + resultList.add(removeDoubleQuotation(value)); + break; + } + } else { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } else if (isNotBothQ(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } + } + } + + if (preString.equals("")) { + if (isFrontQOnly(value)) { + preString = value; + continue; + } else if (isRearQOnly(value)) { + preString = value; + continue; + } else if (isNotBothQ(value)) { + resultList.add(value); + } else { + resultList.add(removeDoubleQuotation(value)); + } + } else { + if (isFrontQOnly(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } else if (isNotBothQ(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } + } + preString = ""; + } + valueLineInfo.setValueList(resultList); + return valueLineInfo; + } + + protected String connectPreString(String preString, String delimiter, + String value) { + if (preString.equals("")) { + return value; + } else { + return preString + delimiter + value; + } + } + + protected boolean isNotBothQ(final String value) { + return !value.startsWith("\"") && !value.endsWith("\""); + } + + protected boolean isRearQOnly(final String value) { + return !value.startsWith("\"") && value.endsWith("\""); + } + + protected boolean isFrontQOnly(final String value) { + return value.startsWith("\"") && !value.endsWith("\""); + } + + protected String removeDoubleQuotation(String value) { + if (!value.startsWith("\"") && !value.endsWith("\"")) { + return value; + } + if (value.startsWith("\"")) { + value = value.substring(1); + } + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected String removeRightDoubleQuotation(String value) { + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected FileTokenizingHeaderInfo analyzeHeaderInfo(String delimiter, + final String lineString) { + final java.util.List columnNameList = new ArrayList(); + final String[] values = lineString.split(delimiter); + for (int i = 0; i < values.length; i++) { + final String value = values[i].trim();// Trimming is Header Only!; + if (value.startsWith("\"") && value.endsWith("\"")) { + columnNameList.add(value.substring(1, value.length() - 1)); + } else { + columnNameList.add(value); + } + } + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo(); + fileTokenizingHeaderInfo.setColumnNameList(columnNameList); + fileTokenizingHeaderInfo.setColumnNameRowString(lineString); + return fileTokenizingHeaderInfo; + } + + public static class ValueLineInfo { + protected java.util.List valueList; + + protected boolean continueNextLine; + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(List valueList) { + this.valueList = valueList; + } + + public boolean isContinueNextLine() { + return continueNextLine; + } + + public void setContinueNextLine(boolean continueNextLine) { + this.continueNextLine = continueNextLine; + } + } + + /** + * Make token-file from specified row resources. + * + * @param filename File name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileOutputStream fos = null; + try { + fos = new java.io.FileOutputStream(filename); + make(fos, fileMakingCallback, fileMakingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (fos != null) { + fos.close(); + } + } + } + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("outputStream", outputStream); + assertObjectNotNull("fileMakingCallback", fileMakingCallback); + assertObjectNotNull("fileMakingOption", fileMakingOption); + final String encoding = fileMakingOption.getEncoding(); + final String delimiter = fileMakingOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final String lineSeparator; + if (fileMakingOption.getLineSeparator() != null + && !fileMakingOption.getLineSeparator().equals("")) { + lineSeparator = fileMakingOption.getLineSeparator(); + } else { + lineSeparator = System.getProperty("line.separator");// Default! + } + + java.io.BufferedOutputStream bos = null; + java.io.Writer writer = null; + try { + bos = new java.io.BufferedOutputStream(outputStream); + writer = new java.io.OutputStreamWriter(bos, encoding); + + boolean headerDone = false; + + // Make header. + final FileMakingHeaderInfo fileMakingHeaderInfo = fileMakingOption + .getFileMakingHeaderInfo(); + if (fileMakingHeaderInfo != null) { + final List columnNameList = fileMakingHeaderInfo + .getColumnNameList(); + if (columnNameList != null && !columnNameList.isEmpty()) { + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + } + + // Make row. + FileMakingRowResource rowResource = null; + while (true) { + rowResource = fileMakingCallback.getRowResource(); + if (rowResource == null) { + break;// The End! + } + final java.util.List valueList; + if (rowResource.getValueList() != null) { + valueList = rowResource.getValueList(); + } else { + final java.util.LinkedHashMap nameValueMap = rowResource + .getNameValueMap(); + if (!headerDone) { + final java.util.List columnNameList = new java.util.ArrayList( + nameValueMap.keySet()); + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + valueList = new ArrayList(nameValueMap.values()); + } + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + if (!fileMakingOption.isGoodByeDoubleQuotation()) { + lineMakingOption.quoteByDoubleQuotation(); + } + final String lineString = _lineToken.make(valueList, + lineMakingOption); + writer.write(lineString + lineSeparator); + } + writer.flush(); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (bos != null) { + bos.close(); + } + if (writer != null) { + writer.close(); + } + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/file/impl/FileTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineMakingOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineMakingOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineMakingOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,49 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineMakingOption { + + protected String _delimiter; + + protected boolean _quoteByDoubleQuotation; + + protected boolean _trimSpace; + + public LineMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public LineMakingOption quoteByDoubleQuotation() { + _quoteByDoubleQuotation = true; + return this; + } + + public boolean isQuoteByDoubleQuotation() { + return _quoteByDoubleQuotation; + } + + public LineMakingOption trimSpace() { + _trimSpace = true; + return this; + } + + public boolean isTrimSpace() { + return _trimSpace; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineToken.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineToken.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineToken.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,13 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface LineToken { + + public java.util.List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption); + + public String make(java.util.List valueList, + LineMakingOption lineMakingOption); +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineTokenizingOption.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineTokenizingOption.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineTokenizingOption.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,61 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _delimiter; + + protected boolean _trimDoubleQuotation; + + protected boolean _handleEmtpyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public LineTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public LineTokenizingOption trimDoubleQuotation() { + _trimDoubleQuotation = true; + return this; + } + + public LineTokenizingOption handleEmtpyAsNull() { + _handleEmtpyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public boolean isTrimDoubleQuotation() { + return _trimDoubleQuotation; + } + + public boolean isHandleEmtpyAsNull() { + return _handleEmtpyAsNull; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/LineTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/impl/LineTokenImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/impl/LineTokenImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,136 @@ +package jp.sf.pal.notepad.db.allcommon.helper.token.line.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.notepad.db.allcommon.helper.token.line.LineTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenImpl implements LineToken { + + //========================================================================== + // ========= + // Tokenize Line + // ============= + public List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption) { + final String delimiter = lineTokenizingOption.getDelimiter(); + final List list = new ArrayList(); + int i = 0; + int j = lineString.indexOf(delimiter); + for (int h = 0; j >= 0; h++) { + final String pureValue = lineString.substring(i, j); + if (lineTokenizingOption.isTrimDoubleQuotation()) { + final String before = pureValue; + if (before.length() > 1 && before.startsWith("\"") + && before.endsWith("\"")) { + final String after = before.substring(1, + before.length() - 1); + list.add(filterHandlingEmptyAsNull(after, + lineTokenizingOption)); + } else { + list.add(filterHandlingEmptyAsNull(before, + lineTokenizingOption)); + } + } else { + list.add(filterHandlingEmptyAsNull(pureValue, + lineTokenizingOption)); + } + i = j + delimiter.length(); + j = lineString.indexOf(delimiter, i); + } + list.add(filterHandlingEmptyAsNull(lineString.substring(i), + lineTokenizingOption)); + return list; + } + + protected String filterHandlingEmptyAsNull(String target, + LineTokenizingOption lineTokenizingOption) { + if (target == null) { + return null; + } + if (lineTokenizingOption.isHandleEmtpyAsNull() && "".equals(target)) { + return null; + } + return target; + } + + //========================================================================== + // ========= + // Make Line + // ========= + public String make(java.util.List valueList, + LineMakingOption lineMakingOption) { + assertObjectNotNull("valueList", valueList); + assertObjectNotNull("lineMakingOption", lineMakingOption); + final String delimiter = lineMakingOption.getDelimiter(); + assertObjectNotNull("lineMakingOption.getDelimiter()", delimiter); + return createLineString(valueList, delimiter, lineMakingOption + .isQuoteByDoubleQuotation(), lineMakingOption.isTrimSpace()); + } + + protected String createLineString(List valueList, String delimiter, + boolean quoteByDoubleQuotation, boolean trimSpace) { + final StringBuffer sb = new StringBuffer(); + for (final Iterator ite = valueList.iterator(); ite.hasNext();) { + String value = (String) ite.next(); + value = (value != null ? value : ""); + if (trimSpace) { + value = value.trim(); + } + if (quoteByDoubleQuotation) { + sb.append(delimiter).append("\"").append(value).append("\""); + } else { + sb.append(delimiter).append(value); + } + } + sb.delete(0, delimiter.length()); + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/helper/token/line/impl/LineTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/CursorHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/CursorHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/CursorHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,19 @@ +package jp.sf.pal.notepad.db.allcommon.jdbc; + +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * The handler of cursor. + * + * @author DBFlute(AutoGenerator) + */ +public interface CursorHandler { + + /** + * @param resultSet Result set. (NotNull) + * @return Result + * @throws java.sql.SQLException + */ + Object handle(ResultSet resultSet) throws SQLException; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/CursorHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/LatestSqlProvider.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/LatestSqlProvider.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/LatestSqlProvider.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon.jdbc; + +/** + * The provider of latest SQL. + * + * @author DBFlute(AutoGenerator) + */ +public interface LatestSqlProvider { + + /** + * Get display SQL. + * + * @return Display SQL. (Nullable: If it was not found, returns null.) + */ + public String getDisplaySql(); + + /** + * Clear the cache of SQL. + */ + public void clearSqlCache(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/LatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/SqlLogHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/SqlLogHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/SqlLogHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,18 @@ +package jp.sf.pal.notepad.db.allcommon.jdbc; + +/** + * The handler of SQL log. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlLogHandler { + + /** + * @param executedSql The executed SQL. (NotNull) + * @param displaySql The SQL for display. (NotNull) + * @param args The arguments of the SQL. (Nullable) + * @param argTypes The argument types of the SQL. (Nullable) + */ + void handle(String executedSql, String displaySql, Object[] args, + Class[] argTypes); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/SqlLogHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/StatementConfig.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/StatementConfig.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/StatementConfig.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,135 @@ +package jp.sf.pal.notepad.db.allcommon.jdbc; + +import java.sql.ResultSet; + +/** + * The config of statement. + * + * @author DBFlute(AutoGenerator) + */ +public class StatementConfig { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + protected Integer _resultSetType; + + // ----------------------------------------------------- + // Statement Option + // ---------------- + protected Integer _queryTimeout; + + protected Integer _fetchSize; + + protected Integer _maxRows; + + //========================================================================== + // ========= + // Setting Interface + // ================= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public StatementConfig typeForwardOnly() { + _resultSetType = ResultSet.TYPE_FORWARD_ONLY; + return this; + } + + public StatementConfig typeScrollInsensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + return this; + } + + public StatementConfig typeScrollSensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_SENSITIVE; + return this; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public StatementConfig queryTimeout(int queryTimeout) { + this._queryTimeout = queryTimeout; + return this; + } + + public StatementConfig fetchSize(int fetchSize) { + this._fetchSize = fetchSize; + return this; + } + + public StatementConfig maxRows(int maxRows) { + this._maxRows = maxRows; + return this; + } + + //========================================================================== + // ========= + // Determination + // ============= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public boolean hasResultSetType() { + return _resultSetType != null; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public boolean hasStatementOptions() { + return hasQueryTimeout() || hasFetchSize() || hasMaxRows(); + } + + public boolean hasQueryTimeout() { + return _queryTimeout != null; + } + + public boolean hasFetchSize() { + return _fetchSize != null; + } + + public boolean hasMaxRows() { + return _maxRows != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{" + _resultSetType + ", " + _queryTimeout + ", " + _fetchSize + + ", " + _maxRows + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public Integer getResultSetType() { + return _resultSetType; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public Integer getQueryTimeout() { + return _queryTimeout; + } + + public Integer getFetchSize() { + return _fetchSize; + } + + public Integer getMaxRows() { + return _maxRows; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/jdbc/StatementConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,125 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.ResultSetFactory; + +/** + * This is unused in DBFlute so this is very NORMAL result-set-factory for + * S2Dao. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetFactory implements ResultSetFactory { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public FetchNarrowingResultSetFactory() { + } + + //========================================================================== + // ========= + // Main + // ==== + /** + * Get result set. + * + * @param statement Statement. (NotNull) + * @return Result set for procedure executing of s2dao. (NotNull) + */ + public ResultSet getResultSet(Statement statement) { // Unused in DBFlute + return doGetResultSet(statement); + } + + /** + * Create result set. + * + * @param ps Prepared statement. (NotNull) + * @return Result set. (NotNull) + */ + public ResultSet createResultSet(PreparedStatement ps) { // Unused in + // DBFlute + return executeQuery(ps); + + // *Move to InternalBasicSelectHandler + // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // return resultSet; + // } + // final FetchNarrowingBean cb = + // FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread(); + // if (!isUseFetchNarrowingResultSetWrapper(cb)) { + // return resultSet; + // } + // final FetchNarrowingResultSetWrapper wrapper; + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + // outsideSqlContext.isOffsetByCursorForcedly(), + // outsideSqlContext.isLimitByCursorForcedly()); + // } else { + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + // false); + // } + // return wrapper; + } + + // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean + // cb) { + // if (cb.getSafetyMaxResultSize() > 0) { + // return true; + // } + // if (!cb.isFetchNarrowingEffective()) { + // return false;// It is not necessary to control. + // } + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // if (outsideSqlContext.isOffsetByCursorForcedly() || + // outsideSqlContext.isLimitByCursorForcedly()) { + // return true; + // } + // } + // if (cb.isFetchNarrowingSkipStartIndexEffective() || + // cb.isFetchNarrowingLoopCountEffective()) { + // return true; + // } + // return false; + // } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected ResultSet doGetResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected ResultSet executeQuery(PreparedStatement ps) { + try { + return ps.executeQuery(); + } catch (SQLException e) { + handleSQLException(e, ps); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,237 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.notepad.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.impl.ResultSetWrapper; + +/** + * The wrapper of fetch narrowing result set. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetWrapper extends ResultSetWrapper { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The real result set. (NotNull) */ + protected ResultSet _resultSet; + + /** The bean of fetch narrowing. (NotNull) */ + protected FetchNarrowingBean _fetchNarrowingBean; + + /** The counter of fetch. */ + protected long _fetchCounter; + + /** the counter of request. */ + protected long _requestCounter; + + /** Does it offset by cursor forcedly? */ + protected boolean _offsetByCursorForcedly; + + /** Does it limit by cursor forcedly? */ + protected boolean _limitByCursorForcedly; + + /** Does it skip to cursor end? */ + protected boolean _skipToCursorEnd; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param resultSet Original result set. (NotNull) + * @param fetchNarrowingBean Fetch-narrowing-bean. (NotNull) + * @param offsetByCursorForcedly Offset by cursor forcedly. + * @param limitByCursorForcedly Limit by cursor forcedly. + */ + public FetchNarrowingResultSetWrapper(ResultSet resultSet, + FetchNarrowingBean fetchNarrowingBean, + boolean offsetByCursorForcedly, boolean limitByCursorForcedly) { + super(resultSet); + + _resultSet = resultSet; + _fetchNarrowingBean = fetchNarrowingBean; + _offsetByCursorForcedly = offsetByCursorForcedly; + _limitByCursorForcedly = limitByCursorForcedly; + + skip(); + } + + //========================================================================== + // ========= + // Skip + // ==== + /** + * Skip to start-index. + */ + protected void skip() { + if (!isAvailableSkipRecord()) { + return; + } + final int skipStartIndex = getFetchNarrowingSkipStartIndex(); + if (isScrollableCursor()) { + try { + if (0 == skipStartIndex) { + _resultSet.beforeFirst(); + } else { + _resultSet.absolute(skipStartIndex); + } + _fetchCounter = _resultSet.getRow(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } else { + try { + while (true) { + if (_fetchCounter >= skipStartIndex) { + break; + } + if (!_resultSet.next()) { + _skipToCursorEnd = true;// [DBFLUTE-243] + break; + } + ++_fetchCounter; + } + } catch (SQLException e) { + handleSQLException(e, null); + } + } + } + + protected boolean isAvailableSkipRecord() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isOffsetByCursorForcedly()) { + return true; + } + if (isFetchNarrowingSkipStartIndexEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Next + // ==== + /** + * Next. + * + * @return Does the result set have next record? + * @throws SQLException + */ + public boolean next() throws SQLException { + final boolean hasNext = super.next(); + ++_requestCounter; + if (!isAvailableLimitLoopCount()) { + checkSafetyResult(hasNext); + return hasNext; + } + + if (hasNext + && _fetchCounter < getFetchNarrowingSkipStartIndex() + + getFetchNarrowingLoopCount()) { + ++_fetchCounter; + checkSafetyResult(true); + return true; + } else { + return false; + } + } + + protected boolean isAvailableLimitLoopCount() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isLimitByCursorForcedly()) { + return true; + } + if (isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + protected void checkSafetyResult(boolean hasNext) { + if (hasNext && getSafetyMaxResultSize() > 0 + && _requestCounter > (getSafetyMaxResultSize() + 1)) { + String msg = "You have already been in Danger Zone!"; + msg = msg + + " Please confirm your query or data of table: safetyMaxResultSize=" + + getSafetyMaxResultSize(); + throw new jp.sf.pal.notepad.db.allcommon.exception.DangerousResultSizeException( + msg, getSafetyMaxResultSize()); + } + } + + //========================================================================== + // ========= + // Fetch Option + // ============ + protected boolean isFetchNarrowingEffective() { + return _fetchNarrowingBean.isFetchNarrowingEffective(); + } + + protected boolean isFetchNarrowingSkipStartIndexEffective() { + return _fetchNarrowingBean.isFetchNarrowingSkipStartIndexEffective(); + } + + protected boolean isFetchNarrowingLoopCountEffective() { + return _fetchNarrowingBean.isFetchNarrowingLoopCountEffective(); + } + + protected int getFetchNarrowingSkipStartIndex() { + return _fetchNarrowingBean.getFetchNarrowingSkipStartIndex(); + } + + protected int getFetchNarrowingLoopCount() { + return _fetchNarrowingBean.getFetchNarrowingLoopCount(); + } + + public int getSafetyMaxResultSize() { + return _fetchNarrowingBean.getSafetyMaxResultSize(); + } + + protected boolean isScrollableCursor() { + try { + return !(_resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY); + } catch (SQLException e) { + handleSQLException(e, null); + return false;// Unreachable! + } + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public boolean isSkipToCursorEnd() { + return _skipToCursorEnd; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,116 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.impl.BeanMetaDataFactoryImpl; +import org.seasar.dao.impl.BeanMetaDataImpl; + +/** + * BeanMetaDataFactoryImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2BeanMetaDataFactoryImpl extends BeanMetaDataFactoryImpl { + + protected Map, BeanMetaData> _metaMap = Collections + .synchronizedMap(new HashMap, BeanMetaData>()); + + @Override + public BeanMetaData createBeanMetaData(Class beanClass) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass); + } + } + + @Override + public BeanMetaData createBeanMetaData(Class beanClass, + int relationNestLevel) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass, relationNestLevel); + } + } + + @Override + public BeanMetaData createBeanMetaData(DatabaseMetaData dbMetaData, + Class beanClass, int relationNestLevel) { + final BeanMetaData cachedMeta = findOrCreateCachedMetaIfNeeds( + dbMetaData, beanClass, relationNestLevel); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, + relationNestLevel); + } + } + + protected BeanMetaData findCachedMeta(Class beanClass) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } + } + return null; + } + + protected BeanMetaData findOrCreateCachedMetaIfNeeds( + DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, 0); + } + } + return null; + } + + @Override + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + @Override + public void initialize() { + final Class myBeanClass = getBeanClass(); + if (isDBFluteEntity(myBeanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(myBeanClass); + if (cachedMeta == null) { + _metaMap.put(myBeanClass, this); + } + } + super.initialize(); + } + }; + } + + protected boolean isDBFluteEntity(Class beanClass) { + return Entity.class.isAssignableFrom(beanClass); + } + + protected BeanMetaData getMetaFromCache(Class beanClass) { + return _metaMap.get(beanClass); + } + + /** + * Get the limit nest level of relation. + * + * @return The limit nest level of relation. + */ + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible to old version DBFlute + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoInterceptor.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoInterceptor.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1027 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.InternalMapContext; +import jp.sf.pal.notepad.db.allcommon.XLog; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.notepad.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.notepad.db.allcommon.helper.stacktrace.InvokeNameResult; +import jp.sf.pal.notepad.db.allcommon.helper.stacktrace.impl.InvokeNameExtractorImpl; +import jp.sf.pal.notepad.db.allcommon.util.TraceViewUtil; + +import org.aopalliance.intercept.MethodInvocation; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; + +/** + * The interceptor of S2Dao for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoInterceptor extends + org.seasar.framework.aop.interceptors.AbstractInterceptor { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoInterceptor.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The factory of DAO meta data. */ + protected DaoMetaDataFactory _daoMetaDataFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param daoMetaDataFactory The factory of DAO meta data. (NotNull) + */ + public S2DaoInterceptor(DaoMetaDataFactory daoMetaDataFactory) { + _daoMetaDataFactory = daoMetaDataFactory; + } + + //========================================================================== + // ========= + // Execute Status Log + // ================== + protected void log(String msg) { + XLog.log(msg); + } + + protected boolean isLogEnabled() { + return XLog.isLogEnabled(); + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + public Object invoke(MethodInvocation invocation) throws Throwable { + clearThreadLocal(); + try { + return dispatchInvoking(invocation); + } finally { + clearThreadLocal(); + } + } + + /** + * Dispatch invoking the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + protected Object dispatchInvoking(MethodInvocation invocation) + throws Throwable { + final Method method = invocation.getMethod(); + if (!isAbstract(method)) { + return invocation.proceed(); + } + + // - - - - - - - - - - - - - + // Initialize DAO meta data + // - - - - - - - - - - - - - + if (method.getName().equals("initializeDaoMetaData")) { + initializeSqlCommand(invocation); + return null;// The end! (Initilization Only) + } + + // - - - - - - - - - - - - + // Preprocess outside-SQL + // - - - - - - - - - - - - + preprocessOutsideSql(invocation); + + // - - - - - - - - - - - - - + // Preprocess condition-bean + // - - - - - - - - - - - - - + final ConditionBean cb = preprocessConditionBean(invocation); + + // - - - - - - - - - - + // Set up SQL-command + // - - - - - - - - - - + final SqlCommand cmd; + try { + long beforeCmd = 0; + if (isLogEnabled()) { + beforeCmd = System.currentTimeMillis(); + } + cmd = findSqlCommand(invocation); + if (isLogEnabled()) { + final long afterCmd = System.currentTimeMillis(); + if (beforeCmd != afterCmd) { + logSqlCommand(invocation, cmd, beforeCmd, afterCmd); + } + } + } finally { + if (isLogEnabled()) { + logInvocation(invocation); + } + } + + long before = 0; + if (isLogEnabled()) { + before = System.currentTimeMillis(); + } + + // - - - - - - - - - - + // Execute SQL-command + // - - - - - - - - - - + Object ret = null; + try { + ret = cmd.execute(invocation.getArguments()); + } catch (Exception e) { + if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) { + throw new EntityAlreadyUpdatedException( + (NotSingleRowUpdatedRuntimeException) e); + } + throw e; + } finally { + postprocessConditionBean(invocation, cb); + } + final Class retType = method.getReturnType(); + assertRetType(retType, ret); + + if (isLogEnabled()) { + final long after = System.currentTimeMillis(); + logReturn(invocation, retType, ret, before, after); + } + + // - - - - - - - - - - + // Convert and Return! + // - - - - - - - - - - + if (retType.isPrimitive()) { + return org.seasar.framework.util.NumberConversionUtil + .convertPrimitiveWrapper(retType, ret); + } else if (Number.class.isAssignableFrom(retType)) { + return org.seasar.framework.util.NumberConversionUtil + .convertNumber(retType, ret); + } else { + return ret; + } + } + + //========================================================================== + // ========= + // SqlCommand + // ========== + protected void initializeSqlCommand(MethodInvocation invocation) { + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + return;// Do nothing! + } else { + final Object[] arguments = invocation.getArguments(); + if (arguments != null && arguments.length > 0 + && arguments[0] instanceof String) { + final String methodName = (String) arguments[0]; + try { + dmd.getSqlCommand(methodName); + } catch (MethodNotFoundRuntimeException ignored) { + // Do nothing! + if (isLogEnabled()) { + log("Not Found the method: " + methodName + " msg=" + + ignored.getMessage()); + } + } + return; + } else { + String msg = "The method should have one string argument as method name: " + + invocation; + throw new IllegalStateException(msg); + } + } + } + + protected SqlCommand findSqlCommand(MethodInvocation invocation) { + final SqlCommand cmd; + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + cmd = dmd + .getSqlCommand(generateSpecifiedOutsideSqlUniqueKey(invocation)); + } else { + cmd = dmd.getSqlCommand(invocation.getMethod().getName()); + } + return cmd; + } + + protected String generateSpecifiedOutsideSqlUniqueKey( + MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + final String path = (String) args[0]; + final Object pmb = args[1]; + final OutsideSqlOption option = (OutsideSqlOption) args[2]; + Object resultTypeSpecification = null; + if (args.length > 3) { + resultTypeSpecification = args[3]; + } + return OutsideSqlContext.generateSpecifiedOutsideSqlUniqueKey( + invocation.getMethod().getName(), path, pmb, option, + resultTypeSpecification); + } + + //========================================================================== + // ========= + // Log Invocation + // ============== + protected void logInvocation(MethodInvocation invocation) { + final StackTraceElement[] stackTrace = new Exception().getStackTrace(); + final InvokeNameResult behaviorResult = extractBehaviorInvokeName(stackTrace); + + final String invokeClassName; + final String invokeMethodName; + if (!behaviorResult.isEmptyResult()) { + invokeClassName = behaviorResult.getSimpleClassName(); + invokeMethodName = behaviorResult.getMethodName(); + } else { + final Method method = invocation.getMethod(); + invokeClassName = extractInvocationExpression(method); + invokeMethodName = method.getName(); + } + final String expWithoutKakko = buildInvocationExpressionWithoutKakko( + invocation, invokeClassName, invokeMethodName); + + // Save behavior invoke name for error message. + putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()"); + + final String equalBorder = buildFitBorder("", "=", expWithoutKakko, + false); + final String invocationExpression = expWithoutKakko + "()"; + + log("/=====================================================" + + equalBorder + "=="); + log(" " + + invocationExpression); + log(" " + + equalBorder + "=/"); + + logPath(invocation, stackTrace, behaviorResult); + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (!outsideSqlContext.isProcedure()) {// [DBFlute-0.7.5] + Object[] args = invocation.getArguments(); + if (outsideSqlContext != null) { + log("path: " + outsideSqlContext.getOutsideSqlPath()); + } else { + log("path: " + getOutsideSqlPath(args)); + } + log("option: " + getOutsideSqlOption(args)); + } + } + } + + protected String buildInvocationExpressionWithoutKakko( + MethodInvocation invocation, String invokeClassName, + String invokeMethodName) { + if (invokeClassName.contains("OutsideSql") + && invokeClassName.endsWith("Executor")) { // OutsideSql + // Executor Handling + try { + final String originalName = invokeClassName; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final String tableDbName = outsideSqlContext + .getTableDbName(); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableDbName); + final String behaviorTypeName = dbmeta + .getBehaviorTypeName(); + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + + ".".length()); + invokeClassName = behaviorClassName + ".outsideSql()"; + if (originalName.endsWith("OutsideSqlEntityExecutor")) { + invokeClassName = invokeClassName + ".entityHandling()"; + } else if (originalName + .endsWith("OutsideSqlPagingExecutor")) { + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + invokeClassName = invokeClassName + ".autoPaging()"; + } else { + invokeClassName = invokeClassName + + ".manualPaging()"; + } + } else if (originalName + .endsWith("OutsideSqlCursorExecutor")) { + invokeClassName = invokeClassName + ".cursorHandling()"; + } + } else { + invokeClassName = "OutsideSql"; + } + } catch (RuntimeException ignored) { + log("Ignored exception occurred: msg=" + ignored.getMessage()); + } + } + String invocationExpressionWithoutKakko = invokeClassName + "." + + invokeMethodName; + if ("selectPage".equals(invokeMethodName)) { // Special Handling! + boolean resultTypeInteger = false; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + if (resultTypeSpecification != null + && resultTypeSpecification instanceof Class) { + final Class resultType = (Class) resultTypeSpecification; + if (Integer.class.isAssignableFrom(resultType)) { + resultTypeInteger = true; + } + } + } + if (resultTypeInteger + || "selectCount".equals(invocation.getMethod().getName())) { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():count"; + } else { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():paging"; + } + } + return invocationExpressionWithoutKakko; + } + + protected void logPath(MethodInvocation invocation, + StackTraceElement[] stackTrace, InvokeNameResult behaviorResult) { + final int bhvNextIndex = behaviorResult.getNextStartIndex(); + final InvokeNameResult clientResult = extractClientInvokeName( + stackTrace, bhvNextIndex); + final int clientFirstIndex = clientResult.getFoundFirstIndex(); + final InvokeNameResult byPassResult = extractByPassInvokeName( + stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex); + + final String clientInvokeName = clientResult.getInvokeName(); + final String byPassInvokeName = byPassResult.getInvokeName(); + final String behaviorInvokeName = behaviorResult.getInvokeName(); + if (clientInvokeName.trim().length() == 0 + && byPassInvokeName.trim().length() == 0) { + return; + } + + // Save client invoke name for error message. + if (!clientResult.isEmptyResult()) { + putObjectToMapContext("df:ClientInvokeName", clientInvokeName); + } + // Save by-pass invoke name for error message. + if (!byPassResult.isEmptyResult()) { + putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName); + } + + log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "..."); + } + + protected String buildFitBorder(String prefix, String element, + String lengthTargetString, boolean space) { + final int length = space ? lengthTargetString.length() / 2 + : lengthTargetString.length(); + final StringBuffer sb = new StringBuffer(); + sb.append(prefix); + for (int i = 0; i < length; i++) { + sb.append(element); + if (space) { + sb.append(" "); + } + } + if (space) { + sb.append(element); + } + return sb.toString(); + } + + protected InvokeNameResult extractClientInvokeName( + StackTraceElement[] stackTrace, final int startIndex) { + final List suffixList = Arrays.asList(new String[] { "Page", + "Action" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractByPassInvokeName( + StackTraceElement[] stackTrace, final int startIndex, + final int loopSize) { + final List suffixList = Arrays.asList(new String[] { "Service", + "ServiceImpl", "Facade", "FacadeImpl" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return loopSize >= 0 ? loopSize : 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractBehaviorInvokeName( + StackTraceElement[] stackTrace) { + final List suffixList = Arrays.asList(new String[] { "Bhv", + "BehaviorReadable", "BehaviorWritable", "PagingInvoker" }); + final List keywordList = Arrays.asList(new String[] { "Bhv$", + "BehaviorReadable$", "BehaviorWritable$" }); + final List ousideSql1List = Arrays + .asList(new String[] { "OutsideSql" }); + final List ousideSql2List = Arrays + .asList(new String[] { "Executor" }); + final List ousideSql3List = Arrays + .asList(new String[] { "Executor$" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + if (isClassNameEndsWith(className, suffixList)) { + return true; + } + if (isClassNameContains(className, keywordList)) { + return true; + } + if (isClassNameContains(className, ousideSql1List) + && (isClassNameEndsWith(className, ousideSql2List) || isClassNameContains( + className, ousideSql3List))) { + return true; + } + return false; + } + + public String filterSimpleClassName(String simpleClassName) { + return removeBasePrefixFromSimpleClassName(simpleClassName); + } + + public boolean isUseAdditionalInfo() { + return false; + } + + public int getStartIndex() { + return 0; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected boolean isClassNameEndsWith(String className, + List suffixList) { + for (String suffix : suffixList) { + if (className.endsWith(suffix)) { + return true; + } + } + return false; + } + + protected boolean isClassNameContains(String className, + List keywordList) { + for (String keyword : keywordList) { + if (className.contains(keyword)) { + return true; + } + } + return false; + } + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @param stackTrace Stack log. (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + protected InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource, + StackTraceElement[] stackTrace) { + final InvokeNameExtractorImpl extractor = new InvokeNameExtractorImpl(); + extractor.setStackTrace(stackTrace); + return extractor.extractInvokeName(resource); + } + + /** + * @param method The invoked method. (NotNull) + * @return The expression of invocation. (NotNull) + */ + protected String extractInvocationExpression(Method method) { + final Class declaringClass = method.getDeclaringClass(); + return removeBasePrefixFromSimpleClassName(declaringClass + .getSimpleName()); + } + + /** + * @param simpleClassName The simple class name. (NotNull) + * @return The simple class name removed the base prefix. (NotNull) + */ + protected String removeBasePrefixFromSimpleClassName(String simpleClassName) { + if (!simpleClassName.startsWith("Bs")) { + return simpleClassName; + } + final int prefixLength = "Bs".length(); + if (!Character.isUpperCase(simpleClassName.substring(prefixLength) + .charAt(0))) { + return simpleClassName; + } + if (simpleClassName.length() <= prefixLength) { + return simpleClassName; + } + return "" + simpleClassName.substring(prefixLength); + } + + //========================================================================== + // ========= + // Log SqlCommand + // ============== + protected void logSqlCommand(MethodInvocation invocation, SqlCommand cmd, + long beforeCmd, long afterCmd) { + log("SqlCommand Initialization Cost: [" + + TraceViewUtil.convertToPerformanceView(afterCmd - beforeCmd) + + "]"); + } + + protected void assertRetType(Class retType, Object ret) { + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof java.util.List)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof Entity)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } + } + + //========================================================================== + // ========= + // Log Return + // ========== + protected void logReturn( + org.aopalliance.intercept.MethodInvocation invocation, + Class retType, Object ret, long before, long after) + throws Throwable { + try { + final String daoResultPrefix = "===========/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + " - "; + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected list: null]"); + } else { + final java.util.List ls = (java.util.List) ret; + if (ls.isEmpty()) { + log(daoResultPrefix + "Selected list: 0]"); + } else if (ls.size() == 1 && ls.get(0) instanceof Number) { + log(daoResultPrefix + "Selected count: " + ls.get(0) + + "]"); + } else { + log(daoResultPrefix + "Selected list: " + ls.size() + + " first=" + ls.get(0) + "]"); + } + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (int[].class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final int[] resultArray = (int[]) ret; + if (resultArray.length == 0) { + log(daoResultPrefix + "All updated count: 0]"); + } else { + final StringBuilder sb = new StringBuilder(); + boolean resultExpressionScope = true; + int resultCount = 0; + int loopCount = 0; + for (int element : resultArray) { + resultCount = resultCount + element; + if (resultExpressionScope) { + if (loopCount <= 10) { + if (sb.length() == 0) { + sb.append(element); + } else { + sb.append(",").append(element); + } + } else { + sb.append(",").append("..."); + resultExpressionScope = false; + } + } + ++loopCount; + } + sb.insert(0, "{").append("}"); + log(daoResultPrefix + "All updated count: " + + resultCount + " result=" + sb + "]"); + } + } + } else { + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + log(daoResultPrefix + "Selected count: " + ret + "]"); + } else { + log(daoResultPrefix + "Result: " + ret + "]"); + } + } + log(" "); + } catch (Exception e) { + String msg = "Result object debug threw the exception: methodName="; + msg = msg + invocation.getMethod().getName() + " retType=" + + retType; + msg = msg + " ret=" + ret; + _log.warn(msg, e); + throw e; + } + } + + //========================================================================== + // ========= + // Pre Post Process + // ================ + // ----------------------------------------------------- + // OutsideSql + // ---------- + protected void preprocessOutsideSql(MethodInvocation invocation) { + final Class outsideSqlType = jp.sf.pal.notepad.db.allcommon.annotation.OutsideSql.class; + final jp.sf.pal.notepad.db.allcommon.annotation.OutsideSql outsideSql = invocation + .getMethod().getAnnotation(outsideSqlType); + + // Traditional OutsideSql + if (outsideSql != null + && (outsideSql.dynamicBinding() || outsideSql.offsetByCursor() + || outsideSql.offsetByCursor() || outsideSql + .limitByCursor())) { + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(outsideSql.dynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(outsideSql + .offsetByCursor()); + outsideSqlContext.setLimitByCursorForcedly(outsideSql + .limitByCursor()); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return; + } + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(args[0] + .getClass())) { + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) args[0]); + } + return; + } + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + if (isOutsideSqlDaoMethodSelect(invocation)) { + setupOutsideSqlContextSelect(invocation); + } else { + setupOutsideSqlContextExecute(invocation); + } + return; + } + } + + protected boolean isSpecifiedOutsideSql(MethodInvocation invocation) { + return OutsideSqlDao.class.isAssignableFrom(getTargetClass(invocation)); + } + + // - - - - - - - - - - - - + // Select + // - - - + protected boolean isOutsideSqlDaoMethodSelect(MethodInvocation invocation) { + return invocation.getMethod().getName().startsWith("select"); + } + + protected void setupOutsideSqlContextSelect(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 4) { + String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final Object resultTypeSpecification = args[3]; + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setResultTypeSpecification(resultTypeSpecification); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupOutsideSqlContextExecute(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Common + // - - - + protected String getOutsideSqlPath(Object[] args) { + return (String) args[0]; + } + + protected Object getOutsideSqlParameterBean(Object[] args) { + return args[1]; + } + + protected OutsideSqlOption getOutsideSqlOption(Object[] args) { + return (OutsideSqlOption) args[2]; + } + + protected void setupOutsideSqlFetchNarrowingBean(Object pmb, + OutsideSqlOption option) { + if (pmb == null + || !FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(pmb + .getClass())) { + return; + } + final FetchNarrowingBean fetchNarrowingBean = (FetchNarrowingBean) pmb; + if (option.isManualPaging()) { + fetchNarrowingBean.ignoreFetchNarrowing(); + } + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread(fetchNarrowingBean); + } + + // ----------------------------------------------------- + // ConditionBean + // ------------- + /** + * Pre-process conditionBean. + *

    + * If this method is condition bean select target, make dynamic SQL. Else + * nothing. + * + * @param invocation Method invocation. (NotNull) + * @return ConditionBean. (Nullable) + */ + protected ConditionBean preprocessConditionBean(MethodInvocation invocation) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (outsideSqlContext != null) { + return null; // Because it has already finished setting up + // fetchNarrowingBean for outsideSql here. + } + + final ConditionBean cb; + { + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return null; + } + final Object arg0 = args[0]; + if (arg0 == null) { + return null; + } + if (!ConditionBeanContext.isTheTypeConditionBean(arg0.getClass())) {// The + // argument + // is + // not + // condition + // - + // bean + // ... + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(arg0 + .getClass()) + && !isSelectCountIgnoreFetchScopeMethod(invocation)) { + // Fetch-narrowing-bean and Not select count! + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) arg0); + } + return null; + } + cb = (ConditionBean) arg0; + } + + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xsetupSelectCountIgnoreFetchScope(); + } else { + FetchNarrowingBeanContext.setFetchNarrowingBeanOnThread(cb); + } + + ConditionBeanContext.setConditionBeanOnThread(cb); + return cb; + } + + /** + * Post-process condition-bean. + * + * @param invocation Method invocation. (NotNull) + * @param cb Condition-bean. (Nullable) + */ + protected void postprocessConditionBean(MethodInvocation invocation, + ConditionBean cb) { + if (cb == null) { + return; + } + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xafterCareSelectCountIgnoreFetchScope(); + } + } + + // ----------------------------------------------------- + // Clear Thread Local + // ------------------ + protected void clearThreadLocal() { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + OutsideSqlContext.clearOutsideSqlContextOnThread(); + } + if (FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + // Because there is possible that fetch narrowing has been ignored + // for manualPaging of outsideSql. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread() + .restoreIgnoredFetchNarrowing(); + + FetchNarrowingBeanContext.clearFetchNarrowingBeanOnThread(); + } + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + ConditionBeanContext.clearConditionBeanOnThread(); + } + if (InternalMapContext.isExistInternalMapContextOnThread()) { + InternalMapContext.clearInternalMapContextOnThread(); + } + } + + //========================================================================== + // ========= + // Context Helper + // ============== + protected OutsideSqlContext getOutsideSqlContext() { + if (!OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + return null; + } + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + return outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql(); + } + + protected void putObjectToMapContext(String key, Object value) { + InternalMapContext.setObject(key, value); + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is select count ignore-fetch-scope method? + * + * @param invocation Method invocation. (NotNull) + * @return Determination. + */ + protected boolean isSelectCountIgnoreFetchScopeMethod( + MethodInvocation invocation) { + final String name = invocation.getMethod().getName(); + return name.startsWith("readCount") || name.startsWith("selectCount"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Is the method abstract? + * + * @param method Method. (NotNull) + * @return Determination. (NotNull) + */ + public boolean isAbstract(Method method) { + final int mod = method.getModifiers(); + return Modifier.isAbstract(mod); + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoInterceptor.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoLatestSqlProvider.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoLatestSqlProvider.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,20 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import jp.sf.pal.notepad.db.allcommon.jdbc.LatestSqlProvider; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +/** + * The provider of latest SQL as S2Dao. This instance should be singleton. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoLatestSqlProvider implements LatestSqlProvider { + + public String getDisplaySql() { + return InternalSqlLogRegistry.peekCompleteSql(); + } + + public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoLatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataExtension.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1460 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.BehaviorSelector; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.annotation.OutsideSql; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException; +import jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException; +import jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException; +import jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.rshandler.InternalBeanArrayMetaDataResultSetHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.rshandler.InternalBeanListMetaDataResultSetHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteAutoStaticCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteBatchAutoStaticCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteQueryAutoDynamicCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalInsertAutoDynamicCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalInsertBatchAutoStaticCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalProcedureCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateAutoDynamicCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateBatchAutoStaticCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateDynamicCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateModifiedOnlyCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateQueryAutoDynamicCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.SqlCommand; +import org.seasar.dao.TableNaming; +import org.seasar.dao.dbms.DbmsManager; +import org.seasar.dao.impl.BeanMetaDataImpl; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.impl.ResultSetHandlerFactoryImpl; +import org.seasar.dao.impl.SelectDynamicCommand; +import org.seasar.dao.impl.UpdateAutoStaticCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.MethodUtil; + +/** + * The extension of DaoMetaDataImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoMetaDataExtension extends DaoMetaDataImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataExtension.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** Bean enhancer. */ + protected BeanEnhancer beanEnhancer; + + /** The factory of annotation reader. */ + protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory; + + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The selector of behavior. {Since DBFlute-0.7.1} */ + protected BehaviorSelector _behaviorSelector; + + /** The lock monitor of method initialization. */ + protected Object _methodInitializationLockMonitor = new Object(); + + /** The determination of internal debug. {Since DBFlute-0.6.2} */ + protected boolean _internalDebug; + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataExtension() { + } + + //========================================================================== + // ========= + // Initialize Override + // =================== + @Override + public void initialize() { + beanClass = daoAnnotationReader.getBeanClass(); + daoInterface = getDaoInterface(daoClass); + daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final Connection conn = getConnection();// It is first impact to + // Database! + try { + final DatabaseMetaData dbMetaData = getMetaData(conn); + dbms = DbmsManager.getDbms(getDatabaseProductName(dbMetaData)); + } finally { + close(conn); + } + this.beanMetaData = beanMetaDataFactory.createBeanMetaData( + daoInterface, beanClass); + checkSingleRowUpdateForAll = daoAnnotationReader + .isCheckSingleRowUpdate(); + + // Comment out for lazy-load! + // setupSqlCommand(); + } + + //========================================================================== + // ========= + // SqlCommand Setup Override + // ========================= + @Override + public SqlCommand getSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + synchronized (_methodInitializationLockMonitor) { + cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + if (_log.isDebugEnabled()) { + _log + .debug("...Getting sqlCommand as cache because the previous thread have already initilized."); + } + return cmd; + } + if (_log.isDebugEnabled()) { + _log.debug("...Initializing sqlCommand for " + methodName + + "()."); + } + cmd = initializeSqlCommand(methodName); + } + return cmd; + } + + protected SqlCommand initializeSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql()) { + return initializeSpecifiedOutsideSqlCommand(methodName, + outsideSqlContext); + } + } + final Method[] methods = daoBeanDesc.getMethods(methodName); + if (methods.length == 1 && MethodUtil.isAbstract(methods[0])) { + setupMethod(methods[0]); + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + throw new MethodNotFoundRuntimeException(daoClass, methodName, null); + } + + protected SqlCommand initializeSpecifiedOutsideSqlCommand( + String sqlCommandKey, OutsideSqlContext outsideSqlContext) + throws MethodNotFoundRuntimeException { + final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext + .getMethodName());// By real method name. + if (methods.length == 1 + && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) { + final Method method = methods[0]; + if (isOutsideSqlDaoMethodSelect(method)) { + setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, + outsideSqlContext); + } else if (isOutsideSqlDaoMethodCall(method)) { + setupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, + outsideSqlContext); + } else { + setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, + outsideSqlContext); + } + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey); + if (cmd != null) { + return cmd; + } + String msg = "Internal Error! The sql-command is not found:"; + msg = msg + " sqlCommandKey=" + sqlCommandKey; + msg = msg + " sqlCommands=" + sqlCommands; + throw new IllegalStateException(msg); + } + + protected boolean isOutsideSqlDaoMethodSelect(Method method) { + return method.getName().startsWith("select"); + } + + protected boolean isOutsideSqlDaoMethodCall(Method method) { + return method.getName().startsWith("call"); + } + + //========================================================================== + // ========= + // Assert Override + // =============== + @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override + protected void setupMethodByAuto(Method method) { + final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); + if (outsideSql != null) { + String msg = "This method '" + method.getName() + + "()' should use Outside Sql but the file was not found!"; + msg = msg + " Expected sql file name is '" + + method.getDeclaringClass().getSimpleName() + "_" + + method.getName() + ".sql'"; + throw new IllegalStateException(msg); + } + super.setupMethodByAuto(method); + } + + //========================================================================== + // ========= + // ConditionBean Override + // ====================== + @Override + protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. + final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); + final String[] argNames = daoAnnotationReader.getArgNames(method); + final String query = daoAnnotationReader.getQuery(method); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + final Class[] types = method.getParameterTypes(); + final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, + query); + cmd.setArgNames(argNames); + cmd.setArgTypes(types); + putSqlCommand(method.getName(), cmd); + return true; + } + + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + // For condition-bean! + protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); + return cmd; + } + + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + //========================================================================== + // ========= + // Insert and Update and Delete By Auto Override + // ============================================= + // ----------------------------------------------------- + // Insert + // ------ + @Override + protected void setupInsertMethodByAuto(final Method method) { + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand command; + if (isUpdateSignatureForBean(method)) { + final InternalInsertAutoDynamicCommand cmd = new InternalInsertAutoDynamicCommand(); + cmd.setBeanMetaData(getBeanMetaData()); + cmd.setDataSource(dataSource); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd.setPropertyNames(propertyNames); + cmd.setStatementFactory(statementFactory); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + command = cmd; + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + final InternalInsertBatchAutoStaticCommand cmd = new InternalInsertBatchAutoStaticCommand( + dataSource, statementFactory, getBeanMetaData(), + propertyNames, returningRows); + command = cmd; + } + putSqlCommand(method.getName(), command); + } + + // ----------------------------------------------------- + // Update + // ------ + @Override + protected void setupUpdateMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalUpdateQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + if (isUnlessNull(method.getName())) { + cmd = createInternalUpdateAutoDynamicCommand(method, + propertyNames); + } else if (isModifiedOnly(method.getName())) { + cmd = createInternalUpdateModifiedOnlyCommand(method, + propertyNames); + } else { + cmd = createInternalUpdateAutoStaticCommand(method, + propertyNames); + } + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalUpdateBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand( + final Method method, final String[] propertyNames) { + final UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand( + dataSource, statementFactory, beanMetaData, propertyNames); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand createInternalUpdateAutoDynamicCommand( + Method method, String[] propertyNames) { + final InternalUpdateAutoDynamicCommand cmd = newUpdateAutoDynamicCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand newUpdateAutoDynamicCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateAutoDynamicCommand(ds, sf); + } + + protected InternalUpdateModifiedOnlyCommand createInternalUpdateModifiedOnlyCommand( + final Method method, final String[] propertyNames) { + final InternalUpdateModifiedOnlyCommand cmd = newInternalUpdateModifiedOnlyCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateModifiedOnlyCommand newInternalUpdateModifiedOnlyCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateModifiedOnlyCommand(ds, sf); + } + + protected InternalUpdateBatchAutoStaticCommand createInternalUpdateBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalUpdateBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows, isUpdateVersionNoAutoIncrementOnMemory(method)) { + @Override + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Delete + // ------ + @Override + protected void setupDeleteMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalDeleteQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + cmd = createInternalDeleteAutoStaticCommand(method, propertyNames); + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalDeleteBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected InternalDeleteAutoStaticCommand createInternalDeleteAutoStaticCommand( + final Method method, final String[] propertyNames) { + final InternalDeleteAutoStaticCommand cmd = new InternalDeleteAutoStaticCommand( + dataSource, statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + return cmd; + } + + protected InternalDeleteBatchAutoStaticCommand createInternalDeleteBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalDeleteBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows) { + @Override + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Common Helper + // ------------- + protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) { + if (isNonstrictMethod(method)) { + return createNonConcurrencyBmdFactory().createBeanMetaData( + getBeanClass()); + } else { + return getBeanMetaData(); + } + } + + protected boolean isUpdateVersionNoAutoIncrementOnMemory(Method method) { + return !isNonstrictMethod(method); + } + + protected boolean isNonstrictMethod(Method method) { + return method.getName().contains("Nonstrict"); + } + + protected BeanMetaDataFactory createNonConcurrencyBmdFactory() { + final S2BeanMetaDataFactoryImpl nonConcurrencyBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + public boolean hasVersionNoPropertyType() { + return false; + } + + public boolean hasTimestampPropertyType() { + return false; + } + }; + } + }; + nonConcurrencyBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + nonConcurrencyBmdFactory + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + nonConcurrencyBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + nonConcurrencyBmdFactory.setTableNaming(this.tableNaming); + nonConcurrencyBmdFactory.setDataSource(this.dataSource); + nonConcurrencyBmdFactory + .setDaoNamingConvention(this.daoNamingConvention); + nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer); + return nonConcurrencyBmdFactory; + } + + protected boolean isFirstArgumentConditionBean(final Method method) { + final Class[] pmbTypes = method.getParameterTypes(); + return pmbTypes.length > 0 + && ConditionBean.class.isAssignableFrom(pmbTypes[0]); + } + + protected void handleBatchUpdateResultWithOptimisticLock( + PreparedStatement ps, List list, int[] result, Method method) + throws SQLException { + if (ConditionBeanContext.isOracle()) { + final int updateCount = ps.getUpdateCount(); + handleBatchUpdateResultWithOptimisticLockByUpdateCount(list, + updateCount, method); + } else { + handleBatchUpdateResultWithOptimisticLockByResult(list, result, + method); + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByUpdateCount( + List list, int updateCount, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (updateCount < 0) { + return;// for Safety! + } + final int entityCount = list.size(); + if (updateCount < entityCount) { + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " updateCount=" + updateCount; + msg = msg + " entityCount=" + entityCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(0), 0, + updateCount); + } + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByResult( + List list, Object result, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (!(result instanceof int[])) { + return;// for Safety! + } + final int[] updatedCountArray = (int[]) result; + final int entityCount = list.size(); + int index = 0; + boolean alreadyUpdated = false; + for (int oneUpdateCount : updatedCountArray) { + if (entityCount <= index) { + break;// for Safety! + } + if (oneUpdateCount == 0) { + alreadyUpdated = true; + break; + } else if (oneUpdateCount > 1) { + String msg = "The entity updated two or more records in batch update:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updatedCount=" + oneUpdateCount; + msg = msg + " allEntities=" + list; + throw new EntityDuplicatedException(msg); + } + ++index; + } + if (alreadyUpdated) { + int updateCount = 0; + for (int oneUpdateCount : updatedCountArray) { + updateCount = updateCount + oneUpdateCount; + } + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updateCount=" + updateCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(index), + 0, updateCount); + } + } + } + + //========================================================================== + // ========= + // OutsideSql Override + // =================== + // ----------------------------------------------------- + // Normal OutsideSql + // ----------------- + @Override + protected void setupSelectMethodByManual(Method method, String sql) { + final Class[] pmbTypes = method.getParameterTypes(); + final String[] argNames = this.daoAnnotationReader.getArgNames(method); + final Class[] argTypes; + if (pmbTypes != null + && pmbTypes.length > 0 + && CursorHandler.class + .isAssignableFrom(pmbTypes[pmbTypes.length - 1])) { + argTypes = new Class[pmbTypes.length - 1]; + for (int i = 0; i < pmbTypes.length - 1; i++) { + argTypes[i] = pmbTypes[i]; + } + } else { + argTypes = pmbTypes; + } + final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method); + registerSqlCommand(method.getName(), method, sql, argNames, argTypes, + myBeanMetaData); + } + + protected BeanMetaData getOutsideSqlBeanMetaData(Method method) { + final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method); + if (beanClass4SelectMethodByManual.equals(getBeanClass())) { + return getBeanMetaData(); + } + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + // - - - - - - - - - - - - + // Select + // - - - + protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + // - - - - - - - - - - - - - - - - + // Create customized BeanMetaData. + // - - - - - - - - - - - - - - - - + final Class lastestArguementType = method.getParameterTypes()[method + .getParameterTypes().length - 1]; + final ResultSetHandler myResultSetHandler; + if (Class.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // EntityHandling + // - - - - - - - - + final Class customizeEntityType = (Class) resultTypeSpecification; + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType); + if (List.class.isAssignableFrom(method.getReturnType())) { + myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + myBeanMetaData, customizeEntityType); + } else { + throw new UnsupportedOperationException( + "The return type of method is unsupported: method.getReturnType()=" + + method.getReturnType()); + // myResultSetHandler = + // createSpecifiedOutsideSqlCustomizeBeanResultSetHandler + // (myBeanMetaData, customizeEntityType); + } + } else if (CursorHandler.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // CursorHandling + // - - - - - - - - + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method); + myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData); + } else { + String msg = "The lastestArguementType is unsupported:"; + msg = msg + " lastestArguementType=" + lastestArguementType; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + + // - - - - - - - - - - - + // Register Sql-Command. + // - - - - - - - - - - - + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + myResultSetHandler); + } + + protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData( + Class clazz) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(clazz); + } + + /** + * Create the handler of result set of specified outside-sql for the list of + * customize bean. + * + * @param specifiedBeanMetaData Specified bean meta data. (NotNull) + * @param customizeEntityType The type of customize entity. (NotNull) + * @return The handler of result set. (NotNull) + */ + protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + BeanMetaData specifiedBeanMetaData, Class customizeEntityType) { + final ValueType valueType = ValueTypes + .getValueType(customizeEntityType); + if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { + return new InternalObjectListResultSetHandler(valueType); + } + final InternalRowCreator rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData); + final InternalRelationRowCreator relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData); + return new InternalBeanListMetaDataResultSetHandler( + specifiedBeanMetaData, rowCreator, relationRowCreator); + } + + protected InternalRowCreator createSpecifiedOutsideSqlInternalRowCreator( + BeanMetaData bmd) { + final Class clazz = bmd.getBeanClass(); + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createSpecifiedOutsideSqlInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); + } + + protected class InternalObjectListResultSetHandler implements + ResultSetHandler { + private ValueType valueType; + + public InternalObjectListResultSetHandler(ValueType valueType) { + this.valueType = valueType; + } + + public Object handle(ResultSet rs) throws SQLException { + final List ret = new ArrayList(); + while (rs.next()) { + ret.add(valueType.getValue(rs, 1)); + } + return ret; + } + } + + protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData( + Method method) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler( + BeanMetaData specifiedBeanMetaData) { + return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This + // is + // dummy + // for + // cursor + // handling + // ! + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + final InternalUpdateDynamicCommand cmd = new InternalUpdateDynamicCommand( + dataSource, statementFactory) { + @Override + public Object execute(Object[] args) { + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + Object arg = args[1]; + return super.execute(new Object[] { arg }); + } + }; + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + // - - - - - - - - - - - - + // Call Procedure + // - - - - - - - + protected void setupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final Object pmb = outsideSqlContext.getParameterBean(); + final String procedureName = outsideSqlContext.getOutsideSqlPath(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final InternalProcedureMetaDataFactory factory = createInternalProcedureMetaDataFactory(); + factory.setValueTypeFactory(valueTypeFactory); + final Class pmbType = pmb != null ? pmb.getClass() : null; + final InternalProcedureMetaData metaData = factory + .createProcedureMetaData(procedureName, pmbType); + final InternalProcedureCommand cmd = createInternalProcedureCommand( + method, metaData); + putSqlCommand(sqlCommandKey, cmd); + } + + protected InternalProcedureMetaDataFactory createInternalProcedureMetaDataFactory() { + return new InternalProcedureMetaDataFactory(); + } + + protected InternalProcedureCommand createInternalProcedureCommand( + Method method, InternalProcedureMetaData metaData) { + final ResultSetHandler resultSetHandler = createResultSetHandler(method); + return new InternalProcedureCommand(dataSource, resultSetHandler, + statementFactory, metaData); + } + + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() { + final S2BeanMetaDataFactoryImpl originalBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return newOutsideSqlCustomizeBeanMetaDataImpl(); + } + }; + originalBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + originalBmdFactory + .setPropertyTypeFactoryBuilder(createOutsideSqlPropertyTypeFactoryBuilder()); + originalBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + originalBmdFactory.setTableNaming(this.tableNaming); + originalBmdFactory.setDataSource(this.dataSource); + originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention); + originalBmdFactory.setBeanEnhancer(this.beanEnhancer); + return originalBmdFactory; + } + + protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() { + return new OutsideSqlCustomizeBeanMetaDataImpl(); + } + + protected static class OutsideSqlCustomizeBeanMetaDataImpl extends + BeanMetaDataImpl { + // Though nothing to override, it uses original class just in case. + } + + protected S2DaoPropertyTypeFactoryBuilderExtension createOutsideSqlPropertyTypeFactoryBuilder() { + final S2DaoPropertyTypeFactoryBuilderExtension impl = new S2DaoPropertyTypeFactoryBuilderExtension(); + if (columnNaming == null) { + String msg = "Internal Error! The columnNaming should not be null! {Failed to Injection!}"; + throw new IllegalStateException(msg); + } + impl.setColumnNaming(columnNaming); + impl.setValueTypeFactory(valueTypeFactory); + return impl; + } + + protected Class getOutsideSqlDefaultBeanClass(Method method) { + final Class retType = method.getReturnType(); + if (java.util.List.class.isAssignableFrom(retType)) { + final Class elementType = InternalMethodUtil + .getElementTypeOfListFromReturnMethod(method); + if (elementType != null) { + return elementType; + } else { + return getBeanClass(); + } + } else if (retType.isArray()) { + return retType.getComponentType(); + } else if (retType.isPrimitive() + || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) { + return getBeanClass(); + } else { + return retType; + } + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + BeanMetaData myBeanMetaData) { + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + createResultSetHandler(myBeanMetaData, method)); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + ResultSetHandler myResultSetHandler) { + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(myResultSetHandler); + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + S2DaoSelectDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + InternalUpdateDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + //========================================================================== + // ========= + // Common Handlnig + // =============== + @Override + protected void putSqlCommand(String methodName, SqlCommand cmd) { + sqlCommands.put(methodName, cmd); + } + + protected boolean isCheckSingleRowUpdate(Method method) { + return checkSingleRowUpdateForAll + & daoAnnotationReader.isCheckSingleRowUpdate(method); + } + + //========================================================================== + // ========= + // Customize SelectDynamicCommand Creation + // ======================================= + /** + * Create the customize select dynamic command that is for all select SQL on + * DBFlute. + * + * @param handler The handler of result set. (NotNull) + * @return The customize select dynamic command. (NotNull) + */ + protected S2DaoSelectDynamicCommand createCustomizeSelectDynamicCommand( + ResultSetHandler handler) { + return new S2DaoSelectDynamicCommand(dataSource, statementFactory, + handler); + } + + //========================================================================== + // ========= + // ResultSetHandler Override + // ========================= + @Override + protected ResultSetHandler createResultSetHandler(Method method) { + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, beanMetaData, method); + } + + protected ResultSetHandler createResultSetHandler( + BeanMetaData specifiedBeanMetaData, Method method) {// For specified + // BeanMetaData + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, specifiedBeanMetaData, method); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected DatabaseMetaData getMetaData(Connection conn) { + try { + return conn.getMetaData(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected String getDatabaseProductName(DatabaseMetaData dbMetaData) { + try { + return dbMetaData.getDatabaseProductName(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Exception Handlnig + // ================== + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // ResultSetHandlerFactoryImpl Extension + // ===================================== + public static class ResultSetHandlerFactoryExtension extends + ResultSetHandlerFactoryImpl { + public ResultSetHandlerFactoryExtension() { + super(); + } + + @Override + protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25) + return createInternalRowCreator(null); + } + + @Override + protected RelationRowCreator createRelationRowCreator() { + return createInternalRelationRowCreator(null); + } + + @Override + protected ResultSetHandler createBeanListMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanListMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + @Override + protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanArrayMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + protected InternalRowCreator createInternalRowCreator(BeanMetaData bmd) { + final Class clazz = bmd != null ? bmd.getBeanClass() : null; + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); // Not yet implemented + // about performance + // tuning! + } + } + + //========================================================================== + // ========= + // Vert Internal + // ============= + protected static class InternalMethodUtil { + public static Class getElementTypeOfListFromReturnMethod(Method method) { + return InternalReflectionUtil + .getElementTypeOfListFromReturnType(method); + } + } + + protected static class InternalReflectionUtil { + public static Class getElementTypeOfList(final Type parameterizedList) { + if (!(parameterizedList instanceof ParameterizedType)) { + return null; + } + final ParameterizedType parameterizedType = ParameterizedType.class + .cast(parameterizedList); + final Type rawType = parameterizedType.getRawType(); + if (!(rawType instanceof Class)) { + return null; + } + final Class rawClass = Class.class.cast(rawType); + if (!rawClass.isAssignableFrom(List.class)) { + return null; + } + final Type[] actualTypeArgument = parameterizedType + .getActualTypeArguments(); + if (actualTypeArgument == null || actualTypeArgument.length != 1) { + return null; + } + if (!(actualTypeArgument[0] instanceof Class)) { + return null; + } + return Class.class.cast(actualTypeArgument[0]); + } + + public static Class getElementTypeOfListFromParameterType( + final Method method, final int parameterPosition) { + final Type[] pmbTypes = method.getGenericParameterTypes(); + return getElementTypeOfList(pmbTypes[parameterPosition]); + } + + public static Class getElementTypeOfListFromReturnType( + final Method method) { + return getElementTypeOfList(method.getGenericReturnType()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Sql File Encoding + // ----------------- + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + // ----------------------------------------------------- + // Bean Enhancer + // ------------- + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Annotation Reader Factory + // ------------------------- + public void setAnnotationReaderFactory( + org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + public BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + public void setBehaviorSelector(final BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(final boolean internalDebug) { + this._internalDebug = internalDebug; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,655 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import jp.sf.pal.notepad.db.allcommon.DBFluteConfig; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +import org.seasar.dao.AnnotationReaderFactory; +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.DaoAnnotationReader; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.DaoNamingConvention; +import org.seasar.dao.DtoMetaDataFactory; +import org.seasar.dao.ProcedureMetaDataFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.ResultSetHandlerFactory; +import org.seasar.dao.TableNaming; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.pager.PagingSqlRewriter; +import org.seasar.extension.jdbc.ResultSetFactory; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.Disposable; +import org.seasar.framework.util.DisposableUtil; + +/** + * The implementation of DaoMetaDataFactory for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoMetaDataFactoryImpl implements DaoMetaDataFactory, Disposable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataFactoryImpl.class); + + // ----------------------------------------------------- + // For Logging + // ----------- + /** The binding annotation for xaDataSource. {bindingType=may} */ + public static final String xaDataSource_BINDING = "bindingType=may"; + + // ----------------------------------------------------- + // Factory Basic + // ------------- + public static final String dataSource_BINDING = "bindingType=must"; + + public static final String annotationReaderFactory_BINDING = "bindingType=must"; + + public static final String valueTypeFactory_BINDING = "bindingType=must"; + + public static final String beanMetaDataFactory_BINDING = "bindingType=must"; + + public static final String daoNamingConvention_BINDING = "bindingType=must"; + + public static final String resultSetHandlerFactory_BINDING = "bindingType=must"; + + public static final String dtoMetaDataFactory_BINDING = "bindingType=must"; + + public static final String procedureMetaDataFactory_BINDING = "bindingType=must"; + + public static final String pagingSQLRewriter_BINDING = "bindingType=may"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Factory Basic + // ------------- + protected DataSource dataSource; + + protected AnnotationReaderFactory annotationReaderFactory; + + protected ValueTypeFactory valueTypeFactory; + + protected BeanMetaDataFactory beanMetaDataFactory; + + protected DaoNamingConvention daoNamingConvention; + + protected ResultSetHandlerFactory resultSetHandlerFactory; + + protected DtoMetaDataFactory dtoMetaDataFactory; + + protected ProcedureMetaDataFactory procedureMetaDataFactory; + + protected PagingSqlRewriter pagingSqlRewriter; + + protected Map daoMetaDataCache = new HashMap(); + + protected boolean initialized; + + protected boolean useDaoClassForLog; + + protected String sqlFileEncoding; + + protected BeanEnhancer beanEnhancer; + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The lock monitor of DAO meta data initialization. */ + protected Object _daoMetaDataInitializationLockMonitor = new Object(); + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataFactoryImpl(DataSource dataSource, + AnnotationReaderFactory annotationReaderFactory, + XADataSource xaDataSource) { + this.dataSource = dataSource; + this.annotationReaderFactory = annotationReaderFactory; + + _log + .info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}"); + showInformation(dataSource, xaDataSource); + + // Stop the LinkageError! + ConditionBeanContext.initialize(); + + initializeDatabaseProductNameOfContext(xaDataSource); + + handleSqlLogRegistry(); + + DBFluteConfig.getInstance().lock(); + _log.info("* * * * */"); + } + + protected void showInformation(javax.sql.DataSource dataSource, + javax.sql.XADataSource xaDataSource) { + final StringBuilder sb = new StringBuilder(); + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + final String url = xaDataSourceImpl.getURL(); + final String user = xaDataSourceImpl.getUser(); + sb.append(" [XADataSource]:").append(getLineSeparator()); + sb.append(" driver = " + driverClassName).append( + getLineSeparator()); + sb.append(" url = " + url).append(getLineSeparator()); + sb.append(" user = " + user); + } + _log.info("{Injection Information}" + getLineSeparator() + sb); + } + + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + + // ----------------------------------------------------- + // Database Product Name + // --------------------- + protected void initializeDatabaseProductNameOfContext( + javax.sql.XADataSource xaDataSource) { + if (getDatabaseProductNameFromContext() != null) { + return; + } + + // From JDBC Driver! + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + if (driverClassName != null) { + if (setupDatabaseProductNameByDriverClassName(driverClassName)) { + _log + .info("...Initializing database product name from driverClassName: " + + getDatabaseProductNameFromContext()); + return; + } + } + } + + _log.info("...Initializing database product name as default: H2"); + setDatabaseProductNameToContext("H2"); + } + + protected String getDatabaseProductNameFromContext() { + return ConditionBeanContext.getDatabaseProductName(); + } + + protected void setDatabaseProductNameToContext(String name) { + ConditionBeanContext.setDatabaseProductName(name); + } + + protected boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + return ConditionBeanContext + .setupDatabaseProductNameByDriverClassName(driverClassName); + } + + //========================================================================== + // ========= + // Implementation + // ============== + @SuppressWarnings("unchecked") + public DaoMetaData getDaoMetaData(final Class daoClass) { + if (!initialized) { + DisposableUtil.add(this); + initialized = true; + } + final String key = daoClass.getName(); + + // [A] + DaoMetaData dmd = getSynchronizedDaoMetaDataCache(key); + + // [B] + if (dmd != null) { + return dmd; + } + + // [C] + synchronized (_daoMetaDataInitializationLockMonitor) {// One Thread Only + // Entered + // [D] + dmd = getSynchronizedDaoMetaDataCache(key); + // [E] + if (dmd != null) { + // The second thread that stops at [C] can find + // because the first thread have already initialized. + if (_log.isDebugEnabled()) { + _log + .debug("...Getting daoMetaData as cache because the previous thread have already initilized."); + } + return dmd; + } + // [F] + if (_log.isDebugEnabled()) { + _log.debug("...Creating daoMetaData for " + + daoClass.getSimpleName() + "."); + } + final DaoMetaData dmdi = createDaoMetaData(daoClass); + putSynchronizedDaoMetaDataCache(key, dmdi); + } + // [G] + dmd = getSynchronizedDaoMetaDataCache(key); + if (dmd != null) { + return dmd; + } + String msg = "The cache should have data meta data here: key=" + key + + " cache=" + daoMetaDataCache; + throw new IllegalStateException(msg); + } + + @SuppressWarnings("unchecked") + protected void putSynchronizedDaoMetaDataCache(String key, DaoMetaData dmd) { + synchronized (daoMetaDataCache) { + daoMetaDataCache.put(key, dmd); + } + } + + protected DaoMetaData getSynchronizedDaoMetaDataCache(String key) { + DaoMetaData dmd = null; + synchronized (daoMetaDataCache) { + dmd = (DaoMetaData) daoMetaDataCache.get(key); + } + return dmd; + } + + //========================================================================== + // ========= + // DataMetaData Creation + // ===================== + protected DaoMetaData createDaoMetaData(final Class daoClass) { + final BeanDesc daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final DaoAnnotationReader daoAnnotationReader = annotationReaderFactory + .createDaoAnnotationReader(daoBeanDesc); + + final DaoMetaDataImpl daoMetaData = createDaoMetaDataExtension(); + daoMetaData.setDaoClass(daoClass); + daoMetaData.setDataSource(dataSource); + daoMetaData.setStatementFactory(createCustomizeStatememtFactory()); + daoMetaData.setResultSetFactory(createCustomizeResultSetFactory()); + daoMetaData.setValueTypeFactory(valueTypeFactory); + daoMetaData.setBeanMetaDataFactory(getBeanMetaDataFactory()); + daoMetaData.setDaoNamingConvention(getDaoNamingConvention()); + daoMetaData.setUseDaoClassForLog(useDaoClassForLog); + daoMetaData.setDaoAnnotationReader(daoAnnotationReader); + daoMetaData.setProcedureMetaDataFactory(procedureMetaDataFactory); + daoMetaData.setDtoMetaDataFactory(dtoMetaDataFactory); + daoMetaData.setResultSetHandlerFactory(resultSetHandlerFactory); + if (sqlFileEncoding != null) { + daoMetaData.setSqlFileEncoding(sqlFileEncoding); + } + if (pagingSqlRewriter != null) { + daoMetaData.setPagingSQLRewriter(pagingSqlRewriter); + } + daoMetaData.initialize(); + return daoMetaData; + } + + protected S2DaoMetaDataExtension createDaoMetaDataExtension() { + final S2DaoMetaDataExtension dmdExtension = newDaoMetaDataExtension(); + dmdExtension.setBeanEnhancer(beanEnhancer); + dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory); + dmdExtension.setColumnNaming(this.columnNaming); + dmdExtension + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + dmdExtension + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + dmdExtension.setTableNaming(tableNaming); + dmdExtension.setInternalDebug(DBFluteConfig.getInstance() + .isInternalDebug()); + return dmdExtension; + } + + protected S2DaoMetaDataExtension newDaoMetaDataExtension() { + return new S2DaoMetaDataExtension(); + } + + //========================================================================== + // ========= + // Result Set Factory + // ================== + /** + * Create the customize result set factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected ResultSetFactory createCustomizeResultSetFactory() { + return new FetchNarrowingResultSetFactory(); + } + + //========================================================================== + // ========= + // Statement Factory + // ================= + /** + * Create the customize statement factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected StatementFactory createCustomizeStatememtFactory() { + final StatementConfig defaultStatementConfig = DBFluteConfig + .getInstance().getDefaultStatementConfig(); + final boolean internalDebug = DBFluteConfig.getInstance() + .isInternalDebug(); + return new StatementFactory() { + public PreparedStatement createPreparedStatement(Connection con, + String sql) { + try { + final StatementConfig config = findStatementConfigOnThread(); + ; + final int resultSetType; + if (config != null && config.hasResultSetType()) { + resultSetType = config.getResultSetType(); + } else if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + resultSetType = defaultStatementConfig + .getResultSetType(); + } else { + resultSetType = java.sql.ResultSet.TYPE_FORWARD_ONLY; + } + final int resultSetConcurrency = java.sql.ResultSet.CONCUR_READ_ONLY; + if (internalDebug) { + _log.debug("...Creating prepareStatement(sql, " + + resultSetType + ", " + resultSetConcurrency + + ")"); + } + final PreparedStatement ps = con.prepareStatement(sql, + resultSetType, resultSetConcurrency); + if (config != null && config.hasStatementOptions()) { + if (internalDebug) { + _log + .debug("...Setting statement config as request: " + + config); + } + reflectStatementOptions(config, ps); + } else { + reflectDefaultOptionsToStatementIfNeeds(ps); + } + return ps; + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + public CallableStatement createCallableStatement(Connection conn, + String sql) { + return prepareCall(conn, sql); + } + + protected StatementConfig findStatementConfigOnThread() { + final StatementConfig config; + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + config = cb.getStatementConfig(); + } else if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + config = context.getStatementConfig(); + } else { + config = null; + } + return config; + } + + protected void reflectDefaultOptionsToStatementIfNeeds( + PreparedStatement ps) { + if (defaultStatementConfig != null + && defaultStatementConfig.hasStatementOptions()) { + if (internalDebug) { + _log.debug("...Setting statement config as default: " + + defaultStatementConfig); + } + reflectStatementOptions(defaultStatementConfig, ps); + return; + } + } + + protected void reflectStatementOptions(StatementConfig config, + PreparedStatement ps) { + try { + if (config.hasQueryTimeout()) { + ps.setQueryTimeout(config.getQueryTimeout()); + } + if (config.hasFetchSize()) { + ps.setFetchSize(config.getFetchSize()); + } + if (config.hasMaxRows()) { + ps.setMaxRows(config.getMaxRows()); + } + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + + protected CallableStatement prepareCall(Connection conn, String sql) { + try { + return conn.prepareCall(sql); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, + Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + }; + } + + //========================================================================== + // ========= + // Dispose + // ======= + public synchronized void dispose() { + daoMetaDataCache.clear(); + initialized = false; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return System.getProperty("line.separator"); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Factory Basic + // ------------- + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected BeanMetaDataFactory getBeanMetaDataFactory() { + return beanMetaDataFactory; + } + + public void setBeanMetaDataFactory( + final BeanMetaDataFactory beanMetaDataFactory) { + this.beanMetaDataFactory = beanMetaDataFactory; + } + + public DaoNamingConvention getDaoNamingConvention() { + return daoNamingConvention; + } + + public void setDaoNamingConvention( + final DaoNamingConvention daoNamingConvention) { + this.daoNamingConvention = daoNamingConvention; + } + + public void setAnnotationReaderFactory( + final AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + public void setDataSource(final DataSource dataSource) { + this.dataSource = dataSource; + } + + public void setUseDaoClassForLog(final boolean userDaoClassForLog) { + useDaoClassForLog = userDaoClassForLog; + } + + public void setResultSetHandlerFactory( + final ResultSetHandlerFactory resultSetHandlerFactory) { + this.resultSetHandlerFactory = resultSetHandlerFactory; + } + + public void setDtoMetaDataFactory( + final DtoMetaDataFactory dtoMetaDataFactory) { + this.dtoMetaDataFactory = dtoMetaDataFactory; + } + + public void setProcedureMetaDataFactory( + ProcedureMetaDataFactory procedureMetaDataFactory) { + this.procedureMetaDataFactory = procedureMetaDataFactory; + } + + public void setPagingSQLRewriter(final PagingSqlRewriter pagingSqlRewriter) { + this.pagingSqlRewriter = pagingSqlRewriter; + } + + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + public void setSqlFileEncoding(final String encoding) { + sqlFileEncoding = encoding; + } + + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,215 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanAnnotationReader; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.Dbms; +import org.seasar.dao.PropertyTypeFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.AbstractPropertyTypeFactory; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; + +/** + * The factory builder of property type for S2Dao. {Since S2Dao-1.0.47} + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoPropertyTypeFactoryBuilderExtension implements + PropertyTypeFactoryBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected ColumnNaming columnNaming; + + //========================================================================== + // ========= + // Build + // ===== + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming); + } + + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader, Dbms dbms, + DatabaseMetaData databaseMetaData) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming, dbms); + } + + //========================================================================== + // ========= + // Extension Class + // =============== + protected static class FastPropertyTypeFactoryExtension extends + AbstractPropertyTypeFactory { + + protected DBMeta _dbmeta; + + protected String[] _noPersisteneProps; + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming); + initializeResources(); + } + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming, + Dbms dbms) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming, dbms); + initializeResources(); + } + + protected void initializeResources() { + if (isEntity()) { + _dbmeta = findDBMeta(); + } + _noPersisteneProps = beanAnnotationReader.getNoPersisteneProps(); + } + + protected boolean isEntity() { + return Entity.class.isAssignableFrom(beanClass); + } + + protected boolean hasDBMeta() { + return _dbmeta != null; + } + + protected DBMeta findDBMeta() { + try { + final Entity entity = (Entity) beanClass.newInstance(); + return entity.getDBMeta(); + } catch (Exception e) { + String msg = "beanClass.newInstance() threw the exception: beanClass=" + + beanClass; + throw new RuntimeException(msg, e); + } + } + + public PropertyType[] createBeanPropertyTypes(String tableName) { + final List list = new ArrayList(); + final BeanDesc beanDesc = getBeanDesc(); + for (int i = 0; i < beanDesc.getPropertyDescSize(); ++i) { + final PropertyDesc pd = beanDesc.getPropertyDesc(i); + + // Read-only property is unnecessary! + if (!pd.hasWriteMethod()) { + continue; + } + + // Relation property is unnecessary! + if (isRelation(pd)) { + continue; + } + + final PropertyType pt = createPropertyType(pd); + pt.setPrimaryKey(isPrimaryKey(pd)); + pt.setPersistent(isPersistent(pt)); + list.add(pt); + } + return list.toArray(new PropertyType[list.size()]); + } + + @Override + protected boolean isRelation(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() + && (_dbmeta.hasForeign(propertyName) || _dbmeta + .hasReferrer(propertyName))) { + return true; + } + return hasRelationNoAnnotation(propertyDesc); + } + + protected boolean hasRelationNoAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.hasRelationNo(propertyDesc); + } + + @Override + protected boolean isPrimaryKey(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() && _dbmeta.hasPrimaryKey() + && _dbmeta.hasColumn(propertyName)) { + if (_dbmeta.findColumnInfo(propertyName).isPrimary()) { + return true; + } + } + return hasIdAnnotation(propertyDesc); + } + + protected boolean hasIdAnnotation(PropertyDesc propertyDesc) { + final Dbms dbms = getDbms(); + return beanAnnotationReader.getId(propertyDesc, dbms) != null; + } + + @Override + protected boolean isPersistent(PropertyType propertyType) { + final String propertyName = propertyType.getPropertyName(); + final PropertyDesc propertyDesc = propertyType.getPropertyDesc(); + if ((hasDBMeta() && _dbmeta.hasColumn(propertyName)) + || hasColumnAnnotation(propertyDesc)) { + if (!isElementOfNoPersistentProps(propertyDesc)) { + return true; + } + } + return false; + } + + protected boolean hasColumnAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.getColumnAnnotation(propertyDesc) != null; + } + + protected boolean isElementOfNoPersistentProps(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + final String[] props = _noPersisteneProps; + if (props != null && props.length >= 0) { + for (int i = 0; i < props.length; ++i) { + if (props[i].equals(propertyName)) { + return true; + } + } + } + return false; + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ValueTypeFactory getValueTypeFactory() { + return valueTypeFactory; + } + + public void setValueTypeFactory(ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,491 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand.InternalAbstractDynamicCommand; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalBasicSelectHandler; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * SelectDynamicCommand for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoSelectDynamicCommand extends InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The handler of resultSet. */ + protected ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param dataSource Data source. + * @param statementFactory The factory of statement. + * @param resultSetHandler The handler of resultSet. + */ + public S2DaoSelectDynamicCommand(DataSource dataSource, + StatementFactory statementFactory, ResultSetHandler resultSetHandler) { + super(dataSource, statementFactory); + this.resultSetHandler = resultSetHandler; + } + + //========================================================================== + // ========= + // Very Important Extension + // ======================== + // ----------------------------------------------------- + // SelectDynamicCommand Creation + // ----------------------------- + protected S2DaoSelectDynamicCommand createMySelectDynamicCommand() { + return new S2DaoSelectDynamicCommand(getDataSource(), + getStatementFactory(), resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + // ----------------------------------------------------- + // Top Execute + // ----------- + /** + * @param args The array of argument. (Nullable) + * @return The object of execution result. (Nullable) + */ + public Object execute(Object[] args) { + // - - - - - - - - - - - - + // This is top execution. + // - - - - - - - - - - - - + + if (!ConditionBeanContext.isExistConditionBeanOnThread()) { + // - - - - - - - - - - + // Execute outsideSql. + // - - - - - - - - - - + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isDynamicBinding()) { + return executeOutsideSqlAsDynamic(args, outsideSqlContext); + } else { + return executeOutsideSqlAsStatic(args, outsideSqlContext); + } + } + + // - - - - - - - - - + // Execute default. + // - - - - - - - - - + return executeDefault(args); + } + + // - - - - - - - - - - - - + // Execute conditionBean. + // - - - - - - - - - - - - + final List bindVariableList = new ArrayList(4); + final List bindVariableTypeList = new ArrayList(4); + + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String finalClause; + if (cb.hasUnionQueryOrUnionAllQuery()) { + final String realClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + if (cb.isSelectCountIgnoreFetchScope()) { + // If the query uses union and it selects count, the way of + // select-count is as follows. + finalClause = "select count(*) from (" + realClause + + ") dfmain"; + } else { + finalClause = realClause; + } + } else { + if (cb.isSelectCountIgnoreFetchScope()) { + finalClause = setupRealSelectCountClause(args, + bindVariableList, bindVariableTypeList); + } else { + finalClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + } + } + + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + finalClause, this.resultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + // ----------------------------------------------------- + // Default Execute + // --------------- + /** + * Execute default. + * + * @param args The array of argument. (Nullable) + * @return Result. (Nullable) + */ + protected Object executeDefault(Object args[]) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs = filterArgumentsForResultSetHandler(args); + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + // ----------------------------------------------------- + // OutsideSql Execute + // ------------------ + /** + * Execute outsideSql as static. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsStatic(Object[] args, + OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + /** + * Execute outsideSql as Dynamic. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsDynamic(Object[] args, + OutsideSqlContext outsideSqlContext) { + final Object firstArg; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + firstArg = parameterBean; + } else { + firstArg = args[0]; + } + String filteredSql = getSql(); + if (firstArg != null) { + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(firstArg + .getClass()); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + // Resolve embedded comment for parsing bind variable comment in + // embedded comment. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + for (int i = 0; i < beanDesc.getPropertyDescSize(); i++) { + final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(i); + final Class propertyType = propertyDesc.getPropertyType(); + if (!propertyType.equals(String.class)) { + continue; + } + final String outsideSqlPiece = (String) propertyDesc + .getValue(firstArg); + if (outsideSqlPiece == null) { + continue; + } + final String embeddedComment = "/*$pmb." + + propertyDesc.getPropertyName() + "*/"; + filteredSql = replaceString(filteredSql, embeddedComment, + outsideSqlPiece); + } + } + final S2DaoSelectDynamicCommand outsideSqlCommand = createMySelectDynamicCommand(); + if (outsideSqlContext.isSpecifiedOutsideSql()) { + outsideSqlCommand.setArgNames(new String[] { "pmb" }); + outsideSqlCommand + .setArgTypes(new Class[] { firstArg != null ? firstArg + .getClass() : Object.class }); + } else { + outsideSqlCommand.setArgNames(getArgNames()); + outsideSqlCommand.setArgTypes(getArgTypes()); + } + outsideSqlCommand.setSql(filteredSql); + + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = outsideSqlCommand + .apply(filteredArgs); + final java.util.List bindVariableList = new java.util.ArrayList(); + final java.util.List bindVariableTypeList = new java.util.ArrayList(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + protected Object[] filterArgumentsForResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return args; + } + final Object[] filteredArgs; + if (args[args.length - 1] instanceof jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler) { + filteredArgs = new Object[args.length - 1]; + for (int i = 0; i < args.length - 1; i++) { + filteredArgs[i] = args[i]; + } + } else { + filteredArgs = args; + } + return filteredArgs; + } + + protected ResultSetHandler findSpecifiedResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return this.resultSetHandler; + } + if (args[args.length - 1] instanceof jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler) { + final jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler cursorHandler = (jp.sf.pal.notepad.db.allcommon.jdbc.CursorHandler) args[args.length - 1]; + return new ResultSetHandler() { + public Object handle(java.sql.ResultSet rs) + throws java.sql.SQLException { + return cursorHandler.handle(rs); + } + }; + } + if (getArgTypes().length + 1 == args.length + && args[args.length - 1] == null) { + String msg = "System Level Exception!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The size of arg types have not been same as the size of arg objects:"; + msg = msg + " argTypes=" + getArgTypes().length + " args=" + + args.length + getLineSeparator(); + msg = msg + + "If the arguments contain ResultSetHandler, the argument value should not be null!" + + getLineSeparator(); + for (int i = 0; i < args.length - 1; i++) { + msg = msg + " args[" + i + "] -- " + args[i] + + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + return this.resultSetHandler; + } + + // ----------------------------------------------------- + // Setup Clause + // ------------ + protected String setupRealClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realClause; + { + final S2DaoSelectDynamicCommand dynamicCommand = createMySelectDynamicCommand(); + dynamicCommand.setArgNames(getArgNames()); + dynamicCommand.setArgTypes(getArgTypes()); + if (cb.isLimitSelect_PKOnly()) { + dynamicCommand.setSql(cb.getSqlClause().getClausePKOnly()); + } else { + dynamicCommand.setSql(cb.getSqlClause().getClause()); + } + final CommandContext ctx = dynamicCommand.apply(args); + realClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realClause; + } + + protected String setupRealSelectCountClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realSelectCountClause; + { + final S2DaoSelectDynamicCommand selectCountCommand = createMySelectDynamicCommand(); + selectCountCommand.setArgNames(getArgNames()); + selectCountCommand.setArgTypes(getArgTypes()); + final String selectClause = "select count(*)"; + String fromWhereClause = cb.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + final String sql = cb.getSqlClause().filterSubQueryIndent( + selectClause + " " + fromWhereClause); + selectCountCommand.setSql(sql); + + final CommandContext ctx = selectCountCommand.apply(args); + realSelectCountClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realSelectCountClause; + } + + protected InternalBasicSelectHandler createBasicSelectHandler( + String realSql, ResultSetHandler specifiedResultSetHandler) { + return newBasicSelectHandler(realSql, specifiedResultSetHandler, + getStatementFactory()); + } + + protected InternalBasicSelectHandler newBasicSelectHandler(String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + return new InternalBasicSelectHandler(getDataSource(), sql, + resultSetHandler, statementFactory) { + @Override + protected void bindArgs(java.sql.PreparedStatement ps, + Object[] args, Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + final ValueType valueType = findValueType(argTypes[i], + args[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (java.sql.SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected ValueType findValueType(Class argType, Object arg) { + ValueType valueType = ValueTypes.getValueType(arg); + if (valueType != null) { + return valueType; + } + valueType = ValueTypes.getValueType(argType); + if (valueType != null) { + return valueType; + } + String msg = "Unknown type¡§argType=" + argType + " args=" + arg; + throw new IllegalStateException(msg); + } + }; + } + + // ----------------------------------------------------- + // Setup Helper + // ------------ + protected Class[] toClassArray(List bindVariableTypeList) { + final Class[] bindVariableTypesArray = new Class[bindVariableTypeList + .size()]; + for (int i = 0; i < bindVariableTypeList.size(); i++) { + final Class bindVariableType = (Class) bindVariableTypeList.get(i); + bindVariableTypesArray[i] = bindVariableType; + } + return bindVariableTypesArray; + } + + protected void addBindVariableInfo(CommandContext ctx, + List bindVariableList, List bindVariableTypeList) { + final Object[] bindVariables = ctx.getBindVariables(); + addBindVariableList(bindVariableList, bindVariables); + final Class[] bindVariableTypes = ctx.getBindVariableTypes(); + addBindVariableTypeList(bindVariableTypeList, bindVariableTypes); + } + + protected void addBindVariableList(List bindVariableList, + Object[] bindVariables) { + for (int i = 0; i < bindVariables.length; i++) { + bindVariableList.add(bindVariables[i]); + } + } + + protected void addBindVariableTypeList(List bindVariableTypeList, + Class[] bindVariableTypes) { + for (int i = 0; i < bindVariableTypes.length; i++) { + bindVariableTypeList.add(bindVariableTypes[i]); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,130 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractBeanMetaDataResultSetHandler extends + InternalAbstractDtoMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + protected RelationRowCreator relationRowCreator; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalAbstractBeanMetaDataResultSetHandler( + BeanMetaData beanMetaData, RowCreator rowCreator, + RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator); + this.beanMetaData = beanMetaData; + this.relationRowCreator = relationRowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + return rowCreator.createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + final Class beanClass = beanMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of relation property cache. Map{String(relationNoSuffix), + * Map{String(columnName), PropertyType}} (NotNull) + * @throws SQLException + */ + protected Map createRelationPropertyCache(Set columnNames) + throws SQLException { + return relationRowCreator + .createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param rpt The type of relation property. (NotNull) + * @param columnNames The set of column name. (NotNull) + * @param relKeyValues The map of rel key values. (Nullable) + * @param relationPropertyCache The map of relation property cache. + * Map{String(relationNoSuffix), Map{String(columnName), + * PropertyType}} (NotNull) + * @return Created relation row. (Nullable) + * @throws SQLException + */ + protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt, + Set columnNames, Map relKeyValues, Map relationPropertyCache) + throws SQLException { + return relationRowCreator.createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + } + + /** + * @param row The row of result list. (NotNull) + */ + protected void postCreateRow(final Object row) { + if (row instanceof Entity) { // DBFlute Target + ((Entity) row).clearModifiedPropertyNames(); + } else { // Basically Unreachable + final BeanMetaData bmd = getBeanMetaData(); + final Set names = bmd.getModifiedPropertyNames(row); + names.clear(); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,89 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import org.seasar.dao.DtoMetaData; +import org.seasar.dao.RowCreator; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.framework.util.CaseInsensitiveSet; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractDtoMetaDataResultSetHandler implements + ResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DtoMetaData dtoMetaData; + + protected RowCreator rowCreator; // [DAO-118] (2007/08/25) + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param dtoMetaData Dto meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + */ + public InternalAbstractDtoMetaDataResultSetHandler(DtoMetaData dtoMetaData, + RowCreator rowCreator) { + this.dtoMetaData = dtoMetaData; + this.rowCreator = rowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + return rowCreator.createPropertyCache(columnNames, dtoMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + final Class beanClass = dtoMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + protected Set createColumnNames(final ResultSetMetaData rsmd) + throws SQLException { + final int count = rsmd.getColumnCount(); + final Set columnNames = new CaseInsensitiveSet(); + for (int i = 0; i < count; ++i) { + final String columnName = rsmd.getColumnLabel(i + 1); + final int pos = columnName.lastIndexOf('.'); // [DAO-41] + if (-1 < pos) { + columnNames.add(columnName.substring(pos + 1)); + } else { + columnNames.add(columnName); + } + } + return columnNames; + } + + public DtoMetaData getDtoMetaData() { + return dtoMetaData; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,42 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.rshandler; + +import java.lang.reflect.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanArrayMetaDataResultSetHandler extends + InternalBeanListMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanArrayMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + List list = (List) super.handle(rs); + return list.toArray((Object[]) Array.newInstance(getBeanMetaData() + .getBeanClass(), list.size())); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,236 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.impl.RelationKey; +import org.seasar.dao.impl.RelationRowCache; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanListMetaDataResultSetHandler extends + InternalAbstractBeanMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanListMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; + + final List list = new ArrayList(); + final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); + final boolean hasCB = hasConditionBean(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + + while (rs.next()) { + if (columnNames == null) { + columnNames = createColumnNames(rs.getMetaData()); + } + if (propertyCache == null) { + propertyCache = createPropertyCache(columnNames); + } + + // Create row instance of base table by row property cache. + final Object row = createRow(rs, propertyCache); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { + postCreateRow(row); + list.add(row); + continue; + } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } + for (int i = 0; i < relSize; ++i) { + final RelationPropertyType rpt = getBeanMetaData() + .getRelationPropertyType(i); + if (rpt == null) { + continue; + } + + // Do only selected foreign property for performance if + // condition-bean exists. + if (hasCB + && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) { + continue; + } + + final Map relKeyValues = new HashMap(); + final RelationKey relKey = createRelationKey(rs, rpt, + columnNames, relKeyValues); + Object relationRow = null; + if (relKey != null) { + relationRow = relRowCache.getRelationRow(i, relKey); + if (relationRow == null) { // when no cache + relationRow = createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + if (relationRow != null) { + relRowCache.addRelationRow(i, relKey, relationRow); + postCreateRow(relationRow); + } + } + } + if (relationRow != null) { + final PropertyDesc pd = rpt.getPropertyDesc(); + pd.setValue(row, relationRow); + } + } + postCreateRow(row); + list.add(row); + } + return list; + } + + protected RelationKey createRelationKey(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues) + throws SQLException { + final List keyList = new ArrayList(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final ValueType valueType; + String columnName = rpt.getMyKey(i); + if (columnNames.contains(columnName)) { + final PropertyType pt = getBeanMetaData() + .getPropertyTypeByColumnName(columnName); + valueType = pt.getValueType(); + } else { + final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt + .getYourKey(i)); + columnName = pt.getColumnName() + buildRelationNoSuffix(rpt); + if (columnNames.contains(columnName)) { + valueType = pt.getValueType(); + } else { + return null; + } + } + final Object value = valueType.getValue(rs, columnName); + if (value == null) { + return null; + } + relKeyValues.put(columnName, value); + keyList.add(value); + } + if (keyList.size() > 0) { + Object[] keys = keyList.toArray(); + return new RelationKey(keys); + } else { + return null; + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean isSelectedForeignInfoEmpty() { + if (!hasConditionBean()) { + return true; + } + ConditionBean cb = ConditionBeanContext.getConditionBeanOnThread(); + if (cb.getSqlClause().isSelectedForeignInfoEmpty()) { + return true; + } + return false; + } + + /** + * Has it selected foreign information? You should call hasConditionBean() + * before calling this! + * + * @param relationNoSuffix The suffix of relation NO. (NotNull) + * @return Determination. + */ + protected boolean hasSelectedForeignInfo(String relationNoSuffix) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) { + return true; + } + return false; + } + + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ + protected String buildRelationNoSuffix(RelationPropertyType rpt) { + return "_" + rpt.getRelationNo(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,227 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.PrimaryKeyNotFoundRuntimeException; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoStaticCommand extends + InternalAbstractStaticCommand { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final boolean DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY = true; + + //========================================================================== + // ========= + // Attribute + // ========= + private PropertyType[] propertyTypes; + + private boolean checkSingleRowUpdate = true; + + protected boolean versionNoAutoIncrementOnMemory = DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData); + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + setupPropertyTypes(propertyNames); + setupSql(); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + InternalAbstractAutoHandler handler = createAutoHandler(); + handler.setSql(getSql()); + handler.setLoggingMessageSqlArgs(args); + int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw createNotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } + + protected NotSingleRowUpdatedRuntimeException createNotSingleRowUpdatedRuntimeException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected abstract InternalAbstractAutoHandler createAutoHandler(); + + protected abstract void setupPropertyTypes(String[] propertyNames); + + protected void setupInsertPropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (isInsertTarget(pt)) { + types.add(pt); + } + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected boolean isInsertTarget(PropertyType propertyType) { + if (propertyType.isPrimaryKey()) { + String name = propertyType.getPropertyName(); + final IdentifierGenerator generator = getBeanMetaData() + .getIdentifierGenerator(name); + return generator.isSelfGenerate(); + } + return true; + } + + protected void setupUpdatePropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (pt.isPrimaryKey()) { + continue; + } + types.add(pt); + } + if (types.size() == 0) { + throw new SRuntimeException("EDAO0020"); + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected void setupDeletePropertyTypes(String[] propertyNames) { + } + + protected abstract void setupSql(); + + protected void setupInsertSql() { + BeanMetaData bmd = getBeanMetaData(); + StringBuilder sb = new StringBuilder(100); + sb.append("insert into "); + sb.append(bmd.getTableName()); + sb.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append(pt.getColumnName()); + sb.append(", "); + } + } + sb.setLength(sb.length() - 2); + sb.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append("?, "); + } + } + sb.setLength(sb.length() - 2); + sb.append(")"); + setSql(sb.toString()); + } + + protected void setupUpdateSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(getBeanMetaData().getTableName()); + sb.append(" set "); + String versionNoPropertyName = getBeanMetaData() + .getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName) + && !versionNoAutoIncrementOnMemory) { + sb.append(pt.getColumnName()).append(" = ").append( + pt.getColumnName()).append(" + 1, "); + continue; + } + sb.append(pt.getColumnName()).append(" = ?, "); + } + sb.setLength(sb.length() - 2); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void setupDeleteSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("delete from "); + sb.append(getBeanMetaData().getTableName()); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void checkPrimaryKey() { + BeanMetaData bmd = getBeanMetaData(); + if (bmd.getPrimaryKeySize() == 0) { + throw new PrimaryKeyNotFoundRuntimeException(bmd.getBeanClass()); + } + } + + protected void setupUpdateWhere(StringBuilder sb) { + BeanMetaData bmd = getBeanMetaData(); + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,64 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final boolean returningRows; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + versionNoAutoIncrementOnMemory); + this.returningRows = returningRows; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final InternalAbstractBatchAutoHandler handler = createBatchAutoHandler(); + + // It is unnecessary! + // injectDaoClass(handler); + + handler.setSql(getSql()); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(args); + if (this.returningRows) { + return handler.executeBatch(args); + } else { + final int updatedRows = handler.execute(args); + return new Integer(updatedRows); + } + } + + protected abstract InternalAbstractBatchAutoHandler createBatchAutoHandler(); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,83 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractDynamicCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected Node rootNode; + + protected String[] argNames = new String[0]; + + protected Class[] argTypes = new Class[0]; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Sql Handling + // ============ + public void setSql(String sql) { + super.setSql(sql); + this.rootNode = createInternalSqlParser(sql).parse(); + } + + protected InternalSqlParser createInternalSqlParser(String sql) { + return new InternalSqlParser(sql); + } + + public CommandContext apply(Object[] args) {// It is necessary to be public! + final CommandContext ctx = createCommandContext(args); + rootNode.accept(ctx); + return ctx; + } + + protected CommandContext createCommandContext(Object[] args) { + return createCommandContextCreator().createCommandContext(args); + } + + protected InternalCommandContextCreator createCommandContextCreator() { + return new InternalCommandContextCreator(argNames, argTypes); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String[] getArgNames() { + return argNames; + } + + public void setArgNames(String[] argNames) { + this.argNames = argNames; + } + + public Class[] getArgTypes() { + return argTypes; + } + + public void setArgTypes(Class[] argTypes) { + this.argTypes = argTypes; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,52 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractSqlCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private StatementFactory statementFactory; + + private String sql; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractSqlCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,37 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractStaticCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,46 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + super(dataSource, statementFactory, beanMetaData, propertyNames); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return new InternalDeleteAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,57 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return newInternalBatchAutoHandler(); + } + + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,103 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + String[] argNames = new String[] { "dto" }; + Class[] argTypes = new Class[] { cb.getClass() }; + String twoWaySql = buildQueryDeleteTwoWaySql(cb); + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + if (args == null || args.length == 0) { + String msg = "The arguments should have one argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + protected String buildQueryDeleteTwoWaySql(ConditionBean cb) { + return cb.getSqlClause().getClauseQueryDelete(); + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,172 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalInsertAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + protected BeanMetaData beanMetaData; + + protected String[] propertyNames; + + protected boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoDynamicCommand() { + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createInsertPropertyTypes(bmd, + bean, getPropertyNames()); + final String sql = createInsertSql(bmd, propertyTypes); + final InternalInsertAutoHandler handler = new InternalInsertAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler.setSql(sql); + handler.setLoggingMessageSqlArgs(args); + final int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw new NotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + protected String createInsertSql(BeanMetaData bmd, + PropertyType[] propertyTypes) { + StringBuffer buf = new StringBuffer(100); + buf.append("insert into "); + buf.append(bmd.getTableName()); + buf.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + buf.append(", "); + } + buf.append(columnName); + } + buf.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + if (i > 0) { + buf.append(", "); + } + buf.append("?"); + } + buf.append(")"); + return buf.toString(); + } + + protected PropertyType[] createInsertPropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + + if (0 == propertyNames.length) { + throw new SRuntimeException("EDAO0024", new Object[] { bean + .getClass().getName() }); + } + List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey()) { + final IdentifierGenerator generator = bmd + .getIdentifierGenerator(pt.getPropertyName()); + if (!generator.isSelfGenerate()) { + continue; + } + } else { + if (pt.getPropertyDesc().getValue(bean) == null) { + final String propertyName = pt.getPropertyName(); + if (!propertyName.equalsIgnoreCase(timestampPropertyName) + && !propertyName + .equalsIgnoreCase(versionNoPropertyName)) { + continue; + } + } + } + types.add(pt); + } + if (types.isEmpty()) { + throw new SRuntimeException("EDAO0014"); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + protected DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + protected StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + protected BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + protected String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,53 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalInsertBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return new InternalInsertBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupInsertSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupInsertPropertyTypes(propertyNames); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,83 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalProcedureHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected ResultSetHandler resultSetHandler; + + protected StatementFactory statementFactory; + + protected InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureCommand(DataSource dataSource, + ResultSetHandler resultSetHandler, + StatementFactory statementFactory, + InternalProcedureMetaData procedureMetaData) { + this.dataSource = dataSource; + this.resultSetHandler = resultSetHandler; + this.statementFactory = statementFactory; + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(final Object[] args) { + final InternalProcedureHandler handler = newArgumentDtoProcedureHandler(); + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + final Object pmb = outsideSqlContext.getParameterBean(); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(...); + return handler.execute(new Object[] { pmb }); + } + + protected InternalProcedureHandler newArgumentDtoProcedureHandler() { + return new InternalProcedureHandler(dataSource, + createSql(procedureMetaData), resultSetHandler, + statementFactory, procedureMetaData); + } + + protected String createSql(final InternalProcedureMetaData procedureMetaData) { + final StringBuilder sb = new StringBuilder(); + sb.append("{"); + int size = procedureMetaData.parameterTypes().size(); + if (procedureMetaData.hasReturnParameterType()) { + sb.append("? = "); + size--; + } + sb.append("call ").append(procedureMetaData.getProcedureName()).append( + "("); + for (int i = 0; i < size; i++) { + sb.append("?, "); + } + if (size > 0) { + sb.setLength(sb.length() - 2); + } + sb.append(")}"); + return sb.toString(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,233 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.NoUpdatePropertyTypeRuntimeException; +import org.seasar.dao.impl.AbstractSqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoDynamicCommand extends AbstractSqlCommand { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalUpdateAutoDynamicCommand.class); + + private static final Integer NO_UPDATE = new Integer(0); + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + private String[] propertyNames; + + private boolean checkSingleRowUpdate = true; + + private boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createUpdatePropertyTypes(bmd, + bean, getPropertyNames()); + if (propertyTypes.length == 0) { + if (_log.isDebugEnabled()) { + _log.debug(createNoUpdateLogMessage(bean, bmd)); + } + return NO_UPDATE; + } + InternalUpdateAutoHandler handler = createInternalUpdateAutoHandler( + bmd, propertyTypes); + handler.setSql(createUpdateSql(bmd, propertyTypes, bean)); + handler.setLoggingMessageSqlArgs(args); + int i = handler.execute(args); + + // [Comment Out]: This statement moved to the handler at + // [DBFlute-0.8.0]. + // if (isCheckSingleRowUpdate() && i < 1) { + // throw createNotSingleRowUpdatedRuntimeException(args[0], i); + // } + + return new Integer(i); + } + + protected InternalUpdateAutoHandler createInternalUpdateAutoHandler( + BeanMetaData bmd, PropertyType[] propertyTypes) { + InternalUpdateAutoHandler handler = new InternalUpdateAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + handler.setCheckSingleRowUpdate(isCheckSingleRowUpdate()); //[DBFlute-0.8 + // .0] + return handler; + } + + protected PropertyType[] createUpdatePropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || pt.getPropertyDesc().getValue(bean) != null) { + types.add(pt); + } + } + } + if (types.isEmpty()) { + throw new NoUpdatePropertyTypeRuntimeException(); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + protected String createNoUpdateLogMessage(final Object bean, + final BeanMetaData bmd) { + final StringBuffer sb = new StringBuffer(); + sb.append("skip UPDATE: table=").append(bmd.getTableName()); + final int size = bmd.getPrimaryKeySize(); + for (int i = 0; i < size; i++) { + if (i == 0) { + sb.append(", key{"); + } else { + sb.append(", "); + } + final String keyName = bmd.getPrimaryKey(i); + sb.append(keyName).append("="); + sb.append(bmd.getPropertyTypeByColumnName(keyName) + .getPropertyDesc().getValue(bean)); + if (i == size - 1) { + sb.append("}"); + } + } + final String s = new String(sb); + return s; + } + + /** + * Create update SQL. The update is by the primary keys. + * + * @param bmd The meta data of bean. (NotNull & RequiredPrimaryKeys) + * @param propertyTypes The types of property for update. (NotNull) + * @param bean A bean for update for handling version no and so on. + * (NotNull) + * @return The update SQL. (NotNull) + */ + protected String createUpdateSql(BeanMetaData bmd, + PropertyType[] propertyTypes, Object bean) { + if (bmd.getPrimaryKeySize() == 0) { + String msg = "The table '" + bmd.getTableName() + + "' does not have primary keys!"; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(bmd.getTableName()); + sb.append(" set "); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + sb.append(", "); + } + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + final Object versionNo = pt.getPropertyDesc().getValue(bean); + if (versionNo == null) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + } + sb.append(columnName).append(" = ?"); + } + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + return sb.toString(); + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } + + protected void setupVersionNoAutoIncrementOnQuery(StringBuilder sb, + String columnName) { + sb.append(columnName).append(" = ").append(columnName).append(" + 1"); + } + + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,61 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, versionNoAutoIncrementOnMemory); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + InternalUpdateBatchAutoHandler handler = newInternalBatchAutoHandler(); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + return handler; + } + + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupUpdateSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupUpdatePropertyTypes(propertyNames); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,38 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalBasicUpdateHandler; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateDynamicCommand extends + InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object args[]) { + final CommandContext ctx = apply(args); + final InternalBasicUpdateHandler updateHandler = new InternalBasicUpdateHandler( + getDataSource(), ctx.getSql(), getStatementFactory()); + Object[] bindVariables = ctx.getBindVariables(); + updateHandler.setLoggingMessageSqlArgs(bindVariables); + return new Integer(updateHandler.execute(bindVariables, ctx + .getBindVariableTypes())); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,55 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateModifiedOnlyCommand extends + InternalUpdateAutoDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateModifiedOnlyCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // No.1 Point Override + // =================== + @Override + protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, + final Object bean, final String[] propertyNames) { + final Set modifiedPropertyNames = getBeanMetaData() + .getModifiedPropertyNames(bean); + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + final PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + final String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || modifiedPropertyNames.contains(propertyName)) { + types.add(pt); + } + } + } + final PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,229 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlcommand; + +import java.lang.reflect.Method; +import java.sql.Timestamp; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + Entity entity = extractEntityWithCheck(args); + String[] argNames = new String[] { "dto", "entity" }; + Class[] argTypes = new Class[] { cb.getClass(), entity.getClass() }; + String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity); + if (twoWaySql == null) { + return 0;// No execute! + } + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + assertArgument(args); + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of first argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected Entity extractEntityWithCheck(Object[] args) { + assertArgument(args); + Object secondArg = args[1]; + if (!(secondArg instanceof Entity)) { + String msg = "The type of second argument should be " + + Entity.class + "! But:"; + msg = msg + " type=" + secondArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (Entity) secondArg; + } + + protected void assertArgument(Object[] args) { + if (args == null || args.length <= 1) { + String msg = "The arguments should have two argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + /** + * @param cb Condition-bean. (NotNull) + * @param entity Entity. (NotNull) + * @return The two-way SQL of query update. (Nullable: If the set of + * modified properties is empty, return null.) + */ + protected String buildQueryUpdateTwoWaySql(ConditionBean cb, Entity entity) { + Map columnParameterMap = new LinkedHashMap(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(entity + .getTableDbName()); + Set modifiedPropertyNames = entity.getModifiedPropertyNames(); + if (modifiedPropertyNames.isEmpty()) { + return null; + } + String currentPropertyName = null; + try { + for (String propertyName : modifiedPropertyNames) { + currentPropertyName = propertyName; + ColumnInfo columnInfo = dbmeta.findColumnInfo(propertyName); + String columnName = columnInfo.getColumnDbName(); + Method getter = columnInfo.findGetter(); + Object value = getter.invoke(entity, (Object[]) null); + if (value != null) { + columnParameterMap.put(columnName, "/*entity." + + propertyName + "*/null"); + } else { + columnParameterMap.put(columnName, "null"); + } + } + if (dbmeta.hasVersionNo()) { + ColumnInfo columnInfo = dbmeta.getVersionNoColumnInfo(); + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, columnName + " + 1"); + } + if (dbmeta.hasUpdateDate()) { + ColumnInfo columnInfo = dbmeta.getUpdateDateColumnInfo(); + Method setter = columnInfo.findSetter(); + if (Timestamp.class.isAssignableFrom(columnInfo + .getPropertyType())) { + setter.invoke(entity, new Timestamp(System + .currentTimeMillis())); + } else { + setter.invoke(entity, new Date()); + } + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, "/*entity." + + columnInfo.getPropertyName() + "*/null"); + } + } catch (Exception e) { + throwQueryUpdateFailureException(cb, entity, currentPropertyName, e); + } + return cb.getSqlClause().getClauseQueryUpdate(columnParameterMap); + } + + protected void throwQueryUpdateFailureException(ConditionBean cb, + Entity entity, String propertyName, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "queryUpdate() failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Doubtful Property Name]" + getLineSeparator() + + propertyName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + cb + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new QueryUpdateFailureException(msg, e); + } + + public static class QueryUpdateFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public QueryUpdateFailureException(String msg, Exception e) { + super(msg, e); + } + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,271 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.util.IntegerConversionUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BeanMetaData beanMetaData; + + protected Object[] bindVariables; + + protected ValueType[] bindVariableValueTypes; + + protected Timestamp timestamp; + + protected Integer versionNo; + + protected PropertyType[] propertyTypes; + + protected boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + this.propertyTypes = propertyTypes; + } + + public int execute(Object[] args) { + Connection connection = getConnection(); + try { + return execute(connection, args[0]); + } finally { + close(connection); + } + } + + public int execute(Object[] args, Class[] argTypes) { + return execute(args); + } + + protected int execute(Connection connection, Object bean) { + preUpdateBean(bean); + setupBindVariables(bean); + logSql(bindVariables, getArgTypes(bindVariables)); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, bindVariables, bindVariableValueTypes); + ret = executeUpdate(ps); + } finally { + close(ps); + } + postUpdateBean(bean, ret); + return ret; + } + + protected void bindArgs(PreparedStatement ps, Object[] args, + ValueType[] valueTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = valueTypes[i]; + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected void preUpdateBean(Object bean) { + } + + protected void postUpdateBean(Object bean, int ret) { + } + + protected abstract void setupBindVariables(Object bean); + + protected void setupInsertBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + setVersionNo(new Integer(0)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupUpdateBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + continue;// because of always 'VERSION_NO = VERSION_NO + 1' + } + Object value = pt.getPropertyDesc().getValue(bean); + if (value == null) { + continue;// because of 'VERSION_NO = VERSION_NO + 1' + } + int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1; + setVersionNo(new Integer(intValue)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupDeleteBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void addAutoUpdateWhereBindVariables(List varList, + List varValueTypeList, Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + PropertyType pt = bmd.getPropertyTypeByColumnName(bmd + .getPrimaryKey(i)); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + } + + protected void updateTimestampIfNeed(Object bean) { + if (getTimestamp() != null) { + PropertyDesc pd = getBeanMetaData().getTimestampPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getTimestamp()); + } + } + + protected void updateVersionNoIfNeed(Object bean) { + if (getVersionNo() != null) { + PropertyDesc pd = getBeanMetaData().getVersionNoPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getVersionNo()); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + protected Object[] getBindVariables() { + return bindVariables; + } + + protected void setBindVariables(Object[] bindVariables) { + this.bindVariables = bindVariables; + } + + protected ValueType[] getBindVariableValueTypes() { + return bindVariableValueTypes; + } + + protected void setBindVariableValueTypes(ValueType[] bindVariableValueTypes) { + this.bindVariableValueTypes = bindVariableValueTypes; + } + + protected Timestamp getTimestamp() { + return timestamp; + } + + protected void setTimestamp(Timestamp timestamp) { + this.timestamp = timestamp; + } + + protected Integer getVersionNo() { + return versionNo; + } + + protected void setVersionNo(Integer versionNo) { + this.versionNo = versionNo; + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,137 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoHandler extends + InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalAbstractBatchAutoHandler.class); + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int[] execute(List list, Class[] argTypes) { + return execute(list); + } + + public int[] execute(List list) { + if (list == null) { + throw new IllegalArgumentException("list"); + } + if (list.isEmpty()) { + if (_log.isDebugEnabled()) { + _log.debug("Skip executeBatch() bacause of the empty list."); + } + return new int[0]; + } + final Connection connection = getConnection(); + try { + final PreparedStatement ps = prepareStatement(connection); + try { + for (Iterator iter = list.iterator(); iter.hasNext();) { + final Object bean = (Object) iter.next(); + prepareBatchElement(ps, bean); + } + return executeBatch(ps, list); + } finally { + close(ps); + } + } finally { + close(connection); + } + // Reflection to bean is unsupported at batch update. + // postBatchUpdateBean(...); + } + + public int execute(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + int[] ret = execute(list); + int updatedRow = 0; + for (int i = 0; i < ret.length; i++) { + if (ret[i] > 0) { + updatedRow += ret[i]; + } + } + return updatedRow; + } + + public int[] executeBatch(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + return execute(list); + } + + protected void prepareBatchElement(PreparedStatement ps, Object bean) { + setupBindVariables(bean); + logSql(getBindVariables(), getArgTypes(getBindVariables())); + bindArgs(ps, getBindVariables(), getBindVariableValueTypes()); + addBatch(ps); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected int[] executeBatch(PreparedStatement ps, List list) { + try { + return ps.executeBatch(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return null; // Unreachable! + } + } + + protected void addBatch(PreparedStatement ps) { + try { + ps.addBatch(); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,623 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.CallbackContext; +import jp.sf.pal.notepad.db.allcommon.DBFluteConfig; +import jp.sf.pal.notepad.db.allcommon.InternalMapContext; +import jp.sf.pal.notepad.db.allcommon.QLog; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException; +import jp.sf.pal.notepad.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.notepad.db.allcommon.jdbc.SqlLogHandler; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.exception.SQLRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private String sql; + + private StatementFactory statementFactory; + + private Object[] loggingMessageSqlArgs; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicHandler(DataSource ds, StatementFactory statementFactory) { + setDataSource(ds); + setStatementFactory(statementFactory); + } + + public InternalBasicHandler(DataSource ds, String sql, + StatementFactory statementFactory) { + setDataSource(ds); + setSql(sql); + setStatementFactory(statementFactory); + } + + //========================================================================== + // ========= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- + protected void bindArgs(PreparedStatement ps, Object[] args, + Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = getValueType(argTypes[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected Class[] getArgTypes(Object[] args) { + if (args == null) { + return null; + } + Class[] argTypes = new Class[args.length]; + for (int i = 0; i < args.length; ++i) { + Object arg = args[i]; + if (arg != null) { + argTypes[i] = arg.getClass(); + } + } + return argTypes; + } + + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } + } + + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); + } + + protected void log(String msg) { + QLog.log(msg); + } + + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; + } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); + } + + protected boolean isContainsLineSeparatorInSql() { + return sql != null ? sql.contains(getLineSeparator()) : false; + } + + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + protected void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + String completeSql = buildLoggingMessageSql(); + new SQLExceptionHandler().handleSQLException(e, statement, + uniqueConstraintValid, completeSql); + } + + protected String buildLoggingMessageSql() { + String completeSql = null; + if (sql != null && loggingMessageSqlArgs != null) { + try { + completeSql = getCompleteSql(loggingMessageSqlArgs); + } catch (RuntimeException ignored) { + } + } + return completeSql; + } + + public static class SQLExceptionHandler { + + public void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + handleSQLException(e, statement, uniqueConstraintValid, null); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid, String completeSql) { + if (isSqlExceptionOldStyleHandling()) { + throw new SQLRuntimeException(e); + } + if (uniqueConstraintValid && isUniqueConstraintException(e)) { + throwEntityAlreadyExistsException(e, statement, completeSql); + } + throwSQLFailureException(e, statement, completeSql); + } + + protected boolean isUniqueConstraintException(SQLException e) { + DBFluteConfig.UniqueConstraintDeterminator determinator = getUniqueConstraintDeterminator(); + if (determinator != null) { + return determinator.isUniqueConstraintException(e); + } + return ConditionBeanContext.isUniqueConstraintException( + extractSQLState(e), e.getErrorCode()); + } + + protected DBFluteConfig.UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return DBFluteConfig.getInstance() + .getUniqueConstraintDeterminator(); + } + + protected boolean isSqlExceptionOldStyleHandling() { + return DBFluteConfig.getInstance().isSqlExceptionOldStyleHandling(); + } + + protected void throwEntityAlreadyExistsException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity already exists on the database!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the primary key whether it already exists on the database." + + getLineSeparator(); + msg = msg + "And confirm the unique constraint for other columns." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new EntityAlreadyExistsException(msg, e); + } + + protected void throwSQLFailureException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The SQL failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the SQLException message." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new SQLFailureException(msg, e); + } + + protected String extractSQLState(SQLException e) { + String sqlState = e.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next + SQLException nextEx = e.getNextException(); + if (nextEx == null) { + return null; + } + sqlState = nextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx == null) { + return null; + } + sqlState = nextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next Next + SQLException nextNextNextEx = nextNextEx.getNextException(); + if (nextNextNextEx == null) { + return null; + } + sqlState = nextNextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // It doesn't use recursive call by design because JDBC is + // unpredictable fellow. + return null; + } + + protected String extractBehaviorInvokeName() { + final Object behaviorInvokeName = InternalMapContext + .getObject("df:BehaviorInvokeName"); + if (behaviorInvokeName == null) { + return null; + } + final Object clientInvokeName = InternalMapContext + .getObject("df:ClientInvokeName"); + final Object byPassInvokeName = InternalMapContext + .getObject("df:ByPassInvokeName"); + final StringBuilder sb = new StringBuilder(); + boolean existsPath = false; + if (clientInvokeName != null) { + existsPath = true; + sb.append(clientInvokeName); + } + if (byPassInvokeName != null) { + existsPath = true; + sb.append(byPassInvokeName); + } + sb.append(behaviorInvokeName); + if (existsPath) { + sb.append("..."); + } + return sb.toString(); + } + + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected ConditionBean getConditionBean() { + return ConditionBeanContext.getConditionBeanOnThread(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected OutsideSqlContext getOutsideSqlContext() { + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected PreparedStatement prepareStatement(Connection conn) { + if (sql == null) { + throw new IllegalStateException("The sql should not be null!"); + } + return statementFactory.createPreparedStatement(conn, sql); + } + + protected int executeUpdate(PreparedStatement ps) { + try { + return ps.executeUpdate(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return 0;// Unreachable! + } + } + + protected void setFetchSize(Statement statement, int fetchSize) { + if (statement == null) { + return; + } + try { + statement.setFetchSize(fetchSize); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void setMaxRows(Statement statement, int maxRows) { + if (statement == null) { + return; + } + try { + statement.setMaxRows(maxRows); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(Statement statement) { + if (statement == null) { + return; + } + try { + statement.close(); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(ResultSet resultSet) { + if (resultSet == null) { + return; + } + try { + resultSet.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) { + this.loggingMessageSqlArgs = loggingMessageSqlArgs; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,146 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.notepad.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.notepad.db.allcommon.s2dao.FetchNarrowingResultSetWrapper; + +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicSelectHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicSelectHandler(DataSource dataSource, String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + super(dataSource, statementFactory); + setSql(sql); + setResultSetHandler(resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public Object execute(Object[] args, Class[] argTypes) { + Connection conn = getConnection(); + try { + return execute(conn, args, argTypes); + } finally { + close(conn); + } + } + + @SuppressWarnings("unchecked") + public Object execute(Connection conn, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = null; + try { + ps = prepareStatement(conn); + bindArgs(ps, args, argTypes); + return execute(ps); + } catch (SQLException e) { + handleSQLException(e, ps); + return null; // Unreachable! + } finally { + close(ps); + } + } + + protected Object execute(PreparedStatement ps) throws SQLException { + if (resultSetHandler == null) { + throw new IllegalStateException( + "The resultSetHandler should not be null!"); + } + ResultSet resultSet = null; + try { + resultSet = createResultSet(ps); + return resultSetHandler.handle(resultSet); + } finally { + close(resultSet); + } + } + + protected ResultSet createResultSet(PreparedStatement ps) + throws SQLException { + final ResultSet resultSet = ps.executeQuery(); + if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + return resultSet; + } + final FetchNarrowingBean cb = FetchNarrowingBeanContext + .getFetchNarrowingBeanOnThread(); + if (!isUseFetchNarrowingResultSetWrapper(cb)) { + return resultSet; + } + final FetchNarrowingResultSetWrapper wrapper; + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + outsideSqlContext.isOffsetByCursorForcedly(), + outsideSqlContext.isLimitByCursorForcedly()); + } else { + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + false); + } + return wrapper; + } + + protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { + if (cb.getSafetyMaxResultSize() > 0) { + return true; + } + if (!cb.isFetchNarrowingEffective()) { + return false; // It is not necessary to control. + } + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + return true; + } + } + if (cb.isFetchNarrowingSkipStartIndexEffective() + || cb.isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ResultSetHandler getResultSetHandler() { + return resultSetHandler; + } + + public void setResultSetHandler(ResultSetHandler resultSetHandler) { + this.resultSetHandler = resultSetHandler; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,53 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicUpdateHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicUpdateHandler(DataSource dataSource, String sql, + StatementFactory statementFactory) { + super(dataSource, sql, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public int execute(Object[] args, Class[] argTypes) { + Connection connection = getConnection(); + try { + return execute(connection, args, argTypes); + } finally { + close(connection); + } + } + + @SuppressWarnings("unchecked") + public int execute(Connection connection, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = prepareStatement(connection); + try { + bindArgs(ps, args, argTypes); + return executeUpdate(ps); + } finally { + close(ps); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,60 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CommandContext commandContext; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextHandler(DataSource dataSource, + StatementFactory statementFactory, CommandContext commandContext) { + super(dataSource, statementFactory); + this.commandContext = commandContext; + setSql(commandContext.getSql()); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + final Connection connection = getConnection(); + try { + return execute(connection, commandContext); + } finally { + close(connection); + } + } + + protected int execute(Connection connection, CommandContext context) { + logSql(context.getBindVariables(), getArgTypes(context + .getBindVariables())); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, context.getBindVariables(), context + .getBindVariableTypes()); + ret = executeUpdate(ps); + } finally { + close(ps); + } + return ret; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,33 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,34 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,58 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void preUpdateBean(Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (!generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,34 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,262 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.various.InternalProcedureParameterType; + +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.impl.PropertyTypeImpl; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.util.CaseInsensitiveMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureHandler extends InternalBasicSelectHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureHandler(final DataSource dataSource, + final String sql, final ResultSetHandler resultSetHandler, + final StatementFactory statementFactory, + final InternalProcedureMetaData procedureMetaData) { + super(dataSource, sql, resultSetHandler, statementFactory); + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + @SuppressWarnings("unchecked") + public Object execute(final Connection connection, final Object[] args, + final Class[] argTypes) { + final Object dto = getArgumentDto(args); + logSql(args, argTypes); + CallableStatement cs = null; + try { + cs = prepareCallableStatement(connection); + bindArgs(cs, dto); + Object returnValue = null; + if (cs.execute()) { + final ResultSet resultSet = cs.getResultSet(); + if (resultSet != null) { + final ResultSetHandler handler = createReturnResultSetHandler(resultSet); + try { + returnValue = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + } + return handleOutParameters(cs, dto, returnValue); + } catch (SQLException e) { + handleSQLException(e, cs); + return null;// Unreachable! + } finally { + close(cs); + } + } + + protected ResultSetHandler createReturnResultSetHandler(ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + @Override + protected String getCompleteSql(final Object[] args) {// for Procedure Call + String sql = getSql(); + Object dto = getArgumentDto(args); + if (args == null || dto == null) { + return sql; + } + StringBuilder sb = new StringBuilder(100); + int pos = 0; + int pos2 = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + if ((pos2 = sql.indexOf('?', pos)) < 0) { + break; + } + sb.append(sql.substring(pos, pos2)); + pos = pos2 + 1; + if (ppt.isInType()) { + sb.append(getBindVariableText(ppt.getValue(dto))); + } else { + sb.append(sql.substring(pos2, pos)); + } + } + sb.append(sql.substring(pos)); + return sb.toString(); + } + + protected CallableStatement prepareCallableStatement( + final Connection connection) { + if (getSql() == null) { + throw new IllegalStateException("The SQL should not be null!"); + } + return getStatementFactory().createCallableStatement(connection, + getSql()); + } + + protected void bindArgs(final CallableStatement cs, final Object dto) + throws SQLException { + if (dto == null) { + return; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + valueType.registerOutParameter(cs, i + 1); + } + if (ppt.isInType()) { + final Object value = ppt.getValue(dto); + valueType.bindValue(cs, i + 1, value); + } + ++i; + } + } + + protected Object handleResultSet(final CallableStatement cs) + throws SQLException { + ResultSet rs = null; + try { + rs = getResultSet(cs); + return getResultSetHandler().handle(rs); + } finally { + close(rs); + } + } + + protected ResultSet getResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected Object handleOutParameters(final CallableStatement cs, + final Object dto, Object returnValue) throws SQLException { + if (dto == null) { + return null; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + Object value = valueType.getValue(cs, i + 1); + if (value instanceof ResultSet) { + final ResultSet resultSet = (ResultSet) value; + final ResultSetHandler handler = createOutParameterResultSetHandler( + ppt, resultSet); + try { + value = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + ppt.setValue(dto, value); + } else if (ppt.isReturnType()) { + ppt.setValue(dto, returnValue); + } + ++i; + } + return dto; + } + + protected Object getArgumentDto(Object[] args) { + if (args.length == 0) { + return null; + } + if (args.length == 1) { + if (args[0] == null) { + throw new IllegalArgumentException( + "args[0] should not be null!"); + } + return args[0]; + } + throw new IllegalArgumentException("args"); + } + + protected ResultSetHandler createOutParameterResultSetHandler( + InternalProcedureParameterType ppt, ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + //========================================================================== + // ========= + // Map Result Set Handler + // ====================== + protected static abstract class InternalAbstractMapResultSetHandler + implements ResultSetHandler { + + @SuppressWarnings("unchecked") + protected Map createRow(ResultSet rs, + PropertyType[] propertyTypes) throws SQLException { + Map row = new CaseInsensitiveMap(); + for (int i = 0; i < propertyTypes.length; ++i) { + Object value = propertyTypes[i].getValueType().getValue(rs, + i + 1); + row.put(propertyTypes[i].getPropertyName(), value); + } + return row; + } + + protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) + throws SQLException { + int count = rsmd.getColumnCount(); + PropertyType[] propertyTypes = new PropertyType[count]; + for (int i = 0; i < count; ++i) { + String propertyName = rsmd.getColumnLabel(i + 1); + ValueType valueType = ValueTypes.getValueType(rsmd + .getColumnType(i + 1)); + propertyTypes[i] = new PropertyTypeImpl(propertyName, valueType); + } + return propertyTypes; + } + } + + protected static class InternalMapListResultSetHandler extends + InternalAbstractMapResultSetHandler { + + public Object handle(ResultSet resultSet) throws SQLException { + PropertyType[] propertyTypes = createPropertyTypes(resultSet + .getMetaData()); + List> list = new ArrayList>(); + while (resultSet.next()) { + list.add(createRow(resultSet, propertyTypes)); + } + return list; + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,67 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + private boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + if (isCheckSingleRowUpdate() && ret < 1) { + throw createEntityAlreadyUpdatedException(bean, ret); + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } + + protected EntityAlreadyUpdatedException createEntityAlreadyUpdatedException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,34 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,55 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqllog; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLog { + + //========================================================================== + // ========= + // Attribute + // ========= + private String rawSql; + + private String completeSql; + + private Object[] bindArgs; + + private Class[] bindArgTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlLog(String rawSql, String completeSql, Object[] bindArgs, + Class[] bindArgTypes) { + this.rawSql = rawSql; + this.completeSql = completeSql; + this.bindArgs = bindArgs; + this.bindArgTypes = bindArgTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Object[] getBindArgs() { + return bindArgs; + } + + public Class[] getBindArgTypes() { + return bindArgTypes; + } + + public String getCompleteSql() { + return completeSql; + } + + public String getRawSql() { + return rawSql; + } + + public String toString() { + return rawSql; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,277 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqllog; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLogRegistry { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalSqlLogRegistry.class); + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String NAME_SqlLogRegistryLocator = "org.seasar.extension.jdbc.SqlLogRegistryLocator"; + + protected static final String NAME_getInstance = "getInstance"; + + protected static final String NAME_setInstance = "setInstance"; + + protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; + + protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; + static { + forNameContainerSqlLogRegistryLocator(); + } + + //========================================================================== + // ========= + // Public Entry + // ============ + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + + public static Object findContainerSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return null; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_getInstance, (Class[]) null); + return method.invoke(null, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_getInstance=" + NAME_getInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void closeRegistration() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Closing the registry of sqlLog."); + method.invoke(null, new Object[] { null }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void push(String rawSql, String completeSql, + Object[] bindArgs, Class[] bindArgTypes, Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + throw new IllegalArgumentException( + "sqlLogRegistry should not be null!"); + } + final Object sqlLogImpl = createContainerSqlLogImpl(rawSql, + completeSql, bindArgs, bindArgTypes); + reflectSqlLogToContainerSqlLogRegistry(sqlLogImpl, sqlLogRegistry); + } + + public static String peekCompleteSql() { + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return null; + } + final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry); + if (sqlLog == null) { + return null; + } + return extractCompleteSqlFromContainerSqlLog(sqlLog); + } + + //========================================================================== + // ========= + // Container Reflection + // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static Object createContainerSqlLogImpl(String rawSql, + String completeSql, Object[] bindArgs, Class[] bindArgTypes) { + try { + final Class sqlLogImplType = Class.forName(NAME_SqlLogImpl); + final Class[] argTypes = new Class[] { String.class, + String.class, Object[].class, Class[].class }; + final Constructor constructor = sqlLogImplType + .getConstructor(argTypes); + return constructor.newInstance(new Object[] { rawSql, completeSql, + bindArgs, bindArgTypes }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.createContainerSqlLogImpl() threw the exception:"; + msg = msg + " completeSql=" + completeSql; + msg = msg + " NAME_SqlLogImpl=" + NAME_SqlLogImpl; + throw new IllegalStateException(msg, e); + } + } + + protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLog, + Object sqlLogRegistry) { + if (sqlLog == null || sqlLogRegistry == null) { + return; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Class sqlLogType = Class.forName(NAME_SqlLog); + final Method method = sqlLogRegistryType.getMethod("add", + new Class[] { sqlLogType }); + method.invoke(sqlLogRegistry, new Object[] { sqlLog }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.reflectToContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + + sqlLogRegistry; + msg = msg + " NAME_SqlLog=" + NAME_SqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Object findLastContainerSqlLog(Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + return null; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Method method = sqlLogRegistryType.getMethod("getLast", + (Class[]) null); + return method.invoke(sqlLogRegistry, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findLastContainerSqlLog() threw the exception:"; + msg = msg + " sqlLogRegistry=" + sqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) { + if (sqlLog == null) { + return null; + } + try { + final Class sqlLogType = sqlLog.getClass(); + final Method method = sqlLogType.getMethod("getCompleteSql", + (Class[]) null); + return (String) method.invoke(sqlLog, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.extractCompleteSqlFromContainerSqlLog() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Class forNameContainerSqlLogRegistryLocator() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryLocator); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistry() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistry); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,53 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.context.CommandContextImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextCreator { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String[] argNames; + + protected Class[] argTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextCreator(String[] argNames, Class[] argTypes) { + this.argNames = (argNames != null ? argNames : new String[0]); + this.argTypes = (argTypes != null ? argTypes : new Class[0]); + } + + //========================================================================== + // ========= + // Create + // ====== + public CommandContext createCommandContext(Object[] args) { + final CommandContext ctx = new CommandContextImpl(); + if (args != null) { + for (int i = 0; i < args.length; ++i) { + Class argType = null; + if (args[i] != null) { + if (i < argTypes.length) { + argType = argTypes[i]; + } else if (args[i] != null) { + argType = args[i].getClass(); + } + } + if (i < argNames.length) { + ctx.addArg(argNames[i], args[i], argType); + } else { + ctx.addArg("$" + (i + 1), args[i], argType); + } + } + } + return ctx; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1290 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser; + +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Stack; +import java.util.StringTokenizer; + +import jp.sf.pal.notepad.db.allcommon.cbean.MapParameterBean; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.notepad.db.allcommon.exception.BindVariableCommentNotFoundPropertyException; +import jp.sf.pal.notepad.db.allcommon.exception.BindVariableParameterNullValueException; +import jp.sf.pal.notepad.db.allcommon.exception.EmbeddedValueCommentNotFoundPropertyException; +import jp.sf.pal.notepad.db.allcommon.exception.EmbeddedValueParameterNullValueException; +import jp.sf.pal.notepad.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.notepad.db.allcommon.exception.IfCommentConditionNotFoundException; +import jp.sf.pal.notepad.db.allcommon.exception.IfCommentNotBooleanResultException; +import jp.sf.pal.notepad.db.allcommon.exception.IfCommentWrongExpressionException; +import jp.sf.pal.notepad.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.notepad.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.node.AbstractNode; +import org.seasar.dao.node.BeginNode; +import org.seasar.dao.node.ContainerNode; +import org.seasar.dao.node.ElseNode; +import org.seasar.dao.node.PrefixSqlNode; +import org.seasar.dao.node.SqlNode; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.OgnlUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlParser { + + //========================================================================== + // ========= + // Attribute + // ========= + protected InternalSqlTokenizer tokenizer; + + protected Stack nodeStack = new Stack(); + + protected String specifiedSql;// Extension! + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlParser(String sql) { + sql = sql.trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); + } + specifiedSql = sql;// Extension! + tokenizer = new InternalSqlTokenizer(sql); + } + + //========================================================================== + // ========= + // Parse + // ===== + public Node parse() { + push(new ContainerNode()); + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + parseToken(); + } + return pop(); + } + + protected void parseToken() { + switch (tokenizer.getTokenType()) { + case InternalSqlTokenizer.SQL: + parseSql(); + break; + case InternalSqlTokenizer.COMMENT: + parseComment(); + break; + case InternalSqlTokenizer.ELSE: + parseElse(); + break; + case InternalSqlTokenizer.BIND_VARIABLE: + parseBindVariable(); + break; + } + } + + protected void parseSql() { + String sql = tokenizer.getToken(); + if (isElseMode()) { + sql = InternalStringUtil.replace(sql, "--", ""); + } + Node node = peek(); + if ((node instanceof InternalIfNode || node instanceof ElseNode) + && node.getChildSize() == 0) { + + InternalSqlTokenizer st = new InternalSqlTokenizer(sql); + st.skipWhitespace(); + String token = st.skipToken(); + st.skipWhitespace(); + if (sql.startsWith(",")) { + if (sql.startsWith(", ")) { + node.addChild(new PrefixSqlNode(", ", sql.substring(2))); + } else { + node.addChild(new PrefixSqlNode(",", sql.substring(1))); + } + } else if ("AND".equalsIgnoreCase(token) + || "OR".equalsIgnoreCase(token)) { + node.addChild(new PrefixSqlNode(st.getBefore(), st.getAfter())); + } else { + node.addChild(new SqlNode(sql)); + } + } else { + node.addChild(new SqlNode(sql)); + } + } + + protected void parseComment() { + final String comment = tokenizer.getToken(); + if (isTargetComment(comment)) { + if (isIfComment(comment)) { + parseIf(); + } else if (isBeginComment(comment)) { + parseBegin(); + } else if (isEndComment(comment)) { + return; + } else { + parseCommentBindVariable(); + } + } else if (comment != null && 0 < comment.length()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + // [UnderReview]: Should I resolve bind character on scope + // comment(normal comment)? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + String before = tokenizer.getBefore(); + peek().addChild( + new SqlNode(before.substring(before.lastIndexOf("/*")))); + } + } + + protected void parseIf() { + final String condition = tokenizer.getToken().substring(2).trim(); + if (InternalStringUtil.isEmpty(condition)) { + throwIfCommentConditionNotFoundException(); + } + final ContainerNode ifNode = createIfNode(condition); + peek().addChild(ifNode); + push(ifNode); + parseEnd(); + } + + protected void throwIfCommentConditionNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The condition of IF comment was Not Found!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the IF comment expression." + + getLineSeparator(); + msg = msg + + "It may exist the IF comment that DOESN'T have a condition." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + tokenizer.getToken() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentConditionNotFoundException(msg); + } + + protected void parseBegin() { + BeginNode beginNode = new BeginNode(); + peek().addChild(beginNode); + push(beginNode); + parseEnd(); + } + + protected void parseEnd() { + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + if (tokenizer.getTokenType() == InternalSqlTokenizer.COMMENT + && isEndComment(tokenizer.getToken())) { + pop(); + return; + } + parseToken(); + } + throwEndCommentNotFoundException(); + } + + protected void throwEndCommentNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new EndCommentNotFoundException(msg); + } + + protected void parseElse() { + final Node parent = peek(); + if (!(parent instanceof InternalIfNode)) { + return; + } + final InternalIfNode ifNode = (InternalIfNode) pop(); + final InternalElseNode elseNode = new InternalElseNode(); + ifNode.setElseNode(elseNode); + push(elseNode); + tokenizer.skipWhitespace(); + } + + protected void parseCommentBindVariable() { + final String expr = tokenizer.getToken(); + final String s = tokenizer.skipToken(); + if (expr.startsWith("$")) { + peek().addChild(createEmbeddedValueNode(expr.substring(1), s));// Extension + // ! + } else { + peek().addChild(createBindVariableNode(expr, s));// Extension! + } + } + + protected void parseBindVariable() { + final String expr = tokenizer.getToken(); + peek().addChild(createBindVariableNode(expr, null));// Extension! + } + + protected Node pop() { + return (Node) nodeStack.pop(); + } + + protected Node peek() { + return (Node) nodeStack.peek(); + } + + protected void push(Node node) { + nodeStack.push(node); + } + + protected boolean isElseMode() { + for (int i = 0; i < nodeStack.size(); ++i) { + if (nodeStack.get(i) instanceof InternalElseNode) { + return true; + } + } + return false; + } + + private static boolean isTargetComment(String comment) { + return comment != null && comment.length() > 0 + && Character.isJavaIdentifierStart(comment.charAt(0)); + } + + private static boolean isIfComment(String comment) { + return comment.startsWith("IF"); + } + + private static boolean isBeginComment(String content) { + return content != null && "BEGIN".equals(content); + } + + private static boolean isEndComment(String content) { + return content != null && "END".equals(content); + } + + protected AbstractNode createBindVariableNode(String expr, String testValue) {// Extension + // ! + return new InternalBindVariableNode(expr, testValue, specifiedSql); + } + + protected AbstractNode createEmbeddedValueNode(String expr, String testValue) {// Extension + // ! + return new InternalEmbeddedValueNode(expr, testValue, specifiedSql); + } + + protected ContainerNode createIfNode(String expr) {// Extension! + return new InternalIfNode(expr, specifiedSql); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // ========= + // Extension + // ========= + // ----------------------------------------------------- + // BindVariableNode + // ---------------- + protected static class InternalBindVariableNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalBindVariableNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + bindArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + bindArray(ctx, valueAndType.getTargetValue()); + } else { + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, true); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, true); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void bindArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + Class clazz = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + clazz = currentElement.getClass(); + break; + } + } + if (clazz == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql("?", currentElement, clazz); + existsValidElements = true; + } else { + ctx.addSql(", ?", currentElement, clazz); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, true); + } + } + + // ----------------------------------------------------- + // EmbeddedValueNode + // ----------------- + protected static class InternalEmbeddedValueNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalEmbeddedValueNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + // [UnderReview]: Should I make an original exception instead of + // this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + embedArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + embedArray(ctx, valueAndType.getTargetValue()); + } else { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + // [UnderReview]: Should I make an original exception + // instead of this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, false); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, false); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void embedArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + String quote = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + quote = !(currentElement instanceof Number) ? "'" : ""; + break; + } + } + if (quote == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql(quote + currentElement + quote); + existsValidElements = true; + } else { + ctx.addSql(", " + quote + currentElement + quote); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, false); + } + } + + // ----------------------------------------------------- + // Value and Type + // -------------- + protected static class InternalValueAndType { + public Object _targetValue; + + public Class _targetType; + + protected String _rearOption; + + public boolean isValidRearOption() { + return _targetValue != null && _rearOption != null + && _rearOption.trim().length() > 0; + } + + public String buildRearOptionOnSql() { + return " " + _rearOption.trim() + " "; + } + + public Object getTargetValue() { + return _targetValue; + } + + public void setTargetValue(Object targetValue) { + this._targetValue = targetValue; + } + + public Class getTargetType() { + return _targetType; + } + + public void setTargetType(Class targetType) { + this._targetType = targetType; + } + + public String getRearOption() { + return _rearOption; + } + + public void setRearOption(String rearOption) { + this._rearOption = rearOption; + } + } + + protected static class InternalValueAndTypeSetuper { + protected String _expression; + + protected String[] _names; + + protected String _specifiedSql; + + protected boolean _bind; + + public InternalValueAndTypeSetuper(String expression, String[] names, + String specifiedSql, boolean bind) { + this._expression = expression; + this._names = names; + this._specifiedSql = specifiedSql; + this._bind = bind; + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + Object value = valueAndType.getTargetValue(); + Class clazz = valueAndType.getTargetType(); + + // LikeSearchOption handling here is for OutsideSql. + LikeSearchOption likeSearchOption = null; + String rearOption = null; + + for (int pos = 1; pos < _names.length; ++pos) { + if (value == null) { + break; + } + final String currentName = _names[pos]; + if (pos == 1) {// at the First Loop + final BeanDesc beanDesc = BeanDescFactory + .getBeanDesc(clazz); + if (hasLikeSearchOption(beanDesc, currentName)) { + likeSearchOption = getLikeSearchOption(beanDesc, + currentName, value); + } + } + if (Map.class.isInstance(value)) { + final Map map = (Map) value; + value = map.get(_names[pos]); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : clazz); + continue; + } + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz); + if (beanDesc.hasPropertyDesc(currentName)) { + final PropertyDesc pd = beanDesc + .getPropertyDesc(currentName); + value = getPropertyValue(clazz, value, currentName, pd); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : pd + .getPropertyType()); + continue; + } + final String methodName = "get" + initCap(currentName); + if (beanDesc.hasMethod(methodName)) {// Is this unused??? + final Method method = beanDesc.getMethod(methodName); + value = invokeGetter(method, value); + clazz = method.getReturnType(); + continue; + } + if (pos == 1 && MapParameterBean.class.isAssignableFrom(clazz)) { + final MapParameterBean pmb = (MapParameterBean) value; + final Map map = pmb.getParameterMap(); + final Object elementValue = (map != null ? map + .get(_names[pos]) : null); + if (elementValue != null) { + value = elementValue; + clazz = value.getClass(); + continue; + } + } + throwBindOrEmbeddedCommentNotFoundPropertyException( + _expression, clazz, currentName, _specifiedSql, _bind); + } + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + valueAndType.setRearOption(rearOption); + } + + // for OutsideSql + protected boolean isLastLoop4LikeSearch(int pos, + LikeSearchOption likeSearchOption) { + return _names.length == (pos + 1) && likeSearchOption != null; + } + + protected boolean isValidStringValue(Object value) { + return value != null && value instanceof String + && ((String) value).length() > 0; + } + + // for OutsideSql + protected boolean hasLikeSearchOption(BeanDesc beanDesc, + String currentName) { + return beanDesc.hasPropertyDesc(currentName + + "InternalLikeSearchOption"); + } + + // for OutsideSql + protected LikeSearchOption getLikeSearchOption(BeanDesc beanDesc, + String currentName, Object resourceBean) { + final PropertyDesc pb = beanDesc.getPropertyDesc(currentName + + "InternalLikeSearchOption"); + final LikeSearchOption option = (LikeSearchOption) pb + .getValue(resourceBean); + if (option == null) { + throwLikeSearchOptionNotFoundException(resourceBean, + currentName); + } + if (option.isSplit()) { + throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + option, resourceBean, currentName); + } + return option; + } + + // for OutsideSql + protected void throwLikeSearchOptionNotFoundException( + Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new RequiredOptionNotFoundException(msg); + } + + // for OutsideSql + protected void throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + LikeSearchOption option, Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + + " likeSearchOption.splitBySpace(); // *No! Don't invoke this!" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target LikeSearchOption]" + getLineSeparator() + + option + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + protected Object getPropertyValue(Class beanType, Object beanValue, + String currentName, PropertyDesc pd) { + try { + return pd.getValue(beanValue); + } catch (RuntimeException e) { + throwPropertyHandlingFailureException(beanType, beanValue, + currentName, _expression, _specifiedSql, _bind, e); + return null;// Unreachable! + } + } + + protected void throwPropertyHandlingFailureException(Class beanType, + Object beanValue, String currentName, String expression, + String specifiedSql, boolean bind, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The handlig of the property was failed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "This is the Framework Exception!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Type]" + getLineSeparator() + beanType + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Value]" + getLineSeparator() + beanValue + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Property Name]" + getLineSeparator() + currentName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalStateException(msg, e); + } + + protected String initCap(String name) { + return SimpleStringUtil.initCap(name); + } + + protected Object invokeGetter(Method method, Object target) { + try { + return method.invoke(target, (Object[]) null); + } catch (IllegalArgumentException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + protected void throwBindOrEmbeddedCommentNotFoundPropertyException( + String expression, Class targetType, + String notFoundProperty, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The property on the " + + (bind ? "bind variable" : "embedded value") + + " comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "Abd has the property had misspelling?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[NotFound Property]" + getLineSeparator() + + (targetType != null ? targetType.getName() + "#" : "") + + notFoundProperty + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableCommentNotFoundPropertyException(msg); + } else { + throw new EmbeddedValueCommentNotFoundPropertyException(msg); + } + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // Exception Provider + // ------------------ + protected static class ParameterCommentExceptionProvider { + public static void throwBindOrEmbeddedParameterNullValueException( + String expression, Class targetType, String specifiedSql, + boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of " + + (bind ? "bind variable" : "embedded value") + + " was Null!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Is it within the scope of your assumption?" + + getLineSeparator(); + msg = msg + + "If the answer is YES, please confirm your application logic about the parameter." + + getLineSeparator(); + msg = msg + + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + + getLineSeparator(); + msg = msg + " --> For example:" + getLineSeparator(); + msg = msg + " before (x) -- XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Parameter Property Type]" + getLineSeparator() + + targetType + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableParameterNullValueException(msg); + } else { + throw new EmbeddedValueParameterNullValueException(msg); + } + } + + public static void throwBindOrEmbeddedParameterEmptyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was empty!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + public static void throwBindOrEmbeddedParameterNullOnlyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was 'Null Only List'!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // IfNode + // ------ + protected static class InternalIfNode extends ContainerNode { + private String _expression; + + private Object _parsedExpression; + + private InternalElseNode _elseNode; + + private String _specifiedSql; + + public InternalIfNode(String expression, String specifiedSql) { + this._expression = expression; + this._parsedExpression = OgnlUtil.parseExpression(expression); + this._specifiedSql = specifiedSql; + } + + public String getExpression() { + return _expression; + } + + public InternalElseNode getElseNode() { + return _elseNode; + } + + public void setElseNode(InternalElseNode elseNode) { + this._elseNode = elseNode; + } + + public void accept(CommandContext ctx) { + Object result = null; + try { + result = OgnlUtil.getValue(_parsedExpression, ctx); + } catch (RuntimeException e) { + if (!_expression.contains("pmb.")) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + final String replaced = InternalStringUtil.replace(_expression, + "pmb.", "pmb.parameterMap."); + final Object secondParsedExpression = OgnlUtil + .parseExpression(replaced); + try { + result = OgnlUtil.getValue(secondParsedExpression, ctx); + } catch (RuntimeException ignored) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + if (result == null) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + _parsedExpression = secondParsedExpression; + } + if (result != null && result instanceof Boolean) { + if (((Boolean) result).booleanValue()) { + super.accept(ctx); + ctx.setEnabled(true); + } else if (_elseNode != null) { + _elseNode.accept(ctx); + ctx.setEnabled(true); + } + } else { + throwIfCommentNotBooleanResultException(_expression, result, + _specifiedSql); + } + } + + protected void throwIfCommentWrongExpressionException( + String expression, RuntimeException cause, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "And confirm the IF comment of your specified SQL." + + getLineSeparator(); + msg = msg + " For example, correct IF comment is as below:" + + getLineSeparator(); + msg = msg + " /*IF pmb.xxxId != null*/XXX_ID = .../*END*/" + + getLineSeparator(); + msg = msg + " /*IF pmb.isPaging()*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null && pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null || pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Cause Message]" + getLineSeparator(); + msg = msg + cause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + cause.getMessage() + getLineSeparator(); + final Throwable nestedCause = cause.getCause(); + if (nestedCause != null) { + msg = msg + nestedCause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + nestedCause.getMessage() + + getLineSeparator(); + } + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentWrongExpressionException(msg, cause); + } + + protected void throwIfCommentNotBooleanResultException( + String expression, Object result, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The boolean expression on IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the grammar of your IF comment. Does it really express boolean?" + + getLineSeparator(); + msg = msg + + "And confirm the existence of your property on your arguments if you use parameterMap." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Result Value]" + getLineSeparator() + + result + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentNotBooleanResultException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // ElseNode + // -------- + protected static class InternalElseNode extends ContainerNode { + public void accept(CommandContext ctx) { + super.accept(ctx); + ctx.setEnabled(true); + } + } + + // ----------------------------------------------------- + // StringUtil + // ---------- + protected static class InternalStringUtil { + + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new ArrayList(); + StringTokenizer st = new StringTokenizer(str, delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } + + //========================================================================== + // ========= + // Convert + // ======= + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + Object arg) { + final String[] argNames = new String[] { "dto" }; + final Class[] argTypes = new Class[] { arg.getClass() }; + final Object[] args = new Object[] { arg }; + return convertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args); + } + + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + final CommandContext context; + { + final InternalSqlParser parser = new InternalSqlParser(twoWaySql); + final Node node = parser.parse(); + final InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + final String preparedSql = context.getSql(); + return InternalBindVariableUtil.getCompleteSql(preparedSql, context + .getBindVariables()); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,301 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.sqlparser; + +import jp.sf.pal.notepad.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlTokenizer { + + //========================================================================== + // ========= + // Definition + // ========== + public static final int SQL = 1; + + public static final int COMMENT = 2; + + public static final int ELSE = 3; + + public static final int BIND_VARIABLE = 4; + + public static final int EOF = 99; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String sql; + + protected int position = 0; + + protected String token; + + protected int tokenType = SQL; + + protected int nextTokenType = SQL; + + protected int bindVariableNum = 0; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlTokenizer(String sql) { + this.sql = sql; + } + + //========================================================================== + // ========= + // Tokenize + // ======== + public int next() { + if (position >= sql.length()) { + token = null; + tokenType = EOF; + nextTokenType = EOF; + return tokenType; + } + switch (nextTokenType) { + case SQL: + parseSql(); + break; + case COMMENT: + parseComment(); + break; + case ELSE: + parseElse(); + break; + case BIND_VARIABLE: + parseBindVariable(); + break; + default: + parseEof(); + break; + } + return tokenType; + } + + protected void parseSql() { + int commentStartPos = sql.indexOf("/*", position); + int commentStartPos2 = sql.indexOf("#*", position); + if (0 < commentStartPos2 && commentStartPos2 < commentStartPos) { + commentStartPos = commentStartPos2; + } + int lineCommentStartPos = sql.indexOf("--", position); + int bindVariableStartPos = sql.indexOf("?", position); + int elseCommentStartPos = -1; + int elseCommentLength = -1; + if (lineCommentStartPos >= 0) { + int skipPos = skipWhitespace(lineCommentStartPos + 2); + if (skipPos + 4 < sql.length() + && "ELSE".equals(sql.substring(skipPos, skipPos + 4))) { + elseCommentStartPos = lineCommentStartPos; + elseCommentLength = skipPos + 4 - lineCommentStartPos; + } + } + int nextStartPos = getNextStartPos(commentStartPos, + elseCommentStartPos, bindVariableStartPos); + if (nextStartPos < 0) { + token = sql.substring(position); + nextTokenType = EOF; + position = sql.length(); + tokenType = SQL; + } else { + token = sql.substring(position, nextStartPos); + tokenType = SQL; + boolean needNext = nextStartPos == position; + if (nextStartPos == commentStartPos) { + nextTokenType = COMMENT; + position = commentStartPos + 2; + } else if (nextStartPos == elseCommentStartPos) { + nextTokenType = ELSE; + position = elseCommentStartPos + elseCommentLength; + } else if (nextStartPos == bindVariableStartPos) { + nextTokenType = BIND_VARIABLE; + position = bindVariableStartPos; + } + if (needNext) { + next(); + } + } + } + + protected int getNextStartPos(int commentStartPos, int elseCommentStartPos, + int bindVariableStartPos) { + int nextStartPos = -1; + if (commentStartPos >= 0) { + nextStartPos = commentStartPos; + } + if (elseCommentStartPos >= 0 + && (nextStartPos < 0 || elseCommentStartPos < nextStartPos)) { + nextStartPos = elseCommentStartPos; + } + if (bindVariableStartPos >= 0 + && (nextStartPos < 0 || bindVariableStartPos < nextStartPos)) { + nextStartPos = bindVariableStartPos; + } + return nextStartPos; + } + + protected String nextBindVariableName() { + return "$" + ++bindVariableNum; + } + + protected void parseComment() { + int commentEndPos = sql.indexOf("*/", position); + int commentEndPos2 = sql.indexOf("*#", position); + if (0 < commentEndPos2 && commentEndPos2 < commentEndPos) { + commentEndPos = commentEndPos2; + } + if (commentEndPos < 0) { + throwEndCommentNotFoundException(sql.substring(position)); + } + token = sql.substring(position, commentEndPos); + nextTokenType = SQL; + position = commentEndPos + 2; + tokenType = COMMENT; + } + + protected void throwEndCommentNotFoundException(String expression) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[End Comment Expected Place]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + sql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new EndCommentNotFoundException(msg); + } + + protected void parseBindVariable() { + token = nextBindVariableName(); + nextTokenType = SQL; + position += 1; + tokenType = BIND_VARIABLE; + } + + protected void parseElse() { + token = null; + nextTokenType = SQL; + tokenType = ELSE; + } + + protected void parseEof() { + token = null; + tokenType = EOF; + nextTokenType = EOF; + } + + public String skipToken() { + int index = sql.length(); + char quote = position < sql.length() ? sql.charAt(position) : '\0'; + boolean quoting = quote == '\'' || quote == '('; + if (quote == '(') { + quote = ')'; + } + for (int i = quoting ? position + 1 : position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if ((Character.isWhitespace(c) || c == ',' || c == ')' || c == '(') + && !quoting) { + index = i; + break; + } else if (c == '/' && i + 1 < sql.length() + && sql.charAt(i + 1) == '*') { + index = i; + break; + } else if (c == '-' && i + 1 < sql.length() + && sql.charAt(i + 1) == '-') { + index = i; + break; + } else if (quoting && quote == '\'' && c == '\'' + && (i + 1 >= sql.length() || sql.charAt(i + 1) != '\'')) { + index = i + 1; + break; + } else if (quoting && c == quote) { + index = i + 1; + break; + } + } + token = sql.substring(position, index); + tokenType = SQL; + nextTokenType = SQL; + position = index; + return token; + } + + public String skipWhitespace() { + int index = skipWhitespace(position); + token = sql.substring(position, index); + position = index; + return token; + } + + protected int skipWhitespace(int position) { + int index = sql.length(); + for (int i = position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if (!Character.isWhitespace(c)) { + index = i; + break; + } + } + return index; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPosition() { + return position; + } + + public String getToken() { + return token; + } + + public String getBefore() { + return sql.substring(0, position); + } + + public String getAfter() { + return sql.substring(position); + } + + public int getTokenType() { + return tokenType; + } + + public int getNextTokenType() { + return nextTokenType; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,304 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import jp.sf.pal.notepad.db.allcommon.DBFluteConfig; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBindVariableUtil { + + //========================================================================== + // ========= + // Definition + // ========== + private static final String NULL = "null"; + + //========================================================================== + // ========= + // Constructor + // =========== + private InternalBindVariableUtil() { + } + + public static String getCompleteSql(String sql, Object[] args) { + if (args == null || args.length == 0) { + return sql; + } + return getCompleteSql(sql, args, new ValueType[args.length]); + } + + public static String getCompleteSql(String sql, Object[] args, + ValueType[] valueTypes) { + if (args == null || args.length == 0) { + return sql; + } + StringBuffer buf = new StringBuffer(sql.length() + args.length * 15); + int pos = 0; + int pos2 = 0; + int pos3 = 0; + int pos4 = 0; + int pos5 = 0; + int pos6 = 0; + int index = 0; + while (true) { + pos = sql.indexOf('?', pos2); + pos3 = sql.indexOf('\'', pos2); + pos4 = sql.indexOf('\'', pos3 + 1); + pos5 = sql.indexOf("/*", pos2); + pos6 = sql.indexOf("*/", pos5 + 1); + if (pos > 0) { + if (pos3 >= 0 && pos3 < pos && pos < pos4) { + buf.append(sql.substring(pos2, pos4 + 1)); + pos2 = pos4 + 1; + } else if (pos5 >= 0 && pos5 < pos && pos < pos6) { + buf.append(sql.substring(pos2, pos6 + 1)); + pos2 = pos6 + 1; + } else { + if (args.length <= index) { + String msg = "The size of bind arguments is illegal:"; + msg = msg + " size=" + args.length + " sql=" + sql; + throw new IllegalStateException(msg); + } + buf.append(sql.substring(pos2, pos)); + buf.append(getBindVariableText(args[index], + valueTypes[index])); + pos2 = pos + 1; + index++; + } + } else { + buf.append(sql.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String getBindVariableText(Object bindVariable) { + if (bindVariable instanceof String) { + return quote(bindVariable.toString()); + } else if (bindVariable instanceof Number) { + return bindVariable.toString(); + } else if (bindVariable instanceof Time) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Timestamp) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogTimestampFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof java.util.Date) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogDateFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Boolean) { + return bindVariable.toString(); + } else if (bindVariable == null) { + return NULL; + } else { + return quote(bindVariable.toString()); + } + } + + protected static String getLogDateFormat() { + String logDateFormat = DBFluteConfig.getInstance().getLogDateFormat(); + return logDateFormat != null ? logDateFormat : "yyyy-MM-dd"; + } + + protected static String getLogTimestampFormat() { + String logTimestampFormat = DBFluteConfig.getInstance() + .getLogTimestampFormat(); + return logTimestampFormat != null ? logTimestampFormat + : "yyyy-MM-dd HH:mm:ss"; + } + + // For various seasar's version. + protected static final Class[] TOTEXT_ARGUMENT_TYPES = new Class[] { Object.class }; + + protected static final Method TOTEXT_METHOD; + static { + Method method = null; + try { + method = ValueType.class.getMethod("toText", TOTEXT_ARGUMENT_TYPES); + } catch (SecurityException e) { + } catch (NoSuchMethodException e) { + } + TOTEXT_METHOD = method; + } + + public static String getBindVariableText(Object bindVariable, + ValueType valueType) { + if (valueType != null && TOTEXT_METHOD != null) { + try { + return (String) TOTEXT_METHOD.invoke(valueType, + new Object[] { bindVariable }); + } catch (IllegalArgumentException e) { + String msg = "ValueType.toText() threw the IllegalArgumentException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (IllegalAccessException e) { + String msg = "ValueType.toText() threw the IllegalAccessException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (InvocationTargetException e) { + if (e.getTargetException() instanceof RuntimeException) { + throw (RuntimeException) e.getTargetException(); + } else { + String msg = "ValueType.toText() threw the exception:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e.getTargetException()); + } + } + } + return getBindVariableText(bindVariable); + } + + public static String nullText() { + return NULL; + } + + public static String toText(Number value) { + if (value == null) { + return NULL; + } + return value.toString(); + } + + public static String toText(Boolean value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + public static String toText(String value) { + if (value == null) { + return NULL; + } + return quote(value); + } + + public static String toText(Date value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addDate(buf, calendar); + return quote(buf.toString()); + } + + public static String toText(Time value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addTime(buf, calendar); + addTimeDecimalPart(buf, calendar.get(Calendar.MILLISECOND)); + return quote(buf.toString()); + } + + public static String toText(Timestamp value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(30); + addDate(buf, calendar); + addTime(buf, calendar); + addTimeDecimalPart(buf, value.getNanos()); + return quote(buf.toString()); + } + + public static String toText(byte[] value) { + if (value == null) { + return NULL; + } + return quote(value.toString() + "(byteLength=" + + Integer.toString(value.length) + ")"); + } + + /** + * {@link Object}¤Îʸ»úÎóɽ¸½¤òÊÖ¤·¤Þ¤¹¡£ + * + * @param value ÃÍ + * @return ʸ»úÎóɽ¸½ + */ + public static String toText(Object value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + // yyyy-mm-dd + protected static void addDate(StringBuilder buf, Calendar calendar) { + int year = calendar.get(Calendar.YEAR); + buf.append(year); + buf.append('-'); + int month = calendar.get(Calendar.MONTH) + 1; + if (month < 10) { + buf.append('0'); + } + buf.append(month); + buf.append('-'); + int date = calendar.get(Calendar.DATE); + if (date < 10) { + buf.append('0'); + } + buf.append(date); + } + + // hh:mm:ss + protected static void addTime(StringBuilder buf, Calendar calendar) { + if (buf.length() > 0) { + buf.append(' '); + } + int hour = calendar.get(Calendar.HOUR_OF_DAY); + if (hour < 10) { + buf.append('0'); + } + buf.append(hour); + buf.append(':'); + int minute = calendar.get(Calendar.MINUTE); + if (minute < 10) { + buf.append('0'); + } + buf.append(minute); + buf.append(':'); + int second = calendar.get(Calendar.SECOND); + if (second < 10) { + buf.append('0'); + } + buf.append(second); + } + + // .000 + protected static void addTimeDecimalPart(StringBuilder buf, int decimalPart) { + if (decimalPart == 0) { + return; + } + if (buf.length() > 0) { + buf.append('.'); + } + buf.append(decimalPart); + } + + // 'text' + protected static String quote(String text) { + return "'" + text + "'"; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,137 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,101 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.various; + +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaData { + + //========================================================================== + // ========= + // Attribute + // ========= + private String procedureName; + + private Map unorderedMap = createUnorderedMap(); + + private Map parameterTypes = createParameterTypes(); + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureMetaData(final String procedureName) { + this.procedureName = procedureName; + } + + //========================================================================== + // ========= + // Factory + // ======= + protected Map createUnorderedMap() { + return new HashMap(); + } + + protected Map createParameterTypes() { + return new TreeMap( + new ParameterComparator()); + } + + protected class ParameterComparator implements Comparator { + public int compare(String o1, String o2) { + final int oneGreaterThanTwo = 1; + final int twoGreaterThanOne = -1; + final InternalProcedureParameterType parameterType1 = unorderedMap + .get(o1); + final InternalProcedureParameterType parameterType2 = unorderedMap + .get(o2); + if (parameterType1.isReturnType()) { + return twoGreaterThanOne; // Return type is prior + } + if (parameterType2.isReturnType()) { + return oneGreaterThanTwo; // Return type is prior + } + final Integer parameterIndex1 = parameterType1.getParameterIndex(); + final Integer parameterIndex2 = parameterType2.getParameterIndex(); + if (parameterIndex1 == null && parameterIndex2 == null) { + return oneGreaterThanTwo; // No changes + } + if (parameterIndex1 != null && parameterIndex2 == null) { + return twoGreaterThanOne; // Not null is prior + } + if (parameterIndex1 == null && parameterIndex2 != null) { + return oneGreaterThanTwo; // Not null is prior + } + return parameterIndex1.compareTo(parameterIndex2); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getProcedureName() { + return procedureName; + } + + public Collection parameterTypes() { + return parameterTypes.values(); + } + + public void addParameterType( + final InternalProcedureParameterType parameterType) { + final String name = parameterType.getParameterName(); + unorderedMap.put(name, parameterType); + parameterTypes.put(name, parameterType); + if (parameterType.isReturnType()) { + returnType = true; + } + } + + public boolean hasReturnParameterType() { + return returnType; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,232 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; + +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.util.TypeUtil; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaDataFactory { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); + + //========================================================================== + // ========= + // Main + // ==== + public InternalProcedureMetaData createProcedureMetaData( + final String procedureName, final Class pmbType) { + final InternalProcedureMetaData metaData = new InternalProcedureMetaData( + procedureName); + if (pmbType == null) { + return metaData; + } else { + if (!isDtoType(pmbType)) { + throw new IllegalStateException( + "The pmb type was Not DTO type: " + pmbType.getName()); + } + } + final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); + + // *Point + final Stack> stack = new Stack>(); + for (Class clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz + .getSuperclass()) { + stack.push(clazz); + } + for (; !stack.isEmpty();) { + final Class clazz = stack.pop(); + registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields()); + } + + return metaData; + } + + protected void registerParameterType(InternalProcedureMetaData metaData, + BeanDesc pmbDesc, Field[] fields) { + for (Field field : fields) { + if (!isInstanceField(field)) { + continue; + } + final InternalProcedureParameterType ppt = getProcedureParameterType( + pmbDesc, field); + if (ppt == null) { + continue; + } + metaData.addParameterType(ppt); + } + } + + protected InternalProcedureParameterType getProcedureParameterType( + final BeanDesc dtoDesc, final Field field) { + final String procedureParameter = annotationReader + .getProcedureParameter(dtoDesc, field); + if (procedureParameter == null) { + return null; + } + final String type = extractParameterType(procedureParameter); + field.setAccessible(true); + final InternalProcedureParameterType ppt = new InternalProcedureParameterType( + field); + if (type.equalsIgnoreCase("in")) { + ppt.setInType(true); + } else if (type.equalsIgnoreCase("out")) { + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("inout")) { + ppt.setInType(true); + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("return")) { + ppt.setOutType(true); + ppt.setReturnType(true); + } else { + String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterType=" + type; + throw new IllegalStateException(msg); + } + final Integer index = extractParameterIndex(procedureParameter, field); + ppt.setParameterIndex(index); + final ValueType valueType = getValueType(dtoDesc, field); + ppt.setValueType(valueType); + return ppt; + } + + protected String extractParameterType(String procedureParameter) { + if (procedureParameter.contains(",")) { + return procedureParameter.substring(0, + procedureParameter.indexOf(",")).trim(); + } + return procedureParameter.trim(); + } + + protected Integer extractParameterIndex(String procedureParameter, + Field field) { + if (procedureParameter.contains(",")) { + String tmp = procedureParameter.substring( + procedureParameter.indexOf(",") + ",".length()).trim(); + try { + return Integer.valueOf(tmp); + } catch (NumberFormatException e) { + String msg = "The parameter index should be number:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + + procedureParameter; + throw new IllegalStateException(msg, e); + } + } + return null; + } + + protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) { + final String name = annotationReader.getValueType(dtoDesc, field); + if (name != null) { + return valueTypeFactory.getValueTypeByName(name); + } + final Class type = field.getType(); + if (List.class.isAssignableFrom(type)) {// is for out parameter cursor. + if (ConditionBeanContext.isOracle()) { + return ValueTypes.ORACLE_RESULT_SET; + } else if (ConditionBeanContext.isPostgreSql()) { + return ValueTypes.POSTGRE_RESULT_SET; + } else { + return ValueTypes.SERIALIZABLE_BYTE_ARRAY; + } + } + return valueTypeFactory.getValueTypeByClass(type); + } + + protected boolean isInstanceField(final Field field) { + final int mod = field.getModifiers(); + return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); + } + + protected boolean isDtoType(final Class clazz) { + return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); + } + + protected boolean isContainerType(final Class clazz) { + if (clazz == null) { + throw new NullPointerException("clazz"); + } + return Collection.class.isAssignableFrom(clazz) + || Map.class.isAssignableFrom(clazz) || clazz.isArray(); + } + + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected static class InternalFieldProcedureAnnotationReader { + protected String PROCEDURE_PARAMETER_SUFFIX; + + protected String VALUE_TYPE_SUFFIX; + + public InternalFieldProcedureAnnotationReader() { + PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; + VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; + } + + public String getProcedureParameter(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + public String getValueType(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + VALUE_TYPE_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + protected String removeInstanceVariablePrefix(String fieldName) { + return fieldName.startsWith("_") ? fieldName + .substring("_".length()) : fieldName; + } + + protected Object getValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,112 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureParameterType { + + //========================================================================== + // ========= + // Attribute + // ========= + private String parameterName; + + private Integer parameterIndex; + + private Field field; + + private ValueType valueType; + + private boolean inType; + + private boolean outType; + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureParameterType(Field field) { + this.field = field; + this.parameterName = field.getName(); + } + + //========================================================================== + // ========= + // Field Value + // =========== + public Object getValue(Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + public void setValue(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + String msg = "The setting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getParameterName() { + return parameterName; + } + + public Integer getParameterIndex() { + return parameterIndex; + } + + public void setParameterIndex(Integer parameterIndex) { + this.parameterIndex = parameterIndex; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(final ValueType valueType) { + this.valueType = valueType; + } + + public boolean isInType() { + return inType; + } + + public void setInType(final boolean inType) { + this.inType = inType; + } + + public boolean isOutType() { + return outType; + } + + public void setOutType(final boolean outType) { + this.outType = outType; + } + + public boolean isReturnType() { + return returnType; + } + + public void setReturnType(final boolean returnType) { + this.returnType = returnType; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,327 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.impl.RelationRowCreationResource; +import org.seasar.dao.impl.RelationRowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRelationRowCreator extends RelationRowCreatorImpl { + + @Override + protected Object createRelationRow(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + if (!res.hasPropertyCacheElement()) { + return null; + } + setupRelationKeyValue(res); + setupRelationAllValue(res); + return res.getRow(); + } + + @Override + protected void setupRelationKeyValue(RelationRowCreationResource res) { + final RelationPropertyType rpt = res.getRelationPropertyType(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + final DBMeta dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName()); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); + + if (!res.containsColumnName(columnName)) { + continue; + } + if (!res.hasRowInstance()) { + final Object row; + if (dbmeta != null) { + row = dbmeta.newEntity(); + } else { + row = newRelationRow(rpt); + } + res.setRow(row); + } + if (!res.containsRelKeyValueIfExists(columnName)) { + continue; + } + final Object value = res.extractRelKeyValue(columnName); + if (value == null) { + continue; + } + + final String yourKey = rpt.getYourKey(i); + final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey); + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + continue; + } + } + + protected Object createRelationRowInstance(DBMeta dbmeta) { + if (dbmeta != null) { + return dbmeta.newEntity(); + } + return null; + } + + protected DBMeta findDBMeta(Class rowType, String tableName) { + return InternalRowCreator.findDBMeta(rowType, tableName); + } + + @SuppressWarnings("unchecked") + @Override + protected void setupRelationAllValue(RelationRowCreationResource res) + throws SQLException { + final Map propertyCacheElement = res.extractPropertyCacheElement(); + final Set columnNameCacheElementKeySet = propertyCacheElement.keySet(); + for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite + .hasNext();) { + final String columnName = (String) ite.next(); + final PropertyType pt = (PropertyType) propertyCacheElement + .get(columnName); + res.setCurrentPropertyType(pt); + if (!isValidRelationPerPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + setupRelationProperty(res); + } + if (!isValidRelationAfterPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + res.clearValidValueCount(); + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + setupNextRelationRow(res); + } + } + + @Override + protected void registerRelationValue(RelationRowCreationResource res, + String columnName) throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + Object value = null; + if (res.containsRelKeyValueIfExists(columnName)) { + value = res.extractRelKeyValue(columnName); + } else { + final ValueType valueType = pt.getValueType(); + value = valueType.getValue(res.getResultSet(), columnName); + } + + if (value != null) { + res.incrementValidValueCount(); + final DBMeta dbmeta = findDBMeta(res.getRow()); + final String propertyName = pt.getPropertyName(); + if (dbmeta != null + && dbmeta.hasEntityPropertySetupper(propertyName)) { + dbmeta.setupEntityProperty(propertyName, res.getRow(), value); + } else { + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + } + } + } + + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + protected DBMeta findDBMeta(Object row) { + return InternalRowCreator.findDBMeta(row); + } + + @Override + protected void setupPropertyCache(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + res.initializePropertyCacheElement(); + + // Do only selected foreign property for performance if condition-bean + // exists. + if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) { + return; + } + + // Set up property cache about current beanMetaData. + final BeanMetaData nextBmd = res.getRelationBeanMetaData(); + for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { + final PropertyType pt = nextBmd.getPropertyType(i); + res.setCurrentPropertyType(pt); + if (!isTargetProperty(res)) { + continue; + } + setupPropertyCacheElement(res); + } + + // Set up next relation. + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + res.backupRelationPropertyType(); + res.incrementCurrentRelationNestLevel(); + try { + setupNextPropertyCache(res, nextBmd); + } finally { + res.restoreRelationPropertyType(); + res.decrementCurrentRelationNestLevel(); + } + } + } + + @Override + protected boolean isTargetProperty(RelationRowCreationResource res) + throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + if (!pt.getPropertyDesc().hasWriteMethod()) { + return false; + } + if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() + .getPropertyType())) { + return false; + } + return true; + } + + @Override + protected boolean isCreateDeadLink() { + return false; + } + + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForRow(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues, + Map relationPropertyCache) throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setResultSet(rs); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelKeyValues(relKeyValues); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix("");// as Default + res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); + res.setLimitRelationNestLevel(getLimitRelationNestLevel()); + res.setCurrentRelationNestLevel(1);// as Default + res.setCreateDeadLink(isCreateDeadLink()); + return res; + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForPropertyCache( + RelationPropertyType rpt, Set columnNames, + Map relationPropertyCache, String baseSuffix, + String relationNoSuffix, int limitRelationNestLevel) + throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix(baseSuffix); + res.setRelationNoSuffix(relationNoSuffix); + res.setLimitRelationNestLevel(limitRelationNestLevel); + res.setCurrentRelationNestLevel(1);// as Default + return res; + } + + protected boolean isConditionBeanSelectedRelation( + RelationRowCreationResource res) { + if (hasConditionBean(res)) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo( + res.getRelationNoSuffix())) { + return true; + } + } + return false; + } + + protected boolean hasConditionBean(RelationRowCreationResource res) { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) { + return true; + } + return false; + } + + protected static class RelationRowCreationResourceExtension extends + RelationRowCreationResource { + protected Stack backupRelationPropertyType = new Stack(); + + protected Stack backupBaseSuffix = new Stack(); + + protected Stack backupRelationSuffix = new Stack(); + + @Override + public void backupRelationPropertyType() { + backupRelationPropertyType.push(getRelationPropertyType()); + } + + @Override + public void restoreRelationPropertyType() { + setRelationPropertyType(backupRelationPropertyType.pop()); + } + + @Override + public void backupSuffixAndPrepare(String baseSuffix, + String additionalRelationNoSuffix) { + backupBaseSuffixExtension(); + backupRelationNoSuffixExtension(); + setBaseSuffix(baseSuffix); + addRelationNoSuffix(additionalRelationNoSuffix); + } + + @Override + public void restoreSuffix() { + restoreBaseSuffixExtension(); + restoreRelationNoSuffixExtension(); + } + + protected void backupBaseSuffixExtension() { + backupBaseSuffix.push(getBaseSuffix()); + } + + protected void restoreBaseSuffixExtension() { + setBaseSuffix(backupBaseSuffix.pop()); + } + + protected void backupRelationNoSuffixExtension() { + backupRelationSuffix.push(getRelationNoSuffix()); + } + + protected void restoreRelationNoSuffixExtension() { + setRelationNoSuffix(backupRelationSuffix.pop()); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRowCreator.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRowCreator.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRowCreator.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,289 @@ +package jp.sf.pal.notepad.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.InternalMapContext; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.impl.RowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRowCreator extends RowCreatorImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalRowCreator.class); + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta _dbmeta; + + //========================================================================== + // ========= + // Constructor + // =========== + protected InternalRowCreator() { + } + + /** + * @param beanClass The class of target bean to find DB-meta. (Nullable) + * @return The instance of internal row creator. (NotNull) + */ + public static InternalRowCreator createInternalRowCreator(Class beanClass) { + final InternalRowCreator rowCreator = new InternalRowCreator(); + if (beanClass != null) { + rowCreator.setDBMeta(findDBMetaByClass(beanClass)); + } + return rowCreator; + } + + //========================================================================== + // ========= + // Main + // ==== + @SuppressWarnings("unchecked") + @Override + public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) + throws SQLException { + final Set columnNameSet = propertyCache.keySet(); + String columnName = null; + PropertyType pt = null; + String propertyName = null; + final Object row; + final DBMeta dbmeta; + if (_dbmeta != null) { + dbmeta = _dbmeta; + row = dbmeta.newEntity(); + } else { + row = newBean(beanClass); + dbmeta = findDBMeta(row); + } + try { + if (dbmeta != null) { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + if (dbmeta.hasEntityPropertySetupper(propertyName)) { + final ValueType valueType = pt.getValueType(); + final Object value = valueType.getValue(rs, columnName); + dbmeta.setupEntityProperty(propertyName, row, value); + } else { + registerValue(rs, row, pt, columnName); + } + } + } else { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + registerValue(rs, row, pt, columnName); + } + } + return row; + } catch (ClassCastException e) { + if (_log.isWarnEnabled()) { + String msg = ClassCastException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName + " dbmeta"); + } + throwNonsenseClassCastException(row, dbmeta, e); + return null; // Unreachable! + } catch (SQLException e) { + if (_log.isWarnEnabled()) { + String msg = SQLException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName); + } + throw e; + } + } + + protected void throwNonsenseClassCastException(Object entity, + DBMeta dbmeta, ClassCastException e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "This exception may be from ClassLoader Headache about HotDeploy." + + getLineSeparator(); + msg = msg + + "Please add the ignore-package setting to convention.dicon like as follows:" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + + getLineSeparator(); + msg = msg + " ¡Écom.example.xxx.dbflute¡É" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + + entity.getClass().getClassLoader() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + + dbmeta.getClass().getClassLoader() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new NonsenseClassCastException(msg, e); + } + + public static class NonsenseClassCastException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public NonsenseClassCastException(String msg, ClassCastException e) { + super(msg, e); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Object row) { + return DBMetaCacheHandler.findDBMeta(row); + } + + /** + * @param rowType The type of row. (NotNull) + * @param tableName The name of table. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Class rowType, String tableName) { + return DBMetaCacheHandler.findDBMeta(rowType, tableName); + } + + protected static class DBMetaCacheHandler { + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + public static DBMeta findDBMeta(Object row) { + if (!(row instanceof Entity)) { + return null; + } + final Entity entity = (Entity) row; + DBMeta dbmeta = findCachedDBMeta(entity.getClass()); + if (dbmeta != null) { + return dbmeta; + } + dbmeta = entity.getDBMeta(); + cacheDBMeta(entity, dbmeta); + return dbmeta; + } + + public static DBMeta findDBMeta(Class rowType, String tableName) { + DBMeta dbmeta = findCachedDBMeta(rowType); + if (dbmeta != null) { + return dbmeta; + } + try { + dbmeta = DBMetaInstanceHandler.findDBMeta(tableName); + } catch (DBMetaInstanceHandler.DBMetaNotFoundException ignored) { + return null; + } + cacheDBMeta(rowType, dbmeta); + return dbmeta; + } + + protected static DBMeta findCachedDBMeta(Class rowType) { + Map, DBMeta> dbmetaCache = findDBMetaCache(); + if (dbmetaCache == null) { + dbmetaCache = new HashMap, DBMeta>(); + InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); + } + return dbmetaCache.get(rowType); + } + + protected static void cacheDBMeta(Entity entity, DBMeta dbmeta) { + cacheDBMeta(entity.getClass(), dbmeta); + } + + protected static void cacheDBMeta(Class type, DBMeta dbmeta) { + final Map, DBMeta> dbmetaCache = findDBMetaCache(); + dbmetaCache.put(type, dbmeta); + } + + @SuppressWarnings("unchecked") + protected static Map, DBMeta> findDBMetaCache() { + return (Map, DBMeta>) InternalMapContext + .getObject(DBMETA_CACHE_KEY); + } + } + + protected static DBMeta findDBMetaByClass(Class beanClass) { + final Object instance = newInstance(beanClass); + if (!(instance instanceof Entity)) { + return null; + } + return ((Entity) instance).getDBMeta(); + } + + protected static Object newInstance(Class clazz) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setDBMeta(DBMeta dbmeta) { + this._dbmeta = dbmeta; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/s2dao/internal/various/InternalRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleAssertUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleAssertUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleAssertUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,54 @@ +package jp.sf.pal.notepad.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleAssertUtil { + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + public static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + public static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleAssertUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleStringUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleStringUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleStringUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,67 @@ +package jp.sf.pal.notepad.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringUtil { + + //========================================================================== + // ========= + // String + // ====== + public static String replace(String text, String fromText, String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + int pos = 0; + int pos2 = 0; + do { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + sb.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + sb.append(text.substring(pos2, pos)); + sb.append(toText); + pos2 = pos + fromText.length(); + } else { + sb.append(text.substring(pos2)); + return sb.toString(); + } + } while (true); + } + + public static String initCap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + + public static String initUncap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleStringUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleSystemUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleSystemUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleSystemUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,21 @@ +package jp.sf.pal.notepad.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleSystemUtil { + + //========================================================================== + // ========= + // System + // ====== + public static String getLineSeparator() { + // /- - - - - - - - - - - - - - - - - - - - - - + // Because 'CR + LF' caused many trouble! + // And Now 'LF' have little trouble. + // + // return System.getProperty("line.separator"); + // - - - - - - - - - -/ + return "\n"; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/SimpleSystemUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/TraceViewUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/TraceViewUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/TraceViewUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,67 @@ +package jp.sf.pal.notepad.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TraceViewUtil { + + /** + * Convert to performance view. + * + * @param afterMinusBefore The value of after-minus-before millisecond. + * @return Performance view. (ex. 1m23s456ms) (NotNull) + */ + public static String convertToPerformanceView(long afterMinusBefore) { + if (afterMinusBefore < 0) { + return String.valueOf(afterMinusBefore); + } + + long sec = afterMinusBefore / 1000; + final long min = sec / 60; + sec = sec % 60; + final long mil = afterMinusBefore % 1000; + + final StringBuffer sb = new StringBuffer(); + if (min >= 10) { // Minute + sb.append(min).append("m"); + } else if (min < 10 && min >= 0) { + sb.append("0").append(min).append("m"); + } + if (sec >= 10) { // Second + sb.append(sec).append("s"); + } else if (sec < 10 && sec >= 0) { + sb.append("0").append(sec).append("s"); + } + if (mil >= 100) { // Millisecond + sb.append(mil).append("ms"); + } else if (mil < 100 && mil >= 10) { + sb.append("0").append(mil).append("ms"); + } else if (mil < 10 && mil >= 0) { + sb.append("00").append(mil).append("ms"); + } + + return sb.toString(); + } + + /** + * Convert object array to string view. + * + * @param objArray The array of object. (Nullable) + * @return The string divided with comma. (NotNull: If the argument is null, + * returns empty string.) + */ + public static String convertObjectArrayToStringView(Object[] objArray) { + if (objArray == null) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < objArray.length; i++) { + if (i == 0) { + sb.append(objArray[i]); + } else { + sb.append(", ").append(objArray[i]); + } + } + return sb.toString(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/TraceViewUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/ValueLabelUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/ValueLabelUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/ValueLabelUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,65 @@ +package jp.sf.pal.notepad.db.allcommon.util; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelUtil { + + /** + * Find the label by the value from the list of value label. + * + * @param valueLabelList The list of value label. (NotNull and NotEmpty) + * @param value Value. (NotNull) + * @return Label. (NotNull) + */ + public static String findLabel(List> valueLabelList, + Object value) { + if (valueLabelList == null) { + String msg = "The arguement[valueLabelList] should not be null."; + throw new IllegalArgumentException(msg); + } + if (valueLabelList.isEmpty()) { + String msg = "The arguement[valueLabelList] should not be empty."; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The arguement[value] should not be null."; + throw new IllegalArgumentException(msg); + } + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + if (value.equals(currentValue)) { + return (String) elementMap.get("label"); + } + } + String msg = "Not found label by the value: value=" + value + + " valueLabelList=" + valueLabelList; + throw new IllegalStateException(msg); + } + + public static Map createValueLabelMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentValue, currentLabel); + } + return resultMap; + } + + public static Map createLabelValueMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentLabel, currentValue); + } + return resultMap; + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/allcommon/util/ValueLabelUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupInfoBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,897 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.exbhv.GroupMappingBhv; +import jp.sf.pal.notepad.db.exbhv.UserInfoBhv; +import jp.sf.pal.notepad.db.exdao.GroupInfoDao; +import jp.sf.pal.notepad.db.exentity.GroupInfo; +import jp.sf.pal.notepad.db.exentity.GroupMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupMappingBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,602 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.exdao.GroupMappingDao; +import jp.sf.pal.notepad.db.exentity.GroupInfo; +import jp.sf.pal.notepad.db.exentity.GroupMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,773 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.NotepadDbm; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.exdao.NotepadDao; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.db.exentity.NotepadContent; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of NOTEPAD. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     NOTEPAD_CATEGORY, USER_INFO
    + * 
    + * [referrer-table]
    + *     NOTEPAD_CONTENT
    + * 
    + * [foreign-property]
    + *     notepadCategory, userInfoByCreatedBy, userInfoByUpdatedBy, notepadContentAsOne
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsNotepadBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "NOTEPAD"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return NotepadDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public NotepadDbm getMyDBMeta() { + return NotepadDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public NotepadDao getMyDao() { + return _dao; + } + + public void setMyDao(NotepadDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Notepad newMyEntity() { + return new Notepad(); + } + + public NotepadCB newMyConditionBean() { + return new NotepadCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Notepad. (NotNull) + * @return The selected count. + */ + public int selectCount(NotepadCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Notepad. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Notepad selectEntity(final NotepadCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(NotepadCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Notepad. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Notepad selectEntityWithDeletedCheck(final NotepadCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(NotepadCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public Notepad selectByPKValueWithDeletedCheck(Long id) { + Notepad entity = new Notepad(); + entity.setId(id); + final NotepadCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Notepad. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(NotepadCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Notepad. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final NotepadCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Notepad. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + NotepadCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'NotepadCategory'. + * + * @param notepadList The list of notepad. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutNotepadCategory( + List notepadList) { + return helpPulloutInternally(notepadList, + new InternalPulloutCallback() { + public NotepadCategory callbackGetForeignEntity( + Notepad entity) { + return entity.getNotepadCategory(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param notepadList The list of notepad. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByCreatedBy(List notepadList) { + return helpPulloutInternally(notepadList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Notepad entity) { + return entity.getUserInfoByCreatedBy(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param notepadList The list of notepad. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByUpdatedBy(List notepadList) { + return helpPulloutInternally(notepadList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(Notepad entity) { + return entity.getUserInfoByUpdatedBy(); + } + }); + } + + /** + * Pull out the list of referrer-as-one table 'NotepadContent'. + * + * @param notepadList The list of notepad. (NotNull) + * @return The list of referrer-as-one table. (NotNull) + */ + public List pulloutNotepadContentAsOne( + List notepadList) { + return helpPulloutInternally(notepadList, + new InternalPulloutCallback() { + public NotepadContent callbackGetForeignEntity( + Notepad entity) { + return entity.getNotepadContentAsOne(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param notepad The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Notepad notepad) { + assertEntityNotNull(notepad); + delegateInsert(notepad); + } + + @Override + protected void doCreate(Entity notepad) { + insert((Notepad) notepad); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param notepad The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Notepad notepad) { + helpUpdateInternally(notepad, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Notepad entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Notepad) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param notepad The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final Notepad notepad) { + helpUpdateNonstrictInternally(notepad, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(Notepad entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((Notepad) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param notepad The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Notepad notepad) { + helpInsertOrUpdateInternally(notepad, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Notepad entity) { + insert(entity); + } + + public void callbackUpdate(Notepad entity) { + update(entity); + } + + public NotepadCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(NotepadCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity notepad) { + insertOrUpdate((Notepad) notepad); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param notepad The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(Notepad notepad) { + helpInsertOrUpdateInternally(notepad, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(Notepad entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(Notepad entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((Notepad) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param notepad The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Notepad notepad) { + helpDeleteInternally(notepad, new InternalDeleteCallback() { + public int callbackDelegateDelete(Notepad entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity notepad) { + delete((Notepad) notepad); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param notepad Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(Notepad notepad) { + helpDeleteNonstrictInternally(notepad, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(Notepad entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param notepad Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(Notepad notepad) { + helpDeleteNonstrictIgnoreDeletedInternally(notepad, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(Notepad entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List notepadList) { + assertObjectNotNull("notepadList", notepadList); + return delegateInsertList(notepadList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param notepadList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List notepadList) { + assertObjectNotNull("notepadList", notepadList); + return delegateUpdateList(notepadList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List notepadList) { + assertObjectNotNull("notepadList", notepadList); + return delegateUpdateListNonstrict(notepadList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List notepadList) { + assertObjectNotNull("notepadList", notepadList); + return delegateDeleteList(notepadList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param notepadList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List notepadList) { + assertObjectNotNull("notepadList", notepadList); + return delegateDeleteListNonstrict(notepadList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param notepad Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Notepad notepad, NotepadCB cb) { + assertObjectNotNull("notepad", notepad); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(notepad); + filterEntityOfUpdate(notepad); + assertEntityOfUpdate(notepad); + return getMyDao().updateByQuery(cb, notepad); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(NotepadCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(NotepadCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(NotepadCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Notepad e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Notepad e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(Notepad e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(Notepad e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(Notepad e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("notepadList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("notepadList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("notepadList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("notepadList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("notepadList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Notepad downcast(Entity entity) { + return helpDowncastInternally(entity, Notepad.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadCategoryBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadCategoryBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadCategoryBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,850 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.NotepadCategoryDbm; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.exbhv.NotepadBhv; +import jp.sf.pal.notepad.db.exdao.NotepadCategoryDao; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of NOTEPAD_CATEGORY. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, TYPE, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     NOTEPAD
    + * 
    + * [foreign-property]
    + *     userInfoByCreatedBy, userInfoByUpdatedBy
    + * 
    + * [referrer-property]
    + *     notepadList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsNotepadCategoryBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadCategoryDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "NOTEPAD_CATEGORY"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return NotepadCategoryDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public NotepadCategoryDbm getMyDBMeta() { + return NotepadCategoryDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public NotepadCategoryDao getMyDao() { + return _dao; + } + + public void setMyDao(NotepadCategoryDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public NotepadCategory newMyEntity() { + return new NotepadCategory(); + } + + public NotepadCategoryCB newMyConditionBean() { + return new NotepadCategoryCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of NotepadCategory. (NotNull) + * @return The selected count. + */ + public int selectCount(NotepadCategoryCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of NotepadCategory. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public NotepadCategory selectEntity(final NotepadCategoryCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + NotepadCategoryCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of NotepadCategory. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public NotepadCategory selectEntityWithDeletedCheck( + final NotepadCategoryCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + NotepadCategoryCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public NotepadCategory selectByPKValueWithDeletedCheck(Integer id) { + NotepadCategory entity = new NotepadCategory(); + entity.setId(id); + final NotepadCategoryCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of NotepadCategory. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(NotepadCategoryCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of NotepadCategory. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final NotepadCategoryCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of NotepadCategory. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + NotepadCategoryCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of notepadList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setCategoryId_InScope(pkList);
    +     * cb.query().addOrderBy_CategoryId_Asc();
    +     * 
    + * + * @param notepadCategoryList The entity list of notepadCategory. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadNotepadList(List notepadCategoryList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("notepadCategoryList", + notepadCategoryList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (notepadCategoryList.isEmpty()) { + return; + } + loadNotepadList(notepadCategoryList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param notepadCategoryList The entity list of notepadCategory. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadNotepadList(List notepadCategoryList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("notepadCategoryList", + notepadCategoryList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (notepadCategoryList.isEmpty()) { + return; + } + final NotepadBhv referrerBhv = xgetBSFLR().select(NotepadBhv.class); + helpLoadReferrerInternally( + notepadCategoryList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Integer callbackBase_getPrimaryKeyValue( + NotepadCategory entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + NotepadCategory entity, List referrerList) { + entity.setNotepadList(referrerList); + } + + public NotepadCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + NotepadCB cb, List pkList) { + cb.query().setCategoryId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + NotepadCB cb) { + cb.query().addOrderBy_CategoryId_Asc(); + } + + public List callbackReferrer_selectList( + NotepadCB cb) { + return referrerBhv.selectList(cb); + } + + public Integer callbackReferrer_getForeignKeyValue( + Notepad entity) { + return entity.getCategoryId(); + } + + public void callbackReferrer_setForeignEntity( + Notepad referrerEntity, NotepadCategory baseEntity) { + referrerEntity.setNotepadCategory(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param notepadCategoryList The list of notepadCategory. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByCreatedBy( + List notepadCategoryList) { + return helpPulloutInternally(notepadCategoryList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + NotepadCategory entity) { + return entity.getUserInfoByCreatedBy(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param notepadCategoryList The list of notepadCategory. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByUpdatedBy( + List notepadCategoryList) { + return helpPulloutInternally(notepadCategoryList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + NotepadCategory entity) { + return entity.getUserInfoByUpdatedBy(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param notepadCategory The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(NotepadCategory notepadCategory) { + assertEntityNotNull(notepadCategory); + delegateInsert(notepadCategory); + } + + @Override + protected void doCreate(Entity notepadCategory) { + insert((NotepadCategory) notepadCategory); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param notepadCategory The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final NotepadCategory notepadCategory) { + helpUpdateInternally(notepadCategory, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(NotepadCategory entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((NotepadCategory) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param notepadCategory The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final NotepadCategory notepadCategory) { + helpUpdateNonstrictInternally(notepadCategory, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + NotepadCategory entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((NotepadCategory) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param notepadCategory The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final NotepadCategory notepadCategory) { + helpInsertOrUpdateInternally( + notepadCategory, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(NotepadCategory entity) { + insert(entity); + } + + public void callbackUpdate(NotepadCategory entity) { + update(entity); + } + + public NotepadCategoryCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(NotepadCategoryCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity notepadCategory) { + insertOrUpdate((NotepadCategory) notepadCategory); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param notepadCategory The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(NotepadCategory notepadCategory) { + helpInsertOrUpdateInternally(notepadCategory, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(NotepadCategory entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(NotepadCategory entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((NotepadCategory) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param notepadCategory The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(NotepadCategory notepadCategory) { + helpDeleteInternally(notepadCategory, + new InternalDeleteCallback() { + public int callbackDelegateDelete(NotepadCategory entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity notepadCategory) { + delete((NotepadCategory) notepadCategory); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param notepadCategory Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(NotepadCategory notepadCategory) { + helpDeleteNonstrictInternally(notepadCategory, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + NotepadCategory entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param notepadCategory Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(NotepadCategory notepadCategory) { + helpDeleteNonstrictIgnoreDeletedInternally( + notepadCategory, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + NotepadCategory entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadCategoryList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List notepadCategoryList) { + assertObjectNotNull("notepadCategoryList", notepadCategoryList); + return delegateInsertList(notepadCategoryList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param notepadCategoryList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List notepadCategoryList) { + assertObjectNotNull("notepadCategoryList", notepadCategoryList); + return delegateUpdateList(notepadCategoryList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadCategoryList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List notepadCategoryList) { + assertObjectNotNull("notepadCategoryList", notepadCategoryList); + return delegateUpdateListNonstrict(notepadCategoryList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadCategoryList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List notepadCategoryList) { + assertObjectNotNull("notepadCategoryList", notepadCategoryList); + return delegateDeleteList(notepadCategoryList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param notepadCategoryList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List notepadCategoryList) { + assertObjectNotNull("notepadCategoryList", notepadCategoryList); + return delegateDeleteListNonstrict(notepadCategoryList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param notepadCategory Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(NotepadCategory notepadCategory, NotepadCategoryCB cb) { + assertObjectNotNull("notepadCategory", notepadCategory); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(notepadCategory); + filterEntityOfUpdate(notepadCategory); + assertEntityOfUpdate(notepadCategory); + return getMyDao().updateByQuery(cb, notepadCategory); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(NotepadCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(NotepadCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(NotepadCategoryCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(NotepadCategory e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(NotepadCategory e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(NotepadCategory e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(NotepadCategory e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(NotepadCategory e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("notepadCategoryList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("notepadCategoryList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("notepadCategoryList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("notepadCategoryList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("notepadCategoryList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected NotepadCategory downcast(Entity entity) { + return helpDowncastInternally(entity, NotepadCategory.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadCategoryBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadContentBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadContentBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadContentBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,586 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.NotepadContentDbm; +import jp.sf.pal.notepad.db.cbean.NotepadContentCB; +import jp.sf.pal.notepad.db.exdao.NotepadContentDao; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadContent; + +/** + * The behavior of NOTEPAD_CONTENT. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     NOTEPAD
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     notepad
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsNotepadContentBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadContentDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "NOTEPAD_CONTENT"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return NotepadContentDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public NotepadContentDbm getMyDBMeta() { + return NotepadContentDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public NotepadContentDao getMyDao() { + return _dao; + } + + public void setMyDao(NotepadContentDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public NotepadContent newMyEntity() { + return new NotepadContent(); + } + + public NotepadContentCB newMyConditionBean() { + return new NotepadContentCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of NotepadContent. (NotNull) + * @return The selected count. + */ + public int selectCount(NotepadContentCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of NotepadContent. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public NotepadContent selectEntity(final NotepadContentCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + NotepadContentCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of NotepadContent. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public NotepadContent selectEntityWithDeletedCheck(final NotepadContentCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + NotepadContentCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public NotepadContent selectByPKValueWithDeletedCheck(Long id) { + NotepadContent entity = new NotepadContent(); + entity.setId(id); + final NotepadContentCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of NotepadContent. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(NotepadContentCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of NotepadContent. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final NotepadContentCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of NotepadContent. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + NotepadContentCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Notepad'. + * + * @param notepadContentList The list of notepadContent. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutNotepad(List notepadContentList) { + return helpPulloutInternally(notepadContentList, + new InternalPulloutCallback() { + public Notepad callbackGetForeignEntity( + NotepadContent entity) { + return entity.getNotepad(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param notepadContent The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(NotepadContent notepadContent) { + assertEntityNotNull(notepadContent); + delegateInsert(notepadContent); + } + + @Override + protected void doCreate(Entity notepadContent) { + insert((NotepadContent) notepadContent); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param notepadContent The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final NotepadContent notepadContent) { + helpUpdateInternally(notepadContent, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(NotepadContent entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((NotepadContent) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((NotepadContent) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param notepadContent The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final NotepadContent notepadContent) { + helpInsertOrUpdateInternally( + notepadContent, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(NotepadContent entity) { + insert(entity); + } + + public void callbackUpdate(NotepadContent entity) { + update(entity); + } + + public NotepadContentCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(NotepadContentCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity notepadContent) { + insertOrUpdate((NotepadContent) notepadContent); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((NotepadContent) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param notepadContent The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(NotepadContent notepadContent) { + helpDeleteInternally(notepadContent, + new InternalDeleteCallback() { + public int callbackDelegateDelete(NotepadContent entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity notepadContent) { + delete((NotepadContent) notepadContent); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadContentList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List notepadContentList) { + assertObjectNotNull("notepadContentList", notepadContentList); + return delegateInsertList(notepadContentList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param notepadContentList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List notepadContentList) { + assertObjectNotNull("notepadContentList", notepadContentList); + return delegateUpdateList(notepadContentList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param notepadContentList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List notepadContentList) { + assertObjectNotNull("notepadContentList", notepadContentList); + return delegateDeleteList(notepadContentList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param notepadContent Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(NotepadContent notepadContent, NotepadContentCB cb) { + assertObjectNotNull("notepadContent", notepadContent); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(notepadContent); + filterEntityOfUpdate(notepadContent); + assertEntityOfUpdate(notepadContent); + return getMyDao().updateByQuery(cb, notepadContent); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(NotepadContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(NotepadContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(NotepadContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(NotepadContent e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(NotepadContent e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(NotepadContent e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("notepadContentList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("notepadContentList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("notepadContentList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected NotepadContent downcast(Entity entity) { + return helpDowncastInternally(entity, NotepadContent.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsNotepadContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleInfoBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,895 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.exbhv.RoleMappingBhv; +import jp.sf.pal.notepad.db.exbhv.UserInfoBhv; +import jp.sf.pal.notepad.db.exdao.RoleInfoDao; +import jp.sf.pal.notepad.db.exentity.RoleInfo; +import jp.sf.pal.notepad.db.exentity.RoleMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleMappingBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,597 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.exdao.RoleMappingDao; +import jp.sf.pal.notepad.db.exentity.RoleInfo; +import jp.sf.pal.notepad.db.exentity.RoleMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1299 @@ +package jp.sf.pal.notepad.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.notepad.db.allcommon.DaoReadable; +import jp.sf.pal.notepad.db.allcommon.DaoWritable; +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.notepad.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingBean; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.exbhv.GroupMappingBhv; +import jp.sf.pal.notepad.db.exbhv.NotepadBhv; +import jp.sf.pal.notepad.db.exbhv.NotepadCategoryBhv; +import jp.sf.pal.notepad.db.exbhv.RoleMappingBhv; +import jp.sf.pal.notepad.db.exdao.UserInfoDao; +import jp.sf.pal.notepad.db.exentity.GroupInfo; +import jp.sf.pal.notepad.db.exentity.GroupMapping; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.db.exentity.RoleInfo; +import jp.sf.pal.notepad.db.exentity.RoleMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, NOTEPAD, NOTEPAD_CATEGORY, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, notepadByCreatedByList, notepadByUpdatedByList, notepadCategoryByCreatedByList, notepadCategoryByUpdatedByList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.notepad.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of notepadByCreatedByList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setCreatedBy_InScope(pkList);
    +     * cb.query().addOrderBy_CreatedBy_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadNotepadByCreatedByList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadNotepadByCreatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadNotepadByCreatedByList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final NotepadBhv referrerBhv = xgetBSFLR().select(NotepadBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setNotepadByCreatedByList(referrerList); + } + + public NotepadCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + NotepadCB cb, List pkList) { + cb.query().setCreatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + NotepadCB cb) { + cb.query().addOrderBy_CreatedBy_Asc(); + } + + public List callbackReferrer_selectList( + NotepadCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Notepad entity) { + return entity.getCreatedBy(); + } + + public void callbackReferrer_setForeignEntity( + Notepad referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByCreatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of notepadByUpdatedByList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setUpdatedBy_InScope(pkList);
    +     * cb.query().addOrderBy_UpdatedBy_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadNotepadByUpdatedByList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadNotepadByUpdatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadNotepadByUpdatedByList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final NotepadBhv referrerBhv = xgetBSFLR().select(NotepadBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setNotepadByUpdatedByList(referrerList); + } + + public NotepadCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + NotepadCB cb, List pkList) { + cb.query().setUpdatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + NotepadCB cb) { + cb.query().addOrderBy_UpdatedBy_Asc(); + } + + public List callbackReferrer_selectList( + NotepadCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + Notepad entity) { + return entity.getUpdatedBy(); + } + + public void callbackReferrer_setForeignEntity( + Notepad referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByUpdatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of notepadCategoryByCreatedByList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setCreatedBy_InScope(pkList);
    +     * cb.query().addOrderBy_CreatedBy_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadNotepadCategoryByCreatedByList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadNotepadCategoryByCreatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadNotepadCategoryByCreatedByList( + List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final NotepadCategoryBhv referrerBhv = xgetBSFLR().select( + NotepadCategoryBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setNotepadCategoryByCreatedByList(referrerList); + } + + public NotepadCategoryCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + NotepadCategoryCB cb, List pkList) { + cb.query().setCreatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + NotepadCategoryCB cb) { + cb.query().addOrderBy_CreatedBy_Asc(); + } + + public List callbackReferrer_selectList( + NotepadCategoryCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + NotepadCategory entity) { + return entity.getCreatedBy(); + } + + public void callbackReferrer_setForeignEntity( + NotepadCategory referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByCreatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of notepadCategoryByUpdatedByList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setUpdatedBy_InScope(pkList);
    +     * cb.query().addOrderBy_UpdatedBy_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadNotepadCategoryByUpdatedByList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadNotepadCategoryByUpdatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadNotepadCategoryByUpdatedByList( + List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final NotepadCategoryBhv referrerBhv = xgetBSFLR().select( + NotepadCategoryBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setNotepadCategoryByUpdatedByList(referrerList); + } + + public NotepadCategoryCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + NotepadCategoryCB cb, List pkList) { + cb.query().setUpdatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + NotepadCategoryCB cb) { + cb.query().addOrderBy_UpdatedBy_Asc(); + } + + public List callbackReferrer_selectList( + NotepadCategoryCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + NotepadCategory entity) { + return entity.getUpdatedBy(); + } + + public void callbackReferrer_setForeignEntity( + NotepadCategory referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByUpdatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.notepad.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupInfoDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupInfoDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupInfoDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupMappingDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupMappingDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupMappingDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,37 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadCategoryDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadCategoryDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadCategoryDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; + +/** + * The DAO interface of NOTEPAD_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsNotepadCategoryDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = NotepadCategory.class; // For S2Dao + + public int selectCount(NotepadCategoryCB cb); + + public List selectList(NotepadCategoryCB cb); + + int insert(NotepadCategory entity); + + int updateModifiedOnly(NotepadCategory entity); + + int updateNonstrictModifiedOnly(NotepadCategory entity); + + int delete(NotepadCategory entity); + + int deleteNonstrict(NotepadCategory entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(NotepadCategoryCB cb, NotepadCategory entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(NotepadCategoryCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadCategoryDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadContentDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadContentDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadContentDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,37 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.NotepadContentCB; +import jp.sf.pal.notepad.db.exentity.NotepadContent; + +/** + * The DAO interface of NOTEPAD_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsNotepadContentDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = NotepadContent.class; // For S2Dao + + public int selectCount(NotepadContentCB cb); + + public List selectList(NotepadContentCB cb); + + int insert(NotepadContent entity); + + int updateModifiedOnly(NotepadContent entity); + + int delete(NotepadContent entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(NotepadContentCB cb, NotepadContent entity); + + int[] deleteList(List entityList); + + int deleteByQuery(NotepadContentCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.exentity.Notepad; + +/** + * The DAO interface of NOTEPAD. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsNotepadDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = Notepad.class; // For S2Dao + + public int selectCount(NotepadCB cb); + + public List selectList(NotepadCB cb); + + int insert(Notepad entity); + + int updateModifiedOnly(Notepad entity); + + int updateNonstrictModifiedOnly(Notepad entity); + + int delete(Notepad entity); + + int deleteNonstrict(Notepad entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(NotepadCB cb, Notepad entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(NotepadCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsNotepadDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleInfoDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleInfoDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleInfoDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleMappingDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleMappingDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleMappingDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,37 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsUserInfoDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsUserInfoDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsUserInfoDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.bsdao; + +import java.util.List; + +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends + jp.sf.pal.notepad.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,611 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.GroupMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupMapping.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupMapping.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupMapping.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,356 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.GroupInfo; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepad.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepad.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepad.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,635 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.db.exentity.NotepadContent; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The entity of NOTEPAD that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, SORT_ORDER, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     NOTEPAD_CATEGORY, USER_INFO
    + * 
    + * [referrer-table]
    + *     NOTEPAD_CONTENT
    + * 
    + * [foreign-property]
    + *     notepadCategory, userInfoByCreatedBy, userInfoByUpdatedBy, notepadContentAsOne
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsNotepad implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is NOTEPAD. */ + public static final String TABLE = "NOTEPAD"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** TITLE: {NotNull : VARCHAR(100)} */ + protected String _title; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[0]} */ + protected Integer _sortOrder; + + /** CATEGORY_ID: {INTEGER : Default=[0] : FK to NOTEPAD_CATEGORY} */ + protected Integer _categoryId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsNotepad() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "notepad"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [notepadCategory] + // * * * * * * * * */ + public static final int notepadCategory_RELNO = 0; + + public static final String notepadCategory_RELKEYS = "CATEGORY_ID:ID"; + + /** NOTEPAD_CATEGORY as 'notepadCategory'. */ + protected NotepadCategory _parentNotepadCategory; + + /** + * NOTEPAD_CATEGORY as 'notepadCategory'. {without lazy-load} + * + * @return The entity of foreign property 'notepadCategory'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public NotepadCategory getNotepadCategory() { + return _parentNotepadCategory; + } + + /** + * NOTEPAD_CATEGORY as 'notepadCategory'. + * + * @param notepadCategory The entity of foreign property 'notepadCategory'. + * (Nullable) + */ + public void setNotepadCategory(NotepadCategory notepadCategory) { + _parentNotepadCategory = notepadCategory; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByCreatedBy] + // * * * * * * * * */ + public static final int userInfoByCreatedBy_RELNO = 1; + + public static final String userInfoByCreatedBy_RELKEYS = "CREATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByCreatedBy'. */ + protected UserInfo _parentUserInfoByCreatedBy; + + /** + * USER_INFO as 'userInfoByCreatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByCreatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByCreatedBy() { + return _parentUserInfoByCreatedBy; + } + + /** + * USER_INFO as 'userInfoByCreatedBy'. + * + * @param userInfoByCreatedBy The entity of foreign property + * 'userInfoByCreatedBy'. (Nullable) + */ + public void setUserInfoByCreatedBy(UserInfo userInfoByCreatedBy) { + _parentUserInfoByCreatedBy = userInfoByCreatedBy; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByUpdatedBy] + // * * * * * * * * */ + public static final int userInfoByUpdatedBy_RELNO = 2; + + public static final String userInfoByUpdatedBy_RELKEYS = "UPDATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByUpdatedBy'. */ + protected UserInfo _parentUserInfoByUpdatedBy; + + /** + * USER_INFO as 'userInfoByUpdatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByUpdatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByUpdatedBy() { + return _parentUserInfoByUpdatedBy; + } + + /** + * USER_INFO as 'userInfoByUpdatedBy'. + * + * @param userInfoByUpdatedBy The entity of foreign property + * 'userInfoByUpdatedBy'. (Nullable) + */ + public void setUserInfoByUpdatedBy(UserInfo userInfoByUpdatedBy) { + _parentUserInfoByUpdatedBy = userInfoByUpdatedBy; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [notepadContentAsOne] + // * * * * * * * * */ + public static final int notepadContentAsOne_RELNO = 3; + + public static final String notepadContentAsOne_RELKEYS = "ID:ID"; + + /** NOTEPAD_CONTENT as 'notepadContentAsOne'. */ + protected NotepadContent _childrennotepadContentAsOne; + + /** + * NOTEPAD_CONTENT as 'notepadContentAsOne'. {without lazy-load}
    + * + * @return the entity of foreign property(referrer-as-one) + * 'notepadContentAsOne'. (Nullable: If the foreign key does not + * have 'NotNull' constraint, please check null.) + */ + public NotepadContent getNotepadContentAsOne() { + return _childrennotepadContentAsOne; + } + + /** + * NOTEPAD_CONTENT as 'notepadContentAsOne'. + * + * @param notepadContentAsOne The entity of foreign + * property(referrer-as-one) 'notepadContentAsOne'. (Nullable) + */ + public void setNotepadContentAsOne(NotepadContent notepadContentAsOne) { + _childrennotepadContentAsOne = notepadContentAsOne; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsNotepad)) { + return false; + } + BsNotepad otherEntity = (BsNotepad) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getTitle()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getCategoryId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String title_COLUMN = "TITLE"; + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'TITLE'. (Nullable) + */ + public String getTitle() { + return _title; + } + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @param title The value of the column 'TITLE'. (Nullable) + */ + public void setTitle(String title) { + _modifiedProperties.addPropertyName("title"); + this._title = title; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** + * The column annotation for S2Dao. {INTEGER : Default=[0] : FK to + * NOTEPAD_CATEGORY} + */ + public static final String categoryId_COLUMN = "CATEGORY_ID"; + + /** + * CATEGORY_ID: {INTEGER : Default=[0] : FK to NOTEPAD_CATEGORY}
    + * + * @return The value of the column 'CATEGORY_ID'. (Nullable) + */ + public Integer getCategoryId() { + return _categoryId; + } + + /** + * CATEGORY_ID: {INTEGER : Default=[0] : FK to NOTEPAD_CATEGORY}
    + * + * @param categoryId The value of the column 'CATEGORY_ID'. (Nullable) + */ + public void setCategoryId(Integer categoryId) { + _modifiedProperties.addPropertyName("categoryId"); + this._categoryId = categoryId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepad.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadCategory.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadCategory.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadCategory.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,600 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The entity of NOTEPAD_CATEGORY that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, NAME, TYPE, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     USER_INFO
    + * 
    + * [referrer-table]
    + *     NOTEPAD
    + * 
    + * [foreign-property]
    + *     userInfoByCreatedBy, userInfoByUpdatedBy
    + * 
    + * [referrer-property]
    + *     notepadList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsNotepadCategory implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is NOTEPAD_CATEGORY. */ + public static final String TABLE = "NOTEPAD_CATEGORY"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** TYPE: {NotNull : VARCHAR(1) : Default=[P]} */ + protected String _type; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[0]} */ + protected Integer _sortOrder; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsNotepadCategory() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD_CATEGORY"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "notepadCategory"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByCreatedBy] + // * * * * * * * * */ + public static final int userInfoByCreatedBy_RELNO = 0; + + public static final String userInfoByCreatedBy_RELKEYS = "CREATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByCreatedBy'. */ + protected UserInfo _parentUserInfoByCreatedBy; + + /** + * USER_INFO as 'userInfoByCreatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByCreatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByCreatedBy() { + return _parentUserInfoByCreatedBy; + } + + /** + * USER_INFO as 'userInfoByCreatedBy'. + * + * @param userInfoByCreatedBy The entity of foreign property + * 'userInfoByCreatedBy'. (Nullable) + */ + public void setUserInfoByCreatedBy(UserInfo userInfoByCreatedBy) { + _parentUserInfoByCreatedBy = userInfoByCreatedBy; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByUpdatedBy] + // * * * * * * * * */ + public static final int userInfoByUpdatedBy_RELNO = 1; + + public static final String userInfoByUpdatedBy_RELKEYS = "UPDATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByUpdatedBy'. */ + protected UserInfo _parentUserInfoByUpdatedBy; + + /** + * USER_INFO as 'userInfoByUpdatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByUpdatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByUpdatedBy() { + return _parentUserInfoByUpdatedBy; + } + + /** + * USER_INFO as 'userInfoByUpdatedBy'. + * + * @param userInfoByUpdatedBy The entity of foreign property + * 'userInfoByUpdatedBy'. (Nullable) + */ + public void setUserInfoByUpdatedBy(UserInfo userInfoByUpdatedBy) { + _parentUserInfoByUpdatedBy = userInfoByUpdatedBy; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [notepadList] + // * * * * * * * * */ + /** NOTEPAD as 'notepadList'. */ + protected List _childrenNotepadList; + + /** + * NOTEPAD as 'notepadList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'notepadList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getNotepadList() { + if (_childrenNotepadList == null) { + _childrenNotepadList = new ArrayList(); + } + return _childrenNotepadList; + } + + /** + * NOTEPAD as 'notepadList'. + * + * @param notepadList The entity list of referrer property 'notepadList'. + * (Nullable) + */ + public void setNotepadList(List notepadList) { + _childrenNotepadList = notepadList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsNotepadCategory)) { + return false; + } + BsNotepadCategory otherEntity = (BsNotepadCategory) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getType()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[P]} */ + public static final String type_COLUMN = "TYPE"; + + /** + * TYPE: {NotNull : VARCHAR(1) : Default=[P]}
    + * + * @return The value of the column 'TYPE'. (Nullable) + */ + public String getType() { + return _type; + } + + /** + * TYPE: {NotNull : VARCHAR(1) : Default=[P]}
    + * + * @param type The value of the column 'TYPE'. (Nullable) + */ + public void setType(String type) { + _modifiedProperties.addPropertyName("type"); + this._type = type; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadCategory.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadContent.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadContent.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadContent.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,290 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.Notepad; + +/** + * The entity of NOTEPAD_CONTENT that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     NOTEPAD
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     notepad
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsNotepadContent implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is NOTEPAD_CONTENT. */ + public static final String TABLE = "NOTEPAD_CONTENT"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : NotNull : BIGINT : FK to NOTEPAD} */ + protected Long _id; + + /** CONTENT: {VARCHAR(4000)} */ + protected String _content; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsNotepadContent() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD_CONTENT"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "notepadContent"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [notepad] + // * * * * * * * * */ + public static final int notepad_RELNO = 0; + + public static final String notepad_RELKEYS = "ID:ID"; + + /** NOTEPAD as 'notepad'. */ + protected Notepad _parentNotepad; + + /** + * NOTEPAD as 'notepad'. {without lazy-load} + * + * @return The entity of foreign property 'notepad'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Notepad getNotepad() { + return _parentNotepad; + } + + /** + * NOTEPAD as 'notepad'. + * + * @param notepad The entity of foreign property 'notepad'. (Nullable) + */ + public void setNotepad(Notepad notepad) { + _parentNotepad = notepad; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsNotepadContent)) { + return false; + } + BsNotepadContent otherEntity = (BsNotepadContent) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getContent()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to NOTEPAD} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : NotNull : BIGINT : FK to NOTEPAD}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : NotNull : BIGINT : FK to NOTEPAD}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(4000)} */ + public static final String content_COLUMN = "CONTENT"; + + /** + * CONTENT: {VARCHAR(4000)}
    + * + * @return The value of the column 'CONTENT'. (Nullable) + */ + public String getContent() { + return _content; + } + + /** + * CONTENT: {VARCHAR(4000)}
    + * + * @param content The value of the column 'CONTENT'. (Nullable) + */ + public void setContent(String content) { + _modifiedProperties.addPropertyName("content"); + this._content = content; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsNotepadContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,611 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.RoleMapping; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleMapping.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleMapping.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleMapping.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,356 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.RoleInfo; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,933 @@ +package jp.sf.pal.notepad.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.notepad.db.exentity.GroupInfo; +import jp.sf.pal.notepad.db.exentity.GroupMapping; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.db.exentity.RoleInfo; +import jp.sf.pal.notepad.db.exentity.RoleMapping; + +/** + * The entity of USER_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, NOTEPAD, NOTEPAD_CATEGORY, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, notepadByCreatedByList, notepadByUpdatedByList, notepadCategoryByCreatedByList, notepadCategoryByUpdatedByList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [notepadByCreatedByList] + // * * * * * * * * */ + /** NOTEPAD as 'notepadByCreatedByList'. */ + protected List _childrenNotepadByCreatedByList; + + /** + * NOTEPAD as 'notepadByCreatedByList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'notepadByCreatedByList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getNotepadByCreatedByList() { + if (_childrenNotepadByCreatedByList == null) { + _childrenNotepadByCreatedByList = new ArrayList(); + } + return _childrenNotepadByCreatedByList; + } + + /** + * NOTEPAD as 'notepadByCreatedByList'. + * + * @param notepadByCreatedByList The entity list of referrer property + * 'notepadByCreatedByList'. (Nullable) + */ + public void setNotepadByCreatedByList(List notepadByCreatedByList) { + _childrenNotepadByCreatedByList = notepadByCreatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [notepadByUpdatedByList] + // * * * * * * * * */ + /** NOTEPAD as 'notepadByUpdatedByList'. */ + protected List _childrenNotepadByUpdatedByList; + + /** + * NOTEPAD as 'notepadByUpdatedByList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'notepadByUpdatedByList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getNotepadByUpdatedByList() { + if (_childrenNotepadByUpdatedByList == null) { + _childrenNotepadByUpdatedByList = new ArrayList(); + } + return _childrenNotepadByUpdatedByList; + } + + /** + * NOTEPAD as 'notepadByUpdatedByList'. + * + * @param notepadByUpdatedByList The entity list of referrer property + * 'notepadByUpdatedByList'. (Nullable) + */ + public void setNotepadByUpdatedByList(List notepadByUpdatedByList) { + _childrenNotepadByUpdatedByList = notepadByUpdatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [notepadCategoryByCreatedByList] + // * * * * * * * * */ + /** NOTEPAD_CATEGORY as 'notepadCategoryByCreatedByList'. */ + protected List _childrenNotepadCategoryByCreatedByList; + + /** + * NOTEPAD_CATEGORY as 'notepadCategoryByCreatedByList'. {without lazy-load} + *
    + * + * @return The entity list of referrer property + * 'notepadCategoryByCreatedByList'. (NotNull: If it's not loaded + * yet, initializes the list instance of referrer as empty and + * returns it.) + */ + public List getNotepadCategoryByCreatedByList() { + if (_childrenNotepadCategoryByCreatedByList == null) { + _childrenNotepadCategoryByCreatedByList = new ArrayList(); + } + return _childrenNotepadCategoryByCreatedByList; + } + + /** + * NOTEPAD_CATEGORY as 'notepadCategoryByCreatedByList'. + * + * @param notepadCategoryByCreatedByList The entity list of referrer + * property 'notepadCategoryByCreatedByList'. (Nullable) + */ + public void setNotepadCategoryByCreatedByList( + List notepadCategoryByCreatedByList) { + _childrenNotepadCategoryByCreatedByList = notepadCategoryByCreatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [notepadCategoryByUpdatedByList] + // * * * * * * * * */ + /** NOTEPAD_CATEGORY as 'notepadCategoryByUpdatedByList'. */ + protected List _childrenNotepadCategoryByUpdatedByList; + + /** + * NOTEPAD_CATEGORY as 'notepadCategoryByUpdatedByList'. {without lazy-load} + *
    + * + * @return The entity list of referrer property + * 'notepadCategoryByUpdatedByList'. (NotNull: If it's not loaded + * yet, initializes the list instance of referrer as empty and + * returns it.) + */ + public List getNotepadCategoryByUpdatedByList() { + if (_childrenNotepadCategoryByUpdatedByList == null) { + _childrenNotepadCategoryByUpdatedByList = new ArrayList(); + } + return _childrenNotepadCategoryByUpdatedByList; + } + + /** + * NOTEPAD_CATEGORY as 'notepadCategoryByUpdatedByList'. + * + * @param notepadCategoryByUpdatedByList The entity list of referrer + * property 'notepadCategoryByUpdatedByList'. (Nullable) + */ + public void setNotepadCategoryByUpdatedByList( + List notepadCategoryByUpdatedByList) { + _childrenNotepadCategoryByUpdatedByList = notepadCategoryByUpdatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,447 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,299 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadCategoryDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadCategoryDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadCategoryDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,427 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; + +/** + * The DB meta of NOTEPAD_CATEGORY. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategoryDbm extends AbstractDBMeta { + + private static final NotepadCategoryDbm _instance = new NotepadCategoryDbm(); + + private NotepadCategoryDbm() { + } + + public static NotepadCategoryDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "NOTEPAD_CATEGORY"; + } + + public String getTablePropertyName() { + return "notepadCategory"; + } + + public String getTableSqlName() { + return "NOTEPAD_CATEGORY"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, + 1, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnType() { + return _columnType; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.NotepadCategory"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.NotepadCategoryCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.NotepadCategoryDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.NotepadCategoryBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return NotepadCategory.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public NotepadCategory newMyEntity() { + return new NotepadCategory(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignUserInfoByCreatedBy() { + Map map = newLinkedHashMap(columnCreatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByCreatedBy", this, UserInfoDbm.getInstance(), map, + 0, false); + } + + public ForeignInfo foreignUserInfoByUpdatedBy() { + Map map = newLinkedHashMap(columnUpdatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByUpdatedBy", this, UserInfoDbm.getInstance(), map, + 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerNotepadList() { + Map map = newLinkedHashMap(columnId(), + NotepadDbm.getInstance().columnCategoryId()); + return cri("notepadList", this, NotepadDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((NotepadCategory) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((NotepadCategory) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsType(), columnType()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((NotepadCategory) entity, value); + } + + public static class EpsId implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsName implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setName((String) v); + } + } + + public static class EpsType implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setType((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(NotepadCategory e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadCategoryDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadContentDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadContentDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadContentDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,279 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.NotepadContent; + +/** + * The DB meta of NOTEPAD_CONTENT. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContentDbm extends AbstractDBMeta { + + private static final NotepadContentDbm _instance = new NotepadContentDbm(); + + private NotepadContentDbm() { + } + + public static NotepadContentDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "NOTEPAD_CONTENT"; + } + + public String getTablePropertyName() { + return "notepadContent"; + } + + public String getTableSqlName() { + return "NOTEPAD_CONTENT"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnContent = cci("CONTENT", "content", + String.class, false, 4000, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnContent() { + return _columnContent; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.NotepadContent"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.NotepadContentCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.NotepadContentDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.NotepadContentBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return NotepadContent.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public NotepadContent newMyEntity() { + return new NotepadContent(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignNotepad() { + Map map = newLinkedHashMap(columnId(), + NotepadDbm.getInstance().columnId()); + return cfi("notepad", this, NotepadDbm.getInstance(), map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((NotepadContent) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((NotepadContent) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsContent(), columnContent()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((NotepadContent) entity, value); + } + + public static class EpsId implements Eps { + public void setup(NotepadContent e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsContent implements Eps { + public void setup(NotepadContent e, Object v) { + e.setContent((String) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadContentDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,434 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.Notepad; + +/** + * The DB meta of NOTEPAD. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadDbm extends AbstractDBMeta { + + private static final NotepadDbm _instance = new NotepadDbm(); + + private NotepadDbm() { + } + + public static NotepadDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "NOTEPAD"; + } + + public String getTablePropertyName() { + return "notepad"; + } + + public String getTableSqlName() { + return "NOTEPAD"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnTitle = cci("TITLE", "title", String.class, + false, 100, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnCategoryId = cci("CATEGORY_ID", "categoryId", + Integer.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnTitle() { + return _columnTitle; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnCategoryId() { + return _columnCategoryId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.Notepad"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.NotepadCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.NotepadDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.NotepadBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Notepad.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Notepad newMyEntity() { + return new Notepad(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignNotepadCategory() { + Map map = newLinkedHashMap(columnCategoryId(), + NotepadCategoryDbm.getInstance().columnId()); + return cfi("notepadCategory", this, NotepadCategoryDbm.getInstance(), + map, 0, false); + } + + public ForeignInfo foreignUserInfoByCreatedBy() { + Map map = newLinkedHashMap(columnCreatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByCreatedBy", this, UserInfoDbm.getInstance(), map, + 1, false); + } + + public ForeignInfo foreignUserInfoByUpdatedBy() { + Map map = newLinkedHashMap(columnUpdatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByUpdatedBy", this, UserInfoDbm.getInstance(), map, + 2, false); + } + + public ForeignInfo foreignNotepadContentAsOne() { + Map map = newLinkedHashMap(columnId(), + NotepadContentDbm.getInstance().columnId()); + return cfi("notepadContentAsOne", this, + NotepadContentDbm.getInstance(), map, 3, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Notepad) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Notepad) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsTitle(), columnTitle()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsCategoryId(), columnCategoryId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Notepad) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Notepad e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsTitle implements Eps { + public void setup(Notepad e, Object v) { + e.setTitle((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(Notepad e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsCategoryId implements Eps { + public void setup(Notepad e, Object v) { + e.setCategoryId((Integer) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(Notepad e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(Notepad e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(Notepad e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(Notepad e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(Notepad e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(Notepad e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(Notepad e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/NotepadDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,447 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,299 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,558 @@ +package jp.sf.pal.notepad.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.Entity; +import jp.sf.pal.notepad.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.notepad.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.notepad.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.notepad.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.notepad.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.notepad.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.notepad.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerNotepadByCreatedByList() { + Map map = newLinkedHashMap(columnUserId(), + NotepadDbm.getInstance().columnCreatedBy()); + return cri("notepadByCreatedByList", this, NotepadDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerNotepadByUpdatedByList() { + Map map = newLinkedHashMap(columnUserId(), + NotepadDbm.getInstance().columnUpdatedBy()); + return cri("notepadByUpdatedByList", this, NotepadDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerNotepadCategoryByCreatedByList() { + Map map = newLinkedHashMap(columnUserId(), + NotepadCategoryDbm.getInstance().columnCreatedBy()); + return cri("notepadCategoryByCreatedByList", this, NotepadCategoryDbm + .getInstance(), map, false); + } + + public ReferrerInfo referrerNotepadCategoryByUpdatedByList() { + Map map = newLinkedHashMap(columnUserId(), + NotepadCategoryDbm.getInstance().columnUpdatedBy()); + return cri("notepadCategoryByUpdatedByList", this, NotepadCategoryDbm + .getInstance(), map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupInfoCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupInfoCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.notepad.db.cbean.bs.BsGroupInfoCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupMappingCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupMappingCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupMappingCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.notepad.db.cbean.bs.BsGroupMappingCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of NOTEPAD. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCB extends jp.sf.pal.notepad.db.cbean.bs.BsNotepadCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCategoryCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCategoryCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCategoryCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of NOTEPAD_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategoryCB extends + jp.sf.pal.notepad.db.cbean.bs.BsNotepadCategoryCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadCategoryCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadContentCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadContentCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadContentCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of NOTEPAD_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContentCB extends + jp.sf.pal.notepad.db.cbean.bs.BsNotepadContentCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/NotepadContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleInfoCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleInfoCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.notepad.db.cbean.bs.BsRoleInfoCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleMappingCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleMappingCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleMappingCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.notepad.db.cbean.bs.BsRoleMappingCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/UserInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/UserInfoCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/UserInfoCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.notepad.db.cbean.bs.BsUserInfoCB { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupInfoCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,295 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupMappingCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,325 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.notepad.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,458 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.NotepadContentCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.nss.NotepadCategoryNss; +import jp.sf.pal.notepad.db.cbean.nss.NotepadContentNss; +import jp.sf.pal.notepad.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of NOTEPAD. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsNotepadCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD"; + } + + public String getTableSqlName() { + return "NOTEPAD"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public NotepadCQ query() { + return getConditionQuery(); + } + + public NotepadCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new NotepadCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<NotepadCB>() {
    +     *     public void query(NotepadCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final NotepadCB cb = new NotepadCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final NotepadCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<NotepadCB>() {
    +     *     public void query(NotepadCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final NotepadCB cb = new NotepadCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final NotepadCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(NotepadCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery unionQuery). + */ + public void unionAll(NotepadCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected NotepadCategoryNss _nssNotepadCategory; + + public NotepadCategoryNss getNssNotepadCategory() { + if (_nssNotepadCategory == null) { + _nssNotepadCategory = new NotepadCategoryNss(null); + } + return _nssNotepadCategory; + } + + public NotepadCategoryNss setupSelect_NotepadCategory() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryNotepadCategory(); + } + }); + if (_nssNotepadCategory == null + || !_nssNotepadCategory.hasConditionQuery()) { + _nssNotepadCategory = new NotepadCategoryNss(query() + .queryNotepadCategory()); + } + return _nssNotepadCategory; + } + + protected UserInfoNss _nssUserInfoByCreatedBy; + + public UserInfoNss getNssUserInfoByCreatedBy() { + if (_nssUserInfoByCreatedBy == null) { + _nssUserInfoByCreatedBy = new UserInfoNss(null); + } + return _nssUserInfoByCreatedBy; + } + + public UserInfoNss setupSelect_UserInfoByCreatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByCreatedBy(); + } + }); + if (_nssUserInfoByCreatedBy == null + || !_nssUserInfoByCreatedBy.hasConditionQuery()) { + _nssUserInfoByCreatedBy = new UserInfoNss(query() + .queryUserInfoByCreatedBy()); + } + return _nssUserInfoByCreatedBy; + } + + protected UserInfoNss _nssUserInfoByUpdatedBy; + + public UserInfoNss getNssUserInfoByUpdatedBy() { + if (_nssUserInfoByUpdatedBy == null) { + _nssUserInfoByUpdatedBy = new UserInfoNss(null); + } + return _nssUserInfoByUpdatedBy; + } + + public UserInfoNss setupSelect_UserInfoByUpdatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByUpdatedBy(); + } + }); + if (_nssUserInfoByUpdatedBy == null + || !_nssUserInfoByUpdatedBy.hasConditionQuery()) { + _nssUserInfoByUpdatedBy = new UserInfoNss(query() + .queryUserInfoByUpdatedBy()); + } + return _nssUserInfoByUpdatedBy; + } + + protected NotepadContentNss _nssNotepadContentAsOne; + + public NotepadContentNss getNssNotepadContentAsOne() { + if (_nssNotepadContentAsOne == null) { + _nssNotepadContentAsOne = new NotepadContentNss(null); + } + return _nssNotepadContentAsOne; + } + + public NotepadContentNss setupSelect_NotepadContentAsOne() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryNotepadContentAsOne(); + } + }); + if (_nssNotepadContentAsOne == null + || !_nssNotepadContentAsOne.hasConditionQuery()) { + _nssNotepadContentAsOne = new NotepadContentNss(query() + .queryNotepadContentAsOne()); + } + return _nssNotepadContentAsOne; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, new SpQyCall() { + public boolean has() { + return true; + } + + public NotepadCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected NotepadCategoryCB.Specification _notepadCategory; + + protected UserInfoCB.Specification _userInfoByCreatedBy; + + protected UserInfoCB.Specification _userInfoByUpdatedBy; + + protected NotepadContentCB.Specification _notepadContentAsOne; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnTitle() { + doColumn("TITLE"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnCategoryId() { + doColumn("CATEGORY_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryNotepadCategory()) { + columnCategoryId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfoByCreatedBy()) { + columnCreatedBy();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfoByUpdatedBy()) { + columnUpdatedBy();// FK + } + } + + protected String getTableDbName() { + return "NOTEPAD"; + } + + public NotepadCategoryCB.Specification specifyNotepadCategory() { + assertForeign("notepadCategory"); + if (_notepadCategory == null) { + _notepadCategory = new NotepadCategoryCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryNotepadCategory(); + } + + public NotepadCategoryCQ qy() { + return _myQyCall.qy().queryNotepadCategory(); + } + }, _forDeriveReferrer); + } + return _notepadCategory; + } + + public UserInfoCB.Specification specifyUserInfoByCreatedBy() { + assertForeign("userInfoByCreatedBy"); + if (_userInfoByCreatedBy == null) { + _userInfoByCreatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByCreatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByCreatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByCreatedBy; + } + + public UserInfoCB.Specification specifyUserInfoByUpdatedBy() { + assertForeign("userInfoByUpdatedBy"); + if (_userInfoByUpdatedBy == null) { + _userInfoByUpdatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByUpdatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByUpdatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByUpdatedBy; + } + + public NotepadContentCB.Specification specifyNotepadContentAsOne() { + assertForeign("notepadContentAsOne"); + if (_notepadContentAsOne == null) { + _notepadContentAsOne = new NotepadContentCB.Specification( + _baseCB, new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryNotepadContentAsOne(); + } + + public NotepadContentCQ qy() { + return _myQyCall.qy() + .queryNotepadContentAsOne(); + } + }, _forDeriveReferrer); + } + return _notepadContentAsOne; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return NotepadCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCategoryCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCategoryCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCategoryCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,377 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of NOTEPAD_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsNotepadCategoryCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadCategoryCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD_CATEGORY"; + } + + public String getTableSqlName() { + return "NOTEPAD_CATEGORY"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public NotepadCategoryCQ query() { + return getConditionQuery(); + } + + public NotepadCategoryCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new NotepadCategoryCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<NotepadCategoryCB>() {
    +     *     public void query(NotepadCategoryCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final NotepadCategoryCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<NotepadCategoryCB>() {
    +     *     public void query(NotepadCategoryCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final NotepadCategoryCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(NotepadCategoryCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(NotepadCategoryCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected UserInfoNss _nssUserInfoByCreatedBy; + + public UserInfoNss getNssUserInfoByCreatedBy() { + if (_nssUserInfoByCreatedBy == null) { + _nssUserInfoByCreatedBy = new UserInfoNss(null); + } + return _nssUserInfoByCreatedBy; + } + + public UserInfoNss setupSelect_UserInfoByCreatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByCreatedBy(); + } + }); + if (_nssUserInfoByCreatedBy == null + || !_nssUserInfoByCreatedBy.hasConditionQuery()) { + _nssUserInfoByCreatedBy = new UserInfoNss(query() + .queryUserInfoByCreatedBy()); + } + return _nssUserInfoByCreatedBy; + } + + protected UserInfoNss _nssUserInfoByUpdatedBy; + + public UserInfoNss getNssUserInfoByUpdatedBy() { + if (_nssUserInfoByUpdatedBy == null) { + _nssUserInfoByUpdatedBy = new UserInfoNss(null); + } + return _nssUserInfoByUpdatedBy; + } + + public UserInfoNss setupSelect_UserInfoByUpdatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByUpdatedBy(); + } + }); + if (_nssUserInfoByUpdatedBy == null + || !_nssUserInfoByUpdatedBy.hasConditionQuery()) { + _nssUserInfoByUpdatedBy = new UserInfoNss(query() + .queryUserInfoByUpdatedBy()); + } + return _nssUserInfoByUpdatedBy; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public NotepadCategoryCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected UserInfoCB.Specification _userInfoByCreatedBy; + + protected UserInfoCB.Specification _userInfoByUpdatedBy; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnType() { + doColumn("TYPE"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryUserInfoByCreatedBy()) { + columnCreatedBy();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfoByUpdatedBy()) { + columnUpdatedBy();// FK + } + } + + protected String getTableDbName() { + return "NOTEPAD_CATEGORY"; + } + + public UserInfoCB.Specification specifyUserInfoByCreatedBy() { + assertForeign("userInfoByCreatedBy"); + if (_userInfoByCreatedBy == null) { + _userInfoByCreatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByCreatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByCreatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByCreatedBy; + } + + public UserInfoCB.Specification specifyUserInfoByUpdatedBy() { + assertForeign("userInfoByUpdatedBy"); + if (_userInfoByUpdatedBy == null) { + _userInfoByUpdatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByUpdatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByUpdatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByUpdatedBy; + } + + public RAFunction derivedNotepadList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + NotepadCategoryCQ cq, String aliasName) { + cq + .xderiveNotepadList(function, subQuery, + aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return NotepadCategoryCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCategoryCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadCategoryCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadContentCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadContentCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadContentCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,272 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadContentCB; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.nss.NotepadNss; + +/** + * The base condition-bean of NOTEPAD_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsNotepadContentCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadContentCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD_CONTENT"; + } + + public String getTableSqlName() { + return "NOTEPAD_CONTENT"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public NotepadContentCQ query() { + return getConditionQuery(); + } + + public NotepadContentCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new NotepadContentCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<NotepadContentCB>() {
    +     *     public void query(NotepadContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final NotepadContentCB cb = new NotepadContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final NotepadContentCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<NotepadContentCB>() {
    +     *     public void query(NotepadContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final NotepadContentCB cb = new NotepadContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final NotepadContentCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(NotepadContentCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(NotepadContentCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected NotepadNss _nssNotepad; + + public NotepadNss getNssNotepad() { + if (_nssNotepad == null) { + _nssNotepad = new NotepadNss(null); + } + return _nssNotepad; + } + + public NotepadNss setupSelect_Notepad() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryNotepad(); + } + }); + if (_nssNotepad == null || !_nssNotepad.hasConditionQuery()) { + _nssNotepad = new NotepadNss(query().queryNotepad()); + } + return _nssNotepad; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public NotepadContentCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected NotepadCB.Specification _notepad; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnContent() { + doColumn("CONTENT"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryNotepad()) { + } + } + + protected String getTableDbName() { + return "NOTEPAD_CONTENT"; + } + + public NotepadCB.Specification specifyNotepad() { + assertForeign("notepad"); + if (_notepad == null) { + _notepad = new NotepadCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryNotepad(); + } + + public NotepadCQ qy() { + return _myQyCall.qy().queryNotepad(); + } + }, _forDeriveReferrer); + } + return _notepad; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return NotepadContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadContentCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsNotepadContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleInfoCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,292 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleMappingCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,325 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.notepad.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,462 @@ +package jp.sf.pal.notepad.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.notepad.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedNotepadByCreatedByList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveNotepadByCreatedByList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedNotepadByUpdatedByList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveNotepadByUpdatedByList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedNotepadCategoryByCreatedByList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveNotepadCategoryByCreatedByList(function, + subQuery, aliasName); + } + }); + } + + public RAFunction derivedNotepadCategoryByUpdatedByList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveNotepadCategoryByUpdatedByList(function, + subQuery, aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupMappingCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupMappingCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsNotepadCQ; + +/** + * The condition-query of NOTEPAD. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCQ extends BsNotepadCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public NotepadCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCategoryCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCategoryCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCategoryCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsNotepadCategoryCQ; + +/** + * The condition-query of NOTEPAD_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategoryCQ extends BsNotepadCategoryCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public NotepadCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadContentCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadContentCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadContentCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsNotepadContentCQ; + +/** + * The condition-query of NOTEPAD_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContentCQ extends BsNotepadContentCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public NotepadContentCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/NotepadContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleMappingCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleMappingCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/UserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/UserInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/UserInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,45 @@ +package jp.sf.pal.notepad.db.cbean.cq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1896 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,465 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1443 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.NotepadContentCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of NOTEPAD. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsNotepadCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsNotepadCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD"; + } + + public String getTableSqlName() { + return "NOTEPAD"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param notepadContentCBquery Query. + * @deprecated Please use inScopeNotepadContentAsOne(subQuery) method. + */ + public void setId_InScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ notepadContentCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_NotepadContentAsOne(notepadContentCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeNotepadContentAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadContentCB cb = new NotepadContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_NotepadContentAsOne(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery); + + public void notInScopeNotepadContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadContentCB cb = new NotepadContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_NotepadContentAsOne(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery); + + /** + * @param notepadContentCBquery Query. + * @deprecated Please use existsNotepadContentAsOne(subQuery) method. + */ + public void setId_ExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ notepadContentCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_NotepadContentAsOne(notepadContentCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(notepadContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ID from NOTEPAD_CONTENT where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_NotepadContentAsOne + * for 'exists'. (NotNull) + */ + public void existsNotepadContentAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadContentCB cb = new NotepadContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_NotepadContentAsOne(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ID from + * NOTEPAD_CONTENT where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_NotepadContentAsOne + * for 'not exists'. (NotNull) + */ + public void notExistsNotepadContentAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadContentCB cb = new NotepadContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_NotepadContentAsOne(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param title The value of title as equal. + */ + public void setTitle_Equal(String title) { + regTitle(CK_EQ, fRES(title)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as notEqual. + */ + public void setTitle_NotEqual(String title) { + regTitle(CK_NE, fRES(title)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterThan. + */ + public void setTitle_GreaterThan(String title) { + regTitle(CK_GT, fRES(title)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessThan. + */ + public void setTitle_LessThan(String title) { + regTitle(CK_LT, fRES(title)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterEqual. + */ + public void setTitle_GreaterEqual(String title) { + regTitle(CK_GE, fRES(title)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessEqual. + */ + public void setTitle_LessEqual(String title) { + regTitle(CK_LE, fRES(title)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as prefixSearch. + */ + public void setTitle_PrefixSearch(String title) { + regTitle(CK_PS, fRES(title)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param title The value of title as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTitle_LikeSearch( + String title, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as inScope. + */ + public void setTitle_InScope(Collection titleList) { + regTitle(CK_INS, cTL(titleList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param title The collection of title as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTitle_InScope( + String title, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as notInScope. + */ + public void setTitle_NotInScope(Collection titleList) { + regTitle(CK_NINS, cTL(titleList)); + } + + protected void regTitle(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTitle(), "TITLE", "Title", "title"); + } + + protected void registerInlineTitle(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTitle(), "TITLE", "Title", + "title"); + } + + abstract protected ConditionValue getCValueTitle(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : Default=[0] : FK to + * NOTEPAD_CATEGORY} + * + * @param categoryId The value of categoryId as equal. + */ + public void setCategoryId_Equal(Integer categoryId) { + regCategoryId(CK_EQ, categoryId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as notEqual. + */ + public void setCategoryId_NotEqual(Integer categoryId) { + regCategoryId(CK_NE, categoryId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as greaterThan. + */ + public void setCategoryId_GreaterThan(Integer categoryId) { + regCategoryId(CK_GT, categoryId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as lessThan. + */ + public void setCategoryId_LessThan(Integer categoryId) { + regCategoryId(CK_LT, categoryId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as greaterEqual. + */ + public void setCategoryId_GreaterEqual(Integer categoryId) { + regCategoryId(CK_GE, categoryId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param categoryId The value of categoryId as lessEqual. + */ + public void setCategoryId_LessEqual(Integer categoryId) { + regCategoryId(CK_LE, categoryId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param categoryIdList The collection of categoryId as inScope. + */ + public void setCategoryId_InScope(Collection categoryIdList) { + regCategoryId(CK_INS, cTL(categoryIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param categoryIdList The collection of categoryId as notInScope. + */ + public void setCategoryId_NotInScope(Collection categoryIdList) { + regCategoryId(CK_NINS, cTL(categoryIdList)); + } + + /** + * @param notepadCategoryCBquery Query. + * @deprecated Please use inScopeNotepadCategory(subQuery) method. + */ + public void setCategoryId_InScopeSubQuery_NotepadCategory( + NotepadCategoryCQ notepadCategoryCBquery) { + String subQueryPropertyName = keepCategoryId_InScopeSubQuery_NotepadCategory(notepadCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCategoryCBquery, "CATEGORY_ID", "ID", + subQueryPropertyName); + } + + public void inScopeNotepadCategory(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCategoryId_InScopeSubQuery_NotepadCategory(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CATEGORY_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepCategoryId_InScopeSubQuery_NotepadCategory( + NotepadCategoryCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setCategoryId_IsNull() { + regCategoryId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setCategoryId_IsNotNull() { + regCategoryId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regCategoryId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", + "CategoryId", "categoryId"); + } + + protected void registerInlineCategoryId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCategoryId(), "CATEGORY_ID", + "CategoryId", "categoryId"); + } + + abstract protected ConditionValue getCValueCategoryId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByCreatedBy(subQuery) method. + */ + public void setCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByCreatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ subQuery); + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByUpdatedBy(subQuery) method. + */ + public void setUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByUpdatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return NotepadCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCategoryCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCategoryCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCategoryCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1445 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of NOTEPAD_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsNotepadCategoryCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsNotepadCategoryCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD_CATEGORY"; + } + + public String getTableSqlName() { + return "NOTEPAD_CATEGORY"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param notepadCBquery Query. + * @deprecated Please use inScopeNotepadList(subQuery) method. + */ + public void setId_InScopeSubQuery_NotepadList(NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_NotepadList(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCBquery, "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + public void inScopeNotepadList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_NotepadList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_NotepadList(NotepadCQ subQuery); + + public void notInScopeNotepadList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_NotepadList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_NotepadList( + NotepadCQ subQuery); + + /** + * @param notepadCBquery Query. + * @deprecated Please use existsNotepadList(subQuery) method. + */ + public void setId_ExistsSubQuery_NotepadList(NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_NotepadList(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(notepadCBquery, "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CATEGORY_ID from NOTEPAD where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_NotepadList for + * 'exists'. (NotNull) + */ + public void existsNotepadList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_NotepadList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_NotepadList(NotepadCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CATEGORY_ID from + * NOTEPAD where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_NotepadList for + * 'not exists'. (NotNull) + */ + public void notExistsNotepadList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_NotepadList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_NotepadList( + NotepadCQ subQuery); + + public void xderiveNotepadList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_NotepadList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "CATEGORY_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_NotepadList(NotepadCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : + * Default=[P]} + * + * @param type The value of type as equal. + */ + public void setType_Equal(String type) { + regType(CK_EQ, fRES(type)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as notEqual. + */ + public void setType_NotEqual(String type) { + regType(CK_NE, fRES(type)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterThan. + */ + public void setType_GreaterThan(String type) { + regType(CK_GT, fRES(type)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessThan. + */ + public void setType_LessThan(String type) { + regType(CK_LT, fRES(type)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterEqual. + */ + public void setType_GreaterEqual(String type) { + regType(CK_GE, fRES(type)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessEqual. + */ + public void setType_LessEqual(String type) { + regType(CK_LE, fRES(type)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as prefixSearch. + */ + public void setType_PrefixSearch(String type) { + regType(CK_PS, fRES(type)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param type The value of type as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setType_LikeSearch( + String type, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", + "Type", "type", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as inScope. + */ + public void setType_InScope(Collection typeList) { + regType(CK_INS, cTL(typeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param type The collection of type as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setType_InScope( + String type, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", + "Type", "type", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as notInScope. + */ + public void setType_NotInScope(Collection typeList) { + regType(CK_NINS, cTL(typeList)); + } + + protected void regType(ConditionKey key, Object value) { + registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + protected void registerInlineType(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + abstract protected ConditionValue getCValueType(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByCreatedBy(subQuery) method. + */ + public void setCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByCreatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ subQuery); + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByUpdatedBy(subQuery) method. + */ + public void setUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByUpdatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return NotepadCategoryCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCategoryCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadContentCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadContentCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadContentCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,325 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadContentCB; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; + +/** + * The abstract condition-query of NOTEPAD_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsNotepadContentCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsNotepadContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "NOTEPAD_CONTENT"; + } + + public String getTableSqlName() { + return "NOTEPAD_CONTENT"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to + * NOTEPAD} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param notepadCBquery Query. + * @deprecated Please use inScopeNotepad(subQuery) method. + */ + public void setId_InScopeSubQuery_Notepad(NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_Notepad(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeNotepad(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_Notepad(cb.query());// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_Notepad(NotepadCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(4000)} + * + * @param content The value of content as equal. + */ + public void setContent_Equal(String content) { + regContent(CK_EQ, fRES(content)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as notEqual. + */ + public void setContent_NotEqual(String content) { + regContent(CK_NE, fRES(content)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterThan. + */ + public void setContent_GreaterThan(String content) { + regContent(CK_GT, fRES(content)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessThan. + */ + public void setContent_LessThan(String content) { + regContent(CK_LT, fRES(content)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterEqual. + */ + public void setContent_GreaterEqual(String content) { + regContent(CK_GE, fRES(content)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessEqual. + */ + public void setContent_LessEqual(String content) { + regContent(CK_LE, fRES(content)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as prefixSearch. + */ + public void setContent_PrefixSearch(String content) { + regContent(CK_PS, fRES(content)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param content The value of content as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setContent_LikeSearch( + String content, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as inScope. + */ + public void setContent_InScope(Collection contentList) { + regContent(CK_INS, cTL(contentList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param content The collection of content as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setContent_InScope( + String content, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as notInScope. + */ + public void setContent_NotInScope(Collection contentList) { + regContent(CK_NINS, cTL(contentList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setContent_IsNull() { + regContent(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setContent_IsNotNull() { + regContent(CK_ISNN, DUMMY_OBJECT); + } + + protected void regContent(ConditionKey key, Object value) { + registerQuery(key, value, getCValueContent(), "CONTENT", "Content", + "content"); + } + + protected void registerInlineContent(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueContent(), "CONTENT", + "Content", "content"); + } + + abstract protected ConditionValue getCValueContent(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return NotepadContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadContentCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsNotepadContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1894 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,464 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,3144 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.notepad.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.SubQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.GroupInfoCB; +import jp.sf.pal.notepad.db.cbean.GroupMappingCB; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.RoleInfoCB; +import jp.sf.pal.notepad.db.cbean.RoleMappingCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param notepadCBquery Query. + * @deprecated Please use inScopeNotepadByCreatedByList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_NotepadByCreatedByList( + NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadByCreatedByList(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + public void inScopeNotepadByCreatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadByCreatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery); + + /** + * @param notepadCBquery Query. + * @deprecated Please use inScopeNotepadByUpdatedByList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadByUpdatedByList(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCBquery, "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + public void inScopeNotepadByUpdatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadByUpdatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery); + + /** + * @param notepadCategoryCBquery Query. + * @deprecated Please use inScopeNotepadCategoryByCreatedByList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ notepadCategoryCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadCategoryByCreatedByList(notepadCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCategoryCBquery, "USER_ID", + "CREATED_BY", subQueryPropertyName); + } + + public void inScopeNotepadCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadCategoryByCreatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery); + + /** + * @param notepadCategoryCBquery Query. + * @deprecated Please use inScopeNotepadCategoryByUpdatedByList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ notepadCategoryCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList(notepadCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(notepadCategoryCBquery, "USER_ID", + "UPDATED_BY", subQueryPropertyName); + } + + public void inScopeNotepadCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeNotepadByCreatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_NotepadByCreatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery); + + public void notInScopeNotepadByUpdatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_NotepadByUpdatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery); + + public void notInScopeNotepadCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_NotepadCategoryByCreatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery); + + public void notInScopeNotepadCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param notepadCBquery Query. + * @deprecated Please use existsNotepadByCreatedByList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_NotepadByCreatedByList( + NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadByCreatedByList(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(notepadCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CREATED_BY from NOTEPAD where + * ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_NotepadByCreatedByList for 'exists'. + * (NotNull) + */ + public void existsNotepadByCreatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadByCreatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery); + + /** + * @param notepadCBquery Query. + * @deprecated Please use existsNotepadByUpdatedByList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ notepadCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadByUpdatedByList(notepadCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(notepadCBquery, "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select UPDATED_BY from NOTEPAD where + * ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_NotepadByUpdatedByList for 'exists'. + * (NotNull) + */ + public void existsNotepadByUpdatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadByUpdatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery); + + /** + * @param notepadCategoryCBquery Query. + * @deprecated Please use existsNotepadCategoryByCreatedByList(subQuery) + * method. + */ + public void setUserId_ExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ notepadCategoryCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadCategoryByCreatedByList(notepadCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(notepadCategoryCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CREATED_BY from + * NOTEPAD_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_NotepadCategoryByCreatedByList for + * 'exists'. (NotNull) + */ + public void existsNotepadCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadCategoryByCreatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery); + + /** + * @param notepadCategoryCBquery Query. + * @deprecated Please use existsNotepadCategoryByUpdatedByList(subQuery) + * method. + */ + public void setUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ notepadCategoryCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList(notepadCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(notepadCategoryCBquery, "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select UPDATED_BY from + * NOTEPAD_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_NotepadCategoryByUpdatedByList for + * 'exists'. (NotNull) + */ + public void existsNotepadCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CREATED_BY from + * NOTEPAD where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_NotepadByCreatedByList for 'not + * exists'. (NotNull) + */ + public void notExistsNotepadByCreatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_NotepadByCreatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select UPDATED_BY from + * NOTEPAD where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_NotepadByUpdatedByList for 'not + * exists'. (NotNull) + */ + public void notExistsNotepadByUpdatedByList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_NotepadByUpdatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CREATED_BY from + * NOTEPAD_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_NotepadCategoryByCreatedByList for + * 'not exists'. (NotNull) + */ + public void notExistsNotepadCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_NotepadCategoryByCreatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select UPDATED_BY from + * NOTEPAD_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_NotepadCategoryByUpdatedByList for + * 'not exists'. (NotNull) + */ + public void notExistsNotepadCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_NotepadCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveNotepadByCreatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_NotepadByCreatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery); + + public void xderiveNotepadByUpdatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + NotepadCB cb = new NotepadCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_NotepadByUpdatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery); + + public void xderiveNotepadCategoryByCreatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_NotepadCategoryByCreatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery); + + public void xderiveNotepadCategoryByUpdatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_NotepadCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,575 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,291 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,647 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.NotepadCIQ; + +/** + * The base condition-query of NOTEPAD. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsNotepadCQ extends AbstractBsNotepadCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsNotepadCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from NOTEPAD) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public NotepadCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new NotepadCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * NOTEPAD on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public NotepadCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + NotepadCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_NotepadContentAsOneMap; + + public Map getId_InScopeSubQuery_NotepadContentAsOne() { + return _id_InScopeSubQuery_NotepadContentAsOneMap; + } + + public String keepId_InScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + if (_id_InScopeSubQuery_NotepadContentAsOneMap == null) { + _id_InScopeSubQuery_NotepadContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_NotepadContentAsOneMap.size() + 1); + _id_InScopeSubQuery_NotepadContentAsOneMap.put(key, subQuery); + return "id_InScopeSubQuery_NotepadContentAsOne." + key; + } + + protected Map _id_NotInScopeSubQuery_NotepadContentAsOneMap; + + public Map getId_NotInScopeSubQuery_NotepadContentAsOne() { + return _id_NotInScopeSubQuery_NotepadContentAsOneMap; + } + + public String keepId_NotInScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + if (_id_NotInScopeSubQuery_NotepadContentAsOneMap == null) { + _id_NotInScopeSubQuery_NotepadContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_NotepadContentAsOneMap.size() + 1); + _id_NotInScopeSubQuery_NotepadContentAsOneMap.put(key, subQuery); + return "id_NotInScopeSubQuery_NotepadContentAsOne." + key; + } + + protected Map _id_ExistsSubQuery_NotepadContentAsOneMap; + + public Map getId_ExistsSubQuery_NotepadContentAsOne() { + return _id_ExistsSubQuery_NotepadContentAsOneMap; + } + + public String keepId_ExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + if (_id_ExistsSubQuery_NotepadContentAsOneMap == null) { + _id_ExistsSubQuery_NotepadContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_NotepadContentAsOneMap.size() + 1); + _id_ExistsSubQuery_NotepadContentAsOneMap.put(key, subQuery); + return "id_ExistsSubQuery_NotepadContentAsOne." + key; + } + + protected Map _id_NotExistsSubQuery_NotepadContentAsOneMap; + + public Map getId_NotExistsSubQuery_NotepadContentAsOne() { + return _id_NotExistsSubQuery_NotepadContentAsOneMap; + } + + public String keepId_NotExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + if (_id_NotExistsSubQuery_NotepadContentAsOneMap == null) { + _id_NotExistsSubQuery_NotepadContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_NotepadContentAsOneMap.size() + 1); + _id_NotExistsSubQuery_NotepadContentAsOneMap.put(key, subQuery); + return "id_NotExistsSubQuery_NotepadContentAsOne." + key; + } + + public BsNotepadCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsNotepadCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _title; + + public ConditionValue getTitle() { + if (_title == null) { + _title = new ConditionValue(); + } + return _title; + } + + protected ConditionValue getCValueTitle() { + return getTitle(); + } + + public BsNotepadCQ addOrderBy_Title_Asc() { + regOBA("TITLE"); + return this; + } + + public BsNotepadCQ addOrderBy_Title_Desc() { + regOBD("TITLE"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsNotepadCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsNotepadCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _categoryId; + + public ConditionValue getCategoryId() { + if (_categoryId == null) { + _categoryId = new ConditionValue(); + } + return _categoryId; + } + + protected ConditionValue getCValueCategoryId() { + return getCategoryId(); + } + + protected Map _categoryId_InScopeSubQuery_NotepadCategoryMap; + + public Map getCategoryId_InScopeSubQuery_NotepadCategory() { + return _categoryId_InScopeSubQuery_NotepadCategoryMap; + } + + public String keepCategoryId_InScopeSubQuery_NotepadCategory( + NotepadCategoryCQ subQuery) { + if (_categoryId_InScopeSubQuery_NotepadCategoryMap == null) { + _categoryId_InScopeSubQuery_NotepadCategoryMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_categoryId_InScopeSubQuery_NotepadCategoryMap.size() + 1); + _categoryId_InScopeSubQuery_NotepadCategoryMap.put(key, subQuery); + return "categoryId_InScopeSubQuery_NotepadCategory." + key; + } + + public BsNotepadCQ addOrderBy_CategoryId_Asc() { + regOBA("CATEGORY_ID"); + return this; + } + + public BsNotepadCQ addOrderBy_CategoryId_Desc() { + regOBD("CATEGORY_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsNotepadCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsNotepadCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + protected Map _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + + public Map getCreatedBy_InScopeSubQuery_UserInfoByCreatedBy() { + return _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + } + + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + if (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap == null) { + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap.size() + 1); + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap.put(key, subQuery); + return "createdBy_InScopeSubQuery_UserInfoByCreatedBy." + key; + } + + public BsNotepadCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsNotepadCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsNotepadCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsNotepadCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + protected Map _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + + public Map getUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy() { + return _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + } + + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + if (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap == null) { + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.size() + 1); + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.put(key, subQuery); + return "updatedBy_InScopeSubQuery_UserInfoByUpdatedBy." + key; + } + + public BsNotepadCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsNotepadCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsNotepadCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsNotepadCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsNotepadCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsNotepadCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsNotepadCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsNotepadCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsNotepadCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsNotepadCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + NotepadCQ baseQuery = (NotepadCQ) baseQueryAsSuper; + NotepadCQ unionQuery = (NotepadCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryNotepadCategory()) { + unionQuery.queryNotepadCategory().reflectRelationOnUnionQuery( + baseQuery.queryNotepadCategory(), + unionQuery.queryNotepadCategory()); + } + if (baseQuery.hasConditionQueryUserInfoByCreatedBy()) { + unionQuery.queryUserInfoByCreatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByCreatedBy(), + unionQuery.queryUserInfoByCreatedBy()); + } + if (baseQuery.hasConditionQueryUserInfoByUpdatedBy()) { + unionQuery.queryUserInfoByUpdatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByUpdatedBy(), + unionQuery.queryUserInfoByUpdatedBy()); + } + if (baseQuery.hasConditionQueryNotepadContentAsOne()) { + unionQuery.queryNotepadContentAsOne().reflectRelationOnUnionQuery( + baseQuery.queryNotepadContentAsOne(), + unionQuery.queryNotepadContentAsOne()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public NotepadCategoryCQ queryNotepadCategory() { + return getConditionQueryNotepadCategory(); + } + + protected NotepadCategoryCQ _conditionQueryNotepadCategory; + + public NotepadCategoryCQ getConditionQueryNotepadCategory() { + if (_conditionQueryNotepadCategory == null) { + _conditionQueryNotepadCategory = createQueryNotepadCategory(); + setupOuterJoin_NotepadCategory(); + } + return _conditionQueryNotepadCategory; + } + + protected void setupOuterJoin_NotepadCategory() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CATEGORY_ID"), + getConditionQueryNotepadCategory().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryNotepadCategory(), joinOnMap); + } + + protected NotepadCategoryCQ createQueryNotepadCategory() { + String nrp = resolveNextRelationPath("NOTEPAD", "notepadCategory"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + NotepadCategoryCQ cq = new NotepadCategoryCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("notepadCategory"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryNotepadCategory() { + return _conditionQueryNotepadCategory != null; + } + + public UserInfoCQ queryUserInfoByCreatedBy() { + return getConditionQueryUserInfoByCreatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByCreatedBy; + + public UserInfoCQ getConditionQueryUserInfoByCreatedBy() { + if (_conditionQueryUserInfoByCreatedBy == null) { + _conditionQueryUserInfoByCreatedBy = createQueryUserInfoByCreatedBy(); + setupOuterJoin_UserInfoByCreatedBy(); + } + return _conditionQueryUserInfoByCreatedBy; + } + + protected void setupOuterJoin_UserInfoByCreatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CREATED_BY"), + getConditionQueryUserInfoByCreatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByCreatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByCreatedBy() { + String nrp = resolveNextRelationPath("NOTEPAD", "userInfoByCreatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByCreatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByCreatedBy() { + return _conditionQueryUserInfoByCreatedBy != null; + } + + public UserInfoCQ queryUserInfoByUpdatedBy() { + return getConditionQueryUserInfoByUpdatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByUpdatedBy; + + public UserInfoCQ getConditionQueryUserInfoByUpdatedBy() { + if (_conditionQueryUserInfoByUpdatedBy == null) { + _conditionQueryUserInfoByUpdatedBy = createQueryUserInfoByUpdatedBy(); + setupOuterJoin_UserInfoByUpdatedBy(); + } + return _conditionQueryUserInfoByUpdatedBy; + } + + protected void setupOuterJoin_UserInfoByUpdatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("UPDATED_BY"), + getConditionQueryUserInfoByUpdatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByUpdatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByUpdatedBy() { + String nrp = resolveNextRelationPath("NOTEPAD", "userInfoByUpdatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByUpdatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByUpdatedBy() { + return _conditionQueryUserInfoByUpdatedBy != null; + } + + public NotepadContentCQ queryNotepadContentAsOne() { + return getConditionQueryNotepadContentAsOne(); + } + + protected NotepadContentCQ _conditionQueryNotepadContentAsOne; + + public NotepadContentCQ getConditionQueryNotepadContentAsOne() { + if (_conditionQueryNotepadContentAsOne == null) { + _conditionQueryNotepadContentAsOne = createQueryNotepadContentAsOne(); + setupOuterJoin_NotepadContentAsOne(); + } + return _conditionQueryNotepadContentAsOne; + } + + protected void setupOuterJoin_NotepadContentAsOne() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), + getConditionQueryNotepadContentAsOne().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryNotepadContentAsOne(), joinOnMap); + } + + protected NotepadContentCQ createQueryNotepadContentAsOne() { + String nrp = resolveNextRelationPath("NOTEPAD", "notepadContentAsOne"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + NotepadContentCQ cq = new NotepadContentCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("notepadContentAsOne"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryNotepadContentAsOne() { + return _conditionQueryNotepadContentAsOne != null; + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCategoryCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCategoryCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCategoryCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,563 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.NotepadCategoryCIQ; + +/** + * The base condition-query of NOTEPAD_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsNotepadCategoryCQ extends AbstractBsNotepadCategoryCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadCategoryCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsNotepadCategoryCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from NOTEPAD_CATEGORY) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public NotepadCategoryCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new NotepadCategoryCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * NOTEPAD_CATEGORY on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public NotepadCategoryCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + NotepadCategoryCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_NotepadListMap; + + public Map getId_InScopeSubQuery_NotepadList() { + return _id_InScopeSubQuery_NotepadListMap; + } + + public String keepId_InScopeSubQuery_NotepadList(NotepadCQ subQuery) { + if (_id_InScopeSubQuery_NotepadListMap == null) { + _id_InScopeSubQuery_NotepadListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_NotepadListMap.size() + 1); + _id_InScopeSubQuery_NotepadListMap.put(key, subQuery); + return "id_InScopeSubQuery_NotepadList." + key; + } + + protected Map _id_NotInScopeSubQuery_NotepadListMap; + + public Map getId_NotInScopeSubQuery_NotepadList() { + return _id_NotInScopeSubQuery_NotepadListMap; + } + + public String keepId_NotInScopeSubQuery_NotepadList(NotepadCQ subQuery) { + if (_id_NotInScopeSubQuery_NotepadListMap == null) { + _id_NotInScopeSubQuery_NotepadListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_NotepadListMap.size() + 1); + _id_NotInScopeSubQuery_NotepadListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_NotepadList." + key; + } + + protected Map _id_ExistsSubQuery_NotepadListMap; + + public Map getId_ExistsSubQuery_NotepadList() { + return _id_ExistsSubQuery_NotepadListMap; + } + + public String keepId_ExistsSubQuery_NotepadList(NotepadCQ subQuery) { + if (_id_ExistsSubQuery_NotepadListMap == null) { + _id_ExistsSubQuery_NotepadListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_NotepadListMap.size() + 1); + _id_ExistsSubQuery_NotepadListMap.put(key, subQuery); + return "id_ExistsSubQuery_NotepadList." + key; + } + + protected Map _id_NotExistsSubQuery_NotepadListMap; + + public Map getId_NotExistsSubQuery_NotepadList() { + return _id_NotExistsSubQuery_NotepadListMap; + } + + public String keepId_NotExistsSubQuery_NotepadList(NotepadCQ subQuery) { + if (_id_NotExistsSubQuery_NotepadListMap == null) { + _id_NotExistsSubQuery_NotepadListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_NotepadListMap.size() + 1); + _id_NotExistsSubQuery_NotepadListMap.put(key, subQuery); + return "id_NotExistsSubQuery_NotepadList." + key; + } + + protected Map _id_DeriveSubQuery_NotepadListMap; + + public Map getId_DeriveSubQuery_NotepadList() { + return _id_DeriveSubQuery_NotepadListMap; + } + + public String keepId_DeriveSubQuery_NotepadList(NotepadCQ subQuery) { + if (_id_DeriveSubQuery_NotepadListMap == null) { + _id_DeriveSubQuery_NotepadListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_NotepadListMap.size() + 1); + _id_DeriveSubQuery_NotepadListMap.put(key, subQuery); + return "id_DeriveSubQuery_NotepadList." + key; + } + + public BsNotepadCategoryCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsNotepadCategoryCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _type; + + public ConditionValue getType() { + if (_type == null) { + _type = new ConditionValue(); + } + return _type; + } + + protected ConditionValue getCValueType() { + return getType(); + } + + public BsNotepadCategoryCQ addOrderBy_Type_Asc() { + regOBA("TYPE"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_Type_Desc() { + regOBD("TYPE"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsNotepadCategoryCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsNotepadCategoryCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + protected Map _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + + public Map getCreatedBy_InScopeSubQuery_UserInfoByCreatedBy() { + return _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + } + + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + if (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap == null) { + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap.size() + 1); + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap.put(key, subQuery); + return "createdBy_InScopeSubQuery_UserInfoByCreatedBy." + key; + } + + public BsNotepadCategoryCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsNotepadCategoryCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + protected Map _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + + public Map getUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy() { + return _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + } + + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + if (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap == null) { + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.size() + 1); + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.put(key, subQuery); + return "updatedBy_InScopeSubQuery_UserInfoByUpdatedBy." + key; + } + + public BsNotepadCategoryCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsNotepadCategoryCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsNotepadCategoryCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsNotepadCategoryCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsNotepadCategoryCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsNotepadCategoryCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsNotepadCategoryCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + NotepadCategoryCQ baseQuery = (NotepadCategoryCQ) baseQueryAsSuper; + NotepadCategoryCQ unionQuery = (NotepadCategoryCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryUserInfoByCreatedBy()) { + unionQuery.queryUserInfoByCreatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByCreatedBy(), + unionQuery.queryUserInfoByCreatedBy()); + } + if (baseQuery.hasConditionQueryUserInfoByUpdatedBy()) { + unionQuery.queryUserInfoByUpdatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByUpdatedBy(), + unionQuery.queryUserInfoByUpdatedBy()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public UserInfoCQ queryUserInfoByCreatedBy() { + return getConditionQueryUserInfoByCreatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByCreatedBy; + + public UserInfoCQ getConditionQueryUserInfoByCreatedBy() { + if (_conditionQueryUserInfoByCreatedBy == null) { + _conditionQueryUserInfoByCreatedBy = createQueryUserInfoByCreatedBy(); + setupOuterJoin_UserInfoByCreatedBy(); + } + return _conditionQueryUserInfoByCreatedBy; + } + + protected void setupOuterJoin_UserInfoByCreatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CREATED_BY"), + getConditionQueryUserInfoByCreatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByCreatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByCreatedBy() { + String nrp = resolveNextRelationPath("NOTEPAD_CATEGORY", + "userInfoByCreatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByCreatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByCreatedBy() { + return _conditionQueryUserInfoByCreatedBy != null; + } + + public UserInfoCQ queryUserInfoByUpdatedBy() { + return getConditionQueryUserInfoByUpdatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByUpdatedBy; + + public UserInfoCQ getConditionQueryUserInfoByUpdatedBy() { + if (_conditionQueryUserInfoByUpdatedBy == null) { + _conditionQueryUserInfoByUpdatedBy = createQueryUserInfoByUpdatedBy(); + setupOuterJoin_UserInfoByUpdatedBy(); + } + return _conditionQueryUserInfoByUpdatedBy; + } + + protected void setupOuterJoin_UserInfoByUpdatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("UPDATED_BY"), + getConditionQueryUserInfoByUpdatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByUpdatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByUpdatedBy() { + String nrp = resolveNextRelationPath("NOTEPAD_CATEGORY", + "userInfoByUpdatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByUpdatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByUpdatedBy() { + return _conditionQueryUserInfoByUpdatedBy != null; + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCategoryCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadCategoryCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadContentCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadContentCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadContentCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,212 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.NotepadContentCIQ; + +/** + * The base condition-query of NOTEPAD_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsNotepadContentCQ extends AbstractBsNotepadContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected NotepadContentCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsNotepadContentCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from NOTEPAD_CONTENT) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public NotepadContentCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new NotepadContentCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * NOTEPAD_CONTENT on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public NotepadContentCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + NotepadContentCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_NotepadMap; + + public Map getId_InScopeSubQuery_Notepad() { + return _id_InScopeSubQuery_NotepadMap; + } + + public String keepId_InScopeSubQuery_Notepad(NotepadCQ subQuery) { + if (_id_InScopeSubQuery_NotepadMap == null) { + _id_InScopeSubQuery_NotepadMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_NotepadMap.size() + 1); + _id_InScopeSubQuery_NotepadMap.put(key, subQuery); + return "id_InScopeSubQuery_Notepad." + key; + } + + public BsNotepadContentCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsNotepadContentCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _content; + + public ConditionValue getContent() { + if (_content == null) { + _content = new ConditionValue(); + } + return _content; + } + + protected ConditionValue getCValueContent() { + return getContent(); + } + + public BsNotepadContentCQ addOrderBy_Content_Asc() { + regOBA("CONTENT"); + return this; + } + + public BsNotepadContentCQ addOrderBy_Content_Desc() { + regOBD("CONTENT"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsNotepadContentCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsNotepadContentCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + NotepadContentCQ baseQuery = (NotepadContentCQ) baseQueryAsSuper; + NotepadContentCQ unionQuery = (NotepadContentCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryNotepad()) { + unionQuery.queryNotepad().reflectRelationOnUnionQuery( + baseQuery.queryNotepad(), unionQuery.queryNotepad()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public NotepadCQ queryNotepad() { + return getConditionQueryNotepad(); + } + + protected NotepadCQ _conditionQueryNotepad; + + public NotepadCQ getConditionQueryNotepad() { + if (_conditionQueryNotepad == null) { + _conditionQueryNotepad = createQueryNotepad(); + setupOuterJoin_Notepad(); + } + return _conditionQueryNotepad; + } + + protected void setupOuterJoin_Notepad() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), getConditionQueryNotepad() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryNotepad(), joinOnMap); + } + + protected NotepadCQ createQueryNotepad() { + String nrp = resolveNextRelationPath("NOTEPAD_CONTENT", "notepad"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + NotepadCQ cq = new NotepadCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("notepad"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryNotepad() { + return _conditionQueryNotepad != null; + } + + protected String getConditionQueryClassNameInternally() { + return NotepadContentCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsNotepadContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,574 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,291 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,1172 @@ +package jp.sf.pal.notepad.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_NotepadByCreatedByListMap; + + public Map getUserId_InScopeSubQuery_NotepadByCreatedByList() { + return _userId_InScopeSubQuery_NotepadByCreatedByListMap; + } + + public String keepUserId_InScopeSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + if (_userId_InScopeSubQuery_NotepadByCreatedByListMap == null) { + _userId_InScopeSubQuery_NotepadByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_NotepadByCreatedByListMap.size() + 1); + _userId_InScopeSubQuery_NotepadByCreatedByListMap.put(key, subQuery); + return "userId_InScopeSubQuery_NotepadByCreatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_NotepadByUpdatedByListMap; + + public Map getUserId_InScopeSubQuery_NotepadByUpdatedByList() { + return _userId_InScopeSubQuery_NotepadByUpdatedByListMap; + } + + public String keepUserId_InScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + if (_userId_InScopeSubQuery_NotepadByUpdatedByListMap == null) { + _userId_InScopeSubQuery_NotepadByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_NotepadByUpdatedByListMap.size() + 1); + _userId_InScopeSubQuery_NotepadByUpdatedByListMap.put(key, subQuery); + return "userId_InScopeSubQuery_NotepadByUpdatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_NotepadCategoryByCreatedByListMap; + + public Map getUserId_InScopeSubQuery_NotepadCategoryByCreatedByList() { + return _userId_InScopeSubQuery_NotepadCategoryByCreatedByListMap; + } + + public String keepUserId_InScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_InScopeSubQuery_NotepadCategoryByCreatedByListMap == null) { + _userId_InScopeSubQuery_NotepadCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_NotepadCategoryByCreatedByListMap + .size() + 1); + _userId_InScopeSubQuery_NotepadCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_InScopeSubQuery_NotepadCategoryByCreatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_NotepadCategoryByUpdatedByListMap; + + public Map getUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList() { + return _userId_InScopeSubQuery_NotepadCategoryByUpdatedByListMap; + } + + public String keepUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_InScopeSubQuery_NotepadCategoryByUpdatedByListMap == null) { + _userId_InScopeSubQuery_NotepadCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_NotepadCategoryByUpdatedByListMap + .size() + 1); + _userId_InScopeSubQuery_NotepadCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_InScopeSubQuery_NotepadCategoryByUpdatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_NotepadByCreatedByListMap; + + public Map getUserId_NotInScopeSubQuery_NotepadByCreatedByList() { + return _userId_NotInScopeSubQuery_NotepadByCreatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + if (_userId_NotInScopeSubQuery_NotepadByCreatedByListMap == null) { + _userId_NotInScopeSubQuery_NotepadByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_NotepadByCreatedByListMap.size() + 1); + _userId_NotInScopeSubQuery_NotepadByCreatedByListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_NotepadByCreatedByList." + key; + } + + protected Map _userId_NotInScopeSubQuery_NotepadByUpdatedByListMap; + + public Map getUserId_NotInScopeSubQuery_NotepadByUpdatedByList() { + return _userId_NotInScopeSubQuery_NotepadByUpdatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + if (_userId_NotInScopeSubQuery_NotepadByUpdatedByListMap == null) { + _userId_NotInScopeSubQuery_NotepadByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_NotepadByUpdatedByListMap.size() + 1); + _userId_NotInScopeSubQuery_NotepadByUpdatedByListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_NotepadByUpdatedByList." + key; + } + + protected Map _userId_NotInScopeSubQuery_NotepadCategoryByCreatedByListMap; + + public Map getUserId_NotInScopeSubQuery_NotepadCategoryByCreatedByList() { + return _userId_NotInScopeSubQuery_NotepadCategoryByCreatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_NotInScopeSubQuery_NotepadCategoryByCreatedByListMap == null) { + _userId_NotInScopeSubQuery_NotepadCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_NotepadCategoryByCreatedByListMap + .size() + 1); + _userId_NotInScopeSubQuery_NotepadCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_NotepadCategoryByCreatedByList." + + key; + } + + protected Map _userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByListMap; + + public Map getUserId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList() { + return _userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByListMap == null) { + _userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByListMap + .size() + 1); + _userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList." + + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_NotepadByCreatedByListMap; + + public Map getUserId_ExistsSubQuery_NotepadByCreatedByList() { + return _userId_ExistsSubQuery_NotepadByCreatedByListMap; + } + + public String keepUserId_ExistsSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + if (_userId_ExistsSubQuery_NotepadByCreatedByListMap == null) { + _userId_ExistsSubQuery_NotepadByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_NotepadByCreatedByListMap.size() + 1); + _userId_ExistsSubQuery_NotepadByCreatedByListMap.put(key, subQuery); + return "userId_ExistsSubQuery_NotepadByCreatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_NotepadByUpdatedByListMap; + + public Map getUserId_ExistsSubQuery_NotepadByUpdatedByList() { + return _userId_ExistsSubQuery_NotepadByUpdatedByListMap; + } + + public String keepUserId_ExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + if (_userId_ExistsSubQuery_NotepadByUpdatedByListMap == null) { + _userId_ExistsSubQuery_NotepadByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_NotepadByUpdatedByListMap.size() + 1); + _userId_ExistsSubQuery_NotepadByUpdatedByListMap.put(key, subQuery); + return "userId_ExistsSubQuery_NotepadByUpdatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_NotepadCategoryByCreatedByListMap; + + public Map getUserId_ExistsSubQuery_NotepadCategoryByCreatedByList() { + return _userId_ExistsSubQuery_NotepadCategoryByCreatedByListMap; + } + + public String keepUserId_ExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_ExistsSubQuery_NotepadCategoryByCreatedByListMap == null) { + _userId_ExistsSubQuery_NotepadCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_NotepadCategoryByCreatedByListMap + .size() + 1); + _userId_ExistsSubQuery_NotepadCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_ExistsSubQuery_NotepadCategoryByCreatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_NotepadCategoryByUpdatedByListMap; + + public Map getUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList() { + return _userId_ExistsSubQuery_NotepadCategoryByUpdatedByListMap; + } + + public String keepUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_ExistsSubQuery_NotepadCategoryByUpdatedByListMap == null) { + _userId_ExistsSubQuery_NotepadCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_NotepadCategoryByUpdatedByListMap + .size() + 1); + _userId_ExistsSubQuery_NotepadCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_ExistsSubQuery_NotepadCategoryByUpdatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_NotepadByCreatedByListMap; + + public Map getUserId_NotExistsSubQuery_NotepadByCreatedByList() { + return _userId_NotExistsSubQuery_NotepadByCreatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + if (_userId_NotExistsSubQuery_NotepadByCreatedByListMap == null) { + _userId_NotExistsSubQuery_NotepadByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_NotepadByCreatedByListMap.size() + 1); + _userId_NotExistsSubQuery_NotepadByCreatedByListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_NotepadByCreatedByList." + key; + } + + protected Map _userId_NotExistsSubQuery_NotepadByUpdatedByListMap; + + public Map getUserId_NotExistsSubQuery_NotepadByUpdatedByList() { + return _userId_NotExistsSubQuery_NotepadByUpdatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + if (_userId_NotExistsSubQuery_NotepadByUpdatedByListMap == null) { + _userId_NotExistsSubQuery_NotepadByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_NotepadByUpdatedByListMap.size() + 1); + _userId_NotExistsSubQuery_NotepadByUpdatedByListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_NotepadByUpdatedByList." + key; + } + + protected Map _userId_NotExistsSubQuery_NotepadCategoryByCreatedByListMap; + + public Map getUserId_NotExistsSubQuery_NotepadCategoryByCreatedByList() { + return _userId_NotExistsSubQuery_NotepadCategoryByCreatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_NotExistsSubQuery_NotepadCategoryByCreatedByListMap == null) { + _userId_NotExistsSubQuery_NotepadCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_NotepadCategoryByCreatedByListMap + .size() + 1); + _userId_NotExistsSubQuery_NotepadCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_NotepadCategoryByCreatedByList." + key; + } + + protected Map _userId_NotExistsSubQuery_NotepadCategoryByUpdatedByListMap; + + public Map getUserId_NotExistsSubQuery_NotepadCategoryByUpdatedByList() { + return _userId_NotExistsSubQuery_NotepadCategoryByUpdatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_NotExistsSubQuery_NotepadCategoryByUpdatedByListMap == null) { + _userId_NotExistsSubQuery_NotepadCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_NotepadCategoryByUpdatedByListMap + .size() + 1); + _userId_NotExistsSubQuery_NotepadCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_NotepadCategoryByUpdatedByList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_NotepadByCreatedByListMap; + + public Map getUserId_DeriveSubQuery_NotepadByCreatedByList() { + return _userId_DeriveSubQuery_NotepadByCreatedByListMap; + } + + public String keepUserId_DeriveSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + if (_userId_DeriveSubQuery_NotepadByCreatedByListMap == null) { + _userId_DeriveSubQuery_NotepadByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_NotepadByCreatedByListMap.size() + 1); + _userId_DeriveSubQuery_NotepadByCreatedByListMap.put(key, subQuery); + return "userId_DeriveSubQuery_NotepadByCreatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_NotepadByUpdatedByListMap; + + public Map getUserId_DeriveSubQuery_NotepadByUpdatedByList() { + return _userId_DeriveSubQuery_NotepadByUpdatedByListMap; + } + + public String keepUserId_DeriveSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + if (_userId_DeriveSubQuery_NotepadByUpdatedByListMap == null) { + _userId_DeriveSubQuery_NotepadByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_NotepadByUpdatedByListMap.size() + 1); + _userId_DeriveSubQuery_NotepadByUpdatedByListMap.put(key, subQuery); + return "userId_DeriveSubQuery_NotepadByUpdatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_NotepadCategoryByCreatedByListMap; + + public Map getUserId_DeriveSubQuery_NotepadCategoryByCreatedByList() { + return _userId_DeriveSubQuery_NotepadCategoryByCreatedByListMap; + } + + public String keepUserId_DeriveSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_DeriveSubQuery_NotepadCategoryByCreatedByListMap == null) { + _userId_DeriveSubQuery_NotepadCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_NotepadCategoryByCreatedByListMap + .size() + 1); + _userId_DeriveSubQuery_NotepadCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_DeriveSubQuery_NotepadCategoryByCreatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_NotepadCategoryByUpdatedByListMap; + + public Map getUserId_DeriveSubQuery_NotepadCategoryByUpdatedByList() { + return _userId_DeriveSubQuery_NotepadCategoryByUpdatedByListMap; + } + + public String keepUserId_DeriveSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + if (_userId_DeriveSubQuery_NotepadCategoryByUpdatedByListMap == null) { + _userId_DeriveSubQuery_NotepadCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_NotepadCategoryByUpdatedByListMap + .size() + 1); + _userId_DeriveSubQuery_NotepadCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_DeriveSubQuery_NotepadCategoryByUpdatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,202 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,118 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,182 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsNotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsNotepadCQ; + +/** + * The condition-inline-query of NOTEPAD. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCIQ extends AbstractBsNotepadCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsNotepadCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public NotepadCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsNotepadCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_NotepadContentAsOne(subQuery); + } + + public String keepId_NotInScopeSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_NotepadContentAsOne(subQuery); + } + + public String keepId_ExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_NotepadContentAsOne( + NotepadContentCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueTitle() { + return _myCQ.getTitle(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueCategoryId() { + return _myCQ.getCategoryId(); + } + + public String keepCategoryId_InScopeSubQuery_NotepadCategory( + NotepadCategoryCQ subQuery) { + return _myCQ.keepCategoryId_InScopeSubQuery_NotepadCategory(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(subQuery); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(subQuery); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCategoryCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCategoryCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCategoryCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,177 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsNotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsNotepadCategoryCQ; + +/** + * The condition-inline-query of NOTEPAD_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategoryCIQ extends AbstractBsNotepadCategoryCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsNotepadCategoryCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public NotepadCategoryCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsNotepadCategoryCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_NotepadList(NotepadCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_NotepadList(subQuery); + } + + public String keepId_NotInScopeSubQuery_NotepadList(NotepadCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_NotepadList(subQuery); + } + + public String keepId_ExistsSubQuery_NotepadList(NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_NotepadList(NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_NotepadList(NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueType() { + return _myCQ.getType(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(subQuery); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(subQuery); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadCategoryCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadCategoryCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadContentCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadContentCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadContentCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,109 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsNotepadContentCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsNotepadContentCQ; + +/** + * The condition-inline-query of NOTEPAD_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContentCIQ extends AbstractBsNotepadContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsNotepadContentCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public NotepadContentCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsNotepadContentCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_Notepad(NotepadCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_Notepad(subQuery); + } + + protected ConditionValue getCValueContent() { + return _myCQ.getContent(); + } + + protected String getConditionQueryClassNameInternally() { + return NotepadContentCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/NotepadContentCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,201 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,118 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,358 @@ +package jp.sf.pal.notepad.db.cbean.cq.ciq; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.notepad.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.notepad.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.notepad.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.notepad.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_NotepadByCreatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_NotepadByUpdatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_NotepadCategoryByCreatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_NotepadCategoryByUpdatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_NotepadByCreatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_NotepadByUpdatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_NotepadCategoryByCreatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_NotepadCategoryByUpdatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_NotepadByCreatedByList( + NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_NotepadByUpdatedByList( + NotepadCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_NotepadCategoryByCreatedByList( + NotepadCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_NotepadCategoryByUpdatedByList( + NotepadCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupInfoNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupInfoNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupInfoNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,32 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupMappingNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupMappingNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupMappingNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,50 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadCategoryNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadCategoryNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadCategoryNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,50 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCategoryCQ; + +/** + * The nest-select-setupper of NOTEPAD_CATEGORY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategoryNss { + + protected NotepadCategoryCQ _query; + + public NotepadCategoryNss(NotepadCategoryCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public UserInfoNss withUserInfoByCreatedBy() { + _query.doNss(new NotepadCategoryCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByCreatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByCreatedBy()); + } + + public UserInfoNss withUserInfoByUpdatedBy() { + _query.doNss(new NotepadCategoryCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByUpdatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByUpdatedBy()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadCategoryNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadContentNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadContentNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadContentNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,41 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.cbean.cq.NotepadContentCQ; + +/** + * The nest-select-setupper of NOTEPAD_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContentNss { + + protected NotepadContentCQ _query; + + public NotepadContentNss(NotepadContentCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public NotepadNss withNotepad() { + _query.doNss(new NotepadContentCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryNotepad(); + } + }); + return new NotepadNss(_query.queryNotepad()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadContentNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,67 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.cbean.cq.NotepadCQ; + +/** + * The nest-select-setupper of NOTEPAD. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadNss { + + protected NotepadCQ _query; + + public NotepadNss(NotepadCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public NotepadCategoryNss withNotepadCategory() { + _query.doNss(new NotepadCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryNotepadCategory(); + } + }); + return new NotepadCategoryNss(_query.queryNotepadCategory()); + } + + public UserInfoNss withUserInfoByCreatedBy() { + _query.doNss(new NotepadCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByCreatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByCreatedBy()); + } + + public UserInfoNss withUserInfoByUpdatedBy() { + _query.doNss(new NotepadCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByUpdatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByUpdatedBy()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== + public NotepadContentNss withNotepadContentAsOne() { + _query.doNss(new NotepadCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryNotepadContentAsOne(); + } + }); + return new NotepadContentNss(_query.queryNotepadContentAsOne()); + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/NotepadNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleInfoNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleInfoNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleInfoNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,32 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleMappingNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleMappingNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleMappingNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,50 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/UserInfoNss.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/UserInfoNss.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/UserInfoNss.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,50 @@ +package jp.sf.pal.notepad.db.cbean.nss; + +import jp.sf.pal.notepad.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.notepad.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupInfoBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupInfoBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.notepad.db.bsbhv.BsGroupInfoBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupMappingBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupMappingBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupMappingBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.notepad.db.bsbhv.BsGroupMappingBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of NOTEPAD. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadBhv extends jp.sf.pal.notepad.db.bsbhv.BsNotepadBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadCategoryBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadCategoryBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadCategoryBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of NOTEPAD_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategoryBhv extends + jp.sf.pal.notepad.db.bsbhv.BsNotepadCategoryBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadCategoryBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadContentBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadContentBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadContentBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of NOTEPAD_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContentBhv extends + jp.sf.pal.notepad.db.bsbhv.BsNotepadContentBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/NotepadContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleInfoBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleInfoBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.notepad.db.bsbhv.BsRoleInfoBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleMappingBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleMappingBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleMappingBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends jp.sf.pal.notepad.db.bsbhv.BsRoleMappingBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/UserInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/UserInfoBhv.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/UserInfoBhv.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exbhv; + +/** + * The behavior of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.notepad.db.bsbhv.BsUserInfoBhv { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupInfoDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupInfoDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupInfoDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of GROUP_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends jp.sf.pal.notepad.db.bsdao.BsGroupInfoDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupMappingDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupMappingDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupMappingDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.notepad.db.bsdao.BsGroupMappingDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadCategoryDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadCategoryDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadCategoryDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of NOTEPAD_CATEGORY.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface NotepadCategoryDao extends + jp.sf.pal.notepad.db.bsdao.BsNotepadCategoryDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadCategoryDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadContentDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadContentDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadContentDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of NOTEPAD_CONTENT.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface NotepadContentDao extends + jp.sf.pal.notepad.db.bsdao.BsNotepadContentDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of NOTEPAD.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface NotepadDao extends jp.sf.pal.notepad.db.bsdao.BsNotepadDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/NotepadDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleInfoDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleInfoDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleInfoDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of ROLE_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.notepad.db.bsdao.BsRoleInfoDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleMappingDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleMappingDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleMappingDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.notepad.db.bsdao.BsRoleMappingDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/UserInfoDao.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/UserInfoDao.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/UserInfoDao.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,14 @@ +package jp.sf.pal.notepad.db.exdao; + +/** + * The dao interface of USER_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.notepad.db.bsdao.BsUserInfoDao { +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.notepad.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupMapping.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupMapping.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupMapping.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends jp.sf.pal.notepad.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/Notepad.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/Notepad.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/Notepad.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,33 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of NOTEPAD. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Notepad extends jp.sf.pal.notepad.db.bsentity.BsNotepad { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public String getContent() { + if (getNotepadContentAsOne() != null) { + return getNotepadContentAsOne().getContent(); + } + return null; + } + + public void setContent(String value) { + if (value != null) { + if (getNotepadContentAsOne() == null) { + setNotepadContentAsOne(new NotepadContent()); + } + getNotepadContentAsOne().setContent(value); + } + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/Notepad.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadCategory.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadCategory.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadCategory.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,18 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of NOTEPAD_CATEGORY. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadCategory extends + jp.sf.pal.notepad.db.bsentity.BsNotepadCategory { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadCategory.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadContent.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadContent.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadContent.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,18 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of NOTEPAD_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class NotepadContent extends + jp.sf.pal.notepad.db.bsentity.BsNotepadContent { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/NotepadContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.notepad.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleMapping.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleMapping.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleMapping.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.notepad.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,17 @@ +package jp.sf.pal.notepad.db.exentity; + +/** + * The entity of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.notepad.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/CategoryDxo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/CategoryDxo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/CategoryDxo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,83 @@ +package jp.sf.pal.notepad.dxo; + +import java.io.Serializable; + +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.form.user.CategoryForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface CategoryDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", name : name" // + + ", type : type" // + + ", sortOrder : sortOrder" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromCategoryToForm(NotepadCategory category, + CategoryForm form); + + @ExcludeNull + @ConversionRule(// + "name : name" // + + ", type : type" // + // + ", sortOrder : sortOrder" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToCategory(CategoryForm form, + NotepadCategory category); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", name : name" // + + ", type : type" // + + ", sortOrder : sortOrder" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromCategoryToForm(NotepadCategory category, + jp.sf.pal.notepad.form.admin.CategoryForm form); + + @ExcludeNull + @ConversionRule(// + "name : name" // + + ", type : type" // + + ", sortOrder : sortOrder" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToCategory( + jp.sf.pal.notepad.form.admin.CategoryForm form, + NotepadCategory category); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/CategoryDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,90 @@ +package jp.sf.pal.notepad.dxo; + +import java.io.Serializable; + +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.form.user.NotepadForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimestampPattern; + +public interface NotepadDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", title : title" // + + ", content : content" // + + ", type : type" // + + ", sortOrder : sortOrder" // + + ", categoryId : categoryId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromLinkToForm(Notepad notepad, NotepadForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "title : title" // + + ", content : content" // + + ", type : type" // + // + ", sortOrder : sortOrder" // + // + ", categoryId : categoryId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToLink(NotepadForm form, Notepad notepad); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", title : title" // + + ", content : content" // + + ", type : type" // + + ", sortOrder : sortOrder" // + + ", categoryId : categoryId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromLinkToForm(Notepad notepad, + jp.sf.pal.notepad.form.admin.NotepadForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "title : title" // + + ", content : content" // + + ", type : type" // + + ", sortOrder : sortOrder" // + // + ", categoryId : categoryId" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToLink( + jp.sf.pal.notepad.form.admin.NotepadForm form, Notepad notepad); +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/CategoryForm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/CategoryForm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/CategoryForm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,69 @@ +package jp.sf.pal.notepad.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CategoryForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 1L; + + @LongType + public String id; + + @IntegerType + public int mode; + + @IntegerType + public String pageNumber; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 1) + public String type; + + @IntegerType + public String sortOrder; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + public void initialize() { + mode = NotepadConstants.LIST_MODE; + id = null; + name = null; + type = null; + sortOrder = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/CategoryForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/NotepadForm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/NotepadForm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/NotepadForm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,77 @@ +package jp.sf.pal.notepad.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class NotepadForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 1L; + + @IntegerType + public String id; + + @IntegerType + public int mode; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 4000) + public String content; + + public String type; + + @IntegerType + public String sortOrder; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String categoryId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + mode = NotepadConstants.LIST_MODE; + id = null; + title = null; + content = null; + type = null; + sortOrder = null; + categoryId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/admin/NotepadForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/CategoryForm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/CategoryForm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/CategoryForm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,69 @@ +package jp.sf.pal.notepad.form.user; + +import java.io.Serializable; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CategoryForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 1L; + + @LongType + public String id; + + @IntegerType + public int mode; + + @IntegerType + public String pageNumber; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 1) + public String type; + + @IntegerType + public String sortOrder; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + public void initialize() { + mode = NotepadConstants.LIST_MODE; + id = null; + name = null; + type = null; + sortOrder = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + + } +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/CategoryForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/NotepadForm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/NotepadForm.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/NotepadForm.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,76 @@ +package jp.sf.pal.notepad.form.user; + +import java.io.Serializable; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class NotepadForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 1L; + + @IntegerType + public String id; + + @IntegerType + public int mode; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 4000) + public String content; + + public String type; + + public String sortOrder; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String categoryId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + mode = NotepadConstants.LIST_MODE; + id = null; + title = null; + content = null; + type = null; + sortOrder = null; + categoryId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/form/user/NotepadForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/CategoryPager.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/CategoryPager.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/CategoryPager.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,23 @@ +package jp.sf.pal.notepad.pager; + +import jp.sf.pal.notepad.common.pager.DefaultPager; + +public class CategoryPager extends DefaultPager { + + private static final long serialVersionUID = -6261666956617549130L; + + private String createdBy; + + protected int getDefaultPageSize() { + return 20; + } + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/CategoryPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/NotepadPager.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/NotepadPager.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/NotepadPager.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,39 @@ +package jp.sf.pal.notepad.pager; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.pager.DefaultPager; + +public class NotepadPager extends DefaultPager { + + private static final long serialVersionUID = -7383968292320278898L; + + private Integer categoryId; + + private String createdBy; + + public NotepadPager() { + createdBy = null; + categoryId = NotepadConstants.DEFAULT_CATEGORY_ID; + } + + protected int getDefaultPageSize() { + return 20; + } + + public Integer getCategoryId() { + return categoryId; + } + + public void setCategoryId(Integer categoryId) { + this.categoryId = categoryId; + } + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/pager/NotepadPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,231 @@ +package jp.sf.pal.notepad.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.dxo.PagerDxo; +import jp.sf.pal.notepad.common.util.PagingResultBeanWrapper; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.exbhv.NotepadCategoryBhv; +import jp.sf.pal.notepad.db.exbhv.UserInfoBhv; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; +import jp.sf.pal.notepad.db.exentity.UserInfo; +import jp.sf.pal.notepad.pager.CategoryPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; +import org.seasar.struts.exception.ActionMessagesException; + +public class CategoryService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient NotepadCategoryBhv notepadCategoryBhv; + + private PagerDxo pagerDxo; + + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + + public List getCategoryList(CategoryPager categoryPager) { + + HotdeployUtil.rebuildValue(categoryPager); + + NotepadCategoryCB cb = new NotepadCategoryCB(); + + cb.fetchFirst(categoryPager.getPageSize()); + cb.fetchPage(categoryPager.getCurrentPageNumber()); + + // setup + + if (categoryPager.getCreatedBy() != null) { + cb.query().setCreatedBy_Equal(categoryPager.getCreatedBy()); + } + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_SortOrder_Asc(); + + PagingResultBean categoryList = notepadCategoryBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(categoryList), + categoryPager); + categoryList.setPageRangeSize(5); + categoryPager.setPageNumberList(categoryList.pageRange() + .createPageNumberList()); + + return categoryList; + } + + public NotepadCategory getCategory(Integer id) { + NotepadCategoryCB cb = new NotepadCategoryCB(); + + // setup + + cb.query().setId_Equal(id); + return notepadCategoryBhv.selectEntity(cb); + } + + public void store(NotepadCategory category) { + boolean isUpdate = category.getId() != null; + + Timestamp now = new Timestamp(System.currentTimeMillis()); + category.setUpdatedTime(now); + + initUserInfo(category.getCreatedBy()); + initUserInfo(category.getUpdatedBy()); + + // Category + if (isUpdate) { + notepadCategoryBhv.update(category); + } else { + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.fetchFirst(1); + cb.fetchPage(1); + cb.query().setCreatedBy_Equal(category.getCreatedBy()); + cb.query().setDeletedBy_IsNull(); + cb.query().addOrderBy_SortOrder_Desc(); + List categoryList = notepadCategoryBhv + .selectPage(cb); + // TODO mt-safe + int sortOrder = 1; + if (categoryList != null && !categoryList.isEmpty()) { + sortOrder = categoryList.get(0).getSortOrder() + 1; + } + + category.setCreatedTime(now); + category.setSortOrder(sortOrder); + notepadCategoryBhv.insert(category); + + } + + } + + public void disable(Integer categoryId, String name) { + // not delete + NotepadCategoryCB cb = new NotepadCategoryCB(); + + cb.query().setId_Equal(categoryId); + NotepadCategory category = notepadCategoryBhv.selectEntity(cb); + + // TODO throw an exception + + category.setDeletedBy(name); + category.setDeletedTime(new Timestamp(new Date().getTime())); + notepadCategoryBhv.update(category); + } + + public void moveUp(NotepadCategory category) { + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.fetchFirst(1); + cb.fetchFirst(1); + cb.query().setSortOrder_GreaterThan(category.getSortOrder()); + cb.query().addOrderBy_SortOrder_Asc(); + List categoryList = notepadCategoryBhv.selectPage(cb); + if (categoryList != null && !categoryList.isEmpty()) { + NotepadCategory targetCategory = categoryList.get(0); + Integer sortOrder = targetCategory.getSortOrder(); + targetCategory.setSortOrder(category.getSortOrder()); + category.setSortOrder(sortOrder); + notepadCategoryBhv.update(targetCategory); + notepadCategoryBhv.update(category); + } else { + // TODO replace with CommonException + throw new ActionMessagesException( + "errors.could_not_find_category_for_moving_up"); + } + } + + public void moveDown(NotepadCategory category) { + NotepadCategoryCB cb = new NotepadCategoryCB(); + cb.fetchFirst(1); + cb.fetchFirst(1); + cb.query().setSortOrder_LessThan(category.getSortOrder()); + cb.query().addOrderBy_SortOrder_Desc(); + List categoryList = notepadCategoryBhv.selectPage(cb); + if (categoryList != null && !categoryList.isEmpty()) { + NotepadCategory targetCategory = categoryList.get(0); + Integer sortOrder = targetCategory.getSortOrder(); + targetCategory.setSortOrder(category.getSortOrder()); + category.setSortOrder(sortOrder); + notepadCategoryBhv.update(targetCategory); + notepadCategoryBhv.update(category); + } else { + // TODO replace with CommonException + throw new ActionMessagesException( + "errors.could_not_find_category_for_moving_down"); + } + } + + public List getCategoryList(String createdBy) { + + List notepadCategoryList = new ArrayList(); + + NotepadCategoryCB cb = new NotepadCategoryCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setType_Equal(NotepadConstants.PUBLIC_CATEGORY); + cb.query().addOrderBy_SortOrder_Asc(); + + notepadCategoryList.addAll(notepadCategoryBhv.selectList(cb)); + + cb = new NotepadCategoryCB(); + cb.query().setCreatedBy_Equal(createdBy); + cb.query().setDeletedBy_IsNull(); + cb.query().setType_Equal(NotepadConstants.PERSONAL_CATEGORY); + cb.query().addOrderBy_SortOrder_Asc(); + + notepadCategoryList.addAll(notepadCategoryBhv.selectList(cb)); + + return notepadCategoryList; + } + + public NotepadCategoryBhv getNotepadCategoryBhv() { + return notepadCategoryBhv; + } + + public void setNotepadCategoryBhv(NotepadCategoryBhv notepadCategoryBhv) { + this.notepadCategoryBhv = notepadCategoryBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,231 @@ +package jp.sf.pal.notepad.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.notepad.NotepadConstants; +import jp.sf.pal.notepad.common.dxo.PagerDxo; +import jp.sf.pal.notepad.common.util.PagingResultBeanWrapper; +import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.cbean.NotepadCB; +import jp.sf.pal.notepad.db.cbean.UserInfoCB; +import jp.sf.pal.notepad.db.exbhv.NotepadBhv; +import jp.sf.pal.notepad.db.exbhv.NotepadContentBhv; +import jp.sf.pal.notepad.db.exbhv.UserInfoBhv; +import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.UserInfo; +import jp.sf.pal.notepad.pager.NotepadPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; +import org.seasar.struts.exception.ActionMessagesException; + +public class NotepadService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient NotepadBhv notepadBhv; + + private transient NotepadContentBhv notepadContentBhv; + + private PagerDxo pagerDxo; + + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + + public List getNotepadList(NotepadPager linkPager) { + + HotdeployUtil.rebuildValue(linkPager); + + NotepadCB cb = new NotepadCB(); + + cb.fetchFirst(linkPager.getPageSize()); + cb.fetchPage(linkPager.getCurrentPageNumber()); + + // setup + + if (linkPager.getCreatedBy() != null) { + if (linkPager.getCategoryId() != null) { + if (linkPager.getCategoryId() != NotepadConstants.SHARED_CATEGORY_ID) { + cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); + } + } else { + cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); + } + } + if (linkPager.getCategoryId() != null) { + cb.query().setCategoryId_Equal(linkPager.getCategoryId()); + } + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_SortOrder_Asc(); + + PagingResultBean messageList = notepadBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(messageList), linkPager); + messageList.setPageRangeSize(5); + linkPager.setPageNumberList(messageList.pageRange() + .createPageNumberList()); + + return messageList; + } + + public Notepad getNotepad(Long id) { + NotepadCB cb = new NotepadCB(); + + // setup + cb.setupSelect_NotepadContentAsOne(); + + cb.query().setId_Equal(id); + return notepadBhv.selectEntity(cb); + } + + public void store(Notepad notepad) { + boolean isUpdate = notepad.getId() != null; + + Timestamp now = new Timestamp(System.currentTimeMillis()); + notepad.setUpdatedTime(now); + + initUserInfo(notepad.getCreatedBy()); + initUserInfo(notepad.getUpdatedBy()); + + // Note + if (isUpdate) { + notepadBhv.update(notepad); + if (notepad.getNotepadContentAsOne() != null) { + notepadContentBhv.update(notepad.getNotepadContentAsOne()); + } + } else { + NotepadCB cb = new NotepadCB(); + cb.fetchFirst(1); + cb.fetchPage(1); + cb.query().setCreatedBy_Equal(notepad.getCreatedBy()); + cb.query().setDeletedBy_IsNull(); + cb.query().addOrderBy_SortOrder_Desc(); + List LinkList = notepadBhv.selectPage(cb); + // TODO mt-safe + int sortOrder = 1; + if (LinkList != null && !LinkList.isEmpty()) { + sortOrder = LinkList.get(0).getSortOrder() + 1; + } + + notepad.setSortOrder(sortOrder); + notepad.setCreatedTime(now); + notepadBhv.insert(notepad); + + if (notepad.getNotepadContentAsOne() != null) { + notepad.getNotepadContentAsOne().setId(notepad.getId()); + notepadContentBhv.insert(notepad.getNotepadContentAsOne()); + } + + } + + } + + public void disable(Long linkId, String name) { + // not delete + NotepadCB cb = new NotepadCB(); + + cb.query().setId_Equal(linkId); + Notepad link = notepadBhv.selectEntity(cb); + + // TODO throw an exception + + link.setDeletedBy(name); + link.setDeletedTime(new Timestamp(new Date().getTime())); + notepadBhv.update(link); + } + + public void moveUp(Notepad link) { + NotepadCB cb = new NotepadCB(); + cb.fetchFirst(1); + cb.fetchFirst(1); + cb.query().setSortOrder_GreaterThan(link.getSortOrder()); + cb.query().addOrderBy_SortOrder_Asc(); + List linkList = notepadBhv.selectPage(cb); + if (linkList != null && !linkList.isEmpty()) { + Notepad targetLink = linkList.get(0); + Integer sortOrder = targetLink.getSortOrder(); + targetLink.setSortOrder(link.getSortOrder()); + link.setSortOrder(sortOrder); + notepadBhv.update(targetLink); + notepadBhv.update(link); + } else { + // TODO replace with CommonException + throw new ActionMessagesException( + "errors.could_not_find_link_for_moving_up"); + } + } + + public void moveDown(Notepad link) { + NotepadCB cb = new NotepadCB(); + cb.fetchFirst(1); + cb.fetchFirst(1); + cb.query().setSortOrder_LessThan(link.getSortOrder()); + cb.query().addOrderBy_SortOrder_Desc(); + List linkList = notepadBhv.selectPage(cb); + if (linkList != null && !linkList.isEmpty()) { + Notepad targetLink = linkList.get(0); + Integer sortOrder = targetLink.getSortOrder(); + targetLink.setSortOrder(link.getSortOrder()); + link.setSortOrder(sortOrder); + notepadBhv.update(targetLink); + notepadBhv.update(link); + } else { + // TODO replace with CommonException + throw new ActionMessagesException( + "errors.could_not_find_link_for_moving_down"); + } + } + + public NotepadBhv getNotepadBhv() { + return notepadBhv; + } + + public void setNotepadBhv(NotepadBhv notepadBhv) { + this.notepadBhv = notepadBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public NotepadContentBhv getNotepadContentBhv() { + return notepadContentBhv; + } + + public void setNotepadContentBhv(NotepadContentBhv notepadContentBhv) { + this.notepadContentBhv = notepadContentBhv; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/util/DateUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/util/DateUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/util/DateUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,251 @@ +/* + * Copyright 2004-2007 The Portal Application Laboratory Team. Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License + * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable + * law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.notepad.util; + +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class DateUtil { + /** + * Logger for this class + */ + private static final Log log = LogFactory.getLog(DateUtil.class); + + /** + * Allocates a Date object and initializes it so that it represents + * midnight, local time, at the beginning of the day specified by the year, + * month, and date arguments. + * + * @param year + * @param month + * @param date + * @return + */ + public static Date get(int year, int month, int date) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int) - : year=" + year + ", month=" + + month + ", date=" + date); + } + + return get(year, month, date, 0, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the minute specified by the year, month, date, + * hrs, and min arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min); + } + + return get(year, month, date, hrs, min, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, and sec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec); + } + + return get(year, month, date, hrs, min, sec, 0); + + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, sec and millisec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @param millisec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec, int millisec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec + ", millisec=" + + millisec); + } + + Calendar cal = Calendar.getInstance(); + cal.set(year + 1900, month, date, hrs, min, sec); + cal.set(Calendar.MILLISECOND, millisec); + return cal.getTime(); + + } + + /** + * Returns a value that is the result of subtracting 1900 from the year that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getYear(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.YEAR) - 1900; + } + + /** + * Returns a number representing the month that contains or begins with the + * instant in time represented by this Date object. The value returned is + * between 0 and 11, with the value 0 representing January. + * + * @param d + * @return + */ + public static int getMonth(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MONTH); + } + + /** + * Returns the day of the month represented by this Date object. The value + * returned is between 1 and 31 representing the day of the month that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDate(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_MONTH); + } + + /** + * Returns the day of the week represented by this date. The returned value + * (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = + * Friday, 6 = Saturday) represents the day of the week that contains or + * begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDay(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + } + + /** + * Returns the hour represented by this Date object. The returned value is a + * number (0 through 23) representing the hour within the day that contains + * or begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getHours(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.HOUR_OF_DAY); + } + + /** + * Returns the number of minutes past the hour represented by this date, as + * interpreted in the local time zone. The value returned is between 0 and + * 59. + * + * @param d + * @return + */ + public static int getMinutes(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MINUTE); + } + + /** + * Returns the number of seconds past the minute represented by this date. + * The value returned is between 0 and 61. The values 60 and 61 can only + * occur on those Java Virtual Machines that take leap seconds into account. + * + * @param d + * @return + */ + public static int getSeconds(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.SECOND); + } + + public static Integer calculateAge(Date date) { + if (date == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int age = DateUtil.getYear(now) - DateUtil.getYear(date); + if (age > 0) { + if (DateUtil.getMonth(now) < DateUtil.getMonth(date)) { + if (DateUtil.getDate(now) < DateUtil.getDate(date)) { + age--; + } + } + return Integer.valueOf(age); + } + return null; + } + + public static Date calculateDate(Integer age) { + if (age == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int year = DateUtil.getYear(now) - age.intValue(); + + return DateUtil.get(year, DateUtil.getMonth(now), + DateUtil.getDate(now), 0, 0, 0, 0); + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/util/DateUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/java/jp/sf/pal/notepad/util/NotepadUtil.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/util/NotepadUtil.java (rev 0) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/util/NotepadUtil.java 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,38 @@ +package jp.sf.pal.notepad.util; + +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.seasar.struts.portlet.util.PortletUtil; +import org.seasar.struts.util.ActionMessagesUtil; + +public class NotepadUtil { + public static void addMessage(HttpServletRequest request, String key) { + ActionMessages msgs = new ActionMessages(); + msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key)); + ActionMessagesUtil.saveMessages(request, msgs); + } + + public static String getRequestParameter(HttpServletRequest request, + String key) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getParameter(key); + } + return null; + } + + public static PortletSession getPortletSession(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getPortletSession(); + } + return null; + } + +} Property changes on: notepad/trunk/src/main/java/jp/sf/pal/notepad/util/NotepadUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/app.dicon =================================================================== --- notepad/trunk/src/main/resources/app.dicon (rev 0) +++ notepad/trunk/src/main/resources/app.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ + + + + + + + + + + Added: notepad/trunk/src/main/resources/application.properties =================================================================== --- notepad/trunk/src/main/resources/application.properties (rev 0) +++ notepad/trunk/src/main/resources/application.properties 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,88 @@ +errors.header=
      +errors.footer=
    +errors.prefix=
  • +errors.suffix=
  • +msg.header=
      +msg.footer=
    + +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.required.other={0} is required ({1}). +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +labels.name=Name +labels.URL=URL +labels.create_person=Creator +labels.memo=Memo +labels.shared=Shared +labels.public=Public +labels.personal=Personal +labels.category=Category +labels.category_ID=Category ID +labels.category_unselected=(Unselected) +labels.category_shared=(Shared) +labels.create_link=Create Note +labels.create_link_2=Create Note +labels.confirm_link=Confirm Creating Note +labels.detail=Detail +labels.create=Create +labels.update=Update +labels.delete=Delete +labels.back=Back +labels.edit=Edit +labels.confirm=Confirm +labels.open_new_window=Open new window(or Tab) +labels.open_same_window=Open same window(or Tab) +labels.type=Type +labels.category_list=Category List +labels.action=Action +labels.category_info=Category Infomation +labels.category_name=Category Name +labels.order=Sort Order +labels.move_up=Up +labels.move_down=Down +labels.to_next=Next Page +labels.to_back=Back Page +labels.create_category=Create category +labels.link_list=Note List + +success.create_category=Created a category information. +success.update_category=Updated the category information. +success.delete_category=Deleted the category information. +success.move_category_up=Moved the category information up. +success.move_category_down=Moved the category information down. +success.create_link=Created a link information. +success.update_link=Updated the link information. +success.delete_link=Deleted the link information. +success.move_link_up=Moved the link information up. +success.move_link_down=Moved the link information down. + +errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). +errors.failed_to_create_category=Failed to create a new category information. +errors.failed_to_update_category=Failed to update the category information. +errors.failed_to_delete_category=Failed to delete the category information. +errors.could_not_find_category=Could not find the category information({0}). +errors.invalid.id=Invalid id. +errors.could_not_find_category_for_moving_up=Could not find the category information for moving it up. +errors.could_not_find_category_for_moving_down=Could not find the category information for moving it down. +errors.invalid_category_id=Invalid category information. +errors.failed_to_create_link=Failed to create a new link information. +errors.failed_to_update_link=Failed to update the link information. +errors.failed_to_delete_link=Failed to delete the link information. +errors.could_not_find_link=Could not find the link information({0}). +errors.could_not_find_link_for_moving_up=Could not find the link information for moving it up. +errors.could_not_find_link_for_moving_down=Could not find the link information for moving it down. Property changes on: notepad/trunk/src/main/resources/application.properties ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/application_ja.properties =================================================================== --- notepad/trunk/src/main/resources/application_ja.properties (rev 0) +++ notepad/trunk/src/main/resources/application_ja.properties 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,82 @@ +errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.maxbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.required={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.required.other={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002({1}) +errors.byte={0} \u306f\u30d0\u30a4\u30c8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.date={0} \u306f\u65e5\u4ed8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.double={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (double \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.float={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (float \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.integer={0} \u306f\u6574\u6570\u578b (2147483647 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.long={0} \u306f\u6574\u6570\u578b (9223372036854775807 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.short={0} \u306f\u6574\u6570\u578b (32767 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.creditcard={0} \u306f\u6b63\u3057\u3044\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.email={0} \u306f\u6b63\u3057\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.url={0} \u306f\u6b63\u3057\u3044 URL (\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u30a2\u30c9\u30ec\u30b9) \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 + +labels.name=\u540d\u524d +labels.URL=URL +labels.create_person=\u4f5c\u6210\u8005 +labels.memo=\u30e1\u30e2 +labels.shared=\u5171\u6709 +labels.public=\u516c\u958b +labels.personal=\u500b\u4eba\u7528 +labels.category=\u30ab\u30c6\u30b4\u30ea +labels.category_ID=\u30ab\u30c6\u30b4\u30eaID +labels.category_unselected=(\u672a\u5206\u985e) +labels.category_shared=(\u5171\u6709) +labels.create_link=\u30ce\u30fc\u30c8\u4f5c\u6210 +labels.create_link_2=\u30ce\u30fc\u30c8\u306e\u767b\u9332 +labels.confirm_link=\u30ce\u30fc\u30c8\u306e\u767b\u9332\u306e\u78ba\u8a8d +labels.detail=\u8a73\u7d30 +labels.create=\u767b\u9332 +labels.update=\u66f4\u65b0 +labels.delete=\u524a\u9664 +labels.back=\u623b\u308b +labels.edit=\u7de8\u96c6 +labels.confirm=\u78ba\u8a8d +labels.open_new_window=\u65b0\u3057\u3044\u30a6\u30a4\u30f3\u30c9\u30a6\u30fb\u30bf\u30d6\u3067\u958b\u304f +labels.open_same_window=\u540c\u3058\u30a6\u30a4\u30f3\u30c9\u30a6\u30fb\u30bf\u30d6\u3067\u958b\u304f +labels.type=\u7a2e\u985e +labels.delete_reply=\u4e0a\u8a18\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u524a\u9664\u3059\u308b +labels.category_list=\u30ab\u30c6\u30b4\u30ea\u4e00\u89a7 +labels.action=\u30a2\u30af\u30b7\u30e7\u30f3 +labels.category_info=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831 +labels.category_name=\u30ab\u30c6\u30b4\u30ea\u540d +labels.order=\u9806\u756a +labels.move_up=\u4e0a\u3078 +labels.move_down=\u4e0b\u3078 +labels.to_next=\u6b21\u3078 +labels.to_back=\u524d\u3078 +labels.create_category=\u30ab\u30c6\u30b4\u30ea\u4f5c\u6210 +labels.link_list=\u30ce\u30fc\u30c8\u4e00\u89a7 + +success.create_category=\u30ab\u30c6\u30b4\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_category=\u30ab\u30c6\u30b4\u30ea\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_category=\u30ab\u30c6\u30b4\u30ea\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.move_category_up=\u4e0a\u306b\u30ab\u30c6\u30b4\u30ea\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.move_category_down=\u4e0b\u306b\u30ab\u30c6\u30b4\u30ea\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.create_link=\u30ce\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f +success.update_link=\u30ce\u30fc\u30c8\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_link=\u30ce\u30fc\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.move_link_up=\u4e0a\u306b\u30ce\u30fc\u30c8\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.move_link_down=\u4e0b\u306b\u30ce\u30fc\u30c8\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 + +errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) +errors.failed_to_create_category=\u30ab\u30c6\u30b4\u30ea\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_category=\u30ab\u30c6\u30b4\u30ea\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_category=\u30ab\u30c6\u30b4\u30ea\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_category=\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}) +errors.invalid.id=\u6b63\u3057\u304f\u306a\u3044 ID \u3067\u3059\u3002 +errors.could_not_find_category_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.could_not_find_category_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.invalid_category_id=\u6b63\u3057\u304f\u306a\u3044\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u3067\u3059\u3002 +errors.failed_to_create_link=\u30ce\u30fc\u30c8\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_link=\u30ce\u30fc\u30c8\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_link=\u30ce\u30fc\u30c8\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_link=\u30ce\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}) +errors.could_not_find_link_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ce\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.could_not_find_link_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ce\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 Property changes on: notepad/trunk/src/main/resources/application_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/convention.dicon =================================================================== --- notepad/trunk/src/main/resources/convention.dicon (rev 0) +++ notepad/trunk/src/main/resources/convention.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,16 @@ + + + + + + "jp.sf.pal.notepad" + + + "jp.sf.pal.notepad.common" + + + "jp.sf.pal.notepad.db" + + + Added: notepad/trunk/src/main/resources/creator.dicon =================================================================== --- notepad/trunk/src/main/resources/creator.dicon (rev 0) +++ notepad/trunk/src/main/resources/creator.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + Added: notepad/trunk/src/main/resources/customizer.dicon =================================================================== --- notepad/trunk/src/main/resources/customizer.dicon (rev 0) +++ notepad/trunk/src/main/resources/customizer.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,58 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + + + + + + + + + traceCustomizer + + + s2DxoCustomizer + + + + + + + Added: notepad/trunk/src/main/resources/dbflute.dicon =================================================================== --- notepad/trunk/src/main/resources/dbflute.dicon (rev 0) +++ notepad/trunk/src/main/resources/dbflute.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,93 @@ + + + + + + + + + "UTF-8" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + Added: notepad/trunk/src/main/resources/env.txt =================================================================== --- notepad/trunk/src/main/resources/env.txt (rev 0) +++ notepad/trunk/src/main/resources/env.txt 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1 @@ +product Property changes on: notepad/trunk/src/main/resources/env.txt ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/env_ut.txt =================================================================== --- notepad/trunk/src/main/resources/env_ut.txt (rev 0) +++ notepad/trunk/src/main/resources/env_ut.txt 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1 @@ +ut \ No newline at end of file Property changes on: notepad/trunk/src/main/resources/env_ut.txt ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/jdbc.dicon =================================================================== --- notepad/trunk/src/main/resources/jdbc.dicon (rev 0) +++ notepad/trunk/src/main/resources/jdbc.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,160 @@ + + + + + + + + + + + + 100 + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:file:" + container.getComponent(@java.lang.Class ¡÷ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/notepad") + + + "sa" + "" + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + Added: notepad/trunk/src/main/resources/s2container.dicon =================================================================== --- notepad/trunk/src/main/resources/s2container.dicon (rev 0) +++ notepad/trunk/src/main/resources/s2container.dicon 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db =================================================================== (Binary files differ) Property changes on: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db =================================================================== (Binary files differ) Property changes on: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.index.db =================================================================== (Binary files differ) Property changes on: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.index.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,51 @@ + + + + Notepad + PAL Project + + NotepadAdmin + admin + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,47 @@ + + + + NotepadView + Notepad: Notepad Viewer + Display notepads. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /user/notepad/ + + 0 + + text/html + VIEW + + en + ja + + Notepad Viewer + Notepads + Notepad,URL + + + + NotepadAdmin + Notepad: Notepad Manager + Manage all notepads. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /admin/notepad/ + + 0 + + text/html + VIEW + + en + ja + + Notepad Manager + Notepads + Notepad,URL + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/struts-config.xml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/struts-config.xml ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/validator-rules.xml ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,59 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + + + +

    User IDGiven NameFamily NameEmail  
    ${f:h(u.familyName)} ${f:h(u.email)} - Edit - Delete + +
    + + + + + + + + + + + + + + + + + + + +
    ${f:h(name)}
    ${f:h(sortOrder)}
    + + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + +
    + + + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,48 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + "/> + "/> +
    +
    +
    +
    + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +<%@page pageEncoding="UTF-8" %> + + + + + + +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,71 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    + +
    + +| + + + + + + + + + + + + + + + + + + + + +
    ID
    ${f:h(c.id)}${f:h(c.name)} (${c.sortOrder})${f:h(c.createdBy)} + + +
    + +
    + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
    +
    + + ${categoryPager.currentPageNumber}/${categoryPager.allPageCount} (${categoryPager.allRecordCount}) + +
    +
    +
    + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,68 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ${f:h(title)}
    ${f:br(f:nbsp(f:h(content)))}
    ${f:h(categoryId)}
    ${f:h(sortOrder)}
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + + "/> + "/> + + +
    +
    +
    +
    +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,51 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    + "/> + "/> +
    +
    +
    +
    +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +<%@page pageEncoding="UTF-8" %> + + + + + + +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,72 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    + +
    +
    + +| + +
    + + + + + + + + + + + + + + + + + +
     
    ${f:h(l.title)}${f:h(l.createdBy)} + + +
    + +
    + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
    +
    + + ${notepadPager.currentPageNumber}/${notepadPager.allPageCount} (${notepadPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,9 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> + +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,56 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    ${f:h(name)}
    + + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + +
    +
    +
    +
    + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,44 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + "/> + "/> +
    +
    +
    +
    + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +<%@page pageEncoding="UTF-8" %> + + + + + + +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,86 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    + +
    + +| + + + + + + + + + + + + + + + + + + +
    ${f:h(c.name)}(${c.sortOrder}) + + + + + +
    + + ²¼¤Ø + +  + + + ¾å¤Ø + +  +
    +
    + + +
    + +
    + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
    +
    + + ${categoryPager.currentPageNumber}/${categoryPager.allPageCount} (${categoryPager.allRecordCount}) + +
    +
    +
    + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,84 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    +
    +
    +
      + + +
    • ${f:h(c.name)}
    • +
      + +
    • ${f:h(c.name)}
    • +
      +
      +
    +
    +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    ${f:h(title)}
    ${f:br(f:nbsp(f:h(content)))}
    + + ${f:h(category.name)} + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + + "/> + "/> + + +
    +
    +
    +
    +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,68 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    +
    +
    +
      + + +
    • ${f:h(c.name)}
    • +
      + +
    • ${f:h(c.name)}
    • +
      +
      +
    +
    +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    + + + ${f:h(category.name)} + + +
    + "/> + "/> +
    +
    +
    +
    +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,11 @@ +<%@page pageEncoding="UTF-8" %> + + + + + + +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,107 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    +
    +
    +
      + + +
    • ${f:h(c.name)}
    • +
      + +
    • ${f:h(c.name)}
    • +
      +
      +
    +
    +
    + +
    +
    + +| + +
    + + + + + + + + + + + + + + + + + +
     
    ${f:h(l.title)} + + + + + + +
    + + + +  + + + + +  +
    +
    +   +
    + + +
    + +
    + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
    +
    + + ${notepadPager.currentPageNumber}/${notepadPager.allPageCount} (${notepadPager.allRecordCount}) + +
    +
    +
    + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/web.xml (rev 0) +++ notepad/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-11 09:42:47 UTC (rev 1330) @@ -0,0 +1,168 @@ + + + + Notepad + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + encodingfilter + /* + + + portletRequestFilter + /* + INCLUDE + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + routingfilter + /* + REQUEST + + + portletRoutingfilter + /* + INCLUDE + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + 1 + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + s2container + /s2container + + + + index.html + index.htm + index.jsp + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + Property changes on: notepad/trunk/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Tue Nov 11 18:47:30 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 18:47:30 +0900 Subject: [pal-cvs 3596] [1331] removed hard-code. Message-ID: <1226396850.224524.21660.nullmailer@users.sourceforge.jp> Revision: 1331 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1331 Author: shinsuke Date: 2008-11-11 18:47:30 +0900 (Tue, 11 Nov 2008) Log Message: ----------- removed hard-code. Modified Paths: -------------- bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/edit.jsp -------------- next part -------------- Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/confirm.jsp 2008-11-11 09:42:47 UTC (rev 1330) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/confirm.jsp 2008-11-11 09:47:30 UTC (rev 1331) @@ -11,12 +11,6 @@
      - -
    • -
      - -
    • -
    • ${f:h(c.name)}
    • Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/edit.jsp 2008-11-11 09:42:47 UTC (rev 1330) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/edit.jsp 2008-11-11 09:47:30 UTC (rev 1331) @@ -11,12 +11,6 @@
        - -
      • -
        - -
      • -
      • ${f:h(c.name)}
      • From svnnotify ¡÷ sourceforge.jp Tue Nov 11 22:35:52 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 11 Nov 2008 22:35:52 +0900 Subject: [pal-cvs 3597] [1332] changed db schema and a file structure. Message-ID: <1226410552.666327.18224.nullmailer@users.sourceforge.jp> Revision: 1332 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1332 Author: shinsuke Date: 2008-11-11 22:35:52 +0900 (Tue, 11 Nov 2008) Log Message: ----------- changed db schema and a file structure. Modified Paths: -------------- bookmark/trunk/src/main/config/erd/bookmark.erd bookmark/trunk/src/main/config/sql/bookmark.ddl bookmark/trunk/src/main/config/sql/bookmark.dml bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.index.db bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db bookmark/trunk/src/main/webapp/WEB-INF/view/user/ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp Removed Paths: ------------- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/category/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/link/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/category/ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/link/ bookmark/trunk/src/main/webapp/WEB-INF/view/category/ bookmark/trunk/src/main/webapp/WEB-INF/view/link/ -------------- next part -------------- Modified: bookmark/trunk/src/main/config/erd/bookmark.erd =================================================================== --- bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-11 13:35:52 UTC (rev 1332) @@ -234,8 +234,8 @@ - 185 - 408 + 428 + 738 -1 -1 @@ -403,7 +403,7 @@ 40 - 852 + 1182 -1 -1 @@ -472,7 +472,7 @@ 44 - 40 + 408 -1 -1 @@ -704,8 +704,8 @@ - 364 - 852 + 607 + 1182 -1 -1 @@ -768,8 +768,8 @@ - 372 - 40 + 615 + 408 -1 -1 @@ -843,240 +843,26 @@ - - - - - 2 - - - - - - - - - - - - - - bookmark_category - Bookmark Category - - - - id - ID - - INTEGER - Integer - false - 4 - - 19 - true - true - - true - - - - name - Name - - VARCHAR - String - true - 12 - - 100 - true - false - - false - - - - memo - Memo - - VARCHAR - String - true - 12 - - 200 - false - false - - false - - - - type - Type - - VARCHAR - String - true - 12 - - 1 - true - false - - false - 'P' - - - sort_order - Sort Order - - INTEGER - Integer - false - 4 - - 10 - true - false - - false - 0 - - - created_time - Created Time - - TIMESTAMP - Datetime - false - 93 - - 10 - true - false - - false - - - - created_by - Created_by - - VARCHAR - String - true - 12 - - 255 - true - false - - false - - - - updated_time - Updated Time - - 10 - true - false - - false - - - - updated_by - Updated by - - 255 - true - false - - false - - - - deleted_time - Deleted Time - - 10 - false - false - - false - - - - deleted_by - Deleted by - - 255 - false - false - - false - - - - versionNo - Version No - - INTEGER - Integer - false - 4 - - 10 - true - false - - false - 0 - - - - - IDX_created_by_for_category - - INDEX - - - created_by - - - - - 624 - 408 - -1 - -1 - - - - FK_from_link_to_category + FK_from_link_create_to_user - category_id - Category ID + created_by + Created by - INTEGER - Integer - false - 4 + VARCHAR + String + true + 12 - 1 - false + 255 + true false false - 0 + @@ -1106,7 +892,12 @@ name Name - + + VARCHAR + String + true + 12 + 100 true false @@ -1117,7 +908,7 @@ memo Memo - + 200 false false @@ -1128,7 +919,7 @@ url URL - + 255 true false @@ -1139,7 +930,7 @@ type Type - + 1 true false @@ -1150,7 +941,12 @@ sort_order Sort Order - + + INTEGER + Integer + false + 4 + 10 true false @@ -1158,8 +954,18 @@ false 0 - + category_id + Category ID + + 1 + false + false + + false + 0 + + created_time Created Time @@ -1175,18 +981,8 @@ false + - created_by - Created by - - 255 - true - false - - false - - - updated_time Updated Time @@ -1200,7 +996,7 @@ updated_by Updated by - + 255 true false @@ -1222,7 +1018,7 @@ deleted_by Deleted by - + 255 false false @@ -1250,7 +1046,9 @@ IDX_created_by_and_category_id_for_link - + + INDEX + created_by category_id @@ -1258,13 +1056,292 @@ - 624 + 443 40 -1 -1 + + FK_from_link_to_category + + + + id + ID + + INTEGER + Integer + false + 4 + + 19 + true + true + + true + + + + + + + + + + bookmark_category + Bookmark Category + + + + + name + Name + + 100 + true + false + + false + + + + memo + Memo + + 200 + false + false + + false + + + + type + Type + + VARCHAR + String + true + 12 + + 1 + true + false + + false + 'P' + + + sort_order + Sort Order + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 0 + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created_by + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated by + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted by + + 255 + false + false + + false + + + + versionNo + Version No + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + 0 + + + + + IDX_created_by_for_category + + + created_by + + + + + 305 + 408 + -1 + -1 + + + + FK_from_category_create_to_user + + + + + + + + + + + + 2 + + + + + + + + FK_from_category_update_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_link_update_to_user + + + + + + + + + + + + 2 + + + + + + @@ -1288,6 +1365,9 @@ + + + @@ -1299,7 +1379,12 @@ - + + + + + + hsqldb Modified: bookmark/trunk/src/main/config/sql/bookmark.ddl =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-11 13:35:52 UTC (rev 1332) @@ -107,7 +107,9 @@ updated_by VARCHAR(255) NOT NULL, deleted_time TIMESTAMP, deleted_by VARCHAR(255), - versionNo INTEGER DEFAULT 0 NOT NULL + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) ); /********************************** @@ -128,7 +130,9 @@ deleted_time TIMESTAMP, deleted_by VARCHAR(255), versionNo INTEGER DEFAULT 0 NOT NULL, - FOREIGN KEY (category_id) REFERENCES bookmark_category (id) + FOREIGN KEY (category_id) REFERENCES bookmark_category (id), + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) ); Modified: bookmark/trunk/src/main/config/sql/bookmark.dml =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.dml 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/config/sql/bookmark.dml 2008-11-11 13:35:52 UTC (rev 1332) @@ -1,2 +1,3 @@ +insert into user_info (USER_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO) values ('admin', '2008-10-15 17:17:37', 'admin', '2008-10-15 17:17:37', 'admin', 0); insert into BOOKMARK_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO, TYPE) values (1, '(Unclassified)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, '', 'P'); insert into BOOKMARK_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO, TYPE) values (2, '(Shared)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, '', 'P'); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -273,6 +273,14 @@ this.request = request; } + public CategoryForm getCategoryForm() { + return categoryForm; + } + + public void setCategoryForm(CategoryForm categoryForm) { + this.categoryForm = categoryForm; + } + public CategoryService getCategoryService() { return categoryService; } @@ -305,12 +313,4 @@ this.categoryDxo = categoryDxo; } - public CategoryForm getCategoryForm() { - return categoryForm; - } - - public void setCategoryForm(CategoryForm categoryForm) { - this.categoryForm = categoryForm; - } - } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -249,7 +249,15 @@ this.request = request; } - public LinkService getMessageService() { + public LinkForm getLinkForm() { + return linkForm; + } + + public void setLinkForm(LinkForm linkForm) { + this.linkForm = linkForm; + } + + public LinkService getLinkService() { return linkService; } @@ -257,7 +265,15 @@ this.linkService = linkService; } - public LinkPager getMessagePager() { + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public LinkPager getLinkPager() { return linkPager; } @@ -273,7 +289,7 @@ this.pagerDxo = pagerDxo; } - public LinkDxo getMessageDxo() { + public LinkDxo getLinkDxo() { return linkDxo; } @@ -281,32 +297,4 @@ this.linkDxo = linkDxo; } - public CategoryService getCategoryService() { - return categoryService; - } - - public void setCategoryService(CategoryService categoryService) { - this.categoryService = categoryService; - } - - public LinkService getLinkService() { - return linkService; - } - - public LinkPager getLinkPager() { - return linkPager; - } - - public LinkDxo getLinkDxo() { - return linkDxo; - } - - public LinkForm getLinkForm() { - return linkForm; - } - - public void setLinkForm(LinkForm linkForm) { - this.linkForm = linkForm; - } - } Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,316 @@ +package jp.sf.pal.bookmark.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.dxo.CategoryDxo; +import jp.sf.pal.bookmark.form.user.CategoryForm; +import jp.sf.pal.bookmark.pager.CategoryPager; +import jp.sf.pal.bookmark.service.CategoryService; +import jp.sf.pal.bookmark.util.BookmarkUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class CategoryAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(CategoryAction.class); + + // for list + + public List categoryItems; + + // for edit/confirm/delete + + @ActionForm + private CategoryForm categoryForm; + + private CategoryService categoryService; + + private CategoryPager categoryPager; + + private PagerDxo pagerDxo; + + private CategoryDxo categoryDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + categoryPager.setCreatedBy(request.getRemoteUser()); + categoryItems = categoryService.getCategoryList(categoryPager); + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + pagerDxo.convert(categoryForm, categoryPager); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (categoryForm.mode != BookmarkConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { BookmarkConstants.CONFIRM_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + categoryForm.initialize(); + categoryForm.mode = BookmarkConstants.CREATE_MODE; + + // update edit page + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (categoryForm.mode != BookmarkConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { BookmarkConstants.EDIT_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (categoryForm.mode != BookmarkConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { BookmarkConstants.DELETE_MODE, + categoryForm.mode }); + } + + // update edit page + + loadCategory(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + if (categoryForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + BookmarkCategory category = categoryService.getCategory(Integer + .parseInt(categoryForm.id)); + if (category == null) { + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + try { + categoryService.moveUp(category); + BookmarkUtil.addMessage(request, "success.move_category_up"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + if (categoryForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + BookmarkCategory category = categoryService.getCategory(Integer + .parseInt(categoryForm.id)); + if (category == null) { + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryForm.id }); + } + try { + categoryService.moveDown(category); + BookmarkUtil.addMessage(request, "success.move_category_down"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + return displayList(); + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + BookmarkCategory category = createCategory(); + categoryService.store(category); + BookmarkUtil.addMessage(request, "success.create_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_category"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + BookmarkCategory category = createCategory(); + categoryService.store(category); + BookmarkUtil.addMessage(request, "success.update_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_category"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + categoryService.disable(Integer.parseInt(categoryForm.id), request + .getRemoteUser()); + BookmarkUtil.addMessage(request, "success.delete_category"); + // reset edit page + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_category"); + } + } + + private void loadCategory() { + Integer categoryId = Integer.parseInt(categoryForm.id); + + BookmarkCategory category = categoryService.getCategory(categoryId); + if (category == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_category", + new Object[] { categoryId }); + } + categoryDxo.convertFromCategoryToForm(category, categoryForm); + + } + + private BookmarkCategory createCategory() { + BookmarkCategory category; + if (categoryForm.mode == BookmarkConstants.EDIT_MODE) { + Integer categoryId = Integer.parseInt(categoryForm.id); + category = categoryService.getCategory(categoryId); + category.setUpdatedBy(request.getRemoteUser()); + } else { + category = new BookmarkCategory(); + String remoteUser = request.getRemoteUser(); + category.setUpdatedBy(remoteUser); + category.setCreatedBy(remoteUser); + } + categoryDxo.convertFromFormToCategory(categoryForm, category); + + return category; + + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public CategoryForm getCategoryForm() { + return categoryForm; + } + + public void setCategoryForm(CategoryForm categoryForm) { + this.categoryForm = categoryForm; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public CategoryPager getCategoryPager() { + return categoryPager; + } + + public void setCategoryPager(CategoryPager categoryPager) { + this.categoryPager = categoryPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public CategoryDxo getCategoryDxo() { + return categoryDxo; + } + + public void setCategoryDxo(CategoryDxo categoryDxo) { + this.categoryDxo = categoryDxo; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,367 @@ +package jp.sf.pal.bookmark.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.dxo.PagerDxo; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; +import jp.sf.pal.bookmark.dxo.LinkDxo; +import jp.sf.pal.bookmark.form.user.LinkForm; +import jp.sf.pal.bookmark.pager.LinkPager; +import jp.sf.pal.bookmark.service.CategoryService; +import jp.sf.pal.bookmark.service.LinkService; +import jp.sf.pal.bookmark.util.BookmarkUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class LinkAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(LinkAction.class); + + public List categoryItems; + + // for list + + public List linkItems; + + // for edit/confirm/delete + + @ActionForm + private LinkForm linkForm; + + private LinkService linkService; + + private CategoryService categoryService; + + private LinkPager linkPager; + + private PagerDxo pagerDxo; + + private LinkDxo linkDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + String username = request.getRemoteUser(); + + // page navi + linkPager.setCreatedBy(username); + linkItems = linkService.getLinkList(linkPager); + + categoryItems = categoryService.getCategoryList(username); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(linkForm, linkPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "select/{categoryId}") + public String select() { + linkPager.setCategoryId(Integer.parseInt(linkForm.categoryId)); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (linkForm.mode != BookmarkConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { BookmarkConstants.CONFIRM_MODE, + linkForm.mode }); + } + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + linkForm.initialize(); + linkForm.mode = BookmarkConstants.CREATE_MODE; + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpage() { + linkForm.mode = BookmarkConstants.EDIT_MODE; + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepage() { + linkForm.mode = BookmarkConstants.DELETE_MODE; + + String username = request.getRemoteUser(); + categoryItems = categoryService.getCategoryList(username); + + // update edit page + loadDetailsPageParameters(); + + loadLink(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + if (linkForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + BookmarkLink link = linkService.getLink(Long.parseLong(linkForm.id)); + if (link == null) { + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { linkForm.id }); + } + try { + linkService.moveUp(link); + BookmarkUtil.addMessage(request, "success.move_link_up"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + if (linkForm.id == null) { + throw new ActionMessagesException("errors.invalid.id"); + } + BookmarkLink link = linkService.getLink(Long.parseLong(linkForm.id)); + if (link == null) { + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { linkForm.id }); + } + try { + linkService.moveDown(link); + BookmarkUtil.addMessage(request, "success.move_link_down"); + } catch (ActionMessagesException e) { + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } + return displayList(); + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + BookmarkLink link = createLink(); + linkService.store(link); + BookmarkUtil.addMessage(request, "success.create_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_create_link"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + BookmarkLink link = createLink(); + linkService.store(link); + BookmarkUtil.addMessage(request, "success.update_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_link"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + linkService.disable(Long.parseLong(linkForm.id), request + .getRemoteUser()); + BookmarkUtil.addMessage(request, "success.delete_link"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_delete_link"); + } + } + + private void loadLink() { + Long linkId = Long.parseLong(linkForm.id); + + BookmarkLink link = linkService.getLink(linkId); + if (link == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_link", + new Object[] { linkId }); + } + linkDxo.convertFromLinkToForm(link, linkForm); + + } + + private BookmarkLink createLink() { + BookmarkLink link; + if (linkForm.mode == BookmarkConstants.EDIT_MODE) { + Long linkId = Long.parseLong(linkForm.id); + link = linkService.getLink(linkId); + link.setUpdatedBy(request.getRemoteUser()); + } else { + link = new BookmarkLink(); + String remoteUser = request.getRemoteUser(); + link.setUpdatedBy(remoteUser); + link.setCreatedBy(remoteUser); + } + linkDxo.convertFromFormToLink(linkForm, link); + + return link; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public LinkForm getLinkForm() { + return linkForm; + } + + public void setLinkForm(LinkForm linkForm) { + this.linkForm = linkForm; + } + + public LinkService getLinkService() { + return linkService; + } + + public void setLinkService(LinkService linkService) { + this.linkService = linkService; + } + + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + + public LinkPager getLinkPager() { + return linkPager; + } + + public void setLinkPager(LinkPager linkPager) { + this.linkPager = linkPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public LinkDxo getLinkDxo() { + return linkDxo; + } + + public void setLinkDxo(LinkDxo linkDxo) { + this.linkDxo = linkDxo; + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkCategoryBhv.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -23,6 +23,7 @@ import jp.sf.pal.bookmark.db.exdao.BookmarkCategoryDao; import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.db.exentity.BookmarkLink; +import jp.sf.pal.bookmark.db.exentity.UserInfo; /** * The behavior of BOOKMARK_CATEGORY. @@ -44,13 +45,13 @@ * VERSIONNO * * [foreign-table] - * + * USER_INFO * * [referrer-table] * BOOKMARK_LINK * * [foreign-property] - * + * userInfoByCreatedBy, userInfoByUpdatedBy * * [referrer-property] * bookmarkLinkList @@ -390,7 +391,40 @@ // ========= // Pullout Foreign // =============== + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param bookmarkCategoryList The list of bookmarkCategory. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByCreatedBy( + List bookmarkCategoryList) { + return helpPulloutInternally(bookmarkCategoryList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + BookmarkCategory entity) { + return entity.getUserInfoByCreatedBy(); + } + }); + } + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param bookmarkCategoryList The list of bookmarkCategory. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByUpdatedBy( + List bookmarkCategoryList) { + return helpPulloutInternally(bookmarkCategoryList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + BookmarkCategory entity) { + return entity.getUserInfoByUpdatedBy(); + } + }); + } + //========================================================================== // ========= // Entity Update Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsBookmarkLinkBhv.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -19,6 +19,7 @@ import jp.sf.pal.bookmark.db.exdao.BookmarkLinkDao; import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.db.exentity.BookmarkLink; +import jp.sf.pal.bookmark.db.exentity.UserInfo; /** * The behavior of BOOKMARK_LINK. @@ -40,13 +41,13 @@ * VERSIONNO * * [foreign-table] - * BOOKMARK_CATEGORY + * BOOKMARK_CATEGORY, USER_INFO * * [referrer-table] * * * [foreign-property] - * bookmarkCategory + * bookmarkCategory, userInfoByCreatedBy, userInfoByUpdatedBy * * [referrer-property] * @@ -303,6 +304,38 @@ }); } + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param bookmarkLinkList The list of bookmarkLink. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByCreatedBy( + List bookmarkLinkList) { + return helpPulloutInternally(bookmarkLinkList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(BookmarkLink entity) { + return entity.getUserInfoByCreatedBy(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param bookmarkLinkList The list of bookmarkLink. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfoByUpdatedBy( + List bookmarkLinkList) { + return helpPulloutInternally(bookmarkLinkList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(BookmarkLink entity) { + return entity.getUserInfoByUpdatedBy(); + } + }); + } + //========================================================================== // ========= // Entity Update Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -17,12 +17,18 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.bookmark.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.exbhv.BookmarkCategoryBhv; +import jp.sf.pal.bookmark.db.exbhv.BookmarkLinkBhv; import jp.sf.pal.bookmark.db.exbhv.GroupMappingBhv; import jp.sf.pal.bookmark.db.exbhv.RoleMappingBhv; import jp.sf.pal.bookmark.db.exdao.UserInfoDao; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.db.exentity.GroupInfo; import jp.sf.pal.bookmark.db.exentity.GroupMapping; import jp.sf.pal.bookmark.db.exentity.RoleInfo; @@ -52,13 +58,13 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * GROUP_MAPPING, ROLE_MAPPING + * BOOKMARK_CATEGORY, BOOKMARK_LINK, GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * groupMappingList, roleMappingList + * bookmarkCategoryByCreatedByList, bookmarkCategoryByUpdatedByList, bookmarkLinkByCreatedByList, bookmarkLinkByUpdatedByList, groupMappingList, roleMappingList * * * @author DBFlute(AutoGenerator) @@ -287,6 +293,376 @@ // Load Referrer // ============= /** + * Load referrer of bookmarkCategoryByCreatedByList with the setupper for + * condition-bean of referrer.
        About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
        The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
        +     * cb.query().setCreatedBy_InScope(pkList);
        +     * cb.query().addOrderBy_CreatedBy_Asc();
        +     * 
        + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadBookmarkCategoryByCreatedByList( + List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadBookmarkCategoryByCreatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadBookmarkCategoryByCreatedByList( + List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final BookmarkCategoryBhv referrerBhv = xgetBSFLR().select( + BookmarkCategoryBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setBookmarkCategoryByCreatedByList(referrerList); + } + + public BookmarkCategoryCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + BookmarkCategoryCB cb, List pkList) { + cb.query().setCreatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + BookmarkCategoryCB cb) { + cb.query().addOrderBy_CreatedBy_Asc(); + } + + public List callbackReferrer_selectList( + BookmarkCategoryCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + BookmarkCategory entity) { + return entity.getCreatedBy(); + } + + public void callbackReferrer_setForeignEntity( + BookmarkCategory referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByCreatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of bookmarkCategoryByUpdatedByList with the setupper for + * condition-bean of referrer.
        About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
        The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
        +     * cb.query().setUpdatedBy_InScope(pkList);
        +     * cb.query().addOrderBy_UpdatedBy_Asc();
        +     * 
        + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadBookmarkCategoryByUpdatedByList( + List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadBookmarkCategoryByUpdatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadBookmarkCategoryByUpdatedByList( + List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final BookmarkCategoryBhv referrerBhv = xgetBSFLR().select( + BookmarkCategoryBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setBookmarkCategoryByUpdatedByList(referrerList); + } + + public BookmarkCategoryCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + BookmarkCategoryCB cb, List pkList) { + cb.query().setUpdatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + BookmarkCategoryCB cb) { + cb.query().addOrderBy_UpdatedBy_Asc(); + } + + public List callbackReferrer_selectList( + BookmarkCategoryCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + BookmarkCategory entity) { + return entity.getUpdatedBy(); + } + + public void callbackReferrer_setForeignEntity( + BookmarkCategory referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByUpdatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of bookmarkLinkByCreatedByList with the setupper for + * condition-bean of referrer.
        About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
        The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
        +     * cb.query().setCreatedBy_InScope(pkList);
        +     * cb.query().addOrderBy_CreatedBy_Asc();
        +     * 
        + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadBookmarkLinkByCreatedByList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadBookmarkLinkByCreatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadBookmarkLinkByCreatedByList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final BookmarkLinkBhv referrerBhv = xgetBSFLR().select( + BookmarkLinkBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setBookmarkLinkByCreatedByList(referrerList); + } + + public BookmarkLinkCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + BookmarkLinkCB cb, List pkList) { + cb.query().setCreatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + BookmarkLinkCB cb) { + cb.query().addOrderBy_CreatedBy_Asc(); + } + + public List callbackReferrer_selectList( + BookmarkLinkCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + BookmarkLink entity) { + return entity.getCreatedBy(); + } + + public void callbackReferrer_setForeignEntity( + BookmarkLink referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByCreatedBy(baseEntity); + } + }); + } + + /** + * Load referrer of bookmarkLinkByUpdatedByList with the setupper for + * condition-bean of referrer.
        About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
        The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
        +     * cb.query().setUpdatedBy_InScope(pkList);
        +     * cb.query().addOrderBy_UpdatedBy_Asc();
        +     * 
        + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadBookmarkLinkByUpdatedByList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadBookmarkLinkByUpdatedByList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadBookmarkLinkByUpdatedByList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final BookmarkLinkBhv referrerBhv = xgetBSFLR().select( + BookmarkLinkBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setBookmarkLinkByUpdatedByList(referrerList); + } + + public BookmarkLinkCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + BookmarkLinkCB cb, List pkList) { + cb.query().setUpdatedBy_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + BookmarkLinkCB cb) { + cb.query().addOrderBy_UpdatedBy_Asc(); + } + + public List callbackReferrer_selectList( + BookmarkLinkCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + BookmarkLink entity) { + return entity.getUpdatedBy(); + } + + public void callbackReferrer_setForeignEntity( + BookmarkLink referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfoByUpdatedBy(baseEntity); + } + }); + } + + /** * Load referrer of groupMappingList with the setupper for condition-bean of * referrer.
        About internal policy, the value of primary key(and * others too) is treated as case-insensitive.
        The condition-bean Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkCategory.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -8,6 +8,7 @@ import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.bookmark.db.exentity.BookmarkLink; +import jp.sf.pal.bookmark.db.exentity.UserInfo; /** * The entity of BOOKMARK_CATEGORY that the type is TABLE.
        @@ -29,13 +30,13 @@ * VERSIONNO * * [foreign-table] - * + * USER_INFO * * [referrer-table] * BOOKMARK_LINK * * [foreign-property] - * + * userInfoByCreatedBy, userInfoByUpdatedBy * * [referrer-property] * bookmarkLinkList @@ -88,13 +89,13 @@ /** CREATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _createdTime; - /** CREATED_BY: {NotNull : VARCHAR(255)} */ + /** CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ protected String _createdBy; /** UPDATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _updatedTime; - /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + /** UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ protected String _updatedBy; /** DELETED_TIME: {TIMESTAMP} */ @@ -155,6 +156,68 @@ // ========= // Foreign Property // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByCreatedBy] + // * * * * * * * * */ + public static final int userInfoByCreatedBy_RELNO = 0; + + public static final String userInfoByCreatedBy_RELKEYS = "CREATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByCreatedBy'. */ + protected UserInfo _parentUserInfoByCreatedBy; + + /** + * USER_INFO as 'userInfoByCreatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByCreatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByCreatedBy() { + return _parentUserInfoByCreatedBy; + } + + /** + * USER_INFO as 'userInfoByCreatedBy'. + * + * @param userInfoByCreatedBy The entity of foreign property + * 'userInfoByCreatedBy'. (Nullable) + */ + public void setUserInfoByCreatedBy(UserInfo userInfoByCreatedBy) { + _parentUserInfoByCreatedBy = userInfoByCreatedBy; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByUpdatedBy] + // * * * * * * * * */ + public static final int userInfoByUpdatedBy_RELNO = 1; + + public static final String userInfoByUpdatedBy_RELKEYS = "UPDATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByUpdatedBy'. */ + protected UserInfo _parentUserInfoByUpdatedBy; + + /** + * USER_INFO as 'userInfoByUpdatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByUpdatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByUpdatedBy() { + return _parentUserInfoByUpdatedBy; + } + + /** + * USER_INFO as 'userInfoByUpdatedBy'. + * + * @param userInfoByUpdatedBy The entity of foreign property + * 'userInfoByUpdatedBy'. (Nullable) + */ + public void setUserInfoByUpdatedBy(UserInfo userInfoByUpdatedBy) { + _parentUserInfoByUpdatedBy = userInfoByUpdatedBy; + } + //========================================================================== // ========= // Referrer Property @@ -423,11 +486,14 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * CREATED_BY: {NotNull : VARCHAR(255)}
        + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -436,7 +502,7 @@ } /** - * CREATED_BY: {NotNull : VARCHAR(255)}
        + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -467,11 +533,14 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * UPDATED_BY: {NotNull : VARCHAR(255)}
        + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -480,7 +549,7 @@ } /** - * UPDATED_BY: {NotNull : VARCHAR(255)}
        + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsBookmarkLink.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -6,6 +6,7 @@ import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.UserInfo; /** * The entity of BOOKMARK_LINK that the type is TABLE.
        @@ -27,13 +28,13 @@ * VERSIONNO * * [foreign-table] - * BOOKMARK_CATEGORY + * BOOKMARK_CATEGORY, USER_INFO * * [referrer-table] * * * [foreign-property] - * bookmarkCategory + * bookmarkCategory, userInfoByCreatedBy, userInfoByUpdatedBy * * [referrer-property] * @@ -91,13 +92,13 @@ /** CREATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _createdTime; - /** CREATED_BY: {NotNull : VARCHAR(255)} */ + /** CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ protected String _createdBy; /** UPDATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _updatedTime; - /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + /** UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO} */ protected String _updatedBy; /** DELETED_TIME: {TIMESTAMP} */ @@ -189,6 +190,68 @@ _parentBookmarkCategory = bookmarkCategory; } + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByCreatedBy] + // * * * * * * * * */ + public static final int userInfoByCreatedBy_RELNO = 1; + + public static final String userInfoByCreatedBy_RELKEYS = "CREATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByCreatedBy'. */ + protected UserInfo _parentUserInfoByCreatedBy; + + /** + * USER_INFO as 'userInfoByCreatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByCreatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByCreatedBy() { + return _parentUserInfoByCreatedBy; + } + + /** + * USER_INFO as 'userInfoByCreatedBy'. + * + * @param userInfoByCreatedBy The entity of foreign property + * 'userInfoByCreatedBy'. (Nullable) + */ + public void setUserInfoByCreatedBy(UserInfo userInfoByCreatedBy) { + _parentUserInfoByCreatedBy = userInfoByCreatedBy; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfoByUpdatedBy] + // * * * * * * * * */ + public static final int userInfoByUpdatedBy_RELNO = 2; + + public static final String userInfoByUpdatedBy_RELKEYS = "UPDATED_BY:USER_ID"; + + /** USER_INFO as 'userInfoByUpdatedBy'. */ + protected UserInfo _parentUserInfoByUpdatedBy; + + /** + * USER_INFO as 'userInfoByUpdatedBy'. {without lazy-load} + * + * @return The entity of foreign property 'userInfoByUpdatedBy'. (Nullable: + * If the foreign key does not have 'NotNull' constraint, please + * check null.) + */ + public UserInfo getUserInfoByUpdatedBy() { + return _parentUserInfoByUpdatedBy; + } + + /** + * USER_INFO as 'userInfoByUpdatedBy'. + * + * @param userInfoByUpdatedBy The entity of foreign property + * 'userInfoByUpdatedBy'. (Nullable) + */ + public void setUserInfoByUpdatedBy(UserInfo userInfoByUpdatedBy) { + _parentUserInfoByUpdatedBy = userInfoByUpdatedBy; + } + //========================================================================== // ========= // Referrer Property @@ -477,11 +540,14 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * CREATED_BY: {NotNull : VARCHAR(255)}
        + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -490,7 +556,7 @@ } /** - * CREATED_BY: {NotNull : VARCHAR(255)}
        + * CREATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -521,11 +587,14 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * UPDATED_BY: {NotNull : VARCHAR(255)}
        + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -534,7 +603,7 @@ } /** - * UPDATED_BY: {NotNull : VARCHAR(255)}
        + * UPDATED_BY: {NotNull : VARCHAR(255) : FK to USER_INFO}
        * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,6 +7,8 @@ import jp.sf.pal.bookmark.db.allcommon.Entity; import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.bookmark.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.db.exentity.GroupInfo; import jp.sf.pal.bookmark.db.exentity.GroupMapping; import jp.sf.pal.bookmark.db.exentity.RoleInfo; @@ -35,13 +37,13 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * GROUP_MAPPING, ROLE_MAPPING + * BOOKMARK_CATEGORY, BOOKMARK_LINK, GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * groupMappingList, roleMappingList + * bookmarkCategoryByCreatedByList, bookmarkCategoryByUpdatedByList, bookmarkLinkByCreatedByList, bookmarkLinkByUpdatedByList, groupMappingList, roleMappingList * * * @author DBFlute(AutoGenerator) @@ -237,6 +239,138 @@ // Referrer Property // ================= // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [bookmarkCategoryByCreatedByList] + // * * * * * * * * */ + /** BOOKMARK_CATEGORY as 'bookmarkCategoryByCreatedByList'. */ + protected List _childrenBookmarkCategoryByCreatedByList; + + /** + * BOOKMARK_CATEGORY as 'bookmarkCategoryByCreatedByList'. {without + * lazy-load}
        + * + * @return The entity list of referrer property + * 'bookmarkCategoryByCreatedByList'. (NotNull: If it's not loaded + * yet, initializes the list instance of referrer as empty and + * returns it.) + */ + public List getBookmarkCategoryByCreatedByList() { + if (_childrenBookmarkCategoryByCreatedByList == null) { + _childrenBookmarkCategoryByCreatedByList = new ArrayList(); + } + return _childrenBookmarkCategoryByCreatedByList; + } + + /** + * BOOKMARK_CATEGORY as 'bookmarkCategoryByCreatedByList'. + * + * @param bookmarkCategoryByCreatedByList The entity list of referrer + * property 'bookmarkCategoryByCreatedByList'. (Nullable) + */ + public void setBookmarkCategoryByCreatedByList( + List bookmarkCategoryByCreatedByList) { + _childrenBookmarkCategoryByCreatedByList = bookmarkCategoryByCreatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [bookmarkCategoryByUpdatedByList] + // * * * * * * * * */ + /** BOOKMARK_CATEGORY as 'bookmarkCategoryByUpdatedByList'. */ + protected List _childrenBookmarkCategoryByUpdatedByList; + + /** + * BOOKMARK_CATEGORY as 'bookmarkCategoryByUpdatedByList'. {without + * lazy-load}
        + * + * @return The entity list of referrer property + * 'bookmarkCategoryByUpdatedByList'. (NotNull: If it's not loaded + * yet, initializes the list instance of referrer as empty and + * returns it.) + */ + public List getBookmarkCategoryByUpdatedByList() { + if (_childrenBookmarkCategoryByUpdatedByList == null) { + _childrenBookmarkCategoryByUpdatedByList = new ArrayList(); + } + return _childrenBookmarkCategoryByUpdatedByList; + } + + /** + * BOOKMARK_CATEGORY as 'bookmarkCategoryByUpdatedByList'. + * + * @param bookmarkCategoryByUpdatedByList The entity list of referrer + * property 'bookmarkCategoryByUpdatedByList'. (Nullable) + */ + public void setBookmarkCategoryByUpdatedByList( + List bookmarkCategoryByUpdatedByList) { + _childrenBookmarkCategoryByUpdatedByList = bookmarkCategoryByUpdatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [bookmarkLinkByCreatedByList] + // * * * * * * * * */ + /** BOOKMARK_LINK as 'bookmarkLinkByCreatedByList'. */ + protected List _childrenBookmarkLinkByCreatedByList; + + /** + * BOOKMARK_LINK as 'bookmarkLinkByCreatedByList'. {without lazy-load}
        + * + * @return The entity list of referrer property + * 'bookmarkLinkByCreatedByList'. (NotNull: If it's not loaded yet, + * initializes the list instance of referrer as empty and returns + * it.) + */ + public List getBookmarkLinkByCreatedByList() { + if (_childrenBookmarkLinkByCreatedByList == null) { + _childrenBookmarkLinkByCreatedByList = new ArrayList(); + } + return _childrenBookmarkLinkByCreatedByList; + } + + /** + * BOOKMARK_LINK as 'bookmarkLinkByCreatedByList'. + * + * @param bookmarkLinkByCreatedByList The entity list of referrer property + * 'bookmarkLinkByCreatedByList'. (Nullable) + */ + public void setBookmarkLinkByCreatedByList( + List bookmarkLinkByCreatedByList) { + _childrenBookmarkLinkByCreatedByList = bookmarkLinkByCreatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [bookmarkLinkByUpdatedByList] + // * * * * * * * * */ + /** BOOKMARK_LINK as 'bookmarkLinkByUpdatedByList'. */ + protected List _childrenBookmarkLinkByUpdatedByList; + + /** + * BOOKMARK_LINK as 'bookmarkLinkByUpdatedByList'. {without lazy-load}
        + * + * @return The entity list of referrer property + * 'bookmarkLinkByUpdatedByList'. (NotNull: If it's not loaded yet, + * initializes the list instance of referrer as empty and returns + * it.) + */ + public List getBookmarkLinkByUpdatedByList() { + if (_childrenBookmarkLinkByUpdatedByList == null) { + _childrenBookmarkLinkByUpdatedByList = new ArrayList(); + } + return _childrenBookmarkLinkByUpdatedByList; + } + + /** + * BOOKMARK_LINK as 'bookmarkLinkByUpdatedByList'. + * + * @param bookmarkLinkByUpdatedByList The entity list of referrer property + * 'bookmarkLinkByUpdatedByList'. (Nullable) + */ + public void setBookmarkLinkByUpdatedByList( + List bookmarkLinkByUpdatedByList) { + _childrenBookmarkLinkByUpdatedByList = bookmarkLinkByUpdatedByList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [groupMappingList] // * * * * * * * * */ /** GROUP_MAPPING as 'groupMappingList'. */ Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkCategoryDbm.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -6,6 +6,7 @@ import jp.sf.pal.bookmark.db.allcommon.Entity; import jp.sf.pal.bookmark.db.allcommon.dbmeta.AbstractDBMeta; import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ForeignInfo; import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.ReferrerInfo; import jp.sf.pal.bookmark.db.allcommon.dbmeta.info.UniqueInfo; import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; @@ -231,7 +232,20 @@ // ----------------------------------------------------- // Foreign Property // ---------------- + public ForeignInfo foreignUserInfoByCreatedBy() { + Map map = newLinkedHashMap(columnCreatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByCreatedBy", this, UserInfoDbm.getInstance(), map, + 0, false); + } + public ForeignInfo foreignUserInfoByUpdatedBy() { + Map map = newLinkedHashMap(columnUpdatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByUpdatedBy", this, UserInfoDbm.getInstance(), map, + 1, false); + } + // ----------------------------------------------------- // Referrer Property // ----------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/BookmarkLinkDbm.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -252,6 +252,20 @@ map, 0, false); } + public ForeignInfo foreignUserInfoByCreatedBy() { + Map map = newLinkedHashMap(columnCreatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByCreatedBy", this, UserInfoDbm.getInstance(), map, + 1, false); + } + + public ForeignInfo foreignUserInfoByUpdatedBy() { + Map map = newLinkedHashMap(columnUpdatedBy(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfoByUpdatedBy", this, UserInfoDbm.getInstance(), map, + 2, false); + } + // ----------------------------------------------------- // Referrer Property // ----------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -289,6 +289,34 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerBookmarkCategoryByCreatedByList() { + Map map = newLinkedHashMap(columnUserId(), + BookmarkCategoryDbm.getInstance().columnCreatedBy()); + return cri("bookmarkCategoryByCreatedByList", this, BookmarkCategoryDbm + .getInstance(), map, false); + } + + public ReferrerInfo referrerBookmarkCategoryByUpdatedByList() { + Map map = newLinkedHashMap(columnUserId(), + BookmarkCategoryDbm.getInstance().columnUpdatedBy()); + return cri("bookmarkCategoryByUpdatedByList", this, BookmarkCategoryDbm + .getInstance(), map, false); + } + + public ReferrerInfo referrerBookmarkLinkByCreatedByList() { + Map map = newLinkedHashMap(columnUserId(), + BookmarkLinkDbm.getInstance().columnCreatedBy()); + return cri("bookmarkLinkByCreatedByList", this, BookmarkLinkDbm + .getInstance(), map, false); + } + + public ReferrerInfo referrerBookmarkLinkByUpdatedByList() { + Map map = newLinkedHashMap(columnUserId(), + BookmarkLinkDbm.getInstance().columnUpdatedBy()); + return cri("bookmarkLinkByUpdatedByList", this, BookmarkLinkDbm + .getInstance(), map, false); + } + public ReferrerInfo referrerGroupMappingList() { Map map = newLinkedHashMap(columnUserId(), GroupMappingDbm.getInstance().columnUserId()); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkCategoryCB.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -9,7 +9,10 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.bookmark.db.cbean.nss.UserInfoNss; /** * The base condition-bean of BOOKMARK_CATEGORY. @@ -161,6 +164,52 @@ // Setup Select // ============ + protected UserInfoNss _nssUserInfoByCreatedBy; + + public UserInfoNss getNssUserInfoByCreatedBy() { + if (_nssUserInfoByCreatedBy == null) { + _nssUserInfoByCreatedBy = new UserInfoNss(null); + } + return _nssUserInfoByCreatedBy; + } + + public UserInfoNss setupSelect_UserInfoByCreatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByCreatedBy(); + } + }); + if (_nssUserInfoByCreatedBy == null + || !_nssUserInfoByCreatedBy.hasConditionQuery()) { + _nssUserInfoByCreatedBy = new UserInfoNss(query() + .queryUserInfoByCreatedBy()); + } + return _nssUserInfoByCreatedBy; + } + + protected UserInfoNss _nssUserInfoByUpdatedBy; + + public UserInfoNss getNssUserInfoByUpdatedBy() { + if (_nssUserInfoByUpdatedBy == null) { + _nssUserInfoByUpdatedBy = new UserInfoNss(null); + } + return _nssUserInfoByUpdatedBy; + } + + public UserInfoNss setupSelect_UserInfoByUpdatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByUpdatedBy(); + } + }); + if (_nssUserInfoByUpdatedBy == null + || !_nssUserInfoByUpdatedBy.hasConditionQuery()) { + _nssUserInfoByUpdatedBy = new UserInfoNss(query() + .queryUserInfoByUpdatedBy()); + } + return _nssUserInfoByUpdatedBy; + } + // [DBFlute-0.7.4] //========================================================================== // ========= @@ -188,6 +237,10 @@ AbstractSpecification { protected SpQyCall _myQyCall; + protected UserInfoCB.Specification _userInfoByCreatedBy; + + protected UserInfoCB.Specification _userInfoByUpdatedBy; + public Specification(ConditionBean baseCB, SpQyCall qyCall, boolean forDeriveReferrer) { super(baseCB, qyCall, forDeriveReferrer); @@ -244,12 +297,60 @@ protected void doSpecifyRequiredColumn() { columnId();// PK + if (_myQyCall.qy().hasConditionQueryUserInfoByCreatedBy()) { + columnCreatedBy();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfoByUpdatedBy()) { + columnUpdatedBy();// FK + } } protected String getTableDbName() { return "BOOKMARK_CATEGORY"; } + public UserInfoCB.Specification specifyUserInfoByCreatedBy() { + assertForeign("userInfoByCreatedBy"); + if (_userInfoByCreatedBy == null) { + _userInfoByCreatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByCreatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByCreatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByCreatedBy; + } + + public UserInfoCB.Specification specifyUserInfoByUpdatedBy() { + assertForeign("userInfoByUpdatedBy"); + if (_userInfoByUpdatedBy == null) { + _userInfoByUpdatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByUpdatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByUpdatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByUpdatedBy; + } + public RAFunction derivedBookmarkLinkList() { return new RAFunction(_baseCB, _myQyCall.qy(), Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsBookmarkLinkCB.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -9,9 +9,12 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; import jp.sf.pal.bookmark.db.cbean.nss.BookmarkCategoryNss; +import jp.sf.pal.bookmark.db.cbean.nss.UserInfoNss; /** * The base condition-bean of BOOKMARK_LINK. @@ -186,6 +189,52 @@ return _nssBookmarkCategory; } + protected UserInfoNss _nssUserInfoByCreatedBy; + + public UserInfoNss getNssUserInfoByCreatedBy() { + if (_nssUserInfoByCreatedBy == null) { + _nssUserInfoByCreatedBy = new UserInfoNss(null); + } + return _nssUserInfoByCreatedBy; + } + + public UserInfoNss setupSelect_UserInfoByCreatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByCreatedBy(); + } + }); + if (_nssUserInfoByCreatedBy == null + || !_nssUserInfoByCreatedBy.hasConditionQuery()) { + _nssUserInfoByCreatedBy = new UserInfoNss(query() + .queryUserInfoByCreatedBy()); + } + return _nssUserInfoByCreatedBy; + } + + protected UserInfoNss _nssUserInfoByUpdatedBy; + + public UserInfoNss getNssUserInfoByUpdatedBy() { + if (_nssUserInfoByUpdatedBy == null) { + _nssUserInfoByUpdatedBy = new UserInfoNss(null); + } + return _nssUserInfoByUpdatedBy; + } + + public UserInfoNss setupSelect_UserInfoByUpdatedBy() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfoByUpdatedBy(); + } + }); + if (_nssUserInfoByUpdatedBy == null + || !_nssUserInfoByUpdatedBy.hasConditionQuery()) { + _nssUserInfoByUpdatedBy = new UserInfoNss(query() + .queryUserInfoByUpdatedBy()); + } + return _nssUserInfoByUpdatedBy; + } + // [DBFlute-0.7.4] //========================================================================== // ========= @@ -215,6 +264,10 @@ protected BookmarkCategoryCB.Specification _bookmarkCategory; + protected UserInfoCB.Specification _userInfoByCreatedBy; + + protected UserInfoCB.Specification _userInfoByUpdatedBy; + public Specification(ConditionBean baseCB, SpQyCall qyCall, boolean forDeriveReferrer) { super(baseCB, qyCall, forDeriveReferrer); @@ -282,6 +335,12 @@ if (_myQyCall.qy().hasConditionQueryBookmarkCategory()) { columnCategoryId();// FK } + if (_myQyCall.qy().hasConditionQueryUserInfoByCreatedBy()) { + columnCreatedBy();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfoByUpdatedBy()) { + columnUpdatedBy();// FK + } } protected String getTableDbName() { @@ -307,6 +366,48 @@ } return _bookmarkCategory; } + + public UserInfoCB.Specification specifyUserInfoByCreatedBy() { + assertForeign("userInfoByCreatedBy"); + if (_userInfoByCreatedBy == null) { + _userInfoByCreatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByCreatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByCreatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByCreatedBy; + } + + public UserInfoCB.Specification specifyUserInfoByUpdatedBy() { + assertForeign("userInfoByUpdatedBy"); + if (_userInfoByUpdatedBy == null) { + _userInfoByUpdatedBy = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryUserInfoByUpdatedBy(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy() + .queryUserInfoByUpdatedBy(); + } + }, _forDeriveReferrer); + } + return _userInfoByUpdatedBy; + } } // Very Internal (for Suppressing Warn about 'Not Use Import') Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,6 +7,8 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; import jp.sf.pal.bookmark.db.allcommon.cbean.SubQuery; import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; @@ -370,6 +372,58 @@ return _roleInfo; } + public RAFunction derivedBookmarkCategoryByCreatedByList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveBookmarkCategoryByCreatedByList(function, + subQuery, aliasName); + } + }); + } + + public RAFunction derivedBookmarkCategoryByUpdatedByList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveBookmarkCategoryByUpdatedByList(function, + subQuery, aliasName); + } + }); + } + + public RAFunction derivedBookmarkLinkByCreatedByList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveBookmarkLinkByCreatedByList(function, + subQuery, aliasName); + } + }); + } + + public RAFunction derivedBookmarkLinkByUpdatedByList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveBookmarkLinkByUpdatedByList(function, + subQuery, aliasName); + } + }); + } + public RAFunction derivedGroupMappingList() { return new RAFunction(_baseCB, _myQyCall.qy(), Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkCategoryCQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -10,8 +10,10 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; /** * The abstract condition-query of BOOKMARK_CATEGORY. @@ -829,8 +831,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} * * @param createdBy The value of createdBy as equal. */ @@ -940,6 +942,36 @@ regCreatedBy(CK_NINS, cTL(createdByList)); } + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByCreatedBy(subQuery) method. + */ + public void setCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByCreatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ subQuery); + protected void regCreatedBy(ConditionKey key, Object value) { registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", "CreatedBy", "createdBy"); @@ -1052,8 +1084,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} * * @param updatedBy The value of updatedBy as equal. */ @@ -1163,6 +1195,36 @@ regUpdatedBy(CK_NINS, cTL(updatedByList)); } + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByUpdatedBy(subQuery) method. + */ + public void setUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByUpdatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ subQuery); + protected void regUpdatedBy(ConditionKey key, Object value) { registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", "UpdatedBy", "updatedBy"); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsBookmarkLinkCQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -10,8 +10,10 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; /** * The abstract condition-query of BOOKMARK_LINK. @@ -963,8 +965,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} * * @param createdBy The value of createdBy as equal. */ @@ -1074,6 +1076,36 @@ regCreatedBy(CK_NINS, cTL(createdByList)); } + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByCreatedBy(subQuery) method. + */ + public void setCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByCreatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "CREATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ subQuery); + protected void regCreatedBy(ConditionKey key, Object value) { registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", "CreatedBy", "createdBy"); @@ -1186,8 +1218,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} * * @param updatedBy The value of updatedBy as equal. */ @@ -1297,6 +1329,36 @@ regUpdatedBy(CK_NINS, cTL(updatedByList)); } + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoByUpdatedBy(subQuery) method. + */ + public void setUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoByUpdatedBy(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "UPDATED_BY", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ subQuery); + protected void regUpdatedBy(ConditionKey key, Object value) { registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", "UpdatedBy", "updatedBy"); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -8,11 +8,15 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.ckey.ConditionKey; import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; import jp.sf.pal.bookmark.db.cbean.GroupInfoCB; import jp.sf.pal.bookmark.db.cbean.GroupMappingCB; import jp.sf.pal.bookmark.db.cbean.RoleInfoCB; import jp.sf.pal.bookmark.db.cbean.RoleMappingCB; import jp.sf.pal.bookmark.db.cbean.UserInfoCB; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; @@ -166,6 +170,134 @@ } /** + * @param bookmarkCategoryCBquery Query. + * @deprecated Please use inScopeBookmarkCategoryByCreatedByList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ bookmarkCategoryCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList(bookmarkCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(bookmarkCategoryCBquery, "USER_ID", + "CREATED_BY", subQueryPropertyName); + } + + public void inScopeBookmarkCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery); + + /** + * @param bookmarkCategoryCBquery Query. + * @deprecated Please use inScopeBookmarkCategoryByUpdatedByList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ bookmarkCategoryCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList(bookmarkCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(bookmarkCategoryCBquery, "USER_ID", + "UPDATED_BY", subQueryPropertyName); + } + + public void inScopeBookmarkCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery); + + /** + * @param bookmarkLinkCBquery Query. + * @deprecated Please use inScopeBookmarkLinkByCreatedByList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ bookmarkLinkCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkLinkByCreatedByList(bookmarkLinkCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(bookmarkLinkCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + public void inScopeBookmarkLinkByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkLinkByCreatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery); + + /** + * @param bookmarkLinkCBquery Query. + * @deprecated Please use inScopeBookmarkLinkByUpdatedByList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ bookmarkLinkCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList(bookmarkLinkCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(bookmarkLinkCBquery, "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + public void inScopeBookmarkLinkByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery); + + /** * @param groupMappingCBquery Query. * @deprecated Please use inScopeGroupMappingList(subQuery) method. */ @@ -225,6 +357,66 @@ abstract public String keepUserId_InScopeSubQuery_RoleMappingList( RoleMappingCQ subQuery); + public void notInScopeBookmarkCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery); + + public void notInScopeBookmarkCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery); + + public void notInScopeBookmarkLinkByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_BookmarkLinkByCreatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery); + + public void notInScopeBookmarkLinkByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery); + public void notInScopeGroupMappingList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); GroupMappingCB cb = new GroupMappingCB(); @@ -254,6 +446,166 @@ RoleMappingCQ subQuery); /** + * @param bookmarkCategoryCBquery Query. + * @deprecated Please use existsBookmarkCategoryByCreatedByList(subQuery) + * method. + */ + public void setUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ bookmarkCategoryCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList(bookmarkCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(bookmarkCategoryCBquery, "USER_ID", + "CREATED_BY", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CREATED_BY from + * BOOKMARK_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_BookmarkCategoryByCreatedByList for + * 'exists'. (NotNull) + */ + public void existsBookmarkCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery); + + /** + * @param bookmarkCategoryCBquery Query. + * @deprecated Please use existsBookmarkCategoryByUpdatedByList(subQuery) + * method. + */ + public void setUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ bookmarkCategoryCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList(bookmarkCategoryCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(bookmarkCategoryCBquery, "USER_ID", + "UPDATED_BY", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select UPDATED_BY from + * BOOKMARK_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList for + * 'exists'. (NotNull) + */ + public void existsBookmarkCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery); + + /** + * @param bookmarkLinkCBquery Query. + * @deprecated Please use existsBookmarkLinkByCreatedByList(subQuery) + * method. + */ + public void setUserId_ExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ bookmarkLinkCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkLinkByCreatedByList(bookmarkLinkCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(bookmarkLinkCBquery, "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select CREATED_BY from BOOKMARK_LINK + * where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_BookmarkLinkByCreatedByList for + * 'exists'. (NotNull) + */ + public void existsBookmarkLinkByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkLinkByCreatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery); + + /** + * @param bookmarkLinkCBquery Query. + * @deprecated Please use existsBookmarkLinkByUpdatedByList(subQuery) + * method. + */ + public void setUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ bookmarkLinkCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList(bookmarkLinkCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(bookmarkLinkCBquery, "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select UPDATED_BY from BOOKMARK_LINK + * where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_BookmarkLinkByUpdatedByList for + * 'exists'. (NotNull) + */ + public void existsBookmarkLinkByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery); + + /** * @param groupMappingCBquery Query. * @deprecated Please use existsGroupMappingList(subQuery) method. */ @@ -328,6 +680,98 @@ RoleMappingCQ subQuery); /** + * Set up 'not exists' sub-query. {not exists (select CREATED_BY from + * BOOKMARK_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_BookmarkCategoryByCreatedByList for + * 'not exists'. (NotNull) + */ + public void notExistsBookmarkCategoryByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_BookmarkCategoryByCreatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select UPDATED_BY from + * BOOKMARK_CATEGORY where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList for + * 'not exists'. (NotNull) + */ + public void notExistsBookmarkCategoryByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select CREATED_BY from + * BOOKMARK_LINK where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_BookmarkLinkByCreatedByList for 'not + * exists'. (NotNull) + */ + public void notExistsBookmarkLinkByCreatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_BookmarkLinkByCreatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select UPDATED_BY from + * BOOKMARK_LINK where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_BookmarkLinkByUpdatedByList for 'not + * exists'. (NotNull) + */ + public void notExistsBookmarkLinkByUpdatedByList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_BookmarkLinkByUpdatedByList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery); + + /** * Set up 'not exists' sub-query. {not exists (select USER_ID from * GROUP_MAPPING where ...)} * @@ -370,6 +814,66 @@ abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( RoleMappingCQ subQuery); + public void xderiveBookmarkCategoryByCreatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_BookmarkCategoryByCreatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery); + + public void xderiveBookmarkCategoryByUpdatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_BookmarkCategoryByUpdatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery); + + public void xderiveBookmarkLinkByCreatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_BookmarkLinkByCreatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "CREATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery); + + public void xderiveBookmarkLinkByUpdatedByList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + BookmarkLinkCB cb = new BookmarkLinkCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_BookmarkLinkByUpdatedByList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "UPDATED_BY", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery); + public void xderiveGroupMappingList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkCategoryCQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,6 +7,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.ciq.BookmarkCategoryCIQ; /** @@ -306,6 +307,23 @@ return getCreatedBy(); } + protected Map _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + + public Map getCreatedBy_InScopeSubQuery_UserInfoByCreatedBy() { + return _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + } + + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + if (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap == null) { + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap.size() + 1); + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap.put(key, subQuery); + return "createdBy_InScopeSubQuery_UserInfoByCreatedBy." + key; + } + public BsBookmarkCategoryCQ addOrderBy_CreatedBy_Asc() { regOBA("CREATED_BY"); return this; @@ -352,6 +370,23 @@ return getUpdatedBy(); } + protected Map _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + + public Map getUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy() { + return _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + } + + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + if (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap == null) { + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.size() + 1); + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.put(key, subQuery); + return "updatedBy_InScopeSubQuery_UserInfoByUpdatedBy." + key; + } + public BsBookmarkCategoryCQ addOrderBy_UpdatedBy_Asc() { regOBA("UPDATED_BY"); return this; @@ -451,6 +486,18 @@ // =========== protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper) { + BookmarkCategoryCQ baseQuery = (BookmarkCategoryCQ) baseQueryAsSuper; + BookmarkCategoryCQ unionQuery = (BookmarkCategoryCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryUserInfoByCreatedBy()) { + unionQuery.queryUserInfoByCreatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByCreatedBy(), + unionQuery.queryUserInfoByCreatedBy()); + } + if (baseQuery.hasConditionQueryUserInfoByUpdatedBy()) { + unionQuery.queryUserInfoByUpdatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByUpdatedBy(), + unionQuery.queryUserInfoByUpdatedBy()); + } } //========================================================================== @@ -458,6 +505,80 @@ // Foreign Query // ============= + public UserInfoCQ queryUserInfoByCreatedBy() { + return getConditionQueryUserInfoByCreatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByCreatedBy; + + public UserInfoCQ getConditionQueryUserInfoByCreatedBy() { + if (_conditionQueryUserInfoByCreatedBy == null) { + _conditionQueryUserInfoByCreatedBy = createQueryUserInfoByCreatedBy(); + setupOuterJoin_UserInfoByCreatedBy(); + } + return _conditionQueryUserInfoByCreatedBy; + } + + protected void setupOuterJoin_UserInfoByCreatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CREATED_BY"), + getConditionQueryUserInfoByCreatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByCreatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByCreatedBy() { + String nrp = resolveNextRelationPath("BOOKMARK_CATEGORY", + "userInfoByCreatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByCreatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByCreatedBy() { + return _conditionQueryUserInfoByCreatedBy != null; + } + + public UserInfoCQ queryUserInfoByUpdatedBy() { + return getConditionQueryUserInfoByUpdatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByUpdatedBy; + + public UserInfoCQ getConditionQueryUserInfoByUpdatedBy() { + if (_conditionQueryUserInfoByUpdatedBy == null) { + _conditionQueryUserInfoByUpdatedBy = createQueryUserInfoByUpdatedBy(); + setupOuterJoin_UserInfoByUpdatedBy(); + } + return _conditionQueryUserInfoByUpdatedBy; + } + + protected void setupOuterJoin_UserInfoByUpdatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("UPDATED_BY"), + getConditionQueryUserInfoByUpdatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByUpdatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByUpdatedBy() { + String nrp = resolveNextRelationPath("BOOKMARK_CATEGORY", + "userInfoByUpdatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByUpdatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByUpdatedBy() { + return _conditionQueryUserInfoByUpdatedBy != null; + } + protected String getConditionQueryClassNameInternally() { return BookmarkCategoryCQ.class.getName(); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsBookmarkLinkCQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,6 +7,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.ciq.BookmarkLinkCIQ; /** @@ -286,6 +287,23 @@ return getCreatedBy(); } + protected Map _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + + public Map getCreatedBy_InScopeSubQuery_UserInfoByCreatedBy() { + return _createdBy_InScopeSubQuery_UserInfoByCreatedByMap; + } + + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + if (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap == null) { + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_createdBy_InScopeSubQuery_UserInfoByCreatedByMap.size() + 1); + _createdBy_InScopeSubQuery_UserInfoByCreatedByMap.put(key, subQuery); + return "createdBy_InScopeSubQuery_UserInfoByCreatedBy." + key; + } + public BsBookmarkLinkCQ addOrderBy_CreatedBy_Asc() { regOBA("CREATED_BY"); return this; @@ -332,6 +350,23 @@ return getUpdatedBy(); } + protected Map _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + + public Map getUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy() { + return _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap; + } + + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + if (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap == null) { + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.size() + 1); + _updatedBy_InScopeSubQuery_UserInfoByUpdatedByMap.put(key, subQuery); + return "updatedBy_InScopeSubQuery_UserInfoByUpdatedBy." + key; + } + public BsBookmarkLinkCQ addOrderBy_UpdatedBy_Asc() { regOBA("UPDATED_BY"); return this; @@ -438,6 +473,16 @@ baseQuery.queryBookmarkCategory(), unionQuery.queryBookmarkCategory()); } + if (baseQuery.hasConditionQueryUserInfoByCreatedBy()) { + unionQuery.queryUserInfoByCreatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByCreatedBy(), + unionQuery.queryUserInfoByCreatedBy()); + } + if (baseQuery.hasConditionQueryUserInfoByUpdatedBy()) { + unionQuery.queryUserInfoByUpdatedBy().reflectRelationOnUnionQuery( + baseQuery.queryUserInfoByUpdatedBy(), + unionQuery.queryUserInfoByUpdatedBy()); + } } //========================================================================== @@ -481,6 +526,80 @@ return _conditionQueryBookmarkCategory != null; } + public UserInfoCQ queryUserInfoByCreatedBy() { + return getConditionQueryUserInfoByCreatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByCreatedBy; + + public UserInfoCQ getConditionQueryUserInfoByCreatedBy() { + if (_conditionQueryUserInfoByCreatedBy == null) { + _conditionQueryUserInfoByCreatedBy = createQueryUserInfoByCreatedBy(); + setupOuterJoin_UserInfoByCreatedBy(); + } + return _conditionQueryUserInfoByCreatedBy; + } + + protected void setupOuterJoin_UserInfoByCreatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("CREATED_BY"), + getConditionQueryUserInfoByCreatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByCreatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByCreatedBy() { + String nrp = resolveNextRelationPath("BOOKMARK_LINK", + "userInfoByCreatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByCreatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByCreatedBy() { + return _conditionQueryUserInfoByCreatedBy != null; + } + + public UserInfoCQ queryUserInfoByUpdatedBy() { + return getConditionQueryUserInfoByUpdatedBy(); + } + + protected UserInfoCQ _conditionQueryUserInfoByUpdatedBy; + + public UserInfoCQ getConditionQueryUserInfoByUpdatedBy() { + if (_conditionQueryUserInfoByUpdatedBy == null) { + _conditionQueryUserInfoByUpdatedBy = createQueryUserInfoByUpdatedBy(); + setupOuterJoin_UserInfoByUpdatedBy(); + } + return _conditionQueryUserInfoByUpdatedBy; + } + + protected void setupOuterJoin_UserInfoByUpdatedBy() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("UPDATED_BY"), + getConditionQueryUserInfoByUpdatedBy().getRealColumnName( + "USER_ID")); + registerOuterJoin(getConditionQueryUserInfoByUpdatedBy(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfoByUpdatedBy() { + String nrp = resolveNextRelationPath("BOOKMARK_LINK", + "userInfoByUpdatedBy"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfoByUpdatedBy"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfoByUpdatedBy() { + return _conditionQueryUserInfoByUpdatedBy != null; + } + protected String getConditionQueryClassNameInternally() { return BookmarkLinkCQ.class.getName(); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -5,6 +5,8 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; @@ -88,6 +90,82 @@ return getUserId(); } + protected Map _userId_InScopeSubQuery_BookmarkCategoryByCreatedByListMap; + + public Map getUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList() { + return _userId_InScopeSubQuery_BookmarkCategoryByCreatedByListMap; + } + + public String keepUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_InScopeSubQuery_BookmarkCategoryByCreatedByListMap == null) { + _userId_InScopeSubQuery_BookmarkCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_BookmarkCategoryByCreatedByListMap + .size() + 1); + _userId_InScopeSubQuery_BookmarkCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_InScopeSubQuery_BookmarkCategoryByCreatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_BookmarkCategoryByUpdatedByListMap; + + public Map getUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList() { + return _userId_InScopeSubQuery_BookmarkCategoryByUpdatedByListMap; + } + + public String keepUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_InScopeSubQuery_BookmarkCategoryByUpdatedByListMap == null) { + _userId_InScopeSubQuery_BookmarkCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_BookmarkCategoryByUpdatedByListMap + .size() + 1); + _userId_InScopeSubQuery_BookmarkCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_InScopeSubQuery_BookmarkCategoryByUpdatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_BookmarkLinkByCreatedByListMap; + + public Map getUserId_InScopeSubQuery_BookmarkLinkByCreatedByList() { + return _userId_InScopeSubQuery_BookmarkLinkByCreatedByListMap; + } + + public String keepUserId_InScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_InScopeSubQuery_BookmarkLinkByCreatedByListMap == null) { + _userId_InScopeSubQuery_BookmarkLinkByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_BookmarkLinkByCreatedByListMap + .size() + 1); + _userId_InScopeSubQuery_BookmarkLinkByCreatedByListMap.put(key, + subQuery); + return "userId_InScopeSubQuery_BookmarkLinkByCreatedByList." + key; + } + + protected Map _userId_InScopeSubQuery_BookmarkLinkByUpdatedByListMap; + + public Map getUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList() { + return _userId_InScopeSubQuery_BookmarkLinkByUpdatedByListMap; + } + + public String keepUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_InScopeSubQuery_BookmarkLinkByUpdatedByListMap == null) { + _userId_InScopeSubQuery_BookmarkLinkByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_BookmarkLinkByUpdatedByListMap + .size() + 1); + _userId_InScopeSubQuery_BookmarkLinkByUpdatedByListMap.put(key, + subQuery); + return "userId_InScopeSubQuery_BookmarkLinkByUpdatedByList." + key; + } + protected Map _userId_InScopeSubQuery_GroupMappingListMap; public Map getUserId_InScopeSubQuery_GroupMappingList() { @@ -122,6 +200,84 @@ return "userId_InScopeSubQuery_RoleMappingList." + key; } + protected Map _userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByListMap; + + public Map getUserId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList() { + return _userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByListMap == null) { + _userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByListMap + .size() + 1); + _userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList." + + key; + } + + protected Map _userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByListMap; + + public Map getUserId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList() { + return _userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByListMap == null) { + _userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByListMap + .size() + 1); + _userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList." + + key; + } + + protected Map _userId_NotInScopeSubQuery_BookmarkLinkByCreatedByListMap; + + public Map getUserId_NotInScopeSubQuery_BookmarkLinkByCreatedByList() { + return _userId_NotInScopeSubQuery_BookmarkLinkByCreatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_NotInScopeSubQuery_BookmarkLinkByCreatedByListMap == null) { + _userId_NotInScopeSubQuery_BookmarkLinkByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_BookmarkLinkByCreatedByListMap + .size() + 1); + _userId_NotInScopeSubQuery_BookmarkLinkByCreatedByListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_BookmarkLinkByCreatedByList." + key; + } + + protected Map _userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByListMap; + + public Map getUserId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList() { + return _userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByListMap; + } + + public String keepUserId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByListMap == null) { + _userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByListMap + .size() + 1); + _userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList." + key; + } + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; public Map getUserId_NotInScopeSubQuery_GroupMappingList() { @@ -156,6 +312,80 @@ return "userId_NotInScopeSubQuery_RoleMappingList." + key; } + protected Map _userId_ExistsSubQuery_BookmarkCategoryByCreatedByListMap; + + public Map getUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList() { + return _userId_ExistsSubQuery_BookmarkCategoryByCreatedByListMap; + } + + public String keepUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_ExistsSubQuery_BookmarkCategoryByCreatedByListMap == null) { + _userId_ExistsSubQuery_BookmarkCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_BookmarkCategoryByCreatedByListMap + .size() + 1); + _userId_ExistsSubQuery_BookmarkCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_ExistsSubQuery_BookmarkCategoryByCreatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_BookmarkCategoryByUpdatedByListMap; + + public Map getUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList() { + return _userId_ExistsSubQuery_BookmarkCategoryByUpdatedByListMap; + } + + public String keepUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_ExistsSubQuery_BookmarkCategoryByUpdatedByListMap == null) { + _userId_ExistsSubQuery_BookmarkCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_BookmarkCategoryByUpdatedByListMap + .size() + 1); + _userId_ExistsSubQuery_BookmarkCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_ExistsSubQuery_BookmarkCategoryByUpdatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_BookmarkLinkByCreatedByListMap; + + public Map getUserId_ExistsSubQuery_BookmarkLinkByCreatedByList() { + return _userId_ExistsSubQuery_BookmarkLinkByCreatedByListMap; + } + + public String keepUserId_ExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_ExistsSubQuery_BookmarkLinkByCreatedByListMap == null) { + _userId_ExistsSubQuery_BookmarkLinkByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_BookmarkLinkByCreatedByListMap.size() + 1); + _userId_ExistsSubQuery_BookmarkLinkByCreatedByListMap + .put(key, subQuery); + return "userId_ExistsSubQuery_BookmarkLinkByCreatedByList." + key; + } + + protected Map _userId_ExistsSubQuery_BookmarkLinkByUpdatedByListMap; + + public Map getUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList() { + return _userId_ExistsSubQuery_BookmarkLinkByUpdatedByListMap; + } + + public String keepUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_ExistsSubQuery_BookmarkLinkByUpdatedByListMap == null) { + _userId_ExistsSubQuery_BookmarkLinkByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_BookmarkLinkByUpdatedByListMap.size() + 1); + _userId_ExistsSubQuery_BookmarkLinkByUpdatedByListMap + .put(key, subQuery); + return "userId_ExistsSubQuery_BookmarkLinkByUpdatedByList." + key; + } + protected Map _userId_ExistsSubQuery_GroupMappingListMap; public Map getUserId_ExistsSubQuery_GroupMappingList() { @@ -190,6 +420,84 @@ return "userId_ExistsSubQuery_RoleMappingList." + key; } + protected Map _userId_NotExistsSubQuery_BookmarkCategoryByCreatedByListMap; + + public Map getUserId_NotExistsSubQuery_BookmarkCategoryByCreatedByList() { + return _userId_NotExistsSubQuery_BookmarkCategoryByCreatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_NotExistsSubQuery_BookmarkCategoryByCreatedByListMap == null) { + _userId_NotExistsSubQuery_BookmarkCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_BookmarkCategoryByCreatedByListMap + .size() + 1); + _userId_NotExistsSubQuery_BookmarkCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_BookmarkCategoryByCreatedByList." + + key; + } + + protected Map _userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByListMap; + + public Map getUserId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList() { + return _userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByListMap == null) { + _userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByListMap + .size() + 1); + _userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList." + + key; + } + + protected Map _userId_NotExistsSubQuery_BookmarkLinkByCreatedByListMap; + + public Map getUserId_NotExistsSubQuery_BookmarkLinkByCreatedByList() { + return _userId_NotExistsSubQuery_BookmarkLinkByCreatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_NotExistsSubQuery_BookmarkLinkByCreatedByListMap == null) { + _userId_NotExistsSubQuery_BookmarkLinkByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_BookmarkLinkByCreatedByListMap + .size() + 1); + _userId_NotExistsSubQuery_BookmarkLinkByCreatedByListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_BookmarkLinkByCreatedByList." + key; + } + + protected Map _userId_NotExistsSubQuery_BookmarkLinkByUpdatedByListMap; + + public Map getUserId_NotExistsSubQuery_BookmarkLinkByUpdatedByList() { + return _userId_NotExistsSubQuery_BookmarkLinkByUpdatedByListMap; + } + + public String keepUserId_NotExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_NotExistsSubQuery_BookmarkLinkByUpdatedByListMap == null) { + _userId_NotExistsSubQuery_BookmarkLinkByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_BookmarkLinkByUpdatedByListMap + .size() + 1); + _userId_NotExistsSubQuery_BookmarkLinkByUpdatedByListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_BookmarkLinkByUpdatedByList." + key; + } + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; public Map getUserId_NotExistsSubQuery_GroupMappingList() { @@ -224,6 +532,80 @@ return "userId_NotExistsSubQuery_RoleMappingList." + key; } + protected Map _userId_DeriveSubQuery_BookmarkCategoryByCreatedByListMap; + + public Map getUserId_DeriveSubQuery_BookmarkCategoryByCreatedByList() { + return _userId_DeriveSubQuery_BookmarkCategoryByCreatedByListMap; + } + + public String keepUserId_DeriveSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_DeriveSubQuery_BookmarkCategoryByCreatedByListMap == null) { + _userId_DeriveSubQuery_BookmarkCategoryByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_BookmarkCategoryByCreatedByListMap + .size() + 1); + _userId_DeriveSubQuery_BookmarkCategoryByCreatedByListMap.put(key, + subQuery); + return "userId_DeriveSubQuery_BookmarkCategoryByCreatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_BookmarkCategoryByUpdatedByListMap; + + public Map getUserId_DeriveSubQuery_BookmarkCategoryByUpdatedByList() { + return _userId_DeriveSubQuery_BookmarkCategoryByUpdatedByListMap; + } + + public String keepUserId_DeriveSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + if (_userId_DeriveSubQuery_BookmarkCategoryByUpdatedByListMap == null) { + _userId_DeriveSubQuery_BookmarkCategoryByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_BookmarkCategoryByUpdatedByListMap + .size() + 1); + _userId_DeriveSubQuery_BookmarkCategoryByUpdatedByListMap.put(key, + subQuery); + return "userId_DeriveSubQuery_BookmarkCategoryByUpdatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_BookmarkLinkByCreatedByListMap; + + public Map getUserId_DeriveSubQuery_BookmarkLinkByCreatedByList() { + return _userId_DeriveSubQuery_BookmarkLinkByCreatedByListMap; + } + + public String keepUserId_DeriveSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_DeriveSubQuery_BookmarkLinkByCreatedByListMap == null) { + _userId_DeriveSubQuery_BookmarkLinkByCreatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_BookmarkLinkByCreatedByListMap.size() + 1); + _userId_DeriveSubQuery_BookmarkLinkByCreatedByListMap + .put(key, subQuery); + return "userId_DeriveSubQuery_BookmarkLinkByCreatedByList." + key; + } + + protected Map _userId_DeriveSubQuery_BookmarkLinkByUpdatedByListMap; + + public Map getUserId_DeriveSubQuery_BookmarkLinkByUpdatedByList() { + return _userId_DeriveSubQuery_BookmarkLinkByUpdatedByListMap; + } + + public String keepUserId_DeriveSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + if (_userId_DeriveSubQuery_BookmarkLinkByUpdatedByListMap == null) { + _userId_DeriveSubQuery_BookmarkLinkByUpdatedByListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_BookmarkLinkByUpdatedByListMap.size() + 1); + _userId_DeriveSubQuery_BookmarkLinkByUpdatedByListMap + .put(key, subQuery); + return "userId_DeriveSubQuery_BookmarkLinkByUpdatedByList." + key; + } + protected Map _userId_DeriveSubQuery_GroupMappingListMap; public Map getUserId_DeriveSubQuery_GroupMappingList() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkCategoryCIQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,6 +7,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsBookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.bs.BsBookmarkCategoryCQ; @@ -145,6 +146,12 @@ return _myCQ.getCreatedBy(); } + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(subQuery); + } + protected ConditionValue getCValueUpdatedTime() { return _myCQ.getUpdatedTime(); } @@ -153,6 +160,12 @@ return _myCQ.getUpdatedBy(); } + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(subQuery); + } + protected ConditionValue getCValueDeletedTime() { return _myCQ.getDeletedTime(); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/BookmarkLinkCIQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,6 +7,7 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; +import jp.sf.pal.bookmark.db.cbean.cq.UserInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.bs.AbstractBsBookmarkLinkCQ; import jp.sf.pal.bookmark.db.cbean.cq.bs.BsBookmarkLinkCQ; @@ -132,6 +133,12 @@ return _myCQ.getCreatedBy(); } + public String keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepCreatedBy_InScopeSubQuery_UserInfoByCreatedBy(subQuery); + } + protected ConditionValue getCValueUpdatedTime() { return _myCQ.getUpdatedTime(); } @@ -140,6 +147,12 @@ return _myCQ.getUpdatedBy(); } + public String keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy( + UserInfoCQ subQuery) { + return _myCQ + .keepUpdatedBy_InScopeSubQuery_UserInfoByUpdatedBy(subQuery); + } + protected ConditionValue getCValueDeletedTime() { return _myCQ.getDeletedTime(); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -5,6 +5,8 @@ import jp.sf.pal.bookmark.db.allcommon.cbean.coption.ConditionOption; import jp.sf.pal.bookmark.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.bookmark.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; +import jp.sf.pal.bookmark.db.cbean.cq.BookmarkLinkCQ; import jp.sf.pal.bookmark.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.bookmark.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.bookmark.db.cbean.cq.RoleInfoCQ; @@ -98,6 +100,30 @@ return _myCQ.getUserId(); } + public String keepUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_BookmarkCategoryByCreatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_BookmarkCategoryByUpdatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_BookmarkLinkByCreatedByList(subQuery); + } + + public String keepUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_BookmarkLinkByUpdatedByList(subQuery); + } + public String keepUserId_InScopeSubQuery_GroupMappingList( GroupMappingCQ subQuery) { return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); @@ -108,6 +134,30 @@ return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); } + public String keepUserId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_BookmarkCategoryByCreatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_BookmarkCategoryByUpdatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_BookmarkLinkByCreatedByList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_BookmarkLinkByUpdatedByList(subQuery); + } + public String keepUserId_NotInScopeSubQuery_GroupMappingList( GroupMappingCQ subQuery) { return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); @@ -118,6 +168,30 @@ return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); } + public String keepUserId_ExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepUserId_ExistsSubQuery_GroupMappingList( GroupMappingCQ subQuery) { throw new UnsupportedOperationException( @@ -130,6 +204,30 @@ "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepUserId_NotExistsSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepUserId_NotExistsSubQuery_GroupMappingList( GroupMappingCQ subQuery) { throw new UnsupportedOperationException( @@ -142,6 +240,30 @@ "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepUserId_DeriveSubQuery_BookmarkCategoryByCreatedByList( + BookmarkCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_BookmarkCategoryByUpdatedByList( + BookmarkCategoryCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_BookmarkLinkByCreatedByList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_BookmarkLinkByUpdatedByList( + BookmarkLinkCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + public String keepUserId_DeriveSubQuery_GroupMappingList( GroupMappingCQ subQuery) { throw new UnsupportedOperationException( Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkCategoryNss.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -1,5 +1,6 @@ package jp.sf.pal.bookmark.db.cbean.nss; +import jp.sf.pal.bookmark.db.allcommon.cbean.ConditionQuery; import jp.sf.pal.bookmark.db.cbean.cq.BookmarkCategoryCQ; /** @@ -24,7 +25,24 @@ // ========= // With Nested Foreign Table // ========================= + public UserInfoNss withUserInfoByCreatedBy() { + _query.doNss(new BookmarkCategoryCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByCreatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByCreatedBy()); + } + public UserInfoNss withUserInfoByUpdatedBy() { + _query.doNss(new BookmarkCategoryCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByUpdatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByUpdatedBy()); + } + //========================================================================== // ========= // With Nested Referrer Table Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/nss/BookmarkLinkNss.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -34,6 +34,24 @@ return new BookmarkCategoryNss(_query.queryBookmarkCategory()); } + public UserInfoNss withUserInfoByCreatedBy() { + _query.doNss(new BookmarkLinkCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByCreatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByCreatedBy()); + } + + public UserInfoNss withUserInfoByUpdatedBy() { + _query.doNss(new BookmarkLinkCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfoByUpdatedBy(); + } + }); + return new UserInfoNss(_query.queryUserInfoByUpdatedBy()); + } + //========================================================================== // ========= // With Nested Referrer Table Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/CategoryDxo.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -3,8 +3,7 @@ import java.io.Serializable; import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; -import jp.sf.pal.bookmark.form.admin.CategoryForm; -import jp.sf.pal.bookmark.form.category.EditForm; +import jp.sf.pal.bookmark.form.user.CategoryForm; import org.seasar.extension.dxo.annotation.ConversionRule; import org.seasar.extension.dxo.annotation.DatePattern; @@ -30,7 +29,7 @@ // + ", versionno : versionno" // ) public void convertFromCategoryToForm(BookmarkCategory category, - EditForm form); + CategoryForm form); @ExcludeNull @ConversionRule(// @@ -46,7 +45,7 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToCategory(EditForm form, + public void convertFromFormToCategory(CategoryForm form, BookmarkCategory category); @ExcludeNull @@ -66,7 +65,7 @@ // + ", versionno : versionno" // ) public void convertFromCategoryToForm(BookmarkCategory category, - CategoryForm form); + jp.sf.pal.bookmark.form.admin.CategoryForm form); @ExcludeNull @ConversionRule(// @@ -82,6 +81,7 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToCategory(CategoryForm form, + public void convertFromFormToCategory( + jp.sf.pal.bookmark.form.admin.CategoryForm form, BookmarkCategory category); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -3,8 +3,7 @@ import java.io.Serializable; import jp.sf.pal.bookmark.db.exentity.BookmarkLink; -import jp.sf.pal.bookmark.form.admin.LinkForm; -import jp.sf.pal.bookmark.form.link.ViewForm; +import jp.sf.pal.bookmark.form.user.LinkForm; import org.seasar.extension.dxo.annotation.ConversionRule; import org.seasar.extension.dxo.annotation.DatePattern; @@ -31,7 +30,7 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromLinkToForm(BookmarkLink link, ViewForm form); + public void convertFromLinkToForm(BookmarkLink link, LinkForm form); @ExcludeNull @TimestampPattern("yyyy/MM/dd HH:mm:ss") @@ -50,7 +49,7 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToLink(ViewForm form, BookmarkLink link); + public void convertFromFormToLink(LinkForm form, BookmarkLink link); @ExcludeNull @DatePattern("yyyy/MM/dd") @@ -70,7 +69,8 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromLinkToForm(BookmarkLink link, LinkForm form); + public void convertFromLinkToForm(BookmarkLink link, + jp.sf.pal.bookmark.form.admin.LinkForm form); @ExcludeNull @TimestampPattern("yyyy/MM/dd HH:mm:ss") @@ -89,5 +89,6 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToLink(LinkForm form, BookmarkLink link); + public void convertFromFormToLink( + jp.sf.pal.bookmark.form.admin.LinkForm form, BookmarkLink link); } Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,73 @@ +package jp.sf.pal.bookmark.form.user; + +import java.io.Serializable; + +import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class CategoryForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 1L; + + @LongType + public String id; + + @IntegerType + public int mode; + + @IntegerType + public String pageNumber; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 200) + public String memo; + + @Maxbytelength(maxbytelength = 1) + public String type; + + @IntegerType + public String sortOrder; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + public void initialize() { + mode = BookmarkConstants.LIST_MODE; + id = null; + name = null; + memo = null; + type = null; + sortOrder = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + + } +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java (rev 0) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,79 @@ +package jp.sf.pal.bookmark.form.user; + +import java.io.Serializable; + +import jp.sf.pal.bookmark.BookmarkConstants; +import jp.sf.pal.bookmark.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class LinkForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 1L; + + @IntegerType + public String id; + + @IntegerType + public int mode; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @Maxbytelength(maxbytelength = 200) + public String memo; + + public String url; + + public String type; + + public String sortOrder; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String categoryId; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + mode = BookmarkConstants.LIST_MODE; + id = null; + name = null; + memo = null; + url = null; + type = null; + sortOrder = null; + categoryId = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + + } + +} Property changes on: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -11,8 +11,11 @@ import jp.sf.pal.bookmark.common.util.PagingResultBeanWrapper; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.exbhv.BookmarkCategoryBhv; +import jp.sf.pal.bookmark.db.exbhv.UserInfoBhv; import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; +import jp.sf.pal.bookmark.db.exentity.UserInfo; import jp.sf.pal.bookmark.pager.CategoryPager; import org.seasar.framework.container.hotdeploy.HotdeployUtil; @@ -26,6 +29,25 @@ private PagerDxo pagerDxo; + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + public List getCategoryList(CategoryPager categoryPager) { HotdeployUtil.rebuildValue(categoryPager); @@ -72,6 +94,9 @@ Timestamp now = new Timestamp(System.currentTimeMillis()); category.setUpdatedTime(now); + initUserInfo(category.getCreatedBy()); + initUserInfo(category.getUpdatedBy()); + // Category if (isUpdate) { bookmarkCategoryBhv.update(category); @@ -196,4 +221,12 @@ public void setPagerDxo(PagerDxo pagerDxo) { this.pagerDxo = pagerDxo; } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java 2008-11-11 13:35:52 UTC (rev 1332) @@ -10,8 +10,11 @@ import jp.sf.pal.bookmark.common.util.PagingResultBeanWrapper; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; import jp.sf.pal.bookmark.db.cbean.BookmarkLinkCB; +import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.exbhv.BookmarkLinkBhv; +import jp.sf.pal.bookmark.db.exbhv.UserInfoBhv; import jp.sf.pal.bookmark.db.exentity.BookmarkLink; +import jp.sf.pal.bookmark.db.exentity.UserInfo; import jp.sf.pal.bookmark.pager.LinkPager; import org.seasar.framework.container.hotdeploy.HotdeployUtil; @@ -25,6 +28,25 @@ private PagerDxo pagerDxo; + private transient UserInfoBhv userInfoBhv; + + private void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + public List getLinkList(LinkPager linkPager) { HotdeployUtil.rebuildValue(linkPager); @@ -79,6 +101,9 @@ Timestamp now = new Timestamp(System.currentTimeMillis()); link.setUpdatedTime(now); + initUserInfo(link.getCreatedBy()); + initUserInfo(link.getUpdatedBy()); + // Link if (isUpdate) { bookmarkLinkBhv.update(link); @@ -176,4 +201,12 @@ this.pagerDxo = pagerDxo; } + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } + } Added: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db =================================================================== (Binary files differ) Property changes on: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.index.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-11 09:47:30 UTC (rev 1331) +++ bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-11 13:35:52 UTC (rev 1332) @@ -7,7 +7,7 @@ org.seasar.struts.portlet.SAStrutsPortlet viewPage - /link/view/ + /user/link/ 0 Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp (from rev 1326, bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,60 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + +
        ${f:h(name)}
        ${f:br(f:nbsp(f:h(memo)))}
        + + + +
        + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + +
        +
        +
        +
        + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp (from rev 1326, bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,48 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + + +
        + "/> + "/> +
        +
        +
        +
        + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp (from rev 1325, bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/error.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,11 @@ +<%@page pageEncoding="UTF-8" %> + + + + + + +
        + + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp (from rev 1325, bookmark/trunk/src/main/webapp/WEB-INF/view/category/edit/index.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,86 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
        +
        + +
        + +| + + + + + + + + + + + + + + + + + + +
        ${f:h(c.name)}(${c.sortOrder}) + + + + + +
        + + ²¼¤Ø + +  + + + ¾å¤Ø + +  +
        +
        + + +
        + +
        + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
        +
        + + ${categoryPager.currentPageNumber}/${categoryPager.allPageCount} (${categoryPager.allRecordCount}) + +
        +
        +
        + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp (from rev 1331, bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/confirm.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,96 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
        +
        +
        +
        +
        +
          + + +
        • ${f:h(c.name)}
        • +
          + +
        • ${f:h(c.name)}
        • +
          +
          +
        +
        +
        + +
        + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ${f:h(name)}
        ${f:h(url)}
        ${f:br(f:nbsp(f:h(memo)))}
        + + ${f:h(category.name)} + + +
        + + + +
        + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + + "/> + "/> + + +
        +
        +
        +
        +
        + + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp (from rev 1331, bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/edit.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,81 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
        +
        +
        +
        +
        +
          + + +
        • ${f:h(c.name)}
        • +
          + +
        • ${f:h(c.name)}
        • +
          +
          +
        +
        +
        + +
        + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + + + ${f:h(category.name)} + + +
        + + + + +
        + "/> + "/> +
        +
        +
        +
        +
        + + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp (from rev 1325, bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/error.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,11 @@ +<%@page pageEncoding="UTF-8" %> + + + + + + +
        + + + Copied: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp (from rev 1326, bookmark/trunk/src/main/webapp/WEB-INF/view/link/view/index.jsp) =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp (rev 0) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp 2008-11-11 13:35:52 UTC (rev 1332) @@ -0,0 +1,104 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
        +
        +
        +
        +
        +
          + + +
        • ${f:h(c.name)}
        • +
          + +
        • ${f:h(c.name)}
        • +
          +
          +
        +
        +
        + +
        +
        + +| + +
        + + + + + + + + + + + + + + + + + +
         
        ${f:h(l.name)} + + + + + + +
        + + + +  + + + + +  +
        +
        +   +
        + +
        + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
        +
        + + ${linkPager.currentPageNumber}/${linkPager.allPageCount} (${linkPager.allRecordCount}) + +
        +
        +
        + + + From svnnotify ¡÷ sourceforge.jp Wed Nov 12 17:24:46 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 12 Nov 2008 17:24:46 +0900 Subject: [pal-cvs 3598] [1333] i18ned timecard titile bar Message-ID: <1226478286.158763.27079.nullmailer@users.sourceforge.jp> Revision: 1333 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1333 Author: sone Date: 2008-11-12 17:24:45 +0900 (Wed, 12 Nov 2008) Log Message: ----------- i18ned timecard titile bar Modified Paths: -------------- timecard/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- timecard/trunk/src/main/resources/jp/ timecard/trunk/src/main/resources/jp/sf/ timecard/trunk/src/main/resources/jp/sf/pal/ timecard/trunk/src/main/resources/jp/sf/pal/timecard/ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties -------------- next part -------------- Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin.properties =================================================================== Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties (rev 0) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties 2008-11-12 08:24:45 UTC (rev 1333) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u7ba1\u7406 +javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u7ba1\u7406 +javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u7ba1\u7406,\u7ba1\u7406\u8005 \ No newline at end of file Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig.properties =================================================================== Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties (rev 0) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties 2008-11-12 08:24:45 UTC (rev 1333) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u8a2d\u5b9a +javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u8a2d\u5b9a +javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u8a2d\u5b9a \ No newline at end of file Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor.properties =================================================================== Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties (rev 0) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties 2008-11-12 08:24:45 UTC (rev 1333) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a8\u30c7\u30a3\u30bf +javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a8\u30c7\u30a3\u30bf +javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u30a8\u30c7\u30a3\u30bf \ No newline at end of file Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager.properties =================================================================== Added: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties (rev 0) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties 2008-11-12 08:24:45 UTC (rev 1333) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3 +javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3 +javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u8a2d\u5b9a \ No newline at end of file Modified: timecard/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-11 13:35:52 UTC (rev 1332) +++ timecard/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-12 08:24:45 UTC (rev 1333) @@ -1,91 +1,111 @@ - - TimecardConfig - Timecard: Timecard Configuration - Edit configurations. - org.seasar.struts.portlet.SAStrutsPortlet - - viewPage - /config/ - - 0 - - text/html - VIEW - - en - ja - - Timecard Configuration - Config - Timecard,URL - - - - TimecardEditor - Timecard: Timecard Editor - Edit timecards. - org.seasar.struts.portlet.SAStrutsPortlet - - viewPage - /employee/ - - 0 - - text/html - VIEW - - en - ja - - Timecard Editor - Timecards - Timecard,URL - - - - TimecardAdmin - Timecard: Timecard Admin Manager - Manage all timecards. - org.seasar.struts.portlet.SAStrutsPortlet - - viewPage - /admin/employee/ - - 0 - - text/html - VIEW - - en - ja - - Timecard Admin Manager - Timecards - Timecard,URL - - - - TimecardManager - Timecard: Timecard Manager - Manage timecards for staffs. - org.seasar.struts.portlet.SAStrutsPortlet - - viewPage - /manager/employee/ - - 0 - - text/html - VIEW - - en - ja - - Timecard Manager - Timecards - Timecard,URL - - + + TimecardConfig + Timecard: Timecard Configuration + ¥¿¥¤¥à¥«¡¼¥ÉÀßÄê + Edit configurations. + ¥¿¥¤¥à¥«¡¼¥É¤ÎÀßÄê + org.seasar.struts.portlet.SAStrutsPortlet + + + viewPage + /config/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardConfig + + + Timecard Configuration + Config + Timecard,URL + + + + TimecardEditor + Timecard: Timecard Editor + ¥¿¥¤¥à¥«¡¼¥É¥¨¥Ç¥£¥¿ + Edit timecards. + ¥¿¥¤¥à¥«¡¼¥É¤ÎÊÔ½¸ + org.seasar.struts.portlet.SAStrutsPortlet + + + viewPage + /employee/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardEditor + + + Timecard Editor + Timecards + Timecard,URL + + + + TimecardAdmin + Timecard: Timecard Admin Manager + ¥¿¥¤¥à¥«¡¼¥É´ÉÍý + Manage all timecards. + Á´¤Æ¤Î¥¿¥¤¥à¥«¡¼¥É¤Î´ÉÍý + org.seasar.struts.portlet.SAStrutsPortlet + + + viewPage + /admin/employee/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardAdmin + + + Timecard Admin Manager + Timecards + Timecard,URL + + + + TimecardManager + Timecard: Timecard Manager + ¥¿¥¤¥à¥«¡¼¥É¥Þ¥Í¡¼¥¸¥ã + Manage timecards for staffs. + ¼Ò°÷¤Î¥¿¥¤¥à¥«¡¼¥É¤Î´ÉÍý + org.seasar.struts.portlet.SAStrutsPortlet + + + viewPage + /manager/employee/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardManager + + + Timecard Manager + Timecards + Timecard,URL + + From svnnotify ¡÷ sourceforge.jp Wed Nov 12 17:48:49 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 12 Nov 2008 17:48:49 +0900 Subject: [pal-cvs 3599] [1334] i18ned todolist titile bar Message-ID: <1226479729.794041.20670.nullmailer@users.sourceforge.jp> Revision: 1334 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1334 Author: sone Date: 2008-11-12 17:48:49 +0900 (Wed, 12 Nov 2008) Log Message: ----------- i18ned todolist titile bar Modified Paths: -------------- todolist/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- todolist/trunk/src/main/resources/jp/ todolist/trunk/src/main/resources/jp/sf/ todolist/trunk/src/main/resources/jp/sf/pal/ todolist/trunk/src/main/resources/jp/sf/pal/todolist/ todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/ todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListConfiguration.properties todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListConfiguration_ja.properties todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListEditor.properties todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListEditor_ja.properties todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListManager.properties todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListManager_ja.properties -------------- next part -------------- Added: todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListConfiguration.properties =================================================================== Added: todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListConfiguration_ja.properties =================================================================== --- todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListConfiguration_ja.properties (rev 0) +++ todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListConfiguration_ja.properties 2008-11-12 08:48:49 UTC (rev 1334) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=ToDo\u30ea\u30b9\u30c8\u8a2d\u5b9a +javax.portlet.short-title=ToDo\u30ea\u30b9\u30c8\u8a2d\u5b9a +javax.portlet.keywords=ToDo\u30ea\u30b9\u30c8,\u8a2d\u5b9a \ No newline at end of file Added: todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListEditor.properties =================================================================== Added: todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListEditor_ja.properties =================================================================== --- todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListEditor_ja.properties (rev 0) +++ todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListEditor_ja.properties 2008-11-12 08:48:49 UTC (rev 1334) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=ToDo\u30ea\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf +javax.portlet.short-title=ToDo\u30ea\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf +javax.portlet.keywords=ToDo\u30ea\u30b9\u30c8,\u30a8\u30c7\u30a3\u30bf,\u7de8\u96c6 \ No newline at end of file Added: todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListManager.properties =================================================================== Added: todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListManager_ja.properties =================================================================== --- todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListManager_ja.properties (rev 0) +++ todolist/trunk/src/main/resources/jp/sf/pal/todolist/resources/TodoListManager_ja.properties 2008-11-12 08:48:49 UTC (rev 1334) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=ToDo\u30ea\u30b9\u30c8\u7ba1\u7406 +javax.portlet.short-title=ToDo\u30ea\u30b9\u30c8\u7ba1\u7406 +javax.portlet.keywords=ToDo\u30ea\u30b9\u30c8,\u7ba1\u7406 \ No newline at end of file Modified: todolist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-12 08:24:45 UTC (rev 1333) +++ todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-12 08:48:49 UTC (rev 1334) @@ -3,7 +3,9 @@ ToDoListConfig ToDoList: ToDoList Configuration + ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥ÈÀßÄê Edit configurations. + ToDo¥ê¥¹¥È¤ÎÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -16,6 +18,7 @@
        en ja + jp.sf.pal.todolist.resources.TodoListConfiguration ToDoList Configuration Config @@ -25,7 +28,9 @@ ToDoListManager ToDoList: ToDoList Manager + ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥È´ÉÍý Edit user information. + ¥æ¡¼¥¶¾ðÊó¤ÎÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -38,6 +43,7 @@ en ja + jp.sf.pal.todolist.resources.TodoListManager ToDoList Manager ToDoLists @@ -47,7 +53,9 @@ ToDoListEditor ToDoList: ToDoList Editor + ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥È¥¨¥Ç¥£¥¿ Edit my tasks. + ¥¿¥¹¥¯¤ÎÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -60,6 +68,7 @@ en ja + jp.sf.pal.todolist.resources.TodoListEditor ToDoList ToDo From svnnotify ¡÷ sourceforge.jp Wed Nov 12 17:50:01 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 12 Nov 2008 17:50:01 +0900 Subject: [pal-cvs 3600] [1335] i18ned timecard (changed display-name) Message-ID: <1226479801.243428.21131.nullmailer@users.sourceforge.jp> Revision: 1335 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1335 Author: sone Date: 2008-11-12 17:50:01 +0900 (Wed, 12 Nov 2008) Log Message: ----------- i18ned timecard (changed display-name) Modified Paths: -------------- timecard/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: timecard/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-12 08:48:49 UTC (rev 1334) +++ timecard/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-12 08:50:01 UTC (rev 1335) @@ -3,7 +3,7 @@ TimecardConfig Timecard: Timecard Configuration - ¥¿¥¤¥à¥«¡¼¥ÉÀßÄê + ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥ÉÀßÄê Edit configurations. ¥¿¥¤¥à¥«¡¼¥É¤ÎÀßÄê org.seasar.struts.portlet.SAStrutsPortlet @@ -30,7 +30,7 @@ TimecardEditor Timecard: Timecard Editor - ¥¿¥¤¥à¥«¡¼¥É¥¨¥Ç¥£¥¿ + ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥É¥¨¥Ç¥£¥¿ Edit timecards. ¥¿¥¤¥à¥«¡¼¥É¤ÎÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet @@ -57,7 +57,7 @@ TimecardAdmin Timecard: Timecard Admin Manager - ¥¿¥¤¥à¥«¡¼¥É´ÉÍý + ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥É´ÉÍý Manage all timecards. Á´¤Æ¤Î¥¿¥¤¥à¥«¡¼¥É¤Î´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet @@ -84,7 +84,7 @@ TimecardManager Timecard: Timecard Manager - ¥¿¥¤¥à¥«¡¼¥É¥Þ¥Í¡¼¥¸¥ã + ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥É¥Þ¥Í¡¼¥¸¥ã Manage timecards for staffs. ¼Ò°÷¤Î¥¿¥¤¥à¥«¡¼¥É¤Î´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet From svnnotify ¡÷ sourceforge.jp Thu Nov 13 09:22:41 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 09:22:41 +0900 Subject: [pal-cvs 3601] [1336] replaced with tex. Message-ID: <1226535761.622759.28781.nullmailer@users.sourceforge.jp> Revision: 1336 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1336 Author: shinsuke Date: 2008-11-13 09:22:41 +0900 (Thu, 13 Nov 2008) Log Message: ----------- replaced with tex. Added Paths: ----------- pal-portal/docs/ja/installation-guide/trunk/build.properties pal-portal/docs/ja/installation-guide/trunk/build.xml pal-portal/docs/ja/installation-guide/trunk/src/images/ pal-portal/docs/ja/installation-guide/trunk/src/images/install_01welcome.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_02license.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_03selection.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_04location.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_05components.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_06mail.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_07database.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_08beforeinstall.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_09install.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_10progress.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_11message.png pal-portal/docs/ja/installation-guide/trunk/src/images/install_12complete.png pal-portal/docs/ja/installation-guide/trunk/src/images/palportal_top.png pal-portal/docs/ja/installation-guide/trunk/src/images/sflogo.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_01welcome.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_02license.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_03selection.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_04location.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_05components.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_06beforeupgrade.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_07upgrade.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_08progress.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_09message.png pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_10complete.png pal-portal/docs/ja/installation-guide/trunk/src/lib/ pal-portal/docs/ja/installation-guide/trunk/src/lib/ant-contrib-1.0b2.jar pal-portal/docs/ja/installation-guide/trunk/src/tex/ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-dbsetup.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-steps.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade-steps.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-db-mysql.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-dbsetup.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-steps.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade-steps.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-unix.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-win.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/index.tex pal-portal/docs/ja/installation-guide/trunk/src/tex/installation-guide.tex Removed Paths: ------------- pal-portal/docs/ja/installation-guide/trunk/project.properties pal-portal/docs/ja/installation-guide/trunk/project.xml pal-portal/docs/ja/installation-guide/trunk/src/images/install_01welcome.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_02license.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_03selection.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_04location.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_05components.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_06mail.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_07database.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_08beforeinstall.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_09install.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_10progress.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_11message.gif pal-portal/docs/ja/installation-guide/trunk/src/images/install_12complete.gif pal-portal/docs/ja/installation-guide/trunk/src/images/palportal_top.gif pal-portal/docs/ja/installation-guide/trunk/src/images/sflogo.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_01welcome.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_02license.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_03selection.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_04location.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_05components.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_06beforeupgrade.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_07upgrade.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_08progress.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_09message.gif pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_10complete.gif pal-portal/docs/ja/installation-guide/trunk/src/resources/ pal-portal/docs/ja/installation-guide/trunk/xdocs/ -------------- next part -------------- Added: pal-portal/docs/ja/installation-guide/trunk/build.properties =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/build.properties (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/build.properties 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,12 @@ +build.dir=${basedir}/target +build.tex.dir=${basedir}/target/tex +build.img.dir=${basedir}/target/tex/images +src.tex.dir=${basedir}/src/tex +src.img.dir=${basedir}/src/images +document.name=installation-guide +document.version=1.1-rev2 + +tex.cmd=platex +dvi2ps.cmd=pdvips +gs.cmd=gs +convert.cmd=convert Property changes on: pal-portal/docs/ja/installation-guide/trunk/build.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/installation-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/build.xml (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/build.xml 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + ${convert.cmd} ${image.name}.png ${image.name}.eps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: pal-portal/docs/ja/installation-guide/trunk/build.xml ___________________________________________________________________ Name: svn:eol-style + native Deleted: pal-portal/docs/ja/installation-guide/trunk/project.properties =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/project.properties 2008-11-12 08:50:01 UTC (rev 1335) +++ pal-portal/docs/ja/installation-guide/trunk/project.properties 2008-11-13 00:22:41 UTC (rev 1336) @@ -1,34 +0,0 @@ -# Repo -maven.repo.remote = http://www.bluesunrise.com/maven/, http://mirrors.ibiblio.org/pub/mirrors/maven/,http://dist.codehaus.org/, http://people.apache.org/repository/, http://maven.marevol.com/ - - -# -# DATE Preferences -# -# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom' -maven.xdoc.date = left -#maven.xdoc.date.format = yyyy/MM/dd HH:mm z -maven.xdoc.date.format = yyyy/MM/dd HH:mm -# The date locale -maven.xdoc.date.locale = ja - -# -# Doc Setting -# -maven.xdoc.version=${pom.currentVersion} -maven.xdoc.includeProjectDocumentation = no -maven.docs.outputencoding = EUC-JP -maven.javadoc.source = 1.4 -maven.xdoc.jsl=file:${maven.src.dir}/resources/site.jsl - -# Multiproject settings -maven.multiproject.includes=*/project.xml -maven.multiproject.excludes=project.xml -# following are default values but needed here because our allSite goal doesn't know them from the plugin -maven.multiproject.aggregateDir=multiproject/ -maven.multiproject.ignoreFailures=true - -maven.pdf.cover.type=Installation Guide -maven.pdf.companyLogo=http://pal.sourceforge.jp/images/pal_banner.gif -#maven.pdf.projectLogo=http://pal.sourceforge.jp/pal-portal/docs/ja/installation-guide/images/sflogo.gif -maven.pdf.projectLogo= Deleted: pal-portal/docs/ja/installation-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/project.xml 2008-11-12 08:50:01 UTC (rev 1335) +++ pal-portal/docs/ja/installation-guide/trunk/project.xml 2008-11-13 00:22:41 UTC (rev 1336) @@ -1,37 +0,0 @@ - - - - PAL????¿ã? ?¤ã??¹ã??¼ã??????/name> - jp.sf.pal.pal-portal.docs.ja - installation-guide - 1.1-rev1 - - Portal Application Laboratory - http://pal.sourceforge.jp/ - /images/pal-logo.png - - 2005 - - http://sourceforge.jp/projects/pal/ - /images/sflogo.gif - - shell.sourceforge.jp - /home/groups/p/pa/pal/htdocs/pal-portal/docs/ja/installation-guide/ - - maven-license-plugin - - Copied: pal-portal/docs/ja/installation-guide/trunk/src/images (from rev 1141, pal-portal/docs/ja/installation-guide/trunk/xdocs/images) Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_01welcome.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_01welcome.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_01welcome.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_02license.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_02license.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_02license.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_03selection.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_03selection.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_03selection.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_04location.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_04location.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_04location.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_05components.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_05components.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_05components.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_06mail.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_06mail.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_06mail.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_07database.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_07database.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_07database.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_08beforeinstall.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_08beforeinstall.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_08beforeinstall.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_09install.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_09install.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_09install.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_10progress.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_10progress.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_10progress.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_11message.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_11message.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_11message.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/install_12complete.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/install_12complete.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/install_12complete.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/palportal_top.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/palportal_top.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/palportal_top.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/sflogo.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/sflogo.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/sflogo.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_01welcome.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_01welcome.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_01welcome.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_02license.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_02license.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_02license.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_03selection.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_03selection.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_03selection.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_04location.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_04location.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_04location.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_05components.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_05components.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_05components.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_06beforeupgrade.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_06beforeupgrade.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_06beforeupgrade.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_07upgrade.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_07upgrade.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_07upgrade.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_08progress.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_08progress.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_08progress.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_09message.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_09message.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_09message.png ___________________________________________________________________ Name: svn:mime-type + image/png Deleted: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_10complete.gif =================================================================== (Binary files differ) Added: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_10complete.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/images/upgrade_10complete.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/installation-guide/trunk/src/lib/ant-contrib-1.0b2.jar =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/installation-guide/trunk/src/lib/ant-contrib-1.0b2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-dbsetup.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-dbsetup.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-dbsetup.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,105 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î DB ÀßÄê} + + + + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁªÂò} + + ¥Ç¥Õ¥©¥ë¥È¤Î Derby °Ê³°¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¢CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Î¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁªÂò¡×¤ÇÍøÍѤ·¤¿¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + ÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Ë´Ä¶­¹½ÃÛ¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + ¥¤¥ó¥¹¥È¡¼¥ë¥×¥í¥»¥¹¤ÎÃæ¤Ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ë¥Æ¡¼¥Ö¥ë¤äɬÍפʾðÊó¤¬ÁÞÆþ¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Database Selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +¥Ý¡¼¥¿¥ëÍѤËÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼ïÎà + Enter a number + 1) DB2 (Experimental) + 2) Derby [default] + 3) MS SQL Server (Experimental) + 4) MySQL + 5) PostgreSQL + 6) Oracle (9i °Ê¾å) + 7) SapDB (Experimental) + 8) ¼êÆ°¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥»¥Ã¥È¥¢¥Ã¥× + +\end{screen} + + º£²ó¤Ï¡¢MySQL ¤òÎã¤Ë¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¤Î¤Ç¡¢¡Ö4¡×¤òÆþÎϤ·¤Æ¡¢Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ñ¥é¥á¡¼¥¿ÀßÄê} + + ÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤷ¤Þ¤¹¡£ + ¡Ê°Ê²¼¤Î¥Ñ¥é¥á¡¼¥¿¤Ï°ìÎã¤Ç¤¹¡Ë + + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + MySQL Database Connection Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +MySQL ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤ËÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ +¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶Ì¾ [default:] +palportal + +¥Ç¡¼¥¿¥Ù¡¼¥¹¥Ñ¥¹¥ï¡¼¥É [default:] +password + +JDBC Àܳʸ»úÎó [default:jdbc:mysql://localhost:3306/[dbname]] +jdbc:mysql://localhost:3306/palportal + +JDBC ¥É¥é¥¤¥Ð¥¯¥é¥¹Ì¾ [default:com.mysql.jdbc.Driver] +com.mysql.jdbc.Driver + +JDBC ¥É¥é¥¤¥Ð [default:/root/mysql-connector-java-5.0.4.jar] +mysql-connector-java-5.1.6-bin.jar +\end{screen} + + ¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶Ì¾¡×¤È¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¥Ñ¥¹¥ï¡¼¥É¡×¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¡ÖJDBCÀܳʸ»úÎó¡×¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤¹¤ë¥Ñ¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¡ÖJDBC¥É¥é¥¤¥Ð¥¯¥é¥¹Ì¾¡×¤È¡ÖJDBC¥É¥é¥¤¥Ð¡×¤ÏÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + ³Æ¹àÌܤËÂФ·¤Æ¥Ñ¥é¥á¡¼¥¿¤òÆþÎϸ塢Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{ÀßÄê¥Ñ¥é¥á¡¼¥¿¤Î³Îǧ} + + ÀßÄꤷ¤¿ DB ¥Ñ¥é¥á¡¼¥¿¤Î³Îǧ¤ò¤·¤Þ¤¹¡£ + + + Enter ¥­¡¼¤ò²¡²¼¤·¤Æ¤¯¤À¤µ¤¤¡£ + ÀßÄ꤬Àµ¤·¤¯¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¡¢ºÆÅÙ¡¢ÀßÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀµ¾ï¤ËÀܳ¤Ç¤­¤¿¾ì¹ç¤Ï¡¢CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Î¡Ö¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Î³Îǧ¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-steps.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-steps.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install-steps.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,408 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤Î¼ê½ç} + + + + + +\if0 PAL PORTAL ONLY: BEGIN \fi +\subsection{PALPortal-install-[version].jar ¤Î¥À¥¦¥ó¥í¡¼¥É} + +http://sourceforge.jp/projects/pal/files/¤«¤é PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼(jar¥Õ¥¡¥¤¥ë)¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥¤¥ó¥¹¥È¡¼¥é¡¼¤Î¥Õ¥¡¥¤¥ë̾¤Ï¡¢PALPortal-[version]-installer.jar ¤Ë¤Ê¤ê¤Þ¤¹([version]¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹)¡£ + + +\if0 PAL PORTAL ONLY: END \fi +\subsection{¥¤¥ó¥¹¥È¡¼¥é¤Î¼Â¹Ô} + + ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç + +\begin{screen} +\$ java -jar PALPortal-[version]-installer.jar +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹(java ¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´Ä¶­ÊÑ¿ô PATH ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹)¡£ + ¼Â¹Ô¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥é¡¼¤¬µ¯Æ°¤·¤Þ¤¹¡£ + + + ÆüËܸì°Ê³°¤ÎüËö¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥í¥±¡¼¥ë¤ÎÀßÄê¤ò C ¤Þ¤¿¤Ï en\_US.UTF-8 ¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Welcome to the PAL Portal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + +¤³¤Î¥¤¥ó¥¹¥È¡¼¥é¤Ç PAL Portal ¤ò¥»¥Ã¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£ + +Press enter to view the license agreement +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥é¥¤¥»¥ó¥¹¤Î³Îǧ} + + ¥é¥¤¥»¥ó¥¹¤ò³Îǧ¤·¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + License Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + (Ãæά) + + Copyright 2004 The Apache Software Foundation + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Do you accept the license? Y or N [default:Y] + +\end{screen} + + ¥é¥¤¥»¥ó¥¹¤ËƱ°Õ¤¹¤ë¾ì¹ç¤Ï¡¢Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + Ʊ°Õ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¡ÖN¡×¤òÆþÎϤ·¤¿¾å¤Ç Enter ¥­¡¼¤ò²¡²¼¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÁªÂò¤·¤Þ¤¹¡£ + ¿·µ¬¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Installation selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ +¥¤¥ó¥¹¥È¡¼¥ëÊýË¡ + Enter a number + 1) ¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë [default] + 2) ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë + +\end{screen} + + ¡Ö1¡×¤òÆþÎϤ·¤Æ¡¢Enter¥­¡¼¤ò²¡²¼¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥¹¤òÆþÎϤ·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Installation Location +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ [default:/root/Portal] +/Portal/ + +¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤¹¤«? +/Portal +y + +Ãí°Õ: WINDOWS¤Ç¤Ï¡¢¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ + + +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î³Îǧ} + + ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Components Selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +PAL PORTAL +Install the following component? +Tomcat 5.5.23 [default:true] + + +Install the following component? +PAL Portal [default:true] [required] + +Install the following component? +Tomcat ÍÑ PAL Portal ÀßÄê [default:true] + + +Install the following component? +¥á¡¼¥ë¥µ¡¼¥ÐÀßÄê [default:true] + + +DB ÀßÄê [default:true]required +DB ¤Ë PSML ¤ÎÊݸ [default:true] + +\end{screen} + + ³Æ¹àÌܤ´¤È¤Ë true ¤â¤·¤¯¤Ï false ¤òÆþÎϤ·¡¢Enter ¥­¡¼¤ò²¡²¼¤·¤Æ¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÁªÂò¤·¤Þ¤¹¡£ + ¡ÖTomcat 5.5.23¡×¤Î¹àÌÜ¤Ë true ¤òÆþÎϤ¹¤ë¤È¡¢PAL¥Ý¡¼¥¿¥ë¤¬ÍøÍѤ¹¤ë¤¿¤á¤Î Tomcat ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + ¡ÖTomcatÍÑPAL¥Ý¡¼¥¿¥ëÀßÄê¡×¤Î¹àÌÜ¤Ë true ¤òÆþÎϤ¹¤ë¤È¡¢Tomcat ÍѤÎÀßÄê¥Õ¥¡¥¤¥ë¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + ¡Ö¥á¡¼¥ë¥µ¡¼¥ÐÀßÄê¡×¤Î¹àÌÜ¤Ë true ¤òÆþÎϤ¹¤ë¤È¡¢PAL¥Ý¡¼¥¿¥ë¤¬ÍøÍѤ¹¤ë¥á¡¼¥ë¥µ¡¼¥Ð¤ÎÀßÄ꤬¹Ô¤¨¤Þ¤¹¡£ + + +\subsection{¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤Î»ØÄê} + + PAL¥Ý¡¼¥¿¥ë¤ÇÍøÍѤ¹¤ë¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ò»ØÄꤷ¤Þ¤¹¡£ + ¡Ö¥á¡¼¥ë¥µ¡¼¥Ð̾¡×¤Î¹àÌܤ˥᡼¥ë¥µ¡¼¥Ð¡¼Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£ + ¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤¬¥æ¡¼¥¶¡¼Ç§¾Ú¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ + ¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤¿¾å¤Ç¡¢¡Ö¥æ¡¼¥¶Ç§¾Ú¡×¤Î¹àÌÜ¤Ç true ¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Mail Server Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +ŬÀڤʥ᡼¥ë¥µ¡¼¥Ð¾ðÊó¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£¥Ç¥Õ¥©¥ë¥ÈÃͤǤâÆ°ºî¤·¤Þ¤¹¡£ +¥á¡¼¥ë¥µ¡¼¥Ð̾ [default:localhost] + + +¥æ¡¼¥¶Ì¾ [default:null] + + +¥Ñ¥¹¥ï¡¼¥É [default:null] + + +¥æ¡¼¥¶Ç§¾Ú [default:false] + + +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁªÂò} + + ÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ + ¥Ç¥Õ¥©¥ë¥È¤Î DB ¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¢Derby ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + Derby °Ê³°¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¢¡ÖCLI ¥¤¥ó¥¹¥È¡¼¥ë¤Î DB ÀßÄê¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Database Selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +¥Ý¡¼¥¿¥ëÍѤËÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼ïÎà + Enter a number + 1) DB2 (Experimental) + 2) Derby [default] + 3) MS SQL Server (Experimental) + 4) MySQL + 5) PostgreSQL + 6) Oracle (9i °Ê¾å) + 7) SapDB (Experimental) + 8) ¼êÆ°¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥»¥Ã¥È¥¢¥Ã¥× + +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Î³Îǧ} + + ¥¤¥ó¥¹¥È¡¼¥ë¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + »ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Before Your Install ... +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +PAL PORTAL ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹: + /Portal + + +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î¼Â¹Ô} + + Enter ¥­¡¼¤ò²¡²¼¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ + ¤Ê¤ª¡¢GUI ¥¤¥ó¥¹¥È¡¼¥ë¤È¤Ï°Û¤Ê¤ê¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î¥í¥°¤Ïɬ¤ºÉ½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Installation Progress +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +antinstaller.jar/root/PALPortal-1.1-installer.jar + +install.tomcat: + [echo] Installing Tomcat + [unzip] Expanding: /root/PALPortal-1.1-installer.jar into /Portal + [unzip] Expanding: /Portal/tomcat.zip into /Portal + +install.portal: + [echo] Installing Portal + [unzip] Expanding: /root/PALPortal-1.1-installer.jar into /Portal + [unzip] Expanding: /Portal/database.zip into /Portal + [unzip] Expanding: /Portal/portal.zip into /Portal + [unzip] Expanding: /root/PALPortal-1.1-installer.jar into /Portal + [unzip] Expanding: /Portal/portlets.zip into /Portal/webapps/palportal/WEB-INF/deploy + [echo] Setting up the database configuration + [copy] Copying 1 file to /Portal/shared/lib + [move] Moving 1 file to /Portal/database + [echo] Setting up the Jetspeed database (if selected) + +setupDBPSML: + [copy] Copying 1 file to /Portal/webapps/palportal/WEB-INF/assembly/alternate + +checkDerby: + +generateStandardDB: + +generateDerbyDB: + +sqlDerbyDB: + [echo] Excuting file: /Portal/database/derby/phase1-schema.sql + +sqlDerbyDB: + [echo] Excuting file: /Portal/database/derby/phase2-schema.sql + +sqlDerbyDB: + [echo] Excuting file: /Portal/database/derby/phase3ojb-schema.sql + +sqlDerbyDB: + [echo] Excuting file: /Portal/database/derby/prefs-schema.sql + +sqlDerbyDB: + [echo] Excuting file: /Portal/database/derby/registry-schema.sql + +sqlDerbyDB: + [echo] Excuting file: /Portal/database/derby/security-schema.sql + +seedDB: + [mkdir] Created dir: /Portal/database/assembly + [echo] Seeding the database + [copy] Copying 12 files to /Portal/database/assembly + [copy] Copying 4 files to /Portal/database/assembly + [mkdir] Created dir: /Portal/database/assembly/boot + [copy] Copying 1 file to /Portal/database/assembly/boot + [java] log4j:WARN No appenders could be found for logger (org.apache.jetspeed.serializer.JetspeedSerializerApplication). + [java] log4j:WARN Please initialize the log4j system properly. + [java] ++++ PREFS:PA loaded 0 pref nodes for app /portlet\_application/pal-admin/ in 1149 milliseconds. + +copyJetspeedContext: + [copy] Copying 1 file to /Portal/conf/Catalina/localhost + +test-import-psml: + +db-psml: + [mkdir] Created dir: /Portal/database/import/target/classes + [echo] Import dir: /Portal/database/import + [copy] Copying 12 files to /Portal/database/import/target/classes + +execute-import: + [copy] Copying 1 file to /Portal/webapps/palportal/WEB-INF/assembly + [copy] Copying 1 file to /Portal/webapps/palportal/WEB-INF/assembly + +fs-psml: + +do-psml: + +runSetupDB: + +install.tomcat.config: + [echo] Installing Portal Configuration for Tomcat + [unzip] Expanding: /root/PALPortal-1.1-installer.jar into /Portal + [unzip] Expanding: /Portal/tomcat-config.zip into /Portal + [echo] Copying index.jsp + [copy] Copying 1 file to /Portal/webapps/ROOT + [delete] Deleting: /Portal/temp/index.jsp + +mailServerConfiguration: + [echo] starting Mail server configuration + [copy] Copying 1 file to /Portal/webapps/palportal/WEB-INF/assembly + [delete] Deleting: /Portal/temp/administration.xml + [echo] Mail server configuration done! +\end{screen} + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î´°Î»} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤¹¤ë¤È¡¢°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + +BUILD SUCCESSFUL +Total time: 1 minute 0 seconds +´°Î»¤·¤Þ¤·¤¿¡£ +\end{screen} + + ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥í¥°¤Ç¥¨¥é¡¼ÆâÍƤò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ¼«Æ°Åª¤Ë¥¤¥ó¥¹¥È¡¼¥é¡¼¤¬½ªÎ»¤·¤Þ¤¹¡£ + + +\subsection{PAL¥Ý¡¼¥¿¥ë¤Î¼Â¹Ô} + + ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç + +\begin{screen} +\$ [¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê]/bin/startup.sh +\end{screen} + + ¤ò¼Â¹Ô¤·¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£µ¯Æ°¸å¡¢http://localhost:8080/ ¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥È¥Ã¥×¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/palportal_top.eps} +\caption{TBD} +\label{fig:palportal_top} +\end{center} +\end{figure} + + + ¥Ç¥Õ¥©¥ë¥È¤Ç¡¢ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë´ÉÍý¼Ô¤Ï¡¢¥æ¡¼¥¶¡¼Ì¾ admin ¡¢¥Ñ¥¹¥ï¡¼¥É admin ¤Ç¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-install.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,55 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë} + + + + + +\subsection{Unix(Linux ¤ò´Þ¤à) ¤Î OS ¾å¤Ë¤ª¤±¤ë¡¢CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Unix(Linux ¤ò´Þ¤à) ¤Î OS ¾å¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ (CLI) ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤Î¾Ï¤Ç¤Ï¡¢CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{Windows ¤Î OS ¾å¤Ë¤ª¤±¤ë¡¢CLI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë} + + ¤Ê¤ª¡¢Windows ¤Î OS ¾å¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ (CLI) ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£ + ¥°¥é¥Õ¥£¥«¥ë¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤ò¤´ÍøÍѤ¯¤À¤µ¤¤¡£ + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë} + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤Ï¡¢Java SDK(1.5.x°Ê¾å) ¤¬É¬Íפˤʤê¤Þ¤¹¡£ +http://java.sun.com/¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢Java SDK ¤ò¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£ + Java SDK ¤Î¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://java.sun.com/¤Ë¤¢¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤·¤¿¤¬¤Ã¤Æ¤¯¤À¤µ¤¤¡£ + + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ë JAVA\_HOME ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£Unix ·Ï OS ¤Ç´Ä¶­ÊÑ¿ô JAVA\_HOME ¤òÀßÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢ + +\begin{screen} +Îã(bash ¤òÍøÍѤξì¹ç): +\$ export JAVA\_HOME=/usr/java/jdk1.5.0\_16/ +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade-steps.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade-steps.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade-steps.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,277 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç} + + + + + +\if0 PAL PORTAL ONLY: BEGIN \fi +\subsection{PALPortal-[version]-installer.jar ¤Î¥À¥¦¥ó¥í¡¼¥É} + +http://sourceforge.jp/projects/pal/files/¤«¤é PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼(jar¥Õ¥¡¥¤¥ë)¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥¤¥ó¥¹¥È¡¼¥é¡¼¤Î¥Õ¥¡¥¤¥ë̾¤Ï¡¢PALPortal-install-[version].jar ¤Ë¤Ê¤ê¤Þ¤¹([version]¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹)¡£ + + +\if0 PAL PORTAL ONLY: END \fi +\subsection{¥¤¥ó¥¹¥È¡¼¥é¤Î¼Â¹Ô} + + ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç + +\begin{screen} +\$ java -jar PALPortal-[version]-installer.jar +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹(java ¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´Ä¶­ÊÑ¿ô PATH ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹)¡£ + ¼Â¹Ô¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥é¡¼¤¬µ¯Æ°¤·¤Þ¤¹¡£ + + + ¡Ê¤Ê¤ª¡¢¤³¤³¤«¤éÀè¤Îɽ¼¨¤ÏÆüËܸ줬ɽ¼¨¤Ç¤­¤ë´Ä¶­¤òÁÛÄꤷ¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡Ë + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Welcome to the PAL Portal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + +¤³¤Î¥¤¥ó¥¹¥È¡¼¥é¤Ç PAL Portal ¤ò¥»¥Ã¥È¥¢¥Ã¥×¤·¤Þ¤¹¡£ + +Press enter to view the license agreement +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥é¥¤¥»¥ó¥¹¤Î³Îǧ} + + ¥é¥¤¥»¥ó¥¹¤ò³Îǧ¤·¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + License Conditions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + (Ãæά) + + Copyright 2004 The Apache Software Foundation + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Do you accept the license? Y or N [default:Y] + +\end{screen} + + ¥é¥¤¥»¥ó¥¹¤ËƱ°Õ¤¹¤ë¾ì¹ç¤Ï¡¢Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + Ʊ°Õ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¡ÖN¡×¤òÆþÎϤ·¤¿¾å¤Ç Enter ¥­¡¼¤ò²¡²¼¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÁªÂò¤·¤Þ¤¹¡£ + ¿·µ¬¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Installation selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ +¥¤¥ó¥¹¥È¡¼¥ëÊýË¡ + Enter a number + 1) ¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë [default] + 2) ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë + +\end{screen} + + ¡Ö2¡×¤òÆþÎϤ·¤Æ¡¢Enter¥­¡¼¤ò²¡²¼¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥¹¤òÆþÎϤ·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Installation Location +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ [default:/root/Portal] +/Portal + + +Ãí°Õ: WINDOWS¤Ç¤Ï¡¢¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£ + +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î³Îǧ} + + ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Components Selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +PAL PORTAL +¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾ [default:palportal] + + +Install the following component? +PAL Portal [default:true] [required] + +Install the following component? +¥Ý¡¼¥È¥ì¥Ã¥È [default:true] + + +Install the following component? +PSML ¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤ [default:true] + + +Install the following component? +ÀßÄê¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤ [default:true] + + +Install the following component? +¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤ [default:true] + + +Install the following component? +¥Ç¥³¥ì¡¼¥¿¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤ [default:true] + + +Install the following component? +¥¯¥ê¡¼¥ó¥¢¥Ã¥× [default:true] [required] +\end{screen} + + ³Æ¹àÌܤ´¤È¤Ë true ¤â¤·¤¯¤Ï false ¤òÆþÎϤ·¡¢Enter ¥­¡¼¤ò²¡²¼¤·¤Æ¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÁªÂò¤·¤Þ¤¹¡£ + ¡Ö¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾¡×¤Ë¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Æ¥­¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¡×¤òÁªÂò¤¹¤ë¤È¡¢´ÉÍýÍѥݡ¼¥È¥ì¥Ã¥È¤Ê¤É¤¬¹¹¿·¤µ¤ì¤Þ¤¹¡£ + ¡ÖPSML¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/WEB-INF/pages °Ê²¼¤Î PSML ¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¡ÖÀßÄê¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/WEB-INF/conf °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¡Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/WEB-INF/assembly °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¡Ö¥Ç¥³¥ì¡¼¥¿¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/decorations °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + + +\subsection{¥¢¥Ã¥×¥°¥ì¡¼¥ÉÁ°¤Î³Îǧ} + + ¥¢¥Ã¥×¥°¥ì¡¼¥É¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + »ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Before Your Upgrade... +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +PAL PORTAL ¤ò¥¢¥Ã¥×¥°¥ì¡¼¥É¤·¤Þ¤¹: + /Portal + +\end{screen} + + Enter ¥­¡¼¤ò²¡²¼¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î¼Â¹Ô} + + Enter ¥­¡¼¤ò²¡²¼¤¹¤ë¤È¥¢¥Ã¥×¥°¥ì¡¼¥É¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ + ¤Ê¤ª¡¢GUI ¥¤¥ó¥¹¥È¡¼¥ë¤È¤Ï°Û¤Ê¤ê¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î¥í¥°¤Ïɬ¤ºÉ½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Installation Progress +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +antinstaller.jar/root/PALPortal-1.1-installer.jar + +upgrade.portal: + [echo] Upgrade Portal + [mkdir] Created dir: /Portal/temp/upgrade-portal + [unzip] Expanding: /root/PALPortal-1.1-installer.jar into /Portal/temp/upgrade-portal + [unzip] Expanding: /Portal/temp/upgrade-portal/portal.zip into /Portal/temp/upgrade-portal + [copy] Copying 5 files to /Portal/shared/lib + [move] Moving 27 files to /Portal/webapps/palportal/WEB-INF/pages.orig + [move] Moving 11 files to /Portal/webapps/palportal/WEB-INF/conf.orig + [move] Moving 53 files to /Portal/webapps/palportal/WEB-INF/assembly.orig + [move] Moving 227 files to /Portal/webapps/palportal/decorations.orig + [copy] Copying 382 files to /Portal/webapps/palportal + +upgrade.portlets: + [unzip] Expanding: /root/PALPortal-1.1-installer.jar into /Portal + [unzip] Expanding: /Portal/portlets.zip into /Portal/webapps/palportal/WEB-INF/deploy + +use.old.pages: + [delete] Deleting directory /Portal/webapps/palportal/WEB-INF/pages + [move] Moving 27 files to /Portal/webapps/palportal/WEB-INF/pages + +use.old.conf: + [delete] Deleting directory /Portal/webapps/palportal/WEB-INF/conf + [move] Moving 11 files to /Portal/webapps/palportal/WEB-INF/conf + +use.old.assembly: + [delete] Deleting directory /Portal/webapps/palportal/WEB-INF/assembly + [move] Moving 53 files to /Portal/webapps/palportal/WEB-INF/assembly + +use.old.decorations: + [delete] Deleting directory /Portal/webapps/palportal/decorations + [move] Moving 227 files to /Portal/webapps/palportal/decorations + +clean.up.upgrade: + [delete] Deleting directory /Portal/temp/upgrade-portal + +\end{screen} + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î´°Î»} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤¹¤ë¤È¡¢°Ê²¼¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} +BUILD SUCCESSFUL +Total time: 6 seconds +´°Î»¤·¤Þ¤·¤¿¡£ +\end{screen} + + ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥í¥°¤Ç¥¨¥é¡¼ÆâÍƤò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ¥¤¥ó¥¹¥È¡¼¥é¡¼¤Ï¼«Æ°Åª¤Ë½ªÎ»¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-cli-upgrade.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,55 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{CLI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë} + + + + + +\subsection{Unix(Linux ¤ò´Þ¤à) ¤Î OS ¾å¤Ë¤ª¤±¤ë¡¢CLI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Unix(Linux ¤ò´Þ¤à) ¤Î OS ¾å¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ (CLI) ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤Î¾Ï¤Ç¤Ï¡¢CLI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{Windows ¤Î OS ¾å¤Ë¤ª¤±¤ë¡¢CLI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë} + + ¤Ê¤ª¡¢Windows ¤Î OS ¾å¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ (CLI) ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£ + ¥°¥é¥Õ¥£¥«¥ë¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ò¤´ÍøÍѤ¯¤À¤µ¤¤¡£ + +\subsection{¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë} + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤Ï¡¢Java SDK(1.5.x°Ê¾å) ¤¬É¬Íפˤʤê¤Þ¤¹¡£ +http://java.sun.com/¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢Java SDK ¤ò¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£ + Java SDK ¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://java.sun.com/¤Ë¤¢¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤·¤¿¤¬¤Ã¤Æ¤¯¤À¤µ¤¤¡£ + + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ë JAVA\_HOME ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£Unix ·Ï OS ¤Ç´Ä¶­ÊÑ¿ô JAVA\_HOME ¤òÀßÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢ + +\begin{screen} +Îã(bash ¤òÍøÍѤξì¹ç): +\$ export JAVA\_HOME=/usr/java/jdk1.5.0\_16/ +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-db-mysql.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-db-mysql.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-db-mysql.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,59 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ MySQL} + + + + + +\subsection{MySQL¤Ç¤ÎÀßÄê} + + MySQL ¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤ¹¤ë¾ì¹ç¡¢MySQL ¤ÎÀßÄê¥Õ¥¡¥¤¥ë /etc/my.conf ¤Ëʸ»ú½¸¹ç¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + ÀßÄêÆâÍƤϰʲ¼¤Î¤è¤¦¤Ë default-character-set ¤Ç»ØÄꤷ¤Þ¤¹¡£ + +\begin{screen} +\[mysqld\] +datadir=/var/lib/mysql +socket=/var/lib/mysql/mysql.sock +\# Default to using old password format for compatibility with mysql 3.x +\# clients (those using the mysqlclient10 compatibility package). +old\_passwords=1 +default-character-set=utf8 + +\[mysql.server\] +user=mysql +basedir=/var/lib + +\[mysqld\_safe\] +log-error=/var/log/mysqld.log +pid-file=/var/run/mysqld/mysqld.pid + +\[client\] +default-character-set=utf8 + +\[mysql\] +default-character-set=utf8 + +\[mysqldump\] +default-character-set=utf8 +\end{screen} + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-dbsetup.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-dbsetup.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-dbsetup.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,84 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î DB ÀßÄê} + + + + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁªÂò} + + ¥Ç¥Õ¥©¥ë¥È¤Î Derby °Ê³°¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¢GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Î¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁªÂò¡×¤ÇÍøÍѤ·¤¿¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + ÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Ë´Ä¶­¹½ÃÛ¤µ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + ¥¤¥ó¥¹¥È¡¼¥ë¥×¥í¥»¥¹¤ÎÃæ¤Ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ë¥Æ¡¼¥Ö¥ë¤äɬÍפʾðÊó¤¬ÁÞÆþ¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_07database.eps} +\caption{TBD} +\label{fig:install_07database} +\end{center} +\end{figure} + + + º£²ó¤Ï¡¢MySQL ¤òÎã¤Ë¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¤Î¤Ç¡¢¡ÖMySql¡×¤òÁªÂò¤·¤Æ¡¢¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ñ¥é¥á¡¼¥¿ÀßÄê} + + ÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤷ¤Þ¤¹¡£ +\if0 +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_13dbparameters.eps} +\caption{TBD} +\label{fig:install_13dbparameters} +\end{center} +\end{figure} + + + ¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¥æ¡¼¥¶Ì¾¡×¤È¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¥Ñ¥¹¥ï¡¼¥É¡×¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¡ÖJDBCÀܳʸ»úÎó¡×¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤¹¤ë¥Ñ¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¡ÖJDBC¥É¥é¥¤¥Ð¥¯¥é¥¹Ì¾¡×¤È¡ÖJDBC¥É¥é¥¤¥Ð¡×¤ÏÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ÀßÄê¸å¡¢¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{ÀßÄê¥Ñ¥é¥á¡¼¥¿¤Î³Îǧ} + + ÀßÄꤷ¤¿ DB ¥Ñ¥é¥á¡¼¥¿¤Î³Îǧ¤ò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_14dbtest.eps} +\caption{TBD} +\label{fig:install_14dbtest} +\end{center} +\end{figure} +\fi + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£ + ÀßÄ꤬Àµ¤·¤¯¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¡¢ºÆÅÙ¡¢ÀßÄꤷ¤¿¥Ñ¥é¥á¡¼¥¿¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀµ¾ï¤ËÀܳ¤Ç¤­¤¿¾ì¹ç¤Ï¡¢GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Î¡Ö¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Î³Îǧ¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-steps.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-steps.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install-steps.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,261 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤Î¼ê½ç} + + + + + +\if0 PAL PORTAL ONLY: BEGIN \fi +\subsection{PALPortal-[version]-installer.jar ¤Î¥À¥¦¥ó¥í¡¼¥É} + +http://sourceforge.jp/projects/pal/files/¤«¤é PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼(jar¥Õ¥¡¥¤¥ë)¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥¤¥ó¥¹¥È¡¼¥é¡¼¤Î¥Õ¥¡¥¤¥ë̾¤Ï¡¢PALPortal-[version]-installer.jar ¤Ë¤Ê¤ê¤Þ¤¹([version]¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹)¡£ + + +\if0 PAL PORTAL ONLY: END \fi +\subsection{¥¤¥ó¥¹¥È¡¼¥é¤Î¼Â¹Ô} + + üËö¥¨¥ß¥å¥ì¡¼¥¿(Windows ¤Î¾ì¹ç¤Ï DOS Áë)¾å¤Ç + +\begin{screen} +(Unix ·Ï OS ¤Î¾ì¹ç) +\$ java -jar PALPortal-[version]-installer.jar +(Windows ¤Î¾ì¹ç) +> java -jar PALPortal-[version]-installer.jar +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹(java ¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´Ä¶­ÊÑ¿ô PATH ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹)¡£ + ¼Â¹Ô¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥é¡¼¤¬µ¯Æ°¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_01welcome.eps} +\caption{TBD} +\label{fig:install_01welcome} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥é¥¤¥»¥ó¥¹¤Î³Îǧ} + + ¥é¥¤¥»¥ó¥¹¤ò³Îǧ¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_02license.eps} +\caption{TBD} +\label{fig:install_02license} +\end{center} +\end{figure} + + + ¥é¥¤¥»¥ó¥¹¤ËƱ°Õ¤¹¤ë¾ì¹ç¤Ï¡¢¡ÖƱ°Õ¤¹¤ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + Ʊ°Õ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¡ÖƱ°Õ¤·¤Ê¤¤¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÁªÂò¤·¤Þ¤¹¡£ + ¿·µ¬¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_03selection.eps} +\caption{TBD} +\label{fig:install_03selection} +\end{center} +\end{figure} + + + ¡Ö¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Æ¡¢¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥ÉÍó¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥¹¤òÆþÎϤ¹¤ë¤«¡¢¡Ö¥Õ¥©¥ë¥À¤ÎÁªÂò¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_04location.eps} +\caption{TBD} +\label{fig:install_04location} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î³Îǧ} + + ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_05components.eps} +\caption{TBD} +\label{fig:install_05components} +\end{center} +\end{figure} + + + ¡ÖTomcat 5.5.23¡×¤òÁªÂò¤¹¤ë¤È¡¢PAL¥Ý¡¼¥¿¥ë¤¬ÍøÍѤ¹¤ë¤¿¤á¤Î Tomcat ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + ¡ÖTomcatÍÑPAL¥Ý¡¼¥¿¥ëÀßÄê¡×¤òÁªÂò¤¹¤ë¤È¡¢Tomcat ÍѤÎÀßÄê¥Õ¥¡¥¤¥ë¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + ¡Ö¥á¡¼¥ë¥µ¡¼¥ÐÀßÄê¡×¤òÁªÂò¤¹¤ë¤È¡¢PAL¥Ý¡¼¥¿¥ë¤¬ÍøÍѤ¹¤ë¥á¡¼¥ë¥µ¡¼¥Ð¤ÎÀßÄ꤬¹Ô¤¨¤Þ¤¹¡£ + ¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÁªÂò¤·¤Æ¡¢¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤Î»ØÄê} + + PAL¥Ý¡¼¥¿¥ë¤ÇÍøÍѤ¹¤ë¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ò»ØÄꤷ¤Þ¤¹¡£ + ¡Ö¥á¡¼¥ë¥µ¡¼¥Ð̾¡×¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥É¤Ë¥á¡¼¥ë¥µ¡¼¥Ð¡¼Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£ + ¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤¬¥æ¡¼¥¶¡¼Ç§¾Ú¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¡Ö¥æ¡¼¥¶Ç§¾Ú¡×¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤òÁªÂò¤·¤Æ¡¢¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_06mail.eps} +\caption{TBD} +\label{fig:install_06mail} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁªÂò} + + ÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»ØÄꤷ¤Þ¤¹¡£ + ¥Ç¥Õ¥©¥ë¥È¤Î DB ¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¢Derby ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + Derby °Ê³°¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¾ì¹ç¤Ï¡¢¡ÖGUI ¥¤¥ó¥¹¥È¡¼¥ë¤Î DB ÀßÄê¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_07database.eps} +\caption{TBD} +\label{fig:install_07database} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Î³Îǧ} + + ¥¤¥ó¥¹¥È¡¼¥ë¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + »ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤¬ºï½ü¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_08beforeinstall.eps} +\caption{TBD} +\label{fig:install_08beforeinstall} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î¼Â¹Ô} + + ¡Ö¥¤¥ó¥¹¥È¡¼¥ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ + ¡Ö¾ÜºÙ¤Îɽ¼¨¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î¥í¥°¤ò³Îǧ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_09install.eps} +\caption{TBD} +\label{fig:install_09install} +\end{center} +\end{figure} + + + ¡Ö¥¤¥ó¥¹¥È¡¼¥ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_10progress.eps} +\caption{TBD} +\label{fig:install_10progress} +\end{center} +\end{figure} + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î´°Î»} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤¹¤ë¤È¡¢¡Ö´°Î»¤·¤Þ¤·¤¿¡£¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_11message.eps} +\caption{TBD} +\label{fig:install_11message} +\end{center} +\end{figure} + + + ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥í¥°¤Ç¥¨¥é¡¼ÆâÍƤò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/install_12complete.eps} +\caption{TBD} +\label{fig:install_12complete} +\end{center} +\end{figure} + + + ¡Ö½ªÎ»¡×¥Ü¥¿¥ó¤ò¥¤¥ó¥¹¥È¡¼¥é¡¼¤ò½ªÎ»¤·¤Þ¤¹¡£ + + +\subsection{PAL¥Ý¡¼¥¿¥ë¤Î¼Â¹Ô} + + üËö¥¨¥ß¥å¥ì¡¼¥¿(Windows ¤Î¾ì¹ç¤Ï DOS Áë)¾å¤Ç + +\begin{screen} +(Unix ·Ï OS ¤Î¾ì¹ç) +\$ [¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê]/bin/startup.sh +(Windows ¤Î¾ì¹ç) +> [¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê]/bin/startup.bat +\end{screen} + + ¤ò¼Â¹Ô¤·¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£µ¯Æ°¸å¡¢http://localhost:8080/ ¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥È¥Ã¥×¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/palportal_top.eps} +\caption{TBD} +\label{fig:palportal_top} +\end{center} +\end{figure} + + + ¥Ç¥Õ¥©¥ë¥È¤Ç¡¢ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë´ÉÍý¼Ô¤Ï¡¢¥æ¡¼¥¶¡¼Ì¾ admin ¡¢¥Ñ¥¹¥ï¡¼¥É admin ¤Ç¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-install.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,51 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë} + + + + + +\subsection{GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Unix(Linux ¤ò´Þ¤à) ¤Þ¤¿¤Ï Windows ¤Î OS ¾å¤Ç¥°¥é¥Õ¥£¥«¥ë¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ (GUI) ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤Î¾Ï¤Ç¤Ï¡¢GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + GUI ¤Ë¤è¤ë¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢Unix ¤Î¾ì¹ç¤Ï X Window ¥·¥¹¥Æ¥à¤¬ÍøÍѤǤ­¤ë¾õÂ֤ˤʤäƤ¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë} + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤Ï¡¢Java SDK(1.5.x°Ê¾å) ¤¬É¬Íפˤʤê¤Þ¤¹¡£ +http://java.sun.com/¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢Java SDK ¤ò¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£ + Java SDK ¤Î¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://java.sun.com/¤Ë¤¢¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤·¤¿¤¬¤Ã¤Æ¤¯¤À¤µ¤¤¡£ + + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ë JAVA\_HOME ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£Unix ·Ï OS ¤Ç´Ä¶­ÊÑ¿ô JAVA\_HOME ¤òÀßÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢ + +\begin{screen} +Îã(bash ¤òÍøÍѤξì¹ç):\\ +\$ export JAVA\_HOME=/usr/java/jdk1.5.0\_16/ +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade-steps.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade-steps.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade-steps.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,202 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç} + + + + + +\if0 PAL PORTAL ONLY: BEGIN \fi +\subsection{PALPortal-install-[version].jar ¤Î¥À¥¦¥ó¥í¡¼¥É} + +http://sourceforge.jp/projects/pal/files/¤«¤é PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼(jar¥Õ¥¡¥¤¥ë)¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥¤¥ó¥¹¥È¡¼¥é¡¼¤Î¥Õ¥¡¥¤¥ë̾¤Ï¡¢PALPortal-install-[version].jar ¤Ë¤Ê¤ê¤Þ¤¹([version]¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹)¡£ + + +\if0 PAL PORTAL ONLY: END \fi +\subsection{¥¤¥ó¥¹¥È¡¼¥é¤Î¼Â¹Ô} + + üËö¥¨¥ß¥å¥ì¡¼¥¿(Windows ¤Î¾ì¹ç¤Ï DOS Áë)¾å¤Ç + +\begin{screen} +(Unix ·Ï OS ¤Î¾ì¹ç) +\$ java -jar PALPortal-install-[version].jar +(Windows ¤Î¾ì¹ç) +> java -jar PALPortal-install-[version].jar +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹(java ¥³¥Þ¥ó¥É¤¬´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢´Ä¶­ÊÑ¿ô PATH ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹)¡£ + ¼Â¹Ô¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥é¡¼¤¬µ¯Æ°¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_01welcome.eps} +\caption{TBD} +\label{fig:upgrade_01welcome} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥é¥¤¥»¥ó¥¹¤Î³Îǧ} + + ¥é¥¤¥»¥ó¥¹¤ò³Îǧ¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_02license.eps} +\caption{TBD} +\label{fig:upgrade_02license} +\end{center} +\end{figure} + + + ¥é¥¤¥»¥ó¥¹¤ËƱ°Õ¤¹¤ë¾ì¹ç¤Ï¡¢¡ÖƱ°Õ¤¹¤ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + Ʊ°Õ¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢¡ÖƱ°Õ¤·¤Ê¤¤¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤ò½ªÎ»¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤òÁªÂò¤·¤Þ¤¹¡£ + ¿·µ¬¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ï¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_03selection.eps} +\caption{TBD} +\label{fig:upgrade_03selection} +\end{center} +\end{figure} + + + ¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¡×¤òÁªÂò¤·¤Æ¡¢¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê¤ÎÁªÂò} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥ÉÍó¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥Ñ¥¹¤òÆþÎϤ¹¤ë¤«¡¢¡Ö¥Õ¥©¥ë¥À¤ÎÁªÂò¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì½ê¤ò»ØÄꤷ¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_04location.eps} +\caption{TBD} +\label{fig:upgrade_04location} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î³Îǧ} + + ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_05components.eps} +\caption{TBD} +\label{fig:upgrade_05components} +\end{center} +\end{figure} + + + ¡Ö¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾¡×¤Ë¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Æ¥­¥¹¥È̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£ + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¡×¤òÁªÂò¤¹¤ë¤È¡¢´ÉÍýÍѥݡ¼¥È¥ì¥Ã¥È¤Ê¤É¤¬¹¹¿·¤µ¤ì¤Þ¤¹¡£ + ¡ÖPSML¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/WEB-INF/pages °Ê²¼¤Î PSML ¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¡ÖÀßÄê¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/WEB-INF/conf °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¡Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/WEB-INF/assembly °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¡Ö¥Ç¥³¥ì¡¼¥¿¤ò¹¹¿·¤·¤Ê¤¤¡×¤òÁªÂò¤¹¤ë¤È¡¢[¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥È̾]/decorations °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤¬¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£ + ¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÁªÂò¤·¤Æ¡¢¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÁ°¤Î³Îǧ} + + ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥¤¥ó¥¹¥È¡¼¥ëÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_06beforeupgrade.eps} +\caption{TBD} +\label{fig:upgrade_06beforeupgrade} +\end{center} +\end{figure} + + + ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î¼Â¹Ô} + + ¡Ö¥¤¥ó¥¹¥È¡¼¥ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¥¤¥ó¥¹¥È¡¼¥ë¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ + ¡Ö¾ÜºÙ¤Îɽ¼¨¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Î¥í¥°¤ò³Îǧ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_07upgrade.eps} +\caption{TBD} +\label{fig:upgrade_07upgrade} +\end{center} +\end{figure} + + + ¡Ö¥¤¥ó¥¹¥È¡¼¥ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_08progress.eps} +\caption{TBD} +\label{fig:upgrade_08progress} +\end{center} +\end{figure} + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î´°Î»} + + ¥¤¥ó¥¹¥È¡¼¥ë¤¬´°Î»¤¹¤ë¤È¡¢¡Ö´°Î»¤·¤Þ¤·¤¿¡£¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_09message.eps} +\caption{TBD} +\label{fig:upgrade_09message} +\end{center} +\end{figure} + + + ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢¥í¥°¤Ç¥¨¥é¡¼ÆâÍƤò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/upgrade_10complete.eps} +\caption{TBD} +\label{fig:upgrade_10complete} +\end{center} +\end{figure} + + + ¡Ö½ªÎ»¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Æ¥¤¥ó¥¹¥È¡¼¥é¡¼¤ò½ªÎ»¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-gui-upgrade.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,52 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{GUI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É} + + + + + +\subsection{GUI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Unix(Linux ¤ò´Þ¤à) ¤Þ¤¿¤Ï Windows ¤Î OS ¾å¤Ç¥°¥é¥Õ¥£¥«¥ë¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ (GUI) ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤Î¾Ï¤Ç¤Ï¡¢GUI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢´û¸¤Î PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + GUI ¤Ë¤è¤ë¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢Unix ¤Î¾ì¹ç¤Ï X Window ¥·¥¹¥Æ¥à¤¬ÍøÍѤǤ­¤ë¾õÂ֤ˤʤäƤ¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + +\subsection{¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤ÎÁ°¤Ë} + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤Ï¡¢Java SDK(1.5.x°Ê¾å) ¤¬É¬Íפˤʤê¤Þ¤¹¡£ +http://java.sun.com/¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢Java SDK ¤ò¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£ + Java SDK ¤Î¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://java.sun.com/¤Ë¤¢¤ë¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤·¤¿¤¬¤Ã¤Æ¤¯¤À¤µ¤¤¡£ + + + PAL¥Ý¡¼¥¿¥ë¤ª¤è¤Ó PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥é¡¼¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¤Ï¡¢´Ä¶­ÊÑ¿ô¤Ë JAVA\_HOME ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£Unix ·Ï OS ¤Ç´Ä¶­ÊÑ¿ô JAVA\_HOME ¤òÀßÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢ + +\begin{screen} +Îã(bash ¤òÍøÍѤξì¹ç): +\$ export JAVA\_HOME=/usr/java/jdk1.5.0\_11/ +\end{screen} + + ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-unix.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-unix.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-unix.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,39 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{Unix ·Ï OS ¤Ç¤Î¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë} + + + + + +\subsection{¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Î¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë¤À¤±¤Ç´°Î»¤·¤Þ¤¹¡£ + üËö¥¨¥ß¥å¥ì¡¼¥¿¾å¤Ç + +\begin{screen} +\$ rm -rf [¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê] +\end{screen} + + ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-win.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-win.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/guide-uninstall-for-win.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,39 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{Windows ·Ï OS ¤Ç¤Î¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë} + + + + + +\subsection{¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Î¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë¤À¤±¤Ç´°Î»¤·¤Þ¤¹¡£ + DOSÁë¾å¤Ê¤É¤Ç + +\begin{screen} +> rmdir [¥¤¥ó¥¹¥È¡¼¥ë¾ì½ê] +\end{screen} + + ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/index.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/index.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/index.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,69 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{PAL¥Ý¡¼¥¿¥ë ¥¤¥ó¥¹¥È¡¼¥ë¥¬¥¤¥É} + + + + + +\subsection{ÂоÝÆɼÔ} + + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ëºî¶È¤ª¤è¤Ó¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ëºî¶È¤òôÅö¤¹¤ë¥æ¡¼¥¶¡¼¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{¤ªÆɤߤˤʤëÁ°¤Ë} + + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥³¥ó¥Ô¥å¡¼¥¿Áàºî¤Î´ðÁÃŪ¤ÊÃ챤¬É¬Íפˤʤê¤Þ¤¹¡£ + + +\subsection{¥ª¥ó¥é¥¤¥ó¤Ç¤Î¥¢¥¯¥»¥¹} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{µ»½ÑŪ¤Ê¥µ¥Ý¡¼¥È¤ÎÏ¢ÍíÀè} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + +\subsection{´ØÏ¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ Web ¥µ¥¤¥È¤Î»²¾È} + + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î Web ¥µ¥¤¥È¤ÎÍ­¸úÀ­¤Ë¤Ä¤¤¤Æ¤ÏÀÕǤ¤ò»ý¤Á¤Þ¤»¤ó¡£ + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤òÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤Ë¤Ä¤¤¤Æ¡¢Êݾڡ¢ÀÕǤ¡¢µÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤ÈÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤ò¡¢»ÈÍѤޤ¿¤Ï¿®ÍѤ·¤¿¤ê¡¢¤½¤ì¤Ë´ØÏ¢¤·¤ÆȯÀ¸¤Þ¤¿¤Ï¿½¤·Î©¤Æ¤é¤ì¤¿¡¢°ìÀڤλ½ý¤ä»³²¤ËÂФ·¤Æ¤ÏÀÕǤ¤Þ¤¿¤ÏµÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + + +\subsection{¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤ÎÁ÷ÉÕÊýË¡} + + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î²þÁ±¤ËÅؤá¤Æ¤ª¤ê¡¢ÆɼԤ«¤é¤Î¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤Ê¤É¤ò´¿·Þ¤·¤Æ¤¤¤Þ¤¹¡£ + +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/installation-guide/trunk/src/tex/installation-guide.tex =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/src/tex/installation-guide.tex (rev 0) +++ pal-portal/docs/ja/installation-guide/trunk/src/tex/installation-guide.tex 2008-11-13 00:22:41 UTC (rev 1336) @@ -0,0 +1,26 @@ +\documentclass[titlepage]{jbook} +\usepackage{graphicx} +\usepackage{ascmac} + +\title{¥¤¥ó¥¹¥È¡¼¥ë¥¬¥¤¥É} +\author{Portal Application Laboratory} + +\begin{document} +\maketitle + +\include{index} +\include{guide-gui-install} +\include{guide-gui-install-steps} +\include{guide-gui-install-dbsetup} +\include{guide-cli-install} +\include{guide-cli-install-steps} +\include{guide-cli-install-dbsetup} +\include{guide-uninstall-for-unix} +\include{guide-uninstall-for-win} +\include{guide-gui-upgrade} +\include{guide-gui-upgrade-steps} +\include{guide-cli-upgrade} +\include{guide-cli-upgrade-steps} +\include{guide-db-mysql} + +\end{document} From svnnotify ¡÷ sourceforge.jp Thu Nov 13 11:20:35 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 11:20:35 +0900 Subject: [pal-cvs 3602] [1337] replaced with tex. Message-ID: <1226542835.981017.25490.nullmailer@users.sourceforge.jp> Revision: 1337 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1337 Author: shinsuke Date: 2008-11-13 11:20:34 +0900 (Thu, 13 Nov 2008) Log Message: ----------- replaced with tex. Modified Paths: -------------- pal-portal/docs/build.xml pal-portal/docs/ja/installation-guide/trunk/build.properties pal-portal/docs/ja/installation-guide/trunk/build.xml Added Paths: ----------- pal-portal/docs/ja/administration-guide/trunk/build.properties pal-portal/docs/ja/administration-guide/trunk/build.xml pal-portal/docs/ja/administration-guide/trunk/src/images/ pal-portal/docs/ja/administration-guide/trunk/src/images/pal-logo.png pal-portal/docs/ja/administration-guide/trunk/src/images/palportal_top.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_add1.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_add3.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_add4.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_add6.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng0.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng1.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng10.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng12.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng2.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_withdrawal1.png pal-portal/docs/ja/administration-guide/trunk/src/images/port_withdrawal2.png pal-portal/docs/ja/administration-guide/trunk/src/images/sflogo.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_page1.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_page2.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_user1.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_user2.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_user3.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_user4.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_user5.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_user6.png pal-portal/docs/ja/administration-guide/trunk/src/images/site_vhost1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout4.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout5.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder4.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder5.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage4.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage5.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder4.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage4.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage2.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage3.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_guide1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_opensiteeditor1.png pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_opensiteeditor2.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng0.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng1.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng10.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng11.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng12.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng13.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng14.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng15.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng16.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng17.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng18.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng19.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng2.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng20.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng21.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng22.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng23.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng24.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng25.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng26.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng27.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng3.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng4.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng5.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng6.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng7.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng8.png pal-portal/docs/ja/administration-guide/trunk/src/images/usermng9.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit1.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit2.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit3.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit4.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit5.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit6.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit7.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n1.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n2.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n3.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n4.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n5.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n6.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n7.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n8.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n9.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_view1.png pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_view2.png pal-portal/docs/ja/administration-guide/trunk/src/lib/ pal-portal/docs/ja/administration-guide/trunk/src/lib/ant-contrib-1.0b2.jar pal-portal/docs/ja/administration-guide/trunk/src/tex/ pal-portal/docs/ja/administration-guide/trunk/src/tex/administration-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/forgotten-password-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/index.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/navigation.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/ pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/administration.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/architecture.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/index.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/portal.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-update-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/ pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-portlet.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-remote-portlet.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/manage-portlet.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-forgotten-password-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-update-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-withdrawal-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site/ pal-portal/docs/ja/administration-guide/trunk/src/tex/site/guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site/page.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site/site-user.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site/virtual-host.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/add-portlet.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/change-layout.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-folder.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-page.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-folder.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-page.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-folder.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-page.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/open-siteeditor.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-group.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-role.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-user.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-group.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-role.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-user.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/update-user.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/user-registration-portlet-guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/ pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/edit.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/guide.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/i18n.tex pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/view.tex pal-portal/docs/ja/configuration-guide/trunk/build.properties pal-portal/docs/ja/configuration-guide/trunk/build.xml pal-portal/docs/ja/configuration-guide/trunk/src/images/ pal-portal/docs/ja/configuration-guide/trunk/src/images/atn-arch-c.png pal-portal/docs/ja/configuration-guide/trunk/src/images/credential-handler-c.png pal-portal/docs/ja/configuration-guide/trunk/src/images/default-login-module-c.png pal-portal/docs/ja/configuration-guide/trunk/src/images/j2-overview.png pal-portal/docs/ja/configuration-guide/trunk/src/images/jetspeedservlet-c.png pal-portal/docs/ja/configuration-guide/trunk/src/images/loginprocess.png pal-portal/docs/ja/configuration-guide/trunk/src/images/pal-logo.png pal-portal/docs/ja/configuration-guide/trunk/src/images/portal-layer.png pal-portal/docs/ja/configuration-guide/trunk/src/images/principals-credentials-schema.png pal-portal/docs/ja/configuration-guide/trunk/src/images/rdbms-policy-overview-c.png pal-portal/docs/ja/configuration-guide/trunk/src/images/security-arch-overview.png pal-portal/docs/ja/configuration-guide/trunk/src/images/sflogo.png pal-portal/docs/ja/configuration-guide/trunk/src/lib/ pal-portal/docs/ja/configuration-guide/trunk/src/lib/ant-contrib-1.0b2.jar pal-portal/docs/ja/configuration-guide/trunk/src/tex/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/properties.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/portlet.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/ pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex pal-portal/docs/ja/portlet-developers-guide/trunk/build.properties pal-portal/docs/ja/portlet-developers-guide/trunk/build.xml pal-portal/docs/ja/portlet-developers-guide/trunk/src/images/ pal-portal/docs/ja/portlet-developers-guide/trunk/src/lib/ pal-portal/docs/ja/portlet-developers-guide/trunk/src/lib/ant-contrib-1.0b2.jar pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/ pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/before-development.tex pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-api-based-portlet.tex pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-teeda-based-portlet.tex pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/index.tex pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/navigation.tex pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/overview.tex pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/portlet-developers-guide.tex Removed Paths: ------------- pal-portal/docs/ja/administration-guide/trunk/project.properties pal-portal/docs/ja/administration-guide/trunk/project.xml pal-portal/docs/ja/administration-guide/trunk/src/resources/ pal-portal/docs/ja/administration-guide/trunk/xdocs/ pal-portal/docs/ja/configuration-guide/trunk/project.properties pal-portal/docs/ja/configuration-guide/trunk/project.xml pal-portal/docs/ja/configuration-guide/trunk/src/resources/ pal-portal/docs/ja/configuration-guide/trunk/xdocs/ pal-portal/docs/ja/portlet-developers-guide/trunk/project.properties pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml pal-portal/docs/ja/portlet-developers-guide/trunk/src/resources/ pal-portal/docs/ja/portlet-developers-guide/trunk/xdocs/ -------------- next part -------------- Modified: pal-portal/docs/build.xml =================================================================== --- pal-portal/docs/build.xml 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/build.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -32,7 +32,7 @@ failonerror="true" dir="${basedir}/ja/administration-guide/trunk" > - + - + - + - + @@ -71,7 +71,7 @@ failonerror="true" dir="${basedir}/ja/administration-guide/trunk" > - + - + - + - + Added: pal-portal/docs/ja/administration-guide/trunk/build.properties =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/build.properties (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/build.properties 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,11 @@ +build.dir=${basedir}/target +build.img.dir=${basedir}/target/images +src.tex.dir=${basedir}/src/tex +src.img.dir=${basedir}/src/images +document.name=administration-guide +document.version=1.1-rev2 + +tex.cmd=platex +dvi2ps.cmd=pdvips +gs.cmd=gs +convert.cmd=convert Property changes on: pal-portal/docs/ja/administration-guide/trunk/build.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/administration-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/build.xml (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/build.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + ${convert.cmd} ${image.name}.png ${image.name}.eps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: pal-portal/docs/ja/administration-guide/trunk/build.xml ___________________________________________________________________ Name: svn:eol-style + native Deleted: pal-portal/docs/ja/administration-guide/trunk/project.properties =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/project.properties 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/administration-guide/trunk/project.properties 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,33 +0,0 @@ -# Repo -maven.repo.remote = http://www.bluesunrise.com/maven/, http://mirrors.ibiblio.org/pub/mirrors/maven/,http://dist.codehaus.org/, http://people.apache.org/repository/, http://maven.marevol.com/ - -# -# DATE Preferences -# -# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom' -maven.xdoc.date = left -#maven.xdoc.date.format = yyyy/MM/dd HH:mm z -maven.xdoc.date.format = yyyy/MM/dd HH:mm -# The date locale -maven.xdoc.date.locale = ja - -# -# Doc Setting -# -maven.xdoc.version=${pom.currentVersion} -maven.xdoc.includeProjectDocumentation = no -maven.docs.outputencoding = EUC-JP -maven.javadoc.source = 1.4 -maven.xdoc.jsl=file:${maven.src.dir}/resources/site.jsl - -# Multiproject settings -maven.multiproject.includes=*/project.xml -maven.multiproject.excludes=project.xml -# following are default values but needed here because our allSite goal doesn't know them from the plugin -maven.multiproject.aggregateDir=multiproject/ -maven.multiproject.ignoreFailures=true - -maven.pdf.cover.type=Administration Guide -maven.pdf.companyLogo=http://pal.sourceforge.jp/images/pal_banner.gif -#maven.pdf.projectLogo=http://pal.sourceforge.jp/pal-portal/docs/ja/administration-guide/images/sflogo.gif -maven.pdf.projectLogo= Deleted: pal-portal/docs/ja/administration-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/project.xml 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/administration-guide/trunk/project.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,37 +0,0 @@ - - - - PAL????¿ã? 管ç??????/name> - jp.sf.pal.pal-portal.docs.ja - administration-guide - 1.1-rev1 - - Portal Application Laboratory - http://pal.sourceforge.jp/ - /images/pal-logo.png - - 2005 - - http://sourceforge.jp/projects/pal/ - /images/sflogo.gif - - shell.sourceforge.jp - /home/groups/p/pa/pal/htdocs/pal-portal/docs/ja/administration-guide/ - - maven-license-plugin - - Added: pal-portal/docs/ja/administration-guide/trunk/src/images/pal-logo.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/pal-logo.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/palportal_top.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/palportal_top.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add6.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_add6.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng0.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng0.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng10.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng10.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng12.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng12.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_mng2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_withdrawal1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_withdrawal1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/port_withdrawal2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/port_withdrawal2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/sflogo.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/sflogo.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_page1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_page1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_page2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_page2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user6.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_user6.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/site_vhost1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/site_vhost1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_changelayout5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createfolder5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_createpage5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletefolder4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_deletepage4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editfolder3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_editpage3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_guide1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_guide1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_opensiteeditor1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_opensiteeditor1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_opensiteeditor2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/siteeditor_opensiteeditor2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng0.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng0.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng10.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng10.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng11.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng11.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng12.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng12.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng13.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng13.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng14.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng14.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng15.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng15.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng16.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng16.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng17.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng17.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng18.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng18.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng19.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng19.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng20.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng20.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng21.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng21.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng22.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng22.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng23.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng23.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng24.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng24.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng25.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng25.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng26.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng26.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng27.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng27.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng6.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng6.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng7.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng7.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng8.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng8.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng9.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/usermng9.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit6.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit6.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit7.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_edit7.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n3.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n3.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n4.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n4.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n5.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n5.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n6.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n6.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n7.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n7.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n8.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n8.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n9.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_i18n9.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_view1.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_view1.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_view2.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/images/wcm_view2.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/administration-guide/trunk/src/lib/ant-contrib-1.0b2.jar =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/administration-guide/trunk/src/lib/ant-contrib-1.0b2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/administration-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/administration-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/administration-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,61 @@ +\documentclass[titlepage]{jbook} +\usepackage{graphicx} +\usepackage{ascmac} + +\title{´ÉÍý¥¬¥¤¥É} +\author{Portal Application Laboratory} + +\begin{document} +\maketitle + +\chapter{¤Ï¤¸¤á¤Ë} +\include{index} + +\chapter{PAL¥Ý¡¼¥¿¥ë´ÉÍý¤Î³µÍ×} +\include{overview/index} +\include{overview/architecture} +\include{overview/portal} +\include{overview/administration} + +\chapter{¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý} +\include{user-management/guide} +\include{user-management/create-user} +\include{user-management/update-user} +\include{user-management/delete-user} +\include{user-management/create-role} +\include{user-management/delete-role} +\include{user-management/create-group} +\include{user-management/delete-group} + +\chapter{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼} +\include{site-editor/guide} +\include{site-editor/open-siteeditor} +\include{site-editor/create-page} +\include{site-editor/edit-page} +\include{site-editor/delete-page} +\include{site-editor/create-folder} +\include{site-editor/edit-folder} +\include{site-editor/delete-folder} +\include{site-editor/change-layout} +\include{site-editor/add-portlet} + +\chapter{¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý} +\include{portlet-management/guide} +\include{portlet-management/manage-portlet} +\include{portlet-management/deploy-portlet} +\include{portlet-management/deploy-remote-portlet} + +\chapter{¥³¥ó¥Æ¥ó¥Ä´ÉÍý} +\include{wcm/guide} +\include{wcm/view} +\include{wcm/edit} +\include{wcm/i18n} + +\chapter{¥µ¥¤¥È´ÉÍý} +\include{site/guide} +\include{site/site-user} +\include{site/page} +\include{site/virtual-host} + + +\end{document} Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/forgotten-password-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/forgotten-password-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/forgotten-password-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/index.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/index.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/index.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,69 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{PAL¥Ý¡¼¥¿¥ë ´ÉÍý¥¬¥¤¥É} + + + + + +\subsection{ÂоÝÆɼÔ} + + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î´ÉÍýºî¶È¤òôÅö¤¹¤ë¥æ¡¼¥¶¡¼¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{¤ªÆɤߤˤʤëÁ°¤Ë} + + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î´ÉÍý¤ª¤è¤ÓÁàºîÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥³¥ó¥Ô¥å¡¼¥¿Áàºî¤Î´ðÁÃŪ¤ÊÃ챤¬É¬Íפˤʤê¤Þ¤¹¡£ + + +\subsection{¥ª¥ó¥é¥¤¥ó¤Ç¤Î¥¢¥¯¥»¥¹} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{µ»½ÑŪ¤Ê¥µ¥Ý¡¼¥È¤ÎÏ¢ÍíÀè} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + +\subsection{´ØÏ¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ Web ¥µ¥¤¥È¤Î»²¾È} + + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î Web ¥µ¥¤¥È¤ÎÍ­¸úÀ­¤Ë¤Ä¤¤¤Æ¤ÏÀÕǤ¤ò»ý¤Á¤Þ¤»¤ó¡£ + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤òÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤Ë¤Ä¤¤¤Æ¡¢Êݾڡ¢ÀÕǤ¡¢µÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤ÈÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤ò¡¢»ÈÍѤޤ¿¤Ï¿®ÍѤ·¤¿¤ê¡¢¤½¤ì¤Ë´ØÏ¢¤·¤ÆȯÀ¸¤Þ¤¿¤Ï¿½¤·Î©¤Æ¤é¤ì¤¿¡¢°ìÀڤλ½ý¤ä»³²¤ËÂФ·¤Æ¤ÏÀÕǤ¤Þ¤¿¤ÏµÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + + +\subsection{¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤ÎÁ÷ÉÕÊýË¡} + + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î²þÁ±¤ËÅؤá¤Æ¤ª¤ê¡¢ÆɼԤ«¤é¤Î¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤Ê¤É¤ò´¿·Þ¤·¤Æ¤¤¤Þ¤¹¡£ + +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/navigation.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/navigation.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/navigation.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,83 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\if0 + + + + + + + + +\fi + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/administration.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/administration.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/administration.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,65 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{´ÉÍý³µÍ×} + + + + + +\subsection{´ÉÍý³µÍ×} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢GUI ¤Ë¤è¤ë´ÉÍý¥Ä¡¼¥ë¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + ´ÉÍý¥Ä¡¼¥ë¤òÄ̤¸¤Æ¡¢¥æ¡¼¥¶¡¼¾ðÊóÊѹ¹¤Ê¤É¡¢¥Ý¡¼¥¿¥ë¤ÎÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý} + + admin ¥æ¡¼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¡Ö¥æ¡¼¥¶¡¼´ÉÍý¡×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢¥æ¡¼¥¶¡¼¡¢¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¤Ë´Ø¤¹¤ë¾ðÊó¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý} + + admin ¥æ¡¼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤äºï½ü¤·¤¿¤ê¡¢¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤«¤é¥Ý¡¼¥È¥ì¥Ã¥È¤òľÀÜÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿} + + admin ¥æ¡¼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤«¡¢¥æ¡¼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¥Ú¡¼¥¸¤ÎÊÔ½¸¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤Ç¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ÎÄɲᦺï½ü¤¬¹Ô¤¨¤Þ¤¹¡£ + ¤Þ¤¿¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤´¤È¤Î¥»¥­¥å¥ê¥Æ¥£ÀßÄê¤â¤³¤Î¥Ä¡¼¥ë¤Ë¤è¤ê¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\if0 +\subsection{¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¥Ý¥ê¥·¡¼} + + admin ¥æ¡¼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¡Ö¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¥Ý¥ê¥·¡¼¡×¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¥Ý¥ê¥·¡¼¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤Î¥»¥­¥å¥ê¥Æ¥£ÀßÄê¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\fi +\subsection{¥³¥ó¥Æ¥ó¥Ä´ÉÍý} + + ¥Ú¡¼¥¸¤Ë WCM ¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤Ç¡¢ÇÛÈ÷¤·¤¿¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Î¥³¥ó¥Æ¥ó¥Ä¤ò WYSIWYG HTML¥¨¥Ç¥£¥¿¤Ë¤è¤ê¥Ö¥é¥¦¥¶¾å¤ÇÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/architecture.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/architecture.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/architecture.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,45 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼¤Î³µÍ×} + + + + + +\subsection{¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼¤Î³µÍ×} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Apache Software Foundation¤Ë¤Æ³«È¯¤ò¤µ¤ì¤Æ¤¤¤ë¡¢´ë¶È¾ðÊó¥Ý¡¼¥¿¥ë¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¼ÂÁõ Jetspeed 2 ¤ò¥Ù¡¼¥¹¤È¤·¤Æ¡¢¹½ÃÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + ¤½¤Î¤¿¤á¡¢´ë¶È¥Ý¡¼¥¿¥ë¤Î´ðÈפȤʤëÉôʬ¤Î³«È¯¤Ï¿¤¯¤Î³«È¯¼Ô¤Ë¤è¤ê¡¢Å¬ÀڤʻÅÍͤ˴ð¤Å¤­¡¢½ÀÆ𤫤ijÈÄ¥²Äǽ¤ÊÀ߷פ¬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ + PAL¥Ý¡¼¥¿¥ë¤Ï½ÀÆð¤Ëµ¡Ç½¤ò³ÈÄ¥¤äÊѹ¹¤Ç¤­¤ë¤Î¤Ç¡¢´ë¶ÈÆâ¥Ý¡¼¥¿¥ë¤Ë¸Â¤é¤º¡¢¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥×¤ä¥Ö¥í¥°¤Ê¤É¤ÎÍÍ¡¹¤Ê¥æ¡¼¥¶¡¼¥Ý¡¼¥¿¥ë¹½ÃÛ¤ËÂбþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥³¥ó¥Æ¥Ê¡¢¥æ¡¼¥¶¡¼Ç§¾Ú¡¢¥Ç¡¼¥¿¥¹¥È¥ì¡¼¥¸¤ò PAL¥Ý¡¼¥¿¥ë¼«ÂΤ˼ÂÁõ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢³°Éô¥·¥¹¥Æ¥à¤òÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + ¤¿¤È¤¨¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Î Web ¥³¥ó¥Æ¥Ê¤È¤·¤Æ Tomcat ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ + + + ɸ½à¤Î PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¼¡¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÀ½Éʤ¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ + +Tomcat 5.5.23 +Derby 10.1.1.0 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/index.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/index.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/index.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,35 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{PAL¥Ý¡¼¥¿¥ë¤Ë¤Ä¤¤¤Æ} + + + + + +\subsection{PAL¥Ý¡¼¥¿¥ë¤Ë¤Ä¤¤¤Æ} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢´ë¶È¾ðÊó¥Ý¡¼¥¿¥ë¤È¤·¤Æ¡¢ÍøÍѼԤ¬É¬ÍפȤ·¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¤òÆÃÄê¤Î¥æ¡¼¥¶¡¼¤Þ¤¿¤Ï¥°¥ë¡¼¥×ÍѤ˥³¥ó¥Æ¥ó¥Ä¤ò¥Ñ¡¼¥½¥Ê¥é¥¤¥º¤·¤ÆÄ󶡤·¡¢Web ¥Ö¥é¥¦¥¶¤Ê¤É¤ÎÆÃÄê¥æ¡¼¥¶¡¼¤Î¥Ç¥Ð¥¤¥¹¤Ë¹ç¤ï¤»¤Æ¡¢½¸Ì󤵤줿¥ê¥½¡¼¥¹¤òºÇÂç¸Â¤ËÍøÍѤǤ­¤ë´Ä¶­¤ò¹½ÃÛ¤¹¤ë¥½¥Õ¥È¥¦¥§¥¢À½ÉʤǤ¹¡£ + + + ¤³¤Î¾Ï¤Ç¤Ï¡¢À½ÉʤΥ¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼¡¢¥Ý¡¼¥¿¥ë¤Î¥¨¥ó¥É¥æ¡¼¥¶¡¼¥¤¥ó¥¿¥Õ¥§¡¼¥¹¡¢À½ÉʤδÉÍý¤Ë»ÈÍѤ¹¤ë¥Ä¡¼¥ë¤Ë¤Ä¤¤¤Æ´Êñ¤ËÀâÌÀ¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/portal.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/portal.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/overview/portal.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,55 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Ë¤Ä¤¤¤Æ} + + + + + +\subsection{¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Ë¤Ä¤¤¤Æ} + + PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¡¢¥æ¡¼¥¶¡¼¤Ï¥¦¥§¥Ö¥Ö¥é¥¦¥¶¤Ë¤è¤ê¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î URL ¤ò»ØÄꤷ¤Æ¡¢ÀßÄꤵ¤ì¤¿Ç§¾Ú¥µ¡¼¥Ó¥¹ (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍÑ) ¤òÍøÍѤ·¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + °ìÅÙ¡¢Ç§¾Ú¤µ¤ì¤ë¤È¡¢¥í¥°¥¤¥ó¤·¤¿¥æ¡¼¥¶¡¼ÍѤΥݡ¼¥¿¥ë¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/palportal_top.eps} +\caption{TBD} +\label{fig:palportal_top} +\end{center} +\end{figure} + + + ³Æ¥æ¡¼¥¶¡¼¤Ï¥í¥°¥¤¥ó¸å¤Î¥Ú¡¼¥¸¤ò¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¤È¸Æ¤Ð¤ì¤ë¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¥Ñ¡¼¥½¥Ê¥é¥¤¥º¤Ç¤­¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼¤Ï¥Ñ¡¼¥½¥Ê¥é¥¤¥º¤¹¤ë¥Ú¡¼¥¸¤òÄɲ乤ë¤À¤±¤Ç¤Ê¤¯¡¢¥Õ¥©¥ë¥À¤òºîÀ®¤¹¤ë¤³¤È¤ÇºîÀ®¤·¤¿¥Ú¡¼¥¸¤ò³¬ÁØŪ¤ËʬÎह¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ + + + ³Æ¥Ú¡¼¥¸¤Ë¤Ï¡¢É¬ÍפÊÊ£¿ô¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥Ú¡¼¥¸Æâ¤Ë¤Ï»ØÄꤷ¤¿Îó¤Ë¼«Í³¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ÉÔÍפˤʤ俥ݡ¼¥È¥ì¥Ã¥È¤Ï¡¢¥æ¡¼¥¶¡¼¤Ë¤è¤ê¥Ú¡¼¥¸Æ⤫¤éºï½ü¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ + + + ¥æ¡¼¥¶¡¼¤Ï¡¢Ê£¿ô¤Î¥í¡¼¥ë¤ä¥°¥ë¡¼¥×¤Ë°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥í¡¼¥ë¤Ï´ÉÍý¼Ô¤Ê¤É¤ÎÌò³ä¤Ë¤¢¤¿¤ê¡¢¥°¥ë¡¼¥×¤ÏÉôÌç¤ä²Ý¤Ê¤É¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼¤ËŬÀÚ¤Ê¥í¡¼¥ë¤ä¥°¥ë¡¼¥×¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤Ç¡¢¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£¤â¥æ¡¼¥¶¡¼¤´¤È¤ä¥°¥ë¡¼¥×¤´¤È¤Ê¤É¤Ë»ØÄê¤Ç¤­¤ë¤Î¤Ç¡¢±ÜÍ÷¼Ô¤òÀ©¸Â¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-update-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-update-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/portal-registration-update-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-portlet.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-portlet.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,76 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷} + + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¼ê½ç} + + ¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥Ç¥×¥í¥¤¥ä¡¼¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤Î½àÈ÷} + + ¥Ý¡¼¥¿¥ë¤ËÇÛÈ÷¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î war ¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ËÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÁªÂò} + + ¥Ý¡¼¥¿¥ë´ÉÍý¼Ô¤Ï¡¢¸ø³«¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×¤«¤éÇÛÈ÷¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×¤Î¡Ö¥Ç¥×¥í¥¤¥ä¡¼¡×¥¿¥Ö¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_mng0.eps} +\caption{TBD} +\label{fig:port_mng0} +\end{center} +\end{figure} + + + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÇÛÈ÷¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_mng1.eps} +\caption{TBD} +\label{fig:port_mng1} +\end{center} +\end{figure} + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î»ØÄê} + + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÇÛÈ÷¡×¤Ë¤ª¤¤¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î war ¥Õ¥¡¥¤¥ë¤ò¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤ËľÀÜÆþÎϤ¹¤ë¤«¡¢¡Ö»²¾È...¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢ÂоݤΠwar ¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤¿¤é¡¢¡ÖÇÛÈ÷¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ¡ÖÇÛÈ÷¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¸å¡¢¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î war ¥Õ¥¡¥¤¥ë¤¬¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤Þ¤¹¡£ + ¥¢¥Ã¥×¥í¡¼¥É¸å¡¢¤·¤Ð¤é¤¯¤¹¤ë¤È¡¢ÇÛÈ÷¥×¥í¥»¥¹¤¬´°Î»¤·¤Þ¤¹(ÇÛÈ÷¥×¥í¥»¥¹¤Î»þ´Ö¤Ï¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ê¤É¤Ë°Í¸¤·¤Þ¤¹)¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÇÛÈ÷³Îǧ} + + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¡×¥¿¥Ö¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¡ÖÇÛÈ÷¤µ¤ì¤¿¥Ý¡¼¥È¥ì¥Ã¥È°ìÍ÷¡×¤òɽ¼¨¤·¡¢ÇÛÈ÷¤·¤¿¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬°ìÍ÷¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-remote-portlet.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-remote-portlet.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/deploy-remote-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,79 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤«¤é¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷} + + + + + + +\subsection{¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤«¤é¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¼ê½ç} + + ¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÁªÂò} + + ¥Ý¡¼¥¿¥ë´ÉÍý¼Ô¤Ï¡¢¸ø³«¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×¤«¤éÇÛÈ÷¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + ¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×¤Î¡Ö¥Ç¥×¥í¥¤¥ä¡¼¡×¥¿¥Ö¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_mng0.eps} +\caption{TBD} +\label{fig:port_mng0} +\end{center} +\end{figure} + + + ¼¡¤Ë¡Ö¥ê¥â¡¼¥È¡×¤òÁªÂò¤·¤Æ¡¢¡Ö¥ê¥Ý¥¸¥È¥ê¤Î¥Ý¡¼¥È¥ì¥Ã¥È¡×²èÌ̤òɽ¼¨¤·¤Þ¤¹¡£ + + +\subsection{ÇÛÈ÷²Äǽ¤Ê¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤Î¥Ý¡¼¥È¥ì¥Ã¥È°ìÍ÷} + + ¡Ö¥ê¥â¡¼¥È¡×¤òÁªÂò¤¹¤ë¤È¡¢ÍøÍѲÄǽ¤Ê¥ê¥Ý¥¸¥È¥ê¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬°ìÍ÷¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_mng2.eps} +\caption{TBD} +\label{fig:port_mng2} +\end{center} +\end{figure} + + + ÇÛÈ÷¤·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤Î¡ÖÇÛÈ÷¡×¤òÁªÂò¤¹¤ë¤È¡¢³Îǧ²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¡ÖÇÛÈ÷¡×¥Ü¥¿¥ó¤ò²¡²¼¤¹¤ë¤È¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¤Ï´°Î»¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_mng10.eps} +\caption{TBD} +\label{fig:port_mng10} +\end{center} +\end{figure} + + + ¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤«¤é¤ÎÇÛÈ÷¤Ç¤Ï¡¢¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤Î¥µ¥¤¥È¤«¤é¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢¤½¤Î¸å¡¢¥Ý¡¼¥¿¥ë¤ØÇÛÈ÷¤µ¤ì¤Þ¤¹¡£ + ¤½¤Î¤¿¤á¡¢¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤«¤é¤ÎÇÛÈ÷¤Ë¤Ï»þ´Ö¤¬¤«¤«¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹(ÇÛÈ÷¥×¥í¥»¥¹¤Î»þ´Ö¤Ï¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ê¤É¤Ë°Í¸¤·¤Þ¤¹)¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,38 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¤Ë¤Ä¤¤¤Æ} + + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¤Ë¤Ä¤¤¤Æ} + + ¤³¤Î¾Ï¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍýºî¶È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¤Ë¤Ï¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÀ©¸æ¡×¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¡×¡¢¡Ö¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¤«¤é¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¥°¥ë¡¼¥×´ÉÍý¡×¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ + + + ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤Ë¤è¤ê¡¢¥Ö¥é¥¦¥¶¾å¤Ç¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤òÄä»ß¤äºÆµ¯Æ°¤¹¤ë¤³¤È¤Ê¤¯¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÄɲäޤ¿¤Ïºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤Þ¤¿¡¢¥ê¥â¡¼¥È¥ê¥Ý¥¸¥È¥ê¥µ¥¤¥È¤ò¹½ÃÛ¤·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤òÃÖ¤¯¤³¤È¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/manage-portlet.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/manage-portlet.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/portlet-management/manage-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,47 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È¤Î´ÉÍý} + + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Î´ÉÍý¼ê½ç} + + ¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«»Ï¡¦Ää»ß¡¦ÇÛÈ÷²ò½ü¡¦ºï½ü} + + ¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«»Ï¡¦Ää»ß¡¦ÇÛÈ÷²ò½ü¡¦ºï½ü¤ò¹Ô¤¦¤Ë¤Ï¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×¤Î¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¡×¥¿¥Ö¤òÁªÂò¤·¤Þ¤¹¡£ + ÁªÂò¸å¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤½¤ì¤¾¤ì¹Ô¤¦ÂоÝÁàºî¤Î¥ê¥ó¥¯¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_mng12.eps} +\caption{TBD} +\label{fig:port_mng12} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-forgotten-password-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-forgotten-password-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-forgotten-password-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-update-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-update-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-registration-update-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-withdrawal-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-withdrawal-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/public-portal-withdrawal-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,47 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥æ¡¼¥¶¡¼Âà²ñ} + + + + + +\subsection{¥æ¡¼¥¶¡¼Âà²ñ} + + ¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤ÎÂà²ñ½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£°Ê²¼¤Ï¤½¤Î¼ê½ç¤È¤Ê¤ê¤Þ¤¹¡£ + + +\subsection{¥æ¡¼¥¶¡¼Âà²ñ¼ê½ç} + + + ¸½ºß¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤ÇÂà²ñ¤·¤¿¤¤¾ì¹ç¡¢¡ÖÂà²ñ¤¹¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + + + + ¡ÖÂà²ñ¤¹¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤¹¤ë¤È°Ê²¼¤Î¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤβèÌ̤ذܹԤ·¤Þ¤¹¡£ + + + + Âà²ñ¤¹¤ë¾ì¹ç¤Ï¡Ö¥Ñ¥¹¥ï¡¼¥É¡×¤Î¹àÌܤËÅÐÏ¿¤·¤Æ¤¤¤ë¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¡¢¡ÖÂà²ñ¤¹¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£¡ÖÂà²ñ¤¹¤ë¡×¥Ü¥¿¥ó²¡²¼¸å¤Ï¡¢¼«Æ°¤ÇHOME¤ØÌá¤ê¤Þ¤¹¡£ + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site/guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site/guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,34 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥µ¥¤¥È´ÉÍý¤Ë¤Ä¤¤¤Æ} + + + + + +\subsection{¥µ¥¤¥È´ÉÍý¤Ë¤Ä¤¤¤Æ} + + ¤³¤Î¾Ï¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥µ¥¤¥È´ÉÍýºî¶È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢ÅÐÏ¿¥æ¡¼¥¶¡¼¤Ë´Ø¤·¤Æ¤Ïɸ½à¤Ç¥Ñ¡¼¥½¥Ê¥é¥¤¥º²Äǽ¤Ê¥Ú¡¼¥¸¤òÊÝ»ý¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¾Ï¤Ç¤Ï¡¢ÅÐÏ¿¥æ¡¼¥¶¡¼¤Ç¤Ï¤Ê¤¤¡¢¥²¥¹¥È¥æ¡¼¥¶¡¼¤È¤·¤Æ¥¢¥¯¥»¥¹¤µ¤ì¤¿¾ì¹ç¤Ëɽ¼¨¤µ¤ì¤ë¥³¥ó¥Æ¥ó¥Ä¤Î´ÉÍýÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site/page.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site/page.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site/page.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,72 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ú¡¼¥¸¤ÎÊÔ½¸} + + + + + +\subsection{¥Ú¡¼¥¸¤ÎÊÔ½¸¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÍѤ¤¤Æ¡¢¥²¥¹¥È¥æ¡¼¥¶¡¼¤Ç¥¢¥¯¥»¥¹¤·¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¥Ú¡¼¥¸¤òÊÔ½¸¤·¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + ¥²¥¹¥È¥æ¡¼¥¶¡¼¤Çɽ¼¨¤µ¤ì¤ë¥µ¥¤¥È¤òÊÔ½¸¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ÊÔ½¸¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤¬É¬Íפˤʤê¤Þ¤¹¡£ + ¥µ¥¤¥È´ÉÍý¼Ô¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°Àá¤Î¡Ö¥µ¥¤¥È´ÉÍý¼Ô¤ÎÄɲáפò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ¤Þ¤º¡¢¥µ¥¤¥È´ÉÍý¼Ô¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òɽ¼¨¤·¤Þ¤¹¡£ + ¥²¥¹¥È¥æ¡¼¥¶¡¼¤Çɽ¼¨¤µ¤ì¤ë¥³¥ó¥Æ¥ó¥Ä¤Ï¡¢/\_\_subsite-root °Ê²¼¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Ð¡¼¥Á¥ã¥ë¥Û¥¹¥È¤ÎÀßÄê¤ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢/\_\_subsite-root ¤¬¥µ¥¤¥È¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥²¥¹¥È¥æ¡¼¥¶¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Ç¤¢¤ë /\_\_subsite-root/default-page.psml ¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_page1.eps} +\caption{TBD} +\label{fig:site_page1} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸¾ðÊó¤ÎÊÔ½¸ÊýË¡¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤Î¾Ï¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥µ¥¤¥È¤Îɽ¼¨} + + ÊÔ½¸¤¹¤ë PSML ¥Õ¥¡¥¤¥ë¤ò¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Çɽ¼¨¸å¡¢¡Ö¤³¤Î¥Ú¡¼¥¸¤Ë°ÜÆ°¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤¬ÊÔ½¸¥â¡¼¥É¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_page2.eps} +\caption{TBD} +\label{fig:site_page2} +\end{center} +\end{figure} + + + ¥³¥ó¥Æ¥ó¥Ä¤ò½ªÎ»¸å¡¢ÀßÄê¥â¡¼¥É¤Î¡Ö½ªÎ»¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤ËÌá¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site/site-user.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site/site-user.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site/site-user.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,117 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥µ¥¤¥È´ÉÍý¼Ô¤ÎÄɲÃ} + + + + + +\subsection{¥µ¥¤¥È´ÉÍý¼Ô¤ÎÄɲüê½ç} + + ¥æ¡¼¥¶¡¼´ÉÍý¥Ä¡¼¥ë¤òÍѤ¤¤Æ¡¢¥µ¥¤¥È´ÉÍý¼Ô¥æ¡¼¥¶¡¼¤ÎÄɲ䪤è¤ÓÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È´ÉÍý¼Ô¤ÎÄɲÃ} + + ¥²¥¹¥È¥æ¡¼¥¶¡¼¤Çɽ¼¨¤µ¤ì¤ë¥µ¥¤¥È¤òÊÔ½¸¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ÊÔ½¸¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤¬É¬Íפˤʤê¤Þ¤¹¡£ + ´û¸¤Î¥æ¡¼¥¶¡¼¤Ë¥µ¥¤¥ÈÊÔ½¸¸¢¸Â¤òÉղ乤ë¾ì¹ç¤Ï¡¢¼¡Àá¤Î¡Ö¥µ¥¤¥È´ÉÍý¼Ô¤ÎÀßÄê¡×¤«¤é»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ¤Þ¤º¡¢¥æ¡¼¥¶¡¼´ÉÍý¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢¥æ¡¼¥¶¡¼¤òÄɲä·¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼´ÉÍý¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_user1.eps} +\caption{TBD} +\label{fig:site_user1} +\end{center} +\end{figure} + + + ¡Ö¿·µ¬¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_user2.eps} +\caption{TBD} +\label{fig:site_user2} +\end{center} +\end{figure} + + + ŬÅö¤Ê¥æ¡¼¥¶¡¼Ì¾¤ò»ØÄꤷ¤Æ¡¢¥Ç¥Õ¥©¥ë¥È¥í¡¼¥ë¤Ë¤Ï¡Öuser¡×¤ò»ØÄꤷ¤Þ¤¹¡£ + ÆþÎϸ塢¡Ö³Îǧ¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ³Îǧ²èÌ̤ÇÆâÍƤò³Îǧ¤·¤Æ¡¢ÌäÂ꤬¤Ê¤±¤ì¤Ð¡¢¡ÖÅÐÏ¿¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢ÅÐÏ¿¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_user3.eps} +\caption{TBD} +\label{fig:site_user3} +\end{center} +\end{figure} + + +\subsection{¥µ¥¤¥È´ÉÍý¼Ô¤ÎÀßÄê} + + ¥µ¥¤¥È¤ò´ÉÍý¤¹¤ë¤¿¤á¤Ë¤Ï¡¢siteadmin ¥í¡¼¥ë¤ò»ý¤ÄɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼´ÉÍý¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢¥µ¥¤¥È´ÉÍý¼Ô¤Ë siteadmin ¥í¡¼¥ë¤òÉղä·¤Þ¤¹¡£ + + + ¤Þ¤º¡¢¥æ¡¼¥¶¡¼´ÉÍý¥Ä¡¼¥ë¤òÍøÍѤ·¤Æ¡¢Âоݥ桼¥¶¡¼¤ÎÊÔ½¸²èÌ̤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_user4.eps} +\caption{TBD} +\label{fig:site_user4} +\end{center} +\end{figure} + + + ¡Ö¥í¡¼¥ë¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_user5.eps} +\caption{TBD} +\label{fig:site_user5} +\end{center} +\end{figure} + + + ¡Ö¿·µ¬¥í¡¼¥ë¡×¥×¥ë¥À¥¦¥ó¥Ü¥Ã¥¯¥¹¤«¤é¡Ösiteadmin¡×¤òÁªÂò¤·¤Æ¡¢¡ÖÄɲáץܥ¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_user6.eps} +\caption{TBD} +\label{fig:site_user6} +\end{center} +\end{figure} + + + ¡Ö¥í¡¼¥ë¡×¥ê¥¹¥È¤Ë¡Ösiteadmin¡×¤¬Äɲ䵤ì¤Þ¤¹¡£ + ¡Ösiteadmin¡×¥í¡¼¥ë¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤Ï¡¢/\_\_subsite-root °Ê²¼¤Î¥³¥ó¥Æ¥ó¥Ä¤òÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site/virtual-host.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site/virtual-host.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site/virtual-host.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,54 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{²¾ÁÛ¥Û¥¹¥È¤ÎÀßÄê} + + + + + +\subsection{²¾ÁÛ¥Û¥¹¥È¤ÎÀßÄê¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÍѤ¤¤Æ¡¢²¾ÁÛ¥Û¥¹¥È¤ÎÀßÄꤷ¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + ¥²¥¹¥È¥æ¡¼¥¶¡¼¤Çɽ¼¨¤µ¤ì¤ë¥µ¥¤¥È¤òÊÔ½¸¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ÊÔ½¸¸¢¸Â¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤¬É¬Íפˤʤê¤Þ¤¹¡£ + ¥µ¥¤¥È´ÉÍý¼Ô¤ÎÀßÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°Àá¤Î¡Ö¥µ¥¤¥È´ÉÍý¼Ô¤ÎÄɲáפò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ¤Þ¤º¡¢¥µ¥¤¥È´ÉÍý¼Ô¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òɽ¼¨¤·¤Þ¤¹¡£ + ¥²¥¹¥È¥æ¡¼¥¶¡¼¤Çɽ¼¨¤µ¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤Ï /\_\_subsite-root ¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢²¾ÁÛ¥Û¥¹¥È¤Ï /\_\_subsite-root/\_hostname °Ê²¼¤Ë¥É¥á¥¤¥ó̾¤Î¥Õ¥©¥ë¥À¤òºîÀ®¤·¤ÆÍøÍѤ·¤Þ¤¹¡£ + ¤¿¤È¤¨¤Ð¡¢http://www.example.com/... ¤Ë¥¢¥¯¥»¥¹¤·¤¿¤È¤­¤Ëɽ¼¨¤·¤¿¤¤¥Ú¡¼¥¸¤Ï¡¢/\_\_subsite-root/\_hostname/www.example.com ¥Õ¥©¥ë¥À¤ò¥ë¡¼¥È¥Õ¥©¥ë¥À¤È¤·¤Æ¡¢¥Ú¡¼¥¸¤òºîÀ®¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/site_vhost1.eps} +\caption{TBD} +\label{fig:site_vhost1} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸¾ðÊó¤ÎÊÔ½¸ÊýË¡¤Ê¤É¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤Î¾Ï¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/add-portlet.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/add-portlet.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/add-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,94 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥ÈÄɲüê½ç} + + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥ÈÄɲüê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Ú¡¼¥¸´ÉÍý¡×µ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥æ¡¼¥¶¡¼¤´¤È¤Ë¡¢¼«Í³¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Ú¡¼¥¸¤ËÇÛÃÖ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + ¥í¥°¥¤¥ó¸å¡¢ÊÔ½¸²Äǽ¤Ê¥Ú¡¼¥¸¤Ç¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤òÁªÂò¤·¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_add1.eps} +\caption{TBD} +\label{fig:port_add1} +\end{center} +\end{figure} + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥ÈÄɲ乤ë¥ì¥¤¥¢¥¦¥È¤òÁªÂò} + + ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×²èÌ̤κ¸Â¦¤Î¥Ä¥ê¡¼É½¼¨Éôʬ¤«¤é¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÄɲä·¤¿¤¤¥Ú¡¼¥¸¤òÁªÂò¤·¤Æ¡¢¥ì¥¤¥¢¥¦¥È¤òÁªÂò¤·¤Þ¤¹¡£ + ¤³¤³¤Ç¤Ï¡Ö2 Îó¥ì¥¤¥¢¥¦¥È(50/50)¡×¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_add3.eps} +\caption{TBD} +\label{fig:port_add3} +\end{center} +\end{figure} + + +\subsection{Äɲ乤ë¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÁªÂò} + + ¡ÖÄɲáץ¿¥Ö¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_add4.eps} +\caption{TBD} +\label{fig:port_add4} +\end{center} +\end{figure} + + + ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥ê¥¹¥È¤«¤éÄɲä·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤òÁªÂò¤·¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄɲáץܥ¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + Äɲä·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ï¡¢Æ±Íͤ˥ꥹ¥È¤«¤éÁªÂò¤·¡¢ºÆÅÙ¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄɲáץܥ¿¥ó¤ò²¡²¼¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + ÄɲýèÍý¤ò´°Î»¤¹¤ë¤Ë¤Ï¡¢±¦¾å¤Ë¤¢¤ë¡Ö´°Î»¡×¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄɲô°Î»} + + ²èÌ̤ˤϡ¢Äɲä·¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + (¡Ö¥æ¡¼¥¶¡¼ÅÐÏ¿¡×¥Ý¡¼¥È¥ì¥Ã¥È¤òÄɲä·¤¿Îã) + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/port_add6.eps} +\caption{TBD} +\label{fig:port_add6} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/change-layout.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/change-layout.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/change-layout.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,100 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥ì¥¤¥¢¥¦¥È¤ÎÊѹ¹} + + + + + + +\subsection{¥ì¥¤¥¢¥¦¥È¤ÎÊѹ¹¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Ú¡¼¥¸´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Ú¡¼¥¸¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_changelayout1.eps} +\caption{TBD} +\label{fig:siteeditor_changelayout1} +\end{center} +\end{figure} + + +\subsection{¥ì¥¤¥¢¥¦¥È¤ÎÊѹ¹} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îº¸¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Ú¡¼¥¸¤Î¥Ä¥ê¡¼É½¼¨¤ÎÃ椫¤é¡¢¥ì¥¤¥¢¥¦¥È¤òÊѹ¹¤·¤¿¤¤¥Ú¡¼¥¸¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_changelayout2.eps} +\caption{TBD} +\label{fig:siteeditor_changelayout2} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸Æâ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëÊѹ¹¤·¤¿¤¤¥ì¥¤¥¢¥¦¥È¤òÁªÂò¤·¤Þ¤¹¡£ + ¤³¤³¤Ç¤Ï¡¢¡ÖVelocityOneColumn¡×¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_changelayout3.eps} +\caption{TBD} +\label{fig:siteeditor_changelayout3} +\end{center} +\end{figure} + + + ¥ì¥¤¥¢¥¦¥È¤Î¥×¥ë¥À¥¦¥ó¥Ü¥Ã¥¯¥¹¤Ë¤Ï¡¢¸½ºßŬÍѤµ¤ì¤Æ¤¤¤ë¥ì¥¤¥¢¥¦¥È¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤³¤³¤Ç¤Ï¡¢¡Ö1Îó¥ì¥¤¥¢¥¦¥È¡×¤«¤é¡Ö2Îó¥ì¥¤¥¢¥¦¥È(50/50)¡×¤ËÊѹ¹¤·¤Þ¤¹¡£ + 50/50 ¤Ï¡¢¥Ú¡¼¥¸¾å¤Ç¥Ý¡¼¥È¥ì¥Ã¥È¤ò 2 Îóɽ¼¨¤·¤Æ¡¢50% ¤ÎÉý¤Ç³ÆÎó¤òɽ¼¨¤·¤Þ¤¹¡£ + + + ¥ì¥¤¥¢¥¦¥È¤Î¥×¥ë¥À¥¦¥ó¥Ü¥Ã¥¯¥¹¤òÊѹ¹¤·¤¿¤é¡¢¡Ö¹¹¿·¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_changelayout4.eps} +\caption{TBD} +\label{fig:siteeditor_changelayout4} +\end{center} +\end{figure} + + + ¥ì¥¤¥¢¥¦¥È¤¬¹¹¿·¤µ¤ì¤ë¤È¡¢Àµ¾ï¤Ë¥ì¥¤¥¢¥¦¥È¤ò¹¹¿·¤·¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + °ìÈ̥桼¥¶¡¼¤Ç¥Ú¡¼¥¸¤òÊѹ¹¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¡Ö´°Î»¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥ì¥¤¥¢¥¦¥È¤¬Êѹ¹¤µ¤ì¤¿¤«¤É¤¦¤«¤ò³Îǧ¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_changelayout5.eps} +\caption{TBD} +\label{fig:siteeditor_changelayout5} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-folder.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-folder.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-folder.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,106 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Õ¥©¥ë¥À¤ÎÄɲÃ} + + + + + + +\subsection{¥Õ¥©¥ë¥À¤ÎÄɲüê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Õ¥©¥ë¥À´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Õ¥©¥ë¥À¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Õ¥©¥ë¥À¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createfolder1.eps} +\caption{TBD} +\label{fig:siteeditor_createfolder1} +\end{center} +\end{figure} + + +\subsection{¥Õ¥©¥ë¥À¤ÎºîÀ®} + + ¥Õ¥©¥ë¥À¤Ï¥Õ¥©¥ë¥ÀÆâ¤ËºîÀ®¤¹¤ë¤Î¤Ç¡¢¤Þ¤º¡¢¥Õ¥©¥ë¥À¤òºîÀ®¤·¤¿¤¤¥Õ¥©¥ë¥À¤òº¸Â¦¤Î¥Õ¥©¥ë¥À¡¦¥Õ¥©¥ë¥À¤Î¥Ä¥ê¡¼É½¼¨¤«¤éÁªÂò¤·¤Þ¤¹¡£ + ¤³¤³¤Ç¤Ï¡¢¡Ö/\_user/admin/\_mediatype/html¡×¤òÁªÂò¤·¤Æ¤¤¤ë²èÌ̤Ǥ¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createfolder2.eps} +\caption{TBD} +\label{fig:siteeditor_createfolder2} +\end{center} +\end{figure} + + + ¼¡¤Ë¡¢±¦Â¦¤Î¡ÖÄɲáץ¿¥Ö¤òÁªÂò¤·¡¢¡Ö¥Õ¥©¥ë¥À¡¦¥Õ¥©¥ë¥À¤ÎÄɲáפòɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createfolder3.eps} +\caption{TBD} +\label{fig:siteeditor_createfolder3} +\end{center} +\end{figure} + + + ̾Á°ÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥©¥ë¥À̾¤ÇȾ³Ñ±Ñ¿ô»ú¤ª¤è¤Ó \_-. ¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ + ¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤Î¥ê¥ó¥¯¥¿¥¤¥È¥ë¤Ê¤É¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ + û¤¤¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¡£ + ¥ì¥¤¥¢¥¦¥È¤Ï¡¢¥Õ¥©¥ë¥ÀºîÀ®»þ¤Ë¥Ç¥Õ¥©¥ë¥È¤È¤·¤ÆÄɲ䵤ì¤ë¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Õ¥©¥ë¥À¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¥Õ¥©¥ë¥ÀÆâ¤Ë´Þ¤Þ¤ì¤ë¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤âƱÍͤ˥ե©¥ë¥ÀÆâ¤Ë´Þ¤Þ¤ì¤ë¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Ç¥¹¥¯¥È¥Ã¥×¥Æ¡¼¥Þ¤Ï¸½ºßÍøÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + ¥Õ¥©¥ë¥À¤òÈóɽ¼¨¤òÁªÂò¤¹¤ë¤È¡¢URL ¤òľÀÜ»²¾È¤·¤Ê¤¤¸Â¤ê¡¢°ìÍ÷¤Ê¤É¤Ëɽ¼¨¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createfolder4.eps} +\caption{TBD} +\label{fig:siteeditor_createfolder4} +\end{center} +\end{figure} + + + ¥Õ¥©¥ë¥À¾ðÊó¤òÆþÎϤ·¤¿¤é¡¢¡Ö¥Õ¥©¥ë¥À¤ÎÄɲáץܥ¿¥ó¤ò²¡²¼¤·¤Æ¡¢¥Õ¥©¥ë¥À¤òÄɲä·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createfolder5.eps} +\caption{TBD} +\label{fig:siteeditor_createfolder5} +\end{center} +\end{figure} + + + ¥Õ¥©¥ë¥À¤¬Äɲ䵤ì¤ë¤È¡¢Àµ¾ï¤ËÄɲä·¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¡¢º¸Â¦¤Î¥Ä¥ê¡¼É½¼¨Æâ¤Ë¡¢Äɲä·¤¿¡Ötest¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤Ë¤â¡Ötest¡×¥Õ¥©¥ë¥À¤Ø¤Î¥ê¥ó¥¯¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-page.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-page.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/create-page.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,112 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ú¡¼¥¸¤ÎÄɲÃ} + + + + + + +\subsection{¥Ú¡¼¥¸¤ÎÄɲüê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Ú¡¼¥¸´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Ú¡¼¥¸¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createpage1.eps} +\caption{TBD} +\label{fig:siteeditor_createpage1} +\end{center} +\end{figure} + + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Ë¤Ï¡¢¡Ö\_role¡×¡¢¡Ö\_user¡×¡¢¡Ösystem¡×¥Õ¥©¥ë¥À¤¬¤¢¤ê¡¢¡Ödefault-page.psml¡×¤ä¡Ömy-account.psml¡×¤Ê¤É¤Î¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ³Æ¥æ¡¼¥¶¡¼¤Î¥Ú¡¼¥¸¾ðÊó¤Ï¡¢\_user/[¥æ¡¼¥¶¡¼Ì¾] °Ê²¼¤ËÊݸ¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¡¢\_role/[¥í¡¼¥ë̾] °Ê²¼¤Ë¥Ú¡¼¥¸¾ðÊó¤òÇÛÃÖ¤¹¤ë¤³¤È¤Ç¡¢¤½¤Î¥í¡¼¥ë¤ò»ý¤Ä¥æ¡¼¥¶¡¼¤Ç±ÜÍ÷¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Õ¥©¥ë¥À¤ä¥Ú¡¼¥¸¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£ÀßÄê¤ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢É½¼¨¤äÊÔ½¸¤òÀ©¸Â¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥Ú¡¼¥¸¤ÎºîÀ®} + + ¥Ú¡¼¥¸¤Ï¥Õ¥©¥ë¥ÀÆâ¤ËºîÀ®¤¹¤ë¤Î¤Ç¡¢¤Þ¤º¡¢¥Ú¡¼¥¸¤òºîÀ®¤·¤¿¤¤¥Õ¥©¥ë¥À¤òº¸Â¦¤Î¥Õ¥©¥ë¥À¡¦¥Ú¡¼¥¸¤Î¥Ä¥ê¡¼É½¼¨¤«¤éÁªÂò¤·¤Þ¤¹¡£ + ¤³¤³¤Ç¤Ï¡¢¡Ö/\_user/admin/\_mediatype/html¡×¤òÁªÂò¤·¤Æ¤¤¤ë²èÌ̤Ǥ¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createpage2.eps} +\caption{TBD} +\label{fig:siteeditor_createpage2} +\end{center} +\end{figure} + + + ¼¡¤Ë¡¢±¦Â¦¤Î¡ÖÄɲáץ¿¥Ö¤òÁªÂò¤·¡¢¡Ö¥Õ¥©¥ë¥À¡¦¥Ú¡¼¥¸¤ÎÄɲáפòɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createpage3.eps} +\caption{TBD} +\label{fig:siteeditor_createpage3} +\end{center} +\end{figure} + + + ̾Á°ÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Ú¡¼¥¸Ì¾¤ÇȾ³Ñ±Ñ¿ô»ú¤ª¤è¤Ó \_-. ¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ + ¥Ú¡¼¥¸Ì¾¤Ï URL ¾å¤Ëɽ¼¨¤µ¤ì¡¢.psml ¤Ç½ª¤ï¤ê¤Þ¤¹¡£ + ̾Á°ÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ë .psml ¤òÉÕ¤±¤º¤Ë¥Ú¡¼¥¸¤òºîÀ®¤·¤¿¾ì¹ç¤Ï¡¢ºîÀ®»þ¤ËÉղ䵤ì¤Þ¤¹¡£ + ¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ï¡¢HTML ¥Ú¡¼¥¸¾å¤Î¥¿¥¤¥È¥ë¤È¤·¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£ + û¤¤¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥Ñ¥ó¤¯¤º¥ê¥¹¥È¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¡£ + ¥ì¥¤¥¢¥¦¥È¤Ï¡¢¥Ú¡¼¥¸¤Ë´Þ¤Þ¤ì¤ë¥ì¥¤¥¢¥¦¥ÈÍ×ÁǤǡ¢É½¼¨¤·¤¿¤¤¥ì¥¤¥¢¥¦¥È¤òÁªÂò¤·¤Þ¤¹¡£ + ¥Ú¡¼¥¸¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¥Ú¡¼¥¸Á´ÂΤΥǥ¶¥¤¥ó¤òÁªÂò¤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍøÍѤ¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó (¥Ý¡¼¥È¥ì¥Ã¥È¤¬É½¼¨¤µ¤ì¤ëÏȤÎÉôʬ¤Ê¤É) ¤òÁªÂò¤·¤Þ¤¹¡£ + ¥Ç¥¹¥¯¥È¥Ã¥×¥Æ¡¼¥Þ¤Ï¸½ºßÍøÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + ¥Ú¡¼¥¸¤òÈóɽ¼¨¤òÁªÂò¤¹¤ë¤È¡¢URL ¤òľÀÜ»²¾È¤·¤Ê¤¤¸Â¤ê¡¢°ìÍ÷¤Ê¤É¤Ëɽ¼¨¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createpage4.eps} +\caption{TBD} +\label{fig:siteeditor_createpage4} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸¾ðÊó¤òÆþÎϤ·¤¿¤é¡¢¡Ö¥Ú¡¼¥¸¤ÎÄɲáץܥ¿¥ó¤ò²¡²¼¤·¤Æ¡¢¥Ú¡¼¥¸¤òÄɲä·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_createpage5.eps} +\caption{TBD} +\label{fig:siteeditor_createpage5} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸¤¬Äɲ䵤ì¤ë¤È¡¢Àµ¾ï¤ËÄɲä·¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¡¢º¸Â¦¤Î¥Ä¥ê¡¼É½¼¨Æâ¤Ë¡¢Äɲä·¤¿¡Ötest.psml¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-folder.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-folder.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-folder.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,85 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Õ¥©¥ë¥À¤Îºï½ü} + + + + + + +\subsection{¥Õ¥©¥ë¥À¤Îºï½ü¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Õ¥©¥ë¥À´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Õ¥©¥ë¥À¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Õ¥©¥ë¥À¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletefolder1.eps} +\caption{TBD} +\label{fig:siteeditor_deletefolder1} +\end{center} +\end{figure} + + +\subsection{¥Õ¥©¥ë¥À¤Îºï½ü} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îº¸Â¦¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Õ¥©¥ë¥À¤Î¥Ä¥ê¡¼É½¼¨¤ÎÃ椫¤é¡¢ºï½ü¤·¤¿¤¤¥Õ¥©¥ë¥À¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletefolder2.eps} +\caption{TBD} +\label{fig:siteeditor_deletefolder2} +\end{center} +\end{figure} + + + ¡Öºï½ü¡×¥Ü¥¿¥ó¤ò²¡²¼¤¹¤ë¤È¡¢³Îǧ¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletefolder3.eps} +\caption{TBD} +\label{fig:siteeditor_deletefolder3} +\end{center} +\end{figure} + + + OK ¥Ü¥¿¥ó¤ò²¡²¼¤·¤Æ¡¢ºï½ü¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletefolder4.eps} +\caption{TBD} +\label{fig:siteeditor_deletefolder4} +\end{center} +\end{figure} + + + ¥Õ¥©¥ë¥À¤òºï½ü¤¹¤ë¤È¡¢Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-page.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-page.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/delete-page.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,85 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ú¡¼¥¸¤Îºï½ü} + + + + + + +\subsection{¥Ú¡¼¥¸¤Îºï½ü¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Ú¡¼¥¸´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Ú¡¼¥¸¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletepage1.eps} +\caption{TBD} +\label{fig:siteeditor_deletepage1} +\end{center} +\end{figure} + + +\subsection{¥Ú¡¼¥¸¤Îºï½ü} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îº¸Â¦¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Ú¡¼¥¸¤Î¥Ä¥ê¡¼É½¼¨¤ÎÃ椫¤é¡¢ºï½ü¤·¤¿¤¤¥Ú¡¼¥¸¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletepage2.eps} +\caption{TBD} +\label{fig:siteeditor_deletepage2} +\end{center} +\end{figure} + + + ¡Öºï½ü¡×¥Ü¥¿¥ó¤ò²¡²¼¤¹¤ë¤È¡¢³Îǧ¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletepage3.eps} +\caption{TBD} +\label{fig:siteeditor_deletepage3} +\end{center} +\end{figure} + + + OK ¥Ü¥¿¥ó¤ò²¡²¼¤·¤Æ¡¢ºï½ü¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_deletepage4.eps} +\caption{TBD} +\label{fig:siteeditor_deletepage4} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸¤òºï½ü¤¹¤ë¤È¡¢Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-folder.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-folder.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-folder.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,82 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Õ¥©¥ë¥À¤Î¹¹¿·} + + + + + + +\subsection{¥Õ¥©¥ë¥À¤Î¹¹¿·¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Õ¥©¥ë¥À´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Õ¥©¥ë¥À¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Õ¥©¥ë¥À¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_editfolder1.eps} +\caption{TBD} +\label{fig:siteeditor_editfolder1} +\end{center} +\end{figure} + + +\subsection{¥Õ¥©¥ë¥À¤ÎÊѹ¹} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îº¸¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Õ¥©¥ë¥À¤Î¥Ä¥ê¡¼É½¼¨¤ÎÃ椫¤é¡¢ÊÔ½¸¤·¤¿¤¤¥Õ¥©¥ë¥À¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_editfolder2.eps} +\caption{TBD} +\label{fig:siteeditor_editfolder2} +\end{center} +\end{figure} + + + ¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤Î¥ê¥ó¥¯¥¿¥¤¥È¥ë¤Ê¤É¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ + û¤¤¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¡£ + ¥Õ¥©¥ë¥À¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¥Õ¥©¥ë¥ÀÆâ¤Ë´Þ¤Þ¤ì¤ë¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤âƱÍͤ˥ե©¥ë¥ÀÆâ¤Ë´Þ¤Þ¤ì¤ë¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥Ç¥¹¥¯¥È¥Ã¥×¥Æ¡¼¥Þ¤Ï¸½ºßÍøÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + ¥Õ¥©¥ë¥À¤òÈóɽ¼¨¤òÁªÂò¤¹¤ë¤È¡¢URL ¤òľÀÜ»²¾È¤·¤Ê¤¤¸Â¤ê¡¢°ìÍ÷¤Ê¤É¤Ëɽ¼¨¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + + + ÆþÎÏÍó¤ò¹¹¿·¤·¤¿¤é¡¢¡Ö¹¹¿·¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Æ¡¢¥Õ¥©¥ë¥À¾ðÊó¤ò¹¹¿·¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_editfolder3.eps} +\caption{TBD} +\label{fig:siteeditor_editfolder3} +\end{center} +\end{figure} + + + ¥Õ¥©¥ë¥À¤¬¹¹¿·¤µ¤ì¤ë¤È¡¢Àµ¾ï¤Ë¥Õ¥©¥ë¥À¤ò¹¹¿·¤·¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-page.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-page.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/edit-page.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,81 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ú¡¼¥¸¤Î¹¹¿·} + + + + + + +\subsection{¥Ú¡¼¥¸¤Î¹¹¿·¼ê½ç} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¡Ö¥Ú¡¼¥¸´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + admin ¥æ¡¼¥¶¡¼¤Ç¥·¥¹¥Æ¥à¤Ø¥í¥°¥¤¥ó¤·¡¢¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤È¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¤Ï¡¢³Æ¥æ¡¼¥¶¡¼¤ÇÊÔ½¸²Äǽ¤Ê¥Ú¡¼¥¸¤òɽ¼¨¤·¤Æ¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡Ö¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¡×¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_editpage1.eps} +\caption{TBD} +\label{fig:siteeditor_editpage1} +\end{center} +\end{figure} + + +\subsection{¥Ú¡¼¥¸¤ÎÊѹ¹} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Îº¸¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Ú¡¼¥¸¤Î¥Ä¥ê¡¼É½¼¨¤ÎÃ椫¤é¡¢ÊÔ½¸¤·¤¿¤¤¥Ú¡¼¥¸¤òÁªÂò¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_editpage2.eps} +\caption{TBD} +\label{fig:siteeditor_editpage2} +\end{center} +\end{figure} + + + ¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ï¡¢HTML ¥Ú¡¼¥¸¾å¤Î¥¿¥¤¥È¥ë¤È¤·¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£ + û¤¤¥¿¥¤¥È¥ëÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢¥Ñ¥ó¤¯¤º¥ê¥¹¥È¤Ëɽ¼¨¤µ¤ì¤ëʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¡£ + ¥Ú¡¼¥¸¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¥Ú¡¼¥¸Á´ÂΤΥǥ¶¥¤¥ó¤òÁªÂò¤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇÍøÍѤ¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó (¥Ý¡¼¥È¥ì¥Ã¥È¤¬É½¼¨¤µ¤ì¤ëÏȤÎÉôʬ¤Ê¤É) ¤òÁªÂò¤·¤Þ¤¹¡£ + ¥Ç¥¹¥¯¥È¥Ã¥×¥Æ¡¼¥Þ¤Ï¸½ºßÍøÍѤµ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + ¥Ú¡¼¥¸¤òÈóɽ¼¨¤òÁªÂò¤¹¤ë¤È¡¢URL ¤òľÀÜ»²¾È¤·¤Ê¤¤¸Â¤ê¡¢°ìÍ÷¤Ê¤É¤Ëɽ¼¨¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + + + ÆþÎÏÍó¤ò¹¹¿·¤·¤¿¤é¡¢¡Ö¹¹¿·¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Æ¡¢¥Ú¡¼¥¸¾ðÊó¤ò¹¹¿·¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_editpage3.eps} +\caption{TBD} +\label{fig:siteeditor_editpage3} +\end{center} +\end{figure} + + + ¥Ú¡¼¥¸¤¬¹¹¿·¤µ¤ì¤ë¤È¡¢Àµ¾ï¤Ë¥Ú¡¼¥¸¤ò¹¹¿·¤·¤¿¤³¤È¤òÅÁ¤¨¤ë¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,92 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Ë¤Ä¤¤¤Æ} + + + + + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Ë¤Ä¤¤¤Æ} + + ¤³¤Î¾Ï¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥µ¥¤¥ÈÊÔ½¸ºî¶È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Ë¤Ï¡Ö¥Õ¥©¥ë¥À¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü¡×¤ª¤è¤Ó¡Ö¥Ú¡¼¥¸¤ÎÄɲá¦ÊÔ½¸¡¦ºï½ü¡×¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥æ¡¼¥¶¡¼¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¤Îñ°Ì¤Ç¡¢¥Õ¥©¥ë¥À¤ä¥Ú¡¼¥¸¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + + admin ¥æ¡¼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÍøÍѤ¹¤ë¾ì¹ç¡¢¤¹¤Ù¤Æ¤Î¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Ú¡¼¥¸¤òÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤Þ¤¿¡¢admin ¥æ¡¼¥¶¡¼¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤Î¸¢¸Â¤Ë±þ¤¸¤¿¥Õ¥©¥ë¥À¤ª¤è¤Ó¥Ú¡¼¥¸¤òÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ÊÔ½¸²Äǽ¤Ê¥Ú¡¼¥¸¤Ç¤Ï¡¢³Æ¥Ú¡¼¥¸¤Ë¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ì¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤Ç¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + +\subsection{¥µ¥¤¥È¤Î¹½À®Í×ÁÇ} + + ¥µ¥¤¥È¤Î¹½À®Í×ÁǤˤϡ¢¥Õ¥©¥ë¥À¡¢¥Ú¡¼¥¸¡¢¥ì¥¤¥¢¥¦¥È¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤¬¤¢¤ê¤Þ¤¹¡£ + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¤½¤ì¤é¤Î¹½À®Í×ÁǤòÊÔ½¸¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤½¤ì¤é¤Î¹½À®Í×ÁǤϡ¢¥ë¡¼¥È¥Õ¥©¥ë¥À(/)¤òµ¯ÅÀ¤È¤·¤Æ¡¢¥Ä¥ê¡¼¹½Â¤¤ò·ÁÀ®¤·¤Æ¤¤¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_guide1.eps} +\caption{TBD} +\label{fig:siteeditor_guide1} +\end{center} +\end{figure} + + + ¤Þ¤º¡¢¥Ú¡¼¥¸¤Ï¥Ö¥é¥¦¥¶¤Ç¥Ý¡¼¥¿¥ë¤Ë¥¢¥¯¥»¥¹¤·¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë HTML ¥Ú¡¼¥¸¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥Ú¡¼¥¸¤Ï¡¢¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë¤ä¸«¤¿ÌܤΥǥ¶¥¤¥ó¤Î¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£ + ¤Þ¤¿¡¢¥Ú¡¼¥¸¤Ï¥ì¥¤¥¢¥¦¥È¤ò»Ò¤È¤·¤Æ»ý¤Á¤Þ¤¹¡£ + ¥Ú¡¼¥¸¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¡¢¥Ý¡¼¥¿¥ë¤Î WEB-INF/pages °Ê²¼¤Ë .psml ¥Õ¥¡¥¤¥ë¤È¤·¤ÆÊݸ¤µ¤ì¤Þ¤¹(ÀßÄê¤Ë¤è¤ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤¹¤ë¤³¤È¤â²Äǽ)¡£ + + + ¥Õ¥©¥ë¥À¤Ï¡¢Ê£¿ô¤Î¥Ú¡¼¥¸¤ò¤Þ¤È¤á¤ë¤È¤­¤ËÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥Õ¥©¥ë¥À¤Ï¡¢¥Õ¥©¥ë¥À¤È¥Ú¡¼¥¸¤ò»Ò¤È¤·¤Æ»ý¤Ä¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥Õ¥©¥ë¥À¤ò»Ò¤È¤·¤Æ»ý¤Ä¤³¤È¤Ç¡¢Ê£¿ô¤Î¥Õ¥©¥ë¥À¤Î³¬Áع½Â¤¤ò¹½À®¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ + + + ¥ì¥¤¥¢¥¦¥È¤Ï¡¢¥Ú¡¼¥¸Æâ¤Çɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î°ÌÃÖ¤ò·èÄꤷ¤Þ¤¹¡£ + ¥ì¥¤¥¢¥¦¥È¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¤òÊ£¿ôÎó¤Ë¤Þ¤È¤á¡¢1 Îóɽ¼¨¡¢2Îóɽ¼¨¤Ê¤É¤ÇÊ£¿ô¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ÍøÍѼԤϡ¢¥ì¥¤¥¢¥¦¥È¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨ÊýË¡¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤ËÇÛÈ÷¤µ¤ì¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Ú¡¼¥¸¤ËÃÖ¤¯¤³¤È¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£ + ÍøÍѼԤϡ¢É½¼¨¤·¤¿¤¤¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤òÄɲ乤뤳¤È¤Ç¡¢¥Ö¥é¥¦¥¶¤Ç¥¢¥¯¥»¥¹¤·¤¿¤È¤­¤Ë¥Ú¡¼¥¸Æâ¤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë} + + PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤òÍѤ¤¤Æ¡¢ÍÍ¡¹¤Ê¥Ú¡¼¥¸¤ò¥æ¡¼¥¶¡¼¡¢¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¤´¤È¤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤¿¤È¤¨¤Ð¡¢É¸½à¤Î j2 ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ç¤Ï¡¢http://localhost:8080/palportal/default-page.psml ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¾ì¹ç¡¢°Ê²¼¤Î½ç¤Ç .psml ¥Õ¥¡¥¤¥ë¤òõ¤·¤Þ¤¹¡£ + +/\_user/¥æ¡¼¥¶¡¼Ì¾/\_mediatype/html/\_language/ja/\_country/JP/default-page.psml +/\_user/¥æ¡¼¥¶¡¼Ì¾/\_mediatype/html/\_language/ja/default-page.psml +/\_user/¥æ¡¼¥¶¡¼Ì¾/\_mediatype/html/default-page.psml +/\_user/¥æ¡¼¥¶¡¼Ì¾/default-page.psml +/default-page.psml + + ¸ºß¤·¤¿ .psml ¥Õ¥¡¥¤¥ë¤ò¥Ú¡¼¥¸¤È¤·¤Æ¡¢¥Ö¥é¥¦¥¶¾å¤Ëɽ¼¨¤·¤Þ¤¹¡£ + + + ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ï¡¢¥æ¡¼¥¶¡¼¤´¤È¤ËÀßÄê¤Ç¤­¤ë¤Î¤Ç¡¢¥æ¡¼¥¶¡¼¤´¤È¤Ë½ÀÆð¤Ê¥Ú¡¼¥¸É½¼¨¤ò¼Â¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/open-siteeditor.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/open-siteeditor.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/site-editor/open-siteeditor.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,64 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î³«¤­Êý} + + + + + + +\subsection{¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î³«¤­Êý} + + ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Ï°Ê²¼¤Î£²¤Ä¤ÎÊýË¡¤ÇÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +´ÉÍý¼Ô¥æ¡¼¥¶¡¼(admin)¤Ç¥í¥°¥¤¥ó¤·¤Æ¡¢¥á¥Ë¥å¡¼¤«¤é¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òɽ¼¨¤¹¤ë +°ìÈ̥桼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤¹¤ë¤È¡¢É½¼¨²Äǽ¤Ê¥Ú¡¼¥¸¤Ç¤Ï¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æɽ¼¨¤¹¤ë¡£ + + + +\subsection{´ÉÍý¼Ô¥æ¡¼¥¶¡¼¤Ë¤è¤ë¥¢¥¯¥»¥¹} + + ¥í¥°¥¤¥ó¤·¤Æɽ¼¨¤µ¤ì¤ë¥È¥Ã¥×¥Ú¡¼¥¸¤Ë¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î¥¢¥¤¥³¥ó¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÁªÂò¤·¤ÆÍøÍѤǤ­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_opensiteeditor1.eps} +\caption{TBD} +\label{fig:siteeditor_opensiteeditor1} +\end{center} +\end{figure} + + +\subsection{°ìÈ̥桼¥¶¡¼¤Ë¤è¤ë¥¢¥¯¥»¥¹} + + °ìÈ̥桼¥¶¡¼¤Ç¥í¥°¥¤¥ó¤¹¤ë¤È¡¢¥Ú¡¼¥¸¤òÊÔ½¸¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¡Ö¥Ú¡¼¥¸¤òÊÔ½¸¡×¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤Ç¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/siteeditor_opensiteeditor2.eps} +\caption{TBD} +\label{fig:siteeditor_opensiteeditor2} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-group.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-group.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-group.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,101 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥°¥ë¡¼¥×¿·µ¬ÅÐÏ¿} + + + + + + +\subsection{¥°¥ë¡¼¥×¿·µ¬ÅÐÏ¿¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥°¥ë¡¼¥×´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥°¥ë¡¼¥×°ìÍ÷¤Îɽ¼¨} + + ¥°¥ë¡¼¥×¤ò¿·µ¬¤ÇÅÐÏ¿¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¡×¤Î¡Ö¥°¥ë¡¼¥×¡×¥¿¥Ö¤òÁªÂò¤·¡¢¡Ö¿·µ¬¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng19.eps} +\caption{TBD} +\label{fig:usermng19} +\end{center} +\end{figure} + + +\subsection{ÅÐÏ¿¾ðÊó¤ÎÆþÎÏ} + + ¿·µ¬¥°¥ë¡¼¥×ÆþÎÏ¥Õ¥©¡¼¥à¤¬²èÌÌɽ¼¨¤µ¤ì¤Þ¤¹¡£ + ¡Ö¥°¥ë¡¼¥×̾¡×¤òÆþÎϤ·¤Þ¤¹¡£ + ¤½¤Î¤Þ¤ÞÅÐÏ¿¤Ø¿Ê¤à¤Ë¤Ï¡¢¡Ö³Îǧ¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + ÊÔ½¸¤òÃæÃǤ¹¤ë¾ì¹ç¤Ï¡Ö¥°¥ë¡¼¥×°ìÍ÷¤ËÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng20.eps} +\caption{TBD} +\label{fig:usermng20} +\end{center} +\end{figure} + + +\subsection{ÅÐÏ¿¾ðÊó¤Î³Îǧ} + + ÅÐÏ¿ÆâÍƤò³Îǧ¤·¡¢ÅÐÏ¿¤ò´°Î»¤µ¤»¤ë¤¿¤á¤Ë¡¢¡ÖÅÐÏ¿¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng21.eps} +\caption{TBD} +\label{fig:usermng21} +\end{center} +\end{figure} + + +\subsection{¥°¥ë¡¼¥×¾ðÊó¤ÎÅÐÏ¿} + + ÅÐÏ¿½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng22.eps} +\caption{TBD} +\label{fig:usermng22} +\end{center} +\end{figure} + + +\subsection{¥æ¡¼¥¶¡¼¤Ø¥°¥ë¡¼¥×¤ÎÄɲÃ} + + ÅÐÏ¿¤µ¤ì¤¿¥°¥ë¡¼¥×¤Ï²¼µ­¿Þ¤Î¤è¤¦¤Ë¡¢¥æ¡¼¥¶¡¼¾ðÊó¤ÎÊÔ½¸¤Ç¤Î¥°¥ë¡¼¥×¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng23.eps} +\caption{TBD} +\label{fig:usermng23} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-role.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-role.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-role.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,115 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥í¡¼¥ë¿·µ¬ÅÐÏ¿} + + + + + + +\subsection{¥í¡¼¥ë¿·µ¬ÅÐÏ¿¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥í¡¼¥ë´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥í¡¼¥ë°ìÍ÷¤Îɽ¼¨} + + ¥í¡¼¥ë¤ò¿·µ¬¤ÇÅÐÏ¿¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¡×¤Î¡Ö¥í¡¼¥ë¡×¥¿¥Ö¤òÁªÂò¤·¡¢¡Ö¿·µ¬¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng11.eps} +\caption{TBD} +\label{fig:usermng11} +\end{center} +\end{figure} + + +\subsection{ÅÐÏ¿¾ðÊó¤ÎÆþÎÏ} + + ¿·µ¬¥í¡¼¥ëÆþÎÏ¥Õ¥©¡¼¥à¤¬²èÌÌɽ¼¨¤µ¤ì¤Þ¤¹¡£ + ¡Ö¥í¡¼¥ë̾¡×¤òÆþÎϤ·¤Þ¤¹¡£ + ¤½¤Î¤Þ¤ÞÅÐÏ¿¤Ø¿Ê¤à¤Ë¤Ï¡¢¡Ö³Îǧ¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + ÊÔ½¸¤òÃæÃǤ¹¤ë¾ì¹ç¤Ï¡Ö¥í¡¼¥ë°ìÍ÷¤ËÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng12.eps} +\caption{TBD} +\label{fig:usermng12} +\end{center} +\end{figure} + + +\subsection{ÅÐÏ¿¾ðÊó¤Î³Îǧ} + + ÅÐÏ¿ÆâÍƤò³Îǧ¤·¡¢ÅÐÏ¿¤ò´°Î»¤µ¤»¤ë¤¿¤á¤Ë¡¢¡ÖÅÐÏ¿¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng13.eps} +\caption{TBD} +\label{fig:usermng13} +\end{center} +\end{figure} + + +\subsection{¥í¡¼¥ë¾ðÊó¤ÎÅÐÏ¿} + + ÅÐÏ¿½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng14.eps} +\caption{TBD} +\label{fig:usermng14} +\end{center} +\end{figure} + + +\subsection{¥æ¡¼¥¶¡¼¤Ø¥í¡¼¥ë¤ÎÀßÄê} + + ¿·µ¬¤ËÅÐÏ¿¤·¤¿¥í¡¼¥ë¤Ï¡¢¿·µ¬¥æ¡¼¥¶¡¼ÅÐÏ¿»þ¤ËÁªÂò¤¹¤ë¤«¡¢¥æ¡¼¥¶¡¼¾ðÊó¤ÎÊÔ½¸¤Ç¥í¡¼¥ë¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + ¿·µ¬¥æ¡¼¥¶¡¼ÅÐÏ¿»þ¤ËÁªÂò¤¹¤ë¾ì¹ç¤Ï¡¢ÅÐÏ¿¤µ¤ì¤¿¥í¡¼¥ë¤Ï²¼µ­¿Þ¤Î¤è¤¦¤Ë¥í¡¼¥ë»ØÄê¤ÇÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng15.eps} +\caption{TBD} +\label{fig:usermng15} +\end{center} +\end{figure} + + + ¥æ¡¼¥¶¡¼¾ðÊó¤ÎÊÔ½¸¤«¤éÅÐÏ¿¤·¤¿¥í¡¼¥ë¤òÄɲ乤ë¾ì¹ç¤Ï¡¢¥æ¡¼¥¶¡¼¾ðÊóÊÔ½¸²èÌÌ¤Ç¥í¡¼¥ë¤òÁªÂò¤¹¤ë¤³¤È¤Ç²¼µ­¿Þ¤Î¤è¤¦¤Ë¥í¡¼¥ë¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng27.eps} +\caption{TBD} +\label{fig:usermng27} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-user.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-user.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/create-user.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,89 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥æ¡¼¥¶¡¼¿·µ¬ÅÐÏ¿} + + + + + + +\subsection{¥æ¡¼¥¶¡¼¿·µ¬ÅÐÏ¿¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥æ¡¼¥¶¡¼´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥æ¡¼¥¶¡¼°ìÍ÷¤Îɽ¼¨} + + ¡Ö¥æ¡¼¥¶¡¼¡×¥¿¥Ö¤òÁªÂò¤·¤Æ¥æ¡¼¥¶¡¼¾ðÊó°ìÍ÷¤òɽ¼¨¤·¡¢¡Ö¿·µ¬¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng1.eps} +\caption{TBD} +\label{fig:usermng1} +\end{center} +\end{figure} + + +\subsection{ÅÐÏ¿¾ðÊó¤ÎÆþÎÏ} + + ¿·µ¬¥æ¡¼¥¶¡¼ÆþÎÏ¥Õ¥©¡¼¥à¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¡Ö¥æ¡¼¥¶¡¼Ì¾¡×¡¢¡Ö¥Ñ¥¹¥ï¡¼¥É¡×¡¢¡Ö¥Ñ¥¹¥ï¡¼¥É(³ÎǧÍÑ)¡×¡¢¡Ö½é´ü¥í¥°¥¤¥ó»þ¤Î¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹¡×¡¢¡Ö¥Ç¥Õ¥©¥ë¥È¥í¡¼¥ë¡×¤òÆþÎϤ·¤Þ¤¹¡£ + ¡Ö³Îǧ¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Æ¡¢ÆþÎÏÆâÍƳÎǧ¥Ú¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ + ÊÔ½¸¤òÃæÃǤ¹¤ë¾ì¹ç¤Ï¡Ö¥æ¡¼¥¶¡¼°ìÍ÷¤ØÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng2.eps} +\caption{TBD} +\label{fig:usermng2} +\end{center} +\end{figure} + + +\subsection{ÅÐÏ¿¾ðÊó¤Î³Îǧ} + + ÅÐÏ¿ÆâÍƤò³Îǧ¤·¡¢ÅÐÏ¿¤ò´°Î»¤µ¤»¤ë¤¿¤á¤Ë¡¢¡ÖÅÐÏ¿¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + ÊÔ½¸¤òÃæÃǤ¹¤ë¾ì¹ç¤Ï¡ÖÊÔ½¸¤ËÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng3.eps} +\caption{TBD} +\label{fig:usermng3} +\end{center} +\end{figure} + + +\subsection{¥æ¡¼¥¶¡¼¾ðÊó¤ÎÅÐÏ¿} + + ÅÐÏ¿½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng4.eps} +\caption{TBD} +\label{fig:usermng4} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-group.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-group.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-group.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,72 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥°¥ë¡¼¥×ºï½ü} + + + + + + +\subsection{¥°¥ë¡¼¥×ºï½ü¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥°¥ë¡¼¥×´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥°¥ë¡¼¥×ÁªÂò} + + ¡Ö¥°¥ë¡¼¥×°ìÍ÷¡×¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÆâÍƤ«¤é¡¢ºï½ü¤¹¤ë¥°¥ë¡¼¥×¤Î¡Öºï½ü¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng24.eps} +\caption{TBD} +\label{fig:usermng24} +\end{center} +\end{figure} + + +\subsection{ºï½ü¤Î³Îǧ} + + ºï½ü¤ÎºÇ½ª³Îǧ¤ò¹Ô¤¤¡¢¡Öºï½ü¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£Ãæ»ß¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥°¥ë¡¼¥×°ìÍ÷¤ËÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng25.eps} +\caption{TBD} +\label{fig:usermng25} +\end{center} +\end{figure} + + +\subsection{¥°¥ë¡¼¥×¾ðÊó¤Îºï½ü} + + ºï½ü½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng26.eps} +\caption{TBD} +\label{fig:usermng26} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-role.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-role.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-role.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,72 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥í¡¼¥ëºï½ü} + + + + + + +\subsection{¥í¡¼¥ëºï½ü¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥í¡¼¥ë´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥í¡¼¥ëÁªÂò} + + ¡Ö¥í¡¼¥ë°ìÍ÷¡×¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÆâÍƤ«¤é¡¢ºï½ü¤¹¤ë¥í¡¼¥ë¤Î¡Öºï½ü¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng16.eps} +\caption{TBD} +\label{fig:usermng16} +\end{center} +\end{figure} + + +\subsection{ºï½ü¤Î³Îǧ} + + ºï½ü¤ÎºÇ½ª³Îǧ¤ò¹Ô¤¤¡¢¡Öºï½ü¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£Ãæ»ß¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥í¡¼¥ë°ìÍ÷¤ËÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng17.eps} +\caption{TBD} +\label{fig:usermng17} +\end{center} +\end{figure} + + +\subsection{¥í¡¼¥ë¾ðÊó¤Îºï½ü} + + ºï½ü½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng18.eps} +\caption{TBD} +\label{fig:usermng18} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-user.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-user.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/delete-user.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,72 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥æ¡¼¥¶¡¼ºï½ü} + + + + + + +\subsection{¥æ¡¼¥¶¡¼ºï½ü¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥æ¡¼¥¶¡¼´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥æ¡¼¥¶¡¼ÁªÂò} + + ¡Ö¥æ¡¼¥¶¡¼°ìÍ÷¡×¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÆâÍƤ«¤é¡¢ºï½ü¤¹¤ë¥æ¡¼¥¶¡¼¤Î¡Öºï½ü¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng8.eps} +\caption{TBD} +\label{fig:usermng8} +\end{center} +\end{figure} + + +\subsection{ºï½ü¤Î³Îǧ} + + ºï½ü¤ÎºÇ½ª³Îǧ¤ò¹Ô¤¤¡¢¡Öºï½ü¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£Ãæ»ß¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥æ¡¼¥¶¡¼°ìÍ÷¤ØÌá¤ë¡×¥Ü¥¿¥ó¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng9.eps} +\caption{TBD} +\label{fig:usermng9} +\end{center} +\end{figure} + + +\subsection{¥æ¡¼¥¶¡¼¾ðÊó¤Îºï½ü} + + ºï½ü½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng10.eps} +\caption{TBD} +\label{fig:usermng10} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,60 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥æ¡¼¥¶¡¼´ÉÍý} + + + + + + +\subsection{¤Ï¤¸¤á¤Ë} + + ¤³¤Î¾Ï¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥æ¡¼¥¶¡¼´ÉÍýºî¶È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼´ÉÍý¤Ë¤Ï¡Ö¥æ¡¼¥¶¡¼´ÉÍý¡×¡¢¡Ö¥í¡¼¥ë´ÉÍý¡×¡¢¡Ö¥°¥ë¡¼¥×´ÉÍý¡×¤Î£³¤Ä¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ + ¤½¤ì¤¾¤ì¤Î´ÉÍýµ¡Ç½¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¡×¤Î¤½¤ì¤¾¤ì¤Î¥¿¥Ö¤òÁªÂò¤·¤Æºî¶È¤ò¹Ô¤¤¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng0.eps} +\caption{TBD} +\label{fig:usermng0} +\end{center} +\end{figure} + + + PAL¥Ý¡¼¥¿¥ë¤Î¡Ö¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¡×¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¡¢¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¤Î¾ðÊó¤ò´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£ + ¥Ý¡¼¥¿¥ë¤Ëǧ¾Ú¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤Ï¡¢¥í¥°¥¤¥ó¸å¡¢¥Ñ¡¼¥½¥Ê¥é¥¤¥º²Äǽ¤Ê¥Ú¡¼¥¸¤òÊÝ»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥í¥°¥¤¥ó¤»¤º¤Ë¡¢PAL¥Ý¡¼¥¿¥ë¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¤¬¡¢¤½¤Î¾ì¹ç¤Ï guest ¥æ¡¼¥¶¡¼¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼¤Ë¥í¡¼¥ë¤ä¥°¥ë¡¼¥×¤òÉղ乤뤳¤È¤Ç¡¢Ê£¿ô¤Î¥æ¡¼¥¶¡¼¤ËÆÃÄê¤Î¸¢¸Â¤ò¤Þ¤È¤á¤ÆÍ¿¤¨¤ë¤³¤È¤Ê¤É¤â¤Ç¤­¤Þ¤¹¡£ + ¥í¡¼¥ë¤Ï´ÉÍý¼Ô¤Ê¤É¤ÎÌò³ä¤Ë¤¢¤¿¤ê¡¢¥°¥ë¡¼¥×¤ÏÉôÌç¤ä²Ý¤Ê¤É¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£ + ¥æ¡¼¥¶¡¼¤ËŬÀÚ¤Ê¥í¡¼¥ë¤ä¥°¥ë¡¼¥×¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤Ç¡¢¥æ¡¼¥¶¡¼¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×ñ°Ì¤Î¥»¥­¥å¥ê¥Æ¥£¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{½é´üÅÐÏ¿¥æ¡¼¥¶¡¼} + + PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ë¤Ï°Ê²¼¤Î¥æ¡¼¥¶¡¼¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +admin: ¥Ý¡¼¥¿¥ë´ÉÍý¥æ¡¼¥¶¡¼(½é´ü¥Ñ¥¹¥ï¡¼¥É: admin) +guest: ¥²¥¹¥È¥æ¡¼¥¶¡¼(¥Ñ¥¹¥ï¡¼¥É¤Ê¤·) + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/update-user.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/update-user.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-management/update-user.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,72 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥æ¡¼¥¶¡¼¹¹¿·} + + + + + + +\subsection{¥æ¡¼¥¶¡¼¹¹¿·¼ê½ç} + + ¥æ¡¼¥¶¡¼/¥í¡¼¥ë/¥°¥ë¡¼¥×´ÉÍý¥Ä¡¼¥ë¤Î¡Ö¥æ¡¼¥¶¡¼´ÉÍý¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{¥æ¡¼¥¶¡¼ÁªÂò} + + ¡Ö¥æ¡¼¥¶¡¼°ìÍ÷¡×¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤ëÆâÍƤ«¤é¡¢¹¹¿·¤¹¤ë¥æ¡¼¥¶¡¼¤Î¡ÖÊÔ½¸¡×¥ê¥ó¥¯¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng5.eps} +\caption{TBD} +\label{fig:usermng5} +\end{center} +\end{figure} + + +\subsection{¹¹¿·¾ðÊó¤ÎÆþÎÏ} + + ÆâÍƤòÊÔ½¸¤·¤¿¸å¡¢¡Ö¹¹¿·¡×¤ò²¡²¼¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng6.eps} +\caption{TBD} +\label{fig:usermng6} +\end{center} +\end{figure} + + +\subsection{¥æ¡¼¥¶¡¼¾ðÊó¤Î¹¹¿·} + + ÊÔ½¸½èÍý¤¬´°Î»¤·¡¢²èÌ̤ˤÏÀµ¾ï¤Ë´°Î»¤·¤¿»Ý¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/usermng7.eps} +\caption{TBD} +\label{fig:usermng7} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/user-registration-portlet-guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/user-registration-portlet-guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/user-registration-portlet-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,53 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥À¥ß¡¼} + + + + + +\subsection{001} + + No1\_¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë´ÉÍýºî¶È¤òôÅö¤¹¤ë´ÉÍý¼Ô¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{002} + + + +\subsection{003} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + + +\subsection{004} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/edit.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/edit.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/edit.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,133 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥³¥ó¥Æ¥ó¥Ä¤ÎÊÔ½¸} + + + + + +\subsection{¥³¥ó¥Æ¥ó¥Ä¤ÎÊÔ½¸¼ê½ç} + + ¥³¥ó¥Æ¥ó¥Ä´ÉÍý¥Ä¡¼¥ë¤Î¡ÖWCM¥¨¥Ç¥£¥¿¡¼¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{WCM ¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + ÊÔ½¸¤·¤¿¤¤¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit1.eps} +\caption{TBD} +\label{fig:wcm_edit1} +\end{center} +\end{figure} + + + ¥¿¥¤¥È¥ë¥Ð¡¼Æâ¤Î±¦Â¦¤Ëɽ¼¨¤µ¤ì¤ëÊÔ½¸¥¢¥¤¥³¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ¡Ö¤³¤Î¥³¥ó¥Æ¥ó¥Ä¤ÎÊÔ½¸¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ¡ÖÌá¤ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤¿¾ì¹ç¤Ï¡¢¥³¥ó¥Æ¥ó¥Äɽ¼¨¥â¡¼¥É¤ËÌá¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit2.eps} +\caption{TBD} +\label{fig:wcm_edit2} +\end{center} +\end{figure} + + + WCM ¥¨¥Ç¥£¥¿¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit3.eps} +\caption{TBD} +\label{fig:wcm_edit3} +\end{center} +\end{figure} + + +\subsection{¥¿¥¤¥È¥ë¤ÎÆþÎÏ} + + ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¿¥¤¥È¥ë¥Ð¡¼Æâ¤Ëɽ¼¨¤¹¤ë¥¿¥¤¥È¥ëʸ»úÎó¤òÆþÎϤ·¤Þ¤¹¡£ + WCM ¥¨¥Ç¥£¥¿¡¼¤Î¾åÉô¤Î¡Ö¥¿¥¤¥È¥ë¡×¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥ÉÆþÎÏÍó¤ËÀßÄꤷ¤¿¤¤Ê¸»úÎó¤òÆþÎϤ·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit4.eps} +\caption{TBD} +\label{fig:wcm_edit4} +\end{center} +\end{figure} + + +\subsection{¥³¥ó¥Æ¥ó¥Ä¤ÎÆþÎÏ} + + ¥Ý¡¼¥È¥ì¥Ã¥È¾å¤Ëɽ¼¨¤µ¤ì¤ë¥³¥ó¥Æ¥ó¥Ä¤òÆþÎϤ·¤Þ¤¹¡£ + WCM ¥¨¥Ç¥£¥¿¡¼¤ÎÃæ±ûÉô¤Î¥Æ¥­¥¹¥ÈÆþÎÏÍó¤Ë¥³¥ó¥Æ¥ó¥Ä¤òÆþÎϤ·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit5.eps} +\caption{TBD} +\label{fig:wcm_edit5} +\end{center} +\end{figure} + + + WYSIWYG ¥¨¥Ç¥£¥¿¡¼¤Ë¤Ï FCKeditor ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£¥¨¥Ç¥£¥¿¡¼¤Î¾ÜºÙ¤Ê»È¤¤Êý¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://docs.fckeditor.net/FCKeditor\_2.x/Users\_Guide¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥³¥ó¥Æ¥ó¥Ä¤ÎÊݸ} + + WCM ¥¨¥Ç¥£¥¿¡¼¤ËÆþÎϤ·¤¿ÆâÍƤòÊݸ¤·¤Þ¤¹¡£ + WCM ¥¨¥Ç¥£¥¿¡¼¤Î²¼Éô¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¡ÖÊݸ¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£ + Êݸ¤ËÀ®¸ù¤¹¤ë¤È¡¢¡Ö¥³¥ó¥Æ¥ó¥Ä¤òÊݸ¤·¤Þ¤·¤¿¡×¤Èɽ¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit6.eps} +\caption{TBD} +\label{fig:wcm_edit6} +\end{center} +\end{figure} + + +\subsection{¥³¥ó¥Æ¥ó¥Ä¤Îɽ¼¨} + + WCM ¥¨¥Ç¥£¥¿¡¼¤Ç¥³¥ó¥Æ¥ó¥Ä¤ÎÊÔ½¸¤ò½ªÎ»¤·¤¿¤é¡¢WCM ¥¨¥Ç¥£¥¿¡¼¤òÊĤ¸¤Þ¤¹¡£ + WCM ¥Ó¥å¡¼¥¢¡¼¤Îɽ¼¨¤ËÌá¤ê¡¢¡ÖÌá¤ë¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ´û¤Ë WCM ¥Ó¥å¡¼¥¢¡¼¤Îɽ¼¨¥â¡¼¥É¤ËÌá¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ö¥é¥¦¥¶¤Î¥ê¥í¡¼¥É¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_edit7.eps} +\caption{TBD} +\label{fig:wcm_edit7} +\end{center} +\end{figure} + + + Êݸ¤·¤¿¥³¥ó¥Æ¥ó¥Ä¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/guide.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/guide.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,36 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥³¥ó¥Æ¥ó¥Ä´ÉÍý¤Ë¤Ä¤¤¤Æ} + + + + + +\subsection{¥³¥ó¥Æ¥ó¥Ä´ÉÍý¤Ë¤Ä¤¤¤Æ} + + ¤³¤Î¾Ï¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Æ¥ó¥Ä´ÉÍýºî¶È¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£ + ¥¦¥§¥Ö¥³¥ó¥Æ¥ó¥Ä´ÉÍý (Web Content Management: WCM) ¤Ë¤Ï¡Ö¥³¥ó¥Æ¥ó¥Ä¤Îɽ¼¨¡×¡¢¡Ö¥³¥ó¥Æ¥ó¥Ä¤ÎÊÔ½¸¡×¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ + + + ¤³¤Î¥³¥ó¥Æ¥ó¥Ä´ÉÍý¥Ä¡¼¥ë¤Ë¤è¤ê¡¢¥Ö¥é¥¦¥¶¾å¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ëɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤ò WYSIWYG ¥¨¥Ç¥£¥¿¡¼¤Ë¤è¤êÊÔ½¸¤Ç¤­¡¢¤½¤ÎÊݸÆâÍƤòɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/i18n.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/i18n.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/i18n.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,156 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥³¥ó¥Æ¥ó¥Ä¤Î¹ñºÝ²½} + + + + + +\subsection{¥³¥ó¥Æ¥ó¥Ä¤Î¹ñºÝ²½¼ê½ç} + + ¥³¥ó¥Æ¥ó¥Ä´ÉÍý¥Ä¡¼¥ë¤Ç¤Ï¡¢¥Ö¥é¥¦¥¶¤Î»ÈÍѸÀ¸ì¤Ë¤è¤êɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤òÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{WCM ¥¨¥Ç¥£¥¿¡¼¤Îɽ¼¨} + + ÊÔ½¸¤·¤¿¤¤¥³¥ó¥Æ¥ó¥Ä¤òÁªÂò¤·¤Æ¡¢WCM ¥¨¥Ç¥£¥¿¡¼¤òɽ¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n1.eps} +\caption{TBD} +\label{fig:wcm_i18n1} +\end{center} +\end{figure} + + + ¥Ç¥Õ¥©¥ë¥È¤Ç¤Îɽ¼¨¤Ç¤Ï¡¢¸À¸ì¤Ë¡ÖDEFAULT¡×¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ + ¥Ö¥é¥¦¥¶¤Î»ÈÍѸÀ¸ì¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤¾ì¹ç¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ + + +\subsection{¸À¸ì¤ÎÄɲÃ} + + WCM ¥¨¥Ç¥£¥¿¡¼¤Î±¦¾å¤ÎÀßÄꥢ¥¤¥³¥ó (»õ¼Ö¤Î¥¢¥¤¥³¥ó) ¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ÀßÄê¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n2.eps} +\caption{TBD} +\label{fig:wcm_i18n2} +\end{center} +\end{figure} + + + ¡Ö¸À¸ì¡×ÆþÎÏÍó¤ËÍøÍѤ¹¤ë¸À¸ì¤òÆþÎϤ·¤Þ¤¹¡£ + ÆüËܸì¤Ç¤¢¤ì¤Ð¡¢¡Öja¡×¤òÆþÎϤ·¤Þ¤¹¡£ + ÆþÎϸ塢¡ÖÄɲáץܥ¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¸À¸ì¤òÄɲä·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n3.eps} +\caption{TBD} +\label{fig:wcm_i18n3} +\end{center} +\end{figure} + + + Àµ¾ï¤Ë¸À¸ì¤¬Äɲ䵤ì¤ë¤È¡¢¡Ö¸À¸ì¤òÄɲä·¤Þ¤·¤¿¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢¸À¸ì¥ê¥¹¥È¤ËÄɲä·¤¿¸À¸ì¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n4.eps} +\caption{TBD} +\label{fig:wcm_i18n4} +\end{center} +\end{figure} + + +\subsection{¸À¸ìÍѤΥ³¥ó¥Æ¥ó¥Ä¤ÎÄɲÃ} + + WCM ¥¨¥Ç¥£¥¿¡¼¤Î±¦¾å¤ÎÊÔ½¸¥¢¥¤¥³¥ó (¥Ú¡¼¥¸ÊÔ½¸¤Î¥¢¥¤¥³¥ó) ¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + ¥³¥ó¥Æ¥ó¥ÄÊÔ½¸¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¡Ö¸À¸ì¡×¥×¥ë¥À¥¦¥ó¥Ü¥Ã¥¯¥¹¤«¤é¡¢¾åµ­¤ÇÄɲä·¤¿¸À¸ì¤ò»ØÄꤷ¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n5.eps} +\caption{TBD} +\label{fig:wcm_i18n5} +\end{center} +\end{figure} + + + ¡Ö¥ê¥í¡¼¥É¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¤½¤Î¸À¸ìÍѤΥ³¥ó¥Æ¥ó¥Ä¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + ¿·µ¬¤Ë¸À¸ì¤òÄɲ䷤Ƥ¤¤ë¾ì¹ç¤Ï¡¢¥¿¥¤¥È¥ë¤È¥³¥ó¥Æ¥ó¥ÄÉôʬ¤Ï¶õÍó¤È¤Ê¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n6.eps} +\caption{TBD} +\label{fig:wcm_i18n6} +\end{center} +\end{figure} + + + »ØÄꤷ¤¿¸À¸ìÍѤΥ¿¥¤¥È¥ë¤È¥³¥ó¥Æ¥ó¥Ä¤òÊݸ¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n7.eps} +\caption{TBD} +\label{fig:wcm_i18n7} +\end{center} +\end{figure} + + +\subsection{¸À¸ìÍѤΥ³¥ó¥Æ¥ó¥Ä¤Îɽ¼¨} + + WCM ¥¨¥Ç¥£¥¿¡¼¤òÊĤ¸¤Æ¡¢WCM ¥Ó¥å¡¼¥¢¡¼¤òÄɲä·¤¿¸À¸ì¤ò»ÈÍѸÀ¸ì¤È¤·¤ÆÀßÄꤷ¤¿¥Ö¥é¥¦¥¶¤Çɽ¼¨¤·¤Þ¤¹¡£ + ¸À¸ì¤¬°ìÃפ·¤¿¾ì¹ç¤Ï¡¢¸À¸ìÍѤΥ³¥ó¥Æ¥ó¥Ä¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n8.eps} +\caption{TBD} +\label{fig:wcm_i18n8} +\end{center} +\end{figure} + + +\subsection{¸À¸ì¤Îºï½ü} + + WCM ¥¨¥Ç¥£¥¿¡¼¤òɽ¼¨¤·¤Æ¡¢ÀßÄê¥Ú¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ + ¡Ö¸À¸ì¡×¥ê¥¹¥È¤«¤éºï½ü¤·¤¿¤¤¸À¸ì¤òÁªÂò¤·¤Æ¡¢¡Öºï½ü¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_i18n9.eps} +\caption{TBD} +\label{fig:wcm_i18n9} +\end{center} +\end{figure} + + + ¡Ö¸À¸ì¡×¥ê¥¹¥È¤«¤éºï½ü¤µ¤ì¡¢¤½¤Î¸À¸ìÍѤΥ³¥ó¥Æ¥ó¥Ä¤Ïɽ¼¨¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/view.tex =================================================================== --- pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/view.tex (rev 0) +++ pal-portal/docs/ja/administration-guide/trunk/src/tex/wcm/view.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,61 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥³¥ó¥Æ¥ó¥Ä¤Îɽ¼¨} + + + + + +\subsection{¥³¥ó¥Æ¥ó¥Ä¤Îɽ¼¨¼ê½ç} + + ¥³¥ó¥Æ¥ó¥Ä´ÉÍý¥Ä¡¼¥ë¤Î¡ÖWCM¥Ó¥å¡¼¥¢¡¼¡×µ¡Ç½¤Ë¤è¤ê¹Ô¤¤¤Þ¤¹¡£ + + +\subsection{WCM ¥Ó¥å¡¼¥¢¡¼¤ÎÇÛÃÖ} + + ¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë WCM ¥Ó¥å¡¼¥¢¡¼¤òÇÛÃÖ¤·¤Þ¤¹¡£ + WCM ¥Ó¥å¡¼¥¢¡¼¤òÇÛÃÖ¤·¤¿¤¤¥Ú¡¼¥¸¤òɽ¼¨¤·¤Æ¡¢¡Ö¥³¥ó¥Æ¥ó¥Ä¤òÄɲáץê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_view1.eps} +\caption{TBD} +\label{fig:wcm_view1} +\end{center} +\end{figure} + + + ¡Ö¥³¥ó¥Æ¥ó¥Ä¡×¥×¥ë¥À¥¦¥ó¥Ü¥Ã¥¯¥¹¤«¤é WCM ¥Ó¥å¡¼¥¢¡¼¤òÁªÂò¤·¤Æ¡¢¡ÖÄɲáץܥ¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ + WCM ¥Ó¥å¡¼¥¢¡¼¤¬¥Ú¡¼¥¸¾å¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/wcm_view2.eps} +\caption{TBD} +\label{fig:wcm_view2} +\end{center} +\end{figure} + + + ɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤òÊÔ½¸¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¼¡Àá¤Î¡Ö¥³¥ó¥Æ¥ó¥Ä¤ÎÊÔ½¸¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/build.properties =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/build.properties (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/build.properties 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,11 @@ +build.dir=${basedir}/target +build.img.dir=${basedir}/target/images +src.tex.dir=${basedir}/src/tex +src.img.dir=${basedir}/src/images +document.name=configuration-guide +document.version=1.1-rev2 + +tex.cmd=platex +dvi2ps.cmd=pdvips +gs.cmd=gs +convert.cmd=convert Property changes on: pal-portal/docs/ja/configuration-guide/trunk/build.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pal-portal/docs/ja/configuration-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/build.xml (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/build.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + ${convert.cmd} ${image.name}.png ${image.name}.eps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: pal-portal/docs/ja/configuration-guide/trunk/build.xml ___________________________________________________________________ Name: svn:eol-style + native Deleted: pal-portal/docs/ja/configuration-guide/trunk/project.properties =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/project.properties 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/configuration-guide/trunk/project.properties 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,33 +0,0 @@ -# Repo -maven.repo.remote = http://www.bluesunrise.com/maven/, http://mirrors.ibiblio.org/pub/mirrors/maven/,http://dist.codehaus.org/, http://people.apache.org/repository/, http://maven.marevol.com/ - -# -# DATE Preferences -# -# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom' -maven.xdoc.date = left -#maven.xdoc.date.format = yyyy/MM/dd HH:mm z -maven.xdoc.date.format = yyyy/MM/dd HH:mm -# The date locale -maven.xdoc.date.locale = ja - -# -# Doc Setting -# -maven.xdoc.version=${pom.currentVersion} -maven.xdoc.includeProjectDocumentation = no -maven.docs.outputencoding = EUC-JP -maven.javadoc.source = 1.4 -maven.xdoc.jsl=file:${maven.src.dir}/resources/site.jsl - -# Multiproject settings -maven.multiproject.includes=*/project.xml -maven.multiproject.excludes=project.xml -# following are default values but needed here because our allSite goal doesn't know them from the plugin -maven.multiproject.aggregateDir=multiproject/ -maven.multiproject.ignoreFailures=true - -maven.pdf.cover.type=Configuration Guide -maven.pdf.companyLogo=http://pal.sourceforge.jp/images/pal_banner.gif -#maven.pdf.projectLogo=http://pal.sourceforge.jp/pal-portal/docs/ja/configuration-guide/images/sflogo.gif -maven.pdf.projectLogo= Deleted: pal-portal/docs/ja/configuration-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/project.xml 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/configuration-guide/trunk/project.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,37 +0,0 @@ - - - - PAL????¿ã? è¨???????/name> - jp.sf.pal.pal-portal.docs.ja - configuration-guide - 1.1-rev2 - - Portal Application Laboratory - http://pal.sourceforge.jp/ - /images/pal-logo.png - - 2005 - - http://sourceforge.jp/projects/pal/ - /images/sflogo.gif - - shell.sourceforge.jp - /home/groups/p/pa/pal/htdocs/pal-portal/docs/ja/configuration-guide/ - - maven-license-plugin - - Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/atn-arch-c.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/atn-arch-c.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/credential-handler-c.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/credential-handler-c.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/default-login-module-c.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/default-login-module-c.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/j2-overview.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/j2-overview.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/jetspeedservlet-c.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/jetspeedservlet-c.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/loginprocess.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/loginprocess.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/pal-logo.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/pal-logo.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/portal-layer.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/portal-layer.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/principals-credentials-schema.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/principals-credentials-schema.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/rdbms-policy-overview-c.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/rdbms-policy-overview-c.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/security-arch-overview.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/security-arch-overview.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/sflogo.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/sflogo.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/lib/ant-contrib-1.0b2.jar =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/lib/ant-contrib-1.0b2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,504 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{API} + + + + + + + +\subsection{API} + +Ajax XML API ¤Ï¡¢Ã±½ã¤Ê HTTP ¥ê¥¯¥¨¥¹¥È¥Ù¡¼¥¹¤Î API ¤Ç¡¢REST (Representational State Transfer) ¥×¥í¥È¥³¥ë¾å¤Ç¤ÎÄÌ¿®¤ò¹Ô¤¤¤Þ¤¹¡£ +API ¤Ø¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¥Ý¡¼¥¿¥ë URL ¥Ñ¥¹¤Î "ajaxapi" ¥µ¡¼¥Ö¥ì¥Ã¥È·Ðͳ¤Ç HTTP ¤ò»È¤Ã¤Æ¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£ +\begin{screen} +http://hostname/contextname/ajaxapi + +\end{screen} + + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥ê¥¯¥¨¥¹¥È¤·¤¿ API ¤ÎÆ°ºî¤È¡¢ÄɲäΠAPI ¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤷ¤Þ¤¹¡£ +¥ê¥¯¥¨¥¹¥È¤¬»²¾È¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï¡¢HTTP URL Æâ¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢¤â¤·¥Ú¡¼¥¸¤òÊѹ¹¤¹¤ë¥ê¥¯¥¨¥¹¥È¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤Ï¡¢¥Ú¡¼¥¸¤Ï°Ê²¼¤Î¤è¤¦¤Ê HTTP URL Æâ¤Ç»ØÄꤷ¤Þ¤¹¡£ +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi/Public/db-browser.psml + +\end{screen} +ɸ½à¤Î PAL¥Ý¡¼¥¿¥ë¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ò»È¤Ã¤¿¥Ú¡¼¥¸¸¡º÷¥¢¥ë¥´¥ê¥º¥à¤¬¡¢¥Ú¡¼¥¸¤ò·èÄꤷ¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ë¤è¤ê¡¢¥æ¡¼¥¶¡¼¤Î¤¿¤á¤Î¥Ú¡¼¥¸¤ò¸¡º÷¤¹¤ë¤¿¤á¡¢URL ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¯¤Æ¤âÆ°ºî¤·¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢ +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi + +\end{screen} +¤È¤¤¤¦ URL ¤Ï¡¢¸½ºß¤Î¥æ¡¼¥¶¤Î¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤Ï¡¢API ¤½¤ì¤¾¤ì¤Ç¸ÇÍ­¤Ç¤¹¡£ +¿¤¯¤Î¾ì¹ç¡¢"action" ¥Ñ¥é¥á¡¼¥¿¤È¤¤¤¦¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤ÏɬÍפˤʤê¤Þ¤¹ (¥Ç¥Õ¥©¥ë¥È¤Î¾ì¹ç¤ò½ü¤¯)¡£ +¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï "action=getpage" ¤Ç¤¹¡£ +¤³¤ì¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ë¤è¤ê¸¡º÷¤µ¤ì¤¿ PSML ¥Ú¡¼¥¸¤Î XML ɽ¸½¤òÊÖ¤·¤Þ¤¹ (PSML ¤Ï XML ·Á¼°¤Ç¤¹)¡£ +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤Î¤½¤ì¤¾¤ì¤ÎÎã¤Ï°Ê²¼¤Îɽ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +¸½»þÅÀ¤ÇÍøÍѲÄǽ¤Ê API ¤ò¼¨¤·¤Þ¤¹¡£ + + + + +API: +getpage + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È: +AjaxGetPage + + +ÀâÌÀ: +getpage ¤Ï¡¢¥Ú¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¤«¤é¡¢PSML ¤ËÊݸ¤µ¤ì¤¿¥Ú¡¼¥¸¤ò¼èÆÀ¤·¤Þ¤¹¡£ + + + +¥Ñ¥é¥á¡¼¥¿: + + +page +URL ¤Ë´Þ¤Þ¤ì¤Þ¤¹ + + +action +getportlets (¾Êά²Ä¡¢¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ç¤¹) + + + + +API ¤ÎÎã: +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi/Public/content.psml + +\end{screen} + + + +XML ¥ì¥¹¥Ý¥ó¥¹: +\begin{screen} + +success +getpage + + +public.psml +/Public/public.psml + +Public Share +Carpeta compartida + + + + + + + + + + + + + + + + + + + + + +\end{screen} + + + + + + + +API: +moveabs + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È: +AjaxMovePortletAbsolute + + +ÀâÌÀ: +¥Ú¡¼¥¸¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÀäÂаÌÃÖ¤ò¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤Ç»ØÄꤷ¤¿ row ¤È col ¤Ë½¾¤Ã¤Æ°ÜÆ°¤¹¤ë¡£ + + +¥Ñ¥é¥á¡¼¥¿: + + +page +URL ¤Ë´Þ¤Þ¤ì¤Þ¤¹ + + +action +moveabs + + +id +°ÜÆ°¤µ¤»¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È PSML ¥Õ¥é¥°¥á¥ó¥È ID + + +row +¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤òÃÖ¤­¤¿¤¤°ÌÃÖ¤ÎÀäÂÐŪ¤Ê¹Ô°ÌÃÖ (¥¼¥í¥Ù¡¼¥¹) + + +col +¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤òÃÖ¤­¤¿¤¤°ÌÃÖ¤ÎÀäÂÐŪ¤ÊÎó°ÌÃÖ (¥¼¥í¥Ù¡¼¥¹) + + + + +API ¤ÎÎã: +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi/Public/public.psml?action=moveabs\&id=ps-1003\&row=0\&col=1 + +\end{screen} + + + +XML ¥ì¥¹¥Ý¥ó¥¹: +\begin{screen} + +success +moveabs +ps-1003 + +1 +1 + + +1 +0 + + + +\end{screen} + + + + + + + +API: +moveleft, moveright, moveup, movedown + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È: +AjaxMovePortletLeft, AjaxMovePortletRight, AjaxMovePortletUp, AjaxMoveDown + + +ÀâÌÀ: +¥¢¥¯¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¡¢¥Ú¡¼¥¸¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÁêÂÐŪ¤Ê¤¢¤ë°ÌÃÖ¤«¤é°ÜÆ°¤¹¤ë¡£ + + +¥Ñ¥é¥á¡¼¥¿: + + +page +URL ¤Ë´Þ¤Þ¤ì¤Þ¤¹ + + +action +moveleft, moveright, moveup, movedown + + +id +°ÜÆ°¤µ¤»¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È PSML ¥Õ¥é¥°¥á¥ó¥È ID + + + + +API ¤ÎÎã: +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi/Public/public.psml?action=movedown\&id=ps-1003 + +\end{screen} + + + +XML ¥ì¥¹¥Ý¥ó¥¹: +\begin{screen} + +success +movedown +ps-1003 + +1 +0 + + +1 +1 + + + +\end{screen} + + + + + + + +API: +add + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È: +AjaxAddPortlet + + +ÀâÌÀ: +¸½ºß¤Î¥Ú¡¼¥¸¤Ë¿·¤·¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤òÄɲä·¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È¤Ï»ØÄꤹ¤ë¹Ô¤ÈÎó¤Î¾ì½ê¤ËÄɲ乤뤳¤È¤¬²Äǽ¤Ç¤¹¡£¤â¤·¡¢¹Ô¤âÎó¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤½¤ì¤¾¤ì 0 ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ + + +¥Ñ¥é¥á¡¼¥¿: + + +page +URL ¤Ë´Þ¤Þ¤ì¤Þ¤¹ + + +action +add + + +id +¥Ú¡¼¥¸¤ËÇÛÃÖ¤·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Õ¥ë¥Í¡¼¥à¡£PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î̿̾µ¬Â§¤ò»È¤Ã¤Æ»ØÄꤷ¤Þ¤¹ (¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó̾::¥Ý¡¼¥È¥ì¥Ã¥È̾) + + +row +¾Êά²Ä: ¿·¤·¤¤¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤òÃÖ¤­¤¿¤¤¾ì½ê¤Î¹Ô°ÌÃÖ¤ÎÀäÂлØÄê (¥¼¥í¥Ù¡¼¥¹) + + +col +¾Êά²Ä: ¿·¤·¤¤¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤òÃÖ¤­¤¿¤¤¾ì½ê¤ÎÎó°ÌÃÖ¤ÎÀäÂлØÄê (¥¼¥í¥Ù¡¼¥¹) + + + + +API ¤ÎÎã: +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi/Public/public.psml?action=add\&id=jsf-demo::CalendarPortlet + +\end{screen} + + + +XML ¥ì¥¹¥Ý¥ó¥¹: +\begin{screen} + +success +add +jsf-demo::CalendarPortlet + +0 +0 + + + +\end{screen} + + + + + + + +API: +remove + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È: +AjaxRemovePortlet + + +ÀâÌÀ: +¸½ºß¤Î¥Ú¡¼¥¸¤«¤é¿·¤¿¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤òºï½ü¤¹¤ë¡£ + + +¥Ñ¥é¥á¡¼¥¿: + + +page +URL ¤Ë´Þ¤Þ¤ì¤ë + + +action +remove + + +id +ºï½ü¤·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È PSML ID + + + + +API ¤ÎÎã: +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi/Public/public.psml?action=remove\&id=ps-1003 + +\end{screen} + + + +XML ¥ì¥¹¥Ý¥ó¥¹: +\begin{screen} + +success +remove +jsf-demo::CalendarPortlet + +0 +0 + + + +\end{screen} + + + + + + + +API: +getportlets + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È: +AjaxGetPortlets + + +ÀâÌÀ: +¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼èÆÀ¤Ï¡¢¸½ºß¤Î¥µ¥Ö¥¸¥§¥¯¥È¤ÇÍøÍѲÄǽ¤Ê (¥½¡¼¥È¤µ¤ì¤¿) ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È¥ê¥¹¥È¤Ï¥Õ¥£¥ë¥¿¥ê¥ó¥°¤µ¤ì¡¢¸½ºß¤Î¥µ¥Ö¥¸¥§¥¯¥È¤Çɽ¼¨²Äǽ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£PAL¥Ý¡¼¥¿¥ë¥»¥­¥å¥ê¥Æ¥£¥Ý¥ê¥·¡¼ (JAAS) ¤Ï¡¢¤³¤Î¥Õ¥£¥ë¥¿¥ê¥ó¥°¤ò¼Â¹Ô¤·¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È (¤Î¥ê¥¹¥È) ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î̾Á°¡¢É½¼¨Ì¾¡¢ÀâÌÀ¤Îµ­½Ò¤µ¤ì¤¿ XML ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÇÊÖ¤µ¤ì¤Þ¤¹¡£ + + +¥Ñ¥é¥á¡¼¥¿: + + +page +URL ¤Ë´Þ¤Þ¤ì¤ë + + +action +getportlets + + +filter +¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¾È²ñ¤Î¥Õ¥£¥ë¥¿¤òÄêµÁ¤·¤Þ¤¹¡£ + + + + +API ¤ÎÎã: +\begin{screen} +http://localhost:8080/jetspeed/ajaxapi?action=getportlets + +\end{screen} + + + +XML ¥ì¥¹¥Ý¥ó¥¹: +\begin{screen} + +success +getportlets +- + + + + + + + + + +.... + + + + + + + +\end{screen} + + + + + +\subsection{Spring ¥¢¥»¥ó¥Ö¥ê} +AjaxRequestService¤Ï¡¢Ajax ¥ê¥¯¥¨¥¹¥È¤ò°·¤¦ Spring ¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£¤³¤ì¤Ï¡¢Ajax ¥ê¥¯¥¨¥¹¥È¤ÎÆÃÊ̤ʽèÍý¤Î¤¿¤á¤Ë¡¢Ajax ¥Ñ¥¤¥×¥é¥¤¥óÆâ¤Ç¥Õ¥Ã¥¯¤µ¤ì¤Þ¤¹¡£°Ê²¼¤¬ Spring ¥¢¥»¥ó¥Ö¥ê¤Ç¤¹¡£¤½¤ì¤¾¤ì¤Î API ¤Ï Ajax ¥µ¡¼¥Ó¥¹Æâ¤ÇÀßÄꤵ¤ì¤Þ¤¹¡£ + +\begin{screen} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\end{screen} + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,55 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + + + +\subsection{Ajax ¤Î³µÍ×} + +PAL¥Ý¡¼¥¿¥ë¤Î XML Ajax API ¤Ï¡¢Ajax ¥¯¥é¥¤¥¢¥ó¥È¤¬¡¢ÈóƱ´ü¤Î¥ê¥¯¥¨¥¹¥È¤ò PAL¥Ý¡¼¥¿¥ë¥µ¡¼¥Ó¥¹¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Î XML ¥Ù¡¼¥¹¤Î API ¤Ç¤¹¡£ + + +ŵ·¿Åª¤Ê»ÈÍÑÎã¤È¤·¤Æ¤Ï¡¢ + + +¥Ú¡¼¥¸¤Î¥«¥¹¥¿¥Þ¥¤¥º¤È¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÃÖ- ¥Ú¡¼¥¸¾å¤Ç¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î°ÜÆ°¡¢¥³¥Ô¡¼¡¢Äɲᢺï½ü¡£ +¥ì¥¤¥¢¥¦¥È¤ÎÁªÂò- ¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤ÎÊѹ¹ (¹Ô¤äÎó¤Î¿ô¤ÎÊѹ¹¡¢Îó¤Î¥µ¥¤¥º¤ÎÊѹ¹)¡£ +¥Æ¡¼¥Þ¤È¥Ç¥³¥ì¡¼¥¿¤ÎÁªÂò- ¥Ú¡¼¥¸¤Î¥Æ¡¼¥Þ¤ä¥Ú¡¼¥¸¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥³¥ì¡¼¥¿¤ÎÊѹ¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥»¥ì¥¯¥¿- ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÁªÂò¥ê¥¹¥È¤òÄ󶡡£ +¥»¥­¥å¥ê¥Æ¥£¤ÎÀßÄê- ¥ê¥½¡¼¥¹ (¥Ú¡¼¥¸¡¢¥Ý¡¼¥È¥ì¥Ã¥È¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¡¢¥Õ¥é¥°¥á¥ó¥È) ¤â¤·¤¯¤Ï¥Ý¡¼¥¿¥ëÁ´ÂΤǤΥ»¥­¥å¥ê¥Æ¥£À©Ì󡢤ޤ¿¤Ï¥Ý¥ê¥·¡¼¤ÎÀßÄê¡£ +¥á¥Ë¥å¡¼¤ÎÀßÄê- PAL¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤ÎÀ¸À®¤äÊÔ½¸¡£ +Á´ÂÎŪ¤Ê´ÉÍý- Á´ÂÎŪ¤Ê´ÉÍý¤ò¹Ô¤¦Á´¤Æ¤Î¥æ¡¼¥¹¥±¡¼¥¹¤Ï¤Þ¤À¸¡Æ¤¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + + +Ajax XML API ¥ê¥¯¥¨¥¹¥È¤ÎÁ´¤Æ¤Ï¡¢Ajax ÍѤËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤Î¥Ñ¥¤¥×¥é¥¤¥ó¤òÄ̤·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢Ä̾ï¤Î PAL¥Ý¡¼¥¿¥ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥Ð¥ë¥ÖÇÛÎó¤òÍѤ¤¤Æ¡¢Ajax ¥ê¥¯¥¨¥¹¥È¤ò¹½À®²Äǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Î Ajax ¥Ñ¥¤¥×¥é¥¤¥ó¤Ï¡¢Á´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤Ø¤Î¥¢¥¯¥»¥¹¤òÊݾڤ·¤Þ¤¹¡£ +Ajax ¥¢¥¯¥·¥ç¥ó¤Î¤½¤ì¤¾¤ì¤Ï¡¢¼«¿È¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤ò»ý¤Á¤Þ¤¹¡£ +¥Ú¡¼¥¸¤òÀ¸À®¤¹¤ëÁ´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤Ï¡¢ËÜÍè¤Î¥¢¥¯¥·¥ç¥ó¤Ë°Í¸¤¹¤ë¡¢ÊÔ½¸¤â¤·¤¯¤Ïɽ¼¨¥â¡¼¥É¤Î¸µ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,125 @@ + + + + +\section{jetspeed-portlet.xsd} + + + + + +\subsection{jetspeed-portlet.xsd} +\begin{screen} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\end{screen} + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,34 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + +\subsection{¥Ð¥Ã¥Á½èÍý¤Î³µÍ×} + +¥Ý¡¼¥¿¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢¥æ¡¼¥¶¡¼¾ðÊó¤Ê¤É¤ò¾¤Î¥·¥¹¥Æ¥à¤«¤éÆþ½ÐÎϤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤Í×·ï¤Ï¤è¤¯µ¯¤³¤ê¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¤½¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¡¢ÂçÎ̤Υ桼¥¶¡¼¾ðÊó¤ò¥Ð¥Ã¥Á¤Ç½èÍý²Äǽ¤Ê API ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£ +¤³¤ì¤Ë¤è¤ê¡¢Ê£»¨¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¥¹¥­¡¼¥Þ¤òÁàºî¤Ê¤ÉɬÍפʤ¯¡¢°ì³ç¤Ç¹¹¿·¤Ê¤É¤¬²Äǽ¤Ç¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,452 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥æ¡¼¥¶¡¼¾ðÊó¤Î¥Ð¥Ã¥Á½èÍý} + + + + + +\subsection{¥æ¡¼¥¶¡¼¾ðÊó¤Î¥Ð¥Ã¥Á½èÍý} + +¥æ¡¼¥¶¡¼¾ðÊó¤Î¥Ð¥Ã¥Á¹¹¿·¥µ¡¼¥Ö¥ì¥Ã¥È¤òƳÆþ¤¹¤ë¤³¤È¤Ç¡¢¥¦¥§¥Ö·Ðͳ¤Î¥¢¥¯¥»¥¹¤Ç¥æ¡¼¥¶¡¼¾ðÊó¤Î¹¹¿·¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¥¢¥¯¥»¥¹¤¹¤ë¤À¤±¤Ç¾ðÊó¤ò¹¹¿·¤Ç¤­¤ë¤Î¤Ç¡¢¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤äÊÌ¤Ê¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ç°ì³ç¤Î¹¹¿·Åù¤ò¼Â¸½¤Ç¤­¤Þ¤¹¡£ + + +\subsection{ÍøÍÑÊýË¡} +webapps/palportal/WEB-INF/web.xml¤Ë°Ê²¼¤Î¥µ¡¼¥Ö¥ì¥Ã¥ÈÄêµÁ¤ò²Ã¤¨¤Þ¤¹¡£ + +\begin{screen} +... + +UserManagerServlet +jp.sf.pal.portal.servlet.UserManagerServlet + +... + +UserManagerServlet +/userManager + +... + +\end{screen} + +ɬÍפ˱þ¤¸¤Æ¡¢¥»¥­¥å¥ê¥Æ¥£¤ÎÀßÄê¤ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + +\subsection{¥¢¥¯¥»¥¹ÊýË¡} + +http://localhost:8080/palportal/userManager?name1=value1\&... ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤ÈÂоݤÎÁàºî¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +°Ê²¼¤ÎÁàºî¤ò¼Â¹Ô¤Ç¤­¤Þ¤¹¡£ +¥æ¡¼¥¶¡¼¤Îǧ¾Ú³Îǧ¥æ¡¼¥¶¡¼¤ÎÄɲåѥ¹¥ï¡¼¥É¤Î¹¹¿·¥æ¡¼¥¶¡¼¤Îºï½ü¥æ¡¼¥¶¡¼Â°À­¤Î¹¹¿·¥æ¡¼¥¶¡¼Â°À­¤Îºï½ü + + +\subsection{½ÐÎÏ·ë²Ì} + +°Ê²¼¤Î XML ·Á¼°¤Ç·ë²Ì¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ + +\begin{screen} + + +ʸ»úÎó +ʸ»úÎó + +ʸ»úÎó +ʸ»úÎó + + + +\end{screen} + +\subsection{³Æ½èÍý¤ÎÀâÌÀ} + + +»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼¤¬Ç§¾Ú¤Ç¤­¤ë¤«¤ò³Îǧ¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +authenticate + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +password +¥Ñ¥¹¥ï¡¼¥É + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Â¸ºß¤·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¤âÀµ¤·¤¤¾ì¹ç) + + +authentication-failed +¥æ¡¼¥¶¡¼Ç§¾Ú¤Ë¼ºÇÔ¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + + + + +»ØÄꤷ¤¿¥æ¡¼¥¶¡¼Ì¾¤Ç¥æ¡¼¥¶¡¼¤òºîÀ®¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +create + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +password +¥Ñ¥¹¥ï¡¼¥É + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Àµ¾ï¤ËºîÀ®¤µ¤ì¤¿¾ì¹ç) + + +user-already-exists +¥æ¡¼¥¶¡¼¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤Æ¡¢ºîÀ®¤Ç¤­¤Ê¤¤ + + +server-error +¥æ¡¼¥¶¡¼ºîÀ®»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + + + + +»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +update + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +password +¥Ñ¥¹¥ï¡¼¥É + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¾ðÊó¤¬Àµ¾ï¤Ë¹¹¿·¤µ¤ì¤¿¾ì¹ç) + + +user-not-found +Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ + + +server-error +¥æ¡¼¥¶¡¼¹¹¿·»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + + + + +»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼Ì¾¤Î¥æ¡¼¥¶¡¼¤òºï½ü¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +update + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +password +¥Ñ¥¹¥ï¡¼¥É + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¾ì¹ç) + + +user-not-found +Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ + + +server-error +¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + + + + +»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼¤Î¥æ¡¼¥¶¡¼Â°À­¤ò¼èÆÀ¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +get-user-attribute + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +key +¥­¡¼ + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤Ë¼èÆÀ¤µ¤ì¤¿¾ì¹ç) + + +user-not-found +Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ + + +server-error +¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + +value-is-null +¥­¡¼¤ËÂбþ¤¹¤ëÃͤ¬ null ¤Î¾ì¹ç + + +½ÐÎÏ·ë²Ì¤Îresult + + +key ¤È value +Ãͤ¬½ÐÎϤµ¤ì¤Þ¤¹¡£ + + + + + +»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼Ì¾¤Î¥æ¡¼¥¶¡¼Â°À­¤ò¹¹¿·¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +update-user-attribute + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +key +¥­¡¼ + + +value +ÃÍ + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤ËÅÐÏ¿¤Þ¤¿¤Ï¹¹¿·¤µ¤ì¤¿¾ì¹ç) + + +user-not-found +Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ + + +server-error +¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + + + + +»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼Ì¾¤Î¥æ¡¼¥¶¡¼Â°À­¤òºï½ü¤·¤Þ¤¹¡£ + +URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ + + +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ +ÃÍ + + +action +get-user-attribute + + +username +¥æ¡¼¥¶¡¼Ì¾ + + +key +¥­¡¼ + + +½ÐÎÏ·ë²Ì¤Îstatus + + +ÃÍ +ÀâÌÀ + + +success +Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¾ì¹ç) + + +user-not-found +Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ + + +server-error +¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ + + +invalid-parameter +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ + + +excluded-user +Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ + + +value-is-null +¥­¡¼¤ËÂбþ¤¹¤ëÃͤ¬ null ¤Î¾ì¹ç + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,73 @@ + + + + +\section{ÈóƱ´ü¥³¥ó¥Æ¥ó¥Ä½¸Ìó} + + + + + +\subsection{ÈóƱ´ü¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤Ë¤Ä¤¤¤Æ} + +¥Ý¡¼¥È¥ì¥Ã¥È¤â°ì¤Ä¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¹¡£ +¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸Æâ¤ËÊ£¿ô¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÃÖ¤·¤¿¾ì¹ç¡¢¤½¤Î¥Ú¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤¬ÇÛÃÖ¤·¤Æ¤¢¤ë¿ô¤À¤±¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤ÈƱ¤¸¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸Æâ¤Ë¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤ËÂФ·¤Æ¡¢1 ¤Ä¤Î¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤Ç¤ÏÊ£¿ô¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£ +¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¥¢¥¯¥»¥¹¤·¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ñ¥é¥á¡¼¥¿¤òÊѹ¹¤¹¤ë¤³¤È¤ÇƱ´üŪ¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â²Äǽ¤Ç¤¹¡£ + + +\subsection{ÀßÄêÊýË¡} + +webapps/palportal/WEB-INF/assembly/pipelines.xml¤Ç aggregatorValve ¤Ë°ú¿ô¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£ +\begin{screen} +... + + + + + +... + +\end{screen} + +org.apache.jetspeed.aggregator.AsyncPageAggregator ¤ÏÈóƱ´ü¤Ë¥³¥ó¥Æ¥ó¥Ä¤ò½¸Ìó¤·¤Þ¤¹¡£ +Ʊ´üŪ¤Ë¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤ò¤·¤¿¤¤¾ì¹ç¤Ï¡¢org.apache.jetspeed.aggregator.PageAggregator ¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ + + + +pipelines.xml¤ÎÀßÄê¸å¡¢ÈóƱ´ü¤Ç½èÍý¤·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤ËÂФ·¤Æ¡¢¥¿¥¤¥à¥¢¥¦¥ÈÃͤòÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Á´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¸Æ¤Ó½Ð¤¹¾ì¹ç¤Ï°Ê²¼¤ÎÊѹ¹¤òwebapps/palportal/WEB-INF/assembly/aggregation.xml¤Ë²Ã¤¨¤Þ¤¹¡£ +\begin{screen} +... + +... + \if0 Default portlet timeout in milliseconds: + Zero means no portlet timeout option by default. + \fi + +5000 + +... + +... + +\end{screen} +¾åµ­¤ÎÀßÄê¤Î¾ì¹ç¡¢5000ms ¤Î¥¿¥¤¥à¥¢¥¦¥ÈÃͤ¬ÀßÄꤵ¤ì¤Þ¤¹¡£ +³Æ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¸ÄÊ̤ËÀßÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ÂоݤΥݡ¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î jetspeed-portlet.xml ¤Ç°Ê²¼¤Î¤è¤¦¤ÊÀßÄê¤ò¤·¤Þ¤¹¡£ +\begin{screen} +... + +PALWcmViewer +5000 + +... + +\end{screen} + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,57 @@ + + + + +\section{¥³¥ó¥Æ¥­¥¹¥È¤ÎÊѹ¹} + + + + + +\subsection{¥³¥ó¥Æ¥­¥¹¥È¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢É¸½à¤Ç Tomcat 5.5 ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¡¢palportal ¥³¥ó¥Æ¥­¥¹¥È¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +¥¤¥ó¥¹¥È¡¼¥ë¸å¡¢¥³¥ó¥Æ¥­¥¹¥È¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï¡¢ËÜÀá¤ÎÀßÄê¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥³¥ó¥Æ¥­¥¹¥È¤ÎÊѹ¹} + + +PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Ää»ß¤·¤Þ¤¹¡£ + + + + +Ëܼ곤­¤Ç¤Ï http://localhost:8080/palportal/ ¤Ç¥¢¥¯¥»¥¹¤·¤Æ¤¤¤¿¤â¤Î¤ò http://localhost:8080/ ¤ËÊѹ¹¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£ +¥ë¡¼¥È¥³¥ó¥Æ¥­¥¹¥È(ROOT) ¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¡¢ÍøÍѤ·¤¿¤¤¥³¥ó¥Æ¥­¥¹¥È̾¤ËÃÖ¤­´¹¤¨¤ÆÆɤó¤Ç¤¯¤À¤µ¤¤¡£ + +´û¸¤Î ROOT ¤òºï½ü¤·¤Þ¤¹¡£ +\begin{screen} +\$ rm -r webapps/ROOT + +\end{screen} + +palportal ¤ò ROOT ¤Ë̾Á°Êѹ¹¤·¤Þ¤¹¡£ + +\begin{screen} +\$ mv webapps/palportal webapps/ROOT + +\end{screen} + +conf °Ê²¼¤Ë¤¢¤ë palportal.xml ¤â ROOT.xml ¤Ë̾Á°Êѹ¹¤·¤Þ¤¹¡£ +´û¤Ë Tomcat ¤òµ¯Æ°¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢work ¤Ê¤É¤Ë¥­¥ã¥Ã¥·¥å¤¬Â¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤Ç¡¢ºï½ü¤·¤Þ¤¹¡£ + +\begin{screen} +\$ rm -rf work/* + +\end{screen} + + + +PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤·¤Þ¤¹¡£ +¾åµ­¤ÎÀßÄê¤Ë¤è¤ê http://localhost:8080/ ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,22 @@ + + + + +\section{³µÍ×} + + + + + +\subsection{ÀßÄê³µÍ×} + +¥Ý¡¼¥¿¥ë¤ÎÀßÄê¤Ë´Ø¤¹¤ë¾ðÊó¤Ï¡¢webapps/palportal/WEB-INF°Ê²¼¤ÎÍÍ¡¹¤Ê¥Õ¥¡¥¤¥ë¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥Ý¡¼¥¿¥ë¤Îµ¡Ç½¤ò¥«¥¹¥¿¥Þ¥¤¥º¤·¤Æ¤¤¤¯¤¿¤á¤Ë¤Ï¡¢ÂоݤΥե¡¥¤¥ë¤ÎÀßÄêÃͤòÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢Êѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +´ðËÜŪ¤ÊÀßÄê¾ðÊó¤Ï¡¢webapps/palportal/WEB-INF/conf¤Î¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ëÆâ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤Þ¤¿¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤è¤ê¹½ÃÛ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¹½À®¥Ç¡¼¥¿¤Ë´Ø¤·¤Æ¤Ï¡¢Spring ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤È¤·¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢webapps/palportal/WEB-INF/assembly¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,132 @@ + + + + +\section{¥í¥°¤ÎÀßÄê} + + + + + +\subsection{¥í¥°¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Log4j ¤òÍøÍѤ·¤Æ¡¢¥í¥°¤ÎÀ©¸æ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£ +¥í¥°¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢webapps/palportal/WEB-INF/conf/Log4j.properties¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤½¤³¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ëÃͤòÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢¥í¥°¥Õ¥¡¥¤¥ë¤ÎÊݸÀè¤òÊѹ¹¤·¤¿¤ê¡¢½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{ÀßÄê¥Õ¥¡¥¤¥ë} + +Log4j.properties¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹(°ìÉôά)¡£ + +\begin{screen} +\# ------------------------------------------------------------------------ +\# +\# Logging Configuration +\# +\# ------------------------------------------------------------------------ + +\# If we don't know the logging facility, put it into the jetspeed.log +log4j.rootLogger = ERROR, jetspeed + +\# Jetspeed goes into Jetspeed Log +log4j.category.org.apache.jetspeed = ERROR, jetspeed +log4j.additivity.org.apache.jetspeed = false + + +log4j.category.org.apache.jetspeed.tools = ERROR, jetspeed +log4j.additivity.org.apache.jetspeed.tools = false + + +\# Velocity Logfile +log4j.category.velocity = ERROR, velocity +log4j.additivity.velocity = false + +\# Deployment Category +log4j.category.deployment = ERROR, DEPLOYMENT +log4j.additivity.deployment = false + + +\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# +\# +\# Logfile definitions +\# +\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# + +\# jetspeed.log +log4j.appender.jetspeed = org.apache.log4j.RollingFileAppender +log4j.appender.jetspeed.File = \${applicationRoot}/WEB-INF/logs/jetspeed.log +log4j.appender.jetspeed.layout = org.apache.log4j.PatternLayout +log4j.appender.jetspeed.layout.ConversionPattern = %d [%t] %-5p %c - %m%n +log4j.appender.jetspeed.Append = true +log4j.appender.jetspeed.MaxFileSize = 10MB +log4j.appender.jetspeed.MaxBackupIndex = 5 + +\# deployment.log +log4j.appender.DEPLOYMENT = org.apache.log4j.RollingFileAppender +log4j.appender.DEPLOYMENT.File = \${applicationRoot}/WEB-INF/logs/deployment.log +log4j.appender.DEPLOYMENT.layout = org.apache.log4j.PatternLayout +log4j.appender.DEPLOYMENT.layout.ConversionPattern = %d [%t] %-5p %c - %m%n +log4j.appender.DEPLOYMENT.Append = true +log4j.appender.DEPLOYMENT.MaxFileSize = 10MB +log4j.appender.DEPLOYMENT.MaxBackupIndex = 5 + +\# Velocity gets configured to write its output onto the velocity category. +log4j.appender.velocity = org.apache.log4j.RollingFileAppender +log4j.appender.velocity.File = \${applicationRoot}/WEB-INF/logs/velocity.log +log4j.appender.velocity.layout = org.apache.log4j.PatternLayout +log4j.appender.velocity.layout.ConversionPattern = %d [%t] %-5p %c - %m%n +log4j.appender.velocity.Append = true +log4j.appender.velocity.MaxFileSize = 10MB +log4j.appender.velocity.MaxBackupIndex = 5 + + +\end{screen} + +¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¥ì¥Ù¥ë¤Ï ERROR ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +½ÐÎϤµ¤ì¤ë¥í¥°¥Õ¥¡¥¤¥ë¤ÎÊݸÀè¤Ï¡¢webapps/palportal/WEB-INF/logs¤ËÊݸ¤µ¤ì¤Þ¤¹¡£ +¥í¥°¥Õ¥¡¥¤¥ë¤ÎÆâÍƤϡ¢PAL¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¤·¤Æ¤âÊݸ¤µ¤ì¤¿¤Þ¤Þ¤Ç¡¢¥í¥°¤òÄɵ­¤·¤Þ¤¹¡£ +³Æ¥í¥°¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¡¢10MB ¤Þ¤ÇÊݸ¤·¡¢¤½¤ì°Ê¾å¤Î¥µ¥¤¥º¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï \<¥Õ¥¡¥¤¥ë̾\>.\<¿ô»ú\> ¤È¤·¤ÆÊݸ¤µ¤ì¡¢ºÇÂç 5 ¤Ä¤Þ¤ÇÊÝ»ý¤·¤Þ¤¹¡£ +¤½¤ì°Ê¾å¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï¸Å¤¤¤â¤Î¤«¤éºï½ü¤µ¤ì¤Þ¤¹¡£ + + + +jetspeed.log¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î½èÍýÃæ¤Ë½ÐÎϤ¹¤ë¥í¥°¤¬Êݸ¤µ¤ì¤Þ¤¹¡£ + + + + +deployment.log¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤Î½èÍýÃæ¤Ë½ÐÎϤ¹¤ë¥í¥°¤¬Êݸ¤µ¤ì¤Þ¤¹¡£ + + + + +velocity.log¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ä¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ê¤É¤Ç Velocity ¤Î½èÍýÃæ¤Ë½ÐÎϤ¹¤ë¥í¥°¤¬Êݸ¤µ¤ì¤Þ¤¹¡£ + + + +\subsection{¥í¥°¥ì¥Ù¥ë¤ÎÊѹ¹} + +Log4j.properties¤Ç¡¢ÂÐ¾Ý¥í¥°¤Î log4j.category.* ¥×¥í¥Ñ¥Æ¥£¤ÇÀßÄꤷ¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï ERROR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ÎÃͤò DEBUG ¤Ê¤É¤ËÊѹ¹¤¹¤ë¤È¡¢¥í¥°¥ì¥Ù¥ë¤¬¥Ç¥Ð¥Ã¥°¤Ë¤Ê¤ê¤Þ¤¹¡£ +ÍøÍѲÄǽ¤Ê¥í¥°¥ì¥Ù¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + +DEBUG: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ç¥Ð¥Ã¥°ÍÑ¤Î¥í¥°¤ò½ÐÎϤ¹¤ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +INFO: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎɬÍפʾðÊó¤ò½ÐÎϤ¹¤ëÍÑ¤Ê¤É¤Î¥í¥°¤ò½ÐÎϤ¹¤ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +WARN: ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +ERROR: ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +FATAL: Ã×̿Ū¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¥í¥°¥ì¥Ù¥ë¡£ + +ÃͤòÊѹ¹¸å¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¤¹¤ë¤³¤È¤ÇÊѹ¹¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +\subsection{ÊݸÀè¤ÎÊѹ¹} + +³Æ¥í¥°¥Õ¥¡¥¤¥ë¤ÎÊݸÀè¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +Log4j.properties¤Ç¡¢ÂÐ¾Ý¥í¥°¤Î log4j.appender.*.File ¥×¥í¥Ñ¥Æ¥£¤ÇÀßÄꤷ¤Þ¤¹¡£ +\${applicationRoot} ¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ëwebapps/palportal¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ +ÃͤòÊѹ¹¸å¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¤¹¤ë¤³¤È¤ÇÊѹ¹¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,45 @@ + + + + +\section{¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ÎÀßÄê} + + + + + +\subsection{¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥²¥¹¥È¥¢¥¯¥»¥¹¤«¤é¤Î¥æ¡¼¥¶¡¼ÅÐÏ¿½èÍý¤ä¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹Ô»þ¤Ë¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤¬É¬Íפˤʤê¤Þ¤¹¡£ +¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤¬Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ì¤é¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£ + + +¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ÎÀßÄê¤Ï´ÉÍý¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤êÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤Î¾ðÊó¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ÎÊѹ¹} + +Ä̾¥¤¥ó¥¹¥È¡¼¥ë»þ¤ÎÀßÄê¤Ë¤ª¤¤¤Æ¡¢¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤ÎÃͤ¬¹¹¿·¤µ¤ì¤Þ¤¹¡£ +¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ë¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤Î¾ðÊó¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï¡¢webapps/palportal/WEB-INF/assemblyÆâ¤Î administration.xml ¤Î°Ê²¼¤ÎÃͤòÊѹ¹¤·¤Þ¤¹¡£ + +\begin{screen} + +localhost + + + + +false + + + + +\end{screen} + +host ¤¬¥á¡¼¥ë¥µ¡¼¥Ð¡¼Ì¾¡¢username ¤È password ¤Ï¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤Ç¡¢Ç§¾Ú¤¬É¬Íפʾì¹ç¤Ï mail.smtp.auth ¤ò true ¤Ë¤·¤ÆÍ­¸ú¤Ë¤·¤Þ¤¹¡£ +Ãͤò¹¹¿·¤·¤¿¾ì¹ç¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,52 @@ + + + + +\section{¥Ý¡¼¥È¤ÎÊѹ¹} + + + + + +\subsection{¥Ý¡¼¥È¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢É¸½à¤Ç Tomcat 5.5 ¤ò¥Ð¥ó¥É¥ë¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¤½¤Î¤¿¤á¡¢PAL¥Ý¡¼¥¿¥ë¤Ø¤Î¥¢¥¯¥»¥¹¥Ý¡¼¥È¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Tomcat ¤Î¥ê¥¯¥¨¥¹¥È¼õ¿®¥Ý¡¼¥È¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤ò Tomcat °Ê³°¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤ÇÆ°ºî¤µ¤»¤ë¾ì¹ç¤Ï¡¢¥¢¥¯¥»¥¹¥Ý¡¼¥È¤ÎÊѹ¹ÊýË¡¤Ï¤½¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤ÎÀßÄêÊýË¡¤Ë½¾¤¤¤Þ¤¹¡£ + + + +\subsection{¼õ¿®¥Ý¡¼¥È¤ÎÊѹ¹} + +¥Ç¥Õ¥©¥ë¥È¤Î¼õ¿®¥Ý¡¼¥È¤Ï¡¢8080 ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¼õ¿®¥Ý¡¼¥È¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¢conf/server.xml¤Î°Ê²¼¤Î 8080 ¤òÍøÍѤ·¤¿¤¤¥Ý¡¼¥ÈÈÖ¹æ¤ËÊѹ¹¤·¤Þ¤¹¡£ + +\begin{screen} + + +\end{screen} + +ÃͤòÊѹ¹¸å¡¢ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +\subsection{Ää»ß¥Ý¡¼¥È¤ÎÊѹ¹} + +PAL¥Ý¡¼¥¿¥ë¤òƱ¤¸¥µ¡¼¥Ð¡¼¾å¤Ê¤É¤ÇƱ»þ¤ËÊ£¿ô¾å¤²¤¿¤¤¾ì¹ç¡¢¼õ¿®¥Ý¡¼¥È°Ê³°¤ËÄä»ß¥Ý¡¼¥È¤âÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +Ää»ß¥Ý¡¼¥È¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¢conf/server.xml¤Î°Ê²¼¤Î 8005 ¤òÍøÍѤ·¤¿¤¤¥Ý¡¼¥ÈÈÖ¹æ¤ËÊѹ¹¤·¤Þ¤¹¡£ + +\begin{screen} + + +\end{screen} + +ÃͤòÊѹ¹¸å¡¢ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/properties.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/properties.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/properties.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,19 @@ + + + + +\section{´ðËÜÀßÄê} + + + + + +\subsection{´ðËÜÀßÄê¾ðÊó¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Î´ðËÜŪ¤ÊÀßÄê¾ðÊó¤Ï¡¢webapps/palportal/WEB-INF/conf¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥Ù¡¼¥¹¤È¤Ê¤ëÀßÄê¾ðÊó¤Ï¡¢jetspeed.properties¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤³¤ì¤é¤ÎÀßÄêÃͤòÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï¡¢override.properties¤ËÄêµÁ¤·¤Æ¡¢jetspeed.properties¤ÎÀßÄê¾ðÊó¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,18 @@ + + + + +\section{¥×¥í¥­¥·¤ÎÀßÄê} + + + + + +\subsection{¥×¥í¥­¥·¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤ò¥¤¥ó¥È¥é¥Í¥Ã¥È´Ä¶­¤Ë¹½ÃÛ¤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ê¤É¤Ç¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¥×¥í¥­¥·¾ðÊó¤ÎÀßÄ꤬ɬÍפˤʤê¤Þ¤¹¡£ +Ä̾JAVA\_OPTS ´Ä¶­ÊÑ¿ô¤Ë -Dhttp.proxyHost=\<YOUR\_PROXY\_HOST\> -Dhttp.proxyPort=\<YOUR\_PROXY\_PORT\> ¤òÀßÄꤷ¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤¹¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,40 @@ + + + + +\section{¥»¥Ã¥·¥ç¥ó¶¦Í­} + + + + + +\subsection{¥»¥Ã¥·¥ç¥ó¶¦Í­¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤â³Æ¥Ý¡¼¥È¥ì¥Ã¥È¤â¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¾å¤Ç¤Ï 1 ¤Ä¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤ÆÆ°ºî¤·¤Æ¤¤¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢¥Ý¡¼¥¿¥ë¤ò·Ðͳ¤¹¤ë¥¢¥¯¥»¥¹¤Ç¤¢¤ë¤Î¤Ç¡¢¥¯¥í¥¹¥³¥ó¥Æ¥­¥¹¥È¤Ê¥¢¥¯¥»¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤½¤Î¤¿¤á¡¢Ä̾ï¤Î Tomcat ¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¥»¥Ã¥·¥ç¥ó¤ò¼èÆÀ¤·¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥¹¥³¡¼¥×¤ÇÃͤòÊݸ¤·¤Æ¤â¡¢¤½¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë¤¢¤ë¥µ¡¼¥Ö¥ì¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤·¤Æ¥»¥Ã¥·¥ç¥ó¤«¤é¤½¤ÎÃͤò¼èÆÀ¤Ç¤­¤Þ¤»¤ó¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë¤¢¤ë¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥»¥Ã¥·¥ç¥ó¤È¥µ¡¼¥Ö¥ì¥Ã¥È¤Î¥»¥Ã¥·¥ç¥ó¤Ë¤¢¤ëÃͤò¶¦Í­¤Ç¤­¤ë¤è¤¦¤Ë¡¢¥Ç¥Õ¥©¥ë¥È¤Ç Tomcat ¤ËÂФ·¤Æ¡¢emptySessionPath ¤òÍ­¸ú¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ +¤â¤·¡¢PAL¥Ý¡¼¥¿¥ë¤Ë¥Ð¥ó¥É¥ë¤µ¤ì¤¿ Tomcat ¤òÍøÍѤ·¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ÎÃͤòÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + +\subsection{emptySessionPath ¤ÎÀßÄê} + +PAL¥Ý¡¼¥¿¥ë¤Ë¥Ð¥ó¥É¥ë¤µ¤ì¤¿ Tomcat ¤Ç¤Ï¡¢emptySessionPath ¤ò true ¤ÇÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +emptySessionPath ¤òÀßÄꤹ¤ë¾ì¹ç¤Ï¡¢conf/server.xml¤Î°Ê²¼¤Î²Õ½ê¤Ë emptySessionPath ¤òÄɲä·¤Þ¤¹¡£ + +\begin{screen} + + +\end{screen} + +ÃͤòÊѹ¹¸å¡¢ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,191 @@ + + + + +\section{¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÀßÄê} + + + + + +\subsection{¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òºÎÍѤ·¤Æ¤ª¤ê¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î´ÉÍý¤Ë¤Ï Spring ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¤½¤Î¤¿¤á¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò´ÉÍý¤¹¤ëÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢Spring ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ë´ð¤Å¤¤¤Æµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤½¤ì¤é¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢webapps/palportal/WEB-INF/assembly¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{¥³¥ó¥Ý¡¼¥Í¥ó¥È°ìÍ÷} + +¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÀßÄê¥Õ¥¡¥¤¥ë°ìÍ÷¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + + + +ÀßÄê¥Õ¥¡¥¤¥ë̾ +ÀâÌÀ + + +administration.xml +¥Ý¡¼¥¿¥ë¤Î´ÉÍýÍÑ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +aggregation.xml +¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤ò½èÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +ajax-layout.xml +AJAX API ¤Ç»ÈÍѤµ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +ajax.xml +AJAX ¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +cache.xml +¥­¥ã¥Ã¥·¥å¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +capabilities.xml +¥¯¥é¥¤¥¢¥ó¥È¤ò¼±Ê̤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +cluster-node.xml +¥¯¥é¥¹¥¿¥Î¡¼¥É¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +deployment.xml +ÇÛÈ÷½èÍý¤ò¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +headtag.xml +head¥¿¥°¤Ç½ÐÎϤ¹¤ë¥¿¥°¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +hierarchical-principal-names.xml +³¬ÁØŪ¤Ê¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¤òÀ©¸æ¤·¤Þ¤¹ + + +importer-page-manager.xml +PSML¥Ç¡¼¥¿¤Î¥¤¥ó¥Ý¡¼¥È¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +interceptors.xml +¥¤¥ó¥¿¥»¥×¥¿¤òÀßÄꤹ¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +jetspeed-base.xml +¥Ý¡¼¥¿¥ë¤ÇÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +jetspeed-production.xml +jetspeed-production.properties ¤òÍøÍѤ¹¤ë¤È¤­¤Ë»È¤¦¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +jetspeed-services.xml +¥Ý¡¼¥¿¥ëÆâ¤ÇÍøÍѤ¹¤ë¥µ¡¼¥Ó¥¹¤ò¤Þ¤È¤á¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +jetspeed-spring.xml +¥Ý¡¼¥¿¥ëÆâ¤ÇɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +multiple-action.xml +Ê£¿ô¤Î Ajax ¥¢¥¯¥·¥ç¥ó¤òÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +page-manager.xml +¥Ú¡¼¥¸¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +pipelines.xml +¥Ñ¥¤¥×¥é¥¤¥ó¤È¥Ð¥ë¥Ö¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +pluto-factories.xml +Pluto ¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +portal-url-generation.xml +¥Ý¡¼¥¿¥ë URL ¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +prefs.xml +¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +profiler.xml +¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +registry.xml +¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÅÐÏ¿¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +request-context-objects.xml +RequestContext ¤ÇÍøÍѤ¹¤ë¥ª¥×¥¸¥§¥¯¥È¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +search.xml +¸¡º÷¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-atn.xml +¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-atz.xml +JAAS ´ÉÍý¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-managers.xml +¥»¥­¥å¥ê¥Æ¥£´ÉÍý¤ò½èÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-providers.xml +¥æ¡¼¥¶¡¼Ç§¾Ú¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-spi-atn.xml +¥æ¡¼¥¶¡¼Ç§¾Ú¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-spi-atz.xml +¥¢¥¯¥»¥¹¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +security-spi.xml +¥»¥­¥å¥ê¥Æ¥£¥¢¥¯¥»¥¹¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +serializer.xml +¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ý¡¼¥È¡¦¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +sso.xml +SSO¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +statistics.xml +Åý·×¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +theme-engine.xml +¥Ç¥³¥ì¡¼¥¿¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +transaction.xml +¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +userinfo.xml +¥æ¡¼¥¶¡¼Â°À­¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + +wps.xml +Websphere ¤ÇɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,67 @@ + + + + +\section{SSL ¥ê¥À¥¤¥ì¥¯¥È} + + + + + +\subsection{SSL ¥ê¥À¥¤¥ì¥¯¥È¤Ë¤Ä¤¤¤Æ} + +ÆÃÄê¤Î¥Ú¡¼¥¸¥¢¥¯¥»¥¹¤·¤¿¾ì¹ç¤Ë HTTPS ¤Î¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È¤ò¤µ¤»¤¿¤ê¡¢¤Þ¤¿µÕ¤Ë¤¢¤ë¥Ú¡¼¥¸¤Ë¥¢¥¯¥»¥¹¤·¤¿¾ì¹ç¤Ë HTTP ¤òɽ¼¨¤·¤¿¤¤¾ì¹ç¤¬¤¢¤ë¤«¤È»×¤¤¤Þ¤¹¡£ +¤½¤Î¤è¤¦¤Ê¾ì¹ç¤ËÂбþ¤¹¤ë¤¿¤á¡¢PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï SSL ¥ê¥À¥¤¥ì¥¯¥È¥Ð¥ë¥Ö¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +SSL ¥ê¥À¥¤¥ì¥¯¥È¥Ð¥ë¥Ö¤ò¥Ñ¥¤¥×¥é¥¤¥ó¤ËÄɲ乤뤳¤È¤Ç¡¢¥Ú¡¼¥¸Ã±°Ì¤Ç SSL ¥Ú¡¼¥¸¤Ë¤¹¤ë¤«¤É¤¦¤«¤Î»ØÄ꤬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{ÀßÄêÊýË¡} + +webapps/palportal/WEB-INF/assembly/pipelines.xml¤Ë jp.sf.pal.portal.redirect.impl.SSLRedirectValveImpl ¤òÄɲä·¤Þ¤¹¡£ + +\begin{screen} +... + + +redirect.to.ssl.page + + +80 + + +443 + + + + + +JetspeedPipeline + + + + + + + + + + + +... + +\end{screen} + +sslRedirectValve ¤ò bean Í×ÁǤòÄɲ䷤ơ¢jetspeed-pipeline ¤Î profilerValve ¤Î¸å¤Ë sslRedirectValve ¤Î ref Í×ÁǤòÄɲä·¤Þ¤¹¡£SSLRedirectValveImpl¤Î¥³¥ó¥¹¥È¥é¥¯¥¿°ú¿ô¤Ï¡¢°ìÈÖÌܤΰú¿ô¤¬¥Ú¡¼¥¸¤Ç»ØÄꤹ¤ë¥­¡¼¤Î̾Á°¡¢2ÈÖÌܤ¬ÈóSSL¥Ú¡¼¥¸¤ÇÍøÍѤ¹¤ë¥Ý¡¼¥È¡¢£³ÈÖÌܤ¬SSL¥Ú¡¼¥¸¤ÇÍøÍѤ¹¤ë¥Ý¡¼¥È¤Ç¤¹¡£ +ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +ÀßÄê¸å¡¢¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Ç³Æ¥Ú¡¼¥¸(PSML)¤Îľ²¼¤Ë¤¢¤ë¥ì¥¤¥¢¥¦¥È¤Î¥×¥í¥Ñ¥Æ¥£¤Ë redirect.to.ssl.page ¤Î¥­¡¼¤Ç true ¤Þ¤¿¤Ï false ¤òÀßÄꤷ¤Þ¤¹¡£true ¤Î¾ì¹ç¤Ï SSL ¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¤È¤·¤Æ¡¢false ¤Î¾ì¹ç¤ÏÈó SSL ¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È¤·¤Þ¤¹¡£redirect.to.ssl.page¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¡¢»ØÄꤵ¤ì¤¿ URL ¤ò¤½¤Î¤Þ¤Þɽ¼¨¤·¤Þ¤¹¡£ +¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤Î»È¤¤Êý¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,86 @@ +\documentclass[titlepage]{jbook} +\usepackage{graphicx} +\usepackage{ascmac} + +\title{ÀßÄꥬ¥¤¥É} +\author{Portal Application Laboratory} + +\begin{document} +\maketitle + +\chapter{¤Ï¤¸¤á¤Ë} +\include{index} + +\chapter{¥Ý¡¼¥¿¥ë} +\include{portal/guide} +\include{portal/architecture} +\include{portal/tools} + +\chapter{¥¤¥ó¥¹¥È¡¼¥ë} +\include{install/guide} +\include{install/directory} + +\chapter{´ðËÜÀßÄê} +\include{config/guide} +\include{config/properties} +\include{config/spring} +\include{config/port} +\include{config/proxy} +\include{config/context} +\include{config/log} +\include{config/mail} +\include{config/session} +\include{config/sslredirect} +\include{config/asyncaggregator} + +\chapter{¥Ç¡¼¥¿¥Ù¡¼¥¹} +\include{db/guide} +\include{db/config} + +\chapter{¥»¥­¥å¥ê¥Æ¥£} +\include{security/guide} +\include{security/config} +\include{security/login} +\include{security/credential} +\include{security/portlet} +\include{security/authfilter} +\include{security/transferfilter} + +\chapter{¥Ç¥¶¥¤¥ó} +\include{design/guide} +\include{design/layout} +\include{design/layout-decorator} +\include{design/portlet-decorator} +\include{design/jpt} +\include{design/login} + +\chapter{¥Ý¡¼¥È¥ì¥Ã¥È} +\include{portlet/guide} +\include{portlet/deploy} +\include{portlet/portal} +\include{portlet/portlet} + +\chapter{PSML} +\include{psml/guide} +\include{psml/security} +\include{psml/menu} + +\chapter{¥×¥í¥Õ¥¡¥¤¥é¡¼} +\include{profiler/guide} +\include{profiler/profilingrule} + +\chapter{¥æ¡¼¥¶¡¼Â°À­} +\include{userattribute/guide} + +\chapter{Ajax} +\include{ajax/guide} +\include{ajax/api} + +\chapter{¥Ð¥Ã¥Á½èÍý} +\include{batch/guide} +\include{batch/usermanager} + +\chapter{Appendix} +\include{appendix/jetspeed-portlet} + +\end{document} Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,102 @@ + + + + +\section{ÀßÄê} + + + + + +\subsection{ÀßÄê¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¢¥¯¥»¥¹¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤«¤é¥Ç¡¼¥¿¥½¡¼¥¹¤ò¼èÆÀ¤·¤Æ½èÍý¤·¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Î¹½À®¤Ç¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¥»¥Ã¥È¥¢¥Ã¥×¤µ¤ì¤ë Tomcat ¤Ë¥Ç¡¼¥¿¥½¡¼¥¹¤ÎÀßÄ꤬¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï¡¢Tomcat ¤Î¥Ç¡¼¥¿¥½¡¼¥¹¤ÎÀßÄê¤òÊѹ¹¤·¤Þ¤¹¡£ + + +Tomcat ¤Î¥Ç¡¼¥¿¥½¡¼¥¹¤ÎÀßÄê¤Ï¡¢conf/Catalina/localhost/palportal.xml¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +Derby ¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÀßÄ꤬µ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +\begin{screen} + + +\end{screen} + +\subsection{ÀßÄêÊýË¡} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¹½À®¤¹¤ë¥¹¥¯¥ê¥×¥È¤â¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£ +¤³¤³¤Ç¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë Derby ¤òÍøÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÁªÂò¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ë MySQL ¤ËÊѹ¹¤¹¤ëÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£ +º£²ó¤Ï¡¢¥Ç¡¼¥¿¤Î°Ü¹Ô¤Ê¤É¤Ï¤»¤º¡¢¿·µ¬¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºî¤ê¤Ê¤ª¤¹¤³¤È¤È¤·¤Þ¤¹(¥Ç¡¼¥¿¤Î°Ü¹Ô¤¬É¬Íפʾì¹ç¤Ï³Æ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥É¥­¥å¥á¥ó¥È¤ò»²¹Í¤Ë¤·¤Æ¡¢DML ¤Ê¤É¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤)¡£ +¥Ç¡¼¥¿¥Ù¡¼¥¹¹½À®¥¹¥¯¥ê¥×¥È¤Î¼Â¹Ô¤Ë¤Ï¡¢Apache Ant ¤¬É¬Íפˤʤê¤Þ¤¹¡£ + + + +PAL¥Ý¡¼¥¿¥ë¤¬µ¯Æ°¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Ää»ß¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¢¥¯¥»¥¹¤ËɬÍ×¤Ê JDBC ¥é¥¤¥Ö¥é¥ê¤Î jar ¥Õ¥¡¥¤¥ë¤òshared/lib¤ËÇÛÃÖ¤·¤Þ¤¹¡£ + +\begin{screen} +\$ cp/mysql-connector-java-5.0.4.jar shared/lib + +\end{screen} + + + +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¹½À®¥¹¥¯¥ê¥×¥È¤Ï¡¢database ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£ + +\begin{screen} +\$ cd database + +\end{screen} + +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¹½À®¥¹¥¯¥ê¥×¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë database.properties ¤ò½¤Àµ¤·¤Þ¤¹¡£ + +\begin{screen} +; Jetspeed Enterprise Portal 2.1.1 Database setup configuration + +; db.type supported values: db2, derby, mssql, mysql, oracle, postgres, sapdb +db.type=mysql + +: for db.type other than derby, the properties below need to be specified +db.username= +db.password= +jdbc.url=jdbc:mysql://localhost/?useUnicode=true\&characterEncoding=UTF-8 +jdbc.driver.class=com.mysql.jdbc.Driver + +; boolean flag (true/false) indicating if psml is to be imported +; in the database or will be read from file system +dbImportPsml = true + +\end{screen} + +¤´ÍøÍѤδĶ­¤Ë±þ¤¸¤Æ¡¢DB ̾¡¢DB ¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ +dbImportPsml ¤ò true ¤Ë¤¹¤ë¤³¤È¤Ç¡¢PSML ¥Õ¥¡¥¤¥ë¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤·¤¿¾ì¹ç¤Ï¡¢webapps/palportal/WEB-INF/pages¤Î PSML ¥Õ¥¡¥¤¥ë¤ÏÍøÍѤµ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + + + + +¾åµ­¤òÀßÄê¸å¡¢Ant ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ + +\begin{screen} +\$ ant + +\end{screen} + +BUILD SUCCESSFUL ¤Èɽ¼¨¤µ¤ì¤ì¤Ð¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀßÄê¤Ï´°Î»¤Ç¤¹¡£ +conf/Catalina/localhost/palportal.xml¤â¿·¤·¤¯ÀßÄꤷ¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¤è¤¦¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +°Ê¾å¤ÎÀßÄê¤Ç¡¢¿·¤·¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍѤ¤¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,20 @@ + + + + +\section{³µÍ×} + + + + + +\subsection{¥Ç¡¼¥¿¥Ù¡¼¥¹ÀßÄê¤Î³µÍ×} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥Ý¡¼¥¿¥ë¤ËɬÍפʥǡ¼¥¿¤òÀßÄꤵ¤ì¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊݸ¤·¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤«¤é¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤Ï¡¢JNDI ¤òÍѤ¤¤Æ¥Ç¡¼¥¿¥½¡¼¥¹¤ò¼èÆÀ¤·¤Æ¹Ô¤¤¤Þ¤¹¡£ +O/R ¥Þ¥Ã¥Ñ¡¼¤Ë¤Ï¡¢Apache DB ¤Î OJB ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢ÆÃÄê¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë°Í¸¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢Oracle ¤ä MySQL ¤Ê¤ÉÍÍ¡¹¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,70 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + + + + + +\subsection{¥Ç¥¶¥¤¥ó¤Î³µÍ×} + +¥Ý¡¼¥È¥ì¥Ã¥È API (JSR 168) ¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥×¥í¥°¥é¥ß¥ó¥°¤Î Java ɸ½à¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È API »ÅÍͤˤè¤ê¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤È¥Ý¡¼¥¿¥ë¤Î´Ö¤ÎÁê¸ß¤ÎÀܳ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤·¤«¤·¡¢Java ¥Ý¡¼¥È¥ì¥Ã¥È API ¤Ï¡¢¥Ý¡¼¥¿¥ë¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ä¤¤¤Æ¤Îɸ½à¤ÏÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó¡£ +ËܾϤǤϡ¢¥Ç¥¶¥¤¥ó¤Ë´Ø¤¹¤ë»ö¹à¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ + + +\subsection{¥Ç¥¶¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È} + +¥Ý¡¼¥È¥ì¥Ã¥È¥Ú¡¼¥¸Æâ¤Î 1 ¤Ä°Ê¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÉÁ²è¤¹¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢ÉÁ²è¤¹¤ë¤¿¤á¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ì¤é¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òưŪ¤Ê¥³¥ó¥Æ¥ó¥Ä¤È¤·¤Æ½¸Ì󤹤ë½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥Ú¡¼¥¸¤ÎÉÁ²è¤ò Apache Velocity ¥Æ¥ó¥×¥ì¡¼¥È¤ò»È¤Ã¤ÆÀ¸À®¤·¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Î¹½Â¤¤Ï¡¢Velocity °Ê³°¤Ë JSP ¤ò¥Æ¥ó¥×¥ì¡¼¥È¤È¤·¤Æ»È¤¦¤³¤È¤¬²Äǽ¤Ê¹½Â¤¤ò¤·¤Æ¤¤¤Þ¤¹¤¬¡¢Velocity ¤ÎÍøÍѤò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Ë¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤È 2 ¼ïÎà¤Î¥Ç¥³¥ì¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨Îó¿ô¤Ê¤É¥Ú¡¼¥¸¤Î´ðËܹ½À®¤òÉÁ²è¤¹¤ë½èÍý¤ò¤·¤Þ¤¹¡£ +¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤È¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤¬¤¢¤ê¡¢Á°¼Ô¤Ï¥Ú¡¼¥¸Á´ÂΤΥǥ¶¥¤¥ó¤ò¹½À®¤·¡¢¸å¼Ô¤Ïɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤ò¹½À®¤·¤Þ¤¹¡£ + + + +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨Îó¿ô¤òɽ¸½¤¹¤ë¤Ê¤É¤Î¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î½¸Ìó½èÍý¤òÀ©¸æ¤·¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Îµ¡Ç½Åª¤ÊÉôʬ¤Ï¡¢PAL¥Ý¡¼¥¿¥ëÍѤÎÇÛÈ÷²Äǽ¤Ê¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æ¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤Î¤¿¤á¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥â¥Ç¥ë¤òÄ󶡤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤¬À¸À®¤·¤¿¥³¥ó¥Æ¥ó¥Ä¤òÅý¹ç¤·¤Æ¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤òÀ¸À®¤·¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï°ìÎ󡢤ޤ¿¤ÏÆóÎ󡢤ޤ¿¤Ï»°Îó¤Î¥ì¥¤¥¢¥¦¥È¤ò´Þ¤à¤¤¤¯¤Ä¤«¤Î¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òƱº­¤·¤Æ¤¤¤Þ¤¹¡£ +ɬÍפ˱þ¤¸¤Æ¡¢¿·µ¬¤Î¥ì¥¤¥¢¥¦¥È¤òÄêµÁ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ + + + + +¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤È¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤¬¤¢¤ê¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï¡¢¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¡¼¤ä¥Õ¥Ã¥¿¡¼¤Ê¤É¤Î¥Ú¡¼¥¸Á´ÂΤΤǥǥ¶¥¤¥ó¤ò¹½À®¤·¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÏȤÎÉôʬ¤ä¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Çɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤Î¥¹¥¿¥¤¥ë¤ò¹½À®¤·¤Þ¤¹¡£ +¥Ç¥³¥ì¡¼¥¿¤Ï¡¢Velocity ¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤è¤êµ­½Ò¤µ¤ì¡¢ÍøÍѤ¹¤ë CSS ¤ä²èÁü¤Ê¤É¤Î¥Ç¡¼¥¿¤ò´Þ¤ß¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ç¥³¥ì¡¼¥¿¤Îµ­½Ò¥Æ¥ó¥×¥ì¡¼¥È¤È¤·¤Æ JSP ¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢É¸½à¤Ç¤Ï Velocity ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +¥Ç¥³¥ì¡¼¥¿¤Ï¡¢PAL¥Ý¡¼¥¿¥ëÍѤÎÇÛÈ÷²Äǽ¤Ê¥¢¡¼¥«¥¤¥Ö¤È¤·¤Æ¤Þ¤È¤á¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,175 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥æ¡¼¥Æ¥£¥ê¥Æ¥£} + + + + + + + +\subsection{¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ë¤Ä¤¤¤Æ} + +¥Ç¥³¥ì¡¼¥¿¤Ç¤Îµ­½Ò¥Ä¡¼¥ë¤È¤·¤Æ¡¢Jetspeed Power Tool (JPT) ¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +JPT ¤Ï¡¢Æ°Åª¤Ê¥³¥ó¥Æ¥ó¥Ä¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¥ì¥¤¥¢¥¦¥È¤ä¥Ç¥³¥ì¡¼¥¿¤Ç»È¤ï¤ì¤ë Velocity ¤Î¥Ä¡¼¥ë¤Ç¤¹¡£ +JPT ¤Ï¡¢¥ê¥¯¥¨¥¹¥È¥ì¥Ù¥ë¤Î Velocity ¤Î¥Ä¡¼¥ë¤Ç¤¹¡£¤½¤·¤Æ¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ª¤è¤Ó¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤ÇÍøÍѲÄǽ¤Ç¤¹¡£ +JPT ¤Ï¡¢¥Ç¥³¥ì¡¼¥¿¤â¤·¤¯¤Ï¥ì¥¤¥¢¥¦¥È¤Ç¡¢ +\begin{screen} +\$jetspeed + +\end{screen} +¤È¤·¤Æ»²¾È¤µ¤ì¤Þ¤¹¡£ +Á´¤Æ¤Î¸ø³«¤Î JPT API ¤Ï¡¢ + + Java ¤Î¥á¥½¥Ã¥É¤Î¥É¥Ã¥Èµ­Ë¡ + ¥×¥í¥Ñ¥Æ¥£¤Ø¤Î JavaBean ¥·¥ç¡¼¥È¥«¥Ã¥È (getter/setter) + +¤Ç¥¢¥¯¥»¥¹²Äǽ¤Ç¤¹¡£ +¤¿¤È¤¨¤Ð¡¢¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ +\begin{screen} +\# 2 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¤â¤Ä¥á¥½¥Ã¥É 'getTitle' ¤Î¸Æ¤Ó½Ð¤· +\$jetspeed.getTitle(\$myPE, \$myF) + +\end{screen} +¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +¥×¥í¥Ñ¥Æ¥£¤Î¼èÆÀ¤Ï¡¢ +\begin{screen} +\# page ¥Ó¡¼¥ó¤Î¸Æ¤Ó½Ð¤· (\$jetspeed.getPage ¤ËÅù¤·¤¤) +\$jetspeed.page + +\end{screen} +¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +\subsection{ JPT Velocity API} +°Ê²¼¤Îɽ¤Ï Velocity ÍѤΠPAL¥Ý¡¼¥¿¥ëPower Tool ¤ÎÄêµÁ¤Ç¤¹¡£ + + + +API +decorateAndInclude(\$fragment) + + +ÀâÌÀ + + Velocity ¤Ë¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤¿¤á¤Î¡¢Í¿¤¨¤é¤ì¤¿¥Õ¥é¥°¥á¥ó¥È¥Ñ¥é¥á¡¼¥¿(\$fragment)¤ËÂФ¹¤ë¡¢¥Ç¥³¥ì¡¼¥¿¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹¤ò¼èÆÀ¤·¤Þ¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï Velocity ¤Î \#parse ´Ø¿ô¤Ë¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹ (\#parse ¤Ï¾¤Î Velocity ¥Æ¥ó¥×¥ì¡¼¥È¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Þ¤¹)¡£ + + + +¥Ñ¥é¥á¡¼¥¿ +\$fragment- ¥¤¥ó¥¯¥ë¡¼¥É¤È¥Ç¥³¥ì¡¼¥È¤ò¹Ô¤¦¥Õ¥é¥°¥á¥ó¥È¡£ + + +ÊÖ¤êÃÍ +String- ¥Ç¥³¥ì¡¼¥¿¥Æ¥ó¥×¥ì¡¼¥È¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤ÎÁêÂХѥ¹¡£ + + +Îã +\#parse(\$jetspeed.decorateAndInclude(\$fragment))Ìá¤êÃÍ/WEB-INF/decorations/layout/html/tigris/decorator-top.vm + + + + + + +API +getAbsoluteUrl(appRelativePath) + + +ÀâÌÀ + + ¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥ê¥½¡¼¥¹¤Ø¤ÎÁêÂХѥ¹¤òÍ¿¤¨¤ë¤È¡¢ÀäÂÐ URL ¤òÊÖ¤·¤Þ¤¹¡£ + ¤³¤Î API ¤Ï¥Æ¥ó¥×¥ì¡¼¥È¤Î URL ¤ò»²¾È¤¹¤ë¤Î¤Ë»È¤¦¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤Ê¤¼¤Ê¤é¡¢¥Æ¥ó¥×¥ì¡¼¥È¤Î URL ¤Ï¡¢¤·¤Ð¤·¤Ð CMS Æâ¤Ë°ÌÃÖ¤·¤¿¤ê¡¢Êݸ¤ì¤¿ WEB-INF ¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÌÃÖ¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ë¡¢Ä̾ï¤ÏÀäÂÐ URL ¤È¤·¤Æ¤Ï¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¹¡£ + + + +¥Ñ¥é¥á¡¼¥¿ +relativePath- ¥Ç¥³¥ì¡¼¥¿¥Ñ¥Ã¥±¡¼¥¸Æâ¤Î¥ê¥½¡¼¥¹¤Ø¤ÎÁêÂХѥ¹¡£ + + +ÊÖ¤êÃÍ +String- ¥¦¥§¥Ö¥ê¥½¡¼¥¹¤Ø¤ÎÀäÂХѥ¹ + + +Îã +\$jetspeed.getAbsoluteUrl("/images/test.gif")Ìá¤êÃÍhttp://localhost:8080/jetspeed/portal/images/test.gif + + + + + + +API +columns + + +ÀâÌÀ + + ¥ì¥¤¥¢¥¦¥È¤Î½¸Ìó¤Î´Ö¤Ë¸½ºß¤Î¥Õ¥é¥°¥á¥ó¥È¤Î¤¿¤á¤ÎÎó¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£ + + + +¥Ñ¥é¥á¡¼¥¿ +- + + +ÊÖ¤êÃÍ +List- ¥µ¥Ö¥Õ¥é¥°¥á¥ó¥È¤â¤·¤¯¤Ï Java ¤Îɸ½à¤Î List + + +Îã +\#set (\$table = \$jetspeed.columns)\#foreach(\$entry in \$table) + + + + + +\if0 + + +API + + + +ÀâÌÀ + + + + +¥Ñ¥é¥á¡¼¥¿ + + + +ÊÖ¤êÃÍ + + + +Îã + + + + +\fi + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,246 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿} + + + + + + + + +\subsection{¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ë¤Ä¤¤¤Æ} + +¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥Ç¥¶¥¤¥ó¤ò¹½À®¤¹¤ë¥Õ¥¡¥¤¥ë·²¤Ç¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢1 ¤Ä¤Î PSML ¥Õ¥¡¥¤¥ë¤òɽ¸½¤¹¤ë¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¡¼¤È¥Õ¥Ã¥¿¡¼¤òµ­½Ò¤¹¤ë¥Æ¥ó¥×¥ì¡¼¥È¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£ +¥Æ¥ó¥×¥ì¡¼¥È¸À¸ì¤Ë¤Ï Velocity ¤òÍѤ¤¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¥Æ¥ó¥×¥ì¡¼¥ÈÉôʬ¤òÈÆÍÑŪ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥Æ¥ó¥×¥ì¡¼¥È¸À¸ì¤Ë JSP ¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢Velocity ¤òɸ½à¤Ç¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ + + +\subsection{¹½À®¥Õ¥¡¥¤¥ë} + +¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢webapps/palportal/decorations/layout¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ +¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Þ¤¹¡£ + +decorator.properties +header.vm +footer.vm +css/styles.css + +¤¿¤È¤¨¤Ð¡¢mydesign ¤È¤¤¤¦¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¡¢webapps/palportal/decorations/layout/mydesign¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¡¢¾åµ­¤Î¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Þ¤¹¡£ + + +\subsection{´ðËÜÀßÄê(decorator.properties)} +decorator.properties ¥Õ¥¡¥¤¥ë¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î´ðËܾðÊó¤òÊÝ»ý¤·¤Þ¤¹¡£ +¼ÂºÝ¤Î¤È¤³¤í¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤Ç¤â¹½¤¤¤Þ¤»¤ó¤¬¡¢Â¾¤Î API ¤¬»ÈÍѲÄǽ¤Ê¥Ç¥³¥ì¡¼¥¿¤òõ¤¹¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢²¼µ­¤ÎÄêµÁ¤Ë¤¢¤ë¥×¥í¥Ñ¥Æ¥£¤Ï Á´¤Æ¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£ + + + +¥×¥í¥Ñ¥Æ¥£Ì¾ +ÀâÌÀ +¥Ç¥Õ¥©¥ë¥È + + +base.css.class + +¤³¤ÎÃͤϡ¢¥Ø¥Ã¥À¡¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î°ìÈÖ¾å¤ÎÍ×ÁÇ¥¿¥°¤ÎÃæ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ + +¥Ç¥³¥ì¡¼¥¿Ì¾ + + +stylesheet +¥Ç¥³¥ì¡¼¥¿¤Î¥¹¥¿¥¤¥ë¥·¡¼¥È¤Ø¤ÎÁêÂХѥ¹ +css/styles.css + + +header +¥Ç¥³¥ì¡¼¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹ +header.vm + + +footer +¥Ç¥³¥ì¡¼¥·¥ç¥ó¤Î¥Õ¥Ã¥¿¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹ +footer.vm + + + +\subsection{¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë} + +¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¤È¥Õ¥Ã¥¿¡¼¥Æ¥ó¥×¥ì¡¼¥ÈÆó¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£ + + + +¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ëheader.vm¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¡¼Éôʬ¤òÀ¸À®¤·¤Þ¤¹¡£ + +Ãí°Õ:Á°Äó»ö¹à¤È¤·¤Æ¡¢HTML ¤È CSS ¤Ë¤Ä¤¤¤Æ¤Î½½Ê¬¤ÊÃ챤¬¤¢¤ë¤È²¾Äꤷ¤Æ¤¢¤ê¤Þ¤¹¡£ +¥Ç¥³¥ì¡¼¥¿¤òºîÀ®¤¹¤ë¤Ë¤¢¤¿¤ê¡¢´ðËÜŪ¤Ê Velocity ¤ÎÃμ±¤Ï¤¢¤ì¤ÐÎɤ¤¤Ç¤¹¤¬¡¢É¬¿Ü¤ÎÃμ±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ + + + +Ä̾header.vm ¤Ç¤Ï¡¢¾åÉô¤Ë²¼µ­¤Î¤è¤¦¤Ë¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ÇÍøÍѤ¹¤ë¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄêÅù¤ò¹Ô¤¤¤Þ¤¹¡£ + +\begin{screen} +\#set(\$portalMode = "standard")\#\# +\#\# Add the current layouts configuration values to the context +\#defineLayoutObjects()\#\# +\#\# Loads our custom macros +\#parse(\$layoutDecoration.getResource("decorator-macros.vm"))\#\# +\#\# Username +\#set(\$username = \$JS2RequestContext.request.remoteUser)\#\# +\#\# Check edit +\#set(\$\_actions = \$layoutDecoration.actions)\#\# +\#foreach (\$\_action in \$\_actions)\#\# + \#if(\$\_action.actionName == "edit")\#\# + \#set (\$editable = true)\#\# + \#end\#\# +\#end\#\# +\#set(\$layoutId = \$jetspeed.currentFragment.id)\#\# +\#set(\$servletName = \$JS2RequestContext.request.servletPath)\#\# +\#initMessageResourceBundles()\#\# + +\end{screen} + +\#defineLayoutObjects()¤Ï¡¢Velocity ¤Ç¥Þ¥¯¥í¤È¸À¤ï¤ì¤ë¤â¤Î¤Ç¤¹¡£ +¥Þ¥¯¥í¤Ï¡¢»öÁ°¤ËÄêµÁ¤µ¤ì¤¿ Velocity ¤Î¾®¤µ¤Ê¥³¡¼¥É¤Ç¡¢Velocity ¥Æ¥ó¥×¥ì¡¼¥È¤ÎÃæ¤ÇºÆÍøÍѤµ¤ì¤Þ¤¹¡£ +¤³¤ì¤«¤é»ÈÍѤ¹¤ëÁ´¤Æ¤Î¥°¥í¡¼¥Ð¥ë¥Þ¥¯¥í (¤³¤Î¥Þ¥¯¥í¤â´Þ¤à) ¤Ï¡¢webapps/palportal/WEB-INF/jetspeed\_macros.vm¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤â¤·¡¢¥«¥¹¥¿¥à¥Þ¥¯¥í¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿Æâ¤Ëdecorator-macros.vm¤òºîÀ®¤·¤Æ¡¢¤½¤ÎÃæ¤Ë¥«¥¹¥¿¥à¥Þ¥¯¥í¤òµ­½Ò¤·¤Þ¤¹¡£ + + +\#defineLayoutObjects()¤Ï¡¢ÍÍ¡¹¤ÊÃͤò¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿Æâ¤ÇÍøÍѲÄǽ¤Ë¤·¤Þ¤¹¡£ +ÀßÄꤵ¤ì¤¿Ãͤϡ¢header.vm ¤ä footer.vm ¤Ê¤É¤ÎÍÍ¡¹¤Ê¥Æ¥ó¥×¥ì¡¼¥È¤«¤é¥¢¥¯¥»¥¹²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ +\#defineLayoutObjects()¤Ç¤Ï¡¢webapps/palportal/WEB-INF/jetspeed\_macros.vm¤Ç°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +\begin{screen} +\#macro (defineLayoutObjects) + \#set(\$preferedLocale = \$JS2RequestContext.locale) + \#set(\$rootFragment = \$jetspeed.currentFragment) + \#set(\$site = \$request.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext")) + \#set(\$theme = \$request.getAttribute("org.apache.jetspeed.theme")) + \#set(\$layoutDecoration = \$theme.getDecoration(\$rootFragment)) +\#end + +\end{screen} + +\#set()¤Ï¡¢Velocity ¤ÎÊÑ¿ô¤ËÃͤòÀßÄꤹ¤ë´Ø¿ô¤Ç¤¹¡£ +¤³¤ì¤Ï Velocity¤Ç»Ø¼¨»Ò¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Ç¤¹¡£ +»Ø¼¨»Ò¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î´Ø¿ô¤Ç¤¢¤ê¡¢¥Þ¥¯¥í¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +\#set()¤Ï¡¢¥¤¥³¡¼¥ëµ­¹æ¤Î±¦Êդˤ¢¤ëÃͤò¼õ¤±¼è¤êº¸Êդسä¤êÅö¤Æ¤Þ¤¹¡£ +Velocity ¤ÎÊÑ¿ô¤Ï \$ ¤Ç»Ï¤Þ¤ëʸ»úÎó¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +Á´¤Æ¤ÎVelocity¥Æ¥ó¥×¥ì¡¼¥È¤ÇÍøÍѲÄǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢\$someObject¤È¤¤¤¦½ñ¤­Êý¤Ç»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¥á¥½¥Ã¥É¤Î¼Â¹Ô¤Ï¡¢\$someObject.getFoo()¤ÎÍͤ˽ñ¤¯¤³¤È¤Ç¼Â¹Ô¤Ç¤­¤Þ¤¹¡£ +getFoo()¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¡¢°ú¿ô¤ò¼è¤é¤Ê¤¤getter¥á¥½¥Ã¥É¤Ï¡¢\$someObject.foo¤È¤¤¤¦µ­½Ò¤â²Äǽ¤Ç¤¹¡£ +¤³¤Î\$JS2RequestContext¤Ë´Ø¤·¤Æ¤Ï¡¢org.apache.jetspeed.RequestContext¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç Velocity ¤Ç»ÈÍѤǤ­¤ë¤è¤¦¤Ë¡¢PAL¥Ý¡¼¥¿¥ë¤Ë¤è¤Ã¤Æ¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +org.apache.jetspeed.RequestContext¤Î JavaDoc ¤ò¸«¤ë¤È¤ï¤«¤ê¤Þ¤¹¤¬¡¢\$JS2RequestContext.locale¤Ï¡¢¸½ºß¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥æ¡¼¥¶¡¼¤Î¥í¥±¡¼¥ë¤È¤Ê¤ë¡¢java.util.Locale¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÅϤ·¤Æ¤¤¤Þ¤¹¡£ + + +¼¡¤Ë¡¢\#set(\$rootFragment = \$jetspeed.currentFragment)¤È¤¤¤¦ set ¤Î¹Ô¤Ï¡¢\$rootFragment¤È¸Æ¤Ð¤ì¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤·¤Æ¤¤¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢org.apache.jetspeed.om.page.ContentFragment¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¡¢¥Ú¡¼¥¸Æâ¤Î¥ë¡¼¥È¥Õ¥é¥°¥á¥ó¥È¤Ç¤¹¡£ +Ä̾ï¥ë¡¼¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +\$request¤Ï¡¢javax.servlet.http.HttpServletRequest¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¡¢PAL¥Ý¡¼¥¿¥ë¤«¤é Velocity ¤ËÅϤµ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ò¼è¤ê½Ð¤·¤Þ¤¹¡£\$site¤È\$theme¤Ï¡¢¤½¤ì¤¾¤ìorg.apache.jetspeed.portalsite.PortalSiteRequestContext¤Èorg.apache.jetspeed.decoration.Theme¤Ç¤¹¡£ + + +¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¸å¡¢header.vm ¤Ç¤Ï¡¢\<html\> ¤«¤é»Ï¤Þ¤ë¥¿¥°¤òµ­½Ò¤·¤Æ¤¤¤­¤Þ¤¹¡£ + +\begin{screen} + + + \#includeHeaderResource() + + + + \#IncludeStylesheets() + + + + + + + + + + + + +... + + +\end{screen} + +ºÇ½é¤Ë¡¢ +]]>¤Ï¡¢¥¦¥§¥Ö¤Î¥ê¥½¡¼¥¹¤Î¾ì½ê¤Î²ò·è¤ò¤¹¤ë¤¿¤á¤Î¥Ù¡¼¥¹¤òÄêµÁ¤¹¤ëºÝ¤Ë»ÈÍѤ·¤Þ¤¹¡£ + +]]>¤ÎµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢W3C Schools Reference¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +¤â¤·¤¹¤Ç¤Ë¤¢¤Ê¤¿¤¬ PAL¥Ý¡¼¥¿¥ë¤ÇÍ·¤ó¤À·Ð¸³¤¬¤¢¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢°ì´Ó¤·¤¿ html ¤ä¥¹¥¿¥¤¥ë¥·¡¼¥È¤Ø¤Î¥Ñ¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤ò˸¤²¤ë¡¢´öÄ̤ê¤â¤ÎÈó¾ï¤Ë¤ä¤ä¤³¤·¤¤ URL ¥ê¥é¥¤¥È¤ÎÌäÂê¤Ëµ¤¤Å¤¯¤Ç¤·¤ç¤¦¡£ +BASE¥¿¥°¤òÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢°ì´Ó¤·¤¿ html ¤ä¥¹¥¿¥¤¥ë¥·¡¼¥È¤Ø¤Î¥Ñ¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤ò˸¤²¤ë¡¢URL ¥ê¥é¥¤¥È¤ÎÌäÂ꤬²ò·è¤µ¤ì¤Þ¤¹¡£ + + +\#BaseHref()¥Þ¥¯¥í¤Ï¡¢Ã±¤Ë¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤ÎÀäÂХѥ¹¤òºîÀ®¤·¤Þ¤¹¡£ +¤³¤Î¥³¡¼¥É¤Ï¡¢¥µ¡¼¥Ö¥ì¥Ã¥ÈAPI¤ò»È¤Ã¤Æµ­½Ò¤·¤¿¾ì¹ç¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + +\begin{screen} +HttpServletRequest request; +StingBuffer baseHref = new StringBuffer(request.getScheme()) + .append("://").append(request.getServerName()) + .append(":").append(request.getServerPort()) + .append(request.getContextPath()).append("/"); +return baseHref.toString(); + +\end{screen} + + Velocity ¥Þ¥¯¥í¤Î¥³¡¼¥É¤Ï´Ê·é¤Ë¤Ê¤ê¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + +\begin{screen} +\${request.scheme}://\${request.serverName}:\${request.serverPort}\${request.contextPath} + +\end{screen} + +\#ContentType()¤Ï text/html¤È¡¢UTF-8 ¤Î¤è¤¦¤ÊŬÀڤʥ¨¥ó¥³¡¼¥É¤Î¼ïÎà¤òÊÖ¤·¤Þ¤¹¡£ + + +\#PageBaseCSSClass()¤Ï base.css.class ¥×¥í¥Ñ¥Æ¥£¤ÎÃͤ¬ÍøÍѤµ¤ì¡¢¥¹¥¿¥¤¥ë¥·¡¼¥È¤ÎŬÍÑÈϰϤò»ØÄꤹ¤ë¤¿¤á¤Ë body ¥¿¥°Ä¾²¼¤Î¥¿¥°¤Ç¥¹¥¿¥¤¥ë¥¯¥é¥¹¤È¤·¤ÆŬÍѤ¹¤ë¤¿¤á¤Ê¤É¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£ + + + + +footer.vm ¤Ë¤Ä¤¤¤Æ¤â header.vm ¤ÈƱÍͤ˵­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + +Ä̾ï¤ÎCSS¤ÈƱÍͤ˵­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + +\subsection{¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ÎÄɲÃ} + +¿·µ¬¤Ë¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤òÄɲä·¤¿¤¤¾ì¹ç¤Ï¡¢¾åµ­¤Î¥Õ¥¡¥¤¥ë·²¤òºîÀ®¤·¡¢webapps/palportal/decorations/layout/\<mydesign\>°Ê²¼¤ËÇÛÃÖ¤¹¤ë¤³¤È¤Ç \<mydesign\> ¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£¥Ç¥³¥ì¡¼¥¿¤ÎÄɲäˤϡ¢¥Ý¡¼¥¿¥ë¤ÎºÆµ¯Æ°¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£ + + +Äɲä·¤¿¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤«¤éÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +ÀßÄêÊýË¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,289 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È} + + + + + + + +\subsection{¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È} + +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥³¥ó¥Æ¥ó¥Ä½¸Ìó½èÍý¤òÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Îµ¡Ç½Åª¤ÊÉôʬ¤Ï PAL¥Ý¡¼¥¿¥ëÍѤÎÇÛÈ÷²Äǽ¤Ê¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤Ë¥Ñ¥Ã¥±¡¼¥¸¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ç»ØÄꤵ¤ì¤¿½¸Ìó½èÍý¤ò¸µ¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤ò½¸Ì󤷤ơ¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤òÀ¸À®¤·¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢É¸½à¤Ç 1 Îó¡¢2 Îó¡¢3 Îó¤Î¥ì¥¤¥¢¥¦¥È¤ò´Þ¤à¤¤¤¯¤Ä¤«¤Î¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Î PAL¥Ý¡¼¥¿¥ë¤Ç»ØÄê²Äǽ¤Ê¥ì¥¤¥¢¥¦¥È¤Ï¸å½Ò¤Î¡Ö¥ì¥¤¥¢¥¦¥È¤Î¼ïÎà¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +ɬÍפ˱þ¤¸¤Æ¡¢¿·µ¬¤Ë¥ì¥¤¥¢¥¦¥È¤òÄêµÁ¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ + + +¥ì¥¤¥¢¥¦¥È¤Ï¤É¤Î¤è¤¦¤Ë 1 ¤Ä¤Î¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤¬¥³¥ó¥Æ¥ó¥Ä½¸Ì󤹤ë¤Î¤«¤òÄêµÁ¤·¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¥³¥ó¥Æ¥ó¥Ä¤ÎÇÛÃÖ¤ò¤É¤Î¤è¤¦¤Ë¤¹¤ë¤«¤ò½èÍý¤·¡¢¥Ý¡¼¥¿¥ë¤Ø¥ê¥¯¥¨¥¹¥È¤µ¤ì¤¿¥³¥ó¥Æ¥ó¥Ä¤¬½¸Ì󤵤ì¤ëÊýË¡¤òÄêµÁ¤·¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥³¥ó¥Æ¥ó¥Ä¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¡¢¥Æ¥ó¥×¥ì¡¼¥È½èÍý¤Î¥¢¥ë¥´¥ê¥º¥à¤ò¼Â¹Ô¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤è¤êÄêµÁ¤µ¤ì¤Þ¤¹¡£ +ŵ·¿Åª¤Ê¥ì¥¤¥¢¥¦¥È¹½À®¤Î¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ï 2 Îó¤Î¤â¤Î¡¢3 Îó¤Î¤â¤Î¡¢³¬Áز½¤µ¤ì¤¿¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ + + +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï°Ê²¼¤Ë¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£ + +¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë + + + +\subsection{¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È} + +¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢jetspeed-layouts ¥Ý¡¼¥È¥ì¥Ã¥È¤È¸Æ¤Ð¤ì¡¢PAL¥Ý¡¼¥¿¥ëÍѤΠJSR 168 ¥Ý¡¼¥È¥ì¥Ã¥È¤È¤·¤Æ¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢jetspeed-layouts.war ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ç¥Ñ¥Ã¥±¡¼¥¸²½¤µ¤ì¡¢PAL¥Ý¡¼¥¿¥ë¤ËÇÛÈ÷¤¹¤ë¤Èwebapps/palportal/WEB-INF/apps/jetspeed-layouts¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢JSR 168 ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¤¬¡¢jetspeed ¤Ç»Ï¤Þ¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¥Ý¡¼¥¿¥ëÍѤΥݡ¼¥È¥ì¥Ã¥È¤È¤·¤Æǧ¼±¤µ¤ì¡¢webapps/palportal/WEB-INF/apps°Ê²¼¤ËÇÛÈ÷¤µ¤ì¤Þ¤¹¡£ + + +¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ïɸ½àŪ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥óƱÍͤˡ¢°Ê²¼¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +ÇÛÈ÷ÇÛÈ÷²ò½üºÆÇÛÈ÷ + + +\subsection{¥ì¥¤¥¢¥¦¥È¤Î¼ïÎà} + +PAL¥Ý¡¼¥¿¥ë¤Ï 1 Îó¡¢2 Îó¡¢3 Îó¤Î¥ì¥¤¥¢¥¦¥È¤ò´Þ¤à¤¤¤¯¤Ä¤«¤Î¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òɸ½à¤Ç´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +ɬÍפ˱þ¤¸¤Æ¡¢¿·µ¬¤Ë¥ì¥¤¥¢¥¦¥È¤òÄêµÁ¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ +°Ê²¼¤Îɽ¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÍøÍѲÄǽ¤Ê¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥ê¥¹¥È¤Ç¤¹¡£ +¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤òÊѹ¹¤¹¤ëºÝ¤Ë¤Ï¡¢ÍøÍѤ·¤¿¤¤¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÁªÂò¤·¤Þ¤¹¡£ +PSML ¥Ú¡¼¥¸¤´¤È¤Ë 1 ¤Ä¤Î¥ë¡¼¥È¥ì¥¤¥¢¥¦¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + + +¥Ý¡¼¥È¥ì¥Ã¥È̾ +¥ì¥¤¥¢¥¦¥È̾ +¥«¥é¥à¿ô +¥µ¥¤¥º +ÀâÌÀ + + +VelocityOneColumn +1 Îó¥ì¥¤¥¢¥¦¥È +1 +100% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Î 100% Éý¤òÀê¤á¤ë 1 Îóɽ¼¨¡£ + + +VelocityTwoColumns +2 Îó¥ì¥¤¥¢¥¦¥È(50/50) +2 +50%,50% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 50%¡¢50% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns3366 +2 Îó¥ì¥¤¥¢¥¦¥È(33/66) +2 +33%,66% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 33%¡¢66% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns2575 +2 Îó¥ì¥¤¥¢¥¦¥È(25/75) +2 +25%,75% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 25%¡¢75% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns2080 +2 Îó¥ì¥¤¥¢¥¦¥È(20/80) +2 +20%,80% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 20%¡¢80% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns1585 +2 Îó¥ì¥¤¥¢¥¦¥È(15/85) +2 +15%,85% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 15%¡¢85% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns1090 +2 Îó¥ì¥¤¥¢¥¦¥È(10/90) +2 +10%,90% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 10%¡¢90% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns595 +2 Îó¥ì¥¤¥¢¥¦¥È(5/95) +2 +5%,95% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 5%¡¢95% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns6633 +2 Îó¥ì¥¤¥¢¥¦¥È(66/33) +2 +66%,33% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 66%¡¢33% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns7525 +2 Îó¥ì¥¤¥¢¥¦¥È(75/25) +2 +75%,25% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 75%¡¢25% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns8020 +2 Îó¥ì¥¤¥¢¥¦¥È(80/20) +2 +80%,20% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 80%¡¢20% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns8515 +2 Îó¥ì¥¤¥¢¥¦¥È(85/15) +2 +85%,15% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 85%¡¢15% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns9010 +2 Îó¥ì¥¤¥¢¥¦¥È(90/10) +2 +90%,10% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 90%¡¢10% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityTwoColumns955 +2 Îó¥ì¥¤¥¢¥¦¥È(95/5) +2 +95%,5% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 95%¡¢5% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ + + +VelocityThreeColumns +3 Îó¥ì¥¤¥¢¥¦¥È(33/33/33) +3 +33%,33%,33% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 33%¡¢33%¡¢33% Éý¤ò³ä¤êÅö¤Æ¤ë 3 Îóɽ¼¨¡£ + + +VelocityThreeColumns206020 +3 Îó¥ì¥¤¥¢¥¦¥È(20/60/20) +3 +20%,60%,20% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 20%¡¢60%¡¢20% Éý¤ò³ä¤êÅö¤Æ¤ë 3 Îóɽ¼¨¡£ + + +VelocityThreeColumns157015 +3 Îó¥ì¥¤¥¢¥¦¥È(15/70/15) +3 +15%,70%,15% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 15%¡¢70%¡¢15% Éý¤ò³ä¤êÅö¤Æ¤ë 3 Îóɽ¼¨¡£ + + +VelocityFourColumns +4 Îó¥ì¥¤¥¢¥¦¥È +4 +20%,30%,30%,20% +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 20%¡¢30%¡¢30%¡¢20% Éý¤ò³ä¤êÅö¤Æ¤ë 4 Îóɽ¼¨¡£ + + + +¥Ú¡¼¥¸¤Ø¤Î¥ì¥¤¥¢¥¦¥È¤ÎŬÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥ì¥¤¥¢¥¦¥È¤ÎÄɲÃÊýË¡} + +¿·¤·¤¤Îó¿ô¤Î¥ì¥¤¥¢¥¦¥È¤ò¿·µ¬¤ËÄɲ乤ë¾ì¹ç¤Ï¡¢¤½¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄêµÁ¤ò¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤ËÄɲ乤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¥¯¥é¥¹¤Ë¤Ï¡¢org.apache.jetspeed.portlets.layout.ActionLayoutPortlet ¤òÍøÍѤ·¤ÆÄêµÁ¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¤Þ¤¿¡¢javax.portlet.GenericPortlet ¤ò·Ñ¾µ¤·¤Æ¡¢Æȼ«¤Î¥ì¥¤¥¢¥¦¥È¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ + + +¤¿¤È¤¨¤Ð¡¢ActionLayoutPortlet ¤òÍøÍѤ·¤Æ¿·µ¬¤Ë¥ì¥¤¥¢¥¦¥È¤òÄɲ乤ë¾ì¹ç¤Ï°Ê²¼¤Î¤è¤¦¤ÊÄêµÁ¤òwebapps/palportal/WEB-INF/apps/jetspeed-layouts/WEB-INF/portlet.xml¤ËÄɲä·¤Þ¤¹¡£ + +\begin{screen} + +MyLayout +My Layout +»ä¤Î¥ì¥¤¥¢¥¦¥È + +ViewPage +columns + + +MaxPage +maximized + + +columns +2 + + +sizes +50%,50% + + +layoutType +TwoColumns + +org.apache.jetspeed.portlets.layout.ActionLayoutPortlet +org.apache.jetspeed.portlets.layout.resources.LayoutResource +0 + +text/html +view +edit +help + + + +Layout + + + +\end{screen} + +portlet-name ¤Ë¤ÏÄɲ乤ëǤ°Õ¤Î¥ì¥¤¥¢¥¦¥È¤Î ID ¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ +display-name ¤Ë¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤Çɽ¼¨¤µ¤ì¤ë¥ì¥¤¥¢¥¦¥È̾¤òµ­½Ò¤·¤Þ¤¹¡£ +display-name ¤Ç¤Ï¡¢xml:lang °À­¤òÍøÍѤ·¤Æ¡¢Ê£¿ô¤Î¸À¸ì¤Î¥ì¥¤¥¢¥¦¥È̾¤òÄɲ乤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ +init-param ¤Î columns ¤ÎÃͤˤÏÎó¿ô¤òµ­½Ò¤·¤Æ¡¢sizes ¤ÎÃͤËɽ¼¨¤µ¤ì¤ëº¸¤«¤é½çÈÖ¤ËÉý¤ò¥Ñ¡¼¥»¥ó¥È¤Ç»ØÄꤷ¤Þ¤¹¡£ +portlet-info ¤Î title Í×ÁǤˤϥ쥤¥¢¥¦¥È̾¤òµ­½Ò¤·¤Þ¤¹¡£ + + +portlet.xml ¤Ë¾åµ­¤Î portlet Í×ÁǤòÄɲø塢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¤¹¤ë¤È¡¢Äɲä·¤¿¥ì¥¤¥¢¥¦¥È¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +\subsection{¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë} + +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¡¢PAL¥Ý¡¼¥¿¥ëÆâ¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤½¤ì¤é¤Î¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤¬¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¡¢webapps/palportal/WEB-INF/templates/layout¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤½¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢Velocity ¤Ë¤è¤êµ­½Ò¤µ¤ì¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ÏÈÆÍÑŪ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¡¢¥Æ¥ó¥×¥ì¡¼¥È¸À¸ì¤È¤·¤Æ JSP ¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢É¸½à¤Ç¤Ï Velocity ¤Ë¤è¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ + + +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÀßÄê¾ðÊó¤Ë´ð¤Å¤¤¤Æ¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£ +¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î»ØÄêÊýË¡¤Ï¡¢webapps/palportal/WEB-INF/templates/layout¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¡¢\<¥á¥Ç¥£¥¢¥¿¥¤¥×\>/\<ViewPage\>/layout.vm ¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ï¥Ý¡¼¥¿¥ë¤¬¥¯¥é¥¤¥¢¥ó¥È¤Î¾ðÊó¤ò¸µ¤Ë·èÄꤵ¤ì¡¢ViewPage ¤Ï¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î portlet.xml ¤Ç»ØÄꤷ¤¿¾ðÊó¤òÍøÍѤ·¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥â¡¼¥É¤Ë¤è¤ê¡¢layout-\<ɽ¼¨¥â¡¼¥É\>.vm ¤Î¥Æ¥ó¥×¥ì¡¼¥È¤òÍøÍѤǤ­¤Þ¤¹¡£ + + +Îó¤òµ­½Ò¤·¤Æ¤¤¤ë HTML ¤òÊÔ½¸¤·¤¿¤¤¾ì¹ç¤Ï¡¢ÂоݤΠlayout.vm ¤òÊÔ½¸¤¹¤ë¤³¤È¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,46 @@ + + + + +\section{¥í¥°¥¤¥ó} + + + + + +\subsection{¥í¥°¥¤¥ó¤Î¥Ç¥¶¥¤¥ó¤Ë¤Ä¤¤¤Æ} + +¥í¥°¥¤¥ó²èÌ̤Îɽ¼¨¤Ë¤Ïwebapps/palportal/WEB-INF/templates/login¤ËÇÛÃÖ¤µ¤ì¤ë JSP ¥Õ¥¡¥¤¥ë¤Ë¤è¤ê HTML ¤¬À¸À®¤µ¤ì¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢¥í¥°¥¤¥ó²èÌ̤Υǥ¶¥¤¥ó¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ï¡¢JSP ¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë¤³¤È¤Ç¼«Í³¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥í¥°¥¤¥ó JSP ¥Õ¥¡¥¤¥ë} + +¥í¥°¥¤¥ó²èÌ̤Îɽ¼¨¤ËÍøÍѤµ¤ì¤ë JSP ¥Õ¥¡¥¤¥ë̾¤Ï login.jsp ¤Ë¤Ê¤ê¤Þ¤¹¡£ +login.jsp ¥Õ¥¡¥¤¥ë¤Ï¡¢»ØÄꤵ¤ì¤¿¥Æ¡¼¥Þ¤ä¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ê¤É¤Î¥¯¥é¥¤¥¢¥ó¥È´Ä¶­¤Ë¤è¤Ã¤Æ¡¢°Ê²¼¤Î½ç¤Ç¸¡º÷¤µ¤ì¤Þ¤¹¡£ + +\<theme\>/\<mediatype\>/\<language\>/\<country\>/login.jsp +\<theme\>/\<mediatype\>/\<language\>/login.jsp +\<theme\>/\<mediatype\>/login.jsp +\<theme\>/login.jsp +\<mediatype\>/\<language\>/\<country\>/login.jsp +\<mediatype\>/\<language\>/login.jsp +\<mediatype\>/login.jsp +login.jsp + +¾åµ­¤Î½ç¤Ë login.jsp ¤òõ¤·¤Æ¤¤¤­¡¢Â¸ºß¤·¤¿¤â¤Î¤òÍøÍѤ·¤Þ¤¹¡£ +\<theme\> ¤Ï¡¢http://\<hostname\>/palportal/login/proxy ¤Ø¤Î¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Ë¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æorg.apache.jetspeed.login.theme¤ÎÃͤȤ·¤ÆÅϤµ¤ì¤¿Ê¸»úÎó¤¬ÍøÍѤµ¤ì¤Þ¤¹¡£ +\<mediatype\>¡¢\<language\>¡¢\<country\> ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥¢¥¯¥»¥¹¤·¤¿¥¯¥é¥¤¥¢¥ó¥È¾ðÊ󤫤é¼èÆÀ¤·¤¿ÃͤòÍøÍѤ·¤Þ¤¹¡£ + + +\subsection{¥Ç¥¶¥¤¥ó¤ÎÄɲäÈÊѹ¹} + +Ä̾ï¤Î JSP ¥Õ¥¡¥¤¥ë¤ò¥Ç¥¶¥¤¥ó¤¹¤ëÊýË¡¤ÇºîÀ®¤ª¤è¤ÓÊѹ¹¤¬²Äǽ¤Ç¤¹¡£ + + +¥í¥°¥¤¥ó¾ðÊó¤Î¥Õ¥©¡¼¥à¤ÎÁ÷¿®ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢J2EE ¤Îǧ¾ÚÊýË¡¤Ë½¾¤¤¡¢j\_username ¤È j\_password ¤Ë¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ¤Æ¡¢j\_security\_check ¤ËÁ÷¿®¤·¤Þ¤¹¡£ +¥í¥°¥¤¥ó¤¬À®¸ù¤¹¤ë¤È¥í¥°¥¤¥ó¥ê¥À¥¤¥ì¥¯¥¿¡¼¤Ë¤è¤ê¥í¥°¥¤¥ó¸å¤Î¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Ø¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤ÏºÆÅÙ¥í¥°¥¤¥ó¥Ú¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,77 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿} + + + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ë¤Ä¤¤¤Æ} + +¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÏȤÎÉôʬ¤ä¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Î¥³¥ó¥Æ¥ó¥ÄÉôʬ¤Î¥¹¥¿¥¤¥ë¤Ê¤É¤òÄêµÁ¤¹¤ë¥Õ¥¡¥¤¥ë·²¤Ç¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸Æâ¤Î³Æ¥Ý¡¼¥È¥ì¥Ã¥È¤ËŬÍѲÄǽ¤Ê¥Ç¥¶¥¤¥ó¤Ç¤¹¡£ +¥Æ¥ó¥×¥ì¡¼¥È¸À¸ì¤Ë¤Ï Velocity ¤òÍѤ¤¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¥Æ¥ó¥×¥ì¡¼¥ÈÉôʬ¤òÈÆÍÑŪ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥Æ¥ó¥×¥ì¡¼¥È¸À¸ì¤Ë JSP ¤âÍøÍѲÄǽ¤Ç¤¹¤¬¡¢Velocity ¤òɸ½à¤Ç¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ + + +\subsection{¹½À®¥Õ¥¡¥¤¥ë} + +¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢webapps/palportal/decorations/portlet¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ +¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Þ¤¹¡£ + + +decorator.properties +css/styles.css +decorator.vm + + +¤¿¤À¤·¡¢decorator.vm¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ïwebapps/palportal/decorations/portlet/decorator.vm¤¬¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£ + + +´ðËÜŪ¤ÊÄêµÁÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ÈƱÍͤǤ¹¡£ + + +\subsection{¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥£¥ë} + +¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¡¢decorator.vm¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£ +¥Ç¥¶¥¤¥ó¤Ë´Ø¤¹¤ëµ­½ÒÊýË¡¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ÈƱÍͤǤ¹¡£ + + +decorator.vm¤Ç¤Ï¡¢Âбþ¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤ò½ÐÎϤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤Î½ÐÎϤˤϡ¢°Ê²¼¤Î¥³¡¼¥É¤Ç½ÐÎϤ·¤Þ¤¹¡£ + +\begin{screen} +\$f.renderedContent + +\end{screen} + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤ÎÄɲÃ} + +¿·µ¬¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤òÄɲä·¤¿¤¤¾ì¹ç¤Ï¡¢¾åµ­¤Î¥Õ¥¡¥¤¥ë·²¤òºîÀ®¤·¡¢webapps/palportal/decorations/portlet/\<mydesign\>°Ê²¼¤ËÇÛÃÖ¤¹¤ë¤³¤È¤Ç \<mydesign\> ¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£¥Ç¥³¥ì¡¼¥¿¤ÎÄɲäˤϡ¢¥Ý¡¼¥¿¥ë¤ÎºÆµ¯Æ°¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£ + + +Äɲä·¤¿¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼¤«¤éÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +ÀßÄêÊýË¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,62 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{PAL¥Ý¡¼¥¿¥ëÀßÄꥬ¥¤¥É} + + + + + +\subsection{ÂоÝÆɼÔ} + + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤ÎÀßÄê¤òôÅö¤¹¤ë¥æ¡¼¥¶¡¼¤òÂоݤˤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{¤ªÆɤߤˤʤëÁ°¤Ë} + + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¾ÜºÙ¤ÊÀßÄêÊýË¡¤ò¼¨¤·¤Æ¤¤¤ë¤¿¤á¡¢PAL¥Ý¡¼¥¿¥ë¤Î´ðÁÃŪ¤ÊÃ챤¬É¬Íפˤʤê¤Þ¤¹¡£ + + +\subsection{¥ª¥ó¥é¥¤¥ó¤Ç¤Î¥¢¥¯¥»¥¹} + + ¥À¥¦¥ó¥í¡¼¥É¡¢ÀìÌçŪ¥µ¡¼¥Ó¥¹¡¢¥µ¥Ý¡¼¥È¡¢¤½¤Î¾¤Î³«È¯¼Ô¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ +¥×¥í¥¸¥§¥¯¥È¥µ¥¤¥È:http://pal.sourceforge.jp/ + + +\subsection{µ»½ÑŪ¤Ê¥µ¥Ý¡¼¥È¤ÎÏ¢ÍíÀè} + + ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ +¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + +\subsection{´ØÏ¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ Web ¥µ¥¤¥È¤Î»²¾È} + + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤Î Web ¥µ¥¤¥È¤ÎÍ­¸úÀ­¤Ë¤Ä¤¤¤Æ¤ÏÀÕǤ¤ò»ý¤Á¤Þ¤»¤ó¡£ + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤òÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤Ë¤Ä¤¤¤Æ¡¢Êݾڡ¢ÀÕǤ¡¢µÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¤½¤Î¤è¤¦¤Ê¥µ¥¤¥È¤ä¥ê¥½¡¼¥¹¤ÈÄ̤¸¤Æ¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Æ¥ó¥Ä¡¢¹­¹ð¡¢À½ÉÊ¡¢¥µ¡¼¥Ó¥¹¡¢¤½¤Î¾¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤ò¡¢»ÈÍѤޤ¿¤Ï¿®ÍѤ·¤¿¤ê¡¢¤½¤ì¤Ë´ØÏ¢¤·¤ÆȯÀ¸¤Þ¤¿¤Ï¿½¤·Î©¤Æ¤é¤ì¤¿¡¢°ìÀڤλ½ý¤ä»³²¤ËÂФ·¤Æ¤ÏÀÕǤ¤Þ¤¿¤ÏµÁ̳¤òÉ餤¤Þ¤»¤ó¡£ + + +\subsection{¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤ÎÁ÷ÉÕÊýË¡} + + Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î²þÁ±¤ËÅؤá¤Æ¤ª¤ê¡¢ÆɼԤ«¤é¤Î¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤Ê¤É¤ò´¿·Þ¤·¤Æ¤¤¤Þ¤¹¡£ +¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,158 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥Ç¥£¥ì¥¯¥È¥ê¹½À®¤Ë¤Ä¤¤¤Æ} + + + + + +\subsection{¥Ç¥£¥ì¥¯¥È¥ê¹½À®¤Ë¤Ä¤¤¤Æ} + + ¤³¤³¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î¹½À®¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£¼ç¤Ë°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤È¤Ê¤ê¤Þ¤¹¡£ + ¤³¤ì¤é¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Î¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ê̤ʥڡ¼¥¸¤Ç¾Ü¤·¤¤ÀâÌÀ¤¬¤µ¤ì¤Þ¤¹¡£ + + + +webapps/palportal + + + +decorations + + + + +layout + + + + +portlet + + + + + + +WEB-INF + + + + +assembly + + + + +deploy + + + + +lib + + + + +logs + + + + +pages + + + + +templates + + + + + + + + +\subsection{webapps/palportal/decorations} + + ²èÌ̥ǥ¶¥¤¥ó¤Ë´Ø¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ËÃÖ¤«¤ì¤Þ¤¹¡£ + PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ç¥¶¥¤¥ó¤ò¥Ç¥³¥ì¡¼¥¿¤È¸Æ¤Ð¤ì¤ëñ°Ì¤Ç°·¤¤¤Þ¤¹¡£ + + + + ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ + ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï²èÌ̤μþÊÕÉôʬ¤Î¥Ç¥¶¥¤¥ó¤Ë´Ø¤¹¤ë¥Õ¥¡¥¤¥ë·²¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + ¥Ç¥£¥ì¥¯¥È¥ê̾¤¬¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿Ì¾¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢simple ¤È¤¤¤¦¥Ç¥³¥ì¡¼¥¿Ì¾¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤Ïlayout/simple¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ + + + ²èÌ̤μþÊÕÉôʬ¤Î¥Ç¥¶¥¤¥ó¤òÄɲä·¤¿¤¤¾ì¹ç¡¢¤³¤Îlayout¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤³¤È¤ÇÄɲ䬲Äǽ¤Ç¤¹¡£¾Ü¤·¤¤ÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¡×¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ + + + + + ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤Ë´Ø¤¹¤ë¥Õ¥¡¥¤¥ë·²¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + ¥Ç¥£¥ì¥¯¥È¥ê̾¤¬¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Ì¾¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢simple ¤È¤¤¤¦¥Ç¥³¥ì¡¼¥¿Ì¾¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤Ïportlet/simple¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤¤¤Þ¤¹¡£ + + + ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤òÄɲä·¤¿¤¤¾ì¹ç¡¢¤³¤Îportlet¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤³¤È¤ÇÄɲ䬲Äǽ¤Ç¤¹¡£¾Ü¤·¤¤ÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¡×¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ + + + +\subsection{webapps/palportal/WEB-INF} + + + PAL¥Ý¡¼¥¿¥ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤È¤·¤Æ Spring ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ + Spring ¥¨¥ó¥¸¥ó¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë assembly °Ê²¼¤Î xml ¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£ + + + + + deploy ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤òÃÖ¤¯¤³¤È¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤Ï¼«Æ°ÇÛÈ÷¤µ¤ì¤Þ¤¹¡£ + + + + + PAL¥Ý¡¼¥¿¥ë¤¬»ÈÍѤ¹¤ë jar ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹¡£ + + + + + ¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ç¤Ï¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥í¥°¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£¥í¥°¤Î½ÐÎϤΥì¥Ù¥ë¤ä½ÐÎÏÀè¥Ç¥£¥ì¥¯¥È¥ê¤Ï/WEB-INF/conf/Log4j.properties¤òÊѹ¹¤¹¤ë¤³¤È¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£ + + + + + ³Æ¥æ¡¼¥¶¤Î¥Ú¡¼¥¸¾ðÊó¤¬ÃÖ¤«¤ì¤Þ¤¹¡£ + + + + + ¥í¥°¥¤¥ó¥Ú¡¼¥¸¤ä¡¢¥¨¥é¡¼¥Ú¡¼¥¸¤Ê¤É¡¢¶¦Ä̤·¤Æ»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ËÃÖ¤«¤ì¤Þ¤¹¡£ + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,93 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ä¤¤¤Æ} + + + + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ë¤Î³µÍ×} + + ËܾϤǤϥ¤¥ó¥¹¥È¡¼¥ë´ØÏ¢¤Î¾ðÊó¤òÄ󶡤·¤Þ¤¹¡£ + + +\subsection{¥·¥¹¥Æ¥àÍ×·ï} + + + +JDK(TM) 5 °Ê¾å +1 GHz °Ê¾å¤Î 32 ¥Ó¥Ã¥È¤Þ¤¿¤Ï 64 ¥Ó¥Ã¥È¥×¥í¥»¥Ã¥µ¤ò¿ä¾© +512 MB °Ê¾å¤Î¥á¥â¥ê¡¼ +100 MB °Ê¾å¤Î¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹ + + + + + + PAL¥Ý¡¼¥¿¥ë¤Ï 100% Pure Java(TM) ¤Î¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Ç¤¹¡£ + ¤Ç¤¹¤Î¤Ç¡¢Linux¡¢Windows¡¢Unix¡¢Mac OS X ¤Ê¤É Java Virtual Machine(JVM(TM)) ¤¬Æ°ºî¤¹¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ÇÆ°ºî²Äǽ¤Ç¤¹¡£ + + + + + PAL¥Ý¡¼¥¿¥ë¤Ï Java ¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æ°ºî²Äǽ¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¾å¤Ç²ÔƯ¤·¤Þ¤¹¡£ + ÍÍ¡¹¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤µ¡¼¥Ð¡¼¤ÇÆ°ºî²Äǽ¤Ç¤¹¤¬¡¢°Ê²¼¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤ÇÆ°ºî³Îǧ¤ò¤·¤Æ¤¤¤Þ¤¹¡£ + +Tomcat 5.5 +JBoss AS 4.0/4.2 +WebLogic Server 9.2/10 +GlassFish 2 + + + + + + PAL¥Ý¡¼¥¿¥ë¤Ï¥Ý¡¼¥¿¥ëÆâ¤Î¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òɬÍפȤ·¤Þ¤¹¡£ + ÍÍ¡¹¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢°Ê²¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÇÆ°ºî³Îǧ¤ò¤·¤Æ¤¤¤Þ¤¹¡£ + +Derby +Oracle +MySQL +Postgres +HSQL + + ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀܳ¤Ë´Ø¤·¤Æ¤Ï¡¢Apache DB Project ¤Î OJB (http://db.apache.org/ojb/) ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ + + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÊýË¡} + + PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¤ª¤è¤Ó¥¢¥Ã¥×¥°¥ì¡¼¥É¥¤¥ó¥¹¥È¡¼¥ë¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + ¤Þ¤¿¡¢¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤Ï¡¢Tomcat 5.5 ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤ò¾Êά¤¹¤ë¤Ê¤É¤Î¥ª¥×¥·¥ç¥ó¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + ¾Ü¤·¤¤¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ë´Ø¤·¤Æ¤Ï¡¢¡Ö¥¤¥ó¥¹¥È¡¼¥ë¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥¤¥ó¥¹¥È¡¼¥ëÆâÍÆ} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Apache Portals ¤Î Jetspeed 2 (http://portals.apache.org/jetspeed-2/) ¥Ù¡¼¥¹¤Î¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Ç¤¹¡£ + ¤Ç¤¹¤Î¤Ç¡¢É¸½à¤Î¿·µ¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤Ï¡¢Tomcat 5.5 ¤È¶¦¤Ë PAL¥Ý¡¼¥¿¥ë¤È¤·¤Æ¥«¥¹¥¿¥Þ¥¤¥º¤µ¤ì¤¿ Jetspeed 2 ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + ¤Þ¤¿¡¢PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢´ÉÍý¥Ä¡¼¥ë¤È¤·¤Æ pal-admin ¥Ý¡¼¥È¥ì¥Ã¥È¤È pal-wcm ¥Ý¡¼¥È¥ì¥Ã¥È¤¬ PAL ¥Ý¡¼¥¿¥ë¤Î½é²óµ¯Æ°»þ¤ËÇÛÈ÷¤µ¤ì¤Þ¤¹¡£ + + +JSR 168 ½àµò¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÄɲäÇÇÛÈ÷¤·¤¿¤¤¾ì¹ç¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ë¡Ö¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¡×²èÌ̤«¤éÇÛÈ÷¤¹¤ë¤«¡¢webapps/palportal/WEB-INF/deploy ¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,322 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥¢¡¼¥­¥Æ¥¯¥Á¥ã} + + + + + +\subsection{¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤Ä¤¤¤Æ} + + ¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Ï°ì¤Ä¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¹¡£ + ¤½¤Î¤¿¤á¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤òÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤¬É¬Íפˤʤê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/portal-layer.eps} +\caption{TBD} +\label{fig:portal-layer} +\end{center} +\end{figure} + + + ¥Ý¡¼¥È¥ì¥Ã¥È¤âƱÍͤ˰ì¤Ä¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¤Ï¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤ËÂФ·¤ÆÇÛÈ÷¤ò¼Â¹Ô¤·¤Þ¤¹¤¬¡¢ºÇ½ªÅª¤Ë¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¾å¤ËÇÛÈ÷¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¥¯¥é¥¤¥¢¥ó¥È¤«¤é¤Î¥¢¥¯¥»¥¹¤Ï¡¢Ä̾ï¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÈƱÍͤ˥ݡ¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¸å¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤«¤é¥Ý¡¼¥È¥ì¥Ã¥È¤Ø¤Î¥¯¥í¥¹¥³¥ó¥Æ¥­¥¹¥È¤Î¥¢¥¯¥»¥¹¤Ë¤è¤ê¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤ò¼èÆÀ¤·¡¢¤½¤Î·ë²Ì¤ò½¸Ì󤷤ơ¢¥¯¥é¥¤¥¢¥ó¥È¤Ø½ÐÎϤ·¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥¿¥ëÆâ¤Î½èÍý} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥Ñ¥¤¥×¥é¥¤¥ó½èÍý¤Ë´ð¤Å¤¤¤Æ¡¢¥æ¡¼¥¶¡¼¤«¤é¤Î¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/j2-overview.eps} +\caption{TBD} +\label{fig:j2-overview} +\end{center} +\end{figure} + + + ¥¯¥é¥¤¥¢¥ó¥È¤«¤é¤Î¥¢¥¯¥»¥¹¤¬¤¢¤ë¤È¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼Æâ¤Ç¤Ï¤½¤Î¥ê¥¯¥¨¥¹¥È¤ò RequestContext ¤È¤¤¤¦¥¤¥ó¥¹¥¿¥ó¥¹¤È¤·¤Æ°·¤¤¤Þ¤¹¡£ + ¤½¤Î RequestContext ¤ò Spring ¤ÇÀßÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Ð¥ë¥Ö¤Ë½ç¤ËÅϤ·¤Æ½èÍý¤·¤Æ¤¤¤­¤Þ¤¹¡£ + ¤½¤ÎÃæ¤Ç¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤ò¸Æ¤Ó½Ð¤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ò½èÍý¤·¤Þ¤¹¡£ + ½èÍý¤Î½ªÎ»¸å¡¢¤½¤Î·ë²Ì¤ò½¸Ì󤷤ơ¢¥¯¥é¥¤¥¢¥ó¥È¤Ø½ÐÎϤ·¤Þ¤¹¡£ + + +\subsection{¹½À®¥³¥ó¥Ý¡¼¥Í¥ó¥È} + +PAL¥Ý¡¼¥¿¥ë¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ÏMartin Fowler¤Ë¤è¤Ã¤Æ°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë´ð¤Å¤¤¤Æ¹½ÃÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤¤¤¦¸ÀÍդϡ¢Êѹ¹¤Ê¤·¤Ë¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îºî¼Ô¤Î´ÉÍý¤«¤é³°¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æ»È¤ï¤ì¤ë¤³¤È¤ò°Õ¿Þ¤·¤¿¥½¥Õ¥È¥¦¥§¥¢·²¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£ +¡ÖÊѹ¹¤Ê¤·¤Ë¡×¤È¤¤¤¦¸ÀÍդϡ¢¥æ¡¼¥¶¡¼¤¬¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îºî¼Ô¤Ë¤è¤Ã¤Æµö¤µ¤ì¤¿ÊýË¡¤Ç¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò³ÈÄ¥¤·¡¢¤½¤ÎÆ°ºî¤òÊѲ½¤µ¤»¤ë¤³¤È¤Ï¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤±¤ì¤É¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò»È¤¦¾ì¹ç¤Ë¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥½¡¼¥¹¥³¡¼¥É¤òÊѤ¨¤ë¤³¤È¤Ê¤¯¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò»È¤¦¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ + + + +PAL¥Ý¡¼¥¿¥ë¤Ï¥×¥í¥°¥é¥ß¥ó¥°¤Î¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤È¹½Â¤¾å¤Î¥â¥Ç¥ë¤È¤·¤Æ¡¢°Í¸À­ÃíÆþ¤ò»È¤¤¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢¸ø³«¤µ¤ì¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ̤·¤ÆÃê¾Ý²½¤Î¥ì¥Ù¥ë¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Ç¤¢¤ê¡¢¤½¤·¤Æ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼ÂÁõ¤Ë¤ª¤±¤ë°Í¸À­¤ò¤Ê¤¯¤¹¤¿¤á¤Ç¤¹¡£ +¤³¤Î¹½Â¤¤Ï¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¤½¤ì¼«¿È¤È¥ê¥ó¥¯¤·¤¿¤ê¡¢¤ª¸ß¤¤¤Ë¥ê¥ó¥¯¤¹¤ë¹½Â¤¤Ç¤Ê¤¯¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È·ë¹ç¤·¤Þ¤¹¡£ +°Í¸À­ÃíÆþ¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤ä¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥ó¥¯¤Îµ¡Ç½¤ò¥ª¥Ö¥¸¥§¥¯¥È¼«¿È¤«¤éºï½ü¤·¡¢¥Õ¥¡¥¯¥È¥ê¤Ø°Ü¤·¤¿¥Ñ¥¿¡¼¥ó¤Ç¤¹¡£ +¤½¤ì¤æ¤¨¡¢°Í¸À­ÃíÆþ¤ÏÌÀ¤é¤«¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤È¥ê¥ó¥¯¤ÎÀ©¸æ¤òȿž¤µ¤»¤Æ¤ª¤ê¡¢Inversion of Controls(À©¸æ¤Îȿž, IOC) ¤Î·Á¤Ç¤¢¤ë¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + +PAL¥Ý¡¼¥¿¥ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤È¤·¤ÆSpring ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¤·¤«¤·¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò¡¢¤¿¤È¤¨¤ÐPico¤Î¤è¤¦¤ÊÂåÂزÄǽ¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ËÍưפËÃÖ¤­´¹¤¨¤ë¤³¤È¤¬²Äǽ¤Ê¹½Â¤¤ò¤·¤Æ¤¤¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ÎÁȤßΩ¤Æ¤ÏJetspeedServletÆâ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +\begin{figure}[ht] +\begin{center} +\includegraphics{images/jetspeedservlet-c.eps} +\caption{TBD} +\label{fig:jetspeedservlet-c} +\end{center} +\end{figure} + + +JetspeedServlet¤Ïµ¯Æ°»þ¤Î¥í¡¼¥É¤Î¤¿¤á¤Ë¥Ý¡¼¥¿¥ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îweb.xml¤ÇÀßÄꤵ¤ì¤Þ¤¹¡£ +initializeComponentManager¥á¥½¥Ã¥É¤ÏÍ¿¤¨¤é¤ì¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È·²¤ò¥í¡¼¥É¤·¤Þ¤¹¡£ +initializeComponentManager¤Î¥Ç¥Õ¥©¥ë¥È¤Î¼ÂÁõ¤Ï¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤È¤·¤ÆSpring ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +¤½¤·¤Æ Spring ¥¨¥ó¥¸¥ó¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ëwebapps/palportal/WEB-INF/assembly°Ê²¼¤Î xml ¥Õ¥¡¥¤¥ë¤ò²ò¼á¤·¤Þ¤¹¡£ +JetspeedEngine¤ÏŬÀڤʥ³¥ó¥Ý¡¼¥Í¥ó¥È¥Þ¥Í¡¼¥¸¥ã¤ò»È¤Ã¤Æ¹½À®¤µ¤ì¤Þ¤¹¡£ +\begin{screen} +engine = new JetspeedEngine(properties, applicationRoot, config, + initializeComponentManager(config, applicationRoot, properties)); + +\end{screen} + + +¾¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¤Ï¡¢³«È¯¼Ô¤ÏinitializeComponentManager¤Î¼ÂÁõ¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + + +¥¯¥é¥¤¥¢¥ó¥È¼±ÊÌ - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-capability + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +Capabilities + +Capabilities¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¥¯¥é¥¤¥¢¥ó¥È¤ò¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤ë MIME ¥¿¥¤¥×¤ä¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ë¥Þ¥Ã¥×¤·¤Þ¤¹¡£¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏCapabilityMap¤òÀ¸À®¤·¤Þ¤¹¡£CapabilityMap¤Ï¥Ý¡¼¥¿¥ë¥¨¥ó¥¸¥ó¤òÄ̤·¤Æ¡¢ÂоݤȤʤ륯¥é¥¤¥¢¥ó¥ÈÍѤ˥ݡ¼¥¿¥ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ + + + + + +¥³¥ó¥Ý¡¼¥Í¥Ã¥È¥Þ¥Í¡¼¥¸¥ã - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-cm + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +ComponentManager + +ComponentManager¤Ï¡¢»ÈÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Î¥È¥Ã¥×¤Ë°ÌÃÖ¤¹¤ëÃê¾ÝŪ¤Êɸ½à¥ì¥¤¥ä¡¼¤òÄ󶡤·¤Þ¤¹¡£PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÎComponentManager¤Î¼ÂÁõ¤ÏSpringComponentManager¤Ç¤¹¡£ + + + + + + +ÇÛÈ÷¥Ä¡¼¥ë - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-deploy-tools + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +JetspeedDeploy + +JetspeedDeploy¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÇÛÈ÷¤µ¤ì¤ëÁ°¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î½àÈ÷¤ò¤·¤Þ¤¹¡£ + + + +DeploymentManager + +DeploymentManager¤ÏÇÛÈ÷¤µ¤ì¤ë¿·¤·¤¤¥Ý¡¼¥¿¥ë»ñ»º (¥Ý¡¼¥È¥ì¥Ã¥È¤ä¥Ç¥³¥ì¡¼¥¿) ¤òÂÔµ¡¤·¤Þ¤¹¡£ + + + + + +¥Ý¡¼¥¿¥ë - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-portal + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +Pipeline + +Pipeline¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥ê¥¯¥¨¥¹¥È¤ÇºÇ¾®Ã±°Ì¤ÎÆ°ºî¤Ç¤¢¤ëValve¤òÅý¹ç¤·¤Þ¤¹¡£ + + + + + +¥×¥ê¥Õ¥¡¥ì¥ó¥¹ - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-prefs + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +PreferencesProvider + +PreferencesProvider¤Ï PAL¥Ý¡¼¥¿¥ë¤Îjava.util.PreferencesAPI ¤Î¼ÂÁõ¤Ç¤¹¡£ + + + + + +RDBMS - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-rdbms + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +ConnectionRepositoryEntry + +ConnectionRepositoryEntry¤Ï PAL¥Ý¡¼¥¿¥ë¤Îjava.util.PreferencesAPI ¤Î¼ÂÁõ¤Ç¤¹¡£ + + + +InitablePersistenceBrokerDaoSupport + +InitablePersistenceBrokerDaoSupport¤Ï PAL¥Ý¡¼¥¿¥ë¤Ë¤ª¤¤¤Æ¥Ç¡¼¥¿¥¢¥¯¥»¥¹¤È±Ê³À­¤Î¥µ¥Ý¡¼¥È¤òÄ󶡤·¤Þ¤¹¡£ + + + + + +¥»¥­¥å¥ê¥Æ¥£ - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-security + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +DefaultLoginModule + +RdbmsPolicy + + +PAL¥Ý¡¼¥¿¥ë¤Ë¤ª¤±¤ëJAAS ¥µ¡¼¥Ó¥¹¤Î¥Ç¥Õ¥©¥ë¥È¤Î¼ÂÁõ¡£PAL¥Ý¡¼¥¿¥ë¤Ï¥Ý¡¼¥¿¥ë¥¨¥ó¥¸¥ó¤Ë¥»¥­¥å¥ê¥Æ¥£¤Îµ¡Ç½¤ò¸ø³«¤¹¤ë¤¿¤á¤Îɸ½à¤Î¥»¥­¥å¥ê¥Æ¥£¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤È¤·¤Æ JAAS ¤òÍøÍѤ·¤Þ¤¹¡£JAAS ¥µ¡¼¥Ó¥¹¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥»¥­¥å¥ê¥Æ¥£ SPI ¤òÄ̤·¤ÆÆÃÄê¤Î¼ÂÁõ¤¬Ä󶡤µ¤ì¤ë¤¿¤á¤Ë PAL¥Ý¡¼¥¿¥ë¤ÎÁƤ¤Ã±°Ì¤Î¥µ¡¼¥Ó¥¹¤òÍøÍѤ·¤Þ¤¹¡£ + + + + +UserManager + +RoleManager + +GroupManager + +PermissionManager + +PAL¥Ý¡¼¥¿¥ë¤Î¥»¥­¥å¥ê¥Æ¥£´ÉÍý API ¤ò¸ø³«¤¹¤ëÁƤ¤Ã±°Ì¤Î¥»¥­¥å¥ê¥Æ¥£¥³¥ó¥Ý¡¼¥Í¥ó¥È + + + +UserSecurityHandler + +CredentialHandler + +GroupSecurityHandler + +RoleSecurityHandler + +SecurityMappingHandler + +ÆÃÄê¤Î¼ÂÁõ¤ò PAL¥Ý¡¼¥¿¥ë¤Î¥»¥­¥å¥ê¥Æ¥£¥¨¥ó¥¸¥ó¤Ë¸ø³«¤¹¤ëºÙ¤«¤¤Ã±°Ì¤Î¥»¥­¥å¥ê¥Æ¥£ SPI ¥³¥ó¥Ý¡¼¥Í¥ó¥È¡£¤³¤Î»ÅÁȤߤϹâ¥ì¥Ù¥ë¤Î¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤Ë±Æ¶Á¤¹¤ë¤³¤È¤Ê¤¯¡¢Ê£¿ô¤Î¥»¥­¥å¥ê¥Æ¥£¼ÂÁõ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë½ÀÆð¤Ê¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òÄ󶡤·¤Þ¤¹¡£ + + + +\if0 + + +¸¡º÷ - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-search + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +SearchEngine + +SearchEngine¤ÏApache Lucene¥µ¡¼¥Á¥¨¥ó¥¸¥ó¤È¤ÎÅý¹ç¤ò¹Ô¤¤¤Þ¤¹¡£ + + + +HandlerFactory + +HandlerFactory¤ÏSearchEngine¤ËÂФ·¤Æ¥É¥­¥å¥á¥ó¥È¥Ï¥ó¥É¥é¤ò¸ø³«¤·¤Þ¤¹¡£ + + + +\fi + + +Åý·× - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-statistics + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + + +PortalStatistics + +PortalStatistics¤Ï¥Ç¡¼¥¿¤Î¥³¥ì¥¯¥·¥ç¥ó¤È¥Ç¡¼¥¿¤Î¸¡º÷¤Î¤¿¤á¤Î PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¡¼¥¿¥³¥ì¥¯¥·¥ç¥ó API ¤Ç¤¹¡£ + + + +BatchedStatistics + +BatchedStatistics¤ÏÍ¿¤¨¤é¤ì¤¿´ü´Ö¤ÎÅý·×¥Ç¡¼¥¿¤Î¥Ð¥Ã¥Á¥³¥ì¥¯¥·¥ç¥ó¤ËÂФ¹¤ë½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ + + + +AggregateStatistics + +StatisticsQueryCriteria + +AggregateStatistics¤Ï¡¢StatisticsQueryCriteria¤¬Ä󶡤¹¤ëÆÃÄê¤Î¥¤¥Ù¥ó¥È¤È¸¡º÷´ð½à¤ËÂФ¹¤ë½¸Ìó¥Ý¡¼¥¿¥ë¥Ç¡¼¥¿¤òÄ󶡤¹¤ë¤¿¤á¤Ë¡¢PortalStatistics¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤ä¤ê¤È¤ê¤ò¹Ô¤¤¤Þ¤¹¡£ + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,77 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + +\subsection{¥Ý¡¼¥¿¥ë¤Ë¤Ä¤¤¤Æ} + +¥Ó¥¸¥Í¥¹¤ËɬÍפʾðÊ󤬴ë¶È¤ÎÆâ³°¤Ë»¶ºß¤·¡¢¤½¤Î¾ðÊóÎ̤ÏÆü¡¹Áý¤¨Â³¤±¤Æ¤¤¤ëº£Æü¤Ë¤ª¤¤¤Æ¡¢¾ðÊó¤òÍưפ˸¡º÷¡¦¶¦Í­¤Ç¤­¤ë´Ä¶­¤òÀ°¤¨¡¢À¸»ºÀ­¤ò¹â¤á¡¢Åª³Î¤Ç¿×®¤Ê¥Ó¥¸¥Í¥¹¤ò¤¹¤ë¤³¤È¤Ïº£Æü¤Î²ÝÂê¤Ç¤¹¡£ +¤½¤Î¸½¼ÂŪ¤Ê²ò¤Î°ì¤Ä¤È¤·¤Æ¡¢´ë¶È¥Ý¡¼¥¿¥ë¡ÊEnterprise Information Portal¡§EIP¡Ë¤¬ÃíÌܤò½¸¤á¤Æ¤¤¤Þ¤¹¡£ + + +´ë¶È¾ðÊó¥Ý¡¼¥¿¥ë¤òƳÆþ¤¹¤ë¤³¤È¤Ç¡¢´ë¶ÈÆâ³°¤Ë»¶ºß¤¹¤ëÍÍ¡¹¤Ê¥ê¥½¡¼¥¹¤ò 1 ²Õ½ê¤ËÅý¹ç¤·¡¢ÍøÍѼԤËŬ¤·¤¿·ÁÂ֤ǥµ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢´ë¶È¾ðÊó¥Ý¡¼¥¿¥ë¤È¤·¤Æ¡¢ÍøÍѼԤËɬÍפȤ·¤Æ¤¤¤ë¥µ¡¼¥Ó¥¹¤ò¿×®¤ËÄ󶡤·¡¢½¸Ì󤵤줿¥ê¥½¡¼¥¹¤òºÇÂç¸Â¤ËÍøÍѤǤ­¤ë´Ä¶­¤ò¹½ÃÛ¤·¤Þ¤¹¡£ +¤Þ¤¿¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥ª¡¼¥×¥ó¤Ê»ÅÍͤ˴ð¤Å¤­¡¢Å¬Àڤʥ¢¡¼¥­¥Æ¥¯¥Á¥ã¤ÇÀ߷פµ¤ì¤Æ¤¤¤ë¤¿¤á¡¢³«È¯ºî¶È¤«¤éÇÛÈ÷¡¦±¿ÍѤ˻ê¤ë¡¢¤¹¤Ù¤Æ¤Îºî¶È¤¬Íưפ˹Ԥ¦¤³¤È¤¬¤Ç¤­¡¢¥³¥¹¥Èºï¸º¤äÀ¸»ºÀ­¤ò¸þ¾å¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Apache Software Foundation ¤Ë¤Æ³«È¯¤ò¤µ¤ì¤Æ¤¤¤ë¡¢´ë¶È¾ðÊó¥Ý¡¼¥¿¥ë¤Î¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î¼ÂÁõ Jetspeed 2 ¤ò¥Ù¡¼¥¹¤È¤·¤Æ¹½ÃÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤½¤Î¤¿¤á¡¢´ë¶È¥Ý¡¼¥¿¥ë¤Î´ðÈפȤʤëÉôʬ¤Î³«È¯¤Ï¿¤¯¤Î³«È¯¼Ô¤Ë¤è¤ê¡¢Å¬ÀڤʻÅÍͤ˴ð¤Å¤­¡¢½ÀÆð¤Ç³ÈÄ¥¤¬²Äǽ¤ÊÀ߷פ¬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ +½ÀÆð¤Ëµ¡Ç½¤ò³ÈÄ¥¤äÊѹ¹¤¬¤Ç¤­¤ë¤Î¤Ç¡¢PAL¥Ý¡¼¥¿¥ë¤Ï´ë¶ÈÆâ¥Ý¡¼¥¿¥ë¤Ë¸Â¤é¤º¡¢¥ª¥ó¥é¥¤¥ó¥·¥ç¥Ã¥×¤ä SNS ¤Ê¤É¤ÎÍÍ¡¹¤Ê¥æ¡¼¥¶¡¼¥Ý¡¼¥¿¥ë¹½ÃÛ¤ËÂбþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢1 ¤Ä¤Î¥µ¥¤¥È¤òÄ̤·¤Æ¡¢¥¨¥ó¥É¥æ¡¼¥¶¤Ø¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ó¥¹¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¾ðÊó¤ä¤½¤Î¾¤ÎÍøÍѲÄǽ¤Ê¥Ç¡¼¥¿¥½¡¼¥¹¤òÄ󶡤Ǥ­¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢³ÆÍøÍѼԤØÄ󶡤µ¤ì¤ë¾ðÊó¤äµ¡Ç½¤¬¡¢ÍøÍѼԤޤ¿¤ÏÍøÍѼԤ¬Â°¤¹¤ëÌò³ä¤ò¸µ¤Ë¥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ê¥»¥­¥å¥ê¥Æ¥£´ðÈפòÄ󶡤·¤Þ¤¹¡£ +ÍøÍѼԤϡ¢¥¦¥§¥Ö¥Ö¥é¥¦¥¶¤ä·ÈÂÓÅÅÏäʤɤο¤¯¤Î¥Ç¥Ð¥¤¥¹¤Ç¡¢¥Ý¡¼¥¿¥ë¤Ø¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤Ä¤¤¤Æ} + + ¥Ý¡¼¥¿¥ë¾å¤Ç¤Ï¡¢ÍÍ¡¹¤Ê¥³¥ó¥Æ¥ó¥Ä¤ò½¸Ì󤹤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¤¬¤½¤Î½¸Ì󤵤줿¥³¥ó¥Æ¥ó¥Ä¤Î°ìÉô¤ò·ÁÀ®¤·¤Þ¤¹¡£ + + + ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢Java ¥Ù¡¼¥¹¤Î UI ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£ + ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤Ç¥³¥ó¥Æ¥ó¥Ä¤Î°ìÉô¤òÀ¸À®¤¹¤ë¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤Ê¤ê¤Þ¤¹¡£ + ¤Ç¤¹¤Î¤Ç¡¢¥Ý¡¼¥¿¥ë¤ò²ÔƯ¤µ¤»¤¿¤Þ¤Þ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤Þ¤¿¤ÏÇÛÈ÷²ò½ü¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢Java ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Îɸ½à»ÅÍͤǤ¢¤ë JSR 168 ¤Ë½àµò¤·¤¿¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Ç¤¹¡£ + ¤Ç¤¹¤Î¤Ç¡¢Â¾¥Ù¥ó¥À¡¼¤Î¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¾å¤ÇÆ°ºî¤·¤Æ¤¤¤ë JSR 168 ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤âÇÛÈ÷¤·¤Æ¡¢Æ°ºî¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥ÈAPI 1.0 (JSR 168)} + + ¥Ý¡¼¥È¥ì¥Ã¥ÈAPI 1.0 (JSR 168) ¤Ï¡¢Java Community Process (http://jcp.org/) ¤Ë¤è¤êÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Îɸ½à»ÅÍͤˤʤê¤Þ¤¹¡£ + °Ê²¼¤Î¤³¤È¤Ê¤É¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ + +¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼Â¹Ô´Ä¶­¤òÄêµÁ +¥³¥ó¥Æ¥Ê¤È¥Ý¡¼¥È¥ì¥Ã¥È´Ö¤ÎAPI¤òÄêµÁ +¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤òÊݸ¤¹¤ëµ¡Ç½¤òÄêµÁ +¥µ¡¼¥Ö¥ì¥Ã¥È¤äJSP¤ò¸Æ¤Ó½Ð¤· +¥Ñ¥Ã¥±¡¼¥¸¥ó¥°ÊýË¡¤òÄêµÁ + +JSR 168 ¤ÎÅоì¤Ë¤è¤Ã¤Æ¡¢¥Ù¥ó¥À¡¼´Ö¤ò±Û¤¨¤¿ UI ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¤ä¤ê¤È¤ê¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,59 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{´ÉÍý¥Ä¡¼¥ë} + + + + + +\subsection{´ÉÍý¥Ä¡¼¥ë¤Ë¤Ä¤¤¤Æ} + + PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¡¢pal-admin ¥Ý¡¼¥È¥ì¥Ã¥È¤ª¤è¤Ó pal-wcm ¥Ý¡¼¥È¥ì¥Ã¥È¤Î 2 ¤Ä¤¬½é²óµ¯Æ°»þ¤ËÇÛÈ÷¤µ¤ì¤Þ¤¹¡£pal-admin ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¤ä¥µ¥¤¥È¤ò´ÉÍý¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È·²¤òÄ󶡤·¤Þ¤¹¡£pal-wcm ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤Ç¤­¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤òÄ󶡤·¤Þ¤¹¡£ + + +\subsection{pal-admin ¥Ý¡¼¥È¥ì¥Ã¥È} + + pal-admin ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï°Ê²¼¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´Þ¤ß¤Þ¤¹¡£ + +¥æ¡¼¥¶¡¼´ÉÍý: ¥æ¡¼¥¶¡¼¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¤Î´ÉÍý¥Ä¡¼¥ë¤Ç¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý: ¥Ý¡¼¥¿¥ëÆâ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´ÉÍý¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£ +¥æ¡¼¥¶¡¼ÅÐÏ¿: Ǥ°Õ¤Î¥æ¡¼¥¶¡¼¤«¤é¤Î¥æ¡¼¥¶¡¼ÅÐÏ¿¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹Ô: Ǥ°Õ¤Î¥æ¡¼¥¶¡¼¤«¤é¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹ÔÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼: ¥Ý¡¼¥¿¥ëÆâ¤Î¥µ¥¤¥È¤ò´ÉÍý¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£ +¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹: ¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹Í×µá¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¥¨¥Ç¥£¥¿¡¼: ¥ê¥½¡¼¥¹¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÊÔ½¸¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) +¥»¥­¥å¥ê¥Æ¥£À©Ì󥨥ǥ£¥¿¡¼: ¥»¥­¥å¥ê¥Æ¥£À©Ìó¤òÀßÄꤹ¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) +¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¥¨¥Ç¥£¥¿¡¼: ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤òÀßÄꤹ¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) + + ÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{pal-wcm ¥Ý¡¼¥È¥ì¥Ã¥È} + + pal-wcm ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï°Ê²¼¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´Þ¤ß¤Þ¤¹¡£ + +WCM¥Ó¥å¡¼¥¢¡¼: ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +WCM¥¨¥Ç¥£¥¿¡¼: ɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤òÊÔ½¸¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ + + ÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,39 @@ + + + + +\section{ÇÛÈ÷} + + + + + +\subsection{ÇÛÈ÷¤Ë¤Ä¤¤¤Æ} + +¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¤Ï¡¢¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÇÛÈ÷¤ÈƱÍͤˡ¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤ò¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÇÛÈ÷¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢GUI ¤Ë¤è¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¤È CLI ¤Ë¤è¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÈ÷¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +¤É¤Á¤é¤ÎÁàºî¤â¡¢PAL¥Ý¡¼¥¿¥ë¤ÎºÆµ¯Æ°¤Ê¤ÉɬÍפʤ¯¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{GUI ¤Ë¤è¤ëÇÛÈ÷} + +¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥Ö¥é¥¦¥¶¾å¤«¤é¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +ÇÛÈ÷¼ê½ç¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{CLI ¤Ë¤è¤ëÇÛÈ÷} + +¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤òwebapps/palportal/WEB-INF/deploy¤Ë¥³¥Ô¡¼¤¹¤ë¤³¤È¤Ç¡¢ÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢helloworld.war ¤òÇÛÈ÷¤¹¤ë¤Ë¤Ï¡¢ + +\begin{screen} +\$ cp/helloworld.war webapps/palportal/WEB-INF/deploy + +\end{screen} + +¤È¤¹¤ë¤³¤È¤Ç¡¢helloworld ¥Ý¡¼¥È¥ì¥Ã¥È¤¬ÇÛÈ÷¤µ¤ì¤Þ¤¹¡£ +Äê´üŪ¤Ëwebapps/palportal/WEB-INF/deploy¤Ï³Îǧ¤µ¤ì¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¼«Æ°¤ÇÇÛÈ÷¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,19 @@ + + + + +\section{³µÍ×} + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Î³µÍ×} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥ÈAPI 1.0 (JSR 168) ¤Ë½àµò¤·¤Æ¤¤¤ë¤Î¤Ç¡¢JSR 168 ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ +¿¤¯¤Î J2EE ¥Ý¡¼¥¿¥ë¤¬ JSR 168 ¤ËÂбþ¤·¤Æ¤ª¤ê¡¢¤½¤ì¤é¤Î¾å¤ÇÆ°ºî¤¹¤ë JSR 168 ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò PAL¥Ý¡¼¥¿¥ë¤ËÇÛÈ÷¤·¤ÆÆ°ºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¸½ºß¡¢¥Ý¡¼¥È¥ì¥Ã¥È API 2.0 (JSR 286) ¤¬¸ø³«¤µ¤ì¤Æ¤ª¤ê¡¢PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤ÇÂбþ¤¹¤ëͽÄê¤Ç¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,208 @@ + + + + +\section{¥Ý¡¼¥¿¥ëµ¡Ç½¤ÎÍøÍÑ} + + + + + +\subsection{¥Ý¡¼¥¿¥ëµ¡Ç½¤ÎÍøÍѤˤĤ¤¤Æ} + +¥Ý¡¼¥È¥ì¥Ã¥È³«È¯¤Ë¤ª¤¤¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é¥Ý¡¼¥¿¥ë¸ÇÍ­¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¾ì¹ç¤â¤¢¤ë¤«¤È»×¤¤¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ç¥Ý¡¼¥¿¥ë¸ÇÍ­¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹»ÅÁȤߤòÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{RequestContext} + +RequestContext ¤Ï¡¢¥¯¥é¥¤¥¢¥ó¥È¤«¤é¤Î¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤¹¤ë¤¿¤á¤Ë PAL¥Ý¡¼¥¿¥ë¤¬ÍøÍѤ¹¤ë¥ê¥¯¥¨¥¹¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¹¡£ +RequestContext ¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤ËÅϤµ¤ì¤Æ¡¢¥Ñ¥¤¥×¥é¥¤¥óÆâ¤Î³Æ¥Ð¥ë¥Ö¤Ç½èÍý¤¬¤µ¤ì¡¢ÍÍ¡¹¤ÊÀßÄê¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é RequestContext ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¡¢¥Ý¡¼¥¿¥ë¤ÎÍÍ¡¹¤Ê¾ðÊó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +RequestContext ¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î½èÍý¤ËÅϤµ¤ì¤ëÁ°¤Ë¡¢PortletRequest ¤Î¥ê¥¯¥¨¥¹¥È°À­¤È¤·¤Æ³ÊǼ¤µ¤ì¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ç¤Ï PortalReservedParameters.REQUEST\_CONTEXT\_ATTRIBUTE ¤ò¥­¡¼¤Ë¤·¤Æ¡¢PortletRequest ¤«¤é¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +¤¿¤È¤¨¤Ð¡¢¸Æ¤Ó½Ð¤·ÊýË¡¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\begin{screen} +RequestContext requestContext = (RequestContext) request + .getAttribute(PortalReservedParameters.REQUEST\_CONTEXT\_ATTRIBUTE); + +\end{screen} + +¾åµ­¤ÎÊýË¡¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È³«È¯¤Ë¤ª¤¤¤Æ¡¢¥Ó¥ë¥É»þ¤Ë¤Ï jetspeed-api ¤Î jar ¥Õ¥¡¥¤¥ë¤¬É¬Íפˤʤê¤Þ¤¹¡£ +jetspeed-api ¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤ËÊݸ¤µ¤ì¤ë¤Î¤Ç¡¢¼Â¹Ô»þ¤Ë¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ëÆâ¤Ë´Þ¤á¤Ê¤¤¤è¤¦¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +\subsection{¥³¥ó¥Ý¡¼¥Í¥ó¥È} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢ÍÍ¡¹¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤ê¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¥æ¡¼¥¶¡¼Ç§¾Ú¤ò¹Ô¤¦µ¡Ç½¤Ê¤É¤â¥³¥ó¥Ý¡¼¥Í¥ó¥È²½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é¤â¤½¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¾ì¹ç¤â¤¢¤ë¤«¤È»×¤¤¤Þ¤¹¡£ +¤½¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð¤·¤¿¤¤¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òÄɲ乤뤳¤È¤Ç¥Ý¡¼¥È¥ì¥Ã¥ÈÆ⤫¤é¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¡¢¥Ý¡¼¥¿¥ë³ÈÄ¥ÀßÄê¥Õ¥¡¥¤¥ë jetspeed-portlet.xml ¤ò¥Ý¡¼¥È¥ì¥Ã¥È¤Î WEB-INF ¤ËÇÛÃÖ¤·¤Æ¡¢ÍøÍѤ·¤¿¤¤¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òµ­½Ò¤·¤Þ¤¹¡£ +jetspeed-portlet.xml ¤Î XSD ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢Appendix ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +¤¿¤È¤¨¤Ð¡¢PageManager ¤Ê¤É¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¸Æ¤Ó½Ð¤·¤¿¤¤¾ì¹ç¤Ï¡¢jetspeed-portlet.xml ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\begin{screen} + + +PAL Portal Administration Portlets +PAL Team + + + + + + + +\end{screen} + +¸Æ¤Ó½Ð¤·¤¿¤¤¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢js:service ¤Çµ­½Ò¤·¤Þ¤¹¡£ +¤³¤ì¤é¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï PortalServices ¤Ë¤è¤ê´ÉÍý¤µ¤ì¡¢ÍøÍѲÄǽ¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È°ìÍ÷¤Ïwebapps/palportal/WEB-INF/assembly/jetspeed-services.xml¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +jetspeed-services.xml ¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + +\begin{screen} + + + \if0 Portlet Services \fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\end{screen} + +¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ç¤Î¸Æ¤Ó½Ð¤·ÊýË¡¤Ï¡¢PortletContext ¤«¤é¼èÆÀ¤·¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢PageManager ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¼èÆÀ¤·¤Þ¤¹¡£ + +\begin{screen} +PageManager pageManager = (PageManager) getPortletContext() + .getAttribute(CommonPortletServices.CPS\_PAGE\_MANAGER\_COMPONENT); + +\end{screen} + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,120 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{JSR 168 ¥Ý¡¼¥È¥ì¥Ã¥È} + + + + + + + +\subsection{´Êñ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¤ÎºîÀ®} + +¤³¤ÎÀá¤Ï¡¢´Êñ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤¹¤ë¤¿¤á¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯¼Ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ç½ø¤Ç³«È¯¤¬¤Ç¤­¤Þ¤¹¡£ + + + +simplest/WEB-INF/classes ¥Ç¥£¥ì¥¯¥È¥ê¤Ë Simplest.java ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò°Ê²¼¤Î¤è¤¦¤ËºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} +public class Simplest extends javax.portlet.GenericPortlet +{ + public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response) + throws javax.portlet.PortletException, java.io.IOException + { + response.setContentType("text/html"); + response.getWriter().println("A very simple portlet."); + } +} + +\end{screen} + +°Ê²¼¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¥¯¥é¥¹¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} +\$ javac -cp ~/.maven/repository/org.apache.portals.jetspeed-2/jars/portlet-api-1.0.jar Simplest.java + +\end{screen} + + + +simplest/WEB-INF ¥Ç¥£¥ì¥¯¥È¥ê¤Ë portlet.xml ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} + + + +Simplest +Simple Display Name +Simplest + +text/html +VIEW + +en + + +The world's simplest portlet + + + + +\end{screen} + + + +simplest/WEB-INF ¥Ç¥£¥ì¥¯¥È¥ê¤Ë web.xml ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} + + + +Simplest +The world's simplest portlet + + +\end{screen} + + + +simplest ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¡¢°Ê¾å¤Î¥Õ¥¡¥¤¥ë¤ò war ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} +\$ jar cvf ../simplest.war . + +\end{screen} + + + +war ¥Õ¥¡¥¤¥ë¤òwebapps/palportal/WEB-INF/deploy¤Ë¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ +PAL¥Ý¡¼¥¿¥ë¤Ï webapp ¤òÇÛÈ÷¤·¤Þ¤¹¡£ + + + + +ºîÀ®¤·¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Ú¡¼¥¸¾å¤ËÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£ +ÇÛÃÖ¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,40 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + + + +\subsection{¥×¥í¥Õ¥¡¥¤¥é¡¼¤Î³µÍ×} + +PAL¥Ý¡¼¥¿¥ë¤Î¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï¡¢¥Ý¡¼¥¿¥ë¤Î¥ê¥½¡¼¥¹¤Î¾ì½ê¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¥Ù¡¼¥¹¤Î¥¨¥ó¥¸¥ó¤Ç¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼ïÎà¤Î¥Ý¡¼¥¿¥ë¥ê¥½¡¼¥¹¤Î¾ì½ê¤ò·èÄꤷ¤Þ¤¹¡£ +PSML ¥Ú¡¼¥¸¥Õ¥©¥ë¥À¥á¥Ë¥å¡¼ +¥ê¥¯¥¨¥¹¥È¤¬¥Ý¡¼¥¿¥ë¤Ç¼õ¿®¤µ¤ì¤¿¤È¤­¡¢¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï¼Â¹Ô»þ¥Ñ¥é¥á¡¼¥¿¤ä¾õÂÖ (¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¡¢HTTP ¥Ø¥Ã¥À¡¼¡¢¥»¥Ã¥·¥ç¥ó¤Î°À­¤Ê¤É) ¤ÎÀµµ¬²½¤µ¤ì¤¿Ãͤ˴ð¤Å¤­¡¢¥ê¥¯¥¨¥¹¥È¤ò¥ê¥½¡¼¥¹¤È·ë¤Ó¤Ä¤±¤Þ¤¹¡£ +¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï¥×¥í¥Õ¥¡¥¤¥é¡¼¥Ð¥ë¥ÖÆâ¤Î PAL¥Ý¡¼¥¿¥ë¤Î¥ê¥¯¥¨¥¹¥È½èÍý¥Ñ¥¤¥×¥é¥¤¥ó¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£ +¤³¤Î¥Ð¥ë¥Ö¤Ï¡¢¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥È¤¬´û¤Ë¥Ý¡¼¥¿¥ë¤Î¥ê¥¯¥¨¥¹¥È¤ä¥ì¥¹¥Ý¥ó¥¹¡¢µ¡Ç½¡¢¸À¸ì¡¢¥æ¡¼¥¶¾ðÊó¤È´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +¼Â¹Ô»þ¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥é¡¼¤¬¥Ý¡¼¥¿¥ë¤Î¥ê¥½¡¼¥¹¤ò°ÌÃÖ¤ò·èÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤ëȽÃǵ¬½à¤òºî¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,130 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + + + +\subsection{¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë} + + +¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ï¡¢ÆÃÄê¤Î¥ê¥½¡¼¥¹¤Î¾ì½ê¤ò²ò·è¤¹¤ë¥ê¥¯¥¨¥¹¥È¤òɾ²Á¤¹¤ë¤È¤­¤Ë»È¤ï¤ì¤ëȽÃǵ¬½à¤Î¥ê¥¹¥È¤òÄêµÁ¤·¤Þ¤¹¡£ +¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ï¥×¥í¥Õ¥¡¥¤¥é¡¼¤¬»ÈÍѤ·¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢´ûÃΤΥݡ¼¥È¥ì¥Ã¥È¥ê¥¯¥¨¥¹¥È¥Ç¡¼¥¿ÍѤΡ¢ºÙʬ²½¤·¤¿È½Ãǵ¬½à¤Ë¤è¤ë¥Ý¡¼¥¿¥ë¥ê¥½¡¼¥¹¤Î°ÌÃÖ¤ò·èÄꤹ¤ë¤¿¤á¤Ç¤¹¡£ +¥ë¡¼¥ë¤ÏÍ¿¤¨¤é¤ì¤¿½ç½ø¤ËŬÍѤµ¤ì¤ëȽÃǵ¬½à¤Î½ç½ø¤Ä¤­¤Î¥ê¥¹¥È¤«¤é¹½À®¤µ¤ì¤Þ¤¹¡£ +¤³¤Î¥ë¡¼¥ë¤Î½ç½ø¤Ë½¾¤Ã¤Æ¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥¨¥ó¥¸¥ó¤ÏºÇ¾¯¤Î¥ê¥½¡¼¥¹¤ÎȽÃǵ¬½à¤È¤ß¤Ê¤»¤ë¤Þ¤Ç¡¢¾¯¤Ê¤¤µ­½Ò¤ÎÀßÄê¤Ë¤è¤ë¥¢¥ë¥´¥ê¥º¥à¤Ç¡¢¤½¤ì¤¾¤ì¤Î¥ë¡¼¥ë¤ÎȽÃǵ¬½à¤òŬÍѤ·¤Þ¤¹¡£ +Á´¤Æ¤Î¾ò·ï¤¬Å¬ÍѤµ¤ì¤Ä¤¯¤·¤¿¾ì¹ç¡¢¥ë¡¼¥ë¤Ï¼ºÇԤȤʤê¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¥ê¥½¡¼¥¹¤¬Í׵ᤵ¤ì¤Þ¤¹¡£ + + + + +¥ë¡¼¥ëµ¬½à¤Ï¥×¥í¥Õ¥¡¥¤¥ë¤Î¥×¥í¥Ñ¥Æ¥£¤Î¾ì½ê¤ò¼¨¤¹¤¿¤á¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ç¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Î¼ÂÁõ¤Ç¤Ï¡¢¥ê¥½¡¼¥¹¤òÆÃÄꤹ¤ë URL¡¢MIME ¥¿¥¤¥×¡¢¸À¸ì¤ÎÀßÄê¤Ë´ð¤Å¤¯°Æ¤ÇÄêµÁ¤µ¤ì¤¿¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥Ý¥ê¥·¡¼¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ +¤â¤Ã¤ÈÊ£»¨¤Ê¼ÂÁõ¤ò¹Ô¤¦¤Ë¤Ï¡¢Cookie ¤ä IP ¥¢¥É¥ì¥¹¤ÎÈϰϤäÅý·×Ū¤Ê¥ê¥½¡¼¥¹¤ÎÍøÍѲòÀϤ䥵¡¼¥Ö¥ì¥Ã¥È¤ä EJB ÆâÉô¤Î¥Ó¥¸¥Í¥¹¤Î¥ë¡¼¥ë¤Î¤è¤¦¤Ê¡¢¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤ë¾¤ÎÆþÎϤ¬É¬ÍפȤʤê¤Þ¤¹¡£ + + + + + + +¥ê¥¾¥ë¥Ð +ÀâÌÀ + + +request +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¤è¤ë²ò·è + + +session +¥»¥Ã¥·¥ç¥ó¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¤è¤ë²ò·è + + +request.session +ºÇ½é¤Ë¥ê¥¯¥¨¥¹¥È¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤ò¹Ô¤Ã¤Æ¤«¤é¡¢¥»¥Ã¥·¥ç¥ó¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤ò¹Ô¤Ã¤Æ²ò·è¤¹¤ë + + +hard.coded +¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤¿Ãͤˤè¤ë²ò·è + + +group.role.user +¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¥³¥ó¥È¥í¡¼¥é: ¸½ºß¤Î¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¡¢¼¡¤Ë¥í¡¼¥ë¡¢¼¡¤Ë¥æ¡¼¥¶¡¼¤Î½êÍ­¤¹¤ë¥Õ¥©¥ë¥À°Ê²¼¤Î¥ê¥½¡¼¥¹¤òõ¤¹ + + +user +¸½ºß¤Î¥æ¡¼¥¶¡¼¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +group +¸½ºß¤Î¥°¥ë¡¼¥×¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +role +¸½ºß¤Î¥í¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +mediatype +¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥á¥Ç¥£¥¢¥¿¥¤¥×¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +country +¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¹ñ¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +user.agent +¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥È¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +language +¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¸À¸ì¤È¥Þ¥Ã¥Á¤µ¤»¤ë + + +roles +¥í¡¼¥ë¤Î¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯ + + +path +»ØÄꤵ¤ì¤¿¥Ñ¥¹¤È¥Þ¥Ã¥Á¤¹¤ë + + +page +»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤È¥Þ¥Ã¥Á¤¹¤ë + + +path.session +»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¤ÎÃͤȥޥåÁ¤¹¤ë + + +user.attribute +»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È°À­¤ÎÃͤȥޥåÁ¤¹¤ë + + +navigation +¸½ºß¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ñ¥¹¤òÊѤ¨¤ë + + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,691 @@ + +\if0 +Copyright 2004-2005 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + + + + +\subsection{PSML ¤Î³µÍ×} + +PSML ¤Ï Portal Structure Markup Language ¤ÎƬʸ»ú¤ò¼è¤Ã¤¿¤â¤Î¤Ç¤¹¡£ +PSML ¤Ï PAL¥Ý¡¼¥¿¥ëÆâ¤Î¥³¥ó¥Æ¥ó¥Ä¤Î¹½Â¤²½¤ÈÃê¾Ý²½¤ò¹Ô¤¦¤¿¤á¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£ +PSML ¤Ï¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¾å¤Ç¥Ý¡¼¥È¥ì¥Ã¥È¤¬¤É¤Î¤è¤¦¤Ë½¸Ì󤵤졢¥ì¥¤¥¢¥¦¥È¤µ¤ì¡¢Áõ¾þ¤µ¤ì¤ë¤«¤òÄêµÁ¤·¤Þ¤¹¡£ +¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¤Ë´Ø¤¹¤ë»ÅÍͤϡ¢¥Ý¡¼¥È¥ì¥Ã¥È API ¤Î¼éÈ÷ÈϰϤǤϤʤ¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +¤Ç¤¹¤Î¤Ç¡¢PSML ¤Ï PAL¥Ý¡¼¥¿¥ëÆÃÍ­¤Î¼ÂÁõ¤Ç¤¹¡£ +¤½¤·¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤Î PSML ¤Ï Apache Portals Jetspeed 2 ¤Î PSML ¤Î»ÅÍͤ˽¾¤¤¤Þ¤¹¡£ + + +PSML ¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¤äÂç°èŪ¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤È´Ø·¸¤¹¤ë¾ðÊó¤âÊÝ»ý¤·¤Þ¤¹¡£ +¤³¤ì¤é¤Î¼çÍ×¤Ê PSML ¤ÎÍ×ÁǤΤ½¤ì¤¾¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤Æâ¤ËÊÌ¡¹¤Î¥É¥­¥å¥á¥ó¥È¤È¤·¤ÆÊݸ¤µ¤ì¤ë¤«¡¢¥Ý¡¼¥¿¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ËÊݸ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +ÊݸÀè¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +°Ê²¼¤Ë¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Ú¡¼¥¸ÍѤΠPSML ¥Õ¥¡¥¤¥ë (*.psml) ¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} + + + \if0 ¥Ú¡¼¥¸¤Î¾ðÊó \fi + +Ma Premiere Page de PSML +¢ÂBienvenido a PAL¥Ý¡¼¥¿¥ë! +K«Ósz«Ónti a PAL¥Ý¡¼¥¿¥ë! + + \if0 ¥Ú¡¼¥¸¤ÎÁõ¾þ \fi + + + \if0 ¥Ú¡¼¥¸¥Õ¥é¥°¥á¥ó¥È \fi + + + + + + + + + + + + + + + + + + + \if0 ¥»¥­¥å¥ê¥Æ¥£À©¸Â \fi + +public-view + + + +\end{screen} + +°Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Õ¥©¥ë¥À (folder.metadata) ÍѤÎÄêµÁ¤ò¹Ô¤¦ PSML ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} + + + \if0 ¥Õ¥©¥ë¥À¤ÎÀâÌÀ \fi + +R«±pertoire racine +Carpeta raiz + + \if0 ¥Õ¥©¥ë¥ÀÆâ¤Î¥É¥­¥å¥á¥ó¥È¤Î½ç½ø \fi +Jetspeed2.link +Jetspeed2Wiki.link +apache\_portals.link +apache.link + + \if0 ¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼ \fi + + +Top Pages +Page haut +P«¡ginas m«¡s populares + +/Administrative + +Profiled Pages +P«¡ginas del Perfil + +/p[0-9][0-9][0-9].psml + +Non Java Pages +Ejemplos sin java + +/non-java + + + \if0 ¥»¥­¥å¥ê¥Æ¥£À©¸Â \fi + +public-view + + + +\end{screen} + +°Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥ê¥ó¥¯ (*.link) ÍѤΠPSML ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} + + + \if0 ¥ê¥ó¥¯¤ÎÀâÌÀ \fi + +http://portals.apache.org/jetspeed-2/ +PAL¥Ý¡¼¥¿¥ë + + +\end{screen} + +°Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£ (page.security) ÍѤΠPSML ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} + + + \if0 Âç°èŪ¤Ê´ÉÍý¼Ô¤ÎÀ©¸Â \fi + + +admin +view, edit + + +admin + + \if0 ¥Ñ¥Ö¥ê¥Ã¥¯¤ÊÀ©¸Â \fi + + +* +view + + + + +* +view, edit + + + + +\end{screen} + +\subsection{ ¥Ú¡¼¥¸} + +\<page\> Í×ÁǤϡ¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Ú¡¼¥¸¤Ë´ØÏ¢¤¹¤ë¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ë¤¿¤á¤Îñ½ã¤ÊÆþ¤ìʪ¤Ç¤¹¡£ +¤³¤ÎÍ×ÁǤϡ¢¿Æ¤Ç¤¢¤ë¥Õ¥©¥ë¥À¤ò¹½À®¤¹¤ëŬÀڤʥե¡¥¤¥ë¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ë¡¢'.psml' ¤È¤¤¤¦³ÈÄ¥»Ò¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¤Þ¤¹(PSML ¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÊݸ¤·¤¿¾ì¹ç)¡£ +2 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬¥Ú¡¼¥¸¥¨¥ì¥á¥ó¥È¤Î°À­¤È¤·¤Æ¸ºß¤·¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +hidden +¥Ú¡¼¥¸¤¬¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥µ¥¤¥È¥á¥Ë¥å¡¼¤Þ¤¿¤Ï¾¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥óÍѤÎÍ×ÁǤËɽ¤ì¤ë¤«¤É¤¦¤«¤ò»Ø¼¨¤¹¤ë¤¿¤á¤Î¿¿µ¶ÃͤΰÀ­¡£ + + +version +°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ð¡¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î¤¿¤á¤Î°À­¡£PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¸½ºß»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + + +\<page\> Í×ÁǤÏ¿¤¯¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + +title? +¥Ç¥Õ¥©¥ë¥È¤Î¥Ú¡¼¥¸¥¿¥¤¥È¥ë¤òɽ¤¹¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤ÊÍ×ÁÇ¡£¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·¥á¥Ë¥å¡¼¥Æ¥­¥¹¥ÈÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï page Í×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£ + + +short-title? +¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£Ã»¤¤¥¿¥¤¥È¥ë¤Ï¡¢¤â¤·ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿Æâ¤Î¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï title ¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£ + + + + defaults + +¥Ú¡¼¥¸¤È¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Î¤¿¤á¤ÎÁõ¾þ¤ò»ØÄꤷ¤Þ¤¹¡£defaults ¤Ï¥Ú¡¼¥¸Ëè¤ËɬÍפǤ¹¡£ + + + + fragment + +¥Õ¥é¥°¥á¥ó¥È¤Î³¬Áع½Â¤¤Î¥ë¡¼¥È¡£Á´¤Æ¤Î¥Ú¡¼¥¸¤Ë¥ë¡¼¥È¤Î¥Õ¥é¥°¥á¥ó¥È¤¬É¬ÍפǤ¹¡£ + + +metadata* +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍÑ¤Î¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¡£ + + +menu* +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍѤÎÄɲäޤ¿¤Ï¾å½ñ¤­¤µ¤ì¤¿·Ñ¾µ¤·¤¿¥á¥Ë¥å¡¼ÄêµÁ¤Î»ØÄê¡£ + + +security-constraints? +¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍѤΥ¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Ú¡¼¥¸¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ + + +Îã: ¡Ö³µÍספǼ¨¤·¤¿Îã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{¥Ç¥Õ¥©¥ë¥È} + +¥Ú¡¼¥¸Æâ¤Î \<defaults\> Í×ÁǤϡ¢¥Ç¥Õ¥©¥ë¥È¤Î¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤òÄêµÁ¤·¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Î¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ç¥³¥ì¡¼¥¿Â°À­¤ò»ý¤¿¤Ê¤¤Á´¤Æ¤Î¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤ËÂФ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ç¥³¥ì¡¼¥¿Â°À­¤ò»ý¤¿¤Ê¤¤Á´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤ËÂФ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£ +defaults Í×ÁÇ¤Ë¤Ï 3 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬¤¢¤ê¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +layout-decorator +¥Ú¡¼¥¸¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë¤È¤­¤Ë»È¤¦¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¡£¤³¤Î°À­¤Ïɬ¿Ü¤Ç¤¹¡£ + + +portlet-decorator +¥Ú¡¼¥¸¥Õ¥é¥°¥á¥ó¥È¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë¤È¤­¤Ë»È¤¦¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¡£¤³¤Î°À­¤Ï¾Êά²Äǽ¤Ç¤¹¤¬¡¢¤Û¤È¤ó¤É¤¤¤Ä¤âÀßÄꤷ¤Þ¤¹¡£ + + +skin +¥Ú¡¼¥¸¤ä¥Õ¥é¥°¥á¥ó¥È¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë¥Ç¥³¥ì¡¼¥¿Æâ¤Ç»²¾È¤µ¤ì¤ë°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ç¥³¥ì¡¼¥¿Â°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»ÈÍѤ·¤Æ¤¤¤Þ¤»¤ó¡£ + + +Îã: +\begin{screen} + + ... + + ... + + +\end{screen} + +\subsection{¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È} +¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È \<fragment\> Í×ÁǤϳ¬Áع½Â¤¤Î¥³¥ó¥Æ¥Ê¤Ç¤¹¡£ +¤³¤ì¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤È¡¢³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤òÊÝ»ý¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ +¥Ú¡¼¥¸¤Î¥ë¡¼¥È¤Î¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¥Ú¡¼¥¸¤Ë 1 ¤Ä¤·¤«¥Ý¡¼¥È¥ì¥Ã¥È¤¬¤Ê¤¤¤È¤­¤Ç¤â¡¢¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¿Æ¤È¤Ê¤ë¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Î¥ì¥¤¥¢¥¦¥È¤Ë½¾Â°¤·¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢ "row" ¤È "column" ¤Î¥ì¥¤¥¢¥¦¥È¥×¥í¥Ñ¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +²Ã¤¨¤Æ¡¢¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï 'sizes' ¥ì¥¤¥¢¥¦¥È¥×¥í¥Ñ¥Æ¥£¤â¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢Ê£¿ôÎó¤Î¥ì¥¤¥¢¥¦¥È¤ÎÎó¤Î³ä¹ç¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ +¤³¤ÎÍ×ÁÇ¤Ë¤Ï 3 ¤Ä¤Îɬ¿Ü¤Î°À­¤¬¤¢¤ê¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +id +ɬ¿Ü¤Ç¤¢¤ë id ¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤òÆÃÄꤹ¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥µ¥¤¥ÈÆâ¤ÇÄêµÁ¤µ¤ì¤ëÁ´¤Æ¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÅϤäƥæ¥Ë¡¼¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÃÍ¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÆ©²áŪ¤Ç¤Ê¤¯¡¢°ì°ÕÀ­¤òÊݾڤ¹¤ë¤¿¤á¤Î¤É¤Î¤è¤¦¤Ê»ÅÍͤˤ⽾¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÆâÉôŪ¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢´û¸¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ëǤ°Õ¤ÎÊÔ½¸¤¬¡¢PAL¥Ý¡¼¥¿¥ë¤¬¹Ô¤¦Êѹ¹¤òÊݾڤ¹¤ë¤¿¤á¤Ë¿·¤·¤¤ id ¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ + + +type +¤³¤Îɬ¿Ü¤Î°À­¤Ï¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥ÈÁ´¤Æ¤Ç 'layout' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ + + +name +ɬ¿Ü¤Ç¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¥ì¥¤¥¢¥¦¥È¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï°ìÈÌŪ¤Ë¡¢portlet.xml ¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ 'portlet-app-id::portlet-id' ¤Î·Á¤ò¼è¤ê¤Þ¤¹¡£ + + + + +¥ì¥¤¥¢¥¦¥È \<fragment\> Í×ÁǤϤ¿¤¯¤µ¤ó¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + + + fragment* + +»ØÄꤵ¤ì¤¿ fragment Í×ÁǤϡ¢¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ë¤è¤Ã¤Æ¥ì¥¤¥¢¥¦¥È¤µ¤ì¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¡¢¤Þ¤¿¤Ï³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Î¤É¤Á¤é¤Ë¤âÀ®¤êÆÀ¤Þ¤¹¡£Á´¤Æ¤Î»Ò¥Õ¥é¥°¥á¥ó¥È¤Ë¤Ï¤³¤Î¥ì¥¤¥¢¥¦¥È¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤Î property Í×ÁǤ¬É¬¿Ü¤Ç¤¹¡£¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥ÈÆâ¤Ë»ØÄꤵ¤ì¤ë¥Õ¥é¥°¥á¥ó¥È¤¬¤Ê¤¤¾ì¹ç¤Ï·ë²Ì¤È¤·¤Æ¥³¥ó¥Æ¥ó¥Ä¤ÏÀ¸À®¤µ¤ì¤Þ¤»¤ó¡£ + + + + property* + +¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¾Êά²Äǽ¤Ç 'sizes' ¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Ä¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤³¤ì¤ÏÊ£¿ôÎó¤Î·Á¾õ¤ÎÌÀºÙ¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë 'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤â»ý¤Ä¤«¤â¤·¤ì¤Þ¤»¤ó¡£ + + +security-constraints? +¥Õ¥é¥°¥á¥ó¥È¤È¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Î»Ò¥Õ¥é¥°¥á¥ó¥È¤ËÂФ·¤Æ¡¢¾Êά²Äǽ¤Ê¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤òÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥ê¥ó¥¯¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¤ß¤¬À©¸Â¤µ¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Õ¥é¥°¥á¥ó¥È¤Ï¥Ú¡¼¥¸Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ + + +Îã: +\begin{screen} + + ... + + + + + + + + + + + + + + + + + + ... + + +\end{screen} + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È} +¥Ý¡¼¥È¥ì¥Ã¥È¤Î \<fragment\> Í×ÁǤϡ¢¥Ú¡¼¥¸¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò¼±Ê̤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Î¥ì¥¤¥¢¥¦¥È¤Î±Æ¶Á¤ò¼õ¤±¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢¥ì¥¤¥¢¥¦¥È¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë 'row' ¤È 'column' ¤Î¥ì¥¤¥¢¥¦¥È¥×¥í¥Ñ¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +¤³¤ÎÍ×ÁǤËÂФ·¤Æ¤Ï¿¿ô¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +id +ɬ¿Ü¤Ç¤¢¤ë id ¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤òÆÃÄꤹ¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥µ¥¤¥ÈÆâ¤ÇÄêµÁ¤µ¤ì¤ëÁ´¤Æ¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÅϤäơ¢¥æ¥Ë¡¼¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÃÍ¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÆ©²áŪ¤Ç¤Ê¤¯¡¢°ì°ÕÀ­¤òÊݾڤ¹¤ë¤¿¤á¤Î¤É¤Î¤è¤¦¤Ê»ÅÍͤˤ⽾¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÆâÉôŪ¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢´û¸¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ëǤ°Õ¤ÎÊÔ½¸¤¬¡¢PAL¥Ý¡¼¥¿¥ë¤¬¹Ô¤¦Êѹ¹¤òÊݾڤ¹¤ë¤¿¤á¤Ë¿·¤·¤¤ id ¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ + + +type +¤³¤Îɬ¿Ü¤Î°À­¤ÏÁ´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Ç 'portlet' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ + + +name +ɬ¿Ü¤Ç¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¥³¥ó¥Æ¥ó¥Ä¤òή¤·¹þ¤à¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï°ìÈÌŪ¤Ë portlet.xml ¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ 'portlet-app-id::portlet-id' ¤Î·Á¤ò¼è¤ê¤Þ¤¹¡£ + + +skin +¥Õ¥é¥°¥á¥ó¥È¤Îɽ¼¨¤Î¥³¥ó¥È¥í¡¼¥ë¤Î¤¿¤á¤Î¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Æâ¤Ç»²¾È¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ç¥³¥ì¡¼¥¿Â°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ + + +decorator +¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Ì¾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤Î¥ì¥ó¥À¥ê¥ó¥°¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ï¾Êά²Äǽ¤Ç¤¹¡£¤·¤«¤·¡¢¤³¤Î°À­¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ú¡¼¥¸¤Î defaults ¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤ò»ØÄꤷ¤Þ¤¹¡£ + + +state +¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î½é´ü¾õÂÖ; ¸½»þÅÀ¤Ç¤Ï¤³¤Î°À­¤ËÂФ·¤Æ¤Ï¡¢Í£°ì 'hidden' ¤¬Í­¸ú¤ÊÃͤǤ¹¡£ + + + +¥Ý¡¼¥È¥ì¥Ã¥È¤Î \<fragment\> Í×ÁǤϾ¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + + + property* + +¿Æ¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë¡¢'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Æ¤Þ¤¹¡£ + + +title? +¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¿¥¤¥È¥ë¤ò´Þ¤à¡¢¾Êά²Äǽ¤Çñ½ã¤Ê¥Æ¥­¥¹¥È¤ÎÍ×ÁÇ¡£portlet.xml ¤Ç¥»¥Ã¥È¤µ¤ì¤¿¥¿¥¤¥È¥ë¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ + + + + preference* + +¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤¿¤¤¤·¤Æ¡¢ÀßÄꤵ¤ì¤ë½é´ü¤Î¥æ¡¼¥¶¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»ØÄꤷ¤Þ¤¹¡£portlet.xml Æâ¤Ç»ØÄꤵ¤ì¤¿¡¢¤É¤Î¤è¤¦¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤â¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ + + +security-constraints? +¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò¾Êά²Äǽ¤ÇÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤À¤±¤òÀ©¸Â¤Ç¤­¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Ï page Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ + + +Îã: +\begin{screen} + + ... + + + + ... + + +\end{screen} + +\subsection{¥Õ¥é¥°¥á¥ó¥È¤Î¥×¥í¥Ñ¥Æ¥£} +¥Õ¥é¥°¥á¥ó¥È¤Î \<property\> Í×ÁǤϥե饰¥á¥ó¥È¤Î¥×¥í¥Ñ¥Æ¥£¤Î̾Á°¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ +¤³¤ì¤é¤Î¥×¥í¥Ñ¥Æ¥£¤Ï°ìÈ̤˥쥤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ñ¥é¥á¡¼¥¿¤È¥Ú¡¼¥¸Æâ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ +¥×¥í¥Ñ¥Æ¥£Í×ÁÇ¤Ï 3 ¤Ä¤Î°À­¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ + + +°À­ +ÀâÌÀ + + +layout(ÇÑ»ßͽÄê) +¥×¥í¥Ñ¥Æ¥£¤¬É³ÉÕ¤¤¤Æ¤¤¤ë¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼±ÊÌ̾¡£¤³¤Î°À­¤Ï¸ß´¹À­¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ì¥¤¥¢¥¦¥È¤È¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Î¸·Ì©¤Ê³¬Áع½Â¤¤Ï¡¢¤É¤Î¤è¤¦¤Êñ°ì¤Î¥Õ¥é¥°¥á¥ó¥È¤È¤½¤Î¥×¥í¥Ñ¥Æ¥£¤â¡¢ 1 ¤Ä¤Î¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î±Æ¶Á²¼¤Ë¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ + + +name +¥Õ¥é¥°¥á¥ó¥È¥×¥í¥Ñ¥Æ¥£¤Î̾Á°¡£PAL¥Ý¡¼¥¿¥ë¤Î¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ï 'row'¡¢'column'¡¢'sizes' ¥×¥í¥Ñ¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ + + +value +¥Õ¥é¥°¥á¥ó¥È¥×¥í¥Ñ¥Æ¥£¤ÎÃÍ¡£'row' ¤È 'column' ¥×¥í¥Ñ¥Æ¥£¤Ï¥¼¥í¥Ù¡¼¥¹¤Î»ØɸÃͤò¼õ¤±¼è¤ê¤Þ¤¹¡£'sizes' ¥×¥í¥Ñ¥Æ¥£¤Ï HTML frameset ¥¿¥°¤Î 'rows' ¤È 'cols' °À­¤Î½ñ¼° (Î㤨¤Ð '25%,75%' Åù) ¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£ + + +Îã: +\begin{screen} + + ... + + + ... + + +\end{screen} +\begin{screen} + + ... + + ... + + +\end{screen} + +\subsection{¥×¥ê¥Õ¥¡¥ì¥ó¥¹} +¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Î \<preference\> Í×ÁǤϡ¢¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤òÄêµÁ¤·¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î portlet.xml Æâ¤Ë¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄêµÁ¤ò²¿ÅÙ¤â¹Ô¤¦É¬Íפʤ¯¡¢¥Ú¡¼¥¸¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹ÍѤˡ¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ÎÀßÄê¤ò¡¢´Êñ¤Ë¹Ô¤¦¼êÃʤòÄ󶡤·¤Þ¤¹¡£ + + +¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ÎÍ¥ÀèÅÙ: ¥æ¡¼¥¶ÄêµÁ \> ¥Õ¥é¥°¥á¥ó¥ÈÄêµÁ \> portlet.xml ¤Ç¤ÎÄêµÁ + + +\<preference\> Í×ÁǤΰÀ­¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ + + + +°À­ +ÀâÌÀ + + +name +¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤Î̾Á°¡£ + + +readOnly +¥æ¡¼¥¶¤¬¤³¤Î¥×¥ê¥Õ¥¡¥ì¥ó¥¹ÃͤòÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¿¿µ¶ÃÍ¡£ + + +\<preference\> Í×ÁǤϰʲ¼¤ÎÍ×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + +Í×ÁÇ +ÀâÌÀ + + +value+ +»ØÄꤷ¤¿¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤È´Ø·¸¤¹¤ëÃͤò´Þ¤àñ½ã¤Ê¥Æ¥­¥¹¥ÈÍ×ÁÇ¡£ + + +Îã: +\begin{screen} + + ... + +http://www.google.com + + ... + + +\end{screen} + +\subsection{¥Õ¥©¥ë¥À} + +\<folder\> Í×ÁǤϡ¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Õ¥©¥ë¥À¤È´ØÏ¢¤¹¤ë¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ëñ½ã¤ÊÆþ¤ìʪ¤Ç¤¹¡£¤³¤ÎÍ×ÁǤϡ¢´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î folder.metadata ¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¤Þ¤¹¡£¥Õ¥©¥ë¥À¤ÎÍ×ÁÇ¤Ë¤Ï 2 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +hidden +¥Õ¥©¥ë¥À¤¬¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤ä¾¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥óÍѤÎÍ×ÁǤˡ¢É½¼¨¤µ¤ì¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¿¿µ¶ÃͤΰÀ­¡£ + + +version +°ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + +\<folder\> Í×ÁǤÏ¿¤¯¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + +Í×ÁÇ +ÀâÌÀ + + +title? +¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤ò´Þ¤àñ½ã¤ÊÍ×ÁÇ¡£¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤Ï¡¢¼«¿È¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë̾¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¥Õ¥©¥ë¥ÀÍ×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£ + + +short-title? +¥Õ¥©¥ë¥À¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤à¾Êά²Äǽ¤Êñ½ãÍ×ÁÇ¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢title ¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£ + + +default-page? +¥Õ¥©¥ë¥À¤Î¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Þ¤¿¤Ï¥µ¥Ö¥Õ¥©¥ë¥À¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Ï¡¢¥Õ¥©¥ë¥À¤¬Ä¾Àܥݡ¼¥¿¥ë¤«¤é»²¾È¤µ¤ì¤ë¤È¤­¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥©¥ë¥ÀÆâ¤Î¤É¤Î¤è¤¦¤Ê¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ò (¿Æ¥Õ¥©¥ë¥À¤È¤·¤Æ»È¤ï¤ì¤ë¡Ö..¡×¤â´Þ¤à) »ØÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¡Ödefault-page.psml¡×¤¬»È¤ï¤ì¤Þ¤¹¡£¤â¤· ¡Ödefault-page.psml¡×¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥©¥ë¥ÀÆâ¤ÎºÇ½é¤Î¥Ú¡¼¥¸¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +document-order* +¥Ú¡¼¥¸¡¢¥µ¥Ö¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¤È¤¤¤Ã¤¿¹½À®Í×ÁǤΥ½¡¼¥È¤Î½çÈÖ¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¹½À®Í×ÁǤΥƥ­¥¹¥È̾¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£Ì¾Á°¤Ë¥Þ¥Ã¥Á¤¹¤ë¹½À®Í×ÁǤϡ¢¤½¤ÎÍ×ÁǤ¬ÄêµÁ¤µ¤ì¤¿½çÈÖ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£Â¾¤Î¹½À®Í×ÁǤÏ̾Á°¤Ç¥½¡¼¥È¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¥á¥Ë¥å¡¼¤ä¾¤Î¥ê¥¹¥È¤Ç¤Ï¡¢°ìÃפ·¤¿¹½À®Í×ÁǤθå¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£Àµµ¬É½¸½¤Ë¤è¤ë°ìÃפϥµ¥Ý¡¼¥È¤·¤Þ¤»¤ó¡£ + + +metadata* +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥í¥±¡¼¥ë¸ÇÍ­¤Î¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤äû¤¤¥¿¥¤¥È¥ë¡£ + + +menu* +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢ÄɲäΡ¢¤Þ¤¿¤Ï·Ñ¾µ¤·¤¿¤â¤Î¤ò¾å½ñ¤­¤¹¤ë¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼ÄêµÁ¡£ + + +security-constraints? +¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥Õ¥©¥ë¥ÀÍѤΥ¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Õ¥©¥ë¥À¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ + + +Îã: ¡Ö³µÍספÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{¥ê¥ó¥¯} + +\<link\> Í×ÁǤϡ¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î³°Éô¤Î¥³¥ó¥Æ¥ó¥Ä¤ò»²¾È¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¥Ý¡¼¥¿¥ë¥ê¥ó¥¯¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡¢Â¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ë¥·¥ó¥×¥ë¤ÊÆþ¤ìʪ¤Ç¤¹¡£¤³¤ÎÍ×ÁǤϡ¢¿Æ¥Õ¥©¥ë¥À¤È´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡¢Å¬Àڤʥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ë¸ºß¤¹¤ë¡Ö.link¡×¤È¤¤¤¦³ÈÄ¥»Ò¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¤Þ¤¹¡£¤³¤ÎÍ×ÁÇ¤Ë¤Ï 2 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬¤¢¤ê¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +target +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢³°Éô¥³¥ó¥Æ¥ó¥Ä¤ò³«¤¯¤¿¤á¤ÎÂоݤȤʤë¥Õ¥ì¡¼¥à¤Î̾Á°¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤µ¤ì¤¿¥³¥ó¥Æ¥ó¥Ä¤Ï¥Ö¥é¥¦¥¶¤Ç³«¤¤¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¤ÈÃÖ¤­´¹¤ï¤ê¤Þ¤¹¡£ + + +version +°ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + + +\<link\> Í×ÁǤÏ¿¿ô¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + +title? +¥Ç¥Õ¥©¥ë¥È¤Î¥ê¥ó¥¯¥¿¥¤¥È¥ëÍѤΥƥ­¥¹¥È¤ò´Þ¤à¥·¥ó¥×¥ë¤ÊÍ×ÁÇ¡£¥ê¥ó¥¯¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·¥á¥Ë¥å¡¼¥Æ¥­¥¹¥ÈÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï link Í×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£ + + +short-title? +¥ê¥ó¥¯¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ + + +url +¥³¥ó¥Æ¥ó¥Ä¤Î URL ¤Î¤¿¤á¤Îɬ¿Ü¤ÎÍ×ÁÇ¡£¤³¤ÎÍ×ÁǤΥƥ­¥¹¥È¤Ï¡¢»ØÄꤵ¤ì¤¿¥Ö¥é¥¦¥¶¤ÎÂоݥե졼¥à¤ò¥Ê¥Ó¥²¡¼¥È¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ + + +metadata* +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥í¥±¡¼¥ë¸ÇÍ­¤Î¥ê¥ó¥¯¤Î¥¿¥¤¥È¥ë¤äû¤¤¥¿¥¤¥È¥ë¡£ + + +security-constraints? +¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥ê¥ó¥¯¤Î¤¿¤á¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ + + +Îã: ¡Ö³µÍספÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{ ¥°¥í¡¼¥Ð¥ë¤Ê¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£} + +\<page-security\> Í×ÁǤϥ°¥í¡¼¥Ð¥ë¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤È¡¢¤½¤ÎÄêµÁ¤òÀë¸À¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡¢Â¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ë¤¿¤á¤Î¥·¥ó¥×¥ë¤ÊÆþ¤ìʪ¤Ç¤¹¡£¤³¤ÎÍ×ÁÇ¤Ï page.security ¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¡¢¾ï¤Ë PSML ¥Õ¥¡¥¤¥ë¤Î¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸ºß¤·¤Þ¤¹¡£page-security Í×ÁǤÎÍ­¸ú¤Ê°À­¤Ï 1 ¤Ä¤À¤±Â¸ºß¤·¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +version +°ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + + +\<page-security\> Í×ÁÇ¤Ï PSML Í×ÁǤ˴ØÏ¢¤¹¤ë 2 ¤Ä¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò´Þ¤ß¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + +security-constraints-def* +¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Î¥³¥ì¥¯¥·¥ç¥ó¤Î̾Á°¡£¤³¤ì¤é¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ï¥Ú¡¼¥¸¡¢¥Õ¥é¥°¥á¥ó¥È¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯Æâ¤Ç¡¢¤½¤·¤ÆºÆÍøÍѤȥ»¥­¥å¥ê¥Æ¥£¤Î¥á¥ó¥Æ¥Ê¥ó¥¹¤òÍưפˤ¹¤ë¤¿¤á¤Ë¡¢¤³¤ÎÍ×ÁÇÆâ¤Ç»²¾È¤µ¤ì¤Þ¤¹¡£ + + +global-security-constraints-ref* +¥µ¥¤¥ÈÆâ¤ÎÁ´¤Æ¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤òŬÍѤ¹¤ë¤¿¤á¤Î¡¢¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¥»¥­¥å¥ê¥Æ¥£À©¸Â»²¾È¡£¤½¤ì¤¾¤ì¤Î¥·¥ó¥×¥ë¤ÊÍ×ÁǤΥƥ­¥¹¥È¤Ï¡¢¤³¤Î¥¨¥ì¥á¥ó¥ÈÆâ¤Î¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¤ò»²¾È¤·¤Þ¤¹¡£ + + +Îã: ¡Ö³µÍספÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{ PSML ¥¿¥¤¥È¥ë¤È¥á¥¿¥Ç¡¼¥¿} +¥Ú¡¼¥¸, ¥Õ¥©¥ë¥À, ¥ê¥ó¥¯¤Î \<metadata\> Í×ÁÇ¤Ï¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤é¤ÎÍ×ÁǤϲ¿Å٤Ǥ⡢´Þ¤Þ¤ì¤ë PSML Í×ÁÇÆâ¤Çɽ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÃͤ¬ 1 ¤Ä¤Î¥í¥±¡¼¥ë¤Ë¤¿¤¤¤·¤Æ»ØÄꤷ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£PSML XML ʸ½ñ¤Ï¡¢ÉáÄ̤Ϲ­ÈϰϤΥ­¥ã¥é¥¯¥¿¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¢UTF-8 ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÇÀë¸À¤µ¤ì¤Þ¤¹¡£ + + + + +°À­ +ÀâÌÀ + +name +¥á¥¿¥Ç¡¼¥¿¥Æ¥­¥¹¥È¤Î̾Á°¡£¤³¤Î̾Á°¤Ï¡¢¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¥Æ¥­¥¹¥È¤ò»ØÄꤹ¤ë¤¿¤á¤Î¡¢'title' ¤È 'short-title' ¤Î¤É¤Á¤é¤«¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ + + +xml:lang +¥á¥¿¥Ç¡¼¥¿¥Æ¥­¥¹¥È¤Î¤¿¤á¤Î¥í¥±¡¼¥ë¸À¸ì¤Þ¤¿¤Ï¸À¸ì¡¿¹ñ¥»¥ì¥¯¥¿¡£É¸½à¤Î Java ¥í¥±¡¼¥ë̾¤¬´üÂÔ¤µ¤ì¤Þ¤¹ (ISO-639 ¤È ISO-3166)¡£Í­¸ú¤ÊÃͤȤ·¤Æ 'en' ¤ä 'en\_US' ¤ò´Þ¤ß¤Þ¤¹¡£ + + +Îã: +\begin{screen} + + ... +Ma Premiere Page de PSML +¢ÂBienvenido a PAL¥Ý¡¼¥¿¥ë! +K«Ósz«Ónti a PAL¥Ý¡¼¥¿¥ë! + ... + + +\end{screen} + +\subsection{PSML ¥»¥­¥å¥ê¥Æ¥£À©¸Â} +page¡¢fragment¡¢folder¡¢link¡¢page-security Í×ÁÇÆâ¤Ç¸½¤ì¤ë \<security-constraints\>¡¢\<security-constraints-def\>¡¢\<global-security-constraints-ref\> Í×ÁǤˤĤ¤¤Æ¤Ï¡¢ËܾϤΡ֥»¥­¥å¥ê¥Æ¥£¡×¤ÎÀá¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{PSML ¥á¥Ë¥å¡¼} +page¡¢folder Í×ÁÇÆâ¤Ç¸½¤ì¤ë \<menu\> Í×ÁǤϡ¢ËܾϤΡ֥á¥Ë¥å¡¼¡×¤ÎÀá¤Çµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,387 @@ + +\if0 +Copyright 2005 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥á¥Ë¥å¡¼} + + + + + + + +\subsection{¥á¥Ë¥å¡¼¤ÎÀë¸À} + +¥á¥Ë¥å¡¼¤ÎÀë¸À¤Ï¡¢É½¼¨¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Ë¿·¤·¤¤¥Ê¥Ó¥²¡¼¥·¥ç¥óÍ×ÁǤòÄɲä·¤¿¤ê¡¢¥Ç¥Õ¥©¥ë¥È¤Î¤â¤Î¤ò¥«¥¹¥¿¥Þ¥¤¥º¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î PSML Àë¸À¤Ï¡¢page Í×ÁÇ¤È folder Í×ÁǤΰìÉôʬ¤Ç¤¹¡£Â¾¤Î PSML Í×ÁǤÈƱÍͤˡ¢¥á¥Ë¥å¡¼Àë¸À¤Ï¡¢¿Æ¥Õ¥©¥ë¥À¤ÇÄêµÁ¤µ¤ì¤¿Á´¤Æ¤Ë²Ã¤¨¤Æ¡¢¥Ú¡¼¥¸Æâ¤ÇÌÀ¼¨Åª¤ËÄêµÁ¤µ¤ì¤ë¤â¤Î¤¬Í­¸ú¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢¥°¥í¡¼¥Ð¥ë¤Ê¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤Ï¡¢¥µ¥¤¥È¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë PSML ¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£ÆÃÄê¤Î¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼¤ÎÄêµÁ¤Ï¡¢¿Æ¥Õ¥©¥ë¥À¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëƱ¤¸Ì¾Á°¤Î¥á¥Ë¥å¡¼¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ + + +¥Ý¡¼¥¿¥ë¤Î¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Æ¥ó¥Ä¤òÉÁ²è¤·¤Æ¤¤¤ë¤È¤­¤Ë¡¢Ì¾Á°¤Ç¥Ú¡¼¥¸¥á¥Ë¥å¡¼¤ÎÀë¸À¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£¥á¥Ë¥å¡¼¤Ï¡¢Æ°Åª¤Ê¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ú¥¤¥ó¤ä¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥¿¥Ö¤ä¡¢¥Ñ¥ó¤¯¤º¥ê¥¹¥È¤ä¡¢¥×¥ë¥À¥¦¥ó¥á¥Ë¥å¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢¥µ¥¤¥È¤Î¥Ú¡¼¥¸¸ÇÍ­¤Î PSML ¥¨¥ì¥á¥ó¥È¤ò»ý¤ÄưŪ¤Ê¥á¥Ë¥å¡¼ÄêµÁ¤ÎÁªÂò»è¤ò¼ÂºÝ¤Ë·ÁÀ®¤¹¤ë¤³¤È¤òôÅö¤·¤Æ¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢¥°¥í¡¼¥Ð¥ë¤Ê¥á¥Ë¥å¡¼ÄêµÁ¤Ï¡¢°ìÈÌŪ¤Ë¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤¬¹½À®¤µ¤ì¤Æ¤¤¤ë´Ö¡¢¼¡¤Î¤è¤¦¤Ê½ç½ø¤Ç¥¤¥Ù¥ó¥È¤Ë´Ø·¸¤·¤Þ¤¹¡£ +¥Ý¡¼¥¿¥ë¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢Ì¾Á°¤Ç¥á¥Ë¥å¡¼ÄêµÁ¤ÎÍ×µá¤ò¹Ô¤¤¤Þ¤¹¡£ÄêµÁ¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤Ë·Ñ¾µ¤µ¤ì¡¢¥ë¡¼¥È¥Õ¥©¥ë¥À¤Î PSML ¤ËÀßÄꤵ¤ì¤Þ¤¹¡£¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤Î¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥á¥Ë¥å¡¼ÄêµÁ¤ò²ò¼á¤·¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ä¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ê¥ó¥¯¤òÀßÃÖ¤·¤Þ¤¹¡£¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥á¥Ë¥å¡¼ÄêµÁ¼«¿È¤È»»½Ð¤µ¤ì¤¿¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤ò¸µ¤Ë¡¢¥Ý¡¼¥¿¥ë¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥³¥ó¥Æ¥ó¥Ä¤Ë¥¿¥¤¥È¥ë¤È¥Æ¥­¥¹¥È¤òÉÁ²è¤·¡¢¥á¥Ë¥å¡¼¤òɽ¼¨¤·¤Þ¤¹¡£ + + +¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤Ã¤Æ¡¢ÆâÉôŪ¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤¿¶¦Ä̤Υá¥Ë¥å¡¼ÄêµÁ¤¬Â¸ºß¤·¡¢¥µ¥¤¥È¤Î¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤Î PSML Í×ÁǤËÌÀ¼¨Åª¤Ë¤ÏÄêµÁ¤ÎɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£ +pages: ¥Ý¡¼¥¿¥ë¾å¤Î¥Ú¡¼¥¸¥¿¥Ö¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢ÁêÂÐŪ¤Ê¥Ú¡¼¥¸¥á¥Ë¥å¡¼¡£bredcrumbs: ¥Ú¡¼¥¸¥¿¥Ö°Ê²¼¤Ë¥ê¥ó¥¯¤ÎÍúÎò¤òÄ󶡤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¥Ú¡¼¥¸¤Ø¤Î¥Ñ¥¹¡£navigations: ¥Ý¡¼¥¿¥ë¤Î²£¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ñ¥Í¥ë¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢ÁêÂÐ¥µ¥Ö¥Õ¥©¥ë¥À¤È¥ë¡¼¥È¥ì¥Ù¥ë¤Î¥ê¥ó¥¯¥á¥Ë¥å¡¼back: ¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¥¿¥Ö¾å¤Î¡¢°ÊÁ°¤Î¥Ú¡¼¥¸¤Ø 1 ¤ÄÌá¤ë¤¿¤á¤Î¥ê¥ó¥¯¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¿Æ¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼¡£ +¥á¥Ë¥å¡¼ÄêµÁÆâ¤Ç¹½ÃÛ¤µ¤ì¤ë¤³¤ì¤é¤Ï¡¢´üÂԤɤª¤ê¡¢¥µ¥¤¥È¤Î PSML Æâ¤ÇƱ¤¸Ì¾Á°¤ÇÀë¸À¤µ¤ì¤ë¥á¥Ë¥å¡¼¤Ë¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ + + +\subsection{¥á¥Ë¥å¡¼¤ÎÄêµÁ} + +\<menu\> Í×ÁǤϡ¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤â¤·¤¯¤Ï¾¤Î¥á¥Ë¥å¡¼Æâ¤Î³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¥á¥Ë¥å¡¼¤òÄêµÁ¤·¤Þ¤¹¡£menu Í×ÁǤˤϡ¢¤¿¤¯¤µ¤ó¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +name +¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É¤ª¤è¤Ó(¤Þ¤¿¤Ï)¥á¥Ë¥å¡¼»²¾È¤«¤é¤Î¸¡º÷¤Î¤¿¤á¤Î¥á¥Ë¥å¡¼Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥Î¡¼¥É¤Çɬ¿Ü¤Ç¡¢³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤Ç¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ + + +options +¥á¥Ë¥å¡¼¤Î»ØÄê¤Ë¡¢¥É¥­¥å¥á¥ó¥È¤È¥Õ¥©¥ë¥À¤Î¿¼¤¤³¬Áؤ¬Â¸ºß¤¹¤ë¾ì¹ç¡¢¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥ë¡¼¥È¥É¥­¥å¥á¥ó¥È¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¡¢¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ê¥ó¥¯¤Î»ØÄê¤ò¹Ô¤¦¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤âÄêµÁ¤·¤Þ¤¹¡£¥«¥ó¥Þ¤Ç¶èÀڤ俥ѥ¹¤ª¤è¤Ó (¤Þ¤¿¤Ï) Àµµ¬É½¸½¤Î¥Ñ¥¿¡¼¥ó¤ò¡¢Ê£¿ô¤Î¥ª¥×¥·¥ç¥ó¥Ñ¥¹¤È¤·¤Æ»ØÄê²Äǽ¤Ç¤¹¡£ÁêÂХѥ¹¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£¡Ö~¡×¤ä¡Ö@¡×¤È¤¤¤Ã¤¿ÆÃÊ̤ʥѥ¿¡¼¥ó¤ò¡¢¸½ºß¤Î¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +depth +¥ª¥×¥·¥ç¥ó¥Õ¥©¥ë¥À¤«¤é¤Î¥É¥­¥å¥á¥ó¥È¤Î¿¼¤µ¤ò»ØÄꤷ¤Þ¤¹ (0 °Ê²¼¤Î¿¼¤µ¤Î»ØÄê¤Ï̵¸ÂÂç¤òɽ¤¹)¡£¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢¤½¤ì¤¾¤ì¤Î²Ä»ë¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤«¡¢¥µ¥¤¥È¤Ø¤Î¥ê¥ó¥¯¤ò¹Ô¤¦¤¿¤á¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ï¤³¤ÎÀßÄê¤Ë¤è¤Ã¤Æ³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ + + +paths +¥ë¡¼¥È¥Õ¥©¥ë¥À¤«¤é»ØÄꤵ¤ì¤¿ÁªÂò»è¤Ø¤Î½ç½øÉÕ¤­¤Î¥Ñ¥¹¥ª¥×¥·¥ç¥ó¤ò´Þ¤à¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶ÃÍ¡£¤³¤ÎÀßÄê¤Ï¡ÖÍúÎò¡×¤â¤·¤¯¤Ï¡Ö¥Ñ¥ó¤¯¤º¥ê¥¹¥È¡×¥á¥Ë¥å¡¼¤òÀ¸À®¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£ + + +regexp +ÁªÂò»è¤ÎÃͤȤ·¤Æ¥ï¥¤¥ë¥É¥«¡¼¥É¤äÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶Â°À­¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÀµµ¬É½¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ + + +profile +¥ª¥×¥·¥ç¥ó¤ÎÃͤòɾ²Á¤¹¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥ª¥×¥·¥ç¥ó¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÎÃͤâÀßÄꤷ¤Þ¤¹¡£¡Ö*¡×¤Î»ØÄê¤Ï¡¢Á´¤Æ¤Î¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¿Æ¥á¥Ë¥å¡¼¤¬ÁªÂò¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë̾¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +order +¥Þ¥Ã¥Á¤¹¤ëÁªÂò»è¤Î½ç½ø¤òȽÃǤ¹¤ë¤¿¤á¤Î¡¢¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤ÎÀµµ¬É½¸½¤Î¥ê¥¹¥È¡¢¤â¤·¤¯¤ÏÀµµ¬É½¸½¤Î¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤ÎÃÍ¡£¤³¤Î°À­¤Ï¡¢¤É¤ÎÁªÂò»è¤ÎÍ×ÁǤËÂФ·¤Æ¤â¥Ç¥Õ¥©¥ë¥È¤ÎÁªÂò»è¤ÎÃͤȤ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÁªÂò»è¤Î»Ò¶¡¤Ø¤Î¥Þ¥Ã¥Á¤òºÆÅÙ½ç½ø¤Å¤±¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢Ê£¿ô¤ÎÁªÂò»è¤Ï¡¢´Þ¤Þ¤ì¤ë¥Õ¥©¥ë¥À¥É¥­¥å¥á¥ó¥È¤Î¤â¤Î¤È¤·¤ÆÊÖ¤µ¤ì¤ë½ç½ø¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ÁªÂò»è¤Î¥Ñ¥¹¤Ï¡¢½ç½ø¤Å¤±¤é¤ì¤¿¤â¤Î¤Î¸å¤ËÄɲ䵤ì¤Þ¤¹¡£ + + +skin +¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¾Êά²Äǽ¤Ê¥Ç¥³¥ì¡¼¥¿¡£¤³¤Î°À­¤Ï¡¢ÁªÂò»è¤ä³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥¹¥­¥ó¤ÎÃͤȤ·¤Æ¤â»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + + +\<menu\> Í×ÁǤϡ¢Â¿¿ô¤Î¾¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£¥¿¥¤¥È¥ë¤È¥á¥¿¥Ç¡¼¥¿Í×ÁǤò½ü¤¤¤Æ¡¢¤³¤ì¤é¤ÎÍ×ÁǤÎÁêÂÐŪ¤Ê½ç½ø¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬¤½¤ì¤é¤òÄ󼨤¹¤ë½ç½ø¤ò·èÄꤷ¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + +title? +¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥¿¥¤¥È¥ë¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥á¥Ë¥å¡¼¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤µ­½Ò¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¤â¤·¥á¥Ë¥å¡¼ÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥á¥Ë¥å¡¼¤Î̾Á°¤¬»È¤ï¤ì¤Þ¤¹¡£ + + +short-title? +¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Êû¤¤¥¿¥¤¥È¥ë¡£Ã»¤¤¥¿¥¤¥È¥ë¤Ï¡¢¤â¤·ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥á¥Ë¥å¡¼¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£ + + +metadata* +ÄÉ²Ã¤Î¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¤ò»ØÄꤷ¤Þ¤¹(¾Êά²Ä)¡£ + + +options* +¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤϡ¢¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î¤¿¤á¤Î¥³¥ó¥Æ¥ó¥ÄÍ×ÁǤò»ØÄꤷ¤Þ¤¹¡£ + + +separator* +¤³¤Î¥á¥Ë¥å¡¼ÄêµÁÆâ¤Ç¡¢¥¤¥ó¥é¥¤¥ó¤Ç´Þ¤Þ¤ì¤ë¥Æ¥­¥¹¥È¹Ô¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡¢½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁÇ¡£ + + +menu* +¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Ë´Þ¤Þ¤ì¤ë¡¢³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢Â¾¤Î½ç½øÉÕ¤­¥á¥Ë¥å¡¼Í×ÁÇ¡£ + + +include* +¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Ë´Þ¤á¤ë¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¡¢¤â¤·¤¯¤ÏÁªÂò»è¤ò»ØÄꤷ¤Þ¤¹¡£´Þ¤á¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤΥƥ­¥¹¥È¤Ç¤¹¡£ + + +exclude* +¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤«¤é½ü³°¤¹¤ë¡¢Â¾¤Î¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ò»ØÄꤷ¤Þ¤¹¡£½ü³°¤¹¤ë¤¿¤á¤ÎÍ×ÁǤ˴ޤޤì¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¡¢¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤΥƥ­¥¹¥È¤Ç¤¹¡£ + + +Îã: +\begin{screen} + +/some-top-page.psml,/custom/some-other-page.psml + + +\end{screen} +\begin{screen} + + +\end{screen} +\begin{screen} + + +\end{screen} +\begin{screen} + + +Haut +/group-pages/* + + +-- Top Pages -- + + +/* + + + +/custom-folder/ + +top-role-pages +More Top Pages +top-role-pages + + +\end{screen} +¥Ç¥Õ¥©¥ë¥È¤Î¶¦ÄÌ¥á¥Ë¥å¡¼Àë¸À¤Î¤¿¤á¤ÎÄêµÁ¤Ï¡¢ÆâÉôŪ¤Ë¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + + +\end{screen} +\begin{screen} + + +\end{screen} +\begin{screen} + +Folders +./*/ +page-navigations +Additional Links +/*.link + + +\end{screen} +\begin{screen} + + +\end{screen} +¤³¤ì¤é¤ÎÄêµÁ¤Î¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ï¡¢ÆâÉôŪ¤ËÊÑ´¹¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\subsection{¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤ÎÄêµÁ} + +\<options\> Í×ÁǤϡ¢¥á¥Ë¥å¡¼Æâ¤Ëñ°ì¤Þ¤¿¤ÏÊ£¿ô¤ÎÁªÂò»è¤òÄêµÁ¤·¤Þ¤¹¡£¤³¤Îñ½ã¤ÊÍ×ÁǤÎʸ»úÎó¤Ï¡¢¥Ú¡¼¥¸¡¢¤â¤·¤¯¤Ï¥Õ¥©¥ë¥À¡¢¤â¤·¤¯¤Ï¥ê¥ó¥¯¤Î¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤òºî¤ë¥É¥­¥å¥á¥ó¥È¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£Ê£¿ô¤ÎÁªÂò»è¤Î¥Ñ¥¹¤ò¡¢¥Ñ¥¹¤ª¤è¤Ó (¤â¤·¤¯¤Ï) Àµµ¬É½¸½¥Ñ¥¿¡¼¥ó¤ò¥«¥ó¥Þ¤Ç¶èÀڤ俥ꥹ¥È¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ÁêÂХѥ¹¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£¡Ö~¡×¤ä¡Ö@¡×¤È¤¤¤Ã¤¿ÆÃÊ̤ʥѥ¿¡¼¥ó¤ò¡¢¸½ºß¤Î¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ÎÍ×ÁǤϡ¢¥á¥Ë¥å¡¼Í×ÁǤȤ¿¤¯¤µ¤ó¤Î°À­¤ò¶¦Í­¤·¤Þ¤¹¡£ + + + +°À­ +ÀâÌÀ + + +depth +ÁªÂò»è¤Î¥Õ¥©¥ë¥À¤«¤é¤Î¥É¥­¥å¥á¥ó¥È¤Î¿¼¤µ¤ò»ØÄꤷ¤Þ¤¹ (0 °Ê²¼¤Î¿¼¤µ¤Ï̵¸ÂÂç¤òɽ¤·¤Þ¤¹)¡£¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢¥µ¥¤¥È¤Ø¤Î¤½¤ì¤¾¤ì¤Î²Ä»ë¥Ú¡¼¥¸¤Þ¤¿¤Ï¥ê¥ó¥¯¤òɽ¼¨¤¹¤ë¤è¤¦¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ï¡¢¤³¤ÎÀßÄê¤Ë¤è¤Ã¤Æ³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ + + +paths +¥ë¡¼¥È¥Õ¥©¥ë¥À¤«¤é»ØÄꤵ¤ì¤¿ÁªÂò»è¤Ø¤Î½ç½øÉÕ¤­¤Î¥Ñ¥¹¤ÎÁªÂò»è¤ò´Þ¤à¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶ÃÍ¡£¤³¤ÎÀßÄê¤Ï¡ÖÍúÎò¡×¤â¤·¤¯¤Ï¡Ö¥Ñ¥ó¤¯¤º¥ê¥¹¥È¡×¥á¥Ë¥å¡¼¤òÀ¸À®¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£ + + +regexp +ÁªÂò»è¤ÎÃͤȤ·¤Æ¥ï¥¤¥ë¥É¥«¡¼¥É¤äÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶Â°À­¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÀµµ¬É½¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ + + +profile +ÁªÂò»è¤ÎÃͤòɾ²Á¤¹¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢ÁªÂò»è¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÎÃͤâÀßÄꤷ¤Þ¤¹¡£¡Ö*¡×¤Î»ØÄê¤Ï¡¢Á´¤Æ¤Î¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¿Æ¥á¥Ë¥å¡¼¤¬ÁªÂò¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë̾¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +order +¥Þ¥Ã¥Á¤¹¤ëÁªÂò»è¤Î½ç½ø¤òȽÃǤ¹¤ë¤¿¤á¤Î¡¢¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤ÎÀµµ¬É½¸½¤Î¥ê¥¹¥È¡¢¤â¤·¤¯¤ÏÀµµ¬É½¸½¤Î¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤ÎÃÍ¡£¤³¤Î°À­¤Ï¡¢¤É¤ÎÁªÂò»è¤ÎÍ×ÁǤËÂФ·¤Æ¤â¥Ç¥Õ¥©¥ë¥È¤ÎÁªÂò»è¤ÎÃͤȤ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÁªÂò»è¤Î»Ò¶¡¤Ø¤Î¥Þ¥Ã¥Á¤òºÆÅÙ½ç½ø¤Å¤±¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢Ê£¿ô¤ÎÁªÂò»è¤Ï¡¢´Þ¤Þ¤ì¤ë¥Õ¥©¥ë¥À¥É¥­¥å¥á¥ó¥È¤Î½çÈÖ¤ÇÊÖ¤µ¤ì¤ë½ç½ø¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ÁªÂò»è¤Î¥Ñ¥¹¤Ï¡¢½ç½ø¤Å¤±¤é¤ì¤¿¤â¤Î¤Î¸å¤ËÄɲ䵤ì¤Þ¤¹¡£ + + +skin +¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¥Ç¥³¥ì¡¼¥¿(¾Êά²Ä)¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + +Îã: +\begin{screen} + + ... + + /some-top-page.psml,/custom/some-other-page.psml,/*.link + + ... + + +\end{screen} + +\subsection{¥á¥Ë¥å¡¼¤Î¥»¥Ñ¥ì¡¼¥¿¤ÎÄêµÁ} + +\<separator\> Í×ÁǤϡ¢¥á¥Ë¥å¡¼¤Ë´Þ¤á¤ë¥»¥Ñ¥ì¡¼¥¿¤òÄêµÁ¤·¤Þ¤¹¡£¥»¥Ñ¥ì¡¼¥¿¤Ï¡¢ÁªÂò»è¤â¤·¤¯¤Ï³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤¬¡¢¥á¥Ë¥å¡¼¤ÎÄêµÁÆâ¤Î¤³¤ÎÍ×Áǰʲ¼¤Ë¸½¤ì¤¿¾ì¹ç¤Î¤ß´Þ¤Þ¤ì¤Þ¤¹¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ï¡¢¤³¤ÎÍ×ÁÇÆâ¤Î¥Æ¥­¥¹¥È¡¢¤â¤·¤¯¤Ï¥Æ¥­¥¹¥È¥á¥Ë¥å¡¼ÄêµÁ¤ÎÍ×ÁÇÆâ¤Ç»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥»¥Ñ¥ì¡¼¥¿Í×ÁǤ˵­½Ò²Äǽ¤Ê°À­¤Ï 1 ¤Ä¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ + + + +°À­ +ÀâÌÀ + + +skin +¥á¥Ë¥å¡¼¥»¥Ñ¥ì¡¼¥¿¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¾Êά²Äǽ¤Ê¥Ç¥³¥ì¡¼¥¿¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ + + + +\<separator\> Í×ÁǤϡ¢¤¿¤¯¤µ¤ó¤Î¾¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ + + + +Í×ÁÇ +ÀâÌÀ + + +title? +¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥¿¥¤¥È¥ë¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤µ­½Ò¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¤â¤·¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ + + +text? +¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥Æ¥­¥¹¥È¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ïɬ¿Ü¤Ç¡¢¤³¤Î°À­¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤è¤¦¤È¡¢¥»¥Ñ¥ì¡¼¥¿Í×ÁÇÆâ¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»ØÄꤵ¤ì¤è¤¦¤È¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬¥á¥Ë¥å¡¼Æâ¤ËÁÞÆþ¤¹¤ë¤¿¤á¤Î¥Æ¥­¥¹¥È¤È¤Ê¤ê¤Þ¤¹¡£ + + +metadata* +¥í¥±¡¼¥ëÆÃÍ­¤ÎÄɲäΥ¿¥¤¥È¥ë¤È¥»¥Ñ¥ì¡¼¥¿¥Æ¥­¥¹¥È(¾Êά²Ä)¡£ + + +Îã: +\begin{screen} + + ... +------------- + ... + +-- Top 10 Pages -- +Haut Pages + + + ... + + +\end{screen} + +\subsection{¥á¥Ë¥å¡¼¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤¿¤á¤ÎÄêµÁ} + +\<include\> Í×ÁǤϡ¢ÁªÂò»è¤Þ¤¿¤Ï¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿ ¥á¥Ë¥å¡¼¤ò´Þ¤ß¤Þ¤¹¡£´Þ¤á¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¡¢¤³¤Î¥¨¥ì¥á¥ó¥È¤Î¥Æ¥­¥¹¥ÈÃͤȤ·¤Æ»ØÄꤷ¤Þ¤¹¡£¤³¤ÎÍ×ÁǤ˴ޤá¤ë¤³¤È¤Î¤Ç¤­¤ëÍ­¸ú¤Ê°À­¤Ï 1 ¤Ä¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ + + + +°À­ +ÀâÌÀ + + +nest +»ØÄꤷ¤¿¥á¥Ë¥å¡¼¤¬¡¢³¬Áز½¤¹¤ë¤¿¤á¤Î¤â¤Î¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¿¿µ¶ÃÍ¡£¤â¤·¤³¤Î°À­¤Ë 'true' ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢´Þ¤á¤ë¥á¥Ë¥å¡¼¤Ï¥µ¥Ö¥á¥Ë¥å¡¼¤È¤·¤Æ³¬Áز½¤µ¤ì¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¤Î¤Ê¤é¡¢Á´¤Æ¤ÎÁªÂò»è¤È»ØÄꤷ¤¿¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Ï¡¢¤³¤Î¥á¥Ë¥å¡¼Æâ¤Ë¥¤¥ó¥é¥¤¥ó¤ÇÁÞÆþ¤µ¤ì¤Þ¤¹¡£ + + +Îã: +\begin{screen} + + ... +navigations + ... + + +\end{screen} + +\subsection{¥á¥Ë¥å¡¼¤Î½ü³°¤ò¹Ô¤¦¤¿¤á¤ÎÄêµÁ} + +\<exclude\> Í×ÁǤϡ¢ÁªÂò»è¤â¤·¤¯¤Ï¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿ ¥á¥Ë¥å¡¼¤ò½ü³°¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¼ç¤Ë¡¢¤³¤Î¥á¥Ë¥å¡¼¤«¤é¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸Æâ¤Î¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Ë´û¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤ò¾Ãµî¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£°ìÃפ¹¤ëÁªÂò»è¤Þ¤¿¤Ï¥á¥Ë¥å¡¼¤¬¥á¥Ë¥å¡¼ÄêµÁÆâ¤Î¤³¤ÎÍ×ÁǤè¤ê¾å¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢½ü³°¤µ¤ì¤Þ¤¹¡£½ü³°¤¹¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¡¢¤³¤Îñ½ã¤ÊÍ×ÁǤΥƥ­¥¹¥ÈÃͤȤ·¤Æ»ØÄꤷ¤Þ¤¹¡£ + +Îã: +\begin{screen} + + ... +pages + ... + + +\end{screen} + +\subsection{¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿} + +¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ú¡¼¥¸¤¬ PAL¥Ý¡¼¥¿¥ë¥Ñ¥¤¥×¥é¥¤¥ó¤ÇÉÁ²è¤µ¤ì¤ë¤È¤­¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤«¤é¥á¥Ë¥å¡¼¤òÍ׵ᤷ¤Þ¤¹¡£¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥á¥Ë¥å¡¼¤¬ PSML ¤ÇÄêµÁ¤µ¤ì¤ë¤³¤È¤ò´üÂÔ¤·¤Þ¤¹¡£¥«¥¹¥¿¥à¥á¥Ë¥å¡¼¤¬¥Ý¡¼¥¿¥ë¤Ëɽ¼¨¤µ¤ì¤ëÁ°¤Ë¡¢¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥«¥¹¥¿¥à¥á¥Ë¥å¡¼¤ÎÉÁ²è¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£°Ê²¼¤Ë¡¢Velocity ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î header.vm ¥Õ¥¡¥¤¥ë¤«¤éÈ´¤­½Ð¤·¤¿Îã¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} +... +\#set(\$pagesStandardMenu = \$site.getMenu("pages")) +\#if(!\$pagesStandardMenu.empty) + +\#includeTabsNavigation(\$pagesStandardMenu \$LEFT\_TO\_RIGHT) + +\#end +... + +\end{screen} + +¤³¤Î¥³¡¼¥É¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸Æâ¤Îɸ½àŪ¤Ê¥Ú¡¼¥¸¤Î¥¿¥Ö¥á¥Ë¥å¡¼¤òÉÁ²è¤·¤Þ¤¹¡£¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï Velocity ¤Î¥³¥ó¥Æ¥­¥¹¥ÈÊÑ¿ô\$site¤È¤·¤Æɽ¤ì¤Þ¤¹¡£¶õ¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î¤¿¤á¤ÎȽÃǤϡ¢¶õ¤Î¥á¥Ë¥å¡¼¤¬¥Ú¡¼¥¸¥³¥ó¥Æ¥ó¥ÄÆâ¤ËÉÁ²è¤µ¤ì¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ¸å¤Ë¡¢¥Ç¥³¥ì¡¼¥¿¥Þ¥¯¥í¤¬¡¢¥á¥Ë¥å¡¼¥³¥ó¥Æ¥ó¥Ä¤òŸ³«¤¹¤ë¤¿¤á¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£°ìÈ̤ˡ¢ºÆµ¢Åª¤Ê¥Þ¥¯¥í¤Îµ¯Æ°¤Ç³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤òÉÁ²è¤¹¤ë¤³¤È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¢¤³¤Î¥¢¥×¥í¡¼¥Á¤ò¼è¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ï¥Ú¡¼¥¸¥ª¥×¥·¥ç¥ó¤À¤±¤ò´üÂÔ¤·¤Þ¤¹¡£°Ê²¼¤Ë¡¢¥Ú¡¼¥¸¤Î¥¿¥Ö¥á¥Ë¥å¡¼¤òÉÁ²è¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¥Þ¥¯¥í¼ÂÁõ¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} +\#macro (includeTabsNavigation \$\_menu \$\_orientation) + + + \#foreach(\$element in \$\_menu.elements.iterator()) + \#if(\$element.elementType == "option") + \#set(\$tabTitle = \$element.getTitle(\$preferedLocale)) + \#set(\$tabName = \$element.getShortTitle(\$preferedLocale)) + \#if(\$\_orientation == \$LEFT\_TO\_RIGHT) + \#if(\$element.isSelected(\$site)) +\  +\${tabName} +\  + \#else + \#set(\$tabUrl = \$jetspeed.getAbsoluteUrl(\$element.url)) +\  +\${tabName} +\  + \#end + \#end + \#end + \#end + + +\#end + +\end{screen} + +¤³¤Î¥Þ¥¯¥í¤Ï¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¡¢½èÍý¤µ¤ì¤¿¥Ú¡¼¥¸¥á¥Ë¥å¡¼¤ÎÁªÂò»èÁ´¤Æ¤ËÅϤäÆÈ¿Éü¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢É½¼¨¤µ¤ì¤ë¥¿¥Ö¤½¤ì¤¾¤ì¤òºî¤ë¤¿¤á¤Î HTML Í×ÁǤΥơ¼¥Ö¥ë¥Ç¡¼¥¿¤òÉÁ²è¤·¤Þ¤¹¡£¥á¥Ë¥å¡¼Á´ÂΤϡ¢Ã±°ì¤Î¹Ô¤Î HTML ¥Æ¡¼¥Ö¥ë¤È¤·¤ÆÉÁ²è¤µ¤ì¤Þ¤¹¡£ + + +°Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¥ª¥Ö¥¸¥§¥¯¥È¤¬¥ì¥¤¥¢¥¦¥È¥Ç¥³¡¼¥ì¡¼¥¿¤Ëɽ¼¨¤¹¤ë¡¢Àë¸À·¿¤Î¥á¥Ë¥å¡¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òºî¤ë¤¿¤á¤Î¥×¥é¥¤¥Þ¥ê¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ëµó¤²¤Þ¤¹¡£ +org.apache.jetspeed.portalsite.Menuorg.apache.jetspeed.portalsite.MenuElementorg.apache.jetspeed.portalsite.MenuOptionorg.apache.jetspeed.portalsite.MenuSeparatororg.apache.jetspeed.portalsite.PortalSiteRequestContext> + + +\subsection{¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È} + +PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ï¡¢ 2 ¤Ä¤ÎÌ©Àܤ˴ط¸¤·¤¿Ìò³ä¤¬¤¢¤ê¤Þ¤¹¡£ +¥æ¡¼¥¶¤«¤é¤Î¥Ý¡¼¥¿¥ë¤Î¥ê¥¯¥¨¥¹¥È URL ¤ò¡¢¥µ¥¤¥ÈÆâ¤Î PSML ¥Ú¡¼¥¸¤â¤·¤¯¤Ï¥Õ¥©¥ë¥ÀÍ×ÁǤ˥ޥåפ·¤Þ¤¹¡£¥µ¥¤¥È¤Ç¥æ¡¼¥¶¤¬ÍøÍѲÄǽ¤Ê¤â¤Î¤òÈ¿±Ç¤·¤¿¡¢¥µ¥¤¥È¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥á¥Ë¥å¡¼¤È¡¢¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤ò¹½ÃÛ¤·¤Þ¤¹¡£ +°ì¸«¡¢¤³¤ì¤é¤Îµ¡Ç½¤Ï¡¢PSML ¥µ¥¤¥ÈÄêµÁ¤ò¸¡º÷¤·¡¢Áöºº¤¹¤ë¤À¤±¤Î¡¢Èæ³ÓŪ¥·¥ó¥×¥ë¤Ê¤â¤Î¤Ç¤¢¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£¤·¤«¤·¡¢°ìÅÙ¥×¥í¥Õ¥¡¥¤¥é¡¼¤Î½¸Ìó¤È¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Î¥Õ¥£¥ë¥¿¥ê¥ó¥°¤ÎÊ£»¨¤µ¤¬ºÎ¤êÆþ¤ì¤é¤ì¤ë¤È¡¢¥Þ¥Ã¥Ô¥ó¥°¤Ï¤â¤Ï¤äñ½ã¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£ + + +¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢PSML ¥µ¥¤¥È¤Î¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥Þ¥Ã¥Á¤µ¤»¤ë¥Ó¥å¡¼¤È°ìÃפ·¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¤¬½ÅÍפǤ¹¡£¥á¥Ë¥å¡¼Í×ÁǤλØÄꤹ¤ë¥É¥­¥å¥á¥ó¥È¤Î¥Ñ¥¹¤Ï¡¢PSML ¥Õ¥©¥ë¥À¤ä¥Ú¡¼¥¸¤ò»Ø¤·¼¨¤¹¤¿¤á¤Ë»È¤ï¤ì¤ëʪÍý¥Ñ¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë¡¢¥Ý¡¼¥¿¥ë¥ê¥¯¥¨¥¹¥È¤òÈ¿±Ç¤¹¤ë¥Ñ¥¹¤Ï¡¢¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤È¤·¤Æ´Þ¤á¤ë PSML Í×ÁǤòÁªÂò¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ë¡¢¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤È¥»¥­¥å¥ê¥Æ¥£¤Ï¡¢¤¢¤¿¤«¤â¼Â¹ÔÃæ¤Î¥ê¥¯¥¨¥¹¥È URL ¤òµÕ¤Ë¥Þ¥Ã¥×¤¹¤ë¤«¤Î¤è¤¦¤Ë¡¢¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î½¸ÃĤ˼«Æ°Åª¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,264 @@ + +\if0 +Copyright 2004-2005 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{¥»¥­¥å¥ê¥Æ¥£} + + + + + + + + +\subsection{¥»¥­¥å¥ê¥Æ¥£¤Ë¤Ä¤¤¤Æ} + +¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥Ú¡¼¥¸¤È¥Õ¥©¥ë¥À¤ËŬÍѤµ¤ì¤Þ¤¹¡£¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥Ú¡¼¥¸¤È¥Õ¥©¥ë¥À¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµö²Ä¤·¤¿¤êµñÈݤ·¤¿¤ê¤·¤Þ¤¹¡£À©Ìó¤Ï¡¢°Ê²¼¤Î 4 ¤Ä¤Î¾ì½ê¤Î 1 ¤Ä¤Þ¤¿¤ÏÁ´¤Æ¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£ +¥°¥í¡¼¥Ð¥ë:PSML ¥Ä¥ê¡¼¤Î¥ë¡¼¥È¤Ë¸ºß¤¹¤ëpage.security¥Õ¥¡¥¤¥ëÆâ¤ÎÀë¸À¤È¤·¤ÆÄêµÁ¥Õ¥©¥ë¥À:³Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥ª¥×¥·¥ç¥Ê¥ë¤Ë¸ºß¤¹¤ëfolder.metadata¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¥Ú¡¼¥¸:ÆÃÄê¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë PSML ¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¥Õ¥é¥°¥á¥ó¥È:¥Ú¡¼¥¸Æâ¤ÎÆÃÄê¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë PSML ¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ + + + +µö²Ä¤Ï¡¢¥Ú¡¼¥¸¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤Ø¤Î¥¢¥¯¥»¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¡¢¾µÇ§¡¢¸¢¸Â¤Î¼øÍ¿¡¢¼çÂΤΥꥹ¥È¤Î¤É¤ì¤«¤Ë´Ø·¸¤·¤Þ¤¹¡£¥»¥­¥å¥ê¥Æ¥£À©Ìó¤òÍ¿¤¨¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢ 1 ¤Ä°Ê¾å¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÈÁȤ߹礻¤¿¡¢ 1 ¤Ä°Ê¾å¤Î¥»¥­¥å¥ê¥Æ¥£¼çÂΤΥꥹ¥È¤Î´ØÏ¢ÉÕ¤±¤ò¹Ô¤¦¤È¤¤¤¦¤³¤È¤Ç¤¹¡£À©Ìó¤òÍ¿¤¨¤ë¤È¡¢´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥ê¥¹¥È¤ÎÄ̤ê¤Ë¤Ê¤ë¤è¤¦¥Ú¡¼¥¸¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤Ø¤Î¥¢¥¯¥»¥¹¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£ + + + + +ÈÝǧ¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢ 1 ¤Ä°Ê¾å¤Î¥»¥­¥å¥ê¥Æ¥£¼çÂΤȶ¦¤ËÀë¸À¤µ¤ì¤Þ¤¹¡£À©Ìó¤ÎÈÝǧ¤Ï¡¢Í¿¤¨¤é¤ì¤¿¼çÂΤΥꥹ¥È¤ÎÄ̤ê¤Ë¤Ê¤ë¤è¤¦¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤ò¶Ø»ß¤·¤Þ¤¹¡£À©Ìó¤ÎÈÝǧ¤Ï¡¢À©Ìó¤Î¾µÇ§¤ÎÁ°¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤ëɬÍפ¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + +¥Ú¡¼¥¸¤È¥Õ¥©¥ë¥À¤Î¥ê¥½¡¼¥¹À©Ìó¤¬Å¬ÍѤµ¤ì¤ë¤È¤­¡¢À©Ìó¤ÏÀë¸À·¿¤Þ¤¿¤Ï»²¾È·¿¤ÎÀ©Ìó¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£Àë¸À·¿¤ÎÀ©Ìó¤Ï¡¢ÆÃÄê¤Î¥Ú¡¼¥¸¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤Î¥ê¥½¡¼¥¹¤¬¡¢Å¬Àڤ˻Ȥï¤ì¤ë¤¿¤á¤ËÀë¸À¤µ¤ì¤Þ¤¹¡£»²¾È·¿¤ÎÀ©Ìó¤Ï¡¢Ãæ±û½¸¸¢Åª¤Ê¥»¥­¥å¥ê¥Æ¥£À©Ìó¥ê¥½¡¼¥¹¤Ç¤¢¤ëpage.security¥Õ¥¡¥¤¥ëÆâ¤ÇÀë¸À¤µ¤ì¤¿À©Ìó¤ò»²¾È¤·¤Þ¤¹¡£¥µ¥¤¥ÈË褫¥µ¥Ö¥µ¥¤¥ÈËè¤Ë¡¢Ç¤°Õ¤Î¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥ÀÆâ¤Ç»²¾È¤µ¤ì¤ëÀ©Ìó¤òÀë¸À¤¹¤ë¤¿¤á¤Ë¡¢page.security¤¬ 1 ¤Ä¤¢¤ê¤Þ¤¹¡£ + + + +\subsection{¥»¥­¥å¥ê¥Æ¥£À©Ìó} + +¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢PSML ¥Õ¥¡¥¤¥ëÆâ¡¢¤â¤·¤¯¤Ï¥Õ¥©¥ë¥À¤Î¥á¥¿¥Ç¡¼¥¿¥Õ¥¡¥¤¥ëÆâ¡¢¤â¤·¤¯¤Ï¥°¥í¡¼¥Ð¥ë¤Ê¥»¥­¥å¥ê¥Æ¥£¤ÎÀë¸ÀÃæ¤Ë¤¢¤ë XML Í×ÁǤǤ¹¡£¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ë¤Ï name ¤È¤¤¤¦Â°À­¤¬ 1 ¤Ä¸ºß¤·¤Þ¤¹¡£¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢°Ê²¼¤ÎÍ×ÁǤò»ý¤Á¤Þ¤¹¡£ + + +roles - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥í¡¼¥ë¼çÂΤΥꥹ¥È¡¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥í¡¼¥ë¤òɽ¤¹ +groups - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥°¥ë¡¼¥×¼çÂΤΥꥹ¥È¡¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥°¥ë¡¼¥×¤òɽ¤¹ +users - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥æ¡¼¥¶¡¼¼çÂΡ¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥æ¡¼¥¶¡¼¤òɽ¤¹ +owner - ñ°ì¤Î¥æ¡¼¥¶¡¼¼çÂÎ +permissions - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó (view, edit, help) ¤Î¥ê¥¹¥È + + +ºÇ½é¤Î 4 ¤Ä¤ÎÍ×ÁÇ (roles, groups, users, owner) ¤ÏÁ´¤Æ¡¢¾µÇ§¤µ¤ì¤ë¤â¤·¤¯¤ÏµñÈݤµ¤ì¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò»ý¤Ä¼çÂΤòÄêµÁ¤·¤Þ¤¹¡£ + + + +¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ë¤è¤Ã¤Æµö²Ä¤¬Í¿¤¨¤é¤ì¤ë¥Ý¡¼¥¿¥ë¤Î¥â¡¼¥É¤Ç¤¹¡£¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ïµö²Ä¤ò¹Ô¤¦¤À¤±¤Ç¡¢ÈÝǧ¤Ï¤·¤Þ¤»¤ó¡£ +view¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëread¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÈƱÍͤΤâ¤Î¤Ç¤¹¡£ +edit¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëwrite¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÈƱÍͤΤâ¤Î¤Ç¤¹¡£ +help¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï¡¢Â¾¤Î¥Ý¡¼¥¿¥ë¤Çinfo¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤È¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î¤ÈƱÍͤΤâ¤Î¤Ç¤¹¡£ + + + + +À©Ìó¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤ò¡¢ 1 ¤Ä°Ê¾å¤Î¥í¡¼¥ë¼çÂΤËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥í¡¼¥ë¤Ï¡¢¾µÇ§¤µ¤ì¤¿¥í¡¼¥ë¼çÂÎ (¤Ä¤Þ¤ê¤½¤Î¥æ¡¼¥¶¡¼¤¬¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È) ¤Î¥æ¡¼¥¶¡¼¥ê¥¹¥È¤«¤éÆÀ¤é¤ì¤Þ¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥í¡¼¥ë¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ + +\begin{screen} + +adminstrator, manager +view, edit + + +\end{screen} + +À©Ìó¤Ï¡¢¥í¡¼¥ë¼çÂΤΥ꥽¡¼¥¹Á´ÂΤËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥í¡¼¥ë¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ëÁ´¤Æ¤Î¥¢¥¯¥»¥¹¤¬µñÈݤµ¤ì¤Þ¤¹¡£ + +\begin{screen} + +adminstrator, manager + + +\end{screen} + + + +À©Ìó¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤ò¡¢ 1 ¤Ä°Ê¾å¤Î¥°¥ë¡¼¥×¼çÂΤËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¥°¥ë¡¼¥×¤Ï¡¢¾µÇ§¤µ¤ì¤¿¥°¥ë¡¼¥×¼çÂÎ (¤Ä¤Þ¤ê¥æ¡¼¥¶¡¼¤¬¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¥°¥ë¡¼¥×) ¤Î¥æ¡¼¥¶¡¼¤Î¥ê¥¹¥È¤«¤éÆÀ¤é¤ì¤Þ¤¹¡£ +¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥°¥ë¡¼¥×¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ +\begin{screen} + +accounting, development +view + + +\end{screen} +À©Ìó¤Ï¡¢¥°¥ë¡¼¥×¼çÂΤΥ꥽¡¼¥¹Á´ÂΤËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥°¥ë¡¼¥×¤Î¤¤¤º¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ëÁ´¤Æ¤Î¥¢¥¯¥»¥¹¤¬µñÈݤµ¤ì¤Þ¤¹¡£ +\begin{screen} + +accounting, development + + +\end{screen} + + + + +À©Ìó¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤ò¡¢ 1 ¤Ä°Ê¾å¤Î¥æ¡¼¥¶¡¼¼çÂΤËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¸½ºß¤Î¥æ¡¼¥¶¡¼¤Ï¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤ë¤¿¤á¤Ë¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥ê¥¹¥ÈÃæ¤Ë¥ê¥¹¥È¤µ¤ì¤ë¡¢¼çÂΤΠ1 ¤Ä¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ +\begin{screen} + +joey, deedee, johnny +view, edit, help + + +\end{screen} +À©Ìó¤Ï¡¢¥æ¡¼¥¶¡¼¼çÂΤÎÁ´¤Æ¤Î¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¥ê¥¹¥ÈÆâ¤Ë¤¢¤ì¤Ð¡¢Á´¤Æ¤Î¥¢¥¯¥»¥¹¤ÏµñÈݤµ¤ì¤Þ¤¹¡£ +\begin{screen} + +fred + + +\end{screen} + + + + + 1 ¤Ä°Ê¾å¤Î¼ïÎà¤Î¼çÂΤν¸¹ç¤ËÂФ·¤Æ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤¿¤ê¡¢µñÈݤ·¤¿¤ê¤Ç¤­¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£Î㤨¤Ð¡¢¤³¤³¤Ç¤Ï¥í¡¼¥ë (manager, developer) ¤È¥°¥ë¡¼¥× (QA ¤È Research) ¤ÈÆÃÄê¤Î¥æ¡¼¥¶¡¼ (dilbert) ¤ËÂФ·¤Æ¡¢view ¤È edit ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¤³¤³¤Ë¥ê¥¹¥È¤µ¤ì¤¿¥í¡¼¥ë¡¢¥æ¡¼¥¶¡¼¡¢¥°¥ë¡¼¥×¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¤³¤Î¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ + +\begin{screen} + +hacker, coder, guru +unix, linux, freebsd +betty, fred, barney, wilma +view, edit + + +\end{screen} + +À©Ìó¤Ï¡¢¼çÂΤÎÁȤ߹礻¤¬¡¢Á´¤Æ¤Î¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥°¥ë¡¼¥×¤ä¥í¡¼¥ë¤ä¥æ¡¼¥¶¡¼¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ì¤Ð¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ëÁ´¤Æ¤Î¥¢¥¯¥»¥¹¤ÏµñÈݤµ¤ì¤Þ¤¹¡£ + +\begin{screen} + +hacker, coder, guru +unix, linux, freebsd +betty, fred, barney, wilma + + +\end{screen} + + + +Á´¤Æ¤ò°ÕÌ£¤¹¤ë * (¥¢¥¹¥¿¥ê¥¹¥¯) ¤Ï¡¢¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÁ´¤Æ¤ËŬÍѲÄǽ¤Ç¤¹¡£ +\begin{screen} + +* +* + + +\end{screen} + + +\if0 + + + TODO + + +\fi + +\subsection{ Àë¸À·¿¤ÎÀ©Ìó¤È¥°¥í¡¼¥Ð¥ë¤ÎÀ©Ìó} + +Àë¸À·¿¤ÎÀ©Ìó¤Ï¡¢¥µ¥¤¥È¤Î¥ë¡¼¥È¤Ë¤¢¤ëpage.security¥Õ¥¡¥¤¥ëÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤¹¡£Àë¸À·¿¤ÎÀ©Ìó¤Ï¡¢security-constraints-ref¥¿¥°¤ò»È¤Ã¤Æ¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥ÀÆâ¤Ç»²¾È¤µ¤ì¤Þ¤¹¡£¥°¥í¡¼¥Ð¥ë¤ÊÀ©Ìó¤âÀë¸À·¿¤ÎÀ©Ìó¤Ç¤¹¡£¤³¤ì¤é¤Ï¡¢¥ë¡¼¥È PSML ¥ê¥Ý¥¸¥È¥êÆâ¤Îpage.security¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¤µ¤ì¡¢¸«ÉÕ¤«¤ê¤Þ¤¹¡£¥°¥í¡¼¥Ð¥ë¤ÊÀ©Ìó¤È¤Î°ã¤¤¤Ï¡¢page.security ¥Õ¥¡¥¤¥ë¤Î¥¹¥³¡¼¥×Æâ (¤¹¤Ê¤ï¤Á¥µ¥¤¥È) ¤ÎÁ´¤Æ¤Î¥Õ¥©¥ë¥À¤È¥Ú¡¼¥¸¤Ë¡¢°ÅÌۤΤ¦¤Á¤ËŬÍѤµ¤ì¤ë¤³¤È¤Ç¤¹¡£PAL¥Ý¡¼¥¿¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢ 1 ¤Ä¤·¤«page.security¥Õ¥¡¥¤¥ë¤Ï¸ºß¤Ç¤­¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} + + +admin +view, edit + + +admin + +\end{screen} + + +¥»¥­¥å¥ê¥Æ¥£À©Ìó¤ÎÀë¸À¤Ë¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÈ÷¤ÇºîÀ®¤µ¤ì¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ +À©Ìó̾Ϳ¤¨¤é¤ì¤ëÂоݥѡ¼¥ß¥Ã¥·¥ç¥ó¥°¥í¡¼¥Ð¥ë¤«¤É¤¦¤«adminroles: adminview, edityesmanagerroles: managerviewnousersroles: user, managerviewnopublic-viewusers: *viewnopublic-editusers: *view, editno + + + +\subsection{¥Õ¥©¥ë¥À¤ÎÀ©Ìó} + +¥Õ¥©¥ë¥À¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥µ¥¤¥ÈÆâ¤Î³Æ¥Õ¥©¥ë¥À¤Ë¥ª¥×¥·¥ç¥Ê¥ë¤Ç¸ºß¤¹¤ëfolder.metadata¥Õ¥¡¥¤¥ëÆâ¤Îsecurity-constraints ¥ê¥¹¥ÈÆâ¤Ëµ­½Ò¤µ¤ì¤Þ¤¹¡£folder.metadata¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¡¢¤â¤·¤¯¤Ï¤½¤Î¥Õ¥¡¥¤¥ëÆâ¤Ë¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Îµ­½Ò¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥©¥ë¥À¤Ï¡¢¥µ¥¤¥È¤«¥µ¥Ö¥µ¥¤¥È¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Þ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¿¤É¤Ã¤Æ¡¢¿Æ¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤ò·Ñ¾µ¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£°Ê²¼¤Ë 2 ¤Ä¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ 1 ¤ÄÌܤϻ²¾È·¿¤ÎÀ©Ìó¤Ç¤¢¤ê¡¢ 2 ¤ÄÌܤÏÀë¸À·¿¤ÎÀ©Ìó¤Ç¤¹¡£ +\begin{screen} + +public-view + +engineering +view + + + +\end{screen} + + +Á´¤Æ¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢security-constraintsÆâ¤Ëµ­½Ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ + + +\subsection{¥Ú¡¼¥¸¤ÎÀ©Ìó} + +¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢PSML¥Õ¥¡¥¤¥ëÆâ¤Îsecurity-constraints list¤Ëµ­½Ò¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¥ª¥×¥·¥ç¥Ê¥ë¤Ç¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Îµ­½Ò¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥©¥ë¥À¤Ï¡¢¼«¿È¤¬Â¸ºß¤¹¤ë¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤ò·Ñ¾µ¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢Àë¸À·¿¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤È»²¾È·¿¤Î¥»¥­¥å¥ê¥Æ¥£À©Ì󤫤éºîÀ®¤µ¤ì¤Þ¤¹¡£°Ê²¼¤Ë¡¢ 2 ¤Ä¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ 1 ¤ÄÌܤϻ²¾È·¿¤ÎÀ©Ìó¡¢ 2 ¤ÄÌܤÏÀë¸À·¿¤ÎÀ©Ìó¤Ç¤¹¡£ + +\begin{screen} + +global-view + +accounting +view, edit + + + +\end{screen} + +Á´¤Æ¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢security-constraintsÆâ¤Ëµ­½Ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ + + +\subsection{¥Õ¥é¥°¥á¥ó¥È¤ÎÀ©Ìó} + +¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤ÈƱÍͤˡ¢¥Õ¥é¥°¥á¥ó¥È¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢PSML¥Õ¥¡¥¤¥ëÆâ¤Îsecurity-constraints ¥ê¥¹¥È¤Ëµ­½Ò¤µ¤ì¤Þ¤¹¡£¤³¤Îµ­½Ò¤Ï¾Êά²Äǽ¤Ç¤¹¡£´üÂÔÄ̤ꡢ¥»¥­¥å¥ê¥Æ¥£¤ÎÀ©Ìó¤Î¥ê¥¹¥È¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¼«¿È¤¬Â°¤¹¤ë¥Ú¡¼¥¸¤ÎÀ©Ìó¤ò·Ñ¾µ¤·¤Þ¤¹¡£view ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤À¤±¤¬¥Õ¥é¥°¥á¥ó¥È¤ÎÀ©Ìó¤ËÂФ·¤Æ¥Á¥§¥Ã¥¯¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£Â¾¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï´Þ¤Þ¤ì¤ë¥Ú¡¼¥¸¤ËÂФ·¤Æ¤Î¤ß¥Æ¥¹¥È¤µ¤ì¤Þ¤¹¡£ + + +\subsection{Spring ¤ÎÀßÄê} + +Àë¸À·¿¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥Ú¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Spring ¤ÎÀßÄê¤ÇÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£°Ê²¼¤Ë¡¢page-manager.xml¤È¤¤¤¦ Spring ¤ÎÉôÉÊÀßÄê¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ú¡¼¥¸¥Þ¥Í¡¼¥¸¥ã bean ¤ÎÀßÄê¤ò¼¨¤·¤Þ¤¹¡£ + +\begin{screen} + + + + + + \if0 permissions security enabled flag, default=false \fi +false + \if0 À©Ì󥻥­¥å¥ê¥Æ¥£¥â¥Ç¥ë¤ÎÍ­¸ú¥Õ¥é¥°¡¢¥Ç¥Õ¥©¥ë¥È true \fi +true + + +\end{screen} + +¤³¤ÎÎã¤Î 6 ÈÖÌÜ (index="5") ¤Î¿¿µ¶ÃͤΥ³¥ó¥¹¥È¥é¥¯¥¿°ú¿ô¤¬¡¢"À©Ì󥻥­¥å¥ê¥Æ¥£" ¥â¥Ç¥ë¤òÍ­¸ú¤Ë¤¹¤ë¤«¤É¤¦¤«¤Î»ØÄê¤ò¹Ô¤¦¤â¤Î¤Ç¤¹¡£¤â¤·¡¢Àë¸À·¿¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤¬Í­¸ú¤Ç¤Ê¤¤¤Î¤Ê¤é¡¢Á´¤Æ¤Î¥¤¥ó¥é¥¤¥ó¡¢»²¾È·¿¡¢¥°¥í¡¼¥Ð¥ë¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,92 @@ + + + + +\section{ǧ¾Ú¥Õ¥£¥ë¥¿¡¼} + + + + + +\subsection{ǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ï J2EE ¤Î¥Õ¥©¡¼¥àǧ¾Ú¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢ÍÍ¡¹¤Êǧ¾Ú´Ä¶­¤Ë¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¡¢Ç§¾Ú¥Õ¥£¥ë¥¿¡¼·²¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +ǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤ä¥¯¥Ã¥­¡¼¤Ê¤É¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤·¤Æ¡¢Ç§¾Ú½èÍý¤ò¼Â¹Ô¤Ç¤­¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Çǧ¾Ú¸å¡¢¤½¤Î¥·¥¹¥Æ¥à¤Ç¥¯¥Ã¥­¡¼¤Ëǧ¾Ú¤¹¤ë¤¿¤á¤Î¾ðÊó¤òÆþ¤ì¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ç¡¢¥í¥°¥¤¥ó²èÌ̤òɽ¼¨¤¹¤ë¤³¤È¤Ê¤·¤Ë¥í¥°¥¤¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{ǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤Î¼ïÎà} + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¼¡¤Îǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + +jp.sf.pal.portal.filter.CookieAuthFilter: ¥¯¥Ã¥­¡¼¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ +jp.sf.pal.portal.filter.RequestHeaderAuthFilter: ¥ê¥¯¥¨¥¹¥È¥Ø¥Ã¥À¡¼¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ +jp.sf.pal.portal.filter.RequestParameterAuthFilter: ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤«¤é¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ + + + +\subsection{½é´üÃÍ} + +web.xml ¤Ç filter Í×ÁÇÆâ¤Î init-param Í×ÁǤÇÃͤò»ØÄê¤Ç¤­¤Þ¤¹¡£ + + + + +¥æ¡¼¥¶¡¼Ì¾¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥­¡¼ +¥Ç¥Õ¥©¥ë¥ÈÃÍ: org.apache.jetspeed.login.username + + + + + + +¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥­¡¼ +¥Ç¥Õ¥©¥ë¥ÈÃÍ: org.apache.jetspeed.login.password + + + + + + +¥Ñ¥¹¥ï¡¼¥É³Îǧ¤ò¥¹¥­¥Ã¥×¤¹¤ë¤«¤É¤¦¤«¡£ +¥Ç¥Õ¥©¥ë¥ÈÃÍ: false + + + + +\subsection{ÀßÄêÊýË¡} + +web.xml ¤Ë°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤·¤Þ¤¹¡£ + +\begin{screen} +... + +AuthFilter +jp.sf.pal.portal.filter.RequestHeaderAuthFilter + +username.key +USERNAME + + +password.key +PASSWORD + + +skip.password.check +true + + +... + +AuthFilter +/* + +... + +\end{screen} + +ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,139 @@ + + + + +\section{ÀßÄê¥Õ¥¡¥¤¥ë} + + + + + +\subsection{ÀßÄê¥Õ¥¡¥¤¥ë} + +PAL¥Ý¡¼¥¿¥ëɸ½à¤Î¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤ÎÀßÄê¤Ï¡¢Æȼ«¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç´ÉÍý¤¹¤ë¼ÂÁõ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤Ï¡¢¤½¤ÎÆȼ«¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹´ÉÍý¤ò LDAP ¤Ê¤ÉǤ°Õ¤Î¥µ¡¼¥Ó¥¹¤ËÀÚ¤êÂؤ¨²Äǽ¤Ê»ÅÁȤߤȤ·¤Æ¼ÂÁõ¤·¤Æ¤¢¤ê¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢É¬Íפ˱þ¤¸¤Æ¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤òÊѹ¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ + + +Á´¤Æ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ïwebapps/palportal/WEB-INF/assembly¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤ÎÀßÄê¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤ËÊÔ½¸¤·¤Þ¤¹¡£ + + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¾µÇ§¥Ý¥ê¥·¡¼¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ + + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¤Ë´Ø¤¹¤ë¥Þ¥Í¡¼¥¸¥ãµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ + + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢ÍÍ¡¹¤Ê¥×¥í¥Ð¥¤¥À¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + + +AuthenticationProviderProxy ¤Ï AuthenticationProvider ¤Î¥ê¥¹¥È¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Îǧ¾ÚÊýˡ̾¤òÀßÄꤷ¤Þ¤¹¡£ +¤³¤ì¤Ë¤è¤ê¡¢Ê£¿ô¤Îǧ¾ÚÊýË¡¤¬Å¬ÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + +\begin{screen} + + + + + + +DefaultAuthenticator + + +\end{screen} + +AuthenticationProvider ¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤ÇÍøÍѤ¹¤ëǧ¾Ú¥×¥í¥Ð¥¤¥À¡¼¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ +°Ê²¼¤ÎÎã¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¾ðÊó¤Î´ÉÍý¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ëǧ¾ÚÊýË¡¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ + +\begin{screen} + +DefaultAuthenticator +The default authenticator +login.conf + + + + + + + + +\end{screen} + +AuthorizationProvider ¤Ï¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òŬÍѤ¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë SecurityPolicies ¤òÀßÄꤷ¤Þ¤¹¡£ + +\begin{screen} + + + + + \if0 Does not use the default policy as a default behavior \fi +false + + +\end{screen} + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¶¦Ä̤Îǧ¾Ú¡¦¾µÇ§ SPI ¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ + + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢Ç§¾Ú SPI ¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ + + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + +org.apache.jetspeed.security.spi.CredentialHandler +CredentialHandler ¤Ï»ñ³Ê¤Ë´Ø¤¹¤ëÁàºî¤òÆâÊñ¤·¤Þ¤¹¡£¤½¤Î½èÍý¤Ï¡¢PasswordCredentialProvider ¤ä InternalPasswordCredentialInterceptor ¤Ë¤è¤êÄêµÁ¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¸¡¾Ú½èÍý¤Î¼ÂÁõ¤ò»ý¤Á¤Þ¤¹¡£ + + +org.apache.jetspeed.security.spi.UserSecurityHandler +UserSecurityHandler ¤Ï¥æ¡¼¥¶¡¼¼çÂΤޤï¤ê¤ÎÁàºî¤òÆâÊñ¤·¤Þ¤¹¡£ + + + + + +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¾µÇ§ SPI ¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ + + + +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ +ÀâÌÀ + + +org.apache.jetspeed.security.spi.RoleSecurityHandler +RoleSecurityHandler ¤Ï¥í¡¼¥ë¼çÂΤޤï¤ê¤Î½èÍý¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£ + + +org.apache.jetspeed.security.spi.GroupSecurityHandler +GroupSecurityHandler ¤Ï¥°¥ë¡¼¥×¼çÂΤޤï¤ê¤Î½èÍý¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£ + + +org.apache.jetspeed.security.spi.SecurityMappingHandler +SecurityMappingHandler ¤Ï¼çÂδ֤Υޥåԥó¥°Áàºî¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£ + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,112 @@ + +\if0 + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{»ñ³Ê´ÉÍý} + + + + + + + +\subsection{»ñ³Ê´ÉÍý¤Ë¤Ä¤¤¤Æ} + +¤³¤ÎÀá¤Ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É¤Þ¤ï¤ê¤Î½èÍý¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ + + +\subsection{DefaultCredentialHandler ¤Îµ¡Ç½} + +DefaultCredentialHandler ¤Ë¤è¤ê¡¢¥Ñ¥¹¥ï¡¼¥É»ñ³Ê¤ÎÍÍ¡¹¤Ê´ÉÍý¤ò´Êñ¤Ë¼Â¸½¤Ç¤­¤Þ¤¹¡£ +PasswordCredentialProvider ¤È InternalPasswordCredentialInterceptor ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¸¡¾Ú¤ò½ÀÆð¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É»ñ³Ê¤ò°·¤¦¤¿¤á¤Ë PasswordCredential ¤Î¼ÂÁõ¤òÄ󶡤·¤Æ¡¢Ç§¾Ú¤ËÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ + + + +PasswordCredentialProvider ¤«¤é CredentialPasswordEncoder ¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ëÁ°¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤Þ¤¹¡£ +Ä󶡤·¤Æ¤¤¤ë MessageDigestCredentialPasswordEncoder ¤Ï¥Ñ¥¹¥ï¡¼¥É¤Î°Å¹æ²½¤Ë¥á¥Ã¥»¡¼¥¸¥À¥¤¥¸¥§¥¹¥È¤Î¥Ï¥Ã¥·¥å¥¢¥ë¥´¥ê¥º¥à¤òŬÍѤ·¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢SHA-1 ¤ä Base64 ¤Ê¤É¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ + + + + +PasswordCredentialProvider ¤«¤é CredentialPasswordValidator ¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ëÁ°¤Ë¸¡¾Ú¤µ¤ì¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢DefaultCredentialPasswordValidator ¤Ï¥Ñ¥¹¥ï¡¼¥É¤òɬ¿Ü¤Ë¤·¤Þ¤¹¡£ +¤Þ¤¿¡¢SimpleCredentialPasswordValidator ¤ÏºÇ¾®¤Îʸ»úÎó¿ô¤äºÇ¾®¤Î¿ôÃÍʸ»ú¿ô¤Ê¤É¤ò¸¡¾Ú¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ + + +InternalCredential ¤Ç¤Ï¡¢¥é¥¤¥Õ¥µ¥¤¥¯¥ë¥¤¥Ù¥ó¥È¤Ç³ä¤ê¹þ¤ó¤Ç¸¡¾Ú¤·¤Þ¤¹¡£ +DefaultCredentialHandler ¤¬ InternalPasswordCredentialInterceptor ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ì¤Ð¡¢°Ê²¼¤Î¾õ¶·¤Ç¸Æ¤Ð¤ì¤Þ¤¹¡£ +Êݸ¾ì½ê¤«¤é»ñ³Ê¤òÆɤ߼è¤Ã¤¿¸å¥æ¡¼¥¶¡¼Ç§¾Ú¤·¤¿¸å¿·¤·¤¤»ñ³Ê¤òÊݸ¤¹¤ëÁ°¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ò»ñ³Ê¤ËÊݸ¤¹¤ëÁ° +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢´ðËÜŪ¤Ê¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +ValidatePasswordOnLoadInterceptor: +¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤ÏÊݸ»þ¤Ë¥Ñ¥¹¥ï¡¼¥É¤ò¸¡¾Ú¤·¡¢Àµ¤·¤¯¤Ê¤±¤ì¤ÐÊѹ¹¤òÍ׵ᤷ¤Þ¤¹¡£ +¤½¤ì¤Ï PasswordCredentialProvider ¤Î CredentialPasswordValidator ¤Ë¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£ +EncodePasswordOnFirstLoadInterceptor: +¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤Ï¥Ñ¥¹¥ï¡¼¥ÉÊݸÀ褫¤é°Å¹æ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆɤ߼è¤Ã¤¿¤È¤­¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +PasswordCredentialProvider ¤Î CredentialPasswordEncoder ¤ò»ÈÍѤ·¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éʿʸ¥Ñ¥¹¥ï¡¼¥É¤ò½é²óÆɤ߹þ¤ß»þ¤Ë¼«Æ°Åª¤Ë¥¨¥ó¥³¡¼¥É¤·¤Þ¤¹¡£ +PasswordExpirationInterceptor: +¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤Ï¥Ñ¥¹¥ï¡¼¥É¤ÎÍ­¸ú´ü´Ö¤ò³Îǧ¤·¤Þ¤¹¡£ +¤½¤ì¤Ï¡¢InternalCredential ¤Î expiration\_date ¤È is\_expired ¤ÎÃͤǴÉÍý¤µ¤ì¡¢´ü¸ÂÀÚ¤ì¤Î¾ì¹ç¤Ï´ü¸ÂÀÚ¤ì¥Õ¥é¥°¤òΩ¤Æ¤Þ¤¹¡£ +MaxPasswordAuthenticationFailuresInterceptor: +¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤ÏÉÔÀµ¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤκÇÂç²ó¿ô¤ò³Îǧ¤·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¥Ï¥Ã¥­¥ó¥°¤òËɤ®¤Þ¤¹¡£ +ºÇÂ缺ÇÔ²ó¿ô¤ËÅþ㤹¤ë¤È¡¢¤½¤Î»ñ³Ê¤Ï̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ +ǧ¾Ú¤ËÀ®¸ù¤¹¤ë¤È¡¢¼ºÇÔ²ó¿ô¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£ +PasswordHistoryInterceptor: +¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤Ï²áµî¤Ë¥Ñ¥¹¥ï¡¼¥É¤¬ÍøÍѤ·¤¿¤â¤Î¤Ç¤Ê¤¤¤«¤ò³Îǧ¤·¤Þ¤¹¡£ +¿·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë¤È¡¢¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤ò FIFO ¥¹¥¿¥Ã¥¯¤ËÊݸ¤·¤Þ¤¹¡£ +°ÊÁ°¤ËÍøÍѤ·¤¿¤â¤Î¤Ç¤¢¤ì¤Ð¡¢PasswordAlreadyUsedException ¤¬È¯À¸¤·¤Þ¤¹¡£ + + + +DefaultCredentialHandler ¤Ï 1 ¤Ä¤À¤±¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ +¤·¤«¤·¡¢InternalPasswordCredentialInterceptorsProxy ¤òÍѤ¤¤ë¤³¤È¤Ç¡¢Ê£¿ô¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + +\subsection{»ñ³Ê´ÉÍý¤Î¼ÂÁõ} + +DefaultCredentialHandler ¤Î¼ÂÁõ¤ÇÍøÍѤµ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò°Ê²¼¤Î¿Þ¤Ë¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/credential-handler-c.eps} +\caption{TBD} +\label{fig:credential-handler-c} +\end{center} +\end{figure} + + +ɸ½à¤Î»ñ³Ê¼ÂÁõ¤Ç¤Ï¡¢security\_repository.xml ¤Ç»ØÄꤵ¤ì¤ë OJB ¤Ë¤è¤ë¥Þ¥Ã¥Ô¥ó¥°¤Ç¼Â¸½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +InternalCredential ¤ÏSECURITY\_CREDENTIAL ¥Æ¡¼¥Ö¥ë¤Ë¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +°Ê²¼¤¬ÂоÝÉôʬ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥¹¥­¡¼¥Þ¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/principals-credentials-schema.eps} +\caption{TBD} +\label{fig:principals-credentials-schema} +\end{center} +\end{figure} + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,111 @@ + + + + +\section{³µÍ×} + + + + + +\subsection{¥»¥­¥å¥ê¥Æ¥£¤Î³µÍ×} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢LoginModule ¤È Policy ¤Î¼ÂÁõ¤Ë¤è¤ê¡¢J2EE ¤Îǧ¾Ú¡¦¾µÇ§¥µ¡¼¥Ó¥¹¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +ǧ¾Ú¤Ï¥æ¡¼¥¶¡¼ ID ¤Ë¤è¤ê³ÎΩ¤·¤Æ¡¢¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¡¼¼çÂΤò»ý¤Ä Subject ¤òÀ¸À®¤·¤Þ¤¹¡£ +¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Ç¡¢À¸À®¤µ¤ì¤¿ Subject ¤Ï org.apache.jetspeed.security.SecurityValve ¤Î¼ÂÁõ¤Ç¥»¥Ã¥·¥ç¥ó¤Ø³ÊǼ¤µ¤ì¤Þ¤¹¡£ +Subject ¤Î¼çÂΤϡ¢Å¬Àڤʥ꥽¡¼¥¹¤Ø¤Î¥æ¡¼¥¶¡¼¥¢¥¯¥»¥¹¤ò¾µÇ§¤¹¤ë¤¿¤á¤Ê¤É¤Ë»È¤ï¤ì¤Þ¤¹¡£ +¤½¤ì¤Ë¤è¤ê¡¢AccessController ¤Ç¥æ¡¼¥¶¡¼¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò³Îǧ¤¹¤ë¤³¤È¤Ç¡¢JAAS ¾µÇ§¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +\if0 ¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢¡ÖJAAS ¾µÇ§¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ \fi + + +°Ê²¼¤Ë¥»¥­¥å¥ê¥Æ¥£¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î³µÍ׿ޤò¼¨¤·¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/security-arch-overview.eps} +\caption{TBD} +\label{fig:security-arch-overview} +\end{center} +\end{figure} + + +³Æ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ +\if0 ¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ï¡¢¡ÖÀßÄê¥Õ¥¡¥¤¥ë¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ \fi + + +PAL¥Ý¡¼¥¿¥ë¤Î¥»¥­¥å¥ê¥Æ¥£¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ï JAAS ¤Ë½àµò¤·¤Æ¤¤¤Þ¤¹¡£ +ɬÍפ˱þ¤¸¤Æ¡¢LoginModule ¤ä Policy ¤Î¼ÂÁõ¤ÏÊѹ¹²Äǽ¤Ç¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Î¼ÂÁõ¤Ç¤Ï¡¢µ¡Ç½³ÈÄ¥¤·¤ä¤¹¤¤¤è¤¦¤Ë SPI ¥â¥Ç¥ë¤òºÎÍѤ·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{ǧ¾Ú³µÍ×} + +ǧ¾Ú¤Ë´Ø¤·¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï Java ¤Î LoginModule ¼ÂÁõ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +LoginModule ¤Ï¡¢Ê£¿ô¤Îǧ¾Ú¥·¥¹¥Æ¥à¤«¤é¥æ¡¼¥¶¡¼Ç§¾Ú¤¬¤Ç¤­¤ë¤è¤¦¤Ë¡¢DefaultLoginModule ¤È¤·¤Æ½ÀÆð¤Ê¼ÂÁõ¤ò¤·¤Æ¤¤¤Þ¤¹¡£ +DefaultLoginModule Æâ¤Ç¤Ï¡¢UserManager ¤òÍøÍѤ·¤Æ¡¢¤µ¤Þ¤¶¤Þ¤Êǧ¾Ú¥µ¡¼¥Ó¥¹¤Ø¥¢¥¯¥»¥¹¤·¤Æ¤¤¤Þ¤¹¡£ +¤½¤Î¥¯¥é¥¹¥À¥¤¥¢¥°¥é¥à¤Ï¡¢°Ê²¼¤Î¿Þ¤Î¤è¤¦¤Ë¡¢Ç§¾Ú¥µ¡¼¥Ó¥¹¤Ø¤Î¥¢¥¯¥»¥¹¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£ + + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/atn-arch-c.eps} +\caption{TBD} +\label{fig:atn-arch-c} +\end{center} +\end{figure} + + + +¾åµ­¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ +¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÀâÌÀDefaultLoginModulePAL¥Ý¡¼¥¿¥ëɸ½à¤Î LoginModule ¤Î¼ÂÁõ¤Ç¡¢UserManager ¤Î authenticate() ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¤½¤Î¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢ÀßÄꤵ¤ì¤¿ÍÍ¡¹¤Ê AuthenticationProvider ¤ËÂФ·¤Æ¡¢Ç§¾Ú¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +UserManager +ǧ¾Ú¤È¥æ¡¼¥¶¡¼´ÉÍý¤òÄ󶡤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£ +AuthenticationProviderProxy ¤ä SecurityProvider ¤òÄ̤·¤Æ¡¢ÍÍ¡¹¤Ê AuthenticationProvider ¤¬ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +SecurityProvider +SPI ¤Î¼ÂÁõ¤ÇÍøÍѲÄǽ¤Ê¥»¥­¥å¥ê¥Æ¥£¥×¥í¥Ð¥¤¥À¡¼¤òÄ󶡤·¤Þ¤¹¡£ +AuthenticationProviderProxy +Ê£¿ô¤Î AuthenticationProvider ¼ÂÁõ¤Î¥×¥í¥­¥·¤È¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£ +AuthenticationProviderProx ¤Ï¡¢Ç§¾Ú¤ª¤è¤Ó¥æ¡¼¥¶¡¼´ÉÍý¤Î¤¿¤á¤ËŬÀÚ¤Ê AuthenticationProvider ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + +\subsection{¾µÇ§³µÍ×} + +PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¼çÂΤȥѡ¼¥ß¥Ã¥·¥ç¥ó´Ö¤Î´Ø·¸¤ò´ÉÍý¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¤¿¤á¤Î java.security.Policy ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£ + + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/rdbms-policy-overview-c.eps} +\caption{TBD} +\label{fig:rdbms-policy-overview-c} +\end{center} +\end{figure} + + + +PermissionManager ¤ÏÍ¿¤¨¤é¤ì¤¿¼çÂΤ˴ØÏ¢¤·¤¿¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤·¤Þ¤¹¡£ + + +\subsection{¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹} + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï°Ê²¼¤Î¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + + +UserManager: ¥æ¡¼¥¶¡¼´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ + + +GroupManager: ¥°¥ë¡¼¥×´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ + + +RoleManager: ¥í¡¼¥ë´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ + + +PermissionManager: ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,145 @@ + +\if0 + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥í¥°¥¤¥ó} + + + + + + +\subsection{¥í¥°¥¤¥ó¤Ë¤Ä¤¤¤Æ} + +¥æ¡¼¥¶¡¼Ç§¾Ú¤Ë¤Ä¤¤¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï JAAS ¤Î¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤Î¼ÂÁõ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +¤½¤Î¤¿¤á¡¢PAL¥Ý¡¼¥¿¥ë¤ÇÄ󶡤·¤Æ¤¤¤ë¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤Ï¡¢É¸½à»ÅÍͤ˴ð¤Å¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢Ç§¾Ú¥µ¡¼¥Ó¥¹¤Ë´Ø¤¹¤ë¾Ü¤·¤¤¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢JDK ¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +PAL¥Ý¡¼¥¿¥ë¤Î¥í¥°¥¤¥ó½èÍý¤Îή¤ì¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/loginprocess.eps} +\caption{TBD} +\label{fig:loginprocess} +\end{center} +\end{figure} + + +LoginProxyServlet ¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢¥í¥°¥¤¥ó²èÌ̤òºîÀ®¤¹¤ë¤¿¤á¤Î½é´üÃͤòÀßÄê¸å¡¢LoginServlet ¤Ç¥í¥°¥¤¥ó²èÌ̤¬À¸À®¤µ¤ì¤Þ¤¹¡£ +¥í¥°¥¤¥ó²èÌ̤ǡ¢¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò JAAS ¤Î¥â¥Ç¥ë¤Ë´ð¤Å¤­¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤ËÁ÷¿®¤·¤Æ¡¢DefaultLoginModule ¤Ç¥í¥°¥¤¥ó½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ +¼ÂºÝ¤Î¥Ñ¥¹¥ï¡¼¥É¤Î¸¡¾Ú½èÍý¤Ê¤É¤Ï¡¢UserManager ¤Ë¤è¤ê¹Ô¤ï¤ì¤Þ¤¹¡£ +¥í¥°¥¤¥ó¤Ë¼ºÇԤǤ¢¤ì¤Ð¡¢LoginErrorServlet ¤«¤éºÆÅÙ¥í¥°¥¤¥ó²èÌ̤¬É½¼¨¤µ¤ì¡¢À®¸ù¤·¤Æ¤¤¤ì¤Ð¡¢LoginRedirectorServlet ¤«¤é¥æ¡¼¥¶¡¼¤Î¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£ +¥í¥°¥¢¥¦¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢LogoutServlet ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ç½èÍý¤µ¤ì¤Þ¤¹¡£ + + +\subsection{¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤ÎÀßÄê} + +ÀßÄê¤Ï¡¢Ä̾ï¤Î JAAS ǧ¾Ú¤ÎÀßÄê¤Ë¤Ê¤ê¤Þ¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç org.apache.jetspeed.security.impl.DefaultLoginModule ¤òÍøÍѤ·¤Þ¤¹¡£ +¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï login.conf ¤Ç¤¢¤ê¡¢jetspeed2-security-{version}.jar ¤ÎÃæ¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +login.conf ¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ + +\begin{screen} +Jetspeed { + org.apache.jetspeed.security.impl.DefaultLoginModule required; +}; +\end{screen} + +¤³¤ÎÀßÄê¤ò¾å½ñ¤­¤·¤ÆÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢webapps/palportal/WEB-INF/classes¤Ë login.conf ¤òºîÀ®¤·¤Þ¤¹¡£ +login.conf ¤Î¥Õ¥¡¥¤¥ë̾¤Ê¤É¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ê¤É¤Ï¡¢security-providers.xml¤Ç login.conf ¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ÎÃͤòÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} + +DefaultAuthenticator +The default authenticator +login.conf + + + + + + + + +\end{screen} + +AuthenticationProvider ¤Ï¡¢¥·¥¹¥Æ¥à¥×¥í¥Ñ¥Æ¥£¤Î java.security.auth.login.config ¤ÎÃͤò security-providers.xml ¤Ç»ØÄꤷ¤¿ login.conf ¤Î¥Ñ¥¹¤òÀßÄꤷ¤Æ¡¢»ÈÍѤµ¤ì¤ë LoginModule ¤òÀßÄꤷ¤Þ¤¹¡£ + + +\subsection{¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤Î¼ÂÁõ} + +DefaultLoginModule ¤Î¼ÂÁõ¤Ï¡¢°Ê²¼¤Î¿Þ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\begin{figure}[ht] +\begin{center} +\includegraphics{images/default-login-module-c.eps} +\caption{TBD} +\label{fig:default-login-module-c} +\end{center} +\end{figure} + + +DefaultLoginModule ¤Ç»ÈÍѤµ¤ì¤ë¥¯¥é¥¹¤ÎÌò³ä¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + + + +¥¯¥é¥¹Ì¾ +ÀâÌÀ + + + +org.apache.jetspeed.security.impl.DefaultLoginModule + + +javax.security.auth.spi.LoginModule ¤Î¼ÂÁõ¤Ç¤¹¡£ +DefaultLoginModule ¤Ç¤Îǧ¾Ú³Îǧ¤Ï¡¢UserManager ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ + + + + +org.apache.jetspeed.security.LoginModuleProxy + + +UserManager ¤ò DefaultLoginModule ¤ÇÍøÍѤ¹¤ë¤¿¤á¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£ + + + + +org.apache.jetspeed.security.User + + +User ¤Ï javax.security.auth.Subject ¤È java.util.prefs.Preferences ¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢UserPrincipal¡¢RolePrincipal¡¢GroupPrincipal ¤Î 3 ¼ïÎà¤Î¼çÂΤò°·¤¤¤Þ¤¹¡£ + + + + +org.apache.jetspeed.security.UserManager + + +¥æ¡¼¥¶¡¼¤Ë´Ø¤¹¤ëÁàºî¤òÄ󶡤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ +¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ÍÍ¡¹¤Ê SPI ¤ò½¸Ìó¤·¤¿¤â¤Î¤Ç¡¢SPI ¤ÇÄêµÁ¤µ¤ì¤¿µ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/portlet.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/portlet.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,22 @@ + + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é¤ÎÍøÍÑ} + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é¤ÎÍøÍÑ} + +UserManager ¤Ê¤É¤Î¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é¤â¸Æ¤Ó½Ð¤·²Äǽ¤Ç¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¾å¤Ç¤½¤ì¤é¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢³ÈÄ¥ÀßÄê¥Õ¥¡¥¤¥ë¤Î jetspeed-portlet.xml ¤ò¥Ý¡¼¥È¥ì¥Ã¥È¤Î WEB-INF ¤ËÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£ +jetspeed-portlet.xml ¤Ç js:services ¥¿¥°¤ÇÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È̾¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢PortletContext ¤«¤é¤½¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +ÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥Ý¡¼¥È¥ì¥Ã¥È¡×¾Ï¤Î¡Ö¥Ý¡¼¥¿¥ëµ¡Ç½¤ÎÍøÍѡפò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,101 @@ + + + + +\section{¾ðÊóžÁ÷¥Õ¥£¥ë¥¿¡¼} + + + + + +\subsection{¾ðÊóžÁ÷¥Õ¥£¥ë¥¿¡¼¤Ë¤Ä¤¤¤Æ} + +PAL¥Ý¡¼¥¿¥ë¤Ë¥í¥°¥¤¥ó¸å¡¢¤½¤Î¥í¥°¥¤¥ó¥æ¡¼¥¶¡¼¤Î¾ðÊó¤ò¾¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËžÁ÷¤¹¤ë¤¿¤á¤Î¥Õ¥£¥ë¥¿¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +¤³¤Î¥Õ¥£¥ë¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢Â¾¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÂФ·¤Æ¡¢¥·¥ó¥°¥ë¥µ¥¤¥ó¥ª¥ó´Ä¶­¤ò¼Â¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +\subsection{ǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤Î¼ïÎà} + +PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¼¡¤Îǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + +jp.sf.pal.portal.filter.CookieTransferFilter: ¥æ¡¼¥¶¡¼Ì¾¤ä¥æ¡¼¥¶¡¼¾ðÊó¤ò¥¯¥Ã¥­¡¼¤ËÀßÄꤷ¤Þ¤¹¡£ + + + +\subsection{½é´üÃÍ} + +web.xml ¤Ç filter Í×ÁÇÆâ¤Î init-param Í×ÁǤÇÃͤò»ØÄê¤Ç¤­¤Þ¤¹¡£ + + + + +žÁ÷ÂоݤξðÊó¤ò»ØÄꤹ¤ë¡£Å¾Á÷ÂоݤȤʤë¾ðÊó¤Ï¡¢¥æ¡¼¥¶¡¼¾ðÊó(JSR 168 PLT.17)¤È¤·¤Æ³ÊǼ¤µ¤ì¤Æ¤¤¤ë¾ðÊó¤Ç¤¹¡£¤½¤ì°Ê³°¤Ë¥æ¡¼¥¶¡¼ID¤òusername¤È¤·¤ÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ +¡Ö̾Á°¥­¡¼=ÃÍ¥­¡¼¡×¤ò , ¶èÀÚ¤ê¤Ç»ØÄꤹ¤ë¡£Ì¾Á°¥­¡¼¤¬¥¯¥Ã¥­¡¼¤Ç¥­¡¼¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£ÃÍ¥­¡¼¤Ï¥æ¡¼¥¶¡¼¾ðÊó¤ÇÍøÍѤµ¤ì¤ë¥­¡¼¤ÎÉôʬ¤Þ¤¿¤Ï username ¤òÍøÍѤ·¤Þ¤¹¡£ + + + + + + +¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î path ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ + + + + + + +¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î domain ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ + + + + + + +¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î maxAge ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ + + + + + + +¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î secure ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ + + + + +\subsection{ÀßÄêÊýË¡} + +web.xml ¤Ë°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤·¤Þ¤¹¡£ + +\begin{screen} +... + +CookieTransferFilter +jp.sf.pal.portal.filter.CookieTransferFilter + +transferred.info +H=username,NAME=user.name.given + + +path +/ + + +max.age +-1 + + +... + +CookieTransferFilter +/* + +... + +\end{screen} + +ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,116 @@ + +\if0 +Copyright 2004 The Apache Software Foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +\fi + + + +\section{³µÍ×} + + + + + + + +\subsection{¥æ¡¼¥¶¡¼Â°À­¤ÎÄêµÁ} + +¥Ý¡¼¥È¥ì¥Ã¥È»ÅÍͤϤɤΤ褦¤Ë¤·¤Æ¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥æ¡¼¥¶¡¼Â°À­¤ò»ÈÍѤǤ­¤ë¤Î¤«¤Ë¤Ä¤¤¤ÆÄêµÁ¤ò¤·¤Æ¤¤¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢JSR 168 ¤Î PLT.17.1 ¤Ç¤Ï¡¢Â°À­¤Ë´Ø¤·¤Æ portlet.xml ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Þ¤¹¡£ +\begin{screen} + + +User Given Name +user.name.given + + +User Last Name +user.name.family + + +User eMail +user.home-info.online.email + + ... + +\end{screen} + +¤³¤Î¤è¤¦¤Ë°À­¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ï PortletRequest ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÇÄêµÁ¤µ¤ì¤¿ USER\_INFO Äê¿ô¤ò»È¤Ã¤Æ PortletRequest ¤«¤éÊѹ¹¤Ç¤­¤Ê¤¤ Map ¤È¤·¤Æ¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤Î°À­Ãͤ˥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ + +Map userInfo = (Map)request.getAttribute(PortletRequest.USER\_INFO); +String givenName = (userInfo!=null) ? (String)userInfo.get("user.name.given") : ""; +String lastName = (userInfo!=null) ? (String)userInfo.get("user.name.family") : ""; +String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : ""; + +¥Ý¡¼¥È¥ì¥Ã¥È»ÅÍͤÇÄêµÁ¤µ¤ì¤Ê¤¤¤Î¤Ï¡¢¥Ý¡¼¥¿¥ë¤¬ÄêµÁ¤µ¤ì¤¿¥æ¡¼¥¶¡¼Â°À­¤ò¥æ¡¼¥¶¡¼¤Î¶ñÂÎŪ¤Ê°À­¤Ë¤É¤Î¤è¤¦¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤«¤Ç¤¹¡£ + + +\subsection{¥æ¡¼¥¶¡¼Â°À­¤Î¥Þ¥Ã¥Ô¥ó¥°} + +PAL¥Ý¡¼¥¿¥ë¤Ï¶ñÂÎŪ¤Ê¥æ¡¼¥¶¡¼Â°À­¤òÄêµÁ¤·¤¿¤ê¡¢¤½¤Î¥æ¡¼¥¶¡¼Â°À­¤Ø¤Î¥¢¥¯¥»¥¹¤òÄêµÁ¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ë¤È¤Æ¤â½ÀÆð¤ÊÊýË¡¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ + +¥æ¡¼¥¶¡¼Â°À­¤Ï PAL¥Ý¡¼¥¿¥ë¤¬¾ðÊó¤ò³ÊǼ¤·¤Æ¤ª¤¯¤¿¤á¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ¤¤¤ë User Preferences ¤ò»È¤Ã¤Æ³ÊǼ¤µ¤ì¤Þ¤¹ (¤³¤ì¤Ï PAL¥Ý¡¼¥¿¥ë¤ÎËؤó¤É¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÈƱ¤¸ÊýË¡¤Ç¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤Þ¤¹)¡£ +¥æ¡¼¥¶¡¼Â°À­¤Î¼ÂÁõ¤Ï PAL¥Ý¡¼¥¿¥ë¤Î java.util.prefs.Preferences ¤Î¼ÂÁõ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¥æ¡¼¥¶¡¼Â°À­¤Ï User preferences Æâ¤ÎÆÃÄê¤Î¥Î¡¼¥É²¼¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£ +¤½¤·¤ÆǤ°Õ¤Î̾Á°¤Î°À­¤ò¼«Í³¤Ë´Þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¤³¤ì¤é¤Î¶ñÂÎŪ¤Ê¥æ¡¼¥¶¡¼Â°À­¤Ï portlet.xml Æâ¤Ç°Ê²¼¤Î¤è¤¦¤Ê 2 ¤Ä¤ÎÊýË¡¤ÇÄêµÁ¤µ¤ì¤¿¥æ¡¼¥¶¡¼Â°À­¤Ë¥Þ¥Ã¥×¤µ¤ì¤Þ¤¹¡£ + + °À­Ì¾¤È¤Î´°Á´°ìÃפλÈÍÑ + + jetspeed-portlet.xml Æâ¤ÇÄêµÁ¤µ¤ì¤ë¥«¥¹¥¿¥à¥Þ¥Ã¥Ô¥ó¥°¤Î»ÈÍÑ + + + + +¤â¤·ÂоݤȤ¹¤ë¥Ý¡¼¥¿¥ë¤È¤·¤Æ PAL¥Ý¡¼¥¿¥ë¤òÍøÍѤ·¤Æ¿·¤·¤¤¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¤¤¿¤Î¤Ê¤é¡¢¥Ý¡¼¥¿¥ëÆâ¤Ç¥æ¡¼¥¶¡¼Â°À­¤È°ìÃפ¹¤ë User Attributes ¤òÄêµÁ¤¹¤ë¤³¤È¤Ï´Êñ¤Ç¤·¤ç¤¦¡£ + ¤·¤«¤·¡¢¤â¤·´û¤Ë¸ºß¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò PAL¥Ý¡¼¥¿¥ë¾å¤ËÇÛÈ÷¤·¤¿¤¤¤Î¤Ê¤é¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËɬÍפÊ°À­Ì¾¤È PAL¥Ý¡¼¥¿¥ë¤Î User Preferences ¤Ë³ÊǼ¤µ¤ì¤ë¶ñÂÎŪ¤Ê°À­Ì¾¤Î´Ö¤Î¥ß¥¹¥Þ¥Ã¥Á¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ + + + jetspeed-portlet.xml ¤Ë PAL¥Ý¡¼¥¿¥ëÆÃÍ­¤ÎÀßÄê¤ä¥«¥¹¥¿¥Þ¥¤¥º¤òµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÇÛÈ÷¤Ï PAL¥Ý¡¼¥¿¥ë¤Çɬ¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +¤·¤«¤·¡¢¤â¤·¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î war ¥Õ¥¡¥¤¥ëÆâ¤Î WEB-INF ¥Õ¥©¥ë¥À¤Ë¤³¤Î¥É¥­¥å¥á¥ó¥È¤¬¸«¤Ä¤«¤ì¤Ð¡¢½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ + PAL¥Ý¡¼¥¿¥ëÆÃÍ­¤ÎÀßÄê¤Ï "http://portals.apache.org/jetspeed" ̾Á°¶õ´Ö¤ò»È¤Ã¤ÆÄêµÁ¤·¤Þ¤¹¡£ + + + ¥æ¡¼¥¶¡¼Â°À­¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥«¥¹¥¿¥à¤Î¥æ¡¼¥¶¡¼Â°À­Ì¾¤òÄêµÁ¤¹¤ë "name" ¥¨¥ì¥á¥ó¥È¤È¡¢¤½¤Î°À­Ì¾¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¶ñÂÎŪ¤Ê°À­Ì¾¤òÄêµÁ¤¹¤ë"name-link" ¥¨¥ì¥á¥ó¥È¤ò´Þ¤à "user-attribute-ref" ¥¨¥ì¥á¥ó¥È¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} + + +user-name-given +user.name.given + + +user-name-family +user.name.family + + ... + +\end{screen} + +Àè¤ÎÎã¤Î¤è¤¦¤Ê¥«¥¹¥¿¥à¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò»È¤Ã¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¼¡¤Î¤è¤¦¤Ë¥æ¡¼¥¶¡¼Â°À­¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£ +Map userInfo = (Map)request.getAttribute(PortletRequest.USER\_INFO); +String givenName = (userInfo!=null) ? (String)userInfo.get("user-name-given") : ""; +String lastName = (userInfo!=null) ? (String)userInfo.get("user-name-family") : ""; +String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : ""; + +¥«¥¹¥¿¥à¤Î¥Þ¥Ã¥Ô¥ó¥°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤ email °À­¤â´°Á´°ìÃפǤΥ¢¥¯¥»¥¹¤¬²Äǽ¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ + + + + + Modified: pal-portal/docs/ja/installation-guide/trunk/build.properties =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/build.properties 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/installation-guide/trunk/build.properties 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,6 +1,5 @@ build.dir=${basedir}/target -build.tex.dir=${basedir}/target/tex -build.img.dir=${basedir}/target/tex/images +build.img.dir=${basedir}/target/images src.tex.dir=${basedir}/src/tex src.img.dir=${basedir}/src/images document.name=installation-guide Modified: pal-portal/docs/ja/installation-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/installation-guide/trunk/build.xml 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/installation-guide/trunk/build.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -30,12 +30,11 @@ - - + - + @@ -46,31 +45,25 @@ - + - + - + - - - - - - + + + + + + + + + + + + + + + + + + ${convert.cmd} ${image.name}.png ${image.name}.eps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: pal-portal/docs/ja/portlet-developers-guide/trunk/build.xml ___________________________________________________________________ Name: svn:eol-style + native Deleted: pal-portal/docs/ja/portlet-developers-guide/trunk/project.properties =================================================================== --- pal-portal/docs/ja/portlet-developers-guide/trunk/project.properties 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/portlet-developers-guide/trunk/project.properties 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,33 +0,0 @@ -# Repo -maven.repo.remote = http://www.bluesunrise.com/maven/, http://mirrors.ibiblio.org/pub/mirrors/maven/,http://dist.codehaus.org/, http://people.apache.org/repository/, http://maven.marevol.com/ - -# -# DATE Preferences -# -# The place of the date on the pages : choices are 'bottom', 'left', 'right', 'navigation-top', 'navigation-bottom' -maven.xdoc.date = left -#maven.xdoc.date.format = yyyy/MM/dd HH:mm z -maven.xdoc.date.format = yyyy/MM/dd HH:mm -# The date locale -maven.xdoc.date.locale = ja - -# -# Doc Setting -# -maven.xdoc.version=${pom.currentVersion} -maven.xdoc.includeProjectDocumentation = no -maven.docs.outputencoding = EUC-JP -maven.javadoc.source = 1.4 -maven.xdoc.jsl=file:${maven.src.dir}/resources/site.jsl - -# Multiproject settings -maven.multiproject.includes=*/project.xml -maven.multiproject.excludes=project.xml -# following are default values but needed here because our allSite goal doesn't know them from the plugin -maven.multiproject.aggregateDir=multiproject/ -maven.multiproject.ignoreFailures=true - -maven.pdf.cover.type=Portlet Developer's Guide -maven.pdf.companyLogo=http://pal.sourceforge.jp/images/pal_banner.gif -#maven.pdf.projectLogo=http://pal.sourceforge.jp/pal-portal/docs/ja/portlet-developers-guide/images/sflogo.gif -maven.pdf.projectLogo= Deleted: pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml =================================================================== --- pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml 2008-11-13 00:22:41 UTC (rev 1336) +++ pal-portal/docs/ja/portlet-developers-guide/trunk/project.xml 2008-11-13 02:20:34 UTC (rev 1337) @@ -1,37 +0,0 @@ - - - - PAL????¿ã? ????????????????¤ã? - jp.sf.pal.pal-portal.docs.ja - portlet-developers-guide - 1.1-rev1 - - Portal Application Laboratory - http://pal.sourceforge.jp/ - /images/pal-logo.png - - 2005 - - http://sourceforge.jp/projects/pal/ - http://pal.sourceforge.jp/images/sflogo.png - - shell.sourceforge.jp - /home/groups/p/pa/pal/htdocs/pal-portal/docs/ja/portlet-developers-guide/ - - maven-license-plugin - - Added: pal-portal/docs/ja/portlet-developers-guide/trunk/src/lib/ant-contrib-1.0b2.jar =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/portlet-developers-guide/trunk/src/lib/ant-contrib-1.0b2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/before-development.tex =================================================================== --- pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/before-development.tex (rev 0) +++ pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/before-development.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,58 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È³«È¯¤ÎÁ°¤Ë} + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È³«È¯¤ÎÁ°¤Ë} + + JCP (http://www.jcp.org/) ¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ò JSR 168 ¤ÇÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ + ¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢JSR 168 ¤Ë´ð¤Å¤¯¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯¤òÀâÌÀ¤·¤Þ¤¹¡£ + ³«È¯¤Ë¤Ä¤¤¤Æ¡¢ÀâÌÀ¤¹¤ëÁ°¤ËÍý²ò¤·¤Æ¤ª¤¯¤Ù¤­¡¢ÍѸì¤Ê¤É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥¿¥ë¤È¤Ï} + + ¥Ý¡¼¥¿¥ë¤È¤Ï¡¢¥¦¥§¥Ö¥Ù¡¼¥¹¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢¥Ñ¡¼¥½¥Ê¥é¥¤¥ºµ¡Ç½¡¢¥·¥ó¥°¥ë¥µ¥¤¥ó¥ª¥ó¡¢ÍÍ¡¹¤Ê¾ðÊóȯ¿®¸µ¤«¤é¤Î¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤Ê¤É¤Îµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£¥³¥ó¥Æ¥ó¥Ä¤ò½¸Ì󤹤뤳¤È¤Ë¤è¤ê¡¢°Û¤Ê¤ë¾ðÊ󸵤ò1¤Ä¤Î¥Ú¡¼¥¸¤Ë¤Þ¤È¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Ý¡¼¥¿¥ë¤Ï¡¢¥æ¡¼¥¶¡¼¤´¤È¤Ë°Û¤Ê¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤ò´Þ¤à¥Ú¡¼¥¸¤òÄ󶡤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤È¤Ï} + + JSR 168 ¤ÇÄêµÁ¤µ¤ì¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢Java ¥Æ¥¯¥Î¥í¥¸¥Ù¡¼¥¹¤Î¥¦¥§¥Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¡¢¥ê¥¯¥¨¥¹¥È¤Î½èÍý¤È¥³¥ó¥Æ¥ó¥ÄÀ¸À®¤ò¹Ô¤¤¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤Ë¤è¤ê´ÉÍý¤µ¤ì¡¢¾ðÊó¥·¥¹¥Æ¥à¤Îɽ¼¨Áؤˤª¤¤¤Æ¡¢¼è¤êÂؤ¨²Äǽ¤Ê¥æ¡¼¥¶¡¼¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£ + + + ¥Ý¡¼¥È¥ì¥Ã¥È¤ËÀ¸À®¤µ¤ì¤ë¥³¥ó¥Æ¥ó¥Ä¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢HTML¡¢XHTML¡¢WML ¤Ê¤É¤Î¥Þ¡¼¥¯¥¢¥Ã¥×¤Î°ìÉô¤Ç¤¢¤ê¡¢¤Û¤«¤Î¥Õ¥é¥°¥á¥ó¥È¤È¶¦¤Ë¥Ú¡¼¥¸¤Ë½¸Ì󤵤ì¤ë¤³¤È¤Ç¡¢1¤Ä¤Î¥É¥­¥å¥á¥ó¥È¤¬À¸À®¤µ¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤Ï¡¢Ä̾¤Û¤«¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤È¶¦¤Ë½¸Ì󤵤졢¥Ý¡¼¥¿¥ë¤Î¥Ú¡¼¥¸¤ò·ÁÀ®¤·¤Þ¤¹¡£ + + + ¥Ö¥é¥¦¥¶¤Ê¤É¤Î¥¦¥§¥Ö¥¯¥é¥¤¥¢¥ó¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤¿¥ê¥¯¥¨¥¹¥È¡¿¥ì¥¹¥Ý¥ó¥¹½èÍý¤ÎÏÈÁȤǡ¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹¡£¥Õ¥©¡¼¥à¤ÎÁ÷¿®¤ä¥ê¥ó¥¯¤Î¥¯¥ê¥Ã¥¯¤Ê¤É¤Î¥æ¡¼¥¶¡¼Áàºî¤Ï¡¢¥Ý¡¼¥¿¥ë¤ËÁ÷¤é¤ì¡¢¥Ý¡¼¥¿¥ë¤¬¥Ý¡¼¥È¥ì¥Ã¥È¤Ø¤½¤ì¤é¤Î¥ê¥¯¥¨¥¹¥È¤òžÁ÷¤·¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤Ï¡¢¥Ý¡¼¥¿¥ë¥³¥ó¥Æ¥Ê¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤È¤Ï} + + ¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼Â¹Ô´Ä¶­¤òÄ󶡤·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤Ç¤¹¤Î¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¤òÊÝ»ý¤·¤Æ¡¢¤½¤ì¤é¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤ò´ÉÍý¤·¤Þ¤¹¡£¤Þ¤¿¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤¬¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹ÍѤαʳŪ¤Ê¥¹¥È¥ì¡¼¥¸¤âÄ󶡤·¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤Ï¡¢¥Ý¡¼¥¿¥ë¤«¤é¥ê¥¯¥¨¥¹¥È¤ò¼õ¤±¼è¤ê¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤½¤Î¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤·¤Þ¤¹¡£ + + + ¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤Ç¤Ï¡¢¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤Îµ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¥Ý¡¼¥¿¥ë¾å¤Ëɽ¼¨¤¹¤ë¥É¥­¥å¥á¥ó¥È¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤Îµ¡Ç½¤Ï¡¢¥Ý¡¼¥¿¥ë¤¬½èÍý¤·¤Þ¤¹¡£ + + + + Added: pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-api-based-portlet.tex =================================================================== --- pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-api-based-portlet.tex (rev 0) +++ pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-api-based-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,431 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{¥Ý¡¼¥È¥ì¥Ã¥È API ¤òÍѤ¤¤¿¥Ý¡¼¥È¥ì¥Ã¥È³«È¯ÊýË¡} + + + + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥ÈºîÀ®¤Î½àÈ÷} + +¤³¤³¤Ç¤Ï¡¢JSR 168 ¤Î¥Ý¡¼¥È¥ì¥Ã¥È API ¤òÍøÍѤ·¤Æ¡¢JSR 168 ¤Ë½àµò¤·¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤ÎºîÀ®¤òÀâÌÀ¤·¤Þ¤¹¡£ +HelloWorldŪ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤·¤Æ¡¢ºîÀ®¤·¤¿¤â¤Î¤ò PAL¥Ý¡¼¥¿¥ë¤ËÇÛÈ÷¤·¤Þ¤¹¡£ + + +º£²ó¡¢ºîÀ®¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢ÆþÎÏ¥Õ¥©¡¼¥à¤ò»ý¤Á¡¢ÃͤòÆþÎϤ¹¤ë¤È¡¢¤½¤ÎÆþÎϤµ¤ì¤¿Ãͤòɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +³«È¯¤¹¤ë¤Ë¤¢¤¿¤ê¡¢javac ¤ä ant ¤Ê¤É¤ÇÀâÌÀ¤ò¿Ê¤á¤ë¤È¡¢°Í¸´Ø·¸¤Î²ò·è¤Ê¤É¤ò¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢maven 2 ¤Ç¥Ó¥ë¥É¤¹¤ë¥×¥í¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£ + + +¤Þ¤º¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤¹¡£ + +\begin{screen} +\$ cd +\$ mkdir -p Projects/helloworld +\$ cd Projects/helloworld/ + +\end{screen} + +¤³¤Î helloworld ¥Ý¡¼¥È¥ì¥Ã¥È¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¼¡¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£ + +\begin{screen} + pom.xml + src/main/webapp/WEB-INF/portlet.xml + src/main/webapp/WEB-INF/web.xml + src/main/webapp/WEB-INF/view/helloworld.jsp + src/main/java/com/marevol/portlet/helloworld/resources/HelloWorldResources\_ja.properties + src/main/java/com/marevol/portlet/helloworld/resources/HelloWorldResources.properties + src/main/java/com/marevol/portlet/helloworld/HelloWorldPortlet.java + +\end{screen} + +pom.xml ¤Ï¡¢Maven 2 ¤Î¥×¥í¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ +¤½¤·¤Æ¡¢¤½¤ì°Ê³°¤Î¥Õ¥¡¥¤¥ë¤¬¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ò¹½ÃÛ¡¦¼Â¹Ô¤¹¤ë¾å¤ÇɬÍפˤʤë¥Õ¥¡¥¤¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +\subsection{Maven 2 ÍÑ¥Õ¥¡¥¤¥ë (pom.xml)} + +¤½¤ì¤Ç¤Ï¡¢½ç¤Ë¹½À®¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤ß¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£ + + +¤Þ¤º¤Ï¡¢¥×¥í¥¸¥§¥¯¥È¤ò Maven 2 ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Î pom.xml ¤Ç¤¹¡£ +¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ä̾ï¤Î Maven 2 ¥×¥í¥¸¥§¥¯¥È¤ÈƱÍͤ˺îÀ®¤·¤Æ¤¤¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥ÈÍѤËÆüì¤ÊÀßÄê¤Ê¤É¤Ï¤·¤Æ¤¤¤Þ¤»¤ó¡£ + + +¥Ý¡¼¥È¥ì¥Ã¥ÈÍѤ˥ӥë¥É¤¹¤ë¤¿¤á¤Ë¡¢°Í¸´Ø·¸¤Ë portlet-api ¤ò»ØÄꤷ¤Æ¤ª¤±¤Ð¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +º£²ó¤Î helloworld ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢¥Ó¥å¡¼¤Ë JSP ¤òÍøÍѤ·¤Æ¡¢JSTL ¤òÍøÍѤ·¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ì¤ËɬÍפʰ͸´Ø·¸¤òÄɲä·¤Þ¤¹¡£ +¤â¤·¡¢Æȼ«¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢É¬Íפʥ饤¥Ö¥é¥ê¤¬¤¢¤ì¤Ð¡¢Äɲ䷤Ƥ¯¤À¤µ¤¤¡£ + +\begin{screen} + + +4.0.0 +jp.sf.pal.sample +helloworld +1.0 +war +Helloworld Portlet + +helloworld + + + +portlet-api +portlet-api +1.0 +provided + + +jstl +jstl +1.1.2 + + +taglibs +standard +1.1.2 + + +commons-logging +commons-logging +1.0.4 + + + + +\end{screen} + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Î¹½À®¥Õ¥¡¥¤¥ë} + +¤³¤ÎÀá¤ÇÀâÌÀ¤¹¤ë¤â¤Î¤¬¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤¹¤ë¾å¤ÇɬÍפˤʤäƤ¯¤ë¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ +´ðËÜŪ¤Ë¤Ï¡¢Servlet Specification 2.3, SRV.9 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë Web ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¹½À®¤ÈƱ¤¸¤Ç¡¢¥µ¡¼¥Ö¥ì¥Ã¥È¡¢JSP¡¢HTML¥Ú¡¼¥¸¡¢¥¯¥é¥¹¤Ê¤É¤Î¥Õ¥¡¥¤¥ë¤ò´Þ¤ß¡¢¤½¤ì¤é¤Ë²Ã¤¨¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤È¥Ý¡¼¥È¥ì¥Ã¥ÈÇÛÈ÷µ­½Ò»Ò (portlet.xml) ¤ò´Þ¤ß¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢Ä̾ïÄ̤ê¤Ë¡¢Java ¤Ç Web ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤·¡¢portlet.xml ¤òÄɲ乤ëÅÀ¤À¤±¤¬°Û¤Ê¤ê¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢JSR 168 ¤Î PLT.19 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + + +¤Þ¤º¡¢portlet.xml ¤Ë¤Ä¤¤¤Æ¡¢ÀâÌÀ¤·¤Þ¤¹¡£ +portlet.xml ¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤ÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¹½À®¾ðÊó¤Ê¤É¤¬¤¤¤í¤¤¤í¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +portlet.xml ¤Î¥¹¥­¡¼¥Þ¤Ê¤É¤Î¾ÜºÙ¤Î¾ðÊó¤Ï¡¢JSR 168 ¤Î PLT.21.5 ¤ä PLT.21.6 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +portlet.xml ¤Ç¤Ï¡¢¥ë¡¼¥È¥Î¡¼¥É¤Ë portlet-app Í×ÁǤ¬¤¢¤ê¡¢¤½¤Î²¼¤Ë portlet Í×ÁǤòÊ£¿ôÄêµÁ¤Ç¤­¤Þ¤¹¡£ +£±¤Ä¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄêµÁ¤¬£±¤Ä¤Î portlet Í×ÁǤËÂбþ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢portlet.xml ¤Ë portlet Í×ÁǤòÊ£¿ôµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢Ê£¿ô¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òÄêµÁ¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ + + +¼¡¤Ë¡¢portlet Í×ÁǤβ¼¤Ë¤¢¤ëÍ×ÁǤˤĤ¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ +portlet-name Í×ÁǤϡ¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î̾Á°¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤³¤ì¤Ï¡¢¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥óÆâ¤Ç¥æ¥Ë¡¼¥¯¤ÊÃͤǤ¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +display-name Í×ÁǤȡ¢¼¡¤Î description Í×ÁǤϡ¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ë´Ø¤¹¤ë´Êñ¤Ê̾Á°¤ÈÀâÌÀ¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤³¤ì¤é¤ÎÃͤϡ¢¤¿¤È¤¨¤Ð¡¢¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Î¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý¥Ä¡¼¥ë¤Ê¤É¤Çɽ¼¨¤µ¤ì¤ëÃͤˤʤê¤Þ¤¹¡£ +¤½¤Î¥Ä¡¼¥ë¾å¤ÇÆüËܸì¤Î̾Á°¤ò½Ð¤·¤¿¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢xml:lang °À­¤òÄɲ䷤ơ¢µ­½Ò¤·¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢ÆüËܸì¤Ç¤¢¤ì¤Ð¡¢xml:lang="ja" ¤È¤·¤Æ¡¢Â°À­¤òÄɲä·¤Þ¤¹¡£ +portlet.xml ¤Ç¤Ï¡¢display-name ¤È description ¤Ë¤Ä¤¤¤Æ¤Ï¡¢xml:lang °À­¤òÍѤ¤¤Æ¡¢Ê£¿ôÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +portlet-class Í×ÁǤϡ¢¼Â¹Ô¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¯¥é¥¹»ØÄꤷ¤Þ¤¹¡£ + + +expiration-cache Í×ÁǤϡ¢¥­¥ã¥Ã¥·¥å¤ÎÍ­¸ú´ü¸Â¤òÉÃñ°Ì¤Ç»ØÄꤷ¤Þ¤¹¡£ +-1 ¤Ï̵´ü¸Â¤ò°ÕÌ£¤·¤Þ¤¹¡£ + + +supports Í×ÁǤǤϡ¢¥µ¥Ý¡¼¥È¤¹¤ë MIME ¥¿¥¤¥×¤ä¥Ý¡¼¥È¥ì¥Ã¥È¥â¡¼¥É¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£ + + +supported-locale Í×ÁǤϡ¢¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥í¥±¡¼¥ë¤òµ­½Ò¤·¤Þ¤¹¡£ + + +resource-bundle Í×ÁǤǤϡ¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÇÍøÍѤ¹¤ë¥ê¥½¡¼¥¹¥Ð¥ó¥É¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ +»ØÄꤷ¤¿¥ê¥½¡¼¥¹¥Ð¥ó¥É¥ë¤Ï¡¢PortletConfig\#getResourceBundle() ¤Ç¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + +portlet-info Í×ÁǤǤϡ¢¥Ý¡¼¥È¥ì¥Ã¥È¤Çɽ¼¨¤µ¤ì¤ë¥¿¥¤¥È¥ë¤Ê¤É¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£ +¥¿¥¤¥È¥ë¤ò¹ñºÝ²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢resource-bundle +Í×ÁǤǻØÄꤷ¤¿¥ê¥½¡¼¥¹¥Ð¥ó¥É¥ëÆâ¤Ëµ­½Ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ + + +src/main/webapp/WEB-INF/portlet.xml ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ + +\begin{screen} + + + +HelloWorld +Hello World +¥Ï¥í¡¼¥ï¡¼¥ë¥É +HelloWorld is a portlet for testing +HelloWorld ¤Ï¥Æ¥¹¥ÈÍѥݡ¼¥È¥ì¥Ã¥È¤Ç¤¹ +com.marevol.portlet.helloworld.HelloWorldPortlet +-1 + +text/html +VIEW + +en +ja +com.marevol.portlet.helloworld.resources.HelloWorldResources + + +This is a portlet for testing +Hello,Test + + + + +\end{screen} + +web.xml ¤Ï¡¢Ä̾ï¤Î Web ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÈƱÍͤˡ¢Web ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥ê¥½¡¼¥¹¤Ê¤É¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£ +º£²ó¤Ï¡¢Æä˻ØÄꤹ¤ë¤³¤È¤â¤Ê¤¤¤Î¤Ç¡¢display-name ¤È description Í×ÁǤˤ³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤Ä¤¤¤Æ¤òµ­½Ò¤¹¤ë¤À¤±¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ +src/main/webapp/WEB-INF/web.xml ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ + +\begin{screen} + + + +HelloWorld Portlet +HelloWorld Portlet + + +\end{screen} + +HelloWorldPortlet ¤Ï¡¢portlet.xml ¤Ç portlet-class Í×ÁǤǻØÄꤷ¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¯¥é¥¹¤Ç¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È¡¢¤³¤Î¥¯¥é¥¹¤¬¸Æ¤Ð¤ì¡¢É¬ÍפʽèÍý¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢ javax.portlet.Portlet ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¼ÂÁõ¤·¤¿¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£ +º£²ó¤Ï¡¢¤½¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤¿ javax.portlet.GenericPortlet ¤ò·Ñ¾µ¤·¤ÆºîÀ®¤·¤Þ¤¹¡£ + + +¤³¤Î HelloWorldPortlet ¤Ï¡¢init, doView, processAction£³¤Ä¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ +¤Þ¤º¡¢init ¤Ï¤½¤Î̾¤ÎÄ̤ꡢ¥Ý¡¼¥È¥ì¥Ã¥È¤Î½é´ü²½¤ò¹Ô¤¤¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢portlet.xml ¤ÇÃͤòÍ¿¤¨¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ë¤Ï¡¢¤³¤³¤Ç¼èÆÀ¤¹¤ë¤Î¤¬Å¬ÀڤǤ¹¡£ +º£²ó¤Ï¡¢Æä˲¿¤â¤¹¤ë¤³¤È¤¬¤Ê¤¤¤¿¤á¡¢¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤ËÅϤ·¤Æ¤¤¤ë¤À¤±¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ + + +¼¡¤Ë doView ¤È processAction ¤Ç¤¹¤¬¡¢Portlet ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ï¡¢processAction ¤È render ¥á¥½¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤Ä¤Þ¤ê¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î½èÍý¤Ï¡¢¥¢¥¯¥·¥ç¥ó¤Î½èÍý¤Èɽ¼¨¤Î½èÍý¤¬´°Á´¤Ëʬ¤«¤ì¤Æ¤¤¤Æ¡¢processAction ¤Ç¥¢¥¯¥·¥ç¥ó¤Î½èÍý¤ò¹Ô¤¤¡¢É½¼¨¤Ê¤É¤Ï¡¢render ¥á¥½¥Ã¥É¤Ç¹Ô¤ï¤ì¤Þ¤¹¡£ +GenericPortlet ¤Î render ¥á¥½¥Ã¥É¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¿¥¤¥È¥ë¤òÀßÄꤷ¤Æ¡¢doDispatch¥á¥½¥Ã¥É¤ËÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£ +¤½¤·¤Æ¡¢GenericPortlet ¤Î doDispatch ¥á¥½¥Ã¥É¤Ç¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥â¡¼¥É¤Ë¤è¤Ã¤Æ¡¢½èÍý¤ò¿¶¤êʬ¤±¤Æ¤¤¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢É½¼¨¥â¡¼¥É¤Ç¤Ï doView¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î±¦¾å¤Ë¤¢¤ëÊÔ½¸¥Ü¥¿¥ó¤ò²¡¤·¤¿¤È¤­¤Ê¤É¤Ë¤Ê¤ëÊÔ½¸¥â¡¼¥É¤ÎÉÁ²è½èÍý¤ò¹Ô¤¦¾ì¹ç¤Ï doEdit ¤Ê¤É¤Ç¤¹¡£ +º£²ó¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢É½¼¨¥â¡¼¥É¤·¤«°·¤ï¤Ê¤¤¤¿¤á¡¢doView ¤À¤±¤òÄɲ䷤Ƥª¤­¤Þ¤¹¡£ + + +doView ¥á¥½¥Ã¥É¤Ç¤Ï¡¢RenderRequest ¤È RenderResponse ¤òÍøÍѤ·¡¢¤Þ¤º¡¢¥³¥ó¥Æ¥ó¥Ä¥¿¥¤¥×¤òÀßÄꤷ¤Æ¤«¤é(¥³¥ó¥Æ¥ó¥Ä¥¿¥¤¥×¤ò»ØÄꤷ¤Ê¤¤¤È Exception ¤¬Åꤲ¤é¤ì¤Þ¤¹)¡¢Í¿¤¨¤é¤ì¤¿ YOUR\_NAME\_KEY ¥­¡¼¤ÎÃͤò¼èÆÀ¤·¤Æ¡¢helloworld.jsp ¤ËÅϤ¹½èÍý¤ò¤·¤Æ¤¤¤Þ¤¹¡£ + + +processAction ¤Î°ú¿ô¤Ï¡¢ActionRequest ¤È ActionResponse ¤Ë¤Ê¤ê¤Þ¤¹¡£ +º£²ó¡¢¤³¤Î¥á¥½¥Ã¥É¤Ç¤Ï¡¢helloworld.jsp ¤ÇÁ÷¿®¤µ¤ì¤¿Ãͤò ActionResponse ¤ËÅϤ·¤Æ¤¤¤Þ¤¹¡£ + + +¤³¤³¤Ç¡¢¤³¤ÎRender¡Á¤äAction¡Á¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢Ì¾Á°¤ÎÄ̤ꡢɽ¼¨¤Î¤¿¤á¤ÎRender¡Á¤Ç¤¢¤ê¡¢¥¢¥¯¥·¥ç¥ó¤ò½èÍý¤¹¤ë¤¿¤á¤ÎAction¡Á¤Ç¤¹¡£ +processAction ¤Ç jsp ¤Ê¤É¤«¤é¤ÎÍÍ¡¹¤ÊÆþÎÏÃͤò½èÍý¤·¤Æ¡¢ActionResponse ¤Î setRenderParameter ¤Ç RenderRequest ¤ËÅϤ·¤Þ¤¹¡£ +¤Ä¤Þ¤ê¡¢jsp ¤«¤é¤ÎÆþÎϤϡ¢doView ¤Î RenderRequest ¤Ç¼èÆÀ¤Ç¤­¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤Ç¤¹¤Î¤Ç¡¢doView ¤Ê¤É¤Ç¤Ï¡¢ËÜÅö¤Ëɽ¼¨¤À¤±¤Î½èÍý¤ËÀìÇ°¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤³¤Î°ÕÌ£¤ò¹Í¤¨¤ë¤¿¤á¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¾õ¶·¤ò¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£ +¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢£±¤Ä¤Î¥Ú¡¼¥¸¤ËÊ£¿ô¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤òɽ¼¨¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +³Æ¥Ý¡¼¥È¥ì¥Ã¥È¤ÏÆÈΩ¤·¤Æ¤¤¤Æ¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢Ê£¿ô¤ÎÃæ¤Î 1 ¤Ä¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤À¤±¤ËÆþÎϥǡ¼¥¿¤Ê¤É¤òÁ÷¿®¤·¤Æ½èÍý¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤½¤ÎÂоݤΥݡ¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢processAction ¤¬¸Æ¤Ð¤ì¡¢doView ¤¬¸Æ¤Ð¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +°ìÊý¡¢¤½¤ì°Ê³°¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢¥Ú¡¼¥¸¤¬¹¹¿·¤µ¤ì¤Þ¤¹¤¬¡¢É½¼¨ÆâÍƤϤ½¤Î¹¹¿·¤Ë´Ø·¸¤Ê¤¯¡¢Æ±¤¸ÆâÍƤòɽ¼¨¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹(¤¿¤È¤¨¤Ð¡¢Â¾¤Î¥Ú¡¼¥¸¤Ç°ìÍ÷¤òɽ¼¨¤·¡¢Â¾¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç½èÍý¤·¤¿¤é¥á¥Ë¥å¡¼¤ËÌá¤ë¤Ê¤É¤ÎÆ°ºî¤ÏÎɤ¯¤¢¤ê¤Þ¤»¤ó)¡£ +¤Ç¤¹¤Î¤Ç¡¢¥Ú¡¼¥¸¤¬¹¹¿·¤µ¤ì¤¿¤È¤·¤Æ¤â¡¢¥¢¥¯¥·¥ç¥ó¤Î½èÍý¤ÎÂоݤǤʤ±¤ì¤Ð¡¢É½¼¨¤ÎÆâÍƤò°Ý»ý¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢¥¢¥¯¥·¥ç¥ó¤Ë´Ø·¸¤Ê¤¯¡¢Render¡Á¤ÇÆÈΩ¤·¤¿¥Ñ¥é¥á¡¼¥¿¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤³¤¦¤¤¤¦¤³¤È¤«¤é¡¢processAction ¤Î Action¡Á¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤·¤Æ½èÍý¤·¡¢É½¼¨ÍѤΥѥé¥á¡¼¥¿¤òÀßÄꤷ¤Æ¡¢setRenderParameter¤Ê¤É¤Ç¡¢Render¡Á¤ËÅϤ¹¤È¤¤¤¦½èÍý¤Îή¤ì¤Ë¤Ê¤ê¤Þ¤¹¡£ + + +src/main/java/com/marevol/portlet/helloworld/HelloWorldPortlet.java ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ + +\begin{screen} +package com.marevol.portlet.helloworld; + +import java.io.IOException; + +import javax.portlet.ActionRequest; +import javax.portlet.ActionResponse; +import javax.portlet.GenericPortlet; +import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; +import javax.portlet.PortletException; +import javax.portlet.PortletRequestDispatcher; +import javax.portlet.RenderRequest; +import javax.portlet.RenderResponse; + +public class HelloWorldPortlet extends GenericPortlet +{ + public static final String YOUR\_NAME\_KEY = "yourName"; + + public void init(PortletConfig config) throws PortletException + { + super.init(config); + } + + protected void doView(RenderRequest request, RenderResponse response) + throws PortletException, IOException + { + response.setContentType("text/html"); + + PortletContext context = getPortletContext(); + + String yourName = request.getParameter(YOUR\_NAME\_KEY); + if (yourName == null) + { + yourName = ""; + } + request.setAttribute(YOUR\_NAME\_KEY, yourName); + + PortletRequestDispatcher rd = + context.getRequestDispatcher("/WEB-INF/view/helloworld.jsp"); + rd.include(request, response); + } + + public void processAction(ActionRequest request, ActionResponse response) + throws PortletException, IOException + { + String yourName = request.getParameter(YOUR\_NAME\_KEY); + + if (yourName != null) + { + response.setRenderParameter(YOUR\_NAME\_KEY, yourName); + } + } +} + +\end{screen} + +helloworld.jsp ¤Ï¡¢º£²ó¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ó¥å¡¼¤ÎÉôʬ¤Ë¤¢¤¿¤ê¤Þ¤¹¡£ +¤³¤Î JSP ¥Õ¥¡¥¤¥ë¤Ï¡¢HelloWorldPortlet ¥¯¥é¥¹¤«¤é¸Æ¤Ð¤ì¤Æ¡¢¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ +¤³¤³¤Ç¤Ï¡¢ÆþÎÏ¥Õ¥©¡¼¥à¤òɽ¼¨¤·¤Æ¡¢Á÷¿®¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë½èÍý¤ò¼Â¹Ô¤·¤Þ¤¹¡£ + + +¤³¤Î helloworld.jsp ¤Ç¤Ï¡¢£²¤Ä¤Î¥¿¥°¥é¥¤¥Ö¥é¥ê¤òÆɤ߹þ¤ó¤Ç¤¤¤Þ¤¹¤¬¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÇÍøÍѤµ¤ì¤ë¤Î¤¬ http://java.sun.com/portlet ¤Î¥¿¥°¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£ +taglib uri=... ¤Ç¤³¤Î¥¿¥Ö¥é¥¤¥Ö¥é¥ê¤òÀë¸À¤·¡¢\<portlet:defineObjects/\> ¤òµ­½Ò¤¹¤ë¤È¡¢¤½¤ì°Ê¹ß¤Ç¡¢renderRequest ¤Ê¤É¤Î¥Ñ¥é¥á¡¼¥¿¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤Þ¤¿¡¢¤³¤Î¥¿¥°¥é¥¤¥Ö¥é¥ê¤Ë¤Ï¡¢\<portlet:actionURL /\> ¤Ê¤É¤Î URL ¤òºîÀ®¤¹¤ë¥¿¥°¤â¤¢¤ë¤Î¤Ç¡¢¥Ó¥å¡¼¤Ç JSP ¤òÍøÍѤ¹¤ë¤È¤­¤Ë¤Ï¡¢Ä̾¤³¤Î¥¿¥Ö¥é¥¤¥Ö¥é¥ê¤Ï»È¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤³¤Î¥¿¥°¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï¡¢PLT.22 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + + +fmt ¤Î¥¿¥°¥é¥¤¥Ö¥é¥ê¤Ï¡¢°ìÈÌŪ¤Ê JSTL ¤Î¤â¤Î¤Ç¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ÎÊý¤Î¥É¥­¥å¥á¥ó¥È¤Ê¤É¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +º£²ó¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤ò¹ñºÝ²½¤¹¤ë¤¿¤á¤À¤±¤ËÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +¥Ý¡¼¥È¥ì¥Ã¥ÈÍѤËÆÃÊ̤˲¿¤«¤ò¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ + + +src/main/webapp/WEB-INF/view/helloworld.jsp ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ + +\begin{screen} + + + + + +" method="POST"> + + + + + + + + + + + +"/> + + + + + +\end{screen} + +¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤Î 1 ¤Ä¤Î¥Ú¡¼¥¸¤Ç¡¢¤½¤ÎÃæ¤Î°ìÉô¤Î¥Õ¥é¥°¥á¥ó¥È¤È¤·¤Æɽ¼¨¤µ¤ì¤ë¤¿¤á¡¢html¥¿¥°¡¢head¥¿¥°¤ä body ¥¿¥°¤Ê¤É¤Ïµ­½Ò¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ + + +ºÇ¸å¤Ë¡¢HelloWorldResources ¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£ +º£²ó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¤â¤Î (\_ja ¤¬¤Ê¤¤¤â¤Î) ¤È¡¢...\_ja.properties ¤ÎÆüËܸìÍѤΤâ¤Î¤òºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£ +¤³¤Î¥ê¥½¡¼¥¹¤Ï¡¢portlet.xml ¤È helloworld.jsp ¤Ç»ØÄꤷ¤Æ¡¢ÍøÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£ + + +¥Ç¥Õ¥©¥ë¥È¤Î¤â¤Î¤ÈÆüËܸìÍѤòÈæ¤Ù¤ë¤È¡¢ÆüËܸìÍѤˤϡ¢javax.portlet ¤Ç»Ï¤Þ¤ë¥×¥í¥Ñ¥Æ¥£¤¬Äɲ䵤ì¤Æ¤¤¤ë¤Î¤¬¤ï¤«¤ê¤Þ¤¹¡£ +¤³¤ì¤é¤Ï¡¢portlet.xml ¤Î portlet-info Í×Áǰʲ¼¤Ë¤¢¤Ã¤¿¤â¤Î¤Ë¤½¤ì¤¾¤ì¤¬Âбþ¤·¤Æ¤¤¤Þ¤¹¡£ +¤¿¤È¤¨¤Ð¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î¾åÉô¤Ëɽ¼¨¤µ¤ì¤ë¥¿¥¤¥È¥ë¤ÇÆüËܸì¤Î¥¿¥¤¥È¥ë¤òɽ¼¨¤·¤¿¤¤¤È¤¤¤Ã¤¿¾ì¹ç¤Ê¤É¤Ï¡¢javax.portlet.title ¥×¥í¥Ñ¥Æ¥£¤ò portlet.xml ¤Î resouce-bundle Í×ÁǤǻØÄꤷ¤¿¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤ËÄɲ䷤Ƥª¤±¤Ð¡¢¤³¤Î¥¿¥¤¥È¥ë¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ +short-title ¤È keywords¤âƱÍͤˡ¢ÆüËܸ줬ɽ¼¨¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¥×¥í¥Ñ¥Æ¥£¥Õ¥¡¥¤¥ë¤Ë²Ã¤¨¤Æ¤ª¤­¤Þ¤¹(short-title ¤Ï¤½¤Î̾¤ÎÄ̤ꡢËÜÍè¤Ï¡¢Ã»¤¤¥¿¥¤¥È¥ë¤Ç¤¹¡£¤³¤ì¤Ï¤¿¤È¤¨¤Ð¡¢·ÈÂÓÅÅÏäʤɤÇÄ̾ï¤è¤êû¤¤¥¿¥¤¥È¥ë¤¬É¬Íפʾì¹ç¤ËÍøÍѤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹)¡£ + + +src/main/java/com/marevol/portlet/helloworld/resources/HelloWorldResources\_ja.properties ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ + +\begin{screen} +\# portlet info +javax.portlet.title=\u30CF\u30ED\u30FC\u30EF\u30FC\u30EB\u30C9 +javax.portlet.short-title=\u3053\u308C\u306F\u3001\u300C\u3053\u3093\u306B\ +\u3061\u306F\u300D\u3068\u8A00\u3046\u30DD\u30FC\u30C8\u30EC\u30C3\u30C8\u3067\ +\u3059\u3002 +javax.portlet.keywords=\u30C6\u30B9\u30C8,\u30CF\u30ED\u30FC + +\# helloworld.jsp +helloworld.lable.Hello=\u3053\u3093\u306B\u3061\u306F\u3001 +helloworld.lable.YourName=\u540D\u524D: +helloworld.lable.Submit=\u9001\u4FE1 + +\end{screen} + +src/main/java/com/marevol/portlet/helloworld/resources/HelloWorldResources.properties ¤Ï°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ + +\begin{screen} +\# helloworld.jsp +helloworld.lable.Hello=Hello! +helloworld.lable.YourName=Your Name: +helloworld.lable.Submit=Submit + +\end{screen} + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ó¥ë¥É} + +ɬÍפʤâ¤Î¤¬°ìÄ̤êÍѰդǤ­¤¿¤Î¤Ç¡¢¼¡¤Ë¥Ó¥ë¥É¤·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î war ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹¡£ +¥Ó¥ë¥ÉÊýË¡¤Ï¡¢Èó¾ï¤Ë´Êñ¤Ç¤¹¡£ +¤³¤³¤Ç¤Ï¡¢Maven 2 ¤ò¼Â¹Ô¤Ç¤­¤ë´Ä¶­¤¬ÍѰպѤߤǤ¢¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£ +Maven 2 ¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢http://maven.apache.org/¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ + +\begin{screen} +\$ ls +pom.xml src +\$ mvn install +[INFO] Scanning for projects... +[INFO] ---------------------------------------------------------------------------- +[INFO] Building Helloworld Portlet +[INFO] task-segment: [install] +[INFO] ---------------------------------------------------------------------------- +. +. +. + +\end{screen} + +Ä̾ï¤Î Maven 2 ¤Î¥Ó¥ë¥É¤ÈƱÍÍ¡¢mvn install ¤ò¼Â¹Ô¤·¤Þ¤¹¡£ +¤³¤Î¤³¤È¤«¤é¤â¡¢´ðËÜŪ¤Ë¤Ï¡¢ÉáÄ̤ΠWeb ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÈƱ¤¸¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ë¤È»×¤¤¤Þ¤¹¡£ +¥Ó¥ë¥É¤ËÀ®¸ù¤·¤Æ¤¤¤ë¤È¡¢target ¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë helloworld.war ¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ + +\begin{screen} +\$ ls target/helloworld.war +target/helloworld.war + +\end{screen} + +¤³¤ì¤Ç¡¢JSR 168 ¤Ë½àµò¤·¤Æ¤¤¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤Ç¤­¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ +¤³¤ì¤ò¡¢JSR 168 ¤Ë½àµò¤·¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¾å¤Ë»ý¤Ã¤Æ¤¤¤­¡¢¤½¤Î¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤ÎÇÛÈ÷¼ê½ç¤Ë½¾¤Ã¤Æ¡¢ÇÛÈ÷¤¹¤ì¤Ð¡¢Æ°ºî¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + + + \if0 TODO How to Deploy \fi + + Added: pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-teeda-based-portlet.tex =================================================================== --- pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-teeda-based-portlet.tex (rev 0) +++ pal-portal/docs/ja/portlet-developers-guide/trunk/src/tex/guide-teeda-based-portlet.tex 2008-11-13 02:20:34 UTC (rev 1337) @@ -0,0 +1,119 @@ + +\if0 + Copyright 2004 The Apache Software Foundation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +\fi + + + +\section{Teeda ¤òÍѤ¤¤¿¥Ý¡¼¥È¥ì¥Ã¥È³«È¯ÊýË¡} + + + + + +\subsection{¤Ï¤¸¤á¤Ë} + +¤³¤³¤Ç¤Ï¡¢Teeda ¤òÍѤ¤¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯ÊýË¡¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤Þ¤¹(TODO: PAL¥Ý¡¼¥¿¥ëÍѤËÊÔ½¸Í½Äê)¡£ + + +Teeda ¤Ï¡¢¥µ¡¼¥Ö¥ì¥Ã¥È°Ê³°¤Ë¤â¥Ý¡¼¥È¥ì¥Ã¥È¤·¤ÆÆ°ºî¤¹¤ë¤³¤È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢JSF ¤¬¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¹(¤·¤«¤·¡¢¸½¾õ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ò¤­¤Á¤ó¤È¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë JSF ¼ÂÁõ¤Ï¿ô¾¯¤Ê¤¤¤Ç¤¹¡£Teeda ¤Ï¤­¤Á¤ó¤È¥µ¥Ý¡¼¥È¤¹¤ë¼ÂÁõ¤Î°ì¤Ä¤È¤¤¤¨¤Þ¤¹!)¡£ ¤Ç¤¹¤Î¤Ç¡¢Teeda Core ¤¬¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Î¤Ï¤â¤Á¤í¤ó¤Ç¤¹¤¬¡¢¤µ¤é¤Ë¡¢Teeda ¤Î³ÈÄ¥¤Ç¤¢¤ë Teeda Extension ¤Ë¤Ä¤¤¤Æ¤â¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¥µ¡¼¥Ö¥ì¥Ã¥È´Ä¶­¤Ç¤Î³«È¯¤ÈÊѤï¤ë¤³¤È¤¬¤Ê¤¯¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î³«È¯¤¬¹Ô¤¨¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤Ä¤¤¤Æ} + +¤Þ¤º¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤Ä¤¤¤Æ¡¢´Êñ¤ËÀâÌÀ¤·¤Þ¤¹¡£ Java ¥Ù¡¼¥¹¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢JSR 168 Portlet Specification ¤Ë¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È API ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤³¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤È¤Ï¡¢¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤·¤Æ¡¢Æ°Åª¤Ë¥³¥ó¥Æ¥ó¥Ä¤òÀ¸À®¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥Ê¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤ë¡¢Java ¥Ù¡¼¥¹¤Î¥¦¥§¥Ö¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¡¢¥×¥ì¥¼¥ó¥Æ¡¼¥·¥ç¥óÁؤò¾ðÊó¥·¥¹¥Æ¥à¤ËÄ󶡤¹¤ë¸ò´¹²Äǽ¤Ê¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤·¤Æ¡¢¥Ý¡¼¥¿¥ë¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë(PLT.2.2)¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢¥Ý¡¼¥¿¥ë¤È¤Ï¥¦¥§¥Ö¥Ù¡¼¥¹¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¡¢É½¼¨¡¢¥·¥ó¥°¥ë¥µ¥¤¥ó¥ª¥ó¡¢°Û¤Ê¤ëȯ¿®¸µ¤«¤é¤Î¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤òÄ󶡤·¤Æ¡¢¾ðÊó¥·¥¹¥Æ¥à¤Î¥×¥ì¥¼¥ó¥Æ¡¼¥·¥ç¥óÁؤòÄ󶡤¹¤ë(PLT.2.1)¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£»ÅÍÍŪ¤ÊÄêµÁ¤Ï°Ê¾å¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¹¤¬¡¢´Êñ¤Ë¤Þ¤È¤á¤ë¤È¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¥Ý¡¼¥¿¥ë(¥µ¡¼¥Ð¡¼)¾å¤Î¾®Áë(¥Õ¥é¥°¥á¥ó¥È)¤Ç¡¢¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤·¤Æ¡¢¥³¥ó¥Æ¥ó¥Ä¤ò¤½¤Î¾®Áë¤ÎÃæ¤Ëɽ¼¨¤¹¤ë¤â¤Î¤Ç¤¹¡£ JSR 168 ¤Ç¤Ï¡¢¤½¤Î¤¿¤á¤Î»ÅÍͤòÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ + + +\subsection{¥Ý¡¼¥È¥ì¥Ã¥È¤ÈJSF} + +¥Ý¡¼¥È¥ì¥Ã¥È¤Ç JSF ¤ò»È¤¦¥á¥ê¥Ã¥È¤Ï²¿¤Ç¤·¤ç¤¦¤«¡© JSF ¤ò¥×¥ì¥¼¥ó¥Æ¡¼¥·¥ç¥óÁؤΥե졼¥à¥ï¡¼¥¯¤È¤·¤ÆÍøÍѤ·¤Ê¤¤¾ì¹ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È API ¤ò½¬ÆÀ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢JSF ¤ò¥Ý¡¼¥È¥ì¥Ã¥È¤ÇÍøÍѤ·¤¿¾ì¹ç¡¢JSF ¤Ë¥é¥Ã¥×¤µ¤ì¤ë¤Î¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È API ¤ò°Õ¼±¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó(PortletPreferences¤Ê¤É¥Ý¡¼¥È¥ì¥Ã¥È¸ÇÍ­¤Î API ¤ò»È¤¦¾ì¹ç¤ÏÊ̤Ǥ¹¤¬)¡£ ¤Ç¤¹¤Î¤Ç¡¢JSF ¤òÍøÍѤ¹¤ë¤³¤È¤Ç¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¤¹¤ë´¶³Ð¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤Ç¤­¤Æ¤·¤Þ¤¦¤ï¤±¤Ç¤¹¡£ + + +\subsection{¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¥Ý¡¼¥È¥ì¥Ã¥È¤Ø¤Î³ÈÄ¥} + +Á°ÃÖ¤­¤¬Ä¹¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¡¢º£¤Þ¤Ç¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯¤¹¤ë¤¿¤á¤Ë¡¢³Ø½¬¤Ê¤É¤Î¥³¥¹¥È¤¬¤¢¤Ã¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢Teeda ¤Ç¤Î³«È¯¤òÃΤäƤ¤¤ì¤Ð¡¢¤½¤ÎÃ챤ò¤½¤Î¤Þ¤ÞÍøÍѤ·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯¤â¹Ô¤¨¤Þ¤¹(¥Ý¡¼¥¿¥ë¸ÇÍ­¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¾ì¹ç°Ê³°¤Ï¡¢ÊÌÅÓ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯ÊýË¡¤ò³Ø½¬¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó!)¡£Teeda ¤ÇºîÀ®¤µ¤ì¤¿¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢°Ê²¼¤Î¤³¤È¤ò¹Ô¤¦¤À¤±¤Ç¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ +web.xml¤òÊѹ¹portlet.xml¤òÄɲåݡ¼¥È¥ì¥Ã¥È¥Õ¥£¥ë¥¿¤ÈS2Portlet¤Îjar¤òÄɲÃjsp¤ähtml¤«¤éhtml,head,body¥¿¥°¤òºï½ü¤¹¤ë + + +\subsection{web.xml ¤ÎÊÔ½¸} + +¤Þ¤º¡¢web.xml ¤Ë¤Ä¤¤¤Æ¤Ï¡¢Teeda ¤ò¥µ¡¼¥Ö¥ì¥Ã¥È¤Ç½é´ü²½¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð TeedaServlet¡¢¥ê¥¹¥Ê¡¼¤Ç½é´ü²½¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤ÐTeedaConfigureListener ¤òÍøÍѤ·¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È´Ä¶­¤ÇÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢TeedaServlet ¤Ç¤¢¤ì¤Ð TeedaPortletExtendedServlet ¤Ë¡¢TeedaConfigureListener ¤Ç¤¢¤ì¤Ð TeedaPortletExtendedConfigureListener ¤Ë½ñ¤­´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£ ¤½¤ì¤é¤ËÃÖ¤­´¹¤¨¤ë¤³¤È¤Ç¡¢S2 ¤ª¤è¤Ó Teeda ¤Ç¥Ý¡¼¥È¥ì¥Ã¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£ web.xml ¤ÎÊѹ¹¤Ï¤³¤ì¤À¤±¤Ç OK ¤Ç¤¹¡£ + + +\subsection{portlet.xml ¤ÎÄɲÃ} + +¼¡¤Ë¡¢portlet.xml ¤Ç¤¹¤¬¡¢¤³¤ì¤Ï JSR 168 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥È¥ì¥Ã¥ÈÇÛÈ÷»Ò¤Ç¤¹¡£ ¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¾å¤Ëɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¾ðÊó¤òµ­½Ò¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤ÊÆâÍƤò¤³¤Î¥Õ¥¡¥¤¥ë¤Ëµ­½Ò¤·¤Þ¤¹¡£ + +\begin{screen} + + + +TeedaHtmlExample +Teeda HTML Example +This is an example portlet for Teeda. + + org.apache.portals.bridges.portletfilter.FilterPortlet + + +portlet-class +org.seasar.teeda.core.portlet.FacesPortlet + + +portlet-filters +org.seasar.portlet.filter.S2PortletFilter, +org.seasar.portlet.filter.HotdeployPortletFilter + + +view-page +/view/start/index.html + +\if0 +edit-page + +\fi + +text/html +VIEW +\if0EDIT\fi + +en +ja + \if0 resource-bundle> Revision: 1338 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1338 Author: shinsuke Date: 2008-11-13 13:29:34 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added gender, birthdate, nickname to userinfo. fixed a bug in properties files. Modified Paths: -------------- userinfo/trunk/src/main/config/erd/userinfo.erd userinfo/trunk/src/main/config/sql/userinfo.ddl userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/resources/application_ja.properties userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp -------------- next part -------------- Modified: userinfo/trunk/src/main/config/erd/userinfo.erd =================================================================== --- userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-13 04:29:34 UTC (rev 1338) @@ -85,6 +85,49 @@ + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + email Email @@ -174,7 +217,7 @@ updated_time Updated Time - + 10 true false @@ -196,7 +239,7 @@ deleted_time Deleted Time - + 10 false false @@ -255,7 +298,7 @@ false - + @@ -325,7 +368,7 @@ created_time Created Time - + 10 true false @@ -347,7 +390,7 @@ updated_time Updated Time - + 10 true false @@ -369,7 +412,7 @@ deleted_time Deleted Time - + 10 false false @@ -391,7 +434,7 @@ versionNo Version No. - + 10 true false @@ -403,7 +446,7 @@ 40 - 643 + 700 -1 -1 @@ -557,7 +600,7 @@ false - + @@ -627,7 +670,7 @@ created_time Created Time - + 10 true false @@ -649,7 +692,7 @@ updated_time Updated Time - + 10 true false @@ -671,7 +714,7 @@ deleted_time Deleted Time - + 10 false false @@ -693,7 +736,7 @@ versionNo Version No. - + 10 true false @@ -705,7 +748,7 @@ 364 - 643 + 700 -1 -1 Modified: userinfo/trunk/src/main/config/sql/userinfo.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-13 04:29:34 UTC (rev 1338) @@ -52,6 +52,9 @@ middle_name VARCHAR(50), given_name_desc VARCHAR(100), family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -37,7 +37,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -20,7 +20,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -87,6 +87,15 @@ /** FAMILY_NAME_DESC: {VARCHAR(100)} */ protected String _familyNameDesc; + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + /** EMAIL: {VARCHAR(255)} */ protected String _email; @@ -380,6 +389,9 @@ sb.append(delimiter).append(getMiddleName()); sb.append(delimiter).append(getGivenNameDesc()); sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); @@ -538,6 +550,72 @@ this._familyNameDesc = familyNameDesc; } + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
        + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
        + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
        + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
        + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
        + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
        + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + /** The column annotation for S2Dao. {VARCHAR(255)} */ public static final String email_COLUMN = "EMAIL"; Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -66,6 +66,15 @@ protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", "familyNameDesc", String.class, false, 100, 0); + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, false, 255, 0); @@ -126,6 +135,18 @@ return _columnFamilyNameDesc; } + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + public ColumnInfo columnEmail() { return _columnEmail; } @@ -397,6 +418,9 @@ setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); @@ -456,6 +480,24 @@ } } + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + public static class EpsEmail implements Eps { public void setup(UserInfo e, Object v) { e.setEmail((String) v); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -270,6 +270,18 @@ doColumn("FAMILY_NAME_DESC"); } + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + public void columnEmail() { doColumn("EMAIL"); } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -1117,6 +1117,391 @@ abstract protected ConditionValue getCValueFamilyNameDesc(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.userinfo.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} * * @param email The value of email as equal. Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -383,6 +383,75 @@ return this; } + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + protected ConditionValue _email; public ConditionValue getEmail() { Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -174,6 +174,18 @@ return _myCQ.getFamilyNameDesc(); } + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + protected ConditionValue getCValueEmail() { return _myCQ.getEmail(); } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -8,19 +8,20 @@ import org.seasar.extension.dxo.annotation.ConversionRule; import org.seasar.extension.dxo.annotation.DatePattern; import org.seasar.extension.dxo.annotation.ExcludeNull; -import org.seasar.extension.dxo.annotation.TimestampPattern; public interface UserInfoDxo extends Serializable { @ExcludeNull @DatePattern("yyyy/MM/dd") - @TimestampPattern("yyyy/MM/dd HH:mm:ss") @ConversionRule("userId : userId" // + ", givenName : givenName" // + ", familyName : familyName" // + ", middleName : middleName" // + ", givenNameDesc : givenNameDesc" // + ", familyNameDesc : familyNameDesc" // + + ", gender : gender" // + + ", birthDate : birthDate" // + + ", nickname : nickname" // + ", email : email" // + ", url : url" // + ", telephone : telephone" // @@ -37,13 +38,16 @@ public void convertFromUserInfoToForm(UserInfo userInfo, UserInfoForm form); @ExcludeNull - @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @DatePattern("yyyy/MM/dd") @ConversionRule(// "givenName : givenName" // + ", familyName : familyName" // + ", middleName : middleName" // + ", givenNameDesc : givenNameDesc" // + ", familyNameDesc : familyNameDesc" // + + ", gender : gender" // + + ", birthDate : birthDate" // + + ", nickname : nickname" // + ", email : email" // + ", url : url" // + ", telephone : telephone" // Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-13 04:29:34 UTC (rev 1338) @@ -35,6 +35,15 @@ @Maxbytelength(maxbytelength = 100) public String familyNameDesc; + @Maxbytelength(maxbytelength = 1) + public String gender; + + @Maxbytelength(maxbytelength = 100) + public String nickname; + + @DateType + public String birthDate; + @Maxbytelength(maxbytelength = 255) public String email; @@ -78,6 +87,9 @@ middleName = null; givenNameDesc = null; familyNameDesc = null; + nickname = null; + birthDate = null; + gender = null; email = null; url = null; telephone = null; Modified: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-13 04:29:34 UTC (rev 1338) @@ -86,14 +86,19 @@ labels.create_new_role=Create New Role -labels.confirmation_of_role_info=Confirmation of User Info +labels.confirmation_of_user_info=Confirmation of User Info labels.user_id=User ID labels.given_name=Given Name -labels.given_name_desc=Given Name(Desc) +labels.given_name_desc=Given Name (Reading) labels.family_name=Family Name -labels.family_name_desc=Family Name(Desc) +labels.family_name_desc=Family Name (Reading) labels.middle_name=Middle Name labels.none=None +labels.gender=Gender +labels.nickname=Nickname +labels.birth_date=Birth Date +labels.male=Male +labels.female=Female labels.default_role=Default Role labels.default_group=Default Group Modified: userinfo/trunk/src/main/resources/application_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/application_ja.properties 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/resources/application_ja.properties 2008-11-13 04:29:34 UTC (rev 1338) @@ -79,14 +79,19 @@ labels.create_new_role=\u30ed\u30fc\u30eb\u306e\u4f5c\u6210 -labels.confirmation_of_role_info=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u767b\u9332 +labels.confirmation_of_user_info=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u767b\u9332 labels.user_id=\u30e6\u30fc\u30b6\u30fc ID labels.given_name=\u540d -labels.given_name_desc=\u540d(\u8a73\u7d30) +labels.given_name_desc=\u540d(\u3088\u307f) labels.family_name=\u59d3 -labels.family_name_desc=\u59d3(\u8a73\u7d30) +labels.family_name_desc=\u59d3(\u3088\u307f) labels.middle_name=\u30df\u30c9\u30eb\u30cd\u30fc\u30e0 labels.none=\u306a\u3057 +labels.gender=\u6027\u5225 +labels.nickname=\u30cb\u30c3\u30af\u30cd\u30fc\u30e0 +labels.birth_date=\u8a95\u751f\u65e5 +labels.male=\u7537\u6027 +labels.female=\u5973\u6027 labels.default_role=\u65e2\u5b9a\u306e\u30ed\u30fc\u30eb labels.default_group=\u65e2\u5b9a\u306e\u30b0\u30eb\u30fc\u30d7 Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-13 02:20:34 UTC (rev 1337) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-13 04:29:34 UTC (rev 1338) @@ -37,6 +37,14 @@
    ${f:h(userId)}
    ${f:h(familyName)}
    ${f:h(familyNameDesc)}
    ${f:h(givenName)}
    ${f:h(givenNameDesc)}
    ${f:h(familyName)}${f:h(middleName)}
    ${f:h(familyNameDesc)}${f:h(nickname)}
    ${f:h(middleName)} + + + + +
    ${f:h(birthDate)}
    ${f:h(email)}
    + + + + + +
     
    ${f:h(u.userId)}${f:h(u.familyName)} ${f:h(u.givenName)}${f:h(u.familyName)} ${f:h(u.email)} From svnnotify ¡÷ sourceforge.jp Thu Nov 13 14:20:01 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 14:20:01 +0900 Subject: [pal-cvs 3604] [1339] added gender, birthdate, nickname to userinfo. Message-ID: <1226553601.184096.1018.nullmailer@users.sourceforge.jp> Revision: 1339 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1339 Author: shinsuke Date: 2008-11-13 14:20:00 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added gender, birthdate,nickname to userinfo. Modified Paths: -------------- addresslist/trunk/src/main/config/erd/addresslist.erd addresslist/trunk/src/main/config/sql/addresslist.ddl addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.1.log.db addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db -------------- next part -------------- Modified: addresslist/trunk/src/main/config/erd/addresslist.erd =================================================================== --- addresslist/trunk/src/main/config/erd/addresslist.erd 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/config/erd/addresslist.erd 2008-11-13 05:20:00 UTC (rev 1339) @@ -85,6 +85,49 @@ + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + email Email @@ -174,7 +217,7 @@ updated_time Updated Time - + 10 true false @@ -196,7 +239,7 @@ deleted_time Deleted Time - + 10 false false @@ -235,7 +278,7 @@ 407 - 1353 + 1315 -1 -1 @@ -255,7 +298,7 @@ false - + @@ -325,7 +368,7 @@ created_time Created Time - + 10 true false @@ -347,7 +390,7 @@ updated_time Updated Time - + 10 true false @@ -369,7 +412,7 @@ deleted_time Deleted Time - + 10 false false @@ -391,7 +434,7 @@ versionNo Version No. - + 10 true false @@ -403,7 +446,7 @@ 40 - 1797 + 1816 -1 -1 @@ -472,7 +515,7 @@ 44 - 795 + 757 -1 -1 @@ -557,7 +600,7 @@ false - + @@ -627,7 +670,7 @@ created_time Created Time - + 10 true false @@ -649,7 +692,7 @@ updated_time Updated Time - + 10 true false @@ -671,7 +714,7 @@ deleted_time Deleted Time - + 10 false false @@ -693,7 +736,7 @@ versionNo Version No. - + 10 true false @@ -705,7 +748,7 @@ 586 - 1797 + 1816 -1 -1 @@ -769,7 +812,7 @@ 594 - 795 + 757 -1 -1 @@ -1122,7 +1165,7 @@ 432 - 313 + 275 -1 -1 @@ -1416,7 +1459,7 @@ 305 - 795 + 757 -1 -1 @@ -1861,4 +1904,4 @@ - + \ No newline at end of file Modified: addresslist/trunk/src/main/config/sql/addresslist.ddl =================================================================== --- addresslist/trunk/src/main/config/sql/addresslist.ddl 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/config/sql/addresslist.ddl 2008-11-13 05:20:00 UTC (rev 1339) @@ -57,6 +57,9 @@ middle_name VARCHAR(50), given_name_desc VARCHAR(100), family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -43,7 +43,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -22,7 +22,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -89,6 +89,15 @@ /** FAMILY_NAME_DESC: {VARCHAR(100)} */ protected String _familyNameDesc; + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + /** EMAIL: {VARCHAR(255)} */ protected String _email; @@ -442,6 +451,9 @@ sb.append(delimiter).append(getMiddleName()); sb.append(delimiter).append(getGivenNameDesc()); sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); @@ -600,6 +612,72 @@ this._familyNameDesc = familyNameDesc; } + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + /** The column annotation for S2Dao. {VARCHAR(255)} */ public static final String email_COLUMN = "EMAIL"; Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -66,6 +66,15 @@ protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", "familyNameDesc", String.class, false, 100, 0); + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, false, 255, 0); @@ -126,6 +135,18 @@ return _columnFamilyNameDesc; } + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + public ColumnInfo columnEmail() { return _columnEmail; } @@ -409,6 +430,9 @@ setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); @@ -468,6 +492,24 @@ } } + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + public static class EpsEmail implements Eps { public void setup(UserInfo e, Object v) { e.setEmail((String) v); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -272,6 +272,18 @@ doColumn("FAMILY_NAME_DESC"); } + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + public void columnEmail() { doColumn("EMAIL"); } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -1351,6 +1351,391 @@ abstract protected ConditionValue getCValueFamilyNameDesc(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.addresslist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} * * @param email The value of email as equal. Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -545,6 +545,75 @@ return this; } + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + protected ConditionValue _email; public ConditionValue getEmail() { Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 04:29:34 UTC (rev 1338) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 05:20:00 UTC (rev 1339) @@ -222,6 +222,18 @@ return _myCQ.getFamilyNameDesc(); } + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + protected ConditionValue getCValueEmail() { return _myCQ.getEmail(); } Modified: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.1.log.db =================================================================== (Binary files differ) Modified: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Thu Nov 13 14:37:30 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 14:37:30 +0900 Subject: [pal-cvs 3605] [1340] added gender, birthdate, nickname to userinfo. Message-ID: <1226554650.359358.19602.nullmailer@users.sourceforge.jp> Revision: 1340 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1340 Author: shinsuke Date: 2008-11-13 14:37:30 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added gender, birthdate,nickname to userinfo. Modified Paths: -------------- bookmark/trunk/src/main/config/erd/bookmark.erd bookmark/trunk/src/main/config/sql/bookmark.ddl bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db -------------- next part -------------- Modified: bookmark/trunk/src/main/config/erd/bookmark.erd =================================================================== --- bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-13 05:37:30 UTC (rev 1340) @@ -85,6 +85,49 @@
    + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + email Email @@ -174,7 +217,7 @@ updated_time Updated Time - + 10 true false @@ -196,7 +239,7 @@ deleted_time Deleted Time - + 10 false false @@ -234,7 +277,7 @@ - 428 + 441 738 -1 -1 @@ -255,7 +298,7 @@ false - + @@ -325,7 +368,7 @@ created_time Created Time - + 10 true false @@ -347,7 +390,7 @@ updated_time Updated Time - + 10 true false @@ -369,7 +412,7 @@ deleted_time Deleted Time - + 10 false false @@ -391,7 +434,7 @@ versionNo Version No. - + 10 true false @@ -403,7 +446,7 @@ 40 - 1182 + 1239 -1 -1 @@ -557,7 +600,7 @@ false - + @@ -627,7 +670,7 @@ created_time Created Time - + 10 true false @@ -649,7 +692,7 @@ updated_time Updated Time - + 10 true false @@ -671,7 +714,7 @@ deleted_time Deleted Time - + 10 false false @@ -693,7 +736,7 @@ versionNo Version No. - + 10 true false @@ -704,8 +747,8 @@ - 607 - 1182 + 620 + 1239 -1 -1 @@ -768,7 +811,7 @@ - 615 + 628 408 -1 -1 @@ -1056,7 +1099,7 @@ - 443 + 456 40 -1 -1 Modified: bookmark/trunk/src/main/config/sql/bookmark.ddl =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-13 05:37:30 UTC (rev 1340) @@ -54,6 +54,9 @@ middle_name VARCHAR(50), given_name_desc VARCHAR(100), family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -43,7 +43,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -22,7 +22,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -89,6 +89,15 @@ /** FAMILY_NAME_DESC: {VARCHAR(100)} */ protected String _familyNameDesc; + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + /** EMAIL: {VARCHAR(255)} */ protected String _email; @@ -514,6 +523,9 @@ sb.append(delimiter).append(getMiddleName()); sb.append(delimiter).append(getGivenNameDesc()); sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); @@ -672,6 +684,72 @@ this._familyNameDesc = familyNameDesc; } + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + /** The column annotation for S2Dao. {VARCHAR(255)} */ public static final String email_COLUMN = "EMAIL"; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -66,6 +66,15 @@ protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", "familyNameDesc", String.class, false, 100, 0); + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, false, 255, 0); @@ -126,6 +135,18 @@ return _columnFamilyNameDesc; } + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + public ColumnInfo columnEmail() { return _columnEmail; } @@ -425,6 +446,9 @@ setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); @@ -484,6 +508,24 @@ } } + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + public static class EpsEmail implements Eps { public void setup(UserInfo e, Object v) { e.setEmail((String) v); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -272,6 +272,18 @@ doColumn("FAMILY_NAME_DESC"); } + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + public void columnEmail() { doColumn("EMAIL"); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -1621,6 +1621,391 @@ abstract protected ConditionValue getCValueFamilyNameDesc(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.bookmark.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} * * @param email The value of email as equal. Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -765,6 +765,75 @@ return this; } + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + protected ConditionValue _email; public ConditionValue getEmail() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 05:20:00 UTC (rev 1339) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 05:37:30 UTC (rev 1340) @@ -296,6 +296,18 @@ return _myCQ.getFamilyNameDesc(); } + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + protected ConditionValue getCValueEmail() { return _myCQ.getEmail(); } Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Thu Nov 13 14:58:03 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 14:58:03 +0900 Subject: [pal-cvs 3606] [1341] added gender, birthdate, nickname to userinfo. Message-ID: <1226555883.936464.8474.nullmailer@users.sourceforge.jp> Revision: 1341 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1341 Author: shinsuke Date: 2008-11-13 14:58:03 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added gender, birthdate,nickname to userinfo. Modified Paths: -------------- notepad/trunk/src/main/config/erd/notepad.erd notepad/trunk/src/main/config/sql/notepad.ddl notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db -------------- next part -------------- Modified: notepad/trunk/src/main/config/erd/notepad.erd =================================================================== --- notepad/trunk/src/main/config/erd/notepad.erd 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/config/erd/notepad.erd 2008-11-13 05:58:03 UTC (rev 1341) @@ -85,6 +85,49 @@
    + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + email Email @@ -174,7 +217,7 @@ updated_time Updated Time - + 10 true false @@ -196,7 +239,7 @@ deleted_time Deleted Time - + 10 false false @@ -234,7 +277,7 @@ - 428 + 441 802 -1 -1 @@ -255,7 +298,7 @@ false - + @@ -325,7 +368,7 @@ created_time Created Time - + 10 true false @@ -347,7 +390,7 @@ updated_time Updated Time - + 10 true false @@ -369,7 +412,7 @@ deleted_time Deleted Time - + 10 false false @@ -391,7 +434,7 @@ versionNo Version No. - + 10 true false @@ -403,7 +446,7 @@ 40 - 1246 + 1303 -1 -1 @@ -557,7 +600,7 @@ false - + @@ -627,7 +670,7 @@ created_time Created Time - + 10 true false @@ -649,7 +692,7 @@ updated_time Updated Time - + 10 true false @@ -671,7 +714,7 @@ deleted_time Deleted Time - + 10 false false @@ -693,7 +736,7 @@ versionNo Version No. - + 10 true false @@ -704,8 +747,8 @@ - 607 - 1246 + 620 + 1303 -1 -1 @@ -768,7 +811,7 @@ - 615 + 628 491 -1 -1 @@ -1023,7 +1066,7 @@ - 443 + 456 180 -1 -1 @@ -1345,7 +1388,7 @@ - 465 + 478 40 -1 -1 Modified: notepad/trunk/src/main/config/sql/notepad.ddl =================================================================== --- notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-13 05:58:03 UTC (rev 1341) @@ -55,6 +55,9 @@ middle_name VARCHAR(50), given_name_desc VARCHAR(100), family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -43,7 +43,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -22,7 +22,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -89,6 +89,15 @@ /** FAMILY_NAME_DESC: {VARCHAR(100)} */ protected String _familyNameDesc; + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + /** EMAIL: {VARCHAR(255)} */ protected String _email; @@ -508,6 +517,9 @@ sb.append(delimiter).append(getMiddleName()); sb.append(delimiter).append(getGivenNameDesc()); sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); @@ -666,6 +678,72 @@ this._familyNameDesc = familyNameDesc; } + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + /** The column annotation for S2Dao. {VARCHAR(255)} */ public static final String email_COLUMN = "EMAIL"; Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -66,6 +66,15 @@ protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", "familyNameDesc", String.class, false, 100, 0); + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, false, 255, 0); @@ -126,6 +135,18 @@ return _columnFamilyNameDesc; } + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + public ColumnInfo columnEmail() { return _columnEmail; } @@ -425,6 +446,9 @@ setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); @@ -484,6 +508,24 @@ } } + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + public static class EpsEmail implements Eps { public void setup(UserInfo e, Object v) { e.setEmail((String) v); Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -272,6 +272,18 @@ doColumn("FAMILY_NAME_DESC"); } + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + public void columnEmail() { doColumn("EMAIL"); } Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -1609,6 +1609,391 @@ abstract protected ConditionValue getCValueFamilyNameDesc(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.notepad.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.notepad.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} * * @param email The value of email as equal. Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -747,6 +747,75 @@ return this; } + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + protected ConditionValue _email; public ConditionValue getEmail() { Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 05:37:30 UTC (rev 1340) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 05:58:03 UTC (rev 1341) @@ -296,6 +296,18 @@ return _myCQ.getFamilyNameDesc(); } + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + protected ConditionValue getCValueEmail() { return _myCQ.getEmail(); } Modified: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db =================================================================== (Binary files differ) Modified: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Thu Nov 13 15:13:30 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 15:13:30 +0900 Subject: [pal-cvs 3607] [1342] added gender, birthdate, nickname to userinfo. Message-ID: <1226556810.777114.23494.nullmailer@users.sourceforge.jp> Revision: 1342 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1342 Author: shinsuke Date: 2008-11-13 15:13:30 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added gender, birthdate,nickname to userinfo. Modified Paths: -------------- todolist/trunk/src/main/config/erd/todolist.erd todolist/trunk/src/main/config/sql/todolist.ddl todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db -------------- next part -------------- Modified: todolist/trunk/src/main/config/erd/todolist.erd =================================================================== --- todolist/trunk/src/main/config/erd/todolist.erd 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/config/erd/todolist.erd 2008-11-13 06:13:30 UTC (rev 1342) @@ -85,6 +85,49 @@
    + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + email Email @@ -174,7 +217,7 @@ updated_time Updated Time - + 10 true false @@ -196,7 +239,7 @@ deleted_time Deleted Time - + 10 false false @@ -255,7 +298,7 @@ false - + @@ -325,7 +368,7 @@ created_time Created Time - + 10 true false @@ -347,7 +390,7 @@ updated_time Updated Time - + 10 true false @@ -369,7 +412,7 @@ deleted_time Deleted Time - + 10 false false @@ -391,7 +434,7 @@ versionNo Version No. - + 10 true false @@ -403,7 +446,7 @@ 40 - 1201 + 1258 -1 -1 @@ -557,7 +600,7 @@ false - + @@ -627,7 +670,7 @@ created_time Created Time - + 10 true false @@ -649,7 +692,7 @@ updated_time Updated Time - + 10 true false @@ -671,7 +714,7 @@ deleted_time Deleted Time - + 10 false false @@ -693,7 +736,7 @@ versionNo Version No. - + 10 true false @@ -705,7 +748,7 @@ 864 - 1201 + 1258 -1 -1 @@ -1132,7 +1175,7 @@ created_time Created Time - + 10 true false @@ -1154,7 +1197,7 @@ updated_time Updated Time - + 10 true false @@ -1176,7 +1219,7 @@ deleted_time Deleted Time - + 10 false false @@ -1198,7 +1241,7 @@ versionNo Version No. - + 10 true false @@ -1332,7 +1375,7 @@ created_time Created Time - + 10 true false @@ -1354,7 +1397,7 @@ updated_time Updated Time - + 10 true false @@ -1376,7 +1419,7 @@ deleted_time Deleted Time - + 10 false false Modified: todolist/trunk/src/main/config/sql/todolist.ddl =================================================================== --- todolist/trunk/src/main/config/sql/todolist.ddl 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/config/sql/todolist.ddl 2008-11-13 06:13:30 UTC (rev 1342) @@ -55,6 +55,9 @@ middle_name VARCHAR(50), given_name_desc VARCHAR(100), family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -46,7 +46,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -23,7 +23,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -90,6 +90,15 @@ /** FAMILY_NAME_DESC: {VARCHAR(100)} */ protected String _familyNameDesc; + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + /** EMAIL: {VARCHAR(255)} */ protected String _email; @@ -473,6 +482,9 @@ sb.append(delimiter).append(getMiddleName()); sb.append(delimiter).append(getGivenNameDesc()); sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); @@ -631,6 +643,72 @@ this._familyNameDesc = familyNameDesc; } + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + /** The column annotation for S2Dao. {VARCHAR(255)} */ public static final String email_COLUMN = "EMAIL"; Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -66,6 +66,15 @@ protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", "familyNameDesc", String.class, false, 100, 0); + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, false, 255, 0); @@ -126,6 +135,18 @@ return _columnFamilyNameDesc; } + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + public ColumnInfo columnEmail() { return _columnEmail; } @@ -417,6 +438,9 @@ setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); @@ -476,6 +500,24 @@ } } + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + public static class EpsEmail implements Eps { public void setup(UserInfo e, Object v) { e.setEmail((String) v); Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -273,6 +273,18 @@ doColumn("FAMILY_NAME_DESC"); } + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + public void columnEmail() { doColumn("EMAIL"); } Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -1469,6 +1469,391 @@ abstract protected ConditionValue getCValueFamilyNameDesc(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.todolist.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.todolist.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} * * @param email The value of email as equal. Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -636,6 +636,75 @@ return this; } + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + protected ConditionValue _email; public ConditionValue getEmail() { Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 05:58:03 UTC (rev 1341) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 06:13:30 UTC (rev 1342) @@ -256,6 +256,18 @@ return _myCQ.getFamilyNameDesc(); } + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + protected ConditionValue getCValueEmail() { return _myCQ.getEmail(); } Modified: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db =================================================================== (Binary files differ) Modified: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Thu Nov 13 15:31:45 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 15:31:45 +0900 Subject: [pal-cvs 3608] [1343] added gender, birthdate, nickname to userinfo. Message-ID: <1226557905.179091.5705.nullmailer@users.sourceforge.jp> Revision: 1343 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1343 Author: shinsuke Date: 2008-11-13 15:31:44 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added gender, birthdate,nickname to userinfo. Modified Paths: -------------- timecard/trunk/src/main/config/erd/timecard.erd timecard/trunk/src/main/config/sql/timecard.ddl timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/AccessContext.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/DBFluteConfig.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/AbstractBehaviorReadable.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/load/LoadReferrerOption.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/setup/EntityListSetupper.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/AbstractConditionBean.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBean.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBeanContext.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ListResultBean.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/PagingResultBean.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ResultBeanBuilder.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingOption.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowResource.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowSetupper.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/AbstractSqlClause.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByClause.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByElement.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/AbstractDBMeta.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMeta.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/helper/token/line/impl/LineTokenImpl.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/CursorHandler.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoLatestSqlProvider.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataExtension.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsDailyReportBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsMonthlyReportBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsDailyReportDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsEmployeeDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsMonthlyReportDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/DailyReportDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/MonthlyReportDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db timecard/trunk/src/main/webapp/WEB-INF/db/timecard.index.db Added Paths: ----------- timecard/trunk/mydbflute/README.txt timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/CallbackContext.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/SqlLogHandler.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/valuetype/ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupMappingBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleMappingBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupMappingDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleMappingDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupMapping.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleMapping.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupMappingDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleMappingDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupMappingCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleMappingCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupMappingCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleMappingCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupMappingCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleMappingCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupMappingCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleMappingCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupMappingCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleMappingCIQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupMappingNss.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleMappingNss.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupMappingBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleMappingBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupMappingDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleMappingDao.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupMapping.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleMapping.java -------------- next part -------------- Added: timecard/trunk/mydbflute/README.txt =================================================================== --- timecard/trunk/mydbflute/README.txt (rev 0) +++ timecard/trunk/mydbflute/README.txt 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: timecard/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/config/erd/timecard.erd =================================================================== --- timecard/trunk/src/main/config/erd/timecard.erd 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/config/erd/timecard.erd 2008-11-13 06:31:44 UTC (rev 1343) @@ -271,8 +271,8 @@ - 48 - 465 + 280 + 484 -1 -1 @@ -448,8 +448,8 @@ - 500 - 537 + 292 + 966 -1 -1 @@ -547,6 +547,49 @@
    + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + email Email @@ -636,7 +679,7 @@ updated_time Updated Time - + 10 true false @@ -658,7 +701,7 @@ deleted_time Deleted Time - + 10 false false @@ -696,8 +739,8 @@ - 507 - 106 + 276 + 1296 -1 -1 @@ -717,7 +760,7 @@ false - + @@ -787,7 +830,7 @@ created_time Created Time - + 10 true false @@ -809,7 +852,7 @@ updated_time Updated Time - + 10 true false @@ -831,7 +874,7 @@ deleted_time Deleted Time - + 10 false false @@ -853,7 +896,7 @@ versionNo Version No. - + 10 true false @@ -864,14 +907,125 @@ - 854 - 79 + 40 + 1797 -1 -1 + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 56 + 966 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + @@ -908,7 +1062,7 @@ false - + @@ -978,7 +1132,7 @@ created_time Created Time - + 10 true false @@ -1000,7 +1154,7 @@ updated_time Updated Time - + 10 true false @@ -1022,7 +1176,7 @@ deleted_time Deleted Time - + 10 false false @@ -1044,7 +1198,7 @@ versionNo Version No. - + 10 true false @@ -1055,14 +1209,120 @@ - 851 - 449 + 542 + 1797 -1 -1 + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 563 + 966 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + @@ -1107,6 +1367,8 @@ + + @@ -1396,7 +1658,7 @@ - 40 + 267 40 -1 -1 @@ -1442,6 +1704,8 @@ + + hsqldb @@ -1463,4 +1727,4 @@ - \ No newline at end of file + Modified: timecard/trunk/src/main/config/sql/timecard.ddl =================================================================== --- timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,3 +1,5 @@ +DROP TABLE role_mapping; +DROP TABLE group_mapping; DROP TABLE daily_report; DROP TABLE monthly_report; DROP TABLE employee; @@ -53,6 +55,9 @@ middle_name VARCHAR(50), given_name_desc VARCHAR(100), family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), @@ -141,3 +146,25 @@ FOREIGN KEY (monthly_report_id) REFERENCES monthly_report (id) ); +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/AccessContext.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/AccessContext.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/AccessContext.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -4,12 +4,7 @@ import java.util.Map; /** - * Access-Context. - *

    - * This access-context on the thread should be initialized at the beginning of - * access. The access is various. Web-Access, Batch-Access, JUnit-Access and so - * on... - *

    + * The context of DB access. * * @author DBFlute(AutoGenerator) */ @@ -20,28 +15,28 @@ // Thread Local // ============ /** The thread-local for this. */ - private static final ThreadLocal threadLocal = new ThreadLocal(); + private static final ThreadLocal _threadLocal = new ThreadLocal(); /** * Get access-context on thread. * - * @return Access-context. (Nullable) + * @return The context of DB access.. (Nullable) */ public static AccessContext getAccessContextOnThread() { - return (AccessContext) threadLocal.get(); + return (AccessContext) _threadLocal.get(); } /** * Set access-context on thread. * - * @param accessContext Access-context. (NotNull) + * @param accessContext The context of DB access.. (NotNull) */ public static void setAccessContextOnThread(AccessContext accessContext) { if (accessContext == null) { String msg = "The argument[accessContext] must not be null."; throw new IllegalArgumentException(msg); } - threadLocal.set(accessContext); + _threadLocal.set(accessContext); } /** @@ -50,14 +45,14 @@ * @return Determination. */ public static boolean isExistAccessContextOnThread() { - return (threadLocal.get() != null); + return (_threadLocal.get() != null); } /** * Clear access-context on thread. */ public static void clearAccessContextOnThread() { - threadLocal.set(null); + _threadLocal.set(null); } //========================================================================== Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/CallbackContext.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/CallbackContext.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/CallbackContext.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,75 @@ +package jp.sf.pal.timecard.db.allcommon; + +import jp.sf.pal.timecard.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/DBFluteConfig.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/DBFluteConfig.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/DBFluteConfig.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -32,6 +32,8 @@ protected boolean _executeStatusLogLevelInfo; + protected boolean _useSqlLogRegistry; + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; protected boolean _sqlExceptionOldStyleHandling = false;// This is for @@ -142,6 +144,23 @@ _executeStatusLogLevelInfo = executeStatusLogLevelInfo; } + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + // [DBFlute-0.7.7] //========================================================================== // ========= @@ -282,11 +301,12 @@ // ========= // Config Clear // ============ - public void clear() { + public void clear() { // the only properties that update OK while executing _defaultStatementConfig = null; - _conditionBeanFormatSql = true; + _conditionBeanFormatSql = true; // as default _queryLogLevelInfo = false; _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; _logDateFormat = null; _logTimestampFormat = null; _internalDebug = false; Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -32,6 +32,7 @@ import jp.sf.pal.timecard.db.allcommon.helper.token.file.FileMakingOption; import jp.sf.pal.timecard.db.allcommon.helper.token.file.FileMakingSimpleFacade; import jp.sf.pal.timecard.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.timecard.db.allcommon.util.SimpleSystemUtil; /** * The abstract class of behavior-readable. @@ -416,7 +417,7 @@ } /** - * Help load referrer internally. About internal policy, the value of + * Do help load referrer internally. About internal policy, the value of * primary key(and others too) is treated as CaseInsensitive. * * @param The type of base entity. @@ -445,14 +446,15 @@ // - - - - - - - - - - - - - - // Prepare temporary container // - - - - - - - - - - - - - - - final Map pkBaseEntityMap = new LinkedHashMap(); - final List pkList = new java.util.ArrayList(); + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); for (LOCAL_ENTITY localEntity : localEntityList) { final PK primaryKeyValue = callback .callbackBase_getPrimaryKeyValue(localEntity); pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); - pkBaseEntityMap.put(toLowerCasePrimaryKeyIfString(primaryKeyValue), - localEntity); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); } // - - - - - - - - - - - - - - - - @@ -484,7 +486,7 @@ // - - - - - - - - - - - - - - - - - - - - - - - - // Create the map of {primary key / referrer list} // - - - - - - - - - - - - - - - - - - - - - - - - - final Map> pkReffererListMap = new LinkedHashMap>(); + final Map> pkReferrerListMap = new LinkedHashMap>(); for (REFERRER_ENTITY referrerEntity : referrerList) { final PK referrerListKey; { @@ -492,14 +494,14 @@ .callbackReferrer_getForeignKeyValue(referrerEntity); referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); } - if (!pkReffererListMap.containsKey(referrerListKey)) { - pkReffererListMap.put(referrerListKey, - new java.util.ArrayList()); + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); } - (pkReffererListMap.get(referrerListKey)).add(referrerEntity); + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); // for Reverse Reference. - final LOCAL_ENTITY localEntity = pkBaseEntityMap + final LOCAL_ENTITY localEntity = pkLocalEntityMap .get(referrerListKey); callback.callbackReferrer_setForeignEntity(referrerEntity, localEntity); @@ -515,12 +517,12 @@ .callbackBase_getPrimaryKeyValue(localEntity); referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); } - if (pkReffererListMap.containsKey(referrerListKey)) { + if (pkReferrerListMap.containsKey(referrerListKey)) { callback.callbackBase_setReferrerList(localEntity, - pkReffererListMap.get(referrerListKey)); + pkReferrerListMap.get(referrerListKey)); } else { callback.callbackBase_setReferrerList(localEntity, - new java.util.ArrayList()); + new ArrayList()); } } } @@ -539,17 +541,6 @@ /** * @param The type of base entity. * @param The type of primary key. - * @param The type of referrer condition-bean. - * @param The type of referrer entity. - */ - protected static interface InternalLoadRefererCallback - extends - InternalLoadReferrerCallback { - } - - /** - * @param The type of base entity. - * @param The type of primary key. * @param The type of referrer conditionBean. * @param The type of referrer entity. */ @@ -576,6 +567,12 @@ REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); } + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + private void assertBehaviorSelectorNotNull(String methodName) { if (_behaviorSelector == null) { String msg = "Look! Read the message below." + getLineSeparator(); @@ -693,10 +690,7 @@ * @return All count. */ protected int callGetCountAll() { - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "getCountAll", new Class[] {}); - final Object result = invoke(mtd, getDaoReadable(), new Object[] {}); - return ((Integer) result).intValue(); + return readCount(newConditionBean()); } /** @@ -705,10 +699,7 @@ * @return All list. (NotNull) */ protected List callGetListAll() { - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "getListAll", new Class[] {}); - final Object result = invoke(mtd, getDaoReadable(), new Object[] {}); - return (List) result; + return readList(newConditionBean()); } /** @@ -738,14 +729,13 @@ protected List callReadList(ConditionBean cb) { assertConditionBeanNotNull(cb); final Class[] types = new Class[] { cb.getClass() }; - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "selectList", types); + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); return (List) result; } - private java.lang.reflect.Method getMethod(Class clazz, String methodName, - Class[] argTypes) { + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { try { return clazz.getMethod(methodName, argTypes); } catch (NoSuchMethodException ex) { @@ -755,8 +745,7 @@ } } - private Object invoke(java.lang.reflect.Method method, Object target, - Object[] args) { + private Object invoke(Method method, Object target, Object[] args) { try { return method.invoke(target, args); } catch (java.lang.reflect.InvocationTargetException ex) { @@ -787,8 +776,8 @@ //========================================================================== // ========= - // Helper - // ====== + // General Helper + // ============== /** * To lower case if the type is String. * @@ -808,7 +797,7 @@ * @return The value of line separator. (NotNull) */ protected String getLineSeparator() { - return System.getProperty("line.separator"); + return SimpleSystemUtil.getLineSeparator(); } protected ENTITY helpDowncastInternally( Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,5 +1,7 @@ package jp.sf.pal.timecard.db.allcommon.bhv.load; +import java.util.List; + import jp.sf.pal.timecard.db.allcommon.Entity; import jp.sf.pal.timecard.db.allcommon.bhv.setup.ConditionBeanSetupper; import jp.sf.pal.timecard.db.allcommon.bhv.setup.EntityListSetupper; @@ -97,8 +99,7 @@ } } - public void delegateEntitySettingUp( - java.util.List entityList) {// Internal + public void delegateEntitySettingUp(List entityList) {// Internal if (_entityListSetupper != null) { _entityListSetupper.setup(entityList); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,5 +1,7 @@ package jp.sf.pal.timecard.db.allcommon.bhv.setup; +import java.util.List; + import jp.sf.pal.timecard.db.allcommon.Entity; /** @@ -11,9 +13,9 @@ public interface EntityListSetupper { /** - * Set up entity list. + * Set up the list of entity. * - * @param entityList Entity list. (NotNull) + * @param entityList The list of entity. (NotNull) */ - public void setup(java.util.List entityList); + public void setup(List entityList); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/AbstractConditionBean.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/AbstractConditionBean.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1037,23 +1037,6 @@ //========================================================================== // ========= - // Format SQL - // ========== - /** @deprecated Sorry! ConditionBean must be formatted as default. */ - public void formatSql() { - getSqlClause().makeFormatClauseEffective(); - } - - /** - * @return Is the SQL formatted? - * @deprecated Sorry! ConditionBean must be formatted as default. - */ - public boolean isFormatSql() { - return getSqlClause().isFormatClauseEffective(); - } - - //========================================================================== - // ========= // Assist Helper // ============= protected void doSetupSelect(SsCall callback) { Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBean.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBean.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBean.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -135,7 +135,8 @@ // Limit Select // ============ /** - * Limit select PK only. + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). * * @return this. (NotNull) */ @@ -214,19 +215,6 @@ //========================================================================== // ========= - // Format SQL - // ========== - /** @deprecated Sorry! ConditionBean must be formatted as default. */ - public void formatSql(); - - /** - * @return Is the SQL formatted? - * @deprecated Sorry! ConditionBean must be formatted as default. - */ - public boolean isFormatSql(); - - //========================================================================== - // ========= // Display SQL // =========== /** Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBeanContext.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ConditionBeanContext.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -21,7 +21,7 @@ import org.apache.commons.logging.LogFactory; /** - * Condition-Bean context. + * The context of condition-bean. * * @author DBFlute(AutoGenerator) */ @@ -95,7 +95,9 @@ } } { - Class clazz = jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption.class; + Class clazz = jp.sf.pal.timecard.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.timecard.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption.class; clazz = jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption.class; clazz = jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption.class; clazz = jp.sf.pal.timecard.db.allcommon.cbean.grouping.GroupingOption.class; @@ -308,7 +310,7 @@ msg = msg + getLineSeparator(); if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { final ConditionBean cb = (ConditionBean) searchKey4Log; - msg = msg + "[Executed SQL for Display]" + getLineSeparator() + msg = msg + "[Display SQL]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator(); } else { msg = msg + "[Search Condition]" + getLineSeparator() @@ -339,7 +341,7 @@ msg = msg + getLineSeparator(); if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { final ConditionBean cb = (ConditionBean) searchKey4Log; - msg = msg + "[Executed SQL for Display]" + getLineSeparator() + msg = msg + "[Display SQL]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator(); } else { msg = msg + "[Search Condition]" + getLineSeparator() Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ListResultBean.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ListResultBean.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ListResultBean.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,7 +1,11 @@ package jp.sf.pal.timecard.db.allcommon.cbean; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; import java.util.List; +import java.util.ListIterator; import jp.sf.pal.timecard.db.allcommon.cbean.grouping.GroupingOption; import jp.sf.pal.timecard.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; @@ -11,13 +15,12 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.OrderByClause; /** - * The list-result-bean for ListResultBean. + * The result bean for list. * * @param The type of entity for the element of selected list. * @author DBFlute(AutoGenerator) */ -public class ListResultBean implements List, - java.io.Serializable { +public class ListResultBean implements List, Serializable { //========================================================================== // ========= @@ -30,16 +33,19 @@ // ========= // Attribute // ========= - /** The value of table db-name. */ + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ protected String _tableDbName; /** The value of all record count. */ protected int _allRecordCount; - /** Selected list. */ - protected List _selectedList = new java.util.ArrayList(); + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); - /** Order-by clause. */ + /** The clause of order-by. (NotNull) */ protected OrderByClause _orderByClause = new OrderByClause(); //========================================================================== @@ -56,6 +62,15 @@ // ========= // Grouping // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ public List groupingList( GroupingRowSetupper groupingRowSetupper, GroupingOption groupingOption) { @@ -64,23 +79,25 @@ .getGroupingRowEndDeterminer(); if (rowEndDeterminer == null) { rowEndDeterminer = new GroupingRowEndDeterminer() { - public boolean determine(int columnIndex, int columnCount, + public boolean determine( GroupingRowResource rowResource, ENTITY nextEntity) { - return columnIndex == (columnCount - 1); + return rowResource.isSizeUpBreakCount(); } - };// as Default + }; // as Default } GroupingRowResource rowResource = new GroupingRowResource(); - int columnCount = groupingOption.getColumnCount(); - int columnIndex = 0; - int rowIndex = 0; + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; for (ENTITY entity : _selectedList) { // Set up row resource. rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); - if (_selectedList.size() == (rowIndex + 1)) {// Last Loop! - // Callback! + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! final ROW groupingRowObject = groupingRowSetupper .setup(rowResource); @@ -89,15 +106,15 @@ break; } - ENTITY nextElement = null; - if (_selectedList.size() > (rowIndex + 1)) { - nextElement = _selectedList.get(rowIndex); - } + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); // Do at row end. - if (rowEndDeterminer.determine(columnIndex, columnCount, - rowResource, nextElement)) { - // Callback! + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! final ROW groupingRowObject = groupingRowSetupper .setup(rowResource); @@ -106,12 +123,12 @@ // Initialize! rowResource = new GroupingRowResource(); - columnIndex = 0; - ++rowIndex; + rowElementIndex = 0; + ++allElementIndex; continue; } - ++columnIndex; - ++rowIndex; + ++rowElementIndex; + ++allElementIndex; } return groupingList; } @@ -139,7 +156,7 @@ /** * Has this result selected? * - * @return Determination. + * @return Determination. {Whether table DB name is not null} */ public boolean isSelectedResult() { return _tableDbName != null; @@ -182,12 +199,13 @@ @Override public String toString() { final StringBuilder sb = new StringBuilder(); - - sb.append(" tableDbName=").append(_tableDbName); - sb.append(" allRecordCount=").append(_allRecordCount); - sb.append(" selectedList.size()=").append(_selectedList.size()); - sb.append(" orderByClause=").append(_orderByClause); - + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); return sb.toString(); } @@ -199,7 +217,7 @@ return _selectedList.add(o); } - public boolean addAll(java.util.Collection c) { + public boolean addAll(Collection c) { return _selectedList.addAll(c); } @@ -211,7 +229,7 @@ return _selectedList.contains(o); } - public boolean containsAll(java.util.Collection c) { + public boolean containsAll(Collection c) { return _selectedList.containsAll(c); } @@ -219,7 +237,7 @@ return _selectedList.isEmpty(); } - public java.util.Iterator iterator() { + public Iterator iterator() { return _selectedList.iterator(); } @@ -227,11 +245,11 @@ return _selectedList.remove(o); } - public boolean removeAll(java.util.Collection c) { + public boolean removeAll(Collection c) { return _selectedList.removeAll(c); } - public boolean retainAll(java.util.Collection c) { + public boolean retainAll(Collection c) { return _selectedList.retainAll(c); } @@ -251,7 +269,7 @@ _selectedList.add(index, element); } - public boolean addAll(int index, java.util.Collection c) { + public boolean addAll(int index, Collection c) { return _selectedList.addAll(index, c); } @@ -267,11 +285,11 @@ return _selectedList.lastIndexOf(o); } - public java.util.ListIterator listIterator() { + public ListIterator listIterator() { return _selectedList.listIterator(); } - public java.util.ListIterator listIterator(int index) { + public ListIterator listIterator(int index) { return _selectedList.listIterator(index); } @@ -283,7 +301,7 @@ return _selectedList.set(index, element); } - public java.util.List subList(int fromIndex, int toIndex) { + public List subList(int fromIndex, int toIndex) { return _selectedList.subList(fromIndex, toIndex); } @@ -331,8 +349,7 @@ /** * Get the value of selectedList. * - * @return Selected list. (Nullable: If it's null, it means 'Not Selected - * Yet'.) + * @return Selected list. (NotNull) */ public List getSelectedList() { return _selectedList; @@ -341,17 +358,20 @@ /** * Set the value of selectedList. * - * @param selectedList Selected list. (NotNull) + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) */ public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list _selectedList = selectedList; } /** * Get the value of orderByClause. * - * @return The value of orderByClause. (Nullable: If it's null, it means - * 'Not Selected Yet'.) + * @return The value of orderByClause. (NotNull) */ public OrderByClause getOrderByClause() { return _orderByClause; @@ -360,9 +380,13 @@ /** * Set the value of orderByClause. * - * @param orderByClause The value of orderByClause. (NotNull) + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) */ public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list _orderByClause = orderByClause; } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/PagingResultBean.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/PagingResultBean.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/PagingResultBean.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -7,7 +7,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.pagenavi.range.PageRangeOption; /** - * The paging-result-bean for specified entity. + * The result bean of paging. * * @param The type of entity for the element of selected list. * @author DBFlute(AutoGenerator) @@ -309,18 +309,27 @@ @Override public String toString() { final StringBuilder sb = new StringBuilder(); - - sb.append(getCurrentPageNumber()).append("/").append(getAllPageCount()); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); sb.append(" of ").append(getAllRecordCount()); - sb.append(" listSize=").append( - getSelectedList() != null ? new Integer(getSelectedList() + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() .size()) : null); - sb.append(" pageSize=").append(getPageSize()); - sb.append(" page:{").append(isExistPrePage()).append("/").append( - isExistNextPage()).append("}"); - sb.append(" groupSize=").append(getPageGroupSize()); - sb.append(" rangeSize=").append(getPageRangeSize()); - + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); return sb.toString(); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -3,7 +3,7 @@ import java.util.List; /** - * The list-result-bean for ${myClassName}. + * The builder of result bean. * * @param The type of entity. * @author DBFlute(AutoGenerator) @@ -29,24 +29,38 @@ // Builder // ======= /** - * Build the result bean of list. + * Build the result bean of list without order-by clause. {for Various} * - * @param ob The bean of orderBy. (NotNull) * @param selectedList Selected list. (NotNull) * @return The result bean of list. (NotNull) */ - public ListResultBean buildListResultBean(ConditionBean ob, + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, List selectedList) { ListResultBean rb = new ListResultBean(); rb.setTableDbName(_tableDbName); rb.setAllRecordCount(selectedList.size()); rb.setSelectedList(selectedList); - rb.setOrderByClause(ob.getSqlComponentOfOrderByClause()); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); return rb; } /** - * Build the result bean of paging. + * Build the result bean of paging. {for Paging} * * @param pb The bean of paging. (NotNull) * @param allRecordCount All record count. Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,7 +1,7 @@ package jp.sf.pal.timecard.db.allcommon.cbean.grouping; /** - * The class of option for grouping making. + * The class of option for grouping. * * @param The type of entity. * @author DBFlute(AutoGenerator) @@ -12,7 +12,7 @@ // =========== // Attribute // ========= - protected int _columnCount; + protected int _elementCount; protected GroupingRowEndDeterminer _groupingRowEndDeterminer; @@ -20,21 +20,28 @@ // =========== // Constructor // =========== - public GroupingOption(int columnCount) { - _columnCount = columnCount; + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { } - //========================================================================== - // =========== - // Easy-to-Use - // =========== + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } //========================================================================== // =========== // Accessor // ======== - public int getColumnCount() { - return this._columnCount; + public int getElementCount() { + return this._elementCount; } public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,13 +1,24 @@ package jp.sf.pal.timecard.db.allcommon.cbean.grouping; /** - * The interface of grouping switch point determiner. + * The interface of grouping end(switch point) determiner. * * @param The type of entity. * @author DBFlute(AutoGenerator) */ public interface GroupingRowEndDeterminer { - public boolean determine(int columnIndex, int columnCount, - GroupingRowResource rowResource, ENTITY nextEntity); + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,5 +1,8 @@ package jp.sf.pal.timecard.db.allcommon.cbean.grouping; +import java.util.ArrayList; +import java.util.List; + /** * The class of row resource for grouping making. * @@ -12,22 +15,79 @@ // =========== // Attribute // ========= - protected java.util.List _groupingRowList = new java.util.ArrayList(); + protected List _groupingRowList = new ArrayList(); + protected int _elementCurrentIndex; + + protected int _breakCount; + //========================================================================== // =========== // Easy-to-Use // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } //========================================================================== // =========== // Accessor // ======== - public java.util.List getGroupingRowList() { + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { return this._groupingRowList; } + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ public void addGroupingRowList(ENTITY groupingRow) { this._groupingRowList.add(groupingRow); } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -1,7 +1,7 @@ package jp.sf.pal.timecard.db.allcommon.cbean.grouping; /** - * The interface of grouping row setupper. + * The setupper of grouping row. * * @param The type of row. * @param The type of entity. @@ -10,10 +10,10 @@ public interface GroupingRowSetupper { /** - * Set up grouping row object. + * Set up the instance of grouping row. * * @param groupingRowResource Grouping row resource. (NotNull) - * @return Grouping row object. (NotNull) + * @return The instance of grouping row. (NotNull) */ public ROW setup(GroupingRowResource groupingRowResource); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -2,6 +2,8 @@ import java.util.List; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlDao; import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlOption; import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.ProcedurePmb; @@ -76,14 +78,16 @@ * @param pmb The parameter-bean. Allowed types are Bean object and Map * object. (Nullable) * @param entityType The element type of entity. (NotNull) - * @return The list of selected entity. (NotNull) + * @return The result bean of selected list. (NotNull) * @exception jp.sf.pal.timecard.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. */ - public List selectList(String path, Object pmb, + public ListResultBean selectList(String path, Object pmb, Class entityType) { - return _outsideSqlDao.selectList(path, pmb, createOutsideSqlOption(), - entityType); + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); } //========================================================================== @@ -98,7 +102,7 @@ * object. (Nullable) * @return The count of execution. * @exception jp.sf.pal.timecard.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. */ public int execute(String path, Object pmb) { return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -35,6 +35,17 @@ // ========= // Select // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.timecard.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ public Object selectCursor(String path, PARAMETER_BEAN pmb, CursorHandler handler) { return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, @@ -45,14 +56,14 @@ // ========= // Option // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + public OutsideSqlCursorExecutor configure( StatementConfig statementConfig) { _outsideSqlOption.setStatementConfig(statementConfig); return this; } - - public OutsideSqlCursorExecutor dynamicBinding() { - _outsideSqlOption.dynamicBinding(); - return this; - } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -48,8 +48,9 @@ * @param entityType The type of entity. (NotNull) * @return The selected entity. (Nullable) * @exception jp.sf.pal.timecard.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. */ public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, Class entityType) { @@ -75,7 +76,7 @@ * @param entityType The type of entity. (NotNull) * @return The selected entity. (Nullable) * @exception jp.sf.pal.timecard.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException * When the entity has already been deleted(not found). * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -3,10 +3,12 @@ import java.util.List; import jp.sf.pal.timecard.db.allcommon.DBFluteConfig; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; import jp.sf.pal.timecard.db.allcommon.cbean.PagingBean; import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlDao; import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlOption; import jp.sf.pal.timecard.db.allcommon.jdbc.StatementConfig; @@ -46,20 +48,57 @@ // ========= // Select // ====== - public List selectList(String path, PagingBean pmb, - Class entityType) { + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { setupScrollableCursorIfNeeds(); - return _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, - entityType); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); } /** * Select page. *

    * The SQL should have Count and Paging.
    You can realize by - * pagingBean's isPaging() method on your 'SQL Comment'. For example, 'IF - * Comment'.
    It returns false when it executes Count. And it returns - * true when it executes Paging.
    + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    * *

          * - - - - - - - - - - - - - - - - - - - - - - -
    @@ -107,10 +146,11 @@
          * 
          * @param  The type of entity.
          * @param path The path of SQL that executes count and paging. (NotNull)
    -     * @param pagingPath The path of paging SQL. (NotNull)
          * @param pmb The bean of paging parameter. (NotNull)
          * @param entityType The type of result entity. (NotNull)
          * @return The result bean of paging. (NotNull)
    +     * @exception jp.sf.pal.timecard.db.allcommon.exception.OutsideSqlNotFoundException
    +     *                When the outside-sql is not found.
          */
         public  PagingResultBean selectPage(final String path,
                 final PagingBean pmb, final Class entityType) {
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/AbstractSqlClause.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/AbstractSqlClause.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/AbstractSqlClause.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -1300,7 +1300,7 @@
         /**
          * The implementation.
          * 
    -     * @return Determiantion.
    +     * @return Determination.
          */
         public boolean isFetchNarrowingEffective() {
             return _isFetchScopeEffective;
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByClause.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByClause.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByClause.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -1,5 +1,6 @@
     package jp.sf.pal.timecard.db.allcommon.cbean.sqlclause;
     
    +import java.io.Serializable;
     import java.util.ArrayList;
     import java.util.Iterator;
     import java.util.List;
    @@ -9,7 +10,7 @@
     /**
      * @author DBFlute(AutoGenerator)
      */
    -public class OrderByClause implements java.io.Serializable {
    +public class OrderByClause implements Serializable {
     
         /** Serial version UID. (Default) */
         private static final long serialVersionUID = 1L;
    @@ -32,8 +33,8 @@
     
         //==========================================================================
         // ===========
    -    // Behavior
    -    // ========
    +    // Manipulation
    +    // ============
         /**
          * Add order-by element.
          * 
    @@ -91,6 +92,10 @@
                     boolean nullsFirst);
         }
     
    +    //==========================================================================
    +    // ===========
    +    // Order-By Expression
    +    // ===================
         public List getOrderByList() {
             return _orderByList;
         }
    @@ -250,7 +255,7 @@
          * 
          * @return Determination.
          */
    -    public java.util.Iterator iterator() {
    +    public Iterator iterator() {
             return _orderByList.iterator();
         }
     
    @@ -263,12 +268,12 @@
     
         //==========================================================================
         // ===========
    -    // Basic-Override Method
    -    // =====================
    +    // Basic Override
    +    // ==============
         /**
          * This method overrides the method that is declared at super.
          * 
    -     * @return View-string of all-columns value.
    +     * @return The view string of all-columns value. (NotNUll)
          */
         public String toString() {
             return _orderByList.toString();
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByElement.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByElement.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/cbean/sqlclause/OrderByElement.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -1,5 +1,6 @@
     package jp.sf.pal.timecard.db.allcommon.cbean.sqlclause;
     
    +import java.io.Serializable;
     import java.util.Map;
     
     import jp.sf.pal.timecard.db.allcommon.util.SimpleSystemUtil;
    @@ -7,7 +8,7 @@
     /**
      * @author DBFlute(AutoGenerator)
      */
    -public class OrderByElement implements java.io.Serializable {
    +public class OrderByElement implements Serializable {
     
         /** Serial version UID. (Default) */
         private static final long serialVersionUID = 1L;
    @@ -39,58 +40,8 @@
     
         //==========================================================================
         // ===========
    -    // Accessor
    -    // ========
    -    public String getAliasName() {
    -        return _aliasName;
    -    }
    -
    -    public String getColumnName() {
    -        return _columnName;
    -    }
    -
    -    public String getRegisteredAliasName() {
    -        return _registeredAliasName;
    -    }
    -
    -    public String getRegisteredColumnName() {
    -        return _registeredColumnName;
    -    }
    -
    -    public String getAscDesc() {
    -        return _ascDesc;
    -    }
    -
    -    public void setAliasName(String value) {
    -        _aliasName = value;
    -    }
    -
    -    public void setColumnName(String value) {
    -        _columnName = value;
    -    }
    -
    -    public void setRegisteredAliasName(String value) {
    -        _registeredAliasName = value;
    -    }
    -
    -    public void setRegisteredColumnName(String value) {
    -        _registeredColumnName = value;
    -    }
    -
    -    public void setAscDesc(String value) {
    -        _ascDesc = value;
    -    }
    -
    -    public void setOrderByNullsSetupper(
    -            OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) {
    -        _orderByNullsSetupper = value;
    -        _nullsFirst = nullsFirst;
    -    }
    -
    -    //==========================================================================
    -    // ===========
    -    // Behavior
    -    // ========
    +    // Manipulation
    +    // ============
         public void setupAsc() {
             _ascDesc = "asc";
         }
    @@ -115,6 +66,10 @@
             }
         }
     
    +    //==========================================================================
    +    // ===========
    +    // Order-By Expression
    +    // ===================
         public boolean isAsc() {
             if (_ascDesc == null) {
                 String msg = "The attribute[ascDesc] should not be null.";
    @@ -254,15 +209,65 @@
         /**
          * This method overrides the method that is declared at super.
          * 
    -     * @return View-string of all-columns value.
    +     * @return The view-string of all-columns value. (NotNull)
          */
         public String toString() {
             final StringBuilder sb = new StringBuilder();
    -        sb.append("[OrderByElement] aliasName=").append(_aliasName);
    +        sb.append("{aliasName=").append(_aliasName);
             sb.append(" columnName=").append(_columnName);
             sb.append(" registeredAliasName=").append(_registeredAliasName);
             sb.append(" registeredColumnName=").append(_registeredColumnName);
    -        sb.append(" ascDesc=").append(_ascDesc);
    +        sb.append(" ascDesc=").append(_ascDesc).append("}");
             return sb.toString();
         }
    +
    +    //==========================================================================
    +    // ===========
    +    // Accessor
    +    // ========
    +    public String getAliasName() {
    +        return _aliasName;
    +    }
    +
    +    public String getColumnName() {
    +        return _columnName;
    +    }
    +
    +    public String getRegisteredAliasName() {
    +        return _registeredAliasName;
    +    }
    +
    +    public String getRegisteredColumnName() {
    +        return _registeredColumnName;
    +    }
    +
    +    public String getAscDesc() {
    +        return _ascDesc;
    +    }
    +
    +    public void setAliasName(String value) {
    +        _aliasName = value;
    +    }
    +
    +    public void setColumnName(String value) {
    +        _columnName = value;
    +    }
    +
    +    public void setRegisteredAliasName(String value) {
    +        _registeredAliasName = value;
    +    }
    +
    +    public void setRegisteredColumnName(String value) {
    +        _registeredColumnName = value;
    +    }
    +
    +    public void setAscDesc(String value) {
    +        _ascDesc = value;
    +    }
    +
    +    public void setOrderByNullsSetupper(
    +            OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) {
    +        _orderByNullsSetupper = value;
    +        _nullsFirst = nullsFirst;
    +    }
     }
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/AbstractDBMeta.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/AbstractDBMeta.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/AbstractDBMeta.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -550,6 +550,10 @@
             return false;
         }
     
    +    public String getSequenceNextValSql() {
    +        return null;
    +    }
    +
         public boolean hasVersionNo() {
             return false;
         }
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMeta.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMeta.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMeta.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -54,12 +54,19 @@
         public String getTableDbName();
     
         /**
    -     * Get table prop-name(JavaBeansRule).
    +     * Get table property-name(JavaBeansRule).
          * 
          * @return Table property-name(JavaBeansRule). (NotNull)
          */
         public String getTablePropertyName();
     
    +    /**
    +     * Get table SQL-name.
    +     * 
    +     * @return Table SQL-name. (NotNull)
    +     */
    +    public String getTableSqlName();
    +
         //==========================================================================
         // =========
         // Name Handling
    @@ -335,6 +342,14 @@
          */
         public boolean hasSequence();
     
    +    /**
    +     * Get the SQL string for getting next value of sequence.
    +     * 
    +     * @return The SQL string for getting next value of sequence. (Nullable: If
    +     *         it does not have sequence, returns null.)
    +     */
    +    public String getSequenceNextValSql();
    +
         //==========================================================================
         // =========
         // Optimistic Lock Info
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/dbmeta/DBMetaInstanceHandler.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -33,10 +33,14 @@
                     "jp.sf.pal.timecard.db.bsentity.dbmeta.EmployeeDbm");
             tmpMap.put("GROUP_INFO",
                     "jp.sf.pal.timecard.db.bsentity.dbmeta.GroupInfoDbm");
    +        tmpMap.put("GROUP_MAPPING",
    +                "jp.sf.pal.timecard.db.bsentity.dbmeta.GroupMappingDbm");
             tmpMap.put("MONTHLY_REPORT",
                     "jp.sf.pal.timecard.db.bsentity.dbmeta.MonthlyReportDbm");
             tmpMap.put("ROLE_INFO",
                     "jp.sf.pal.timecard.db.bsentity.dbmeta.RoleInfoDbm");
    +        tmpMap.put("ROLE_MAPPING",
    +                "jp.sf.pal.timecard.db.bsentity.dbmeta.RoleMappingDbm");
             tmpMap.put("USER_INFO",
                     "jp.sf.pal.timecard.db.bsentity.dbmeta.UserInfoDbm");
     
    @@ -51,8 +55,10 @@
             tmpMap.put("DAILY_REPORT".toLowerCase(), "dailyReport");
             tmpMap.put("EMPLOYEE".toLowerCase(), "employee");
             tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo");
    +        tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping");
             tmpMap.put("MONTHLY_REPORT".toLowerCase(), "monthlyReport");
             tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo");
    +        tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping");
             tmpMap.put("USER_INFO".toLowerCase(), "userInfo");
     
             _tableDbNamePropertyNameKeyToLowerMap = Collections
    @@ -67,8 +73,10 @@
             tmpMap.put("dailyReport".toLowerCase(), "DAILY_REPORT");
             tmpMap.put("employee".toLowerCase(), "EMPLOYEE");
             tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO");
    +        tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING");
             tmpMap.put("monthlyReport".toLowerCase(), "MONTHLY_REPORT");
             tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO");
    +        tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING");
             tmpMap.put("userInfo".toLowerCase(), "USER_INFO");
     
             _tablePropertyNameDbNameKeyToLowerMap = Collections
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/helper/token/line/impl/LineTokenImpl.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/helper/token/line/impl/LineTokenImpl.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/helper/token/line/impl/LineTokenImpl.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -13,6 +13,10 @@
      */
     public class LineTokenImpl implements LineToken {
     
    +    //==========================================================================
    +    // =========
    +    // Tokenize Line
    +    // =============
         public List tokenize(String lineString,
                 LineTokenizingOption lineTokenizingOption) {
             final String delimiter = lineTokenizingOption.getDelimiter();
    @@ -37,7 +41,7 @@
                     list.add(filterHandlingEmptyAsNull(pureValue,
                             lineTokenizingOption));
                 }
    -            i = j + 1;
    +            i = j + delimiter.length();
                 j = lineString.indexOf(delimiter, i);
             }
             list.add(filterHandlingEmptyAsNull(lineString.substring(i),
    @@ -56,6 +60,10 @@
             return target;
         }
     
    +    //==========================================================================
    +    // =========
    +    // Make Line
    +    // =========
         public String make(java.util.List valueList,
                 LineMakingOption lineMakingOption) {
             assertObjectNotNull("valueList", valueList);
    @@ -85,9 +93,10 @@
             return sb.toString();
         }
     
    -    // ----------------------------------------------------------------
    -    // Assert Object
    -    // -------------
    +    //==========================================================================
    +    // =========
    +    // General Helper
    +    // ==============
         /**
          * Assert that the object is not null.
          * 
    @@ -108,9 +117,6 @@
             }
         }
     
    -    // ----------------------------------------------------------------
    -    // Assert String
    -    // -------------
         /**
          * Assert that the entity is not null and not trimmed empty.
          * 
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/CursorHandler.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/CursorHandler.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/CursorHandler.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -1,7 +1,10 @@
     package jp.sf.pal.timecard.db.allcommon.jdbc;
     
    +import java.sql.ResultSet;
    +import java.sql.SQLException;
    +
     /**
    - * The interface of statement history witness.
    + * The handler of cursor.
      * 
      * @author DBFlute(AutoGenerator)
      */
    @@ -12,5 +15,5 @@
          * @return Result
          * @throws java.sql.SQLException
          */
    -    Object handle(java.sql.ResultSet resultSet) throws java.sql.SQLException;
    +    Object handle(ResultSet resultSet) throws SQLException;
     }
    
    Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/SqlLogHandler.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/SqlLogHandler.java	                        (rev 0)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/SqlLogHandler.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -0,0 +1,18 @@
    +package jp.sf.pal.timecard.db.allcommon.jdbc;
    +
    +/**
    + * The handler of SQL log.
    + * 
    + * @author DBFlute(AutoGenerator)
    + */
    +public interface SqlLogHandler {
    +
    +    /**
    +     * @param executedSql The executed SQL. (NotNull)
    +     * @param displaySql The SQL for display. (NotNull)
    +     * @param args The arguments of the SQL. (Nullable)
    +     * @param argTypes The argument types of the SQL. (Nullable)
    +     */
    +    void handle(String executedSql, String displaySql, Object[] args,
    +            Class[] argTypes);
    +}
    
    
    Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/jdbc/SqlLogHandler.java
    ___________________________________________________________________
    Name: svn:eol-style
       + native
    
    Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoLatestSqlProvider.java
    ===================================================================
    --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoLatestSqlProvider.java	2008-11-13 06:13:30 UTC (rev 1342)
    +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoLatestSqlProvider.java	2008-11-13 06:31:44 UTC (rev 1343)
    @@ -4,30 +4,17 @@
     import jp.sf.pal.timecard.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry;
     
     /**
    - * The provider of latest SQL as S2Dao. 
    This instance should be - * singleton.
    + * The provider of latest SQL as S2Dao. This instance should be singleton. * * @author DBFlute(AutoGenerator) */ public class S2DaoLatestSqlProvider implements LatestSqlProvider { - /** - * The implementation. - * - * @return Display SQL. (Nullable: If it was not found, returns null.) - */ public String getDisplaySql() { - return getLastCompleteSql(); + return InternalSqlLogRegistry.peekCompleteSql(); } - protected String getLastCompleteSql() { - try { - return InternalSqlLogRegistry.peekCompleteSql(); - } catch (RuntimeException ignored) { - return null; - } - } - public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -15,10 +15,12 @@ import javax.sql.DataSource; import jp.sf.pal.timecard.db.allcommon.BehaviorSelector; +import jp.sf.pal.timecard.db.allcommon.Entity; import jp.sf.pal.timecard.db.allcommon.annotation.OutsideSql; import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBeanContext; import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.allcommon.exception.BatchEntityAlreadyUpdatedException; import jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException; import jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException; @@ -43,6 +45,7 @@ import jp.sf.pal.timecard.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; import jp.sf.pal.timecard.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; import jp.sf.pal.timecard.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.timecard.db.allcommon.util.SimpleSystemUtil; import org.seasar.dao.BeanEnhancer; import org.seasar.dao.BeanMetaData; @@ -241,9 +244,57 @@ //========================================================================== // ========= - // Setup Method by Auto - // ==================== + // Assert Override + // =============== @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override protected void setupMethodByAuto(Method method) { final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); if (outsideSql != null) { @@ -259,68 +310,115 @@ //========================================================================== // ========= - // ConditionBean Setup - // =================== + // ConditionBean Override + // ====================== @Override protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); final String[] argNames = daoAnnotationReader.getArgNames(method); final String query = daoAnnotationReader.getQuery(method); - final SqlCommand cmd; - if (query != null && !startsWithOrderBy(query)) { - // For Pure S2Dao *Deprecated at the future... - cmd = setupInternalQuerySelectMethodByAuto(method, handler, - argNames, query); - } else { - cmd = setupInternalNonQuerySelectMethodByAuto(method, handler, - argNames, query); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); } - putSqlCommand(method.getName(), cmd); - } - - // For Pure S2Dao *Deprecated at the future... - protected SelectDynamicCommand setupInternalQuerySelectMethodByAuto( - final Method method, final ResultSetHandler handler, - final String[] argNames, final String query) { final Class[] types = method.getParameterTypes(); final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, query); cmd.setArgNames(argNames); cmd.setArgTypes(types); - return cmd; + putSqlCommand(method.getName(), cmd); + return true; } - protected SqlCommand setupInternalNonQuerySelectMethodByAuto( - final Method method, final ResultSetHandler handler, - final String[] argNames, final String query) { - if (isAutoSelectSqlByDto(method, argNames)) { - return setupInternalNonQuerySelectMethodByDto(method, handler, - argNames, query); - } else { - // For Pure S2Dao *Deprecated at the future... - return setupNonQuerySelectMethodByArgs(method, handler, argNames, - query); + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); } } + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + // For condition-bean! protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, - ResultSetHandler handler, String[] argNames, String query) { - Class[] types = method.getParameterTypes(); - Class clazz = types[0]; - // /----------------------------------------------------- [MyExtension] - if (!ConditionBeanContext.isTheTypeConditionBean(clazz)) { - return super.setupNonQuerySelectMethodByDto(method, handler, - argNames, query); - } - argNames = new String[] { "dto" }; + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); - cmd.setArgNames(argNames); - cmd.setArgTypes(types); - // -----------/ + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); return cmd; } + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + //========================================================================== // ========= // Insert and Update and Delete By Auto Override @@ -691,9 +789,7 @@ // Normal OutsideSql // ----------------- @Override - protected void setupSelectMethodByManual(Method method, String sql) {// Contains - // SQL- - // Annotation + protected void setupSelectMethodByManual(Method method, String sql) { final Class[] pmbTypes = method.getParameterTypes(); final String[] argNames = this.daoAnnotationReader.getArgNames(method); final Class[] argTypes; @@ -722,29 +818,16 @@ .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); } - // @jflute -- This override causes exception, it's pending... - // This is for to use QLog about SQL-Annotation. But the priority is very - // low. - // - // @Override - // protected void setupUpdateMethodByManual(Method method, final String sql) - // {// Contains SQL-Annotation - // final InternalUpdateDynamicCommand cmd = new - // InternalUpdateDynamicCommand(dataSource, statementFactory); - // cmd.setSql(sql); - // String[] argNames = daoAnnotationReader.getArgNames(method); - // if (argNames.length == 0 && isUpdateSignatureForBean(method)) { - // argNames = new String[] { - // StringUtil.decapitalize(ClassUtil.getShortClassName(beanClass)) }; - // } - // - // // It is unnecessary for DBFlute! - // // cmd.setNotSingleRowUpdatedExceptionClass( - // getNotSingleRowUpdatedExceptionClass(method)); - // - // registerSqlCommand(method.getName(), method, sql, argNames, - // method.getParameterTypes(), cmd); - // } + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } // ----------------------------------------------------- // Specified OutsideSql @@ -1260,6 +1343,37 @@ //========================================================================== // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= // Accessor // ======== // ----------------------------------------------------- Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -160,24 +160,7 @@ initializeDatabaseProductNameOfContext(xaDataSource); - final StringBuilder sb = new StringBuilder(); - sb.append("{SqlLog Information}").append(getLineSeparator()); - sb.append(" [SqlLogRegistry]").append(getLineSeparator()); - final Object sqlLogRegistry = InternalSqlLogRegistry - .findContainerSqlLogRegistry(); - if (sqlLogRegistry != null) { - InternalSqlLogRegistry.closeRegistration(); - sb - .append( - " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") - .append(getLineSeparator()); - sb - .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); - } else { - sb - .append(" SqlLogRegistry(org.seasar.extension.jdbc) was not found!"); - } - _log.info(sb); + handleSqlLogRegistry(); DBFluteConfig.getInstance().lock(); _log.info("* * * * */"); @@ -202,6 +185,41 @@ _log.info("{Injection Information}" + getLineSeparator() + sb); } + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + // ----------------------------------------------------- // Database Product Name // --------------------- Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -10,6 +10,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlContext; import org.seasar.dao.BeanMetaData; import org.seasar.dao.RelationPropertyType; @@ -47,42 +48,57 @@ // Handle // ====== public Object handle(ResultSet rs) throws SQLException { - // Set - Set columnNames = null; + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; - // Map - Map propertyCache = null; // [DAO-118] (2007/08/26) - - // Map> - Map relationPropertyCache = null; // [DAO-118] (2007/08/25) - final List list = new ArrayList(); final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); - final RelationRowCache relRowCache = new RelationRowCache(relSize); final boolean hasCB = hasConditionBean(); - final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + while (rs.next()) { - // Lazy initialization because if the result is zero, the resources - // are unused. if (columnNames == null) { columnNames = createColumnNames(rs.getMetaData()); } if (propertyCache == null) { propertyCache = createPropertyCache(columnNames); } - if (relationPropertyCache == null) { - relationPropertyCache = createRelationPropertyCache(columnNames); - } // Create row instance of base table by row property cache. final Object row = createRow(rs, propertyCache); - if (hasCB && emptyRelation) { + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { postCreateRow(row); list.add(row); continue; } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } for (int i = 0; i < relSize; ++i) { final RelationPropertyType rpt = getBeanMetaData() .getRelationPropertyType(i); @@ -195,7 +211,26 @@ return false; } + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ protected String buildRelationNoSuffix(RelationPropertyType rpt) { return "_" + rpt.getRelationNo(); } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -8,6 +8,7 @@ import javax.sql.DataSource; +import jp.sf.pal.timecard.db.allcommon.CallbackContext; import jp.sf.pal.timecard.db.allcommon.DBFluteConfig; import jp.sf.pal.timecard.db.allcommon.InternalMapContext; import jp.sf.pal.timecard.db.allcommon.QLog; @@ -16,6 +17,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.outsidesql.OutsideSqlContext; import jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException; import jp.sf.pal.timecard.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.timecard.db.allcommon.jdbc.SqlLogHandler; import jp.sf.pal.timecard.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; import jp.sf.pal.timecard.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; import jp.sf.pal.timecard.db.allcommon.util.SimpleSystemUtil; @@ -60,8 +62,11 @@ //========================================================================== // ========= - // Basic Method for SubClass - // ========================= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- protected void bindArgs(PreparedStatement ps, Object[] args, Class[] argTypes) { if (args == null) { @@ -91,42 +96,65 @@ return argTypes; } - protected String getCompleteSql(Object[] args) { - return InternalBindVariableUtil.getCompleteSql(sql, args); + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } } - protected String getBindVariableText(Object bindVariable) { - return InternalBindVariableUtil.getBindVariableText(bindVariable); + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); } - protected ValueType getValueType(Class clazz) { - return ValueTypes.getValueType(clazz); + protected void log(String msg) { + QLog.log(msg); } - protected void logSql(Object[] args, Class[] argTypes) { - if (QLog.isLogEnabled() - || InternalSqlLogRegistry.existsSqlLogRegistry()) { - final String completeSql = getCompleteSql(args); - if (isContainsLineSeparatorInSql()) { - QLog.log(getLineSeparator() + completeSql); - } else { - QLog.log(completeSql); - } - if (InternalSqlLogRegistry.existsSqlLogRegistry()) { - final Object sqlLogRegistry = InternalSqlLogRegistry - .findContainerSqlLogRegistry(); - if (sqlLogRegistry != null) { - InternalSqlLogRegistry.push(getSql(), completeSql, args, - argTypes, sqlLogRegistry); - } - } + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); } protected boolean isContainsLineSeparatorInSql() { return sql != null ? sql.contains(getLineSeparator()) : false; } + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + //========================================================================== // ========= // Exception Handler @@ -530,6 +558,31 @@ //========================================================================== // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= // General Helper // ============== protected String getLineSeparator() { Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -28,11 +28,11 @@ protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; - - protected static boolean STATUS_SqlLogExists = false; static { forNameContainerSqlLogRegistryLocator(); } @@ -41,10 +41,56 @@ // ========= // Public Entry // ============ - public static boolean existsSqlLogRegistry() { - return STATUS_SqlLogExists; + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } } + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + public static Object findContainerSqlLogRegistry() { final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); if (sqlLogRegistryLocatorType == null) { @@ -75,7 +121,7 @@ try { final Method method = sqlLogRegistryLocatorType.getMethod( NAME_setInstance, new Class[] { sqlLogRegistryType }); - _log.info("...Closing the registration of sqlLog."); + _log.info("...Closing the registry of sqlLog."); method.invoke(null, new Object[] { null }); } catch (Exception e) { String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; @@ -113,6 +159,22 @@ // ========= // Container Reflection // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + protected static Object createContainerSqlLogImpl(String rawSql, String completeSql, Object[] bindArgs, Class[] bindArgTypes) { try { @@ -187,9 +249,7 @@ Class clazz = null; try { clazz = Class.forName(NAME_SqlLogRegistryLocator); - STATUS_SqlLogExists = true; } catch (Exception ignored) { - STATUS_SqlLogExists = false; return null; } return clazz; @@ -204,4 +264,14 @@ } return clazz; } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,137 @@ +package jp.sf.pal.timecard.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsDailyReportBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsDailyReportBhv.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsDailyReportBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -12,6 +12,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.bsentity.dbmeta.DailyReportDbm; import jp.sf.pal.timecard.db.cbean.DailyReportCB; @@ -53,7 +54,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsDailyReportBhv extends jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { @@ -216,16 +216,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of DailyReport. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(DailyReportCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -233,10 +232,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of DailyReport. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final DailyReportCB cb) { assertConditionBeanNotNull(cb); @@ -281,9 +280,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'MonthlyReport'. * @@ -632,18 +630,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected DailyReport delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(DailyReportCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsEmployeeBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -14,6 +14,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.bsentity.dbmeta.EmployeeDbm; import jp.sf.pal.timecard.db.cbean.EmployeeCB; @@ -58,7 +59,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsEmployeeBhv extends jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { @@ -221,16 +221,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of Employee. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(EmployeeCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -238,10 +237,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of Employee. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final EmployeeCB cb) { assertConditionBeanNotNull(cb); @@ -286,8 +285,8 @@ /** * Load referrer of monthlyReportList with the setupper for condition-bean * of referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -296,8 +295,8 @@
          * 
    * * @param employeeList The entity list of employee. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadMonthlyReportList(List employeeList, ConditionBeanSetupper conditionBeanSetupper) { @@ -317,7 +316,7 @@ * setupper.} * * @param employeeList The entity list of employee. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadMonthlyReportList( List employeeList, @@ -329,7 +328,7 @@ if (employeeList.isEmpty()) { return; } - final MonthlyReportBhv referrerBhv = getBehaviorSelector().select( + final MonthlyReportBhv referrerBhv = xgetBSFLR().select( MonthlyReportBhv.class); helpLoadReferrerInternally( employeeList, @@ -378,9 +377,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'UserInfo'. * @@ -735,18 +733,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Employee delegateGetEntity(Integer id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(EmployeeCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupInfoBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -14,13 +14,17 @@ import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.bsentity.dbmeta.GroupInfoDbm; import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.exbhv.GroupMappingBhv; import jp.sf.pal.timecard.db.exbhv.UserInfoBhv; import jp.sf.pal.timecard.db.exdao.GroupInfoDao; import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.GroupMapping; import jp.sf.pal.timecard.db.exentity.UserInfo; /** @@ -46,18 +50,17 @@ * * * [referrer-table] - * USER_INFO + * GROUP_MAPPING, USER_INFO * * [foreign-property] * * * [referrer-property] - * userInfoList + * groupMappingList, userInfoList *
    * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsGroupInfoBhv extends jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { @@ -220,16 +223,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of GroupInfo. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(GroupInfoCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -237,10 +239,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of GroupInfo. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final GroupInfoCB cb) { assertConditionBeanNotNull(cb); @@ -283,10 +285,101 @@ // Load Referrer // ============= /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** * Load referrer of userInfoList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -295,8 +388,8 @@
          * 
    * * @param groupInfoList The entity list of groupInfo. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadUserInfoList(List groupInfoList, ConditionBeanSetupper conditionBeanSetupper) { @@ -316,7 +409,7 @@ * setupper.} * * @param groupInfoList The entity list of groupInfo. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadUserInfoList(List groupInfoList, LoadReferrerOption loadReferrerOption) { @@ -326,8 +419,7 @@ if (groupInfoList.isEmpty()) { return; } - final UserInfoBhv referrerBhv = getBehaviorSelector().select( - UserInfoBhv.class); + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); helpLoadReferrerInternally( groupInfoList, loadReferrerOption, @@ -375,8 +467,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ + // Pullout Foreign + // =============== //========================================================================== // ========= @@ -704,18 +796,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected GroupInfo delegateGetEntity(String groupId) { - return getMyDao().getEntity(groupId); - } - protected int delegateSelectCount(GroupInfoCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupMappingBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,602 @@ +package jp.sf.pal.timecard.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.timecard.db.allcommon.DaoReadable; +import jp.sf.pal.timecard.db.allcommon.DaoWritable; +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; +import jp.sf.pal.timecard.db.exdao.GroupMappingDao; +import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.GroupMapping; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsMonthlyReportBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsMonthlyReportBhv.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsMonthlyReportBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -14,6 +14,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.bsentity.dbmeta.MonthlyReportDbm; import jp.sf.pal.timecard.db.cbean.DailyReportCB; @@ -58,7 +59,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsMonthlyReportBhv extends jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { @@ -224,16 +224,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of MonthlyReport. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(MonthlyReportCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -241,10 +240,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of MonthlyReport. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final MonthlyReportCB cb) { assertConditionBeanNotNull(cb); @@ -290,8 +289,8 @@ /** * Load referrer of dailyReportList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -300,8 +299,8 @@
          * 
    * * @param monthlyReportList The entity list of monthlyReport. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadDailyReportList(List monthlyReportList, ConditionBeanSetupper conditionBeanSetupper) { @@ -322,7 +321,7 @@ * setupper.} * * @param monthlyReportList The entity list of monthlyReport. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadDailyReportList(List monthlyReportList, LoadReferrerOption loadReferrerOption) { @@ -333,7 +332,7 @@ if (monthlyReportList.isEmpty()) { return; } - final DailyReportBhv referrerBhv = getBehaviorSelector().select( + final DailyReportBhv referrerBhv = xgetBSFLR().select( DailyReportBhv.class); helpLoadReferrerInternally( monthlyReportList, @@ -382,9 +381,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'Employee'. * @@ -732,18 +730,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected MonthlyReport delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(MonthlyReportCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleInfoBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -14,13 +14,17 @@ import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.bsentity.dbmeta.RoleInfoDbm; import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.exbhv.RoleMappingBhv; import jp.sf.pal.timecard.db.exbhv.UserInfoBhv; import jp.sf.pal.timecard.db.exdao.RoleInfoDao; import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.RoleMapping; import jp.sf.pal.timecard.db.exentity.UserInfo; /** @@ -46,18 +50,17 @@ * * * [referrer-table] - * USER_INFO + * ROLE_MAPPING, USER_INFO * * [foreign-property] * * * [referrer-property] - * userInfoList + * roleMappingList, userInfoList * * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsRoleInfoBhv extends jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { @@ -220,16 +223,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of RoleInfo. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(RoleInfoCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -237,10 +239,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of RoleInfo. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final RoleInfoCB cb) { assertConditionBeanNotNull(cb); @@ -283,10 +285,101 @@ // Load Referrer // ============= /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** * Load referrer of userInfoList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -295,8 +388,8 @@
          * 
    * * @param roleInfoList The entity list of roleInfo. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadUserInfoList(List roleInfoList, ConditionBeanSetupper conditionBeanSetupper) { @@ -316,7 +409,7 @@ * setupper.} * * @param roleInfoList The entity list of roleInfo. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadUserInfoList(List roleInfoList, LoadReferrerOption loadReferrerOption) { @@ -326,8 +419,7 @@ if (roleInfoList.isEmpty()) { return; } - final UserInfoBhv referrerBhv = getBehaviorSelector().select( - UserInfoBhv.class); + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); helpLoadReferrerInternally( roleInfoList, loadReferrerOption, @@ -375,8 +467,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ + // Pullout Foreign + // =============== //========================================================================== // ========= @@ -702,18 +794,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected RoleInfo delegateGetEntity(String roleId) { - return getMyDao().getEntity(roleId); - } - protected int delegateSelectCount(RoleInfoCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleMappingBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,597 @@ +package jp.sf.pal.timecard.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.timecard.db.allcommon.DaoReadable; +import jp.sf.pal.timecard.db.allcommon.DaoWritable; +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingBean; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; +import jp.sf.pal.timecard.db.exdao.RoleMappingDao; +import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.RoleMapping; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.timecard.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -14,15 +14,22 @@ import jp.sf.pal.timecard.db.allcommon.cbean.PagingHandler; import jp.sf.pal.timecard.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.timecard.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.bsentity.dbmeta.UserInfoDbm; import jp.sf.pal.timecard.db.cbean.EmployeeCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.exbhv.EmployeeBhv; +import jp.sf.pal.timecard.db.exbhv.GroupMappingBhv; +import jp.sf.pal.timecard.db.exbhv.RoleMappingBhv; import jp.sf.pal.timecard.db.exdao.UserInfoDao; import jp.sf.pal.timecard.db.exentity.Employee; import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.GroupMapping; import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.RoleMapping; import jp.sf.pal.timecard.db.exentity.UserInfo; /** @@ -33,7 +40,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -48,18 +55,17 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * EMPLOYEE + * EMPLOYEE, GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * employeeByUsernameList, employeeByManagerList + * employeeByUsernameList, employeeByManagerList, groupMappingList, roleMappingList * * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsUserInfoBhv extends jp.sf.pal.timecard.db.allcommon.bhv.AbstractBehaviorWritable { @@ -222,16 +228,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of UserInfo. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(UserInfoCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.timecard.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -239,10 +244,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of UserInfo. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final UserInfoCB cb) { assertConditionBeanNotNull(cb); @@ -288,7 +293,7 @@ * Load referrer of employeeByUsernameList with the setupper for * condition-bean of referrer.
    About internal policy, the value of * primary key(and others too) is treated as case-insensitive.
    The - * conditionBean that the setupper provides have settings before you touch + * condition-bean that the setupper provides have settings before you touch * it. It is as follows: * *
    @@ -297,8 +302,8 @@
          * 
    * * @param userInfoList The entity list of userInfo. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadEmployeeByUsernameList(List userInfoList, ConditionBeanSetupper conditionBeanSetupper) { @@ -318,7 +323,7 @@ * setupper.} * * @param userInfoList The entity list of userInfo. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadEmployeeByUsernameList(List userInfoList, LoadReferrerOption loadReferrerOption) { @@ -328,8 +333,7 @@ if (userInfoList.isEmpty()) { return; } - final EmployeeBhv referrerBhv = getBehaviorSelector().select( - EmployeeBhv.class); + final EmployeeBhv referrerBhv = xgetBSFLR().select(EmployeeBhv.class); helpLoadReferrerInternally( userInfoList, loadReferrerOption, @@ -379,7 +383,7 @@ * Load referrer of employeeByManagerList with the setupper for * condition-bean of referrer.
    About internal policy, the value of * primary key(and others too) is treated as case-insensitive.
    The - * conditionBean that the setupper provides have settings before you touch + * condition-bean that the setupper provides have settings before you touch * it. It is as follows: * *
    @@ -388,8 +392,8 @@
          * 
    * * @param userInfoList The entity list of userInfo. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadEmployeeByManagerList(List userInfoList, ConditionBeanSetupper conditionBeanSetupper) { @@ -409,7 +413,7 @@ * setupper.} * * @param userInfoList The entity list of userInfo. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadEmployeeByManagerList(List userInfoList, LoadReferrerOption loadReferrerOption) { @@ -419,8 +423,7 @@ if (userInfoList.isEmpty()) { return; } - final EmployeeBhv referrerBhv = getBehaviorSelector().select( - EmployeeBhv.class); + final EmployeeBhv referrerBhv = xgetBSFLR().select(EmployeeBhv.class); helpLoadReferrerInternally( userInfoList, loadReferrerOption, @@ -466,11 +469,192 @@ }); } + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'GroupInfo'. * @@ -825,18 +1009,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected UserInfo delegateGetEntity(String userId) { - return getMyDao().getEntity(userId); - } - protected int delegateSelectCount(UserInfoCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsDailyReportDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsDailyReportDao.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsDailyReportDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,57 +6,40 @@ import jp.sf.pal.timecard.db.exentity.DailyReport; /** - * The dao interface of DAILY_REPORT. + * The DAO interface of DAILY_REPORT. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsDailyReportDao extends jp.sf.pal.timecard.db.allcommon.DaoWritable { - public Class BEAN = DailyReport.class;// For S2Dao + public Class BEAN = DailyReport.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from DAILY_REPORT"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, DATE, DAY_OF_WEEK, DATE_TYPE, WORKING_TYPE, STATUS, START_TIME, END_TIME, BREAK_TIME, OTJ_TIME, WORKING_TIME, MEMO, MONTHLY_REPORT_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO from DAILY_REPORT"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, DATE, DAY_OF_WEEK, DATE_TYPE, WORKING_TYPE, STATUS, START_TIME, END_TIME, BREAK_TIME, OTJ_TIME, WORKING_TIME, MEMO, MONTHLY_REPORT_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO from DAILY_REPORT where DAILY_REPORT.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public DailyReport getEntity(Long id); - public int selectCount(DailyReportCB cb); public List selectList(DailyReportCB cb); - public int insert(DailyReport entity); + int insert(DailyReport entity); - public int updateModifiedOnly(DailyReport entity); + int updateModifiedOnly(DailyReport entity); - public int updateNonstrictModifiedOnly(DailyReport entity); + int updateNonstrictModifiedOnly(DailyReport entity); - public int delete(DailyReport entity); + int delete(DailyReport entity); - public int deleteNonstrict(DailyReport entity); + int deleteNonstrict(DailyReport entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(DailyReportCB cb, DailyReport entity);//{DBFlute-0.7 + int updateByQuery(DailyReportCB cb, DailyReport entity); - // .5} + int[] deleteList(List entityList); - public int[] deleteList(List entityList); + int[] deleteListNonstrict(List entityList); - public int[] deleteListNonstrict(List entityList); - - public int deleteByQuery(DailyReportCB cb); + int deleteByQuery(DailyReportCB cb); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsEmployeeDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsEmployeeDao.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsEmployeeDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,55 +6,40 @@ import jp.sf.pal.timecard.db.exentity.Employee; /** - * The dao interface of EMPLOYEE. + * The DAO interface of EMPLOYEE. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsEmployeeDao extends jp.sf.pal.timecard.db.allcommon.DaoWritable { - public Class BEAN = Employee.class;// For S2Dao + public Class BEAN = Employee.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from EMPLOYEE"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, USERNAME, MANAGER, PAID_HOLIDAYS, IS_AVAILABLE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from EMPLOYEE"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, USERNAME, MANAGER, PAID_HOLIDAYS, IS_AVAILABLE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from EMPLOYEE where EMPLOYEE.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Employee getEntity(Integer id); - public int selectCount(EmployeeCB cb); public List selectList(EmployeeCB cb); - public int insert(Employee entity); + int insert(Employee entity); - public int updateModifiedOnly(Employee entity); + int updateModifiedOnly(Employee entity); - public int updateNonstrictModifiedOnly(Employee entity); + int updateNonstrictModifiedOnly(Employee entity); - public int delete(Employee entity); + int delete(Employee entity); - public int deleteNonstrict(Employee entity); + int deleteNonstrict(Employee entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(EmployeeCB cb, Employee entity);// {DBFlute-0.7.5} + int updateByQuery(EmployeeCB cb, Employee entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int[] deleteListNonstrict(List entityList); + int[] deleteListNonstrict(List entityList); - public int deleteByQuery(EmployeeCB cb); + int deleteByQuery(EmployeeCB cb); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupInfoDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,55 +6,40 @@ import jp.sf.pal.timecard.db.exentity.GroupInfo; /** - * The dao interface of GROUP_INFO. + * The DAO interface of GROUP_INFO. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsGroupInfoDao extends jp.sf.pal.timecard.db.allcommon.DaoWritable { - public Class BEAN = GroupInfo.class;// For S2Dao + public Class BEAN = GroupInfo.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from GROUP_INFO"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from GROUP_INFO"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from GROUP_INFO where GROUP_INFO.GROUP_ID = /*groupId*/null"; - - public static final String getEntity_ARGS = "groupId"; - - public GroupInfo getEntity(String groupId); - public int selectCount(GroupInfoCB cb); public List selectList(GroupInfoCB cb); - public int insert(GroupInfo entity); + int insert(GroupInfo entity); - public int updateModifiedOnly(GroupInfo entity); + int updateModifiedOnly(GroupInfo entity); - public int updateNonstrictModifiedOnly(GroupInfo entity); + int updateNonstrictModifiedOnly(GroupInfo entity); - public int delete(GroupInfo entity); + int delete(GroupInfo entity); - public int deleteNonstrict(GroupInfo entity); + int deleteNonstrict(GroupInfo entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(GroupInfoCB cb, GroupInfo entity);//{DBFlute-0.7.5} + int updateByQuery(GroupInfoCB cb, GroupInfo entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int[] deleteListNonstrict(List entityList); + int[] deleteListNonstrict(List entityList); - public int deleteByQuery(GroupInfoCB cb); + int deleteByQuery(GroupInfoCB cb); } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupMappingDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupMappingDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupMappingDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,37 @@ +package jp.sf.pal.timecard.db.bsdao; + +import java.util.List; + +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; +import jp.sf.pal.timecard.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.timecard.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsMonthlyReportDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsMonthlyReportDao.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsMonthlyReportDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,58 +6,40 @@ import jp.sf.pal.timecard.db.exentity.MonthlyReport; /** - * The dao interface of MONTHLY_REPORT. + * The DAO interface of MONTHLY_REPORT. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsMonthlyReportDao extends jp.sf.pal.timecard.db.allcommon.DaoWritable { - public Class BEAN = MonthlyReport.class;// For S2Dao + public Class BEAN = MonthlyReport.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from MONTHLY_REPORT"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, YEAR, MONTH, STATUS, WORKING_DAYS, STD_WORKING_DAYS, HOLIDAYS, PAID_HOLIDAYS, WORKING_TIME, STD_WORKING_TIME, OVER_TIME, MNT_OVER_TIME, EMPLOYEE_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from MONTHLY_REPORT"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, YEAR, MONTH, STATUS, WORKING_DAYS, STD_WORKING_DAYS, HOLIDAYS, PAID_HOLIDAYS, WORKING_TIME, STD_WORKING_TIME, OVER_TIME, MNT_OVER_TIME, EMPLOYEE_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from MONTHLY_REPORT where MONTHLY_REPORT.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public MonthlyReport getEntity(Long id); - public int selectCount(MonthlyReportCB cb); public List selectList(MonthlyReportCB cb); - public int insert(MonthlyReport entity); + int insert(MonthlyReport entity); - public int updateModifiedOnly(MonthlyReport entity); + int updateModifiedOnly(MonthlyReport entity); - public int updateNonstrictModifiedOnly(MonthlyReport entity); + int updateNonstrictModifiedOnly(MonthlyReport entity); - public int delete(MonthlyReport entity); + int delete(MonthlyReport entity); - public int deleteNonstrict(MonthlyReport entity); + int deleteNonstrict(MonthlyReport entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(MonthlyReportCB cb, MonthlyReport entity);//{DBFlute + int updateByQuery(MonthlyReportCB cb, MonthlyReport entity); - // - - // 0.7.5} + int[] deleteList(List entityList); - public int[] deleteList(List entityList); + int[] deleteListNonstrict(List entityList); - public int[] deleteListNonstrict(List entityList); - - public int deleteByQuery(MonthlyReportCB cb); + int deleteByQuery(MonthlyReportCB cb); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleInfoDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,55 +6,40 @@ import jp.sf.pal.timecard.db.exentity.RoleInfo; /** - * The dao interface of ROLE_INFO. + * The DAO interface of ROLE_INFO. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsRoleInfoDao extends jp.sf.pal.timecard.db.allcommon.DaoWritable { - public Class BEAN = RoleInfo.class;// For S2Dao + public Class BEAN = RoleInfo.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from ROLE_INFO"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from ROLE_INFO"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from ROLE_INFO where ROLE_INFO.ROLE_ID = /*roleId*/null"; - - public static final String getEntity_ARGS = "roleId"; - - public RoleInfo getEntity(String roleId); - public int selectCount(RoleInfoCB cb); public List selectList(RoleInfoCB cb); - public int insert(RoleInfo entity); + int insert(RoleInfo entity); - public int updateModifiedOnly(RoleInfo entity); + int updateModifiedOnly(RoleInfo entity); - public int updateNonstrictModifiedOnly(RoleInfo entity); + int updateNonstrictModifiedOnly(RoleInfo entity); - public int delete(RoleInfo entity); + int delete(RoleInfo entity); - public int deleteNonstrict(RoleInfo entity); + int deleteNonstrict(RoleInfo entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(RoleInfoCB cb, RoleInfo entity);// {DBFlute-0.7.5} + int updateByQuery(RoleInfoCB cb, RoleInfo entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int[] deleteListNonstrict(List entityList); + int[] deleteListNonstrict(List entityList); - public int deleteByQuery(RoleInfoCB cb); + int deleteByQuery(RoleInfoCB cb); } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleMappingDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleMappingDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleMappingDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,37 @@ +package jp.sf.pal.timecard.db.bsdao; + +import java.util.List; + +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; +import jp.sf.pal.timecard.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.timecard.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsdao/BsUserInfoDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,55 +6,40 @@ import jp.sf.pal.timecard.db.exentity.UserInfo; /** - * The dao interface of USER_INFO. + * The DAO interface of USER_INFO. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsUserInfoDao extends jp.sf.pal.timecard.db.allcommon.DaoWritable { - public Class BEAN = UserInfo.class;// For S2Dao + public Class BEAN = UserInfo.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from USER_INFO"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from USER_INFO where USER_INFO.USER_ID = /*userId*/null"; - - public static final String getEntity_ARGS = "userId"; - - public UserInfo getEntity(String userId); - public int selectCount(UserInfoCB cb); public List selectList(UserInfoCB cb); - public int insert(UserInfo entity); + int insert(UserInfo entity); - public int updateModifiedOnly(UserInfo entity); + int updateModifiedOnly(UserInfo entity); - public int updateNonstrictModifiedOnly(UserInfo entity); + int updateNonstrictModifiedOnly(UserInfo entity); - public int delete(UserInfo entity); + int delete(UserInfo entity); - public int deleteNonstrict(UserInfo entity); + int deleteNonstrict(UserInfo entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(UserInfoCB cb, UserInfo entity);// {DBFlute-0.7.5} + int updateByQuery(UserInfoCB cb, UserInfo entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int[] deleteListNonstrict(List entityList); + int[] deleteListNonstrict(List entityList); - public int deleteByQuery(UserInfoCB cb); + int deleteByQuery(UserInfoCB cb); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsDailyReport.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -8,7 +8,7 @@ import jp.sf.pal.timecard.db.exentity.MonthlyReport; /** - * The entity of DAILY_REPORT(TABLE). + * The entity of DAILY_REPORT that the type is TABLE.
    * *
      * [primary-key]
    @@ -67,71 +67,61 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'DATE'. {INTEGER : NotNull} */
    +    /** DATE: {NotNull : INTEGER} */
         protected Integer _date;
     
    -    /** The attribute of the column 'DAY_OF_WEEK'. {INTEGER : NotNull} */
    +    /** DAY_OF_WEEK: {NotNull : INTEGER} */
         protected Integer _dayOfWeek;
     
    -    /** The attribute of the column 'DATE_TYPE'. {INTEGER : NotNull} */
    +    /** DATE_TYPE: {NotNull : INTEGER} */
         protected Integer _dateType;
     
    -    /**
    -     * The attribute of the column 'WORKING_TYPE'. {INTEGER : NotNull :
    -     * Default=[1]}
    -     */
    +    /** WORKING_TYPE: {NotNull : INTEGER : Default=[1]} */
         protected Integer _workingType;
     
    -    /** The attribute of the column 'STATUS'. {INTEGER : NotNull : Default=[1]} */
    +    /** STATUS: {NotNull : INTEGER : Default=[1]} */
         protected Integer _status;
     
    -    /** The attribute of the column 'START_TIME'. {TIME} */
    +    /** START_TIME: {TIME} */
         protected java.sql.Time _startTime;
     
    -    /** The attribute of the column 'END_TIME'. {TIME} */
    +    /** END_TIME: {TIME} */
         protected java.sql.Time _endTime;
     
    -    /** The attribute of the column 'BREAK_TIME'. {TIME} */
    +    /** BREAK_TIME: {TIME} */
         protected java.sql.Time _breakTime;
     
    -    /** The attribute of the column 'OTJ_TIME'. {TIME} */
    +    /** OTJ_TIME: {TIME} */
         protected java.sql.Time _otjTime;
     
    -    /** The attribute of the column 'WORKING_TIME'. {BIGINT} */
    +    /** WORKING_TIME: {BIGINT} */
         protected Long _workingTime;
     
    -    /** The attribute of the column 'MEMO'. {VARCHAR(200)} */
    +    /** MEMO: {VARCHAR(200)} */
         protected String _memo;
     
         /**
    -     * The attribute of the column 'MONTHLY_REPORT_ID'. {BIGINT : NotNull :
    -     * Default=[0] : FK to MONTHLY_REPORT}
    +     * MONTHLY_REPORT_ID: {NotNull : BIGINT : Default=[0] : FK to
    +     * MONTHLY_REPORT}
          */
         protected Long _monthlyReportId;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -190,11 +180,11 @@
     
         public static final String monthlyReport_RELKEYS = "MONTHLY_REPORT_ID:ID";
     
    -    /** The entity of foreign property 'monthlyReport'. */
    +    /** MONTHLY_REPORT as 'monthlyReport'. */
         protected MonthlyReport _parentMonthlyReport;
     
         /**
    -     * Get the entity of foreign property 'monthlyReport'. {without lazy-load}
    +     * MONTHLY_REPORT as 'monthlyReport'. {without lazy-load}
          * 
          * @return The entity of foreign property 'monthlyReport'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -205,7 +195,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'monthlyReport'.
    +     * MONTHLY_REPORT as 'monthlyReport'.
          * 
          * @param monthlyReport The entity of foreign property 'monthlyReport'.
          *            (Nullable)
    @@ -327,17 +317,11 @@
         // Accessor
         // ========
     
    -    /**
    -     * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]}
    -     */
    +    /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */
         public static final String id_COLUMN = "ID";
     
         /**
    -     * Get the value of the column 'ID'. 
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -346,9 +330,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -357,11 +339,11 @@ this._id = id; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String date_COLUMN = "DATE"; /** - * Get the value of the column 'DATE'.
    {INTEGER : NotNull} + * DATE: {NotNull : INTEGER}
    * * @return The value of the column 'DATE'. (Nullable) */ @@ -370,7 +352,7 @@ } /** - * Set the value of the column 'DATE'.
    {INTEGER : NotNull} + * DATE: {NotNull : INTEGER}
    * * @param date The value of the column 'DATE'. (Nullable) */ @@ -379,11 +361,11 @@ this._date = date; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String dayOfWeek_COLUMN = "DAY_OF_WEEK"; /** - * Get the value of the column 'DAY_OF_WEEK'.
    {INTEGER : NotNull} + * DAY_OF_WEEK: {NotNull : INTEGER}
    * * @return The value of the column 'DAY_OF_WEEK'. (Nullable) */ @@ -392,7 +374,7 @@ } /** - * Set the value of the column 'DAY_OF_WEEK'.
    {INTEGER : NotNull} + * DAY_OF_WEEK: {NotNull : INTEGER}
    * * @param dayOfWeek The value of the column 'DAY_OF_WEEK'. (Nullable) */ @@ -401,11 +383,11 @@ this._dayOfWeek = dayOfWeek; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String dateType_COLUMN = "DATE_TYPE"; /** - * Get the value of the column 'DATE_TYPE'.
    {INTEGER : NotNull} + * DATE_TYPE: {NotNull : INTEGER}
    * * @return The value of the column 'DATE_TYPE'. (Nullable) */ @@ -414,7 +396,7 @@ } /** - * Set the value of the column 'DATE_TYPE'.
    {INTEGER : NotNull} + * DATE_TYPE: {NotNull : INTEGER}
    * * @param dateType The value of the column 'DATE_TYPE'. (Nullable) */ @@ -423,12 +405,11 @@ this._dateType = dateType; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[1]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ public static final String workingType_COLUMN = "WORKING_TYPE"; /** - * Get the value of the column 'WORKING_TYPE'.
    {INTEGER : NotNull : - * Default=[1]} + * WORKING_TYPE: {NotNull : INTEGER : Default=[1]}
    * * @return The value of the column 'WORKING_TYPE'. (Nullable) */ @@ -437,8 +418,7 @@ } /** - * Set the value of the column 'WORKING_TYPE'.
    {INTEGER : NotNull : - * Default=[1]} + * WORKING_TYPE: {NotNull : INTEGER : Default=[1]}
    * * @param workingType The value of the column 'WORKING_TYPE'. (Nullable) */ @@ -447,12 +427,11 @@ this._workingType = workingType; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[1]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ public static final String status_COLUMN = "STATUS"; /** - * Get the value of the column 'STATUS'.
    {INTEGER : NotNull : - * Default=[1]} + * STATUS: {NotNull : INTEGER : Default=[1]}
    * * @return The value of the column 'STATUS'. (Nullable) */ @@ -461,8 +440,7 @@ } /** - * Set the value of the column 'STATUS'.
    {INTEGER : NotNull : - * Default=[1]} + * STATUS: {NotNull : INTEGER : Default=[1]}
    * * @param status The value of the column 'STATUS'. (Nullable) */ @@ -475,7 +453,7 @@ public static final String startTime_COLUMN = "START_TIME"; /** - * Get the value of the column 'START_TIME'.
    {TIME} + * START_TIME: {TIME}
    * * @return The value of the column 'START_TIME'. (Nullable) */ @@ -484,7 +462,7 @@ } /** - * Set the value of the column 'START_TIME'.
    {TIME} + * START_TIME: {TIME}
    * * @param startTime The value of the column 'START_TIME'. (Nullable) */ @@ -497,7 +475,7 @@ public static final String endTime_COLUMN = "END_TIME"; /** - * Get the value of the column 'END_TIME'.
    {TIME} + * END_TIME: {TIME}
    * * @return The value of the column 'END_TIME'. (Nullable) */ @@ -506,7 +484,7 @@ } /** - * Set the value of the column 'END_TIME'.
    {TIME} + * END_TIME: {TIME}
    * * @param endTime The value of the column 'END_TIME'. (Nullable) */ @@ -519,7 +497,7 @@ public static final String breakTime_COLUMN = "BREAK_TIME"; /** - * Get the value of the column 'BREAK_TIME'.
    {TIME} + * BREAK_TIME: {TIME}
    * * @return The value of the column 'BREAK_TIME'. (Nullable) */ @@ -528,7 +506,7 @@ } /** - * Set the value of the column 'BREAK_TIME'.
    {TIME} + * BREAK_TIME: {TIME}
    * * @param breakTime The value of the column 'BREAK_TIME'. (Nullable) */ @@ -541,7 +519,7 @@ public static final String otjTime_COLUMN = "OTJ_TIME"; /** - * Get the value of the column 'OTJ_TIME'.
    {TIME} + * OTJ_TIME: {TIME}
    * * @return The value of the column 'OTJ_TIME'. (Nullable) */ @@ -550,7 +528,7 @@ } /** - * Set the value of the column 'OTJ_TIME'.
    {TIME} + * OTJ_TIME: {TIME}
    * * @param otjTime The value of the column 'OTJ_TIME'. (Nullable) */ @@ -563,7 +541,7 @@ public static final String workingTime_COLUMN = "WORKING_TIME"; /** - * Get the value of the column 'WORKING_TIME'.
    {BIGINT} + * WORKING_TIME: {BIGINT}
    * * @return The value of the column 'WORKING_TIME'. (Nullable) */ @@ -572,7 +550,7 @@ } /** - * Set the value of the column 'WORKING_TIME'.
    {BIGINT} + * WORKING_TIME: {BIGINT}
    * * @param workingTime The value of the column 'WORKING_TIME'. (Nullable) */ @@ -585,7 +563,7 @@ public static final String memo_COLUMN = "MEMO"; /** - * Get the value of the column 'MEMO'.
    {VARCHAR(200)} + * MEMO: {VARCHAR(200)}
    * * @return The value of the column 'MEMO'. (Nullable) */ @@ -594,7 +572,7 @@ } /** - * Set the value of the column 'MEMO'.
    {VARCHAR(200)} + * MEMO: {VARCHAR(200)}
    * * @param memo The value of the column 'MEMO'. (Nullable) */ @@ -604,14 +582,14 @@ } /** - * The column annotation for S2Dao. {BIGINT : NotNull : Default=[0] : FK to + * The column annotation for S2Dao. {NotNull : BIGINT : Default=[0] : FK to * MONTHLY_REPORT} */ public static final String monthlyReportId_COLUMN = "MONTHLY_REPORT_ID"; /** - * Get the value of the column 'MONTHLY_REPORT_ID'.
    {BIGINT : NotNull - * : Default=[0] : FK to MONTHLY_REPORT} + * MONTHLY_REPORT_ID: {NotNull : BIGINT : Default=[0] : FK to + * MONTHLY_REPORT}
    * * @return The value of the column 'MONTHLY_REPORT_ID'. (Nullable) */ @@ -620,8 +598,8 @@ } /** - * Set the value of the column 'MONTHLY_REPORT_ID'.
    {BIGINT : NotNull - * : Default=[0] : FK to MONTHLY_REPORT} + * MONTHLY_REPORT_ID: {NotNull : BIGINT : Default=[0] : FK to + * MONTHLY_REPORT}
    * * @param monthlyReportId The value of the column 'MONTHLY_REPORT_ID'. * (Nullable) @@ -631,11 +609,11 @@ this._monthlyReportId = monthlyReportId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -644,7 +622,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -653,11 +631,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -666,7 +644,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -675,11 +653,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -688,7 +666,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -697,11 +675,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -710,7 +688,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -719,12 +697,11 @@ this._updatedBy = updatedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -733,8 +710,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsEmployee.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -11,7 +11,7 @@ import jp.sf.pal.timecard.db.exentity.UserInfo; /** - * The entity of EMPLOYEE(TABLE). + * The entity of EMPLOYEE that the type is TABLE.
    * *
      * [primary-key]
    @@ -70,59 +70,40 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : INTEGER : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]}
    -     */
    +    /** ID: {PK : ID : NotNull : INTEGER} */
         protected Integer _id;
     
    -    /**
    -     * The attribute of the column 'USERNAME'. {VARCHAR(255) : NotNull : FK to
    -     * USER_INFO}
    -     */
    +    /** USERNAME: {NotNull : VARCHAR(255) : FK to USER_INFO} */
         protected String _username;
     
    -    /**
    -     * The attribute of the column 'MANAGER'. {VARCHAR(255) : NotNull : FK to
    -     * USER_INFO}
    -     */
    +    /** MANAGER: {NotNull : VARCHAR(255) : FK to USER_INFO} */
         protected String _manager;
     
    -    /**
    -     * The attribute of the column 'PAID_HOLIDAYS'. {DOUBLE : NotNull :
    -     * Default=[0]}
    -     */
    +    /** PAID_HOLIDAYS: {NotNull : DOUBLE : Default=[0]} */
         protected java.math.BigDecimal _paidHolidays;
     
    -    /**
    -     * The attribute of the column 'IS_AVAILABLE'. {VARCHAR(1) : NotNull :
    -     * Default=[T]}
    -     */
    +    /** IS_AVAILABLE: {NotNull : VARCHAR(1) : Default=[T]} */
         protected String _isAvailable;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */
    +    /** DELETED_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _deletedTime;
     
    -    /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */
    +    /** DELETED_BY: {VARCHAR(255)} */
         protected String _deletedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -181,12 +162,11 @@
     
         public static final String userInfoByUsername_RELKEYS = "USERNAME:USER_ID";
     
    -    /** The entity of foreign property 'userInfoByUsername'. */
    +    /** USER_INFO as 'userInfoByUsername'. */
         protected UserInfo _parentUserInfoByUsername;
     
         /**
    -     * Get the entity of foreign property 'userInfoByUsername'. {without
    -     * lazy-load}
    +     * USER_INFO as 'userInfoByUsername'. {without lazy-load}
          * 
          * @return The entity of foreign property 'userInfoByUsername'. (Nullable:
          *         If the foreign key does not have 'NotNull' constraint, please
    @@ -197,7 +177,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'userInfoByUsername'.
    +     * USER_INFO as 'userInfoByUsername'.
          * 
          * @param userInfoByUsername The entity of foreign property
          *            'userInfoByUsername'. (Nullable)
    @@ -213,12 +193,11 @@
     
         public static final String userInfoByManager_RELKEYS = "MANAGER:USER_ID";
     
    -    /** The entity of foreign property 'userInfoByManager'. */
    +    /** USER_INFO as 'userInfoByManager'. */
         protected UserInfo _parentUserInfoByManager;
     
         /**
    -     * Get the entity of foreign property 'userInfoByManager'. {without
    -     * lazy-load}
    +     * USER_INFO as 'userInfoByManager'. {without lazy-load}
          * 
          * @return The entity of foreign property 'userInfoByManager'. (Nullable: If
          *         the foreign key does not have 'NotNull' constraint, please check
    @@ -229,7 +208,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'userInfoByManager'.
    +     * USER_INFO as 'userInfoByManager'.
          * 
          * @param userInfoByManager The entity of foreign property
          *            'userInfoByManager'. (Nullable)
    @@ -245,13 +224,11 @@
         // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
         // Referrer Property = [monthlyReportList]
         // * * * * * * * * */
    -
    -    /** The entity list of referrer property 'monthlyReportList'. */
    +    /** MONTHLY_REPORT as 'monthlyReportList'. */
         protected List _childrenMonthlyReportList;
     
         /**
    -     * Get the entity list of referrer property 'monthlyReportList'. {without
    -     * lazy-load} 
    + * MONTHLY_REPORT as 'monthlyReportList'. {without lazy-load}
    * * @return The entity list of referrer property 'monthlyReportList'. * (NotNull: If it's not loaded yet, initializes the list instance @@ -265,7 +242,7 @@ } /** - * Set the entity list of referrer property 'monthlyReportList'. + * MONTHLY_REPORT as 'monthlyReportList'. * * @param monthlyReportList The entity list of referrer property * 'monthlyReportList'. (Nullable) @@ -376,17 +353,11 @@ // Accessor // ======== - /** - * The column annotation for S2Dao. {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} - */ + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ public static final String id_COLUMN = "ID"; /** - * Get the value of the column 'ID'.
    {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} + * ID: {PK : ID : NotNull : INTEGER}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -395,9 +366,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} + * ID: {PK : ID : NotNull : INTEGER}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -407,14 +376,13 @@ } /** - * The column annotation for S2Dao. {VARCHAR(255) : NotNull : FK to + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to * USER_INFO} */ public static final String username_COLUMN = "USERNAME"; /** - * Get the value of the column 'USERNAME'.
    {VARCHAR(255) : NotNull : - * FK to USER_INFO} + * USERNAME: {NotNull : VARCHAR(255) : FK to USER_INFO}
    * * @return The value of the column 'USERNAME'. (Nullable) */ @@ -423,8 +391,7 @@ } /** - * Set the value of the column 'USERNAME'.
    {VARCHAR(255) : NotNull : - * FK to USER_INFO} + * USERNAME: {NotNull : VARCHAR(255) : FK to USER_INFO}
    * * @param username The value of the column 'USERNAME'. (Nullable) */ @@ -434,14 +401,13 @@ } /** - * The column annotation for S2Dao. {VARCHAR(255) : NotNull : FK to + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to * USER_INFO} */ public static final String manager_COLUMN = "MANAGER"; /** - * Get the value of the column 'MANAGER'.
    {VARCHAR(255) : NotNull : - * FK to USER_INFO} + * MANAGER: {NotNull : VARCHAR(255) : FK to USER_INFO}
    * * @return The value of the column 'MANAGER'. (Nullable) */ @@ -450,8 +416,7 @@ } /** - * Set the value of the column 'MANAGER'.
    {VARCHAR(255) : NotNull : - * FK to USER_INFO} + * MANAGER: {NotNull : VARCHAR(255) : FK to USER_INFO}
    * * @param manager The value of the column 'MANAGER'. (Nullable) */ @@ -460,12 +425,11 @@ this._manager = manager; } - /** The column annotation for S2Dao. {DOUBLE : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : DOUBLE : Default=[0]} */ public static final String paidHolidays_COLUMN = "PAID_HOLIDAYS"; /** - * Get the value of the column 'PAID_HOLIDAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * PAID_HOLIDAYS: {NotNull : DOUBLE : Default=[0]}
    * * @return The value of the column 'PAID_HOLIDAYS'. (Nullable) */ @@ -474,8 +438,7 @@ } /** - * Set the value of the column 'PAID_HOLIDAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * PAID_HOLIDAYS: {NotNull : DOUBLE : Default=[0]}
    * * @param paidHolidays The value of the column 'PAID_HOLIDAYS'. (Nullable) */ @@ -484,12 +447,11 @@ this._paidHolidays = paidHolidays; } - /** The column annotation for S2Dao. {VARCHAR(1) : NotNull : Default=[T]} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[T]} */ public static final String isAvailable_COLUMN = "IS_AVAILABLE"; /** - * Get the value of the column 'IS_AVAILABLE'.
    {VARCHAR(1) : NotNull - * : Default=[T]} + * IS_AVAILABLE: {NotNull : VARCHAR(1) : Default=[T]}
    * * @return The value of the column 'IS_AVAILABLE'. (Nullable) */ @@ -498,8 +460,7 @@ } /** - * Set the value of the column 'IS_AVAILABLE'.
    {VARCHAR(1) : NotNull - * : Default=[T]} + * IS_AVAILABLE: {NotNull : VARCHAR(1) : Default=[T]}
    * * @param isAvailable The value of the column 'IS_AVAILABLE'. (Nullable) */ @@ -508,11 +469,11 @@ this._isAvailable = isAvailable; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -521,7 +482,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -530,11 +491,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -543,7 +504,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -552,11 +513,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -565,7 +526,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -574,11 +535,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -587,7 +548,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -600,7 +561,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -609,7 +570,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -622,7 +583,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -631,7 +592,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -640,12 +601,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -654,8 +614,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupInfo.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -7,10 +7,11 @@ import jp.sf.pal.timecard.db.allcommon.Entity; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.GroupMapping; import jp.sf.pal.timecard.db.exentity.UserInfo; /** - * The entity of GROUP_INFO(TABLE). + * The entity of GROUP_INFO that the type is TABLE.
    * *
      * [primary-key]
    @@ -32,13 +33,13 @@
      *     
      * 
      * [referrer-table]
    - *     USER_INFO
    + *     GROUP_MAPPING, USER_INFO
      * 
      * [foreign-property]
      *     
      * 
      * [referrer-property]
    - *     userInfoList
    + *     groupMappingList, userInfoList
      * 
    * * @author DBFlute(AutoGenerator) @@ -66,43 +67,43 @@ // ----------------------------------------------------- // Column // ------ - /** The attribute of the column 'GROUP_ID'. {PK : VARCHAR(255) : NotNull} */ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ protected String _groupId; - /** The attribute of the column 'NAME'. {VARCHAR(100)} */ + /** NAME: {VARCHAR(100)} */ protected String _name; - /** The attribute of the column 'DESCRIPTION'. {VARCHAR(255)} */ + /** DESCRIPTION: {VARCHAR(255)} */ protected String _description; - /** The attribute of the column 'EMAIL'. {VARCHAR(255)} */ + /** EMAIL: {VARCHAR(255)} */ protected String _email; - /** The attribute of the column 'URL'. {VARCHAR(255)} */ + /** URL: {VARCHAR(255)} */ protected String _url; - /** The attribute of the column 'TELEPHONE'. {VARCHAR(40)} */ + /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; - /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ + /** CREATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _createdTime; - /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ + /** CREATED_BY: {NotNull : VARCHAR(255)} */ protected String _createdBy; - /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _updatedTime; - /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ protected String _updatedBy; - /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ + /** DELETED_TIME: {TIMESTAMP} */ protected java.sql.Timestamp _deletedTime; - /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ + /** DELETED_BY: {VARCHAR(255)} */ protected String _deletedBy; - /** The attribute of the column 'VERSIONNO'. {INTEGER : NotNull} */ + /** VERSIONNO: {NotNull : INTEGER} */ protected Integer _versionno; // ----------------------------------------------------- @@ -159,15 +160,43 @@ // Referrer Property // ================= // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [userInfoList] // * * * * * * * * */ - - /** The entity list of referrer property 'userInfoList'. */ + /** USER_INFO as 'userInfoList'. */ protected List _childrenUserInfoList; /** - * Get the entity list of referrer property 'userInfoList'. {without - * lazy-load}
    + * USER_INFO as 'userInfoList'. {without lazy-load}
    * * @return The entity list of referrer property 'userInfoList'. (NotNull: If * it's not loaded yet, initializes the list instance of referrer as @@ -181,7 +210,7 @@ } /** - * Set the entity list of referrer property 'userInfoList'. + * USER_INFO as 'userInfoList'. * * @param userInfoList The entity list of referrer property 'userInfoList'. * (Nullable) @@ -293,12 +322,11 @@ // Accessor // ======== - /** The column annotation for S2Dao. {PK : VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ public static final String groupId_COLUMN = "GROUP_ID"; /** - * Get the value of the column 'GROUP_ID'.
    {PK : VARCHAR(255) : - * NotNull} + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    * * @return The value of the column 'GROUP_ID'. (Nullable) */ @@ -307,8 +335,7 @@ } /** - * Set the value of the column 'GROUP_ID'.
    {PK : VARCHAR(255) : - * NotNull} + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    * * @param groupId The value of the column 'GROUP_ID'. (Nullable) */ @@ -321,7 +348,7 @@ public static final String name_COLUMN = "NAME"; /** - * Get the value of the column 'NAME'.
    {VARCHAR(100)} + * NAME: {VARCHAR(100)}
    * * @return The value of the column 'NAME'. (Nullable) */ @@ -330,7 +357,7 @@ } /** - * Set the value of the column 'NAME'.
    {VARCHAR(100)} + * NAME: {VARCHAR(100)}
    * * @param name The value of the column 'NAME'. (Nullable) */ @@ -343,7 +370,7 @@ public static final String description_COLUMN = "DESCRIPTION"; /** - * Get the value of the column 'DESCRIPTION'.
    {VARCHAR(255)} + * DESCRIPTION: {VARCHAR(255)}
    * * @return The value of the column 'DESCRIPTION'. (Nullable) */ @@ -352,7 +379,7 @@ } /** - * Set the value of the column 'DESCRIPTION'.
    {VARCHAR(255)} + * DESCRIPTION: {VARCHAR(255)}
    * * @param description The value of the column 'DESCRIPTION'. (Nullable) */ @@ -365,7 +392,7 @@ public static final String email_COLUMN = "EMAIL"; /** - * Get the value of the column 'EMAIL'.
    {VARCHAR(255)} + * EMAIL: {VARCHAR(255)}
    * * @return The value of the column 'EMAIL'. (Nullable) */ @@ -374,7 +401,7 @@ } /** - * Set the value of the column 'EMAIL'.
    {VARCHAR(255)} + * EMAIL: {VARCHAR(255)}
    * * @param email The value of the column 'EMAIL'. (Nullable) */ @@ -387,7 +414,7 @@ public static final String url_COLUMN = "URL"; /** - * Get the value of the column 'URL'.
    {VARCHAR(255)} + * URL: {VARCHAR(255)}
    * * @return The value of the column 'URL'. (Nullable) */ @@ -396,7 +423,7 @@ } /** - * Set the value of the column 'URL'.
    {VARCHAR(255)} + * URL: {VARCHAR(255)}
    * * @param url The value of the column 'URL'. (Nullable) */ @@ -409,7 +436,7 @@ public static final String telephone_COLUMN = "TELEPHONE"; /** - * Get the value of the column 'TELEPHONE'.
    {VARCHAR(40)} + * TELEPHONE: {VARCHAR(40)}
    * * @return The value of the column 'TELEPHONE'. (Nullable) */ @@ -418,7 +445,7 @@ } /** - * Set the value of the column 'TELEPHONE'.
    {VARCHAR(40)} + * TELEPHONE: {VARCHAR(40)}
    * * @param telephone The value of the column 'TELEPHONE'. (Nullable) */ @@ -427,11 +454,11 @@ this._telephone = telephone; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -440,7 +467,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -449,11 +476,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -462,7 +489,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -471,11 +498,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -484,7 +511,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -493,11 +520,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -506,7 +533,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -519,7 +546,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -528,7 +555,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -541,7 +568,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -550,7 +577,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -559,11 +586,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull} + * VERSIONNO: {NotNull : INTEGER}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -572,7 +599,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull} + * VERSIONNO: {NotNull : INTEGER}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupMapping.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupMapping.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupMapping.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,356 @@ +package jp.sf.pal.timecard.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsMonthlyReport.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -11,7 +11,7 @@ import jp.sf.pal.timecard.db.exentity.Employee; /** - * The entity of MONTHLY_REPORT(TABLE). + * The entity of MONTHLY_REPORT that the type is TABLE.
    * *
      * [primary-key]
    @@ -70,94 +70,64 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'YEAR'. {INTEGER : NotNull} */
    +    /** YEAR: {NotNull : INTEGER} */
         protected Integer _year;
     
    -    /** The attribute of the column 'MONTH'. {INTEGER : NotNull} */
    +    /** MONTH: {NotNull : INTEGER} */
         protected Integer _month;
     
    -    /** The attribute of the column 'STATUS'. {INTEGER : NotNull : Default=[1]} */
    +    /** STATUS: {NotNull : INTEGER : Default=[1]} */
         protected Integer _status;
     
    -    /**
    -     * The attribute of the column 'WORKING_DAYS'. {DOUBLE : NotNull :
    -     * Default=[0]}
    -     */
    +    /** WORKING_DAYS: {NotNull : DOUBLE : Default=[0]} */
         protected java.math.BigDecimal _workingDays;
     
    -    /**
    -     * The attribute of the column 'STD_WORKING_DAYS'. {DOUBLE : NotNull :
    -     * Default=[0]}
    -     */
    +    /** STD_WORKING_DAYS: {NotNull : DOUBLE : Default=[0]} */
         protected java.math.BigDecimal _stdWorkingDays;
     
    -    /** The attribute of the column 'HOLIDAYS'. {DOUBLE : NotNull : Default=[0]} */
    +    /** HOLIDAYS: {NotNull : DOUBLE : Default=[0]} */
         protected java.math.BigDecimal _holidays;
     
    -    /**
    -     * The attribute of the column 'PAID_HOLIDAYS'. {DOUBLE : NotNull :
    -     * Default=[0]}
    -     */
    +    /** PAID_HOLIDAYS: {NotNull : DOUBLE : Default=[0]} */
         protected java.math.BigDecimal _paidHolidays;
     
    -    /**
    -     * The attribute of the column 'WORKING_TIME'. {BIGINT : NotNull :
    -     * Default=[0]}
    -     */
    +    /** WORKING_TIME: {NotNull : BIGINT : Default=[0]} */
         protected Long _workingTime;
     
    -    /**
    -     * The attribute of the column 'STD_WORKING_TIME'. {BIGINT : NotNull :
    -     * Default=[0]}
    -     */
    +    /** STD_WORKING_TIME: {NotNull : BIGINT : Default=[0]} */
         protected Long _stdWorkingTime;
     
    -    /**
    -     * The attribute of the column 'OVER_TIME'. {BIGINT : NotNull : Default=[0]}
    -     */
    +    /** OVER_TIME: {NotNull : BIGINT : Default=[0]} */
         protected Long _overTime;
     
    -    /**
    -     * The attribute of the column 'MNT_OVER_TIME'. {BIGINT : NotNull :
    -     * Default=[0]}
    -     */
    +    /** MNT_OVER_TIME: {NotNull : BIGINT : Default=[0]} */
         protected Long _mntOverTime;
     
    -    /**
    -     * The attribute of the column 'EMPLOYEE_ID'. {INTEGER : NotNull : FK to
    -     * EMPLOYEE}
    -     */
    +    /** EMPLOYEE_ID: {NotNull : INTEGER : FK to EMPLOYEE} */
         protected Integer _employeeId;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */
    +    /** DELETED_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _deletedTime;
     
    -    /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */
    +    /** DELETED_BY: {VARCHAR(255)} */
         protected String _deletedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -216,11 +186,11 @@
     
         public static final String employee_RELKEYS = "EMPLOYEE_ID:ID";
     
    -    /** The entity of foreign property 'employee'. */
    +    /** EMPLOYEE as 'employee'. */
         protected Employee _parentEmployee;
     
         /**
    -     * Get the entity of foreign property 'employee'. {without lazy-load}
    +     * EMPLOYEE as 'employee'. {without lazy-load}
          * 
          * @return The entity of foreign property 'employee'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -231,7 +201,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'employee'.
    +     * EMPLOYEE as 'employee'.
          * 
          * @param employee The entity of foreign property 'employee'. (Nullable)
          */
    @@ -246,13 +216,11 @@
         // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
         // Referrer Property = [dailyReportList]
         // * * * * * * * * */
    -
    -    /** The entity list of referrer property 'dailyReportList'. */
    +    /** DAILY_REPORT as 'dailyReportList'. */
         protected List _childrenDailyReportList;
     
         /**
    -     * Get the entity list of referrer property 'dailyReportList'. {without
    -     * lazy-load} 
    + * DAILY_REPORT as 'dailyReportList'. {without lazy-load}
    * * @return The entity list of referrer property 'dailyReportList'. (NotNull: * If it's not loaded yet, initializes the list instance of referrer @@ -266,7 +234,7 @@ } /** - * Set the entity list of referrer property 'dailyReportList'. + * DAILY_REPORT as 'dailyReportList'. * * @param dailyReportList The entity list of referrer property * 'dailyReportList'. (Nullable) @@ -385,17 +353,11 @@ // Accessor // ======== - /** - * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} - */ + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ public static final String id_COLUMN = "ID"; /** - * Get the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -404,9 +366,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -415,11 +375,11 @@ this._id = id; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String year_COLUMN = "YEAR"; /** - * Get the value of the column 'YEAR'.
    {INTEGER : NotNull} + * YEAR: {NotNull : INTEGER}
    * * @return The value of the column 'YEAR'. (Nullable) */ @@ -428,7 +388,7 @@ } /** - * Set the value of the column 'YEAR'.
    {INTEGER : NotNull} + * YEAR: {NotNull : INTEGER}
    * * @param year The value of the column 'YEAR'. (Nullable) */ @@ -437,11 +397,11 @@ this._year = year; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String month_COLUMN = "MONTH"; /** - * Get the value of the column 'MONTH'.
    {INTEGER : NotNull} + * MONTH: {NotNull : INTEGER}
    * * @return The value of the column 'MONTH'. (Nullable) */ @@ -450,7 +410,7 @@ } /** - * Set the value of the column 'MONTH'.
    {INTEGER : NotNull} + * MONTH: {NotNull : INTEGER}
    * * @param month The value of the column 'MONTH'. (Nullable) */ @@ -459,12 +419,11 @@ this._month = month; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[1]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ public static final String status_COLUMN = "STATUS"; /** - * Get the value of the column 'STATUS'.
    {INTEGER : NotNull : - * Default=[1]} + * STATUS: {NotNull : INTEGER : Default=[1]}
    * * @return The value of the column 'STATUS'. (Nullable) */ @@ -473,8 +432,7 @@ } /** - * Set the value of the column 'STATUS'.
    {INTEGER : NotNull : - * Default=[1]} + * STATUS: {NotNull : INTEGER : Default=[1]}
    * * @param status The value of the column 'STATUS'. (Nullable) */ @@ -483,12 +441,11 @@ this._status = status; } - /** The column annotation for S2Dao. {DOUBLE : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : DOUBLE : Default=[0]} */ public static final String workingDays_COLUMN = "WORKING_DAYS"; /** - * Get the value of the column 'WORKING_DAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * WORKING_DAYS: {NotNull : DOUBLE : Default=[0]}
    * * @return The value of the column 'WORKING_DAYS'. (Nullable) */ @@ -497,8 +454,7 @@ } /** - * Set the value of the column 'WORKING_DAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * WORKING_DAYS: {NotNull : DOUBLE : Default=[0]}
    * * @param workingDays The value of the column 'WORKING_DAYS'. (Nullable) */ @@ -507,12 +463,11 @@ this._workingDays = workingDays; } - /** The column annotation for S2Dao. {DOUBLE : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : DOUBLE : Default=[0]} */ public static final String stdWorkingDays_COLUMN = "STD_WORKING_DAYS"; /** - * Get the value of the column 'STD_WORKING_DAYS'.
    {DOUBLE : NotNull - * : Default=[0]} + * STD_WORKING_DAYS: {NotNull : DOUBLE : Default=[0]}
    * * @return The value of the column 'STD_WORKING_DAYS'. (Nullable) */ @@ -521,8 +476,7 @@ } /** - * Set the value of the column 'STD_WORKING_DAYS'.
    {DOUBLE : NotNull - * : Default=[0]} + * STD_WORKING_DAYS: {NotNull : DOUBLE : Default=[0]}
    * * @param stdWorkingDays The value of the column 'STD_WORKING_DAYS'. * (Nullable) @@ -532,12 +486,11 @@ this._stdWorkingDays = stdWorkingDays; } - /** The column annotation for S2Dao. {DOUBLE : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : DOUBLE : Default=[0]} */ public static final String holidays_COLUMN = "HOLIDAYS"; /** - * Get the value of the column 'HOLIDAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * HOLIDAYS: {NotNull : DOUBLE : Default=[0]}
    * * @return The value of the column 'HOLIDAYS'. (Nullable) */ @@ -546,8 +499,7 @@ } /** - * Set the value of the column 'HOLIDAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * HOLIDAYS: {NotNull : DOUBLE : Default=[0]}
    * * @param holidays The value of the column 'HOLIDAYS'. (Nullable) */ @@ -556,12 +508,11 @@ this._holidays = holidays; } - /** The column annotation for S2Dao. {DOUBLE : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : DOUBLE : Default=[0]} */ public static final String paidHolidays_COLUMN = "PAID_HOLIDAYS"; /** - * Get the value of the column 'PAID_HOLIDAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * PAID_HOLIDAYS: {NotNull : DOUBLE : Default=[0]}
    * * @return The value of the column 'PAID_HOLIDAYS'. (Nullable) */ @@ -570,8 +521,7 @@ } /** - * Set the value of the column 'PAID_HOLIDAYS'.
    {DOUBLE : NotNull : - * Default=[0]} + * PAID_HOLIDAYS: {NotNull : DOUBLE : Default=[0]}
    * * @param paidHolidays The value of the column 'PAID_HOLIDAYS'. (Nullable) */ @@ -580,12 +530,11 @@ this._paidHolidays = paidHolidays; } - /** The column annotation for S2Dao. {BIGINT : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : Default=[0]} */ public static final String workingTime_COLUMN = "WORKING_TIME"; /** - * Get the value of the column 'WORKING_TIME'.
    {BIGINT : NotNull : - * Default=[0]} + * WORKING_TIME: {NotNull : BIGINT : Default=[0]}
    * * @return The value of the column 'WORKING_TIME'. (Nullable) */ @@ -594,8 +543,7 @@ } /** - * Set the value of the column 'WORKING_TIME'.
    {BIGINT : NotNull : - * Default=[0]} + * WORKING_TIME: {NotNull : BIGINT : Default=[0]}
    * * @param workingTime The value of the column 'WORKING_TIME'. (Nullable) */ @@ -604,12 +552,11 @@ this._workingTime = workingTime; } - /** The column annotation for S2Dao. {BIGINT : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : Default=[0]} */ public static final String stdWorkingTime_COLUMN = "STD_WORKING_TIME"; /** - * Get the value of the column 'STD_WORKING_TIME'.
    {BIGINT : NotNull - * : Default=[0]} + * STD_WORKING_TIME: {NotNull : BIGINT : Default=[0]}
    * * @return The value of the column 'STD_WORKING_TIME'. (Nullable) */ @@ -618,8 +565,7 @@ } /** - * Set the value of the column 'STD_WORKING_TIME'.
    {BIGINT : NotNull - * : Default=[0]} + * STD_WORKING_TIME: {NotNull : BIGINT : Default=[0]}
    * * @param stdWorkingTime The value of the column 'STD_WORKING_TIME'. * (Nullable) @@ -629,12 +575,11 @@ this._stdWorkingTime = stdWorkingTime; } - /** The column annotation for S2Dao. {BIGINT : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : Default=[0]} */ public static final String overTime_COLUMN = "OVER_TIME"; /** - * Get the value of the column 'OVER_TIME'.
    {BIGINT : NotNull : - * Default=[0]} + * OVER_TIME: {NotNull : BIGINT : Default=[0]}
    * * @return The value of the column 'OVER_TIME'. (Nullable) */ @@ -643,8 +588,7 @@ } /** - * Set the value of the column 'OVER_TIME'.
    {BIGINT : NotNull : - * Default=[0]} + * OVER_TIME: {NotNull : BIGINT : Default=[0]}
    * * @param overTime The value of the column 'OVER_TIME'. (Nullable) */ @@ -653,12 +597,11 @@ this._overTime = overTime; } - /** The column annotation for S2Dao. {BIGINT : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : Default=[0]} */ public static final String mntOverTime_COLUMN = "MNT_OVER_TIME"; /** - * Get the value of the column 'MNT_OVER_TIME'.
    {BIGINT : NotNull : - * Default=[0]} + * MNT_OVER_TIME: {NotNull : BIGINT : Default=[0]}
    * * @return The value of the column 'MNT_OVER_TIME'. (Nullable) */ @@ -667,8 +610,7 @@ } /** - * Set the value of the column 'MNT_OVER_TIME'.
    {BIGINT : NotNull : - * Default=[0]} + * MNT_OVER_TIME: {NotNull : BIGINT : Default=[0]}
    * * @param mntOverTime The value of the column 'MNT_OVER_TIME'. (Nullable) */ @@ -677,12 +619,11 @@ this._mntOverTime = mntOverTime; } - /** The column annotation for S2Dao. {INTEGER : NotNull : FK to EMPLOYEE} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : FK to EMPLOYEE} */ public static final String employeeId_COLUMN = "EMPLOYEE_ID"; /** - * Get the value of the column 'EMPLOYEE_ID'.
    {INTEGER : NotNull : FK - * to EMPLOYEE} + * EMPLOYEE_ID: {NotNull : INTEGER : FK to EMPLOYEE}
    * * @return The value of the column 'EMPLOYEE_ID'. (Nullable) */ @@ -691,8 +632,7 @@ } /** - * Set the value of the column 'EMPLOYEE_ID'.
    {INTEGER : NotNull : FK - * to EMPLOYEE} + * EMPLOYEE_ID: {NotNull : INTEGER : FK to EMPLOYEE}
    * * @param employeeId The value of the column 'EMPLOYEE_ID'. (Nullable) */ @@ -701,11 +641,11 @@ this._employeeId = employeeId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -714,7 +654,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -723,11 +663,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -736,7 +676,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -745,11 +685,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -758,7 +698,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -767,11 +707,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -780,7 +720,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -793,7 +733,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -802,7 +742,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -815,7 +755,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -824,7 +764,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -833,12 +773,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -847,8 +786,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleInfo.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -7,10 +7,11 @@ import jp.sf.pal.timecard.db.allcommon.Entity; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.RoleMapping; import jp.sf.pal.timecard.db.exentity.UserInfo; /** - * The entity of ROLE_INFO(TABLE). + * The entity of ROLE_INFO that the type is TABLE.
    * *
      * [primary-key]
    @@ -32,13 +33,13 @@
      *     
      * 
      * [referrer-table]
    - *     USER_INFO
    + *     ROLE_MAPPING, USER_INFO
      * 
      * [foreign-property]
      *     
      * 
      * [referrer-property]
    - *     userInfoList
    + *     roleMappingList, userInfoList
      * 
    * * @author DBFlute(AutoGenerator) @@ -66,43 +67,43 @@ // ----------------------------------------------------- // Column // ------ - /** The attribute of the column 'ROLE_ID'. {PK : VARCHAR(255) : NotNull} */ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ protected String _roleId; - /** The attribute of the column 'NAME'. {VARCHAR(100)} */ + /** NAME: {VARCHAR(100)} */ protected String _name; - /** The attribute of the column 'DESCRIPTION'. {VARCHAR(255)} */ + /** DESCRIPTION: {VARCHAR(255)} */ protected String _description; - /** The attribute of the column 'EMAIL'. {VARCHAR(255)} */ + /** EMAIL: {VARCHAR(255)} */ protected String _email; - /** The attribute of the column 'URL'. {VARCHAR(255)} */ + /** URL: {VARCHAR(255)} */ protected String _url; - /** The attribute of the column 'TELEPHONE'. {VARCHAR(40)} */ + /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; - /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ + /** CREATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _createdTime; - /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ + /** CREATED_BY: {NotNull : VARCHAR(255)} */ protected String _createdBy; - /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _updatedTime; - /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ protected String _updatedBy; - /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ + /** DELETED_TIME: {TIMESTAMP} */ protected java.sql.Timestamp _deletedTime; - /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ + /** DELETED_BY: {VARCHAR(255)} */ protected String _deletedBy; - /** The attribute of the column 'VERSIONNO'. {INTEGER : NotNull} */ + /** VERSIONNO: {NotNull : INTEGER} */ protected Integer _versionno; // ----------------------------------------------------- @@ -159,15 +160,43 @@ // Referrer Property // ================= // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [userInfoList] // * * * * * * * * */ - - /** The entity list of referrer property 'userInfoList'. */ + /** USER_INFO as 'userInfoList'. */ protected List _childrenUserInfoList; /** - * Get the entity list of referrer property 'userInfoList'. {without - * lazy-load}
    + * USER_INFO as 'userInfoList'. {without lazy-load}
    * * @return The entity list of referrer property 'userInfoList'. (NotNull: If * it's not loaded yet, initializes the list instance of referrer as @@ -181,7 +210,7 @@ } /** - * Set the entity list of referrer property 'userInfoList'. + * USER_INFO as 'userInfoList'. * * @param userInfoList The entity list of referrer property 'userInfoList'. * (Nullable) @@ -293,12 +322,11 @@ // Accessor // ======== - /** The column annotation for S2Dao. {PK : VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ public static final String roleId_COLUMN = "ROLE_ID"; /** - * Get the value of the column 'ROLE_ID'.
    {PK : VARCHAR(255) : - * NotNull} + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    * * @return The value of the column 'ROLE_ID'. (Nullable) */ @@ -307,8 +335,7 @@ } /** - * Set the value of the column 'ROLE_ID'.
    {PK : VARCHAR(255) : - * NotNull} + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    * * @param roleId The value of the column 'ROLE_ID'. (Nullable) */ @@ -321,7 +348,7 @@ public static final String name_COLUMN = "NAME"; /** - * Get the value of the column 'NAME'.
    {VARCHAR(100)} + * NAME: {VARCHAR(100)}
    * * @return The value of the column 'NAME'. (Nullable) */ @@ -330,7 +357,7 @@ } /** - * Set the value of the column 'NAME'.
    {VARCHAR(100)} + * NAME: {VARCHAR(100)}
    * * @param name The value of the column 'NAME'. (Nullable) */ @@ -343,7 +370,7 @@ public static final String description_COLUMN = "DESCRIPTION"; /** - * Get the value of the column 'DESCRIPTION'.
    {VARCHAR(255)} + * DESCRIPTION: {VARCHAR(255)}
    * * @return The value of the column 'DESCRIPTION'. (Nullable) */ @@ -352,7 +379,7 @@ } /** - * Set the value of the column 'DESCRIPTION'.
    {VARCHAR(255)} + * DESCRIPTION: {VARCHAR(255)}
    * * @param description The value of the column 'DESCRIPTION'. (Nullable) */ @@ -365,7 +392,7 @@ public static final String email_COLUMN = "EMAIL"; /** - * Get the value of the column 'EMAIL'.
    {VARCHAR(255)} + * EMAIL: {VARCHAR(255)}
    * * @return The value of the column 'EMAIL'. (Nullable) */ @@ -374,7 +401,7 @@ } /** - * Set the value of the column 'EMAIL'.
    {VARCHAR(255)} + * EMAIL: {VARCHAR(255)}
    * * @param email The value of the column 'EMAIL'. (Nullable) */ @@ -387,7 +414,7 @@ public static final String url_COLUMN = "URL"; /** - * Get the value of the column 'URL'.
    {VARCHAR(255)} + * URL: {VARCHAR(255)}
    * * @return The value of the column 'URL'. (Nullable) */ @@ -396,7 +423,7 @@ } /** - * Set the value of the column 'URL'.
    {VARCHAR(255)} + * URL: {VARCHAR(255)}
    * * @param url The value of the column 'URL'. (Nullable) */ @@ -409,7 +436,7 @@ public static final String telephone_COLUMN = "TELEPHONE"; /** - * Get the value of the column 'TELEPHONE'.
    {VARCHAR(40)} + * TELEPHONE: {VARCHAR(40)}
    * * @return The value of the column 'TELEPHONE'. (Nullable) */ @@ -418,7 +445,7 @@ } /** - * Set the value of the column 'TELEPHONE'.
    {VARCHAR(40)} + * TELEPHONE: {VARCHAR(40)}
    * * @param telephone The value of the column 'TELEPHONE'. (Nullable) */ @@ -427,11 +454,11 @@ this._telephone = telephone; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -440,7 +467,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -449,11 +476,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -462,7 +489,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -471,11 +498,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -484,7 +511,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -493,11 +520,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -506,7 +533,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -519,7 +546,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -528,7 +555,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -541,7 +568,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -550,7 +577,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -559,11 +586,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull} + * VERSIONNO: {NotNull : INTEGER}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -572,7 +599,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull} + * VERSIONNO: {NotNull : INTEGER}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleMapping.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleMapping.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleMapping.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,356 @@ +package jp.sf.pal.timecard.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -9,17 +9,19 @@ import jp.sf.pal.timecard.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.timecard.db.exentity.Employee; import jp.sf.pal.timecard.db.exentity.GroupInfo; +import jp.sf.pal.timecard.db.exentity.GroupMapping; import jp.sf.pal.timecard.db.exentity.RoleInfo; +import jp.sf.pal.timecard.db.exentity.RoleMapping; /** - * The entity of USER_INFO(TABLE). + * The entity of USER_INFO that the type is TABLE.
    * *
      * [primary-key]
      *     USER_ID
      * 
      * [column]
    - *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
      * 
      * [sequence]
      *     
    @@ -34,13 +36,13 @@
      *     GROUP_INFO, ROLE_INFO
      * 
      * [referrer-table]
    - *     EMPLOYEE
    + *     EMPLOYEE, GROUP_MAPPING, ROLE_MAPPING
      * 
      * [foreign-property]
      *     groupInfo, roleInfo
      * 
      * [referrer-property]
    - *     employeeByUsernameList, employeeByManagerList
    + *     employeeByUsernameList, employeeByManagerList, groupMappingList, roleMappingList
      * 
    * * @author DBFlute(AutoGenerator) @@ -68,60 +70,67 @@ // ----------------------------------------------------- // Column // ------ - /** The attribute of the column 'USER_ID'. {PK : VARCHAR(255) : NotNull} */ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ protected String _userId; - /** The attribute of the column 'GIVEN_NAME'. {VARCHAR(100)} */ + /** GIVEN_NAME: {VARCHAR(100)} */ protected String _givenName; - /** The attribute of the column 'FAMILY_NAME'. {VARCHAR(100)} */ + /** FAMILY_NAME: {VARCHAR(100)} */ protected String _familyName; - /** The attribute of the column 'MIDDLE_NAME'. {VARCHAR(50)} */ + /** MIDDLE_NAME: {VARCHAR(50)} */ protected String _middleName; - /** The attribute of the column 'GIVEN_NAME_DESC'. {VARCHAR(100)} */ + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ protected String _givenNameDesc; - /** The attribute of the column 'FAMILY_NAME_DESC'. {VARCHAR(100)} */ + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ protected String _familyNameDesc; - /** The attribute of the column 'EMAIL'. {VARCHAR(255)} */ + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + + /** EMAIL: {VARCHAR(255)} */ protected String _email; - /** The attribute of the column 'URL'. {VARCHAR(255)} */ + /** URL: {VARCHAR(255)} */ protected String _url; - /** The attribute of the column 'TELEPHONE'. {VARCHAR(40)} */ + /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; - /** The attribute of the column 'ROLE_ID'. {VARCHAR(255) : FK to ROLE_INFO} */ + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; - /** - * The attribute of the column 'GROUP_ID'. {VARCHAR(255) : FK to GROUP_INFO} - */ + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ protected String _groupId; - /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */ + /** CREATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _createdTime; - /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */ + /** CREATED_BY: {NotNull : VARCHAR(255)} */ protected String _createdBy; - /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */ + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _updatedTime; - /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */ + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ protected String _updatedBy; - /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */ + /** DELETED_TIME: {TIMESTAMP} */ protected java.sql.Timestamp _deletedTime; - /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */ + /** DELETED_BY: {VARCHAR(255)} */ protected String _deletedBy; - /** The attribute of the column 'VERSIONNO'. {INTEGER : NotNull} */ + /** VERSIONNO: {NotNull : INTEGER} */ protected Integer _versionno; // ----------------------------------------------------- @@ -180,11 +189,11 @@ public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; - /** The entity of foreign property 'groupInfo'. */ + /** GROUP_INFO as 'groupInfo'. */ protected GroupInfo _parentGroupInfo; /** - * Get the entity of foreign property 'groupInfo'. {without lazy-load} + * GROUP_INFO as 'groupInfo'. {without lazy-load} * * @return The entity of foreign property 'groupInfo'. (Nullable: If the * foreign key does not have 'NotNull' constraint, please check @@ -195,7 +204,7 @@ } /** - * Set the entity of foreign property 'groupInfo'. + * GROUP_INFO as 'groupInfo'. * * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) */ @@ -210,11 +219,11 @@ public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; - /** The entity of foreign property 'roleInfo'. */ + /** ROLE_INFO as 'roleInfo'. */ protected RoleInfo _parentRoleInfo; /** - * Get the entity of foreign property 'roleInfo'. {without lazy-load} + * ROLE_INFO as 'roleInfo'. {without lazy-load} * * @return The entity of foreign property 'roleInfo'. (Nullable: If the * foreign key does not have 'NotNull' constraint, please check @@ -225,7 +234,7 @@ } /** - * Set the entity of foreign property 'roleInfo'. + * ROLE_INFO as 'roleInfo'. * * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) */ @@ -240,13 +249,11 @@ // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [employeeByUsernameList] // * * * * * * * * */ - - /** The entity list of referrer property 'employeeByUsernameList'. */ + /** EMPLOYEE as 'employeeByUsernameList'. */ protected List _childrenEmployeeByUsernameList; /** - * Get the entity list of referrer property 'employeeByUsernameList'. - * {without lazy-load}
    + * EMPLOYEE as 'employeeByUsernameList'. {without lazy-load}
    * * @return The entity list of referrer property 'employeeByUsernameList'. * (NotNull: If it's not loaded yet, initializes the list instance @@ -260,7 +267,7 @@ } /** - * Set the entity list of referrer property 'employeeByUsernameList'. + * EMPLOYEE as 'employeeByUsernameList'. * * @param employeeByUsernameList The entity list of referrer property * 'employeeByUsernameList'. (Nullable) @@ -272,13 +279,11 @@ // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [employeeByManagerList] // * * * * * * * * */ - - /** The entity list of referrer property 'employeeByManagerList'. */ + /** EMPLOYEE as 'employeeByManagerList'. */ protected List _childrenEmployeeByManagerList; /** - * Get the entity list of referrer property 'employeeByManagerList'. - * {without lazy-load}
    + * EMPLOYEE as 'employeeByManagerList'. {without lazy-load}
    * * @return The entity list of referrer property 'employeeByManagerList'. * (NotNull: If it's not loaded yet, initializes the list instance @@ -292,7 +297,7 @@ } /** - * Set the entity list of referrer property 'employeeByManagerList'. + * EMPLOYEE as 'employeeByManagerList'. * * @param employeeByManagerList The entity list of referrer property * 'employeeByManagerList'. (Nullable) @@ -301,6 +306,66 @@ _childrenEmployeeByManagerList = employeeByManagerList; } + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + //========================================================================== // ========= // Determination @@ -385,6 +450,9 @@ sb.append(delimiter).append(getMiddleName()); sb.append(delimiter).append(getGivenNameDesc()); sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); @@ -409,12 +477,11 @@ // Accessor // ======== - /** The column annotation for S2Dao. {PK : VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ public static final String userId_COLUMN = "USER_ID"; /** - * Get the value of the column 'USER_ID'.
    {PK : VARCHAR(255) : - * NotNull} + * USER_ID: {PK : NotNull : VARCHAR(255)}
    * * @return The value of the column 'USER_ID'. (Nullable) */ @@ -423,8 +490,7 @@ } /** - * Set the value of the column 'USER_ID'.
    {PK : VARCHAR(255) : - * NotNull} + * USER_ID: {PK : NotNull : VARCHAR(255)}
    * * @param userId The value of the column 'USER_ID'. (Nullable) */ @@ -437,7 +503,7 @@ public static final String givenName_COLUMN = "GIVEN_NAME"; /** - * Get the value of the column 'GIVEN_NAME'.
    {VARCHAR(100)} + * GIVEN_NAME: {VARCHAR(100)}
    * * @return The value of the column 'GIVEN_NAME'. (Nullable) */ @@ -446,7 +512,7 @@ } /** - * Set the value of the column 'GIVEN_NAME'.
    {VARCHAR(100)} + * GIVEN_NAME: {VARCHAR(100)}
    * * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) */ @@ -459,7 +525,7 @@ public static final String familyName_COLUMN = "FAMILY_NAME"; /** - * Get the value of the column 'FAMILY_NAME'.
    {VARCHAR(100)} + * FAMILY_NAME: {VARCHAR(100)}
    * * @return The value of the column 'FAMILY_NAME'. (Nullable) */ @@ -468,7 +534,7 @@ } /** - * Set the value of the column 'FAMILY_NAME'.
    {VARCHAR(100)} + * FAMILY_NAME: {VARCHAR(100)}
    * * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) */ @@ -481,7 +547,7 @@ public static final String middleName_COLUMN = "MIDDLE_NAME"; /** - * Get the value of the column 'MIDDLE_NAME'.
    {VARCHAR(50)} + * MIDDLE_NAME: {VARCHAR(50)}
    * * @return The value of the column 'MIDDLE_NAME'. (Nullable) */ @@ -490,7 +556,7 @@ } /** - * Set the value of the column 'MIDDLE_NAME'.
    {VARCHAR(50)} + * MIDDLE_NAME: {VARCHAR(50)}
    * * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) */ @@ -503,7 +569,7 @@ public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; /** - * Get the value of the column 'GIVEN_NAME_DESC'.
    {VARCHAR(100)} + * GIVEN_NAME_DESC: {VARCHAR(100)}
    * * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) */ @@ -512,7 +578,7 @@ } /** - * Set the value of the column 'GIVEN_NAME_DESC'.
    {VARCHAR(100)} + * GIVEN_NAME_DESC: {VARCHAR(100)}
    * * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. * (Nullable) @@ -526,7 +592,7 @@ public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; /** - * Get the value of the column 'FAMILY_NAME_DESC'.
    {VARCHAR(100)} + * FAMILY_NAME_DESC: {VARCHAR(100)}
    * * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) */ @@ -535,7 +601,7 @@ } /** - * Set the value of the column 'FAMILY_NAME_DESC'.
    {VARCHAR(100)} + * FAMILY_NAME_DESC: {VARCHAR(100)}
    * * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. * (Nullable) @@ -545,11 +611,77 @@ this._familyNameDesc = familyNameDesc; } + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + /** The column annotation for S2Dao. {VARCHAR(255)} */ public static final String email_COLUMN = "EMAIL"; /** - * Get the value of the column 'EMAIL'.
    {VARCHAR(255)} + * EMAIL: {VARCHAR(255)}
    * * @return The value of the column 'EMAIL'. (Nullable) */ @@ -558,7 +690,7 @@ } /** - * Set the value of the column 'EMAIL'.
    {VARCHAR(255)} + * EMAIL: {VARCHAR(255)}
    * * @param email The value of the column 'EMAIL'. (Nullable) */ @@ -571,7 +703,7 @@ public static final String url_COLUMN = "URL"; /** - * Get the value of the column 'URL'.
    {VARCHAR(255)} + * URL: {VARCHAR(255)}
    * * @return The value of the column 'URL'. (Nullable) */ @@ -580,7 +712,7 @@ } /** - * Set the value of the column 'URL'.
    {VARCHAR(255)} + * URL: {VARCHAR(255)}
    * * @param url The value of the column 'URL'. (Nullable) */ @@ -593,7 +725,7 @@ public static final String telephone_COLUMN = "TELEPHONE"; /** - * Get the value of the column 'TELEPHONE'.
    {VARCHAR(40)} + * TELEPHONE: {VARCHAR(40)}
    * * @return The value of the column 'TELEPHONE'. (Nullable) */ @@ -602,7 +734,7 @@ } /** - * Set the value of the column 'TELEPHONE'.
    {VARCHAR(40)} + * TELEPHONE: {VARCHAR(40)}
    * * @param telephone The value of the column 'TELEPHONE'. (Nullable) */ @@ -615,8 +747,7 @@ public static final String roleId_COLUMN = "ROLE_ID"; /** - * Get the value of the column 'ROLE_ID'.
    {VARCHAR(255) : FK to - * ROLE_INFO} + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    * * @return The value of the column 'ROLE_ID'. (Nullable) */ @@ -625,8 +756,7 @@ } /** - * Set the value of the column 'ROLE_ID'.
    {VARCHAR(255) : FK to - * ROLE_INFO} + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    * * @param roleId The value of the column 'ROLE_ID'. (Nullable) */ @@ -639,8 +769,7 @@ public static final String groupId_COLUMN = "GROUP_ID"; /** - * Get the value of the column 'GROUP_ID'.
    {VARCHAR(255) : FK to - * GROUP_INFO} + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    * * @return The value of the column 'GROUP_ID'. (Nullable) */ @@ -649,8 +778,7 @@ } /** - * Set the value of the column 'GROUP_ID'.
    {VARCHAR(255) : FK to - * GROUP_INFO} + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    * * @param groupId The value of the column 'GROUP_ID'. (Nullable) */ @@ -659,11 +787,11 @@ this._groupId = groupId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -672,7 +800,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -681,11 +809,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -694,7 +822,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -703,11 +831,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -716,7 +844,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -725,11 +853,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -738,7 +866,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -751,7 +879,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -760,7 +888,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -773,7 +901,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -782,7 +910,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -791,11 +919,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull} + * VERSIONNO: {NotNull : INTEGER}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -804,7 +932,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull} + * VERSIONNO: {NotNull : INTEGER}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/DailyReportDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/DailyReportDbm.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/DailyReportDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -39,6 +39,10 @@ return "dailyReport"; } + public String getTableSqlName() { + return "DAILY_REPORT"; + } + //========================================================================== // ========= // Column Info Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/EmployeeDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -40,6 +40,10 @@ return "employee"; } + public String getTableSqlName() { + return "EMPLOYEE"; + } + //========================================================================== // ========= // Column Info Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -39,6 +39,10 @@ return "groupInfo"; } + public String getTableSqlName() { + return "GROUP_INFO"; + } + //========================================================================== // ========= // Column Info @@ -238,6 +242,13 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + public ReferrerInfo referrerUserInfoList() { Map map = newLinkedHashMap(columnGroupId(), UserInfoDbm.getInstance().columnGroupId()); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,299 @@ +package jp.sf.pal.timecard.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.timecard.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.timecard.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.timecard.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.timecard.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.timecard.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/MonthlyReportDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/MonthlyReportDbm.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/MonthlyReportDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -40,6 +40,10 @@ return "monthlyReport"; } + public String getTableSqlName() { + return "MONTHLY_REPORT"; + } + //========================================================================== // ========= // Column Info Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -39,6 +39,10 @@ return "roleInfo"; } + public String getTableSqlName() { + return "ROLE_INFO"; + } + //========================================================================== // ========= // Column Info @@ -238,6 +242,13 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + public ReferrerInfo referrerUserInfoList() { Map map = newLinkedHashMap(columnRoleId(), UserInfoDbm.getInstance().columnRoleId()); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,299 @@ +package jp.sf.pal.timecard.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.Entity; +import jp.sf.pal.timecard.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.timecard.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.timecard.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.timecard.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.timecard.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.timecard.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.timecard.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -40,6 +40,10 @@ return "userInfo"; } + public String getTableSqlName() { + return "USER_INFO"; + } + //========================================================================== // ========= // Column Info @@ -62,6 +66,15 @@ protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", "familyNameDesc", String.class, false, 100, 0); + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, false, 255, 0); @@ -122,6 +135,18 @@ return _columnFamilyNameDesc; } + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + public ColumnInfo columnEmail() { return _columnEmail; } @@ -299,6 +324,20 @@ map, false); } + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + //========================================================================== // ========= // Various Info @@ -393,6 +432,9 @@ setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); @@ -452,6 +494,24 @@ } } + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + public static class EpsEmail implements Eps { public void setup(UserInfo e, Object v) { e.setEmail((String) v); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupMappingCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupMappingCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupMappingCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.timecard.db.cbean.bs.BsGroupMappingCB { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleMappingCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleMappingCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleMappingCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.timecard.db.cbean.bs.BsRoleMappingCB { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupInfoCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -8,6 +8,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; @@ -254,6 +255,19 @@ return "GROUP_INFO"; } + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + public RAFunction derivedUserInfoList() { return new RAFunction(_baseCB, _myQyCall .qy(), new RAQSetupper() { Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupMappingCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,325 @@ +package jp.sf.pal.timecard.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.timecard.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleInfoCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -8,6 +8,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; @@ -253,6 +254,17 @@ return "ROLE_INFO"; } + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + public RAFunction derivedUserInfoList() { return new RAFunction(_baseCB, _myQyCall .qy(), new RAQSetupper() { Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleMappingCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,325 @@ +package jp.sf.pal.timecard.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.timecard.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -9,7 +9,9 @@ import jp.sf.pal.timecard.db.allcommon.cbean.UnionQuery; import jp.sf.pal.timecard.db.cbean.EmployeeCB; import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; @@ -269,6 +271,18 @@ doColumn("FAMILY_NAME_DESC"); } + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + public void columnEmail() { doColumn("EMAIL"); } @@ -392,6 +406,30 @@ } }); } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } } // Very Internal (for Suppressing Warn about 'Not Use Import') Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupMappingCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupMappingCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,45 @@ +package jp.sf.pal.timecard.db.cbean.cq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleMappingCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleMappingCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,45 @@ +package jp.sf.pal.timecard.db.cbean.cq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsDailyReportCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -48,9 +48,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_50C4B525_E9F4_4DAA_B23A_A4E3F22E225B]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -148,7 +146,7 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param date The value of date as equal. */ @@ -232,7 +230,7 @@ abstract protected ConditionValue getCValueDate(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param dayOfWeek The value of dayOfWeek as equal. */ @@ -318,7 +316,7 @@ abstract protected ConditionValue getCValueDayOfWeek(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param dateType The value of dateType as equal. */ @@ -404,7 +402,7 @@ abstract protected ConditionValue getCValueDateType(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[1]} * * @param workingType The value of workingType as equal. @@ -491,7 +489,7 @@ abstract protected ConditionValue getCValueWorkingType(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[1]} * * @param status The value of status as equal. @@ -1133,7 +1131,7 @@ abstract protected ConditionValue getCValueMemo(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : * Default=[0] : FK to MONTHLY_REPORT} * * @param monthlyReportId The value of monthlyReportId as equal. @@ -1252,7 +1250,7 @@ abstract protected ConditionValue getCValueMonthlyReportId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -1307,7 +1305,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1325,7 +1323,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1351,8 +1349,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -1475,7 +1473,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -1530,7 +1528,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1548,7 +1546,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1574,8 +1572,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -1698,7 +1696,7 @@ abstract protected ConditionValue getCValueUpdatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsEmployeeCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -50,9 +50,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : INTEGER : NotNull - * : Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_642A126C_91F0_49FA_A8A2_4B1D8067271C]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} * * @param id The value of id as equal. */ @@ -267,7 +265,7 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : NotNull + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) * : FK to USER_INFO} * * @param username The value of username as equal. @@ -421,7 +419,7 @@ abstract protected ConditionValue getCValueUsername(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : NotNull + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) * : FK to USER_INFO} * * @param manager The value of manager as equal. @@ -575,7 +573,7 @@ abstract protected ConditionValue getCValueManager(); /** - * Equal(=). And NullIgnored, OnceRegistered. {DOUBLE : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DOUBLE : * Default=[0]} * * @param paidHolidays The value of paidHolidays as equal. @@ -664,7 +662,7 @@ abstract protected ConditionValue getCValuePaidHolidays(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : NotNull : + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : * Default=[T]} * * @param isAvailable The value of isAvailable as equal. @@ -789,7 +787,7 @@ abstract protected ConditionValue getCValueIsAvailable(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -844,7 +842,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -862,7 +860,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -888,8 +886,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -1012,7 +1010,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -1067,7 +1065,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1085,7 +1083,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1111,8 +1109,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -1485,7 +1483,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -9,8 +9,10 @@ import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; /** @@ -48,8 +50,8 @@ // ===== /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} * * @param groupId The value of groupId as equal. */ @@ -160,6 +162,36 @@ } /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use inScopeUserInfoList(subQuery) method. */ @@ -189,6 +221,20 @@ abstract public String keepGroupId_InScopeSubQuery_UserInfoList( UserInfoCQ subQuery); + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + public void notInScopeUserInfoList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); UserInfoCB cb = new UserInfoCB(); @@ -204,6 +250,43 @@ UserInfoCQ subQuery); /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use existsUserInfoList(subQuery) method. */ @@ -242,6 +325,28 @@ /** * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from * USER_INFO where ...)} * * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList @@ -261,6 +366,21 @@ abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( UserInfoCQ subQuery); + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + public void xderiveUserInfoList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); @@ -984,7 +1104,7 @@ abstract protected ConditionValue getCValueTelephone(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -1039,7 +1159,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1057,7 +1177,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1083,8 +1203,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -1207,7 +1327,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -1262,7 +1382,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1280,7 +1400,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1306,8 +1426,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -1680,7 +1800,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param versionno The value of versionno as equal. */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,465 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsMonthlyReportCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -50,9 +50,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_32548B43_85E7_41E8_A673_8AE5B9803173]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -267,7 +265,7 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param year The value of year as equal. */ @@ -351,7 +349,7 @@ abstract protected ConditionValue getCValueYear(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param month The value of month as equal. */ @@ -436,7 +434,7 @@ abstract protected ConditionValue getCValueMonth(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[1]} * * @param status The value of status as equal. @@ -523,7 +521,7 @@ abstract protected ConditionValue getCValueStatus(); /** - * Equal(=). And NullIgnored, OnceRegistered. {DOUBLE : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DOUBLE : * Default=[0]} * * @param workingDays The value of workingDays as equal. @@ -612,7 +610,7 @@ abstract protected ConditionValue getCValueWorkingDays(); /** - * Equal(=). And NullIgnored, OnceRegistered. {DOUBLE : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DOUBLE : * Default=[0]} * * @param stdWorkingDays The value of stdWorkingDays as equal. @@ -703,7 +701,7 @@ abstract protected ConditionValue getCValueStdWorkingDays(); /** - * Equal(=). And NullIgnored, OnceRegistered. {DOUBLE : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DOUBLE : * Default=[0]} * * @param holidays The value of holidays as equal. @@ -792,7 +790,7 @@ abstract protected ConditionValue getCValueHolidays(); /** - * Equal(=). And NullIgnored, OnceRegistered. {DOUBLE : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DOUBLE : * Default=[0]} * * @param paidHolidays The value of paidHolidays as equal. @@ -881,7 +879,7 @@ abstract protected ConditionValue getCValuePaidHolidays(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : * Default=[0]} * * @param workingTime The value of workingTime as equal. @@ -968,7 +966,7 @@ abstract protected ConditionValue getCValueWorkingTime(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : * Default=[0]} * * @param stdWorkingTime The value of stdWorkingTime as equal. @@ -1055,7 +1053,7 @@ abstract protected ConditionValue getCValueStdWorkingTime(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : * Default=[0]} * * @param overTime The value of overTime as equal. @@ -1142,7 +1140,7 @@ abstract protected ConditionValue getCValueOverTime(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : * Default=[0]} * * @param mntOverTime The value of mntOverTime as equal. @@ -1229,7 +1227,7 @@ abstract protected ConditionValue getCValueMntOverTime(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : FK to + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : FK to * EMPLOYEE} * * @param employeeId The value of employeeId as equal. @@ -1346,7 +1344,7 @@ abstract protected ConditionValue getCValueEmployeeId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -1401,7 +1399,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1419,7 +1417,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1445,8 +1443,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -1569,7 +1567,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -1624,7 +1622,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1642,7 +1640,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1668,8 +1666,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -2042,7 +2040,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -9,8 +9,10 @@ import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; /** @@ -48,8 +50,8 @@ // ===== /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} * * @param roleId The value of roleId as equal. */ @@ -160,6 +162,36 @@ } /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use inScopeUserInfoList(subQuery) method. */ @@ -189,6 +221,20 @@ abstract public String keepRoleId_InScopeSubQuery_UserInfoList( UserInfoCQ subQuery); + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + public void notInScopeUserInfoList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); UserInfoCB cb = new UserInfoCB(); @@ -204,6 +250,43 @@ UserInfoCQ subQuery); /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * @param userInfoCBquery Query. * @deprecated Please use existsUserInfoList(subQuery) method. */ @@ -240,6 +323,27 @@ UserInfoCQ subQuery); /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO * where ...)} * @@ -260,6 +364,21 @@ abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( UserInfoCQ subQuery); + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + public void xderiveUserInfoList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); @@ -983,7 +1102,7 @@ abstract protected ConditionValue getCValueTelephone(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -1038,7 +1157,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1056,7 +1175,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1082,8 +1201,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -1206,7 +1325,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -1261,7 +1380,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1279,7 +1398,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1305,8 +1424,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -1679,7 +1798,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param versionno The value of versionno as equal. */ Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,464 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.timecard.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.SubQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; +import jp.sf.pal.timecard.db.cbean.UserInfoCB; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -10,11 +10,15 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.EmployeeCB; import jp.sf.pal.timecard.db.cbean.GroupInfoCB; +import jp.sf.pal.timecard.db.cbean.GroupMappingCB; import jp.sf.pal.timecard.db.cbean.RoleInfoCB; +import jp.sf.pal.timecard.db.cbean.RoleMappingCB; import jp.sf.pal.timecard.db.cbean.UserInfoCB; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; /** @@ -52,8 +56,8 @@ // ===== /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} * * @param userId The value of userId as equal. */ @@ -223,6 +227,66 @@ abstract public String keepUserId_InScopeSubQuery_EmployeeByManagerList( EmployeeCQ subQuery); + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + public void notInScopeEmployeeByUsernameList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); EmployeeCB cb = new EmployeeCB(); @@ -251,6 +315,34 @@ abstract public String keepUserId_NotInScopeSubQuery_EmployeeByManagerList( EmployeeCQ subQuery); + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + /** * @param employeeCBquery Query. * @deprecated Please use existsEmployeeByUsernameList(subQuery) method. @@ -328,6 +420,80 @@ EmployeeCQ subQuery); /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** * Set up 'not exists' sub-query. {not exists (select USERNAME from EMPLOYEE * where ...)} * @@ -371,6 +537,49 @@ abstract public String keepUserId_NotExistsSubQuery_EmployeeByManagerList( EmployeeCQ subQuery); + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + public void xderiveEmployeeByUsernameList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); @@ -401,6 +610,36 @@ abstract public String keepUserId_DeriveSubQuery_EmployeeByManagerList( EmployeeCQ subQuery); + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + /** * IsNull(is null). And OnceRegistered. */ @@ -1118,6 +1357,391 @@ abstract protected ConditionValue getCValueFamilyNameDesc(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.timecard.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.timecard.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} * * @param email The value of email as equal. @@ -1861,7 +2485,7 @@ abstract protected ConditionValue getCValueGroupId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -1916,7 +2540,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1934,7 +2558,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1960,8 +2584,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -2084,7 +2708,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -2139,7 +2763,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -2157,7 +2781,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -2183,8 +2807,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -2557,7 +3181,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param versionno The value of versionno as equal. */ Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,6 +6,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.ciq.GroupInfoCIQ; @@ -85,6 +86,23 @@ return getGroupId(); } + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + protected Map _groupId_InScopeSubQuery_UserInfoListMap; public Map getGroupId_InScopeSubQuery_UserInfoList() { @@ -101,6 +119,23 @@ return "groupId_InScopeSubQuery_UserInfoList." + key; } + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; public Map getGroupId_NotInScopeSubQuery_UserInfoList() { @@ -118,6 +153,23 @@ return "groupId_NotInScopeSubQuery_UserInfoList." + key; } + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + protected Map _groupId_ExistsSubQuery_UserInfoListMap; public Map getGroupId_ExistsSubQuery_UserInfoList() { @@ -134,6 +186,23 @@ return "groupId_ExistsSubQuery_UserInfoList." + key; } + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; public Map getGroupId_NotExistsSubQuery_UserInfoList() { @@ -150,6 +219,23 @@ return "groupId_NotExistsSubQuery_UserInfoList." + key; } + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + protected Map _groupId_DeriveSubQuery_UserInfoListMap; public Map getGroupId_DeriveSubQuery_UserInfoList() { Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,291 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,6 +6,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.ciq.RoleInfoCIQ; @@ -85,6 +86,23 @@ return getRoleId(); } + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + protected Map _roleId_InScopeSubQuery_UserInfoListMap; public Map getRoleId_InScopeSubQuery_UserInfoList() { @@ -101,6 +119,23 @@ return "roleId_InScopeSubQuery_UserInfoList." + key; } + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; public Map getRoleId_NotInScopeSubQuery_UserInfoList() { @@ -117,6 +152,23 @@ return "roleId_NotInScopeSubQuery_UserInfoList." + key; } + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + protected Map _roleId_ExistsSubQuery_UserInfoListMap; public Map getRoleId_ExistsSubQuery_UserInfoList() { @@ -133,6 +185,23 @@ return "roleId_ExistsSubQuery_UserInfoList." + key; } + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; public Map getRoleId_NotExistsSubQuery_UserInfoList() { @@ -149,6 +218,23 @@ return "roleId_NotExistsSubQuery_UserInfoList." + key; } + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + protected Map _roleId_DeriveSubQuery_UserInfoListMap; public Map getRoleId_DeriveSubQuery_UserInfoList() { Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,291 @@ +package jp.sf.pal.timecard.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -7,7 +7,9 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.ciq.UserInfoCIQ; @@ -121,6 +123,40 @@ return "userId_InScopeSubQuery_EmployeeByManagerList." + key; } + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + protected Map _userId_NotInScopeSubQuery_EmployeeByUsernameListMap; public Map getUserId_NotInScopeSubQuery_EmployeeByUsernameList() { @@ -155,6 +191,40 @@ return "userId_NotInScopeSubQuery_EmployeeByManagerList." + key; } + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + protected Map _userId_ExistsSubQuery_EmployeeByUsernameListMap; public Map getUserId_ExistsSubQuery_EmployeeByUsernameList() { @@ -189,6 +259,40 @@ return "userId_ExistsSubQuery_EmployeeByManagerList." + key; } + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + protected Map _userId_NotExistsSubQuery_EmployeeByUsernameListMap; public Map getUserId_NotExistsSubQuery_EmployeeByUsernameList() { @@ -223,6 +327,40 @@ return "userId_NotExistsSubQuery_EmployeeByManagerList." + key; } + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + protected Map _userId_DeriveSubQuery_EmployeeByUsernameListMap; public Map getUserId_DeriveSubQuery_EmployeeByUsernameList() { @@ -257,6 +395,40 @@ return "userId_DeriveSubQuery_EmployeeByManagerList." + key; } + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + public BsUserInfoCQ addOrderBy_UserId_Asc() { regOBA("USER_ID"); return this; @@ -382,6 +554,75 @@ return this; } + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + protected ConditionValue _email; public ConditionValue getEmail() { Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,6 +6,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsGroupInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.BsGroupInfoCQ; @@ -95,25 +96,53 @@ return _myCQ.getGroupId(); } + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); } + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + public String keepGroupId_NotInScopeSubQuery_UserInfoList( UserInfoCQ subQuery) { return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); } + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "DeriveSubQuery at inline() is unsupported! Sorry!"); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,118 @@ +package jp.sf.pal.timecard.db.cbean.cq.ciq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -6,6 +6,7 @@ import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsRoleInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.BsRoleInfoCQ; @@ -95,24 +96,52 @@ return _myCQ.getRoleId(); } + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); } + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); } + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { throw new UnsupportedOperationException( "DeriveSubQuery at inline() is unsupported! Sorry!"); Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,118 @@ +package jp.sf.pal.timecard.db.cbean.cq.ciq; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.timecard.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.timecard.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.timecard.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 06:13:30 UTC (rev 1342) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -7,7 +7,9 @@ import jp.sf.pal.timecard.db.allcommon.cbean.sqlclause.SqlClause; import jp.sf.pal.timecard.db.cbean.cq.EmployeeCQ; import jp.sf.pal.timecard.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; import jp.sf.pal.timecard.db.cbean.cq.UserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.AbstractBsUserInfoCQ; import jp.sf.pal.timecard.db.cbean.cq.bs.BsUserInfoCQ; @@ -108,6 +110,16 @@ return _myCQ.keepUserId_InScopeSubQuery_EmployeeByManagerList(subQuery); } + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + public String keepUserId_NotInScopeSubQuery_EmployeeByUsernameList( EmployeeCQ subQuery) { return _myCQ @@ -120,6 +132,16 @@ .keepUserId_NotInScopeSubQuery_EmployeeByManagerList(subQuery); } + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + public String keepUserId_ExistsSubQuery_EmployeeByUsernameList( EmployeeCQ subQuery) { throw new UnsupportedOperationException( @@ -132,6 +154,18 @@ "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepUserId_NotExistsSubQuery_EmployeeByUsernameList( EmployeeCQ subQuery) { throw new UnsupportedOperationException( @@ -144,6 +178,18 @@ "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepUserId_DeriveSubQuery_EmployeeByUsernameList( EmployeeCQ subQuery) { throw new UnsupportedOperationException( @@ -156,6 +202,18 @@ "DeriveSubQuery at inline() is unsupported! Sorry!"); } + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + protected ConditionValue getCValueGivenName() { return _myCQ.getGivenName(); } @@ -176,6 +234,18 @@ return _myCQ.getFamilyNameDesc(); } + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + protected ConditionValue getCValueEmail() { return _myCQ.getEmail(); } Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupMappingNss.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupMappingNss.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupMappingNss.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,50 @@ +package jp.sf.pal.timecard.db.cbean.nss; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleMappingNss.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleMappingNss.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleMappingNss.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,50 @@ +package jp.sf.pal.timecard.db.cbean.nss; + +import jp.sf.pal.timecard.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.timecard.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupMappingBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupMappingBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupMappingBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.timecard.db.bsbhv.BsGroupMappingBhv { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleMappingBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleMappingBhv.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleMappingBhv.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends + jp.sf.pal.timecard.db.bsbhv.BsRoleMappingBhv { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupMappingDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupMappingDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupMappingDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.timecard.db.bsdao.BsGroupMappingDao { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleMappingDao.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleMappingDao.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleMappingDao.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,15 @@ +package jp.sf.pal.timecard.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.timecard.db.bsdao.BsRoleMappingDao { +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupMapping.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupMapping.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupMapping.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,17 @@ +package jp.sf.pal.timecard.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends jp.sf.pal.timecard.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleMapping.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleMapping.java (rev 0) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleMapping.java 2008-11-13 06:31:44 UTC (rev 1343) @@ -0,0 +1,17 @@ +package jp.sf.pal.timecard.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.timecard.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.index.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Thu Nov 13 15:32:39 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 15:32:39 +0900 Subject: [pal-cvs 3609] [1344] updated dbflute and schema. Message-ID: <1226557959.930392.6791.nullmailer@users.sourceforge.jp> Revision: 1344 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1344 Author: shinsuke Date: 2008-11-13 15:32:39 +0900 (Thu, 13 Nov 2008) Log Message: ----------- updated dbflute and schema. Modified Paths: -------------- timecard/trunk/dbflute/_project.bat timecard/trunk/dbflute/_project.sh timecard/trunk/src/main/resources/dbflute.dicon -------------- next part -------------- Modified: timecard/trunk/dbflute/_project.bat =================================================================== --- timecard/trunk/dbflute/_project.bat 2008-11-13 06:31:44 UTC (rev 1343) +++ timecard/trunk/dbflute/_project.bat 2008-11-13 06:32:39 UTC (rev 1344) @@ -2,4 +2,4 @@ set MY_PROJECT_NAME=timecard -set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.1 +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Modified: timecard/trunk/dbflute/_project.sh =================================================================== --- timecard/trunk/dbflute/_project.sh 2008-11-13 06:31:44 UTC (rev 1343) +++ timecard/trunk/dbflute/_project.sh 2008-11-13 06:32:39 UTC (rev 1344) @@ -2,4 +2,4 @@ export MY_PROJECT_NAME=timecard -export DBFLUTE_HOME=../mydbflute/dbflute-0.8.1 +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Modified: timecard/trunk/src/main/resources/dbflute.dicon =================================================================== --- timecard/trunk/src/main/resources/dbflute.dicon 2008-11-13 06:31:44 UTC (rev 1343) +++ timecard/trunk/src/main/resources/dbflute.dicon 2008-11-13 06:32:39 UTC (rev 1344) @@ -24,6 +24,7 @@ + @@ -59,6 +60,12 @@ + + + dbflute.interceptor + + + dbflute.interceptor @@ -71,6 +78,12 @@ + + + dbflute.interceptor + + + dbflute.interceptor From svnnotify ¡÷ sourceforge.jp Thu Nov 13 15:58:15 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 15:58:15 +0900 Subject: [pal-cvs 3610] [1345] added userinfo tables. Message-ID: <1226559495.224899.31584.nullmailer@users.sourceforge.jp> Revision: 1345 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1345 Author: shinsuke Date: 2008-11-13 15:58:14 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added userinfo tables. Modified Paths: -------------- board/trunk/dbflute/_project.bat board/trunk/dbflute/_project.sh board/trunk/src/main/config/erd/board.erd board/trunk/src/main/config/sql/board.ddl board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/AccessContext.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/DBFluteConfig.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorReadable.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorWritable.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/load/LoadReferrerOption.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/setup/EntityListSetupper.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/AbstractConditionBean.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBean.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBeanContext.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ListResultBean.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingBean.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingInvoker.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingResultBean.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ResultBeanBuilder.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/SimplePagingBean.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingOption.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowResource.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowSetupper.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/AbstractSqlClause.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByClause.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByElement.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/SqlClause.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/AbstractDBMeta.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMeta.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMetaInstanceHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/character/impl/GeneralCharacterImpl.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/token/line/impl/LineTokenImpl.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/CursorHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoInterceptor.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoLatestSqlProvider.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataExtension.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsAttachmentBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryAccessBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageAttachmentBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageContentBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsReplyBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsAttachmentDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryAccessDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageAttachmentDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageContentDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsReplyDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsAttachment.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategory.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategoryAccess.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessage.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageAttachment.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageContent.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsReply.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/AttachmentDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryAccessDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageAttachmentDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageContentDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/ReplyDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsAttachmentCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryAccessCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageAttachmentCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageContentCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsReplyCQ.java board/trunk/src/main/resources/dbflute.dicon board/trunk/src/main/webapp/WEB-INF/db/board.data.db board/trunk/src/main/webapp/WEB-INF/db/board.index.db Added Paths: ----------- board/trunk/mydbflute/README.txt board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/CallbackContext.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractor.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameResult.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/impl/ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/SqlLogHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/valuetype/ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRowCreator.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupMappingBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleMappingBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupInfoDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupMappingDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleInfoDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleMappingDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsUserInfoDao.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupMapping.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleMapping.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupInfoDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupMappingDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleInfoDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleMappingDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupMappingCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleMappingCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/UserInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupMappingCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleMappingCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupMappingCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleMappingCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/UserInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupMappingCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleMappingCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupInfoCIQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupMappingCIQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleInfoCIQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleMappingCIQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupInfoNss.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupMappingNss.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleInfoNss.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleMappingNss.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/UserInfoNss.java board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupMappingBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleMappingBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/UserInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupInfoDao.java board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupMappingDao.java board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleInfoDao.java board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleMappingDao.java board/trunk/src/main/java/jp/sf/pal/board/db/exdao/UserInfoDao.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupMapping.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleMapping.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java Removed Paths: ------------- board/trunk/src/main/webapp/WEB-INF/db/board.1.log.db board/trunk/src/main/webapp/WEB-INF/db/board.trace.db -------------- next part -------------- Modified: board/trunk/dbflute/_project.bat =================================================================== --- board/trunk/dbflute/_project.bat 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/dbflute/_project.bat 2008-11-13 06:58:14 UTC (rev 1345) @@ -2,4 +2,4 @@ set MY_PROJECT_NAME=board -set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.0 +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Modified: board/trunk/dbflute/_project.sh =================================================================== --- board/trunk/dbflute/_project.sh 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/dbflute/_project.sh 2008-11-13 06:58:14 UTC (rev 1345) @@ -2,4 +2,4 @@ export MY_PROJECT_NAME=board -export DBFLUTE_HOME=../mydbflute/dbflute-0.8.0 +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Added: board/trunk/mydbflute/README.txt =================================================================== --- board/trunk/mydbflute/README.txt (rev 0) +++ board/trunk/mydbflute/README.txt 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: board/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/config/erd/board.erd =================================================================== --- board/trunk/src/main/config/erd/board.erd 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/config/erd/board.erd 2008-11-13 06:58:14 UTC (rev 1345) @@ -152,7 +152,7 @@ 452 - 757 + 871 -1 -1 @@ -1147,6 +1147,906 @@ + + + + user_info + User Information + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 1239 + 370 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 1094 + 871 + -1 + -1 + + + + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 1098 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 1418 + 871 + -1 + -1 + + + + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 1426 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + + + + 2 + + + + + + + + + + hsqldb @@ -1168,4 +2068,4 @@ - + \ No newline at end of file Modified: board/trunk/src/main/config/sql/board.ddl =================================================================== --- board/trunk/src/main/config/sql/board.ddl 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/config/sql/board.ddl 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,3 +1,8 @@ +DROP TABLE role_mapping; +DROP TABLE group_mapping; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; DROP TABLE message_content; DROP TABLE message_attachment; DROP TABLE reply; @@ -117,7 +122,96 @@ FOREIGN KEY (message_id) REFERENCES message (id) ); +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + + CREATE INDEX IDX_title_for_message ON message (title); CREATE INDEX IDX_content_for_message_content ON message_content (content); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/AccessContext.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/AccessContext.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/AccessContext.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -4,12 +4,7 @@ import java.util.Map; /** - * Access-Context. - *

    - * This access-context on the thread should be initialized at the beginning of - * access. The access is various. Web-Access, Batch-Access, JUnit-Access and so - * on... - *

    + * The context of DB access. * * @author DBFlute(AutoGenerator) */ @@ -20,28 +15,28 @@ // Thread Local // ============ /** The thread-local for this. */ - private static final ThreadLocal threadLocal = new ThreadLocal(); + private static final ThreadLocal _threadLocal = new ThreadLocal(); /** * Get access-context on thread. * - * @return Access-context. (Nullable) + * @return The context of DB access.. (Nullable) */ public static AccessContext getAccessContextOnThread() { - return (AccessContext) threadLocal.get(); + return (AccessContext) _threadLocal.get(); } /** * Set access-context on thread. * - * @param accessContext Access-context. (NotNull) + * @param accessContext The context of DB access.. (NotNull) */ public static void setAccessContextOnThread(AccessContext accessContext) { if (accessContext == null) { String msg = "The argument[accessContext] must not be null."; throw new IllegalArgumentException(msg); } - threadLocal.set(accessContext); + _threadLocal.set(accessContext); } /** @@ -50,14 +45,14 @@ * @return Determination. */ public static boolean isExistAccessContextOnThread() { - return (threadLocal.get() != null); + return (_threadLocal.get() != null); } /** * Clear access-context on thread. */ public static void clearAccessContextOnThread() { - threadLocal.set(null); + _threadLocal.set(null); } //========================================================================== Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/CallbackContext.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/CallbackContext.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/CallbackContext.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,75 @@ +package jp.sf.pal.board.db.allcommon; + +import jp.sf.pal.board.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/DBFluteConfig.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/DBFluteConfig.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/DBFluteConfig.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -32,6 +32,8 @@ protected boolean _executeStatusLogLevelInfo; + protected boolean _useSqlLogRegistry; + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; protected boolean _sqlExceptionOldStyleHandling = false;// This is for @@ -142,6 +144,23 @@ _executeStatusLogLevelInfo = executeStatusLogLevelInfo; } + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + // [DBFlute-0.7.7] //========================================================================== // ========= @@ -282,11 +301,12 @@ // ========= // Config Clear // ============ - public void clear() { + public void clear() { // the only properties that update OK while executing _defaultStatementConfig = null; - _conditionBeanFormatSql = true; + _conditionBeanFormatSql = true; // as default _queryLogLevelInfo = false; _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; _logDateFormat = null; _logTimestampFormat = null; _internalDebug = false; Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,15 +1,21 @@ package jp.sf.pal.board.db.allcommon.bhv; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import jp.sf.pal.board.db.allcommon.BehaviorSelector; import jp.sf.pal.board.db.allcommon.DaoSelector; import jp.sf.pal.board.db.allcommon.Entity; import jp.sf.pal.board.db.allcommon.bhv.batch.TokenFileOutputOption; import jp.sf.pal.board.db.allcommon.bhv.batch.TokenFileOutputResult; +import jp.sf.pal.board.db.allcommon.bhv.load.LoadReferrerOption; import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelBox; import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelSetupper; import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; @@ -26,6 +32,7 @@ import jp.sf.pal.board.db.allcommon.helper.token.file.FileMakingOption; import jp.sf.pal.board.db.allcommon.helper.token.file.FileMakingSimpleFacade; import jp.sf.pal.board.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.board.db.allcommon.util.SimpleSystemUtil; /** * The abstract class of behavior-readable. @@ -94,7 +101,7 @@ */ public Entity readEntity(ConditionBean cb) { assertConditionBeanNotNull(cb); - final java.util.List ls = readList(cb); + final List ls = readList(cb); if (ls.isEmpty()) { return null; } @@ -114,7 +121,7 @@ */ public Entity readEntityWithDeletedCheck(ConditionBean cb) { assertConditionBeanNotNull(cb); - final java.util.List ls = readList(cb); + final List ls = readList(cb); assertEntityNotDeleted(ls, cb); assertEntitySelectedAsOne(ls, cb); return (Entity) ls.get(0); @@ -124,12 +131,11 @@ // =========== // Entity Read Internal Helper // =========================== - protected ENTITY_TYPE helpSelectEntityInternally( - CB_TYPE cb, - InternalSelectEntityCallback callback) { + protected ENTITY helpSelectEntityInternally( + CB cb, InternalSelectEntityCallback callback) { assertConditionBeanNotNull(cb); cb.checkSafetyResult(1); - java.util.List ls = null; + List ls = null; try { ls = callback.callbackSelectList(cb); } catch (jp.sf.pal.board.db.allcommon.exception.DangerousResultSizeException e) { @@ -140,19 +146,19 @@ return null; } assertEntitySelectedAsOne(ls, cb); - return (ENTITY_TYPE) ls.get(0); + return (ENTITY) ls.get(0); } - protected static interface InternalSelectEntityCallback { - public java.util.List callbackSelectList(CB_TYPE cb); + protected static interface InternalSelectEntityCallback { + public List callbackSelectList(CB cb); } - protected ENTITY_TYPE helpSelectEntityWithDeletedCheckInternally( - CB_TYPE cb, - InternalSelectEntityWithDeletedCheckCallback callback) { + protected ENTITY helpSelectEntityWithDeletedCheckInternally( + CB cb, + InternalSelectEntityWithDeletedCheckCallback callback) { assertConditionBeanNotNull(cb); cb.checkSafetyResult(1); - java.util.List ls = null; + List ls = null; try { ls = callback.callbackSelectList(cb); } catch (jp.sf.pal.board.db.allcommon.exception.DangerousResultSizeException e) { @@ -161,11 +167,11 @@ } assertEntityNotDeleted(ls, cb); assertEntitySelectedAsOne(ls, cb); - return (ENTITY_TYPE) ls.get(0); + return (ENTITY) ls.get(0); } - protected static interface InternalSelectEntityWithDeletedCheckCallback { - public java.util.List callbackSelectList(CB_TYPE cb); + protected static interface InternalSelectEntityWithDeletedCheckCallback { + public List callbackSelectList(CB cb); } //========================================================================== @@ -233,8 +239,7 @@ * @param searchKey4Log Search-key for Logging. (NotNull) * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException */ - protected void assertEntityNotDeleted(java.util.List ls, - Object searchKey4Log) { + protected void assertEntityNotDeleted(List ls, Object searchKey4Log) { if (ls == null || ls.isEmpty()) { throwEntityAlreadyDeletedException(searchKey4Log); } @@ -248,8 +253,7 @@ * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException */ - protected void assertEntitySelectedAsOne(java.util.List ls, - Object searchKey4Log) { + protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) { if (ls == null || ls.isEmpty()) { throwEntityAlreadyDeletedException(searchKey4Log); } @@ -314,7 +318,7 @@ * @param valueLabelSetupper Value-label-setupper. (NotNull) * @return Value-label list. (NotNull) */ - public List> createValueLabelList( + public List> createValueLabelList( List entityList, ValueLabelSetupper valueLabelSetupper) { final List> valueLabelList = new ArrayList>(); @@ -340,8 +344,8 @@ */ public java.math.BigDecimal readNextVal() { try { - final java.lang.reflect.Method method = getClass().getMethod( - "selectNextVal", new Class[] {}); + final Method method = getClass().getMethod("selectNextVal", + new Class[] {}); Object sequenceObject = method.invoke(this, new Object[] {}); if (sequenceObject instanceof java.math.BigDecimal) { return (java.math.BigDecimal) sequenceObject; @@ -361,7 +365,7 @@ protected Object helpConvertingSequenceObject(Class resultClass, Object sequenceObject) { try { - final java.lang.reflect.Constructor constructor = resultClass + final Constructor constructor = resultClass .getConstructor(new Class[] { String.class }); return constructor.newInstance(new Object[] { sequenceObject .toString() }); @@ -372,8 +376,8 @@ + getTableDbName(), e); } try { - final java.lang.reflect.Method method = resultClass.getMethod( - "valueOf", new Class[] { long.class }); + final Method method = resultClass.getMethod("valueOf", + new Class[] { long.class }); return method.invoke(null, new Object[] { Long .valueOf(sequenceObject.toString()) }); } catch (NoSuchMethodException e) { @@ -393,102 +397,41 @@ // Load Referrer Internal Helper // ============================= /** - * @param The type of base entity. - * @param The type of primary key. - * @param The type of referrer condition-bean. - * @param The type of referrer entity. - * @param localEntityList The list of local entity. (NotNull) - * @param loadReferrerOption The option of loadReferrer. (NotNull) - * @param callback The internal call-back of loadReferrer. (NotNull) - */ - protected void helpLoadRefererInternally( - java.util.List localEntityList, - jp.sf.pal.board.db.allcommon.bhv.load.LoadRefererOption loadReferrerOption, - InternalLoadRefererCallback callback) { - doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, - callback); - }// Cannot deprecated because someone who overrides this method exists. - - /** - * Help load referrer internally.
    About internal policy, the value of + * Help load referrer internally. About internal policy, the value of * primary key(and others too) is treated as CaseInsensitive. * - * @param The type of base entity. - * @param The type of primary key. - * @param The type of referrer condition-bean. - * @param The type of referrer entity. + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. * @param localEntityList The list of local entity. (NotNull) * @param loadReferrerOption The option of loadReferrer. (NotNull) * @param callback The internal call-back of loadReferrer. (NotNull) */ - protected void helpLoadReferrerInternally( - java.util.List localEntityList, - jp.sf.pal.board.db.allcommon.bhv.load.LoadReferrerOption loadReferrerOption, - final InternalLoadReferrerCallback callback) { - final InternalLoadRefererCallback compatibleCallback = new InternalLoadRefererCallback() { - public PK_TYPE callbackBase_getPrimaryKeyValue( - LOCAL_ENTITY_TYPE entity) { - return callback.callbackBase_getPrimaryKeyValue(entity); - } - - public void callbackBase_setReferrerList(LOCAL_ENTITY_TYPE entity, - List referrerList) { - callback.callbackBase_setReferrerList(entity, referrerList); - } - - public PK_TYPE callbackReferrer_getForeignKeyValue( - REFERRER_ENTITY_TYPE entity) { - return callback.callbackReferrer_getForeignKeyValue(entity); - } - - public REFERRER_CB_TYPE callbackReferrer_newMyConditionBean() { - return callback.callbackReferrer_newMyConditionBean(); - } - - public void callbackReferrer_queryAddOrderByForeignKeyAsc( - REFERRER_CB_TYPE cb) { - callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb); - } - - public void callbackReferrer_queryForeignKeyInScope( - REFERRER_CB_TYPE cb, List pkList) { - callback.callbackReferrer_queryForeignKeyInScope(cb, pkList); - } - - public List callbackReferrer_selectList( - REFERRER_CB_TYPE cb) { - return callback.callbackReferrer_selectList(cb); - } - - public void callbackReferrer_setForeignEntity( - REFERRER_ENTITY_TYPE referrerEntity, - LOCAL_ENTITY_TYPE localEntity) { - callback.callbackReferrer_setForeignEntity(referrerEntity, - localEntity); - } - }; - helpLoadRefererInternally( - localEntityList, - new jp.sf.pal.board.db.allcommon.bhv.load.LoadRefererOption( - loadReferrerOption), compatibleCallback); + protected void helpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, + callback); } /** - * Help load referrer internally.
    About internal policy, the value of + * Do help load referrer internally. About internal policy, the value of * primary key(and others too) is treated as CaseInsensitive. * - * @param The type of base entity. - * @param The type of primary key. - * @param The type of referrer condition-bean. - * @param The type of referrer entity. + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. * @param localEntityList The list of local entity. (NotNull) * @param loadReferrerOption The option of loadReferrer. (NotNull) * @param callback The internal call-back of loadReferrer. (NotNull) */ - protected void doHelpLoadReferrerInternally( - java.util.List localEntityList, - jp.sf.pal.board.db.allcommon.bhv.load.LoadReferrerOption loadReferrerOption, - InternalLoadReferrerCallback callback) { + protected void doHelpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { // - - - - - - - - - - - // Assert pre-condition @@ -503,20 +446,21 @@ // - - - - - - - - - - - - - - // Prepare temporary container // - - - - - - - - - - - - - - - final java.util.Map pkBaseEntityMap = new java.util.LinkedHashMap(); - final java.util.List pkList = new java.util.ArrayList(); - for (LOCAL_ENTITY_TYPE localEntity : localEntityList) { - final PK_TYPE primaryKeyValue = callback + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK primaryKeyValue = callback .callbackBase_getPrimaryKeyValue(localEntity); pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); - pkBaseEntityMap.put(toLowerCasePrimaryKeyIfString(primaryKeyValue), - localEntity); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); } // - - - - - - - - - - - - - - - - // Prepare referrer condition bean // - - - - - - - - - - - - - - - - - final REFERRER_CB_TYPE cb; + final REFERRER_CB cb; if (loadReferrerOption.getReferrerConditionBean() != null) { cb = loadReferrerOption.getReferrerConditionBean(); } else { @@ -535,29 +479,29 @@ .exchangeFirstOrderByElementForLastOne(); } loadReferrerOption.delegateConditionBeanSettingUp(cb); - final java.util.List referrerList = callback + final List referrerList = callback .callbackReferrer_selectList(cb); loadReferrerOption.delegateEntitySettingUp(referrerList); // - - - - - - - - - - - - - - - - - - - - - - - - // Create the map of {primary key / referrer list} // - - - - - - - - - - - - - - - - - - - - - - - - - final java.util.Map> pkReffererListMap = new java.util.LinkedHashMap>(); - for (REFERRER_ENTITY_TYPE referrerEntity : referrerList) { - final PK_TYPE referrerListKey; + final Map> pkReferrerListMap = new LinkedHashMap>(); + for (REFERRER_ENTITY referrerEntity : referrerList) { + final PK referrerListKey; { - final PK_TYPE foreignKeyValue = callback + final PK foreignKeyValue = callback .callbackReferrer_getForeignKeyValue(referrerEntity); referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); } - if (!pkReffererListMap.containsKey(referrerListKey)) { - pkReffererListMap.put(referrerListKey, - new java.util.ArrayList()); + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); } - (pkReffererListMap.get(referrerListKey)).add(referrerEntity); + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); // for Reverse Reference. - final LOCAL_ENTITY_TYPE localEntity = pkBaseEntityMap + final LOCAL_ENTITY localEntity = pkLocalEntityMap .get(referrerListKey); callback.callbackReferrer_setForeignEntity(referrerEntity, localEntity); @@ -566,19 +510,19 @@ // - - - - - - - - - - - - - - - - - - // Relate referrer list to base entity // - - - - - - - - - - - - - - - - - - - for (LOCAL_ENTITY_TYPE localEntity : localEntityList) { - final PK_TYPE referrerListKey; + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK referrerListKey; { - final PK_TYPE primaryKey = callback + final PK primaryKey = callback .callbackBase_getPrimaryKeyValue(localEntity); referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); } - if (pkReffererListMap.containsKey(referrerListKey)) { + if (pkReferrerListMap.containsKey(referrerListKey)) { callback.callbackBase_setReferrerList(localEntity, - pkReffererListMap.get(referrerListKey)); + pkReferrerListMap.get(referrerListKey)); } else { callback.callbackBase_setReferrerList(localEntity, - new java.util.ArrayList()); + new ArrayList()); } } } @@ -586,58 +530,49 @@ /** * To lower case for primary key if the value is string. * - * @param The type of primary key. + * @param The type of primary key. * @param value The value of primary key. (Nullable) * @return The value of primary key. (Nullable) */ - protected PK_TYPE toLowerCasePrimaryKeyIfString(PK_TYPE value) { - return (PK_TYPE) toLowerCaseIfString(value); + protected PK toLowerCasePrimaryKeyIfString(PK value) { + return (PK) toLowerCaseIfString(value); } /** - * @param The type of base entity. - * @param The type of primary key. - * @param The type of referrer condition-bean. - * @param The type of referrer entity. + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer conditionBean. + * @param The type of referrer entity. */ - protected static interface InternalLoadRefererCallback - extends - InternalLoadReferrerCallback { - } - - /** - * @param The type of base entity. - * @param The type of primary key. - * @param The type of referrer conditionBean. - * @param The type of referrer entity. - */ - protected static interface InternalLoadReferrerCallback { + protected static interface InternalLoadReferrerCallback { // For Base - public PK_TYPE callbackBase_getPrimaryKeyValue(LOCAL_ENTITY_TYPE entity); + public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity); - public void callbackBase_setReferrerList(LOCAL_ENTITY_TYPE entity, - java.util.List referrerList); + public void callbackBase_setReferrerList(LOCAL_ENTITY entity, + List referrerList); // For Referrer - public REFERRER_CB_TYPE callbackReferrer_newMyConditionBean(); + public REFERRER_CB callbackReferrer_newMyConditionBean(); - public void callbackReferrer_queryForeignKeyInScope( - REFERRER_CB_TYPE cb, java.util.List pkList); + public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, + List pkList); - public void callbackReferrer_queryAddOrderByForeignKeyAsc( - REFERRER_CB_TYPE cb); + public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb); - public java.util.List callbackReferrer_selectList( - REFERRER_CB_TYPE cb); + public List callbackReferrer_selectList(REFERRER_CB cb); - public PK_TYPE callbackReferrer_getForeignKeyValue( - REFERRER_ENTITY_TYPE entity); + public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity); public void callbackReferrer_setForeignEntity( - REFERRER_ENTITY_TYPE referrerEntity, - LOCAL_ENTITY_TYPE localEntity); + REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); } + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + private void assertBehaviorSelectorNotNull(String methodName) { if (_behaviorSelector == null) { String msg = "Look! Read the message below." + getLineSeparator(); @@ -669,25 +604,24 @@ // ========= // Pullout Internal Helper // ======================= - protected java.util.List helpPulloutInternally( - java.util.List localEntityList, - InternalPulloutCallback callback) { + protected List helpPulloutInternally( + List localEntityList, + InternalPulloutCallback callback) { assertObjectNotNull("localEntityList", localEntityList); - final java.util.Set foreignSet = new java.util.LinkedHashSet(); - for (LOCAL_ENTITY_TYPE entity : localEntityList) { - final FOREIGN_ENTITY_TYPE foreignEntity = callback + final Set foreignSet = new LinkedHashSet(); + for (LOCAL_ENTITY entity : localEntityList) { + final FOREIGN_ENTITY foreignEntity = callback .callbackGetForeignEntity(entity); if (foreignEntity == null || foreignSet.contains(foreignEntity)) { continue; } foreignSet.add(foreignEntity); } - return new java.util.ArrayList(foreignSet); + return new ArrayList(foreignSet); } - protected static interface InternalPulloutCallback { - public FOREIGN_ENTITY_TYPE callbackGetForeignEntity( - LOCAL_ENTITY_TYPE entity); + protected static interface InternalPulloutCallback { + public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity); } //========================================================================== @@ -700,7 +634,6 @@ } public class TokenFileOutputExecutor { - /** * Output token-file from this table records. * @@ -719,11 +652,11 @@ assertStringNotNullAndNotTrimmedEmpty("filename", filename); assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption); - final java.util.List ls = readList(cb); - java.util.List> rowList = new java.util.ArrayList>(); + final List ls = readList(cb); + List> rowList = new ArrayList>(); for (java.util.Iterator ite = ls.iterator(); ite.hasNext();) { final Entity entity = (Entity) ite.next(); - final java.util.List valueList = getDBMeta() + final List valueList = getDBMeta() .convertToColumnStringValueList(entity); rowList.add(valueList); } @@ -731,7 +664,7 @@ final FileMakingOption fileMakingOption = tokenFileOutputOption .getFileMakingOption(); final FileMakingHeaderInfo fileMakingHeaderInfo = new FileMakingHeaderInfo(); - final java.util.List columnDbNameList = new java.util.ArrayList(); + final List columnDbNameList = new ArrayList(); for (final java.util.Iterator ite = getDBMeta().getColumnInfoList() .iterator(); ite.hasNext();) { final ColumnInfo columnInfo = (ColumnInfo) ite.next(); @@ -757,10 +690,7 @@ * @return All count. */ protected int callGetCountAll() { - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "getCountAll", new Class[] {}); - final Object result = invoke(mtd, getDaoReadable(), new Object[] {}); - return ((Integer) result).intValue(); + return readCount(newConditionBean()); } /** @@ -768,11 +698,8 @@ * * @return All list. (NotNull) */ - protected java.util.List callGetListAll() { - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "getListAll", new Class[] {}); - final Object result = invoke(mtd, getDaoReadable(), new Object[] {}); - return (java.util.List) result; + protected List callGetListAll() { + return readList(newConditionBean()); } /** @@ -799,17 +726,16 @@ * @return Read list. If the select result is zero, it returns empty list. * (NotNull) */ - protected java.util.List callReadList(ConditionBean cb) { + protected List callReadList(ConditionBean cb) { assertConditionBeanNotNull(cb); final Class[] types = new Class[] { cb.getClass() }; - final java.lang.reflect.Method mtd = getMethod(getDaoReadable() - .getClass(), "selectList", types); + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); - return (java.util.List) result; + return (List) result; } - private java.lang.reflect.Method getMethod(Class clazz, String methodName, - Class[] argTypes) { + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { try { return clazz.getMethod(methodName, argTypes); } catch (NoSuchMethodException ex) { @@ -819,8 +745,7 @@ } } - private Object invoke(java.lang.reflect.Method method, Object target, - Object[] args) { + private Object invoke(Method method, Object target, Object[] args) { try { return method.invoke(target, args); } catch (java.lang.reflect.InvocationTargetException ex) { @@ -851,8 +776,8 @@ //========================================================================== // ========= - // Helper - // ====== + // General Helper + // ============== /** * To lower case if the type is String. * @@ -872,15 +797,15 @@ * @return The value of line separator. (NotNull) */ protected String getLineSeparator() { - return System.getProperty("line.separator"); + return SimpleSystemUtil.getLineSeparator(); } - protected ENTITY_TYPE helpDowncastInternally( - Entity entity, Class clazz) { + protected ENTITY helpDowncastInternally( + Entity entity, Class clazz) { assertObjectNotNull("entity", entity); assertObjectNotNull("clazz", clazz); try { - return (ENTITY_TYPE) entity; + return (ENTITY) entity; } catch (ClassCastException e) { String msg = "The entity should be " + clazz.getSimpleName() + " but it was: " + entity.getClass(); @@ -971,7 +896,7 @@ * * @param ls List. (NotNull) */ - protected void assertListNotNullAndEmpty(java.util.List ls) { + protected void assertListNotNullAndEmpty(List ls) { assertObjectNotNull("ls", ls); if (!ls.isEmpty()) { String msg = "The list should be empty: ls=" + ls.toString(); @@ -984,7 +909,7 @@ * * @param ls List. (NotNull) */ - protected void assertListNotNullAndNotEmpty(java.util.List ls) { + protected void assertListNotNullAndNotEmpty(List ls) { assertObjectNotNull("ls", ls); if (ls.isEmpty()) { String msg = "The list should not be empty: ls=" + ls.toString(); @@ -997,7 +922,7 @@ * * @param ls List. (NotNull) */ - protected void assertListNotNullAndHasOnlyOne(java.util.List ls) { + protected void assertListNotNullAndHasOnlyOne(List ls) { assertObjectNotNull("ls", ls); if (ls.size() != 1) { String msg = "The list should contain only one object: ls=" Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorWritable.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -163,8 +163,8 @@ // ----------------------------------------------------- // Update // ------ - protected void helpUpdateInternally( - ENTITY_TYPE entity, InternalUpdateCallback callback) { + protected void helpUpdateInternally(ENTITY entity, + InternalUpdateCallback callback) { assertEntityNotNull(entity); assertEntityHasVersionNoValue(entity); assertEntityHasUpdateDateValue(entity); @@ -183,13 +183,12 @@ } } - protected static interface InternalUpdateCallback { - public int callbackDelegateUpdate(ENTITY_TYPE entity); + protected static interface InternalUpdateCallback { + public int callbackDelegateUpdate(ENTITY entity); } - protected void helpUpdateNonstrictInternally( - ENTITY_TYPE entity, - InternalUpdateNonstrictCallback callback) { + protected void helpUpdateNonstrictInternally( + ENTITY entity, InternalUpdateNonstrictCallback callback) { assertEntityNotNull(entity); final int updatedCount = callback .callbackDelegateUpdateNonstrict(entity); @@ -205,16 +204,16 @@ } } - protected static interface InternalUpdateNonstrictCallback { - public int callbackDelegateUpdateNonstrict(ENTITY_TYPE entity); + protected static interface InternalUpdateNonstrictCallback { + public int callbackDelegateUpdateNonstrict(ENTITY entity); } // ----------------------------------------------------- // InsertOrUpdate // -------------- - protected void helpInsertOrUpdateInternally( - ENTITY_TYPE entity, - InternalInsertOrUpdateCallback callback) { + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateCallback callback) { assertEntityNotNull(entity); if (!entity.hasPrimaryKeyValue()) { callback.callbackInsert(entity); @@ -244,19 +243,19 @@ } } - protected static interface InternalInsertOrUpdateCallback { - public void callbackInsert(ENTITY_TYPE entity); + protected static interface InternalInsertOrUpdateCallback { + public void callbackInsert(ENTITY entity); - public void callbackUpdate(ENTITY_TYPE entity); + public void callbackUpdate(ENTITY entity); public CB_TYPE callbackNewMyConditionBean(); public int callbackSelectCount(CB_TYPE cb); } - protected void helpInsertOrUpdateInternally( - ENTITY_TYPE entity, - InternalInsertOrUpdateNonstrictCallback callback) { + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateNonstrictCallback callback) { assertEntityNotNull(entity); if (!entity.hasPrimaryKeyValue()) { callback.callbackInsert(entity); @@ -271,17 +270,17 @@ } } - protected static interface InternalInsertOrUpdateNonstrictCallback { - public void callbackInsert(ENTITY_TYPE entity); + protected static interface InternalInsertOrUpdateNonstrictCallback { + public void callbackInsert(ENTITY entity); - public void callbackUpdateNonstrict(ENTITY_TYPE entity); + public void callbackUpdateNonstrict(ENTITY entity); } // ----------------------------------------------------- // Delete // ------ - protected void helpDeleteInternally( - ENTITY_TYPE entity, InternalDeleteCallback callback) { + protected void helpDeleteInternally(ENTITY entity, + InternalDeleteCallback callback) { assertEntityNotNull(entity); assertEntityHasVersionNoValue(entity); assertEntityHasUpdateDateValue(entity); @@ -300,13 +299,12 @@ } } - protected static interface InternalDeleteCallback { - public int callbackDelegateDelete(ENTITY_TYPE entity); + protected static interface InternalDeleteCallback { + public int callbackDelegateDelete(ENTITY entity); } - protected void helpDeleteNonstrictInternally( - ENTITY_TYPE entity, - InternalDeleteNonstrictCallback callback) { + protected void helpDeleteNonstrictInternally( + ENTITY entity, InternalDeleteNonstrictCallback callback) { assertEntityNotNull(entity); final int deletedCount = callback .callbackDelegateDeleteNonstrict(entity); @@ -324,13 +322,13 @@ } } - protected static interface InternalDeleteNonstrictCallback { - public int callbackDelegateDeleteNonstrict(ENTITY_TYPE entity); + protected static interface InternalDeleteNonstrictCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); } - protected void helpDeleteNonstrictIgnoreDeletedInternally( - ENTITY_TYPE entity, - InternalDeleteNonstrictIgnoreDeletedCallback callback) { + protected void helpDeleteNonstrictIgnoreDeletedInternally( + ENTITY entity, + InternalDeleteNonstrictIgnoreDeletedCallback callback) { assertEntityNotNull(entity); final int deletedCount = callback .callbackDelegateDeleteNonstrict(entity); @@ -345,8 +343,8 @@ } } - protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { - public int callbackDelegateDeleteNonstrict(ENTITY_TYPE entity); + protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); } //========================================================================== Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.allcommon.bhv.load; +import java.util.List; + import jp.sf.pal.board.db.allcommon.Entity; import jp.sf.pal.board.db.allcommon.bhv.setup.ConditionBeanSetupper; import jp.sf.pal.board.db.allcommon.bhv.setup.EntityListSetupper; @@ -97,8 +99,7 @@ } } - public void delegateEntitySettingUp( - java.util.List entityList) {// Internal + public void delegateEntitySettingUp(List entityList) {// Internal if (_entityListSetupper != null) { _entityListSetupper.setup(entityList); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.allcommon.bhv.setup; +import java.util.List; + import jp.sf.pal.board.db.allcommon.Entity; /** @@ -11,9 +13,9 @@ public interface EntityListSetupper { /** - * Set up entity list. + * Set up the list of entity. * - * @param entityList Entity list. (NotNull) + * @param entityList The list of entity. (NotNull) */ - public void setup(java.util.List entityList); + public void setup(List entityList); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/AbstractConditionBean.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/AbstractConditionBean.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -186,6 +186,19 @@ throw new UnsupportedOperationException(msg); } + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + // ----------------------------------------------------- // Paging Setting // -------------- @@ -1024,23 +1037,6 @@ //========================================================================== // ========= - // Format SQL - // ========== - /** @deprecated Sorry! ConditionBean must be formatted as default. */ - public void formatSql() { - getSqlClause().makeFormatClauseEffective(); - } - - /** - * @return Is the SQL formatted? - * @deprecated Sorry! ConditionBean must be formatted as default. - */ - public boolean isFormatSql() { - return getSqlClause().isFormatClauseEffective(); - } - - //========================================================================== - // ========= // Assist Helper // ============= protected void doSetupSelect(SsCall callback) { Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBean.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBean.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBean.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -135,7 +135,8 @@ // Limit Select // ============ /** - * Limit select PK only. + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). * * @return this. (NotNull) */ @@ -214,19 +215,6 @@ //========================================================================== // ========= - // Format SQL - // ========== - /** @deprecated Sorry! ConditionBean must be formatted as default. */ - public void formatSql(); - - /** - * @return Is the SQL formatted? - * @deprecated Sorry! ConditionBean must be formatted as default. - */ - public boolean isFormatSql(); - - //========================================================================== - // ========= // Display SQL // =========== /** Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBeanContext.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ConditionBeanContext.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -21,7 +21,7 @@ import org.apache.commons.logging.LogFactory; /** - * Condition-Bean context. + * The context of condition-bean. * * @author DBFlute(AutoGenerator) */ @@ -95,7 +95,9 @@ } } { - Class clazz = jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption.class; + Class clazz = jp.sf.pal.board.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.board.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption.class; clazz = jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption.class; clazz = jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption.class; clazz = jp.sf.pal.board.db.allcommon.cbean.grouping.GroupingOption.class; @@ -308,7 +310,7 @@ msg = msg + getLineSeparator(); if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { final ConditionBean cb = (ConditionBean) searchKey4Log; - msg = msg + "[Executed SQL for Display]" + getLineSeparator() + msg = msg + "[Display SQL]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator(); } else { msg = msg + "[Search Condition]" + getLineSeparator() @@ -339,7 +341,7 @@ msg = msg + getLineSeparator(); if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { final ConditionBean cb = (ConditionBean) searchKey4Log; - msg = msg + "[Executed SQL for Display]" + getLineSeparator() + msg = msg + "[Display SQL]" + getLineSeparator() + cb.toDisplaySql() + getLineSeparator(); } else { msg = msg + "[Search Condition]" + getLineSeparator() Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ListResultBean.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ListResultBean.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ListResultBean.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,7 +1,11 @@ package jp.sf.pal.board.db.allcommon.cbean; +import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; import java.util.List; +import java.util.ListIterator; import jp.sf.pal.board.db.allcommon.cbean.grouping.GroupingOption; import jp.sf.pal.board.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; @@ -11,13 +15,12 @@ import jp.sf.pal.board.db.allcommon.cbean.sqlclause.OrderByClause; /** - * The list-result-bean for ListResultBean. + * The result bean for list. * * @param The type of entity for the element of selected list. * @author DBFlute(AutoGenerator) */ -public class ListResultBean implements List, - java.io.Serializable { +public class ListResultBean implements List, Serializable { //========================================================================== // ========= @@ -30,16 +33,19 @@ // ========= // Attribute // ========= - /** The value of table db-name. */ + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ protected String _tableDbName; /** The value of all record count. */ protected int _allRecordCount; - /** Selected list. */ - protected List _selectedList = new java.util.ArrayList(); + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); - /** Order-by clause. */ + /** The clause of order-by. (NotNull) */ protected OrderByClause _orderByClause = new OrderByClause(); //========================================================================== @@ -56,6 +62,15 @@ // ========= // Grouping // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ public List groupingList( GroupingRowSetupper groupingRowSetupper, GroupingOption groupingOption) { @@ -64,23 +79,25 @@ .getGroupingRowEndDeterminer(); if (rowEndDeterminer == null) { rowEndDeterminer = new GroupingRowEndDeterminer() { - public boolean determine(int columnIndex, int columnCount, + public boolean determine( GroupingRowResource rowResource, ENTITY nextEntity) { - return columnIndex == (columnCount - 1); + return rowResource.isSizeUpBreakCount(); } - };// as Default + }; // as Default } GroupingRowResource rowResource = new GroupingRowResource(); - int columnCount = groupingOption.getColumnCount(); - int columnIndex = 0; - int rowIndex = 0; + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; for (ENTITY entity : _selectedList) { // Set up row resource. rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); - if (_selectedList.size() == (rowIndex + 1)) {// Last Loop! - // Callback! + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! final ROW groupingRowObject = groupingRowSetupper .setup(rowResource); @@ -89,15 +106,15 @@ break; } - ENTITY nextElement = null; - if (_selectedList.size() > (rowIndex + 1)) { - nextElement = _selectedList.get(rowIndex); - } + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); // Do at row end. - if (rowEndDeterminer.determine(columnIndex, columnCount, - rowResource, nextElement)) { - // Callback! + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! final ROW groupingRowObject = groupingRowSetupper .setup(rowResource); @@ -106,12 +123,12 @@ // Initialize! rowResource = new GroupingRowResource(); - columnIndex = 0; - ++rowIndex; + rowElementIndex = 0; + ++allElementIndex; continue; } - ++columnIndex; - ++rowIndex; + ++rowElementIndex; + ++allElementIndex; } return groupingList; } @@ -139,7 +156,7 @@ /** * Has this result selected? * - * @return Determination. + * @return Determination. {Whether table DB name is not null} */ public boolean isSelectedResult() { return _tableDbName != null; @@ -182,12 +199,13 @@ @Override public String toString() { final StringBuilder sb = new StringBuilder(); - - sb.append(" tableDbName=").append(_tableDbName); - sb.append(" allRecordCount=").append(_allRecordCount); - sb.append(" selectedList.size()=").append(_selectedList.size()); - sb.append(" orderByClause=").append(_orderByClause); - + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); return sb.toString(); } @@ -199,7 +217,7 @@ return _selectedList.add(o); } - public boolean addAll(java.util.Collection c) { + public boolean addAll(Collection c) { return _selectedList.addAll(c); } @@ -211,7 +229,7 @@ return _selectedList.contains(o); } - public boolean containsAll(java.util.Collection c) { + public boolean containsAll(Collection c) { return _selectedList.containsAll(c); } @@ -219,7 +237,7 @@ return _selectedList.isEmpty(); } - public java.util.Iterator iterator() { + public Iterator iterator() { return _selectedList.iterator(); } @@ -227,11 +245,11 @@ return _selectedList.remove(o); } - public boolean removeAll(java.util.Collection c) { + public boolean removeAll(Collection c) { return _selectedList.removeAll(c); } - public boolean retainAll(java.util.Collection c) { + public boolean retainAll(Collection c) { return _selectedList.retainAll(c); } @@ -251,7 +269,7 @@ _selectedList.add(index, element); } - public boolean addAll(int index, java.util.Collection c) { + public boolean addAll(int index, Collection c) { return _selectedList.addAll(index, c); } @@ -267,11 +285,11 @@ return _selectedList.lastIndexOf(o); } - public java.util.ListIterator listIterator() { + public ListIterator listIterator() { return _selectedList.listIterator(); } - public java.util.ListIterator listIterator(int index) { + public ListIterator listIterator(int index) { return _selectedList.listIterator(index); } @@ -283,7 +301,7 @@ return _selectedList.set(index, element); } - public java.util.List subList(int fromIndex, int toIndex) { + public List subList(int fromIndex, int toIndex) { return _selectedList.subList(fromIndex, toIndex); } @@ -331,8 +349,7 @@ /** * Get the value of selectedList. * - * @return Selected list. (Nullable: If it's null, it means 'Not Selected - * Yet'.) + * @return Selected list. (NotNull) */ public List getSelectedList() { return _selectedList; @@ -341,17 +358,20 @@ /** * Set the value of selectedList. * - * @param selectedList Selected list. (NotNull) + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) */ public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list _selectedList = selectedList; } /** * Get the value of orderByClause. * - * @return The value of orderByClause. (Nullable: If it's null, it means - * 'Not Selected Yet'.) + * @return The value of orderByClause. (NotNull) */ public OrderByClause getOrderByClause() { return _orderByClause; @@ -360,9 +380,13 @@ /** * Set the value of orderByClause. * - * @param orderByClause The value of orderByClause. (NotNull) + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) */ public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list _orderByClause = orderByClause; } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingBean.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingBean.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingBean.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -21,6 +21,16 @@ */ public boolean isPaging(); + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * Is the count executed later? + * + * @return Determination. + */ + public boolean isCountLater(); + //========================================================================== // ========= // Paging Setting @@ -47,7 +57,7 @@ // ============= /** * Fetch first.
    If you invoke this, your SQL returns [fetch-size] - * records from first.
    + * records from first. * * @param fetchSize The size of fetch. (NotMinus & NotZero) * @return this. (NotNull) @@ -56,7 +66,7 @@ /** * Fetch scope.
    If you invoke this, your SQL returns [fetch-size] - * records from [fetch-start-index].
    + * records from [fetch-start-index]. * * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus) * @param fetchSize The size of fetch. (NotMinus & NotZero) @@ -69,8 +79,7 @@ * invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
    But you * also can use default-fetch-size without invoking 'fetchFirst()' or * 'fetchScope()'.
    If you invoke this, your SQL returns [fetch-size] - * records from [fetch-start-index] calculated by [fetch-page-number].
    + * records from [fetch-start-index] calculated by [fetch-page-number]. * * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & * NotZero: If minus or zero, set one.) Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.allcommon.cbean; +import java.util.List; + /** * The handler of paging. * @@ -27,5 +29,5 @@ * * @return The list of entity. (NotNull) */ - public java.util.List paging(); + public List paging(); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingInvoker.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingInvoker.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingInvoker.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.allcommon.cbean; +import java.util.List; + /** * The invoker of paging. * @@ -14,6 +16,8 @@ // ========= protected String _tableDbName; + protected boolean _countLater; + //========================================================================== // ========= // Constructor @@ -43,8 +47,15 @@ msg = msg + " The paging bean is: " + pagingBean; throw new IllegalStateException(msg); } - final int allRecordCount = handler.count(); - final java.util.List selectedList = handler.paging(); + final int allRecordCount; + final List selectedList; + if (_countLater) { + selectedList = handler.paging(); + allRecordCount = handler.count(); + } else { + allRecordCount = handler.count(); + selectedList = handler.paging(); + } final PagingResultBean rb = new ResultBeanBuilder( _tableDbName).buildPagingResultBean(pagingBean, allRecordCount, selectedList); @@ -72,6 +83,15 @@ //========================================================================== // ========= + // Option + // ====== + public PagingInvoker countLater() { + _countLater = true; + return this; + } + + //========================================================================== + // ========= // Helper // ====== /** Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingResultBean.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingResultBean.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/PagingResultBean.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -7,7 +7,7 @@ import jp.sf.pal.board.db.allcommon.cbean.pagenavi.range.PageRangeOption; /** - * The paging-result-bean for specified entity. + * The result bean of paging. * * @param The type of entity for the element of selected list. * @author DBFlute(AutoGenerator) @@ -309,18 +309,27 @@ @Override public String toString() { final StringBuilder sb = new StringBuilder(); - - sb.append(getCurrentPageNumber()).append("/").append(getAllPageCount()); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); sb.append(" of ").append(getAllRecordCount()); - sb.append(" listSize=").append( - getSelectedList() != null ? new Integer(getSelectedList() + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() .size()) : null); - sb.append(" pageSize=").append(getPageSize()); - sb.append(" page:{").append(isExistPrePage()).append("/").append( - isExistNextPage()).append("}"); - sb.append(" groupSize=").append(getPageGroupSize()); - sb.append(" rangeSize=").append(getPageRangeSize()); - + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); return sb.toString(); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -3,7 +3,7 @@ import java.util.List; /** - * The list-result-bean for ${myClassName}. + * The builder of result bean. * * @param The type of entity. * @author DBFlute(AutoGenerator) @@ -29,24 +29,38 @@ // Builder // ======= /** - * Build the result bean of list. + * Build the result bean of list without order-by clause. {for Various} * - * @param ob The bean of orderBy. (NotNull) * @param selectedList Selected list. (NotNull) * @return The result bean of list. (NotNull) */ - public ListResultBean buildListResultBean(ConditionBean ob, + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, List selectedList) { ListResultBean rb = new ListResultBean(); rb.setTableDbName(_tableDbName); rb.setAllRecordCount(selectedList.size()); rb.setSelectedList(selectedList); - rb.setOrderByClause(ob.getSqlComponentOfOrderByClause()); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); return rb; } /** - * Build the result bean of paging. + * Build the result bean of paging. {for Paging} * * @param pb The bean of paging. (NotNull) * @param allRecordCount All record count. Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/SimplePagingBean.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/SimplePagingBean.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/SimplePagingBean.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -32,6 +32,9 @@ /** Is the execution for paging(NOT count)? */ protected boolean _paging = true; + /** Is the count executed later? */ + protected boolean _countLater; + /** Is fetch narrowing valid? */ protected boolean _fetchNarrowing = true; @@ -57,6 +60,18 @@ return _paging; } + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + return _countLater; + } + // ----------------------------------------------------- // Paging Setting // -------------- @@ -90,12 +105,8 @@ // Fetch Setting // ------------- /** - * Fetch first. + * The implementation. * - *
    -     * If you invoke this, your SQL returns [fetch-size] records from first.
    -     * 
    - * * @param fetchSize Fetch-size. (NotMinus & NotZero) * @return this. (NotNull) */ @@ -105,12 +116,8 @@ } /** - * Fetch scope. + * The implementation. * - *
    -     * If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index].
    -     * 
    - * * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) * @param fetchSize Fetch-size. (NotMinus & NotZero) * @return this. (NotNull) @@ -121,14 +128,8 @@ } /** - * Fetch page. + * The implementation. * - *
    -     * When you invoke this, it is normally necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
    -     *  But you also can use default-fetch-size without invoking 'fetchFirst()' or 'fetchScope()'.
    -     *  If you invoke this, your SQL returns [fetch-size] records from [fetch-start-index] calculated by [fetch-page-number].
    -     * 
    - * * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: * If minus or zero, set one.) * @return this. (NotNull) Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,7 +1,7 @@ package jp.sf.pal.board.db.allcommon.cbean.grouping; /** - * The class of option for grouping making. + * The class of option for grouping. * * @param The type of entity. * @author DBFlute(AutoGenerator) @@ -12,7 +12,7 @@ // =========== // Attribute // ========= - protected int _columnCount; + protected int _elementCount; protected GroupingRowEndDeterminer _groupingRowEndDeterminer; @@ -20,21 +20,28 @@ // =========== // Constructor // =========== - public GroupingOption(int columnCount) { - _columnCount = columnCount; + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { } - //========================================================================== - // =========== - // Easy-to-Use - // =========== + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } //========================================================================== // =========== // Accessor // ======== - public int getColumnCount() { - return this._columnCount; + public int getElementCount() { + return this._elementCount; } public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,13 +1,24 @@ package jp.sf.pal.board.db.allcommon.cbean.grouping; /** - * The interface of grouping switch point determiner. + * The interface of grouping end(switch point) determiner. * * @param The type of entity. * @author DBFlute(AutoGenerator) */ public interface GroupingRowEndDeterminer { - public boolean determine(int columnIndex, int columnCount, - GroupingRowResource rowResource, ENTITY nextEntity); + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,5 +1,8 @@ package jp.sf.pal.board.db.allcommon.cbean.grouping; +import java.util.ArrayList; +import java.util.List; + /** * The class of row resource for grouping making. * @@ -12,22 +15,79 @@ // =========== // Attribute // ========= - protected java.util.List _groupingRowList = new java.util.ArrayList(); + protected List _groupingRowList = new ArrayList(); + protected int _elementCurrentIndex; + + protected int _breakCount; + //========================================================================== // =========== // Easy-to-Use // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } //========================================================================== // =========== // Accessor // ======== - public java.util.List getGroupingRowList() { + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { return this._groupingRowList; } + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ public void addGroupingRowList(ENTITY groupingRow) { this._groupingRowList.add(groupingRow); } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,7 +1,7 @@ package jp.sf.pal.board.db.allcommon.cbean.grouping; /** - * The interface of grouping row setupper. + * The setupper of grouping row. * * @param The type of row. * @param The type of entity. @@ -10,10 +10,10 @@ public interface GroupingRowSetupper { /** - * Set up grouping row object. + * Set up the instance of grouping row. * * @param groupingRowResource Grouping row resource. (NotNull) - * @return Grouping row object. (NotNull) + * @return The instance of grouping row. (NotNull) */ public ROW setup(GroupingRowResource groupingRowResource); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -2,6 +2,8 @@ import java.util.List; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlDao; import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlOption; import jp.sf.pal.board.db.allcommon.cbean.outsidesql.ProcedurePmb; @@ -76,14 +78,16 @@ * @param pmb The parameter-bean. Allowed types are Bean object and Map * object. (Nullable) * @param entityType The element type of entity. (NotNull) - * @return The list of selected entity. (NotNull) + * @return The result bean of selected list. (NotNull) * @exception jp.sf.pal.board.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. */ - public List selectList(String path, Object pmb, + public ListResultBean selectList(String path, Object pmb, Class entityType) { - return _outsideSqlDao.selectList(path, pmb, createOutsideSqlOption(), - entityType); + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); } //========================================================================== @@ -98,7 +102,7 @@ * object. (Nullable) * @return The count of execution. * @exception jp.sf.pal.board.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. */ public int execute(String path, Object pmb) { return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -35,6 +35,17 @@ // ========= // Select // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.board.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ public Object selectCursor(String path, PARAMETER_BEAN pmb, CursorHandler handler) { return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, @@ -45,14 +56,14 @@ // ========= // Option // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + public OutsideSqlCursorExecutor configure( StatementConfig statementConfig) { _outsideSqlOption.setStatementConfig(statementConfig); return this; } - - public OutsideSqlCursorExecutor dynamicBinding() { - _outsideSqlOption.dynamicBinding(); - return this; - } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -48,8 +48,9 @@ * @param entityType The type of entity. (NotNull) * @return The selected entity. (Nullable) * @exception jp.sf.pal.board.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. */ public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, Class entityType) { @@ -75,7 +76,7 @@ * @param entityType The type of entity. (NotNull) * @return The selected entity. (Nullable) * @exception jp.sf.pal.board.db.allcommon.exception.OutsideSqlNotFoundException - * When the sql is not found. + * When the outside-sql is not found. * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException * When the entity has already been deleted(not found). * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -3,10 +3,12 @@ import java.util.List; import jp.sf.pal.board.db.allcommon.DBFluteConfig; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; import jp.sf.pal.board.db.allcommon.cbean.PagingBean; import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlDao; import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlOption; import jp.sf.pal.board.db.allcommon.jdbc.StatementConfig; @@ -46,20 +48,57 @@ // ========= // Select // ====== - public List selectList(String path, PagingBean pmb, - Class entityType) { + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { setupScrollableCursorIfNeeds(); - return _outsideSqlDao.selectList(path, pmb, _outsideSqlOption, - entityType); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); } /** * Select page. *

    * The SQL should have Count and Paging.
    You can realize by - * pagingBean's isPaging() method on your 'SQL Comment'. For example, 'IF - * Comment'.
    It returns false when it executes Count. And it returns - * true when it executes Paging.
    + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    * *

          * - - - - - - - - - - - - - - - - - - - - - - -
    @@ -107,10 +146,11 @@
          * 
          * @param  The type of entity.
          * @param path The path of SQL that executes count and paging. (NotNull)
    -     * @param pagingPath The path of paging SQL. (NotNull)
          * @param pmb The bean of paging parameter. (NotNull)
          * @param entityType The type of result entity. (NotNull)
          * @return The result bean of paging. (NotNull)
    +     * @exception jp.sf.pal.board.db.allcommon.exception.OutsideSqlNotFoundException
    +     *                When the outside-sql is not found.
          */
         public  PagingResultBean selectPage(final String path,
                 final PagingBean pmb, final Class entityType) {
    @@ -129,13 +169,16 @@
                             Integer.class);
                 }
     
    -            public java.util.List paging() {
    +            public List paging() {
                     pmb.xsetPaging(true);
                     return selectList(path, pmb, entityType);
                 }
             };
             final PagingInvoker invoker = new PagingInvoker(
                     _tableDbName);
    +        if (pmb.isCountLater()) {
    +            invoker.countLater();
    +        }
             return invoker.invokePaging(handler);
         }
     
    @@ -166,11 +209,6 @@
         // =========
         // Option
         // ======
    -    public OutsideSqlCursorExecutor cursorHandling() {
    -        return new OutsideSqlCursorExecutor(_outsideSqlDao,
    -                _outsideSqlOption);
    -    }
    -
         public OutsideSqlPagingExecutor configure(StatementConfig statementConfig) {
             _outsideSqlOption.setStatementConfig(statementConfig);
             return this;
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/AbstractSqlClause.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/AbstractSqlClause.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/AbstractSqlClause.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -1300,7 +1300,7 @@
         /**
          * The implementation.
          * 
    -     * @return Determiantion.
    +     * @return Determination.
          */
         public boolean isFetchNarrowingEffective() {
             return _isFetchScopeEffective;
    @@ -1401,6 +1401,13 @@
         // ===========
         // Selected Foreign Info
         // =====================
    +    public boolean isSelectedForeignInfoEmpty() {
    +        if (_selectedForeignInfo == null) {
    +            return true;
    +        }
    +        return _selectedForeignInfo.isEmpty();
    +    }
    +
         public boolean hasSelectedForeignInfo(String relationPath) {
             if (_selectedForeignInfo == null) {
                 return false;
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByClause.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByClause.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByClause.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -1,5 +1,6 @@
     package jp.sf.pal.board.db.allcommon.cbean.sqlclause;
     
    +import java.io.Serializable;
     import java.util.ArrayList;
     import java.util.Iterator;
     import java.util.List;
    @@ -9,7 +10,7 @@
     /**
      * @author DBFlute(AutoGenerator)
      */
    -public class OrderByClause implements java.io.Serializable {
    +public class OrderByClause implements Serializable {
     
         /** Serial version UID. (Default) */
         private static final long serialVersionUID = 1L;
    @@ -32,8 +33,8 @@
     
         //==========================================================================
         // ===========
    -    // Behavior
    -    // ========
    +    // Manipulation
    +    // ============
         /**
          * Add order-by element.
          * 
    @@ -91,6 +92,10 @@
                     boolean nullsFirst);
         }
     
    +    //==========================================================================
    +    // ===========
    +    // Order-By Expression
    +    // ===================
         public List getOrderByList() {
             return _orderByList;
         }
    @@ -250,7 +255,7 @@
          * 
          * @return Determination.
          */
    -    public java.util.Iterator iterator() {
    +    public Iterator iterator() {
             return _orderByList.iterator();
         }
     
    @@ -263,12 +268,12 @@
     
         //==========================================================================
         // ===========
    -    // Basic-Override Method
    -    // =====================
    +    // Basic Override
    +    // ==============
         /**
          * This method overrides the method that is declared at super.
          * 
    -     * @return View-string of all-columns value.
    +     * @return The view string of all-columns value. (NotNUll)
          */
         public String toString() {
             return _orderByList.toString();
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByElement.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByElement.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/OrderByElement.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -1,5 +1,6 @@
     package jp.sf.pal.board.db.allcommon.cbean.sqlclause;
     
    +import java.io.Serializable;
     import java.util.Map;
     
     import jp.sf.pal.board.db.allcommon.util.SimpleSystemUtil;
    @@ -7,7 +8,7 @@
     /**
      * @author DBFlute(AutoGenerator)
      */
    -public class OrderByElement implements java.io.Serializable {
    +public class OrderByElement implements Serializable {
     
         /** Serial version UID. (Default) */
         private static final long serialVersionUID = 1L;
    @@ -39,58 +40,8 @@
     
         //==========================================================================
         // ===========
    -    // Accessor
    -    // ========
    -    public String getAliasName() {
    -        return _aliasName;
    -    }
    -
    -    public String getColumnName() {
    -        return _columnName;
    -    }
    -
    -    public String getRegisteredAliasName() {
    -        return _registeredAliasName;
    -    }
    -
    -    public String getRegisteredColumnName() {
    -        return _registeredColumnName;
    -    }
    -
    -    public String getAscDesc() {
    -        return _ascDesc;
    -    }
    -
    -    public void setAliasName(String value) {
    -        _aliasName = value;
    -    }
    -
    -    public void setColumnName(String value) {
    -        _columnName = value;
    -    }
    -
    -    public void setRegisteredAliasName(String value) {
    -        _registeredAliasName = value;
    -    }
    -
    -    public void setRegisteredColumnName(String value) {
    -        _registeredColumnName = value;
    -    }
    -
    -    public void setAscDesc(String value) {
    -        _ascDesc = value;
    -    }
    -
    -    public void setOrderByNullsSetupper(
    -            OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) {
    -        _orderByNullsSetupper = value;
    -        _nullsFirst = nullsFirst;
    -    }
    -
    -    //==========================================================================
    -    // ===========
    -    // Behavior
    -    // ========
    +    // Manipulation
    +    // ============
         public void setupAsc() {
             _ascDesc = "asc";
         }
    @@ -115,6 +66,10 @@
             }
         }
     
    +    //==========================================================================
    +    // ===========
    +    // Order-By Expression
    +    // ===================
         public boolean isAsc() {
             if (_ascDesc == null) {
                 String msg = "The attribute[ascDesc] should not be null.";
    @@ -254,15 +209,65 @@
         /**
          * This method overrides the method that is declared at super.
          * 
    -     * @return View-string of all-columns value.
    +     * @return The view-string of all-columns value. (NotNull)
          */
         public String toString() {
             final StringBuilder sb = new StringBuilder();
    -        sb.append("[OrderByElement] aliasName=").append(_aliasName);
    +        sb.append("{aliasName=").append(_aliasName);
             sb.append(" columnName=").append(_columnName);
             sb.append(" registeredAliasName=").append(_registeredAliasName);
             sb.append(" registeredColumnName=").append(_registeredColumnName);
    -        sb.append(" ascDesc=").append(_ascDesc);
    +        sb.append(" ascDesc=").append(_ascDesc).append("}");
             return sb.toString();
         }
    +
    +    //==========================================================================
    +    // ===========
    +    // Accessor
    +    // ========
    +    public String getAliasName() {
    +        return _aliasName;
    +    }
    +
    +    public String getColumnName() {
    +        return _columnName;
    +    }
    +
    +    public String getRegisteredAliasName() {
    +        return _registeredAliasName;
    +    }
    +
    +    public String getRegisteredColumnName() {
    +        return _registeredColumnName;
    +    }
    +
    +    public String getAscDesc() {
    +        return _ascDesc;
    +    }
    +
    +    public void setAliasName(String value) {
    +        _aliasName = value;
    +    }
    +
    +    public void setColumnName(String value) {
    +        _columnName = value;
    +    }
    +
    +    public void setRegisteredAliasName(String value) {
    +        _registeredAliasName = value;
    +    }
    +
    +    public void setRegisteredColumnName(String value) {
    +        _registeredColumnName = value;
    +    }
    +
    +    public void setAscDesc(String value) {
    +        _ascDesc = value;
    +    }
    +
    +    public void setOrderByNullsSetupper(
    +            OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) {
    +        _orderByNullsSetupper = value;
    +        _nullsFirst = nullsFirst;
    +    }
     }
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/SqlClause.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/SqlClause.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/cbean/sqlclause/SqlClause.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -552,6 +552,8 @@
         // =========
         // Selected Foreign Info
         // =====================
    +    public boolean isSelectedForeignInfoEmpty();
    +
         public boolean hasSelectedForeignInfo(String relationPath);
     
         public void registerSelectedForeignInfo(String relationPath,
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/AbstractDBMeta.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/AbstractDBMeta.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/AbstractDBMeta.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -550,6 +550,10 @@
             return false;
         }
     
    +    public String getSequenceNextValSql() {
    +        return null;
    +    }
    +
         public boolean hasVersionNo() {
             return false;
         }
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMeta.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMeta.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMeta.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -54,12 +54,19 @@
         public String getTableDbName();
     
         /**
    -     * Get table prop-name(JavaBeansRule).
    +     * Get table property-name(JavaBeansRule).
          * 
          * @return Table property-name(JavaBeansRule). (NotNull)
          */
         public String getTablePropertyName();
     
    +    /**
    +     * Get table SQL-name.
    +     * 
    +     * @return Table SQL-name. (NotNull)
    +     */
    +    public String getTableSqlName();
    +
         //==========================================================================
         // =========
         // Name Handling
    @@ -335,6 +342,14 @@
          */
         public boolean hasSequence();
     
    +    /**
    +     * Get the SQL string for getting next value of sequence.
    +     * 
    +     * @return The SQL string for getting next value of sequence. (Nullable: If
    +     *         it does not have sequence, returns null.)
    +     */
    +    public String getSequenceNextValSql();
    +
         //==========================================================================
         // =========
         // Optimistic Lock Info
    
    Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMetaInstanceHandler.java
    ===================================================================
    --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMetaInstanceHandler.java	2008-11-13 06:32:39 UTC (rev 1344)
    +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/dbmeta/DBMetaInstanceHandler.java	2008-11-13 06:58:14 UTC (rev 1345)
    @@ -34,12 +34,22 @@
                             "jp.sf.pal.board.db.bsentity.dbmeta.CategoryDbm");
             tmpMap.put("CATEGORY_ACCESS",
                     "jp.sf.pal.board.db.bsentity.dbmeta.CategoryAccessDbm");
    +        tmpMap.put("GROUP_INFO",
    +                "jp.sf.pal.board.db.bsentity.dbmeta.GroupInfoDbm");
    +        tmpMap.put("GROUP_MAPPING",
    +                "jp.sf.pal.board.db.bsentity.dbmeta.GroupMappingDbm");
             tmpMap.put("MESSAGE", "jp.sf.pal.board.db.bsentity.dbmeta.MessageDbm");
             tmpMap.put("MESSAGE_ATTACHMENT",
                     "jp.sf.pal.board.db.bsentity.dbmeta.MessageAttachmentDbm");
             tmpMap.put("MESSAGE_CONTENT",
                     "jp.sf.pal.board.db.bsentity.dbmeta.MessageContentDbm");
             tmpMap.put("REPLY", "jp.sf.pal.board.db.bsentity.dbmeta.ReplyDbm");
    +        tmpMap.put("ROLE_INFO",
    +                "jp.sf.pal.board.db.bsentity.dbmeta.RoleInfoDbm");
    +        tmpMap.put("ROLE_MAPPING",
    +                "jp.sf.pal.board.db.bsentity.dbmeta.RoleMappingDbm");
    +        tmpMap.put("USER_INFO",
    +                "jp.sf.pal.board.db.bsentity.dbmeta.UserInfoDbm");
     
             _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap);
         }
    @@ -52,10 +62,15 @@
             tmpMap.put("ATTACHMENT".toLowerCase(), "attachment");
             tmpMap.put("CATEGORY".toLowerCase(), "category");
             tmpMap.put("CATEGORY_ACCESS".toLowerCase(), "categoryAccess");
    +        tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo");
    +        tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping");
             tmpMap.put("MESSAGE".toLowerCase(), "message");
             tmpMap.put("MESSAGE_ATTACHMENT".toLowerCase(), "messageAttachment");
             tmpMap.put("MESSAGE_CONTENT".toLowerCase(), "messageContent");
             tmpMap.put("REPLY".toLowerCase(), "reply");
    +        tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo");
    +        tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping");
    +        tmpMap.put("USER_INFO".toLowerCase(), "userInfo");
     
             _tableDbNamePropertyNameKeyToLowerMap = Collections
                     .unmodifiableMap(tmpMap);
    @@ -69,10 +84,15 @@
             tmpMap.put("attachment".toLowerCase(), "ATTACHMENT");
             tmpMap.put("category".toLowerCase(), "CATEGORY");
             tmpMap.put("categoryAccess".toLowerCase(), "CATEGORY_ACCESS");
    +        tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO");
    +        tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING");
             tmpMap.put("message".toLowerCase(), "MESSAGE");
             tmpMap.put("messageAttachment".toLowerCase(), "MESSAGE_ATTACHMENT");
             tmpMap.put("messageContent".toLowerCase(), "MESSAGE_CONTENT");
             tmpMap.put("reply".toLowerCase(), "REPLY");
    +        tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO");
    +        tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING");
    +        tmpMap.put("userInfo".toLowerCase(), "USER_INFO");
     
             _tablePropertyNameDbNameKeyToLowerMap = Collections
                     .unmodifiableMap(tmpMap);
    @@ -133,7 +153,8 @@
          * 
    * * @param tableFlexibleName Table flexible-name. (NotNull) - * @return Instance. (NotNull) + * @return The instance of dbmeta. (NotNull) + * @exception DBMetaNotFoundException When the dbmeta is not found. */ public static DBMeta findDBMeta(String tableFlexibleName) { assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", @@ -158,15 +179,23 @@ if (dotLastIndex >= 0) { try { return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1)); - } catch (IllegalStateException e) { + } catch (DBMetaNotFoundException e) { // Nothing } } String msg = "The instance map returned null by the key: key=" + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap; - throw new IllegalStateException(msg); + throw new DBMetaNotFoundException(msg); } + public static class DBMetaNotFoundException extends IllegalStateException { + private static final long serialVersionUID = 1L; + + public DBMetaNotFoundException(String msg) { + super(msg); + } + } + /** * Get instance by table DB-name. * @@ -179,7 +208,7 @@ if (instance == null) { String msg = "The instance map returned null by the key: key=" + tableDbName + " instanceMap=" + _tableDbNameInstanceMap; - throw new IllegalStateException(msg); + throw new DBMetaNotFoundException(msg); } return instance; } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/character/impl/GeneralCharacterImpl.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -75,7 +75,7 @@ if (currentChar >= 0xff01 && currentChar <= 0xff5e) { sb.append(toSingleByteCharacter(currentChar)); - // TODO: @jflute - I will append mark... + // It needs to append more mark... } else if (currentChar == '\u2019' || currentChar == '\u2018' || currentChar == '\u2032') { sb.append('\''); @@ -88,7 +88,6 @@ sb.append('-'); } else if (currentChar == '\uff5e') { sb.append('~'); - } else { sb.append(currentChar); } Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,17 @@ +package jp.sf.pal.board.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractingResource { + + public boolean isTargetElement(String className, String methodName); + + public String filterSimpleClassName(String simpleClassName); + + public boolean isUseAdditionalInfo(); + + public int getStartIndex(); + + public int getLoopSize(); +} \ No newline at end of file Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractor.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractor.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractor.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,16 @@ +package jp.sf.pal.board.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractor { + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource); +} \ No newline at end of file Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameResult.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameResult.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameResult.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,86 @@ +package jp.sf.pal.board.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameResult { + + //========================================================================== + // ================ + // Attribute + // ========= + protected String _simpleClassName; + + protected String _methodName; + + protected String _invokeName; + + protected int _foundIndex; + + protected int _foundFirstIndex; + + //========================================================================== + // ================ + // Manipulation + // ============ + public int getNextStartIndex() { + return _foundIndex + 1; + } + + public void beEmptyResult() { + _simpleClassName = null; + _invokeName = ""; // As Default + } + + //========================================================================== + // ================ + // Determination + // ============= + public boolean isEmptyResult() { + return _simpleClassName == null; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public String getSimpleClassName() { + return _simpleClassName; + } + + public void setSimpleClassName(String simpleClassName) { + _simpleClassName = simpleClassName; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + _methodName = methodName; + } + + public String getInvokeName() { + return _invokeName; + } + + public void setInvokeName(String invokeName) { + _invokeName = invokeName; + } + + public int getFoundIndex() { + return _foundIndex; + } + + public void setFoundIndex(int foundIndex) { + _foundIndex = foundIndex; + } + + public int getFoundFirstIndex() { + return _foundFirstIndex; + } + + public void setFoundFirstIndex(int foundFirstIndex) { + _foundFirstIndex = foundFirstIndex; + } +} \ No newline at end of file Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/InvokeNameResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,103 @@ +package jp.sf.pal.board.db.allcommon.helper.stacktrace.impl; + +import jp.sf.pal.board.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.board.db.allcommon.helper.stacktrace.InvokeNameExtractor; +import jp.sf.pal.board.db.allcommon.helper.stacktrace.InvokeNameResult; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameExtractorImpl implements InvokeNameExtractor { + + //========================================================================== + // ================ + // Attribute + // ========= + protected StackTraceElement[] _stackTrace; + + //========================================================================== + // ================ + // Main + // ==== + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return Invoke name. (NotNull: If not found, returns empty string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource) { + if (_stackTrace == null) { + String msg = "The attribute 'stackTrace' should not be null: resource=" + + resource; + throw new IllegalStateException(msg); + } + String targetSimpleClassName = null; + String targetMethodName = null; + int lineNumber = 0; + int foundIndex = -1; // The minus one means 'Not Found'. + int foundFirstIndex = -1; // The minus one means 'Not Found'. + boolean onTarget = false; + for (int i = resource.getStartIndex(); i < _stackTrace.length; i++) { + final StackTraceElement element = _stackTrace[i]; + if (i > resource.getStartIndex() + resource.getLoopSize()) { + break; + } + final String className = element.getClassName(); + if (className.startsWith("sun.") || className.startsWith("java.")) { + if (onTarget) { + break; + } + continue; + } + final String methodName = element.getMethodName(); + if (resource.isTargetElement(className, methodName)) { + if (methodName.equals("invoke")) { + continue; + } + targetSimpleClassName = className.substring(className + .lastIndexOf(".") + 1); + targetMethodName = methodName; + if (resource.isUseAdditionalInfo()) { + lineNumber = element.getLineNumber(); + } + foundIndex = i; + if (foundFirstIndex == -1) { + foundFirstIndex = i; + } + onTarget = true; + continue; + } + if (onTarget) { + break; + } + } + final InvokeNameResult result = new InvokeNameResult(); + if (targetSimpleClassName == null) { + result.beEmptyResult(); // Not Found! It sets empty result. + return result; + } + final String filteredClassName = resource + .filterSimpleClassName(targetSimpleClassName); + result.setSimpleClassName(resource + .filterSimpleClassName(targetSimpleClassName)); + result.setMethodName(targetMethodName); + if (lineNumber > 0) { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "():" + lineNumber + " --> "); + } else { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "() --> "); + } + result.setFoundIndex(foundIndex); + result.setFoundFirstIndex(foundFirstIndex); + return result; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public void setStackTrace(StackTraceElement[] stackTrace) { + _stackTrace = stackTrace; + } +} \ No newline at end of file Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/token/line/impl/LineTokenImpl.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -13,6 +13,10 @@ */ public class LineTokenImpl implements LineToken { + //========================================================================== + // ========= + // Tokenize Line + // ============= public List tokenize(String lineString, LineTokenizingOption lineTokenizingOption) { final String delimiter = lineTokenizingOption.getDelimiter(); @@ -37,7 +41,7 @@ list.add(filterHandlingEmptyAsNull(pureValue, lineTokenizingOption)); } - i = j + 1; + i = j + delimiter.length(); j = lineString.indexOf(delimiter, i); } list.add(filterHandlingEmptyAsNull(lineString.substring(i), @@ -56,6 +60,10 @@ return target; } + //========================================================================== + // ========= + // Make Line + // ========= public String make(java.util.List valueList, LineMakingOption lineMakingOption) { assertObjectNotNull("valueList", valueList); @@ -85,9 +93,10 @@ return sb.toString(); } - // ---------------------------------------------------------------- - // Assert Object - // ------------- + //========================================================================== + // ========= + // General Helper + // ============== /** * Assert that the object is not null. * @@ -108,9 +117,6 @@ } } - // ---------------------------------------------------------------- - // Assert String - // ------------- /** * Assert that the entity is not null and not trimmed empty. * Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/CursorHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/CursorHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/CursorHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,7 +1,10 @@ package jp.sf.pal.board.db.allcommon.jdbc; +import java.sql.ResultSet; +import java.sql.SQLException; + /** - * The interface of statement history witness. + * The handler of cursor. * * @author DBFlute(AutoGenerator) */ @@ -12,5 +15,5 @@ * @return Result * @throws java.sql.SQLException */ - Object handle(java.sql.ResultSet resultSet) throws java.sql.SQLException; + Object handle(ResultSet resultSet) throws SQLException; } Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/SqlLogHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/SqlLogHandler.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/SqlLogHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,18 @@ +package jp.sf.pal.board.db.allcommon.jdbc; + +/** + * The handler of SQL log. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlLogHandler { + + /** + * @param executedSql The executed SQL. (NotNull) + * @param displaySql The SQL for display. (NotNull) + * @param args The arguments of the SQL. (Nullable) + * @param argTypes The argument types of the SQL. (Nullable) + */ + void handle(String executedSql, String displaySql, Object[] args, + Class[] argTypes); +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/jdbc/SqlLogHandler.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -5,15 +5,13 @@ import java.sql.SQLException; import java.sql.Statement; -import jp.sf.pal.board.db.allcommon.cbean.FetchNarrowingBean; -import jp.sf.pal.board.db.allcommon.cbean.FetchNarrowingBeanContext; -import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlContext; import jp.sf.pal.board.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; import org.seasar.extension.jdbc.ResultSetFactory; /** - * Fetch narrowing result set factory. + * This is unused in DBFlute so this is very NORMAL result-set-factory for + * S2Dao. * * @author DBFlute(AutoGenerator) */ @@ -39,7 +37,7 @@ * @param statement Statement. (NotNull) * @return Result set for procedure executing of s2dao. (NotNull) */ - public ResultSet getResultSet(Statement statement) { + public ResultSet getResultSet(Statement statement) { // Unused in DBFlute return doGetResultSet(statement); } @@ -49,52 +47,55 @@ * @param ps Prepared statement. (NotNull) * @return Result set. (NotNull) */ - public ResultSet createResultSet(PreparedStatement ps) { - final ResultSet resultSet = executeQuery(ps); + public ResultSet createResultSet(PreparedStatement ps) { // Unused in + // DBFlute + return executeQuery(ps); - if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { - return resultSet; - } - final FetchNarrowingBean cb = FetchNarrowingBeanContext - .getFetchNarrowingBeanOnThread(); - if (!isUseFetchNarrowingResultSetWrapper(cb)) { - return resultSet; - } - final FetchNarrowingResultSetWrapper wrapper; - if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { - final OutsideSqlContext outsideSqlContext = OutsideSqlContext - .getOutsideSqlContextOnThread(); - wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, - outsideSqlContext.isOffsetByCursorForcedly(), - outsideSqlContext.isLimitByCursorForcedly()); - } else { - wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, - false); - } - return wrapper; + // *Move to InternalBasicSelectHandler + // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // return resultSet; + // } + // final FetchNarrowingBean cb = + // FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread(); + // if (!isUseFetchNarrowingResultSetWrapper(cb)) { + // return resultSet; + // } + // final FetchNarrowingResultSetWrapper wrapper; + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + // outsideSqlContext.isOffsetByCursorForcedly(), + // outsideSqlContext.isLimitByCursorForcedly()); + // } else { + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + // false); + // } + // return wrapper; } - protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { - if (cb.getSafetyMaxResultSize() > 0) { - return true; - } - if (!cb.isFetchNarrowingEffective()) { - return false;// It is not necessary to control. - } - if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { - final OutsideSqlContext outsideSqlContext = OutsideSqlContext - .getOutsideSqlContextOnThread(); - if (outsideSqlContext.isOffsetByCursorForcedly() - || outsideSqlContext.isLimitByCursorForcedly()) { - return true; - } - } - if (cb.isFetchNarrowingSkipStartIndexEffective() - || cb.isFetchNarrowingLoopCountEffective()) { - return true; - } - return false; - } + // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean + // cb) { + // if (cb.getSafetyMaxResultSize() > 0) { + // return true; + // } + // if (!cb.isFetchNarrowingEffective()) { + // return false;// It is not necessary to control. + // } + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // if (outsideSqlContext.isOffsetByCursorForcedly() || + // outsideSqlContext.isLimitByCursorForcedly()) { + // return true; + // } + // } + // if (cb.isFetchNarrowingSkipStartIndexEffective() || + // cb.isFetchNarrowingLoopCountEffective()) { + // return true; + // } + // return false; + // } //========================================================================== // ========= Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoInterceptor.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -18,6 +18,9 @@ import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.board.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.board.db.allcommon.helper.stacktrace.InvokeNameResult; +import jp.sf.pal.board.db.allcommon.helper.stacktrace.impl.InvokeNameExtractorImpl; import jp.sf.pal.board.db.allcommon.util.TraceViewUtil; import org.aopalliance.intercept.MethodInvocation; @@ -164,24 +167,6 @@ try { ret = cmd.execute(invocation.getArguments()); } catch (Exception e) { - if (isLogEnabled()) { - final Class targetType = getTargetClass(invocation); - final StringBuilder sb = new StringBuilder(); - sb.append( - targetType.getSimpleName() + " was interrupted by " - + e.getClass().getSimpleName()).append( - getLineSeparator()); - sb.append("[Interrupted Target]").append(getLineSeparator()); - sb.append(" dao = " + targetType.getSimpleName()).append( - getLineSeparator()); - sb.append(" method = " + invocation.getMethod()).append( - getLineSeparator()); - sb.append(" args = " - + TraceViewUtil - .convertObjectArrayToStringView(invocation - .getArguments())); - log(sb.toString()); - } if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) { throw new EntityAlreadyUpdatedException( (NotSingleRowUpdatedRuntimeException) e); @@ -278,11 +263,11 @@ // ============== protected void logInvocation(MethodInvocation invocation) { final StackTraceElement[] stackTrace = new Exception().getStackTrace(); - final InvokeNameExtractingResult behaviorResult = extractBehaviorInvokeName(stackTrace); + final InvokeNameResult behaviorResult = extractBehaviorInvokeName(stackTrace); final String invokeClassName; final String invokeMethodName; - if (behaviorResult.getSimpleClassName() != null) { + if (!behaviorResult.isEmptyResult()) { invokeClassName = behaviorResult.getSimpleClassName(); invokeMethodName = behaviorResult.getMethodName(); } else { @@ -292,6 +277,10 @@ } final String expWithoutKakko = buildInvocationExpressionWithoutKakko( invocation, invokeClassName, invokeMethodName); + + // Save behavior invoke name for error message. + putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()"); + final String equalBorder = buildFitBorder("", "=", expWithoutKakko, false); final String invocationExpression = expWithoutKakko + "()"; @@ -391,13 +380,12 @@ } protected void logPath(MethodInvocation invocation, - StackTraceElement[] stackTrace, - InvokeNameExtractingResult behaviorResult) { + StackTraceElement[] stackTrace, InvokeNameResult behaviorResult) { final int bhvNextIndex = behaviorResult.getNextStartIndex(); - final InvokeNameExtractingResult clientResult = extractClientInvokeName( + final InvokeNameResult clientResult = extractClientInvokeName( stackTrace, bhvNextIndex); final int clientFirstIndex = clientResult.getFoundFirstIndex(); - final InvokeNameExtractingResult byPassResult = extractByPassInvokeName( + final InvokeNameResult byPassResult = extractByPassInvokeName( stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex); final String clientInvokeName = clientResult.getInvokeName(); @@ -407,6 +395,16 @@ && byPassInvokeName.trim().length() == 0) { return; } + + // Save client invoke name for error message. + if (!clientResult.isEmptyResult()) { + putObjectToMapContext("df:ClientInvokeName", clientInvokeName); + } + // Save by-pass invoke name for error message. + if (!byPassResult.isEmptyResult()) { + putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName); + } + log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "..."); } @@ -428,11 +426,11 @@ return sb.toString(); } - protected InvokeNameExtractingResult extractClientInvokeName( + protected InvokeNameResult extractClientInvokeName( StackTraceElement[] stackTrace, final int startIndex) { final List suffixList = Arrays.asList(new String[] { "Page", "Action" }); - final InvokeNameExtractingCallback callback = new InvokeNameExtractingCallback() { + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { public boolean isTargetElement(String className, String methodName) { return isClassNameEndsWith(className, suffixList); } @@ -453,15 +451,15 @@ return 25; } }; - return extractInvokeName(callback, stackTrace); + return extractInvokeName(resource, stackTrace); } - protected InvokeNameExtractingResult extractByPassInvokeName( + protected InvokeNameResult extractByPassInvokeName( StackTraceElement[] stackTrace, final int startIndex, final int loopSize) { final List suffixList = Arrays.asList(new String[] { "Service", "ServiceImpl", "Facade", "FacadeImpl" }); - final InvokeNameExtractingCallback callback = new InvokeNameExtractingCallback() { + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { public boolean isTargetElement(String className, String methodName) { return isClassNameEndsWith(className, suffixList); } @@ -482,10 +480,10 @@ return loopSize >= 0 ? loopSize : 25; } }; - return extractInvokeName(callback, stackTrace); + return extractInvokeName(resource, stackTrace); } - protected InvokeNameExtractingResult extractBehaviorInvokeName( + protected InvokeNameResult extractBehaviorInvokeName( StackTraceElement[] stackTrace) { final List suffixList = Arrays.asList(new String[] { "Bhv", "BehaviorReadable", "BehaviorWritable", "PagingInvoker" }); @@ -497,7 +495,7 @@ .asList(new String[] { "Executor" }); final List ousideSql3List = Arrays .asList(new String[] { "Executor$" }); - final InvokeNameExtractingCallback callback = new InvokeNameExtractingCallback() { + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { public boolean isTargetElement(String className, String methodName) { if (isClassNameEndsWith(className, suffixList)) { return true; @@ -529,7 +527,7 @@ return 25; } }; - return extractInvokeName(callback, stackTrace); + return extractInvokeName(resource, stackTrace); } protected boolean isClassNameEndsWith(String className, @@ -553,144 +551,20 @@ } /** - * @param callback the call-back for invoke-name-extracting. (NotNull) + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) * @param stackTrace Stack log. (NotNull) - * @return Invoke name. (NotNull: If not found, returns empty string.) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) */ - protected InvokeNameExtractingResult extractInvokeName( - InvokeNameExtractingCallback callback, + protected InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource, StackTraceElement[] stackTrace) { - String targetSimpleClassName = null; - String targetMethodName = null; - int lineNumber = 0; - int foundIndex = -1;// The minus one means 'Not Found'. - int foundFirstIndex = -1;// The minus one means 'Not Found'. - boolean onTarget = false; - for (int i = callback.getStartIndex(); i < stackTrace.length; i++) { - final StackTraceElement element = stackTrace[i]; - if (i > callback.getStartIndex() + callback.getLoopSize()) { - break; - } - final String className = element.getClassName(); - if (className.startsWith("sun.") || className.startsWith("java.")) { - if (onTarget) { - break; - } - continue; - } - final String methodName = element.getMethodName(); - if (callback.isTargetElement(className, methodName)) { - if (methodName.equals("invoke")) { - continue; - } - targetSimpleClassName = className.substring(className - .lastIndexOf(".") + 1); - targetMethodName = methodName; - if (callback.isUseAdditionalInfo()) { - lineNumber = element.getLineNumber(); - } - foundIndex = i; - if (foundFirstIndex == -1) { - foundFirstIndex = i; - } - onTarget = true; - continue; - } - if (onTarget) { - break; - } - } - final InvokeNameExtractingResult result = new InvokeNameExtractingResult(); - if (targetSimpleClassName == null) { - result.setInvokeName("");// Not Found! It sets empty string as - // default. - return result; - } - final String filteredClassName = callback - .filterSimpleClassName(targetSimpleClassName); - result.setSimpleClassName(callback - .filterSimpleClassName(targetSimpleClassName)); - result.setMethodName(targetMethodName); - if (lineNumber > 0) { - result.setInvokeName(filteredClassName + "." + targetMethodName - + "():" + lineNumber + " --> "); - } else { - result.setInvokeName(filteredClassName + "." + targetMethodName - + "() --> "); - } - result.setFoundIndex(foundIndex); - result.setFoundFirstIndex(foundFirstIndex); - return result; + final InvokeNameExtractorImpl extractor = new InvokeNameExtractorImpl(); + extractor.setStackTrace(stackTrace); + return extractor.extractInvokeName(resource); } - protected static interface InvokeNameExtractingCallback { - public boolean isTargetElement(String className, String methodName); - - public String filterSimpleClassName(String simpleClassName); - - public boolean isUseAdditionalInfo(); - - public int getStartIndex(); - - public int getLoopSize(); - } - - protected static class InvokeNameExtractingResult { - protected String _simpleClassName; - - protected String _methodName; - - protected String _invokeName; - - protected int _foundIndex; - - protected int _foundFirstIndex; - - public int getNextStartIndex() { - return _foundIndex + 1; - } - - public String getSimpleClassName() { - return _simpleClassName; - } - - public void setSimpleClassName(String simpleClassName) { - _simpleClassName = simpleClassName; - } - - public String getMethodName() { - return _methodName; - } - - public void setMethodName(String methodName) { - _methodName = methodName; - } - - public String getInvokeName() { - return _invokeName; - } - - public void setInvokeName(String invokeName) { - _invokeName = invokeName; - } - - public int getFoundIndex() { - return _foundIndex; - } - - public void setFoundIndex(int foundIndex) { - _foundIndex = foundIndex; - } - - public int getFoundFirstIndex() { - return _foundFirstIndex; - } - - public void setFoundFirstIndex(int foundFirstIndex) { - _foundFirstIndex = foundFirstIndex; - } - } - /** * @param method The invoked method. (NotNull) * @return The expression of invocation. (NotNull) @@ -1107,6 +981,10 @@ && outsideSqlContext.isSpecifiedOutsideSql(); } + protected void putObjectToMapContext(String key, Object value) { + InternalMapContext.setObject(key, value); + } + //========================================================================== // ========= // Determination Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoLatestSqlProvider.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -4,30 +4,17 @@ import jp.sf.pal.board.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; /** - * The provider of latest SQL as S2Dao.
    This instance should be - * singleton.
    + * The provider of latest SQL as S2Dao. This instance should be singleton. * * @author DBFlute(AutoGenerator) */ public class S2DaoLatestSqlProvider implements LatestSqlProvider { - /** - * The implementation. - * - * @return Display SQL. (Nullable: If it was not found, returns null.) - */ public String getDisplaySql() { - return getLastCompleteSql(); + return InternalSqlLogRegistry.peekCompleteSql(); } - protected String getLastCompleteSql() { - try { - return InternalSqlLogRegistry.peekCompleteSql(); - } catch (RuntimeException ignored) { - return null; - } - } - public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,8 +1,6 @@ package jp.sf.pal.board.db.allcommon.s2dao; -import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.sql.Connection; @@ -12,19 +10,12 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.Stack; import javax.sql.DataSource; import jp.sf.pal.board.db.allcommon.BehaviorSelector; import jp.sf.pal.board.db.allcommon.Entity; -import jp.sf.pal.board.db.allcommon.InternalMapContext; import jp.sf.pal.board.db.allcommon.annotation.OutsideSql; import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; import jp.sf.pal.board.db.allcommon.cbean.ConditionBeanContext; @@ -50,43 +41,34 @@ import jp.sf.pal.board.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; import jp.sf.pal.board.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; import jp.sf.pal.board.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalRowCreator; import jp.sf.pal.board.db.allcommon.util.SimpleSystemUtil; import org.seasar.dao.BeanEnhancer; import org.seasar.dao.BeanMetaData; import org.seasar.dao.BeanMetaDataFactory; import org.seasar.dao.ColumnNaming; -import org.seasar.dao.IllegalParameterTypeRuntimeException; -import org.seasar.dao.ProcedureMetaData; -import org.seasar.dao.ProcedureParameterType; import org.seasar.dao.PropertyTypeFactoryBuilder; -import org.seasar.dao.RelationPropertyType; import org.seasar.dao.RelationPropertyTypeFactoryBuilder; import org.seasar.dao.RelationRowCreator; import org.seasar.dao.RowCreator; import org.seasar.dao.SqlCommand; import org.seasar.dao.TableNaming; -import org.seasar.dao.ValueTypeFactory; import org.seasar.dao.dbms.DbmsManager; import org.seasar.dao.impl.BeanMetaDataImpl; import org.seasar.dao.impl.DaoMetaDataImpl; -import org.seasar.dao.impl.ProcedureMetaDataImpl; -import org.seasar.dao.impl.ProcedureParameterTypeImpl; -import org.seasar.dao.impl.RelationRowCreationResource; import org.seasar.dao.impl.ResultSetHandlerFactoryImpl; import org.seasar.dao.impl.SelectDynamicCommand; import org.seasar.dao.impl.UpdateAutoStaticCommand; -import org.seasar.dao.util.TypeUtil; -import org.seasar.extension.jdbc.PropertyType; import org.seasar.extension.jdbc.ResultSetHandler; import org.seasar.extension.jdbc.StatementFactory; import org.seasar.extension.jdbc.ValueType; import org.seasar.extension.jdbc.types.ValueTypes; -import org.seasar.framework.beans.BeanDesc; import org.seasar.framework.beans.MethodNotFoundRuntimeException; -import org.seasar.framework.beans.PropertyDesc; import org.seasar.framework.beans.factory.BeanDescFactory; -import org.seasar.framework.util.FieldUtil; import org.seasar.framework.util.MethodUtil; /** @@ -262,9 +244,57 @@ //========================================================================== // ========= - // Setup Method by Auto - // ==================== + // Assert Override + // =============== @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override protected void setupMethodByAuto(Method method) { final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); if (outsideSql != null) { @@ -280,68 +310,115 @@ //========================================================================== // ========= - // ConditionBean Setup - // =================== + // ConditionBean Override + // ====================== @Override protected void setupSelectMethodByAuto(final Method method) { - final ResultSetHandler handler = createResultSetHandler(method); - final String[] argNames = daoAnnotationReader.getArgNames(method); - final String query = daoAnnotationReader.getQuery(method); - final SqlCommand cmd; - if (query != null && !startsWithOrderBy(query)) { - // For Pure S2Dao *Deprecated at the future... - cmd = setupInternalQuerySelectMethodByAuto(method, handler, - argNames, query); - } else { - cmd = setupInternalNonQuerySelectMethodByAuto(method, handler, - argNames, query); + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. + final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + putSqlCommand(method.getName(), cmd); } - // For Pure S2Dao *Deprecated at the future... - protected SelectDynamicCommand setupInternalQuerySelectMethodByAuto( - final Method method, final ResultSetHandler handler, - final String[] argNames, final String query) { + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); + final String[] argNames = daoAnnotationReader.getArgNames(method); + final String query = daoAnnotationReader.getQuery(method); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } final Class[] types = method.getParameterTypes(); final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, query); cmd.setArgNames(argNames); cmd.setArgTypes(types); - return cmd; + putSqlCommand(method.getName(), cmd); + return true; } - protected SqlCommand setupInternalNonQuerySelectMethodByAuto( - final Method method, final ResultSetHandler handler, - final String[] argNames, final String query) { - if (isAutoSelectSqlByDto(method, argNames)) { - return setupInternalNonQuerySelectMethodByDto(method, handler, - argNames, query); - } else { - // For Pure S2Dao *Deprecated at the future... - return setupNonQuerySelectMethodByArgs(method, handler, argNames, - query); + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); } } + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + // For condition-bean! protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, - ResultSetHandler handler, String[] argNames, String query) { - Class[] types = method.getParameterTypes(); - Class clazz = types[0]; - // /----------------------------------------------------- [MyExtension] - if (!ConditionBeanContext.isTheTypeConditionBean(clazz)) { - return super.setupNonQuerySelectMethodByDto(method, handler, - argNames, query); - } - argNames = new String[] { "dto" }; + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); - cmd.setArgNames(argNames); - cmd.setArgTypes(types); - // -----------/ + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); return cmd; } + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + //========================================================================== // ========= // Insert and Update and Delete By Auto Override @@ -492,7 +569,7 @@ handleBatchUpdateResultWithOptimisticLock(ps, list, result, method); } catch (SQLException e) { - handleSQLException(e, ps, false, list); + handleSQLException(e, ps, false); return null;// Unreachable! } return result; @@ -558,7 +635,7 @@ handleBatchUpdateResultWithOptimisticLock(ps, list, result, method); } catch (SQLException e) { - handleSQLException(e, ps, false, list); + handleSQLException(e, ps, false); return null;// Unreachable! } return result; @@ -712,9 +789,7 @@ // Normal OutsideSql // ----------------- @Override - protected void setupSelectMethodByManual(Method method, String sql) {// Contains - // SQL- - // Annotation + protected void setupSelectMethodByManual(Method method, String sql) { final Class[] pmbTypes = method.getParameterTypes(); final String[] argNames = this.daoAnnotationReader.getArgNames(method); final Class[] argTypes; @@ -743,29 +818,16 @@ .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); } - // @jflute -- This override causes exception, it's pending... - // This is for to use QLog about SQL-Annotation. But the priority is very - // low. - // - // @Override - // protected void setupUpdateMethodByManual(Method method, final String sql) - // {// Contains SQL-Annotation - // final InternalUpdateDynamicCommand cmd = new - // InternalUpdateDynamicCommand(dataSource, statementFactory); - // cmd.setSql(sql); - // String[] argNames = daoAnnotationReader.getArgNames(method); - // if (argNames.length == 0 && isUpdateSignatureForBean(method)) { - // argNames = new String[] { - // StringUtil.decapitalize(ClassUtil.getShortClassName(beanClass)) }; - // } - // - // // It is unnecessary for DBFlute! - // // cmd.setNotSingleRowUpdatedExceptionClass( - // getNotSingleRowUpdatedExceptionClass(method)); - // - // registerSqlCommand(method.getName(), method, sql, argNames, - // method.getParameterTypes(), cmd); - // } + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } // ----------------------------------------------------- // Specified OutsideSql @@ -841,30 +903,6 @@ .createBeanMetaData(clazz); } - // [Unsupported] - // The return type of method is unsupported! - // Because the method of outside-sql that selects one entity is unnecessary! - // - // /** - // * Create the handler of result set of specified outside-sql for customize - // bean. - // * - // * @param specifiedBeanMetaData Specified bean meta data. (NotNull) - // * @param customizeEntityType The type of customize entity. (NotNull) - // * @return The handler of result set. (NotNull) - // */ - // protected ResultSetHandler - // createSpecifiedOutsideSqlCustomizeBeanResultSetHandler(BeanMetaData - // specifiedBeanMetaData, Class customizeEntityType) { - // final ValueType valueType = ValueTypes.getValueType(customizeEntityType); - // if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { - // return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler(); - // } - // return new - // org.seasar.dao.impl.BeanMetaDataResultSetHandler(specifiedBeanMetaData, - // new RowCreatorExtension(), new RelationRowCreatorExtension()); - // } - /** * Create the handler of result set of specified outside-sql for the list of * customize bean. @@ -880,11 +918,23 @@ if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { return new InternalObjectListResultSetHandler(valueType); } + final InternalRowCreator rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData); + final InternalRelationRowCreator relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData); return new InternalBeanListMetaDataResultSetHandler( - specifiedBeanMetaData, new RowCreatorExtension(), - new RelationRowCreatorExtension()); + specifiedBeanMetaData, rowCreator, relationRowCreator); } + protected InternalRowCreator createSpecifiedOutsideSqlInternalRowCreator( + BeanMetaData bmd) { + final Class clazz = bmd.getBeanClass(); + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createSpecifiedOutsideSqlInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); + } + protected class InternalObjectListResultSetHandler implements ResultSetHandler { private ValueType valueType; @@ -974,21 +1024,25 @@ // - - - - - - - - - - - - - - - // The attribute of SqlCommand. // - - - - - - - - - - - - - - - - final InternalProcedureMetaDataFactory myProcedureMetaDataFactory = new InternalProcedureMetaDataFactory(); - myProcedureMetaDataFactory.setValueTypeFactory(valueTypeFactory); + final InternalProcedureMetaDataFactory factory = createInternalProcedureMetaDataFactory(); + factory.setValueTypeFactory(valueTypeFactory); final Class pmbType = pmb != null ? pmb.getClass() : null; - final ProcedureMetaData metaData = myProcedureMetaDataFactory + final InternalProcedureMetaData metaData = factory .createProcedureMetaData(procedureName, pmbType); final InternalProcedureCommand cmd = createInternalProcedureCommand( method, metaData); putSqlCommand(sqlCommandKey, cmd); } + protected InternalProcedureMetaDataFactory createInternalProcedureMetaDataFactory() { + return new InternalProcedureMetaDataFactory(); + } + protected InternalProcedureCommand createInternalProcedureCommand( - Method method, ProcedureMetaData metaData) { + Method method, InternalProcedureMetaData metaData) { final ResultSetHandler resultSetHandler = createResultSetHandler(method); return new InternalProcedureCommand(dataSource, resultSetHandler, - statementFactory, resultSetFactory, metaData); + statementFactory, metaData); } // ----------------------------------------------------- @@ -1113,7 +1167,7 @@ protected S2DaoSelectDynamicCommand createCustomizeSelectDynamicCommand( ResultSetHandler handler) { return new S2DaoSelectDynamicCommand(dataSource, statementFactory, - handler, resultSetFactory); + handler); } //========================================================================== @@ -1189,6 +1243,57 @@ //========================================================================== // ========= + // ResultSetHandlerFactoryImpl Extension + // ===================================== + public static class ResultSetHandlerFactoryExtension extends + ResultSetHandlerFactoryImpl { + public ResultSetHandlerFactoryExtension() { + super(); + } + + @Override + protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25) + return createInternalRowCreator(null); + } + + @Override + protected RelationRowCreator createRelationRowCreator() { + return createInternalRelationRowCreator(null); + } + + @Override + protected ResultSetHandler createBeanListMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanListMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + @Override + protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanArrayMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + protected InternalRowCreator createInternalRowCreator(BeanMetaData bmd) { + final Class clazz = bmd != null ? bmd.getBeanClass() : null; + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); // Not yet implemented + // about performance + // tuning! + } + } + + //========================================================================== + // ========= // Vert Internal // ============= protected static class InternalMethodUtil { @@ -1203,19 +1308,16 @@ if (!(parameterizedList instanceof ParameterizedType)) { return null; } - final ParameterizedType parameterizedType = ParameterizedType.class .cast(parameterizedList); final Type rawType = parameterizedType.getRawType(); if (!(rawType instanceof Class)) { return null; } - final Class rawClass = Class.class.cast(rawType); if (!rawClass.isAssignableFrom(List.class)) { return null; } - final Type[] actualTypeArgument = parameterizedType .getActualTypeArguments(); if (actualTypeArgument == null || actualTypeArgument.length != 1) { @@ -1224,7 +1326,6 @@ if (!(actualTypeArgument[0] instanceof Class)) { return null; } - return Class.class.cast(actualTypeArgument[0]); } @@ -1242,640 +1343,37 @@ //========================================================================== // ========= - // ResultSetHandlerFactoryImpl Extension - // ===================================== - public static class ResultSetHandlerFactoryExtension extends - ResultSetHandlerFactoryImpl { - public ResultSetHandlerFactoryExtension() { - super(); + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; } - - @Override - protected RowCreator createRowCreator() {// [DAO-118] (2007/08/25) - return new RowCreatorExtension(); + if (!Entity.class.isAssignableFrom(beanType)) { + return null; } - - @Override - protected RelationRowCreator createRelationRowCreator() { - return new RelationRowCreatorExtension(); + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); } - - @Override - protected ResultSetHandler createBeanListMetaDataResultSetHandler( - BeanMetaData beanMetaData) { - return new InternalBeanListMetaDataResultSetHandler(beanMetaData, - createRowCreator(), createRelationRowCreator()); - } - - @Override - protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( - BeanMetaData beanMetaData) { - return new InternalBeanArrayMetaDataResultSetHandler(beanMetaData, - createRowCreator(), createRelationRowCreator()); - } + return entity.getDBMeta(); } //========================================================================== // ========= - // RowCreatorImpl Extension - // ======================== - protected static class RowCreatorExtension extends - org.seasar.dao.impl.RowCreatorImpl { - - /** The key of DBMeta cache. */ - protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; - - @Override - public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) - throws SQLException { - final Object row = newBean(beanClass); - final DBMeta dbmeta = findDBMeta(row); - final Set columnNameSet = propertyCache.keySet(); - String columnName = null; - PropertyType pt = null; - String propertyName = null; - try { - for (final Iterator ite = columnNameSet.iterator(); ite - .hasNext();) { - columnName = (String) ite.next(); - pt = (PropertyType) propertyCache.get(columnName); - propertyName = pt.getPropertyName(); - if (dbmeta != null - && dbmeta.hasEntityPropertySetupper(propertyName)) { - final ValueType valueType = pt.getValueType(); - final Object value = valueType.getValue(rs, columnName); - dbmeta.setupEntityProperty(propertyName, row, value); - } else { - registerValue(rs, row, pt, columnName); - } - } - } catch (ClassCastException e) { - if (_log.isWarnEnabled()) { - String msg = ClassCastException.class.getSimpleName() - + " occurred while ResultSet Handling:"; - _log.warn(msg + " target=" + beanClass.getSimpleName() - + "." + propertyName + " dbmeta"); - } - throwNonsenseClassCastException(row, dbmeta, e); - } catch (SQLException e) { - if (_log.isWarnEnabled()) { - String msg = SQLException.class.getSimpleName() - + " occurred while ResultSet Handling:"; - _log.warn(msg + " target=" + beanClass.getSimpleName() - + "." + propertyName); - } - throw e; - } - return row; - } - - /** - * @param row The object of row. (NotNull) - * @return The interface of DBMeta. (Nullable: If it's null, it means - * NotFound.) - */ - protected DBMeta findDBMeta(Object row) { - return EntityPropertySetupperHandler.findCachedDBMeta(row); - } - - protected void throwNonsenseClassCastException(Object entity, - DBMeta dbmeta, ClassCastException e) { - String msg = "Look! Read the message below." + getLineSeparator(); - msg = msg - + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" - + getLineSeparator(); - msg = msg + "Nonsense ClassCastException occured!" - + getLineSeparator(); - msg = msg + getLineSeparator(); - msg = msg + "[Advice]" + getLineSeparator(); - msg = msg - + "This exception may be from ClassLoader Headache about HotDeploy." - + getLineSeparator(); - msg = msg - + "Please add the ignore-package setting to convention.dicon like as follows:" - + getLineSeparator(); - msg = msg + " For example:" + getLineSeparator(); - msg = msg + " " - + getLineSeparator(); - msg = msg + " ¡Écom.example.xxx.dbflute¡É" - + getLineSeparator(); - msg = msg + " " + getLineSeparator(); - msg = msg + getLineSeparator(); - msg = msg + "[Exception Message]" + getLineSeparator() - + e.getMessage() + getLineSeparator(); - msg = msg + getLineSeparator(); - msg = msg + "[Target Entity]" + getLineSeparator() + entity - + getLineSeparator(); - msg = msg + getLineSeparator(); - msg = msg + "[Target Entity Class Loader]" + getLineSeparator() - + entity.getClass().getClassLoader() + getLineSeparator(); - msg = msg + getLineSeparator(); - msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta - + getLineSeparator(); - msg = msg + getLineSeparator(); - msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() - + dbmeta.getClass().getClassLoader() + getLineSeparator(); - msg = msg + "* * * * * * * * * */"; - throw new NonsenseClassCastException(msg, e); - } - - protected String getLineSeparator() { - return SimpleSystemUtil.getLineSeparator(); - } + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); } - public static class NonsenseClassCastException extends RuntimeException { - private static final long serialVersionUID = 1L; - - public NonsenseClassCastException(String msg, ClassCastException e) { - super(msg, e); - } - } - - /** - * The handler of setupper of entity property. - */ - protected static class EntityPropertySetupperHandler { - - /** The key of DBMeta cache. */ - protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; - - public static DBMeta findCachedDBMeta(Object row) { - if (!(row instanceof Entity)) { - return null; - } - final Entity entity = (Entity) row; - Map, DBMeta> dbmetaCache = (Map, DBMeta>) InternalMapContext - .getObject(DBMETA_CACHE_KEY); - if (dbmetaCache == null) { - dbmetaCache = new HashMap, DBMeta>(); - InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); - } - DBMeta dbmeta = dbmetaCache.get(entity.getClass()); - if (dbmeta != null) { - return dbmeta; - } - dbmeta = entity.getDBMeta(); - dbmetaCache.put(entity.getClass(), dbmeta); - return dbmeta; - } - } - //========================================================================== // ========= - // RelationRowCreatorImpl Extension - // ================================ - protected static class RelationRowCreatorExtension extends - org.seasar.dao.impl.RelationRowCreatorImpl { - - @Override - protected Object createRelationRow(RelationRowCreationResource res) - throws SQLException { - // - - - - - - - - - - - - // Recursive Call Point! - // - - - - - - - - - - - - if (!res.hasPropertyCacheElement()) { - return null; - } - setupRelationKeyValue(res); - setupRelationAllValue(res); - return res.getRow(); - } - - @Override - protected void setupRelationKeyValue(RelationRowCreationResource res) { - final RelationPropertyType rpt = res.getRelationPropertyType(); - final BeanMetaData bmd = rpt.getBeanMetaData(); - for (int i = 0; i < rpt.getKeySize(); ++i) { - final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); - - if (!res.containsColumnName(columnName)) { - continue; - } - if (!res.hasRowInstance()) { - res.setRow(newRelationRow(rpt)); - } - if (!res.containsRelKeyValueIfExists(columnName)) { - continue; - } - final Object value = res.extractRelKeyValue(columnName); - if (value == null) { - continue; - } - - final String yourKey = rpt.getYourKey(i); - final PropertyType pt = bmd - .getPropertyTypeByColumnName(yourKey); - final PropertyDesc pd = pt.getPropertyDesc(); - pd.setValue(res.getRow(), value); - continue; - } - } - - @Override - protected void setupRelationAllValue(RelationRowCreationResource res) - throws SQLException { - final Map propertyCacheElement = res.extractPropertyCacheElement(); - final Set columnNameCacheElementKeySet = propertyCacheElement - .keySet(); - for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite - .hasNext();) { - final String columnName = (String) ite.next(); - final PropertyType pt = (PropertyType) propertyCacheElement - .get(columnName); - res.setCurrentPropertyType(pt); - if (!isValidRelationPerPropertyLoop(res)) { - res.clearRowInstance(); - return; - } - setupRelationProperty(res); - } - if (!isValidRelationAfterPropertyLoop(res)) { - res.clearRowInstance(); - return; - } - res.clearValidValueCount(); - if (res.hasNextRelationProperty() - && (hasConditionBean(res) || res.hasNextRelationLevel())) { - setupNextRelationRow(res); - } - } - - @Override - protected void registerRelationValue(RelationRowCreationResource res, - String columnName) throws SQLException { - final PropertyType pt = res.getCurrentPropertyType(); - Object value = null; - if (res.containsRelKeyValueIfExists(columnName)) { - value = res.extractRelKeyValue(columnName); - } else { - final ValueType valueType = pt.getValueType(); - value = valueType.getValue(res.getResultSet(), columnName); - } - - if (value != null) { - res.incrementValidValueCount(); - final DBMeta dbmeta = findDBMeta(res.getRow()); - final String propertyName = pt.getPropertyName(); - if (dbmeta != null - && dbmeta.hasEntityPropertySetupper(propertyName)) { - dbmeta.setupEntityProperty(propertyName, res.getRow(), - value); - } else { - final PropertyDesc pd = pt.getPropertyDesc(); - pd.setValue(res.getRow(), value); - } - } - } - - /** - * @param row The object of row. (NotNull) - * @return The interface of DBMeta. (Nullable: If it's null, it means - * NotFound.) - */ - protected DBMeta findDBMeta(Object row) { - return EntityPropertySetupperHandler.findCachedDBMeta(row); - } - - @Override - protected void setupPropertyCache(RelationRowCreationResource res) - throws SQLException { - // - - - - - - - - - - - - // Recursive Call Point! - // - - - - - - - - - - - - res.initializePropertyCacheElement(); - - // Do only selected foreign property for performance if - // condition-bean exists. - if (hasConditionBean(res)) { - final ConditionBean cb = ConditionBeanContext - .getConditionBeanOnThread(); - if (!cb.getSqlClause().hasSelectedForeignInfo( - res.getRelationNoSuffix())) { - return; - } - } - - // Set up property cache about current beanMetaData. - final BeanMetaData nextBmd = res.getRelationBeanMetaData(); - for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { - final PropertyType pt = nextBmd.getPropertyType(i); - res.setCurrentPropertyType(pt); - if (!isTargetProperty(res)) { - continue; - } - setupPropertyCacheElement(res); - } - - // Set up next relation. - if (res.hasNextRelationProperty() - && (hasConditionBean(res) || res.hasNextRelationLevel())) { - res.backupRelationPropertyType(); - res.incrementCurrentRelationNestLevel(); - try { - setupNextPropertyCache(res, nextBmd); - } finally { - res.restoreRelationPropertyType(); - res.decrementCurrentRelationNestLevel(); - } - } - } - - @Override - protected boolean isTargetProperty( - org.seasar.dao.impl.RelationRowCreationResource res) - throws java.sql.SQLException { - final PropertyType pt = res.getCurrentPropertyType(); - if (!pt.getPropertyDesc().hasWriteMethod()) { - return false; - } - if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() - .getPropertyType())) { - return false; - } - return true; - } - - @Override - protected boolean isCreateDeadLink() { - return false; - } - - @Override - protected int getLimitRelationNestLevel() { - return 2;// for Compatible - } - - @Override - protected RelationRowCreationResource createResourceForRow( - ResultSet rs, RelationPropertyType rpt, Set columnNames, - Map relKeyValues, Map relationPropertyCache) - throws SQLException { - final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); - res.setResultSet(rs); - res.setRelationPropertyType(rpt); - res.setColumnNames(columnNames); - res.setRelKeyValues(relKeyValues); - res.setRelationPropertyCache(relationPropertyCache); - res.setBaseSuffix("");// as Default - res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); - res.setLimitRelationNestLevel(getLimitRelationNestLevel()); - res.setCurrentRelationNestLevel(1);// as Default - res.setCreateDeadLink(isCreateDeadLink()); - return res; - } - - @Override - protected RelationRowCreationResource createResourceForPropertyCache( - RelationPropertyType rpt, Set columnNames, - Map relationPropertyCache, String baseSuffix, - String relationNoSuffix, int limitRelationNestLevel) - throws SQLException { - final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); - res.setRelationPropertyType(rpt); - res.setColumnNames(columnNames); - res.setRelationPropertyCache(relationPropertyCache); - res.setBaseSuffix(baseSuffix); - res.setRelationNoSuffix(relationNoSuffix); - res.setLimitRelationNestLevel(limitRelationNestLevel); - res.setCurrentRelationNestLevel(1);// as Default - return res; - } - - protected boolean isConditionBeanSelectedRelation( - RelationRowCreationResource res) { - if (hasConditionBean(res)) { - final ConditionBean cb = ConditionBeanContext - .getConditionBeanOnThread(); - if (cb.getSqlClause().hasSelectedForeignInfo( - res.getRelationNoSuffix())) { - return true; - } - } - return false; - } - - protected boolean hasConditionBean(RelationRowCreationResource res) { - return ConditionBeanContext.isExistConditionBeanOnThread(); - } - } - - protected static class RelationRowCreationResourceExtension extends - RelationRowCreationResource { - protected Stack backupRelationPropertyType = new Stack(); - - protected Stack backupBaseSuffix = new Stack(); - - protected Stack backupRelationSuffix = new Stack(); - - @Override - public void backupRelationPropertyType() { - backupRelationPropertyType.push(getRelationPropertyType()); - } - - @Override - public void restoreRelationPropertyType() { - setRelationPropertyType(backupRelationPropertyType.pop()); - } - - @Override - public void backupSuffixAndPrepare(String baseSuffix, - String additionalRelationNoSuffix) { - backupBaseSuffixExtension(); - backupRelationNoSuffixExtension(); - setBaseSuffix(baseSuffix); - addRelationNoSuffix(additionalRelationNoSuffix); - } - - @Override - public void restoreSuffix() { - restoreBaseSuffixExtension(); - restoreRelationNoSuffixExtension(); - } - - protected void backupBaseSuffixExtension() { - backupBaseSuffix.push(getBaseSuffix()); - } - - protected void restoreBaseSuffixExtension() { - setBaseSuffix(backupBaseSuffix.pop()); - } - - protected void backupRelationNoSuffixExtension() { - backupRelationSuffix.push(getRelationNoSuffix()); - } - - protected void restoreRelationNoSuffixExtension() { - setRelationNoSuffix(backupRelationSuffix.pop()); - } - } - - //========================================================================== - // ========= - // Procedure - // ========= - protected static class InternalProcedureMetaDataFactory { - protected ValueTypeFactory valueTypeFactory; - - protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); - - public ProcedureMetaData createProcedureMetaData( - final String procedureName, final Class pmbType) { - final ProcedureMetaDataImpl metaData = new ProcedureMetaDataImpl( - procedureName); - if (pmbType == null) { - return metaData; - } else { - if (!isDtoType(pmbType)) { - throw new IllegalStateException( - "The pmb type was Not DTO type: " - + pmbType.getName()); - } - } - final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); - - // *Point - final Stack> stack = new Stack>(); - for (Class clazz = pmbType; clazz != null - && clazz != Object.class; clazz = clazz.getSuperclass()) { - stack.push(clazz); - } - for (; !stack.isEmpty();) { - final Class clazz = stack.pop(); - registerParameterType(metaData, pmbDesc, clazz - .getDeclaredFields()); - } - - return metaData; - } - - protected void registerParameterType(ProcedureMetaDataImpl metaData, - BeanDesc pmbDesc, Field[] fields) { - for (Field field : fields) { - if (!isInstanceField(field)) { - continue; - } - final ProcedureParameterType ppt = getProcedureParameterType( - pmbDesc, field); - if (ppt == null) { - continue; - } - metaData.addParameterType(ppt); - } - } - - protected ProcedureParameterType getProcedureParameterType( - final BeanDesc dtoDesc, final Field field) { - final String type = annotationReader.getProcedureParameter(dtoDesc, - field); - if (type == null) { - return null; - } - field.setAccessible(true); - final ProcedureParameterType ppt = new ProcedureParameterTypeImpl( - field); - if (type.equalsIgnoreCase("in")) { - ppt.setInType(true); - } else if (type.equalsIgnoreCase("out")) { - ppt.setOutType(true); - } else if (type.equalsIgnoreCase("inout")) { - ppt.setInType(true); - ppt.setOutType(true); - } else if (type.equalsIgnoreCase("return")) { - ppt.setOutType(true); - ppt.setReturnType(true); - } else { - throw new IllegalParameterTypeRuntimeException(type); - } - final ValueType valueType = getValueType(dtoDesc, field); - ppt.setValueType(valueType); - return ppt; - } - - protected ValueType getValueType(final BeanDesc dtoDesc, - final Field field) { - final String name = annotationReader.getValueType(dtoDesc, field); - if (name != null) { - return valueTypeFactory.getValueTypeByName(name); - } - final Class type = field.getType(); - if (List.class.isAssignableFrom(type)) {// is for out parameter - // cursor. - if (ConditionBeanContext.isOracle()) { - return ValueTypes.ORACLE_RESULT_SET; - } else if (ConditionBeanContext.isPostgreSql()) { - return ValueTypes.POSTGRE_RESULT_SET; - } else { - return ValueTypes.SERIALIZABLE_BYTE_ARRAY; - } - } - return valueTypeFactory.getValueTypeByClass(type); - } - - protected boolean isInstanceField(final Field field) { - final int mod = field.getModifiers(); - return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); - } - - protected boolean isDtoType(final Class clazz) { - return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); - } - - protected boolean isContainerType(final Class clazz) { - if (clazz == null) { - throw new NullPointerException("clazz"); - } - return Collection.class.isAssignableFrom(clazz) - || Map.class.isAssignableFrom(clazz) || clazz.isArray(); - } - - public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { - this.valueTypeFactory = valueTypeFactory; - } - } - - protected static class InternalFieldProcedureAnnotationReader { - protected String PROCEDURE_PARAMETER_SUFFIX; - - protected String VALUE_TYPE_SUFFIX; - - public InternalFieldProcedureAnnotationReader() { - PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; - VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; - } - - public String getProcedureParameter(BeanDesc dtoDesc, Field field) { - String fieldName = removeInstanceVariablePrefix(field.getName());// * - // Point - String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; - if (dtoDesc.hasField(annotationName)) { - Field f = dtoDesc.getField(annotationName); - return (String) FieldUtil.get(f, null); - } else { - return null; - } - } - - public String getValueType(BeanDesc dtoDesc, Field field) { - String fieldName = removeInstanceVariablePrefix(field.getName());// * - // Point - String annotationName = fieldName + VALUE_TYPE_SUFFIX; - if (dtoDesc.hasField(annotationName)) { - Field f = dtoDesc.getField(annotationName); - return (String) FieldUtil.get(f, null); - } else { - return null; - } - } - - protected String removeInstanceVariablePrefix(String fieldName) { - return fieldName.startsWith("_") ? fieldName - .substring("_".length()) : fieldName; - } - } - - //========================================================================== - // ========= // Accessor // ======== // ----------------------------------------------------- Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -160,24 +160,7 @@ initializeDatabaseProductNameOfContext(xaDataSource); - final StringBuilder sb = new StringBuilder(); - sb.append("{SqlLog Information}").append(getLineSeparator()); - sb.append(" [SqlLogRegistry]").append(getLineSeparator()); - final Object sqlLogRegistry = InternalSqlLogRegistry - .findContainerSqlLogRegistry(); - if (sqlLogRegistry != null) { - InternalSqlLogRegistry.closeRegistration(); - sb - .append( - " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") - .append(getLineSeparator()); - sb - .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); - } else { - sb - .append(" SqlLogRegistry(org.seasar.extension.jdbc) was not found!"); - } - _log.info(sb); + handleSqlLogRegistry(); DBFluteConfig.getInstance().lock(); _log.info("* * * * */"); @@ -202,6 +185,41 @@ _log.info("{Injection Information}" + getLineSeparator() + sb); } + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + // ----------------------------------------------------- // Database Product Name // --------------------- Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -14,7 +14,6 @@ import jp.sf.pal.board.db.allcommon.util.SimpleSystemUtil; import org.seasar.dao.CommandContext; -import org.seasar.extension.jdbc.ResultSetFactory; import org.seasar.extension.jdbc.ResultSetHandler; import org.seasar.extension.jdbc.StatementFactory; import org.seasar.extension.jdbc.ValueType; @@ -38,9 +37,6 @@ /** The handler of resultSet. */ protected ResultSetHandler resultSetHandler; - /** The factory of resultSet. */ - protected ResultSetFactory resultSetFactory; - //========================================================================== // ========= // Constructor @@ -51,14 +47,11 @@ * @param dataSource Data source. * @param statementFactory The factory of statement. * @param resultSetHandler The handler of resultSet. - * @param resultSetFactory The factory of resultSet. */ public S2DaoSelectDynamicCommand(DataSource dataSource, - StatementFactory statementFactory, - ResultSetHandler resultSetHandler, ResultSetFactory resultSetFactory) { + StatementFactory statementFactory, ResultSetHandler resultSetHandler) { super(dataSource, statementFactory); this.resultSetHandler = resultSetHandler; - this.resultSetFactory = resultSetFactory; } //========================================================================== @@ -70,7 +63,7 @@ // ----------------------------- protected S2DaoSelectDynamicCommand createMySelectDynamicCommand() { return new S2DaoSelectDynamicCommand(getDataSource(), - getStatementFactory(), resultSetHandler, resultSetFactory); + getStatementFactory(), resultSetHandler); } //========================================================================== @@ -141,7 +134,9 @@ final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( finalClause, this.resultSetHandler); - return selectHandler.execute(bindVariableList.toArray(), + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, toClassArray(bindVariableTypeList)); } @@ -168,7 +163,9 @@ final org.seasar.dao.CommandContext ctx = apply(filteredArgs); final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( ctx.getSql(), specifiedResultSetHandler); - return selectHandler.execute(ctx.getBindVariables(), ctx + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx .getBindVariableTypes()); } @@ -203,7 +200,9 @@ final org.seasar.dao.CommandContext ctx = apply(filteredArgs); final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( ctx.getSql(), specifiedResultSetHandler); - return selectHandler.execute(ctx.getBindVariables(), ctx + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx .getBindVariableTypes()); } @@ -286,7 +285,9 @@ addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( ctx.getSql(), specifiedResultSetHandler); - return selectHandler.execute(bindVariableList.toArray(), + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, toClassArray(bindVariableTypeList)); } @@ -401,14 +402,13 @@ protected InternalBasicSelectHandler createBasicSelectHandler( String realSql, ResultSetHandler specifiedResultSetHandler) { return newBasicSelectHandler(realSql, specifiedResultSetHandler, - getStatementFactory(), resultSetFactory); + getStatementFactory()); } protected InternalBasicSelectHandler newBasicSelectHandler(String sql, - ResultSetHandler resultSetHandler, - StatementFactory statementFactory, ResultSetFactory resultSetFactory) { + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { return new InternalBasicSelectHandler(getDataSource(), sql, - resultSetHandler, statementFactory, resultSetFactory) { + resultSetHandler, statementFactory) { @Override protected void bindArgs(java.sql.PreparedStatement ps, Object[] args, Class[] argTypes) { Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,130 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractBeanMetaDataResultSetHandler extends + InternalAbstractDtoMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + protected RelationRowCreator relationRowCreator; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalAbstractBeanMetaDataResultSetHandler( + BeanMetaData beanMetaData, RowCreator rowCreator, + RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator); + this.beanMetaData = beanMetaData; + this.relationRowCreator = relationRowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + return rowCreator.createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + final Class beanClass = beanMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of relation property cache. Map{String(relationNoSuffix), + * Map{String(columnName), PropertyType}} (NotNull) + * @throws SQLException + */ + protected Map createRelationPropertyCache(Set columnNames) + throws SQLException { + return relationRowCreator + .createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param rpt The type of relation property. (NotNull) + * @param columnNames The set of column name. (NotNull) + * @param relKeyValues The map of rel key values. (Nullable) + * @param relationPropertyCache The map of relation property cache. + * Map{String(relationNoSuffix), Map{String(columnName), + * PropertyType}} (NotNull) + * @return Created relation row. (Nullable) + * @throws SQLException + */ + protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt, + Set columnNames, Map relKeyValues, Map relationPropertyCache) + throws SQLException { + return relationRowCreator.createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + } + + /** + * @param row The row of result list. (NotNull) + */ + protected void postCreateRow(final Object row) { + if (row instanceof Entity) { // DBFlute Target + ((Entity) row).clearModifiedPropertyNames(); + } else { // Basically Unreachable + final BeanMetaData bmd = getBeanMetaData(); + final Set names = bmd.getModifiedPropertyNames(row); + names.clear(); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,89 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import org.seasar.dao.DtoMetaData; +import org.seasar.dao.RowCreator; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.framework.util.CaseInsensitiveSet; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractDtoMetaDataResultSetHandler implements + ResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DtoMetaData dtoMetaData; + + protected RowCreator rowCreator; // [DAO-118] (2007/08/25) + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param dtoMetaData Dto meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + */ + public InternalAbstractDtoMetaDataResultSetHandler(DtoMetaData dtoMetaData, + RowCreator rowCreator) { + this.dtoMetaData = dtoMetaData; + this.rowCreator = rowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + return rowCreator.createPropertyCache(columnNames, dtoMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + final Class beanClass = dtoMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + protected Set createColumnNames(final ResultSetMetaData rsmd) + throws SQLException { + final int count = rsmd.getColumnCount(); + final Set columnNames = new CaseInsensitiveSet(); + for (int i = 0; i < count; ++i) { + final String columnName = rsmd.getColumnLabel(i + 1); + final int pos = columnName.lastIndexOf('.'); // [DAO-41] + if (-1 < pos) { + columnNames.add(columnName.substring(pos + 1)); + } else { + columnNames.add(columnName); + } + } + return columnNames; + } + + public DtoMetaData getDtoMetaData() { + return dtoMetaData; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -8,11 +8,14 @@ import java.util.Map; import java.util.Set; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlContext; + import org.seasar.dao.BeanMetaData; import org.seasar.dao.RelationPropertyType; import org.seasar.dao.RelationRowCreator; import org.seasar.dao.RowCreator; -import org.seasar.dao.impl.AbstractBeanMetaDataResultSetHandler; import org.seasar.dao.impl.RelationKey; import org.seasar.dao.impl.RelationRowCache; import org.seasar.extension.jdbc.PropertyType; @@ -24,7 +27,7 @@ */ @SuppressWarnings("unchecked") public class InternalBeanListMetaDataResultSetHandler extends - AbstractBeanMetaDataResultSetHandler { + InternalAbstractBeanMetaDataResultSetHandler { //========================================================================== // ========= @@ -45,62 +48,89 @@ // Handle // ====== public Object handle(ResultSet rs) throws SQLException { - // Set - Set columnNames = null; + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; - // Map - Map propertyCache = null;// [DAO-118] (2007/08/26) - - // Map> - Map relationPropertyCache = null;// [DAO-118] (2007/08/25) - final List list = new ArrayList(); final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); - final RelationRowCache relRowCache = new RelationRowCache(relSize); + final boolean hasCB = hasConditionBean(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + while (rs.next()) { - // Lazy initialization because if the result is zero, the cache is - // unused. if (columnNames == null) { columnNames = createColumnNames(rs.getMetaData()); } if (propertyCache == null) { propertyCache = createPropertyCache(columnNames); } - if (relationPropertyCache == null) { - relationPropertyCache = createRelationPropertyCache(columnNames); - } // Create row instance of base table by row property cache. final Object row = createRow(rs, propertyCache); + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { + postCreateRow(row); + list.add(row); + continue; + } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } for (int i = 0; i < relSize; ++i) { - RelationPropertyType rpt = getBeanMetaData() + final RelationPropertyType rpt = getBeanMetaData() .getRelationPropertyType(i); if (rpt == null) { continue; } + + // Do only selected foreign property for performance if + // condition-bean exists. + if (hasCB + && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) { + continue; + } + + final Map relKeyValues = new HashMap(); + final RelationKey relKey = createRelationKey(rs, rpt, + columnNames, relKeyValues); Object relationRow = null; - Map relKeyValues = new HashMap(); - // /- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - // If it returns null at first record, may it be unnecessary - // after second records? - // - - - - - - - - - -/ - RelationKey relKey = createRelationKey(rs, rpt, columnNames, - relKeyValues); if (relKey != null) { relationRow = relRowCache.getRelationRow(i, relKey); - if (relationRow == null) { + if (relationRow == null) { // when no cache relationRow = createRelationRow(rs, rpt, columnNames, relKeyValues, relationPropertyCache); - relRowCache.addRelationRow(i, relKey, relationRow); + if (relationRow != null) { + relRowCache.addRelationRow(i, relKey, relationRow); + postCreateRow(relationRow); + } } } if (relationRow != null) { - PropertyDesc pd = rpt.getPropertyDesc(); + final PropertyDesc pd = rpt.getPropertyDesc(); pd.setValue(row, relationRow); - postCreateRow(relationRow); } } postCreateRow(row); @@ -112,32 +142,26 @@ protected RelationKey createRelationKey(ResultSet rs, RelationPropertyType rpt, Set columnNames, Map relKeyValues) throws SQLException { - List keyList = new ArrayList(); - BeanMetaData bmd = rpt.getBeanMetaData(); + final List keyList = new ArrayList(); + final BeanMetaData bmd = rpt.getBeanMetaData(); for (int i = 0; i < rpt.getKeySize(); ++i) { - /* - * PropertyType pt = bmd - * .getPropertyTypeByColumnName(rpt.getYourKey(i)); ValueType - * valueType = pt.getValueType(); String columnName = - * pt.getColumnName() + "_" + rpt.getRelationNo(); - */ - ValueType valueType = null; + final ValueType valueType; String columnName = rpt.getMyKey(i); if (columnNames.contains(columnName)) { - PropertyType pt = getBeanMetaData() + final PropertyType pt = getBeanMetaData() .getPropertyTypeByColumnName(columnName); valueType = pt.getValueType(); } else { - PropertyType pt = bmd.getPropertyTypeByColumnName(rpt + final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt .getYourKey(i)); - columnName = pt.getColumnName() + "_" + rpt.getRelationNo(); + columnName = pt.getColumnName() + buildRelationNoSuffix(rpt); if (columnNames.contains(columnName)) { valueType = pt.getValueType(); } else { return null; } } - Object value = valueType.getValue(rs, columnName); + final Object value = valueType.getValue(rs, columnName); if (value == null) { return null; } @@ -151,4 +175,62 @@ return null; } } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean isSelectedForeignInfoEmpty() { + if (!hasConditionBean()) { + return true; + } + ConditionBean cb = ConditionBeanContext.getConditionBeanOnThread(); + if (cb.getSqlClause().isSelectedForeignInfoEmpty()) { + return true; + } + return false; + } + + /** + * Has it selected foreign information? You should call hasConditionBean() + * before calling this! + * + * @param relationNoSuffix The suffix of relation NO. (NotNull) + * @return Determination. + */ + protected boolean hasSelectedForeignInfo(String relationNoSuffix) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) { + return true; + } + return false; + } + + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ + protected String buildRelationNoSuffix(RelationPropertyType rpt) { + return "_" + rpt.getRelationNo(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -65,10 +65,7 @@ public Object execute(Object[] args) { InternalAbstractAutoHandler handler = createAutoHandler(); handler.setSql(getSql()); - - // It is unnecessary for DBFlute! - // injectDaoClass(handler); - + handler.setLoggingMessageSqlArgs(args); int rows = handler.execute(args); if (isCheckSingleRowUpdate() && rows != 1) { throw createNotSingleRowUpdatedRuntimeException(args[0], rows); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -50,6 +50,8 @@ // injectDaoClass(handler); handler.setSql(getSql()); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(args); if (this.returningRows) { return handler.executeBatch(args); } else { Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -48,6 +48,7 @@ CommandContext context = createCommandContext(twoWaySql, argNames, argTypes, args); InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); int rows = handler.execute(args); return new Integer(rows); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -54,6 +54,7 @@ final InternalInsertAutoHandler handler = new InternalInsertAutoHandler( getDataSource(), getStatementFactory(), bmd, propertyTypes); handler.setSql(sql); + handler.setLoggingMessageSqlArgs(args); final int rows = handler.execute(args); if (isCheckSingleRowUpdate() && rows != 1) { throw new NotSingleRowUpdatedRuntimeException(args[0], rows); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -4,10 +4,9 @@ import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlContext; import jp.sf.pal.board.db.allcommon.s2dao.internal.sqlhandler.InternalProcedureHandler; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; -import org.seasar.dao.ProcedureMetaData; import org.seasar.dao.SqlCommand; -import org.seasar.extension.jdbc.ResultSetFactory; import org.seasar.extension.jdbc.ResultSetHandler; import org.seasar.extension.jdbc.StatementFactory; @@ -26,10 +25,8 @@ protected StatementFactory statementFactory; - protected ResultSetFactory resultSetFactory; + protected InternalProcedureMetaData procedureMetaData; - protected ProcedureMetaData procedureMetaData; - //========================================================================== // ========= // Constructor @@ -37,12 +34,10 @@ public InternalProcedureCommand(DataSource dataSource, ResultSetHandler resultSetHandler, StatementFactory statementFactory, - ResultSetFactory resultSetFactory, - ProcedureMetaData procedureMetaData) { + InternalProcedureMetaData procedureMetaData) { this.dataSource = dataSource; this.resultSetHandler = resultSetHandler; this.statementFactory = statementFactory; - this.resultSetFactory = resultSetFactory; this.procedureMetaData = procedureMetaData; } @@ -55,19 +50,21 @@ final OutsideSqlContext outsideSqlContext = OutsideSqlContext .getOutsideSqlContextOnThread(); final Object pmb = outsideSqlContext.getParameterBean(); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(...); return handler.execute(new Object[] { pmb }); } protected InternalProcedureHandler newArgumentDtoProcedureHandler() { return new InternalProcedureHandler(dataSource, createSql(procedureMetaData), resultSetHandler, - statementFactory, resultSetFactory, procedureMetaData); + statementFactory, procedureMetaData); } - protected String createSql(final ProcedureMetaData procedureMetaData) { + protected String createSql(final InternalProcedureMetaData procedureMetaData) { final StringBuilder sb = new StringBuilder(); sb.append("{"); - int size = procedureMetaData.getParameterTypeSize(); + int size = procedureMetaData.parameterTypes().size(); if (procedureMetaData.hasReturnParameterType()) { sb.append("? = "); size--; Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -67,6 +67,7 @@ InternalUpdateAutoHandler handler = createInternalUpdateAutoHandler( bmd, propertyTypes); handler.setSql(createUpdateSql(bmd, propertyTypes, bean)); + handler.setLoggingMessageSqlArgs(args); int i = handler.execute(args); // [Comment Out]: This statement moved to the handler at Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -30,7 +30,9 @@ final CommandContext ctx = apply(args); final InternalBasicUpdateHandler updateHandler = new InternalBasicUpdateHandler( getDataSource(), ctx.getSql(), getStatementFactory()); - return new Integer(updateHandler.execute(ctx.getBindVariables(), ctx + Object[] bindVariables = ctx.getBindVariables(); + updateHandler.setLoggingMessageSqlArgs(bindVariables); + return new Integer(updateHandler.execute(bindVariables, ctx .getBindVariableTypes())); } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -63,6 +63,7 @@ CommandContext context = createCommandContext(twoWaySql, argNames, argTypes, args); InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); int rows = handler.execute(args); return new Integer(rows); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -26,19 +26,19 @@ // ========= // Attribute // ========= - private BeanMetaData beanMetaData; + protected BeanMetaData beanMetaData; - private Object[] bindVariables; + protected Object[] bindVariables; - private ValueType[] bindVariableValueTypes; + protected ValueType[] bindVariableValueTypes; - private Timestamp timestamp; + protected Timestamp timestamp; - private Integer versionNo; + protected Integer versionNo; - private PropertyType[] propertyTypes; + protected PropertyType[] propertyTypes; - private boolean versionNoAutoIncrementOnMemory = true; + protected boolean versionNoAutoIncrementOnMemory = true; //========================================================================== // ========= @@ -73,7 +73,7 @@ int ret = -1; try { bindArgs(ps, bindVariables, bindVariableValueTypes); - ret = executeUpdate(ps, bean); + ret = executeUpdate(ps); } finally { close(ps); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -122,8 +122,8 @@ try { return ps.executeBatch(); } catch (SQLException e) { - handleSQLException(e, ps, true, list); - return null;// Unreachable! + handleSQLException(e, ps, true); + return null; // Unreachable! } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -8,16 +8,20 @@ import javax.sql.DataSource; +import jp.sf.pal.board.db.allcommon.CallbackContext; import jp.sf.pal.board.db.allcommon.DBFluteConfig; +import jp.sf.pal.board.db.allcommon.InternalMapContext; import jp.sf.pal.board.db.allcommon.QLog; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; import jp.sf.pal.board.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlContext; import jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException; import jp.sf.pal.board.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.board.db.allcommon.jdbc.SqlLogHandler; import jp.sf.pal.board.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; import jp.sf.pal.board.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; import jp.sf.pal.board.db.allcommon.util.SimpleSystemUtil; -import org.seasar.dao.CommandContext; import org.seasar.extension.jdbc.StatementFactory; import org.seasar.extension.jdbc.ValueType; import org.seasar.extension.jdbc.types.ValueTypes; @@ -38,6 +42,8 @@ private StatementFactory statementFactory; + private Object[] loggingMessageSqlArgs; + //========================================================================== // ========= // Constructor @@ -56,8 +62,11 @@ //========================================================================== // ========= - // Basic Method for SubClass - // ========================= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- protected void bindArgs(PreparedStatement ps, Object[] args, Class[] argTypes) { if (args == null) { @@ -87,71 +96,111 @@ return argTypes; } - protected String getCompleteSql(Object[] args) { - return InternalBindVariableUtil.getCompleteSql(sql, args); + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } } - protected String getBindVariableText(Object bindVariable) { - return InternalBindVariableUtil.getBindVariableText(bindVariable); + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); } - protected ValueType getValueType(Class clazz) { - return ValueTypes.getValueType(clazz); + protected void log(String msg) { + QLog.log(msg); } - protected void logSql(Object[] args, Class[] argTypes) { - if (QLog.isLogEnabled() - || InternalSqlLogRegistry.existsSqlLogRegistry()) { - final String completeSql = getCompleteSql(args); - if (isContainsLineSeparatorInSql()) { - QLog.log(getLineSeparator() + completeSql); - } else { - QLog.log(completeSql); - } - if (InternalSqlLogRegistry.existsSqlLogRegistry()) { - final Object sqlLogRegistry = InternalSqlLogRegistry - .findContainerSqlLogRegistry(); - if (sqlLogRegistry != null) { - InternalSqlLogRegistry.push(getSql(), completeSql, args, - argTypes, sqlLogRegistry); - } - } + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); } protected boolean isContainsLineSeparatorInSql() { return sql != null ? sql.contains(getLineSeparator()) : false; } + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + //========================================================================== // ========= // Exception Handler // ================= protected void handleSQLException(SQLException e, Statement statement) { - handleSQLException(e, statement, false, null); + handleSQLException(e, statement, false); } protected void handleSQLException(SQLException e, Statement statement, - boolean uniqueConstraintValid, Object resource) { + boolean uniqueConstraintValid) { + String completeSql = buildLoggingMessageSql(); new SQLExceptionHandler().handleSQLException(e, statement, - uniqueConstraintValid, resource); + uniqueConstraintValid, completeSql); } + protected String buildLoggingMessageSql() { + String completeSql = null; + if (sql != null && loggingMessageSqlArgs != null) { + try { + completeSql = getCompleteSql(loggingMessageSqlArgs); + } catch (RuntimeException ignored) { + } + } + return completeSql; + } + public static class SQLExceptionHandler { public void handleSQLException(SQLException e, Statement statement) { - handleSQLException(e, statement, false, null); + handleSQLException(e, statement, false); } public void handleSQLException(SQLException e, Statement statement, - boolean uniqueConstraintValid, Object resource) { + boolean uniqueConstraintValid) { + handleSQLException(e, statement, uniqueConstraintValid, null); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid, String completeSql) { if (isSqlExceptionOldStyleHandling()) { throw new SQLRuntimeException(e); } if (uniqueConstraintValid && isUniqueConstraintException(e)) { - throwEntityAlreadyExistsException(e, statement, resource); + throwEntityAlreadyExistsException(e, statement, completeSql); } - throwSQLFailureException(e, statement, resource); + throwSQLFailureException(e, statement, completeSql); } protected boolean isUniqueConstraintException(SQLException e) { @@ -173,7 +222,7 @@ } protected void throwEntityAlreadyExistsException(SQLException e, - Statement statement, Object resource) { + Statement statement, String completeSql) { String msg = "Look! Read the message below." + getLineSeparator(); msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" @@ -188,17 +237,6 @@ msg = msg + "And confirm the unique constraint for other columns." + getLineSeparator(); msg = msg + getLineSeparator(); - if (statement != null) { - msg = msg + "[Statement]" + getLineSeparator() + statement - + getLineSeparator(); - msg = msg + getLineSeparator(); - } - if (resource != null) { - msg = msg + "[Resource]" + getLineSeparator() - + resource.getClass().getName() + getLineSeparator(); - msg = msg + buildResourceDisplay(resource) + getLineSeparator(); - msg = msg + getLineSeparator(); - } msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + getLineSeparator(); msg = msg + getLineSeparator(); @@ -223,12 +261,49 @@ msg = msg + nextNextEx.getMessage() + getLineSeparator(); } } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } msg = msg + "* * * * * * * * * */"; throw new EntityAlreadyExistsException(msg, e); } protected void throwSQLFailureException(SQLException e, - Statement statement, Object resource) { + Statement statement, String completeSql) { String msg = "Look! Read the message below." + getLineSeparator(); msg = msg + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" @@ -239,17 +314,6 @@ msg = msg + "Please confirm the SQLException message." + getLineSeparator(); msg = msg + getLineSeparator(); - if (statement != null) { - msg = msg + "[Statement]" + getLineSeparator() + statement - + getLineSeparator(); - msg = msg + getLineSeparator(); - } - if (resource != null) { - msg = msg + "[Resource]" + getLineSeparator() - + resource.getClass().getName() + getLineSeparator(); - msg = msg + buildResourceDisplay(resource) + getLineSeparator(); - msg = msg + getLineSeparator(); - } msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + getLineSeparator(); msg = msg + getLineSeparator(); @@ -274,35 +338,45 @@ msg = msg + nextNextEx.getMessage() + getLineSeparator(); } } - msg = msg + "* * * * * * * * * */"; - throw new SQLFailureException(msg, e); - } - - protected String buildResourceDisplay(Object resource) { - if (resource == null) { - return ""; + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); } - if (resource instanceof CommandContext) { - CommandContext ctx = (CommandContext) resource; - Object[] variables = ctx.getBindVariables(); - return buildResourceDisplay(variables); - } else if (resource instanceof Object[]) { - return buildResourceDisplay((Object[]) resource); - } else { - return resource.toString(); + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); } - } - - protected String buildResourceDisplay(Object[] resources) { - if (resources == null) { - return ""; + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } } - StringBuilder sb = new StringBuilder(); - for (Object resource : resources) { - sb.append(", ").append(resource); + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); } - sb.delete(0, ", ".length()).insert(0, "{").append("}"); - return sb.toString(); + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new SQLFailureException(msg, e); } protected String extractSQLState(SQLException e) { @@ -346,6 +420,49 @@ return null; } + protected String extractBehaviorInvokeName() { + final Object behaviorInvokeName = InternalMapContext + .getObject("df:BehaviorInvokeName"); + if (behaviorInvokeName == null) { + return null; + } + final Object clientInvokeName = InternalMapContext + .getObject("df:ClientInvokeName"); + final Object byPassInvokeName = InternalMapContext + .getObject("df:ByPassInvokeName"); + final StringBuilder sb = new StringBuilder(); + boolean existsPath = false; + if (clientInvokeName != null) { + existsPath = true; + sb.append(clientInvokeName); + } + if (byPassInvokeName != null) { + existsPath = true; + sb.append(byPassInvokeName); + } + sb.append(behaviorInvokeName); + if (existsPath) { + sb.append("..."); + } + return sb.toString(); + } + + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected ConditionBean getConditionBean() { + return ConditionBeanContext.getConditionBeanOnThread(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected OutsideSqlContext getOutsideSqlContext() { + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + protected String getLineSeparator() { return SimpleSystemUtil.getLineSeparator(); } @@ -375,11 +492,11 @@ return statementFactory.createPreparedStatement(conn, sql); } - protected int executeUpdate(PreparedStatement ps, Object resource) { + protected int executeUpdate(PreparedStatement ps) { try { return ps.executeUpdate(); } catch (SQLException e) { - handleSQLException(e, ps, true, resource); + handleSQLException(e, ps, true); return 0;// Unreachable! } } @@ -441,6 +558,31 @@ //========================================================================== // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= // General Helper // ============== protected String getLineSeparator() { @@ -474,4 +616,8 @@ public void setStatementFactory(StatementFactory statementFactory) { this.statementFactory = statementFactory; } + + public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) { + this.loggingMessageSqlArgs = loggingMessageSqlArgs; + } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -7,7 +7,11 @@ import javax.sql.DataSource; -import org.seasar.extension.jdbc.ResultSetFactory; +import jp.sf.pal.board.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.board.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.board.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.board.db.allcommon.s2dao.FetchNarrowingResultSetWrapper; + import org.seasar.extension.jdbc.ResultSetHandler; import org.seasar.extension.jdbc.StatementFactory; @@ -20,8 +24,6 @@ // ========= // Attribute // ========= - private ResultSetFactory resultSetFactory; - private ResultSetHandler resultSetHandler; //========================================================================== @@ -29,12 +31,10 @@ // Constructor // =========== public InternalBasicSelectHandler(DataSource dataSource, String sql, - ResultSetHandler resultSetHandler, - StatementFactory statementFactory, ResultSetFactory resultSetFactory) { + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { super(dataSource, statementFactory); setSql(sql); setResultSetHandler(resultSetHandler); - setResultSetFactory(resultSetFactory); } //========================================================================== @@ -65,7 +65,7 @@ return execute(ps); } catch (SQLException e) { handleSQLException(e, ps); - return null;// Unreachable! + return null; // Unreachable! } finally { close(ps); } @@ -85,22 +85,57 @@ } } - protected ResultSet createResultSet(PreparedStatement ps) { - return resultSetFactory.createResultSet(ps); + protected ResultSet createResultSet(PreparedStatement ps) + throws SQLException { + final ResultSet resultSet = ps.executeQuery(); + if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + return resultSet; + } + final FetchNarrowingBean cb = FetchNarrowingBeanContext + .getFetchNarrowingBeanOnThread(); + if (!isUseFetchNarrowingResultSetWrapper(cb)) { + return resultSet; + } + final FetchNarrowingResultSetWrapper wrapper; + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + outsideSqlContext.isOffsetByCursorForcedly(), + outsideSqlContext.isLimitByCursorForcedly()); + } else { + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + false); + } + return wrapper; } + protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { + if (cb.getSafetyMaxResultSize() > 0) { + return true; + } + if (!cb.isFetchNarrowingEffective()) { + return false; // It is not necessary to control. + } + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + return true; + } + } + if (cb.isFetchNarrowingSkipStartIndexEffective() + || cb.isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + //========================================================================== // ========= // Accessor // ======== - public ResultSetFactory getResultSetFactory() { - return resultSetFactory; - } - - public void setResultSetFactory(ResultSetFactory resultSetFactory) { - this.resultSetFactory = resultSetFactory; - } - public ResultSetHandler getResultSetHandler() { return resultSetHandler; } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -45,7 +45,7 @@ PreparedStatement ps = prepareStatement(connection); try { bindArgs(ps, args, argTypes); - return executeUpdate(ps, args); + return executeUpdate(ps); } finally { close(ps); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -51,7 +51,7 @@ try { bindArgs(ps, context.getBindVariables(), context .getBindVariableTypes()); - ret = executeUpdate(ps, context); + ret = executeUpdate(ps); } finally { close(ps); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -28,5 +28,6 @@ @Override protected void setupBindVariables(Object bean) { setupDeleteBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); } } \ No newline at end of file Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -29,6 +29,7 @@ @Override protected void setupBindVariables(Object bean) { setupInsertBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); } @Override Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -5,16 +5,17 @@ import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; +import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.sql.DataSource; -import org.seasar.dao.ProcedureMetaData; -import org.seasar.dao.ProcedureParameterType; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.board.db.allcommon.s2dao.internal.various.InternalProcedureParameterType; + import org.seasar.extension.jdbc.PropertyType; -import org.seasar.extension.jdbc.ResultSetFactory; import org.seasar.extension.jdbc.ResultSetHandler; import org.seasar.extension.jdbc.StatementFactory; import org.seasar.extension.jdbc.ValueType; @@ -31,7 +32,7 @@ // ========= // Attribute // ========= - private ProcedureMetaData procedureMetaData; + private InternalProcedureMetaData procedureMetaData; //========================================================================== // ========= @@ -40,10 +41,8 @@ public InternalProcedureHandler(final DataSource dataSource, final String sql, final ResultSetHandler resultSetHandler, final StatementFactory statementFactory, - final ResultSetFactory resultSetFactory, - final ProcedureMetaData procedureMetaData) { - super(dataSource, sql, resultSetHandler, statementFactory, - resultSetFactory); + final InternalProcedureMetaData procedureMetaData) { + super(dataSource, sql, resultSetHandler, statementFactory); this.procedureMetaData = procedureMetaData; } @@ -97,9 +96,8 @@ StringBuilder sb = new StringBuilder(100); int pos = 0; int pos2 = 0; - int size = procedureMetaData.getParameterTypeSize(); - for (int i = 0; i < size; i++) { - ProcedureParameterType ppt = procedureMetaData.getParameterType(i); + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { if ((pos2 = sql.indexOf('?', pos)) < 0) { break; } @@ -129,10 +127,9 @@ if (dto == null) { return; } - final int size = procedureMetaData.getParameterTypeSize(); - for (int i = 0; i < size; i++) { - final ProcedureParameterType ppt = procedureMetaData - .getParameterType(i); + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { final ValueType valueType = ppt.getValueType(); if (ppt.isOutType()) { valueType.registerOutParameter(cs, i + 1); @@ -141,6 +138,7 @@ final Object value = ppt.getValue(dto); valueType.bindValue(cs, i + 1, value); } + ++i; } } @@ -148,22 +146,30 @@ throws SQLException { ResultSet rs = null; try { - rs = getResultSetFactory().getResultSet(cs); + rs = getResultSet(cs); return getResultSetHandler().handle(rs); } finally { close(rs); } } + protected ResultSet getResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + protected Object handleOutParameters(final CallableStatement cs, final Object dto, Object returnValue) throws SQLException { if (dto == null) { return null; } - final int size = procedureMetaData.getParameterTypeSize(); - for (int i = 0; i < size; i++) { - final ProcedureParameterType ppt = procedureMetaData - .getParameterType(i); + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { final ValueType valueType = ppt.getValueType(); if (ppt.isOutType()) { Object value = valueType.getValue(cs, i + 1); @@ -183,6 +189,7 @@ } else if (ppt.isReturnType()) { ppt.setValue(dto, returnValue); } + ++i; } return dto; } @@ -202,7 +209,7 @@ } protected ResultSetHandler createOutParameterResultSetHandler( - ProcedureParameterType ppt, ResultSet resultSet) { + InternalProcedureParameterType ppt, ResultSet resultSet) { return new InternalMapListResultSetHandler(); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -36,6 +36,7 @@ @Override protected void setupBindVariables(Object bean) { setupUpdateBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); } @Override Modified: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -28,11 +28,11 @@ protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; - - protected static boolean STATUS_SqlLogExists = false; static { forNameContainerSqlLogRegistryLocator(); } @@ -41,10 +41,56 @@ // ========= // Public Entry // ============ - public static boolean existsSqlLogRegistry() { - return STATUS_SqlLogExists; + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } } + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + public static Object findContainerSqlLogRegistry() { final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); if (sqlLogRegistryLocatorType == null) { @@ -75,7 +121,7 @@ try { final Method method = sqlLogRegistryLocatorType.getMethod( NAME_setInstance, new Class[] { sqlLogRegistryType }); - _log.info("...Closing the registration of sqlLog."); + _log.info("...Closing the registry of sqlLog."); method.invoke(null, new Object[] { null }); } catch (Exception e) { String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; @@ -113,6 +159,22 @@ // ========= // Container Reflection // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + protected static Object createContainerSqlLogImpl(String rawSql, String completeSql, Object[] bindArgs, Class[] bindArgTypes) { try { @@ -187,9 +249,7 @@ Class clazz = null; try { clazz = Class.forName(NAME_SqlLogRegistryLocator); - STATUS_SqlLogExists = true; } catch (Exception ignored) { - STATUS_SqlLogExists = false; return null; } return clazz; @@ -204,4 +264,14 @@ } return clazz; } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } } Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,137 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,101 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.various; + +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaData { + + //========================================================================== + // ========= + // Attribute + // ========= + private String procedureName; + + private Map unorderedMap = createUnorderedMap(); + + private Map parameterTypes = createParameterTypes(); + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureMetaData(final String procedureName) { + this.procedureName = procedureName; + } + + //========================================================================== + // ========= + // Factory + // ======= + protected Map createUnorderedMap() { + return new HashMap(); + } + + protected Map createParameterTypes() { + return new TreeMap( + new ParameterComparator()); + } + + protected class ParameterComparator implements Comparator { + public int compare(String o1, String o2) { + final int oneGreaterThanTwo = 1; + final int twoGreaterThanOne = -1; + final InternalProcedureParameterType parameterType1 = unorderedMap + .get(o1); + final InternalProcedureParameterType parameterType2 = unorderedMap + .get(o2); + if (parameterType1.isReturnType()) { + return twoGreaterThanOne; // Return type is prior + } + if (parameterType2.isReturnType()) { + return oneGreaterThanTwo; // Return type is prior + } + final Integer parameterIndex1 = parameterType1.getParameterIndex(); + final Integer parameterIndex2 = parameterType2.getParameterIndex(); + if (parameterIndex1 == null && parameterIndex2 == null) { + return oneGreaterThanTwo; // No changes + } + if (parameterIndex1 != null && parameterIndex2 == null) { + return twoGreaterThanOne; // Not null is prior + } + if (parameterIndex1 == null && parameterIndex2 != null) { + return oneGreaterThanTwo; // Not null is prior + } + return parameterIndex1.compareTo(parameterIndex2); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getProcedureName() { + return procedureName; + } + + public Collection parameterTypes() { + return parameterTypes.values(); + } + + public void addParameterType( + final InternalProcedureParameterType parameterType) { + final String name = parameterType.getParameterName(); + unorderedMap.put(name, parameterType); + parameterTypes.put(name, parameterType); + if (parameterType.isReturnType()) { + returnType = true; + } + } + + public boolean hasReturnParameterType() { + return returnType; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,232 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionBeanContext; + +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.util.TypeUtil; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaDataFactory { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); + + //========================================================================== + // ========= + // Main + // ==== + public InternalProcedureMetaData createProcedureMetaData( + final String procedureName, final Class pmbType) { + final InternalProcedureMetaData metaData = new InternalProcedureMetaData( + procedureName); + if (pmbType == null) { + return metaData; + } else { + if (!isDtoType(pmbType)) { + throw new IllegalStateException( + "The pmb type was Not DTO type: " + pmbType.getName()); + } + } + final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); + + // *Point + final Stack> stack = new Stack>(); + for (Class clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz + .getSuperclass()) { + stack.push(clazz); + } + for (; !stack.isEmpty();) { + final Class clazz = stack.pop(); + registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields()); + } + + return metaData; + } + + protected void registerParameterType(InternalProcedureMetaData metaData, + BeanDesc pmbDesc, Field[] fields) { + for (Field field : fields) { + if (!isInstanceField(field)) { + continue; + } + final InternalProcedureParameterType ppt = getProcedureParameterType( + pmbDesc, field); + if (ppt == null) { + continue; + } + metaData.addParameterType(ppt); + } + } + + protected InternalProcedureParameterType getProcedureParameterType( + final BeanDesc dtoDesc, final Field field) { + final String procedureParameter = annotationReader + .getProcedureParameter(dtoDesc, field); + if (procedureParameter == null) { + return null; + } + final String type = extractParameterType(procedureParameter); + field.setAccessible(true); + final InternalProcedureParameterType ppt = new InternalProcedureParameterType( + field); + if (type.equalsIgnoreCase("in")) { + ppt.setInType(true); + } else if (type.equalsIgnoreCase("out")) { + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("inout")) { + ppt.setInType(true); + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("return")) { + ppt.setOutType(true); + ppt.setReturnType(true); + } else { + String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterType=" + type; + throw new IllegalStateException(msg); + } + final Integer index = extractParameterIndex(procedureParameter, field); + ppt.setParameterIndex(index); + final ValueType valueType = getValueType(dtoDesc, field); + ppt.setValueType(valueType); + return ppt; + } + + protected String extractParameterType(String procedureParameter) { + if (procedureParameter.contains(",")) { + return procedureParameter.substring(0, + procedureParameter.indexOf(",")).trim(); + } + return procedureParameter.trim(); + } + + protected Integer extractParameterIndex(String procedureParameter, + Field field) { + if (procedureParameter.contains(",")) { + String tmp = procedureParameter.substring( + procedureParameter.indexOf(",") + ",".length()).trim(); + try { + return Integer.valueOf(tmp); + } catch (NumberFormatException e) { + String msg = "The parameter index should be number:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + + procedureParameter; + throw new IllegalStateException(msg, e); + } + } + return null; + } + + protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) { + final String name = annotationReader.getValueType(dtoDesc, field); + if (name != null) { + return valueTypeFactory.getValueTypeByName(name); + } + final Class type = field.getType(); + if (List.class.isAssignableFrom(type)) {// is for out parameter cursor. + if (ConditionBeanContext.isOracle()) { + return ValueTypes.ORACLE_RESULT_SET; + } else if (ConditionBeanContext.isPostgreSql()) { + return ValueTypes.POSTGRE_RESULT_SET; + } else { + return ValueTypes.SERIALIZABLE_BYTE_ARRAY; + } + } + return valueTypeFactory.getValueTypeByClass(type); + } + + protected boolean isInstanceField(final Field field) { + final int mod = field.getModifiers(); + return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); + } + + protected boolean isDtoType(final Class clazz) { + return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); + } + + protected boolean isContainerType(final Class clazz) { + if (clazz == null) { + throw new NullPointerException("clazz"); + } + return Collection.class.isAssignableFrom(clazz) + || Map.class.isAssignableFrom(clazz) || clazz.isArray(); + } + + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected static class InternalFieldProcedureAnnotationReader { + protected String PROCEDURE_PARAMETER_SUFFIX; + + protected String VALUE_TYPE_SUFFIX; + + public InternalFieldProcedureAnnotationReader() { + PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; + VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; + } + + public String getProcedureParameter(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + public String getValueType(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + VALUE_TYPE_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + protected String removeInstanceVariablePrefix(String fieldName) { + return fieldName.startsWith("_") ? fieldName + .substring("_".length()) : fieldName; + } + + protected Object getValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,112 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureParameterType { + + //========================================================================== + // ========= + // Attribute + // ========= + private String parameterName; + + private Integer parameterIndex; + + private Field field; + + private ValueType valueType; + + private boolean inType; + + private boolean outType; + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureParameterType(Field field) { + this.field = field; + this.parameterName = field.getName(); + } + + //========================================================================== + // ========= + // Field Value + // =========== + public Object getValue(Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + public void setValue(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + String msg = "The setting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getParameterName() { + return parameterName; + } + + public Integer getParameterIndex() { + return parameterIndex; + } + + public void setParameterIndex(Integer parameterIndex) { + this.parameterIndex = parameterIndex; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(final ValueType valueType) { + this.valueType = valueType; + } + + public boolean isInType() { + return inType; + } + + public void setInType(final boolean inType) { + this.inType = inType; + } + + public boolean isOutType() { + return outType; + } + + public void setOutType(final boolean outType) { + this.outType = outType; + } + + public boolean isReturnType() { + return returnType; + } + + public void setReturnType(final boolean returnType) { + this.returnType = returnType; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,327 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.impl.RelationRowCreationResource; +import org.seasar.dao.impl.RelationRowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRelationRowCreator extends RelationRowCreatorImpl { + + @Override + protected Object createRelationRow(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + if (!res.hasPropertyCacheElement()) { + return null; + } + setupRelationKeyValue(res); + setupRelationAllValue(res); + return res.getRow(); + } + + @Override + protected void setupRelationKeyValue(RelationRowCreationResource res) { + final RelationPropertyType rpt = res.getRelationPropertyType(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + final DBMeta dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName()); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); + + if (!res.containsColumnName(columnName)) { + continue; + } + if (!res.hasRowInstance()) { + final Object row; + if (dbmeta != null) { + row = dbmeta.newEntity(); + } else { + row = newRelationRow(rpt); + } + res.setRow(row); + } + if (!res.containsRelKeyValueIfExists(columnName)) { + continue; + } + final Object value = res.extractRelKeyValue(columnName); + if (value == null) { + continue; + } + + final String yourKey = rpt.getYourKey(i); + final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey); + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + continue; + } + } + + protected Object createRelationRowInstance(DBMeta dbmeta) { + if (dbmeta != null) { + return dbmeta.newEntity(); + } + return null; + } + + protected DBMeta findDBMeta(Class rowType, String tableName) { + return InternalRowCreator.findDBMeta(rowType, tableName); + } + + @SuppressWarnings("unchecked") + @Override + protected void setupRelationAllValue(RelationRowCreationResource res) + throws SQLException { + final Map propertyCacheElement = res.extractPropertyCacheElement(); + final Set columnNameCacheElementKeySet = propertyCacheElement.keySet(); + for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite + .hasNext();) { + final String columnName = (String) ite.next(); + final PropertyType pt = (PropertyType) propertyCacheElement + .get(columnName); + res.setCurrentPropertyType(pt); + if (!isValidRelationPerPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + setupRelationProperty(res); + } + if (!isValidRelationAfterPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + res.clearValidValueCount(); + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + setupNextRelationRow(res); + } + } + + @Override + protected void registerRelationValue(RelationRowCreationResource res, + String columnName) throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + Object value = null; + if (res.containsRelKeyValueIfExists(columnName)) { + value = res.extractRelKeyValue(columnName); + } else { + final ValueType valueType = pt.getValueType(); + value = valueType.getValue(res.getResultSet(), columnName); + } + + if (value != null) { + res.incrementValidValueCount(); + final DBMeta dbmeta = findDBMeta(res.getRow()); + final String propertyName = pt.getPropertyName(); + if (dbmeta != null + && dbmeta.hasEntityPropertySetupper(propertyName)) { + dbmeta.setupEntityProperty(propertyName, res.getRow(), value); + } else { + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + } + } + } + + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + protected DBMeta findDBMeta(Object row) { + return InternalRowCreator.findDBMeta(row); + } + + @Override + protected void setupPropertyCache(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + res.initializePropertyCacheElement(); + + // Do only selected foreign property for performance if condition-bean + // exists. + if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) { + return; + } + + // Set up property cache about current beanMetaData. + final BeanMetaData nextBmd = res.getRelationBeanMetaData(); + for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { + final PropertyType pt = nextBmd.getPropertyType(i); + res.setCurrentPropertyType(pt); + if (!isTargetProperty(res)) { + continue; + } + setupPropertyCacheElement(res); + } + + // Set up next relation. + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + res.backupRelationPropertyType(); + res.incrementCurrentRelationNestLevel(); + try { + setupNextPropertyCache(res, nextBmd); + } finally { + res.restoreRelationPropertyType(); + res.decrementCurrentRelationNestLevel(); + } + } + } + + @Override + protected boolean isTargetProperty(RelationRowCreationResource res) + throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + if (!pt.getPropertyDesc().hasWriteMethod()) { + return false; + } + if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() + .getPropertyType())) { + return false; + } + return true; + } + + @Override + protected boolean isCreateDeadLink() { + return false; + } + + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForRow(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues, + Map relationPropertyCache) throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setResultSet(rs); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelKeyValues(relKeyValues); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix("");// as Default + res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); + res.setLimitRelationNestLevel(getLimitRelationNestLevel()); + res.setCurrentRelationNestLevel(1);// as Default + res.setCreateDeadLink(isCreateDeadLink()); + return res; + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForPropertyCache( + RelationPropertyType rpt, Set columnNames, + Map relationPropertyCache, String baseSuffix, + String relationNoSuffix, int limitRelationNestLevel) + throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix(baseSuffix); + res.setRelationNoSuffix(relationNoSuffix); + res.setLimitRelationNestLevel(limitRelationNestLevel); + res.setCurrentRelationNestLevel(1);// as Default + return res; + } + + protected boolean isConditionBeanSelectedRelation( + RelationRowCreationResource res) { + if (hasConditionBean(res)) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo( + res.getRelationNoSuffix())) { + return true; + } + } + return false; + } + + protected boolean hasConditionBean(RelationRowCreationResource res) { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) { + return true; + } + return false; + } + + protected static class RelationRowCreationResourceExtension extends + RelationRowCreationResource { + protected Stack backupRelationPropertyType = new Stack(); + + protected Stack backupBaseSuffix = new Stack(); + + protected Stack backupRelationSuffix = new Stack(); + + @Override + public void backupRelationPropertyType() { + backupRelationPropertyType.push(getRelationPropertyType()); + } + + @Override + public void restoreRelationPropertyType() { + setRelationPropertyType(backupRelationPropertyType.pop()); + } + + @Override + public void backupSuffixAndPrepare(String baseSuffix, + String additionalRelationNoSuffix) { + backupBaseSuffixExtension(); + backupRelationNoSuffixExtension(); + setBaseSuffix(baseSuffix); + addRelationNoSuffix(additionalRelationNoSuffix); + } + + @Override + public void restoreSuffix() { + restoreBaseSuffixExtension(); + restoreRelationNoSuffixExtension(); + } + + protected void backupBaseSuffixExtension() { + backupBaseSuffix.push(getBaseSuffix()); + } + + protected void restoreBaseSuffixExtension() { + setBaseSuffix(backupBaseSuffix.pop()); + } + + protected void backupRelationNoSuffixExtension() { + backupRelationSuffix.push(getRelationNoSuffix()); + } + + protected void restoreRelationNoSuffixExtension() { + setRelationNoSuffix(backupRelationSuffix.pop()); + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRowCreator.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRowCreator.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRowCreator.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,289 @@ +package jp.sf.pal.board.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.InternalMapContext; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.board.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.impl.RowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRowCreator extends RowCreatorImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalRowCreator.class); + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta _dbmeta; + + //========================================================================== + // ========= + // Constructor + // =========== + protected InternalRowCreator() { + } + + /** + * @param beanClass The class of target bean to find DB-meta. (Nullable) + * @return The instance of internal row creator. (NotNull) + */ + public static InternalRowCreator createInternalRowCreator(Class beanClass) { + final InternalRowCreator rowCreator = new InternalRowCreator(); + if (beanClass != null) { + rowCreator.setDBMeta(findDBMetaByClass(beanClass)); + } + return rowCreator; + } + + //========================================================================== + // ========= + // Main + // ==== + @SuppressWarnings("unchecked") + @Override + public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) + throws SQLException { + final Set columnNameSet = propertyCache.keySet(); + String columnName = null; + PropertyType pt = null; + String propertyName = null; + final Object row; + final DBMeta dbmeta; + if (_dbmeta != null) { + dbmeta = _dbmeta; + row = dbmeta.newEntity(); + } else { + row = newBean(beanClass); + dbmeta = findDBMeta(row); + } + try { + if (dbmeta != null) { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + if (dbmeta.hasEntityPropertySetupper(propertyName)) { + final ValueType valueType = pt.getValueType(); + final Object value = valueType.getValue(rs, columnName); + dbmeta.setupEntityProperty(propertyName, row, value); + } else { + registerValue(rs, row, pt, columnName); + } + } + } else { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + registerValue(rs, row, pt, columnName); + } + } + return row; + } catch (ClassCastException e) { + if (_log.isWarnEnabled()) { + String msg = ClassCastException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName + " dbmeta"); + } + throwNonsenseClassCastException(row, dbmeta, e); + return null; // Unreachable! + } catch (SQLException e) { + if (_log.isWarnEnabled()) { + String msg = SQLException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName); + } + throw e; + } + } + + protected void throwNonsenseClassCastException(Object entity, + DBMeta dbmeta, ClassCastException e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "This exception may be from ClassLoader Headache about HotDeploy." + + getLineSeparator(); + msg = msg + + "Please add the ignore-package setting to convention.dicon like as follows:" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + + getLineSeparator(); + msg = msg + " ¡Écom.example.xxx.dbflute¡É" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + + entity.getClass().getClassLoader() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + + dbmeta.getClass().getClassLoader() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new NonsenseClassCastException(msg, e); + } + + public static class NonsenseClassCastException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public NonsenseClassCastException(String msg, ClassCastException e) { + super(msg, e); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Object row) { + return DBMetaCacheHandler.findDBMeta(row); + } + + /** + * @param rowType The type of row. (NotNull) + * @param tableName The name of table. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Class rowType, String tableName) { + return DBMetaCacheHandler.findDBMeta(rowType, tableName); + } + + protected static class DBMetaCacheHandler { + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + public static DBMeta findDBMeta(Object row) { + if (!(row instanceof Entity)) { + return null; + } + final Entity entity = (Entity) row; + DBMeta dbmeta = findCachedDBMeta(entity.getClass()); + if (dbmeta != null) { + return dbmeta; + } + dbmeta = entity.getDBMeta(); + cacheDBMeta(entity, dbmeta); + return dbmeta; + } + + public static DBMeta findDBMeta(Class rowType, String tableName) { + DBMeta dbmeta = findCachedDBMeta(rowType); + if (dbmeta != null) { + return dbmeta; + } + try { + dbmeta = DBMetaInstanceHandler.findDBMeta(tableName); + } catch (DBMetaInstanceHandler.DBMetaNotFoundException ignored) { + return null; + } + cacheDBMeta(rowType, dbmeta); + return dbmeta; + } + + protected static DBMeta findCachedDBMeta(Class rowType) { + Map, DBMeta> dbmetaCache = findDBMetaCache(); + if (dbmetaCache == null) { + dbmetaCache = new HashMap, DBMeta>(); + InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); + } + return dbmetaCache.get(rowType); + } + + protected static void cacheDBMeta(Entity entity, DBMeta dbmeta) { + cacheDBMeta(entity.getClass(), dbmeta); + } + + protected static void cacheDBMeta(Class type, DBMeta dbmeta) { + final Map, DBMeta> dbmetaCache = findDBMetaCache(); + dbmetaCache.put(type, dbmeta); + } + + @SuppressWarnings("unchecked") + protected static Map, DBMeta> findDBMetaCache() { + return (Map, DBMeta>) InternalMapContext + .getObject(DBMETA_CACHE_KEY); + } + } + + protected static DBMeta findDBMetaByClass(Class beanClass) { + final Object instance = newInstance(beanClass); + if (!(instance instanceof Entity)) { + return null; + } + return ((Entity) instance).getDBMeta(); + } + + protected static Object newInstance(Class clazz) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setDBMeta(DBMeta dbmeta) { + this._dbmeta = dbmeta; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/allcommon/s2dao/internal/various/InternalRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsAttachmentBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsAttachmentBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsAttachmentBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -14,6 +14,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.AttachmentDbm; import jp.sf.pal.board.db.cbean.AttachmentCB; @@ -57,7 +58,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsAttachmentBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -220,16 +220,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of Attachment. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(AttachmentCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -237,10 +236,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of Attachment. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final AttachmentCB cb) { assertConditionBeanNotNull(cb); @@ -286,7 +285,7 @@ * Load referrer of messageAttachmentList with the setupper for * condition-bean of referrer.
    About internal policy, the value of * primary key(and others too) is treated as case-insensitive.
    The - * conditionBean that the setupper provides have settings before you touch + * condition-bean that the setupper provides have settings before you touch * it. It is as follows: * *
    @@ -295,8 +294,8 @@
          * 
    * * @param attachmentList The entity list of attachment. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadMessageAttachmentList(List attachmentList, ConditionBeanSetupper conditionBeanSetupper) { @@ -316,7 +315,7 @@ * setupper.} * * @param attachmentList The entity list of attachment. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadMessageAttachmentList( List attachmentList, @@ -328,7 +327,7 @@ if (attachmentList.isEmpty()) { return; } - final MessageAttachmentBhv referrerBhv = getBehaviorSelector().select( + final MessageAttachmentBhv referrerBhv = xgetBSFLR().select( MessageAttachmentBhv.class); helpLoadReferrerInternally( attachmentList, @@ -378,8 +377,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ + // Pullout Foreign + // =============== //========================================================================== // ========= @@ -591,18 +590,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Attachment delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(AttachmentCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryAccessBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryAccessBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryAccessBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -12,6 +12,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.CategoryAccessDbm; import jp.sf.pal.board.db.cbean.CategoryAccessCB; @@ -53,7 +54,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsCategoryAccessBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -219,16 +219,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of CategoryAccess. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(CategoryAccessCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -236,10 +235,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of CategoryAccess. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final CategoryAccessCB cb) { assertConditionBeanNotNull(cb); @@ -285,9 +284,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'Category'. * @@ -636,18 +634,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected CategoryAccess delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(CategoryAccessCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsCategoryBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -14,6 +14,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.CategoryDbm; import jp.sf.pal.board.db.cbean.CategoryAccessCB; @@ -60,7 +61,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsCategoryBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -223,16 +223,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of Category. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(CategoryCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -240,10 +239,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of Category. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final CategoryCB cb) { assertConditionBeanNotNull(cb); @@ -288,8 +287,8 @@ /** * Load referrer of categoryAccessList with the setupper for condition-bean * of referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -298,8 +297,8 @@
          * 
    * * @param categoryList The entity list of category. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadCategoryAccessList(List categoryList, ConditionBeanSetupper conditionBeanSetupper) { @@ -319,7 +318,7 @@ * setupper.} * * @param categoryList The entity list of category. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadCategoryAccessList( List categoryList, @@ -331,7 +330,7 @@ if (categoryList.isEmpty()) { return; } - final CategoryAccessBhv referrerBhv = getBehaviorSelector().select( + final CategoryAccessBhv referrerBhv = xgetBSFLR().select( CategoryAccessBhv.class); helpLoadReferrerInternally( categoryList, @@ -381,8 +380,8 @@ /** * Load referrer of messageList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -391,8 +390,8 @@
          * 
    * * @param categoryList The entity list of category. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadMessageList(List categoryList, ConditionBeanSetupper conditionBeanSetupper) { @@ -412,7 +411,7 @@ * setupper.} * * @param categoryList The entity list of category. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadMessageList(List categoryList, LoadReferrerOption loadReferrerOption) { @@ -422,8 +421,7 @@ if (categoryList.isEmpty()) { return; } - final MessageBhv referrerBhv = getBehaviorSelector().select( - MessageBhv.class); + final MessageBhv referrerBhv = xgetBSFLR().select(MessageBhv.class); helpLoadReferrerInternally( categoryList, loadReferrerOption, @@ -471,8 +469,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ + // Pullout Foreign + // =============== //========================================================================== // ========= @@ -798,18 +796,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Category delegateGetEntity(Integer id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(CategoryCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupInfoBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,897 @@ +package jp.sf.pal.board.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.board.db.allcommon.DaoReadable; +import jp.sf.pal.board.db.allcommon.DaoWritable; +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.board.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.exbhv.GroupMappingBhv; +import jp.sf.pal.board.db.exbhv.UserInfoBhv; +import jp.sf.pal.board.db.exdao.GroupInfoDao; +import jp.sf.pal.board.db.exentity.GroupInfo; +import jp.sf.pal.board.db.exentity.GroupMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException When + * the entity has already been deleted. + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException When the + * entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupMappingBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,602 @@ +package jp.sf.pal.board.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.board.db.allcommon.DaoReadable; +import jp.sf.pal.board.db.allcommon.DaoWritable; +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.exdao.GroupMappingDao; +import jp.sf.pal.board.db.exentity.GroupInfo; +import jp.sf.pal.board.db.exentity.GroupMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException When + * the entity has already been deleted. + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException When the + * entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageAttachmentBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageAttachmentBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageAttachmentBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -12,6 +12,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.MessageAttachmentDbm; import jp.sf.pal.board.db.cbean.MessageAttachmentCB; @@ -54,7 +55,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsMessageAttachmentBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -221,16 +221,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of MessageAttachment. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(MessageAttachmentCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -238,10 +237,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of MessageAttachment. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage( final MessageAttachmentCB cb) { @@ -288,9 +287,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'Attachment'. * @@ -660,18 +658,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected MessageAttachment delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(MessageAttachmentCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -14,6 +14,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.MessageDbm; import jp.sf.pal.board.db.cbean.MessageAttachmentCB; @@ -62,7 +63,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsMessageBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -225,16 +225,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of Message. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(MessageCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -242,10 +241,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of Message. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final MessageCB cb) { assertConditionBeanNotNull(cb); @@ -291,7 +290,7 @@ * Load referrer of messageAttachmentList with the setupper for * condition-bean of referrer.
    About internal policy, the value of * primary key(and others too) is treated as case-insensitive.
    The - * conditionBean that the setupper provides have settings before you touch + * condition-bean that the setupper provides have settings before you touch * it. It is as follows: * *
    @@ -300,8 +299,8 @@
          * 
    * * @param messageList The entity list of message. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadMessageAttachmentList(List messageList, ConditionBeanSetupper conditionBeanSetupper) { @@ -321,7 +320,7 @@ * setupper.} * * @param messageList The entity list of message. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadMessageAttachmentList( List messageList, @@ -333,7 +332,7 @@ if (messageList.isEmpty()) { return; } - final MessageAttachmentBhv referrerBhv = getBehaviorSelector().select( + final MessageAttachmentBhv referrerBhv = xgetBSFLR().select( MessageAttachmentBhv.class); helpLoadReferrerInternally( messageList, @@ -382,8 +381,8 @@ /** * Load referrer of replyList with the setupper for condition-bean of * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The conditionBean that - * the setupper provides have settings before you touch it. It is as + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as * follows: * *
    @@ -392,8 +391,8 @@
          * 
    * * @param messageList The entity list of message. (NotNull) - * @param conditionBeanSetupper Referrer condition setupper instance for - * registering referrer condition. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) */ public void loadReplyList(List messageList, ConditionBeanSetupper conditionBeanSetupper) { @@ -412,7 +411,7 @@ * setupper.} * * @param messageList The entity list of message. (NotNull) - * @param loadReferrerOption the option of load-referrer. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) */ public void loadReplyList(List messageList, LoadReferrerOption loadReferrerOption) { @@ -422,8 +421,7 @@ if (messageList.isEmpty()) { return; } - final ReplyBhv referrerBhv = getBehaviorSelector().select( - ReplyBhv.class); + final ReplyBhv referrerBhv = xgetBSFLR().select(ReplyBhv.class); helpLoadReferrerInternally( messageList, loadReferrerOption, @@ -468,9 +466,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'Category'. * @@ -827,18 +824,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Message delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(MessageCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageContentBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageContentBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsMessageContentBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -12,6 +12,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.MessageContentDbm; import jp.sf.pal.board.db.cbean.MessageContentCB; @@ -53,7 +54,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsMessageContentBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -219,16 +219,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of MessageContent. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(MessageContentCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -236,10 +235,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of MessageContent. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final MessageContentCB cb) { assertConditionBeanNotNull(cb); @@ -285,9 +284,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'Message'. * @@ -515,18 +513,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected MessageContent delegateGetEntity(Long messageId) { - return getMyDao().getEntity(messageId); - } - protected int delegateSelectCount(MessageContentCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsReplyBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsReplyBhv.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsReplyBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -12,6 +12,7 @@ import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.board.db.bsentity.dbmeta.ReplyDbm; import jp.sf.pal.board.db.cbean.ReplyCB; @@ -53,7 +54,6 @@ * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public abstract class BsReplyBhv extends jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { @@ -216,16 +216,15 @@ // List Select // =========== /** - * Select the list as result-bean. + * Select the list as result bean. * * @param cb The condition-bean of Reply. (NotNull) - * @return The result-bean of selected list. (NotNull) + * @return The result bean of selected list. (NotNull) */ public ListResultBean selectList(ReplyCB cb) { assertConditionBeanNotNull(cb); - return new jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder( - getTableDbName()).buildListResultBean(cb, - delegateSelectList(cb)); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); } //========================================================================== @@ -233,10 +232,10 @@ // Page Select // =========== /** - * Select the page as result-bean. + * Select the page as result bean. * * @param cb The condition-bean of Reply. (NotNull) - * @return The result-bean of selected page. (NotNull) + * @return The result bean of selected page. (NotNull) */ public PagingResultBean selectPage(final ReplyCB cb) { assertConditionBeanNotNull(cb); @@ -281,9 +280,8 @@ //========================================================================== // ========= - // Pull Out Foreign - // ================ - + // Pullout Foreign + // =============== /** * Pull out the list of foreign table 'Message'. * @@ -507,18 +505,6 @@ // ----------------------------------------------------- // Select // ------ - protected int delegateGetCountAll() { - return getMyDao().getCountAll(); - } - - protected List delegateGetListAll() { - return getMyDao().getListAll(); - } - - protected Reply delegateGetEntity(Long id) { - return getMyDao().getEntity(id); - } - protected int delegateSelectCount(ReplyCB cb) { assertConditionBeanNotNull(cb); return getMyDao().selectCount(cb); Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleInfoBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,895 @@ +package jp.sf.pal.board.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.board.db.allcommon.DaoReadable; +import jp.sf.pal.board.db.allcommon.DaoWritable; +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.board.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.exbhv.RoleMappingBhv; +import jp.sf.pal.board.db.exbhv.UserInfoBhv; +import jp.sf.pal.board.db.exdao.RoleInfoDao; +import jp.sf.pal.board.db.exentity.RoleInfo; +import jp.sf.pal.board.db.exentity.RoleMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException When + * the entity has already been deleted. + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException When the + * entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleMappingBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,597 @@ +package jp.sf.pal.board.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.board.db.allcommon.DaoReadable; +import jp.sf.pal.board.db.allcommon.DaoWritable; +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.exdao.RoleMappingDao; +import jp.sf.pal.board.db.exentity.RoleInfo; +import jp.sf.pal.board.db.exentity.RoleMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException When + * the entity has already been deleted. + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException When the + * entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,927 @@ +package jp.sf.pal.board.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.board.db.allcommon.DaoReadable; +import jp.sf.pal.board.db.allcommon.DaoWritable; +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.board.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.board.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingBean; +import jp.sf.pal.board.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.board.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.board.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.board.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.exbhv.GroupMappingBhv; +import jp.sf.pal.board.db.exbhv.RoleMappingBhv; +import jp.sf.pal.board.db.exdao.UserInfoDao; +import jp.sf.pal.board.db.exentity.GroupInfo; +import jp.sf.pal.board.db.exentity.GroupMapping; +import jp.sf.pal.board.db.exentity.RoleInfo; +import jp.sf.pal.board.db.exentity.RoleMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.board.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException When + * the entity has already been deleted. + * @exception + * jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException When the + * entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.board.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.board.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsAttachmentDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsAttachmentDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsAttachmentDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,49 +6,32 @@ import jp.sf.pal.board.db.exentity.Attachment; /** - * The dao interface of ATTACHMENT. + * The DAO interface of ATTACHMENT. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsAttachmentDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = Attachment.class;// For S2Dao + public Class BEAN = Attachment.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from ATTACHMENT"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, DATA, NAME, SIZE, CONTENT_TYPE, CREATED_TIME, CREATED_BY from ATTACHMENT"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, DATA, NAME, SIZE, CONTENT_TYPE, CREATED_TIME, CREATED_BY from ATTACHMENT where ATTACHMENT.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Attachment getEntity(Long id); - public int selectCount(AttachmentCB cb); public List selectList(AttachmentCB cb); - public int insert(Attachment entity); + int insert(Attachment entity); - public int updateModifiedOnly(Attachment entity); + int updateModifiedOnly(Attachment entity); - public int delete(Attachment entity); + int delete(Attachment entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int updateByQuery(AttachmentCB cb, Attachment entity);//{DBFlute-0.7.5 + int updateByQuery(AttachmentCB cb, Attachment entity); - // } + int[] deleteList(List entityList); - public int[] deleteList(List entityList); - - public int deleteByQuery(AttachmentCB cb); + int deleteByQuery(AttachmentCB cb); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryAccessDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryAccessDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryAccessDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,60 +6,40 @@ import jp.sf.pal.board.db.exentity.CategoryAccess; /** - * The dao interface of CATEGORY_ACCESS. + * The DAO interface of CATEGORY_ACCESS. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsCategoryAccessDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = CategoryAccess.class;// For S2Dao + public Class BEAN = CategoryAccess.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from CATEGORY_ACCESS"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, NAME, ACCESS_TYPE, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO from CATEGORY_ACCESS"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, NAME, ACCESS_TYPE, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO from CATEGORY_ACCESS where CATEGORY_ACCESS.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public CategoryAccess getEntity(Long id); - public int selectCount(CategoryAccessCB cb); public List selectList(CategoryAccessCB cb); - public int insert(CategoryAccess entity); + int insert(CategoryAccess entity); - public int updateModifiedOnly(CategoryAccess entity); + int updateModifiedOnly(CategoryAccess entity); - public int updateNonstrictModifiedOnly(CategoryAccess entity); + int updateNonstrictModifiedOnly(CategoryAccess entity); - public int delete(CategoryAccess entity); + int delete(CategoryAccess entity); - public int deleteNonstrict(CategoryAccess entity); + int deleteNonstrict(CategoryAccess entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(CategoryAccessCB cb, CategoryAccess entity);// { + int updateByQuery(CategoryAccessCB cb, CategoryAccess entity); - // DBFlute - // - - // 0.7.5 - // } + int[] deleteList(List entityList); - public int[] deleteList(List entityList); + int[] deleteListNonstrict(List entityList); - public int[] deleteListNonstrict(List entityList); - - public int deleteByQuery(CategoryAccessCB cb); + int deleteByQuery(CategoryAccessCB cb); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsCategoryDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,54 +6,39 @@ import jp.sf.pal.board.db.exentity.Category; /** - * The dao interface of CATEGORY. + * The DAO interface of CATEGORY. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsCategoryDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = Category.class;// For S2Dao + public Class BEAN = Category.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from CATEGORY"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, NAME, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from CATEGORY"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, NAME, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from CATEGORY where CATEGORY.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Category getEntity(Integer id); - public int selectCount(CategoryCB cb); public List selectList(CategoryCB cb); - public int insert(Category entity); + int insert(Category entity); - public int updateModifiedOnly(Category entity); + int updateModifiedOnly(Category entity); - public int updateNonstrictModifiedOnly(Category entity); + int updateNonstrictModifiedOnly(Category entity); - public int delete(Category entity); + int delete(Category entity); - public int deleteNonstrict(Category entity); + int deleteNonstrict(Category entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(CategoryCB cb, Category entity);// {DBFlute-0.7.5} + int updateByQuery(CategoryCB cb, Category entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int[] deleteListNonstrict(List entityList); + int[] deleteListNonstrict(List entityList); - public int deleteByQuery(CategoryCB cb); + int deleteByQuery(CategoryCB cb); } Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupInfoDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupInfoDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupInfoDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,45 @@ +package jp.sf.pal.board.db.bsdao; + +import java.util.List; + +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.board.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupMappingDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupMappingDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupMappingDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,37 @@ +package jp.sf.pal.board.db.bsdao; + +import java.util.List; + +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.board.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageAttachmentDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageAttachmentDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageAttachmentDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,61 +6,40 @@ import jp.sf.pal.board.db.exentity.MessageAttachment; /** - * The dao interface of MESSAGE_ATTACHMENT. + * The DAO interface of MESSAGE_ATTACHMENT. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsMessageAttachmentDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = MessageAttachment.class;// For S2Dao + public Class BEAN = MessageAttachment.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from MESSAGE_ATTACHMENT"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, MEMO, VERSIONABLE, MESSAGE_ID, ATTACHMENT_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from MESSAGE_ATTACHMENT"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, MEMO, VERSIONABLE, MESSAGE_ID, ATTACHMENT_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from MESSAGE_ATTACHMENT where MESSAGE_ATTACHMENT.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public MessageAttachment getEntity(Long id); - public int selectCount(MessageAttachmentCB cb); public List selectList(MessageAttachmentCB cb); - public int insert(MessageAttachment entity); + int insert(MessageAttachment entity); - public int updateModifiedOnly(MessageAttachment entity); + int updateModifiedOnly(MessageAttachment entity); - public int updateNonstrictModifiedOnly(MessageAttachment entity); + int updateNonstrictModifiedOnly(MessageAttachment entity); - public int delete(MessageAttachment entity); + int delete(MessageAttachment entity); - public int deleteNonstrict(MessageAttachment entity); + int deleteNonstrict(MessageAttachment entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(MessageAttachmentCB cb, MessageAttachment entity);// { + int updateByQuery(MessageAttachmentCB cb, MessageAttachment entity); - // DBFlute - // - - // 0.7 - // .5 - // } + int[] deleteList(List entityList); - public int[] deleteList(List entityList); + int[] deleteListNonstrict(List entityList); - public int[] deleteListNonstrict(List entityList); - - public int deleteByQuery(MessageAttachmentCB cb); + int deleteByQuery(MessageAttachmentCB cb); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageContentDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageContentDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageContentDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,52 +6,32 @@ import jp.sf.pal.board.db.exentity.MessageContent; /** - * The dao interface of MESSAGE_CONTENT. + * The DAO interface of MESSAGE_CONTENT. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsMessageContentDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = MessageContent.class;// For S2Dao + public Class BEAN = MessageContent.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from MESSAGE_CONTENT"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select MESSAGE_ID, CONTENT from MESSAGE_CONTENT"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select MESSAGE_ID, CONTENT from MESSAGE_CONTENT where MESSAGE_CONTENT.MESSAGE_ID = /*messageId*/null"; - - public static final String getEntity_ARGS = "messageId"; - - public MessageContent getEntity(Long messageId); - public int selectCount(MessageContentCB cb); public List selectList(MessageContentCB cb); - public int insert(MessageContent entity); + int insert(MessageContent entity); - public int updateModifiedOnly(MessageContent entity); + int updateModifiedOnly(MessageContent entity); - public int delete(MessageContent entity); + int delete(MessageContent entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int updateByQuery(MessageContentCB cb, MessageContent entity);// { + int updateByQuery(MessageContentCB cb, MessageContent entity); - // DBFlute - // - - // 0.7.5 - // } + int[] deleteList(List entityList); - public int[] deleteList(List entityList); - - public int deleteByQuery(MessageContentCB cb); + int deleteByQuery(MessageContentCB cb); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsMessageDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,54 +6,39 @@ import jp.sf.pal.board.db.exentity.Message; /** - * The dao interface of MESSAGE. + * The DAO interface of MESSAGE. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsMessageDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = Message.class;// For S2Dao + public Class BEAN = Message.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from MESSAGE"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, DISPLAY_NAME, TITLE, STATUS, START_TIME, END_TIME, HAS_REPLY, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from MESSAGE"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, DISPLAY_NAME, TITLE, STATUS, START_TIME, END_TIME, HAS_REPLY, CATEGORY_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO from MESSAGE where MESSAGE.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Message getEntity(Long id); - public int selectCount(MessageCB cb); public List selectList(MessageCB cb); - public int insert(Message entity); + int insert(Message entity); - public int updateModifiedOnly(Message entity); + int updateModifiedOnly(Message entity); - public int updateNonstrictModifiedOnly(Message entity); + int updateNonstrictModifiedOnly(Message entity); - public int delete(Message entity); + int delete(Message entity); - public int deleteNonstrict(Message entity); + int deleteNonstrict(Message entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int[] updateListNonstrict(List entityList); + int[] updateListNonstrict(List entityList); - public int updateByQuery(MessageCB cb, Message entity);// {DBFlute-0.7.5} + int updateByQuery(MessageCB cb, Message entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int[] deleteListNonstrict(List entityList); + int[] deleteListNonstrict(List entityList); - public int deleteByQuery(MessageCB cb); + int deleteByQuery(MessageCB cb); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsReplyDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsReplyDao.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsReplyDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -6,46 +6,31 @@ import jp.sf.pal.board.db.exentity.Reply; /** - * The dao interface of REPLY. + * The DAO interface of REPLY. * * @author DBFlute(AutoGenerator) */ - ¡÷ SuppressWarnings("unchecked") public interface BsReplyDao extends jp.sf.pal.board.db.allcommon.DaoWritable { - public Class BEAN = Reply.class;// For S2Dao + public Class BEAN = Reply.class; // For S2Dao - public static final String getCountAll_SQL = "select count(*) from REPLY"; - - public int getCountAll(); - - public static final String getListAll_SQL = "select ID, DISPLAY_NAME, CONTENT, MESSAGE_ID, CREATED_TIME, CREATED_BY, DELETED_TIME, DELETED_BY from REPLY"; - - public java.util.List getListAll(); - - public static final String getEntity_SQL = "select ID, DISPLAY_NAME, CONTENT, MESSAGE_ID, CREATED_TIME, CREATED_BY, DELETED_TIME, DELETED_BY from REPLY where REPLY.ID = /*id*/null"; - - public static final String getEntity_ARGS = "id"; - - public Reply getEntity(Long id); - public int selectCount(ReplyCB cb); public List selectList(ReplyCB cb); - public int insert(Reply entity); + int insert(Reply entity); - public int updateModifiedOnly(Reply entity); + int updateModifiedOnly(Reply entity); - public int delete(Reply entity); + int delete(Reply entity); - public int[] insertList(List entityList); + int[] insertList(List entityList); - public int[] updateList(List entityList); + int[] updateList(List entityList); - public int updateByQuery(ReplyCB cb, Reply entity);// {DBFlute-0.7.5} + int updateByQuery(ReplyCB cb, Reply entity); - public int[] deleteList(List entityList); + int[] deleteList(List entityList); - public int deleteByQuery(ReplyCB cb); + int deleteByQuery(ReplyCB cb); } Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleInfoDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleInfoDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleInfoDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,44 @@ +package jp.sf.pal.board.db.bsdao; + +import java.util.List; + +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends jp.sf.pal.board.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleMappingDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleMappingDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleMappingDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,37 @@ +package jp.sf.pal.board.db.bsdao; + +import java.util.List; + +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.board.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsUserInfoDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsUserInfoDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsUserInfoDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,44 @@ +package jp.sf.pal.board.db.bsdao; + +import java.util.List; + +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends jp.sf.pal.board.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsAttachment.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsAttachment.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsAttachment.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -10,7 +10,7 @@ import jp.sf.pal.board.db.exentity.MessageAttachment; /** - * The entity of ATTACHMENT(TABLE). + * The entity of ATTACHMENT that the type is TABLE.
    * *
      * [primary-key]
    @@ -66,29 +66,25 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_FB4FD353_2751_4F2F_887D_3D1E78C7C7DA]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'DATA'. {BLOB : NotNull} */
    +    /** DATA: {NotNull : BLOB} */
         protected byte[] _data;
     
    -    /** The attribute of the column 'NAME'. {VARCHAR(255)} */
    +    /** NAME: {VARCHAR(255)} */
         protected String _name;
     
    -    /** The attribute of the column 'SIZE'. {INTEGER} */
    +    /** SIZE: {INTEGER} */
         protected Integer _size;
     
    -    /** The attribute of the column 'CONTENT_TYPE'. {VARCHAR(40)} */
    +    /** CONTENT_TYPE: {VARCHAR(40)} */
         protected String _contentType;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
         // -----------------------------------------------------
    @@ -147,13 +143,11 @@
         // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
         // Referrer Property = [messageAttachmentList]
         // * * * * * * * * */
    -
    -    /** The entity list of referrer property 'messageAttachmentList'. */
    +    /** MESSAGE_ATTACHMENT as 'messageAttachmentList'. */
         protected List _childrenMessageAttachmentList;
     
         /**
    -     * Get the entity list of referrer property 'messageAttachmentList'.
    -     * {without lazy-load} 
    + * MESSAGE_ATTACHMENT as 'messageAttachmentList'. {without lazy-load}
    * * @return The entity list of referrer property 'messageAttachmentList'. * (NotNull: If it's not loaded yet, initializes the list instance @@ -167,7 +161,7 @@ } /** - * Set the entity list of referrer property 'messageAttachmentList'. + * MESSAGE_ATTACHMENT as 'messageAttachmentList'. * * @param messageAttachmentList The entity list of referrer property * 'messageAttachmentList'. (Nullable) @@ -274,17 +268,11 @@ // Accessor // ======== - /** - * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_FB4FD353_2751_4F2F_887D_3D1E78C7C7DA]} - */ + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ public static final String id_COLUMN = "ID"; /** - * Get the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_FB4FD353_2751_4F2F_887D_3D1E78C7C7DA]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -293,9 +281,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_FB4FD353_2751_4F2F_887D_3D1E78C7C7DA]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -304,11 +290,11 @@ this._id = id; } - /** The column annotation for S2Dao. {BLOB : NotNull} */ + /** The column annotation for S2Dao. {NotNull : BLOB} */ public static final String data_COLUMN = "DATA"; /** - * Get the value of the column 'DATA'.
    {BLOB : NotNull} + * DATA: {NotNull : BLOB}
    * * @return The value of the column 'DATA'. (Nullable) */ @@ -317,7 +303,7 @@ } /** - * Set the value of the column 'DATA'.
    {BLOB : NotNull} + * DATA: {NotNull : BLOB}
    * * @param data The value of the column 'DATA'. (Nullable) */ @@ -330,7 +316,7 @@ public static final String name_COLUMN = "NAME"; /** - * Get the value of the column 'NAME'.
    {VARCHAR(255)} + * NAME: {VARCHAR(255)}
    * * @return The value of the column 'NAME'. (Nullable) */ @@ -339,7 +325,7 @@ } /** - * Set the value of the column 'NAME'.
    {VARCHAR(255)} + * NAME: {VARCHAR(255)}
    * * @param name The value of the column 'NAME'. (Nullable) */ @@ -352,7 +338,7 @@ public static final String size_COLUMN = "SIZE"; /** - * Get the value of the column 'SIZE'.
    {INTEGER} + * SIZE: {INTEGER}
    * * @return The value of the column 'SIZE'. (Nullable) */ @@ -361,7 +347,7 @@ } /** - * Set the value of the column 'SIZE'.
    {INTEGER} + * SIZE: {INTEGER}
    * * @param size The value of the column 'SIZE'. (Nullable) */ @@ -374,7 +360,7 @@ public static final String contentType_COLUMN = "CONTENT_TYPE"; /** - * Get the value of the column 'CONTENT_TYPE'.
    {VARCHAR(40)} + * CONTENT_TYPE: {VARCHAR(40)}
    * * @return The value of the column 'CONTENT_TYPE'. (Nullable) */ @@ -383,7 +369,7 @@ } /** - * Set the value of the column 'CONTENT_TYPE'.
    {VARCHAR(40)} + * CONTENT_TYPE: {VARCHAR(40)}
    * * @param contentType The value of the column 'CONTENT_TYPE'. (Nullable) */ @@ -392,11 +378,11 @@ this._contentType = contentType; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -405,7 +391,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -414,11 +400,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -427,7 +413,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategory.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategory.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategory.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -11,7 +11,7 @@ import jp.sf.pal.board.db.exentity.Message; /** - * The entity of CATEGORY(TABLE). + * The entity of CATEGORY that the type is TABLE.
    * *
      * [primary-key]
    @@ -70,44 +70,34 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : INTEGER : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_746A38F7_C47F_443B_8A4C_C50514E361B2]}
    -     */
    +    /** ID: {PK : ID : NotNull : INTEGER} */
         protected Integer _id;
     
    -    /** The attribute of the column 'NAME'. {VARCHAR(100) : NotNull} */
    +    /** NAME: {NotNull : VARCHAR(100)} */
         protected String _name;
     
    -    /**
    -     * The attribute of the column 'SORT_ORDER'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** SORT_ORDER: {NotNull : INTEGER : Default=[0]} */
         protected Integer _sortOrder;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */
    +    /** DELETED_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _deletedTime;
     
    -    /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */
    +    /** DELETED_BY: {VARCHAR(255)} */
         protected String _deletedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -166,13 +156,11 @@
         // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
         // Referrer Property = [categoryAccessList]
         // * * * * * * * * */
    -
    -    /** The entity list of referrer property 'categoryAccessList'. */
    +    /** CATEGORY_ACCESS as 'categoryAccessList'. */
         protected List _childrenCategoryAccessList;
     
         /**
    -     * Get the entity list of referrer property 'categoryAccessList'. {without
    -     * lazy-load} 
    + * CATEGORY_ACCESS as 'categoryAccessList'. {without lazy-load}
    * * @return The entity list of referrer property 'categoryAccessList'. * (NotNull: If it's not loaded yet, initializes the list instance @@ -186,7 +174,7 @@ } /** - * Set the entity list of referrer property 'categoryAccessList'. + * CATEGORY_ACCESS as 'categoryAccessList'. * * @param categoryAccessList The entity list of referrer property * 'categoryAccessList'. (Nullable) @@ -198,13 +186,11 @@ // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [messageList] // * * * * * * * * */ - - /** The entity list of referrer property 'messageList'. */ + /** MESSAGE as 'messageList'. */ protected List _childrenMessageList; /** - * Get the entity list of referrer property 'messageList'. {without - * lazy-load}
    + * MESSAGE as 'messageList'. {without lazy-load}
    * * @return The entity list of referrer property 'messageList'. (NotNull: If * it's not loaded yet, initializes the list instance of referrer as @@ -218,7 +204,7 @@ } /** - * Set the entity list of referrer property 'messageList'. + * MESSAGE as 'messageList'. * * @param messageList The entity list of referrer property 'messageList'. * (Nullable) @@ -327,17 +313,11 @@ // Accessor // ======== - /** - * The column annotation for S2Dao. {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_746A38F7_C47F_443B_8A4C_C50514E361B2]} - */ + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ public static final String id_COLUMN = "ID"; /** - * Get the value of the column 'ID'.
    {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_746A38F7_C47F_443B_8A4C_C50514E361B2]} + * ID: {PK : ID : NotNull : INTEGER}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -346,9 +326,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : INTEGER : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_746A38F7_C47F_443B_8A4C_C50514E361B2]} + * ID: {PK : ID : NotNull : INTEGER}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -357,11 +335,11 @@ this._id = id; } - /** The column annotation for S2Dao. {VARCHAR(100) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ public static final String name_COLUMN = "NAME"; /** - * Get the value of the column 'NAME'.
    {VARCHAR(100) : NotNull} + * NAME: {NotNull : VARCHAR(100)}
    * * @return The value of the column 'NAME'. (Nullable) */ @@ -370,7 +348,7 @@ } /** - * Set the value of the column 'NAME'.
    {VARCHAR(100) : NotNull} + * NAME: {NotNull : VARCHAR(100)}
    * * @param name The value of the column 'NAME'. (Nullable) */ @@ -379,12 +357,11 @@ this._name = name; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String sortOrder_COLUMN = "SORT_ORDER"; /** - * Get the value of the column 'SORT_ORDER'.
    {INTEGER : NotNull : - * Default=[0]} + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'SORT_ORDER'. (Nullable) */ @@ -393,8 +370,7 @@ } /** - * Set the value of the column 'SORT_ORDER'.
    {INTEGER : NotNull : - * Default=[0]} + * SORT_ORDER: {NotNull : INTEGER : Default=[0]}
    * * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) */ @@ -403,11 +379,11 @@ this._sortOrder = sortOrder; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -416,7 +392,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -425,11 +401,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -438,7 +414,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -447,11 +423,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -460,7 +436,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -469,11 +445,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -482,7 +458,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -495,7 +471,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -504,7 +480,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -517,7 +493,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -526,7 +502,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -535,12 +511,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -549,8 +524,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategoryAccess.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategoryAccess.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsCategoryAccess.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -8,7 +8,7 @@ import jp.sf.pal.board.db.exentity.Category; /** - * The entity of CATEGORY_ACCESS(TABLE). + * The entity of CATEGORY_ACCESS that the type is TABLE.
    * *
      * [primary-key]
    @@ -67,41 +67,31 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_0B32D55D_EC47_4FE2_880B_EC7D35C62C64]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'NAME'. {VARCHAR(255) : NotNull} */
    +    /** NAME: {NotNull : VARCHAR(255)} */
         protected String _name;
     
    -    /** The attribute of the column 'ACCESS_TYPE'. {INTEGER : NotNull} */
    +    /** ACCESS_TYPE: {NotNull : INTEGER} */
         protected Integer _accessType;
     
    -    /**
    -     * The attribute of the column 'CATEGORY_ID'. {INTEGER : NotNull : FK to
    -     * CATEGORY}
    -     */
    +    /** CATEGORY_ID: {NotNull : INTEGER : FK to CATEGORY} */
         protected Integer _categoryId;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -160,11 +150,11 @@
     
         public static final String category_RELKEYS = "CATEGORY_ID:ID";
     
    -    /** The entity of foreign property 'category'. */
    +    /** CATEGORY as 'category'. */
         protected Category _parentCategory;
     
         /**
    -     * Get the entity of foreign property 'category'. {without lazy-load}
    +     * CATEGORY as 'category'. {without lazy-load}
          * 
          * @return The entity of foreign property 'category'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -175,7 +165,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'category'.
    +     * CATEGORY as 'category'.
          * 
          * @param category The entity of foreign property 'category'. (Nullable)
          */
    @@ -287,17 +277,11 @@
         // Accessor
         // ========
     
    -    /**
    -     * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_0B32D55D_EC47_4FE2_880B_EC7D35C62C64]}
    -     */
    +    /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */
         public static final String id_COLUMN = "ID";
     
         /**
    -     * Get the value of the column 'ID'. 
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_0B32D55D_EC47_4FE2_880B_EC7D35C62C64]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -306,9 +290,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_0B32D55D_EC47_4FE2_880B_EC7D35C62C64]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -317,11 +299,11 @@ this._id = id; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String name_COLUMN = "NAME"; /** - * Get the value of the column 'NAME'.
    {VARCHAR(255) : NotNull} + * NAME: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'NAME'. (Nullable) */ @@ -330,7 +312,7 @@ } /** - * Set the value of the column 'NAME'.
    {VARCHAR(255) : NotNull} + * NAME: {NotNull : VARCHAR(255)}
    * * @param name The value of the column 'NAME'. (Nullable) */ @@ -339,11 +321,11 @@ this._name = name; } - /** The column annotation for S2Dao. {INTEGER : NotNull} */ + /** The column annotation for S2Dao. {NotNull : INTEGER} */ public static final String accessType_COLUMN = "ACCESS_TYPE"; /** - * Get the value of the column 'ACCESS_TYPE'.
    {INTEGER : NotNull} + * ACCESS_TYPE: {NotNull : INTEGER}
    * * @return The value of the column 'ACCESS_TYPE'. (Nullable) */ @@ -352,7 +334,7 @@ } /** - * Set the value of the column 'ACCESS_TYPE'.
    {INTEGER : NotNull} + * ACCESS_TYPE: {NotNull : INTEGER}
    * * @param accessType The value of the column 'ACCESS_TYPE'. (Nullable) */ @@ -361,12 +343,11 @@ this._accessType = accessType; } - /** The column annotation for S2Dao. {INTEGER : NotNull : FK to CATEGORY} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : FK to CATEGORY} */ public static final String categoryId_COLUMN = "CATEGORY_ID"; /** - * Get the value of the column 'CATEGORY_ID'.
    {INTEGER : NotNull : FK - * to CATEGORY} + * CATEGORY_ID: {NotNull : INTEGER : FK to CATEGORY}
    * * @return The value of the column 'CATEGORY_ID'. (Nullable) */ @@ -375,8 +356,7 @@ } /** - * Set the value of the column 'CATEGORY_ID'.
    {INTEGER : NotNull : FK - * to CATEGORY} + * CATEGORY_ID: {NotNull : INTEGER : FK to CATEGORY}
    * * @param categoryId The value of the column 'CATEGORY_ID'. (Nullable) */ @@ -385,11 +365,11 @@ this._categoryId = categoryId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -398,7 +378,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -407,11 +387,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -420,7 +400,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -429,11 +409,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -442,7 +422,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -451,11 +431,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -464,7 +444,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -473,12 +453,11 @@ this._updatedBy = updatedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -487,8 +466,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupInfo.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupInfo.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,611 @@ +package jp.sf.pal.board.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.board.db.exentity.GroupMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupMapping.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupMapping.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupMapping.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,356 @@ +package jp.sf.pal.board.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.board.db.exentity.GroupInfo; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessage.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessage.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessage.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -13,7 +13,7 @@ import jp.sf.pal.board.db.exentity.Reply; /** - * The entity of MESSAGE(TABLE). + * The entity of MESSAGE that the type is TABLE.
    * *
      * [primary-key]
    @@ -72,65 +72,49 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_F4AE50AB_EDB1_4AEC_95D9_572122832CF3]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'DISPLAY_NAME'. {VARCHAR(100) : NotNull} */
    +    /** DISPLAY_NAME: {NotNull : VARCHAR(100)} */
         protected String _displayName;
     
    -    /** The attribute of the column 'TITLE'. {VARCHAR(200) : NotNull} */
    +    /** TITLE: {NotNull : VARCHAR(200)} */
         protected String _title;
     
    -    /**
    -     * The attribute of the column 'STATUS'. {VARCHAR(1) : NotNull :
    -     * Default=[E]}
    -     */
    +    /** STATUS: {NotNull : VARCHAR(1) : Default=[E]} */
         protected String _status;
     
    -    /** The attribute of the column 'START_TIME'. {TIMESTAMP} */
    +    /** START_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _startTime;
     
    -    /** The attribute of the column 'END_TIME'. {TIMESTAMP} */
    +    /** END_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _endTime;
     
    -    /**
    -     * The attribute of the column 'HAS_REPLY'. {VARCHAR(1) : NotNull :
    -     * Default=[T]}
    -     */
    +    /** HAS_REPLY: {NotNull : VARCHAR(1) : Default=[T]} */
         protected String _hasReply;
     
    -    /**
    -     * The attribute of the column 'CATEGORY_ID'. {INTEGER : NotNull :
    -     * Default=[0] : FK to CATEGORY}
    -     */
    +    /** CATEGORY_ID: {NotNull : INTEGER : Default=[0] : FK to CATEGORY} */
         protected Integer _categoryId;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */
    +    /** DELETED_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _deletedTime;
     
    -    /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */
    +    /** DELETED_BY: {VARCHAR(255)} */
         protected String _deletedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -189,11 +173,11 @@
     
         public static final String category_RELKEYS = "CATEGORY_ID:ID";
     
    -    /** The entity of foreign property 'category'. */
    +    /** CATEGORY as 'category'. */
         protected Category _parentCategory;
     
         /**
    -     * Get the entity of foreign property 'category'. {without lazy-load}
    +     * CATEGORY as 'category'. {without lazy-load}
          * 
          * @return The entity of foreign property 'category'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -204,7 +188,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'category'.
    +     * CATEGORY as 'category'.
          * 
          * @param category The entity of foreign property 'category'. (Nullable)
          */
    @@ -219,12 +203,11 @@
     
         public static final String messageContentAsOne_RELKEYS = "ID:MESSAGE_ID";
     
    -    /** the entity of foreign property(referrer-as-one) 'messageContentAsOne'. */
    +    /** MESSAGE_CONTENT as 'messageContentAsOne'. */
         protected MessageContent _childrenmessageContentAsOne;
     
         /**
    -     * Get the entity of foreign property(referrer-as-one)
    -     * 'messageContentAsOne'. {without lazy-load} 
    + * MESSAGE_CONTENT as 'messageContentAsOne'. {without lazy-load}
    * * @return the entity of foreign property(referrer-as-one) * 'messageContentAsOne'. (Nullable: If the foreign key does not @@ -235,8 +218,7 @@ } /** - * Set the entity of foreign property(referrer-as-one) - * 'messageContentAsOne'. + * MESSAGE_CONTENT as 'messageContentAsOne'. * * @param messageContentAsOne The entity of foreign * property(referrer-as-one) 'messageContentAsOne'. (Nullable) @@ -252,13 +234,11 @@ // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [messageAttachmentList] // * * * * * * * * */ - - /** The entity list of referrer property 'messageAttachmentList'. */ + /** MESSAGE_ATTACHMENT as 'messageAttachmentList'. */ protected List _childrenMessageAttachmentList; /** - * Get the entity list of referrer property 'messageAttachmentList'. - * {without lazy-load}
    + * MESSAGE_ATTACHMENT as 'messageAttachmentList'. {without lazy-load}
    * * @return The entity list of referrer property 'messageAttachmentList'. * (NotNull: If it's not loaded yet, initializes the list instance @@ -272,7 +252,7 @@ } /** - * Set the entity list of referrer property 'messageAttachmentList'. + * MESSAGE_ATTACHMENT as 'messageAttachmentList'. * * @param messageAttachmentList The entity list of referrer property * 'messageAttachmentList'. (Nullable) @@ -285,13 +265,11 @@ // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [replyList] // * * * * * * * * */ - - /** The entity list of referrer property 'replyList'. */ + /** REPLY as 'replyList'. */ protected List _childrenReplyList; /** - * Get the entity list of referrer property 'replyList'. {without lazy-load} - *
    + * REPLY as 'replyList'. {without lazy-load}
    * * @return The entity list of referrer property 'replyList'. (NotNull: If * it's not loaded yet, initializes the list instance of referrer as @@ -305,7 +283,7 @@ } /** - * Set the entity list of referrer property 'replyList'. + * REPLY as 'replyList'. * * @param replyList The entity list of referrer property 'replyList'. * (Nullable) @@ -419,17 +397,11 @@ // Accessor // ======== - /** - * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F4AE50AB_EDB1_4AEC_95D9_572122832CF3]} - */ + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ public static final String id_COLUMN = "ID"; /** - * Get the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F4AE50AB_EDB1_4AEC_95D9_572122832CF3]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -438,9 +410,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F4AE50AB_EDB1_4AEC_95D9_572122832CF3]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -449,12 +419,11 @@ this._id = id; } - /** The column annotation for S2Dao. {VARCHAR(100) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ public static final String displayName_COLUMN = "DISPLAY_NAME"; /** - * Get the value of the column 'DISPLAY_NAME'.
    {VARCHAR(100) : - * NotNull} + * DISPLAY_NAME: {NotNull : VARCHAR(100)}
    * * @return The value of the column 'DISPLAY_NAME'. (Nullable) */ @@ -463,8 +432,7 @@ } /** - * Set the value of the column 'DISPLAY_NAME'.
    {VARCHAR(100) : - * NotNull} + * DISPLAY_NAME: {NotNull : VARCHAR(100)}
    * * @param displayName The value of the column 'DISPLAY_NAME'. (Nullable) */ @@ -473,11 +441,11 @@ this._displayName = displayName; } - /** The column annotation for S2Dao. {VARCHAR(200) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(200)} */ public static final String title_COLUMN = "TITLE"; /** - * Get the value of the column 'TITLE'.
    {VARCHAR(200) : NotNull} + * TITLE: {NotNull : VARCHAR(200)}
    * * @return The value of the column 'TITLE'. (Nullable) */ @@ -486,7 +454,7 @@ } /** - * Set the value of the column 'TITLE'.
    {VARCHAR(200) : NotNull} + * TITLE: {NotNull : VARCHAR(200)}
    * * @param title The value of the column 'TITLE'. (Nullable) */ @@ -495,12 +463,11 @@ this._title = title; } - /** The column annotation for S2Dao. {VARCHAR(1) : NotNull : Default=[E]} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[E]} */ public static final String status_COLUMN = "STATUS"; /** - * Get the value of the column 'STATUS'.
    {VARCHAR(1) : NotNull : - * Default=[E]} + * STATUS: {NotNull : VARCHAR(1) : Default=[E]}
    * * @return The value of the column 'STATUS'. (Nullable) */ @@ -509,8 +476,7 @@ } /** - * Set the value of the column 'STATUS'.
    {VARCHAR(1) : NotNull : - * Default=[E]} + * STATUS: {NotNull : VARCHAR(1) : Default=[E]}
    * * @param status The value of the column 'STATUS'. (Nullable) */ @@ -523,7 +489,7 @@ public static final String startTime_COLUMN = "START_TIME"; /** - * Get the value of the column 'START_TIME'.
    {TIMESTAMP} + * START_TIME: {TIMESTAMP}
    * * @return The value of the column 'START_TIME'. (Nullable) */ @@ -532,7 +498,7 @@ } /** - * Set the value of the column 'START_TIME'.
    {TIMESTAMP} + * START_TIME: {TIMESTAMP}
    * * @param startTime The value of the column 'START_TIME'. (Nullable) */ @@ -545,7 +511,7 @@ public static final String endTime_COLUMN = "END_TIME"; /** - * Get the value of the column 'END_TIME'.
    {TIMESTAMP} + * END_TIME: {TIMESTAMP}
    * * @return The value of the column 'END_TIME'. (Nullable) */ @@ -554,7 +520,7 @@ } /** - * Set the value of the column 'END_TIME'.
    {TIMESTAMP} + * END_TIME: {TIMESTAMP}
    * * @param endTime The value of the column 'END_TIME'. (Nullable) */ @@ -563,12 +529,11 @@ this._endTime = endTime; } - /** The column annotation for S2Dao. {VARCHAR(1) : NotNull : Default=[T]} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[T]} */ public static final String hasReply_COLUMN = "HAS_REPLY"; /** - * Get the value of the column 'HAS_REPLY'.
    {VARCHAR(1) : NotNull : - * Default=[T]} + * HAS_REPLY: {NotNull : VARCHAR(1) : Default=[T]}
    * * @return The value of the column 'HAS_REPLY'. (Nullable) */ @@ -577,8 +542,7 @@ } /** - * Set the value of the column 'HAS_REPLY'.
    {VARCHAR(1) : NotNull : - * Default=[T]} + * HAS_REPLY: {NotNull : VARCHAR(1) : Default=[T]}
    * * @param hasReply The value of the column 'HAS_REPLY'. (Nullable) */ @@ -588,14 +552,13 @@ } /** - * The column annotation for S2Dao. {INTEGER : NotNull : Default=[0] : FK to + * The column annotation for S2Dao. {NotNull : INTEGER : Default=[0] : FK to * CATEGORY} */ public static final String categoryId_COLUMN = "CATEGORY_ID"; /** - * Get the value of the column 'CATEGORY_ID'.
    {INTEGER : NotNull : - * Default=[0] : FK to CATEGORY} + * CATEGORY_ID: {NotNull : INTEGER : Default=[0] : FK to CATEGORY}
    * * @return The value of the column 'CATEGORY_ID'. (Nullable) */ @@ -604,8 +567,7 @@ } /** - * Set the value of the column 'CATEGORY_ID'.
    {INTEGER : NotNull : - * Default=[0] : FK to CATEGORY} + * CATEGORY_ID: {NotNull : INTEGER : Default=[0] : FK to CATEGORY}
    * * @param categoryId The value of the column 'CATEGORY_ID'. (Nullable) */ @@ -614,11 +576,11 @@ this._categoryId = categoryId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -627,7 +589,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -636,11 +598,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -649,7 +611,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -658,11 +620,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -671,7 +633,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -680,11 +642,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -693,7 +655,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -706,7 +668,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -715,7 +677,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -728,7 +690,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -737,7 +699,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -746,12 +708,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -760,8 +721,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageAttachment.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageAttachment.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageAttachment.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -9,7 +9,7 @@ import jp.sf.pal.board.db.exentity.Message; /** - * The entity of MESSAGE_ATTACHMENT(TABLE). + * The entity of MESSAGE_ATTACHMENT that the type is TABLE.
    * *
      * [primary-key]
    @@ -69,56 +69,40 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_304D2C2B_8314_4813_8E20_7F3E73D618FA]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'MEMO'. {VARCHAR(100)} */
    +    /** MEMO: {VARCHAR(100)} */
         protected String _memo;
     
    -    /**
    -     * The attribute of the column 'VERSIONABLE'. {VARCHAR(1) : NotNull :
    -     * Default=[F]}
    -     */
    +    /** VERSIONABLE: {NotNull : VARCHAR(1) : Default=[F]} */
         protected String _versionable;
     
    -    /**
    -     * The attribute of the column 'MESSAGE_ID'. {BIGINT : NotNull : FK to
    -     * MESSAGE}
    -     */
    +    /** MESSAGE_ID: {NotNull : BIGINT : FK to MESSAGE} */
         protected Long _messageId;
     
    -    /**
    -     * The attribute of the column 'ATTACHMENT_ID'. {BIGINT : NotNull : FK to
    -     * ATTACHMENT}
    -     */
    +    /** ATTACHMENT_ID: {NotNull : BIGINT : FK to ATTACHMENT} */
         protected Long _attachmentId;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'UPDATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** UPDATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _updatedTime;
     
    -    /** The attribute of the column 'UPDATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** UPDATED_BY: {NotNull : VARCHAR(255)} */
         protected String _updatedBy;
     
    -    /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */
    +    /** DELETED_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _deletedTime;
     
    -    /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */
    +    /** DELETED_BY: {VARCHAR(255)} */
         protected String _deletedBy;
     
    -    /**
    -     * The attribute of the column 'VERSIONNO'. {INTEGER : NotNull :
    -     * Default=[0]}
    -     */
    +    /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */
         protected Integer _versionno;
     
         // -----------------------------------------------------
    @@ -177,11 +161,11 @@
     
         public static final String attachment_RELKEYS = "ATTACHMENT_ID:ID";
     
    -    /** The entity of foreign property 'attachment'. */
    +    /** ATTACHMENT as 'attachment'. */
         protected Attachment _parentAttachment;
     
         /**
    -     * Get the entity of foreign property 'attachment'. {without lazy-load}
    +     * ATTACHMENT as 'attachment'. {without lazy-load}
          * 
          * @return The entity of foreign property 'attachment'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -192,7 +176,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'attachment'.
    +     * ATTACHMENT as 'attachment'.
          * 
          * @param attachment The entity of foreign property 'attachment'. (Nullable)
          */
    @@ -207,11 +191,11 @@
     
         public static final String message_RELKEYS = "MESSAGE_ID:ID";
     
    -    /** The entity of foreign property 'message'. */
    +    /** MESSAGE as 'message'. */
         protected Message _parentMessage;
     
         /**
    -     * Get the entity of foreign property 'message'. {without lazy-load}
    +     * MESSAGE as 'message'. {without lazy-load}
          * 
          * @return The entity of foreign property 'message'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -222,7 +206,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'message'.
    +     * MESSAGE as 'message'.
          * 
          * @param message The entity of foreign property 'message'. (Nullable)
          */
    @@ -337,17 +321,11 @@
         // Accessor
         // ========
     
    -    /**
    -     * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_304D2C2B_8314_4813_8E20_7F3E73D618FA]}
    -     */
    +    /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */
         public static final String id_COLUMN = "ID";
     
         /**
    -     * Get the value of the column 'ID'. 
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_304D2C2B_8314_4813_8E20_7F3E73D618FA]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -356,9 +334,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_304D2C2B_8314_4813_8E20_7F3E73D618FA]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -371,7 +347,7 @@ public static final String memo_COLUMN = "MEMO"; /** - * Get the value of the column 'MEMO'.
    {VARCHAR(100)} + * MEMO: {VARCHAR(100)}
    * * @return The value of the column 'MEMO'. (Nullable) */ @@ -380,7 +356,7 @@ } /** - * Set the value of the column 'MEMO'.
    {VARCHAR(100)} + * MEMO: {VARCHAR(100)}
    * * @param memo The value of the column 'MEMO'. (Nullable) */ @@ -389,12 +365,11 @@ this._memo = memo; } - /** The column annotation for S2Dao. {VARCHAR(1) : NotNull : Default=[F]} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[F]} */ public static final String versionable_COLUMN = "VERSIONABLE"; /** - * Get the value of the column 'VERSIONABLE'.
    {VARCHAR(1) : NotNull : - * Default=[F]} + * VERSIONABLE: {NotNull : VARCHAR(1) : Default=[F]}
    * * @return The value of the column 'VERSIONABLE'. (Nullable) */ @@ -403,8 +378,7 @@ } /** - * Set the value of the column 'VERSIONABLE'.
    {VARCHAR(1) : NotNull : - * Default=[F]} + * VERSIONABLE: {NotNull : VARCHAR(1) : Default=[F]}
    * * @param versionable The value of the column 'VERSIONABLE'. (Nullable) */ @@ -413,12 +387,11 @@ this._versionable = versionable; } - /** The column annotation for S2Dao. {BIGINT : NotNull : FK to MESSAGE} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : FK to MESSAGE} */ public static final String messageId_COLUMN = "MESSAGE_ID"; /** - * Get the value of the column 'MESSAGE_ID'.
    {BIGINT : NotNull : FK - * to MESSAGE} + * MESSAGE_ID: {NotNull : BIGINT : FK to MESSAGE}
    * * @return The value of the column 'MESSAGE_ID'. (Nullable) */ @@ -427,8 +400,7 @@ } /** - * Set the value of the column 'MESSAGE_ID'.
    {BIGINT : NotNull : FK - * to MESSAGE} + * MESSAGE_ID: {NotNull : BIGINT : FK to MESSAGE}
    * * @param messageId The value of the column 'MESSAGE_ID'. (Nullable) */ @@ -437,12 +409,11 @@ this._messageId = messageId; } - /** The column annotation for S2Dao. {BIGINT : NotNull : FK to ATTACHMENT} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : FK to ATTACHMENT} */ public static final String attachmentId_COLUMN = "ATTACHMENT_ID"; /** - * Get the value of the column 'ATTACHMENT_ID'.
    {BIGINT : NotNull : - * FK to ATTACHMENT} + * ATTACHMENT_ID: {NotNull : BIGINT : FK to ATTACHMENT}
    * * @return The value of the column 'ATTACHMENT_ID'. (Nullable) */ @@ -451,8 +422,7 @@ } /** - * Set the value of the column 'ATTACHMENT_ID'.
    {BIGINT : NotNull : - * FK to ATTACHMENT} + * ATTACHMENT_ID: {NotNull : BIGINT : FK to ATTACHMENT}
    * * @param attachmentId The value of the column 'ATTACHMENT_ID'. (Nullable) */ @@ -461,11 +431,11 @@ this._attachmentId = attachmentId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -474,7 +444,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -483,11 +453,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -496,7 +466,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -505,11 +475,11 @@ this._createdBy = createdBy; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String updatedTime_COLUMN = "UPDATED_TIME"; /** - * Get the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -518,7 +488,7 @@ } /** - * Set the value of the column 'UPDATED_TIME'.
    {TIMESTAMP : NotNull} + * UPDATED_TIME: {NotNull : TIMESTAMP}
    * * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) */ @@ -527,11 +497,11 @@ this._updatedTime = updatedTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String updatedBy_COLUMN = "UPDATED_BY"; /** - * Get the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'UPDATED_BY'. (Nullable) */ @@ -540,7 +510,7 @@ } /** - * Set the value of the column 'UPDATED_BY'.
    {VARCHAR(255) : NotNull} + * UPDATED_BY: {NotNull : VARCHAR(255)}
    * * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) */ @@ -553,7 +523,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -562,7 +532,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -575,7 +545,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -584,7 +554,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ @@ -593,12 +563,11 @@ this._deletedBy = deletedBy; } - /** The column annotation for S2Dao. {INTEGER : NotNull : Default=[0]} */ + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ public static final String versionno_COLUMN = "VERSIONNO"; /** - * Get the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @return The value of the column 'VERSIONNO'. (Nullable) */ @@ -607,8 +576,7 @@ } /** - * Set the value of the column 'VERSIONNO'.
    {INTEGER : NotNull : - * Default=[0]} + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
    * * @param versionno The value of the column 'VERSIONNO'. (Nullable) */ Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageContent.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageContent.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsMessageContent.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -8,7 +8,7 @@ import jp.sf.pal.board.db.exentity.Message; /** - * The entity of MESSAGE_CONTENT(TABLE). + * The entity of MESSAGE_CONTENT that the type is TABLE.
    * *
      * [primary-key]
    @@ -61,13 +61,10 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'MESSAGE_ID'. {PK : BIGINT : NotNull : FK to
    -     * MESSAGE}
    -     */
    +    /** MESSAGE_ID: {PK : NotNull : BIGINT : FK to MESSAGE} */
         protected Long _messageId;
     
    -    /** The attribute of the column 'CONTENT'. {VARCHAR(4000)} */
    +    /** CONTENT: {VARCHAR(4000)} */
         protected String _content;
     
         // -----------------------------------------------------
    @@ -126,11 +123,11 @@
     
         public static final String message_RELKEYS = "MESSAGE_ID:ID";
     
    -    /** The entity of foreign property 'message'. */
    +    /** MESSAGE as 'message'. */
         protected Message _parentMessage;
     
         /**
    -     * Get the entity of foreign property 'message'. {without lazy-load}
    +     * MESSAGE as 'message'. {without lazy-load}
          * 
          * @return The entity of foreign property 'message'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -141,7 +138,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'message'.
    +     * MESSAGE as 'message'.
          * 
          * @param message The entity of foreign property 'message'. (Nullable)
          */
    @@ -246,12 +243,11 @@
         // Accessor
         // ========
     
    -    /** The column annotation for S2Dao. {PK : BIGINT : NotNull : FK to MESSAGE} */
    +    /** The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to MESSAGE} */
         public static final String messageId_COLUMN = "MESSAGE_ID";
     
         /**
    -     * Get the value of the column 'MESSAGE_ID'. 
    {PK : BIGINT : NotNull : - * FK to MESSAGE} + * MESSAGE_ID: {PK : NotNull : BIGINT : FK to MESSAGE}
    * * @return The value of the column 'MESSAGE_ID'. (Nullable) */ @@ -260,8 +256,7 @@ } /** - * Set the value of the column 'MESSAGE_ID'.
    {PK : BIGINT : NotNull : - * FK to MESSAGE} + * MESSAGE_ID: {PK : NotNull : BIGINT : FK to MESSAGE}
    * * @param messageId The value of the column 'MESSAGE_ID'. (Nullable) */ @@ -274,7 +269,7 @@ public static final String content_COLUMN = "CONTENT"; /** - * Get the value of the column 'CONTENT'.
    {VARCHAR(4000)} + * CONTENT: {VARCHAR(4000)}
    * * @return The value of the column 'CONTENT'. (Nullable) */ @@ -283,7 +278,7 @@ } /** - * Set the value of the column 'CONTENT'.
    {VARCHAR(4000)} + * CONTENT: {VARCHAR(4000)}
    * * @param content The value of the column 'CONTENT'. (Nullable) */ Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsReply.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsReply.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsReply.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -8,7 +8,7 @@ import jp.sf.pal.board.db.exentity.Message; /** - * The entity of REPLY(TABLE). + * The entity of REPLY that the type is TABLE.
    * *
      * [primary-key]
    @@ -64,35 +64,28 @@
         // -----------------------------------------------------
         // Column
         // ------
    -    /**
    -     * The attribute of the column 'ID'. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_93C8394F_FD69_4329_9935_CE081FCB94AA]}
    -     */
    +    /** ID: {PK : ID : NotNull : BIGINT} */
         protected Long _id;
     
    -    /** The attribute of the column 'DISPLAY_NAME'. {VARCHAR(100) : NotNull} */
    +    /** DISPLAY_NAME: {NotNull : VARCHAR(100)} */
         protected String _displayName;
     
    -    /** The attribute of the column 'CONTENT'. {VARCHAR(4000)} */
    +    /** CONTENT: {VARCHAR(4000)} */
         protected String _content;
     
    -    /**
    -     * The attribute of the column 'MESSAGE_ID'. {BIGINT : NotNull : FK to
    -     * MESSAGE}
    -     */
    +    /** MESSAGE_ID: {NotNull : BIGINT : FK to MESSAGE} */
         protected Long _messageId;
     
    -    /** The attribute of the column 'CREATED_TIME'. {TIMESTAMP : NotNull} */
    +    /** CREATED_TIME: {NotNull : TIMESTAMP} */
         protected java.sql.Timestamp _createdTime;
     
    -    /** The attribute of the column 'CREATED_BY'. {VARCHAR(255) : NotNull} */
    +    /** CREATED_BY: {NotNull : VARCHAR(255)} */
         protected String _createdBy;
     
    -    /** The attribute of the column 'DELETED_TIME'. {TIMESTAMP} */
    +    /** DELETED_TIME: {TIMESTAMP} */
         protected java.sql.Timestamp _deletedTime;
     
    -    /** The attribute of the column 'DELETED_BY'. {VARCHAR(255)} */
    +    /** DELETED_BY: {VARCHAR(255)} */
         protected String _deletedBy;
     
         // -----------------------------------------------------
    @@ -151,11 +144,11 @@
     
         public static final String message_RELKEYS = "MESSAGE_ID:ID";
     
    -    /** The entity of foreign property 'message'. */
    +    /** MESSAGE as 'message'. */
         protected Message _parentMessage;
     
         /**
    -     * Get the entity of foreign property 'message'. {without lazy-load}
    +     * MESSAGE as 'message'. {without lazy-load}
          * 
          * @return The entity of foreign property 'message'. (Nullable: If the
          *         foreign key does not have 'NotNull' constraint, please check
    @@ -166,7 +159,7 @@
         }
     
         /**
    -     * Set the entity of foreign property 'message'.
    +     * MESSAGE as 'message'.
          * 
          * @param message The entity of foreign property 'message'. (Nullable)
          */
    @@ -277,17 +270,11 @@
         // Accessor
         // ========
     
    -    /**
    -     * The column annotation for S2Dao. {PK : INC : BIGINT : NotNull :
    -     * Default=[NEXT VALUE FOR
    -     * PUBLIC.SYSTEM_SEQUENCE_93C8394F_FD69_4329_9935_CE081FCB94AA]}
    -     */
    +    /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */
         public static final String id_COLUMN = "ID";
     
         /**
    -     * Get the value of the column 'ID'. 
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_93C8394F_FD69_4329_9935_CE081FCB94AA]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @return The value of the column 'ID'. (Nullable) */ @@ -296,9 +283,7 @@ } /** - * Set the value of the column 'ID'.
    {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_93C8394F_FD69_4329_9935_CE081FCB94AA]} + * ID: {PK : ID : NotNull : BIGINT}
    * * @param id The value of the column 'ID'. (Nullable) */ @@ -307,12 +292,11 @@ this._id = id; } - /** The column annotation for S2Dao. {VARCHAR(100) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ public static final String displayName_COLUMN = "DISPLAY_NAME"; /** - * Get the value of the column 'DISPLAY_NAME'.
    {VARCHAR(100) : - * NotNull} + * DISPLAY_NAME: {NotNull : VARCHAR(100)}
    * * @return The value of the column 'DISPLAY_NAME'. (Nullable) */ @@ -321,8 +305,7 @@ } /** - * Set the value of the column 'DISPLAY_NAME'.
    {VARCHAR(100) : - * NotNull} + * DISPLAY_NAME: {NotNull : VARCHAR(100)}
    * * @param displayName The value of the column 'DISPLAY_NAME'. (Nullable) */ @@ -335,7 +318,7 @@ public static final String content_COLUMN = "CONTENT"; /** - * Get the value of the column 'CONTENT'.
    {VARCHAR(4000)} + * CONTENT: {VARCHAR(4000)}
    * * @return The value of the column 'CONTENT'. (Nullable) */ @@ -344,7 +327,7 @@ } /** - * Set the value of the column 'CONTENT'.
    {VARCHAR(4000)} + * CONTENT: {VARCHAR(4000)}
    * * @param content The value of the column 'CONTENT'. (Nullable) */ @@ -353,12 +336,11 @@ this._content = content; } - /** The column annotation for S2Dao. {BIGINT : NotNull : FK to MESSAGE} */ + /** The column annotation for S2Dao. {NotNull : BIGINT : FK to MESSAGE} */ public static final String messageId_COLUMN = "MESSAGE_ID"; /** - * Get the value of the column 'MESSAGE_ID'.
    {BIGINT : NotNull : FK - * to MESSAGE} + * MESSAGE_ID: {NotNull : BIGINT : FK to MESSAGE}
    * * @return The value of the column 'MESSAGE_ID'. (Nullable) */ @@ -367,8 +349,7 @@ } /** - * Set the value of the column 'MESSAGE_ID'.
    {BIGINT : NotNull : FK - * to MESSAGE} + * MESSAGE_ID: {NotNull : BIGINT : FK to MESSAGE}
    * * @param messageId The value of the column 'MESSAGE_ID'. (Nullable) */ @@ -377,11 +358,11 @@ this._messageId = messageId; } - /** The column annotation for S2Dao. {TIMESTAMP : NotNull} */ + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; /** - * Get the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @return The value of the column 'CREATED_TIME'. (Nullable) */ @@ -390,7 +371,7 @@ } /** - * Set the value of the column 'CREATED_TIME'.
    {TIMESTAMP : NotNull} + * CREATED_TIME: {NotNull : TIMESTAMP}
    * * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) */ @@ -399,11 +380,11 @@ this._createdTime = createdTime; } - /** The column annotation for S2Dao. {VARCHAR(255) : NotNull} */ + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ public static final String createdBy_COLUMN = "CREATED_BY"; /** - * Get the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @return The value of the column 'CREATED_BY'. (Nullable) */ @@ -412,7 +393,7 @@ } /** - * Set the value of the column 'CREATED_BY'.
    {VARCHAR(255) : NotNull} + * CREATED_BY: {NotNull : VARCHAR(255)}
    * * @param createdBy The value of the column 'CREATED_BY'. (Nullable) */ @@ -425,7 +406,7 @@ public static final String deletedTime_COLUMN = "DELETED_TIME"; /** - * Get the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @return The value of the column 'DELETED_TIME'. (Nullable) */ @@ -434,7 +415,7 @@ } /** - * Set the value of the column 'DELETED_TIME'.
    {TIMESTAMP} + * DELETED_TIME: {TIMESTAMP}
    * * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) */ @@ -447,7 +428,7 @@ public static final String deletedBy_COLUMN = "DELETED_BY"; /** - * Get the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @return The value of the column 'DELETED_BY'. (Nullable) */ @@ -456,7 +437,7 @@ } /** - * Set the value of the column 'DELETED_BY'.
    {VARCHAR(255)} + * DELETED_BY: {VARCHAR(255)}
    * * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) */ Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleInfo.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleInfo.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,611 @@ +package jp.sf.pal.board.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.board.db.exentity.RoleMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleMapping.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleMapping.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleMapping.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,356 @@ +package jp.sf.pal.board.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.board.db.exentity.RoleInfo; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,883 @@ +package jp.sf.pal.board.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.board.db.exentity.GroupInfo; +import jp.sf.pal.board.db.exentity.GroupMapping; +import jp.sf.pal.board.db.exentity.RoleInfo; +import jp.sf.pal.board.db.exentity.RoleMapping; + +/** + * The entity of USER_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/AttachmentDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/AttachmentDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/AttachmentDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -39,6 +39,10 @@ return "attachment"; } + public String getTableSqlName() { + return "ATTACHMENT"; + } + //========================================================================== // ========= // Column Info Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryAccessDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryAccessDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryAccessDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -39,6 +39,10 @@ return "categoryAccess"; } + public String getTableSqlName() { + return "CATEGORY_ACCESS"; + } + //========================================================================== // ========= // Column Info Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/CategoryDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -39,6 +39,10 @@ return "category"; } + public String getTableSqlName() { + return "CATEGORY"; + } + //========================================================================== // ========= // Column Info Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,447 @@ +package jp.sf.pal.board.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.board.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.board.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.board.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.board.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.board.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,299 @@ +package jp.sf.pal.board.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.board.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.board.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.board.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.board.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.board.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageAttachmentDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageAttachmentDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageAttachmentDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -39,6 +39,10 @@ return "messageAttachment"; } + public String getTableSqlName() { + return "MESSAGE_ATTACHMENT"; + } + //========================================================================== // ========= // Column Info Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageContentDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageContentDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageContentDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -39,6 +39,10 @@ return "messageContent"; } + public String getTableSqlName() { + return "MESSAGE_CONTENT"; + } + //========================================================================== // ========= // Column Info Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/MessageDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -40,6 +40,10 @@ return "message"; } + public String getTableSqlName() { + return "MESSAGE"; + } + //========================================================================== // ========= // Column Info Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/ReplyDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/ReplyDbm.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/ReplyDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -39,6 +39,10 @@ return "reply"; } + public String getTableSqlName() { + return "REPLY"; + } + //========================================================================== // ========= // Column Info Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,447 @@ +package jp.sf.pal.board.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.board.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.board.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.board.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.board.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.board.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,299 @@ +package jp.sf.pal.board.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.board.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.board.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.board.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.board.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.board.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,572 @@ +package jp.sf.pal.board.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.Entity; +import jp.sf.pal.board.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.board.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.board.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.board.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.board.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.board.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.board.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupInfoCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupInfoCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.board.db.cbean.bs.BsGroupInfoCB { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupMappingCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupMappingCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupMappingCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,15 @@ +package jp.sf.pal.board.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.board.db.cbean.bs.BsGroupMappingCB { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleInfoCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleInfoCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.board.db.cbean.bs.BsRoleInfoCB { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleMappingCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleMappingCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleMappingCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends jp.sf.pal.board.db.cbean.bs.BsRoleMappingCB { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/UserInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/UserInfoCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/UserInfoCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.board.db.cbean.bs.BsUserInfoCB { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupInfoCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,295 @@ +package jp.sf.pal.board.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupMappingCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,325 @@ +package jp.sf.pal.board.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.board.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleInfoCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,292 @@ +package jp.sf.pal.board.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleMappingCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,325 @@ +package jp.sf.pal.board.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.board.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,422 @@ +package jp.sf.pal.board.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.board.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,45 @@ +package jp.sf.pal.board.db.cbean.cq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupMappingCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupMappingCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,45 @@ +package jp.sf.pal.board.db.cbean.cq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,45 @@ +package jp.sf.pal.board.db.cbean.cq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleMappingCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleMappingCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,45 @@ +package jp.sf.pal.board.db.cbean.cq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/UserInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/UserInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/UserInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,45 @@ +package jp.sf.pal.board.db.cbean.cq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsAttachmentCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsAttachmentCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsAttachmentCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -48,9 +48,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_FB4FD353_2751_4F2F_887D_3D1E78C7C7DA]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -245,6 +243,20 @@ abstract public String keepId_DeriveSubQuery_MessageAttachmentList( MessageAttachmentCQ subQuery); + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + protected void regId(ConditionKey key, Object value) { registerQuery(key, value, getCValueId(), "ID", "Id", "id"); } @@ -637,7 +649,7 @@ abstract protected ConditionValue getCValueContentType(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -692,7 +704,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -709,7 +721,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -735,8 +747,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryAccessCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryAccessCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryAccessCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -48,9 +48,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_0B32D55D_EC47_4FE2_880B_EC7D35C62C64]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -123,6 +121,20 @@ regId(CK_NINS, cTL(idList)); } + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + protected void regId(ConditionKey key, Object value) { registerQuery(key, value, getCValueId(), "ID", "Id", "id"); } @@ -134,8 +146,8 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param name The value of name as equal. */ @@ -256,7 +268,7 @@ abstract protected ConditionValue getCValueName(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} * * @param accessType The value of accessType as equal. */ @@ -342,7 +354,7 @@ abstract protected ConditionValue getCValueAccessType(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : FK to + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : FK to * CATEGORY} * * @param categoryId The value of categoryId as equal. @@ -459,7 +471,7 @@ abstract protected ConditionValue getCValueCategoryId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -514,7 +526,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -531,7 +543,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -557,8 +569,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -681,7 +693,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -736,7 +748,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -753,7 +765,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -779,8 +791,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -903,7 +915,7 @@ abstract protected ConditionValue getCValueUpdatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsCategoryCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -50,9 +50,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : INTEGER : NotNull - * : Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_746A38F7_C47F_443B_8A4C_C50514E361B2]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} * * @param id The value of id as equal. */ @@ -354,6 +352,20 @@ abstract public String keepId_DeriveSubQuery_MessageList(MessageCQ subQuery); + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + protected void regId(ConditionKey key, Object value) { registerQuery(key, value, getCValueId(), "ID", "Id", "id"); } @@ -365,8 +377,8 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} * * @param name The value of name as equal. */ @@ -487,7 +499,7 @@ abstract protected ConditionValue getCValueName(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param sortOrder The value of sortOrder as equal. @@ -574,7 +586,7 @@ abstract protected ConditionValue getCValueSortOrder(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -629,7 +641,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -646,7 +658,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -672,8 +684,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -796,7 +808,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -851,7 +863,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -868,7 +880,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -894,8 +906,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -1267,7 +1279,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,1893 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,465 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.board.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.board.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageAttachmentCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageAttachmentCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageAttachmentCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -51,9 +51,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_304D2C2B_8314_4813_8E20_7F3E73D618FA]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -126,6 +124,20 @@ regId(CK_NINS, cTL(idList)); } + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + protected void regId(ConditionKey key, Object value) { registerQuery(key, value, getCValueId(), "ID", "Id", "id"); } @@ -272,7 +284,7 @@ abstract protected ConditionValue getCValueMemo(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : NotNull : + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : * Default=[F]} * * @param versionable The value of versionable as equal. @@ -397,7 +409,7 @@ abstract protected ConditionValue getCValueVersionable(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : FK to + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to * MESSAGE} * * @param messageId The value of messageId as equal. @@ -513,7 +525,7 @@ abstract protected ConditionValue getCValueMessageId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : FK to + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to * ATTACHMENT} * * @param attachmentId The value of attachmentId as equal. @@ -630,7 +642,7 @@ abstract protected ConditionValue getCValueAttachmentId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -685,7 +697,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -702,7 +714,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -728,8 +740,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -852,7 +864,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -907,7 +919,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -924,7 +936,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -950,8 +962,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -1323,7 +1335,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -54,9 +54,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_F4AE50AB_EDB1_4AEC_95D9_572122832CF3]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -464,6 +462,20 @@ abstract public String keepId_DeriveSubQuery_ReplyList(ReplyCQ subQuery); + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + protected void regId(ConditionKey key, Object value) { registerQuery(key, value, getCValueId(), "ID", "Id", "id"); } @@ -475,8 +487,8 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} * * @param displayName The value of displayName as equal. */ @@ -600,8 +612,8 @@ abstract protected ConditionValue getCValueDisplayName(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(200) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(200)} * * @param title The value of title as equal. */ @@ -723,7 +735,7 @@ abstract protected ConditionValue getCValueTitle(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : NotNull : + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : * Default=[E]} * * @param status The value of status as equal. @@ -1071,7 +1083,7 @@ abstract protected ConditionValue getCValueEndTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1) : NotNull : + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : * Default=[T]} * * @param hasReply The value of hasReply as equal. @@ -1195,7 +1207,7 @@ abstract protected ConditionValue getCValueHasReply(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0] : FK to CATEGORY} * * @param categoryId The value of categoryId as equal. @@ -1312,7 +1324,7 @@ abstract protected ConditionValue getCValueCategoryId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -1367,7 +1379,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1384,7 +1396,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -1410,8 +1422,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ @@ -1534,7 +1546,7 @@ abstract protected ConditionValue getCValueCreatedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param updatedTime The value of updatedTime as equal. */ @@ -1589,7 +1601,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1606,7 +1618,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of updatedTime. (Nullable) * @param toDate The to-date of updatedTime. (Nullable) @@ -1632,8 +1644,8 @@ abstract protected ConditionValue getCValueUpdatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param updatedBy The value of updatedBy as equal. */ @@ -2005,7 +2017,7 @@ abstract protected ConditionValue getCValueDeletedBy(); /** - * Equal(=). And NullIgnored, OnceRegistered. {INTEGER : NotNull : + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : * Default=[0]} * * @param versionno The value of versionno as equal. Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageContentCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageContentCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsMessageContentCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -48,7 +48,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : BIGINT : NotNull : FK to + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to * MESSAGE} * * @param messageId The value of messageId as equal. @@ -151,6 +151,20 @@ abstract public String keepMessageId_InScopeSubQuery_Message( MessageCQ subQuery); + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMessageId_IsNull() { + regMessageId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMessageId_IsNotNull() { + regMessageId(CK_ISNN, DUMMY_OBJECT); + } + protected void regMessageId(ConditionKey key, Object value) { registerQuery(key, value, getCValueMessageId(), "MESSAGE_ID", "MessageId", "messageId"); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsReplyCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsReplyCQ.java 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsReplyCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -48,9 +48,7 @@ // ===== /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : INC : BIGINT : NotNull : - * Default=[NEXT VALUE FOR - * PUBLIC.SYSTEM_SEQUENCE_93C8394F_FD69_4329_9935_CE081FCB94AA]} + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} * * @param id The value of id as equal. */ @@ -123,6 +121,20 @@ regId(CK_NINS, cTL(idList)); } + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + protected void regId(ConditionKey key, Object value) { registerQuery(key, value, getCValueId(), "ID", "Id", "id"); } @@ -134,8 +146,8 @@ abstract protected ConditionValue getCValueId(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} * * @param displayName The value of displayName as equal. */ @@ -396,7 +408,7 @@ abstract protected ConditionValue getCValueContent(); /** - * Equal(=). And NullIgnored, OnceRegistered. {BIGINT : NotNull : FK to + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to * MESSAGE} * * @param messageId The value of messageId as equal. @@ -512,7 +524,7 @@ abstract protected ConditionValue getCValueMessageId(); /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP : NotNull} + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. */ @@ -567,7 +579,7 @@ /** * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -584,7 +596,7 @@ /** * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP : NotNull} + * OnceRegistered. {NotNull : TIMESTAMP} * * @param fromDate The from-date of createdTime. (Nullable) * @param toDate The to-date of createdTime. (Nullable) @@ -610,8 +622,8 @@ abstract protected ConditionValue getCValueCreatedTime(); /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : - * NotNull} + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} * * @param createdBy The value of createdBy as equal. */ Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,1891 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,464 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.board.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.board.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,3033 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.board.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.SubQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.board.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.board.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo(java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.board.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.board.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,575 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,291 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,574 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,291 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,877 @@ +package jp.sf.pal.board.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,202 @@ +package jp.sf.pal.board.db.cbean.cq.ciq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,118 @@ +package jp.sf.pal.board.db.cbean.cq.ciq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,201 @@ +package jp.sf.pal.board.db.cbean.cq.ciq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,118 @@ +package jp.sf.pal.board.db.cbean.cq.ciq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,248 @@ +package jp.sf.pal.board.db.cbean.cq.ciq; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.board.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.board.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.board.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.board.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupInfoNss.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupInfoNss.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupInfoNss.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,32 @@ +package jp.sf.pal.board.db.cbean.nss; + +import jp.sf.pal.board.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupMappingNss.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupMappingNss.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupMappingNss.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,50 @@ +package jp.sf.pal.board.db.cbean.nss; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleInfoNss.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleInfoNss.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleInfoNss.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,32 @@ +package jp.sf.pal.board.db.cbean.nss; + +import jp.sf.pal.board.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleMappingNss.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleMappingNss.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleMappingNss.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,50 @@ +package jp.sf.pal.board.db.cbean.nss; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/UserInfoNss.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/UserInfoNss.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/UserInfoNss.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,50 @@ +package jp.sf.pal.board.db.cbean.nss; + +import jp.sf.pal.board.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.board.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupInfoBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupInfoBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.board.db.bsbhv.BsGroupInfoBhv { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupMappingBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupMappingBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupMappingBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends jp.sf.pal.board.db.bsbhv.BsGroupMappingBhv { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleInfoBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleInfoBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.board.db.bsbhv.BsRoleInfoBhv { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleMappingBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleMappingBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleMappingBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends jp.sf.pal.board.db.bsbhv.BsRoleMappingBhv { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/UserInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/UserInfoBhv.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/UserInfoBhv.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exbhv; + +/** + * The behavior of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.board.db.bsbhv.BsUserInfoBhv { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupInfoDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupInfoDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupInfoDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exdao; + +/** + * The dao interface of GROUP_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends jp.sf.pal.board.db.bsdao.BsGroupInfoDao { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupMappingDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupMappingDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupMappingDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,15 @@ +package jp.sf.pal.board.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.board.db.bsdao.BsGroupMappingDao { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleInfoDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleInfoDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleInfoDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exdao; + +/** + * The dao interface of ROLE_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.board.db.bsdao.BsRoleInfoDao { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleMappingDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleMappingDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleMappingDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,15 @@ +package jp.sf.pal.board.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.board.db.bsdao.BsRoleMappingDao { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/UserInfoDao.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exdao/UserInfoDao.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exdao/UserInfoDao.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,14 @@ +package jp.sf.pal.board.db.exdao; + +/** + * The dao interface of USER_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.board.db.bsdao.BsUserInfoDao { +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,17 @@ +package jp.sf.pal.board.db.exentity; + +/** + * The entity of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.board.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupMapping.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupMapping.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupMapping.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,17 @@ +package jp.sf.pal.board.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends jp.sf.pal.board.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,17 @@ +package jp.sf.pal.board.db.exentity; + +/** + * The entity of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.board.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleMapping.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleMapping.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleMapping.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,17 @@ +package jp.sf.pal.board.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.board.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java 2008-11-13 06:58:14 UTC (rev 1345) @@ -0,0 +1,17 @@ +package jp.sf.pal.board.db.exentity; + +/** + * The entity of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.board.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/resources/dbflute.dicon =================================================================== --- board/trunk/src/main/resources/dbflute.dicon 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/resources/dbflute.dicon 2008-11-13 06:58:14 UTC (rev 1345) @@ -24,6 +24,7 @@ + @@ -59,6 +60,18 @@ + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + dbflute.interceptor @@ -83,4 +96,22 @@ + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + Deleted: board/trunk/src/main/webapp/WEB-INF/db/board.1.log.db =================================================================== (Binary files differ) Modified: board/trunk/src/main/webapp/WEB-INF/db/board.data.db =================================================================== (Binary files differ) Modified: board/trunk/src/main/webapp/WEB-INF/db/board.index.db =================================================================== (Binary files differ) Deleted: board/trunk/src/main/webapp/WEB-INF/db/board.trace.db =================================================================== --- board/trunk/src/main/webapp/WEB-INF/db/board.trace.db 2008-11-13 06:32:39 UTC (rev 1344) +++ board/trunk/src/main/webapp/WEB-INF/db/board.trace.db 2008-11-13 06:58:14 UTC (rev 1345) @@ -1,119 +0,0 @@ -10-14 12:22:36 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë MESSAGE_CONTENT ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table MESSAGE_CONTENT not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) -10-14 12:22:37 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë MESSAGE_ATTACHMENT ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table MESSAGE_ATTACHMENT not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) -10-14 12:22:37 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë REPLY ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table REPLY not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) -10-14 12:22:37 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë CATEGORY_ACCESS ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table CATEGORY_ACCESS not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) -10-14 12:22:37 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë MESSAGE ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table MESSAGE not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) -10-14 12:22:37 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë ATTACHMENT ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table ATTACHMENT not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) -10-14 12:22:37 jdbc[2]: SQLException -org.h2.jdbc.JdbcSQLException: ¥Æ¡¼¥Ö¥ë CATEGORY ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -Table CATEGORY not found [42102-79] - at org.h2.message.Message.getSQLException(Message.java:103) - at org.h2.message.Message.getSQLException(Message.java:114) - at org.h2.message.Message.getSQLException(Message.java:77) - at org.h2.command.ddl.DropTable.prepareDrop(DropTable.java:63) - at org.h2.command.ddl.DropTable.update(DropTable.java:93) - at org.h2.command.CommandContainer.update(CommandContainer.java:69) - at org.h2.command.Command.executeUpdate(Command.java:206) - at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:163) - at org.h2.server.web.WebThread.getResult(WebThread.java:1713) - at org.h2.server.web.WebThread.query(WebThread.java:1276) - at org.h2.server.web.WebThread.process(WebThread.java:443) - at org.h2.server.web.WebThread.processRequest(WebThread.java:185) - at org.h2.server.web.WebThread.process(WebThread.java:240) - at org.h2.server.web.WebThread.run(WebThread.java:195) From svnnotify ¡÷ sourceforge.jp Thu Nov 13 18:47:06 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 13 Nov 2008 18:47:06 +0900 Subject: [pal-cvs 3611] [1346] added internationalization property files & JSP files. Message-ID: <1226569626.195353.9537.nullmailer@users.sourceforge.jp> Revision: 1346 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1346 Author: takakura Date: 2008-11-13 18:47:05 +0900 (Thu, 13 Nov 2008) Log Message: ----------- added internationalization property files & JSP files. Modified Paths: -------------- addresslist/trunk/src/main/resources/application.properties addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp Added Paths: ----------- addresslist/trunk/src/main/resources/application_ja.properties -------------- next part -------------- Modified: addresslist/trunk/src/main/resources/application.properties =================================================================== --- addresslist/trunk/src/main/resources/application.properties 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/resources/application.properties 2008-11-13 09:47:05 UTC (rev 1346) @@ -12,7 +12,7 @@ errors.minbytelength={0} can not be less than {1} bytes. errors.range={0} is not in the range {1} through {2}. errors.required={0} is required. -errors.required.other={0} is required ({1}). +errors.required.other={0} is required ({1}). errors.byte={0} must be an byte. errors.date={0} is not a date. errors.double={0} must be an double. @@ -50,3 +50,79 @@ errors.failed_to_delete_person=Failed to delete the person information. errors.could_not_find_person=Could not find the person information({0}). +labels.detail=Detail +labels.create=Create +labels.update=Update +labels.delete=Delete +labels.back=Back +labels.edit=Edit +labels.confirm=Confirm +labels.to_back=Back +labels.to_next=Next + +labels.yes=Yes +labels.no=No + +labels.person=Person +labels.company=Company + +labels.confirm_company_info=Confirm Company Info +labels.name=Name +labels.name_desc=Name (Description) +labels.department=Department +labels.postal_code=Postal Code +labels.state=State +labels.city=City +labels.street=Street +labels.building=Building/Others +labels.tel1=Telephone 1 +labels.tel2=Telephone 2 +labels.fax1=Fax 1 +labels.fax2=Fax 2 +labels.url=URL +labels.public=Public + +labels.edit_company_info=Edit Company Info + +labels.create_new_company=Create New Company + +labels.config=Configuration +labels.guest_user_name=Guest User Name + +labels.address_info=Address Info +labels.f_name=Family Name +labels.f_name_desc=Family Name (Description) +labels.g_name=Given Name +labels.g_name_desc=Given Name (Description) +labels.m_name=Middle name +labels.name_prefix=Name Prefix +labels.name_suffix=Name Suffix +labels.nickname=Nickname +labels.j_title=Job Title + +labels.contact=Contact +labels.tel_h=Telephone (Home) +labels.tel_mh=Cell Phone (Home) +labels.mail_hp=Email (Home PC) +labels.mail_hm=Email (Home Mobile) +labels.fax_h=FAX (Home) +labels.tel_b=Telephone (Business) +labels.tel_mb=Cell Phone (Business) +labels.mail_bp=Email (Business PC) +labels.mail_bm=Email (Business Mobile) +labels.fax_b=FAX (Business) + +labels.home=Home +labels.c_o_company=Confirmation of Company + +labels.custom=Custom +labels.custom1=Custom 1 +labels.custom2=Custom 2 +labels.custom3=Custom 3 +labels.custom4=Custom 4 + +labels.create_new_person=Create New Person + +labels.none=None + +labels.configuration=Configuration \ No newline at end of file Added: addresslist/trunk/src/main/resources/application_ja.properties =================================================================== --- addresslist/trunk/src/main/resources/application_ja.properties (rev 0) +++ addresslist/trunk/src/main/resources/application_ja.properties 2008-11-13 09:47:05 UTC (rev 1346) @@ -0,0 +1,121 @@ +errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.maxbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.required={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.required.other={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002({1}) +errors.byte={0} \u306f\u30d0\u30a4\u30c8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.date={0} \u306f\u65e5\u4ed8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.double={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (double \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.float={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (float \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.integer={0} \u306f\u6574\u6570\u578b (2147483647 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.long={0} \u306f\u6574\u6570\u578b (9223372036854775807 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.short={0} \u306f\u6574\u6570\u578b (32767 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.creditcard={0} \u306f\u6b63\u3057\u3044\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.email={0} \u306f\u6b63\u3057\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.url={0} \u306f\u6b63\u3057\u3044 URL (\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u30a2\u30c9\u30ec\u30b9) \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 + +success.update_config=\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.create_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_company=\u4f1a\u793e\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_company=\u4f1a\u793e\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_company=\u4f1a\u793e\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_person=\u500b\u4eba\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_person=\u500b\u4eba\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_person=\u500b\u4eba\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 + +errors.failed_to_update_config=\u8a2d\u5b9a\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) +errors.failed_to_create_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_create_company=\u4f1a\u793e\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_company=\u4f1a\u793e\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_company=\u4f1a\u793e\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_company=\u4f1a\u793e\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_create_person=\u500b\u4eba\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_person=\u500b\u4eba\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_person=\u500b\u4eba\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_person=\u500b\u4eba\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 + +labels.detail=\u8a73\u7d30 +labels.create=\u4f5c\u6210 +labels.update=\u66f4\u65b0 +labels.delete=\u524a\u9664 +labels.back=\u623b\u308b +labels.edit=\u7de8\u96c6 +labels.confirm=\u78ba\u8a8d +labels.to_back=\u524d\u3078 +labels.to_next=\u6b21\u3078 + +labels.yes=\u516c\u958b\u3059\u308b +labels.no=\u516c\u958b\u3057\u306a\u3044 + +labels.person=\u500b\u4eba +labels.company=\u4f1a\u793e + +labels.confirm_company_info=\u4f1a\u793e\u60c5\u5831 +labels.name=\u540d\u524d +labels.name_desc=\u540d\u524d (\u8a73\u7d30) +labels.department=\u90e8\u7f72 +labels.postal_code=\u90f5\u4fbf\u756a\u53f7 +labels.state=\u90fd\u9053\u5e9c\u770c +labels.city=\u5e02\u533a\u90e1 +labels.street=\u753a\u6751\u540d +labels.building=\u5efa\u7269\u540d\u306a\u3069 +labels.tel1=\u96fb\u8a71\u756a\u53f7 1 +labels.tel2=\u96fb\u8a71\u756a\u53f7 2 +labels.fax1=Fax\u756a\u53f7 1 +labels.fax2=Fax\u756a\u53f7 2 +labels.url=URL +labels.public=\u516c\u958b\u8a2d\u5b9a + +labels.edit_company_info=\u4f1a\u793e\u60c5\u5831\u306e\u7de8\u96c6 + +labels.create_new_company=\u65b0\u898f\u767b\u9332 + +labels.config=\u8a2d\u5b9a +labels.guest_user_name=\u30b2\u30b9\u30c8\u30e6\u30fc\u30b6\u30fc\u306e\u540d\u524d + +labels.address_info=\u500b\u4eba\u60c5\u5831 +labels.f_name=\u59d3 +labels.f_name_desc=\u59d3 (\u8a73\u7d30) +labels.g_name=\u540d +labels.g_name_desc=\u540d (\u8a73\u7d30) +labels.m_name=\u30df\u30c9\u30eb\u30cd\u30fc\u30e0 +labels.name_prefix=\u656c\u79f0 (\u524d) +labels.name_suffix=\u656c\u79f0 (\u5f8c) +labels.nickname=\u30cb\u30c3\u30af\u30cd\u30fc\u30e0 +labels.j_title=\u5f79\u8077 + +labels.contact=\u9023\u7d61\u5148 +labels.tel_h=\u96fb\u8a71\u756a\u53f7 (\u500b\u4eba\u7528\u81ea\u5b85) +labels.tel_mh=\u96fb\u8a71\u756a\u53f7 (\u500b\u4eba\u7528\u643a\u5e2f\u96fb\u8a71) +labels.mail_hp=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 (\u500b\u4eba\u7528 PC) +labels.mail_hm=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 (\u500b\u4eba\u7528\u643a\u5e2f\u96fb\u8a71) +labels.fax_h=FAX (\u500b\u4eba\u7528) +labels.tel_b=\u96fb\u8a71\u756a\u53f7 (\u4f1a\u793e) +labels.tel_mb=\u96fb\u8a71\u756a\u53f7 (\u4f1a\u793e\u7528\u643a\u5e2f\u96fb\u8a71) +labels.mail_bp=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 (\u4f1a\u793e\u7528 PC) +labels.mail_bm=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9 (\u4f1a\u793e\u7528\u643a\u5e2f\u96fb\u8a71) +labels.fax_b=FAX (\u4f1a\u793e) + +labels.home=\u81ea\u5b85 +labels.c_o_company=\u4f1a\u793e\u60c5\u5831\u306e\u78ba\u8a8d + +labels.custom=\u30ab\u30b9\u30bf\u30e0 +labels.custom1=\u30ab\u30b9\u30bf\u30e0 1 +labels.custom2=\u30ab\u30b9\u30bf\u30e0 2 +labels.custom3=\u30ab\u30b9\u30bf\u30e0 3 +labels.custom4=\u30ab\u30b9\u30bf\u30e0 4 + +labels.create_new_person=\u65b0\u898f\u767b\u9332 + +labels.none=\u306a\u3057 + +labels.configuration=\u8a2d\u5b9a \ No newline at end of file Property changes on: addresslist/trunk/src/main/resources/application_ja.properties ___________________________________________________________________ Name: svn:mime-type + text/plain Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,65 +25,65 @@
    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92,21 +92,21 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,66 +25,66 @@
    Confirm Company Info
    Name ${f:h(name)}
    Name (Description) ${f:h(nameDesc)}
    Department ${f:h(department)}
    Postal Code ${f:h(postalCode)}
    State ${f:h(state)}
    City ${f:h(city)}
    Street ${f:h(street)}
    Building/Others ${f:h(building)}
    Telephone 1 ${f:h(telephone1)}
    Telephone 2 ${f:h(telephone2)}
    FAX 1 ${f:h(fax1)}
    FAX 2 ${f:h(fax2)}
    URL ${f:h(url)}
    Public -Yes -No + +
    - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92,8 +92,8 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -8,18 +8,20 @@
      +
      • -
      • Person
      • +
      • -
      • Company
      • +
      +

    -Ìá¤ë + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -22,13 +22,13 @@
    -Create New Company +
    Edit Company Info
    Name
    Name (Description)
    Department
    Postal Code
    State
    City
    Street
    Building/Others
    Telephone 1
    Telephone 2
    FAX 1
    FAX 2
    URL
    Public - Yes - No + +
    - - + "/> + "/>
    - - + + @@ -38,8 +38,8 @@ @@ -49,7 +49,7 @@
    - Á°¤Ø + @@ -66,7 +66,7 @@ - ¼¡¤Ø +
    Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,54 +25,54 @@
    NameDepartment  
    ${f:h(c.name)} ${f:h(c.department)} - Edit - Delete + +
    - + - +
    Address Info
    Person - + - + - + - + - + - + - + - + - + - + @@ -81,48 +81,48 @@ - +
    Family Name ${f:h(familyName)}
    Family Name (Description) ${f:h(familyNameDesc)}
    Given Name ${f:h(givenName)}
    Given Name (Description) ${f:h(givenNameDesc)}
    Middle name ${f:h(middleName)}
    Name Prefix ${f:h(namePrefix)}
    Name Suffix ${f:h(nameSuffix)}
    Nickname ${f:h(nickname)}
    Job Title ${f:h(jobTitle)}
    Public -Yes -No + +
    Contact - + - + - + - + - + - + - + - + - + - + @@ -130,28 +130,28 @@ - +
    Telephone (Home) ${f:h(homeTelephone)}
    Cell Phone (Home) ${f:h(homeCellphone)}
    Email (Home PC) ${f:h(homeEmailPC)}
    Email (Home Mobile) ${f:h(homeEmailMobile)}
    FAX (Home) ${f:h(homeFax)}
    Telephone (Business) ${f:h(businessTelephone)}
    Cell Phone (Business) ${f:h(businessCellphone)}
    Email (Business PC) ${f:h(businessEmailPC)}
    Email (Business Mobile) ${f:h(businessEmailMobile)}
    FAX (Business) ${f:h(businessFax)}
    Home - + - + - + - + - + @@ -159,70 +159,70 @@ - +
    Postal Code ${f:h(postalCode)}
    State ${f:h(state)}
    City ${f:h(city)}
    Street ${f:h(street)}
    Building/Others ${f:h(building)}
    Company - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -231,24 +231,24 @@ - +
    Confirmation of Company
    Name ${f:h(company.name)}
    Name Description ${f:h(company.nameDesc)}
    Department ${f:h(company.department)}
    Postal Code ${f:h(company.postalCode)}
    State ${f:h(company.state)}
    City ${f:h(company.city)}
    Street ${f:h(company.street)}
    Building/Others ${f:h(company.building)}
    Telephone 1 ${f:h(company.telephone1)}
    Telephone 2 ${f:h(company.telephone2)}
    FAX 1 ${f:h(company.fax1)}
    FAX 2 ${f:h(company.fax2)}
    URL ${f:h(company.url)}
    Public -Yes -No + +
    Custom - + - + - + - + @@ -260,21 +260,21 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,55 +25,55 @@
    Custom 1 ${f:h(customData1)}
    Custom 2 ${f:h(customData2)}
    Custom 3 ${f:h(customData3)}
    Custom 4 ${f:h(customData4)}
    - - + "/> + "/> - - + "/> + "/> - - + + "/> - - - + "/> + "/> + "/>
    - + - +
    Address Info
    Person - + - + - + - + - + - + - + - + - + - + @@ -82,48 +82,48 @@ - +
    Family Name
    Family Name (Description)
    Given Name
    Given Name (Description)
    Middle name
    Name Prefix
    Name Suffix
    Nickname
    Job Title
    Public - Yes - No + +
    Contact - + - + - + - + - + - + - + - + - + - + @@ -131,28 +131,28 @@ - +
    Telephone (Home)
    Cell Phone (Home)
    Email (Home PC)
    Email (Home Mobile)
    FAX (Home)
    Telephone(Business)
    Cell Phone(Business)
    Email(Business PC)
    Email(Business Mobile)
    FAX(Business)
    Home - + - + - + - + - + @@ -160,10 +160,10 @@ - + - +
    Postal Code
    State
    City
    Street
    Building/Others
    Company - + ${f:h(c.name)} @@ -171,24 +171,24 @@
    Custom - + - + - + - + @@ -199,8 +199,8 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -9,9 +9,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -19,7 +19,7 @@
    -Ìá¤ë + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -22,13 +22,13 @@
    -Create New Person +
    Custom 1
    Custom 2
    Custom 3
    Custom 4
    - - + "/> + "/>
    - - + + @@ -38,8 +38,8 @@ @@ -49,7 +49,7 @@
    - Á°¤Ø + @@ -66,7 +66,7 @@ - ¼¡¤Ø +
    Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,17 +10,17 @@
    NameCompany  
    ${f:h(p.familyName)} ${f:h(p.givenName)} ${f:h(p.company.name)} - Edit - Delete + +
    - + - + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,65 +25,65 @@
    Configuration
    Guest User Name
    - +"/>
    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92,21 +92,21 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,66 +25,66 @@
    Confirm Company Info
    Name ${f:h(name)}
    Name (Description) ${f:h(nameDesc)}
    Department ${f:h(department)}
    Postal Code ${f:h(postalCode)}
    State ${f:h(state)}
    City ${f:h(city)}
    Street ${f:h(street)}
    Building/Others ${f:h(building)}
    Telephone 1 ${f:h(telephone1)}
    Telephone 2 ${f:h(telephone2)}
    FAX 1 ${f:h(fax1)}
    FAX 2 ${f:h(fax2)}
    URL ${f:h(url)}
    Public -Yes -No + +
    - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92,8 +92,8 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -9,9 +9,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -19,7 +19,7 @@
    -Ìá¤ë + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -22,13 +22,13 @@
    -Create New Company +
    Edit Company Info
    Name
    Name (Description)
    Department
    Postal Code
    State
    City
    Street
    Building/Others
    Telephone 1
    Telephone 2
    FAX 1
    FAX 2
    URL
    Public - Yes - No + +
    - - + "/> + "/>
    - - + + @@ -38,8 +38,8 @@ @@ -49,7 +49,7 @@
    - Á°¤Ø + @@ -66,7 +66,7 @@ - ¼¡¤Ø +
    Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,54 +25,54 @@
    NameDepartment  
    ${f:h(c.name)} ${f:h(c.department)} - Edit - Delete + +
    - + - +
    Address Info
    Person - + - + - + - + - + - + - + - + - + - + @@ -81,48 +81,48 @@ - +
    Family Name ${f:h(familyName)}
    Family Name (Description) ${f:h(familyNameDesc)}
    Given Name ${f:h(givenName)}
    Given Name (Description) ${f:h(givenNameDesc)}
    Middle name ${f:h(middleName)}
    Name Prefix ${f:h(namePrefix)}
    Name Suffix ${f:h(nameSuffix)}
    Nickname ${f:h(nickname)}
    Job Title ${f:h(jobTitle)}
    Public -Yes -No + +
    Contact - + - + - + - + - + - + - + - + - + - + @@ -130,28 +130,28 @@ - + - + @@ -92,7 +92,7 @@
      -
    • ${event.time}
      +
    • ${event.time}
      ${event.title} ${event.title}
    • @@ -106,6 +106,7 @@
    Telephone (Home) ${f:h(homeTelephone)}
    Cell Phone (Home) ${f:h(homeCellphone)}
    Email (Home PC) ${f:h(homeEmailPC)}
    Email (Home Mobile) ${f:h(homeEmailMobile)}
    FAX (Home) ${f:h(homeFax)}
    Telephone (Business) ${f:h(businessTelephone)}
    Cell Phone (Business) ${f:h(businessCellphone)}
    Email (Business PC) ${f:h(businessEmailPC)}
    Email (Business Mobile) ${f:h(businessEmailMobile)}
    FAX (Business) ${f:h(businessFax)}
    Home - + - + - + - + - + @@ -159,70 +159,70 @@ - +
    Postal Code ${f:h(postalCode)}
    State ${f:h(state)}
    City ${f:h(city)}
    Street ${f:h(street)}
    Building/Others ${f:h(building)}
    Company - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -231,24 +231,24 @@ - +
    Confirmation of Company
    Name ${f:h(company.name)}
    Name Description ${f:h(company.nameDesc)}
    Department ${f:h(company.department)}
    Postal Code ${f:h(company.postalCode)}
    State ${f:h(company.state)}
    City ${f:h(company.city)}
    Street ${f:h(company.street)}
    Building/Others ${f:h(company.building)}
    Telephone 1 ${f:h(company.telephone1)}
    Telephone 2 ${f:h(company.telephone2)}
    FAX 1 ${f:h(company.fax1)}
    FAX 2 ${f:h(company.fax2)}
    URL ${f:h(company.url)}
    Public -Yes -No + +
    Custom - + - + - + - + @@ -260,21 +260,21 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -25,55 +25,55 @@
    Custom 1 ${f:h(customData1)}
    Custom 2 ${f:h(customData2)}
    Custom 3 ${f:h(customData3)}
    Custom 4 ${f:h(customData4)}
    - - + "/> + "/> - - + "/> + "/> - - + + "/> - - - + "/> + "/> + "/>
    - + - + + + + + - + @@ -96,7 +96,7 @@
      -
    • ${event.time}
      +
    • ${event.time}
      Private ${event.title} @@ -113,6 +113,7 @@
    Address Info
    Person - + - + - + - + - + - + - + - + - + - + @@ -82,48 +82,48 @@ - + ","
    Family Name
    Family Name (Description)
    Given Name
    Given Name (Description)
    Middle name
    Name Prefix
    Name Suffix
    Nickname
    Job Title
    Public - Yes - No + +
    Contact - + - + - + - + - + - + - + - + - + - + @@ -131,28 +131,28 @@ - + ","
    Telephone (Home)
    Cell Phone (Home)
    Email (Home PC)
    Email (Home Mobile)
    FAX (Home)
    Telephone(Business)
    Cell Phone(Business)
    Email(Business PC)
    Email(Business Mobile)
    FAX(Business)
    Home - + - + - + - + - + @@ -160,10 +160,10 @@ - + - + ","
    Postal Code
    State
    City
    Street
    Building/Others
    Company - + ${f:h(c.name)} @@ -171,24 +171,24 @@
    Custom - + - + - + - + @@ -199,8 +199,8 @@ Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -9,9 +9,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -19,7 +19,7 @@
    -Ìá¤ë + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-13 06:58:14 UTC (rev 1345) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-13 09:47:05 UTC (rev 1346) @@ -10,9 +10,9 @@
    • -
    • Person
    • +
    • -
    • Company
    • +
    @@ -22,13 +22,13 @@
    -Create New Person +
    Custom 1
    Custom 2
    Custom 3
    Custom 4
    - - + "/> + "/>
    - - + + @@ -38,8 +38,8 @@ @@ -49,7 +49,7 @@
    - Á°¤Ø + @@ -66,7 +66,7 @@ - ¼¡¤Ø +
    From svnnotify ¡÷ sourceforge.jp Fri Nov 14 17:19:01 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 14 Nov 2008 17:19:01 +0900 Subject: [pal-cvs 3612] [1347] document draft update Message-ID: <1226650741.694345.20221.nullmailer@users.sourceforge.jp> Revision: 1347 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1347 Author: takakura Date: 2008-11-14 17:19:01 +0900 (Fri, 14 Nov 2008) Log Message: ----------- document draft update Modified Paths: -------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex -------------- next part -------------- Modified: pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-13 09:47:05 UTC (rev 1346) +++ pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex 2008-11-14 08:19:01 UTC (rev 1347) @@ -31,6 +31,10 @@ Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î²þÁ±¤ËÅؤá¤Æ¤ª¤ê¡¢ÆɼԤ«¤é¤Î¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤Ê¤É¤ò´¿·Þ¤·¤Æ¤¤¤Þ¤¹¡£ +\chapter{¥æ¡¼¥¶¡¼¾ðÊó} +\section{¤Ï¤¸¤á¤Ë} +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥°¥ë¡¼¥×¥¦¥§¥¢Á´ÂΤΥ桼¥¶¡¼¾ðÊó¤òµ­Ï¿¤¹¤ë¤¿¤á¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ + \chapter{·Ç¼¨ÈÄ} \section{¤Ï¤¸¤á¤Ë} ¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤Ç»ÈÍѤǤ­¤ë·Ç¼¨ÈĤǤ¹¡£°Ê²¼¤Î¤è¤¦¤Êµ¡Ç½¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ @@ -388,5 +392,95 @@ ¡Ö¥¢¥Ã¥×¥í¡¼¥É¡×¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥Ã¥×¥í¡¼¥É²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï¡¢¡Ö»²¾È...¡×¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥Õ¥¡¥¤¥ë¤òÁªÂò¤¹¤ë¤È¡¢¤½¤Î̾Á°¤Î¥Õ¥¡¥¤¥ë¤ò¡ÖÂоݤΥѥ¹¡×¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤Î²¼¤Ë¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Ê¤ª¡¢°ìÅ٤˥¢¥Ã¥×¥í¡¼¥É¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Ï 1 ¸Ä¤Î¤ß¤Ç¤¹¡£ +\chapter{¥¢¥É¥ì¥¹Ä¢} +\section{¤Ï¤¸¤á¤Ë} +¤³¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢¸Ä¿Í¾ðÊó¤È²ñ¼Ò¾ðÊó¤ò·ë¤Ó¤Ä¤±¤Æµ­Ï¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë½»½êÏ¿¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +¥¿¥Ö¤Ë¤è¤ê¡¢¸Ä¿Í¾ðÊó²èÌ̤Ȳñ¼Ò¾ðÊó²èÌ̤òÀÚ¤êÂؤ¨¤Æɽ¼¨¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¡Ö¸Ä¿Í¡×¥¿¥Ö¤ò¥¯¥ê¥Ã¥¯¤·¤¿¾ì¹ç¤Ï¸Ä¿Í¾ðÊó²èÌ̤¬¡¢¡Ö²ñ¼Ò¡×¥¿¥Ö¤ò¥¯¥ê¥Ã¥¯¤·¤¿¾ì¹ç¤Ï²ñ¼Ò¾ðÊó²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ + +\subsection{²ñ¼Ò¾ðÊó¤ÎÅÐÏ¿} +²ñ¼Ò¾ðÊó¤òÅÐÏ¿¤¹¤ë¤Ë¤Ï¡¢¡Ö¿·µ¬ÅÐÏ¿¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ +²ñ¼Ò¾ðÊó¤òÅÐÏ¿¤¹¤ëºÝ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòµ­Æþ¤Ç¤­¤Þ¤¹¡£ + +\begin{itemize} +\item ̾Á° +\item ̾Á° (¾ÜºÙ) +\item Éô½ð +\item ͹ÊØÈÖ¹æ +\item ÅÔÆ»Éܸ© +\item »Ô¶è·´ +\item Į¼̾ +\item ·úʪ̾¤Ê¤É +\item ÅÅÏÃÈÖ¹æ 1 +\item ÅÅÏÃÈÖ¹æ 2 +\item FaxÈÖ¹æ 1 +\item FaxÈÖ¹æ 2 +\item URL +\item ¸ø³«ÀßÄê : ¤³¤Î²ñ¼Ò¾ðÊó¤ò¸ø³«¤¹¤ë¤«¤·¤Ê¤¤¤«¤òÀßÄê¤Ç¤­¤Þ¤¹¡£ +\end{itemize} + +\subsection{¸Ä¿Í¾ðÊó¤ÎÅÐÏ¿} +¸Ä¿Í¾ðÊó¤òÅÐÏ¿¤¹¤ë¤Ë¤Ï¡¢¡Ö¿·µ¬ÅÐÏ¿¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£ +¸Ä¿Í¾ðÊó¤òÅÐÏ¿¤¹¤ëºÝ¤Ë¤Ï¡¢°Ê²¼¤Î¹àÌܤòµ­Æþ¤Ç¤­¤Þ¤¹¡£ + +\subsubsection{¸Ä¿Í} +¸Ä¿Í¤Î̾Á°¤Ë¤«¤«¤ï¤ë¾ðÊó¤òÆþÎϤ·¤Þ¤¹¡£°Ê²¼¤Î¤è¤¦¤Ê¹àÌܤ¬¤¢¤ê¤Þ¤¹¡£ + +\begin{itemize} +\item À« +\item À« (¾ÜºÙ) +\item ̾ +\item ̾ (¾ÜºÙ) +\item ¥ß¥É¥ë¥Í¡¼¥à +\item ·É¾Î (Á°) +\item ·É¾Î (¸å) +\item ¥Ë¥Ã¥¯¥Í¡¼¥à +\item Ìò¿¦ +\item ¸ø³«ÀßÄê +\end{itemize} + +\subsubsection{Ï¢ÍíÀè} +Ï¢ÍíÀè¤Ë¤«¤«¤ï¤ë¾ðÊó¤òÆþÎϤ·¤Þ¤¹¡£°Ê²¼¤Î¤è¤¦¤Ê¹àÌܤ¬¤¢¤ê¤Þ¤¹¡£ + +\begin{itemize} +\item ÅÅÏÃÈÖ¹æ (¸Ä¿ÍÍѼ«Âð) +\item ÅÅÏÃÈÖ¹æ (¸Ä¿ÍÍÑ·ÈÂÓÅÅÏÃ) +\item ¥á¡¼¥ë¥¢¥É¥ì¥¹ (¸Ä¿ÍÍÑ PC) +\item ¥á¡¼¥ë¥¢¥É¥ì¥¹ (¸Ä¿ÍÍÑ·ÈÂÓÅÅÏÃ) +\item FAX (¸Ä¿ÍÍÑ) +\item ÅÅÏÃÈÖ¹æ (²ñ¼Ò) +\item ÅÅÏÃÈÖ¹æ (²ñ¼ÒÍÑ·ÈÂÓÅÅÏÃ) +\item ¥á¡¼¥ë¥¢¥É¥ì¥¹ (²ñ¼ÒÍÑ PC) +\item ¥á¡¼¥ë¥¢¥É¥ì¥¹ (²ñ¼ÒÍÑ·ÈÂÓÅÅÏÃ) +\item FAX (²ñ¼Ò) +\end{itemize} + +\subsubsection{¼«Âð} +¼«Âð¤Î½»½ê¤òÅÐÏ¿¤Ç¤­¤Þ¤¹¡£ + +\begin{itemize} +\item ͹ÊØÈÖ¹æ +\item ÅÔÆ»Éܸ© +\item »Ô¶è·´ +\item Į¼̾ +\item ·úʪ̾¤Ê¤É +\end{itemize} + +\subsubsection{²ñ¼Ò} +Àè¤ËÅÐÏ¿¤·¤¿²ñ¼Ò¾ðÊó¤È´ØÏ¢ÉÕ¤±¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ +¤Ê¤ª¡¢²ñ¼Ò¾ðÊó¤È´ØÏ¢ÉÕ¤±¤Ê¤¤¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ + +²ñ¼Ò¾ðÊó¤òÅÐÏ¿¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¡Ö¤Ê¤·¡×¡Ê²ñ¼Ò¾ðÊó¤È´ØÏ¢ÉÕ¤±¤Ê¤¤¡Ë¤Î¤ßÁªÂò²Äǽ¤Ç¤¹¡£ + +\subsubsection{¥«¥¹¥¿¥à} +¼«Í³¤Ë»È¤¨¤ë¹àÌܤǤ¹¡£ + +\begin{itemize} +\item ¥«¥¹¥¿¥à 1 +\item ¥«¥¹¥¿¥à 2 +\item ¥«¥¹¥¿¥à 3 +\item ¥«¥¹¥¿¥à 4 +\end{itemize} + \end{document} From svnnotify ¡÷ sourceforge.jp Fri Nov 14 18:05:46 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 14 Nov 2008 18:05:46 +0900 Subject: [pal-cvs 3613] [1348] created scheduler. Message-ID: <1226653546.147054.29471.nullmailer@users.sourceforge.jp> Revision: 1348 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1348 Author: shinsuke Date: 2008-11-14 18:05:45 +0900 (Fri, 14 Nov 2008) Log Message: ----------- created scheduler. Added Paths: ----------- scheduler/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Fri Nov 14 18:05:55 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 14 Nov 2008 18:05:55 +0900 Subject: [pal-cvs 3614] [1349] created trunk. Message-ID: <1226653555.793505.29528.nullmailer@users.sourceforge.jp> Revision: 1349 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1349 Author: shinsuke Date: 2008-11-14 18:05:55 +0900 (Fri, 14 Nov 2008) Log Message: ----------- created trunk. Added Paths: ----------- scheduler/trunk/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Fri Nov 14 18:14:02 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 14 Nov 2008 18:14:02 +0900 Subject: [pal-cvs 3615] [1350] initial commit(admin tool only..) Message-ID: <1226654042.754589.5308.nullmailer@users.sourceforge.jp> Revision: 1350 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1350 Author: shinsuke Date: 2008-11-14 18:14:02 +0900 (Fri, 14 Nov 2008) Log Message: ----------- initial commit(admin tool only..) Added Paths: ----------- scheduler/trunk/.classpath scheduler/trunk/.project scheduler/trunk/.settings/ scheduler/trunk/.settings/org.eclipse.jdt.core.prefs scheduler/trunk/.settings/org.eclipse.jdt.ui.prefs scheduler/trunk/.settings/org.seasar.sastrutsplugin.prefs scheduler/trunk/dbflute/ scheduler/trunk/dbflute/_project.bat scheduler/trunk/dbflute/_project.sh scheduler/trunk/dbflute/build-scheduler.properties scheduler/trunk/dbflute/dfprop/ scheduler/trunk/dbflute/dfprop/databaseInfoMap.dfprop scheduler/trunk/dbflute/doc.bat scheduler/trunk/dbflute/doc.sh scheduler/trunk/dbflute/generate.bat scheduler/trunk/dbflute/generate.sh scheduler/trunk/dbflute/jdbc.bat scheduler/trunk/dbflute/jdbc.sh scheduler/trunk/dbflute/log/ scheduler/trunk/dbflute/log/readme.txt scheduler/trunk/dbflute/output/ scheduler/trunk/dbflute/output/doc/ scheduler/trunk/dbflute/output/doc/readme.txt scheduler/trunk/dbflute/outside-sql-test.bat scheduler/trunk/dbflute/outside-sql-test.sh scheduler/trunk/dbflute/playsql/ scheduler/trunk/dbflute/playsql/replace-schema.sql scheduler/trunk/dbflute/replace-schema.bat scheduler/trunk/dbflute/replace-schema.sh scheduler/trunk/dbflute/schema/ scheduler/trunk/dbflute/schema/readme.txt scheduler/trunk/dbflute/sql2entity.bat scheduler/trunk/dbflute/sql2entity.sh scheduler/trunk/pom.xml scheduler/trunk/src/ scheduler/trunk/src/main/ scheduler/trunk/src/main/config/ scheduler/trunk/src/main/config/erd/ scheduler/trunk/src/main/config/erd/scheduler.erd scheduler/trunk/src/main/config/sql/ scheduler/trunk/src/main/config/sql/scheduler.ddl scheduler/trunk/src/main/java/ scheduler/trunk/src/main/java/jp/ scheduler/trunk/src/main/java/jp/sf/ scheduler/trunk/src/main/java/jp/sf/pal/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonConstants.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/creator/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/creator/PagerCreator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/form/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/form/PagingResultForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/pager/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/pager/DefaultPager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/ConfigUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/DateUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/PagingResultBeanWrapper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/SAStrutsUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/AccessContext.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BFinder.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BehaviorSelector.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheAbstractSelector.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheBehaviorSelector.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheDaoSelector.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CallbackContext.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DBFluteConfig.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoReadable.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoSelector.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoWritable.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/Entity.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/EntityDefinedCommonColumn.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/GenMetaData.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/InternalMapContext.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/QLog.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/XLog.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/annotation/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/annotation/OutsideSql.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorReadable.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorWritable.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorReadable.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorWritable.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputResult.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionFailure.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionResult.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/load/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/load/LoadReferrerOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ConditionBeanSetupper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/EntityListSetupper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelBox.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelSetupper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionQuery.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBeanContext.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionQuery.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBeanContext.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ListResultBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/MapParameterBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/OrderByBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingInvoker.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingResultBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ResultBeanBuilder.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SelectResource.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimpleOrderByBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimplePagingBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SubQuery.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/UnionQuery.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKey.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyEqual.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyInScope.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNull.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessThan.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/ConditionOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/DateFromToOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/FromToOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/InScopeOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/LikeSearchOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/SimpleStringOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/SplitOptionParts.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/local/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/cvalue/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/cvalue/ConditionValue.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowResource.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowSetupper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/mapping/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/mapping/EntityDtoMapper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlContext.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/ProcedurePmb.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLink.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeBean.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/AbstractSqlClause.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByClause.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByElement.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClause.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDb2.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDefault.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDerby.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseH2.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseMySql.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseOracle.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/AbstractDBMeta.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMeta.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ColumnInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ForeignInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ReferrerInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/RelationInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/UniqueInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableParameterNullValueException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/DangerousResultSizeException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueParameterNullValueException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EndCommentNotFoundException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyDeletedException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyExistsException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyUpdatedException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityDuplicatedException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentConditionNotFoundException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentNotBooleanResultException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentWrongExpressionException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/OutsideSqlNotFoundException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasOverlappedException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RequiredOptionNotFoundException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/SQLFailureException.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListString.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListStringImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilder.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilderImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/GeneralCharacter.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/JapaneseCharacter.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/GeneralCharacterImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrder.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/impl/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameResult.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/impl/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingCallback.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingHeaderInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingRowResource.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingSimpleFacade.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileToken.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingCallback.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingRowResource.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileTokenImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineMakingOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineToken.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineTokenizingOption.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/impl/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/impl/LineTokenImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/CursorHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/LatestSqlProvider.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/SqlLogHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/StatementConfig.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoInterceptor.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoLatestSqlProvider.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataExtension.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/util/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/valuetype/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRowCreator.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleAssertUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleStringUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleSystemUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/TraceViewUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/ValueLabelUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupInfoDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleInfoDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsUserInfoDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupInfoDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleInfoDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/UserInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/UserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupInfoCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleInfoCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupInfoNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleInfoNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/UserInfoNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/UserInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupInfoDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleInfoDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/UserInfoDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java scheduler/trunk/src/main/resources/ scheduler/trunk/src/main/resources/app.dicon scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/application_ja.properties scheduler/trunk/src/main/resources/convention.dicon scheduler/trunk/src/main/resources/creator.dicon scheduler/trunk/src/main/resources/customizer.dicon scheduler/trunk/src/main/resources/dbflute.dicon scheduler/trunk/src/main/resources/env.txt scheduler/trunk/src/main/resources/env_ut.txt scheduler/trunk/src/main/resources/jdbc.dicon scheduler/trunk/src/main/resources/s2container.dicon scheduler/trunk/src/main/webapp/ scheduler/trunk/src/main/webapp/WEB-INF/ scheduler/trunk/src/main/webapp/WEB-INF/db/ scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/scheduler.xml scheduler/trunk/src/main/webapp/WEB-INF/struts-config.xml scheduler/trunk/src/main/webapp/WEB-INF/validator-rules.xml scheduler/trunk/src/main/webapp/WEB-INF/view/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/common/ scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/config/ scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/web.xml -------------- next part -------------- Added: scheduler/trunk/.classpath =================================================================== --- scheduler/trunk/.classpath (rev 0) +++ scheduler/trunk/.classpath 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: scheduler/trunk/.classpath ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/.project =================================================================== --- scheduler/trunk/.project (rev 0) +++ scheduler/trunk/.project 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ + + scheduler + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.jdt.core.javanature + org.seasar.dolteng.eclipse.nature + + \ No newline at end of file Property changes on: scheduler/trunk/.project ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/.settings/org.eclipse.jdt.core.prefs =================================================================== --- scheduler/trunk/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ scheduler/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,261 @@ +#Mon Sep 15 07:23:10 JST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true Added: scheduler/trunk/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- scheduler/trunk/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ scheduler/trunk/.settings/org.eclipse.jdt.ui.prefs 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ +#Mon Sep 15 07:23:26 JST 2008 +eclipse.preferences.version=1 +formatter_profile=_Seasar +formatter_settings_version=11 +org.eclipse.jdt.ui.text.custom_code_templates= Added: scheduler/trunk/.settings/org.seasar.sastrutsplugin.prefs =================================================================== --- scheduler/trunk/.settings/org.seasar.sastrutsplugin.prefs (rev 0) +++ scheduler/trunk/.settings/org.seasar.sastrutsplugin.prefs 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,3 @@ +#Tue Sep 16 06:52:57 JST 2008 +WebContentsRoot=/src/main/webapp +eclipse.preferences.version=1 Added: scheduler/trunk/dbflute/_project.bat =================================================================== --- scheduler/trunk/dbflute/_project.bat (rev 0) +++ scheduler/trunk/dbflute/_project.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ + ¡÷ echo off + +set MY_PROJECT_NAME=scheduler + +set DBFLUTE_HOME=..\mydbflute\dbflute-0.8.2 Property changes on: scheduler/trunk/dbflute/_project.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/_project.sh =================================================================== --- scheduler/trunk/dbflute/_project.sh (rev 0) +++ scheduler/trunk/dbflute/_project.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ +#!/bin/sh + +export MY_PROJECT_NAME=scheduler + +export DBFLUTE_HOME=../mydbflute/dbflute-0.8.2 Property changes on: scheduler/trunk/dbflute/_project.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/dbflute/build-scheduler.properties =================================================================== --- scheduler/trunk/dbflute/build-scheduler.properties (rev 0) +++ scheduler/trunk/dbflute/build-scheduler.properties 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,161 @@ +# ======================================================================================= +# for All +# ======= + +# ------------------------------------------------------------------- +# P R O J E C T +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.project = scheduler + +# ------------------------------------------------------------------- +# T A R G E T D A T A B A S E +# ------------------------------------------------------------------- +# This is the target database, only considered when generating +# the SQL for your Torque project. Your possible choices are: +# +# axion, cloudscape, db2, db2400, hypersonic, interbase, mssql, +# mysql, oracle, postgresql, sapdb, sybase, firebird, derby, h2 +# ------------------------------------------------------------------- +# @FirstProperty +# @Required +torque.database = h2 + +# ------------------------------------------------------------------- +# T A R G E T L A N G U A G E +# ------------------------------------------------------------------- +# (Default 'java') +# The target language. Your possible choices are: +# java, csharp +# ------------------------------------------------------------------- +# @FirstProperty +#torque.targetLanguage = java + + + +# ======================================================================================= +# for OM task +# =========== + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Basic +# _/_/_/_/ +# /--------------------------------------------------------------------------- +# [Output Directory] +# java.dir: (Default '../src/main/java') +# The base output directory. +# +# If this value is '../src/main/java' and your project stype is under maven, +# you don't need to set up this property! +# +# {project} +# | +# |-dbflute_ldb +# | |-build-ldb.properties +# | |-... +# | +# |-src/main/java // *Here! +# |-src/main/resources +# |-... +# +# +# @FirstProperty +#torque.java.dir = ../src/main/java +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Package +# _/_/ +# /--------------------------------------------------------------------------- +# [EntityDao Package] +# packageBase: (Default '') +# The base directory of package. +# +# *If this property is specified and other package properties is not specified, +# Then The packages of generated class are as follows: +# +# ex) packageBase = org.seasar.dbflute.example.dbflute.ldb +# baseCommonPackage --> org.seasar.dbflute.example.dbflute.ldb.allcommon +# baseBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.bsbhv +# baseDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.bsdao +# baseEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.bsentity +# conditionBeanPackage --> org.seasar.dbflute.example.dbflute.ldb.cbean +# extendedBehaviorPackage --> org.seasar.dbflute.example.dbflute.ldb.exbhv +# extendedDaoPackage --> org.seasar.dbflute.example.dbflute.ldb.exdao +# extendedEntityPackage --> org.seasar.dbflute.example.dbflute.ldb.exentity +# +# *If this property is not specified, you should specify the other package properties. +# +# +# baseCommonPackage: (Default Java:'allcommon' C#:'allcommon') +# baseBehaviorPackage: (Default Java:'bsbhv' C#:'bsbhv') +# baseDaoPackage: (Default Java:'bsdao' C#:'bsdao') +# baseEntityPackage: (Default Java:'bsentity' C#:'bsentity') +# conditionBeanPackage: (Default Java:'cbean' C#:'cbean') +# extendedBehaviorPackage: (Default Java:'exbhv' C#:'exbhv') +# extendedDaoPackage: (Default Java:'exdao' C#:'exdao') +# extendedEntityPackage: (Default Java:'exentity' C#:'exentity') +# +# @FirstProperty +torque.packageBase = jp.sf.pal.scheduler.db +# ----------------/ + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# S2Dao Adjustment +# _/_/_/_/_/_/ +# /--------------------------------------------------------------------------- +# [S2Dao Version] +# s2daoVersion: (Default [The latest version]) +# +# @JavaOnly +torque.s2daoVersion = 1.0.48 +# ----------------/ + + + +# ======================================================================================= +# for JDBC task +# ============= + +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# [Database Informaition] +# +# * * * * * * * * * * * * * * * * * * * * * * * * * +# You shuold use './dfprop/databaseInfoMap.dfprop' +# Look the file! +# * * * * * * * * * * * * * * * * * * * * * * * * * +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ +# Adavance +# _/_/ + +# /--------------------------------------------------------------------------- +# [Sequence] +# sequenceDefinitionMap: (Default 'map:{}') +# The method 'XxxDao#selectNextVal()' is generated for its table primary key. +# +# ex) public String selectNextVal_SQL = "select gen_id(BOOK_BOOK_ID_INC, 1) from RDB$DATABASE"; +# public java.math.BigDecimal selectNextVal(); +# // This example is for the database of Firebird +# +# sequenceReturnType: (Default 'java.math.BigDecimal') +# The return type of The method 'XxxDao#selectNextVal()'. +# + +# +# *Apache Derby does not support Sequence-Object. +# But I want to test this property. +# +#torque.sequenceDefinitionMap = map:{ \ +# prodcts = PRODUCTS_PRODUCTS_ID_INC \ +# } + +#torque.sequenceReturnType = java.lang.Integer +# [Additional ForeignKey] +torque.additionalForeignKeyMap = map:{ \ +} + +#torque.isDeleteOldTableClass = true + Property changes on: scheduler/trunk/dbflute/build-scheduler.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/dfprop/databaseInfoMap.dfprop =================================================================== --- scheduler/trunk/dbflute/dfprop/databaseInfoMap.dfprop (rev 0) +++ scheduler/trunk/dbflute/dfprop/databaseInfoMap.dfprop 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +# /--------------------------------------------------------------------------- +# [Database Information] +# databaseInfoMap: +# driver -- The class name of JDBC-Driver. +# url -- The url for connecting database. +# schema -- The schema name. +# user -- The database user name. +# password -- The database password. +# +# @FirstProperty +map:{ + ; driver = org.h2.Driver + ; url = jdbc:h2:file:../src/main/webapp/WEB-INF/db/scheduler + ; schema = + ; user = sa + ; password = +} +# ----------------/ Added: scheduler/trunk/dbflute/doc.bat =================================================================== --- scheduler/trunk/dbflute/doc.bat (rev 0) +++ scheduler/trunk/dbflute/doc.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-doc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: scheduler/trunk/dbflute/doc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/doc.sh =================================================================== --- scheduler/trunk/dbflute/doc.sh (rev 0) +++ scheduler/trunk/dbflute/doc.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Document}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-doc.sh $MY_PROPERTIES_PATH + Property changes on: scheduler/trunk/dbflute/doc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/dbflute/generate.bat =================================================================== --- scheduler/trunk/dbflute/generate.bat (rev 0) +++ scheduler/trunk/dbflute/generate.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Generate}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-generate.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: scheduler/trunk/dbflute/generate.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/generate.sh =================================================================== --- scheduler/trunk/dbflute/generate.sh (rev 0) +++ scheduler/trunk/dbflute/generate.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,16 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Generate}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-generate.sh $MY_PROPERTIES_PATH + + + Property changes on: scheduler/trunk/dbflute/generate.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/dbflute/jdbc.bat =================================================================== --- scheduler/trunk/dbflute/jdbc.bat (rev 0) +++ scheduler/trunk/dbflute/jdbc.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {JDBC and Document}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-jdbc.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: scheduler/trunk/dbflute/jdbc.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/jdbc.sh =================================================================== --- scheduler/trunk/dbflute/jdbc.sh (rev 0) +++ scheduler/trunk/dbflute/jdbc.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH="build-${MY_PROJECT_NAME}.properties" + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {JDBC and Document}." +echo "nnnnnnnnnn/" +sh ${DBFLUTE_HOME}/etc/cmd/_df-jdbc.sh ${MY_PROPERTIES_PATH} + + Property changes on: scheduler/trunk/dbflute/jdbc.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/dbflute/log/readme.txt =================================================================== --- scheduler/trunk/dbflute/log/readme.txt (rev 0) +++ scheduler/trunk/dbflute/log/readme.txt 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1 @@ +Directory for LogFile Property changes on: scheduler/trunk/dbflute/log/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/output/doc/readme.txt =================================================================== --- scheduler/trunk/dbflute/output/doc/readme.txt (rev 0) +++ scheduler/trunk/dbflute/output/doc/readme.txt 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1 @@ +Directory for Document Property changes on: scheduler/trunk/dbflute/output/doc/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/outside-sql-test.bat =================================================================== --- scheduler/trunk/dbflute/outside-sql-test.bat (rev 0) +++ scheduler/trunk/dbflute/outside-sql-test.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Outsite-Sql-Test}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-outside-sql-test.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: scheduler/trunk/dbflute/outside-sql-test.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/outside-sql-test.sh =================================================================== --- scheduler/trunk/dbflute/outside-sql-test.sh (rev 0) +++ scheduler/trunk/dbflute/outside-sql-test.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Outsite-Sql-Test}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-outside-sql-test.sh $MY_PROPERTIES_PATH + + Property changes on: scheduler/trunk/dbflute/outside-sql-test.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/dbflute/playsql/replace-schema.sql =================================================================== --- scheduler/trunk/dbflute/playsql/replace-schema.sql (rev 0) +++ scheduler/trunk/dbflute/playsql/replace-schema.sql 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,418 @@ +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_BLACK_LIST +; + +ALTER TABLE BLACK_ACTION DROP CONSTRAINT FK_BLACK_ACTION_LOOKUP +; + +ALTER TABLE BLACK_LIST DROP CONSTRAINT FK_BLACK_LIST_LB_USER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_AUTHOR +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_PUBLISHER +; + +ALTER TABLE BOOK DROP CONSTRAINT FK_BOOK_GENRE +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_BOOK +; + +ALTER TABLE COLLECTION DROP CONSTRAINT FK_COLLECTION_LIBRARY +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_COLLECTION +; + +ALTER TABLE COLLECTION_STATUS DROP CONSTRAINT FK_COLLECTION_STATUS_LOOKUP +; + +ALTER TABLE GENRE DROP CONSTRAINT FK_GENRE_GENRE +; + +ALTER TABLE LB_USER DROP CONSTRAINT FK_LB_USER_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LIBRARY +; + +ALTER TABLE LENDING DROP CONSTRAINT FK_LENDING_LB_USER +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_LENDING +; + +ALTER TABLE LENDING_COLLECTION DROP CONSTRAINT FK_LENDING_COLLECTION_COL +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID +; + +ALTER TABLE NEXT_LIBRARY DROP CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID +; + + +DROP TABLE AUTHOR +; +DROP TABLE BLACK_ACTION +; +DROP TABLE BLACK_ACTION_LOOKUP +; +DROP TABLE BLACK_LIST +; +DROP TABLE BOOK +; +DROP TABLE COLLECTION +; +DROP TABLE COLLECTION_STATUS +; +DROP TABLE COLLECTION_STATUS_LOOKUP +; +DROP TABLE GARBAGE +; +DROP TABLE GENRE +; +DROP TABLE LB_USER +; +DROP TABLE LENDING +; +DROP TABLE LENDING_COLLECTION +; +DROP TABLE LIBRARY +; +DROP TABLE NEXT_LIBRARY +; +DROP TABLE PUBLISHER +; + +CREATE TABLE AUTHOR ( + AUTHOR_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + AUTHOR_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION ( + BLACK_ACTION_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + BLACK_LIST_ID integer NOT NULL, + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_LEVEL smallint NOT NULL, + EVIDENCE_PHOTOGRAPH blob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_ACTION_LOOKUP ( + BLACK_ACTION_CODE char(3) NOT NULL, + BLACK_ACTION_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BLACK_LIST ( + BLACK_LIST_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_ID integer NOT NULL, + BLACK_RANK char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE BOOK ( + BOOK_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + ISBN_NO varchar(20) NOT NULL, + BOOK_NAME varchar(80) NOT NULL, + AUTHOR_ID integer NOT NULL, + PUBLISHER_ID integer NOT NULL, + MAX_LENDING_DATE_COUNT smallint NOT NULL, + GENRE_CODE varchar(12), + OPENING_PART clob, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION ( + COLLECTION_ID integer NOT NULL, + LIBRARY_ID smallint NOT NULL, + BOOK_ID integer NOT NULL, + ARRIVAL_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS ( + COLLECTION_ID integer NOT NULL, + COLLECTION_STATUS_CODE char(3) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE COLLECTION_STATUS_LOOKUP ( + COLLECTION_STATUS_CODE char(3) NOT NULL, + COLLECTION_STATUS_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE GARBAGE ( + GARBAGE_MEMO varchar(50), + GARBAGE_TIME timestamp +) +; + +CREATE TABLE GENRE ( + GENRE_CODE varchar(12) NOT NULL, + GENRE_NAME varchar(80) NOT NULL, + PARENT_GENRE_CODE varchar(12), + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LB_USER ( + LB_USER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LB_USER_NAME varchar(80) NOT NULL, + LIBRARY_ID smallint NOT NULL, + USER_PASSWORD varchar(50) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING ( + LENDING_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_ID smallint NOT NULL, + LB_USER_ID integer NOT NULL, + LENDING_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LENDING_COLLECTION ( + LENDING_ID integer NOT NULL, + COLLECTION_ID integer NOT NULL, + RETURN_LIMIT_DATE timestamp NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE LIBRARY ( + LIBRARY_ID smallint NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + LIBRARY_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE NEXT_LIBRARY ( + LIBRARY_ID smallint NOT NULL, + NEXT_LIBRARY_ID smallint NOT NULL, + DISTANCE_KM integer NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + +CREATE TABLE PUBLISHER ( + PUBLISHER_ID integer NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), + PUBLISHER_NAME varchar(80) NOT NULL, + R_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + U_TIME timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, + R_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL, + U_STAFF varchar(50) DEFAULT 'DefaultStaff' NOT NULL +) +; + + +ALTER TABLE AUTHOR ADD CONSTRAINT PK_AUTHOR + PRIMARY KEY (AUTHOR_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT PK_BLACK_ACTION + PRIMARY KEY (BLACK_ACTION_ID) +; + +ALTER TABLE BLACK_ACTION_LOOKUP ADD CONSTRAINT PK_BLACK_ACTION_LOOKUP + PRIMARY KEY (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT PK_BLACK_LIST + PRIMARY KEY (BLACK_LIST_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT PK_BOOK + PRIMARY KEY (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT PK_COLLECTION + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT PK_COLLECTION_STATUS + PRIMARY KEY (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS_LOOKUP ADD CONSTRAINT PK_COLLECTION_STATUS_LOOKUP + PRIMARY KEY (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT PK_GENRE + PRIMARY KEY (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT PK_LB_USER + PRIMARY KEY (LB_USER_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT PK_LENDING + PRIMARY KEY (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT PK_LENDING_COLLECTION + PRIMARY KEY (LENDING_ID, COLLECTION_ID) +; + +ALTER TABLE LIBRARY ADD CONSTRAINT PK_LIBRARY + PRIMARY KEY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT PK_NEXT_LIBRARY + PRIMARY KEY (LIBRARY_ID, NEXT_LIBRARY_ID) +; + +ALTER TABLE PUBLISHER ADD CONSTRAINT PK_PUBLISHER + PRIMARY KEY (PUBLISHER_ID) +; + + +ALTER TABLE BOOK + ADD CONSTRAINT UQ_BOOK_ISBN_NO UNIQUE (ISBN_NO) +; + +ALTER TABLE COLLECTION + ADD CONSTRAINT UQ_COLLECTION_Primary UNIQUE (LIBRARY_ID, BOOK_ID) +; + +ALTER TABLE LENDING + ADD CONSTRAINT UQ_LENDING_Primary UNIQUE (LIBRARY_ID, LB_USER_ID) +; + +ALTER TABLE BLACK_LIST + ADD CONSTRAINT UQ_BLACK_LIST_LB_USER_ID UNIQUE (LB_USER_ID) +; + +ALTER TABLE LIBRARY + ADD CONSTRAINT UQ_LIBRARY_LIBRARY_NAME UNIQUE (LIBRARY_NAME) +; + + + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_BLACK_LIST + FOREIGN KEY (BLACK_LIST_ID) REFERENCES BLACK_LIST (BLACK_LIST_ID) +; + +ALTER TABLE BLACK_ACTION ADD CONSTRAINT FK_BLACK_ACTION_LOOKUP + FOREIGN KEY (BLACK_ACTION_CODE) REFERENCES BLACK_ACTION_LOOKUP (BLACK_ACTION_CODE) +; + +ALTER TABLE BLACK_LIST ADD CONSTRAINT FK_BLACK_LIST_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_AUTHOR + FOREIGN KEY (AUTHOR_ID) REFERENCES AUTHOR (AUTHOR_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_PUBLISHER + FOREIGN KEY (PUBLISHER_ID) REFERENCES PUBLISHER (PUBLISHER_ID) +; + +ALTER TABLE BOOK ADD CONSTRAINT FK_BOOK_GENRE + FOREIGN KEY (GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_BOOK + FOREIGN KEY (BOOK_ID) REFERENCES BOOK (BOOK_ID) +; + +ALTER TABLE COLLECTION ADD CONSTRAINT FK_COLLECTION_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_COLLECTION + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE COLLECTION_STATUS ADD CONSTRAINT FK_COLLECTION_STATUS_LOOKUP + FOREIGN KEY (COLLECTION_STATUS_CODE) REFERENCES COLLECTION_STATUS_LOOKUP (COLLECTION_STATUS_CODE) +; + +ALTER TABLE GENRE ADD CONSTRAINT FK_GENRE_GENRE + FOREIGN KEY (PARENT_GENRE_CODE) REFERENCES GENRE (GENRE_CODE) +; + +ALTER TABLE LB_USER ADD CONSTRAINT FK_LB_USER_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LIBRARY + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE LENDING ADD CONSTRAINT FK_LENDING_LB_USER + FOREIGN KEY (LB_USER_ID) REFERENCES LB_USER (LB_USER_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_LENDING + FOREIGN KEY (LENDING_ID) REFERENCES LENDING (LENDING_ID) +; + +ALTER TABLE LENDING_COLLECTION ADD CONSTRAINT FK_LENDING_COLLECTION_COL + FOREIGN KEY (COLLECTION_ID) REFERENCES COLLECTION (COLLECTION_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_LIBRARY_ID + FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; + +ALTER TABLE NEXT_LIBRARY ADD CONSTRAINT FK_NEXT_LIBRARY_NEXT_LIBRARY_ID + FOREIGN KEY (NEXT_LIBRARY_ID) REFERENCES LIBRARY (LIBRARY_ID) +; Added: scheduler/trunk/dbflute/replace-schema.bat =================================================================== --- scheduler/trunk/dbflute/replace-schema.bat (rev 0) +++ scheduler/trunk/dbflute/replace-schema.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Replace-Schema}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-replace-schema.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: scheduler/trunk/dbflute/replace-schema.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/replace-schema.sh =================================================================== --- scheduler/trunk/dbflute/replace-schema.sh (rev 0) +++ scheduler/trunk/dbflute/replace-schema.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Replace-Schema}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-replace-schema.sh $MY_PROPERTIES_PATH + + Property changes on: scheduler/trunk/dbflute/replace-schema.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/dbflute/schema/readme.txt =================================================================== --- scheduler/trunk/dbflute/schema/readme.txt (rev 0) +++ scheduler/trunk/dbflute/schema/readme.txt 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1 @@ +Directory for SchemaFile Property changes on: scheduler/trunk/dbflute/schema/readme.txt ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/sql2entity.bat =================================================================== --- scheduler/trunk/dbflute/sql2entity.bat (rev 0) +++ scheduler/trunk/dbflute/sql2entity.bat 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ + ¡÷ echo off + +%~d0 +cd %~p0 +call _project.bat + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Specify the file path to be used as build-properties. +rem nnnnnnnnnn/ +set MY_PROPERTIES_PATH=build-%MY_PROJECT_NAME%.properties + +rem /nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +rem Execute {Invoke Sql Directory}. +rem nnnnnnnnnn/ +call %DBFLUTE_HOME%\etc\cmd\_df-sql2entity.cmd %MY_PROPERTIES_PATH% + +pause + + Property changes on: scheduler/trunk/dbflute/sql2entity.bat ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/dbflute/sql2entity.sh =================================================================== --- scheduler/trunk/dbflute/sql2entity.sh (rev 0) +++ scheduler/trunk/dbflute/sql2entity.sh 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +#!/bin/sh + +. _project.sh + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Specify the file path to be used as build-properties." +echo "nnnnnnnnnn/" +export MY_PROPERTIES_PATH=build-${MY_PROJECT_NAME}.properties + +echo "/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +echo "Execute {Invoke Sql Directory}." +echo "nnnnnnnnnn/" +sh $DBFLUTE_HOME/etc/cmd/_df-sql2entity.sh $MY_PROPERTIES_PATH + + Property changes on: scheduler/trunk/dbflute/sql2entity.sh ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native Added: scheduler/trunk/pom.xml =================================================================== --- scheduler/trunk/pom.xml (rev 0) +++ scheduler/trunk/pom.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,302 @@ + + + 4.0.0 + jp.sf.pal + scheduler + 1.0-SNAPSHOT + war + Scheduler + + + scheduler + validate + + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-surefire-plugin + 2.3 + + + maven-deploy-plugin + + true + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.0-SNAPSHOT + + + + clean + + + + + + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + mvnrepository.com + Maven2 Repository on mvnrepository.com + http://mvnrepository.com/artifact/ + + + maven.marevol.com + Maven2 Repository on marevol.com + http://maven2.marevol.com/ + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + portlet-api + portlet-api + 1.0 + provided + + + org.apache.portals.bridges + portals-bridges-portletfilter + 1.0.4 + + + logkit + logkit + + + avalon-framework + avalon-framework + + + javax.servlet + servlet-api + + + log4j + log4j + + + + + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + + jstl + jstl + 1.1.2 + + + taglibs + standard + 1.1.2 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 1.3 + + + commons-lang + commons-lang + 2.3 + + + commons-validator + commons-validator + 1.2.0 + + + commons-logging + commons-logging + 1.0.4 + + + log4j + log4j + 1.2.13 + jar + + + + org.apache.portals.jetspeed-2 + jetspeed-api + 2.1.3 + provided + + + junit + junit + + + + + javax.servlet + servlet-api + 2.3 + provided + + + + org.seasar.container + s2-extension + 2.4.29 + + + log4j + log4j + + + junit + junit + + + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.easymock + easymock + + + junit + junit + + + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + org.easymock + easymock + + + commons-logging + commons-logging + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.1.1 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + junit + junit + + + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + junit + junit + + + + + + org.seasar.dao + s2-dao + 1.0.48 + + + org.seasar.dao + s2-dao-tiger + 1.0.48 + + + com.h2database + h2 + 1.0.79 + + + + Property changes on: scheduler/trunk/pom.xml ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/config/erd/scheduler.erd =================================================================== --- scheduler/trunk/src/main/config/erd/scheduler.erd (rev 0) +++ scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1683 @@ + + + + + + + user_info + User Information + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + true + + false + + + + given_name + Given Name + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + family_name + Family Name + + 100 + false + false + + false + + + + middle_name + Middle Name + + 50 + false + false + + false + + + + given_name_desc + Given Name Descritpion + + 100 + false + false + + false + + + + family_name_desc + Family Name Description + + 100 + false + false + + false + + + + nickname + Nickname + + VARCHAR + String + true + 12 + + 100 + false + false + + false + + + + gender + Gender + + 1 + false + false + + false + + + + birth_date + Birth Date + + DATE + Date + false + 91 + + 10 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + VARCHAR + String + true + 12 + + 40 + false + false + + false + + + + role_id + Default Role ID + + 255 + false + false + + false + + + + group_id + Default Group ID + + 255 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 442 + 199 + -1 + -1 + + + + FK_from_user_to_group + + + + group_id + Group ID + + 255 + true + true + + false + + + + + + + + + + group_info + Group Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 40 + 700 + -1 + -1 + + + + + + FK_from_mapping_to_group + + + + + group_id + Group ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + group_mapping + Group Mapping + + + + id + ID + + INTEGER + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 44 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + FK_from_user_to_role + + + + role_id + Role ID + + 255 + true + true + + false + + + + + + + + + + role_info + Role Information + + + + + name + Name + + 100 + false + false + + false + + + + description + Description + + 255 + false + false + + false + + + + email + Email + + 255 + false + false + + false + + + + url + URL + + 255 + false + false + + false + + + + telephone + Telephone + + 40 + false + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 308 + 700 + -1 + -1 + + + + + + FK_from_mapping_to_role + + + + + role_id + Role ID + + 255 + true + false + + false + + + + + + + + role_mapping + Role Mapping + + + + id + ID + + INT + Integer + false + 4 + + 10 + true + true + + true + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + 305 + 40 + -1 + -1 + + + + FK_from_mapping_to_user + + + + + + + + + + + + 2 + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + FK_from_single_schedule_mapping_to_user + + + + + user_id + User ID + + VARCHAR + String + true + 12 + + 255 + true + false + + false + + + + + + + + single_schedule_mapping + Single Schedule Mapping + + + + id + ID + + BIGINT + Integer + true + -5 + + 20 + true + true + + true + + + + schedule_id + Schedule ID + + BIGINT + Integer + true + -5 + + 20 + true + false + + false + + + + + + + 839 + 40 + -1 + -1 + + + + + FK_from_single_schedule_mapping_to_schedule + + + + id + ID + + 20 + true + true + + true + + + + + + + + + + single_schedule + Single Schedule + + + + + title + Title + + 100 + true + false + + false + + + + location + Location + + 100 + false + false + + false + + + + start_date + Start Date + + DATE + Date + false + 91 + + 10 + true + false + + false + + + + start_time + Start Time + + TIME + Time + false + 92 + + 10 + false + false + + false + + + + end_date + End Date + + 10 + true + false + + false + + + + end_time + End Time + + 10 + false + false + + false + + + + created_time + Created Time + + TIMESTAMP + Datetime + false + 93 + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + false + false + + false + + + + updated_by + Updated By + + 255 + false + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No + + INTEGER + Integer + false + 4 + + 10 + true + false + + false + + + + + + 1104 + 199 + -1 + -1 + + + + + + FK_from_content_to_single_schedule + + + + + id + ID + + 20 + true + true + + false + + + + + + + + single_schedule_content + Single Schedule Content + + + + + content + Content + + 1000 + false + false + + false + + + + + + 1371 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + FK_from_routine_schedule_mapping_to_user + + + + + user_id + User ID + + 255 + true + false + + false + + + + + + + + routine_schedule_mapping + Routine Schedule Mapping + + + + id + ID + + 20 + true + true + + true + + + + schedule_id + Schedule ID + + 20 + true + false + + false + + + + + + + 557 + 40 + -1 + -1 + + + + + FK_from_routine_schedule_mapping_to_schedule + + + + id + ID + + 20 + true + true + + true + + + + + + + + + + routine_schedule + Routine Schedule + + + + + title + Title + + 100 + true + false + + false + + + + location + Location + + 100 + false + false + + false + + + + start_date + Start Date + + 10 + true + false + + false + + + + start_time + Start Time + + 10 + false + false + + false + + + + end_date + End Date + + 10 + false + false + + false + + + + end_time + End Time + + 10 + false + false + + false + + + + type + Type + + 10 + true + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + + + + + + 836 + 199 + -1 + -1 + + + + + + FK_from_content_to_routine_schedule + + + + + id + ID + + 20 + true + true + + false + + + + + + + + routine_schedule_content + Routine Schedule Content + + + + + content + Content + + 1000 + false + false + + false + + + + + + 1121 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + hsqldb + false + /home/taro/.m2/repository/com/h2database/h2/1.0.79/h2-1.0.79.jar + org.h2.Driver + jdbc:h2:tcp://localhost:9092/scheduler + sa + + + + false + + + + 2 + + + + + + \ No newline at end of file Added: scheduler/trunk/src/main/config/sql/scheduler.ddl =================================================================== --- scheduler/trunk/src/main/config/sql/scheduler.ddl (rev 0) +++ scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,182 @@ +DROP TABLE routine_schedule_content; +DROP TABLE single_schedule_content; +DROP TABLE routine_schedule_mapping; +DROP TABLE routine_schedule; +DROP TABLE single_schedule_mapping; +DROP TABLE single_schedule; +DROP TABLE role_mapping; +DROP TABLE group_mapping; +DROP TABLE user_info; +DROP TABLE role_info; +DROP TABLE group_info; + +/********************************** +Table Name: Group Information +**********************************/ +CREATE TABLE group_info( + group_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Role Information +**********************************/ +CREATE TABLE role_info( + role_id VARCHAR(255) NOT NULL PRIMARY KEY, + name VARCHAR(100), + description VARCHAR(255), + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: User Information +**********************************/ +CREATE TABLE user_info( + user_id VARCHAR(255) NOT NULL PRIMARY KEY, + given_name VARCHAR(100), + family_name VARCHAR(100), + middle_name VARCHAR(50), + given_name_desc VARCHAR(100), + family_name_desc VARCHAR(100), + nickname VARCHAR(100), + gender VARCHAR(1), + birth_date DATE, + email VARCHAR(255), + url VARCHAR(255), + telephone VARCHAR(40), + role_id VARCHAR(255), + group_id VARCHAR(255), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (group_id) REFERENCES group_info (group_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Group Mapping +**********************************/ +CREATE TABLE group_mapping( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + group_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (group_id) REFERENCES group_info (group_id) +); + +/********************************** +Table Name: Role Mapping +**********************************/ +CREATE TABLE role_mapping( + id INT NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255) NOT NULL, + role_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (role_id) REFERENCES role_info (role_id) +); + +/********************************** +Table Name: Single Schedule +**********************************/ +CREATE TABLE single_schedule( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + title VARCHAR(100) NOT NULL, + location VARCHAR(100), + start_date DATE NOT NULL, + start_time TIME, + end_date DATE NOT NULL, + end_time TIME, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP, + updated_by VARCHAR(255), + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Single Schedule Mapping +**********************************/ +CREATE TABLE single_schedule_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + schedule_id BIGINT(20) NOT NULL, + user_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (schedule_id) REFERENCES single_schedule (id) +); + +/********************************** +Table Name: Routine Schedule +**********************************/ +CREATE TABLE routine_schedule( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + title VARCHAR(100) NOT NULL, + location VARCHAR(100), + start_date DATE NOT NULL, + start_time TIME, + end_date DATE, + end_time TIME, + type VARCHAR(10) NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Routine Schedule Mapping +**********************************/ +CREATE TABLE routine_schedule_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + schedule_id BIGINT(20) NOT NULL, + user_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (schedule_id) REFERENCES routine_schedule (id) +); + +/********************************** +Table Name: Single Schedule Content +**********************************/ +CREATE TABLE single_schedule_content( + id BIGINT(20) NOT NULL PRIMARY KEY, + content VARCHAR(1000), + FOREIGN KEY (id) REFERENCES single_schedule (id) +); + +/********************************** +Table Name: Routine Schedule Content +**********************************/ +CREATE TABLE routine_schedule_content( + id BIGINT(20) NOT NULL PRIMARY KEY, + content VARCHAR(1000), + FOREIGN KEY (id) REFERENCES routine_schedule (id) +); + Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,9 @@ +package jp.sf.pal.scheduler; + +public class SchedulerConstants { + + public static final String ROLE_AVAILABLE = "features.role"; + + public static final String GROUP_AVAILABLE = "features.group"; + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,78 @@ +package jp.sf.pal.scheduler.action; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.form.ConfigForm; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class ConfigAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(ConfigAction.class); + + @ActionForm + private ConfigForm configForm; + + private transient HttpServletRequest request; + + protected String displayIndex() { + configForm.roleAvailable = ConfigUtil.getString( + SchedulerConstants.ROLE_AVAILABLE, "true"); + configForm.groupAvailable = ConfigUtil.getString( + SchedulerConstants.GROUP_AVAILABLE, "true"); + return "index.jsp"; + } + + @Execute(validator = false, input = "index.jsp") + public String index() { + ConfigUtil.init(request); + return displayIndex(); + } + + @Execute(validator = false, input = "index.jsp") + public String update() { + ConfigUtil.init(request); + ConfigUtil.setProperty(SchedulerConstants.ROLE_AVAILABLE, + configForm.roleAvailable); + ConfigUtil.setProperty(SchedulerConstants.GROUP_AVAILABLE, + configForm.groupAvailable); + try { + ConfigUtil.save(); + SAStrutsUtil.addMessage(request, "success.update_config"); + + return displayIndex(); + } catch (ConfigurationException e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException("errors.failed_to_update_config"); + } + } + + public ConfigForm getConfigForm() { + return configForm; + } + + public void setConfigForm(ConfigForm configForm) { + this.configForm = configForm; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,424 @@ +package jp.sf.pal.scheduler.action.admin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RoutineScheduleDxo; +import jp.sf.pal.scheduler.form.admin.RoutineScheduleForm; +import jp.sf.pal.scheduler.pager.RoutineSchedulePager; +import jp.sf.pal.scheduler.service.RoutineScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RoutineScheduleAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory + .getLog(RoutineScheduleAction.class); + + // for list + + public List routineScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private RoutineScheduleForm routineScheduleForm; + + private RoutineScheduleService routineScheduleService; + + private UserInfoService userInfoService; + + private RoutineSchedulePager routineSchedulePager; + + private PagerDxo pagerDxo; + + private RoutineScheduleDxo routineScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + routineScheduleItems = routineScheduleService.getRoutineScheduleList( + routineSchedulePager, null); + + // restore from pager + // routineScheduleForm.routineSchedulename = + // routineSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(routineScheduleForm, routineSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // routineSchedulePager.setGroupInfoname(routineScheduleForm. + // routineSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + routineSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (routineScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + routineScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + routineScheduleForm.initialize(); + routineScheduleForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (routineScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + routineScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + routineScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (routineScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + routineScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + routineScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + RoutineSchedule routineSchedule = createRoutineSchedule(); + routineScheduleService.store(routineSchedule); + SAStrutsUtil.addMessage(request, "success.create_routineSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_routineSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + RoutineSchedule routineSchedule = createRoutineSchedule(); + routineScheduleService.store(routineSchedule); + SAStrutsUtil.addMessage(request, "success.update_routineSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_routineSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + routineScheduleService + .disable(Long.parseLong(routineScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_routineSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_routineSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (routineScheduleForm.selectedUsers != null) { + for (String userId : routineScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (routineScheduleForm.addedUsers != null) { + for (String userId : routineScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + routineScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + routineScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (routineScheduleForm.selectedUsers != null) { + for (String userId : routineScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (routineScheduleForm.removedUsers != null) { + for (String userId : routineScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + routineScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + routineScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadRoutineSchedule() { + + RoutineSchedule routineSchedule = routineScheduleService + .getRoutineSchedule(Long.parseLong(routineScheduleForm.id), + null); + if (routineSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_routineSchedule", + new Object[] { routineScheduleForm.id }); + } + routineScheduleDxo.convertFromRoutineScheduleToForm(routineSchedule, + routineScheduleForm); + + routineScheduleForm.selectedUsers = routineSchedule.getSelectedUsers(); + } + + private RoutineSchedule createRoutineSchedule() { + String userId = request.getRemoteUser(); + RoutineSchedule routineSchedule; + if (routineScheduleForm.mode == CommonConstants.EDIT_MODE) { + routineSchedule = routineScheduleService.getRoutineSchedule(Long + .parseLong(routineScheduleForm.id), null); + routineSchedule.setUpdatedBy(userId); + } else { + routineSchedule = new RoutineSchedule(); + routineSchedule.setUpdatedBy(userId); + routineSchedule.setCreatedBy(userId); + } + routineScheduleDxo.convertFromFormToRoutineSchedule( + routineScheduleForm, routineSchedule); + + return routineSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + routineScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (routineScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(routineScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RoutineScheduleForm getRoutineScheduleForm() { + return routineScheduleForm; + } + + public void setRoutineScheduleForm(RoutineScheduleForm routineScheduleForm) { + this.routineScheduleForm = routineScheduleForm; + } + + public RoutineScheduleService getRoutineScheduleService() { + return routineScheduleService; + } + + public void setRoutineScheduleService( + RoutineScheduleService routineScheduleService) { + this.routineScheduleService = routineScheduleService; + } + + public RoutineSchedulePager getRoutineSchedulePager() { + return routineSchedulePager; + } + + public void setRoutineSchedulePager( + RoutineSchedulePager routineSchedulePager) { + this.routineSchedulePager = routineSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RoutineScheduleDxo getRoutineScheduleDxo() { + return routineScheduleDxo; + } + + public void setRoutineScheduleDxo(RoutineScheduleDxo routineScheduleDxo) { + this.routineScheduleDxo = routineScheduleDxo; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,422 @@ +package jp.sf.pal.scheduler.action.admin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.SingleScheduleDxo; +import jp.sf.pal.scheduler.form.admin.SingleScheduleForm; +import jp.sf.pal.scheduler.pager.SingleSchedulePager; +import jp.sf.pal.scheduler.service.SingleScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class SingleScheduleAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory + .getLog(SingleScheduleAction.class); + + // for list + + public List singleScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private SingleScheduleForm singleScheduleForm; + + private SingleScheduleService singleScheduleService; + + private UserInfoService userInfoService; + + private SingleSchedulePager singleSchedulePager; + + private PagerDxo pagerDxo; + + private SingleScheduleDxo singleScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + singleScheduleItems = singleScheduleService.getSingleScheduleList( + singleSchedulePager, null); + + // restore from pager + // singleScheduleForm.singleSchedulename = + // singleSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(singleScheduleForm, singleSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // singleSchedulePager.setGroupInfoname(singleScheduleForm. + // singleSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + singleSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (singleScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + singleScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + singleScheduleForm.initialize(); + singleScheduleForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (singleScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + singleScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + singleScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (singleScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + singleScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + singleScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + SingleSchedule singleSchedule = createSingleSchedule(); + singleScheduleService.store(singleSchedule); + SAStrutsUtil.addMessage(request, "success.create_singleSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_singleSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + SingleSchedule singleSchedule = createSingleSchedule(); + singleScheduleService.store(singleSchedule); + SAStrutsUtil.addMessage(request, "success.update_singleSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_singleSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + singleScheduleService.disable( + Long.parseLong(singleScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_singleSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_singleSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (singleScheduleForm.selectedUsers != null) { + for (String userId : singleScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (singleScheduleForm.addedUsers != null) { + for (String userId : singleScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + singleScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + singleScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (singleScheduleForm.selectedUsers != null) { + for (String userId : singleScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (singleScheduleForm.removedUsers != null) { + for (String userId : singleScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + singleScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + singleScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadSingleSchedule() { + + SingleSchedule singleSchedule = singleScheduleService + .getSingleSchedule(Long.parseLong(singleScheduleForm.id), null); + if (singleSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_singleSchedule", + new Object[] { singleScheduleForm.id }); + } + singleScheduleDxo.convertFromSingleScheduleToForm(singleSchedule, + singleScheduleForm); + + singleScheduleForm.selectedUsers = singleSchedule.getSelectedUsers(); + } + + private SingleSchedule createSingleSchedule() { + String userId = request.getRemoteUser(); + SingleSchedule singleSchedule; + if (singleScheduleForm.mode == CommonConstants.EDIT_MODE) { + singleSchedule = singleScheduleService.getSingleSchedule(Long + .parseLong(singleScheduleForm.id), null); + singleSchedule.setUpdatedBy(userId); + } else { + singleSchedule = new SingleSchedule(); + singleSchedule.setUpdatedBy(userId); + singleSchedule.setCreatedBy(userId); + } + singleScheduleDxo.convertFromFormToSingleSchedule(singleScheduleForm, + singleSchedule); + + return singleSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + singleScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (singleScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(singleScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public SingleScheduleForm getSingleScheduleForm() { + return singleScheduleForm; + } + + public void setSingleScheduleForm(SingleScheduleForm singleScheduleForm) { + this.singleScheduleForm = singleScheduleForm; + } + + public SingleScheduleService getSingleScheduleService() { + return singleScheduleService; + } + + public void setSingleScheduleService( + SingleScheduleService singleScheduleService) { + this.singleScheduleService = singleScheduleService; + } + + public SingleSchedulePager getSingleSchedulePager() { + return singleSchedulePager; + } + + public void setSingleSchedulePager(SingleSchedulePager singleSchedulePager) { + this.singleSchedulePager = singleSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public SingleScheduleDxo getSingleScheduleDxo() { + return singleScheduleDxo; + } + + public void setSingleScheduleDxo(SingleScheduleDxo singleScheduleDxo) { + this.singleScheduleDxo = singleScheduleDxo; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonConstants.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonConstants.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonConstants.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.common; + +public class CommonConstants { + public static final int LIST_MODE = 0; + + public static final int CREATE_MODE = 1; + + public static final int EDIT_MODE = 2; + + public static final int DELETE_MODE = 3; + + public static final int CONFIRM_MODE = 4; + + public static final String TIMESTAMP_PATTERN = "yyyy/MM/dd HH:mm:ss"; + + public static final String TRUE = "T"; + + public static final String FALSE = "F"; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonConstants.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,103 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with this + * work for additional information regarding copyright ownership. The ASF + * licenses this file to You under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.scheduler.common; + +/** + * @author shinsuke + */ +public class CommonException extends Exception { + + /** + * Serial Version UID + */ + private static final long serialVersionUID = 4564000116499132363L; + + private String messageId; + + private Object[] args; + + /** + * @return Returns the messageId. + */ + public String getMessageId() { + return messageId; + } + + /** + * @param messageId The messageId to set. + */ + public void setMessageId(String messageId) { + this.messageId = messageId; + } + + /** + * @return Returns the args. + */ + public Object[] getArgs() { + return args; + } + + /** + * @param args The args to set. + */ + public void setArgs(Object[] args) { + this.args = args; + } + + public CommonException(String messageId) { + super(messageId); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args) { + super(messageId); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message, Throwable cause) { + super(message, cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message, + Throwable cause) { + super(message, cause); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, String message) { + super(message); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, String message) { + super(message); + this.messageId = messageId; + this.args = args; + } + + public CommonException(String messageId, Throwable cause) { + super(cause); + this.messageId = messageId; + } + + public CommonException(String messageId, Object[] args, Throwable cause) { + super(cause); + this.messageId = messageId; + this.args = args; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/CommonException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/creator/PagerCreator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/creator/PagerCreator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/creator/PagerCreator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,29 @@ +package jp.sf.pal.scheduler.common.creator; + +import org.seasar.framework.container.ComponentCustomizer; +import org.seasar.framework.container.assembler.AutoBindingDefFactory; +import org.seasar.framework.container.creator.ComponentCreatorImpl; +import org.seasar.framework.container.deployer.InstanceDefFactory; +import org.seasar.framework.convention.NamingConvention; + +/** + * @author shinsuke + */ +public class PagerCreator extends ComponentCreatorImpl { + public static final String SUFFIX = "Pager"; + + public PagerCreator(NamingConvention namingConvention) { + super(namingConvention); + setNameSuffix(SUFFIX); + setInstanceDef(InstanceDefFactory.SESSION); + setAutoBindingDef(AutoBindingDefFactory.NONE); + } + + public ComponentCustomizer getPagerCustomizer() { + return getCustomizer(); + } + + public void setPagerCustomizer(ComponentCustomizer customizer) { + setCustomizer(customizer); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/creator/PagerCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,24 @@ +package jp.sf.pal.scheduler.common.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.pager.DefaultPager; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface PagerDxo extends Serializable { + + @ConversionRule("allRecordCount : allRecordCount" + ",pageSize : pageSize" + + ",currentPageNumber : currentPageNumber" + + ",allPageCount : allPageCount" + ",existPrePage : existPrePage" + + ",existNextPage : existNextPage") + public void convert(PagingResultBeanWrapper result, DefaultPager pager); + + @ExcludeNull + @ConversionRule(// "pageSize : pageSize, " + + "currentPageNumber : pageNumber") + public void convert(PagingResultForm page, DefaultPager pager); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/form/PagingResultForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/form/PagingResultForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/form/PagingResultForm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ +package jp.sf.pal.scheduler.common.form; + +public interface PagingResultForm { + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/form/PagingResultForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/pager/DefaultPager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/pager/DefaultPager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/pager/DefaultPager.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,101 @@ +package jp.sf.pal.scheduler.common.pager; + +import java.io.Serializable; +import java.util.List; + +public abstract class DefaultPager implements Serializable { + private static final long serialVersionUID = 1L; + + public static final int DEFAULT_PAGE_SIZE = 50; + + public static final int DEFAULT_CURRENT_PAGE_NUMBER = 1; + + private int allRecordCount; + + private int allPageCount; + + private boolean existPrePage; + + private boolean existNextPage; + + private List pageNumberList; + + private int pageSize; + + private int currentPageNumber; + + public void clear() { + pageSize = getDefaultPageSize(); + currentPageNumber = getDefaultCurrentPageNumber(); + } + + protected int getDefaultPageSize() { + return DEFAULT_PAGE_SIZE; + } + + protected int getDefaultCurrentPageNumber() { + return DEFAULT_CURRENT_PAGE_NUMBER; + } + + public int getAllRecordCount() { + return allRecordCount; + } + + public void setAllRecordCount(int allRecordCount) { + this.allRecordCount = allRecordCount; + } + + public int getAllPageCount() { + return allPageCount; + } + + public void setAllPageCount(int allPageCount) { + this.allPageCount = allPageCount; + } + + public boolean isExistPrePage() { + return existPrePage; + } + + public void setExistPrePage(boolean existPrePage) { + this.existPrePage = existPrePage; + } + + public boolean isExistNextPage() { + return existNextPage; + } + + public void setExistNextPage(boolean existNextPage) { + this.existNextPage = existNextPage; + } + + public int getPageSize() { + if (pageSize <= 0) { + pageSize = getDefaultPageSize(); + } + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNumber() { + if (currentPageNumber <= 0) { + currentPageNumber = getDefaultCurrentPageNumber(); + } + return currentPageNumber; + } + + public void setCurrentPageNumber(int currentPageNumber) { + this.currentPageNumber = currentPageNumber; + } + + public List getPageNumberList() { + return pageNumberList; + } + + public void setPageNumberList(List pageNumberList) { + this.pageNumberList = pageNumberList; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/pager/DefaultPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/ConfigUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/ConfigUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/ConfigUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,207 @@ +package jp.sf.pal.scheduler.common.util; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.XMLConfiguration; + +public class ConfigUtil { + + public static final String CONFIG_PATH = "/WEB-INF/scheduler.xml"; + + private static XMLConfiguration config; + + public static void init(HttpServletRequest request) { + if (config == null) { + synchronized (ConfigUtil.class) { + if (config == null) { + try { + config = new XMLConfiguration(SAStrutsUtil.getRealPath( + request, CONFIG_PATH)); + } catch (ConfigurationException e) { + throw new IllegalStateException( + "Could not load a config file: " + + SAStrutsUtil.getRealPath(request, + CONFIG_PATH), e); + } + } + } + } + } + + public static void save() throws ConfigurationException { + config.save(); + } + + public static void addProperty(String s, Object obj) { + config.addProperty(s, obj); + } + + public static void clear() { + config.clear(); + } + + public static void clearProperty(String s) { + config.clearProperty(s); + } + + public static boolean containsKey(String s) { + return config.containsKey(s); + } + + public static BigDecimal getBigDecimal(String s, BigDecimal bigdecimal) { + return config.getBigDecimal(s, bigdecimal); + } + + public static BigDecimal getBigDecimal(String s) { + return config.getBigDecimal(s); + } + + public static BigInteger getBigInteger(String s, BigInteger biginteger) { + return config.getBigInteger(s, biginteger); + } + + public static BigInteger getBigInteger(String s) { + return config.getBigInteger(s); + } + + public static boolean getBoolean(String s, boolean flag) { + return config.getBoolean(s, flag); + } + + public static Boolean getBoolean(String s, Boolean boolean1) { + return config.getBoolean(s, boolean1); + } + + public static boolean getBoolean(String s) { + return config.getBoolean(s); + } + + public static byte getByte(String s, byte byte0) { + return config.getByte(s, byte0); + } + + public static Byte getByte(String s, Byte byte1) { + return config.getByte(s, byte1); + } + + public static byte getByte(String s) { + return config.getByte(s); + } + + public static double getDouble(String s, double d) { + return config.getDouble(s, d); + } + + public static Double getDouble(String s, Double double1) { + return config.getDouble(s, double1); + } + + public static double getDouble(String s) { + return config.getDouble(s); + } + + public static float getFloat(String s, float f) { + return config.getFloat(s, f); + } + + public static Float getFloat(String s, Float float1) { + return config.getFloat(s, float1); + } + + public static float getFloat(String s) { + return config.getFloat(s); + } + + public static int getInt(String s, int i) { + return config.getInt(s, i); + } + + public static int getInt(String s) { + return config.getInt(s); + } + + public static Integer getInteger(String s, Integer integer) { + return config.getInteger(s, integer); + } + + public static Iterator getKeys() { + return config.getKeys(); + } + + public static Iterator getKeys(String s) { + return config.getKeys(s); + } + + public static List getList(String s, List list) { + return config.getList(s, list); + } + + public static List getList(String s) { + return config.getList(s); + } + + public static long getLong(String s, long l) { + return config.getLong(s, l); + } + + public static Long getLong(String s, Long long1) { + return config.getLong(s, long1); + } + + public static long getLong(String s) { + return config.getLong(s); + } + + public static Properties getProperties(String s) { + return config.getProperties(s); + } + + public static Object getProperty(String s) { + return config.getProperty(s); + } + + public static short getShort(String s, short word0) { + return config.getShort(s, word0); + } + + public static Short getShort(String s, Short short1) { + return config.getShort(s, short1); + } + + public static short getShort(String s) { + return config.getShort(s); + } + + public static String getString(String s, String s1) { + return config.getString(s, s1); + } + + public static String getString(String s) { + return config.getString(s); + } + + public static String[] getStringArray(String s) { + return config.getStringArray(s); + } + + public static boolean isEmpty() { + return config.isEmpty(); + } + + public static void setProperty(String s, Object obj) { + config.setProperty(s, obj); + } + + public static Configuration subset(String s) { + return config.subset(s); + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/ConfigUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/DateUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/DateUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/DateUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,251 @@ +/* + * Copyright 2004-2007 The Portal Application Laboratory Team. Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License + * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable + * law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.scheduler.common.util; + +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class DateUtil { + /** + * Logger for this class + */ + private static final Log log = LogFactory.getLog(DateUtil.class); + + /** + * Allocates a Date object and initializes it so that it represents + * midnight, local time, at the beginning of the day specified by the year, + * month, and date arguments. + * + * @param year + * @param month + * @param date + * @return + */ + public static Date get(int year, int month, int date) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int) - : year=" + year + ", month=" + + month + ", date=" + date); + } + + return get(year, month, date, 0, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the minute specified by the year, month, date, + * hrs, and min arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min); + } + + return get(year, month, date, hrs, min, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, and sec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec); + } + + return get(year, month, date, hrs, min, sec, 0); + + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, sec and millisec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @param millisec + * @return + */ + public static Date get(int year, int month, int date, int hrs, int min, + int sec, int millisec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec + ", millisec=" + + millisec); + } + + Calendar cal = Calendar.getInstance(); + cal.set(year + 1900, month, date, hrs, min, sec); + cal.set(Calendar.MILLISECOND, millisec); + return cal.getTime(); + + } + + /** + * Returns a value that is the result of subtracting 1900 from the year that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getYear(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.YEAR) - 1900; + } + + /** + * Returns a number representing the month that contains or begins with the + * instant in time represented by this Date object. The value returned is + * between 0 and 11, with the value 0 representing January. + * + * @param d + * @return + */ + public static int getMonth(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MONTH); + } + + /** + * Returns the day of the month represented by this Date object. The value + * returned is between 1 and 31 representing the day of the month that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDate(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_MONTH); + } + + /** + * Returns the day of the week represented by this date. The returned value + * (0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = + * Friday, 6 = Saturday) represents the day of the week that contains or + * begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDay(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.DAY_OF_WEEK) - 1; + } + + /** + * Returns the hour represented by this Date object. The returned value is a + * number (0 through 23) representing the hour within the day that contains + * or begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getHours(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.HOUR_OF_DAY); + } + + /** + * Returns the number of minutes past the hour represented by this date, as + * interpreted in the local time zone. The value returned is between 0 and + * 59. + * + * @param d + * @return + */ + public static int getMinutes(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.MINUTE); + } + + /** + * Returns the number of seconds past the minute represented by this date. + * The value returned is between 0 and 61. The values 60 and 61 can only + * occur on those Java Virtual Machines that take leap seconds into account. + * + * @param d + * @return + */ + public static int getSeconds(Date d) { + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + return cal.get(Calendar.SECOND); + } + + public static Integer calculateAge(Date date) { + if (date == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int age = DateUtil.getYear(now) - DateUtil.getYear(date); + if (age > 0) { + if (DateUtil.getMonth(now) < DateUtil.getMonth(date)) { + if (DateUtil.getDate(now) < DateUtil.getDate(date)) { + age--; + } + } + return new Integer(age); + } + return null; + } + + public static Date calculateDate(Integer age) { + if (age == null) { + return null; + } + Date now = Calendar.getInstance().getTime(); + int year = DateUtil.getYear(now) - age.intValue(); + + return DateUtil.get(year, DateUtil.getMonth(now), + DateUtil.getDate(now), 0, 0, 0, 0); + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/DateUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/PagingResultBeanWrapper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/PagingResultBeanWrapper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/PagingResultBeanWrapper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,68 @@ +package jp.sf.pal.scheduler.common.util; + +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; + +public class PagingResultBeanWrapper { + private PagingResultBean pagingResultBean; + + public PagingResultBeanWrapper(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public PagingResultBean getPagingResultBean() { + return pagingResultBean; + } + + public void setPagingResultBean(PagingResultBean pagingResultBean) { + this.pagingResultBean = pagingResultBean; + } + + public int getAllRecordCount() { + return pagingResultBean.getAllRecordCount(); + } + + public void setAllRecordCount(int allRecordCount) { + pagingResultBean.setAllRecordCount(allRecordCount); + } + + public int getPageSize() { + return pagingResultBean.getPageSize(); + } + + public void setPageSize(int pageSize) { + pagingResultBean.setPageSize(pageSize); + } + + public int getCurrentPageNumber() { + return pagingResultBean.getCurrentPageNumber(); + } + + public void setCurrentPageNumber(int currentPageNumber) { + pagingResultBean.setCurrentPageNumber(currentPageNumber); + } + + public int getAllPageCount() { + return pagingResultBean.getAllPageCount(); + } + + public void setAllPageCount(int allPageCount) { + // nothing + } + + public boolean isExistPrePage() { + return pagingResultBean.isExistPrePage(); + } + + public void setExistPrePage(boolean existPrePage) { + // nothing + } + + public boolean isExistNextPage() { + return pagingResultBean.isExistNextPage(); + } + + public void setExistNextPage(boolean existNextPage) { + // nothing + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/PagingResultBeanWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/SAStrutsUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/SAStrutsUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/SAStrutsUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,76 @@ +package jp.sf.pal.scheduler.common.util; + +import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.seasar.struts.portlet.util.PortletUtil; +import org.seasar.struts.util.ActionMessagesUtil; + +public class SAStrutsUtil { + + public static void addMessage(HttpServletRequest request, String key) { + ActionMessages msgs = new ActionMessages(); + msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key)); + ActionMessagesUtil.saveMessages(request, msgs); + } + + public static PortletRequest getPortletRequest(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest; + } + return null; + } + + public static PortletConfig getPortletConfig(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig; + } + return null; + } + + public static PortletContext getPortletContext(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig.getPortletContext(); + } + return null; + } + + public static String getRealPath(HttpServletRequest request, String path) { + PortletContext portletContext = getPortletContext(request); + if (portletContext != null) { + return portletContext.getRealPath(path); + } + return path; + } + + public static String getRequestParameter(HttpServletRequest request, + String key) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getParameter(key); + } + return null; + } + + public static PortletSession getPortletSession(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getPortletSession(); + } + return null; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/SAStrutsUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/AccessContext.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/AccessContext.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/AccessContext.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,315 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of DB access. + * + * @author DBFlute(AutoGenerator) + */ +public class AccessContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get access-context on thread. + * + * @return The context of DB access.. (Nullable) + */ + public static AccessContext getAccessContextOnThread() { + return (AccessContext) _threadLocal.get(); + } + + /** + * Set access-context on thread. + * + * @param accessContext The context of DB access.. (NotNull) + */ + public static void setAccessContextOnThread(AccessContext accessContext) { + if (accessContext == null) { + String msg = "The argument[accessContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(accessContext); + } + + /** + * Is existing access-context on thread? + * + * @return Determination. + */ + public static boolean isExistAccessContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear access-context on thread. + */ + public static void clearAccessContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Access Information + // ================== + /** + * Get access user on thread. + *

    + * If it can't get access user from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access user. (NotNull) + */ + public static String getAccessUserOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessUser = userContextOnThread.getAccessUser(); + if (accessUser != null) { + return accessUser; + } + } + return "Anonymous";// as Default + } + + /** + * Get access process on thread. + *

    + * If it can't get access process from access-context, returns 'Anonymous' + * as default value! + *

    + * + * @return Access process. (NotNull) + */ + public static String getAccessProcessOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessProcess = userContextOnThread.getAccessProcess(); + if (accessProcess != null) { + return accessProcess; + } + } + return "Anonymous";// as Default + } + + /** + * Get access module on thread. + *

    + * If it can't get access module from access-context, returns 'Anonymous' as + * default value! + *

    + * + * @return Access module. (NotNull) + */ + public static String getAccessModuleOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final String accessModule = userContextOnThread.getAccessModule(); + if (accessModule != null) { + return accessModule; + } + } + return "Anonymous";// as Default + } + + /** + * Get access date on thread. + *

    + * If it can't get access date from access-context, returns application + * current time as default value! + *

    + * + * @return Access date. (NotNull) + */ + public static java.util.Date getAccessDateOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.util.Date accessDate = userContextOnThread + .getAccessDate(); + if (accessDate != null) { + return accessDate; + } + if (userContextOnThread.getAccessDateProvider() != null) { + return userContextOnThread.getAccessDateProvider() + .getAccessDate(); + } + } + return new java.util.Date();// as Default + } + + /** + * Get access timestamp on thread. + *

    + * If it can't get access timestamp from access-context, returns application + * current time as default value! + *

    + * + * @return Access timestamp. (NotNull) + */ + public static java.sql.Timestamp getAccessTimestampOnThread() { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final java.sql.Timestamp accessTimestamp = userContextOnThread + .getAccessTimestamp(); + if (accessTimestamp != null) { + return accessTimestamp; + } + if (userContextOnThread.getAccessTimestampProvider() != null) { + return userContextOnThread.getAccessTimestampProvider() + .getAccessTimestamp(); + } + } + return new java.sql.Timestamp(System.currentTimeMillis());// as Default + } + + /** + * Get access value on thread. + *

    + * If it can't get access value from access-context, returns null as default + * value! + *

    + * + * @param key Key. (NotNull) + * @return Access value. (Nullable) + */ + public static Object getAccessValueOnThread(String key) { + if (isExistAccessContextOnThread()) { + final AccessContext userContextOnThread = getAccessContextOnThread(); + final Map accessValueMap = userContextOnThread + .getAccessValueMap(); + if (accessValueMap != null) { + return accessValueMap.get(key); + } + } + return null;// as Default + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected String accessUser; + + protected String accessProcess; + + protected String accessModule; + + protected java.util.Date accessDate; + + protected AccessDateProvider accessDateProvider; + + protected java.sql.Timestamp accessTimestamp; + + protected AccessTimestampProvider accessTimestampProvider; + + protected Map accessValueMap; + + //========================================================================== + // ========= + // Accessor + // ======== + public String getAccessUser() { + return accessUser; + } + + public void setAccessUser(String accessUser) { + this.accessUser = accessUser; + } + + public String getAccessProcess() { + return accessProcess; + } + + public void setAccessProcess(String accessProcess) { + this.accessProcess = accessProcess; + } + + public String getAccessModule() { + return accessModule; + } + + public void setAccessModule(String accessModule) { + this.accessModule = accessModule; + } + + public java.util.Date getAccessDate() { + return accessDate; + } + + public void setAccessDate(java.util.Date accessDate) { + this.accessDate = accessDate; + } + + public AccessDateProvider getAccessDateProvider() { + return accessDateProvider; + } + + public void setAccessDateProvider(AccessDateProvider accessDateProvider) { + this.accessDateProvider = accessDateProvider; + } + + public java.sql.Timestamp getAccessTimestamp() { + return accessTimestamp; + } + + public void setAccessTimestamp(java.sql.Timestamp accessTimestamp) { + this.accessTimestamp = accessTimestamp; + } + + public AccessTimestampProvider getAccessTimestampProvider() { + return accessTimestampProvider; + } + + public void setAccessTimestampProvider( + AccessTimestampProvider accessTimestampProvider) { + this.accessTimestampProvider = accessTimestampProvider; + } + + public Map getAccessValueMap() { + return accessValueMap; + } + + public void registerAccessValue(String key, Object value) { + if (accessValueMap == null) { + accessValueMap = new HashMap(); + } + accessValueMap.put(key, value); + } + + //========================================================================== + // ========= + // Provider Interface + // ================== + /** + * The provider interface of access date. + */ + public static interface AccessDateProvider { + + /** + * Get access date. + * + * @return Access date. (NotNull) + */ + public java.util.Date getAccessDate(); + } + + /** + * The provider interface of access date. + */ + public static interface AccessTimestampProvider { + + /** + * Get access timestamp. + * + * @return Access timestamp. (NotNull) + */ + public java.sql.Timestamp getAccessTimestamp(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/AccessContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BFinder.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BFinder.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BFinder.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,110 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import jp.sf.pal.scheduler.db.allcommon.bhv.BehaviorReadable; + +/** + * The entry of DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BFinder { + + //========================================================================== + // ========= + // Definition + // ========== + protected static String _dbfluteDiconName = "dbflute.dicon"; + + //========================================================================== + // ========= + // Constructor + // =========== + private BFinder() { + } + + //========================================================================== + // ========= + // Finder + // ====== + public static BEHAVIOR_TYPE find( + Class behaviorType) { + assertObjectNotNull("behaviorType", behaviorType); + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + synchronized (BFinder.class) { + if (!org.seasar.framework.container.factory.SingletonS2ContainerFactory + .hasContainer()) { + final String configFile = _dbfluteDiconName; + if (org.seasar.framework.util.ResourceUtil + .isExist(configFile)) { + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .setConfigPath(configFile); + org.seasar.framework.container.factory.SingletonS2ContainerFactory + .init(); + } else { + String msg = "S2Container is not initialized! Confirm your initializer and your dicon files."; + throw new IllegalStateException(msg); + } + } + } + } + final org.seasar.framework.container.S2Container container = org.seasar.framework.container.factory.SingletonS2ContainerFactory + .getContainer(); + final BEHAVIOR_TYPE behavior = (BEHAVIOR_TYPE) container + .getComponent(behaviorType); + return behavior; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public static void setDBFluteDiconName(String dbfluteDiconName) { + _dbfluteDiconName = dbfluteDiconName; + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BFinder.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BehaviorSelector.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BehaviorSelector.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BehaviorSelector.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,35 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import jp.sf.pal.scheduler.db.allcommon.bhv.BehaviorReadable; + +/** + * The interface of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorSelector { + + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData(); + + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType); + + /** + * Select behavior-readable. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/BehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheAbstractSelector.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheAbstractSelector.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheAbstractSelector.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,115 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import org.seasar.framework.container.ComponentNotFoundRuntimeException; +import org.seasar.framework.container.S2Container; + +/** + * The abstract class of cache-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class CacheAbstractSelector { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The container of Seasar. */ + protected S2Container _container; + + //========================================================================== + // ========= + // Component + // ========= + public COMPONENT getComponent(Class componentType) { + assertObjectNotNull("componentType", componentType); + assertObjectNotNull("_container", _container); + try { + return (COMPONENT) _container.getComponent(componentType); + } catch (ComponentNotFoundRuntimeException e) { // Normally it doesn't + // come. + final COMPONENT component; + try { + // for HotDeploy Mode + component = (COMPONENT) _container.getRoot().getComponent( + componentType); + } catch (ComponentNotFoundRuntimeException ignored) { + throw e; + } + _container = _container.getRoot(); // Change container. + return component; + } + } + + //========================================================================== + // ========= + // Destroy + // ======= + public void destroy() { + _container = null; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected String initUncap(String str) { + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setContainer(S2Container container) { + this._container = container; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheAbstractSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheBehaviorSelector.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheBehaviorSelector.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheBehaviorSelector.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,131 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.bhv.BehaviorReadable; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.util.TraceViewUtil; + +/** + * The implementation of behavior-selector. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheBehaviorSelector extends CacheAbstractSelector implements + BehaviorSelector { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(CacheBehaviorSelector.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The cache of behavior. (It's the generic hell!) */ + protected Map, BehaviorReadable> _behaviorCache = new LinkedHashMap, BehaviorReadable>(); + + //========================================================================== + // ========= + // Initialize + // ========== + /** + * Initialize condition-bean meta data.
    If you call this, Hot Deploy + * of OutsideSql becomes Cool! + */ + public void initializeConditionBeanMetaData() { + final Map dbmetaMap = DBMetaInstanceHandler + .getDBMetaMap(); + final Collection dbmetas = dbmetaMap.values(); + long before = 0; + if (_log.isInfoEnabled()) { + before = System.currentTimeMillis(); + _log + .info("/= = = = = = = = = = = = = = = = = initializeConditionBeanMetaData()"); + } + for (DBMeta dbmeta : dbmetas) { + final BehaviorReadable bhv = byName(dbmeta.getTableDbName()); + final DaoReadable dao = bhv.getDaoReadable(); + dao.initializeDaoMetaData("selectList"); + } + if (_log.isInfoEnabled()) { + long after = System.currentTimeMillis(); + _log.info("Initialized Count: " + dbmetas.size()); + _log.info("= = = = = = = = = =/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + "]"); + } + } + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select behavior. + * + * @param The type of behavior. + * @param behaviorType Behavior type. (NotNull) + * @return Behavior. (NotNull) + */ + public BEHAVIOR select( + Class behaviorType) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + synchronized (_behaviorCache) { + if (_behaviorCache.containsKey(behaviorType)) { + return (BEHAVIOR) _behaviorCache.get(behaviorType); + } + final BEHAVIOR bhv = (BEHAVIOR) getComponent(behaviorType); + _behaviorCache.put(behaviorType, bhv); + return bhv; + } + } + + /** + * Select behavior-readable by name. + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return Behavior-readable. (NotNull) + */ + public BehaviorReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getBehaviorType(dbmeta)); + } + + /** + * Get behavior-type by dbmeta. + * + * @param dbmeta Dbmeta. (NotNull) + * @return Behavior-type. (NotNull) + */ + protected Class getBehaviorType(DBMeta dbmeta) { + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + if (behaviorTypeName == null) { + String msg = "The dbmeta.getBehaviorTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class behaviorType; + try { + behaviorType = (Class) Class + .forName(behaviorTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + behaviorTypeName, e); + } + return behaviorType; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheBehaviorSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheDaoSelector.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheDaoSelector.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheDaoSelector.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,66 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; + +/** + * The implementation of DAO-selector. + * + *
    + * Long long ago this object have cache of DAO and behavior.
    + * But the cache cause wrong performance when this is initialized.
    + * So now this object don't have cache.
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class CacheDaoSelector extends CacheAbstractSelector implements + DaoSelector { + + //========================================================================== + // ========= + // Selector + // ======== + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return DAO. (NotNull) + */ + public DAO select(Class daoType) { + return (DAO) getComponent(daoType); + } + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableFlexibleName); + return select(getDaoType(dbmeta)); + } + + protected Class getDaoType(DBMeta dbmeta) { + final String daoTypeName = dbmeta.getDaoTypeName(); + if (daoTypeName == null) { + String msg = "The dbmeta.getDaoTypeName() should not return null: dbmeta=" + + dbmeta; + throw new IllegalStateException(msg); + } + final Class daoType; + try { + daoType = (Class) Class.forName(daoTypeName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("The class does not exist: " + + daoTypeName, e); + } + return daoType; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CacheDaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CallbackContext.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CallbackContext.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CallbackContext.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,75 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import jp.sf.pal.scheduler.db.allcommon.jdbc.SqlLogHandler; + +/** + * The context of callback. + * + * @author DBFlute(AutoGenerator) + */ +public class CallbackContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get callback-context on thread. + * + * @return The context of callback. (Nullable) + */ + public static CallbackContext getCallbackContextOnThread() { + return (CallbackContext) _threadLocal.get(); + } + + /** + * Set callback-context on thread. + * + * @param callbackContext The context of callback. (NotNull) + */ + public static void setCallbackContextOnThread( + CallbackContext callbackContext) { + if (callbackContext == null) { + String msg = "The argument[callbackContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(callbackContext); + } + + /** + * Is existing callback-context on thread? + * + * @return Determination. + */ + public static boolean isExistCallbackContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear callback-context on thread. + */ + public static void clearCallbackContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Attribute + // ========= + protected SqlLogHandler _sqlLogHandler; + + //========================================================================== + // ========= + // Accessor + // ======== + public SqlLogHandler getSqlLogHandler() { + return _sqlLogHandler; + } + + public void setSqlLogHandler(SqlLogHandler sqlLogHandler) { + this._sqlLogHandler = sqlLogHandler; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/CallbackContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DBFluteConfig.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DBFluteConfig.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DBFluteConfig.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,314 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; + +/** + * @author DBFlute(AutoGenerator) + */ +public class DBFluteConfig { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(DBFluteConfig.class); + + /** Singleton instance. */ + private static final DBFluteConfig _instance = new DBFluteConfig(); + + //========================================================================== + // ========= + // Attribute + // ========= + protected StatementConfig _defaultStatementConfig; + + protected boolean _conditionBeanFormatSql = true;// This is for + + // compatibility! + + protected boolean _queryLogLevelInfo; + + protected boolean _executeStatusLogLevelInfo; + + protected boolean _useSqlLogRegistry; + + protected UniqueConstraintDeterminator _uniqueConstraintDeterminator; + + protected boolean _sqlExceptionOldStyleHandling = false;// This is for + + // compatibility! + + protected String _logDateFormat; + + protected String _logTimestampFormat; + + protected String _outsideSqlPackage; + + protected boolean _internalDebug; + + protected boolean _locked = true; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + private DBFluteConfig() { + } + + //========================================================================== + // ========= + // Singleton + // ========= + /** + * Get instance. + * + * @return Singleton instance. (NotNull) + */ + public static DBFluteConfig getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Default Statement Config + // ======================== + public StatementConfig getDefaultStatementConfig() { + return _defaultStatementConfig; + } + + public void setDefaultStatementConfig(StatementConfig defaultStatementConfig) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting defaultStatementConfig: " + + defaultStatementConfig); + } + _defaultStatementConfig = defaultStatementConfig; + } + + //========================================================================== + // ========= + // ConditionBean Format Sql + // ======================== + public boolean isConditionBeanFormatSql() { + return _conditionBeanFormatSql; + } + + /** + * @param conditionBeanFormatSql The value of the config. + * @deprecated This is for compatibility! + */ + public void setConditionBeanFormatSql(boolean conditionBeanFormatSql) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting conditionBeanFormatSql: " + + conditionBeanFormatSql); + } + _conditionBeanFormatSql = conditionBeanFormatSql; + } + + //========================================================================== + // ========= + // Query Log Level Info + // ==================== + public boolean isQueryLogLevelInfo() { + return _queryLogLevelInfo; + } + + public void setQueryLogLevelInfo(boolean queryLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting queryLogLevelInfo: " + queryLogLevelInfo); + } + _queryLogLevelInfo = queryLogLevelInfo; + } + + //========================================================================== + // ========= + // Execute Status Log Level Info + // ============================= + public boolean isExecuteStatusLogLevelInfo() { + return _executeStatusLogLevelInfo; + } + + public void setExecuteStatusLogLevelInfo(boolean executeStatusLogLevelInfo) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting executeStatusLogLevelInfo: " + + executeStatusLogLevelInfo); + } + _executeStatusLogLevelInfo = executeStatusLogLevelInfo; + } + + // [DBFlute-0.8.2] + //========================================================================== + // ========= + // Sql Log Registry + // ================ + public boolean isUseSqlLogRegistry() { + return _useSqlLogRegistry; + } + + public void setUseSqlLogRegistry(boolean useSqlLogRegistry) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting useSqlLogRegistry: " + useSqlLogRegistry); + } + _useSqlLogRegistry = useSqlLogRegistry; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return _uniqueConstraintDeterminator; + } + + public void setUniqueConstraintDeterminator( + UniqueConstraintDeterminator uniqueConstraintDeterminator) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting uniqueConstraintDeterminator: " + + uniqueConstraintDeterminator); + } + _uniqueConstraintDeterminator = uniqueConstraintDeterminator; + } + + public static interface UniqueConstraintDeterminator { + public boolean isUniqueConstraintException(Throwable t); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // SQL Exception Old Style + // ======================= + public boolean isSqlExceptionOldStyleHandling() { + return _sqlExceptionOldStyleHandling; + } + + /** + * @param sqlExceptionOldStyleHandling The value of the config. + * @deprecated This is for compatibility! + */ + public void setSqlExceptionOldStyleHandling( + boolean sqlExceptionOldStyleHandling) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting sqlExceptionOldStyleHandling: " + + sqlExceptionOldStyleHandling); + } + _sqlExceptionOldStyleHandling = sqlExceptionOldStyleHandling; + } + + //========================================================================== + // ========= + // Log Format + // ========== + public String getLogDateFormat() { + return _logDateFormat; + } + + public void setLogDateFormat(String logDateFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logDateFormat: " + logDateFormat); + } + _logDateFormat = logDateFormat; + } + + public String getLogTimestampFormat() { + return _logTimestampFormat; + } + + public void setLogTimestampFormat(String logTimestampFormat) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting logTimestampFormat: " + logTimestampFormat); + } + _logTimestampFormat = logTimestampFormat; + } + + //========================================================================== + // ========= + // OutsideSql Package + // ================== + public String getOutsideSqlPackage() { + return _outsideSqlPackage; + } + + public void setOutsideSqlPackage(String outsideSqlPackage) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting outsideSqlPackage: " + outsideSqlPackage); + } + _outsideSqlPackage = outsideSqlPackage; + } + + //========================================================================== + // ========= + // Internal Debug + // ============== + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(boolean internalDebug) { + assertNotLocked(); + if (_log.isInfoEnabled()) { + _log.info("...Setting internalDebug: " + internalDebug); + } + _internalDebug = internalDebug; + } + + //========================================================================== + // ========= + // Config Lock + // =========== + public boolean isLocked() { + return _locked; + } + + public void lock() { + if (_log.isInfoEnabled()) { + _log.info("...Locking the config of dbflute!"); + } + _locked = true; + } + + public void unlock() { + if (_log.isInfoEnabled()) { + _log.info("...Unlocking the config of dbflute!"); + } + _locked = false; + } + + protected void assertNotLocked() { + if (!isLocked()) { + return; + } + String msg = "The config of dbflute is locked! Don't access at this timing!"; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Config Clear + // ============ + public void clear() { // the only properties that update OK while executing + _defaultStatementConfig = null; + _conditionBeanFormatSql = true; // as default + _queryLogLevelInfo = false; + _executeStatusLogLevelInfo = false; + _useSqlLogRegistry = false; + _logDateFormat = null; + _logTimestampFormat = null; + _internalDebug = false; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DBFluteConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoReadable.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoReadable.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoReadable.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,11 @@ +package jp.sf.pal.scheduler.db.allcommon; + +/** + * The interface of dao-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoReadable { + public void initializeDaoMetaData(String methodName);// Very Internal + // Method! +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoSelector.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoSelector.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoSelector.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,26 @@ +package jp.sf.pal.scheduler.db.allcommon; + +/** + * The interface of DAO-selector. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoSelector { + + /** + * Select DAO. + * + * @param The type of DAO. + * @param daoType DAO type. (NotNull) + * @return Dao. (NotNull) + */ + public DAO select(Class daoType); + + /** + * Select DAO-readable by name. + * + * @param tableFlexibleName Table flexible name. (NotNull) + * @return DAO-readable. (NotNull) + */ + public DaoReadable byName(String tableFlexibleName); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoSelector.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoWritable.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoWritable.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoWritable.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,70 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import java.util.List; + +/** + * The interface of dao-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface DaoWritable extends DaoReadable { + + /** + * Insert one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Inserted count. + */ + public int create(Entity entity); + + /** + * Update one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modify(Entity entity); + + /** + * Update one entity that the type is entity-interface. (modified only) + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Updated count. + */ + public int modifyModifiedOnly(Entity entity); + + /** + * Delete one entity that the type is entity-interface. + * + * @param entity Entity that the type is entity-interface. (NotNull) + * @return Deleted count. + */ + public int remove(Entity entity); + + /** + * Insert several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of inserted count. + */ + public int[] createList(List entityList); + + /** + * Update several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of updated count. + */ + public int[] modifyList(List entityList); + + /** + * Delete several entities that the type is entity-interface. + * + * @param entityList Entity-list that the type is entity-interface. + * (NotNull) + * @return The array of deleted count. + */ + public int[] removeList(List entityList); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/DaoWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/Entity.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/Entity.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/Entity.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,126 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import java.util.LinkedHashSet; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of entity. + * + * @author DBFlute(AutoGenerator) + */ +public interface Entity { + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get the instance of target dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB name. + * + * @return Table DB name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property name. + * + * @return Table property name. (NotNull) + */ + public String getTablePropertyName(); + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has the value of primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKeyValue(); + + //========================================================================== + // ========= + // Modified Properties + // =================== + /** + * Get modified property names. (JavaBeansRule) + * + * @return Modified property names. (NotNull) + */ + public Set getModifiedPropertyNames(); + + /** + * Clear modified property names. + */ + public void clearModifiedPropertyNames(); + + /** + * Entity modified properties. + */ + public static class EntityModifiedProperties implements + java.io.Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Set of properties. */ + protected Set _propertiesSet = new LinkedHashSet(); + + /** + * Add property name. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void addPropertyName(String propertyName) { + _propertiesSet.add(propertyName); + } + + /** + * Get the set of properties. + * + * @return The set of properties. (NotNull) + */ + public Set getPropertyNames() { + return _propertiesSet; + } + + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _propertiesSet.isEmpty(); + } + + /** + * Clear the set of properties. + */ + public void clear() { + _propertiesSet.clear(); + } + + /** + * Remove property name from the set. (JavaBeansRule) + * + * @param propertyName Property name. (Nullable) + */ + public void remove(String propertyName) { + _propertiesSet.remove(propertyName); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/Entity.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/EntityDefinedCommonColumn.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/EntityDefinedCommonColumn.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/EntityDefinedCommonColumn.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon; + +/** + * The interface of entity defined common column. + * + * @author DBFlute(AutoGenerator) + */ +public interface EntityDefinedCommonColumn extends Entity { + + /** + * Disable common column auto set up. + */ + public void disableCommonColumnAutoSetup(); + + /** + * Can the entity set up common column by auto? + * + * @return Determination. + */ + public boolean canCommonColumnAutoSetup(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/EntityDefinedCommonColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/GenMetaData.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/GenMetaData.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/GenMetaData.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,258 @@ +package jp.sf.pal.scheduler.db.allcommon; + +/** + * The sigleton class that has generate-meta-data(GenMetaData). + * + * @author DBFlute(AutoGenerator) + */ +public class GenMetaData { + + /** Singleton instance. */ + private static final GenMetaData _instance = new GenMetaData(); + + /** + * Constructor. + */ + private GenMetaData() { + } + + /** + * Get instance. + * + * @return Singleton instance. + */ + public static GenMetaData getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Basic + // ===== + /** + * Get the property-value of targetLanguage. + * + * @return The property-value. + */ + public String getTargetLanguage() { + return "java"; + } + + /** + * Get the property-value of templateFileExtension. + * + * @return The property-value. + */ + public String getTemplateFileExtension() { + return "vm"; + } + + /** + * Get the property-value of classFileExtension. + * + * @return The property-value. + */ + public String getClassFileExtension() { + return "java"; + } + + /** + * Get the property-value of templateFileEncoding. + * + * @return The property-value. + */ + public String getTemplateEncoding() { + return "UTF-8"; + } + + /** + * Get the property-value of classAuthor. + * + * @return The property-value. + */ + public String getClassAuthor() { + return "DBFlute(AutoGenerator)"; + } + + //========================================================================== + // ========= + // Naming + // ====== + /** + * Is java name of table same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfTableSameAsDbName() { + return false; + } + + /** + * Is java name of column same as db name? Answer is false! + * + * @return The property-value. + */ + public boolean isJavaNameOfColumnSameAsDbName() { + return false; + } + + //========================================================================== + // ========= + // Prefix + // ====== + /** + * Get the property-value of projectPrefix. + * + * @return The property-value. + */ + public String getProjectPrefix() { + return ""; + } + + /** + * Get the property-value of basePrefix. + * + * @return The property-value. + */ + public String getBasePrefix() { + return "Bs"; + } + + //========================================================================== + // ========= + // Package + // ======= + /** + * Get the property-value of baseCommonPackage. + * + * @return The property-value. + */ + public String getBaseCommonPackage() { + return "jp.sf.pal.scheduler.db.allcommon"; + } + + /** + * Get the property-value of baseBehaviorPackage. + * + * @return The property-value. + */ + public String getBaseBehaviorPackage() { + return "jp.sf.pal.scheduler.db.bsbhv"; + } + + /** + * Get the property-value of baseDaoPackage. + * + * @return The property-value. + */ + public String getBaseDaoPackage() { + return "jp.sf.pal.scheduler.db.bsdao"; + } + + /** + * Get the property-value of baseEntityPackage. + * + * @return The property-value. + */ + public String getBaseEntityPackage() { + return "jp.sf.pal.scheduler.db.bsentity"; + } + + /** + * Get the property-value of conditionBeanPackage. + * + * @return The property-value. + */ + public String getConditionBeanPackage() { + return "jp.sf.pal.scheduler.db.cbean"; + } + + /** + * Get the property-value of extendedDaoPackage. + * + * @return The property-value. + */ + public String getExtendedDaoPackage() { + return "jp.sf.pal.scheduler.db.exdao"; + } + + /** + * Get the property-value of extendedBehaviorPackage. + * + * @return The property-value. + */ + public String getExtendedBehaviorPackage() { + return "jp.sf.pal.scheduler.db.exbhv"; + } + + /** + * Get the property-value of extendedEntityPackage. + * + * @return The property-value. + */ + public String getExtendedEntityPackage() { + return "jp.sf.pal.scheduler.db.exentity"; + } + + //========================================================================== + // ========= + // Optimistic Lock + // =============== + /** + * Get the property-value of updateDateFieldName. + * + * @return The property-value. + */ + public String getUpdateDateFieldName() { + return ""; + } + + /** + * Get the property-value of versionNoFieldName. + * + * @return The property-value. + */ + public String getVersionNoFieldName() { + return ""; + } + + //========================================================================== + // ========= + // Extract + // ======= + /** + * Get the value of 'extractAcceptStartBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptStartBrace() { + return "@{"; + } + + /** + * Get the value of 'extractAcceptEndBrace'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEndBrace() { + return "@}"; + } + + /** + * Get the value of 'extractAcceptDelimiter'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptDelimiter() { + return "@;"; + } + + /** + * Get the value of 'extractAcceptEqual'. + * + * @return The property-value. (NotNull) + */ + public String getExtractAcceptEqual() { + return "@="; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/GenMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/InternalMapContext.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/InternalMapContext.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/InternalMapContext.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,64 @@ +package jp.sf.pal.scheduler.db.allcommon; + +import java.util.HashMap; +import java.util.Map; + +/** + * The context of internal map. + * + * @author DBFlute(AutoGenerator) + */ +public class InternalMapContext { + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal> threadLocal = new ThreadLocal>(); + + protected static void initialize() { + if (threadLocal.get() != null) { + return; + } + threadLocal.set(new HashMap()); + } + + /** + * Get the value of the object by the key. + * + * @param key The key of the object. (NotNull) + * @return The value of the object. (Nullable) + */ + public static Object getObject(String key) { + initialize(); + return threadLocal.get().get(key); + } + + /** + * Set the value of the object. + * + * @param key The key of the object. (NotNull) + * @param value The value of the object. (Nullable) + */ + public static void setObject(String key, Object value) { + initialize(); + threadLocal.get().put(key, value); + } + + /** + * Is existing internal-map-context on thread? + * + * @return Determination. + */ + public static boolean isExistInternalMapContextOnThread() { + return (threadLocal.get() != null); + } + + /** + * Clear internal-map-context on thread. + */ + public static void clearInternalMapContextOnThread() { + threadLocal.set(null); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/InternalMapContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/QLog.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/QLog.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/QLog.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,39 @@ +package jp.sf.pal.scheduler.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class QLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(QLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String sql) {// Very Internal + if (isQueryLogLevelInfo()) { + _log.info(sql); + } else { + _log.debug(sql); + } + } + + public static boolean isLogEnabled() { + if (isQueryLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isQueryLogLevelInfo() { + return DBFluteConfig.getInstance().isQueryLogLevelInfo(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/QLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/XLog.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/XLog.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/XLog.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,39 @@ +package jp.sf.pal.scheduler.db.allcommon; + +/** + * @author DBFlute(AutoGenerator) + */ +public class XLog { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(XLog.class); + + //========================================================================== + // ========= + // Logging + // ======= + public static void log(String msg) {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + _log.info(msg); + } else { + _log.debug(msg); + } + } + + public static boolean isLogEnabled() {// Very Internal + if (isExecuteStatusLogLevelInfo()) { + return _log.isInfoEnabled(); + } else { + return _log.isDebugEnabled(); + } + } + + protected static boolean isExecuteStatusLogLevelInfo() { + return DBFluteConfig.getInstance().isExecuteStatusLogLevelInfo(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/XLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/annotation/OutsideSql.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/annotation/OutsideSql.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/annotation/OutsideSql.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.allcommon.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + ¡÷ Inherited + ¡÷ Retention(RetentionPolicy.RUNTIME) + ¡÷ Target(ElementType.METHOD) +public @interface OutsideSql { + boolean dynamicBinding() default false; + + boolean offsetByCursor() default false; + + boolean limitByCursor() default false; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/annotation/OutsideSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorReadable.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorReadable.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorReadable.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,973 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.BehaviorSelector; +import jp.sf.pal.scheduler.db.allcommon.DaoSelector; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.batch.TokenFileOutputOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.batch.TokenFileOutputResult; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelBox; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.executor.OutsideSqlBasicExecutor; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.impl.FileMakingSimpleFacadeImpl; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBehaviorReadable implements BehaviorReadable { + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * Behavior-selector instance. It's basically referred at loadReferrer. + * (Required for loadReferrer) + */ + protected BehaviorSelector _behaviorSelector; + + /** + * Dao-selector instance. It's basically referred at loadReferrer. (Required + * for OutsideSql) + */ + protected DaoSelector _daoSelector; + + //========================================================================== + // =========== + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll() { + return callGetCountAll(); + } + + //========================================================================== + // =========== + // Count Read + // ========== + /** + * The implementation. + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return callReadCount(cb); + } + + //========================================================================== + // =========== + // Entity Read + // =========== + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final List ls = readList(cb); + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (Entity) ls.get(0); + } + + //========================================================================== + // =========== + // Entity Read Internal Helper + // =========================== + protected ENTITY helpSelectEntityInternally( + CB cb, InternalSelectEntityCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.scheduler.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + if (ls.isEmpty()) { + return null; + } + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityCallback { + public List callbackSelectList(CB cb); + } + + protected ENTITY helpSelectEntityWithDeletedCheckInternally( + CB cb, + InternalSelectEntityWithDeletedCheckCallback callback) { + assertConditionBeanNotNull(cb); + cb.checkSafetyResult(1); + List ls = null; + try { + ls = callback.callbackSelectList(cb); + } catch (jp.sf.pal.scheduler.db.allcommon.exception.DangerousResultSizeException e) { + throwEntityDuplicatedException("{Over safetyMaxResultSize '1'}", + cb, e); + } + assertEntityNotDeleted(ls, cb); + assertEntitySelectedAsOne(ls, cb); + return (ENTITY) ls.get(0); + } + + protected static interface InternalSelectEntityWithDeletedCheckCallback { + public List callbackSelectList(CB cb); + } + + //========================================================================== + // =========== + // List Read + // ========= + /** + * The implementation. + * + * @param cb Condition-bean. + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + return new jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder( + getTableDbName()).buildListResultBean(cb, callReadList(cb)); + } + + /** + * The implementation. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return readCount(cb); + } + + public List paging() { + return readList(cb); + } + }; + return invoker.invokePaging(handler); + } + + /** + * Assert that the entity is not deleted. + * + * @param entity Selected entity. (Nullable) + * @param searchKey4Log Search-key for Logging. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + protected void assertEntityNotDeleted( + jp.sf.pal.scheduler.db.allcommon.Entity entity, Object searchKey4Log) { + if (entity == null) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is not deleted. + * + * @param ls Selected list. (Nullable) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + */ + protected void assertEntityNotDeleted(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + } + + /** + * Assert that the entity is selected as one. + * + * @param ls Selected list. (NotNull) + * @param searchKey4Log Search-key for Logging. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + */ + protected void assertEntitySelectedAsOne(List ls, Object searchKey4Log) { + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(searchKey4Log); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", searchKey4Log, null); + } + } + + private void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + private void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Various Select + // ============== + public OutsideSqlBasicExecutor outsideSql() { + assertDaoSelectorNotNull("outsideSql"); + final OutsideSqlDao outsideSqlDao = _daoSelector + .select(OutsideSqlDao.class); + return new OutsideSqlBasicExecutor(outsideSqlDao, getTableDbName()); + } + + private void assertDaoSelectorNotNull(String methodName) { + if (_daoSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of dao as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Create value-label list. + * + * @param The type of entity. + * @param entityList The list of entity. (NotNull) + * @param valueLabelSetupper Value-label-setupper. (NotNull) + * @return Value-label list. (NotNull) + */ + public List> createValueLabelList( + List entityList, + ValueLabelSetupper valueLabelSetupper) { + final List> valueLabelList = new ArrayList>(); + final ValueLabelBox box = new ValueLabelBox(); + for (ENTITY entity : entityList) { + final Map valueLabel = new HashMap(); + valueLabelSetupper.setup(box, entity); + valueLabel.put("value", box.getValue()); + valueLabel.put("label", box.getLabel()); + valueLabelList.add(valueLabel); + } + return valueLabelList; + } + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal() { + try { + final Method method = getClass().getMethod("selectNextVal", + new Class[] {}); + Object sequenceObject = method.invoke(this, new Object[] {}); + if (sequenceObject instanceof java.math.BigDecimal) { + return (java.math.BigDecimal) sequenceObject; + } + return (java.math.BigDecimal) helpConvertingSequenceObject( + java.math.BigDecimal.class, sequenceObject); + } catch (NoSuchMethodException e) { + throw new RuntimeException("The table does not have sequence: " + + getTableDbName(), e); + } catch (Exception e) { + throw new RuntimeException( + "The selectNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + } + + protected Object helpConvertingSequenceObject(Class resultClass, + Object sequenceObject) { + try { + final Constructor constructor = resultClass + .getConstructor(new Class[] { String.class }); + return constructor.newInstance(new Object[] { sequenceObject + .toString() }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + try { + final Method method = resultClass.getMethod("valueOf", + new Class[] { long.class }); + return method.invoke(null, new Object[] { Long + .valueOf(sequenceObject.toString()) }); + } catch (NoSuchMethodException e) { + } catch (Exception e) { + throw new RuntimeException( + "The readNextVal() of the table threw the exception: " + + getTableDbName(), e); + } + String msg = "Cannot convert sequenceObject to resultClass:"; + msg = msg + " resultClass=" + resultClass + " sequenceObjectType=" + + sequenceObject.getClass(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Load Referrer Internal Helper + // ============================= + /** + * Help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void helpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + doHelpLoadReferrerInternally(localEntityList, loadReferrerOption, + callback); + } + + /** + * Do help load referrer internally. About internal policy, the value of + * primary key(and others too) is treated as CaseInsensitive. + * + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @param localEntityList The list of local entity. (NotNull) + * @param loadReferrerOption The option of loadReferrer. (NotNull) + * @param callback The internal call-back of loadReferrer. (NotNull) + */ + protected void doHelpLoadReferrerInternally( + List localEntityList, + LoadReferrerOption loadReferrerOption, + InternalLoadReferrerCallback callback) { + + // - - - - - - - - - - - + // Assert pre-condition + // - - - - - - - - - - - + assertBehaviorSelectorNotNull("loadReferrer"); + assertObjectNotNull("localEntityList", localEntityList); + assertObjectNotNull("loadReferrerOption", loadReferrerOption); + if (localEntityList.isEmpty()) { + return; + } + + // - - - - - - - - - - - - - - + // Prepare temporary container + // - - - - - - - - - - - - - - + final Map pkLocalEntityMap = new LinkedHashMap(); + final List pkList = new ArrayList(); + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK primaryKeyValue = callback + .callbackBase_getPrimaryKeyValue(localEntity); + pkList.add(callback.callbackBase_getPrimaryKeyValue(localEntity)); + pkLocalEntityMap + .put(toLowerCasePrimaryKeyIfString(primaryKeyValue), + localEntity); + } + + // - - - - - - - - - - - - - - - - + // Prepare referrer condition bean + // - - - - - - - - - - - - - - - - + final REFERRER_CB cb; + if (loadReferrerOption.getReferrerConditionBean() != null) { + cb = loadReferrerOption.getReferrerConditionBean(); + } else { + cb = callback.callbackReferrer_newMyConditionBean(); + } + + // - - - - - - - - - - - - - - + // Select the list of referrer + // - - - - - - - - - - - - - - + callback.callbackReferrer_queryForeignKeyInScope(cb, pkList); + loadReferrerOption + .delegateKeyConditionExchangingFirstWhereClauseForLastOne(cb); + if (!loadReferrerOption.isStopOrderByKey()) { + callback.callbackReferrer_queryAddOrderByForeignKeyAsc(cb); + cb.getSqlComponentOfOrderByClause() + .exchangeFirstOrderByElementForLastOne(); + } + loadReferrerOption.delegateConditionBeanSettingUp(cb); + final List referrerList = callback + .callbackReferrer_selectList(cb); + loadReferrerOption.delegateEntitySettingUp(referrerList); + + // - - - - - - - - - - - - - - - - - - - - - - - - + // Create the map of {primary key / referrer list} + // - - - - - - - - - - - - - - - - - - - - - - - - + final Map> pkReferrerListMap = new LinkedHashMap>(); + for (REFERRER_ENTITY referrerEntity : referrerList) { + final PK referrerListKey; + { + final PK foreignKeyValue = callback + .callbackReferrer_getForeignKeyValue(referrerEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(foreignKeyValue); + } + if (!pkReferrerListMap.containsKey(referrerListKey)) { + pkReferrerListMap.put(referrerListKey, + new ArrayList()); + } + (pkReferrerListMap.get(referrerListKey)).add(referrerEntity); + + // for Reverse Reference. + final LOCAL_ENTITY localEntity = pkLocalEntityMap + .get(referrerListKey); + callback.callbackReferrer_setForeignEntity(referrerEntity, + localEntity); + } + + // - - - - - - - - - - - - - - - - - - + // Relate referrer list to base entity + // - - - - - - - - - - - - - - - - - - + for (LOCAL_ENTITY localEntity : localEntityList) { + final PK referrerListKey; + { + final PK primaryKey = callback + .callbackBase_getPrimaryKeyValue(localEntity); + referrerListKey = toLowerCasePrimaryKeyIfString(primaryKey); + } + if (pkReferrerListMap.containsKey(referrerListKey)) { + callback.callbackBase_setReferrerList(localEntity, + pkReferrerListMap.get(referrerListKey)); + } else { + callback.callbackBase_setReferrerList(localEntity, + new ArrayList()); + } + } + } + + /** + * To lower case for primary key if the value is string. + * + * @param The type of primary key. + * @param value The value of primary key. (Nullable) + * @return The value of primary key. (Nullable) + */ + protected PK toLowerCasePrimaryKeyIfString(PK value) { + return (PK) toLowerCaseIfString(value); + } + + /** + * @param The type of base entity. + * @param The type of primary key. + * @param The type of referrer conditionBean. + * @param The type of referrer entity. + */ + protected static interface InternalLoadReferrerCallback { + // For Base + public PK callbackBase_getPrimaryKeyValue(LOCAL_ENTITY entity); + + public void callbackBase_setReferrerList(LOCAL_ENTITY entity, + List referrerList); + + // For Referrer + public REFERRER_CB callbackReferrer_newMyConditionBean(); + + public void callbackReferrer_queryForeignKeyInScope(REFERRER_CB cb, + List pkList); + + public void callbackReferrer_queryAddOrderByForeignKeyAsc(REFERRER_CB cb); + + public List callbackReferrer_selectList(REFERRER_CB cb); + + public PK callbackReferrer_getForeignKeyValue(REFERRER_ENTITY entity); + + public void callbackReferrer_setForeignEntity( + REFERRER_ENTITY referrerEntity, LOCAL_ENTITY localEntity); + } + + protected BehaviorSelector xgetBSFLR() { // getBehaviorSelectorForLoadReferrer + // () as Internal + assertBehaviorSelectorNotNull("loadReferrer"); + return getBehaviorSelector(); + } + + private void assertBehaviorSelectorNotNull(String methodName) { + if (_behaviorSelector == null) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Not found the selector of behavior as behavior's attributed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the definition of the selector at your 'dbflute.dicon'." + + getLineSeparator(); + msg = msg + "It is precondition that '" + methodName + + "()' needs the selector instance." + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Your Behavior's Attributes]" + getLineSeparator(); + msg = msg + " _behaviorSelector : " + _behaviorSelector + + getLineSeparator(); + msg = msg + " _daoSelector : " + _daoSelector + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Pullout Internal Helper + // ======================= + protected List helpPulloutInternally( + List localEntityList, + InternalPulloutCallback callback) { + assertObjectNotNull("localEntityList", localEntityList); + final Set foreignSet = new LinkedHashSet(); + for (LOCAL_ENTITY entity : localEntityList) { + final FOREIGN_ENTITY foreignEntity = callback + .callbackGetForeignEntity(entity); + if (foreignEntity == null || foreignSet.contains(foreignEntity)) { + continue; + } + foreignSet.add(foreignEntity); + } + return new ArrayList(foreignSet); + } + + protected static interface InternalPulloutCallback { + public FOREIGN_ENTITY callbackGetForeignEntity(LOCAL_ENTITY entity); + } + + //========================================================================== + // ========= + // Token File + // ========== + public TokenFileOutputExecutor tokenFileOutput() + throws java.io.FileNotFoundException, java.io.IOException { + return new TokenFileOutputExecutor(); + } + + public class TokenFileOutputExecutor { + /** + * Output token-file from this table records. + * + * @param cb Condition-bean. (NotNull) + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileOutputOption token-file-output-option. (NotNull and + * Required{delimiter and encoding}) + * @return Token-file-output-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileOutputResult outputTokenFile(ConditionBean cb, + String filename, TokenFileOutputOption tokenFileOutputOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertConditionBeanNotNull(cb); + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertObjectNotNull("tokenFileOutputOption", tokenFileOutputOption); + + final List ls = readList(cb); + List> rowList = new ArrayList>(); + for (java.util.Iterator ite = ls.iterator(); ite.hasNext();) { + final Entity entity = (Entity) ite.next(); + final List valueList = getDBMeta() + .convertToColumnStringValueList(entity); + rowList.add(valueList); + } + final FileMakingSimpleFacade fileMakingSimpleFacade = new FileMakingSimpleFacadeImpl(); + final FileMakingOption fileMakingOption = tokenFileOutputOption + .getFileMakingOption(); + final FileMakingHeaderInfo fileMakingHeaderInfo = new FileMakingHeaderInfo(); + final List columnDbNameList = new ArrayList(); + for (final java.util.Iterator ite = getDBMeta().getColumnInfoList() + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + fileMakingHeaderInfo.setColumnNameList(columnDbNameList); + fileMakingOption.setFileMakingHeaderInfo(fileMakingHeaderInfo); + fileMakingSimpleFacade.makeFromRowList(filename, rowList, + fileMakingOption); + final TokenFileOutputResult tokeFileOutputResult = new TokenFileOutputResult(); + tokeFileOutputResult.setSelectedList(ls); + return tokeFileOutputResult; + } + } + + //========================================================================== + // ========= + // Delegate Method + // =============== + /** + * The implementation. + * + * @return All count. + */ + protected int callGetCountAll() { + return readCount(newConditionBean()); + } + + /** + * The implementation. + * + * @return All list. (NotNull) + */ + protected List callGetListAll() { + return readList(newConditionBean()); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read count. (NotNull) + */ + protected int callReadCount(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final java.lang.reflect.Method mtd = getMethod(getDaoReadable() + .getClass(), "selectCount", types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return ((Integer) result).intValue(); + } + + /** + * The implementation. + * + * @param cb Condition-bean that the type is condition-bean-interface. + * (NotNull) + * @return Read list. If the select result is zero, it returns empty list. + * (NotNull) + */ + protected List callReadList(ConditionBean cb) { + assertConditionBeanNotNull(cb); + final Class[] types = new Class[] { cb.getClass() }; + final Method mtd = getMethod(getDaoReadable().getClass(), "selectList", + types); + final Object result = invoke(mtd, getDaoReadable(), new Object[] { cb }); + return (List) result; + } + + private Method getMethod(Class clazz, String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + private Object invoke(Method method, Object target, Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + protected abstract boolean hasVersionNoValue(Entity entity); + + protected abstract boolean hasUpdateDateValue(Entity entity); + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * To lower case if the type is String. + * + * @param obj Object. (Nullable) + * @return Lower object. (Nullable) + */ + protected Object toLowerCaseIfString(Object obj) { + if (obj != null && obj instanceof String) { + return ((String) obj).toLowerCase(); + } + return obj; + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected ENTITY helpDowncastInternally( + Entity entity, Class clazz) { + assertObjectNotNull("entity", entity); + assertObjectNotNull("clazz", clazz); + try { + return (ENTITY) entity; + } catch (ClassCastException e) { + String msg = "The entity should be " + clazz.getSimpleName() + + " but it was: " + entity.getClass(); + throw new RuntimeException(msg, e); + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNull(Entity entity) { + assertObjectNotNull("entity", entity); + } + + /** + * Assert that the condition-bean is not null. + * + * @param cb Condition-bean. (NotNull) + */ + protected void assertConditionBeanNotNull( + jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean cb) { + assertObjectNotNull("cb", cb); + } + + /** + * Assert that the entity has primary-key value. + * + * @param entity Entity. (NotNull) + */ + protected void assertEntityNotNullAndHasPrimaryKeyValue(Entity entity) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + String msg = "The entity must should primary-key: entity=" + entity; + throw new IllegalArgumentException(msg + entity); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert List + // ----------- + /** + * Assert that the list is empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (!ls.isEmpty()) { + String msg = "The list should be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list is not empty. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndNotEmpty(List ls) { + assertObjectNotNull("ls", ls); + if (ls.isEmpty()) { + String msg = "The list should not be empty: ls=" + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the list having only one. + * + * @param ls List. (NotNull) + */ + protected void assertListNotNullAndHasOnlyOne(List ls) { + assertObjectNotNull("ls", ls); + if (ls.size() != 1) { + String msg = "The list should contain only one object: ls=" + + ls.toString(); + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the selector of behavior. + * + * @return The select of behavior. (Nullable: But normally NotNull) + */ + protected BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + /** + * Set the selector of behavior. + * + * @param behaviorSelector The selector of behavior. (NotNull) + */ + public void setBehaviorSelector(BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + /** + * Get the selector of DAO. + * + * @return The select of DAO. (Nullable: But normally NotNull) + */ + protected DaoSelector getDaoSelector() { + return _daoSelector; + } + + /** + * Set the selector of DAO. + * + * @param daoSelector The selector of DAO. (NotNull) + */ + public void setDaoSelector(DaoSelector daoSelector) { + _daoSelector = daoSelector; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorWritable.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorWritable.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorWritable.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,997 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.batch.TokenFileReflectionFailure; +import jp.sf.pal.scheduler.db.allcommon.bhv.batch.TokenFileReflectionOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.batch.TokenFileReflectionResult; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.scheduler.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.impl.FileTokenImpl; + +/** + * The abstract class of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractBehaviorWritable extends AbstractBehaviorReadable + implements BehaviorWritable { + + //========================================================================== + // ========= + // Entity Update + // ============= + // ----------------------------------------------------- + // Create + // ------ + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(Entity entity) { + doCreate(entity); + } + + protected abstract void doCreate(Entity entity); + + // ----------------------------------------------------- + // Modify + // ------ + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(Entity entity) { + doModify(entity); + } + + protected abstract void doModify(Entity entity); + + /** + * Modify non strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity) { + doModifyNonstrict(entity); + } + + protected abstract void doModifyNonstrict(Entity entity); + + // ----------------------------------------------------- + // Create or Modify + // ---------------- + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.scheduler.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdate(entity); + } + + protected abstract void doCreateOrUpdate(Entity entity); + + /** + * The implementation. + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.scheduler.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + doCreateOrUpdateNonstrict(entity); + } + + protected abstract void doCreateOrUpdateNonstrict(Entity entity); + + // ----------------------------------------------------- + // Remove + // ------ + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.scheduler.db.allcommon.Entity entity) { + assertEntityNotNull(entity); + callRemove(entity); + } + + protected abstract void doRemove(Entity entity); + + //========================================================================== + // ========= + // Entity Update Internal Helper + // ============================= + // ----------------------------------------------------- + // Update + // ------ + protected void helpUpdateInternally(ENTITY entity, + InternalUpdateCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int updatedCount = callback.callbackDelegateUpdate(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalUpdateCallback { + public int callbackDelegateUpdate(ENTITY entity); + } + + protected void helpUpdateNonstrictInternally( + ENTITY entity, InternalUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + final int updatedCount = callback + .callbackDelegateUpdateNonstrict(entity); + if (updatedCount == 0) { + String msg = "The entity was Not Found! it has already been deleted: entity=" + + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (updatedCount > 1) { + String msg = "The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=" + + updatedCount; + msg = msg + ": entity=" + entity; + } + } + + protected static interface InternalUpdateNonstrictCallback { + public int callbackDelegateUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // InsertOrUpdate + // -------------- + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + RuntimeException exception = null; + try { + callback.callbackUpdate(entity); + } catch (jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException e) { + if (e.getRows() == 0) { + exception = e; + } + } catch (jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException e) { + exception = e; + } catch (OptimisticLockColumnValueNullException e) { + exception = e; + } + if (exception != null) { + final CB_TYPE cb = callback.callbackNewMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta() + .extractPrimaryKeyMapString(entity)); + if (callback.callbackSelectCount(cb) == 0) { + callback.callbackInsert(entity); + } else { + throw exception; + } + } + } + } + + protected static interface InternalInsertOrUpdateCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdate(ENTITY entity); + + public CB_TYPE callbackNewMyConditionBean(); + + public int callbackSelectCount(CB_TYPE cb); + } + + protected void helpInsertOrUpdateInternally( + ENTITY entity, + InternalInsertOrUpdateNonstrictCallback callback) { + assertEntityNotNull(entity); + if (!entity.hasPrimaryKeyValue()) { + callback.callbackInsert(entity); + } else { + try { + callback.callbackUpdateNonstrict(entity); + } catch (jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException e) { + callback.callbackInsert(entity); + } catch (jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException e) { + callback.callbackInsert(entity); + } + } + } + + protected static interface InternalInsertOrUpdateNonstrictCallback { + public void callbackInsert(ENTITY entity); + + public void callbackUpdateNonstrict(ENTITY entity); + } + + // ----------------------------------------------------- + // Delete + // ------ + protected void helpDeleteInternally(ENTITY entity, + InternalDeleteCallback callback) { + assertEntityNotNull(entity); + assertEntityHasVersionNoValue(entity); + assertEntityHasUpdateDateValue(entity); + final int deletedCount = callback.callbackDelegateDelete(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteCallback { + public int callbackDelegateDelete(ENTITY entity); + } + + protected void helpDeleteNonstrictInternally( + ENTITY entity, InternalDeleteNonstrictCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + String msg = "The entity was Not Found! The entity has already been deleted: entity=" + + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + protected void helpDeleteNonstrictIgnoreDeletedInternally( + ENTITY entity, + InternalDeleteNonstrictIgnoreDeletedCallback callback) { + assertEntityNotNull(entity); + final int deletedCount = callback + .callbackDelegateDeleteNonstrict(entity); + if (deletedCount == 0) { + return; + } else if (deletedCount > 1) { + String msg = "The deleted entity was duplicated. It should be the only one! But the deletedCount=" + + deletedCount; + msg = msg + ": entity=" + entity; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + protected static interface InternalDeleteNonstrictIgnoreDeletedCallback { + public int callbackDelegateDeleteNonstrict(ENTITY entity); + } + + //========================================================================== + // ========= + // Lump Update + // =========== + /** + * Lump create the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callCreateList(entityList); + } + + /** + * Lump Modify the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpModify(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callModifyList(entityList); + } + + /** + * Lump remove the list. + * + * @param entityList Entity list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * If s2dao's version is over 1.0.47 (contains 1.0.47). + */ + public int[] lumpRemove(java.util.List entityList) { + assertListNotNullAndNotEmpty(entityList); + return callRemoveList(entityList); + } + + /** + * Inject sequence to primary key if it needs. + * + * @param entity Entity. (NotNull) + */ + protected void injectSequenceToPrimaryKeyIfNeeds(Entity entity) { + final DBMeta dbmeta = entity.getDBMeta(); + if (!dbmeta.hasSequence() || dbmeta.hasTwoOrMorePrimaryKeys() + || entity.hasPrimaryKeyValue()) { + return; + } + final java.math.BigDecimal sequenceValue = readNextVal(); + final String columnDbName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final java.util.Map map = new java.util.HashMap(); + map.put(columnDbName, sequenceValue.toString()); + dbmeta.acceptPrimaryKeyMap(entity, map); + } + + //========================================================================== + // =========== + // Token File + // ========== + public TokenFileReflectionExecutor tokenFileReflection() { + return new TokenFileReflectionExecutor(); + } + + public class TokenFileReflectionExecutor { + + /** + * Reflect(insert or update) token-file to this table. + * + * @param filename Name of the file. (NotNull and NotEmpty) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile(String filename, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(filename, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + /** + * Reflect(insert or update) token-file to this table. + * + * @param inputStream Input stream. (NotNull and NotClosed) + * @param tokenFileReflectionOption token-file-reflection-option. + * (NotNull and Required{delimiter and encoding}) + * @return Token-file-reflection-result. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public TokenFileReflectionResult reflectTokenFile( + java.io.InputStream inputStream, + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertFileTokenReflectionOption(tokenFileReflectionOption); + + final TokenFileReflectionResult result = buildTokenFileReflectionResult(); + final FileTokenizingCallback fileTokenizingCallback = buildFileTokenReflectionFileTokenizingCallback( + tokenFileReflectionOption, result); + final FileTokenizingOption fileTokenizingOption = buildFileTokenReflectionFileTokenizingOption(tokenFileReflectionOption); + final FileToken fileToken = new FileTokenImpl(); + fileToken.tokenize(inputStream, fileTokenizingCallback, + fileTokenizingOption); + return result; + } + + protected void assertFileTokenReflectionOption( + TokenFileReflectionOption tokenFileReflectionOption) { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + } + + protected TokenFileReflectionResult buildTokenFileReflectionResult() { + final TokenFileReflectionResult result = new TokenFileReflectionResult(); + final java.util.List failureList = new java.util.ArrayList(); + result.setFailureList(failureList); + return result; + } + + protected FileTokenizingCallback buildFileTokenReflectionFileTokenizingCallback( + TokenFileReflectionOption tokenFileReflectionOption, + final TokenFileReflectionResult result) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + final boolean interruptIfError = tokenFileReflectionOption + .isInterruptIfError(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final java.util.List failureList = result + .getFailureList(); + assertObjectNotNull("failureList", failureList); + + final FileTokenizingCallback fileTokenizingCallback = new FileTokenizingCallback() { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource) { + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = fileTokenizingRowResource + .getFileTokenizingHeaderInfo(); + final java.util.List columnNameList = fileTokenizingHeaderInfo + .getColumnNameList(); + final java.util.List valueList = fileTokenizingRowResource + .getValueList(); + + // Set up columnNameList of result object. + if (result.getColumnNameList() == null) { + result.setColumnNameList(columnNameList); + } + + Entity entity = null; + try { + // Create entity by the list of value composed of + // String. + entity = createEntityByStringValueList(columnNameList, + valueList); + + // Create or modify as non-strict. + doCreateOrUpdateNonstrict(entity); + + // Increment successCount of result object. + result.incrementSuccessCount(); + } catch (RuntimeException e) { + if (interruptIfError) { + throw e; + } + final TokenFileReflectionFailure failure = new TokenFileReflectionFailure(); + failure.setColumnNameList(columnNameList); + failure.setValueList(valueList); + failure.setRowString(fileTokenizingRowResource + .getRowString()); + failure.setRowNumber(fileTokenizingRowResource + .getRowNumber()); + failure.setLineNumber(fileTokenizingRowResource + .getLineNumber()); + if (entity != null) { + failure.setEntity(entity); + } + failure.setException(e); + failureList.add(failure); + } + } + }; + return fileTokenizingCallback; + } + + protected Entity createEntityByStringValueList( + java.util.List columnNameList, + java.util.List valueList) { + final MapStringBuilder builder = new MapStringBuilderImpl(); + builder.setMsMapMark(MAP_STRING_MAP_MARK); + builder.setMsStartBrace(MAP_STRING_START_BRACE); + builder.setMsEndBrace(MAP_STRING_END_BRACE); + builder.setMsDelimiter(MAP_STRING_DELIMITER); + builder.setMsEqual(MAP_STRING_EQUAL); + builder.setColumnNameList(columnNameList); + final String mapString = builder.buildFromList(valueList); + + final Entity entity = getDBMeta().newEntity(); + getDBMeta().acceptColumnValueMapString(entity, mapString); + return entity; + } + + protected FileTokenizingOption buildFileTokenReflectionFileTokenizingOption( + TokenFileReflectionOption tokenFileReflectionOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("tokenFileReflectionOption", + tokenFileReflectionOption); + + final String encoding = tokenFileReflectionOption.getEncoding(); + final String delimiter = tokenFileReflectionOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + final FileTokenizingOption fileTokenizingOption = new FileTokenizingOption(); + fileTokenizingOption.setEncoding(encoding); + fileTokenizingOption.setDelimiter(delimiter); + if (tokenFileReflectionOption.isHandleEmptyAsNull()) { + fileTokenizingOption.handleEmptyAsNull(); + } + return fileTokenizingOption; + } + } + + //========================================================================== + // =========== + // Delegate Method + // =============== + // ----------------------------------------------------- + // Insert + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Inserted count. + */ + protected int callCreate(Entity entity) { + if (!processBeforeInsert(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().create(entity); + } + + /** + * Process before insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeInsert(Entity entity) { + if (!determineExecuteInsert(entity)) { + return false; + } + assertEntityNotNull(entity);// If this table use identity, the entity + // does not have primary-key. + frameworkFilterEntityOfInsert(entity); + filterEntityOfInsert(entity); + assertEntityOfInsert(entity); + return true; + } + + // ----------------------------------------------------- + // Update + // ------ + /** + * The implementation. {modified only} + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Updated count. + */ + protected int callModify(Entity entity) { + if (!processBeforeUpdate(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().modifyModifiedOnly(entity); + } + + /** + * Process before update. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeUpdate(Entity entity) { + if (!determineExecuteUpdate(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfUpdate(entity); + filterEntityOfUpdate(entity); + assertEntityOfUpdate(entity); + return true; + } + + // ----------------------------------------------------- + // Delete + // ------ + /** + * The implementation. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Deleted count. + */ + protected int callRemove(Entity entity) { + if (!processBeforeDelete(entity)) { + return 1;/* as Normal End */ + } + return getDaoWritable().remove(entity); + } + + /** + * Process before delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean processBeforeDelete(Entity entity) { + if (!determineExecuteDelete(entity)) { + return false; + } + assertEntityNotNullAndHasPrimaryKeyValue(entity); + frameworkFilterEntityOfDelete(entity); + filterEntityOfDelete(entity); + assertEntityOfDelete(entity); + return true; + } + + // ----------------------------------------------------- + // Pre-Process Insert + // ------------------ + /** + * Determine execution of insert. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteInsert(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfInsert(Entity targetEntity) { + injectSequenceToPrimaryKeyIfNeeds(targetEntity); + setupCommonColumnOfInsertIfNeeds(targetEntity); + } + + /** + * Set up common columns of insert if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfInsertIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of insert. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfInsert(Entity targetEntity) { + } + + /** + * Assert the entity of insert. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfInsert(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Update + // ------------------ + /** + * Determine execution of update. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteUpdate(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfUpdate(Entity targetEntity) { + setupCommonColumnOfUpdateIfNeeds(targetEntity); + } + + /** + * Set up common columns of update if it needs. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void setupCommonColumnOfUpdateIfNeeds(Entity targetEntity) { + } + + /** + * Filter the entity of update. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfUpdate(Entity targetEntity) { + } + + /** + * Assert the entity of update. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfUpdate(Entity entity) { + } + + // ----------------------------------------------------- + // Pre-Process Delete + // ------------------ + /** + * Determine execution of delete. + * + * @param entity Entity. (NotNull) + * @return Execution Determination. (true: execute / false: non) + */ + protected boolean determineExecuteDelete(Entity entity) { + return true; + } + + /** + * {Framework Method} Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void frameworkFilterEntityOfDelete(Entity targetEntity) { + } + + /** + * Filter the entity of delete. + * + * @param targetEntity Target entity that the type is entity interface. + * (NotNull) + */ + protected void filterEntityOfDelete(Entity targetEntity) { + } + + /** + * Assert the entity of delete. + * + * @param entity Entity that the type is entity interface. (NotNull) + */ + protected void assertEntityOfDelete(Entity entity) { + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Inserted count. + */ + public int[] callCreateList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeInsertInternally(entityList); + return getDaoWritable().createList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Updated count. + */ + public int[] callModifyList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeUpdateInternally(entityList); + return getDaoWritable().modifyList(entityList); + } + + /** + * The implementation. + * + * @param entityList Entity list that the type is entity interface. + * (NotNull) + * @return Deleted count. + */ + public int[] callRemoveList(java.util.List entityList) { + assertObjectNotNull("entityList", entityList); + helpFilterBeforeDeleteInternally(entityList); + return getDaoWritable().removeList(entityList); + } + + protected void assertEntityHasVersionNoValue(Entity entity) { + if (!getDBMeta().hasVersionNo()) { + return; + } + if (hasVersionNoValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'version no' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'version no' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'version no' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + protected void assertEntityHasUpdateDateValue(Entity entity) { + if (!getDBMeta().hasUpdateDate()) { + return; + } + if (hasUpdateDateValue(entity)) { + return; + } + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of 'update date' on the entity was Not Found!" + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of the value of 'update date' on the entity." + + getLineSeparator(); + msg = msg + + "You called the method in which the check for optimistic lock is indispensable. " + + getLineSeparator(); + msg = msg + "So 'update date' is required on the entity. " + + getLineSeparator(); + msg = msg + + "In addition, please confirm the necessity of optimistic lock. It might possibly be unnecessary." + + getLineSeparator() + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator(); + msg = msg + "entity to string = " + entity + getLineSeparator(); + msg = msg + "entity to map = " + + entity.getDBMeta().convertToColumnValueMap(entity) + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new OptimisticLockColumnValueNullException(msg); + } + + public static class OptimisticLockColumnValueNullException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public OptimisticLockColumnValueNullException(String msg) { + super(msg); + } + } + + //========================================================================== + // ========= + // Delegate Method Internal Helper + // =============================== + protected List helpFilterBeforeInsertInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeInsert(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeUpdateInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeUpdate(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } + + protected List helpFilterBeforeDeleteInternally( + List entityList) { + final List filteredList = new ArrayList(); + for (final Iterator ite = entityList.iterator(); ite.hasNext();) { + final ENTITY entity = ite.next(); + if (!processBeforeDelete(entity)) { + continue; + } + filteredList.add(entity); + } + return filteredList; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/AbstractBehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorReadable.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorReadable.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorReadable.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,176 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +/** + * The interface of behavior-readable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorReadable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table name + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + //========================================================================== + // ========= + // DBMeta + // ====== + /** + * Get dbmeta. + * + * @return DBMeta. (NotNull) + */ + public DBMeta getDBMeta(); + + //========================================================================== + // ========= + // Dao Accessor + // ============ + /** + * Get dao-readable. + * + * @return Dao-readable. (NotNull) + */ + public DaoReadable getDaoReadable(); + + //========================================================================== + // ========= + // New Instance + // ============ + /** + * New entity. + * + * @return Entity. (NotNull) + */ + public Entity newEntity(); + + /** + * New condition-bean. + * + * @return Condition-bean. (NotNull) + */ + public ConditionBean newConditionBean(); + + //========================================================================== + // ========= + // Basic Get All + // ============= + /** + * Get count all. + * + * @return Count all. + */ + public int getCountAll(); + + //========================================================================== + // ========= + // Basic Read Count + // ================ + /** + * Read count by condition-bean. + * + *
    +     * If the argument 'condition-bean' is effective about fetch-scope,
    +     * this method invoke select count ignoring the fetch-scope.
    +     * 
    + * + * @param cb Condition-bean. This condition-bean should not be set up about + * fetch-scope. (NotNull) + * @return Read count. (NotNull) + */ + public int readCount(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read Entity + // ================= + /** + * Read entity by condition-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntity(ConditionBean cb); + + /** + * Read simple entity by condition-bean with deleted check. + * + * @param cb Condition-bean. (NotNull) + * @return Read entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Entity readEntityWithDeletedCheck(ConditionBean cb); + + //========================================================================== + // ========= + // Basic Read List + // =============== + /** + * Read list as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return List-result-bean. If the select result is zero, it returns empty + * list. (NotNull) + */ + public ListResultBean readList(ConditionBean cb); + + /** + * Read page as result-bean. + * + * @param cb Condition-bean. (NotNull) + * @return Read page. (NotNull) + */ + public PagingResultBean readPage(final ConditionBean cb); + + //========================================================================== + // ========= + // Sequence + // ======== + /** + * The implementation. + * + * @return The value of sequence. (NotNull) + */ + public java.math.BigDecimal readNextVal(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorReadable.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorWritable.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorWritable.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorWritable.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,149 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv; + +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; + +/** + * The interface of behavior-writable. + * + * @author DBFlute(AutoGenerator) + */ +public interface BehaviorWritable extends BehaviorReadable { + + /** + * Get dao-writable. + * + * @return Dao-writable. (NotNull) + */ + public DaoWritable getDaoWritable(); + + //========================================================================== + // =========== + // Basic Entity Update + // =================== + /** + * Create. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void create(jp.sf.pal.scheduler.db.allcommon.Entity entity); + + /** + * Modify. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modify(jp.sf.pal.scheduler.db.allcommon.Entity entity); + + /** + * Modify non-strict. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void modifyNonstrict(Entity entity); + + /** + * Create or modify.
    {modify: modified only}
    This method is + * faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModify(jp.sf.pal.scheduler.db.allcommon.Entity entity); + + /** + * Create or modify non-strict.
    {modify: modified only}
    This + * method is faster than createOrModifyAfterSelect(). + * + * @param entity Entity. This must contain primary-key value at least(Except + * use identity). (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void createOrModifyNonstrict( + jp.sf.pal.scheduler.db.allcommon.Entity entity); + + /** + * Remove. + * + * @param entity Entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void remove(jp.sf.pal.scheduler.db.allcommon.Entity entity); + + //========================================================================== + // =========== + // Basic Batch Update + // ================== + /** + * Lump create the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return The array of created count. + */ + public int[] lumpCreate(java.util.List entityList); + + /** + * Lump Modify the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Modified count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpModify(java.util.List entityList); + + /** + * Lump remove the list. + * + * @param entityList Entity-list. (NotNull and NotEmpty) + * @return Removed count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. And Only when + * s2dao's version is over 1.0.47 (contains 1.0.47). + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public int[] lumpRemove(java.util.List entityList); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/BehaviorWritable.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,90 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.batch; + +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileMakingOption _fileMakingOption = new FileMakingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileOutputOption delimitateByComma() { + _fileMakingOption.delimitateByComma(); + return this; + } + + public TokenFileOutputOption delimitateByTab() { + _fileMakingOption.delimitateByTab(); + return this; + } + + public TokenFileOutputOption encodeAsUTF8() { + _fileMakingOption.encodeAsUTF8(); + return this; + } + + public TokenFileOutputOption encodeAsWindows31J() { + _fileMakingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileOutputOption separateCrLf() { + _fileMakingOption.separateCrLf(); + return this; + } + + public TokenFileOutputOption separateLf() { + _fileMakingOption.separateLf(); + return this; + } + + public TokenFileOutputOption goodByeDoubleQuotation() { + _fileMakingOption.goodByeDoubleQuotation(); + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _fileMakingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileMakingOption.setDelimiter(encoding); + } + + public String getDelimiter() { + return _fileMakingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileMakingOption.setDelimiter(delimiter); + } + + public String getLineSeparator() { + return _fileMakingOption.getLineSeparator(); + } + + public void setLineSeparator(String lineSeparator) { + _fileMakingOption.setLineSeparator(lineSeparator); + } + + public boolean isGoodByeDoubleQuotation() { + return _fileMakingOption.isGoodByeDoubleQuotation(); + } + + public FileMakingOption getFileMakingOption() { + return _fileMakingOption; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputResult.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputResult.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputResult.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,27 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.batch; + +import jp.sf.pal.scheduler.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileOutputResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _selectedList; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getSelectedList() { + return _selectedList; + } + + public void setSelectedList(java.util.List selectedList) { + _selectedList = selectedList; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileOutputResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionFailure.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionFailure.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionFailure.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,89 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.batch; + +import jp.sf.pal.scheduler.db.allcommon.Entity; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionFailure { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + protected Entity _entity; + + protected Exception _exception; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } + + public Entity getEntity() { + return _entity; + } + + public void setEntity(Entity value) { + _entity = value; + } + + public Exception getException() { + return _exception; + } + + public void setException(Exception value) { + _exception = value; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionFailure.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,79 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.batch; + +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _interruptIfError; + + protected FileTokenizingOption _fileTokenizingOption = new FileTokenizingOption(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public TokenFileReflectionOption delimitateByComma() { + _fileTokenizingOption.delimitateByComma(); + return this; + } + + public TokenFileReflectionOption delimitateByTab() { + _fileTokenizingOption.delimitateByTab(); + return this; + } + + public TokenFileReflectionOption encodeAsUTF8() { + _fileTokenizingOption.encodeAsUTF8(); + return this; + } + + public TokenFileReflectionOption encodeAsWindows31J() { + _fileTokenizingOption.encodeAsWindows31J(); + return this; + } + + public TokenFileReflectionOption handleEmptyAsNull() { + _fileTokenizingOption.handleEmptyAsNull(); + return this; + } + + public TokenFileReflectionOption interruptIfError() { + _interruptIfError = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _fileTokenizingOption.getDelimiter(); + } + + public void setDelimiter(String delimiter) { + _fileTokenizingOption.setDelimiter(delimiter); + } + + public String getEncoding() { + return _fileTokenizingOption.getEncoding(); + } + + public void setEncoding(String encoding) { + _fileTokenizingOption.setDelimiter(encoding); + } + + public boolean isHandleEmptyAsNull() { + return _fileTokenizingOption.isHandleEmptyAsNull(); + } + + public boolean isInterruptIfError() { + return _interruptIfError; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionResult.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionResult.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionResult.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,54 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.batch; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TokenFileReflectionResult { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected int _successCount; + + protected java.util.List _failureList; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public void incrementSuccessCount() { + ++_successCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(java.util.List columnNameList) { + this._columnNameList = columnNameList; + } + + public int getSuccessCount() { + return _successCount; + } + + public void setSuccessCount(int successCount) { + _successCount = successCount; + } + + public java.util.List getFailureList() { + return _failureList; + } + + public void setFailureList( + java.util.List failureList) { + this._failureList = failureList; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/batch/TokenFileReflectionResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/load/LoadReferrerOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/load/LoadReferrerOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/load/LoadReferrerOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,146 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.load; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.EntityListSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; + +/** + * The class of load referrer option. + * + * @param The type of referrer condition-bean. + * @param The type of referrer entity. + * @author DBFlute(AutoGenerator) + */ +public class LoadReferrerOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ConditionBeanSetupper _conditionBeanSetupper; + + protected EntityListSetupper _entityListSetupper; + + protected REFERRER_CONDITION_BEAN _referrerConditionBean; + + protected boolean _toLastKeyCondition; + + protected boolean _stopOrderByKey; + + //========================================================================== + // ========= + // Constructor + // =========== + public LoadReferrerOption() { + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public LoadReferrerOption( + ConditionBeanSetupper conditionBeanSetupper, + EntityListSetupper entityListSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + this._entityListSetupper = entityListSetupper; + } + + public LoadReferrerOption( + LoadReferrerOption option) { + this._conditionBeanSetupper = option._conditionBeanSetupper; + this._entityListSetupper = option._entityListSetupper; + this._referrerConditionBean = option._referrerConditionBean; + this._toLastKeyCondition = option._toLastKeyCondition; + this._stopOrderByKey = option._stopOrderByKey; + } + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + /** + * Specify that the key condition is added as last condition.
    This + * method is valid only after you use reffererConditionBean and add your + * original condition to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption toLastKeyCondition() { + _toLastKeyCondition = true; + return this; + } + + /** + * Specify that it stops adding order-by of the key.
    This method is + * valid only after you use reffererConditionBean and add your original + * order-by to it. + * + * @return this. (NotNull) + */ + public LoadReferrerOption stopOrderByKey() { + _stopOrderByKey = true; + return this; + } + + public void delegateKeyConditionExchangingFirstWhereClauseForLastOne( + REFERRER_CONDITION_BEAN cb) {// Internal + if (!_toLastKeyCondition) { + cb.getSqlClause().exchangeFirstWhereClauseForLastOne(); + } + } + + public void delegateConditionBeanSettingUp(REFERRER_CONDITION_BEAN cb) {// Internal + if (_conditionBeanSetupper != null) { + _conditionBeanSetupper.setup(cb); + } + } + + public void delegateEntitySettingUp(List entityList) {// Internal + if (_entityListSetupper != null) { + _entityListSetupper.setup(entityList); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ConditionBeanSetupper getConditionBeanSetupper() { + return _conditionBeanSetupper; + } + + public void setConditionBeanSetupper( + ConditionBeanSetupper conditionBeanSetupper) { + this._conditionBeanSetupper = conditionBeanSetupper; + } + + public EntityListSetupper getEntityListSetupper() { + return _entityListSetupper; + } + + public void setEntityListSetupper( + EntityListSetupper entityListSetupper) { + this._entityListSetupper = entityListSetupper; + } + + public REFERRER_CONDITION_BEAN getReferrerConditionBean() { + return _referrerConditionBean; + } + + public void setReferrerConditionBean( + REFERRER_CONDITION_BEAN referrerConditionBean) { + this._referrerConditionBean = referrerConditionBean; + } + + public boolean isToLastKeyCondition() { + return _toLastKeyCondition; + } + + public boolean isStopOrderByKey() { + return _stopOrderByKey; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/load/LoadReferrerOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ConditionBeanSetupper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ConditionBeanSetupper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ConditionBeanSetupper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.setup; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; + +/** + * The interface of condition-bean setupper. + * + * @param The type of condition-bean. + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBeanSetupper { + + /** + * Set up condition. + * + * @param cb Condition-bean. (NotNull) + */ + public void setup(CONDITION_BEAN cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ConditionBeanSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/EntityListSetupper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/EntityListSetupper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/EntityListSetupper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.setup; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.Entity; + +/** + * The interface of entity list setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface EntityListSetupper { + + /** + * Set up the list of entity. + * + * @param entityList The list of entity. (NotNull) + */ + public void setup(List entityList); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/EntityListSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelBox.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelBox.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelBox.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,26 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.setup; + +/** + * The class of Value-Label Box. + * + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelBox { + + protected Object _value; + + protected String _label; + + public void setValueLabel(Object value, String label) { + this._value = value; + this._label = label; + } + + public Object getValue() { + return _value; + } + + public String getLabel() { + return _label; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelBox.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelSetupper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelSetupper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelSetupper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,20 @@ +package jp.sf.pal.scheduler.db.allcommon.bhv.setup; + +import jp.sf.pal.scheduler.db.allcommon.Entity; + +/** + * The interface of Value-Label Setupper. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface ValueLabelSetupper { + + /** + * Set up value-label. + * + * @param box Value-label box. (NotNull) + * @param entity Entity. (NotNull) + */ + public void setup(ValueLabelBox box, ENTITY entity); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/bhv/setup/ValueLabelSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1199 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.WhereClauseSimpleFilter; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.MapListString; +import jp.sf.pal.scheduler.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * The condition-bean as abstract. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionBean implements ConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause(this); + } + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // [DBFlute-0.7.4] @jflute -- At the future, I'll implement some check + // logics by these purpose types. + protected boolean _forDeriveReferrer; + + protected boolean _forUnion; + + protected boolean _forExistsSubQuery; + + protected boolean _forInScopeSubQuery; + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * The implementation. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Where Clause Filter + // =================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + this._sqlClause.addWhereClauseSimpleFilter(whereClauseSimpleFilter); + } + + //========================================================================== + // ========= + // ConditionQuery + // ============== + /** + * Get condition query as interface. At the future, change public to + * protected. + * + * @return Instance of query as interface. (NotNull) + */ + abstract public ConditionQuery getConditionQueryAsInterface(); + + /** + * The implementation. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ() { + return getConditionQueryAsInterface(); + } + + //========================================================================== + // ========= + // Accept PrimaryKey + // ================= + /** + * The implementation. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] must not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + acceptPrimaryKeyMap(mapListString.generateMap(primaryKeyMapString)); + } + + protected void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException("The value should not be null: " + + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + protected long parseDateStringAsMillis(Object value, String propertyName, + String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = (String) value; + if (valueString.indexOf("-") >= 0 + && valueString.indexOf("-") != valueString.lastIndexOf("-")) { + return java.sql.Timestamp.valueOf(valueString).getTime(); + } else { + return getParseDateFormat().parse((String) value).getTime(); + } + } catch (java.text.ParseException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + " threw the exception: value=[" + + value + "]", e); + } + } + + private java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateTimeInstance(); + } + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) {// Very Internal! + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNUll) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table left outer join ... on ... + * [from-hint] where ...} + * + * @return from-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * The implementation. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * The implementation. + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective() { + return getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + String msg = "This method is unsupported on ConditionBean!"; + throw new UnsupportedOperationException(msg); + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + // Do nothing! + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return _sqlClause.getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Limit Select + // ============ + /** Is limit-select PK only? */ + protected boolean _isLimitSelectPKOnly; + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly() { + return _isLimitSelectPKOnly; + } + + /** + * Limit select PK only. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly() { + _isLimitSelectPKOnly = true; + return this; + } + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off() { + _isLimitSelectPKOnly = false; + return this; + } + + //========================================================================== + // ========= + // Lock Setting + // ============ + /** + * The implementation. + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate() { + getSqlClause().lockForUpdate(); + return this; + } + + //========================================================================== + // ========= + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = true; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().ignoreIncludedSelectColumn(); + } + + getSqlClause().ignoreOrderBy(); + getSqlClause().ignoreFetchScope(); + return this; + } + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope() { + _isSelectCountIgnoreFetchScope = false; + + // If the query uses union query, it needs included-select-column. + if (!hasUnionQueryOrUnionAllQuery()) { + getSqlClause().makeIncludedSelectColumnEffective(); + } + + getSqlClause().makeOrderByEffective(); + getSqlClause().makeFetchScopeEffective(); + return this; + } + + /** Is set up various things for select-count-ignore-fetch-scope? */ + protected boolean _isSelectCountIgnoreFetchScope; + + /** + * Is set up various things for select-count-ignore-fetch-scope? This method + * is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope() { + return _isSelectCountIgnoreFetchScope; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected static abstract class AbstractSpecification { + protected ConditionBean _baseCB; + + protected SpQyCall _qyCall; + + protected CQ _query; + + protected boolean _forDeriveReferrer; + + protected boolean alreadySpecifyRequiredColumn; + + /** + * @param baseCB The condition-bean of base level. (NotNull) + * @param qyCall The callback for condition-query. (NotNull) + * @param forDeriveReferrer Is this for derive referrer? + */ + protected AbstractSpecification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + _baseCB = baseCB; + _qyCall = qyCall; + _forDeriveReferrer = forDeriveReferrer; + } + + protected void doColumn(String columnName) { + assertColumn(columnName); + if (_query == null) { + _query = _qyCall.qy(); + } + if (!_forDeriveReferrer && !alreadySpecifyRequiredColumn) { + alreadySpecifyRequiredColumn = true; + doSpecifyRequiredColumn(); + } + String relationPath = _query.getRelationPath() != null ? _query + .getRelationPath() : ""; + final String tableAliasName; + if (_query.isBaseQuery(_query)) { + tableAliasName = _baseCB.getSqlClause() + .getLocalTableAliasName(); + } else { + tableAliasName = _baseCB.getSqlClause().resolveJoinAliasName( + relationPath, _query.getNestLevel()); + } + _baseCB.getSqlClause().specifySelectColumn(tableAliasName, + columnName); + } + + protected void assertColumn(String columnName) { + if (_query == null && !_qyCall.has()) { + throwSpecifyColumnNotSetupSelectColumnException(columnName); + } + } + + protected void assertForeign(String foreignPropertyName) { + if (_forDeriveReferrer) { + throwDeriveReferrerInvalidForeignSpecificationException(foreignPropertyName); + } + } + + protected abstract void doSpecifyRequiredColumn(); + + protected abstract String getTableDbName(); + + protected void throwSpecifyColumnNotSetupSelectColumnException( + String columnName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You specified the column that had Not been Set up!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should call setupSelect_[ForeignTable]() before calling specify[ForeignTable]().column[TargetColumn]()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName(); // *No!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + " cb.setupSelect_MemberStatus(); // *Point!" + + getLineSeparator(); + msg = msg + + " cb.specify().specifyMemberStatus().columnMemberStatusName();" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + + _baseCB.getClass().getName() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Column]" + getLineSeparator() + + getTableDbName() + "." + columnName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifyColumnNotSetupSelectColumnException(msg); + } + + protected void throwDeriveReferrerInvalidForeignSpecificationException( + String foreignPropertyName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "You specified a foreign table column in spite of derive-sub-query!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified a local table column at condition-bean for derive-sub-query." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified Foreign Property]" + getLineSeparator() + + foreignPropertyName + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidForeignSpecificationException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + protected static interface SpQyCall { + public boolean has(); + + public CQ qy(); + } + + public static class SpecifyColumnNotSetupSelectColumnException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifyColumnNotSetupSelectColumnException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerInvalidForeignSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidForeignSpecificationException(String msg) { + super(msg); + } + } + + public static class RAFunction { + protected ConditionBean _baseCB; + + protected LOCAL_CQ _localCQ; + + protected RAQSetupper _querySetupper; + + public RAFunction(ConditionBean baseCB, LOCAL_CQ localCQ, + RAQSetupper querySetupper) { + _baseCB = baseCB; + _localCQ = localCQ; + _querySetupper = querySetupper; + } + + public void max(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("max", subQuery, _localCQ, aliasName.trim()); + } + + public void min(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("min", subQuery, _localCQ, aliasName.trim()); + } + + public void sum(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("sum", subQuery, _localCQ, aliasName.trim()); + } + + public void avg(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("avg", subQuery, _localCQ, aliasName.trim()); + } + + public void count(SubQuery subQuery, String aliasName) { + assertAliasName(aliasName); + _querySetupper.setup("count", subQuery, _localCQ, aliasName.trim()); + } + + protected void assertAliasName(String aliasName) { + if (aliasName == null || aliasName.trim().length() == 0) { + throwDeriveReferrerInvalidAliasNameException(); + } + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_baseCB + .getTableDbName()); + Method[] methods = dbmeta.getEntityType().getMethods(); + String targetMethodName = "set" + + replaceString(aliasName, "_", "").toLowerCase(); + boolean existsSetterMethod = false; + for (Method method : methods) { + if (!method.getName().startsWith("set")) { + continue; + } + if (targetMethodName.equals(method.getName().toLowerCase())) { + existsSetterMethod = true; + break; + } + } + if (!existsSetterMethod) { + throwDeriveReferrerEntityPropertyNotFoundException(aliasName, + dbmeta.getEntityType()); + } + } + + protected void throwDeriveReferrerInvalidAliasNameException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The alias name for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should set valid alias name. {NotNull, NotEmpty}" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, null); // *No! {null, \"\", \" \"} are NG!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\"); // *Point!" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Local Table]" + getLineSeparator() + + _localCQ.getTableDbName() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidAliasNameException(msg); + } + + protected void throwDeriveReferrerEntityPropertyNotFoundException( + String aliasName, Class entityType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "A property for derive-referrer was Not Found in the entity!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should implement a property(setter and getter) in the entity." + + getLineSeparator(); + msg = msg + + "Or you should confirm whether the alias name has typo or not." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [ConditionBean Invoking]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Extended Entity]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " // At the entity of Purchase..." + + getLineSeparator(); + msg = msg + " protected Date _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " public Date getLatestPurchaseDatetime() {" + + getLineSeparator(); + msg = msg + " return _latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " public void setLatestPurchaseDatetime(Date latestPurchaseDatetime) {" + + getLineSeparator(); + msg = msg + + " _latestPurchaseDatetime = latestPurchaseDatetime;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entityType + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerEntityPropertyNotFoundException(msg); + } + + protected String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + public static interface RAQSetupper { + public void setup(String function, SubQuery subQuery, + LOCAL_CQ cq, String aliasName); + } + + public static class DeriveReferrerInvalidAliasNameException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidAliasNameException(String msg) { + super(msg); + } + } + + public static class DeriveReferrerEntityPropertyNotFoundException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerEntityPropertyNotFoundException(String msg) { + super(msg); + } + } + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected void doSetupSelect(SsCall callback) { + String foreignPropertyName = callback.qf().getForeignPropertyName(); + assertSetupSelectBeforeUnion(foreignPropertyName); + limitSelect_Off(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + String localRelationPath = localCQ().getRelationPath(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, localRelationPath); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + protected static interface SsCall { + public ConditionQuery qf(); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + protected void assertPrimaryKeyMap( + Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] must not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] must not be empty."; + throw new IllegalArgumentException(msg); + } + List columnInfoList = DBMetaInstanceHandler.findDBMeta( + getTableDbName()).getPrimaryUniqueInfo().getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnDbName = columnInfo.getColumnDbName(); + if (!primaryKeyMap.containsKey(columnDbName)) { + String msg = "The primaryKeyMap must have the value of " + + columnDbName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + } + + protected void assertSetupSelectBeforeUnion(String foreignPropertyName) { + if (hasUnionQueryOrUnionAllQuery()) { + throwSetupSelectAfterUnionException( + this.getClass().getSimpleName(), foreignPropertyName); + } + } + + protected void throwSetupSelectAfterUnionException(String className, + String foreignPropertyName) { + String methodName = "setupSelect_" + initCap(foreignPropertyName) + + "()"; + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "You should NOT call " + methodName + + " after calling union()!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + methodName + " should be called before calling union()." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " " + className + " cb = new " + className + "();" + + getLineSeparator(); + msg = msg + " cb." + methodName + "; // You shuold call here!" + + getLineSeparator(); + msg = msg + " cb.query().setXxx...;" + getLineSeparator(); + msg = msg + " cb.union(new UnionQuery<" + className + ">() {" + + getLineSeparator(); + msg = msg + " public void query(" + className + " unionCB) {" + + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...;" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " });" + getLineSeparator(); + msg = msg + + " // You should not call setupSelect after calling union()!" + + getLineSeparator(); + msg = msg + " // cb." + methodName + ";" + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SetupSelect Method]" + getLineSeparator() + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean SQL]" + getLineSeparator() + toDisplaySql() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql() { + return ConditionBeanContext.convertConditionBean2DisplaySql(this); + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Purpose Type + // ============ + public void xsetupForDeriveReferrer() { + _forDeriveReferrer = true; + } + + public void xsetupForUnion() { + _forUnion = true; + } + + public void xsetupForExistsSubQuery() { + _forExistsSubQuery = true; + } + + public void xsetupForInScopeSubQuery() { + _forInScopeSubQuery = true; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * The override. + * + * @return SQL for display. (NotNull) + */ + public String toString() { + try { + return toDisplaySql(); + } catch (RuntimeException e) { + return getSqlClause().getClause(); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionQuery.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionQuery.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionQuery.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1666 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; +import jp.sf.pal.scheduler.db.allcommon.util.TraceViewUtil; + +/** + * The abstract class of condition-query. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class AbstractConditionQuery implements ConditionQuery { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final ConditionKey CK_EQ = ConditionKey.CK_EQUAL; + + protected static final ConditionKey CK_NE = ConditionKey.CK_NOT_EQUAL; + + protected static final ConditionKey CK_GE = ConditionKey.CK_GREATER_EQUAL; + + protected static final ConditionKey CK_GT = ConditionKey.CK_GREATER_THAN; + + protected static final ConditionKey CK_LE = ConditionKey.CK_LESS_EQUAL; + + protected static final ConditionKey CK_LT = ConditionKey.CK_LESS_THAN; + + protected static final ConditionKey CK_PS = ConditionKey.CK_PREFIX_SEARCH; + + protected static final ConditionKey CK_LS = ConditionKey.CK_LIKE_SEARCH; + + protected static final ConditionKey CK_INS = ConditionKey.CK_IN_SCOPE; + + protected static final ConditionKey CK_NINS = ConditionKey.CK_NOT_IN_SCOPE; + + protected static final ConditionKey CK_ISN = ConditionKey.CK_IS_NULL; + + protected static final ConditionKey CK_ISNN = ConditionKey.CK_IS_NOT_NULL; + + /** Condition value for DUMMY. */ + protected static final ConditionValue DUMMY_CONDITION_VALUE = new ConditionValue(); + + /** Object for DUMMY. */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** The property of condition-query. */ + protected static final String CQ_PROPERTY = "conditionQuery"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause. */ + protected final SqlClause _sqlClause; + + /** My alias name. */ + protected final String _aliasName; + + /** The level of nest. */ + protected final int _nestLevel; + + /** The level of subQuery. */ + protected int _subQueryLevel; + + // ----------------------------------------------------- + // Foreign Info + // ------------ + /** The property name of foreign. */ + protected String _foreignPropertyName; + + /** The path of relation. */ + protected String _relationPath; + + /** The query of child. */ + protected final ConditionQuery _childQuery; + + // ----------------------------------------------------- + // Inline + // ------ + /** Is it the inline for on-clause. (Property for Inline Only) */ + protected boolean _onClauseInline; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query. (Nullable: If null, this is base + * instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public AbstractConditionQuery(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + _childQuery = childQuery; + _sqlClause = sqlClause; + _aliasName = aliasName; + _nestLevel = nestLevel; + } + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery() { + return _childQuery; + } + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause() { + return _sqlClause; + } + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName() { + return _aliasName; + } + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel() { + return _nestLevel; + } + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel() { + return _nestLevel + 1; + } + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query) { + return (query.getChildQuery() == null); + } + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel() { + return _subQueryLevel; + } + + // ----------------------------------------------------- + // Real Name + // --------- + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. + */ + public String getRealAliasName() { + return getAliasName(); + } + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. This should not contain + * comma. (NotNull) + * @return Real column name. + */ + public String getRealColumnName(String columnName) { + assertColumnName(columnName); + return buildRealColumnName(getRealAliasName(), columnName); + } + + /** + * Build real column name. + * + * @param aliasName Alias name. (NotNull) + * @param columnName Column name. (NotNull) + * @return Real column name. (NotNull) + */ + protected String buildRealColumnName(String aliasName, String columnName) { + return aliasName + "." + columnName; + } + + // ----------------------------------------------------- + // Foreign Info + // ------------ + public String getForeignPropertyName() { + return _foreignPropertyName; + } + + public void xsetForeignPropertyName(String foreignPropertyName) { + this._foreignPropertyName = foreignPropertyName; + } + + public String getRelationPath() { + return _relationPath; + } + + public void xsetRelationPath(String relationPath) { + this._relationPath = relationPath; + } + + // ----------------------------------------------------- + // Inline + // ------ + public void xsetOnClauseInline(boolean onClauseInline) { + _onClauseInline = onClauseInline; + } + + //========================================================================== + // ========= + // Location + // ======== + /** + * Get location. + * + * @param columnPropertyName Column property name. + * @param key Condition key. + * @return Next nest level. + */ + protected String getLocation(String columnPropertyName, ConditionKey key) { + return getLocationBase(columnPropertyName) + "." + + key.getConditionKey(); + } + + protected String getLocationBase() { + final StringBuffer sb = new StringBuffer(); + ConditionQuery query = this; + while (true) { + if (query.isBaseQuery(query)) { + sb.insert(0, CQ_PROPERTY + "."); + break; + } else { + final String foreignPropertyName = query + .getForeignPropertyName(); + if (foreignPropertyName == null) { + String msg = "The foreignPropertyName of the query should not be null:"; + msg = msg + " query=" + query; + throw new IllegalStateException(msg); + } + sb.insert(0, CQ_PROPERTY + initCap(foreignPropertyName) + "."); + } + query = query.getChildQuery(); + } + return sb.toString(); + } + + protected String getLocationBase(String columnPropertyName) { + return getLocationBase() + columnPropertyName; + } + + //========================================================================== + // ========= + // Union Query + // =========== + /** The map of union query. */ + protected Map _unionQueryMap; + + /** + * Get the map of union query. + * + * @return The map of union query. (NotNull) + */ + public Map getUnionQueryMap() {// for Internal + if (_unionQueryMap == null) { + _unionQueryMap = new LinkedHashMap(); + } + return _unionQueryMap; + } + + /** + * Set union query. {Internal} + * + * @param unionQuery Union query. (NotNull) + */ + public void xsetUnionQuery(ConditionQuery unionQuery) { + xsetupUnion(unionQuery, false, getUnionQueryMap()); + } + + /** The map of union all query. */ + protected Map _unionAllQueryMap; + + /** + * Get the map of union all query. + * + * @return The map of union all query. (NotNull) + */ + public Map getUnionAllQueryMap() {// for Internal + if (_unionAllQueryMap == null) { + _unionAllQueryMap = new LinkedHashMap(); + } + return _unionAllQueryMap; + } + + /** + * Set union all query. {Internal} + * + * @param unionAllQuery Union all query. (NotNull) + */ + public void xsetUnionAllQuery(ConditionQuery unionAllQuery) { + xsetupUnion(unionAllQuery, true, getUnionAllQueryMap()); + } + + protected void xsetupUnion(ConditionQuery unionQuery, boolean unionAll, + Map unionQueryMap) { + if (unionQuery == null) { + String msg = "The argument[unionQuery] should not be null."; + throw new IllegalArgumentException(msg); + } + reflectRelationOnUnionQuery(this, unionQuery);// Reflect Relation! + getSqlClause().copyIncludedSelectColumn(unionQuery.getSqlClause());// Reflect + // IncludedSelectColumn + // ! + if (getSqlClause().isFormatClauseEffective()) { + unionQuery.getSqlClause().makeFormatClauseEffective();// Reflect + // FormatClause + // ! + } + String key = (unionAll ? "unionAllQuery" : "unionQuery") + + unionQueryMap.size(); + unionQueryMap.put(key, unionQuery); + registerUnionQuery(unionQuery, unionAll, (unionAll ? "unionAllQueryMap" + : "unionQueryMap") + + "." + key); + } + + /** + * Reflect relation on union query. + * + * @param baseQueryAsSuper Base query as super. (NotNull) + * @param unionQueryAsSuper Union query as super. (NotNull) + */ + abstract protected void reflectRelationOnUnionQuery( + ConditionQuery baseQueryAsSuper, ConditionQuery unionQueryAsSuper); + + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery() { + return (_unionQueryMap != null && !_unionQueryMap.isEmpty()) + || (_unionAllQueryMap != null && !_unionAllQueryMap.isEmpty()); + } + + /** + * Get the list of union query. + * + * @return The list of union query. (NotNull) + */ + public List getUnionQueryList() { + if (_unionQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionQueryMap.values()); + } + + /** + * Get the list of union all query. + * + * @return The list of union all query. (NotNull) + */ + public List getUnionAllQueryList() { + if (_unionAllQueryMap == null) { + return new ArrayList(); + } + return new ArrayList(_unionAllQueryMap.values()); + } + + //========================================================================== + // ========= + // Register + // ======== + // ----------------------------------------------------- + // Include-As-Mine + // --------------- + /** + * Register included-select-column. + * + * @param aliasName Alias name. This should not contain comma. (NotNull) + * @param realColumnName Real column name. This should not contain comma. + * (NotNull) + * @deprecated Unsupported! + */ + protected void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + throw new UnsupportedOperationException(); + } + + // ----------------------------------------------------- + // Query + // ----- + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName); + } + } + + protected void registerQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + + // ----------------------------------------------------- + // FromTo Query + // ------------ + protected void registerFromToQuery(java.util.Date fromDate, + java.util.Date toDate, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, FromToOption option) { + { + final java.util.Date filteredFromDate = option + .filterFromDate(fromDate); + final ConditionKey fromKey = option.getFromDateConditionKey(); + if (fromKey.isValidRegistration(cvalue, filteredFromDate, fromKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(fromKey, + filteredFromDate, cvalue, colName, capPropName, + uncapPropName); + } + } + { + final java.util.Date filteredToDate = option.filterToDate(toDate); + final ConditionKey toKey = option.getToDateConditionKey(); + if (toKey.isValidRegistration(cvalue, filteredToDate, toKey + .getConditionKey() + + " of " + getRealAliasName() + "." + uncapPropName)) { + setupConditionValueAndRegisterWhereClause(toKey, + filteredToDate, cvalue, colName, capPropName, + uncapPropName); + } + } + } + + // ----------------------------------------------------- + // LikeSearch Query + // ---------------- + @SuppressWarnings("deprecation") + protected void registerLikeSearchQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, LikeSearchOption option) { + final String validationMsg = key.getConditionKey() + " of " + + getRealAliasName() + "." + colName; + if (!key.isValidRegistration(cvalue, value, validationMsg)) { + return; + } + if (option == null) { + throwLikeSearchOptionNotFoundException(capPropName, value); + return;// Unreachable! + } + if (value == null || !option.isSplit()) { + // As Normal Condition. + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + return; + } + // - - - - - - - - - + // Use splitByXxx(). + // - - - - - - - - - + final String[] strArray = option.generateSplitValueArray(value); + if (!option.isAsOrSplit()) { + // As 'and' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + setupConditionValueAndRegisterWhereClause(key, currentValue, + cvalue, colName, capPropName, uncapPropName, option); + + // Callback for LikeAsOr! + final List callbackList = option + .getLikeAsOrCallbackList(); + if (!callbackList.isEmpty()) { + getSqlClause().makeAdditionalConditionAsOrEffective(); + for (Iterator ite = callbackList + .iterator(); ite.hasNext();) { + final LikeSearchOption.LikeAsOrCallback likeAsOrCallback = (LikeSearchOption.LikeAsOrCallback) ite + .next(); + final String additionalTargetPropertyName = likeAsOrCallback + .getAdditionalTargetPropertyName(); + final String filteredValue = likeAsOrCallback + .filterValue(currentValue); + final LikeSearchOption optionDeepCopy = (LikeSearchOption) option + .createDeepCopy(); + optionDeepCopy.clearLikeAsOrCallback(); + final LikeSearchOption filteredOption = likeAsOrCallback + .filterOption(optionDeepCopy); + invokeSetterLikeSearch(additionalTargetPropertyName, + filteredValue, filteredOption); + } + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + } else { + // As 'or' Condition + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + if (i == 0) { + setupConditionValueAndRegisterWhereClause(key, + currentValue, cvalue, colName, capPropName, + uncapPropName, option); + } else { + getSqlClause().makeAdditionalConditionAsOrEffective(); + invokeSetterLikeSearch(uncapPropName, currentValue, option); + } + } + + // @jflute -- Callback for LikeAsOr! + // final List callbackList = + // option.getLikeAsOrCallbackList(); + // ... + + getSqlClause().ignoreAdditionalConditionAsOr(); + } + } + + protected void throwLikeSearchOptionNotFoundException(String capPropName, + String value) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = getClass().getSimpleName(); + final String methodName = "set" + capPropName + "_LikeSearch('" + value + + "', likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new RequiredOptionNotFoundException(msg); + } + + protected void invokeSetterLikeSearch(String columnFlexibleName, + Object value, LikeSearchOption option) { + if (value == null) { + return; + } + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "set" + columnCapPropName + "_LikeSearch"; + Method method = null; + try { + method = this.getClass().getMethod(methodName, + new Class[] { value.getClass(), LikeSearchOption.class }); + } catch (NoSuchMethodException e) { + String msg = "The columnFlexibleName is not existing in this table: columnFlexibleName=" + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + method.invoke(this, new Object[] { value, option }); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + // ----------------------------------------------------- + // InScope Query + // ------------- + protected void registerInScopeQuery(ConditionKey key, String value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, InScopeOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + if (value != null && option.isSplit()) { + final String[] strArray = option.generateSplitValueArray(value); + final List realValueList = new ArrayList(); + for (int i = 0; i < strArray.length; i++) { + final String currentValue = strArray[i]; + realValueList.add(currentValue); + } + setupConditionValueAndRegisterWhereClause(key, realValueList, + cvalue, colName, capPropName, uncapPropName, option); + } else { + setupConditionValueAndRegisterWhereClause(key, value, cvalue, + colName, capPropName, uncapPropName, option); + } + } + } + + // ----------------------------------------------------- + // Inline Query + // ------------ + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key));// If Java, it is necessary to use uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, + _onClauseInline); + } + } + } + + protected void registerInlineQuery(ConditionKey key, Object value, + ConditionValue cvalue, String colName, String capPropName, + String uncapPropName, ConditionOption option) { + if (key.isValidRegistration(cvalue, value, key.getConditionKey() + + " of " + getRealAliasName() + "." + colName)) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, + key), option);// If Java, it is necessary to use + // uncapPropName! + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(colName, key, + cvalue, option); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), colName, key, cvalue, option, + _onClauseInline); + } + } + } + + // ----------------------------------------------------- + // InScopeSubQuery + // --------------- + // {Modified at DBFlute-0.7.5} + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerInScopeSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerInScopeSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String inScopeOption) { + assertObjectNotNull("InScopeSubQyery(" + columnName + ")", subQuery); + inScopeOption = inScopeOption != null ? inScopeOption + " " : ""; + String realColumnName = getInScopeSubQueryRealColumnName(columnName); + String subQueryClause = getInScopeSubQuerySql(subQuery, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = realColumnName + " " + inScopeOption + "in (" + beginMark + + subQueryClause + ln + endIndent + ")" + endMark; + } else { + clause = realColumnName + " " + inScopeOption + "in (" + + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + protected String getInScopeSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getInScopeSubQuerySql(ConditionQuery subQuery, + String relatedColumnName, String propertyName) { + String selectClause = "select " + + getSqlClause().getLocalTableAliasName() + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + return selectClause + " " + fromWhereClause; + } + + // ----------------------------------------------------- + // ExistsSubQuery + // -------------- + // {Modified at DBFlute-0.7.5} + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, null); + } + + protected void registerNotExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + registerExistsSubQuery(subQuery, columnName, relatedColumnName, + propertyName, "not"); + } + + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName, + String existsOption) { + assertObjectNotNull("ExistsSubQyery(" + columnName + ")", subQuery); + existsOption = existsOption != null ? existsOption + " " : ""; + String realColumnName = getExistsSubQueryRealColumnName(columnName); + String subQueryClause = getExistsSubQuerySql(subQuery, realColumnName, + relatedColumnName, propertyName); + String clause = null; + if (getSqlClause().isFormatClauseEffective()) { + String ln = getLineSeparator(); + int subQueryLevel = subQuery.getSubQueryLevel(); + String subQueryIdentity = propertyName + "[" + subQueryLevel + "]"; + String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + String endIndent = " "; + clause = existsOption + "exists (" + beginMark + subQueryClause + + ln + endIndent + ")" + endMark; + } else { + clause = existsOption + "exists (" + subQueryClause + ")"; + } + registerWhereClause(clause); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // *Unsupport ExistsSubQuery as inline because it's so dangerous. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + protected String getExistsSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getExistsSubQuerySql(ConditionQuery subQuery, + String realColumnName, String relatedColumnName, String propertyName) { + int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + String tableAliasName = "dfsublocal_" + subQueryLevel; + String selectClause = "select " + tableAliasName + "." + + relatedColumnName; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + String joinCondition = tableAliasName + "." + relatedColumnName + " = " + + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + // [DBFlute-0.7.4] + // ----------------------------------------------------- + // DeriveSubQuery + // -------------- + protected void registerDeriveSubQuery(String function, + ConditionQuery subQuery, String columnName, + String relatedColumnName, String propertyName, String aliasName) { + assertObjectNotNull("DeriveSubQuery(" + columnName + ")", subQuery); + final String realColumnName = getDeriveSubQueryRealColumnName(columnName); + final String subQueryClause = getDeriveSubQuerySql(function, subQuery, + realColumnName, relatedColumnName, propertyName, aliasName); + final String clause; + if (getSqlClause().isFormatClauseEffective()) { + final String ln = getLineSeparator(); + final int subQueryLevel = subQuery.getSubQueryLevel(); + final String subQueryIdentity = propertyName + "[" + subQueryLevel + + "]"; + final String beginMark = getSqlClause().resolveSubQueryBeginMark( + subQueryIdentity) + + ln; + final String endMark = getSqlClause().resolveSubQueryEndMark( + subQueryIdentity); + final String endIndent = " "; + clause = "(" + beginMark + subQueryClause + ln + endIndent + + ") as " + aliasName + endMark; + } else { + clause = "(" + subQueryClause + ") as " + aliasName; + } + getSqlClause().specifyDeriveSubQuery(aliasName, clause); + } + + protected String getDeriveSubQueryRealColumnName(String columnName) { + return getRealColumnName(columnName); + } + + protected String getDeriveSubQuerySql(String function, + ConditionQuery subQuery, String realColumnName, + String relatedColumnName, String propertyName, String aliasName) { + final int subQueryLevel = subQuery.getSubQueryLevel(); + if (_subQueryLevel <= subQueryLevel) { + _subQueryLevel = subQueryLevel + 1; + } + final String tableAliasName = "dfsublocal_" + subQueryLevel; + final String deriveColumnName = subQuery.getSqlClause() + .getSpecifiedColumnNameAsOne(); + if (deriveColumnName == null || deriveColumnName.trim().length() == 0) { + throwDeriveReferrerInvalidColumnSpecificationException(function, + aliasName); + } + assertDeriveReferrerColumnType(function, subQuery, deriveColumnName); + subQuery.getSqlClause().clearSpecifiedSelectColumn(); + final String selectClause = "select " + function + "(" + tableAliasName + + "." + deriveColumnName + ")"; + String fromWhereClause = subQuery.getSqlClause() + .getClauseFromWhereWithWhereUnionTemplate(); + fromWhereClause = replaceString(fromWhereClause, "dflocal", + tableAliasName);// Very Important! + fromWhereClause = replaceString(fromWhereClause, ".conditionQuery.", + "." + getLocationBase(propertyName) + ".");// Very Important! + + final String joinCondition = tableAliasName + "." + relatedColumnName + + " = " + realColumnName; + String firstConditionAfter = " and "; + if (getSqlClause().isFormatClauseEffective()) { + firstConditionAfter = getLineSeparator() + " and "; + } + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereClauseMark(), "where " + joinCondition); + fromWhereClause = replaceString(fromWhereClause, getSqlClause() + .getUnionWhereFirstConditionMark(), joinCondition + + firstConditionAfter); + + return selectClause + " " + fromWhereClause; + } + + protected void throwDeriveReferrerInvalidColumnSpecificationException( + String function, String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The specified the column for derive-referrer was Invalid!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + " You should call specify().column[TargetColumn]() only once." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " // *No! It's empty!" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + " subCB.specify().columnPurchaseDatetime();" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseCount(); // *No! It's duplicated!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + " cb.specify().derivePurchaseList()." + function + + "(new SubQuery() {" + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime(); // *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerInvalidColumnSpecificationException(msg); + } + + public static class DeriveReferrerInvalidColumnSpecificationException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerInvalidColumnSpecificationException(String msg) { + super(msg); + } + } + + protected void assertDeriveReferrerColumnType(String function, + ConditionQuery subQuery, String deriveColumnName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(subQuery + .getTableDbName()); + final Class deriveColumnType = dbmeta.findColumnInfo( + deriveColumnName).getPropertyType(); + if ("sum".equalsIgnoreCase(function) + || "avg".equalsIgnoreCase(function)) { + if (!Number.class.isAssignableFrom(deriveColumnType)) { + throwDeriveReferrerUnmatchedColumnTypeException(function, + deriveColumnName, deriveColumnType); + } + } + } + + protected void throwDeriveReferrerUnmatchedColumnTypeException( + String function, String deriveColumnName, Class deriveColumnType) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The type of the specified the column unmatched with the function!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "You should confirm the list as follow:" + + getLineSeparator(); + msg = msg + " max() : String, Number, Date" + getLineSeparator(); + msg = msg + " min() : String, Number, Date" + getLineSeparator(); + msg = msg + " sum() : Number" + getLineSeparator(); + msg = msg + " avg() : Number" + getLineSeparator(); + msg = msg + " count() : String, Number, Date" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Function]" + getLineSeparator() + function + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Derive Column]" + getLineSeparator() + deriveColumnName + + "(" + deriveColumnType.getName() + ")" + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new DeriveReferrerUnmatchedColumnTypeException(msg); + } + + public static class DeriveReferrerUnmatchedColumnTypeException extends + RuntimeException { + private static final long serialVersionUID = 1L; + + public DeriveReferrerUnmatchedColumnTypeException(String msg) { + super(msg); + } + } + + // ----------------------------------------------------- + // Where Clause + // ------------ + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key));// If + // Java + // , + // it + // is + // necessary + // to + // use + // uncapPropName + // ! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue); + } + + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + key.setupConditionValue(cvalue, value, getLocation(uncapPropName, key), + option);// If Java, it is necessary to use uncapPropName! + getSqlClause().registerWhereClause(getRealColumnName(colName), key, + cvalue, option); + } + + protected void registerWhereClause(String whereClause) { + getSqlClause().registerWhereClause(whereClause); + } + + protected void registerInlineWhereClause(String whereClause) { + if (isBaseQuery(this)) { + getSqlClause().registerBaseTableInlineWhereClause(whereClause); + } else { + getSqlClause().registerOuterJoinInlineWhereClause( + getRealAliasName(), whereClause, _onClauseInline); + } + } + + // ----------------------------------------------------- + // Union Query + // ----------- + public void registerUnionQuery(ConditionQuery unionQuery, boolean unionAll, + String unionQueryPropertyName) { + final String unionQueryClause = getUnionQuerySql(unionQuery, + unionQueryPropertyName); + + // At the future, building SQL will be moved to sqlClause. + getSqlClause().registerUnionQuery(unionQueryClause, unionAll); + } + + protected String getUnionQuerySql(ConditionQuery unionQuery, + String unionQueryPropertyName) { + final String fromClause = unionQuery.getSqlClause().getFromClause(); + final String whereClause = unionQuery.getSqlClause().getWhereClause(); + final String unionQueryClause; + if (whereClause.trim().length() <= 0) { + unionQueryClause = fromClause + " " + + getSqlClause().getUnionWhereClauseMark(); + } else { + final int whereIndex = whereClause.indexOf("where "); + if (whereIndex < 0) { + String msg = "The whereClause should have 'where' string: " + + whereClause; + throw new IllegalStateException(msg); + } + final int clauseIndex = whereIndex + "where ".length(); + final String mark = getSqlClause() + .getUnionWhereFirstConditionMark(); + unionQueryClause = fromClause + " " + + whereClause.substring(0, clauseIndex) + mark + + whereClause.substring(clauseIndex); + } + final String oldStr = ".conditionQuery."; + final String newStr = ".conditionQuery." + unionQueryPropertyName + "."; + return replaceString(unionQueryClause, oldStr, newStr);// Very + // Important! + } + + // ----------------------------------------------------- + // OrderBy + // ------- + public void withNullsFirst() {// is User Public! + getSqlClause().addNullsFirstToPreviousOrderBy(); + } + + public void withNullsLast() {// is User Public! + getSqlClause().addNullsLastToPreviousOrderBy(); + } + + protected void registerSpecifiedDerivedOrderBy_Asc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, true); + } + + protected void registerSpecifiedDerivedOrderBy_Desc(String aliasName) { + if (!getSqlClause().hasSpecifiedDeriveSubQuery(aliasName)) { + throwSpecifiedDerivedOrderByAliasNameNotFoundException(aliasName); + } + getSqlClause().registerOrderBy(aliasName, null, false); + } + + protected void throwSpecifiedDerivedOrderByAliasNameNotFoundException( + String aliasName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The aliasName was Not Found in specified alias names." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "You should specified an alias name that is the same as one in specify-derived-referrer." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Wrong]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().specifyProduct().columnProductName(); // *No!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"WRONG_NAME_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [Good!]" + getLineSeparator(); + msg = msg + " /- - - - - - - - - - - - - - - - - - - - " + + getLineSeparator(); + msg = msg + " MemberCB cb = new MemberCB();" + getLineSeparator(); + msg = msg + + " cb.specify().derivePurchaseList().max(new SubQuery() {" + + getLineSeparator(); + msg = msg + " public void query(PurchaseCB subCB) {" + + getLineSeparator(); + msg = msg + + " subCB.specify().columnPurchaseDatetime();// *Point!" + + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + " }, \"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + + " cb.query().addSpecifiedDerivedOrderBy_Desc(\"LATEST_PURCHASE_DATETIME\");" + + getLineSeparator(); + msg = msg + " - - - - - - - - - -/" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Not Found Alias Name]" + getLineSeparator() + aliasName + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new SpecifiedDerivedOrderByAliasNameNotFoundException(msg); + } + + public static class SpecifiedDerivedOrderByAliasNameNotFoundException + extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SpecifiedDerivedOrderByAliasNameNotFoundException(String msg) { + super(msg); + } + } + + protected void registerOrderBy(String columnName, boolean ascOrDesc) { + getSqlClause().registerOrderBy(getRealColumnName(columnName), null, + ascOrDesc); + } + + protected void regOBA(String columnName) { + registerOrderBy(columnName, true); + } + + protected void regOBD(String columnName) { + registerOrderBy(columnName, false); + } + + //========================================================================== + // ========= + // Name Resolver + // ============= + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param nestLevel Nest level. + * @return Resolved join alias name. (NotNull) + */ + protected String resolveJoinAliasName(String relationPath, int nestLevel) { + return getSqlClause().resolveJoinAliasName(relationPath, nestLevel); + } + + protected String resolveNestLevelExpression(String name) { + return getSqlClause().resolveNestLevelExpression(name, getNestLevel()); + } + + protected String resolveNextRelationPath(String tableName, + String relationPropertyName) { + final int relationNo = getSqlClause().resolveRelationNo(tableName, + relationPropertyName); + String nextRelationPath = "_" + relationNo; + if (_relationPath != null) { + nextRelationPath = _relationPath + nextRelationPath; + } + return nextRelationPath; + } + + //========================================================================== + // ========= + // Fixed Condition + // =============== + protected String prepareFixedCondition(String fixedCondition, + String localAliasName, String foreignAliasName) { + fixedCondition = replaceString(fixedCondition, "$$alias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$foreignAlias$$", + foreignAliasName); + fixedCondition = replaceString(fixedCondition, "$$localAlias$$", + localAliasName); + return fixedCondition; + } + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(columnFlexibleName)); + final String methodName = "get" + columnCapPropName; + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, columnFlexibleName); + return (ConditionValue) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + assertStringNotNullAndNotTrimmedEmpty("conditionKeyName", + conditionKeyName); + if (value == null) { + return; + } + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "set" + columnCapPropName + "_" + + initCap(conditionKeyName); + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] { value.getClass() }, propertyName); + helpInvokingCQMethod(cq, method, new Object[] { value }); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of a column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + final PropertyNameCQContainer container = helpExtractingPropertyNameCQContainer(columnFlexibleName); + final String propertyName = container.getPropertyName(); + final ConditionQuery cq = container.getConditionQuery(); + final String ascDesc = isAsc ? "Asc" : "Desc"; + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(cq + .getTableDbName()); + final String columnCapPropName = initCap(dbmeta + .findPropertyName(propertyName)); + final String methodName = "addOrderBy_" + columnCapPropName + "_" + + ascDesc; + final Method method = helpGettingCQMethod(cq, methodName, + new Class[] {}, propertyName); + helpInvokingCQMethod(cq, method, new Object[] {}); + } + + /** + * The implementation. + * + * @param foreignPropertyName The property name of foreign. (NotNull and + * NotEmpty) + * @return The conditionQuery of foreign as interface. (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = "query" + initCap(foreignPropertyName); + final Method method = helpGettingCQMethod(this, methodName, + new Class[] {}, foreignPropertyName); + return (ConditionQuery) helpInvokingCQMethod(this, method, + new Object[] {}); + } + + private PropertyNameCQContainer helpExtractingPropertyNameCQContainer( + String name) { + final String[] strings = name.split("\\."); + final int length = strings.length; + String propertyName = null; + ConditionQuery cq = this; + int index = 0; + for (String element : strings) { + if (length == (index + 1)) {// at last loop! + propertyName = element; + break; + } + cq = cq.invokeForeignCQ(element); + ++index; + } + return new PropertyNameCQContainer(propertyName, cq); + } + + private static class PropertyNameCQContainer { + protected String _propertyName; + + protected ConditionQuery _cq; + + public PropertyNameCQContainer(String propertyName, ConditionQuery cq) { + this._propertyName = propertyName; + this._cq = cq; + } + + public String getPropertyName() { + return _propertyName; + } + + public ConditionQuery getConditionQuery() { + return _cq; + } + } + + private Method helpGettingCQMethod(ConditionQuery cq, String methodName, + Class[] argTypes, String property) { + try { + return cq.getClass().getMethod(methodName, argTypes); + } catch (NoSuchMethodException e) { + String msg = "The method is not existing:"; + msg = msg + " methodName=" + methodName; + msg = msg + " argTypes=" + convertObjectArrayToStringView(argTypes); + msg = msg + " tableName=" + cq.getTableDbName(); + msg = msg + " property=" + property; + throw new IllegalStateException(msg, e); + } + } + + private Object helpInvokingCQMethod(ConditionQuery cq, Method method, + Object[] args) { + try { + return method.invoke(cq, args); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e.getCause()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String fRES(String value) { + return filterRemoveEmptyString(value); + } + + /** + * @param value Query-value-string. (Nullable) + * @return Filtered value. (Nullable) + */ + private String filterRemoveEmptyString(String value) { + return ((value != null && !"".equals(value)) ? value : null); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + protected List cTL( + Collection col) { + return convertToList(col); + } + + /** + * @param col Target collection. (Nullable) + * @param The type of property. + * @return List. (Nullable: If the argument is null, returns null.) + */ + private List convertToList( + Collection col) { + if (col == null) { + return null; + } + if (col instanceof List) { + return filterRemoveNullOrEmptyValueFromList((List) col); + } + return filterRemoveNullOrEmptyValueFromList(new ArrayList( + col)); + } + + private List filterRemoveNullOrEmptyValueFromList( + List ls) { + if (ls == null) { + return null; + } + List newList = new ArrayList(); + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final PROPERTY_TYPE element = ite.next(); + if (element == null) { + continue; + } + if (element instanceof String) { + if (((String) element).length() == 0) { + continue; + } + } + newList.add(element); + } + return newList; + } + + public void doNss(NssCall callback) {// Very Internal + String foreignPropertyName = callback.qf().getForeignPropertyName(); + String foreignTableAliasName = callback.qf().getRealAliasName(); + getSqlClause().registerSelectedSelectColumn(foreignTableAliasName, + getTableDbName(), foreignPropertyName, getRelationPath()); + getSqlClause().registerSelectedForeignInfo( + callback.qf().getRelationPath(), foreignPropertyName); + } + + public static interface NssCall {// Very Internal + public ConditionQuery qf(); + } + + protected void registerOuterJoin(ConditionQuery cq, + Map joinOnMap) { + getSqlClause().registerOuterJoin(cq.getTableSqlName(), + cq.getRealAliasName(), joinOnMap); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected String convertObjectArrayToStringView(Object[] objArray) { + return TraceViewUtil.convertObjectArrayToStringView(objArray); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the column-name is not null and is not empty and does not + * contain comma. + * + * @param columnName Column-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertColumnName(String columnName) { + if (columnName == null) { + String msg = "The columnName should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnName.trim().length() == 0) { + String msg = "The columnName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (columnName.indexOf(",") >= 0) { + String msg = "The columnName should not contain comma ',': " + + columnName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the alias-name is not null and is not empty and does not + * contain comma. + * + * @param aliasName Alias-name. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertAliasName(String aliasName) { + if (aliasName == null) { + String msg = "The aliasName should not be null."; + throw new IllegalArgumentException(msg); + } + if (aliasName.trim().length() == 0) { + String msg = "The aliasName should not be empty-string."; + throw new IllegalArgumentException(msg); + } + if (aliasName.indexOf(",") >= 0) { + String msg = "The aliasName should not contain comma ',': " + + aliasName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return getClass().getSimpleName() + ":{aliasName=" + _aliasName + + ", nestLevel=" + _nestLevel + ", subQueryLevel=" + + _subQueryLevel + ", foreignPropertyName=" + + _foreignPropertyName + ", relationPath=" + _relationPath + + ", onClauseInline=" + _onClauseInline + "}"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/AbstractConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,226 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; + +/** + * The interface of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionBean extends PagingBean { + + //========================================================================== + // =========== + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Name + // ========== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get SQL-clause instance. + * + * @return SQL-clause. (NotNull) + */ + public SqlClause getSqlClause(); + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + /** + * Accept primary-key map-string. + * + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap( + java.util.Map primaryKeyMap); + + /** + * Accept primary-key map-string. Delimiter is at-mark and semicolon. + * + * @param primaryKeyMapString Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMapString(String primaryKeyMapString); + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + /** + * Add order-by PrimaryKey asc. {order by primaryKey1 asc, primaryKey2 + * asc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Asc(); + + /** + * Add order-by PrimaryKey desc. {order by primaryKey1 desc, primaryKey2 + * desc...} + * + * @return this. (NotNull) + */ + public ConditionBean addOrderBy_PK_Desc(); + + //========================================================================== + // ========= + // Query + // ===== + /** + * Get condition-query as interface. + * + * @return Instance of query as interface. (NotNull) + * @deprecated + */ + public ConditionQuery getConditionQueryAsInterface(); + + /** + * Get the conditionQuery of the local table as interface. + * + * @return The conditionQuery of the local table as interface. (NotNull) + */ + public ConditionQuery localCQ(); + + //========================================================================== + // ========= + // Union Query + // =========== + /** + * Has union query or union all query? + * + * @return Determination. + */ + public boolean hasUnionQueryOrUnionAllQuery(); + + //========================================================================== + // ========= + // Limit Select + // ============ + /** + * Limit select PK only. This is OLD style. You can do the same thing by + * specify(). + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_PKOnly(); + + /** + * Limit select off. + * + * @return this. (NotNull) + */ + public ConditionBean limitSelect_Off(); + + /** + * Is limit-select PK only? + * + * @return Determination. + */ + public boolean isLimitSelect_PKOnly(); + + //========================================================================== + // =========== + // Lock Setting + // ============ + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public ConditionBean lockForUpdate(); + + //========================================================================== + // =========== + // Select Count + // ============ + /** + * Set up various things for select-count-ignore-fetch-scope. {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xsetupSelectCountIgnoreFetchScope(); + + /** + * Do after-care for select-count-ignore-fetch-scope. {Internal} This method + * is for INTERNAL. Don't invoke this! + * + * @return this. (NotNull) + */ + public ConditionBean xafterCareSelectCountIgnoreFetchScope(); + + /** + * Is set up various things for select-count-ignore-fetch-scope? {Internal} + * This method is for INTERNAL. Don't invoke this! + * + * @return Determination. + */ + public boolean isSelectCountIgnoreFetchScope(); + + //========================================================================== + // =========== + // Statement Config + // ================ + /** + * @param statementConfig The config of statement. (Nullable) + */ + public void configure(StatementConfig statementConfig); + + /** + * @return The config of statement. (Nullable) + */ + public StatementConfig getStatementConfig(); + + //========================================================================== + // ========= + // Display SQL + // =========== + /** + * Convert this conditionBean to SQL for display. + * + * @return SQL for display. (NotNull and NotEmpty) + */ + public String toDisplaySql(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBeanContext.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBeanContext.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBeanContext.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,428 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.DBFluteConfig; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseDb2; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseDerby; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseFirebird; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseH2; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseMySql; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseOracle; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClausePostgreSql; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClauseSqlServer; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The context of condition-bean. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionBeanContext { + + /** Log instance. */ + private static final Log _log = LogFactory + .getLog(ConditionBeanContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get condition-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static ConditionBean getConditionBeanOnThread() { + return (ConditionBean) _threadLocal.get(); + } + + /** + * Set condition-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setConditionBeanOnThread(ConditionBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing condition-bean on thread? + * + * @return Determination. + */ + public static boolean isExistConditionBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear condition-bean on thread. + */ + public static void clearConditionBeanOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Initialize against the ClassLoader Headache + // =========================================== + @SuppressWarnings("unused") + public static void initialize() { + boolean debugEnabled = _log.isDebugEnabled(); + // Against the ClassLoader Headache! + final StringBuilder sb = new StringBuilder(); + { + final Class clazz = jp.sf.pal.scheduler.db.allcommon.cbean.SimplePagingBean.class; + if (debugEnabled) { + sb.append( + " ...Loading class of " + clazz.getName() + " by " + + clazz.getClassLoader().getClass()).append( + getLineSeparator()); + } + } + { + Class clazz = jp.sf.pal.scheduler.db.allcommon.AccessContext.class; + clazz = jp.sf.pal.scheduler.db.allcommon.CallbackContext.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingOption.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingRowEndDeterminer.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingRowResource.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingRowSetupper.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.PageNumberLink.class; + clazz = jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper.class; + clazz = jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler.class; + if (debugEnabled) { + sb.append(" ...Loading class of ...and so on"); + } + } + if (debugEnabled) { + _log.debug("{Initialize against the ClassLoader Headache}" + + getLineSeparator() + sb); + } + } + + //========================================================================== + // ========= + // Type Determination + // ================== + /** + * Is the argument condition-bean? + * + * @param dtoInstance DTO instance. + * @return Determination. + */ + public static boolean isTheArgumentConditionBean(final Object dtoInstance) { + if (dtoInstance instanceof ConditionBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type condition-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeConditionBean(final Class dtoClass) { + if (ConditionBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ========= + // Product Name + // ============ + public static final String DB_NAME_DERBY = "derby"; + + public static final String DB_NAME_H2 = "h2"; + + public static final String DB_NAME_ORACLE = "oracle"; + + public static final String DB_NAME_MYSQL = "mysql"; + + public static final String DB_NAME_POSTGRESQL = "postgresql"; + + public static final String DB_NAME_FIREBIRD = "firebird"; + + public static final String DB_NAME_MSSQL = "mssql"; + + public static final String DB_NAME_SYBASE = "sybase"; + + public static final String DB_NAME_DB2 = "db2"; + + protected static final Map _driverHintDatabaseProductNameMap; + static { + final Map tmpMap = Collections + .synchronizedMap(new LinkedHashMap()); + tmpMap.put("org.apache.derby", DB_NAME_DERBY); + tmpMap.put("org.h2", DB_NAME_H2); + tmpMap.put("oracle", DB_NAME_ORACLE); + tmpMap.put("mysql", DB_NAME_MYSQL); + tmpMap.put("postgresql", DB_NAME_POSTGRESQL); + tmpMap.put("firebird", DB_NAME_FIREBIRD); + tmpMap.put("sqlserver", DB_NAME_MSSQL); + tmpMap.put("sybase", DB_NAME_SYBASE); + tmpMap.put("db2", DB_NAME_DB2); + _driverHintDatabaseProductNameMap = java.util.Collections + .unmodifiableMap(tmpMap); + } + + public static boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + final java.util.Set keySet = _driverHintDatabaseProductNameMap + .keySet(); + for (final java.util.Iterator ite = keySet.iterator(); ite + .hasNext();) { + final String driverHint = (String) ite.next(); + if (driverClassName.indexOf(driverHint) >= 0) { + final String databaseProductName = (String) _driverHintDatabaseProductNameMap + .get(driverHint); + setDatabaseProductName(databaseProductName); + return true; + } + } + return false; + } + + /** The database product name. */ + private static String _databaseProductName; + + /** + * Get database product name. + * + * @return Database product name. + */ + public static String getDatabaseProductName() { + return _databaseProductName; + } + + /** + * Set database product name. + * + * @param name Database product name. (NotNull) + */ + public static void setDatabaseProductName(String name) { + if (_databaseProductName != null) { + String msg = "Already set up: current=" + _databaseProductName + + " your=" + name; + throw new IllegalStateException(msg); + } + _databaseProductName = name; + } + + //========================================================================== + // ========= + // SqlClause Creator + // ================= + /** + * Create SQL-clause. {for condition-bean} + * + * @param cb Condition-bean. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(ConditionBean cb) { + final String tableSqlName = cb.getTableSqlName(); + final SqlClause sqlClause = createSqlClause(tableSqlName); + if (DBFluteConfig.getInstance().isConditionBeanFormatSql()) { + sqlClause.makeFormatClauseEffective(); + } + return sqlClause; + } + + /** + * Create SQL-clause. {for SimplePagingBean} + * + * @param tableDbName The DB name of table. (NotNull) + * @return SQL-clause. (NotNull) + */ + public static SqlClause createSqlClause(String tableDbName) { + final String databaseProductName = getDatabaseProductName(); + if (databaseProductName == null) { + return new SqlClauseH2(tableDbName); + } + final String name = databaseProductName.toLowerCase(); + if (name.equalsIgnoreCase(DB_NAME_DERBY)) { + return new SqlClauseDerby(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_H2)) { + return new SqlClauseH2(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_ORACLE)) { + return new SqlClauseOracle(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_FIREBIRD)) { + return new SqlClauseFirebird(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MYSQL)) { + return new SqlClauseMySql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_POSTGRESQL)) { + return new SqlClausePostgreSql(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_MSSQL)) { + return new SqlClauseSqlServer(tableDbName); + } else if (name.equalsIgnoreCase(DB_NAME_DB2)) { + return new SqlClauseDb2(tableDbName); + } else { + return new SqlClauseH2(tableDbName); + } + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwEntityAlreadyDeletedException(Object searchKey4Log) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity was Not Found! it has already been deleted!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target record on your database." + + getLineSeparator(); + msg = msg + + "Does the target record really created before this operation?" + + getLineSeparator(); + msg = msg + "Has the target record been deleted by other thread?" + + getLineSeparator(); + msg = msg + + "It is precondition that the record exists on your database." + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException( + msg); + } + + public static void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The entity was Too Many! it has been duplicated. It should be the only one! But the resultCount=" + + resultCountString + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm your search condition. Does it really select the only one?" + + getLineSeparator(); + msg = msg + + "Please confirm your database. Does it really exist the only one?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + if (searchKey4Log != null && searchKey4Log instanceof ConditionBean) { + final ConditionBean cb = (ConditionBean) searchKey4Log; + msg = msg + "[Display SQL]" + getLineSeparator() + + cb.toDisplaySql() + getLineSeparator(); + } else { + msg = msg + "[Search Condition]" + getLineSeparator() + + searchKey4Log + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + if (cause != null) { + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException( + msg, cause); + } else { + throw new jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException( + msg); + } + } + + //========================================================================== + // ========= + // Display SQL + // =========== + public static String convertConditionBean2DisplaySql(ConditionBean cb) { + final String twoWaySql; + if (cb.isLimitSelect_PKOnly()) { + twoWaySql = cb.getSqlClause().getClausePKOnly(); + } else { + twoWaySql = cb.getSqlClause().getClause(); + } + return InternalSqlParser.convertTwoWaySql2DisplaySql(twoWaySql, cb); + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public static boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return createSqlClause("dummy").isUniqueConstraintException(sqlState, + errorCode); + } + + // [DBFlute-0.7.8] + //========================================================================== + // ========= + // Database Type + // ============= + /** + * Is the database Oracle? + * + * @return Is the database Oracle? + */ + public static boolean isOracle() { + return createSqlClause("dummy") instanceof SqlClauseOracle; + } + + /** + * Is the database PostgreSQL? + * + * @return Is the database PostgreSQL? + */ + public static boolean isPostgreSql() { + return createSqlClause("dummy") instanceof SqlClausePostgreSql; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionQuery.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionQuery.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionQuery.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,153 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The condition-query as interface. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface ConditionQuery { + + //========================================================================== + // ========= + // Important Accessor + // ================== + /** + * Get table DB-name. + * + * @return Table DB-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + /** + * Get real alias name(that has nest level mark). + * + * @return Real alias name. (NotNull) + */ + public String getRealAliasName(); + + /** + * Get real column name(with real alias name). + * + * @param columnName Column name without alias name. (NotNull) + * @return Real column name. (NotNull) + */ + public String getRealColumnName(String columnName); + + /** + * Get child query. + * + * @return Child query. (Nullable) + */ + public ConditionQuery getChildQuery(); + + /** + * Get sql clause. + * + * @return Sql clause. (NotNull) + */ + public SqlClause getSqlClause(); + + /** + * Get alias name. + * + * @return Alias name. (NotNull) + */ + public String getAliasName(); + + /** + * Get nest level. + * + * @return Nest level. + */ + public int getNestLevel(); + + /** + * Get next nest level. + * + * @return Next nest level. + */ + public int getNextNestLevel(); + + /** + * Is base query? + * + * @param query Condition query. (NotNull) + * @return Determination. + */ + public boolean isBaseQuery(ConditionQuery query); + + /** + * Get the level of subQuery. + * + * @return The level of subQuery. + */ + public int getSubQueryLevel(); + + /** + * Get the property name of foreign relation. + * + * @return The property name of foreign relation. (NotNull) + */ + public String getForeignPropertyName(); + + /** + * Get the path of foreign relation. + * + * @return The path of foreign relation. (NotNull) + */ + public String getRelationPath(); + + //========================================================================== + // ========= + // Reflection Invoking + // =================== + /** + * Invoke getting value. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The conditionValue. (NotNull) + */ + public ConditionValue invokeValue(String columnFlexibleName); + + /** + * Invoke setting query. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param conditionKeyName The name of the conditionKey. (NotNull) + * @param value The value of the condition. (NotNull) + */ + public void invokeQuery(String columnFlexibleName, String conditionKeyName, + Object value); + + /** + * Invoke adding orderBy. {ResolveRelation} + * + * @param columnFlexibleName The flexible name of the column allowed to + * contain relations. (NotNull and NotEmpty) + * @param isAsc Is it ascend? + */ + public void invokeOrderBy(String columnFlexibleName, boolean isAsc); + + /** + * Invoke getting foreign conditionQuery. + * + * @param foreignPropertyName The property name of the foreign relation. + * (NotNull and NotEmpty) + * @return The conditionQuery of the foreign relation as interface. + * (NotNull) + */ + public ConditionQuery invokeForeignCQ(String foreignPropertyName); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ConditionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,62 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +/** + * The bean of fetch narrowing. + * + * @author DBFlute(AutoGenerator) + */ +public interface FetchNarrowingBean { + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchNarrowingLoopCount(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective(); + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing(); + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing(); + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBeanContext.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBeanContext.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBeanContext.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,79 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +/** + * Fetch-Narrowing-Bean context. (referring to s2pager) + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingBeanContext { + + /** The thread-local for this. */ + private static ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get fetch-narrowing-bean on thread. + * + * @return Condition-bean context. (Nullable) + */ + public static FetchNarrowingBean getFetchNarrowingBeanOnThread() { + return (FetchNarrowingBean) _threadLocal.get(); + } + + /** + * Set fetch-narrowing-bean on thread. + * + * @param cb Condition-bean. (NotNull) + */ + public static void setFetchNarrowingBeanOnThread(FetchNarrowingBean cb) { + if (cb == null) { + String msg = "The argument[cb] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(cb); + } + + /** + * Is existing fetch-narrowing-bean on thread? + * + * @return Determination. + */ + public static boolean isExistFetchNarrowingBeanOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear fetch-narrowing-bean on thread. + */ + public static void clearFetchNarrowingBeanOnThread() { + _threadLocal.set(null); + } + + /** + * Is the argument fetch-narrowing-bean? + * + * @param dtoInstance Dto instance. + * @return Determination. + */ + public static boolean isTheArgumentFetchNarrowingBean( + final Object dtoInstance) { + if (dtoInstance instanceof FetchNarrowingBean) { + return true; + } else { + return false; + } + } + + /** + * Is the type fetch-narrowing-bean? + * + * @param dtoClass DtoClass. + * @return Determination. + */ + public static boolean isTheTypeFetchNarrowingBean(final Class dtoClass) { + if (FetchNarrowingBean.class.isAssignableFrom(dtoClass)) { + return true; + } else { + return false; + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/FetchNarrowingBeanContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ListResultBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ListResultBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ListResultBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,392 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; + +import jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingRowEndDeterminer; +import jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingRowResource; +import jp.sf.pal.scheduler.db.allcommon.cbean.grouping.GroupingRowSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The result bean for list. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class ListResultBean implements List, Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + /** + * The value of table db-name. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + protected String _tableDbName; + + /** The value of all record count. */ + protected int _allRecordCount; + + /** The list of selected entity. (NotNull) */ + protected List _selectedList = new ArrayList(); + + /** The clause of order-by. (NotNull) */ + protected OrderByClause _orderByClause = new OrderByClause(); + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public ListResultBean() { + } + + //========================================================================== + // ========= + // Grouping + // ======== + /** + * Group the list. This method needs the property 'selectedList' only. + * + * @param The type of row. + * @param groupingRowSetupper The setupper of grouping row. (NotNull) + * @param groupingOption The option of grouping. (NotNull and it requires + * the breakCount or the determiner) + * @return The grouped list. (NotNull) + */ + public List groupingList( + GroupingRowSetupper groupingRowSetupper, + GroupingOption groupingOption) { + final List groupingList = new ArrayList(); + GroupingRowEndDeterminer rowEndDeterminer = groupingOption + .getGroupingRowEndDeterminer(); + if (rowEndDeterminer == null) { + rowEndDeterminer = new GroupingRowEndDeterminer() { + public boolean determine( + GroupingRowResource rowResource, + ENTITY nextEntity) { + return rowResource.isSizeUpBreakCount(); + } + }; // as Default + } + GroupingRowResource rowResource = new GroupingRowResource(); + int breakCount = groupingOption.getElementCount(); + int rowElementIndex = 0; + int allElementIndex = 0; + for (ENTITY entity : _selectedList) { + // Set up row resource. + rowResource.addGroupingRowList(entity); + rowResource.setElementCurrentIndex(rowElementIndex); + rowResource.setBreakCount(breakCount); + + if (_selectedList.size() == (allElementIndex + 1)) { // Last Loop! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + break; + } + + // Not last loop so the nextElement must exist. + final ENTITY nextElement = _selectedList.get(allElementIndex + 1); + + // Do at row end. + if (rowEndDeterminer.determine(rowResource, nextElement)) { // Determine + // the + // row + // end! + // Set up the object of grouping row! + final ROW groupingRowObject = groupingRowSetupper + .setup(rowResource); + + // Register! + groupingList.add(groupingRowObject); + + // Initialize! + rowResource = new GroupingRowResource(); + rowElementIndex = 0; + ++allElementIndex; + continue; + } + ++rowElementIndex; + ++allElementIndex; + } + return groupingList; + } + + //========================================================================== + // ========= + // Mapping + // ======= + public ListResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean mappingList = new ListResultBean(); + for (ENTITY entity : _selectedList) { + mappingList.add(entityDtoMapper.map(entity)); + } + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + return mappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Has this result selected? + * + * @return Determination. {Whether table DB name is not null} + */ + public boolean isSelectedResult() { + return _tableDbName != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return Hash-code from primary-keys. + */ + public int hashCode() { + if (_selectedList == null) { + return super.hashCode(); + } + return _selectedList.hashCode(); + } + + /** + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (_selectedList == null) { + return false; + } + if (other == null) { + return false; + } + if (!(other instanceof List)) { + return false; + } + return _selectedList.equals(other); + } + + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(_tableDbName); + sb.append(",").append(_allRecordCount); + sb.append(",").append( + _orderByClause != null ? _orderByClause.getOrderByClause() + : null); + sb.append(",").append(_selectedList); + sb.append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // List Elements + // ============= + public boolean add(ENTITY o) { + return _selectedList.add(o); + } + + public boolean addAll(Collection c) { + return _selectedList.addAll(c); + } + + public void clear() { + _selectedList.clear(); + } + + public boolean contains(Object o) { + return _selectedList.contains(o); + } + + public boolean containsAll(Collection c) { + return _selectedList.containsAll(c); + } + + public boolean isEmpty() { + return _selectedList.isEmpty(); + } + + public Iterator iterator() { + return _selectedList.iterator(); + } + + public boolean remove(Object o) { + return _selectedList.remove(o); + } + + public boolean removeAll(Collection c) { + return _selectedList.removeAll(c); + } + + public boolean retainAll(Collection c) { + return _selectedList.retainAll(c); + } + + public int size() { + return _selectedList.size(); + } + + public Object[] toArray() { + return _selectedList.toArray(); + } + + public TYPE[] toArray(TYPE[] a) { + return _selectedList.toArray(a); + } + + public void add(int index, ENTITY element) { + _selectedList.add(index, element); + } + + public boolean addAll(int index, Collection c) { + return _selectedList.addAll(index, c); + } + + public ENTITY get(int index) { + return _selectedList.get(index); + } + + public int indexOf(Object o) { + return _selectedList.indexOf(o); + } + + public int lastIndexOf(Object o) { + return _selectedList.lastIndexOf(o); + } + + public ListIterator listIterator() { + return _selectedList.listIterator(); + } + + public ListIterator listIterator(int index) { + return _selectedList.listIterator(index); + } + + public ENTITY remove(int index) { + return _selectedList.remove(index); + } + + public ENTITY set(int index, ENTITY element) { + return _selectedList.set(index, element); + } + + public List subList(int fromIndex, int toIndex) { + return _selectedList.subList(fromIndex, toIndex); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of tableDbName. + * + * @return The value of tableDbName. (Nullable: If it's null, it means 'Not + * Selected Yet'.) + */ + public String getTableDbName() { + return _tableDbName; + } + + /** + * Set the value of tableDbName. + * + * @param tableDbName The value of tableDbName. (NotNull) + */ + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } + + /** + * Get the value of allRecordCount. + * + * @return The value of allRecordCount. + */ + public int getAllRecordCount() { + return _allRecordCount; + } + + /** + * Set the value of allRecordCount. + * + * @param allRecordCount The value of allRecordCount. + */ + public void setAllRecordCount(int allRecordCount) { + _allRecordCount = allRecordCount; + } + + /** + * Get the value of selectedList. + * + * @return Selected list. (NotNull) + */ + public List getSelectedList() { + return _selectedList; + } + + /** + * Set the value of selectedList. + * + * @param selectedList Selected list. (NotNull: If you set null, it ignores + * it.) + */ + public void setSelectedList(List selectedList) { + if (selectedList == null) { + return; + } // Not allowed to set null value to the selected list + _selectedList = selectedList; + } + + /** + * Get the value of orderByClause. + * + * @return The value of orderByClause. (NotNull) + */ + public OrderByClause getOrderByClause() { + return _orderByClause; + } + + /** + * Set the value of orderByClause. + * + * @param orderByClause The value of orderByClause. (NotNull: If you set + * null, it ignores it.) + */ + public void setOrderByClause(OrderByClause orderByClause) { + if (orderByClause == null) { + return; + } // Not allowed to set null value to the selected list + _orderByClause = orderByClause; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ListResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/MapParameterBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/MapParameterBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/MapParameterBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.util.Map; + +/** + * The bean of map parameter. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapParameterBean { + + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/MapParameterBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/OrderByBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/OrderByBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/OrderByBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,46 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.OrderByClause; + +/** + * The order-by-bean as interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface OrderByBean extends SelectResource { + + /** + * Get sql component of order-by clause. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause(); + + /** + * Get order-by clause. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause(); + + /** + * Clear order-by. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy(); + + /** + * Ignore order-by. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy(); + + /** + * Make order-by effective. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/OrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,163 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +/** + * The bean of paging. + * + * @author DBFlute(AutoGenerator) + */ +public interface PagingBean extends FetchNarrowingBean, OrderByBean { + + //========================================================================== + // ========= + // Paging Determination + // ==================== + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Is the execution for paging(NOT count)? + * + * @return Determination. + */ + public boolean isPaging(); + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * Is the count executed later? + * + * @return Determination. + */ + public boolean isCountLater(); + + //========================================================================== + // ========= + // Paging Setting + // ============== + /** + * Set up paging resources. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber); + + /** + * Set whether the execution for paging(NOT count). {INTERNAL METHOD} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging); + + //========================================================================== + // ========= + // Fetch Setting + // ============= + /** + * Fetch first.
    If you invoke this, your SQL returns [fetch-size] + * records from first. + * + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize); + + /** + * Fetch scope.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index]. + * + * @param fetchStartIndex The start index of fetch. 0 origin. (NotMinus) + * @param fetchSize The size of fetch. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page.
    When you invoke this, it is normally necessary to + * invoke 'fetchFirst()' or 'fetchScope()' ahead of that.
    But you + * also can use default-fetch-size without invoking 'fetchFirst()' or + * 'fetchScope()'.
    If you invoke this, your SQL returns [fetch-size] + * records from [fetch-start-index] calculated by [fetch-page-number]. + * + * @param fetchPageNumber The page number of fetch. 1 origin. (NotMinus & + * NotZero: If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber); + + //========================================================================== + // ========= + // Fetch Property + // ============== + /** + * Get fetch-start-index. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch-size. + * + * @return Fetch-size. + */ + public int getFetchSize(); + + /** + * Get fetch-page-number. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective(); + + //========================================================================== + // ========= + // Hint Property + // ============= + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint(); + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint(); + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,33 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.util.List; + +/** + * The handler of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface PagingHandler { + + /** + * Get the bean of paging. + * + * @return The bean of paging. (NotNull) + */ + public PagingBean getPagingBean(); + + /** + * Execute SQL for count. + * + * @return The count of execution. + */ + public int count(); + + /** + * Execute SQL for paging. + * + * @return The list of entity. (NotNull) + */ + public List paging(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingInvoker.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingInvoker.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingInvoker.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,116 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.util.List; + +/** + * The invoker of paging. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class PagingInvoker { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + protected boolean _countLater; + + //========================================================================== + // ========= + // Constructor + // =========== + public PagingInvoker(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke select-page by handler. + * + * @param handler The handler of paging. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean invokePaging(PagingHandler handler) { + assertObjectNotNull("handler", handler); + final PagingBean pagingBean = handler.getPagingBean(); + assertObjectNotNull("handler.getPagingBean()", pagingBean); + if (!pagingBean.isFetchScopeEffective()) { + String msg = "The paging bean is not effective about fetch-scope!"; + msg = msg + + " When you select page, you should set up fetch-scope of paging bean(Should invoke fetchFirst() and fetchPage()!)."; + msg = msg + " The paging bean is: " + pagingBean; + throw new IllegalStateException(msg); + } + final int allRecordCount; + final List selectedList; + if (_countLater) { + selectedList = handler.paging(); + allRecordCount = handler.count(); + } else { + allRecordCount = handler.count(); + selectedList = handler.paging(); + } + final PagingResultBean rb = new ResultBeanBuilder( + _tableDbName).buildPagingResultBean(pagingBean, allRecordCount, + selectedList); + if (isNecessaryToReadPageAgain(rb)) { + pagingBean.fetchPage(rb.getAllPageCount()); + final int reAllRecordCount = handler.count(); + final java.util.List reSelectedList = handler.paging(); + return new ResultBeanBuilder(_tableDbName) + .buildPagingResultBean(pagingBean, reAllRecordCount, + reSelectedList); + } else { + return rb; + } + } + + /** + * Is it necessary to read page again? + * + * @param rb The result bean of paging. (NotNull) + * @return Determination. + */ + protected boolean isNecessaryToReadPageAgain(PagingResultBean rb) { + return rb.getAllRecordCount() > 0 && rb.getSelectedList().isEmpty(); + } + + //========================================================================== + // ========= + // Option + // ====== + public PagingInvoker countLater() { + _countLater = true; + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingInvoker.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingResultBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingResultBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingResultBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,375 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import jp.sf.pal.scheduler.db.allcommon.cbean.mapping.EntityDtoMapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.group.PageGroupBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.group.PageGroupOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.range.PageRangeBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.range.PageRangeOption; + +/** + * The result bean of paging. + * + * @param The type of entity for the element of selected list. + * @author DBFlute(AutoGenerator) + */ +public class PagingResultBean extends ListResultBean { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Page Basic Info + // --------------- + /** The value of current page number. */ + protected int _pageSize; + + /** The value of current page number. */ + protected int _currentPageNumber; + + // ----------------------------------------------------- + // Page Group + // ---------- + /** The value of page-group bean. */ + protected PageGroupBean _pageGroupBean; + + /** The value of page-group option. */ + protected PageGroupOption _pageGroupOption; + + // ----------------------------------------------------- + // Page Range + // ---------- + /** The value of page-range bean. */ + protected PageRangeBean _pageRangeBean; + + /** The value of page-range option. */ + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public PagingResultBean() { + } + + //========================================================================== + // ========= + // Calculated Property + // =================== + /** + * Get the value of allPageCount that is calculated. + * + * @return The value of allPageCount. + */ + public int getAllPageCount() { + return calculateAllPageCount(_allRecordCount, _pageSize); + } + + /** + * Get the value of currentStartRecordNumber that is calculated. + * + * @return The value of currentStartRecordNumber. + */ + public int getCurrentStartRecordNumber() { + return calculateCurrentStartRecordNumber(_currentPageNumber, _pageSize); + } + + /** + * Get the value of currentEndRecordNumber that is calculated. + * + * @return The value of currentEndRecordNumber. + */ + public int getCurrentEndRecordNumber() { + return calculateCurrentEndRecordNumber(_currentPageNumber, _pageSize); + } + + //========================================================================== + // ========= + // Page Group/Range + // ================ + // ----------------------------------------------------- + // Page Group + // ---------- + /** + * Get the value of pageGroupSize. + * + * @return The value of pageGroupSize. + */ + public int getPageGroupSize() { + return _pageGroupOption != null ? _pageGroupOption.getPageGroupSize() + : 0; + } + + /** + * Set the value of pageGroupSize. + * + * @param pageGroupSize The value of pageGroupSize. + */ + public void setPageGroupSize(int pageGroupSize) { + final PageGroupOption option = new PageGroupOption(); + option.setPageGroupSize(pageGroupSize); + setPageGroupOption(option); + } + + /** + * Set the value of pageGroupOption. + * + * @param pageGroupOption The value of pageGroupOption. (Nullable) + */ + public void setPageGroupOption(PageGroupOption pageGroupOption) { + _pageGroupOption = pageGroupOption; + } + + /** + * Get the value of pageGroupBean. + * + * @return The value of pageGroupBean. (NotNull) + */ + public PageGroupBean pageGroup() { + assertPageGroupValid(); + if (_pageGroupBean == null) { + _pageGroupBean = new PageGroupBean(); + } + _pageGroupBean.setPageGroupOption(_pageGroupOption); + _pageGroupBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageGroupBean.setAllPageCount(getAllPageCount()); + return _pageGroupBean; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + // ----------------------------------------------------- + // Page Range + // ---------- + /** + * Get the value of pageRangeSize. + * + * @return The value of pageRangeSize. + */ + public int getPageRangeSize() { + return _pageRangeOption != null ? _pageRangeOption.getPageRangeSize() + : 0; + } + + /** + * Set the value of pageRangeSize. + * + * @param pageRangeSize The value of pageRangeSize. + */ + public void setPageRangeSize(int pageRangeSize) { + final PageRangeOption option = new PageRangeOption(); + option.setPageRangeSize(pageRangeSize); + setPageRangeOption(option); + } + + /** + * Set the value of pageRangeOption. + * + * @param pageRangeOption The value of pageRangeOption. (Nullable) + */ + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + /** + * Get the value of pageRangeBean. + * + * @return The value of pageRangeBean. (NotNull) + */ + public PageRangeBean pageRange() { + assertPageRangeValid(); + if (_pageRangeBean == null) { + _pageRangeBean = new PageRangeBean(); + } + _pageRangeBean.setPageRangeOption(_pageRangeOption); + _pageRangeBean.setCurrentPageNumber(getCurrentPageNumber()); + _pageRangeBean.setAllPageCount(getAllPageCount()); + return _pageRangeBean; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is existing previous page? Using values are currentPageNumber. + * + * @return Determination. + */ + public boolean isExistPrePage() { + return (_allRecordCount > 0 && _currentPageNumber > 1); + } + + /** + * Is existing next page? Using values are currentPageNumber and + * allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPage() { + return (_allRecordCount > 0 && _currentPageNumber < getAllPageCount()); + } + + //========================================================================== + // ========= + // Mapping + // ======= + public PagingResultBean mappingList( + EntityDtoMapper entityDtoMapper) { + final ListResultBean ls = super.mappingList(entityDtoMapper); + final PagingResultBean mappingList = new PagingResultBean(); + mappingList.setSelectedList(ls.getSelectedList()); + mappingList.setTableDbName(getTableDbName()); + mappingList.setAllRecordCount(getAllRecordCount()); + mappingList.setOrderByClause(getOrderByClause()); + mappingList.setPageSize(getPageSize()); + mappingList.setCurrentPageNumber(getCurrentPageNumber()); + mappingList.setPageRangeOption(_pageRangeOption); + mappingList.setPageGroupOption(_pageGroupOption); + return mappingList; + } + + //========================================================================== + // ========= + // Calculate(Internal) + // =================== + /** + * Calculate all page count. + * + * @param allRecordCount All record count. + * @param pageSize Fetch-size. + * @return All page count. + */ + protected int calculateAllPageCount(int allRecordCount, int pageSize) { + if (allRecordCount == 0) { + return 1; + } + int pageCountBase = (allRecordCount / pageSize); + if (allRecordCount % pageSize > 0) { + pageCountBase++; + } + return pageCountBase; + } + + protected int calculateCurrentStartRecordNumber(int currentPageNumber, + int pageSize) { + return ((currentPageNumber - 1) * pageSize) + 1; + } + + protected int calculateCurrentEndRecordNumber(int currentPageNumber, + int pageSize) { + return calculateCurrentStartRecordNumber(currentPageNumber, pageSize) + + _selectedList.size() - 1; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{").append(getCurrentPageNumber()).append("/").append( + getAllPageCount()); + sb.append(" of ").append(getAllRecordCount()); + sb.append(" ").append(isExistPrePage()).append("/").append( + isExistNextPage()); + if (_pageGroupOption != null) { + sb.append(" group:{").append(getPageGroupSize()).append(",") + .append(pageGroup().createPageNumberList()).append("}"); + } + if (_pageRangeOption != null) { + sb.append(" range:{").append(getPageRangeSize()).append(",") + .append(_pageRangeOption.isFillLimit()); + sb.append(",").append(pageRange().createPageNumberList()).append( + "}"); + } + sb.append(" list=").append( + getSelectedList() != null ? Integer.valueOf(getSelectedList() + .size()) : null); + sb.append(" page=").append(getPageSize()); + sb.append("}"); + sb.append(":selectedList=").append(getSelectedList()); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + /** + * Get the value of pageSize. + * + * @return The value of pageSize. + */ + public int getPageSize() { + return _pageSize; + } + + /** + * Set the value of pageSize. + * + * @param pageSize The value of pageSize. + */ + public void setPageSize(int pageSize) { + _pageSize = pageSize; + } + + /** + * Get the value of currentPageNumber. + * + * @return The value of currentPageNumber. + */ + public int getCurrentPageNumber() { + return _currentPageNumber; + } + + /** + * Set the value of currentPageNumber. + * + * @param currentPageNumber The value of currentPageNumber. + */ + public void setCurrentPageNumber(int currentPageNumber) { + _currentPageNumber = currentPageNumber; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/PagingResultBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ResultBeanBuilder.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ResultBeanBuilder.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ResultBeanBuilder.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,81 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.util.List; + +/** + * The builder of result bean. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class ResultBeanBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public ResultBeanBuilder(String tableDbName) { + _tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Builder + // ======= + /** + * Build the result bean of list without order-by clause. {for Various} + * + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + return rb; + } + + /** + * Build the result bean of list. {for CB} + * + * @param cb The condition-bean. (NotNull) + * @param selectedList Selected list. (NotNull) + * @return The result bean of list. (NotNull) + */ + public ListResultBean buildListResultBean(ConditionBean cb, + List selectedList) { + ListResultBean rb = new ListResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(selectedList.size()); + rb.setSelectedList(selectedList); + rb.setOrderByClause(cb.getSqlComponentOfOrderByClause()); + return rb; + } + + /** + * Build the result bean of paging. {for Paging} + * + * @param pb The bean of paging. (NotNull) + * @param allRecordCount All record count. + * @param selectedList The list of selected entity. (NotNull) + * @return The result bean of paging. (NotNull) + */ + public PagingResultBean buildPagingResultBean(PagingBean pb, + int allRecordCount, List selectedList) { + PagingResultBean rb = new PagingResultBean(); + rb.setTableDbName(_tableDbName); + rb.setAllRecordCount(allRecordCount); + rb.setSelectedList(selectedList); + rb.setOrderByClause(pb.getSqlComponentOfOrderByClause()); + rb.setPageSize(pb.getFetchSize()); + rb.setCurrentPageNumber(pb.getFetchPageNumber()); + return rb; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ResultBeanBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SelectResource.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SelectResource.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SelectResource.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +/** + * The select-resource as marker-interface. + * + * @author DBFlute(AutoGenerator) + */ +public interface SelectResource { + + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SelectResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimpleOrderByBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimpleOrderByBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimpleOrderByBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,165 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * @deprecated + */ +public class SimpleOrderByBean implements OrderByBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public SimpleOrderByBean() { + } + + //========================================================================== + // ========= + // SqlClause + // ========= + /** + * Get sql-clause. + * + * @return Sql clause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } + + //========================================================================== + // ========= + // Select Resource + // =============== + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + throw new UnsupportedOperationException(); + } + + //========================================================================== + // ========= + // OrderBy + // ======= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + /** + * Register order-by-asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByAsc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, true); + return this; + } + + /** + * Register order-by-desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean registerOrderByDesc(String orderByProperty) { + getSqlClause().registerOrderBy(orderByProperty, orderByProperty, false); + return this; + } + + /** + * Reverse order-by or Override order-by asc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByAsc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, true); + return this; + } + + /** + * Reverse order-by or Override order-by desc. + * + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @return this. (NotNull) + * @deprecated + */ + public OrderByBean reverseOrderBy_Or_OverrideOrderByDesc( + String orderByProperty) { + getSqlClause().reverseOrderBy_Or_OverrideOrderBy(orderByProperty, + orderByProperty, false); + return this; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimpleOrderByBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimplePagingBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimplePagingBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimplePagingBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,419 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +import java.util.LinkedHashMap; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.OrderByClause; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; + +/** + * The simple pagingBean. + * + * @author DBFlute(AutoGenerator) + */ +public class SimplePagingBean implements PagingBean, MapParameterBean { + + //========================================================================== + // ========= + // Attribute + // ========= + /** SQL clause instance. */ + protected final SqlClause _sqlClause; + { + _sqlClause = ConditionBeanContext.createSqlClause("Dummy"); + } + + /** The map of parameter. (Nullable) */ + protected Map _parameterMap; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** Is the execution for paging(NOT count)? */ + protected boolean _paging = true; + + /** Is the count executed later? */ + protected boolean _countLater; + + /** Is fetch narrowing valid? */ + protected boolean _fetchNarrowing = true; + + /** The map for parameter. */ + protected Map _map; + + //========================================================================== + // ========= + // Implementation of PagingBean + // ============================ + // ----------------------------------------------------- + // Paging Determination + // -------------------- + // * * * * * * * * + // For SQL Comment + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isPaging() { + return _paging; + } + + // * * * * * * * * + // For Framework + // * * * * * * * * + /** + * The implementation. + * + * @return Determination. + */ + public boolean isCountLater() { + return _countLater; + } + + // ----------------------------------------------------- + // Paging Setting + // -------------- + /** + * The implementation. + * + * @param pageSize The page size per one page. (NotMinus & NotZero) + * @param pageNumber The number of page. It's ONE origin. (NotMinus & + * NotZero: If it's minus or zero, it treats as one.) + */ + public void paging(int pageSize, int pageNumber) { + fetchFirst(pageSize); + fetchPage(pageNumber); + } + + /** + * The implementation. {INTERNAL METHOD: Don't Invoke This!} + * + * @param paging Determination. + */ + public void xsetPaging(boolean paging) { + if (paging) { + getSqlClause().makeFetchScopeEffective(); + } else { + getSqlClause().ignoreFetchScope(); + } + this._paging = paging; + } + + // ----------------------------------------------------- + // Fetch Setting + // ------------- + /** + * The implementation. + * + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchFirst(int fetchSize) { + getSqlClause().fetchFirst(fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public PagingBean fetchScope(int fetchStartIndex, int fetchSize) { + getSqlClause().fetchScope(fetchStartIndex, fetchSize); + return this; + } + + /** + * The implementation. + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public PagingBean fetchPage(int fetchPageNumber) { + getSqlClause().fetchPage(fetchPageNumber); + return this; + } + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** + * The implementation. + * + * @return Fetch-start-index. + */ + public int getFetchStartIndex() { + return getSqlClause().getFetchStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-size. + */ + public int getFetchSize() { + return getSqlClause().getFetchSize(); + } + + /** + * The implementation. + * + * @return Fetch-page-number. + */ + public int getFetchPageNumber() { + return getSqlClause().getFetchPageNumber(); + } + + /** + * The implementation. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + return getSqlClause().getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + return getSqlClause().getPageEndIndex(); + } + + /** + * Is fetch scope effective? + * + * @return Determination. + */ + public boolean isFetchScopeEffective() { + return getSqlClause().isFetchScopeEffective(); + } + + // ----------------------------------------------------- + // Hint Property + // ------------- + /** + * Get select-hint. {select [select-hint] * from table...} + * + * @return Select-hint. (NotNull) + */ + public String getSelectHint() { + return getSqlClause().getSelectHint(); + } + + /** + * Get from-base-table-hint. {select * from table [from-base-table-hint] + * where ...} + * + * @return from-base-table-hint. (NotNull) + */ + public String getFromBaseTableHint() { + return getSqlClause().getFromBaseTableHint(); + } + + /** + * Get from-hint. {select * from table [from-hint] where ...} + * + * @return From-hint. (NotNull) + */ + public String getFromHint() { + return getSqlClause().getFromHint(); + } + + /** + * Get sql-suffix. {select * from table where ... order by ... [sql-suffix]} + * + * @return Sql-suffix. (NotNull) + */ + public String getSqlSuffix() { + return getSqlClause().getSqlSuffix(); + } + + //========================================================================== + // ========= + // Implementation of FetchNarrowingBean + // ==================================== + /** + * Get fetch-narrowing start-index. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getSqlClause().getFetchNarrowingSkipStartIndex(); + } + + /** + * Get fetch-narrowing size. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getSqlClause().getFetchNarrowingLoopCount(); + } + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingSkipStartIndexEffective() { + return !getSqlClause().isFetchStartIndexSupported(); + } + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchNarrowingLoopCountEffective() { + return !getSqlClause().isFetchSizeSupported(); + } + + /** + * Is fetch-narrowing effective? + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _fetchNarrowing && getSqlClause().isFetchNarrowingEffective(); + } + + /** + * Ignore fetch narrowing. Only checking safety result size is valid. + * {INTERNAL METHOD} + */ + public void ignoreFetchNarrowing() { + _fetchNarrowing = false; + } + + /** + * Restore ignored fetch narrowing. {INTERNAL METHOD} + */ + public void restoreIgnoredFetchNarrowing() { + _fetchNarrowing = true; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of OrderByBean + // ============================= + /** + * The implementation. + * + * @return Sql component of order-by clause. (NotNull) + */ + public OrderByClause getSqlComponentOfOrderByClause() { + return getSqlClause().getSqlComponentOfOrderByClause(); + } + + /** + * The implementation. + * + * @return Order-by clause. (NotNull) + */ + public String getOrderByClause() { + return getSqlClause().getOrderByClause(); + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean clearOrderBy() { + getSqlClause().clearOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean ignoreOrderBy() { + getSqlClause().ignoreOrderBy(); + return this; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public OrderByBean makeOrderByEffective() { + getSqlClause().makeOrderByEffective(); + return this; + } + + //========================================================================== + // ========= + // Implementation of SelectResource + // ================================ + /** + * Check safety result. + * + * @param safetyMaxResultSize Safety max result size. (If zero or minus, + * ignore checking) + */ + public void checkSafetyResult(int safetyMaxResultSize) { + this._safetyMaxResultSize = safetyMaxResultSize; + } + + //========================================================================== + // ========= + // Implementation of MapParameterBean + // ================================== + /** + * Get the map of parameter. + * + * @return The map of parameter. (Nullable) + */ + public Map getParameterMap() { + return _parameterMap; + } + + /** + * Add the parameter to the map. + * + * @param key The key of parameter. (NotNull) + * @param value The value of parameter. (Nullable) + */ + public void addParameter(String key, Object value) { + if (_parameterMap == null) { + _parameterMap = new LinkedHashMap(); + } + _parameterMap.put(key, value); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // SqlClause + // --------- + /** + * Get sqlClause. + * + * @return SqlClause. (NotNull) + */ + protected SqlClause getSqlClause() { + return _sqlClause; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SimplePagingBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SubQuery.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SubQuery.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SubQuery.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +public interface SubQuery { + public void query(SUB_CB subCB); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/SubQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/UnionQuery.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/UnionQuery.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/UnionQuery.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean; + +public interface UnionQuery { + public void query(UNION_CB unionCB); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/UnionQuery.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKey.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKey.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKey.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,307 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The abstract class of condition-key. + * + * @author DBFlute(AutoGenerator) + */ +public abstract class ConditionKey { + + /** Mark of replaced value. */ + public static final String MARK_OF_REPLACED_VALUE = "ReplacedValue"; + + /** The condition key of equal. */ + public static final ConditionKey CK_EQUAL = new ConditionKeyEqual(); + + /** The condition key of notEqual. */ + public static final ConditionKey CK_NOT_EQUAL = new ConditionKeyNotEqual(); + + /** The condition key of greaterThan. */ + public static final ConditionKey CK_GREATER_THAN = new ConditionKeyGreaterThan(); + + /** The condition key of lessrThan. */ + public static final ConditionKey CK_LESS_THAN = new ConditionKeyLessThan(); + + /** The condition key of greaterEqual. */ + public static final ConditionKey CK_GREATER_EQUAL = new ConditionKeyGreaterEqual(); + + /** The condition key of lessEqual. */ + public static final ConditionKey CK_LESS_EQUAL = new ConditionKeyLessEqual(); + + /** The condition key of prefixSearch. */ + public static final ConditionKey CK_PREFIX_SEARCH = new ConditionKeyPrefixSearch(); + + /** The condition key of likeSearch. */ + public static final ConditionKey CK_LIKE_SEARCH = new ConditionKeyLikeSearch(); + + /** The condition key of inScope. */ + public static final ConditionKey CK_IN_SCOPE = new ConditionKeyInScope(); + + /** The condition key of notInScope. */ + public static final ConditionKey CK_NOT_IN_SCOPE = new ConditionKeyNotInScope(); + + /** The condition key of isNull. */ + public static final ConditionKey CK_IS_NULL = new ConditionKeyIsNull(); + + /** The condition key of isNotNull. */ + public static final ConditionKey CK_IS_NOT_NULL = new ConditionKeyIsNotNull(); + + /** Dummy-object for IsNull and IsNotNull and so on... */ + protected static final Object DUMMY_OBJECT = new Object(); + + /** Condition-key. */ + protected String _conditionKey; + + /** Operand. */ + protected String _operand; + + /** + * Get condition-key. + * + * @return Condition-key. + */ + public String getConditionKey() { + return _conditionKey; + } + + /** + * Get operand. + * + * @return Operand. + */ + public String getOperand() { + return _operand; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + abstract public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName); + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value); + return this; + } + + /** + * Add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + * @return this. + */ + public ConditionKey addWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (value == null) { + String msg = "Argument[value] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doAddWhereClause(conditionList, columnName, value, option); + return this; + } + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value); + + /** + * Do add where clause. + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option); + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location); + return conditionValue; + } + + /** + * Setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (Nullable) + * @param location Location. (Nullable) + * @param option Condition option. (NotNull) + * @return Condition value. (The same as argument[conditionValue]) (NotNull) + */ + public ConditionValue setupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + if (conditionValue == null) { + String msg = "Argument[conditionValue] must not be null:"; + throw new IllegalArgumentException(msg + " value=" + value + + " this.toString()=" + toString()); + } + doSetupConditionValue(conditionValue, value, location, option); + return conditionValue; + } + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location); + + /** + * Do setup condition value. + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + abstract protected void doSetupConditionValue( + ConditionValue conditionValue, Object value, String location, + ConditionOption option); + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null"; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param rearOption Rear option. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClauseWithRearOption(String columnName, + String location, String rearOption) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/null" + rearOption; + } + + /** + * Build bind clause. (for s2dao) + * + * @param columnName Column name. (NotNull) + * @param location Location. (NotNull) + * @param dummyValue Dummy value. (NotNull) + * @return Bind clause. (NotNull) + */ + protected String buildBindClause(String columnName, String location, + String dummyValue) { + return columnName + " " + getOperand() + " " + "/*dto." + location + + "*/" + dummyValue; + } + + /** + * Build clause without value. + * + * @param columnName Column name. (NotNull) + * @return Clause without value. (NotNull) + */ + protected String buildClauseWithoutValue(String columnName) { + return columnName + " " + getOperand(); + } + + /** + * Get wild-card. + * + * @return Wild-card. + */ + protected String getWildCard() { + return "%"; + } + + /** + * The override. Returns hash-code of this condition-key string. + * + * @return HashCode. + */ + public int hashCode() { + return getConditionKey().hashCode(); + } + + /** + * The override. If the condition-key of the other is same as this one, + * returns true. + * + * @param other Other entity. (Nullable) + * @return Comparing result. If other is null, returns false. + */ + public boolean equals(Object other) { + if (other instanceof ConditionKey) { + if (this.getConditionKey().equals( + ((ConditionKey) other).getConditionKey())) { + return true; + } + } + return false; + } + + /** + * The override. + * + * @return View-string of condition key information. + */ + public String toString() { + return "ConditionKey: " + getConditionKey() + " " + getOperand() + + " wild-card=[" + getWildCard() + "]"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKey.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyEqual.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyEqual.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyEqual.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,108 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of equal. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyEqual() { + _conditionKey = "equal"; + _operand = "="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasEqual()) { + if (conditionValue.equalEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getEqual() == null) { + return; + } + conditionList + .add(buildBindClause(columnName, value.getEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setEqual(value).setEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,109 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterEqual() { + _conditionKey = "greaterEqual"; + _operand = ">="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterEqual()) { + if (conditionValue.equalGreaterEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterEqual(value).setGreaterEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,109 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of greaterThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyGreaterThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyGreaterThan.class); + + /** + * Constructor. + */ + protected ConditionKeyGreaterThan() { + _conditionKey = "greaterThan"; + _operand = ">"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasGreaterThan()) { + if (conditionValue.equalGreaterThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideGreaterThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getGreaterThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getGreaterThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setGreaterThan(value).setGreaterThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyGreaterThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyInScope.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyInScope.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyInScope.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,127 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of inScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyInScope() { + _conditionKey = "inScope"; + _operand = "in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasInScope()) { + if (conditionValue.equalInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue.overrideInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof InScopeOption)) { + String msg = "The argument[option] should be InScopeOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + conditionList.add(buildBindClause(columnName, value + .getInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setInScope((java.util.List) value) + .setInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setInScope((java.util.List) value, + (InScopeOption) option).setInScopeLocation(location); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,100 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNotNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNotNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyIsNotNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNotNull() { + _conditionKey = "isNotNull"; + _operand = "is not null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNotNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNotNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNotNull(DUMMY_OBJECT) + .setIsNotNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNotNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNull.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNull.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNull.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,98 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of isNull. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyIsNull extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory.getLog(ConditionKeyIsNull.class); + + /** + * Constructor. + */ + protected ConditionKeyIsNull() { + _conditionKey = "isNull"; + _operand = "is null"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (conditionValue.hasIsNull()) { + _log.debug("The value has already registered at " + callerName); + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getIsNull() == null) { + return; + } + conditionList.add(buildClauseWithoutValue(columnName)); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setIsNull(DUMMY_OBJECT).setIsNullLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyIsNull.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,109 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyLessEqual() { + _conditionKey = "lessEqual"; + _operand = "<="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessEqual()) { + if (conditionValue.equalLessEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessEqual(value).setLessEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessThan.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessThan.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessThan.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,109 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of lessThan. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLessThan extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyLessThan.class); + + /** + * Constructor. + */ + protected ConditionKeyLessThan() { + _conditionKey = "lessThan"; + _operand = "<"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasLessThan()) { + if (conditionValue.equalLessThan(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideLessThan(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getLessThan() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getLessThanLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setLessThan(value).setLessThanLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLessThan.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,104 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The condition-key of likeSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyLikeSearch extends ConditionKey { + + /** + * Constructor. + */ + protected ConditionKeyLikeSearch() { + _conditionKey = "likeSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value) { + throw new UnsupportedOperationException( + "doAddWhereClause without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + if (option == null) { + String msg = "The argument[option] should not be null: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (!(option instanceof LikeSearchOption)) { + String msg = "The argument[option] should be LikeSearchOption: columnName=" + + columnName + " value=" + value; + throw new IllegalArgumentException(msg); + } + final LikeSearchOption myOption = (LikeSearchOption) option; + conditionList.add(buildBindClauseWithRearOption(columnName, value + .getLikeSearchLocation(), myOption.getRearOption())); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + throw new UnsupportedOperationException( + "doSetupConditionValue without condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + conditionValue.setLikeSearch((String) value, (LikeSearchOption) option) + .setLikeSearchLocation(location); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyLikeSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,109 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notEqual. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotEqual extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotEqual.class); + + /** + * Constructor. + */ + protected ConditionKeyNotEqual() { + _conditionKey = "notEqual"; + _operand = "!="; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasNotEqual()) { + if (conditionValue.equalNotEqual(value)) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overrideNotEqual(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotEqual() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotEqualLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause with condition-option is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotEqual(value).setNotEqualLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotEqual.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,117 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of notInScope. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyNotInScope extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyNotInScope.class); + + /** + * Constructor. + */ + protected ConditionKeyNotInScope() { + _conditionKey = "notInScope"; + _operand = "not in"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (value instanceof java.util.List + && ((java.util.List) value).isEmpty()) { + return false; + } + if (value instanceof java.util.List) { + if (conditionValue.hasNotInScope()) { + if (conditionValue.equalNotInScope(((java.util.List) value))) { + _log.debug("The value has already registered at " + + callerName + ": value=" + value); + return false; + } else { + conditionValue + .overrideNotInScope(((java.util.List) value)); + return false; + } + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getNotInScope() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getNotInScopeLocation(), "('a1', 'a2')")); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setNotInScope((java.util.List) value) + .setNotInScopeLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyNotInScope.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,111 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.ckey; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * The condition-key of prefixSearch. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionKeyPrefixSearch extends ConditionKey { + + /** Log-instance. */ + private static final Log _log = LogFactory + .getLog(ConditionKeyPrefixSearch.class); + + /** + * Constructor. + */ + protected ConditionKeyPrefixSearch() { + _conditionKey = "prefixSearch"; + _operand = "like"; + } + + /** + * Is valid registration? + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param callerName Caller name. (NotNull) + * @return Determination. + */ + public boolean isValidRegistration(ConditionValue conditionValue, + Object value, String callerName) { + if (value == null) { + return false; + } + if (conditionValue.hasPrefixSearch()) { + if (conditionValue.equalPrefixSearch(value + getWildCard())) { + _log.debug("The value has already registered at " + callerName + + ": value=" + value); + return false; + } else { + conditionValue.overridePrefixSearch(value); + return false; + } + } + return true; + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value) { + if (value.getPrefixSearch() == null) { + return; + } + conditionList.add(buildBindClause(columnName, value + .getPrefixSearchLocation())); + } + + /** + * This method implements super#doAddWhereClause(). + * + * @param conditionList Condition list. (NotNull) + * @param columnName Column name. (NotNull) + * @param value Condition value. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doAddWhereClause(java.util.List conditionList, + String columnName, ConditionValue value, ConditionOption option) { + throw new UnsupportedOperationException( + "doAddWhereClause that has ConditionOption is unsupported!!!"); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location) { + conditionValue.setPrefixSearch( + (value != null ? value + getWildCard() : null)) + .setPrefixSearchLocation(location); + } + + /** + * This method implements super#doSetupConditionValue(). + * + * @param conditionValue Condition value. (NotNull) + * @param value Value. (NotNull) + * @param location Location. (NotNull) + * @param option Condition option. (NotNull) + */ + protected void doSetupConditionValue(ConditionValue conditionValue, + Object value, String location, ConditionOption option) { + throw new UnsupportedOperationException( + "doSetupConditionValue with condition-option is unsupported!!!"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/ckey/ConditionKeyPrefixSearch.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/ConditionOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/ConditionOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/ConditionOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,10 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public interface ConditionOption { + public String getRearOption(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/ConditionOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/DateFromToOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/DateFromToOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/DateFromToOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,27 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption; + +/** + * The option of date-from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new DateFromToOption(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class DateFromToOption extends FromToOption { + + //========================================================================== + // ========= + // Constructor + // =========== + public DateFromToOption() { + compareAsDate(); + } +} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/FromToOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/FromToOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/FromToOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,160 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption; + +/** + * The option of from-to. + * + *
    + * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    + * 
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + *   new FromToOption().compareAsDate(); 
    + *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    + *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    + * 
    + *   new FromToOption(); 
    + *     --> column >= '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column <= '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().lessThan(); 
    + *     --> column >= '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + *   new FromToOption().greaterThan().lessThan(); 
    + *     --> column > '2007/04/10 08:24:53' and column < '2007/04/16 14:36:29'
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class FromToOption implements ConditionOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected boolean _fromDateGreaterThan; + + protected boolean _toDateLessThan; + + protected boolean _compareAsDate; + + //========================================================================== + // ========= + // Interface Implementation + // ======================== + public String getRearOption() { + String msg = "Thie option does not use getRearOption()!"; + throw new UnsupportedOperationException(msg); + } + + //========================================================================== + // ========= + // Main + // ==== + public FromToOption greaterThan() { + _fromDateGreaterThan = true; + return this; + } + + public FromToOption lessThan() { + _toDateLessThan = true; + return this; + } + + /** + * Compare as date. + * + *
    +     * ex) fromDate:{2007/04/10 08:24:53} toDate:{2007/04/16 14:36:29}
    +     * 
    +     *   new FromToOption().compareAsDate();
    +     *     --> column >= '2007/04/10 00:00:00' and column < '2007/04/17 00:00:00'
    +     * 
    +     * This method ignore greaterThan() and lessThan().
    +     * 
    + * + * @return this. (NotNull) + */ + public FromToOption compareAsDate() { + _compareAsDate = true; + return this; + } + + //========================================================================== + // ========= + // Internal Main + // ============= + public java.util.Date filterFromDate(java.util.Date fromDate) { + if (fromDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(fromDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + final java.util.Date cloneDate = (java.util.Date) fromDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return fromDate; + } + + public java.util.Date filterToDate(java.util.Date toDate) { + if (toDate == null) { + return null; + } + if (_compareAsDate) { + final java.util.Calendar cal = java.util.Calendar.getInstance(); + cal.setTimeInMillis(toDate.getTime()); + clearCalendarHourMinuteSecondMilli(cal); + addCalendarNextDay(cal);// Key Point! + final java.util.Date cloneDate = (java.util.Date) toDate.clone(); + cloneDate.setTime(cal.getTimeInMillis()); + return cloneDate; + } + return toDate; + } + + public jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey getFromDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL; + } + if (_fromDateGreaterThan) { + return jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_THAN;// Default + // ! + } else { + return jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey.CK_GREATER_EQUAL;// Default + // ! + } + } + + public jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey getToDateConditionKey() { + if (_compareAsDate) { + return jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN; + } + if (_toDateLessThan) { + return jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_THAN;// Default + // ! + } else { + return jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey.CK_LESS_EQUAL;// Default + // ! + } + } + + //========================================================================== + // ========= + // Calendar Helper + // =============== + protected void addCalendarNextDay(java.util.Calendar cal) { + cal.add(java.util.Calendar.DAY_OF_MONTH, 1); + } + + protected void clearCalendarHourMinuteSecondMilli(java.util.Calendar cal) { + cal.clear(java.util.Calendar.MILLISECOND); + cal.clear(java.util.Calendar.SECOND); + cal.clear(java.util.Calendar.MINUTE); + cal.set(java.util.Calendar.HOUR_OF_DAY, cal + .getActualMinimum(java.util.Calendar.HOUR_OF_DAY)); + } +} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/InScopeOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/InScopeOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/InScopeOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,95 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of in-scope-option. + * + * @author DBFlute(AutoGenerator) + */ +public class InScopeOption extends SimpleStringOption { + + //========================================================================== + // =========== + // Split + // ===== + public InScopeOption splitBySpace() { + return (InScopeOption) doSplitBySpace(); + } + + public InScopeOption splitBySpace(int splitLimitCount) { + return (InScopeOption) doSplitBySpace(splitLimitCount); + } + + public InScopeOption splitBySpaceContainsDoubleByte() { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(); + } + + public InScopeOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (InScopeOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public InScopeOption splitByPipeLine() { + return (InScopeOption) doSplitByPipeLine(); + } + + public InScopeOption splitByPipeLine(int splitLimitCount) { + return (InScopeOption) doSplitByPipeLine(splitLimitCount); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + public InScopeOption toUpperCase() { + return (InScopeOption) doToUpperCase(); + } + + public InScopeOption toLowerCase() { + return (InScopeOption) doToLowerCase(); + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + public InScopeOption toSingleByteSpace() { + return (InScopeOption) doToSingleByteSpace(); + } + + public InScopeOption toSingleByteAlphabetNumber() { + return (InScopeOption) doToSingleByteAlphabetNumber(); + } + + public InScopeOption toSingleByteAlphabetNumberMark() { + return (InScopeOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // =========== + // Real Value + // ========== + public java.util.List generateRealValueList( + java.util.List valueList) { + final java.util.List resultList = new java.util.ArrayList(); + for (final java.util.Iterator ite = valueList.iterator(); ite + .hasNext();) { + final String value = ite.next(); + resultList.add(generateRealValue(value)); + } + return resultList; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/InScopeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/LikeSearchOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/LikeSearchOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/LikeSearchOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,281 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; + +/** + * The class of like-search-option. + * + * @author DBFlute(AutoGenerator) + */ +public class LikeSearchOption extends SimpleStringOption { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String LIKE_PREFIX = "prefix"; + + protected static final String LIKE_SUFFIX = "suffix"; + + protected static final String LIKE_CONTAIN = "contain"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String _like; + + protected String _escape; + + protected boolean _asOrSplit; + + protected List _likeAsOrCallbackList; + + //========================================================================== + // ========= + // Rear Option + // =========== + public String getRearOption() { + if (_escape == null || _escape.trim().length() == 0) { + return ""; + } + return " escape '" + _escape + "'"; + } + + //========================================================================== + // ========= + // AsOr + // ==== + /** @deprecated */ + public static interface LikeAsOrCallback { + public String getAdditionalTargetPropertyName(); + + public String filterValue(String currentValue); + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback); + } + + /** @deprecated */ + public static abstract class DefaultLikeAsOrCallback implements + LikeAsOrCallback { + public String filterValue(String currentValue) { + return currentValue; + } + + public LikeSearchOption filterOption( + LikeSearchOption optionDeepCopyWithoutCallback) { + return optionDeepCopyWithoutCallback; + } + } + + public boolean hasLikeAsOrCallback() { + return _likeAsOrCallbackList != null + && !_likeAsOrCallbackList.isEmpty(); + } + + public List getLikeAsOrCallbackList() { + if (_likeAsOrCallbackList == null) { + _likeAsOrCallbackList = new ArrayList(); + } + return _likeAsOrCallbackList; + } + + /** + * @param likeAsOrCallback Callback. + * @deprecated + */ + public void addLikeAsOrCallback(LikeAsOrCallback likeAsOrCallback) { + getLikeAsOrCallbackList().add(likeAsOrCallback); + } + + public void clearLikeAsOrCallback() { + getLikeAsOrCallbackList().clear(); + } + + //========================================================================== + // ========= + // Like + // ==== + public LikeSearchOption likePrefix() { + _like = LIKE_PREFIX; + return this; + } + + public LikeSearchOption likeSuffix() { + _like = LIKE_SUFFIX; + return this; + } + + public LikeSearchOption likeContain() { + _like = LIKE_CONTAIN; + return this; + } + + //========================================================================== + // ========= + // Escape + // ====== + public LikeSearchOption escapeByPipeLine() { + _escape = "|"; + return this; + } + + public LikeSearchOption escapeByAtMark() { + _escape = "@"; + return this; + } + + public LikeSearchOption escapeBySlash() { + _escape = "/"; + return this; + } + + public LikeSearchOption escapeByBackSlash() { + _escape = "\\"; + return this; + } + + //========================================================================== + // ========= + // Split + // ===== + public LikeSearchOption splitBySpace() { + return (LikeSearchOption) doSplitBySpace(); + } + + public LikeSearchOption splitBySpace(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpace(splitLimitCount); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte() { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(); + } + + public LikeSearchOption splitBySpaceContainsDoubleByte(int splitLimitCount) { + return (LikeSearchOption) doSplitBySpaceContainsDoubleByte(splitLimitCount); + } + + public LikeSearchOption splitByPipeLine() { + return (LikeSearchOption) doSplitByPipeLine(); + } + + public LikeSearchOption splitByPipeLine(int splitLimitCount) { + return (LikeSearchOption) doSplitByPipeLine(splitLimitCount); + } + + public LikeSearchOption asOrSplit() { + _asOrSplit = true; + return this; + } + + public boolean isAsOrSplit() { + return _asOrSplit; + } + + //========================================================================== + // ========= + // To Upper/Lower Case + // =================== + public LikeSearchOption toUpperCase() { + return (LikeSearchOption) doToUpperCase(); + } + + public LikeSearchOption toLowerCase() { + return (LikeSearchOption) doToLowerCase(); + } + + //========================================================================== + // ========= + // To Single Byte + // ============== + public LikeSearchOption toSingleByteSpace() { + return (LikeSearchOption) doToSingleByteSpace(); + } + + public LikeSearchOption toSingleByteAlphabetNumber() { + return (LikeSearchOption) doToSingleByteAlphabetNumber(); + } + + public LikeSearchOption toSingleByteAlphabetNumberMark() { + return (LikeSearchOption) doToSingleByteAlphabetNumberMark(); + } + + //========================================================================== + // ========= + // To Double Byte + // ============== + + //========================================================================== + // ========= + // Japanese + // ======== + public JapaneseOptionPartsAgent localJapanese() { + return doLocalJapanese(); + } + + //========================================================================== + // ========= + // Real Value + // ========== + public String generateRealValue(String value) { + value = super.generateRealValue(value); + + // Escape + if (_escape != null && _escape.trim().length() != 0) { + String tmp = replace(value, _escape, _escape + _escape); + tmp = replace(tmp, "%", _escape + "%"); + tmp = replace(tmp, "_", _escape + "_"); + value = tmp; + } + final String wildCard = "%"; + if (_like == null || _like.trim().length() == 0) { + return value; + } else if (_like.equals(LIKE_PREFIX)) { + return value + wildCard; + } else if (_like.equals(LIKE_SUFFIX)) { + return wildCard + value; + } else if (_like.equals(LIKE_CONTAIN)) { + return wildCard + value + wildCard; + } else { + String msg = "The like was wrong string: " + _like; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // DeepCopy + // ======== + public Object createDeepCopy() { + final LikeSearchOption deepCopy = (LikeSearchOption) super + .createDeepCopy(); + deepCopy._like = _like; + deepCopy._escape = _escape; + if (hasLikeAsOrCallback()) { + for (Iterator ite = _likeAsOrCallbackList + .iterator(); ite.hasNext();) { + deepCopy.addLikeAsOrCallback((LikeAsOrCallback) ite.next()); + } + } + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new LikeSearchOption(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "like=" + _like + ", escape=" + _escape + ", split=" + isSplit() + + ", asOrSplit = " + _asOrSplit; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/LikeSearchOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/SimpleStringOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/SimpleStringOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/SimpleStringOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,192 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.SplitOptionParts; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.ToSingleByteOptionParts; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.ToUpperLowerCaseOptionParts; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.local.JapaneseOptionPartsAgent; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; + +/** + * The class of simple-string-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringOption implements ConditionOption { + + protected SplitOptionParts _splitOptionParts; + + protected ToUpperLowerCaseOptionParts _toUpperLowerCaseOptionParts; + + protected ToSingleByteOptionParts _toSingleByteCaseOptionParts; + + protected JapaneseOptionPartsAgent _japaneseOptionPartsAgent; + + //========================================================================== + // =========== + // Rear Option + // =========== + public String getRearOption() { + return ""; + } + + //========================================================================== + // =========== + // Split + // ===== + protected SimpleStringOption doSplitBySpace() { + getSplitOptionParts().splitBySpace(); + return this; + } + + protected SimpleStringOption doSplitBySpace(int splitLimitCount) { + getSplitOptionParts().splitBySpace(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte() { + getSplitOptionParts().splitBySpaceContainsDoubleByte(); + return this; + } + + protected SimpleStringOption doSplitBySpaceContainsDoubleByte( + int splitLimitCount) { + getSplitOptionParts().splitBySpaceContainsDoubleByte(splitLimitCount); + return this; + } + + protected SimpleStringOption doSplitByPipeLine() { + getSplitOptionParts().splitByPipeLine(); + return this; + } + + protected SimpleStringOption doSplitByPipeLine(int splitLimitCount) { + getSplitOptionParts().splitByPipeLine(splitLimitCount); + return this; + } + + protected SplitOptionParts getSplitOptionParts() { + if (_splitOptionParts == null) { + _splitOptionParts = new SplitOptionParts(); + } + return _splitOptionParts; + } + + public boolean isSplit() { + return getSplitOptionParts().isSplit(); + } + + public String[] generateSplitValueArray(String value) { + return getSplitOptionParts().generateSplitValueArray(value); + } + + //========================================================================== + // =========== + // To Upper/Lower Case + // =================== + protected SimpleStringOption doToUpperCase() { + getToUpperLowerCaseOptionParts().toUpperCase(); + return this; + } + + protected SimpleStringOption doToLowerCase() { + getToUpperLowerCaseOptionParts().toLowerCase(); + return this; + } + + protected ToUpperLowerCaseOptionParts getToUpperLowerCaseOptionParts() { + if (_toUpperLowerCaseOptionParts == null) { + _toUpperLowerCaseOptionParts = new ToUpperLowerCaseOptionParts(); + } + return _toUpperLowerCaseOptionParts; + } + + //========================================================================== + // =========== + // To Single Byte + // ============== + protected SimpleStringOption doToSingleByteSpace() { + getToSingleByteOptionParts().toSingleByteSpace(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumber() { + getToSingleByteOptionParts().toSingleByteAlphabetNumber(); + return this; + } + + protected SimpleStringOption doToSingleByteAlphabetNumberMark() { + getToSingleByteOptionParts().toSingleByteAlphabetNumberMark(); + return this; + } + + protected ToSingleByteOptionParts getToSingleByteOptionParts() { + if (_toSingleByteCaseOptionParts == null) { + _toSingleByteCaseOptionParts = new ToSingleByteOptionParts(); + } + return _toSingleByteCaseOptionParts; + } + + //========================================================================== + // =========== + // To Double Byte + // ============== + + //========================================================================== + // =========== + // Japanese + // ======== + protected JapaneseOptionPartsAgent doLocalJapanese() { + return getJapaneseOptionPartsAgent(); + } + + protected JapaneseOptionPartsAgent getJapaneseOptionPartsAgent() { + if (_japaneseOptionPartsAgent == null) { + _japaneseOptionPartsAgent = new JapaneseOptionPartsAgent(); + } + return _japaneseOptionPartsAgent; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + value = getToUpperLowerCaseOptionParts().generateRealValue(value); + value = getToSingleByteOptionParts().generateRealValue(value); + value = getJapaneseOptionPartsAgent().generateRealValue(value); + return value; + } + + //========================================================================== + // =========== + // General Helper + // ============== + protected String replace(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SimpleStringOption deepCopy = newDeepCopyInstance(); + deepCopy._splitOptionParts = _splitOptionParts != null ? (SplitOptionParts) _splitOptionParts + .createDeepCopy() + : null; + deepCopy._toUpperLowerCaseOptionParts = _toUpperLowerCaseOptionParts != null ? (ToUpperLowerCaseOptionParts) _toUpperLowerCaseOptionParts + .createDeepCopy() + : null; + deepCopy._toSingleByteCaseOptionParts = _toSingleByteCaseOptionParts != null ? (ToSingleByteOptionParts) _toSingleByteCaseOptionParts + .createDeepCopy() + : null; + deepCopy._japaneseOptionPartsAgent = _japaneseOptionPartsAgent != null ? (JapaneseOptionPartsAgent) _japaneseOptionPartsAgent + .createDeepCopy() + : null; + return deepCopy; + } + + protected SimpleStringOption newDeepCopyInstance() { + return new SimpleStringOption(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/SimpleStringOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/SplitOptionParts.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/SplitOptionParts.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/SplitOptionParts.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,161 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class SplitOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _split; + + protected String _splitContainedDelimiter; + + protected int _splitLimitCount; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isSplit() { + return _split != null; + } + + public void splitBySpace() { + _split = " "; + } + + public void splitBySpace(int splitLimitCount) { + _split = " "; + _splitLimitCount = splitLimitCount; + } + + public void splitBySpaceContainsDoubleByte() { + _split = " "; + _splitContainedDelimiter = "\u3000"; + } + + public void splitBySpaceContainsDoubleByte(int splitLimitCount) { + _split = " "; + _splitContainedDelimiter = "\u3000"; + _splitLimitCount = splitLimitCount; + } + + public void splitByPipeLine() { + _split = "|"; + } + + public void splitByPipeLine(int splitLimitCount) { + _split = "|"; + _splitLimitCount = splitLimitCount; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String[] generateSplitValueArray(String value) { + if (value == null) { + String msg = "The argument[value] should not be null of empty: " + + value; + throw new IllegalArgumentException(msg); + } + value = repalceContainedDelimiterToRealDelimiter(value); + final java.util.StringTokenizer st = new java.util.StringTokenizer( + value, _split); + final String[] tokenizedValues = new String[st.countTokens()]; + int count = 0; + while (st.hasMoreTokens()) { + tokenizedValues[count] = st.nextToken(); + count++; + } + final String[] values = removeInvalidValue(tokenizedValues); + if (_splitLimitCount > 0 && values.length > _splitLimitCount) { + final String[] realValues = new String[_splitLimitCount]; + for (int i = 0; i < values.length; i++) { + if (i == _splitLimitCount) { + break; + } + realValues[i] = values[i]; + } + return realValues; + } else { + return values; + } + + } + + protected String repalceContainedDelimiterToRealDelimiter(String value) { + if (value == null) { + return value; + } + if (_splitContainedDelimiter == null) { + return value; + } + if (_split == null) { + return value; + } + return replace(value, _splitContainedDelimiter, _split); + } + + protected String[] removeInvalidValue(String[] values) { + final java.util.List ls = new java.util.ArrayList(); + for (int i = 0; i < values.length; i++) { + final String value = values[i]; + if (value == null || value.equals("")) {// Don't trim!!! + continue; + } + ls.add(value); + } + final String[] resultArray = new String[ls.size()]; + for (int i = 0; i < ls.size(); i++) { + resultArray[i] = (String) ls.get(i); + } + return resultArray; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected final String replace(String text, String fromText, String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final SplitOptionParts deepCopy = new SplitOptionParts(); + deepCopy._split = _split; + deepCopy._splitContainedDelimiter = _splitContainedDelimiter; + deepCopy._splitLimitCount = _splitLimitCount; + return deepCopy; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/SplitOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,88 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts; + +import jp.sf.pal.scheduler.db.allcommon.helper.character.GeneralCharacter; +import jp.sf.pal.scheduler.db.allcommon.helper.character.impl.GeneralCharacterImpl; + +/** + * The interface of condition-option. + * + * @author DBFlute(AutoGenerator) + */ +public class ToSingleByteOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toSingleByteSpace; + + protected boolean _toSingleByteAlphabetNumber; + + protected boolean _toSingleByteAlphabetNumberMark; + + private GeneralCharacter _generalCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToSingleByteSpace() { + return _toSingleByteSpace; + } + + public void toSingleByteSpace() { + _toSingleByteSpace = true; + } + + public void toSingleByteAlphabetNumber() { + _toSingleByteAlphabetNumber = true; + } + + public void toSingleByteAlphabetNumberMark() { + _toSingleByteAlphabetNumberMark = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Single Byte + if (_toSingleByteSpace) { + value = (value != null ? value.replaceAll("\u3000", " ") : value); + } + if (_toSingleByteAlphabetNumberMark) { + value = getGeneralCharacter().toSingleByteAlphabetNumberMark(value); + } else if (_toSingleByteAlphabetNumber) { + value = getGeneralCharacter().toSingleByteAlphabetNumber(value); + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected GeneralCharacter getGeneralCharacter() { + if (_generalCharacter == null) { + _generalCharacter = new GeneralCharacterImpl(); + } + return _generalCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToSingleByteOptionParts deepCopy = new ToSingleByteOptionParts(); + deepCopy._toSingleByteSpace = _toSingleByteSpace; + deepCopy._toSingleByteAlphabetNumber = _toSingleByteAlphabetNumber; + deepCopy._toSingleByteAlphabetNumberMark = _toSingleByteAlphabetNumberMark; + return deepCopy; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToSingleByteOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,61 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts; + +/** + * The class of condition-option-parts about toUpperCase/toLowerCase. + * + * @author DBFlute(AutoGenerator) + */ +public class ToUpperLowerCaseOptionParts { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toUpperCase; + + protected boolean _toLowerCase; + + //========================================================================== + // =========== + // Main + // ==== + public void toUpperCase() { + _toUpperCase = true; + _toLowerCase = false; + } + + public void toLowerCase() { + _toUpperCase = false; + _toLowerCase = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Upper/Lower Case + if (_toUpperCase) { + value = (value != null ? value.toUpperCase() : value); + } + if (_toLowerCase) { + value = (value != null ? value.toLowerCase() : value); + } + return value; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final ToUpperLowerCaseOptionParts deepCopy = new ToUpperLowerCaseOptionParts(); + deepCopy._toUpperCase = _toUpperCase; + deepCopy._toLowerCase = _toLowerCase; + return deepCopy; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/ToUpperLowerCaseOptionParts.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,87 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.coption.parts.local; + +import jp.sf.pal.scheduler.db.allcommon.helper.character.JapaneseCharacter; +import jp.sf.pal.scheduler.db.allcommon.helper.character.impl.JapaneseCharacterImpl; + +/** + * The class of condition-option-parts-agent. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseOptionPartsAgent { + + //========================================================================== + // =========== + // Attribute + // ========= + protected boolean _toDoubleByteKatakana; + + protected boolean _removeLastLongVowel; + + private JapaneseCharacter _japaneseCharacter; + + //========================================================================== + // =========== + // Main + // ==== + public boolean isToDoubleByteKatakana() { + return _toDoubleByteKatakana; + } + + public void toDoubleByteKatakana() { + _toDoubleByteKatakana = true; + } + + public boolean isRemoveLastLongVowel() { + return _removeLastLongVowel; + } + + public void removeLastLongVowel() { + _removeLastLongVowel = true; + } + + //========================================================================== + // =========== + // Real Value + // ========== + public String generateRealValue(String value) { + if (value == null) { + return value; + } + + // To Double Byte + if (_toDoubleByteKatakana) { + value = getJapaneseCharacter().toDoubleByteKatakana(value); + } + + // Remove + if (_removeLastLongVowel) { + if (value != null && value.endsWith("\u30fc")) { + value = value.substring(0, value.length() - "\u30fc".length()); + } + } + return value; + } + + //========================================================================== + // =========== + // Helper + // ====== + protected JapaneseCharacter getJapaneseCharacter() { + if (_japaneseCharacter == null) { + _japaneseCharacter = new JapaneseCharacterImpl(); + } + return _japaneseCharacter; + } + + //========================================================================== + // =========== + // DeepCopy + // ======== + public Object createDeepCopy() { + final JapaneseOptionPartsAgent deepCopy = new JapaneseOptionPartsAgent(); + deepCopy._toDoubleByteKatakana = _toDoubleByteKatakana; + deepCopy._removeLastLongVowel = _removeLastLongVowel; + return deepCopy; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/coption/parts/local/JapaneseOptionPartsAgent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/cvalue/ConditionValue.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/cvalue/ConditionValue.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/cvalue/ConditionValue.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1218 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.cvalue; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption; + +/** + * Condition value. + * + * @author DBFlute(AutoGenerator) + */ +public class ConditionValue { + + //========================================================================== + // ========= + // Equal + // ===== + /** Value of equal. */ + protected Object _equalValue; + + /** + * Get the value of equal. + * + * @return The value of equal. (Nullable) + */ + public Object getEqual() { + return filterValue(_equalValue); + } + + /** + * Set the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqual(Object value) { + _equalValue = value; + return this; + } + + /** + * Does it has the value of equal? + * + * @return Determination. (NotNull) + */ + public boolean hasEqual() { + return _equalValue != null; + } + + /** + * Does the value equal the value of equal? + * + * @param value The value of equal. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalEqual(Object value) { + return hasEqual() ? _equalValue.equals(value) : value == null; + } + + /** + * Override the value of equal. + * + * @param value The value of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideEqual(Object value) { + _equalValue = value; + return this; + } + + /** Location of equal. */ + protected String _equalLocation; + + /** + * Get the location of equal. + * + * @return The location of equal. (Nullable) + */ + public String getEqualLocation() { + return _equalLocation; + } + + /** + * Set the location of equal. + * + * @param location The location of equal. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setEqualLocation(String location) { + _equalLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not Equal + // ========= + /** Value of notEqual. */ + protected Object _notEqualValue; + + /** + * Get the value of notEqual. + * + * @return The value of notEqual. (Nullable) + */ + public Object getNotEqual() { + return filterValue(_notEqualValue); + } + + /** + * Set the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** + * Does it has the value of notEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasNotEqual() { + return _notEqualValue != null; + } + + /** + * Does the value equal the value of notEqual? + * + * @param value The value of notEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotEqual(Object value) { + return hasNotEqual() ? _notEqualValue.equals(value) : value == null; + } + + /** + * Override the value of notEqual. + * + * @param value The value of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotEqual(Object value) { + _notEqualValue = value; + return this; + } + + /** Location of notEqual. */ + protected String _notEqualLocation; + + /** + * Get the location of notEqual. + * + * @return The location of notEqual. (Nullable) + */ + public String getNotEqualLocation() { + return _notEqualLocation; + } + + /** + * Set the location of notEqual. + * + * @param location The location of notEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotEqualLocation(String location) { + _notEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Than + // ============ + /** Value of greaterThan. */ + protected Object _greaterThanValue; + + /** + * Get the value of greaterThan. + * + * @return The value of greaterThan. (Nullable) + */ + public Object getGreaterThan() { + return filterValue(_greaterThanValue); + } + + /** + * Set the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** + * Does it has the value of greaterThan? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterThan() { + return _greaterThanValue != null; + } + + /** + * Does the value equal the value of greaterThan? + * + * @param value The value of greaterThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterThan(Object value) { + return hasGreaterThan() ? _greaterThanValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterThan. + * + * @param value The value of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterThan(Object value) { + _greaterThanValue = value; + return this; + } + + /** Location of GreaterThan. */ + protected String _greaterThanLocation; + + /** + * Get the location of greaterThan. + * + * @return The location of greaterThan. (Nullable) + */ + public String getGreaterThanLocation() { + return _greaterThanLocation; + } + + /** + * Set the location of greaterThan. + * + * @param location The location of greaterThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterThanLocation(String location) { + _greaterThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Than + // ========= + /** Value of lessThan. */ + protected Object _lessThanValue; + + /** + * Get the value of lessThan. + * + * @return The value of lessThan. (Nullable) + */ + public Object getLessThan() { + return filterValue(_lessThanValue); + } + + /** + * Set the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** + * Does it has the value of lessThan? + * + * @return Determination. (NotNull) + */ + public boolean hasLessThan() { + return _lessThanValue != null; + } + + /** + * Does the value equal the value of lessThan? + * + * @param value The value of lessThan. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessThan(Object value) { + return hasLessThan() ? _lessThanValue.equals(value) : value == null; + } + + /** + * Override the value of lessThan. + * + * @param value The value of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessThan(Object value) { + _lessThanValue = value; + return this; + } + + /** Location of lessThan. */ + protected String _lessThanLocation; + + /** + * Get the location of lessThan. + * + * @return The location of lessThan. (Nullable) + */ + public String getLessThanLocation() { + return _lessThanLocation; + } + + /** + * Set the location of lessThan. + * + * @param location The location of lessThan. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessThanLocation(String location) { + _lessThanLocation = location; + return this; + } + + //========================================================================== + // ========= + // Greater Equal + // ============= + /** Value of greaterEqual. */ + protected Object _greaterEqualValue; + + /** + * Get the value of greaterEqual. + * + * @return The value of greaterEqual. (Nullable) + */ + public Object getGreaterEqual() { + return filterValue(_greaterEqualValue); + } + + /** + * Set the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** + * Does it has the value of greaterEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasGreaterEqual() { + return _greaterEqualValue != null; + } + + /** + * Does the value equal the value of greaterEqual? + * + * @param value The value of greaterEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalGreaterEqual(Object value) { + return hasGreaterEqual() ? _greaterEqualValue.equals(value) + : value == null; + } + + /** + * Override the value of greaterEqual. + * + * @param value The value of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideGreaterEqual(Object value) { + _greaterEqualValue = value; + return this; + } + + /** Location of greaterEqual. */ + protected String _greaterEqualLocation; + + /** + * Get the location of greaterEqual. + * + * @return The location of greaterEqual. (Nullable) + */ + public String getGreaterEqualLocation() { + return _greaterEqualLocation; + } + + /** + * Set the location of greaterEqual. + * + * @param location The location of greaterEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setGreaterEqualLocation(String location) { + _greaterEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Less Equal + // ========== + /** Value of lessEqual. */ + protected Object _lessEqualValue; + + /** + * Get the value of lessEqual. + * + * @return The value of lessEqual. (Nullable) + */ + public Object getLessEqual() { + return filterValue(_lessEqualValue); + } + + /** + * Set the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** + * Does it has the value of lessEqual? + * + * @return Determination. (NotNull) + */ + public boolean hasLessEqual() { + return _lessEqualValue != null; + } + + /** + * Does the value equal the value of lessEqual? + * + * @param value The value of lessEqual. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalLessEqual(Object value) { + return hasLessEqual() ? _lessEqualValue.equals(value) : value == null; + } + + /** + * Override the value of lessEqual. + * + * @param value The value of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideLessEqual(Object value) { + _lessEqualValue = value; + return this; + } + + /** Location of lessEqual. */ + protected String _lessEqualLocation; + + /** + * Get the location of lessEqual. + * + * @return The location of lessEqual. (Nullable) + */ + public String getLessEqualLocation() { + return _lessEqualLocation; + } + + /** + * Set the location of lessEqual. + * + * @param location The location of lessEqual. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLessEqualLocation(String location) { + _lessEqualLocation = location; + return this; + } + + //========================================================================== + // ========= + // Prefix Search + // ============= + /** Value of prefixSearch. */ + protected Object _prefixSearch; + + /** + * Get the value of prefixSearch. + * + * @return The value of prefixSearch. (Nullable) + */ + public Object getPrefixSearch() { + return filterValue(_prefixSearch); + } + + /** + * Set the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** + * Does it has the value of prefixSearch? + * + * @return Determination. (NotNull) + */ + public boolean hasPrefixSearch() { + return _prefixSearch != null; + } + + /** + * Does the value equal the value of prefixSearch? + * + * @param value The value of prefixSearch. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalPrefixSearch(Object value) { + return hasPrefixSearch() ? _prefixSearch.equals(value) : value == null; + } + + /** + * Override the value of prefixSearch. + * + * @param value The value of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overridePrefixSearch(Object value) { + _prefixSearch = value; + return this; + } + + /** Location of prefixSearch. */ + protected String _prefixSearchLocation; + + /** + * Get the location of prefixSearch. + * + * @return The location of prefixSearch. (Nullable) + */ + public String getPrefixSearchLocation() { + return _prefixSearchLocation; + } + + /** + * Set the location of prefixSearch. + * + * @param location The location of prefixSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setPrefixSearchLocation(String location) { + _prefixSearchLocation = location; + return this; + } + + //========================================================================== + // ========= + // Like Search + // =========== + /** Value of likeSearch. */ + protected List _likeSearch; + + /** Value of likeSearch for spare. */ + protected List _likeSearch4Spare; + + /** + * Get the value of likeSearch. + * + * @return The value of likeSearch. (Nullable) + */ + public String getLikeSearch() { + if (_likeSearch == null) { + return null; + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + final LikeSearchValue likeSearchValue = (LikeSearchValue) _likeSearch + .remove(0); + return (String) filterValue(likeSearchValue.generateRealValue()); + } + + /** + * Set the value of likeSearch. + * + * @param value The value of likeSearch. (Nullable) + * @param option The option of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearch(String value, LikeSearchOption option) { + if (_likeSearch == null) { + _likeSearch = new ArrayList(); + _likeSearch4Spare = new ArrayList(); + } + if (_likeSearch.isEmpty() && !_likeSearch4Spare.isEmpty()) { + for (int index = 0; index < _likeSearch4Spare.size(); index++) { + _likeSearch.add(_likeSearch4Spare.get(index)); + } + } + LikeSearchValue likeSearchValue = new LikeSearchValue(value, option); + _likeSearch.add(likeSearchValue); + _likeSearch4Spare.add(likeSearchValue); + return this; + } + + /** Location of likeSearch. */ + protected String _likeSearchLocation; + + /** + * Get the location of likeSearch. + * + * @return The location of likeSearch. (Nullable) + */ + public String getLikeSearchLocation() { + return _likeSearchLocation; + } + + /** + * Set the location of likeSearch. + * + * @param location The location of likeSearch. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setLikeSearchLocation(String location) { + _likeSearchLocation = location; + return this; + } + + protected static class LikeSearchValue { + protected String _value; + + protected LikeSearchOption _option; + + public LikeSearchValue(String value, LikeSearchOption option) { + _value = value; + _option = option; + } + + public String getValue() { + return _value; + } + + public LikeSearchOption getOption() { + return _option; + } + + public String generateRealValue() { + if (_option == null) { + return _value; + } + return _option.generateRealValue(_value); + } + } + + //========================================================================== + // ========= + // In Scope + // ======== + /** Value of inScope. */ + protected List _inScope; + + protected InScopeOption _inScopeOption; + + /** + * Get the value of inScope. + * + * @return The value of inScope. (Nullable) + */ + @SuppressWarnings("unchecked") + public List getInScope() { + if (_inScopeOption != null) { + return filterValue(_inScopeOption + .generateRealValueList((List) _inScope)); + } + return filterValue(_inScope); + } + + /** + * Set the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScope(List value) { + _inScope = value; + return this; + } + + public ConditionValue setInScope(List value, InScopeOption option) { + _inScope = value; + _inScopeOption = option; + return this; + } + + /** + * Does it has the value of inScope? + * + * @return Determination. (NotNull) + */ + public boolean hasInScope() { + return _inScope != null; + } + + /** + * Does the value equal the value of inScope? + * + * @param value The value of inScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalInScope(List value) { + return hasInScope() ? _inScope.equals(value) : value == null; + } + + /** + * Override the value of inScope. + * + * @param value The value of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideInScope(List value) { + _inScope = value; + return this; + } + + /** Location of InScope. */ + protected String _inScopeLocation; + + /** + * Get the location of inScope. + * + * @return The location of inScope. (Nullable) + */ + public String getInScopeLocation() { + return _inScopeLocation; + } + + /** + * Set the location of inScope. + * + * @param location The location of inScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setInScopeLocation(String location) { + _inScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Not In Scope + // ============ + /** Value of notInScope. */ + protected List _notInScope; + + /** + * Get the value of notInScope. + * + * @return The value of notInScope. (Nullable) + */ + public List getNotInScope() { + return filterValue(_notInScope); + } + + /** + * Set the value of notInScope. + * + * @param value The value of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScope(List value) { + _notInScope = value; + return this; + } + + /** + * Does it has the value of inNotScope? + * + * @return Determination. (NotNull) + */ + public boolean hasNotInScope() { + return _notInScope != null; + } + + /** + * Does the value equal the value of inNotScope? + * + * @param value The value of inNotScope. (Nullable) + * @return Determination. (NotNull) + */ + public boolean equalNotInScope(List value) { + return hasNotInScope() ? _notInScope.equals(value) : value == null; + } + + /** + * Override the value of inNotScope. + * + * @param value The value of inNotScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue overrideNotInScope(List value) { + _notInScope = value; + return this; + } + + /** Location of notInScope. */ + protected String _notInScopeLocation; + + /** + * Get the location of notInScope. + * + * @return The location of notInScope. (Nullable) + */ + public String getNotInScopeLocation() { + return _notInScopeLocation; + } + + /** + * Set the location of notInScope. + * + * @param location The location of notInScope. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setNotInScopeLocation(String location) { + _notInScopeLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Null + // ======= + /** Value of isNull. */ + protected Object _isNullValue; + + /** + * Get the value of isNull. + * + * @return The value of isNull. (Nullable) + */ + public Object getIsNull() { + return _isNullValue; + } + + /** + * Set the value of isNull. + * + * @param value The value of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNull(Object value) { + _isNullValue = value; + return this; + } + + /** + * Does it has the value of isNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNull() { + return _isNullValue != null; + } + + /** Location of isNull. */ + protected String _isNullLocation; + + /** + * Get the location of isNull. + * + * @return The location of isNull. (Nullable) + */ + public String getIsNullLocation() { + return _isNullLocation; + } + + /** + * Set the location of isNull. + * + * @param location The location of isNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNullLocation(String location) { + _isNullLocation = location; + return this; + } + + //========================================================================== + // ========= + // Is Not Null + // =========== + /** Value of isNotNull. */ + protected Object _isNotNullValue; + + /** + * Get the value of isNotNull. + * + * @return The value of isNotNull. (Nullable) + */ + public Object getIsNotNull() { + return _isNotNullValue; + } + + /** + * Set the value of isNotNull. + * + * @param value The value of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNull(Object value) { + _isNotNullValue = value; + return this; + } + + /** + * Does it has the value of isNotNull? + * + * @return Determination. (NotNull) + */ + public boolean hasIsNotNull() { + return _isNotNullValue != null; + } + + /** Location of isNotNull. */ + protected String _isNotNullLocation; + + /** + * Get the location of isNotNull. + * + * @return The location of isNotNull. (Nullable) + */ + public String getIsNotNullLocation() { + return _isNotNullLocation; + } + + /** + * Set the location of isNotNull. + * + * @param location The location of isNotNull. (Nullable) + * @return this. (NotNull) + */ + public ConditionValue setIsNotNullLocation(String location) { + _isNotNullLocation = location; + return this; + } + + //========================================================================== + // =========== + // Filter + // ====== + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param value Value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected Object filterValue(Object value) { + if (value == null) { + return value; + } + if (value instanceof java.sql.Time) { + return value; + } + if (value instanceof java.sql.Timestamp) { + return value; + } + if (value instanceof java.util.Date + || value instanceof java.util.Calendar) { + return SqlDateConversionUtil.toDate(value); + } else { + return value; + } + } + + /** + * Filter value. If the value is instance of java.util.Date or + * java.util.Calendar, returns value as java.sql.Date. + * + * @param valueList Value-list. (Nullable) + * @return Filtered value-list. (Nullable) + */ + protected List filterValue(List valueList) { + if (valueList == null || valueList.isEmpty()) { + return valueList; + } + final List resultList = new ArrayList(); + for (Iterator ite = valueList.iterator(); ite.hasNext();) { + Object value = ite.next(); + resultList.add(filterValue(value)); + } + return resultList; + } + + protected static class SqlDateConversionUtil { + + private SqlDateConversionUtil() { + } + + public static java.sql.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.sql.Date toDate(Object o, String pattern) { + if (o instanceof java.sql.Date) { + return (java.sql.Date) o; + } + java.util.Date date = DateConversionUtil.toDate(o, pattern); + if (date != null) { + return new java.sql.Date(date.getTime()); + } + return null; + } + } + + protected static class DateConversionUtil { + + private DateConversionUtil() { + } + + public static java.util.Date toDate(Object o) { + return toDate(o, null); + } + + public static java.util.Date toDate(Object o, String pattern) { + if (o == null) { + return null; + } else if (o instanceof String) { + return toDate((String) o, pattern); + } else if (o instanceof java.util.Date) { + return (java.util.Date) o; + } else if (o instanceof java.util.Calendar) { + return ((java.util.Calendar) o).getTime(); + } else { + return toDate(o.toString(), pattern); + } + } + + public static java.util.Date toDate(String s, String pattern) { + return toDate(s, pattern, java.util.Locale.getDefault()); + } + + public static java.util.Date toDate(String s, String pattern, + java.util.Locale locale) { + java.text.SimpleDateFormat sdf = getDateFormat(s, pattern, locale); + try { + return sdf.parse(s); + } catch (java.text.ParseException ex) { + throw new RuntimeException(ex); + } + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + String pattern, java.util.Locale locale) { + if (pattern != null) { + return new java.text.SimpleDateFormat(pattern); + } + return getDateFormat(s, locale); + } + + public static java.text.SimpleDateFormat getDateFormat(String s, + java.util.Locale locale) { + String pattern = getPattern(locale); + String shortPattern = removeDelimiter(pattern); + String delimitor = findDelimiter(s); + if (delimitor == null) { + if (s.length() == shortPattern.length()) { + return new java.text.SimpleDateFormat(shortPattern); + } + if (s.length() == shortPattern.length() + 2) { + return new java.text.SimpleDateFormat(InternalStringUtil + .replace(shortPattern, "yy", "yyyy")); + } + } else { + String[] array = InternalStringUtil.split(s, delimitor); + for (int i = 0; i < array.length; ++i) { + if (array[i].length() == 4) { + pattern = InternalStringUtil.replace(pattern, "yy", + "yyyy"); + break; + } + } + return new java.text.SimpleDateFormat(pattern); + } + return new java.text.SimpleDateFormat(); + } + + public static java.text.SimpleDateFormat getDateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getPattern(locale)); + } + + public static java.text.SimpleDateFormat getY4DateFormat( + java.util.Locale locale) { + return new java.text.SimpleDateFormat(getY4Pattern(locale)); + } + + public static String getY4Pattern(java.util.Locale locale) { + String pattern = getPattern(locale); + if (pattern.indexOf("yyyy") < 0) { + pattern = InternalStringUtil.replace(pattern, "yy", "yyyy"); + } + return pattern; + } + + public static String getPattern(java.util.Locale locale) { + java.text.SimpleDateFormat df = (java.text.SimpleDateFormat) java.text.DateFormat + .getDateInstance(java.text.DateFormat.SHORT, locale); + String pattern = df.toPattern(); + int index = pattern.indexOf(' '); + if (index > 0) { + pattern = pattern.substring(0, index); + } + if (pattern.indexOf("MM") < 0) { + pattern = InternalStringUtil.replace(pattern, "M", "MM"); + } + if (pattern.indexOf("dd") < 0) { + pattern = InternalStringUtil.replace(pattern, "d", "dd"); + } + return pattern; + } + + public static String findDelimiter(String value) { + for (int i = 0; i < value.length(); ++i) { + char c = value.charAt(i); + if (Character.isDigit(c)) { + continue; + } + return Character.toString(c); + } + return null; + } + + public static String removeDelimiter(String pattern) { + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < pattern.length(); ++i) { + char c = pattern.charAt(i); + if (c == 'y' || c == 'M' || c == 'd') { + buf.append(c); + } + } + return buf.toString(); + } + } + + protected static class InternalStringUtil { + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new java.util.ArrayList(); + java.util.StringTokenizer st = new java.util.StringTokenizer(str, + delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/cvalue/ConditionValue.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,55 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.grouping; + +/** + * The class of option for grouping. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected int _elementCount; + + protected GroupingRowEndDeterminer _groupingRowEndDeterminer; + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. You should set the determiner of grouping row end after you + * create the instance. + */ + public GroupingOption() { + } + + /** + * Constructor. + * + * @param elementCount The count of row element in a group. + */ + public GroupingOption(int elementCount) { + _elementCount = elementCount; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public int getElementCount() { + return this._elementCount; + } + + public GroupingRowEndDeterminer getGroupingRowEndDeterminer() { + return this._groupingRowEndDeterminer; + } + + public void setGroupingRowEndDeterminer( + GroupingRowEndDeterminer groupingRowEndDeterminer) { + this._groupingRowEndDeterminer = groupingRowEndDeterminer; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,24 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.grouping; + +/** + * The interface of grouping end(switch point) determiner. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowEndDeterminer { + + /** + * Determine whether the grouping row is end. + * + * @param rowResource The resource of grouping row. (NotNull and the + * property 'groupingRowList' is not empty and the property + * 'currentEntity' is not null) + * @param nextEntity The entity of next element. (NotNull and the + * rowResource does not contain yet) + * @return Whether the grouping row is end. (If the value is true, break + * grouping row and the nextEntity is registered to next row) + */ + public boolean determine(GroupingRowResource rowResource, + ENTITY nextEntity); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowEndDeterminer.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowResource.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowResource.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowResource.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,93 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.grouping; + +import java.util.ArrayList; +import java.util.List; + +/** + * The class of row resource for grouping making. + * + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public class GroupingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _groupingRowList = new ArrayList(); + + protected int _elementCurrentIndex; + + protected int _breakCount; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + /** + * @return Does the list of grouping row size up the break count? + */ + public boolean isSizeUpBreakCount() { + return _elementCurrentIndex == (_breakCount - 1); + } + + //========================================================================== + // =========== + // Accessor + // ======== + /** + * @return The list of grouping row. (NotNull and NotEmpty) + */ + public List getGroupingRowList() { + return this._groupingRowList; + } + + /** + * Add the element entity to the list of grouping row. {INTERNAL METHOD} + * + * @param groupingRow The element entity to the list of grouping row. + */ + public void addGroupingRowList(ENTITY groupingRow) { + this._groupingRowList.add(groupingRow); + } + + /** + * @return The entity of element current index. (NotNull) + */ + public ENTITY getCurrentEntity() { + return _groupingRowList.get(_elementCurrentIndex); + } + + /** + * @return The index of current element. + */ + public int getElementCurrentIndex() { + return this._elementCurrentIndex; + } + + /** + * Set the index of current element. {INTERNAL METHOD} + * + * @param elementCurrentIndex The index of current element. + */ + public void setElementCurrentIndex(int elementCurrentIndex) { + this._elementCurrentIndex = elementCurrentIndex; + } + + /** + * @return The count of break loop. + */ + public int getBreakCount() { + return this._breakCount; + } + + /** + * Set the count of break loop. {INTERNAL METHOD} + * + * @param breakCount The count of break loop. + */ + public void setBreakCount(int breakCount) { + this._breakCount = breakCount; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowSetupper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowSetupper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowSetupper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.grouping; + +/** + * The setupper of grouping row. + * + * @param The type of row. + * @param The type of entity. + * @author DBFlute(AutoGenerator) + */ +public interface GroupingRowSetupper { + + /** + * Set up the instance of grouping row. + * + * @param groupingRowResource Grouping row resource. (NotNull) + * @return The instance of grouping row. (NotNull) + */ + public ROW setup(GroupingRowResource groupingRowResource); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/grouping/GroupingRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/mapping/EntityDtoMapper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/mapping/EntityDtoMapper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/mapping/EntityDtoMapper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.mapping; + +/** + * The mapper of entity-to-dto. + * + * @param The type of entity. + * @param The type of dto. + * @author DBFlute(AutoGenerator) + */ +public interface EntityDtoMapper { + + /** + * Map entity to data transfer object. + * + * @param entity Entity. (NotNull) + * @return Data transfer object. (NotNull) + */ + public DTO map(ENTITY entity); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/mapping/EntityDtoMapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlContext.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlContext.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlContext.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,427 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.scheduler.db.allcommon.DBFluteConfig; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.framework.util.InputStreamReaderUtil; +import org.seasar.framework.util.ReaderUtil; +import org.seasar.framework.util.ResourceUtil; + +/** + * The context of outside-SQL. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlContext { + + /** Log instance. */ + private static final Log _log = LogFactory.getLog(OutsideSqlContext.class); + + //========================================================================== + // ========= + // Thread Local + // ============ + /** The thread-local for this. */ + private static final ThreadLocal _threadLocal = new ThreadLocal(); + + /** + * Get outside-SQL context on thread. + * + * @return Outside-SQL context. (Nullable) + */ + public static OutsideSqlContext getOutsideSqlContextOnThread() { + return (OutsideSqlContext) _threadLocal.get(); + } + + /** + * Set outside-SQL context on thread. + * + * @param outsideSqlContext Outside-SQL context. (NotNull) + */ + public static void setOutsideSqlContextOnThread( + OutsideSqlContext outsideSqlContext) { + if (outsideSqlContext == null) { + String msg = "The argument[outsideSqlContext] must not be null."; + throw new IllegalArgumentException(msg); + } + _threadLocal.set(outsideSqlContext); + } + + /** + * Is existing outside-SQL context on thread? + * + * @return Determination. + */ + public static boolean isExistOutsideSqlContextOnThread() { + return (_threadLocal.get() != null); + } + + /** + * Clear outside-SQL context on thread. + */ + public static void clearOutsideSqlContextOnThread() { + _threadLocal.set(null); + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public static String generateSpecifiedOutsideSqlUniqueKey( + String methodName, String path, Object pmb, + OutsideSqlOption option, Object resultTypeSpecification) { + final String pmbKey = (pmb != null ? pmb.getClass().getName() : "null"); + final String resultKey = (resultTypeSpecification != null ? ":" + + resultTypeSpecification : "null"); + final String tableDbName = option.getTableDbName(); + final String generatedUniqueKey = option.generateUniqueKey(); + return methodName + "():" + tableDbName + ":" + path + ":" + pmbKey + + ":" + generatedUniqueKey + resultKey; + } + + //========================================================================== + // ========= + // Exception Handling + // ================== + public static void throwOutsideSqlNotFoundException(String path) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The outsideSql was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your target file of outsideSql on your classpath." + + getLineSeparator(); + msg = msg + + "And please confirm the file name and the file path STRICTLY!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified OutsideSql Path]" + getLineSeparator() + path + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException( + msg); + } + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected boolean _dynamicBinding; + + protected boolean _offsetByCursorForcedly; + + protected boolean _limitByCursorForcedly; + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + /** The path of outside-sql. (The mark of Specified-OutsideSql) */ + protected String _outsideSqlPath; + + protected Object _parameterBean; + + protected Object _resultTypeSpecification; + + protected String _methodName; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + /** The DB name of table for using behavior-SQL-path. (Nullable) */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Read SQL + // ======== + /** + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The filtered outside-SQL. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readFilteredOutsideSql(String sqlFileEncoding, + String dbmsSuffix) { + final String sql = readOutsideSql(sqlFileEncoding, dbmsSuffix); + return replaceOutsideSqlBindCharacterOnLineComment(sql); + } + + protected String replaceOutsideSqlBindCharacterOnLineComment(String sql) { + final String bindCharacter = "?"; + if (sql.indexOf(bindCharacter) < 0) { + return sql; + } + final String lineSeparator = "\n"; + if (sql.indexOf(lineSeparator) < 0) { + return sql; + } + final String lineCommentMark = "--"; + if (sql.indexOf(lineCommentMark) < 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split(lineSeparator); + for (String line : lines) { + final int lineCommentIndex = line.indexOf("--"); + if (lineCommentIndex < 0) { + sb.append(line).append(lineSeparator); + continue; + } + final String lineComment = line.substring(lineCommentIndex); + if (lineComment.contains("ELSE") + || !lineComment.contains(bindCharacter)) { + sb.append(line).append(lineSeparator); + continue; + } + + if (_log.isDebugEnabled()) { + _log.debug("...Replacing bind character on line comment: " + + lineComment); + } + final String filteredLineComment = replaceString(lineComment, + bindCharacter, "Q"); + sb.append(line.substring(0, lineCommentIndex)).append( + filteredLineComment).append(lineSeparator); + } + return sb.toString(); + } + + /** + * Read outside-sql path. Required attribute is 'outsideSqlPath'. + * + * @param sqlFileEncoding The encoding of SQL file. (NotNull) + * @param dbmsSuffix The suffix of DBMS. (NotNull) + * @return The text of SQL. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the SQL is not found. + */ + public String readOutsideSql(String sqlFileEncoding, String dbmsSuffix) { + final String standardPath = _outsideSqlPath; + final String dbmsPath = buildDbmsPath(standardPath, dbmsSuffix); + String sql; + if (isExistResource(dbmsPath)) { + sql = readText(dbmsPath, sqlFileEncoding); + } else if (isExistResource(standardPath)) { + sql = readText(standardPath, sqlFileEncoding); + } else { + throwOutsideSqlNotFoundException(standardPath); + return null; // Non Reachable. + } + return removeInitialUnicodeBomIfNeeds(sqlFileEncoding, sql); + } + + protected String buildDbmsPath(String standardPath, String dbmsSuffix) { + final String dbmsPath; + final int lastIndexOfDot = standardPath.lastIndexOf("."); + if (lastIndexOfDot >= 0 + && !standardPath.substring(lastIndexOfDot).contains("/")) { + final String base = standardPath.substring(0, lastIndexOfDot); + dbmsPath = base + dbmsSuffix + + standardPath.substring(lastIndexOfDot); + } else { + dbmsPath = standardPath + dbmsSuffix; + } + return dbmsPath; + } + + protected String removeInitialUnicodeBomIfNeeds(String sqlFileEncoding, + String sql) { + if ("UTF-8".equalsIgnoreCase(sqlFileEncoding) && sql.length() > 0 + && sql.charAt(0) == '\uFEFF') { + sql = sql.substring(1); + } + return sql; + } + + //========================================================================== + // ========= + // Behavior Query Path + // =================== + public void setupBehaviorQueryPathIfNeeds() { + if (!isBehaviorQueryPathEnabled()) { + return; + } + if (_outsideSqlPath.contains(":")) { + final String subDirectoryValue = _outsideSqlPath.substring(0, + _outsideSqlPath.lastIndexOf(":")); + final String subDirectoryPath = replaceString(subDirectoryValue, + ":", "/"); + final String behaviorQueryPath = _outsideSqlPath + .substring(_outsideSqlPath.lastIndexOf(":") + ":".length()); + final String behaviorClassPath = replaceString( + buildBehaviorSqlPackageName(), ".", "/"); + final String behaviorPackagePath = behaviorClassPath.substring(0, + behaviorClassPath.lastIndexOf("/")); + final String behaviorClassName = behaviorClassPath + .substring(behaviorClassPath.lastIndexOf("/") + + "/".length()); + _outsideSqlPath = behaviorPackagePath + "/" + subDirectoryPath + + "/" + behaviorClassName + "_" + behaviorQueryPath + + ".sql"; + } else { + _outsideSqlPath = replaceString(buildBehaviorSqlPackageName(), ".", + "/") + + "_" + _outsideSqlPath + ".sql"; + } + } + + protected String buildBehaviorSqlPackageName() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableDbName); + final String behaviorTypeName = dbmeta.getBehaviorTypeName(); + final String outsideSqlPackage = DBFluteConfig.getInstance() + .getOutsideSqlPackage(); + if (outsideSqlPackage != null && outsideSqlPackage.trim().length() > 0) { + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + ".".length()); + String tmp = behaviorTypeName.substring(0, behaviorTypeName + .lastIndexOf(".")); + final String exbhvName = tmp.contains(".") ? tmp.substring(tmp + .lastIndexOf(".") + + ".".length()) : tmp; + return outsideSqlPackage + "." + exbhvName + "." + + behaviorClassName; + } else { + return behaviorTypeName; + } + } + + protected boolean isBehaviorQueryPathEnabled() { + if (isProcedure()) {// [DBFlute-0.7.5] + return false; + } + return _outsideSqlPath != null && !_outsideSqlPath.contains("/") + && !_outsideSqlPath.contains(".") && _tableDbName != null; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean isSpecifiedOutsideSql() { + return _outsideSqlPath != null; + } + + // [DBFlute-0.7.5] + public boolean isProcedure() { + return _methodName != null && _methodName.startsWith("call"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected boolean isExistResource(String path) { + return ResourceUtil.isExist(path); + } + + protected String readText(final String path, String sqlFileEncoding) { + final java.io.InputStream is = ResourceUtil.getResourceAsStream(path); + final java.io.Reader reader = InputStreamReaderUtil.create(is, + sqlFileEncoding); + return ReaderUtil.readText(reader); + } + + protected static String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public void setDynamicBinding(boolean dynamicBinding) { + this._dynamicBinding = dynamicBinding; + } + + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public void setOffsetByCursorForcedly(boolean offsetByCursorForcedly) { + this._offsetByCursorForcedly = offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public void setLimitByCursorForcedly(boolean limitByCursorForcedly) { + this._limitByCursorForcedly = limitByCursorForcedly; + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + public String getOutsideSqlPath() { + return _outsideSqlPath; + } + + public void setOutsideSqlPath(String outsideSqlPath) { + this._outsideSqlPath = outsideSqlPath; + } + + public Object getParameterBean() { + return _parameterBean; + } + + public void setParameterBean(Object parameterBean) { + this._parameterBean = parameterBean; + } + + public Object getResultTypeSpecification() { + return _resultTypeSpecification; + } + + public void setResultTypeSpecification(Object resultTypeSpecification) { + this._resultTypeSpecification = resultTypeSpecification; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + this._methodName = methodName; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + this._statementConfig = statementConfig; + } + + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + this._tableDbName = tableDbName; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlContext.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler; + +/** + * The dao of outside-sql. + * + * @author DBFlute(AutoGenerator) + */ +public interface OutsideSqlDao extends DaoReadable { + + //========================================================================== + // ========= + // Select + // ====== + List selectList(String path, Object pmb, + OutsideSqlOption option, Class entityType); + + Object selectCursor(String path, Object pmb, + OutsideSqlOption option, CursorHandler handler); + + //========================================================================== + // ========= + // Execute + // ======= + int execute(String path, Object pmb, OutsideSqlOption option); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Call + // ==== + void call(String path, Object pmb, OutsideSqlOption option); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,116 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql; + +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; + +/** + * The option of outside-SQL. It contains various information about execution. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlOption { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Option + // ------ + protected String _pagingRequestType = "non"; + + protected boolean _dynamicBinding; + + /** The configuration of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + // ----------------------------------------------------- + // Information + // ----------- + /** The DB name of table. It is not related with the options of outside-SQL. */ + protected String _tableDbName; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void autoPaging() { + _pagingRequestType = "auto"; + } + + public void manualPaging() { + _pagingRequestType = "manual"; + } + + public void dynamicBinding() { + _dynamicBinding = true; + } + + //========================================================================== + // ========= + // Unique Key + // ========== + public String generateUniqueKey() { + return "{" + _pagingRequestType + "/" + _dynamicBinding + "}"; + } + + //========================================================================== + // ========= + // Copy + // ==== + public OutsideSqlOption copyOptionWithoutPaging() { + final OutsideSqlOption copyOption = new OutsideSqlOption(); + if (isDynamicBinding()) { + copyOption.dynamicBinding(); + } + copyOption.setTableDbName(_tableDbName); + return copyOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{paging=" + _pagingRequestType + ", dynamic=" + _dynamicBinding + + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Option + // ------ + public boolean isAutoPaging() { + return "auto".equals(_pagingRequestType); + } + + public boolean isManualPaging() { + return "manual".equals(_pagingRequestType); + } + + public boolean isDynamicBinding() { + return _dynamicBinding; + } + + public StatementConfig getStatementConfig() { + return _statementConfig; + } + + public void setStatementConfig(StatementConfig statementConfig) { + _statementConfig = statementConfig; + } + + // ----------------------------------------------------- + // Information + // ----------- + public String getTableDbName() { + return _tableDbName; + } + + public void setTableDbName(String tableDbName) { + _tableDbName = tableDbName; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/OutsideSqlOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/ProcedurePmb.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/ProcedurePmb.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/ProcedurePmb.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,16 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql; + +/** + * The parameter-bean for procedure. + * + * @author DBFlute(AutoGenerator) + */ +public interface ProcedurePmb { + + /** + * Get the value of procedure name. + * + * @return The value of procedure name. (NotNull) + */ + public String getProcedureName(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/ProcedurePmb.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,251 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.ProcedurePmb; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; + +/** + * The executor of outside-sql.
    + * + *
    + * {Basic}
    + *   o selectList()
    + *   o execute()
    + *   o call()
    + * 
    + * {Entity}
    + *   o entityHandling().selectEntity()
    + *   o entityHandling().selectEntityWithDeletedCheck()
    + * 
    + * {Cursor}
    + *   o cursorHandling().selectCursor()
    + * 
    + * {Paging}
    + *   o autoPaging().selectList()
    + *   o autoPaging().selectPage()
    + *   o manualPaging().selectList()
    + *   o manualPaging().selectPage()
    + * 
    + * {Option -- Dynamic}
    + *   o dynamicBinding().selectList()
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlBasicExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outside-sql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** Table DB name. (NotNull) */ + protected final String _tableDbName; + + /** Is it dynamic binding? */ + protected boolean _dynamicBinding; + + /** The config of statement. (Nullable) */ + protected StatementConfig _statementConfig; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlBasicExecutor(OutsideSqlDao outsideSqlDao, + String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the list of the entity. + * + * @param The type of entity for element. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The element type of entity. (NotNull) + * @return The result bean of selected list. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, Object pmb, + Class entityType) { + List resultList = _outsideSqlDao.selectList(path, pmb, + createOutsideSqlOption(), entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + //========================================================================== + // ========= + // Execute + // ======= + /** + * Execute. {Insert/Update/Delete/Etc...} + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @return The count of execution. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public int execute(String path, Object pmb) { + return _outsideSqlDao.execute(path, pmb, createOutsideSqlOption()); + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Procedure Call + // ============== + /** + * Call stored procedure. + * + * @param pmb The parameter-bean for procedure. (NotNull) + */ + public void call(ProcedurePmb pmb) { + if (pmb == null) { + throw new IllegalArgumentException( + "The argument of call() 'pmb' should not be null!"); + } + _outsideSqlDao.call(pmb.getProcedureName(), pmb, + createOutsideSqlOption()); + } + + //========================================================================== + // ========= + // Option + // ====== + // ----------------------------------------------------- + // Result Handling + // --------------- + /** + * Specify cursor handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.cursorHandling().selectCursor(path, pmb, handler);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlCursorExecutor cursorHandling() { + return new OutsideSqlCursorExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + /** + * Specify entity handling.
    + * + *
    +     * # ex) Your Program
    +     * #
    +     * # executor.entityHandling().selectEntityWithDeletedCheck(path, pmb, Xxx.class);
    +     * #
    +     * 
    + * + * @return The cursor executor of outside-sql. (NotNull) + */ + public OutsideSqlEntityExecutor entityHandling() { + return new OutsideSqlEntityExecutor(_outsideSqlDao, + createOutsideSqlOption()); + } + + // ----------------------------------------------------- + // Paging + // ------ + /** + * Option of autoPaging.
    If you invoke this, you don't need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * # -- limit 40, 20        *Here is unnecessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is auto. (NotNull) + */ + public OutsideSqlPagingExecutor autoPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.autoPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + /** + * Option of manualPaging.
    If you invoke this, you need to write + * paging condition on your SQL.
    + * + *
    +     * # ex) Your SQL {MySQL}
    +     * #
    +     * # select member.MEMBER_ID, member...
    +     * #   from Member member
    +     * #  where ...
    +     * #  order by ...
    +     * #  limit 40, 20        *Here is necessary!
    +     * #
    +     * 
    + * + * @return The executor of paging that the paging mode is manual. (NotNull) + */ + public OutsideSqlPagingExecutor manualPaging() { + final OutsideSqlOption option = createOutsideSqlOption(); + option.manualPaging(); + return new OutsideSqlPagingExecutor(_outsideSqlDao, option, + _tableDbName); + } + + // ----------------------------------------------------- + // Dynamic Binding + // --------------- + public OutsideSqlBasicExecutor dynamicBinding() { + _dynamicBinding = true; + return this; + } + + // ----------------------------------------------------- + // Statement Config + // ---------------- + public OutsideSqlBasicExecutor configure(StatementConfig statementConfig) { + _statementConfig = statementConfig; + return this; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected OutsideSqlOption createOutsideSqlOption() { + final OutsideSqlOption option = new OutsideSqlOption(); + option.setStatementConfig(_statementConfig); + if (_dynamicBinding) { + option.dynamicBinding(); + } + option.setTableDbName(_tableDbName);// as information + return option; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlBasicExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,69 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.executor; + +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlCursorExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlCursorExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select the cursor of the entity. + * + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param handler The handler of cursor. (NotNull) + * @return The result object that the cursor handler returns. (Nullable) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public Object selectCursor(String path, PARAMETER_BEAN pmb, + CursorHandler handler) { + return _outsideSqlDao.selectCursor(path, pmb, _outsideSqlOption, + handler); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlCursorExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + public OutsideSqlCursorExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlCursorExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,155 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * The cursor executor of outside-sql. + * + * @param The type of parameter-bean. + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlEntityExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final OutsideSqlDao _outsideSqlDao; + + protected final OutsideSqlOption _outsideSqlOption; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlEntityExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select entity. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntity(String path, PARAMETER_BEAN pmb, + Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls.isEmpty()) { + return null; + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + /** + * Select entity with deleted check. + * + * @param The type of entity. + * @param path The path of SQL file. (NotNull) + * @param pmb The parameter-bean. Allowed types are Bean object and Map + * object. (Nullable) + * @param entityType The type of entity. (NotNull) + * @return The selected entity. (Nullable) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted(not found). + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity is duplicated. + */ + public ENTITY selectEntityWithDeletedCheck(String path, + PARAMETER_BEAN pmb, Class entityType) { + final List ls = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + if (ls == null || ls.isEmpty()) { + throwEntityAlreadyDeletedException(buildSearch4LogString(path, pmb, + entityType)); + } + if (ls.size() > 1) { + throwEntityDuplicatedException(ls.size() + "", + buildSearch4LogString(path, pmb, entityType), null); + } + return ls.get(0); + } + + protected String buildSearch4LogString(String path, + PARAMETER_BEAN pmb, Class entityType) { + String tmp = "Table = " + _outsideSqlOption.getTableDbName() + + getLineSeparator(); + tmp = tmp + "Path = " + path + getLineSeparator(); + tmp = tmp + "Pmb = " + + (pmb != null ? pmb.getClass().getSimpleName() : "null") + ":" + + pmb + getLineSeparator(); + tmp = tmp + "Entity = " + + (entityType != null ? entityType.getSimpleName() : "null") + + getLineSeparator(); + tmp = tmp + "Option = " + _outsideSqlOption; + return tmp; + } + + // ----------------------------------------------------- + // Helper + // ------ + protected void throwEntityAlreadyDeletedException(Object searchKey4Log) { + ConditionBeanContext.throwEntityAlreadyDeletedException(searchKey4Log); + } + + protected void throwEntityDuplicatedException(String resultCountString, + Object searchKey4Log, Throwable cause) { + ConditionBeanContext.throwEntityDuplicatedException(resultCountString, + searchKey4Log, cause); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlEntityExecutor configure( + StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlEntityExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlEntityExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,221 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.executor; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DBFluteConfig; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; + +/** + * The paging executor of outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlPagingExecutor { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The DAO of outsideSql. (NotNull) */ + protected final OutsideSqlDao _outsideSqlDao; + + /** The option of outsideSql. (NotNull) */ + protected final OutsideSqlOption _outsideSqlOption; + + /** The DB name of table. (NotNull) */ + protected final String _tableDbName; + + //========================================================================== + // ========= + // Constructor + // =========== + public OutsideSqlPagingExecutor(OutsideSqlDao outsideSqlDao, + OutsideSqlOption outsideSqlOption, String tableDbName) { + this._outsideSqlDao = outsideSqlDao; + this._outsideSqlOption = outsideSqlOption; + this._tableDbName = tableDbName; + } + + //========================================================================== + // ========= + // Select + // ====== + /** + * Select list with paging. + *

    + * The SQL should have Paging without Count.
    You do not need to use + * pagingBean's isPaging() method on your 'Parameter Comment'.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * #   from MEMBER member
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paged list. (NotNull) + * @exception com.example.dbflute.basic.dbflute.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public ListResultBean selectList(String path, + PagingBean pmb, Class entityType) { + setupScrollableCursorIfNeeds(); + List resultList = _outsideSqlDao.selectList(path, pmb, + _outsideSqlOption, entityType); + return new ResultBeanBuilder(_tableDbName) + .buildListResultBean(resultList); + } + + /** + * Select page. + *

    + * The SQL should have Count and Paging.
    You can realize by + * pagingBean's isPaging() method on your 'Parameter Comment'. For example, + * 'IF Comment'.
    It returns false when it executes Count. And it + * returns true when it executes Paging.
    + * + *

    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Your Correct SQL {MySQL and manualPaging}
    +     * - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * #   from MEMBER member
    +     * #     /[*]IF pmb.isPaging()[*]/
    +     * #     left outer join MEMBER_STATUS memberStatus
    +     * #       on member.MEMBER_STATUS_CODE = memberStatus.MEMBER_STATUS_CODE
    +     * #     /[*]END[*]/
    +     * #  /[*]BEGIN[*]/where
    +     * #    /[*]IF pmb.memberId != null[*]/member.MEMBER_ID = /[*]pmb.memberId[*]/'123'/[*]END[*]/
    +     * #    /[*]IF pmb.memberName != null[*]/and member.MEMBER_NAME like /[*]pmb.memberName[*]/'Billy' || '%'/[*]END[*]/
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  order by member.UPDATE_DATETIME desc
    +     * #  /[*]END[*]/
    +     * #  /[*]IF pmb.isPaging()[*]/
    +     * #  limit /[*]$pmb.pageStartIndex[*]/80, /[*]$pmb.fetchSize[*]/20
    +     * #  /[*]END[*]/
    +     * # 
    +     * o [*] is easy escape to Java Doc Comment.
    +     * o If it's autoPaging, the line of 'limit 80, 20' is unnecessary!
    +     * 
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * ex) Wrong SQL {part 1}
    +     *     -- Line comment before ELSE comment --
    +     * - - - - - - - - - - - - - - - - - - - - - - - - -
    +     * # /[*]IF pmb.isPaging()[*]/
    +     * # select member.MEMBER_ID
    +     * #      , member.MEMBER_NAME -- The name of member...    *NG
    +     * #      -- The status name of member...                  *NG
    +     * #      , memberStatus.MEMBER_STATUS_NAME
    +     * # -- ELSE select count(*)
    +     * # /[*]END[*]/
    +     * # ...
    +     * o It's S2Dao's restriction...Sorry
    +     * 
    + * + * @param The type of entity. + * @param path The path of SQL that executes count and paging. (NotNull) + * @param pmb The bean of paging parameter. (NotNull) + * @param entityType The type of result entity. (NotNull) + * @return The result bean of paging. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.OutsideSqlNotFoundException + * When the outside-sql is not found. + */ + public PagingResultBean selectPage(final String path, + final PagingBean pmb, final Class entityType) { + final OutsideSqlOption countOption = _outsideSqlOption + .copyOptionWithoutPaging(); + final OutsideSqlEntityExecutor countExecutor = new OutsideSqlEntityExecutor( + _outsideSqlDao, countOption); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return pmb; + } + + public int count() { + pmb.xsetPaging(false); + return countExecutor.selectEntityWithDeletedCheck(path, pmb, + Integer.class); + } + + public List paging() { + pmb.xsetPaging(true); + return selectList(path, pmb, entityType); + } + }; + final PagingInvoker invoker = new PagingInvoker( + _tableDbName); + if (pmb.isCountLater()) { + invoker.countLater(); + } + return invoker.invokePaging(handler); + } + + protected void setupScrollableCursorIfNeeds() { + if (!_outsideSqlOption.isAutoPaging()) { + return; + } + StatementConfig statementConfig = _outsideSqlOption + .getStatementConfig(); + if (statementConfig != null + && statementConfig.getResultSetType() != null) { + return; + } + StatementConfig defaultStatementConfig = DBFluteConfig.getInstance() + .getDefaultStatementConfig(); + if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + return; + } + if (statementConfig == null) { + statementConfig = new StatementConfig(); + configure(statementConfig); + } + statementConfig.typeScrollInsensitive(); + } + + //========================================================================== + // ========= + // Option + // ====== + public OutsideSqlPagingExecutor configure(StatementConfig statementConfig) { + _outsideSqlOption.setStatementConfig(statementConfig); + return this; + } + + public OutsideSqlPagingExecutor dynamicBinding() { + _outsideSqlOption.dynamicBinding(); + return this; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/outsidesql/executor/OutsideSqlPagingExecutor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLink.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLink.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLink.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,91 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi; + +/** + * The class of page number link. + * + * @author DBFlute(AutoGenerator) + */ +public class PageNumberLink implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageNumberElement; + + protected boolean _current; + + protected String _pageNumberLinkHref; + + //========================================================================== + // ========= + // Constructor + // =========== + public PageNumberLink() { + } + + //========================================================================== + // ========= + // Initializer + // =========== + public PageNumberLink initialize(int pageNumberElement, boolean current, + String pageNumberLinkHref) { + setPageNumberElement(pageNumberElement); + setCurrent(current); + setPageNumberLinkHref(pageNumberLinkHref); + return this; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuffer sb = new StringBuffer(); + + sb.append(" pageNumberElement=").append(_pageNumberElement); + sb.append(" pageNumberLinkHref=").append(_pageNumberLinkHref); + sb.append(" current=").append(_current); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageNumberElement() { + return _pageNumberElement; + } + + public void setPageNumberElement(int pageNumberElement) { + this._pageNumberElement = pageNumberElement; + } + + public boolean isCurrent() { + return _current; + } + + public void setCurrent(boolean current) { + this._current = current; + } + + public String getPageNumberLinkHref() { + return _pageNumberLinkHref; + } + + public void setPageNumberLinkHref(String pageNumberLinkHref) { + this._pageNumberLinkHref = pageNumberLinkHref; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLink.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi; + +/** + * The setupper of page number link. + * + * @param The type of link. + * @author DBFlute(AutoGenerator) + */ +public interface PageNumberLinkSetupper { + + /** + * Set up page number link. + * + * @param pageNumberElement Page number element. + * @param current Is current page? + * @return Page number link. (NotNull) + */ + public LINK setup(int pageNumberElement, boolean current); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/PageNumberLinkSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,215 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.group; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageGroupOption _pageGroupOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Calculate start page number. + * + * @return Start page number. + */ + public int calculateStartPageNumber() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int currentPageNumber = _currentPageNumber; + + int currentPageGroupNumber = (currentPageNumber / pageGroupSize); + if ((currentPageNumber % pageGroupSize) == 0) { + currentPageGroupNumber--; + } + final int currentPageGroupStartPageNumber = (pageGroupSize * currentPageGroupNumber) + 1; + if (!(currentPageNumber >= currentPageGroupStartPageNumber)) { + String msg = "currentPageNumber should be greater equal currentPageGroupStartPageNumber. But:"; + msg = msg + " currentPageNumber=" + currentPageNumber; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + return currentPageGroupStartPageNumber; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageGroupValid(); + final int pageGroupSize = _pageGroupOption.getPageGroupSize(); + final int allPageCount = _allPageCount; + final int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + final int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + pageGroupSize; + + final List resultList = new ArrayList(); + for (int i = currentPageGroupStartPageNumber; i < nextPageGroupStartPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + return resultList; + } + + /** + * Create the array of page number. + * + * @return The array of page number. (NotNUll) + */ + public int[] createPageNumberArray() { + assertPageGroupValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page-group? Using values are currentPageNumber and + * pageGroupSize. + * + * @return Determination. + */ + public boolean isExistPrePageGroup() { + assertPageGroupValid(); + return (_currentPageNumber > _pageGroupOption.getPageGroupSize()); + } + + /** + * Is existing next page-group? Using values are currentPageNumber and + * pageGroupSize and allPageCount. + * + * @return Determination. + */ + public boolean isExistNextPageGroup() { + assertPageGroupValid(); + int currentPageGroupStartPageNumber = calculateStartPageNumber(); + if (!(currentPageGroupStartPageNumber > 0)) { + String msg = "currentPageGroupStartPageNumber should be greater than 0. {> 0} But:"; + msg = msg + " currentPageGroupStartPageNumber=" + + currentPageGroupStartPageNumber; + throw new IllegalStateException(msg); + } + int nextPageGroupStartPageNumber = currentPageGroupStartPageNumber + + _pageGroupOption.getPageGroupSize(); + return (nextPageGroupStartPageNumber <= _allPageCount); + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageGroupValid() { + if (_pageGroupOption == null) { + String msg = "The pageGroupOption should not be null. Please invoke setPageGroupOption()."; + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 0) { + String msg = "The pageGroupSize should be greater than 1. But the value is zero."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + if (_pageGroupOption.getPageGroupSize() == 1) { + String msg = "The pageGroupSize should be greater than 1. But the value is one."; + msg = msg + " pageGroupSize=" + _pageGroupOption.getPageGroupSize(); + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageGroupOption=").append(_pageGroupOption); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageGroupOption(PageGroupOption pageGroupOption) { + this._pageGroupOption = pageGroupOption; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.group; + +/** + * The option of page group. + * + * @author DBFlute(AutoGenerator) + */ +public class PageGroupOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageGroupSize; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageGroupSize=").append(_pageGroupSize); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageGroupSize() { + return _pageGroupSize; + } + + public void setPageGroupSize(int pageGroupSize) { + this._pageGroupSize = pageGroupSize; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/group/PageGroupOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeBean.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeBean.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeBean.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,202 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.range; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.PageNumberLink; +import jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.PageNumberLinkSetupper; + +/** + * The bean of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeBean implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _currentPageNumber; + + protected int _allPageCount; + + protected PageRangeOption _pageRangeOption; + + //========================================================================== + // ========= + // Main + // ==== + /** + * Build the list of page number link. + * + * @param The type of link. + * @param pageNumberLinkSetupper Page number link setupper. (NotNull and + * Required LINK) + * @return The list of Page number link. (NotNull) + */ + public List buildPageNumberLinkList( + PageNumberLinkSetupper pageNumberLinkSetupper) { + final List pageNumberList = createPageNumberList(); + final List pageNumberLinkList = new ArrayList(); + for (Integer pageNumber : pageNumberList) { + pageNumberLinkList.add(pageNumberLinkSetupper.setup(pageNumber, + pageNumber.equals(_currentPageNumber))); + } + return pageNumberLinkList; + } + + /** + * Create the list of page number. + * + * @return The list of page number. (NotNull) + */ + public List createPageNumberList() { + assertPageRangeValid(); + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + final int allPageCount = _allPageCount; + final int currentPageNumber = _currentPageNumber; + + final List resultList = new ArrayList(); + for (int i = currentPageNumber - pageRangeSize; i < currentPageNumber; i++) { + if (i < 1) { + continue; + } + resultList.add(new Integer(i)); + } + + resultList.add(new Integer(currentPageNumber)); + + final int endPageNumber = (currentPageNumber + pageRangeSize); + for (int i = currentPageNumber + 1; i <= endPageNumber + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + + final boolean fillLimit = _pageRangeOption.isFillLimit(); + final int limitSize = (pageRangeSize * 2) + 1; + if (fillLimit && !resultList.isEmpty() && resultList.size() < limitSize) { + final Integer firstElements = (Integer) resultList.get(0); + final Integer lastElements = (Integer) resultList.get(resultList + .size() - 1); + if (firstElements.intValue() > 1) { + for (int i = firstElements.intValue() - 1; resultList.size() < limitSize + && i > 0; i--) { + resultList.add(0, new Integer(i)); + } + } + for (int i = lastElements.intValue() + 1; resultList.size() < limitSize + && i <= allPageCount; i++) { + resultList.add(new Integer(i)); + } + } + return resultList; + } + + /** + * Get the array of page number. + * + * @return The array of page number. (NotNull) + */ + public int[] createPageNumberArray() { + assertPageRangeValid(); + return convertListToIntArray(createPageNumberList()); + } + + /** + * Is existing previous page range? + * + * @return Determination. + */ + public boolean isExistPrePageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[0] > 1; + } + + /** + * Is existing next page range? + * + * @return Determination. + */ + public boolean isExistNextPageRange() { + assertPageRangeValid(); + final int[] array = createPageNumberArray(); + if (array.length == 0) { + return false; + } + return array[array.length - 1] < _allPageCount; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected int[] convertListToIntArray(List ls) { + final int[] resultArray = new int[ls.size()]; + int arrayIndex = 0; + for (Iterator ite = ls.iterator(); ite.hasNext();) { + final Integer tmpPageNumber = (Integer) ite.next(); + resultArray[arrayIndex] = tmpPageNumber.intValue(); + arrayIndex++; + } + return resultArray; + } + + protected void assertPageRangeValid() { + if (_pageRangeOption == null) { + String msg = "The pageRangeOption should not be null. Please invoke setPageRangeOption()."; + throw new IllegalStateException(msg); + } + final int pageRangeSize = _pageRangeOption.getPageRangeSize(); + if (pageRangeSize == 0) { + String msg = "The pageRangeSize should be greater than 1. But the value is zero."; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setCurrentPageNumber(int currentPageNumber) { + this._currentPageNumber = currentPageNumber; + } + + public void setAllPageCount(int allPageCount) { + this._allPageCount = allPageCount; + } + + public void setPageRangeOption(PageRangeOption pageRangeOption) { + this._pageRangeOption = pageRangeOption; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" currentPageNumber=").append(_currentPageNumber); + sb.append(" allPageCount=").append(_allPageCount); + sb.append(" pageRangeOption=").append(_pageRangeOption); + + return sb.toString(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeBean.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,61 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.pagenavi.range; + +/** + * The option of page range. + * + * @author DBFlute(AutoGenerator) + */ +public class PageRangeOption implements java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected int _pageRangeSize; + + protected boolean _fillLimit; + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * @return The view string of all attribute values. (NotNull) + */ + @Override + public String toString() { + final StringBuilder sb = new StringBuilder(); + + sb.append(" pageRangeSize=").append(_pageRangeSize); + sb.append(" fillLimit=").append(_fillLimit); + + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPageRangeSize() { + return _pageRangeSize; + } + + public void setPageRangeSize(int pageRangeSize) { + this._pageRangeSize = pageRangeSize; + } + + public boolean isFillLimit() { + return _fillLimit; + } + + public void setFillLimit(boolean fillLimit) { + this._fillLimit = fillLimit; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/pagenavi/range/PageRangeOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/AbstractSqlClause.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/AbstractSqlClause.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/AbstractSqlClause.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1799 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of SqlClause. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractSqlClause implements SqlClause { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String SELECT_HINT = "/*$dto.selectHint*/"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Basic + // ----- + /** Target table name. */ + protected final String _tableName; + + // ----------------------------------------------------- + // Clause Resource + // --------------- + /** + * Selected select column map. map:{tableAliasName : map:{columnName : + * selectColumnInfo}} + */ + protected Map> _selectedSelectColumnMap = new LinkedHashMap>(); + + /** + * Specified select column map. map:{ tableAliasName = map:{ columnName : + * null } } + */ + protected Map> _specifiedSelectColumnMap;// [ + + // DBFlute + // - + // 0.7.4 + // ] + + /** Specified derive sub-query map. */ + protected Map _specifiedDeriveSubQueryMap;// [DBFlute-0.7.4] + + /** Included select column map. */ + protected Map _includedSelectColumnMap = new LinkedHashMap(); + + /** + * The map of real column and alias of select clause. map:{realColumnName : + * aliasName} + */ + protected Map _selectClauseRealColumnAliasMap = new HashMap();// Without + + // linked + // ! + + /** Outer join map. */ + protected Map _outerJoinMap = new LinkedHashMap(); + + /** Where list. */ + protected List _whereList = new ArrayList(); + + /** Inline where list for BaseTable. */ + protected List _baseTableInlineWhereList = new ArrayList(); + + /** Order-by clause. */ + protected final OrderByClause _orderByClause = new OrderByClause(); + + /** Union clause list. */ + protected List _unionQueryInfoList = new ArrayList(); + + /** Is included-select-column effective? Default value is false. */ + protected boolean _isIncludedSelectColumnEffective = false; + + /** Is order-by effective? Default value is false. */ + protected boolean _isOrderByEffective = false; + + // ----------------------------------------------------- + // Fetch Property + // -------------- + /** Fetch start index. (for fetchXxx()) */ + protected int _fetchStartIndex = 0; + + /** Fetch size. (for fetchXxx()) */ + protected int _fetchSize = 0; + + /** Fetch page number. (for fetchXxx()) This value should be plus. */ + protected int _fetchPageNumber = 1; + + /** Is fetch-narrowing effective? Default value is false. */ + protected boolean _isFetchScopeEffective = false; + + // ----------------------------------------------------- + // AdditionalConditionAsOr + // ----------------------- + /** Is additional condition as or effective? */ + protected boolean _isAdditionalConditionAsOrEffective = false; + + // ----------------------------------------------------- + // WhereClauseSimpleFilter + // ----------------------- + /** The filter for where clause. */ + protected List _whereClauseSimpleFilterList; + + // ----------------------------------------------------- + // Selected Foreign Info + // --------------------- + /** The information of selected foreign table. */ + protected Map _selectedForeignInfo; + + // ----------------------------------------------------- + // Optional Info + // ------------- + protected boolean _formatClause; + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractSqlClause(String tableName) { + if (tableName == null) { + String msg = "Argument[tableName] must not be null."; + throw new IllegalArgumentException(msg); + } + _tableName = tableName; + } + + //========================================================================== + // ========= + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + public String getClause() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClause()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(false)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + public String getClausePKOnly() { + StringBuilder sb = new StringBuilder(512); + sb.append(getSelectClausePKOnly()); + sb.append(" "); + sb.append(buildClauseWithoutMainSelect(true)); + String sql = sb.toString(); + return filterSubQueryIndent(sql); + } + + protected String buildClauseWithoutMainSelect(boolean pkonly) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(getWhereClause()); + String unionClause = buildUnionClause(pkonly ? getSelectClausePKOnly() + : getSelectClause()); + + // Delete template mark! (At the future this will be unnecessary.) + unionClause = replaceString(unionClause, getUnionWhereClauseMark(), "");// Required + // ! + unionClause = replaceString(unionClause, + getUnionWhereFirstConditionMark(), "");// Required! + + sb.append(unionClause); + if (_isOrderByEffective && !_orderByClause.isEmpty()) { + sb.append(" "); + sb.append(getOrderByClause()); + } + sb.append(" "); + sb.append(getSqlSuffix()); + return sb.toString(); + } + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + public String getClauseFromWhereWithUnionTemplate() { + return buildClauseFromWhereAsTemplate(false); + } + + public String getClauseFromWhereWithWhereUnionTemplate() { + return buildClauseFromWhereAsTemplate(true); + } + + protected String buildClauseFromWhereAsTemplate(boolean template) { + StringBuilder sb = new StringBuilder(512); + sb.append(getFromClause()); + sb.append(getFromHint()); + sb.append(" "); + sb.append(buildWhereClause(template)); + sb.append(buildUnionClause(getUnionSelectClauseMark())); + return sb.toString(); + } + + protected String buildUnionClause(String selectClause) { + StringBuilder sb = new StringBuilder(); + for (final Iterator ite = _unionQueryInfoList + .iterator(); ite.hasNext();) { + final UnionQueryInfo unionQueryInfo = (UnionQueryInfo) ite.next(); + final String unionQueryClause = unionQueryInfo + .getUnionQueryClause(); + final boolean unionAll = unionQueryInfo.isUnionAll(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(unionAll ? " union all " : " union "); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()); + } + sb.append(selectClause).append(" ").append(unionQueryClause); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // Clause Parts + // ============ + public String getSelectClause() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + List columnInfoList = dbmeta.getColumnInfoList(); + + // [DBFlute-0.7.4] + Map localSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(getLocalTableAliasName()) + : null; + boolean existsSpecifiedLocal = localSpecifiedMap != null + && !localSpecifiedMap.isEmpty(); + + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedLocal + && !localSpecifiedMap.containsKey(columnName)) { + continue; + } + + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + Set tableAliasNameSet = _selectedSelectColumnMap.keySet(); + for (String tableAliasName : tableAliasNameSet) { + Map map = _selectedSelectColumnMap + .get(tableAliasName); + Collection selectColumnInfoList = map + .values(); + + // [DBFlute-0.7.4] + Map foreginSpecifiedMap = _specifiedSelectColumnMap != null ? _specifiedSelectColumnMap + .get(tableAliasName) + : null; + boolean existsSpecifiedForeign = foreginSpecifiedMap != null + && !foreginSpecifiedMap.isEmpty(); + + for (SelectedSelectColumnInfo selectColumnInfo : selectColumnInfoList) { + String realColumnName = selectColumnInfo.buildRealColumnName(); + + // [DBFlute-0.7.4] + if (existsSpecifiedForeign + && !foreginSpecifiedMap.containsKey(selectColumnInfo + .getColumnName())) { + continue; + } + + sb.append(", ").append(realColumnName).append(" as ").append( + selectColumnInfo.getColumnAliasName()); + _selectClauseRealColumnAliasMap.put(realColumnName, + selectColumnInfo.getColumnAliasName()); + } + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectClausePKOnly() { + StringBuilder sb = new StringBuilder(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + UniqueInfo uniqueInfo = dbmeta.getPrimaryUniqueInfo(); + List columnInfoList = uniqueInfo.getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + if (sb.length() > 0) { + sb.append(", "); + } else { + sb.append("select").append(SELECT_HINT).append(" "); + } + String realColumnName = getLocalTableAliasName() + "." + columnName; + sb.append(realColumnName).append(" as ").append(columnName); + _selectClauseRealColumnAliasMap.put(realColumnName, columnName); + } + if (_isIncludedSelectColumnEffective + && !_includedSelectColumnMap.isEmpty()) { + sb.append(getIncludedSelectColumnClause()); + } + + // [DBFlute-0.7.4] + if (_specifiedDeriveSubQueryMap != null + && !_specifiedDeriveSubQueryMap.isEmpty()) { + Collection deriveSubQuerySet = _specifiedDeriveSubQueryMap + .values(); + for (String deriveSubQuery : deriveSubQuerySet) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(", ").append(deriveSubQuery); + } + } + + return sb.toString(); + } + + public String getSelectHint() { + return createSelectHint(); + } + + public String getIncludedSelectColumnClause() { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _includedSelectColumnMap.keySet() + .iterator(); ite.hasNext(); count++) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sb.append(", ").append(realColumnName).append(" as ").append( + aliasName); + _selectClauseRealColumnAliasMap.put(realColumnName, aliasName); + } + return sb.toString(); + } + + public String getFromClause() { + StringBuilder sb = new StringBuilder(); + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("from "); + if (_baseTableInlineWhereList.isEmpty()) { + sb.append(_tableName).append(" dflocal"); + } else { + sb.append( + getInlineViewClause(_tableName, _baseTableInlineWhereList)) + .append(" dflocal"); + } + sb.append(getFromBaseTableHint()); + sb.append(getLeftOuterJoinClause()); + return sb.toString(); + } + + protected String getLeftOuterJoinClause() { + StringBuilder sb = new StringBuilder(); + for (Iterator ite = _outerJoinMap.keySet().iterator(); ite + .hasNext();) { + String aliasName = ite.next(); + LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + String joinTableName = joinInfo.getJoinTableName(); + List inlineWhereClauseList = joinInfo + .getInlineWhereClauseList(); + List additionalOnClauseList = joinInfo + .getAdditionalOnClauseList(); + Map joinOnMap = joinInfo.getJoinOnMap(); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" left outer join "); + if (inlineWhereClauseList.isEmpty()) { + sb.append(joinTableName); + } else { + sb.append(getInlineViewClause(joinTableName, + inlineWhereClauseList)); + } + sb.append(" ").append(aliasName).append(" on "); + int count = 0; + Set localColumnNameSet = joinOnMap.keySet(); + for (String localColumnName : localColumnNameSet) { + String foreignColumnName = (String) joinOnMap + .get(localColumnName); + if (count > 0) { + sb.append(" and "); + } + if (localColumnName.equals("$$fixedCondition$$")) { + sb.append(foreignColumnName); + } else { + sb.append(localColumnName).append(" = ").append( + foreignColumnName); + } + ++count; + } + for (String additionalOnClause : additionalOnClauseList) { + sb.append(" and ").append(additionalOnClause); + } + } + return sb.toString(); + } + + protected String getInlineViewClause(String joinTableName, + List inlineWhereClauseList) { + StringBuilder sb = new StringBuilder(); + sb.append("(select * from ").append(joinTableName).append(" where "); + int count = 0; + for (final Iterator ite = inlineWhereClauseList.iterator(); ite + .hasNext();) { + String clauseElement = ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count > 0) { + sb.append(" and "); + } + sb.append(clauseElement); + ++count; + } + sb.append(")"); + return sb.toString(); + } + + public String getFromBaseTableHint() { + return createFromBaseTableHint(); + } + + public String getFromHint() { + return createFromHint(); + } + + public String getWhereClause() { + return buildWhereClause(false); + } + + protected String buildWhereClause(boolean template) { + StringBuilder sb = new StringBuilder(); + int count = 0; + for (Iterator ite = _whereList.iterator(); ite.hasNext(); count++) { + String clauseElement = (String) ite.next(); + clauseElement = filterWhereClauseSimply(clauseElement); + if (count == 0) { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append("where ").append( + template ? getWhereFirstConditionMark() : "").append( + clauseElement); + } else { + if (isFormatClauseEffective()) { + sb.append(getLineSeparator()).append(" "); + } + sb.append(" and ").append(clauseElement); + } + } + if (template && sb.length() == 0) { + sb.append(getWhereClauseMark()); + } + return sb.toString(); + } + + public String getOrderByClause() { + String orderByClause = null; + if (!_unionQueryInfoList.isEmpty()) { + if (_selectClauseRealColumnAliasMap == null + || _selectClauseRealColumnAliasMap.isEmpty()) { + String msg = "The selectClauseColumnAliasMap should not be null or empty when union query exists: " + + toString(); + throw new IllegalStateException(msg); + } + orderByClause = _orderByClause + .getOrderByClause(_selectClauseRealColumnAliasMap); + } else { + orderByClause = _orderByClause.getOrderByClause(); + } + if (isFormatClauseEffective() && orderByClause != null + && orderByClause.trim().length() > 0) { + return getLineSeparator() + " " + orderByClause; + } else { + return orderByClause; + } + } + + public String getSqlSuffix() { + String sqlSuffix = createSqlSuffix(); + if (isFormatClauseEffective() && sqlSuffix != null + && sqlSuffix.trim().length() > 0) { + return getLineSeparator() + sqlSuffix; + } else { + return sqlSuffix; + } + } + + //========================================================================== + // ========= + // Copy Parts + // ========== + public void copyIncludedSelectColumn(SqlClause sqlClause) { + Set keySet = _includedSelectColumnMap.keySet(); + for (Iterator ite = keySet.iterator(); ite.hasNext();) { + String aliasName = ite.next(); + String realColumnName = (String) _includedSelectColumnMap + .get(aliasName); + sqlClause.registerIncludedSelectColumn(aliasName, realColumnName); + } + } + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected select column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath) { + _selectedSelectColumnMap + .put(foreignTableAliasName, createSelectedSelectColumnInfo( + foreignTableAliasName, localTableName, + foreignPropertyName, localRelationPath)); + } + + protected Map createSelectedSelectColumnInfo( + String foreignTableAliasName, String localTableName, + String foreignPropertyName, String localRelationPath) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + final int relationNo = foreignInfo.getRelationNo(); + String nextRelationPath = "_" + relationNo; + if (localRelationPath != null) { + nextRelationPath = localRelationPath + nextRelationPath; + } + final Map resultMap = new LinkedHashMap(); + final DBMeta foreignDBMeta = foreignInfo.getForeignDBMeta(); + final List columnInfoList = foreignDBMeta + .getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + final String columnDbName = columnInfo.getColumnDbName(); + final SelectedSelectColumnInfo selectColumnInfo = new SelectedSelectColumnInfo(); + selectColumnInfo.setTableAliasName(foreignTableAliasName); + selectColumnInfo.setColumnName(columnDbName); + selectColumnInfo + .setColumnAliasName(columnDbName + nextRelationPath); + resultMap.put(columnDbName, selectColumnInfo); + } + return resultMap; + } + + public static class SelectedSelectColumnInfo { + protected String tableAliasName; + + protected String columnName; + + protected String columnAliasName; + + public String buildRealColumnName() { + if (tableAliasName != null) { + return tableAliasName + "." + columnName; + } else { + return columnName; + } + } + + public String getTableAliasName() { + return tableAliasName; + } + + public void setTableAliasName(String tableAliasName) { + this.tableAliasName = tableAliasName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnAliasName() { + return columnAliasName; + } + + public void setColumnAliasName(String columnAliasName) { + this.columnAliasName = columnAliasName; + } + } + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + public void ignoreIncludedSelectColumn() { + _isIncludedSelectColumnEffective = false; + } + + public void makeIncludedSelectColumnEffective() { + if (!_includedSelectColumnMap.isEmpty()) { + _isIncludedSelectColumnEffective = true; + } + } + + public void registerIncludedSelectColumn(String aliasName, + String realColumnName) { + _isIncludedSelectColumnEffective = true; + _includedSelectColumnMap.put(aliasName, realColumnName); + } + + //========================================================================== + // ========= + // OuterJoin + // ========= + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap) { + assertAlreadyOuterJoin(aliasName); + assertJoinOnMapNotEmpty(joinOnMap, aliasName); + final LeftOuterJoinInfo joinInfo = new LeftOuterJoinInfo(); + joinInfo.setAliasName(aliasName); + joinInfo.setJoinTableName(joinTableName); + joinInfo.setJoinOnMap(joinOnMap); + _outerJoinMap.put(aliasName, joinInfo); + } + + protected static class LeftOuterJoinInfo { + protected String _aliasName; + + protected String _joinTableName; + + protected List _inlineWhereClauseList = new ArrayList(); + + protected List _additionalOnClauseList = new ArrayList(); + + protected Map _joinOnMap; + + protected boolean _onClauseInline; + + public String getAliasName() { + return _aliasName; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public String getJoinTableName() { + return _joinTableName; + } + + public void setJoinTableName(String value) { + _joinTableName = value; + } + + public List getInlineWhereClauseList() { + return _inlineWhereClauseList; + } + + public void addInlineWhereClause(String value) { + _inlineWhereClauseList.add(value); + } + + public List getAdditionalOnClauseList() { + return _additionalOnClauseList; + } + + public void addAdditionalOnClause(String value) { + _additionalOnClauseList.add(value); + } + + public Map getJoinOnMap() { + return _joinOnMap; + } + + public void setJoinOnMap(Map value) { + _joinOnMap = value; + } + + public boolean isOnClauseInline() { + return _onClauseInline; + } + + public void setOnClauseInline(boolean value) { + _onClauseInline = value; + } + } + + protected void assertAlreadyOuterJoin(String aliasName) { + if (_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have already registered in outer join: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + protected void assertJoinOnMapNotEmpty(Map joinOnMap, + String aliasName) { + if (joinOnMap.isEmpty()) { + String msg = "The joinOnMap should not be empty: aliasName=" + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // Where + // ===== + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + key.addWhereClause(_whereList, columnFullName, value); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnFullName", columnFullName); + assertObjectNotNull("option of " + columnFullName, option); + key.addWhereClause(_whereList, columnFullName, value, option); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void registerWhereClause(String clause) { + assertStringNotNullAndNotTrimmedEmpty("clause", clause); + _whereList.add(clause); + arrangeWhereListAdditionalConditionAsOr(_whereList); + } + + public void exchangeFirstWhereClauseForLastOne() { + if (_whereList.size() > 1) { + final String first = (String) _whereList.get(0); + final String last = (String) _whereList.get(_whereList.size() - 1); + _whereList.set(0, last); + _whereList.set(_whereList.size() - 1, first); + } + } + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + key.addWhereClause(_baseTableInlineWhereList, columnName, value); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option) { + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + assertObjectNotNull("option of " + columnName, option); + key + .addWhereClause(_baseTableInlineWhereList, columnName, value, + option); + arrangeWhereListAdditionalConditionAsOr(_baseTableInlineWhereList); + } + + public void registerBaseTableInlineWhereClause(String value) { + _baseTableInlineWhereList.add(value); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value); + } + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + assertStringNotNullAndNotTrimmedEmpty("columnName", columnName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + key.addWhereClause(joinInfo.getAdditionalOnClauseList(), aliasName + + "." + columnName, value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + key.addWhereClause(joinInfo.getInlineWhereClauseList(), columnName, + value, option); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline) { + assertNotYetOuterJoin(aliasName); + final LeftOuterJoinInfo joinInfo = (LeftOuterJoinInfo) _outerJoinMap + .get(aliasName); + if (onClauseInline) { + joinInfo.addAdditionalOnClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getAdditionalOnClauseList()); + } else { + joinInfo.addInlineWhereClause(value); + arrangeWhereListAdditionalConditionAsOr(joinInfo + .getInlineWhereClauseList()); + } + } + + protected void assertNotYetOuterJoin(String aliasName) { + if (!_outerJoinMap.containsKey(aliasName)) { + String msg = "The alias name have not registered in outer join yet: " + + aliasName; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective() { + _isAdditionalConditionAsOrEffective = true; + } + + public void ignoreAdditionalConditionAsOr() { + _isAdditionalConditionAsOrEffective = false; + } + + protected void arrangeWhereListAdditionalConditionAsOr( + List whereList) { + if (_isAdditionalConditionAsOrEffective) { + if (whereList.size() < 2) { + String msg = "The whereList should have two more elements when the isAdditionalConditionAsOrEffective is true: " + + toString(); + throw new IllegalStateException(msg); + } + final String lastWhereClause = (String) whereList.remove(whereList + .size() - 1); + final String preWhereClause = (String) whereList.remove(whereList + .size() - 1); + if (preWhereClause.startsWith("(") && preWhereClause.endsWith(")")) { + final String plainClause = preWhereClause.substring("(" + .length(), preWhereClause.length() - ")".length()); + whereList.add("(" + plainClause + " or " + lastWhereClause + + ")"); + } else { + whereList.add("(" + preWhereClause + " or " + lastWhereClause + + ")"); + } + } + } + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause() { + return _orderByClause; + } + + public SqlClause clearOrderBy() { + _isOrderByEffective = false; + _orderByClause.clear(); + return this; + } + + public SqlClause ignoreOrderBy() { + _isOrderByEffective = false; + return this; + } + + public SqlClause makeOrderByEffective() { + if (!_orderByClause.isEmpty()) { + _isOrderByEffective = true; + } + return this; + } + + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + _isOrderByEffective = true; + if (!_orderByClause.isSameOrderByColumn(orderByProperty)) { + clearOrderBy(); + registerOrderBy(orderByProperty, registeredOrderByProperty, + ascOrDesc); + } else { + _orderByClause.reverseAll(); + } + } + + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc) { + try { + _isOrderByEffective = true; + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, + "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + + if (registeredOrderByProperty == null + || registeredOrderByProperty.trim().length() == 0) { + registeredOrderByProperty = orderByProperty; + } + + final List registeredOrderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer( + registeredOrderByProperty, "/"); + while (st.hasMoreElements()) { + registeredOrderByList.add(st.nextToken()); + } + } + + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite + .hasNext();) { + String orderBy = ite.next(); + String registeredOrderBy = (String) registeredOrderByList + .get(count); + + _isOrderByEffective = true; + String aliasName = null; + String columnName = null; + String registeredAliasName = null; + String registeredColumnName = null; + + if (orderBy.indexOf(".") < 0) { + columnName = orderBy; + } else { + aliasName = orderBy.substring(0, orderBy.lastIndexOf(".")); + columnName = orderBy + .substring(orderBy.lastIndexOf(".") + 1); + } + + if (registeredOrderBy.indexOf(".") < 0) { + registeredColumnName = registeredOrderBy; + } else { + registeredAliasName = registeredOrderBy.substring(0, + registeredOrderBy.lastIndexOf(".")); + registeredColumnName = registeredOrderBy + .substring(registeredOrderBy.lastIndexOf(".") + 1); + } + + OrderByElement element = new OrderByElement(); + element.setAliasName(aliasName); + element.setColumnName(columnName); + element.setRegisteredAliasName(registeredAliasName); + element.setRegisteredColumnName(registeredColumnName); + if (ascOrDesc) { + element.setupAsc(); + } else { + element.setupDesc(); + } + _orderByClause.addOrderByElement(element); + + count++; + } + } catch (RuntimeException e) { + String msg = "registerOrderBy() threw the exception: orderByProperty=" + + orderByProperty; + msg = msg + " registeredColumnFullName=" + + registeredOrderByProperty; + msg = msg + " ascOrDesc=" + ascOrDesc; + msg = msg + " sqlClause=" + this.toString(); + throw new RuntimeException(msg, e); + } + } + + public void addNullsFirstToPreviousOrderBy() { + _orderByClause + .addNullsFirstToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + public void addNullsLastToPreviousOrderBy() { + _orderByClause + .addNullsLastToPreviousOrderByElement(createOrderByNullsSetupper()); + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() {// As + // Default + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + return orderByElementClause + " nulls " + + (nullsFirst ? "first" : "last"); + } + }; + } + + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupperByCaseWhen() {// Helper + // For + // Nulls + // Unsupported + // Database + return new OrderByClause.OrderByNullsSetupper() { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst) { + final String thenNumber = nullsFirst ? "1" : "0"; + final String elseNumber = nullsFirst ? "0" : "1"; + final String caseWhen = "case when " + columnName + + " is not null then " + thenNumber + " else " + + elseNumber + " end asc"; + return caseWhen + ", " + orderByElementClause; + } + }; + } + + //========================================================================== + // ========= + // UnionQuery + // ========== + public void registerUnionQuery(String unionQueryClause, boolean unionAll) { + assertStringNotNullAndNotTrimmedEmpty("unionQueryClause", + unionQueryClause); + final UnionQueryInfo unionQueryInfo = new UnionQueryInfo(); + unionQueryInfo.setUnionQueryClause(unionQueryClause); + unionQueryInfo.setUnionAll(unionAll); + _unionQueryInfoList.add(unionQueryInfo); + } + + protected static class UnionQueryInfo { + protected String _unionQueryClause; + + protected boolean _unionAll; + + public String getUnionQueryClause() { + return _unionQueryClause; + } + + public void setUnionQueryClause(String unionQueryClause) { + _unionQueryClause = unionQueryClause; + } + + public boolean isUnionAll() { + return _unionAll; + } + + public void setUnionAll(boolean unionAll) { + _unionAll = unionAll; + } + } + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * @param fetchSize Fetch-size. (NotMinus & NotZero) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize) { + _isFetchScopeEffective = true; + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = 0; + _fetchSize = fetchSize; + _fetchPageNumber = 1; + doClearFetchPageClause(); + doFetchFirst(); + return this; + } + + /** + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize) { + _isFetchScopeEffective = true; + if (fetchStartIndex < 0) { + String msg = "Argument[fetchStartIndex] must be plus or zero: " + + fetchStartIndex; + throw new IllegalArgumentException(msg); + } + if (fetchSize <= 0) { + String msg = "Argument[fetchSize] should be plus: " + fetchSize; + throw new IllegalArgumentException(msg); + } + _fetchStartIndex = fetchStartIndex; + _fetchSize = fetchSize; + return fetchPage(1); + } + + /** + * @param fetchPageNumber Page-number. 1 origin. (NotMinus & NotZero: If + * minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber) { + _isFetchScopeEffective = true; + if (fetchPageNumber <= 0) { + fetchPageNumber = 1; + } + if (_fetchSize <= 0) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Fetch size should not be minus or zero!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "When you invoke this method, it is necessary to invoke 'fetchFirst()' or 'fetchScope()' ahead of that. " + + getLineSeparator(); + msg = msg + + "Please confirm your program. Does it really invoke 'fetchPage()' with 'fetchFirst()' or 'fetchScope()'?" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchPage(3);" + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " XxxCB cb = new XxxCB();" + getLineSeparator(); + msg = msg + " cb.fetchFirst(20); // The size of page" + + getLineSeparator(); + msg = msg + " cb.fetchPage(3); // The number of target page" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Actual Parameter Value]" + getLineSeparator(); + msg = msg + "fetchSize=" + _fetchSize + getLineSeparator(); + msg = msg + "fetchPageNumber=" + fetchPageNumber + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + _fetchPageNumber = fetchPageNumber; + if (_fetchPageNumber == 1 && _fetchStartIndex == 0) { + return fetchFirst(_fetchSize); + } + doClearFetchPageClause(); + doFetchPage(); + return this; + } + + abstract protected void doFetchFirst(); + + abstract protected void doFetchPage(); + + abstract protected void doClearFetchPageClause(); + + public int getFetchStartIndex() { + return _fetchStartIndex; + } + + public int getFetchSize() { + return _fetchSize; + } + + public int getFetchPageNumber() { + return _fetchPageNumber; + } + + /** + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * (_fetchPageNumber - 1)); + } + + /** + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex() { + if (_fetchPageNumber <= 0) { + String msg = "_fetchPageNumber must be plus: " + _fetchPageNumber; + throw new IllegalStateException(msg); + } + return _fetchStartIndex + (_fetchSize * _fetchPageNumber); + } + + public boolean isFetchScopeEffective() { + return _isFetchScopeEffective; + } + + public SqlClause ignoreFetchScope() { + _isFetchScopeEffective = false; + doClearFetchPageClause(); + return this; + } + + public SqlClause makeFetchScopeEffective() { + if (getFetchSize() > 0 && getFetchPageNumber() > 0) { + fetchPage(getFetchPageNumber()); + } + return this; + } + + public boolean isFetchStartIndexSupported() { + return true; // Default + } + + public boolean isFetchSizeSupported() { + return true; // Default + } + + abstract protected String createSelectHint(); + + abstract protected String createFromBaseTableHint(); + + abstract protected String createFromHint(); + + abstract protected String createSqlSuffix(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * The implementation. + * + * @return Fetch-narrowing start-index. + */ + public int getFetchNarrowingSkipStartIndex() { + return getPageStartIndex(); + } + + /** + * The implementation. + * + * @return Fetch-narrowing size. + */ + public int getFetchNarrowingLoopCount() { + return getFetchSize(); + } + + /** + * The implementation. + * + * @return Determination. + */ + public boolean isFetchNarrowingEffective() { + return _isFetchScopeEffective; + } + + //========================================================================== + // ========= + // Resolver + // ======== + public String resolveJoinAliasName(String relationPath, int cqNestNo) { + return resolveNestLevelExpression("dfrelation" + relationPath, cqNestNo); + } + + public String resolveNestLevelExpression(String name, int cqNestNo) { + // if (cqNestNo > 1) { + // return name + "_n" + cqNestNo; + // } else { + // return name; + // } + return name; + } + + public int resolveRelationNo(String localTableName, + String foreignPropertyName) { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(localTableName); + final ForeignInfo foreignInfo = dbmeta + .findForeignInfo(foreignPropertyName); + return foreignInfo.getRelationNo(); + } + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName() { + return "dflocal"; + } + + public String getForeignTableAliasPrefix() { + return "dfrelation"; + } + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark() { + return "#df:whereClause#"; + } + + public String getWhereFirstConditionMark() { + return "#df:whereFirstCondition#"; + } + + public String getUnionSelectClauseMark() { + return "#df:unionSelectClause#"; + } + + public String getUnionWhereClauseMark() { + return "#df:unionWhereClause#"; + } + + public String getUnionWhereFirstConditionMark() { + return "#df:unionWhereFirstCondition#"; + } + + //========================================================================== + // =========== + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter) { + if (_whereClauseSimpleFilterList == null) { + _whereClauseSimpleFilterList = new ArrayList(); + } + _whereClauseSimpleFilterList.add(whereClauseSimpleFilter); + } + + protected String filterWhereClauseSimply(String clauseElement) { + if (_whereClauseSimpleFilterList == null + || _whereClauseSimpleFilterList.isEmpty()) { + return clauseElement; + } + for (final Iterator ite = _whereClauseSimpleFilterList + .iterator(); ite.hasNext();) { + final WhereClauseSimpleFilter filter = ite.next(); + if (filter == null) { + String msg = "The list of filter should not have null: _whereClauseSimpleFilterList=" + + _whereClauseSimpleFilterList; + throw new IllegalStateException(msg); + } + clauseElement = filter.filterClauseElement(clauseElement); + } + return clauseElement; + } + + //========================================================================== + // =========== + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty() { + if (_selectedForeignInfo == null) { + return true; + } + return _selectedForeignInfo.isEmpty(); + } + + public boolean hasSelectedForeignInfo(String relationPath) { + if (_selectedForeignInfo == null) { + return false; + } + return _selectedForeignInfo.containsKey(relationPath); + } + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName) { + if (_selectedForeignInfo == null) { + _selectedForeignInfo = new HashMap(); + } + _selectedForeignInfo.put(relationPath, foreignPropertyName); + } + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective() { + return _formatClause; + } + + public void makeFormatClauseEffective() { + _formatClause = true; + } + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity) { + return getSubQueryBeginMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + public String resolveSubQueryEndMark(String subQueryIdentity) { + return getSubQueryEndMarkPrefix() + subQueryIdentity + + getSubQueryIdentityTerminal(); + } + + protected String getSubQueryBeginMarkPrefix() { + return "--df:SubQueryBegin#"; + } + + protected String getSubQueryEndMarkPrefix() { + return "--df:SubQueryEnd#"; + } + + protected String getSubQueryIdentityTerminal() { + return "#IdentityTerminal#"; + } + + public String filterSubQueryIndent(String sql) { + return isFormatClauseEffective() ? filterSubQueryIndent(sql, "") : sql; + } + + protected String filterSubQueryIndent(String sql, String preIndent) { + if (!isFormatClauseEffective()) { + return sql; + } + final String lineSeparator = getLineSeparator(); + if (!sql.contains(getSubQueryBeginMarkPrefix())) { + return sql; + } + final String[] lines = sql.split(lineSeparator); + final String beginMarkPrefix = getSubQueryBeginMarkPrefix(); + final String endMarkPrefix = getSubQueryEndMarkPrefix(); + final String identityTerminal = getSubQueryIdentityTerminal(); + final int terminalLength = identityTerminal.length(); + StringBuilder mainSb = new StringBuilder(); + StringBuilder subSb = null; + boolean throughBegin = false; + boolean throughBeginFirst = false; + String subQueryIdentity = null; + String indent = null; + for (String line : lines) { + if (!throughBegin) { + if (line.contains(beginMarkPrefix)) { + throughBegin = true; + subSb = new StringBuilder(); + final int markIndex = line.indexOf(beginMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subQueryIdentity = line.substring(markIndex + + beginMarkPrefix.length(), terminalIndex); + subSb.append(clause); + indent = buildSpaceBar(markIndex - preIndent.length()); + } else { + mainSb.append(line).append(getLineSeparator()); + } + } else { + // - - - - - - - - + // In begin to end + // - - - - - - - - + if (line.contains(endMarkPrefix + subQueryIdentity)) {// The end + final int markIndex = line.indexOf(endMarkPrefix); + final int terminalIndex = line.indexOf(identityTerminal); + if (terminalIndex < 0) { + String msg = "Identity terminal was Not Found at the begin line: [" + + line + "]"; + throw new SubQueryIndentFailureException(msg); + } + final String clause = line.substring(0, markIndex) + + line.substring(terminalIndex + terminalLength); + subSb.append(clause).append(getLineSeparator()); + final String currentSql = filterSubQueryIndent(subSb + .toString(), preIndent + indent); + mainSb.append(currentSql); + throughBegin = false; + throughBeginFirst = false; + } else { + if (!throughBeginFirst) { + subSb.append(line.trim()).append(getLineSeparator()); + throughBeginFirst = true; + } else { + subSb.append(indent).append(line).append( + getLineSeparator()); + } + } + } + } + final String filteredSql = mainSb.toString(); + + if (throughBegin) { + String msg = "End Mark Not Found!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + if (filteredSql.contains(beginMarkPrefix)) { + String msg = "Any begin marks are not filtered!"; + msg = msg + getLineSeparator() + "[Current SubQueryIdentity]" + + getLineSeparator(); + msg = msg + subQueryIdentity + getLineSeparator(); + msg = msg + getLineSeparator() + "[Before Filter]" + + getLineSeparator(); + msg = msg + sql + getLineSeparator(); + msg = msg + getLineSeparator() + "[After Filter]" + + getLineSeparator() + filteredSql; + throw new SubQueryIndentFailureException(msg); + } + return filteredSql; + } + + protected String buildSpaceBar(int size) { + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < size; i++) { + sb.append(" "); + } + return sb.toString(); + } + + public static class SubQueryIndentFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public SubQueryIndentFailureException(String msg) { + super(msg); + } + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName) { + if (_specifiedSelectColumnMap == null) { + _specifiedSelectColumnMap = new HashMap>(); + } + if (!_specifiedSelectColumnMap.containsKey(tableAliasName)) { + _specifiedSelectColumnMap.put(tableAliasName, + new HashMap()); + } + Map elementMap = _specifiedSelectColumnMap + .get(tableAliasName); + elementMap.put(columnName, null); // The value is dummy for extension at + // the future. + _specifiedSelectColumnMap.put(tableAliasName, elementMap); + } + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery) { + if (_specifiedDeriveSubQueryMap == null) { + _specifiedDeriveSubQueryMap = new LinkedHashMap(); + } + _specifiedDeriveSubQueryMap.put(aliasName, deriveSubQuery); + } + + public boolean hasSpecifiedDeriveSubQuery(String aliasName) { + if (_specifiedDeriveSubQueryMap == null) { + return false; + } + return _specifiedDeriveSubQueryMap.containsKey(aliasName); + } + + public String getSpecifiedColumnNameAsOne() { + if (_specifiedSelectColumnMap != null + && _specifiedSelectColumnMap.size() == 1) { + Map elementMap = _specifiedSelectColumnMap + .get(_specifiedSelectColumnMap.keySet().iterator().next()); + if (elementMap != null && elementMap.size() == 1) { + return elementMap.keySet().iterator().next(); + } + } + return null; + } + + public void clearSpecifiedSelectColumn() { + if (_specifiedSelectColumnMap != null) { + _specifiedSelectColumnMap.clear(); + _specifiedSelectColumnMap = null; + } + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + public String getClauseQueryUpdate(Map columnParameterMap) { + if (columnParameterMap.isEmpty()) { + return null; + } + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryUpdate() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("update ").append(_tableName).append(ln); + int index = 0; + // It is guaranteed that the map has one or more elements. + for (String columnName : columnParameterMap.keySet()) { + final String parameter = columnParameterMap.get(columnName); + if (index == 0) { + sb.append(" set ").append(columnName).append(" = ").append( + parameter).append(ln); + } else { + sb.append(" , ").append(columnName).append(" = ").append( + parameter).append(ln); + } + ++index; + } + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("where ")); + sb.append(" ").append(subQuery); + return sb.toString(); + } + } + + public String getClauseQueryDelete() { + final String aliasName = getLocalTableAliasName(); + final DBMeta dbmeta = findDBMeta(); + if (dbmeta.hasTwoOrMorePrimaryKeys()) { + String msg = "The target table of queryDelete() should have only one primary key:"; + msg = msg + " primaryKeys=" + + dbmeta.getPrimaryUniqueInfo().getUniqueColumnList(); + throw new IllegalStateException(msg); + } + final String primaryKeyName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + final String selectClause = "select " + aliasName + "." + + primaryKeyName; + String fromWhereClause = getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, + getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, + getUnionWhereFirstConditionMark(), ""); + + if (isUpdateSubQueryUseLocalTableSupported()) { + final String subQuery = filterSubQueryIndent(selectClause + " " + + fromWhereClause); + final StringBuilder sb = new StringBuilder(); + String ln = ""; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } + sb.append("delete from ").append(_tableName).append(ln); + sb.append(" where ").append(primaryKeyName); + sb.append(" in (").append(ln).append(subQuery).append(ln).append( + ")"); + return sb.toString(); + } else { + String subQuery = filterSubQueryIndent(fromWhereClause); + subQuery = replaceString(subQuery, aliasName + ".", ""); + subQuery = replaceString(subQuery, " " + aliasName + " ", " "); + subQuery = subQuery.substring(subQuery.indexOf("from ")); + return "delete " + subQuery; + } + } + + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return true; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return false; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + return DBMetaInstanceHandler.findDBMeta(_tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String replaceString(String text, String fromText, String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/AbstractSqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByClause.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByClause.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByClause.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,281 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByClause implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _orderByList = new ArrayList(); + + //========================================================================== + // =========== + // Constructor + // =========== + /** + * Constructor. + */ + public OrderByClause() { + } + + //========================================================================== + // =========== + // Manipulation + // ============ + /** + * Add order-by element. + * + * @param orderByElement Order-by element. (NotNull) + */ + public void addOrderByElement(OrderByElement orderByElement) { + _orderByList.add(orderByElement); + } + + /** + * Insert first order-by element . + * + * @param orderByElement Order-by element. (NotNull) + */ + public void insertFirstOrderByElement(OrderByElement orderByElement) { + _orderByList.add(0, orderByElement); + } + + public void reverseAll() { + for (Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + ite.next().reverse(); + } + } + + public void exchangeFirstOrderByElementForLastOne() { + if (_orderByList.size() > 1) { + final OrderByElement first = _orderByList.get(0); + final OrderByElement last = _orderByList + .get(_orderByList.size() - 1); + _orderByList.set(0, last); + _orderByList.set(_orderByList.size() - 1, first); + } + } + + public void addNullsFirstToPreviousOrderByElement( + OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, true); + } + + public void addNullsLastToPreviousOrderByElement(OrderByNullsSetupper filter) { + if (_orderByList.isEmpty()) { + return; + } + final OrderByElement last = _orderByList.get(_orderByList.size() - 1); + last.setOrderByNullsSetupper(filter, false); + } + + public static interface OrderByNullsSetupper { + public String setup(String columnName, String orderByElementClause, + boolean nullsFirst); + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public List getOrderByList() { + return _orderByList; + } + + public String getOrderByClause() { + return getOrderByClause(null); + } + + public String getOrderByClause( + Map selectClauseRealColumnAliasMap) { + if (_orderByList.isEmpty()) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + final String delimiter = ", "; + for (final Iterator ite = _orderByList.iterator(); ite + .hasNext();) { + final OrderByElement element = ite.next(); + sb.append(delimiter); + if (selectClauseRealColumnAliasMap != null) { + sb.append(element + .getElementClause(selectClauseRealColumnAliasMap)); + } else { + sb.append(element.getElementClause()); + } + } + sb.delete(0, delimiter.length()).insert(0, "order by "); + return sb.toString(); + } + + public boolean isSameOrderByColumn(String orderByProperty) { + final List orderByList = new ArrayList(); + { + final StringTokenizer st = new StringTokenizer(orderByProperty, "/"); + while (st.hasMoreElements()) { + orderByList.add(st.nextToken()); + } + } + if (_orderByList.size() != orderByList.size()) { + return false; + } + int count = 0; + for (final Iterator ite = orderByList.iterator(); ite.hasNext();) { + final String columnFullName = ite.next(); + final OrderByElement element = (OrderByElement) _orderByList + .get(count); + if (!element.getColumnFullName().equals(columnFullName)) { + return false; + } + count++; + } + return true; + } + + //========================================================================== + // =========== + // First Element + // ============= + public boolean isFirstElementAsc() { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new IllegalStateException(msg); + } + final OrderByElement element = (OrderByElement) _orderByList.get(0); + return element.isAsc(); + } + + public boolean isFirstElementDesc() { + return !isFirstElementAsc(); + } + + public boolean isSameAsFirstElementAliasName(String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementColumnName(String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + /** + * @param expectedAliasName Expected alias-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredAliasName( + String expectedAliasName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualAliasName = element.getRegisteredAliasName(); + if (actualAliasName != null && expectedAliasName != null) { + return actualAliasName.equalsIgnoreCase(expectedAliasName); + } else { + return false; + } + } + + /** + * @param expectedColumnName Expected column-name. (Nullable) + * @return Determination. + */ + public boolean isSameAsFirstElementRegisteredColumnName( + String expectedColumnName) { + if (isEmpty()) { + String msg = "This order-by clause is empty: " + toString(); + throw new RuntimeException(msg); + } + OrderByElement element = (OrderByElement) _orderByList.get(0); + String actualColumnName = element.getRegisteredColumnName(); + if (actualColumnName != null && expectedColumnName != null) { + return actualColumnName.equalsIgnoreCase(expectedColumnName); + } else { + return false; + } + } + + //========================================================================== + // =========== + // Delegate of List + // ================ + /** + * Is empty? + * + * @return Determination. + */ + public boolean isEmpty() { + return _orderByList.isEmpty(); + } + + /** + * Get iterator of order-by list. + * + * @return Determination. + */ + public Iterator iterator() { + return _orderByList.iterator(); + } + + /** + * Clear order-by list. + */ + public void clear() { + _orderByList.clear(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view string of all-columns value. (NotNUll) + */ + public String toString() { + return _orderByList.toString(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByElement.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByElement.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByElement.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,273 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +import java.io.Serializable; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class OrderByElement implements Serializable { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // =========== + // Attribute + // ========= + /** The value of alias name. */ + protected String _aliasName; + + /** The value of column name. */ + protected String _columnName; + + /** The value of registered alias name. */ + protected String _registeredAliasName; + + /** The value of registered column name. */ + protected String _registeredColumnName; + + /** The value of ascDesc. */ + protected String _ascDesc = "asc"; + + /** The setupper of order-by nulls. */ + protected OrderByClause.OrderByNullsSetupper _orderByNullsSetupper; + + /** Is nulls ordered first? */ + protected boolean _nullsFirst; + + //========================================================================== + // =========== + // Manipulation + // ============ + public void setupAsc() { + _ascDesc = "asc"; + } + + public void setupDesc() { + _ascDesc = "desc"; + } + + public void reverse() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + _ascDesc = "desc"; + } else if (_ascDesc.equals("desc")) { + _ascDesc = "asc"; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + //========================================================================== + // =========== + // Order-By Expression + // =================== + public boolean isAsc() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + if (_ascDesc.equals("asc")) { + return true; + } else if (_ascDesc.equals("desc")) { + return false; + } else { + String msg = "The attribute[ascDesc] should be asc or desc: but ascDesc=" + + _ascDesc; + throw new IllegalStateException(msg); + } + } + + public String getColumnFullName() { + final StringBuilder sb = new StringBuilder(); + if (_aliasName != null) { + sb.append(_aliasName).append("."); + } + if (_columnName == null) { + String msg = "The attribute[columnName] should not be null."; + throw new IllegalStateException(msg); + } + sb.append(_columnName); + return sb.toString(); + } + + public String getElementClause() { + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + sb.append(getColumnFullName()).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(getColumnFullName(), sb + .toString(), _nullsFirst); + } else { + return sb.toString(); + } + } + + public String getElementClause( + Map selectClauseRealColumnAliasMap) { + if (selectClauseRealColumnAliasMap == null) { + String msg = "The argument[selectClauseRealColumnAliasMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (_ascDesc == null) { + String msg = "The attribute[ascDesc] should not be null."; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(); + final String columnAlias = selectClauseRealColumnAliasMap + .get(getColumnFullName()); + if (columnAlias == null || columnAlias.trim().length() == 0) { + throwOrderByColumnNotFoundException(getColumnFullName(), + selectClauseRealColumnAliasMap); + } + sb.append(columnAlias).append(" ").append(_ascDesc); + if (_orderByNullsSetupper != null) { + return _orderByNullsSetupper.setup(columnAlias, sb.toString(), + _nullsFirst); + } else { + return sb.toString(); + } + } + + protected void throwOrderByColumnNotFoundException(String columnName, + Map selectClauseRealColumnAliasMap) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The column for order-by was Not Found in select-clause!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "If you use 'union()' or 'unionAll()', Check your condition-bean!" + + getLineSeparator(); + msg = msg + "Order-by for union can use only columns on select-clause." + + getLineSeparator(); + msg = msg + + "So the rule when using union is little difference from the one when NOT using." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " [before (x)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *NG!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + " [after (o)]" + getLineSeparator(); + msg = msg + " AaaCB cb = new AaaCB();" + getLineSeparator(); + msg = msg + " cb.setupSelect_Bbb();// *Point!" + getLineSeparator(); + msg = msg + " cb.query().setXxx...();" + getLineSeparator(); + msg = msg + " {" + getLineSeparator(); + msg = msg + " AaaCB unionCB = new AaaCB();" + getLineSeparator(); + msg = msg + " unionCB.query().setXxx...();" + getLineSeparator(); + msg = msg + " cb.union(unionCB.query());" + getLineSeparator(); + msg = msg + " }" + getLineSeparator(); + msg = msg + + " cb.query().queryBbb().addOrderBy_BbbName_Asc();// *OK!" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + + "Or else if you DON'T use 'union()' or 'unionAll()', This is the Framework Exception!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Column]" + getLineSeparator(); + msg = msg + columnName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Internal Object]" + getLineSeparator(); + msg = msg + "selectClauseRealColumnAliasMap=" + + selectClauseRealColumnAliasMap + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // =========== + // Basic Override + // ============== + /** + * This method overrides the method that is declared at super. + * + * @return The view-string of all-columns value. (NotNull) + */ + public String toString() { + final StringBuilder sb = new StringBuilder(); + sb.append("{aliasName=").append(_aliasName); + sb.append(" columnName=").append(_columnName); + sb.append(" registeredAliasName=").append(_registeredAliasName); + sb.append(" registeredColumnName=").append(_registeredColumnName); + sb.append(" ascDesc=").append(_ascDesc).append("}"); + return sb.toString(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getAliasName() { + return _aliasName; + } + + public String getColumnName() { + return _columnName; + } + + public String getRegisteredAliasName() { + return _registeredAliasName; + } + + public String getRegisteredColumnName() { + return _registeredColumnName; + } + + public String getAscDesc() { + return _ascDesc; + } + + public void setAliasName(String value) { + _aliasName = value; + } + + public void setColumnName(String value) { + _columnName = value; + } + + public void setRegisteredAliasName(String value) { + _registeredAliasName = value; + } + + public void setRegisteredColumnName(String value) { + _registeredColumnName = value; + } + + public void setAscDesc(String value) { + _ascDesc = value; + } + + public void setOrderByNullsSetupper( + OrderByClause.OrderByNullsSetupper value, boolean nullsFirst) { + _orderByNullsSetupper = value; + _nullsFirst = nullsFirst; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/OrderByElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClause.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClause.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClause.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,624 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; + +/** + * The interface of SQL-clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlClause { + + //========================================================================== + // =========== + // Clause + // ====== + // ----------------------------------------------------- + // Complete Clause + // --------------- + /** + * Get the clause of all parts. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts. (NotNull) + */ + public String getClause(); + + /** + * Get clause of all parts as PK-only. + * + *
    +     * # select [base-table-columns], [join-table-columns]
    +     * #   from [base-table] left outer join [join-table] [join-alias] on [join-condition]
    +     * #  where [base-table].[column] = [value] and [join-alias].[column] is null
    +     * #  order by [base-table].[column] asc, [join-alias].[column] desc
    +     * #  for update
    +     * 
    + * + * @return The clause of all parts as PK-Only. (NotNull) + */ + public String getClausePKOnly(); + + // ----------------------------------------------------- + // Fragment Clause + // --------------- + /** + * Get from-where clause without select and orderBy and sqlSuffix. For + * subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithUnionTemplate(); + + /** + * Get from-where clause without select and orderBy and sqlSuffix as + * template. For subQuery and selectCount. + *

    + * You should handle UnionSelectClauseMark and UnionWhereClauseMark and + * UnionWhereFirstConditionMark and WhereClauseMark and + * WhereFirstConditionMark in clause. + *

    + * + * @return The 'from-where' clause(contains union) without 'select' and + * 'orderBy' and 'sqlSuffix'. (NotNull) + */ + public String getClauseFromWhereWithWhereUnionTemplate(); + + //========================================================================== + // =========== + // Clause Parts + // ============ + /** + * Get the clause of 'select'. This is an internal method. + * + * @return The clause of select. {[select ...] from table...} (NotNull) + */ + public String getSelectClause(); + + /** + * Get The clause of 'select' as PK-only. This is an internal method. + * + * @return The clause of select PK-only. {[select ...] from table...} + * (NotNull) + */ + public String getSelectClausePKOnly(); + + /** + * Get the hint of 'select'. This is an internal method. + * + * @return The hint of 'select'. {select [select-hint] * from table...} + * (NotNull) + */ + public String getSelectHint(); + + /** + * Get the clause of included-select-column. This is an internal method. + * + * @return The clause of included-select-column. {select ... , + * [included-select-column clause] from table...} (NotNull) + */ + public String getIncludedSelectColumnClause(); + + /** + * Get the clause of 'from'. This is an internal method. + * + * @return The clause of 'from'. (NotNull) + */ + public String getFromClause(); + + /** + * Get the clause of from-base-table. This is an internal method. + * + * @return The hint of from-base-table. {select * from table + * [from-base-table-hint] where ...} (NotNull) + */ + public String getFromBaseTableHint(); + + /** + * Get the hint of 'from'. This is an internal method. + * + * @return The hint of 'from'. {select * from table left outer join ... on + * ... [from-hint] where ...} (NotNull) + */ + public String getFromHint(); + + /** + * Get the clause of 'where'. This is an internal method. + * + * @return The clause of 'where'. (NotNull) + */ + public String getWhereClause(); + + /** + * Get the clause of 'order-by'. This is an internal method. + * + * @return The clause of 'order-by'. (NotNull) + */ + public String getOrderByClause(); + + /** + * Get the suffix of SQL. This is an internal method. + * + * @return The suffix of SQL. {select * from table where ... order by ... + * [sql-suffix]} (NotNull) + */ + public String getSqlSuffix(); + + //========================================================================== + // ========= + // Copy Parts + // ========== + /** + * Copy included-select-column. + * + * @param sqlClause SQL-clause. (NotNull) + */ + public void copyIncludedSelectColumn(SqlClause sqlClause); + + //========================================================================== + // ========= + // SelectedSelectColumn + // ==================== + /** + * Register selected-select-column. + * + * @param foreignTableAliasName The alias name of foreign table. (NotNull) + * @param localTableName The table name of local. (NotNull) + * @param foreignPropertyName The property name of foreign table. (NotNull) + * @param localRelationPath The path of local relation. (Nullable) + */ + public void registerSelectedSelectColumn(String foreignTableAliasName, + String localTableName, String foreignPropertyName, + String localRelationPath); + + //========================================================================== + // ========= + // IncludedSelectColumn + // ==================== + /** + * Ignore included-select-column. + */ + public void ignoreIncludedSelectColumn(); + + /** + * Make included-select-column effective. + */ + public void makeIncludedSelectColumnEffective(); + + /** + * Register included-select-column. + * + * @param aliasName The alias name of the included-select-column. (NotNull) + * @param realColumnName The real column name of the included-select-column. + * (NotNull) + */ + public void registerIncludedSelectColumn(String aliasName, + String realColumnName); + + //========================================================================== + // ========= + // OuterJoin + // ========= + /** + * Register outer-join. + * + * @param joinTableName The name of join table. {left outer join + * [joinTableName]} (NotNull) + * @param aliasName The alias name of join table. {left outer join + * joinTableName [aliasName]} (NotNull and Unique per invoking + * method) + * @param joinOnMap Map that has conditions of on-clause. (NotNull) + */ + public void registerOuterJoin(String joinTableName, String aliasName, + Map joinOnMap); + + //========================================================================== + // ========= + // Where + // ===== + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value); + + /** + * Register 'where' clause. + * + * @param columnFullName The full name of column. + * {[table-name].[column-name]}. (NotNull) + * @param key Condition-key. (NotNull) + * @param value Condition-value. (NotNull) + * @param option Condition-option. (NotNull) + */ + public void registerWhereClause(String columnFullName, ConditionKey key, + ConditionValue value, ConditionOption option); + + /** + * Register 'where' clause. + * + * @param clause The clause of 'where'. (NotNull) + */ + public void registerWhereClause(String clause); + + /** + * Exchange first The clause of 'where' for last one. + */ + public void exchangeFirstWhereClauseForLastOne(); + + //========================================================================== + // ========= + // InlineWhere + // =========== + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value); + + public void registerBaseTableInlineWhereClause(String columnName, + ConditionKey key, ConditionValue value, ConditionOption option); + + public void registerBaseTableInlineWhereClause(String value); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String columnName, ConditionKey key, ConditionValue value, + ConditionOption option, boolean onClauseInline); + + public void registerOuterJoinInlineWhereClause(String aliasName, + String value, boolean onClauseInline); + + //========================================================================== + // ========= + // AdditionalConditionAsOr + // ======================= + public void makeAdditionalConditionAsOrEffective(); + + public void ignoreAdditionalConditionAsOr(); + + //========================================================================== + // ========= + // OrderBy + // ======= + public OrderByClause getSqlComponentOfOrderByClause(); + + public SqlClause clearOrderBy(); + + public SqlClause ignoreOrderBy(); + + public SqlClause makeOrderByEffective(); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void registerOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + /** + * @param orderByProperty Order-by-property. + * 'aliasName.columnName/aliasName.columnName/...' (NotNull) + * @param registeredOrderByProperty Registered-order-by-property. + * ([table-name].[column-name]) (Nullable) + * @param ascOrDesc Is it ascend or descend? + */ + public void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, + String registeredOrderByProperty, boolean ascOrDesc); + + public void addNullsFirstToPreviousOrderBy(); + + public void addNullsLastToPreviousOrderBy(); + + //========================================================================== + // ========= + // Union + // ===== + public void registerUnionQuery(String unionClause, boolean unionAll); + + //========================================================================== + // ========= + // FetchScope + // ========== + /** + * Fetch first. + * + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchFirst(int fetchSize); + + /** + * Fetch scope. + * + * @param fetchStartIndex Fetch-start-index. 0 origin. (NotMinus) + * @param fetchSize Fetch-size. (NotMinus) + * @return this. (NotNull) + */ + public SqlClause fetchScope(int fetchStartIndex, int fetchSize); + + /** + * Fetch page. + *

    + * When you invoke this, it is normally necessary to invoke 'fetchFirst()' + * or 'fetchScope()' ahead of that. But you also can use default-fetch-size + * without invoking 'fetchFirst()' or 'fetchScope()'. If you invoke this, + * your SQL returns [fetch-size] records from [fetch-start-index] calculated + * by [fetch-page-number]. + *

    + * + * @param fetchPageNumber Fetch-page-number. 1 origin. (NotMinus & NotZero: + * If minus or zero, set one.) + * @return this. (NotNull) + */ + public SqlClause fetchPage(int fetchPageNumber); + + /** + * Get fetch start index. + * + * @return Fetch start index. + */ + public int getFetchStartIndex(); + + /** + * Get fetch size. + * + * @return Fetch size. + */ + public int getFetchSize(); + + /** + * Get fetch page number. + * + * @return Fetch page number. + */ + public int getFetchPageNumber(); + + /** + * Get page start index. + * + * @return Page start index. 0 origin. (NotMinus) + */ + public int getPageStartIndex(); + + /** + * Get page end index. + * + * @return Page end index. 0 origin. (NotMinus) + */ + public int getPageEndIndex(); + + /** + * Is fetch scope effective? + * + * @return Determiantion. + */ + public boolean isFetchScopeEffective(); + + /** + * Ignore fetch-scope. + * + * @return this. (NotNull) + */ + public SqlClause ignoreFetchScope(); + + /** + * Make fetch-scope effective. + * + * @return this. (NotNull) + */ + public SqlClause makeFetchScopeEffective(); + + /** + * Is fetch start index supported? + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported(); + + /** + * Is fetch size supported? + * + * @return Determination. + */ + public boolean isFetchSizeSupported(); + + //========================================================================== + // ========= + // Fetch Narrowing + // =============== + /** + * Is fetch-narrowing effective? + * + * @return Determiantion. + */ + public boolean isFetchNarrowingEffective(); + + /** + * Get fetch-narrowing skip-start-index. + * + * @return Skip-start-index. + */ + public int getFetchNarrowingSkipStartIndex(); + + /** + * Get fetch-narrowing loop-count. + * + * @return Loop-count. + */ + public int getFetchNarrowingLoopCount(); + + //========================================================================== + // ========= + // Lock + // ==== + /** + * Lock for update. + *

    + * If you invoke this, your SQL lock target records for update. It depends + * whether this method supports this on the database type. + *

    + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate(); + + //========================================================================== + // ========= + // Resolver + // ======== + /** + * Resolve join alias name. + * + * @param relationPath Relation path. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved join alias name. (NotNull) + */ + public String resolveJoinAliasName(String relationPath, int cqNestNo); + + /** + * Resolve nest level expression. + * + * @param name Name. (NotNull) + * @param cqNestNo The nest no of condition query. + * @return Resolved name about nest level. (NotNull) + */ + public String resolveNestLevelExpression(String name, int cqNestNo); + + /** + * Resolve relation no. + * + * @param baseTableName The table name of base. (NotNull) + * @param foreignPropertyName The property name of foreign. (NotNull) + * @return Resolved relation no. + */ + public int resolveRelationNo(String baseTableName, + String foreignPropertyName); + + //========================================================================== + // ========= + // Table Alias Info + // ================ + public String getLocalTableAliasName(); + + public String getForeignTableAliasPrefix(); + + //========================================================================== + // ========= + // Template Mark + // ============= + public String getWhereClauseMark(); + + public String getWhereFirstConditionMark(); + + public String getUnionSelectClauseMark(); + + public String getUnionWhereClauseMark(); + + public String getUnionWhereFirstConditionMark(); + + //========================================================================== + // ========= + // Where Clause Simple Filter + // ========================== + public void addWhereClauseSimpleFilter( + WhereClauseSimpleFilter whereClauseSimpleFilter); + + //========================================================================== + // ========= + // Selected Foreign Info + // ===================== + public boolean isSelectedForeignInfoEmpty(); + + public boolean hasSelectedForeignInfo(String relationPath); + + public void registerSelectedForeignInfo(String relationPath, + String foreignPropertyName); + + //========================================================================== + // ========= + // Format Clause + // ============= + public boolean isFormatClauseEffective(); + + public void makeFormatClauseEffective(); + + //========================================================================== + // ========= + // Sub Query Indent + // ================ + public String resolveSubQueryBeginMark(String subQueryIdentity); + + public String resolveSubQueryEndMark(String subQueryIdentity); + + public String filterSubQueryIndent(String sql); + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specification + // ============= + public void specifySelectColumn(String tableAliasName, String columnName); + + public void specifyDeriveSubQuery(String aliasName, String deriveSubQuery); + + public boolean hasSpecifiedDeriveSubQuery(String aliasName); + + public String getSpecifiedColumnNameAsOne(); + + public void clearSpecifiedSelectColumn(); + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update + // ============ + /** + * @param columnParameterMap The map of column parameters. (NotNull) + * @return The clause of query update. (Nullable: If columnParameterMap is + * empty, return null) + */ + public String getClauseQueryUpdate(Map columnParameterMap); + + public String getClauseQueryDelete(); + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint + // ================= + /** + * Is the SQLException from unique constraint? {Use both SQLState and + * ErrorCode} + * + * @param sqlState SQLState of the SQLException. (Nullable) + * @param errorCode ErrorCode of the SQLException. (Nullable) + * @return Is the SQLException from unique constraint? + */ + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClause.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDb2.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDb2.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDb2.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,165 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for DB2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDb2 extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as sql-suffix. */ + protected String _fetchFirstSqlSuffix = ""; + + /** String of lock as from-hint. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDb2(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSqlSuffix = " fetch first " + getFetchSize() + + " rows only"; + } else { + _fetchFirstSqlSuffix = " fetch first " + getPageEndIndex() + + " rows only"; + } + } + } + + /** + * The implementation. {Unsupported!} + */ + protected void doClearFetchPageClause() { + _fetchFirstSqlSuffix = ""; + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with RS"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchFirstSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } + + // [DBFlute-0.7.9] + //========================================================================== + // ========= + // DB2 Dependency + // ============== + public void lockWithRR() { + _lockSqlSuffix = " with RR"; + } + + public void lockWithRS() { + _lockSqlSuffix = " with RS"; + } + + public void lockWithCS() { + _lockSqlSuffix = " with CS"; + } + + public void lockWithUR() { + _lockSqlSuffix = " with UR"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDb2.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDefault.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDefault.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDefault.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,113 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDefault extends AbstractSqlClause { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDefault(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + String msg = "LockForUpdate-SQL is unsupported in the database. Sorry...: " + + toString(); + throw new UnsupportedOperationException(msg); + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDefault.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDerby.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDerby.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDerby.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,136 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Default. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseDerby extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseDerby(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + } + + /** + * The implementation. + */ + protected void doFetchPage() { + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; // Default + } + + /** + * The override. + * + * @return Determination. + */ + public boolean isFetchSizeSupported() { + return false; // Default + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseDerby.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,103 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Firebird. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseFirebird extends AbstractSqlClause { + + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseFirebird(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseFirebird.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseH2.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseH2.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseH2.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,104 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for H2. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseH2 extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseH2(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getFetchSize() + " offset " + + getPageStartIndex(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23001".equals(sqlState); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseH2.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,111 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for Interbase. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseInterbase extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseInterbase(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getFetchSize() + " skip " + + getPageStartIndex(); + } + if (isFetchStartIndexSupported() && !isFetchSizeSupported()) { + _fetchScopeSelectHint = " skip " + getPageStartIndex(); + } + if (!isFetchStartIndexSupported() && isFetchSizeSupported()) { + _fetchScopeSelectHint = " first " + getPageEndIndex(); + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update with lock"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _lockSqlSuffix; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseInterbase.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseMySql.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseMySql.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseMySql.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,135 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MySQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseMySql extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseMySql(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " limit " + getPageStartIndex() + ", " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.5] + //========================================================================== + // ========= + // Query Update Override + // ===================== + @Override + protected boolean isUpdateSubQueryUseLocalTableSupported() { + return false; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1062; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseMySql.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseOracle.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseOracle.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseOracle.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,182 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * SqlClause for Oracle. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseOracle extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-scope as select-hint. */ + protected String _fetchScopeSelectHint = ""; + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseOracle(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // Database Original Override + // ========================== + @Override + protected String buildUnionClause(String selectClause) { + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // Remove select-hint comment from select clause of union + // for fetch-scope with union(). + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + selectClause = replaceString(selectClause, SELECT_HINT, ""); + return super.buildUnionClause(selectClause); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (!isFetchStartIndexSupported() && !isFetchSizeSupported()) { + return; + } + String ln = null; + if (isFormatClauseEffective()) { + ln = getLineSeparator(); + } else { + ln = ""; + } + _fetchScopeSelectHint = " * from (select base.*, rownum as rn from (" + + ln + "select"; + _fetchScopeSqlSuffix = ""; + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn > " + + getPageStartIndex(); + } + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchScopeSqlSuffix = _fetchScopeSqlSuffix + " and rn <= " + + getPageEndIndex(); + } else { + _fetchScopeSqlSuffix = ") base )" + ln + " where rn <= " + + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSelectHint = ""; + _fetchScopeSqlSuffix = ""; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + final DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(_tableName); + if (dbmeta.hasPrimaryKey()) { + final String primaryKeyColumnName = dbmeta.getPrimaryUniqueInfo() + .getFirstColumn().getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + primaryKeyColumnName; + } else { + final String randomColumnName = ((ColumnInfo) dbmeta + .getColumnInfoList().get(0)).getColumnDbName(); + _lockSqlSuffix = " for update of " + getLocalTableAliasName() + "." + + randomColumnName; + } + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchScopeSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 1; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseOracle.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,104 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for PostreSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClausePostgreSql extends AbstractSqlClause { + + /** String of fetch-scope as sql-suffix. */ + protected String _fetchScopeSqlSuffix = ""; + + /** String of lock as sql-suffix. */ + protected String _lockSqlSuffix = ""; + + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClausePostgreSql(String tableName) { + super(tableName); + } + + /** + * The implementation. + */ + protected void doFetchFirst() { + doFetchPage(); + } + + /** + * The implementation. + */ + protected void doFetchPage() { + _fetchScopeSqlSuffix = " offset " + getPageStartIndex() + " limit " + + getFetchSize(); + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchScopeSqlSuffix = ""; + } + + /** + * The implementation. + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockSqlSuffix = " for update"; + return this; + } + + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return ""; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return _fetchScopeSqlSuffix + _lockSqlSuffix; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return "23505".equals(sqlState); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClausePostgreSql.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,147 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +/** + * SqlClause for MSSQL. + * + * @author DBFlute(AutoGenerator) + */ +public class SqlClauseSqlServer extends AbstractSqlClause { + + //========================================================================== + // ========= + // Attribute + // ========= + /** String of fetch-first as select-hint. */ + protected String _fetchFirstSelectHint = ""; + + /** String of lock as from-hint. */ + protected String _lockFromHint = ""; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param tableName Table name. (NotNull) + **/ + public SqlClauseSqlServer(String tableName) { + super(tableName); + } + + //========================================================================== + // ========= + // OrderBy Override + // ================ + @Override + protected OrderByClause.OrderByNullsSetupper createOrderByNullsSetupper() { + return createOrderByNullsSetupperByCaseWhen(); + } + + //========================================================================== + // ========= + // FetchScope Override + // =================== + /** + * The implementation. + */ + protected void doFetchFirst() { + if (isFetchSizeSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } + } + + /** + * The implementation. + */ + protected void doFetchPage() { + if (isFetchSizeSupported()) { + if (isFetchStartIndexSupported()) { + _fetchFirstSelectHint = " top " + getFetchSize(); + } else { + _fetchFirstSelectHint = " top " + getPageEndIndex(); + } + } + } + + /** + * The implementation. + */ + protected void doClearFetchPageClause() { + _fetchFirstSelectHint = ""; + } + + /** + * @return Determination. + */ + public boolean isFetchStartIndexSupported() { + return false; + } + + //========================================================================== + // ========= + // Lock Override + // ============= + /** + * The implementation. {Implement} + * + * @return this. (NotNull) + */ + public SqlClause lockForUpdate() { + _lockFromHint = " with (updlock)"; + return this; + } + + //========================================================================== + // ========= + // Hint Override + // ============= + /** + * The implementation. + * + * @return Select-hint. (NotNull) + */ + protected String createSelectHint() { + return _fetchFirstSelectHint; + } + + /** + * The implementation. + * + * @return From-base-table-hint. {select * from table [from-base-table-hint] + * where ...} (NotNull) + */ + protected String createFromBaseTableHint() { + return _lockFromHint; + } + + /** + * The implementation. + * + * @return From-hint. (NotNull) + */ + protected String createFromHint() { + return ""; + } + + /** + * The implementation. + * + * @return Sql-suffix. (NotNull) + */ + protected String createSqlSuffix() { + return ""; + } + + // [DBFlute-0.7.7] + //========================================================================== + // ========= + // Unique Constraint Override + // ========================== + @Override + public boolean isUniqueConstraintException(String sqlState, + Integer errorCode) { + return errorCode != null && errorCode == 2627; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/SqlClauseSqlServer.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,146 @@ +package jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * The interface of simple filter for where clause. + * + * @author DBFlute(AutoGenerator) + */ +public interface WhereClauseSimpleFilter { + + public static final String BIND_COMMENT_BEGIN_PART = "/*dto"; + + public static final String BIND_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_BEGIN_PART = "/*$dto"; + + public static final String EMBEDDED_COMMENT_END_PART = "*/null"; + + public static final String EMBEDDED_COMMENT_QUOTED_BEGIN_PART = "'/*$dto"; + + public static final String EMBEDDED_COMMENT_QUOTED_END_PART = "*/'dummy''"; + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement); + + /** + * The simple filter for where clause to embedded.
    *Attension -- + * Target column is not perfect. This class determines by column name only! + * So when the column name of base table is same as the column name of join + * table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedSimpleFilter implements + WhereClauseSimpleFilter { + + protected java.util.Set _filterTargetColumnInfoSet; + + public WhereClauseToEmbeddedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + this._filterTargetColumnInfoSet = new java.util.HashSet(); + this._filterTargetColumnInfoSet.add(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + this._filterTargetColumnInfoSet = filterTargetColumnInfoSet; + } + + /** + * Filter clause element. + * + * @param clauseElement Clause element of where. (NotNull and NotEmpty) + * @return Filtered where clause. (NotNull and NotEmpty) + */ + public String filterClauseElement(String clauseElement) { + if (_filterTargetColumnInfoSet == null + || _filterTargetColumnInfoSet.isEmpty()) { + return toEmbedded(clauseElement); + } + for (final java.util.Iterator ite = _filterTargetColumnInfoSet + .iterator(); ite.hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (isTargetClause(clauseElement, columnInfo.getColumnDbName())) { + return toEmbedded(clauseElement); + } + } + return clauseElement; + } + + protected boolean isTargetClause(String clauseElement, + final String columnDbName) { + return clauseElement.indexOf("." + columnDbName + " ") >= 0; + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_END_PART); + return clauseElement; + } + + protected final String replace(String text, String fromText, + String toText) { + + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } + } + + /** + * The simple filter for where clause to embedded and quoted.
    + * *Attension -- Target column is not perfect. This class determines by + * column name only! So when the column name of base table is same as the + * column name of join table, both are target! + * + * @author DBFlute(AutoGenerator) + */ + public static class WhereClauseToEmbeddedQuotedSimpleFilter extends + WhereClauseToEmbeddedSimpleFilter { + + public WhereClauseToEmbeddedQuotedSimpleFilter( + ColumnInfo filterTargetColumnInfo) { + super(filterTargetColumnInfo); + } + + public WhereClauseToEmbeddedQuotedSimpleFilter( + java.util.Set filterTargetColumnInfoSet) { + super(filterTargetColumnInfoSet); + } + + protected String toEmbedded(String clauseElement) { + clauseElement = replace(clauseElement, BIND_COMMENT_BEGIN_PART, + EMBEDDED_COMMENT_QUOTED_BEGIN_PART); + clauseElement = replace(clauseElement, BIND_COMMENT_END_PART, + EMBEDDED_COMMENT_QUOTED_END_PART); + return clauseElement; + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/cbean/sqlclause/WhereClauseSimpleFilter.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/AbstractDBMeta.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/AbstractDBMeta.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/AbstractDBMeta.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1250 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.MapListString; +import jp.sf.pal.scheduler.db.allcommon.helper.MapListStringImpl; +import jp.sf.pal.scheduler.db.allcommon.helper.MapStringBuilder; +import jp.sf.pal.scheduler.db.allcommon.helper.MapStringBuilderImpl; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleAssertUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * The abstract class of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractDBMeta implements DBMeta { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _columnInfoList; + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName) { + if (!hasFlexibleName(columnFlexibleName)) { + return false; + } + final String propertyName = findPropertyName(columnFlexibleName); + return hasMethod("column" + initCap(propertyName)); + } + + /** + * The implementation. + * + * @param columnFlexibleName The flexible name of the column. (NotNull and + * NotEmpty) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("columnFlexibleName", + columnFlexibleName); + if (!hasColumn(columnFlexibleName)) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName(); + throw new IllegalArgumentException(msg); + } + String methodName = "column" + + initCap(findPropertyName(columnFlexibleName)); + Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found column by columnFlexibleName: " + + columnFlexibleName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ColumnInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) {// createColumnInfo() + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits); + } + + protected ColumnInfo cci(String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) {// createColumnInfo + // ( + // ) + return new ColumnInfo(this, columnDbName, propertyName, propertyType, + primary, columnSize, columnDecimalDigits, optimisticLockType); + } + + /** + * The implementation. + * + * @return The list of columns. (NotNull and NotEmpty) + */ + public List getColumnInfoList() { + if (_columnInfoList != null) { + return _columnInfoList; + } + synchronized (this) { + if (_columnInfoList != null) { + return _columnInfoList; + } + Method[] methods = this.getClass().getMethods(); + _columnInfoList = newArrayList(); + String prefix = "column"; + Class returnType = ColumnInfo.class; + Object[] args = new Object[] {}; + try { + for (Method method : methods) { + if (method.getName().startsWith(prefix) + && returnType.equals(method.getReturnType())) { + _columnInfoList.add((ColumnInfo) method.invoke(this, + args)); + } + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return _columnInfoList; + } + } + + protected void initializeColumnInfoList() { + getColumnInfoList();// Ignore return value because of initialization + // only! + } + + //========================================================================== + // =========== + // Name Handling + // ============= + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return true; + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return true; + } + return false; + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get(key); + } + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + final String dbNameKeyToLower = ((String) getDbNamePropertyNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getPropertyNameDbNameKeyToLowerMap().containsKey( + dbNameKeyToLower)) { + return (String) getPropertyNameDbNameKeyToLowerMap().get( + dbNameKeyToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + /** + * The implementation. + * + * @param flexibleName Flexible-name(IgnoreCase). (NotNull and NotEmpty) + * @return DB name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName) { + final String key = flexibleName.toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(key)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get(key); + } + if (getPropertyNameDbNameKeyToLowerMap().containsKey(key)) { + final String dbNameToLower = ((String) getPropertyNameDbNameKeyToLowerMap() + .get(key)).toLowerCase(); + if (getDbNamePropertyNameKeyToLowerMap().containsKey(dbNameToLower)) { + return (String) getDbNamePropertyNameKeyToLowerMap().get( + dbNameToLower); + } + } + String msg = "Not found object by the flexible name: flexibleName=" + + flexibleName; + throw new IllegalStateException(msg); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + protected UniqueInfo createPrimaryUniqueInfo() { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + return uniqueInfo; + } + + protected UniqueInfo createPrimaryUniqueInfo(ColumnInfo uniqueColumnInfo) { + UniqueInfo uniqueInfo = new UniqueInfo(); + uniqueInfo.setDBMeta(this); + uniqueInfo.setPrimary(true); + uniqueInfo.addUniqueColumnList(uniqueColumnInfo); + return uniqueInfo; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + /** + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return The information of relation. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("relationPropertyName", + relationPropertyName); + return hasForeign(relationPropertyName) ? (RelationInfo) findForeignInfo(relationPropertyName) + : (RelationInfo) findReferrerInfo(relationPropertyName); + } + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + return hasMethod(methodName); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropertyName) { + return findForeignInfo(foreignPropertyName).getForeignDBMeta(); + } + + /** + * @param foreignPropertyName The property name of foreign. (Both OK - + * InitCap or not). (NotNull) + * @return Foreign information. (NotNull) + */ + public jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo findForeignInfo( + String foreignPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("foreignPropertyName", + foreignPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "foreign", foreignPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found foreign by foreignPropertyName: foreignPropertyName=" + + foreignPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ForeignInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ForeignInfo cfi(String propName, DBMeta localDbm, + DBMeta foreignDbm, + Map localForeignColumnInfoMap, int relNo, + boolean oneToOne) {// createForeignInfo() + final ForeignInfo foreignInfo = new ForeignInfo(); + foreignInfo.setForeignPropertyName(propName); + foreignInfo.setLocalDBMeta(localDbm); + foreignInfo.setForeignDBMeta(foreignDbm); + foreignInfo.setLocalForeignColumnInfoMap(localForeignColumnInfoMap); + foreignInfo.setRelationNo(relNo); + foreignInfo.setOneToOne(oneToOne); + return foreignInfo; + } + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + return hasMethod(methodName); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + return findReferrerInfo(referrerPropertyName).getReferrerDBMeta(); + } + + /** + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName) { + assertStringNotNullAndNotTrimmedEmpty("referrerPropertyName", + referrerPropertyName); + final String methodName = buildRelationInfoGetterMethodNameInitCap( + "referrer", referrerPropertyName); + java.lang.reflect.Method method = null; + try { + method = this.getClass().getMethod(methodName, new Class[] {}); + } catch (NoSuchMethodException e) { + String msg = "Not found referrer by referrerPropertyName: referrerPropertyName=" + + referrerPropertyName; + msg = msg + " tableName=" + getTableDbName() + " methodName=" + + methodName; + throw new RuntimeException(msg, e); + } + try { + return (ReferrerInfo) method.invoke(this, new Object[] {}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } + + protected ReferrerInfo cri(String propName, DBMeta localDbm, + DBMeta referrerDbm, + Map localReferrerColumnInfoMap, + boolean oneToOne) {// createReferrerInfo() + final ReferrerInfo referrerInfo = new ReferrerInfo(); + referrerInfo.setReferrerPropertyName(propName); + referrerInfo.setLocalDBMeta(localDbm); + referrerInfo.setReferrerDBMeta(referrerDbm); + referrerInfo.setLocalReferrerColumnInfoMap(localReferrerColumnInfoMap); + referrerInfo.setOneToOne(oneToOne); + return referrerInfo; + } + + // ----------------------------------------------------- + // Common Logic + // ------------ + protected String buildRelationInfoGetterMethodNameInitCap( + String targetName, String relationPropertyName) { + return targetName + relationPropertyName.substring(0, 1).toUpperCase() + + relationPropertyName.substring(1); + } + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + protected static abstract class AbstractRelationTrace implements + RelationTrace { + + /** The list of relation. */ + protected List _relationList; + + /** The list of relation trace. */ + protected List _relationTraceList; + + /** The list of relation info as trace. */ + protected List _traceRelationInfoList; + + /** The column info as trace. */ + protected ColumnInfo _traceColumnInfo; + + /** The handler of fixed relation trace. */ + protected RelationTraceFixHandler _relationTraceFixHandler; + + /** + * Constructor for first step. + * + * @param relationTraceFixHandler The handler of fixed relation trace. + * (Nullable) + */ + public AbstractRelationTrace( + RelationTraceFixHandler relationTraceFixHandler) { + this(new ArrayList(), + new ArrayList()); + this._relationTraceFixHandler = relationTraceFixHandler; + } + + /** + * Constructor for relation step. + * + * @param relationList The list of relation. (NotNull) + * @param relationTraceList The list of relation trace. (NotNull) + */ + public AbstractRelationTrace(List relationList, + List relationTraceList) { + this._relationList = relationList; + this._relationTraceList = relationTraceList; + this._relationTraceList.add(this); + } + + /** + * The implementation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation() { + return _traceRelationInfoList; + } + + /** + * The implementation. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn() { + return _traceColumnInfo; + } + + /** + * Fix trace. + * + * @param traceRelationInfoList The trace of relation as the list of + * relation info. (NotNull) + * @param traceColumnInfo The trace of column as column info. (Nullable) + * @return Relation trace(result). (NotNull) + */ + protected RelationTrace fixTrace( + List traceRelationInfoList, + ColumnInfo traceColumnInfo) { + final AbstractRelationTrace localRelationTrace = (AbstractRelationTrace) _relationTraceList + .get(0); + localRelationTrace.setTraceRelation(traceRelationInfoList); + localRelationTrace.setTraceColumn(traceColumnInfo); + localRelationTrace.recycle(); + localRelationTrace.handleFixedRelationTrace(); + return localRelationTrace; + } + + protected void setTraceRelation(List traceRelationInfoList) { + this._traceRelationInfoList = traceRelationInfoList; + } + + protected void setTraceColumn(ColumnInfo traceColumn) { + this._traceColumnInfo = traceColumn; + } + + /** + * The implementation. + */ + protected void recycle() { + this._relationList = new ArrayList(); + this._relationTraceList = new ArrayList(); + this._relationTraceList.add(this); + } + + protected void handleFixedRelationTrace() { + if (_relationTraceFixHandler != null) { + _relationTraceFixHandler.handleFixedTrace(this); + } + } + } + + //========================================================================== + // ========= + // Map String + // ========== + /** + * The implementation. + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString() { + return MapStringUtil.createMapListString(); + } + + /** + * The implementation. + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder() { + final List columnDbNameList = new ArrayList(); + for (final Iterator ite = getColumnInfoList().iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + columnDbNameList.add(columnInfo.getColumnDbName()); + } + return MapStringUtil.createMapStringBuilder(columnDbNameList); + } + + //========================================================================== + // ========= + // Various Info + // ============ + // These methods is expected to override if it needs. + public boolean hasSequence() { + return false; + } + + public String getSequenceNextValSql() { + return null; + } + + public boolean hasVersionNo() { + return false; + } + + public ColumnInfo getVersionNoColumnInfo() { + return null; + } + + public boolean hasUpdateDate() { + return false; + } + + public ColumnInfo getUpdateDateColumnInfo() { + return null; + } + + public boolean hasCommonColumn() { + return false; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + protected void doAcceptPrimaryKeyMap(ENTITY entity, + Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected void doAcceptColumnValueMap( + ENTITY entity, Map columnValueMap, + Map> entityPropertySetupperMap) { + MapAssertUtil.assertColumnValueMapNotNullAndNotEmpty(columnValueMap); + MapStringValueAnalyzer analyzer = new MapStringValueAnalyzer( + columnValueMap, entity.getModifiedPropertyNames()); + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + String uncapPropName = initUncap(propertyName); + Class propertyType = columnInfo.getPropertyType(); + if (analyzer.init(columnName, uncapPropName, propertyName)) { + final Object value; + if (String.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeString(propertyType); + } else if (Number.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeNumber(propertyType); + } else if (java.util.Date.class.isAssignableFrom(propertyType)) { + value = analyzer.analyzeDate(propertyType); + } else { + value = analyzer.analyzeOther(propertyType); + } + findEps(entityPropertySetupperMap, propertyName).setup(entity, + value); + } + } + } + + protected String doExtractPrimaryKeyMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getPrimaryUniqueInfo() + .getUniqueColumnList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + protected String doExtractColumnValueMapString(Entity entity, + String startBrace, String endBrace, String delimiter, String equal) { + String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace; + StringBuilder sb = new StringBuilder(); + List columnInfoList = getColumnInfoList(); + try { + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + helpAppendingColumnValueString(sb, delimiter, equal, + columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace) + .append(endBrace); + return sb.toString(); + } + + // ----------------------------------------------------- + // Convert + // ------- + protected Map doConvertToColumnValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, value); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + protected Map doConvertToColumnStringValueMap(Entity entity) { + Map valueMap = newLinkedHashMap(); + try { + List columnInfoList = getColumnInfoList(); + for (ColumnInfo columnInfo : columnInfoList) { + String columnName = columnInfo.getColumnDbName(); + Method getterMethod = columnInfo.findGetter(); + Object value = getterMethod.invoke(entity, (Object[]) null); + valueMap.put(columnName, helpGettingColumnStringValue(value)); + } + } catch (Exception e) { + throw new IllegalStateException(e); + } + return valueMap; + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected void setupEps( + Map> entityPropertySetupperMap, + Eps setupper, ColumnInfo columnInfo) { + String columnName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + registerEntityPropertySetupper(columnName, propertyName, setupper, + entityPropertySetupperMap); + } + + protected void registerEntityPropertySetupper( + String columnName, String propertyName, Eps setupper, + Map> entityPropertySetupperMap) { + entityPropertySetupperMap.put(columnName, setupper); + entityPropertySetupperMap.put(propertyName, setupper); + entityPropertySetupperMap.put(columnName.toLowerCase(), setupper); + entityPropertySetupperMap.put(propertyName.toLowerCase(), setupper); + } + + protected Eps findEps( + Map> entityPropertySetupperMap, + String propertyName) { + Eps setupper = entityPropertySetupperMap.get(propertyName); + if (setupper == null) { + String msg = "The propertyName was Not Found in the map of setupper of entity property:"; + msg = msg + " propertyName=" + propertyName + + " _entityPropertySetupperMap.keySet()=" + + entityPropertySetupperMap.keySet(); + throw new IllegalStateException(msg); + } + return setupper; + } + + //========================================================================== + // ========= + // Util Class + // ========== + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringUtil { + + public static void acceptPrimaryKeyMapString( + String primaryKeyMapString, Entity entity) { + if (primaryKeyMapString == null) { + String msg = "The argument[primaryKeyMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!primaryKeyMapString.trim().startsWith(prefix)) { + primaryKeyMapString = prefix + primaryKeyMapString; + } + if (!primaryKeyMapString.trim().endsWith(suffix)) { + primaryKeyMapString = primaryKeyMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptPrimaryKeyMap(entity, + mapListString.generateMap(primaryKeyMapString)); + } + + public static void acceptColumnValueMapString( + String columnValueMapString, Entity entity) { + if (columnValueMapString == null) { + String msg = "The argument[columnValueMapString] should not be null."; + throw new IllegalArgumentException(msg); + } + final String prefix = MAP_STRING_MAP_MARK + MAP_STRING_START_BRACE; + final String suffix = MAP_STRING_END_BRACE; + if (!columnValueMapString.trim().startsWith(prefix)) { + columnValueMapString = prefix + columnValueMapString; + } + if (!columnValueMapString.trim().endsWith(suffix)) { + columnValueMapString = columnValueMapString + suffix; + } + MapListString mapListString = createMapListString(); + entity.getDBMeta().acceptColumnValueMap(entity, + mapListString.generateMap(columnValueMapString)); + } + + public static String extractPrimaryKeyMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractPrimaryKeyMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static String extractColumnValueMapString(Entity entity) { + final String startBrace = MAP_STRING_START_BRACE; + final String endBrace = MAP_STRING_END_BRACE; + final String delimiter = MAP_STRING_DELIMITER; + final String equal = MAP_STRING_EQUAL; + return entity.getDBMeta().extractColumnValueMapString(entity, + startBrace, endBrace, delimiter, equal); + } + + public static void checkTypeString(Object value, String propertyName, + String typeName) { + if (value == null) { + throw new IllegalArgumentException( + "The value should not be null: " + propertyName); + } + if (!(value instanceof String)) { + String msg = "The value of " + propertyName + " should be " + + typeName + " or String: "; + msg = msg + "valueType=" + value.getClass() + " value=" + value; + throw new IllegalArgumentException(msg); + } + } + + public static long parseDateStringAsMillis(Object value, + String propertyName, String typeName) { + checkTypeString(value, propertyName, typeName); + try { + final String valueString = filterTimestampValue(((String) value) + .trim()); + return java.sql.Timestamp.valueOf(valueString).getTime(); + } catch (RuntimeException e) { + String msg = "The value of " + propertyName + " should be " + + typeName + ". but: " + value; + throw new RuntimeException(msg + + " threw the exception: value=[" + value + "]", e); + } + } + + public static String filterTimestampValue(String value) { + value = value.trim(); + if (value.indexOf("/") == 4 && value.lastIndexOf("/") == 7) { + value = value.replaceAll("/", "-"); + } + if (value.indexOf("-") == 4 && value.lastIndexOf("-") == 7) { + if (value.length() == "2007-07-09".length()) { + value = value + " 00:00:00"; + } + } + return value; + } + + public static String formatDate(java.util.Date value) { + return getFormatDateFormat().format(value); + } + + public static String formatTimestamp(java.sql.Timestamp value) { + return getFormatDateFormat().format(value); + } + + public static java.text.DateFormat getParseDateFormat() { + return java.text.DateFormat.getDateInstance(); + } + + public static java.text.DateFormat getFormatDateFormat() { + return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + } + + public static MapListString createMapListString() { + final MapListString mapListString = new MapListStringImpl(); + mapListString.setMapMark(MAP_STRING_MAP_MARK); + mapListString.setListMark(MAP_STRING_LIST_MARK); + mapListString.setStartBrace(MAP_STRING_START_BRACE); + mapListString.setEndBrace(MAP_STRING_END_BRACE); + mapListString.setEqual(MAP_STRING_EQUAL); + mapListString.setDelimiter(MAP_STRING_DELIMITER); + return mapListString; + } + + public static MapStringBuilder createMapStringBuilder( + List columnNameList) { + MapStringBuilder mapStringBuilder = new MapStringBuilderImpl(); + mapStringBuilder.setMsMapMark(MAP_STRING_MAP_MARK); + mapStringBuilder.setMsStartBrace(MAP_STRING_START_BRACE); + mapStringBuilder.setMsEndBrace(MAP_STRING_END_BRACE); + mapStringBuilder.setMsEqual(MAP_STRING_EQUAL); + mapStringBuilder.setMsDelimiter(MAP_STRING_DELIMITER); + mapStringBuilder.setColumnNameList(columnNameList); + return mapStringBuilder; + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapAssertUtil { + public static void assertPrimaryKeyMapNotNullAndNotEmpty( + java.util.Map primaryKeyMap) { + if (primaryKeyMap == null) { + String msg = "The argument[primaryKeyMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (primaryKeyMap.isEmpty()) { + String msg = "The argument[primaryKeyMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + + public static void assertColumnExistingInPrimaryKeyMap( + java.util.Map primaryKeyMap, + String columnName) { + if (!primaryKeyMap.containsKey(columnName)) { + String msg = "The primaryKeyMap must have the value of " + + columnName; + throw new IllegalStateException(msg + ": primaryKeyMap --> " + + primaryKeyMap); + } + } + + public static void assertColumnValueMapNotNullAndNotEmpty( + java.util.Map columnValueMap) { + if (columnValueMap == null) { + String msg = "The argument[columnValueMap] should not be null."; + throw new IllegalArgumentException(msg); + } + if (columnValueMap.isEmpty()) { + String msg = "The argument[columnValueMap] should not be empty."; + throw new IllegalArgumentException(msg); + } + } + } + + /** + * This class is for Internal. Don't use this! + */ + protected static class MapStringValueAnalyzer { + protected java.util.Map _valueMap; + + protected java.util.Set _modifiedPropertyNames; + + protected String _columnName; + + protected String _uncapPropName; + + protected String _propertyName; + + public MapStringValueAnalyzer( + java.util.Map valueMap, + java.util.Set modifiedPropertyNames) { + this._valueMap = valueMap; + this._modifiedPropertyNames = modifiedPropertyNames; + } + + public boolean init(String columnName, String uncapPropName, + String propertyName) { + this._columnName = columnName; + this._uncapPropName = uncapPropName; + this._propertyName = propertyName; + return _valueMap.containsKey(_columnName); + } + + public COLUMN_TYPE analyzeString( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + helpCheckingTypeString(obj, _uncapPropName, javaType.getName()); + return (COLUMN_TYPE) obj; + } + + public COLUMN_TYPE analyzeNumber( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, + String.class, obj.toString()); + } + + public COLUMN_TYPE analyzeDate(Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + if (javaType.isAssignableFrom(obj.getClass())) { + return (COLUMN_TYPE) obj; + } + return (COLUMN_TYPE) newInstanceByConstructor(javaType, long.class, + helpParsingDateString(obj, _uncapPropName, javaType + .getName())); + } + + public COLUMN_TYPE analyzeOther( + Class javaType) { + final Object obj = _valueMap.get(_columnName); + if (obj == null) { + _modifiedPropertyNames.remove(_propertyName); + return null; + } + return (COLUMN_TYPE) obj; + } + + private void helpCheckingTypeString(Object value, String uncapPropName, + String typeName) { + MapStringUtil.checkTypeString(value, uncapPropName, typeName); + } + + private long helpParsingDateString(Object value, String uncapPropName, + String typeName) { + return MapStringUtil.parseDateStringAsMillis(value, uncapPropName, + typeName); + } + + protected Object newInstanceByConstructor(Class targetType, + Class argType, Object arg) { + java.lang.reflect.Constructor constructor; + try { + constructor = targetType + .getConstructor(new Class[] { argType }); + } catch (SecurityException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (NoSuchMethodException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + try { + return constructor.newInstance(new Object[] { arg }); + } catch (IllegalArgumentException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (InstantiationException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (IllegalAccessException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } catch (java.lang.reflect.InvocationTargetException e) { + String msg = "targetType=" + targetType + " argType=" + argType + + " arg=" + arg; + throw new RuntimeException(msg, e); + } + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected ENTITY downcast(Entity entity) { + checkDowncast(entity); + return (ENTITY) entity; + } + + protected void checkDowncast(Entity entity) { + assertObjectNotNull("entity", entity); + Class entityType = getEntityType(); + Class targetType = entity.getClass(); + if (!entityType.isAssignableFrom(targetType)) { + String name = entityType.getSimpleName(); + String msg = "The entity should be " + name + " but it was: " + + targetType; + throw new IllegalStateException(msg); + } + } + + protected void helpAppendingColumnValueString(StringBuilder sb, + String delimiter, String equal, String colName, Object value) { + sb.append(delimiter).append(colName).append(equal); + sb.append(helpGettingColumnStringValue(value)); + } + + protected String helpGettingColumnStringValue(Object value) { + if (value instanceof java.sql.Timestamp) { + return (value != null ? helpFormatingTimestamp((java.sql.Timestamp) value) + : ""); + } else if (value instanceof java.util.Date) { + return (value != null ? helpFormatingDate((java.util.Date) value) + : ""); + } else { + return (value != null ? value.toString() : ""); + } + } + + protected String helpFormatingDate(java.util.Date date) { + return MapStringUtil.formatDate(date); + } + + protected String helpFormatingTimestamp(java.sql.Timestamp timestamp) { + return MapStringUtil.formatTimestamp(timestamp); + } + + protected Map setupKeyToLowerMap(boolean dbNameKey) { + final Map map; + if (dbNameKey) { + map = newLinkedHashMap(getTableDbName().toLowerCase(), + getTablePropertyName()); + } else { + map = newLinkedHashMap(getTablePropertyName().toLowerCase(), + getTableDbName()); + } + Method[] methods = this.getClass().getMethods(); + String columnInfoMethodPrefix = "column"; + try { + for (Method method : methods) { + String name = method.getName(); + if (!name.startsWith(columnInfoMethodPrefix)) { + continue; + } + ColumnInfo columnInfo = (ColumnInfo) method.invoke(this); + String dbName = columnInfo.getColumnDbName(); + String propertyName = columnInfo.getPropertyName(); + if (dbNameKey) { + map.put(dbName.toLowerCase(), propertyName); + } else { + map.put(propertyName.toLowerCase(), dbName); + } + } + return Collections.unmodifiableMap(map); + } catch (Exception e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // String Handling + // --------------- + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String initCap(String str) { + return SimpleStringUtil.initCap(str); + } + + protected String initUncap(String str) { + return SimpleStringUtil.initUncap(str); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + // ----------------------------------------------------- + // Collection Generator + // -------------------- + protected HashMap newHashMap() { + return new HashMap(); + } + + protected LinkedHashMap newLinkedHashMap() { + return new LinkedHashMap(); + } + + protected LinkedHashMap newLinkedHashMap(KEY key, + VALUE value) { + LinkedHashMap map = newLinkedHashMap(); + map.put(key, value); + return map; + } + + protected ArrayList newArrayList() { + return new ArrayList(); + } + + protected ArrayList newArrayList( + Collection collection) { + return new ArrayList(collection); + } + + // ----------------------------------------------------- + // Reflection Handling + // ------------------- + private Set _cachedMethodNames = new HashSet(); // for + + // performance + + protected boolean hasMethod(String methodName) { + assertStringNotNullAndNotTrimmedEmpty("methodName", methodName); + if (_cachedMethodNames.isEmpty()) { + synchronized (_cachedMethodNames) { + if (_cachedMethodNames.isEmpty()) { + final Method[] methods = this.getClass().getMethods(); + for (Method method : methods) { + _cachedMethodNames.add(method.getName()); + } + } + } + } + return _cachedMethodNames.contains(methodName); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the argument is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the string is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/AbstractDBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMeta.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMeta.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMeta.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,601 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.RelationInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.MapListString; +import jp.sf.pal.scheduler.db.allcommon.helper.MapStringBuilder; + +/** + * The interface of DB meta. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface DBMeta { + + //========================================================================== + // ========= + // Definition + // ========== + /** Map-string map-mark. */ + public static final String MAP_STRING_MAP_MARK = "map:"; + + /** Map-string list-mark. */ + public static final String MAP_STRING_LIST_MARK = "list:"; + + /** Map-string start-brace. */ + public static final String MAP_STRING_START_BRACE = "@{"; + + /** Map-string end-brace. */ + public static final String MAP_STRING_END_BRACE = "@}"; + + /** Map-string delimiter. */ + public static final String MAP_STRING_DELIMITER = "@;"; + + /** Map-string equal. */ + public static final String MAP_STRING_EQUAL = "@="; + + //========================================================================== + // ========= + // Table Info + // ========== + /** + * Get table db-name. + * + * @return Table db-name. (NotNull) + */ + public String getTableDbName(); + + /** + * Get table property-name(JavaBeansRule). + * + * @return Table property-name(JavaBeansRule). (NotNull) + */ + public String getTablePropertyName(); + + /** + * Get table SQL-name. + * + * @return Table SQL-name. (NotNull) + */ + public String getTableSqlName(); + + //========================================================================== + // ========= + // Name Handling + // ============= + /** + * Has object of flexible name? {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Determination. + */ + public boolean hasFlexibleName(String flexibleName); + + /** + * Find db name by flexible name. {Target objects are TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findDbName(String flexibleName); + + /** + * Find property name(JavaBeansRule) by flexible name. {Target objects are + * TABLE and COLUMN} + * + * @param flexibleName The flexible name. (NotNull and NotEmpty) + * @return Db name. (NotNull and NotEmpty) + */ + public String findPropertyName(String flexibleName); + + //========================================================================== + // ========= + // Name Map + // ======== + /** + * Get the key-to-lower map of DB name(lower) and property name. + * + * @return The key-to-lower map of DB name(lower) and property name. + * (NotNull) + */ + public Map getDbNamePropertyNameKeyToLowerMap(); + + /** + * Get the key-to-lower map of property name(lower) and db name. + * + * @return The key-to-lower map of property name(lower) and db name. + * (NotNull) + */ + public Map getPropertyNameDbNameKeyToLowerMap(); + + //========================================================================== + // ========= + // Type Name + // ========= + /** + * Get the type-name of entity. + * + * @return The type-name of entity. (NotNull) + */ + public String getEntityTypeName(); + + /** + * Get the type-name of condition-bean. + * + * @return The type-name of condition-bean. (Nullable: If the condition-bean + * does not exist) + */ + public String getConditionBeanTypeName(); + + /** + * Get the type-name of dao. + * + * @return The type-name of dao. (Nullable: If the dao does not exist) + */ + public String getDaoTypeName(); + + /** + * Get the type-name of behavior. + * + * @return The type-name of behavior. (Nullable: If the behavior does not + * exist) + */ + public String getBehaviorTypeName(); + + //========================================================================== + // ========= + // Object Type + // =========== + /** + * Get the type of entity. + * + * @return The type of entity. (NotNull) + */ + public Class getEntityType(); + + //========================================================================== + // ========= + // Object Instance + // =============== + /** + * New the instance of entity. + * + * @return The instance of entity. (NotNull) + */ + public Entity newEntity(); + + //========================================================================== + // ========= + // Column Info + // =========== + /** + * @return The list of DB name of column. (NotNull and NotEmpty) + */ + public List getColumnInfoList(); + + /** + * Has column? + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return Determination. + */ + public boolean hasColumn(String columnFlexibleName); + + /** + * Find the information of the column by the flexible name of the column. + * + *
    +     * If the table name is 'BOOK_ID', you can find the dbmeta by ...(as follows)
    +     *     'BOOK_ID', 'BOok_iD', 'book_id'
    +     *     , 'BookId', 'bookid', 'bOoKiD'
    +     * 
    + * + * @param columnFlexibleName The flexible name of the column. (NotNull) + * @return The information of the column. (NotNull) + */ + public ColumnInfo findColumnInfo(String columnFlexibleName); + + //========================================================================== + // ========= + // Unique Info + // =========== + /** + * Get primary unique info. + * + * @return Primary unique info. (NotNull) + */ + public UniqueInfo getPrimaryUniqueInfo(); + + /** + * Has primary-key? + * + * @return Determination. + */ + public boolean hasPrimaryKey(); + + /** + * Has two or more primary-keys? + * + * @return Determination. + */ + public boolean hasTwoOrMorePrimaryKeys(); + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Relation Element + // ---------------- + /** + * Find relation info. + * + * @param relationPropertyName Relation property name. (Both OK - InitCap or + * not). (NotNull) + * @return Relation info. (NotNull) + */ + public RelationInfo findRelationInfo(String relationPropertyName); + + // ----------------------------------------------------- + // Foreign Element + // --------------- + /** + * Has foreign? + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasForeign(String foreignPropName); + + /** + * Find foreign dbmeta. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign DBMeta. (NotNull) + */ + public DBMeta findForeignDBMeta(String foreignPropName); + + /** + * Find foreign info. + * + * @param foreignPropName Foreign property name. (Both OK - InitCap or not). + * (NotNull) + * @return Foreign info. (NotNull) + */ + public ForeignInfo findForeignInfo(String foreignPropName); + + // ----------------------------------------------------- + // Referrer Element + // ---------------- + /** + * Has referrer? + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Determination. (NotNull) + */ + public boolean hasReferrer(String referrerPropertyName); + + /** + * Find referrer dbmeta. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer DBMeta. (NotNull) + */ + public DBMeta findReferrerDBMeta(String referrerPropertyName); + + /** + * Find referrer information. + * + * @param referrerPropertyName The property name of referrer. (Both OK - + * InitCap or not). (NotNull) + * @return Referrer information. (NotNull) + */ + public ReferrerInfo findReferrerInfo(String referrerPropertyName); + + // ----------------------------------------------------- + // Relation Trace + // -------------- + /** + * Relation trace. + */ + public static interface RelationTrace { + + /** + * Get the trace of relation. + * + * @return The trace of relation as the list of relation info. (NotNull) + */ + public List getTraceRelation(); + + /** + * Get the trace of column. + * + * @return The trace of column as column info. (Nullable) + */ + public ColumnInfo getTraceColumn(); + } + + public static interface RelationTraceFixHandler { + public void handleFixedTrace(RelationTrace relationTrace); + } + + //========================================================================== + // ========= + // Sequence Info + // ============= + /** + * Has sequence? + * + * @return Determination. + */ + public boolean hasSequence(); + + /** + * Get the SQL string for getting next value of sequence. + * + * @return The SQL string for getting next value of sequence. (Nullable: If + * it does not have sequence, returns null.) + */ + public String getSequenceNextValSql(); + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + /** + * Has version no? + * + * @return Determination. + */ + public boolean hasVersionNo(); + + /** + * Get the column information of version no. + * + * @return The column information of version no. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getVersionNoColumnInfo(); + + /** + * Has update date? + * + * @return Determination. + */ + public boolean hasUpdateDate(); + + /** + * Get the column information of update date. + * + * @return The column information of update date. (Nullable: If it doesn't + * have the column, return null.) + */ + public ColumnInfo getUpdateDateColumnInfo(); + + //========================================================================== + // ========= + // Common Column Info + // ================== + /** + * Has common column? + * + * @return Determination. + */ + public boolean hasCommonColumn(); + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + /** + * Accept primary-key map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMap Primary-key map. (NotNull and NotEmpty) + */ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap); + + /** + * Accept primary-key map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param primaryKeyMapString Primary-key map-string. (NotNull) + */ + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString); + + /** + * Accept column-value map. The column that column-value map-string doesn't + * have the value of is reflected as null. The column that column-value + * map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMap Column-value map. (NotNull and NotEmpty) + */ + public void acceptColumnValueMap(Entity entity, + Map columnValueMap); + + /** + * Accept column-value map-string. The column that column-value map-string + * doesn't have the value of is reflected as null. The column that + * column-value map-string doesn't have the key of is NOT updated nothing. + * + * @param entity Target entity. (NotNull) + * @param columnValueMapString Column-value map-string. (NotNull) + */ + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString); + + // ----------------------------------------------------- + // Extract + // ------- + /** + * Extract primary-key map-string. Delimiter is at-mark and semicolon. + *

    + * + *

    +     * ex) Uses that this method have.
    +     *   final String primaryKeyMapString = LdBookDbm.extractPrimaryKeyMapString(entity);
    +     *   final LdBook entity = dao.selectEntity(new LdBookCB().acceptPrimaryKeyMapString(primaryKeyMapString));
    +     *   ... // as primary key for condition.
    +     * 
    + * + * @param entity Target entity. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity); + + /** + * Extract primary-key map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Primary-key map-string. (NotNull) + */ + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + /** + * Extract column-value map-string. Delimiter is at-mark and semicolon. + * + * @param entity Target entity. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity); + + /** + * Extract column-value map-string. + * + * @param entity Target entity. (NotNull) + * @param startBrace Start-brace. (NotNull) + * @param endBrace End-brace. (NotNull) + * @param delimiter Delimiter. (NotNull) + * @param equal Equal. (NotNull) + * @return Column-value map-string. (NotNull) + */ + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal); + + // ----------------------------------------------------- + // Convert + // ------- + /** + * Convert entity to column value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column value. (NotNull) + */ + public List convertToColumnValueList(Entity entity); + + /** + * Convert entity to column value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column value. (NotNull) + */ + public Map convertToColumnValueMap(Entity entity); + + /** + * Convert entity to column string-value as list. + * + * @param entity Target entity. (NotNull) + * @return The list of column string-value. (NotNull) + */ + public List convertToColumnStringValueList(Entity entity); + + /** + * Convert entity to column string-value as map. + * + * @param entity Target entity. (NotNull) + * @return The map of column string-value. (NotNull) + */ + public Map convertToColumnStringValueMap(Entity entity); + + //========================================================================== + // ========= + // Map String + // ========== + /** + * Create map list string that is prepared. (for INTERNAL) + * + * @return Map list string that is prepared. (NotNull) + */ + public MapListString createMapListString(); + + /** + * Create map string builder that is prepared. (for INTERNAL) + * + * @return Map string builder that is prepared. (NotNull) + */ + public MapStringBuilder createMapStringBuilder(); + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + /** + * Has the setupper of entity property by the name of property?
    + * Comparing is so flexible. {Ignore cases and underscore} + * + * @param propertyName The name of the property. (NotNull) + * @return Determination. + */ + public boolean hasEntityPropertySetupper(String propertyName); + + /** + * Set up entity property. (for INTERNAL) + * + * @param propertyName The name of the property. (NotNull) + * @param entity The entity for the property. (NotNull) + * @param value The value of the property. (Nullable) + */ + public void setupEntityProperty(String propertyName, Object entity, + Object value); + + /** + * The setupper of entity property.
    This class is for Internal. Don't + * use this! + * + * @param The type of entity. + */ + public interface Eps { + + /** + * @param entity Entity. (NotNull) + * @param value Value. (Nullable) + */ + void setup(ENTITY_TYPE entity, Object value); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public static enum OptimisticLockType { + NONE, VERSION_NO, UPDATE_DATE + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMeta.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,260 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.util.SimpleAssertUtil; + +/** + * DBMeta instance handler. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class DBMetaInstanceHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Table DB-name instance map. */ + protected static final Map _tableDbNameInstanceMap = new LinkedHashMap(); + + /** The map of table DB-name and class name. */ + protected static final Map _tableDbNameClassNameMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.GroupInfoDbm"); + tmpMap.put("GROUP_MAPPING", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.GroupMappingDbm"); + tmpMap.put("ROLE_INFO", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoleInfoDbm"); + tmpMap.put("ROLE_MAPPING", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoleMappingDbm"); + tmpMap.put("ROUTINE_SCHEDULE", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleDbm"); + tmpMap + .put("ROUTINE_SCHEDULE_CONTENT", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleContentDbm"); + tmpMap + .put("ROUTINE_SCHEDULE_MAPPING", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleMappingDbm"); + tmpMap.put("SINGLE_SCHEDULE", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleDbm"); + tmpMap + .put("SINGLE_SCHEDULE_CONTENT", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleContentDbm"); + tmpMap + .put("SINGLE_SCHEDULE_MAPPING", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleMappingDbm"); + tmpMap.put("USER_INFO", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.UserInfoDbm"); + + _tableDbNameClassNameMap = Collections.unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of DB-name and property-name for table. */ + protected static final Map _tableDbNamePropertyNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); + tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); + tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); + tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping"); + tmpMap.put("ROUTINE_SCHEDULE".toLowerCase(), "routineSchedule"); + tmpMap.put("ROUTINE_SCHEDULE_CONTENT".toLowerCase(), + "routineScheduleContent"); + tmpMap.put("ROUTINE_SCHEDULE_MAPPING".toLowerCase(), + "routineScheduleMapping"); + tmpMap.put("SINGLE_SCHEDULE".toLowerCase(), "singleSchedule"); + tmpMap.put("SINGLE_SCHEDULE_CONTENT".toLowerCase(), + "singleScheduleContent"); + tmpMap.put("SINGLE_SCHEDULE_MAPPING".toLowerCase(), + "singleScheduleMapping"); + tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); + + _tableDbNamePropertyNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + /** The key-to-lower map of property-name and DB-name for table. */ + protected static final Map _tablePropertyNameDbNameKeyToLowerMap; + static { + Map tmpMap = new LinkedHashMap(); + + tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); + tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); + tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); + tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING"); + tmpMap.put("routineSchedule".toLowerCase(), "ROUTINE_SCHEDULE"); + tmpMap.put("routineScheduleContent".toLowerCase(), + "ROUTINE_SCHEDULE_CONTENT"); + tmpMap.put("routineScheduleMapping".toLowerCase(), + "ROUTINE_SCHEDULE_MAPPING"); + tmpMap.put("singleSchedule".toLowerCase(), "SINGLE_SCHEDULE"); + tmpMap.put("singleScheduleContent".toLowerCase(), + "SINGLE_SCHEDULE_CONTENT"); + tmpMap.put("singleScheduleMapping".toLowerCase(), + "SINGLE_SCHEDULE_MAPPING"); + tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); + + _tablePropertyNameDbNameKeyToLowerMap = Collections + .unmodifiableMap(tmpMap); + } + + protected static DBMeta getDBMeta(String className) { + try { + Class clazz = Class.forName(className); + java.lang.reflect.Method methoz = clazz.getMethod("getInstance", + (Class[]) null); + Object result = methoz.invoke(null, (Object[]) null); + return (DBMeta) result; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * @return The initialized map that contains all instances of dbmeta. + * (NotNull & NotEmpty) + */ + public static Map getDBMetaMap() { + initializeDBMetaMap(); + return _tableDbNameInstanceMap; + } + + protected static void initializeDBMetaMap() { + if (isInitialized()) { + return; + } + final Set tableDbNameSet = _tableDbNameClassNameMap.keySet(); + for (String tableDbName : tableDbNameSet) { + findDBMeta(tableDbName); // Initialize! + } + if (!isInitialized()) { + String msg = "Failed to initialize tableDbNameInstanceMap:"; + msg = msg + " tableDbNameInstanceMap=" + _tableDbNameInstanceMap; + throw new IllegalStateException(msg); + } + } + + protected static boolean isInitialized() { + return _tableDbNameInstanceMap.size() == _tableDbNameClassNameMap + .size(); + } + + //========================================================================== + // ========= + // Main Method + // =========== + /** + * Find dbmeta by table flexible-name. + * + *
    +     * If the table name is 'ORDER_DETAIL', you can find the dbmeta by ...(as follows)
    +     *     'ORDER_DETAIL', 'ORDer_DeTAiL', 'order_detail'
    +     *     , 'OrderDetail', 'orderdetail', 'oRderDetaIl'
    +     * 
    + * + * @param tableFlexibleName Table flexible-name. (NotNull) + * @return The instance of dbmeta. (NotNull) + * @exception DBMetaNotFoundException When the dbmeta is not found. + */ + public static DBMeta findDBMeta(String tableFlexibleName) { + assertStringNotNullAndNotTrimmedEmpty("tableFlexibleName", + tableFlexibleName); + if (_tableDbNameInstanceMap.containsKey(tableFlexibleName)) { + return byTableDbName(tableFlexibleName); + } + String toLowerKey = tableFlexibleName.toLowerCase(); + if (_tableDbNamePropertyNameKeyToLowerMap.containsKey(toLowerKey)) { + String propertyName = (String) _tableDbNamePropertyNameKeyToLowerMap + .get(toLowerKey); + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(propertyName.toLowerCase()); + return byTableDbName(dbName); + } + if (_tablePropertyNameDbNameKeyToLowerMap.containsKey(toLowerKey)) { + String dbName = (String) _tablePropertyNameDbNameKeyToLowerMap + .get(toLowerKey); + return byTableDbName(dbName); + } + final int dotLastIndex = tableFlexibleName.lastIndexOf("."); + if (dotLastIndex >= 0) { + try { + return findDBMeta(tableFlexibleName.substring(dotLastIndex + 1)); + } catch (DBMetaNotFoundException e) { + // Nothing + } + } + String msg = "The instance map returned null by the key: key=" + + tableFlexibleName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + + public static class DBMetaNotFoundException extends IllegalStateException { + private static final long serialVersionUID = 1L; + + public DBMetaNotFoundException(String msg) { + super(msg); + } + } + + /** + * Get instance by table DB-name. + * + * @param tableDbName Table DB-name. (NotNull) + * @return Instance. (NotNull) + */ + protected static DBMeta byTableDbName(String tableDbName) { + assertStringNotNullAndNotTrimmedEmpty("tableDbName", tableDbName); + DBMeta instance = getCachedDBMeta(tableDbName); + if (instance == null) { + String msg = "The instance map returned null by the key: key=" + + tableDbName + " instanceMap=" + _tableDbNameInstanceMap; + throw new DBMetaNotFoundException(msg); + } + return instance; + } + + protected static DBMeta getCachedDBMeta(String tableName) {// For lazy-load! + // Thank you + // koyak! + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + synchronized (_tableDbNameInstanceMap) { + if (_tableDbNameInstanceMap.containsKey(tableName)) { + return _tableDbNameInstanceMap.get(tableName); + } + String entityName = _tableDbNameClassNameMap.get(tableName); + _tableDbNameInstanceMap.put(tableName, getDBMeta(entityName)); + } + return _tableDbNameInstanceMap.get(tableName); + } + + //========================================================================== + // ========= + // General Helper + // ============== + // ----------------------------------------------------- + // Assert Object + // ------------- + protected static void assertObjectNotNull(String variableName, Object value) { + SimpleAssertUtil.assertObjectNotNull(variableName, value); + } + + // ----------------------------------------------------- + // Assert String + // ------------- + protected static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + SimpleAssertUtil.assertStringNotNullAndNotTrimmedEmpty(variableName, + value); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyArranger.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,915 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.RelationInfo; + +/** + * The arranger of hierarchy. + * + *
    + * ex) LIBRARY Hierarchy
    + * 
    + * LIBRARY
    + *  |1
    + *  |--* NEXT_LIBRARY (Referrer)
    + *  |       |*
    + *  |       |--1 LIBRARY (Foreign)
    + *  |
    + *  |--* COLLECTION (Referrer)
    + *  |       |1 
    + *  |       |--1 COLLECTION_STATUS (Referrer)
    + *  |       |       |*
    + *  |       |       |--1 COLLECTION_STATUS_LOOKUP (Foreign)
    + *  |       |
    + *  |       |--1 BOOK (Foreign)
    + *  |       |     |*
    + *  |       |     |--1 AUTHOR (Foreign)
    + *  |       |     |--1 PUBLISER (Foreign)
    + *  |       |     |--1 GENRE (Foreign)
    + *  |       |           |*
    + *  |       |           |--1 GENRE (Foreign)
    + *  |       |
    + *  |       |--* LENDING_COLLECTION (Referrer)
    + *  |       |
    + *  |
    + *  |--* LIBRARY_USER (Referrer)
    + *         |*  |1
    + *         |   |--* LENDING (Referrer)
    + *         |         |1
    + *         |         |--* LENDING_COLLECTION (Referrer)
    + *         |
    + *         |--1 LB_USER (Foreign)
    + *                 |1
    + *                 |--* BLACK_LIST (Referrer)
    + *                         |1
    + *                         |--* BLACK_ACTION (Referrer)
    + *                                 |*
    + *                                 |--1 BLACK_ACTION_LOOKUP (Foreign)
    + *          
    + *          
    + * ex) The SQL of LIBRARY Hierarchy as FLAT
    + * 
    + * select library.LIBRARY_ID as LIBRARY_ID
    + *      , library.LIBRARY_NAME as LIBRARY_NAME
    + *      , library.R_USER as R_USER
    + *      , library.R_TIMESTAMP as R_TIMESTAMP
    + *      , nextBase.LIBRARY_ID as BASE_LIBRARY_ID
    + *      , nextBase.NEXT_LIBRARY_ID as NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_ID as NEXT_LIBRARY_NEXT_LIBRARY_ID
    + *      , nextBaseNextLibrary.LIBRARY_NAME as NEXT_LIBRARY_NEXT_LIBRARY_NAME
    + *      , collection.COLLECTION_ID as COLLECTION_ID
    + *      , collection.ARRIVAL_DATE as COLLECTION_ARRIVAL_DATE
    + *      , collectionStatus.COLLECTION_ID as COLLECTION_STATUS_ID
    + *      , collectionStatus.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_CODE as COLLECTION_STATUS_CODE
    + *      , collectionStatusLookup.COLLECTION_STATUS_NAME as COLLECTION_STATUS_NAME
    + *      , book.BOOK_ID as COLLECTION_BOOK_ID
    + *      , book.BOOK_NAME as COLLECTION_BOOK_NAME
    + *      , author.AUTHOR_ID as COLLECTION_BOOK_AUTHOR_ID
    + *      , author.AUTHOR_NAME as COLLECTION_BOOK_AUTHOR_NAME
    + *      , libraryUser.LIBRARY_ID as LIBRARY_USER_LIBRARY_ID 
    + *      , libraryUser.LB_USER_ID as LIBRARY_USER_LB_USER_ID
    + *      , lending.LIBRARY_ID as LENDING_LIBRARY_ID
    + *      , lending.LB_USER_ID as LENDING_LB_USER_ID
    + *      , lending.LENDING_DATE as LENDING_DATE
    + *      , lending.U_USER as LENDING_U_USER
    + *      , lending.U_MODULE as LENDING_U_MODULE
    + *      , lbUser.LB_USER_ID as LB_USER_ID
    + *      , lbUser.LB_USER_NAME as LB_USER_NAME
    + *   from LIBRARY library
    + *     left outer join NEXT_LIBRARY nextBase on library.LIBRARY_ID = nextBase.LIBRARY_ID
    + *       left outer join LIBRARY nextBaseNextLibrary on nextBase.NEXT_LIBRARY_ID = nextBaseNextLibrary.LIBRARY_ID
    + *     left outer join COLLECTION collection on library.LIBRARY_ID = collection.LIBRARY_ID
    + *       left outer join COLLECTION_STATUS collectionStatus on collection.COLLECTION_ID = collectionStatus.COLLECTION_ID
    + *         left outer join COLLECTION_STATUS_LOOKUP collectionStatusLookup on collectionStatus.COLLECTION_STATUS_CODE = collectionStatusLookup.COLLECTION_STATUS_CODE
    + *       left outer join BOOK book on collection.BOOK_ID = book.BOOK_ID
    + *         left outer join AUTHOR author on book.AUTHOR_ID = author.AUTHOR_ID
    + *     left outer join LIBRARY_USER libraryUser on library.LIBRARY_ID = libraryUser.LIBRARY_ID
    + *       left outer join LENDING lending on libraryUser.LIBRARY_ID = lending.LIBRARY_ID and libraryUser.LB_USER_ID = lending.LB_USER_ID
    + *       left outer join LB_USER lbUser on libraryUser.LB_USER_ID = lbUser.LB_USER_ID
    + * 
    + * 
    + * ex) Invoking Hierarchy Arranger
    + * 
    + * private List<Library> makeLibraryList() {
    + *     final HierarchyRequest<Library> request = createHierarchyRequest(createFlatLibraryList());
    + *     return new HierarchyArranger<Library>().arrangeHierarchy(request);
    + * }
    + * 
    + * 
    + * ex) Creating Hierarchy Request
    + * 
    + * private HierarchyRequest<Library> createHierarchsyRequest(java.util.List>HierarchyFlatLibrary> flatLibraryList) {
    + * 
    + *     // Define dbmeta.
    + *     final HierarchyFlatLibraryDbm sourceDbm = HierarchyFlatLibraryDbm.getInstance();
    + * 
    + *     // Define hierarychy request as library.
    + *     final HierarchyRequest<Library> request = new HierarchyRequest<Library>(Library.class);
    + * 
    + *     // Register the list of source iterator. (by calling creator for flat library list)
    + *     request.registerSourceList(flatLibraryList);
    + * 
    + *     // Create relation trace.
    + *     final LibraryRelationTrace trace = LibraryDbm.getInstance().createRelationTrace(null);
    + *     
    + *     // Register column [libraryId]
    + *     request.mapping(sourceDbm.columnLibraryId(), trace.columnLibraryId());
    + * 
    + *     // Register column [libraryName]
    + *     request.mapping(sourceDbm.columnLibraryName(), trace.columnLibraryName());
    + * 
    + *     // Register column [RUser]
    + *     request.mapping(sourceDbm.columnRUser(), trace.columnRUser());
    + * 
    + *     // Register column [RTimestamp]
    + *     request.mapping(sourceDbm.columnRTimestamp(), trace.columnRTimestamp());
    + * 
    + *     // Register column [baseLibraryId]
    + *     request.mapping(sourceDbm.columnBaseLibraryId(), trace.referrerNextLibraryByBaseIdList().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryId(), trace.referrerNextLibraryByBaseIdList().columnNextLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryId]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryId(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryId());
    + * 
    + *     // Register column [nextLibraryNextLibraryName]
    + *     request.mapping(sourceDbm.columnNextLibraryNextLibraryName(), trace.referrerNextLibraryByBaseIdList().foreignLibraryByNextId().columnLibraryName());
    + * 
    + *     // Register column [collectionId]
    + *     request.mapping(sourceDbm.columnCollectionId(), trace.referrerCollectionList().columnCollectionId());
    + * 
    + *     // Register column [arrivalDate]
    + *     request.mapping(sourceDbm.columnCollectionArrivalDate(), trace.referrerCollectionList().columnArrivalDate());
    + * 
    + *     // Register column [collectionStatusId]
    + *     request.mapping(sourceDbm.columnCollectionStatusId(), trace.referrerCollectionList().foreignCollectionStatusAsOne().columnCollectionId());
    + * 
    + *     // Register column [collectionStatusCode]
    + *     request.mapping(sourceDbm.columnCollectionStatusCode(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusCode());
    + * 
    + *     // Register column [collectionStatusName]
    + *     request.mapping(sourceDbm.columnCollectionStatusName(), trace.referrerCollectionList().foreignCollectionStatusAsOne().foreignCollectionStatusLookup().columnCollectionStatusName());
    + * 
    + *     // Register column [collectionBookId]
    + *     request.mapping(sourceDbm.columnCollectionBookId(), trace.referrerCollectionList().foreignBook().columnBookId());
    + * 
    + *     // Register column [collectionBookName]
    + *     request.mapping(sourceDbm.columnCollectionBookName(), trace.referrerCollectionList().foreignBook().columnBookName());
    + * 
    + *     // Register column [collectionBookAuthorId]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorId(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorId());
    + * 
    + *     // Register column [collectionBookAuthorName]
    + *     request.mapping(sourceDbm.columnCollectionBookAuthorName(), trace.referrerCollectionList().foreignBook().foreignAuthor().columnAuthorName());
    + * 
    + *     // Register column [libraryUserLibraryId]
    + *     request.mapping(sourceDbm.columnLibraryUserLibraryId(), trace.referrerLibraryUserList().columnLibraryId());
    + * 
    + *     // Register column [libraryUserLbUserId]
    + *     request.mapping(sourceDbm.columnLibraryUserLbUserId(), trace.referrerLibraryUserList().columnLbUserId());
    + * 
    + *     // Register column [lendingLibraryId]
    + *     request.mapping(sourceDbm.columnLendingLibraryId(), trace.referrerLibraryUserList().referrerLendingList().columnLibraryId());
    + * 
    + *     // Register column [lendingLbUserId]
    + *     request.mapping(sourceDbm.columnLendingLbUserId(), trace.referrerLibraryUserList().referrerLendingList().columnLbUserId());
    + * 
    + *     // Register column [lendingDate]
    + *     request.mapping(sourceDbm.columnLendingDate(), trace.referrerLibraryUserList().referrerLendingList().columnLendingDate());
    + * 
    + *     // Register column [lendingUUser]
    + *     request.mapping(sourceDbm.columnLendingUUser(), trace.referrerLibraryUserList().referrerLendingList().columnUUser());
    + * 
    + *     // Register column [lendingUModule]
    + *     request.mapping(sourceDbm.columnLendingUModule(), trace.referrerLibraryUserList().referrerLendingList().columnUModule());
    + * 
    + *     // Register column [lbUserId]
    + *     request.mapping(sourceDbm.columnLbUserId(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserId());
    + * 
    + *     // Register column [lbUserName]
    + *     request.mapping(sourceDbm.columnLbUserName(), trace.referrerLibraryUserList().foreignLbUser().columnLbUserName());
    + * 
    + *     return request;
    + * }
    + * 
    + * private java.util.List>HierarchyFlatLibrary> createFlatLibraryList() {
    + *     (...select and get list)
    + *     return flatLibraryList;
    + * }
    + * 
    + * 
    + * === Relation Trace Tips ===
    + * 
    + *   RelationTrace.f + [Code Assist] -- go to Foreign
    + *   RelationTrace.r + [Code Assist] -- go to Referrer
    + * RelationTrace.c + [Code Assist] -- end relation by Column
    + * 
    + * 
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity extends Entity
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyArranger {
    +
    +    //==========================================================================
    +    // =========
    +    // Main
    +    // ====
    +    /**
    +     * Arrange hierarchy.
    +     * 
    +     * @param request Hierarchy request. (NotNull)
    +     * @return The list of local entity. (NotNull)
    +     */
    +    public List arrangeHierarchy(
    +            HierarchyRequest request) {
    +        final List localTableList = new ArrayList();
    +        final Map alreadyRegisteredEntityMap = new HashMap();
    +
    +        // ============
    +        // Record Loop!
    +        // ============
    +        final HierarchySourceIterator sourceIterator = request
    +                .getSourceIterator();
    +        while (sourceIterator.hasNext()) {
    +            final HierarchySourceRow sourceRow = sourceIterator.next();
    +            final TopInfo topInfo = new TopInfo();
    +            topInfo.setHierarchyRequest(request);
    +            topInfo.setSourceRow(sourceRow);
    +            topInfo.setAlreadyRegisteredEntityMap(alreadyRegisteredEntityMap);
    +
    +            final Map primaryKeyMap = extractTopPrimaryKeyMapFromSource(topInfo);
    +            final String alreadyRegisteredKey = buildTopAlreadyRegisteredKey(primaryKeyMap);
    +            if (alreadyRegisteredEntityMap.containsKey(alreadyRegisteredKey)) {
    +                final Entity localEntity = alreadyRegisteredEntityMap
    +                        .get(alreadyRegisteredKey);
    +                topInfo.setLocalEntity(localEntity);
    +            } else {
    +                // Make local entity and register it to the result list.
    +                final LOCAL_ENTITY localEntity = newLocalEntity(request
    +                        .getDestinationDBMeta());
    +                topInfo.setLocalEntity(localEntity);
    +                localTableList.add(localEntity);
    +                alreadyRegisteredEntityMap.put(alreadyRegisteredKey,
    +                        localEntity);
    +            }
    +
    +            // ============
    +            // Column Loop!
    +            // ============
    +            doColumnLoop(topInfo);
    +        }
    +
    +        // Clear modified properties.
    +        final java.util.Set alreadyRegisteredEntityKeySet = alreadyRegisteredEntityMap
    +                .keySet();
    +        for (String key : alreadyRegisteredEntityKeySet) {
    +            final Entity currentRegisteredEntity = alreadyRegisteredEntityMap
    +                    .get(key);
    +            currentRegisteredEntity.clearModifiedPropertyNames();
    +        }
    +
    +        return localTableList;
    +    }
    +
    +    /**
    +     * Build top already-registered key.
    +     * 
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     * @return Top already-registered key. (NotNull)
    +     */
    +    protected String buildTopAlreadyRegisteredKey(
    +            Map primaryKeyMap) {
    +        return HierarchyRequestElement.TOP_KEY + ":" + primaryKeyMap;
    +    }
    +
    +    /**
    +     * Do column loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of the
    +     *            type of local entity. (NotNull)
    +     */
    +    protected void doColumnLoop(TopInfo topInfo) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Entity localEntity = topInfo.getLocalEntity();
    +        final List requestElementList = request
    +                .getRequestElementList();
    +
    +        // ============
    +        // Column Loop!
    +        // ============
    +        for (HierarchyRequestElement requestElement : requestElementList) {
    +            final List relationPropertyNameList = requestElement
    +                    .getRelationPropertyNameList();
    +
    +            // If the column belongs to local entity, inject the value to entity
    +            // and continue loop.
    +            if (relationPropertyNameList == null
    +                    || relationPropertyNameList.isEmpty()) {
    +                final HierarchySourceColumn sourceColumn = requestElement
    +                        .getSourceColumnInfo();
    +                final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +                final Object sourceColumnValue = extractColumnValueFromSource(
    +                        sourceRow, sourceColumn);
    +                final ColumnInfo destinationColumnInfo = requestElement
    +                        .getDestinationColumnInfo();
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +                continue;
    +            }
    +
    +            // ==============
    +            // Relation Loop!
    +            // ==============
    +            doRelationLoop(topInfo, requestElement, relationPropertyNameList);
    +        }
    +    }
    +
    +    /**
    +     * Do relation loop.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param relationPropNameList The list of relation property name that has
    +     *            generics of string. (NotNull)
    +     */
    +    protected void doRelationLoop(TopInfo topInfo,
    +            HierarchyRequestElement requestElement,
    +            java.util.List relationPropNameList) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map alreadyRegisteredEntityMap = topInfo
    +                .getAlreadyRegisteredEntityMap();
    +
    +        // Temporary variables for local
    +        Entity localEntity = topInfo.getLocalEntity();// as Default
    +        DBMeta localDBMeta = request.getDestinationDBMeta();// as Default
    +        String localRelationPath = HierarchyRequestElement.TOP_KEY;// as Default
    +
    +        // ==============
    +        // Relation Loop!
    +        // ==============
    +        final StringBuilder relationPropKeyStringBuilder = new StringBuilder();
    +        int relationLoopCount = 0;
    +        for (String relationPropName : relationPropNameList) {
    +            if (relationPropKeyStringBuilder.length() > 0) {
    +                relationPropKeyStringBuilder.append("_");
    +            }
    +            relationPropKeyStringBuilder.append(relationPropName);
    +            final String targetRelationPath = relationPropKeyStringBuilder
    +                    .toString();
    +            final RelationInfo relationInfo = localDBMeta
    +                    .findRelationInfo(relationPropName);
    +
    +            final Map targetPrimaryKeyMap;
    +            final String alreadyRegisteredEntityKey;
    +            if (!relationInfo.isReferrer()) {
    +                // =======
    +                // Foreign
    +                // =======
    +                final ForeignInfo foreignInfo = localDBMeta
    +                        .findForeignInfo(relationPropName);
    +                final String foreignPropName = foreignInfo
    +                        .getForeignPropertyName();
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    // Initialize the foreign entity and inject it.
    +                    // - - - - - - - - - - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = foreignInfo.getForeignDBMeta()
    +                            .newEntity();
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of foreign.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectForeignPrimaryKey(foreignEntity, targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of local.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectLocalForeignKey(topInfo, localEntity, foreignInfo,
    +                            targetRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put foreign entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), foreignEntity);
    +                } else {
    +                    // - - - - - - - - - - - - - -
    +                    // Inject the foreign entity.
    +                    // - - - - - - - - - - - - - -
    +                    final Entity foreignEntity = alreadyRegisteredEntityMap
    +                            .get(alreadyRegisteredEntityKey);
    +                    injectForeignEntity(localEntity, foreignPropName,
    +                            foreignEntity);
    +                }
    +            } else {
    +                // =======
    +                // Referrer
    +                // =======
    +                final ReferrerInfo referrerInfo = localDBMeta
    +                        .findReferrerInfo(relationPropName);
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                // Extract referrer list from current local entity and
    +                // initialize it if needs.
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - - - - -
    +                List referrerList = extractReferrerList(localEntity,
    +                        referrerInfo);
    +                if (referrerList == null) {
    +                    String msg = "The referrer list should not be null: localEntity="
    +                            + localEntity + " referrerInfo=" + referrerInfo;
    +                    throw new IllegalStateException(msg);
    +                }
    +
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                // If the value of primary key does not exist, break this
    +                // relation path!
    +                // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                // - - - -
    +                if (isNotExistPrimaryKey(topInfo, targetRelationPath)) {
    +                    break;
    +                }
    +
    +                targetPrimaryKeyMap = extractPrimaryKeyMapFromSource(topInfo,
    +                        targetRelationPath);
    +                alreadyRegisteredEntityKey = targetRelationPath + ":"
    +                        + targetPrimaryKeyMap.toString();
    +                if (!alreadyRegisteredEntityMap
    +                        .containsKey(alreadyRegisteredEntityKey)) {
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    // Initialize referrer entity and register it to the list of
    +                    // referrer with primary key value.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // - - - - - - - - - - - - - - - -
    +                    final Entity referrerEntity = relationInfo
    +                            .getTargetDBMeta().newEntity();
    +                    referrerList.add(referrerEntity);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize primary key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerPrimaryKey(referrerEntity,
    +                            targetPrimaryKeyMap);
    +
    +                    // - - - - - - - - - - - - - - - - - -
    +                    // Initialize foreign key of referrer.
    +                    // - - - - - - - - - - - - - - - - - -
    +                    injectReferrerForeignKey(topInfo, referrerEntity,
    +                            referrerInfo, localRelationPath);
    +
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    // Put referrer entity to the map of
    +                    // already-registered-entity.
    +                    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +                    // -
    +                    alreadyRegisteredEntityMap.put(alreadyRegisteredEntityKey
    +                            .toString(), referrerEntity);
    +                }
    +            }
    +
    +            // - - - - - - - - - - - - - - - - - -
    +            // Set next value to current element.
    +            // - - - - - - - - - - - - - - - - - -
    +            localEntity = alreadyRegisteredEntityMap
    +                    .get(alreadyRegisteredEntityKey);
    +            localDBMeta = localEntity.getDBMeta();
    +            localRelationPath = targetRelationPath;
    +
    +            if (relationLoopCount == (relationPropNameList.size() - 1)) {// The
    +                // last
    +                // loop
    +                // !
    +                // - - - - - - - - - - - -
    +                // Here is the last loop!
    +                // - - - - - - - - - - - -
    +                doLastLoopInjection(topInfo, requestElement, localEntity,
    +                        targetPrimaryKeyMap);
    +            }
    +            ++relationLoopCount;
    +        }
    +    }
    +
    +    /**
    +     * Is not existing primary key at the relation path?.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param relationPath The path of relation. (NotNull)
    +     * @return Determination.
    +     */
    +    protected boolean isNotExistPrimaryKey(TopInfo topInfo,
    +            String relationPath) {
    +        final Map primaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, relationPath);
    +        final Set keySet = primaryKeyMap.keySet();
    +        for (String key : keySet) {
    +            final Object value = primaryKeyMap.get(key);
    +            if (value == null) {
    +                return true;
    +            }
    +        }
    +        return false;
    +    }
    +
    +    /**
    +     * Do last loop injection.
    +     * 
    +     * @param topInfo The information object of top that has generics of local
    +     *            entity. (NotNull)
    +     * @param requestElement The element of request. This is relation loop
    +     *            resource. (NotNull)
    +     * @param localEntity The interface of local entity. (NotNull)
    +     * @param primaryKeyMap The map of primary key. (NotNull)
    +     */
    +    protected void doLastLoopInjection(TopInfo topInfo,
    +            HierarchyRequestElement requestElement, Entity localEntity,
    +            Map primaryKeyMap) {
    +        final ColumnInfo destinationColumnInfo = requestElement
    +                .getDestinationColumnInfo();
    +        if (!primaryKeyMap.containsKey(destinationColumnInfo.getColumnDbName())) {// The
    +            // column
    +            // is
    +            // primary
    +            // key
    +            // !
    +            final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +            final HierarchySourceColumn sourceColumnInfo = requestElement
    +                    .getSourceColumnInfo();
    +            final Object sourceColumnValue = extractColumnValueFromSource(
    +                    sourceRow, sourceColumnInfo);
    +            if (sourceColumnValue != null) {
    +                injectColumnValueToDestinationIfNotNull(localEntity,
    +                        destinationColumnInfo, sourceColumnValue);
    +            }
    +        }
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Extract Logic
    +    // =============
    +    protected Map extractTopPrimaryKeyMapFromSource(
    +            TopInfo topInfo) {
    +        return extractPrimaryKeyMapFromSource(topInfo,
    +                HierarchyRequestElement.TOP_KEY);
    +    }
    +
    +    protected Map extractPrimaryKeyMapFromSource(
    +            TopInfo topInfo, String relationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final HierarchySourceRow sourceRow = topInfo.getSourceRow();
    +        final java.util.List primaryKeyElement = request
    +                .findPrimaryKeyElement(relationPath);
    +        final java.util.Map primaryKeyMap = new java.util.LinkedHashMap();
    +        for (HierarchyRequestElement element : primaryKeyElement) {
    +            final HierarchySourceColumn sourcePrimaryKey = element
    +                    .getSourceColumnInfo();
    +            final Object sourcePrimaryKeyValue = extractColumnValueFromSource(
    +                    sourceRow, sourcePrimaryKey);
    +            primaryKeyMap.put(element.getDestinationColumnInfo()
    +                    .getColumnDbName(), sourcePrimaryKeyValue);
    +        }
    +        return primaryKeyMap;
    +    }
    +
    +    protected Object extractColumnValueFromSource(HierarchySourceRow sourceRow,
    +            HierarchySourceColumn sourceColumn) {
    +        return sourceRow.extractColumnValue(sourceColumn);
    +    }
    +
    +    @SuppressWarnings("unchecked")
    +    protected java.util.List extractReferrerList(Entity entity,
    +            ReferrerInfo referrerInfo) {
    +        return (java.util.List) invoke(referrerInfo.findGetter(),
    +                entity, new Object[] {});
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Inject Logic
    +    // ============
    +    /**
    +     * @param entity Entity. (NotNull)
    +     * @param columnInfo Column info. (NotNull)
    +     * @param columnValue Column value. (NotNull)
    +     */
    +    protected void injectColumnValueToDestinationIfNotNull(Entity entity,
    +            ColumnInfo columnInfo, final Object columnValue) {
    +        if (columnValue != null) {
    +            injectColumnValueToDestination(entity,
    +                    columnInfo.getColumnDbName(), columnValue);
    +        }
    +    }
    +
    +    protected void injectColumnValueToDestination(Entity entity,
    +            String columnDbName, final Object columnValue) {
    +        if (columnValue == null) {
    +            String msg = "The argument[columnValue] should not be null: ";
    +            msg = msg + " table=" + entity.getTableDbName() + " column="
    +                    + columnDbName;
    +            throw new IllegalStateException(msg);
    +        }
    +        invoke(entity.getDBMeta().findColumnInfo(columnDbName).findSetter(),
    +                entity, new Object[] { columnValue });
    +    }
    +
    +    protected void injectColumnValueMapToDestination(Entity entity,
    +            final Map columnValueMap) {
    +        final Set columnNameSet = columnValueMap.keySet();
    +        for (String columnName : columnNameSet) {
    +            final Object columnValue = columnValueMap.get(columnName);
    +            injectColumnValueToDestination(entity, columnName, columnValue);
    +        }
    +    }
    +
    +    protected void injectForeignEntity(Entity entity, String foreignPropName,
    +            Entity foreignEntity) {
    +        final String capPropReferrerName = initCap(foreignPropName);
    +        final Method method = findMethod(entity.getClass(), "set"
    +                + capPropReferrerName, new Class[] { foreignEntity.getDBMeta()
    +                .getEntityType() });
    +        invoke(method, entity, new Object[] { foreignEntity });
    +    }
    +
    +    protected void injectReferrerList(Entity entity, ReferrerInfo referrerInfo,
    +            java.util.List referrerList) {
    +        invoke(referrerInfo.findSetter(), entity, new Object[] { referrerList });
    +    }
    +
    +    protected void injectForeignPrimaryKey(Entity foreignEntity,
    +            Map foreigPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(foreignEntity, foreigPrimaryKeyMap);
    +    }
    +
    +    protected void injectReferrerPrimaryKey(Entity referrerEntity,
    +            Map referrerPrimaryKeyMap) {
    +        injectColumnValueMapToDestination(referrerEntity, referrerPrimaryKeyMap);
    +    }
    +
    +    protected void injectLocalForeignKey(TopInfo topInfo,
    +            Entity localEntity, ForeignInfo foreignInfo,
    +            String foreignRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map foreignPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, foreignRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(foreignRelationPath);
    +        final Map localForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement foreignElement : primaryKeyElementList) {
    +            final String foreignPrimaryKeyColumnName = foreignElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo localForeignKeyInfo = foreignInfo
    +                    .findLocalByForeign(foreignPrimaryKeyColumnName);
    +            final Object localForeignKeyValue = foreignPrimaryKeyMap
    +                    .get(foreignPrimaryKeyColumnName);
    +            localForeignKeyMap.put(localForeignKeyInfo.getColumnDbName(),
    +                    localForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(localEntity, localForeignKeyMap);
    +    }
    +
    +    protected void injectReferrerForeignKey(TopInfo topInfo,
    +            Entity referrerEntity, ReferrerInfo referrerInfo,
    +            String localRelationPath) {
    +        final HierarchyRequest request = topInfo
    +                .getHierarchyRequest();
    +        final Map localPrimaryKeyMap = extractPrimaryKeyMapFromSource(
    +                topInfo, localRelationPath);
    +        final List primaryKeyElementList = request
    +                .findPrimaryKeyElement(localRelationPath);
    +        final Map referrerForeignKeyMap = new HashMap();
    +        for (HierarchyRequestElement localElement : primaryKeyElementList) {
    +            final String localPrimaryKeyName = localElement
    +                    .getDestinationColumnInfo().getColumnDbName();
    +            final ColumnInfo referrerForeignKeyInfo = referrerInfo
    +                    .findReferrerByLocal(localPrimaryKeyName);
    +            final Object referrerForeignKeyValue = localPrimaryKeyMap
    +                    .get(localPrimaryKeyName);
    +            referrerForeignKeyMap.put(referrerForeignKeyInfo.getColumnDbName(),
    +                    referrerForeignKeyValue);
    +        }
    +        injectColumnValueMapToDestination(referrerEntity, referrerForeignKeyMap);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Other Logic
    +    // ===========
    +    @SuppressWarnings("unchecked")
    +    protected LOCAL_ENTITY newLocalEntity(final DBMeta destinationDBMeta) {
    +        final LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = (LOCAL_ENTITY) destinationDBMeta.getEntityType()
    +                    .newInstance();
    +        } catch (InstantiationException e) {
    +            throw new IllegalStateException(e);
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        }
    +        return localEntity;
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Helper
    +    // ======
    +    protected String initCap(final String name) {
    +        final String capPropReferrerName = name.substring(0, 1).toUpperCase()
    +                + name.substring(1);
    +        return capPropReferrerName;
    +    }
    +
    +    private java.lang.reflect.Method findMethod(Class clazz, String methodName,
    +            Class[] argTypes) {
    +        try {
    +            return clazz.getMethod(methodName, argTypes);
    +        } catch (NoSuchMethodException ex) {
    +            String msg = "class=" + clazz + " method=" + methodName + "-"
    +                    + java.util.Arrays.asList(argTypes);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private Object invoke(java.lang.reflect.Method method, Object target,
    +            Object[] args) {
    +        try {
    +            return method.invoke(target, args);
    +        } catch (RuntimeException e) {
    +            final String lineSeparator = System.getProperty("line.separator");
    +            final Class[] parameterTypes = method.getParameterTypes();
    +            String msg = "Invoking method threw the exception:" + lineSeparator;
    +            msg = msg
    +                    + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * *"
    +                    + lineSeparator;
    +            msg = msg + "[" + method.getDeclaringClass().getSimpleName() + "."
    +                    + method.getName() + "()]" + lineSeparator;
    +            msg = msg + " methodArgTypes     = {"
    +                    + createTypeViewFromTypeArray(parameterTypes) + "}"
    +                    + lineSeparator;
    +            msg = msg + " specifiedArgValues = {"
    +                    + createValueViewFromValueArray(args) + "}" + lineSeparator;
    +            msg = msg + " specifiedArgTypes  = {"
    +                    + createTypeViewFromValueArray(args) + "}" + lineSeparator;
    +            if (parameterTypes.length > 0 && args.length > 0 && args[0] != null
    +                    && !parameterTypes[0].equals(args[0].getClass())) {
    +                msg = msg + " " + lineSeparator;
    +                final String compareString = "{" + parameterTypes[0] + " -- "
    +                        + args[0].getClass() + "}";
    +                msg = msg + " *Warning! The argType is ummatched: "
    +                        + compareString + lineSeparator;
    +            }
    +            msg = msg + "* * * * * * * * * */" + lineSeparator;
    +            throw new RuntimeException(msg, e);
    +        } catch (java.lang.reflect.InvocationTargetException ex) {
    +            Throwable t = ex.getCause();
    +            if (t instanceof RuntimeException) {
    +                throw (RuntimeException) t;
    +            }
    +            if (t instanceof Error) {
    +                throw (Error) t;
    +            }
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        } catch (IllegalAccessException ex) {
    +            String msg = "target=" + target + " method=" + method + "-"
    +                    + java.util.Arrays.asList(args);
    +            throw new RuntimeException(msg, ex);
    +        }
    +    }
    +
    +    private String createValueViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(value);
    +            } else {
    +                sb.append(", ").append(value);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromValueArray(Object[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Object value = array[i];
    +            final String typeName = value != null ? value.getClass()
    +                    .getSimpleName() : "null";
    +            if (sb.length() == 0) {
    +                sb.append(typeName);
    +            } else {
    +                sb.append(", ").append(typeName);
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    private String createTypeViewFromTypeArray(Class[] array) {
    +        final StringBuffer sb = new StringBuffer();
    +        for (int i = 0; i < array.length; i++) {
    +            final Class type = array[i];
    +            if (sb.length() == 0) {
    +                sb.append(type.getSimpleName());
    +            } else {
    +                sb.append(", ").append(type.getSimpleName());
    +            }
    +        }
    +        return sb.toString();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Info Class
    +    // ==========
    +    protected static class TopInfo {
    +        private HierarchyRequest hierarchyRequest;
    +
    +        private HierarchySourceRow sourceRow;
    +
    +        private Entity localEntity;
    +
    +        private Map alreadyRegisteredEntityMap;
    +
    +        public HierarchySourceRow getSourceRow() {
    +            return sourceRow;
    +        }
    +
    +        public void setSourceRow(HierarchySourceRow sourceRow) {
    +            this.sourceRow = sourceRow;
    +        }
    +
    +        public Entity getLocalEntity() {
    +            return localEntity;
    +        }
    +
    +        public void setLocalEntity(Entity localEntity) {
    +            this.localEntity = localEntity;
    +        }
    +
    +        public Map getAlreadyRegisteredEntityMap() {
    +            return alreadyRegisteredEntityMap;
    +        }
    +
    +        public void setAlreadyRegisteredEntityMap(
    +                Map alreadyRegisteredEntityMap) {
    +            this.alreadyRegisteredEntityMap = alreadyRegisteredEntityMap;
    +        }
    +
    +        public HierarchyRequest getHierarchyRequest() {
    +            return hierarchyRequest;
    +        }
    +
    +        public void setHierarchyRequest(
    +                HierarchyRequest hierarchyRequest) {
    +            this.hierarchyRequest = hierarchyRequest;
    +        }
    +    }
    +}
    
    Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ===================================================================
    --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	                        (rev 0)
    +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java	2008-11-14 09:14:02 UTC (rev 1350)
    @@ -0,0 +1,94 @@
    +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy;
    +
    +import jp.sf.pal.scheduler.db.allcommon.Entity;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo;
    +
    +/**
    + * The basic request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + * @param  The type of local relation trace.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyBasicRequest
    +        extends HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    protected ColumnInfo _currentSourceColumnInfo;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyBasicRequest(Class localEntityType) {
    +        super(localEntityType);
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Set up source.
    +     * 
    +     * @param sourceColumnInfo The column info of source. (NotNull)
    +     * @return Destination relation trace. (NotNull)
    +     */
    +    public DestinationRelationTrace src(
    +            ColumnInfo sourceColumnInfo) {
    +        this._currentSourceColumnInfo = sourceColumnInfo;
    +        final HierarchyBasicRequest outer = this;
    +        return new DestinationRelationTrace() {
    +            public LOCAL_RELATION_TRACE dst() {
    +                return outer.dst();
    +            }
    +        };
    +    }
    +
    +    /**
    +     * Set up destination.
    +     * 
    +     * @return Local relation trace. (NotNull)
    +     */
    +    public LOCAL_RELATION_TRACE dst() {
    +        final DBMeta.RelationTraceFixHandler handler = new DBMeta.RelationTraceFixHandler() {
    +            public void handleFixedTrace(DBMeta.RelationTrace relationTrace) {
    +                mapping(_currentSourceColumnInfo, relationTrace);
    +            }
    +        };
    +        final Object target = destinationDBMeta;
    +        java.lang.reflect.Method method = null;
    +        try {
    +            method = target.getClass().getMethod("createRelationTrace",
    +                    new Class[] { DBMeta.RelationTraceFixHandler.class });
    +        } catch (NoSuchMethodException e) {
    +            String msg = "Not found method: method=createRelationTrace(DBMeta.RelationTraceFixHandler)";
    +            throw new IllegalStateException(msg, e);
    +        }
    +        try {
    +            return (LOCAL_RELATION_TRACE) method.invoke(target,
    +                    new Object[] { handler });
    +        } catch (IllegalAccessException e) {
    +            throw new IllegalStateException(e);
    +        } catch (java.lang.reflect.InvocationTargetException e) {
    +            throw new IllegalStateException(e.getCause());
    +        }
    +    }
    +
    +    public static interface DestinationRelationTrace {
    +        public LOCAL_RELATION_TRACE dst();
    +    }
    +}
    
    
    Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyBasicRequest.java
    ___________________________________________________________________
    Name: svn:eol-style
       + native
    
    Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java
    ===================================================================
    --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	                        (rev 0)
    +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java	2008-11-14 09:14:02 UTC (rev 1350)
    @@ -0,0 +1,347 @@
    +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy;
    +
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +import jp.sf.pal.scheduler.db.allcommon.Entity;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityColumn;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic.HierarchySourceEntityListIterator;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo;
    +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.RelationInfo;
    +
    +/**
    + * The request of hierarchy.
    + * 
    + * @author DBFlute(AutoGenerator)
    + * @param  The type of local entity.
    + */
    + ¡÷ SuppressWarnings("unchecked")
    +public class HierarchyRequest {
    +
    +    //==========================================================================
    +    // =========
    +    // Attribute
    +    // =========
    +    /** The dbmeta of desination. */
    +    protected DBMeta destinationDBMeta;
    +
    +    /** The iterator of hierarychy source. */
    +    protected HierarchySourceIterator sourceIterator;
    +
    +    /** The list of request element. */
    +    protected List requestElementList = new ArrayList();
    +
    +    /** The set of already registered source column info for check. */
    +    protected java.util.Set alreadyRegisteredSourceColumnInfoSet4Check = new java.util.HashSet();
    +
    +    /** First source column info for check. */
    +    protected ColumnInfo firstSourceColumnInfo4Check;
    +
    +    //==========================================================================
    +    // =========
    +    // Constructor
    +    // ===========
    +    /**
    +     * Constructor.
    +     * 
    +     * @param localEntityType The type of local entity. (NotNull)
    +     */
    +    public HierarchyRequest(Class localEntityType) {
    +        LOCAL_ENTITY localEntity;
    +        try {
    +            localEntity = localEntityType.newInstance();
    +        } catch (InstantiationException e) {
    +            String msg = "localEntityType.newInstance() threw the InstantiationException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        } catch (IllegalAccessException e) {
    +            String msg = "localEntityType.newInstance() threw the IllegalAccessException:";
    +            msg = msg + " localEntityType=" + localEntityType;
    +            throw new IllegalStateException(msg, e);
    +        }
    +        destinationDBMeta = localEntity.getDBMeta();
    +    }
    +
    +    //==========================================================================
    +    // =========
    +    // Easy-to-Use
    +    // ===========
    +    // -----------------------------------------------------
    +    // public
    +    // ------
    +    /**
    +     * Register the list of source. 
    This method uses the default source + * iterator. + * + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + */ + public void registerSourceList(java.util.List sourceList) { + sourceIterator = createDefaultSourceIterator(sourceList); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumn The column of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumn, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + /** + * Set up mapping between the source column and the destination relation. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param relationTrace The relation trace of destination. (NotNull) + */ + public void mapping(ColumnInfo sourceColumnInfo, + DBMeta.RelationTrace relationTrace) { + setupElement(sourceColumnInfo, relationTrace.getTraceColumn()); + addRelationToLastElement(relationTrace.getTraceRelation()); + } + + // ----------------------------------------------------- + // internal + // ------- + /** + * Set up element. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Set up element.
    This method uses the default source column. + * + * @param sourceColumnInfo The column info of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void setupElement(ColumnInfo sourceColumnInfo, + ColumnInfo destinationColumnInfo) { + if (alreadyRegisteredSourceColumnInfoSet4Check + .contains(sourceColumnInfo)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The source column has already been registered:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + " sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + " registeredColumnInfo=" + + alreadyRegisteredSourceColumnInfoSet4Check + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + alreadyRegisteredSourceColumnInfoSet4Check.add(sourceColumnInfo); + assertSameSourceDBMeta(sourceColumnInfo); + assertSameLocalDestinationDBMeta(destinationColumnInfo); + final HierarchyRequestElement element = new HierarchyRequestElement(); + requestElementList.add(element); + final HierarchySourceColumn sourceColumn = createDefaultSourceColumn(sourceColumnInfo); + element.mapping(sourceColumn, destinationColumnInfo); + element.setDestinationDBMeta(destinationColumnInfo.getDBMeta()); + } + + /** + * Make relatetion by the list of relation info. + * + * @param relationInfoList The list of relation info. (NotNull) + */ + protected void addRelationToLastElement(List relationInfoList) { + if (requestElementList.isEmpty()) { + String msg = "You shuold invoke mapping() before invoking relation()!"; + throw new IllegalStateException(msg); + } + for (RelationInfo relationInfo : relationInfoList) { + final int lastIndex = requestElementList.size() - 1; + final HierarchyRequestElement element = (HierarchyRequestElement) requestElementList + .get(lastIndex); + element.relation(relationInfo); + } + } + + /** + * Assert same source dbmeta. + * + * @param sourceColumnInfo The column info of source. (NotNull) + */ + protected void assertSameSourceDBMeta(ColumnInfo sourceColumnInfo) { + if (firstSourceColumnInfo4Check == null) { + firstSourceColumnInfo4Check = sourceColumnInfo; + return; + } + final DBMeta expectedDBMeta = firstSourceColumnInfo4Check.getDBMeta(); + final DBMeta actualDBMeta = sourceColumnInfo.getDBMeta(); + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong sourceColumnInfo!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The dbmeta of sourceColumnInfo is difference from"; + msg = msg + " the one of Your First Source Column Info:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "sourceColumnInfo=" + sourceColumnInfo + + getLineSeparator(); + msg = msg + "firstSourceColumnInfo4Check=" + + firstSourceColumnInfo4Check + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + + /** + * Assert same source dbmeta. + * + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + protected void assertSameLocalDestinationDBMeta( + ColumnInfo destinationColumnInfo) { + if (!requestElementList.isEmpty()) { + final HierarchyRequestElement currentElement = currentElement(); + final List relationInfoList = currentElement + .getRelationInfoList(); + if (relationInfoList.isEmpty()) { + final DBMeta actualDBMeta = currentElement() + .getDestinationDBMeta(); + final DBMeta expectedDBMeta = destinationDBMeta; + if (!expectedDBMeta.equals(actualDBMeta)) { + String msg = "The wrong destinationColumnInfo!" + + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The dbmeta of destinationColumnInfo is difference from"; + msg = msg + " the one of Your Local Entity:" + + getLineSeparator(); + msg = msg + "- - - - -" + getLineSeparator(); + msg = msg + "destinationColumnInfo=" + + currentElement.getDestinationColumnInfo() + + getLineSeparator(); + msg = msg + "localEntity=" + + destinationDBMeta.getEntityTypeName() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + } + } + } + + /** + * @param sourceList The list of source. (NotNull) + * @param The type of source. (NotNull) + * @return Default source iterator. (NotNull) + */ + protected HierarchySourceIterator createDefaultSourceIterator( + java.util.List sourceList) { + return new HierarchySourceEntityListIterator(sourceList); + } + + /** + * @param sourceColumnInfo The column info of source. (NotNull) + * @return Default source column. (NotNull) + */ + protected HierarchySourceColumn createDefaultSourceColumn( + ColumnInfo sourceColumnInfo) { + return new HierarchySourceEntityColumn(sourceColumnInfo); + } + + /** + * Get current element. + * + * @return Current element. (NotNull) + */ + protected HierarchyRequestElement currentElement() { + final int lastIndex = requestElementList.size() - 1; + return (HierarchyRequestElement) requestElementList.get(lastIndex); + } + + // ----------------------------------------------------- + // Internal + // -------- + /** + * @param relationPropertyKey Relation Property key. (NotNull) + * @return The list of request element. (NotNull) + */ + public List findPrimaryKeyElement( + String relationPropertyKey) { + final List resultList = new ArrayList(); + for (HierarchyRequestElement element : requestElementList) { + if (!relationPropertyKey.equals(element.getRelationPropertyKey())) { + continue; + } + final ColumnInfo destinationColumnInfo = element + .getDestinationColumnInfo(); + if (!destinationColumnInfo.isPrimary()) { + continue; + } + resultList.add(element); + } + if (resultList.isEmpty()) { + String msg = "Not found primary key element by relationPropertyKey in requestElementList: "; + msg = msg + " relationPropertyKey=" + relationPropertyKey + + " requestElementList=" + requestElementList; + throw new IllegalStateException(msg); + } + return resultList; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public List getRequestElementList() { + return requestElementList; + } + + public void addRequestElementList(HierarchyRequestElement element) { + this.requestElementList.add(element); + } + + public HierarchySourceIterator getSourceIterator() { + return sourceIterator; + } + + public void setSourceIterator(HierarchySourceIterator sourceIterator) { + this.sourceIterator = sourceIterator; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequest.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,132 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.RelationInfo; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class HierarchyRequestElement { + + //========================================================================== + // ========= + // Definition + // ========== + /** Top key. */ + public static final String TOP_KEY = "$top$"; + + //========================================================================== + // ========= + // Attribute + // ========= + /** The column of source. */ + protected HierarchySourceColumn sourceColumn; + + /** The dbmeta of destination. */ + protected DBMeta destinationDBMeta; + + /** The column info of destination. */ + protected ColumnInfo destinationColumnInfo; + + /** The list of relation info. */ + protected java.util.List relationInfoList = new java.util.ArrayList(); + + /** the list of relation property name. */ + protected java.util.List relationPropertyNameList = new java.util.ArrayList(); + + /** Relation property key. Default value is TOP_KEY. */ + protected String relationPropertyKey = TOP_KEY; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + // ----------------------------------------------------- + // Internal + // -------- + /** + * Make mapping between the source column and the destination one. + * + * @param sourceColumn The column of source. (NotNull) + * @param destinationColumnInfo The column info of destination. (NotNull) + */ + public void mapping(HierarchySourceColumn sourceColumn, + ColumnInfo destinationColumnInfo) { + this.sourceColumn = sourceColumn; + this.destinationColumnInfo = destinationColumnInfo; + } + + /** + * Make relatetion by relation info. + * + * @param relationInfo Relation info. (NotNull) + */ + public void relation(RelationInfo relationInfo) { + addRelationInfoList(relationInfo); + } + + protected void addRelationInfoList(RelationInfo relationInfo) { + relationInfoList.add(relationInfo); + addRelationPropertyNameList(relationInfo.getRelationPropertyName()); + } + + protected void addRelationPropertyNameList(String relationPropertyName) { + relationPropertyNameList.add(relationPropertyName); + setupRelationPropertyKey(); + } + + protected void setupRelationPropertyKey() { + final StringBuilder sb = new StringBuilder(); + for (String relationPropertyName : relationPropertyNameList) { + if (sb.length() > 0) { + sb.append("_"); + } + sb.append(relationPropertyName); + } + this.relationPropertyKey = sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public HierarchySourceColumn getSourceColumnInfo() { + return sourceColumn; + } + + public void setSourceColumnInfo(HierarchySourceColumn sourceColumn) { + this.sourceColumn = sourceColumn; + } + + public void setDestinationDBMeta(DBMeta destinationDBMeta) { + this.destinationDBMeta = destinationDBMeta; + } + + public DBMeta getDestinationDBMeta() { + return destinationDBMeta; + } + + public ColumnInfo getDestinationColumnInfo() { + return destinationColumnInfo; + } + + public java.util.List getRelationInfoList() { + return relationInfoList; + } + + public List getRelationPropertyNameList() { + return relationPropertyNameList; + } + + public String getRelationPropertyKey() { + return relationPropertyKey; + } + + public String toString() { + return sourceColumn + "," + destinationColumnInfo; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchyRequestElement.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,10 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceColumn { + + public String getColumnName(); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceIterator { + + public boolean hasNext(); + + public HierarchySourceRow next(); + + public HierarchySourceRow current(); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,10 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface HierarchySourceRow { + + public Object extractColumnValue(HierarchySourceColumn columnInfo); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/HierarchySourceRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,24 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityColumn implements HierarchySourceColumn { + + protected ColumnInfo columnInfo; + + public HierarchySourceEntityColumn(ColumnInfo columnInfo) { + this.columnInfo = columnInfo; + } + + public String getColumnName() { + return columnInfo.getColumnDbName(); + } + + public java.lang.reflect.Method findGetter() { + return columnInfo.findGetter(); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityColumn.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,24 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceEntityListIterator extends + HierarchySourceListIterator { + + /** + * Constructor. + * + * @param sourceRowList The list of source row. (NotNull) + */ + public HierarchySourceEntityListIterator( + java.util.List sourceRowList) { + super(sourceRowList, new HierarchySourceRowSetupper() { + public jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source) { + return new HierarchySourceEntityRow(source); + } + }); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,48 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + */ +public class HierarchySourceEntityRow implements + jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceRow { + + protected Object sourceBean; + + public HierarchySourceEntityRow(Object sourceBean) { + this.sourceBean = sourceBean; + } + + public Object extractColumnValue( + jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceColumn columnInfo) { + if (!(columnInfo instanceof HierarchySourceEntityColumn)) { + String msg = "The column info should be HierarchySourceEntityColumn! but: " + + columnInfo; + throw new IllegalStateException(msg); + } + final HierarchySourceEntityColumn sourceEntityColumn = (HierarchySourceEntityColumn) columnInfo; + return invoke(sourceEntityColumn.findGetter(), sourceBean, + new Object[] {}); + } + + private Object invoke(java.lang.reflect.Method method, Object target, + Object[] args) { + try { + return method.invoke(target, args); + } catch (java.lang.reflect.InvocationTargetException ex) { + Throwable t = ex.getCause(); + if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + if (t instanceof Error) { + throw (Error) t; + } + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } catch (IllegalAccessException ex) { + String msg = "target=" + target + " method=" + method + "-" + + java.util.Arrays.asList(args); + throw new RuntimeException(msg, ex); + } + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceEntityRow.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,40 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public class HierarchySourceListIterator + implements + jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceIterator { + + protected java.util.List sourceRowList; + + protected HierarchySourceRowSetupper sourceRowSetupper; + + protected java.util.Iterator sourceBeanListIterator; + + protected jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceRow currentSourceEntity; + + public HierarchySourceListIterator( + java.util.List sourceRowList, + HierarchySourceRowSetupper sourceRowSetupper) { + this.sourceRowList = sourceRowList; + this.sourceRowSetupper = sourceRowSetupper; + this.sourceBeanListIterator = sourceRowList.iterator(); + } + + public boolean hasNext() { + return this.sourceBeanListIterator.hasNext(); + } + + public jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceRow next() { + this.currentSourceEntity = this.sourceRowSetupper + .setup(this.sourceBeanListIterator.next()); + return this.currentSourceEntity; + } + + public jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceRow current() { + return this.currentSourceEntity; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceListIterator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,11 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.basic; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of source. + */ +public interface HierarchySourceRowSetupper { + + public jp.sf.pal.scheduler.db.allcommon.dbmeta.hierarchy.HierarchySourceRow setup( + SOURCE_ROW source); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/hierarchy/basic/HierarchySourceRowSetupper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ColumnInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ColumnInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ColumnInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,217 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.info; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta.OptimisticLockType; + +/** + * The information of column. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ColumnInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected String columnDbName; + + protected String propertyName; + + protected Class propertyType; + + protected boolean primary; + + protected Integer columnSize; + + protected Integer columnDecimalDigits; + + protected OptimisticLockType optimisticLockType; + + //========================================================================== + // ========= + // Constructor + // =========== + public ColumnInfo(DBMeta dbmeta, String columnDbName) { + this(dbmeta, columnDbName, null, null, false, null, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, null); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits) { + this(dbmeta, columnDbName, propertyName, propertyType, primary, + columnSize, columnDecimalDigits, OptimisticLockType.NONE); + } + + public ColumnInfo(DBMeta dbmeta, String columnDbName, String propertyName, + Class propertyType, boolean primary, Integer columnSize, + Integer columnDecimalDigits, OptimisticLockType optimisticLockType) { + this.dbmeta = dbmeta; + this.columnDbName = columnDbName; + this.propertyName = propertyName; + this.propertyType = propertyType; + this.primary = primary; + this.columnSize = columnSize; + this.columnDecimalDigits = columnDecimalDigits; + this.optimisticLockType = optimisticLockType; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.propertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(dbmeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { this.propertyType }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(dbmeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Optimistic Lock Type + // ==================== + public boolean isOptimisticLock() { + return isVersionNo() || isUpdateDate(); + } + + public boolean isVersionNo() { + return OptimisticLockType.VERSION_NO == optimisticLockType; + } + + public boolean isUpdateDate() { + return OptimisticLockType.UPDATE_DATE == optimisticLockType; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + //========================================================================== + // ========= + // Basic Override + // ============== + public int hashCode() { + return dbmeta.hashCode() + columnDbName.hashCode(); + } + + public boolean equals(Object obj) { + if (!(obj instanceof ColumnInfo)) { + return false; + } + final ColumnInfo target = (ColumnInfo) obj; + if (this.dbmeta == null || target.getDBMeta() == null) { + return false; + } + if (!this.dbmeta.equals(target.getDBMeta())) { + return false; + } + if (this.columnDbName == null || target.getColumnDbName() == null) { + return false; + } + if (!this.columnDbName.equals(target.getColumnDbName())) { + return false; + } + return true; + } + + public String toString() { + return dbmeta.getTableDbName() + "." + columnDbName; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public String getColumnDbName() { + return this.columnDbName; + } + + public void setColumnDbName(String columnDbName) { + this.columnDbName = columnDbName; + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public Class getPropertyType() { + return this.propertyType; + } + + public void setPropertyType(Class propertyType) { + this.propertyType = propertyType; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } + + public Integer getColumnSize() { + return this.columnSize; + } + + public void setColumnSize(Integer columnSize) { + this.columnSize = columnSize; + } + + public Integer getColumnDecimalDigits() { + return this.columnDecimalDigits; + } + + public void setColumnDecimalDigits(Integer columnDecimalDigits) { + this.columnDecimalDigits = columnDecimalDigits; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ColumnInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ForeignInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ForeignInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ForeignInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,175 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.info; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +/** + * The class of foreign information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ForeignInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String foreignPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta foreignDBMeta; + + protected java.util.Map localForeignColumnInfoMap; + + protected java.util.Map foreignLocalColumnInfoMap; + + protected int relationNo; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByForeign(String foreignColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(foreignDBMeta, + foreignColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) foreignLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by foreignColumnDbName in foreignLocalColumnInfoMap:"; + msg = msg + " foreignColumnDbName=" + foreignColumnDbName + + " foreignLocalColumnInfoMap=" + foreignLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.foreignPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getForeignPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getForeignDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalForeignColumnInfoMap(); + } + + public boolean isReferrer() { + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getForeignPropertyName() { + return foreignPropertyName; + } + + public void setForeignPropertyName(String foreignPropertyName) { + this.foreignPropertyName = foreignPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getForeignDBMeta() { + return foreignDBMeta; + } + + public void setForeignDBMeta(DBMeta foreignDBMeta) { + this.foreignDBMeta = foreignDBMeta; + } + + public java.util.Map getLocalForeignColumnInfoMap() { + return localForeignColumnInfoMap; + } + + public void setLocalForeignColumnInfoMap( + java.util.Map localForeignColumnInfoMap) { + this.localForeignColumnInfoMap = localForeignColumnInfoMap; + final java.util.Set keySet = localForeignColumnInfoMap.keySet(); + foreignLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localForeignColumnInfoMap + .get(key); + foreignLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getForeignLocalColumnInfoMap() { + return foreignLocalColumnInfoMap; + } + + public int getRelationNo() { + return relationNo; + } + + public void setRelationNo(int relationNo) { + this.relationNo = relationNo; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } + + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ForeignInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ReferrerInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ReferrerInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ReferrerInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,181 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.info; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referrer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class ReferrerInfo implements RelationInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String referrerPropertyName; + + protected DBMeta localDBMeta; + + protected DBMeta referrerDBMeta; + + protected java.util.Map localReferrerColumnInfoMap; + + protected java.util.Map referrerLocalColumnInfoMap; + + protected boolean oneToOne; + + //========================================================================== + // ========= + // Finder + // ====== + public ColumnInfo findLocalByReferrer(String referrerColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(referrerDBMeta, + referrerColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) referrerLocalColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:"; + msg = msg + " referrerColumnDbName=" + referrerColumnDbName + + " referrerLocalColumnInfoMap=" + + referrerLocalColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + public ColumnInfo findReferrerByLocal(String localColumnDbName) { + final ColumnInfo keyColumnInfo = new ColumnInfo(localDBMeta, + localColumnDbName); + final ColumnInfo resultColumnInfo = (ColumnInfo) localReferrerColumnInfoMap + .get(keyColumnInfo); + if (resultColumnInfo == null) { + String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:"; + msg = msg + " localColumnDbName=" + localColumnDbName + + " localReferrerColumnInfoMap=" + + localReferrerColumnInfoMap; + throw new IllegalArgumentException(msg); + } + return resultColumnInfo; + } + + //========================================================================== + // ========= + // Builder + // ======= + public String buildInitCapPropertyName() { + return initCap(this.referrerPropertyName); + } + + //========================================================================== + // ========= + // Finder + // ====== + public java.lang.reflect.Method findSetter() { + return findMethod(localDBMeta.getEntityType(), "set" + + buildInitCapPropertyName(), + new Class[] { java.util.List.class }); + } + + public java.lang.reflect.Method findGetter() { + return findMethod(localDBMeta.getEntityType(), "get" + + buildInitCapPropertyName(), new Class[] {}); + } + + //========================================================================== + // ========= + // Implement + // ========= + public String getRelationPropertyName() { + return getReferrerPropertyName(); + } + + public DBMeta getTargetDBMeta() { + return getReferrerDBMeta(); + } + + public java.util.Map getLocalTargetColumnInfoMap() { + return getLocalReferrerColumnInfoMap(); + } + + public boolean isReferrer() { + return true; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getReferrerPropertyName() { + return referrerPropertyName; + } + + public void setReferrerPropertyName(String referrerPropertyName) { + this.referrerPropertyName = referrerPropertyName; + } + + public DBMeta getLocalDBMeta() { + return localDBMeta; + } + + public void setLocalDBMeta(DBMeta localDBMeta) { + this.localDBMeta = localDBMeta; + } + + public DBMeta getReferrerDBMeta() { + return referrerDBMeta; + } + + public void setReferrerDBMeta(DBMeta referrerDBMeta) { + this.referrerDBMeta = referrerDBMeta; + } + + public java.util.Map getLocalReferrerColumnInfoMap() { + return localReferrerColumnInfoMap; + } + + public void setLocalReferrerColumnInfoMap( + java.util.Map localReferrerColumnInfoMap) { + this.localReferrerColumnInfoMap = localReferrerColumnInfoMap; + final java.util.Set keySet = localReferrerColumnInfoMap.keySet(); + referrerLocalColumnInfoMap = new java.util.LinkedHashMap(); + for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext();) { + final ColumnInfo key = (ColumnInfo) ite.next(); + final ColumnInfo value = (ColumnInfo) localReferrerColumnInfoMap + .get(key); + referrerLocalColumnInfoMap.put(value, key); + } + } + + public java.util.Map getReferrerLocalColumnInfoMap() { + return referrerLocalColumnInfoMap; + } + + public boolean isOneToOne() { + return oneToOne; + } + + public void setOneToOne(boolean oneToOne) { + this.oneToOne = oneToOne; + } + + //========================================================================== + // ========= + // Internal Helper + // =============== + protected String initCap(final String name) { + return name.substring(0, 1).toUpperCase() + name.substring(1); + } + + protected java.lang.reflect.Method findMethod(Class clazz, + String methodName, Class[] argTypes) { + try { + return clazz.getMethod(methodName, argTypes); + } catch (NoSuchMethodException ex) { + String msg = "class=" + clazz + " method=" + methodName + "-" + + java.util.Arrays.asList(argTypes); + throw new RuntimeException(msg, ex); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/ReferrerInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/RelationInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/RelationInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/RelationInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,24 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.info; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +/** + * The class of referer information. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RelationInfo { + + public String getRelationPropertyName(); + + public DBMeta getLocalDBMeta(); + + public DBMeta getTargetDBMeta(); + + public java.util.Map getLocalTargetColumnInfoMap(); + + public boolean isOneToOne(); + + public boolean isReferrer(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/RelationInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/UniqueInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/UniqueInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/UniqueInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,77 @@ +package jp.sf.pal.scheduler.db.allcommon.dbmeta.info; + +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +/** + * The class of unique info. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UniqueInfo { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta dbmeta; + + protected java.util.List uniqueColumnList = new java.util.ArrayList(); + + protected boolean primary; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public boolean containsColumn(String columnName) { + for (final java.util.Iterator ite = uniqueColumnList.iterator(); ite + .hasNext();) { + final ColumnInfo columnInfo = (ColumnInfo) ite.next(); + if (columnInfo.getColumnDbName().equals(columnName)) { + return true; + } + } + return false; + } + + public boolean containsColumn(ColumnInfo column) { + return containsColumn(column.getColumnDbName()); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DBMeta getDBMeta() { + return dbmeta; + } + + public void setDBMeta(DBMeta dbmeta) { + this.dbmeta = dbmeta; + } + + public java.util.List getUniqueColumnList() { + return uniqueColumnList; + } + + public void addUniqueColumnList(ColumnInfo uniqueColumn) { + this.uniqueColumnList.add(uniqueColumn); + } + + public ColumnInfo getFirstColumn() { + return (ColumnInfo) this.uniqueColumnList.get(0); + } + + public boolean isTwoOrMore() { + return this.uniqueColumnList.size() > 1; + } + + public boolean isPrimary() { + return this.primary; + } + + public void setPrimary(boolean primary) { + this.primary = primary; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/info/UniqueInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the entity has already been updated by other thread in + * batch update. + * + * @author DBFlute(AutoGenerator) + */ +public class BatchEntityAlreadyUpdatedException extends + EntityAlreadyUpdatedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Attribute + // ========= + protected Integer _batchUpdateCount; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows(Update count per One entity). + * @param batchUpdateCount Batch update count(Total). + */ + public BatchEntityAlreadyUpdatedException(Object bean, int rows, + Integer batchUpdateCount) { + super(bean, rows); + _batchUpdateCount = batchUpdateCount; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Integer getBatchUpdateCount() { + return _batchUpdateCount; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BatchEntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,34 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the property on bind variable comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public BindVariableCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableParameterNullValueException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableParameterNullValueException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableParameterNullValueException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the value of bind variable is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class BindVariableParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public BindVariableParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/BindVariableParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/DangerousResultSizeException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/DangerousResultSizeException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/DangerousResultSizeException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,36 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the result size is dangerous. + * + * @author DBFlute(AutoGenerator) + */ +public class DangerousResultSizeException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Safety max result size. */ + protected int _safetyMaxResultSize; + + /** + * Constructor. + * + * @param msg Exception message. + * @param safetyMaxResultSize Safety max result size. + * @param selectedCount Selected count. + */ + public DangerousResultSizeException(String msg, int safetyMaxResultSize) { + super(msg); + this._safetyMaxResultSize = safetyMaxResultSize; + } + + /** + * Get safety max result size. + * + * @return Safety max result size. + */ + public int getSafetyMaxResultSize() { + return _safetyMaxResultSize; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/DangerousResultSizeException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,34 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the property on embedded value comment is not found + * about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueCommentNotFoundPropertyException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public EmbeddedValueCommentNotFoundPropertyException(String msg, + Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueCommentNotFoundPropertyException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueParameterNullValueException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueParameterNullValueException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueParameterNullValueException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the value of embedded value is null about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EmbeddedValueParameterNullValueException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EmbeddedValueParameterNullValueException(String msg) { + super(msg); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EmbeddedValueParameterNullValueException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EndCommentNotFoundException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EndCommentNotFoundException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EndCommentNotFoundException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the end comment is not found about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class EndCommentNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public EndCommentNotFoundException(String msg) { + super(msg); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EndCommentNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyDeletedException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyDeletedException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyDeletedException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,22 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the entity has already been deleted by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyDeletedException extends + RecordHasAlreadyBeenDeletedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityAlreadyDeletedException(String msg) { + super(msg); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyExistsException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyExistsException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyExistsException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,25 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the entity already exists on the database. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyExistsException extends SQLFailureException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public EntityAlreadyExistsException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyExistsException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyUpdatedException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyUpdatedException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyUpdatedException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,38 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; + +/** + * The exception of when the entity has already been updated by other thread. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityAlreadyUpdatedException extends + NotSingleRowUpdatedRuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param bean Bean. (NotNull) + * @param rows Rows. + */ + public EntityAlreadyUpdatedException(Object bean, int rows) { + super(bean, rows); + } + + /** + * Constructor. + * + * @param e NotSingleRowUpdatedRuntimeException. (NotNull) + */ + public EntityAlreadyUpdatedException(NotSingleRowUpdatedRuntimeException e) { + super(e.getBean(), e.getRows()); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityAlreadyUpdatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityDuplicatedException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityDuplicatedException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityDuplicatedException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the entity has been duplicated. + * + * @author DBFlute(AutoGenerator) + */ +public class EntityDuplicatedException extends RecordHasOverlappedException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public EntityDuplicatedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public EntityDuplicatedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/EntityDuplicatedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentConditionNotFoundException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentConditionNotFoundException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentConditionNotFoundException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,23 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the condition of IF comment is not found about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentConditionNotFoundException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentConditionNotFoundException(String msg) { + super(msg); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentConditionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentNotBooleanResultException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentNotBooleanResultException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentNotBooleanResultException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,33 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the result of IF comment is not boolean about + * outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentNotBooleanResultException extends + IfCommentWrongExpressionException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentNotBooleanResultException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentNotBooleanResultException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentNotBooleanResultException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentWrongExpressionException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentWrongExpressionException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentWrongExpressionException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the IF comment has a wrong expression about outsideSql. + * + * @author DBFlute(AutoGenerator) + */ +public class IfCommentWrongExpressionException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + */ + public IfCommentWrongExpressionException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause Throwable. + */ + public IfCommentWrongExpressionException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/IfCommentWrongExpressionException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/OutsideSqlNotFoundException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/OutsideSqlNotFoundException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/OutsideSqlNotFoundException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the outside-sql is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class OutsideSqlNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public OutsideSqlNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public OutsideSqlNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/OutsideSqlNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,22 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception when the record has already been deleted (by other thread).
    This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasAlreadyBeenDeletedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasAlreadyBeenDeletedException(String msg) { + super(msg); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasAlreadyBeenDeletedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasOverlappedException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasOverlappedException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasOverlappedException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception when the record has overlapped. This class is old. + * + * @author DBFlute(AutoGenerator) + */ +public class RecordHasOverlappedException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RecordHasOverlappedException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RecordHasOverlappedException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RecordHasOverlappedException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RequiredOptionNotFoundException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RequiredOptionNotFoundException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RequiredOptionNotFoundException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +/** + * The exception of when the required option is not found. + * + * @author DBFlute(AutoGenerator) + */ +public class RequiredOptionNotFoundException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** + * Constructor. + * + * @param msg Exception message. + */ + public RequiredOptionNotFoundException(String msg) { + super(msg); + } + + /** + * Constructor. + * + * @param msg Exception message. + * @param cause Throwable. + */ + public RequiredOptionNotFoundException(String msg, Throwable cause) { + super(msg, cause); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/RequiredOptionNotFoundException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/SQLFailureException.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/SQLFailureException.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/SQLFailureException.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.allcommon.exception; + +import java.sql.SQLException; + +/** + * The exception of when the SQL failed to execute. + * + * @author DBFlute(AutoGenerator) + */ +public class SQLFailureException extends RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + protected SQLException sqlEx; + + /** + * Constructor. + * + * @param msg Exception message. (NotNull) + * @param cause SQLException. (NotNull) + */ + public SQLFailureException(String msg, SQLException cause) { + super(msg, cause); + sqlEx = cause; + } + + public SQLException getSQLException() { + return sqlEx; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/exception/SQLFailureException.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListString.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListString.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListString.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,105 @@ +package jp.sf.pal.scheduler.db.allcommon.helper; + +import java.util.List; +import java.util.Map; + +/** + * MapList-String. + *

    + * + *

    + * # Interface that offers generation of map and list from the following character strings (map list string). 
    + * # 
    + * #   ex) map:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #   ex) list:{key1=value1,key2=list:{value21,value22,value23},key3=map:{key31=value31}}
    + * #
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public interface MapListString { + + /** Default of map-mark. */ + public static final String DEFAULT_MAP_MARK = "map:"; + + /** Default of list-mark. */ + public static final String DEFAULT_LIST_MARK = "list:"; + + /** Default of start-brace. */ + public static final String DEFAULT_START_BRACE = "{"; + + /** Default of end-brace. */ + public static final String DEFAULT_END_BRACE = "}"; + + /** Default of delimter. */ + public static final String DEFAULT_DELIMITER = ";"; + + /** Default of equal. */ + public static final String DEFAULT_EQUAL = "="; + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map-mark. (NotNull) + */ + public void setMapMark(String mapMark); + + /** + * Set list-mark. + * + * @param listMark List-mark. (NotNull) + */ + public void setListMark(String listMark); + + /** + * Set start brace. + * + * @param startBrace Start brace. (NotNull) + */ + public void setStartBrace(String startBrace); + + /** + * Set end brace. + * + * @param endBrace End brace. (NotNull) + */ + public void setEndBrace(String endBrace); + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public void setDelimiter(String delimiter); + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal); + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public Map generateMap(String mapString); + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public List generateList(String listString); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListString.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListStringImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListStringImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListStringImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1079 @@ +package jp.sf.pal.scheduler.db.allcommon.helper; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * The implementation of MapList-String. + * + * @author DBFlute(AutoGenerator) + */ +public class MapListStringImpl implements MapListString { + + /** Line separator. */ + public static final String NEW_LINE = System.getProperty("line.separator"); + + /** Map-mark. */ + protected String _mapMark; + + /** List-mark. */ + protected String _listMark; + + /** Start-brace. */ + protected String _startBrace; + + /** End-brace. */ + protected String _endBrace; + + /** Delimiter. */ + protected String _delimiter; + + /** Equal. */ + protected String _equal; + + /** Top string. */ + protected String _topString; + + /** Remainder string. */ + protected String _remainderString; + + /** + * Constructor. + */ + public MapListStringImpl() { + _mapMark = DEFAULT_MAP_MARK; + _listMark = DEFAULT_LIST_MARK; + _startBrace = DEFAULT_START_BRACE; + _endBrace = DEFAULT_END_BRACE; + _delimiter = DEFAULT_DELIMITER; + _equal = DEFAULT_EQUAL; + } + + //========================================================================== + // ================ + // Setter + // ====== + /** + * Set map-mark. + * + * @param mapMark Map mark. (NotNull) + */ + public void setMapMark(String mapMark) { + _mapMark = mapMark; + } + + /** + * Set list-mark. + * + * @param listMark List mark. (NotNull) + */ + public void setListMark(String listMark) { + _listMark = listMark; + } + + /** + * Set start-brace. + * + * @param startBrace Start-brace. (NotNull) + */ + public synchronized void setStartBrace(String startBrace) { + _startBrace = startBrace; + } + + /** + * Set end-brace. + * + * @param endBrace End-brace. (NotNull) + */ + public synchronized void setEndBrace(String endBrace) { + _endBrace = endBrace; + } + + /** + * Set delimiter. + * + * @param delimiter Delimiter. (NotNull) + */ + public synchronized void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + /** + * Set equal. + * + * @param equal Equal. (NotNull) + */ + public void setEqual(String equal) { + _equal = equal; + } + + //************************************************************************** + // ************************** + // Main Method + // *********** + + //========================================================================== + // ================ + // Generate + // ======== + /** + * Generate map from map-string. {Implement} + * + * @param mapString Map-string (NotNull) + * @return Generated map. (NotNull) + */ + public synchronized Map generateMap(String mapString) { + assertMapString(mapString); + + _topString = mapString; + _remainderString = mapString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixMapMarkAndStartBrace(); + + final Map generatedMap = newStringObjectMap(); + parseRemainderMapString(generatedMap); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # generatedMap --> " + + generatedMap; + throw new IllegalStateException(msg); + } + return generatedMap; + } + + /** + * Generate map from list-string. {Implement} + * + * @param listString List-string (NotNull) + * @return Generated list. (NotNull) + */ + public synchronized List generateList(String listString) { + assertListString(listString); + + _topString = listString; + _remainderString = listString; + + removeBothSideSpaceAndTabAndNewLine(); + removePrefixListMarkAndStartBrace(); + + final List generatedList = newObjectList(); + parseRemainderListString(generatedList); + if (!"".equals(_remainderString)) { + String msg = "Final remainderString must be empty string:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # generatedList --> " + + generatedList; + throw new IllegalStateException(msg); + } + return generatedList; + } + + //========================================================================== + // ================ + // Parse + // ===== + /** + * Parse remainder map string. + * + * @param currentMap current map. + */ + protected void parseRemainderMapString(final Map currentMap) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the key of the map. + // *** + + final int equalIndex = _remainderString.indexOf(_equal); + assertEqualIndex(_remainderString, equalIndex, _topString, + currentMap); + final String mapKey = _remainderString.substring(0, equalIndex) + .trim(); + removePrefixTargetIndexPlus(equalIndex, _equal.length()); + removeBothSideSpaceAndTabAndNewLine(); + + // *** Now, _remainderString should starts with the value of the + // map. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentMap, mapKey)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBracekIndex(_remainderString, endBraceIndex, _topString, + currentMap); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1,key2=value2} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String mapValue = _remainderString.substring(0, + delimiterIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Because the map element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes map value. + // ex) value1}, key2=value2} + final String mapValue = _remainderString + .substring(0, endBraceIndex); + currentMap.put(mapKey, filterMapListValue(mapValue)); + + // Analyzing map is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Parse remainder list string. + * + * @param currentList current list. + */ + protected void parseRemainderListString(final List currentList) { + while (true) { + if (initializeAtLoopBeginning()) { + return; + } + + // *** Now, _remainderString should starts with the value of the + // list. *** + + if (isStartsWithMapPrefix(_remainderString)) { + removePrefixMapMarkAndStartBrace(); + parseRemainderMapString(setupNestMap(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + if (isStartsWithListPrefix(_remainderString)) { + removePrefixListMarkAndStartBrace(); + parseRemainderListString(setupNestList(currentList)); + if (closingAfterParseNestMapList()) { + return; + } + continue; + } + + final int delimiterIndex = _remainderString.indexOf(_delimiter); + final int endBraceIndex = _remainderString.indexOf(_endBrace); + assertEndBraceIndex(_remainderString, endBraceIndex, _topString, + currentList); + + // If delimiter exists and delimiter is closer than end brace, + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1,value2,value3} + if (delimiterIndex >= 0 && delimiterIndex < endBraceIndex) { + final String listValue = _remainderString.substring(0, + delimiterIndex); + currentList.add(filterMapListValue(listValue)); + + // Because the list element continues since the delimiter, skip + // the delimiter and continue the loop. + removePrefixTargetIndexPlus(delimiterIndex, _delimiter.length()); + continue; + } + + // Everything from the head of the present remainder string to the + // delimiter becomes list value. + // ex) value1}, value2, } + final String listValue = _remainderString.substring(0, + endBraceIndex); + currentList.add(filterMapListValue(listValue)); + + // Analyzing list is over. So closing and return. + closingByEndBraceIndex(endBraceIndex); + return; + } + } + + /** + * Initialize at loop beginning. + * + * @return Is return? + */ + protected boolean initializeAtLoopBeginning() { + // Remove prefix delimiter. (Result string is always trimmed.) + removePrefixAllDelimiter(); + + // If the remainder string is empty-string, Analyzing is over! + if (_remainderString.equals("")) { + return true; + } + + // If the remainder string starts with end-brace, Analyzing current map + // is over! + // And then remove the end-brace. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close after parse nest map list. + * + * @return Is return? + */ + protected boolean closingAfterParseNestMapList() { + // If the remainder string starts with end-brace, remove it and return + // true. + if (isStartsWithEndBrace(_remainderString)) { + removePrefixEndBrace(); + return true; + } + return false; + } + + /** + * Close by end-brace index. + * + * @param endBraceIndex End-brace index. + */ + protected void closingByEndBraceIndex(int endBraceIndex) { + // Remove the value that was finished analyzing and end-brace. + _remainderString = _remainderString.substring(endBraceIndex); + removePrefixEndBrace(); + } + + //************************************************************************** + // ************************** + // StateFul Method + // *************** + + //========================================================================== + // ================ + // Remove + // ====== + /** + * Remove prefix map-mark and start-brace. + */ + protected void removePrefixMapMarkAndStartBrace() { + removePrefix(_mapMark + _startBrace); + } + + /** + * Remove prefix list-mark and start-brace. + */ + protected void removePrefixListMarkAndStartBrace() { + removePrefix(_listMark + _startBrace); + } + + /** + * Remove prefix delimiter. + */ + protected void removePrefixDelimiter() { + removePrefix(_delimiter); + } + + /** + * Remove prefix end-brace. + */ + protected void removePrefixEndBrace() { + removePrefix(_endBrace); + } + + /** + * Remove prefix. + * + * @param prefixString Prefix string. (NotNull) + */ + protected void removePrefix(String prefixString) { + if (_remainderString == null) { + String msg = "Argument[remainderString] must not be null: " + + _remainderString; + throw new IllegalArgumentException(msg); + } + if (prefixString == null) { + String msg = "Argument[prefixString] must not be null: " + + prefixString; + throw new IllegalArgumentException(msg); + } + + removeBothSideSpaceAndTabAndNewLine(); + + if (_remainderString.length() < prefixString.length()) { + String msg = "Argument[remainderString] length must be larger than Argument[prefixString] length:"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString=" + + prefixString; + throw new IllegalArgumentException(msg); + } + if (!_remainderString.startsWith(prefixString)) { + String msg = "Argument[remainderString] must start with Argument[prefixString:]"; + msg = msg + getNewLineAndIndent() + " # remainderString --> " + + _remainderString; + msg = msg + getNewLineAndIndent() + " # prefixString --> " + + prefixString; + throw new IllegalArgumentException(msg); + } + + _remainderString = _remainderString.substring(prefixString.length()); + removeBothSideSpaceAndTabAndNewLine(); + } + + /** + * Remove prefix and delimiter. + */ + protected void removePrefixAllDelimiter() { + removeBothSideSpaceAndTabAndNewLine(); + + while (true) { + if (!isStartsWithDelimiter(_remainderString)) { + break; + } + + if (isStartsWithDelimiter(_remainderString)) { + removePrefixDelimiter(); + removeBothSideSpaceAndTabAndNewLine(); + } + } + } + + /** + * Remove both side space and tab and new-line. + */ + protected void removeBothSideSpaceAndTabAndNewLine() { + _remainderString = _remainderString.trim(); + } + + /** + * Remove prefix (target index plus one). + * + * @param index Index. + * @param plusCount Plus count. + */ + protected void removePrefixTargetIndexPlus(int index, int plusCount) { + _remainderString = _remainderString.substring(index + plusCount); + } + + //************************************************************************** + // ************************** + // StateLess Method + // **************** + + //========================================================================== + // ================ + // Assert + // ====== + /** + * Assert map-string. + * + * @param mapString Map-string. (NotNull) + */ + protected void assertMapString(String mapString) { + if (mapString == null) { + String msg = "Argument[mapString] must not be null: "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + mapString = mapString.trim(); + if (!isStartsWithMapPrefix(mapString)) { + String msg = "Argument[mapString] must start with '" + _mapMark + + _startBrace + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + if (!isEndsWithEndBrace(mapString)) { + String msg = "Argument[mapString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "mapString=" + mapString); + } + + final int startBraceCount = getDelimiterCount(mapString, _startBrace); + final int endBraceCount = getDelimiterCount(mapString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # mapString --> " + mapString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert list-string. + * + * @param listString List-string. (NotNull) + */ + protected void assertListString(String listString) { + if (listString == null) { + String msg = "Argument[listString] must not be null: "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + listString = listString.trim(); + if (!isStartsWithListPrefix(listString)) { + String msg = "Argument[listString] must start with '" + _mapMark + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + if (!isEndsWithEndBrace(listString)) { + String msg = "Argument[listString] must end with '" + _endBrace + + "': "; + throw new IllegalArgumentException(msg + "listString=" + listString); + } + + final int startBraceCount = getDelimiterCount(listString, _startBrace); + final int endBraceCount = getDelimiterCount(listString, _endBrace); + if (startBraceCount != endBraceCount) { + String msg = "It is necessary to have braces of the same number on start and end:"; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString; + msg = msg + getNewLineAndIndent() + " # startBraceCount --> " + + startBraceCount; + msg = msg + getNewLineAndIndent() + " # endBraceCount --> " + + endBraceCount; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert equal-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param equalIndex Equal-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEqualIndex(String remainderMapString, int equalIndex, + String mapString4Log, Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (equalIndex < 0) { + String msg = "Argument[equalIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < equalIndex) { + String msg = "Argument[remainderMapString] length must be larger than equalIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # mapString4Log --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap4Log --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + equalIndex, equalIndex + _equal.length()); + if (!expectedAsEndMark.equals(_equal)) { + String msg = "Argument[remainderMapString] must have '" + _equal + + "' at Argument[equalIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # equalIndex --> " + + equalIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderMapString Remainder map-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param mapString4Log Map-string for log. (NotNull) + * @param currentMap4Log Current-map for log. (NotNull) + */ + protected void assertEndBracekIndex(String remainderMapString, + int endBraceIndex, String mapString4Log, + Map currentMap4Log) { + if (remainderMapString == null) { + String msg = "Argument[remainderMapString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> =" + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderMapString.length() < endBraceIndex) { + String msg = "Argument[remainderMapString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndMark = remainderMapString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndMark.equals(_endBrace)) { + String msg = "Argument[remainderMapString] must have '" + _endBrace + + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderMapString --> " + + remainderMapString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndMark --> " + + expectedAsEndMark; + msg = msg + getNewLineAndIndent() + " # mapString --> " + + mapString4Log; + msg = msg + getNewLineAndIndent() + " # currentMap --> " + + currentMap4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert end-brace-index. + * + * @param remainderListString Remainder list-string. (NotNull) + * @param endBraceIndex End-brace-index. + * @param listString4Log List-string for log. (NotNull) + * @param currentList4Log Current-list for log. (NotNull) + */ + protected void assertEndBraceIndex(String remainderListString, + int endBraceIndex, String listString4Log, List currentList4Log) { + if (remainderListString == null) { + String msg = "Argument[remainderListString] must not be null:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (endBraceIndex < 0) { + String msg = "Argument[endMarkIndex] must be plus or zero:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + if (remainderListString.length() < endBraceIndex) { + String msg = "Argument[remainderListString] length must be larger than endMarkIndex value:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + + final String expectedAsEndBrace = remainderListString.substring( + endBraceIndex, endBraceIndex + _endBrace.length()); + if (!expectedAsEndBrace.equals(_endBrace)) { + String msg = "Argument[remainderListString] must have '" + + _endBrace + "' at Argument[endBraceIndex]:"; + msg = msg + getNewLineAndIndent() + " # remainderListString --> " + + remainderListString; + msg = msg + getNewLineAndIndent() + " # endBraceIndex --> " + + endBraceIndex; + msg = msg + getNewLineAndIndent() + " # expectedAsEndBrace --> " + + expectedAsEndBrace; + msg = msg + getNewLineAndIndent() + " # listString --> " + + listString4Log; + msg = msg + getNewLineAndIndent() + " # currentList --> " + + currentList4Log; + msg = msg + getNewLineAndIndent() + " # _startBrace --> " + + _startBrace; + msg = msg + getNewLineAndIndent() + " # _endBrace --> " + _endBrace; + msg = msg + getNewLineAndIndent() + " # _delimiter --> " + + _delimiter; + msg = msg + getNewLineAndIndent() + " # _equal --> " + _equal; + throw new IllegalArgumentException(msg); + } + } + + //========================================================================== + // ================ + // Filter + // ====== + /** + * Filter map or list value. + *

    + * + *

    +     * # The value is trimmed.
    +     * # If the value is null, this returns null.
    +     * # If the value is 'null', this returns null.
    +     * # If the trimmed value is empty string, this returns null.
    +     * 
    + * + * @param value value. (Nullable) + * @return Filtered value. (Nullable) + */ + protected String filterMapListValue(String value) { + if (value == null) { + return null; + } + value = value.trim(); + return (("".equals(value) || "null".equals(value)) ? null : value); + } + + //========================================================================== + // ================ + // Judgement + // ========= + /** + * Does it start with map-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithMapPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_mapMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with list-prefix? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithListPrefix(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_listMark + _startBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with delimiter? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithDelimiter(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_delimiter)) { + return true; + } else { + return false; + } + } + + /** + * Does it start with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isStartsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.startsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + /** + * Does it end with end-brace? + * + * @param targetString Target-string. (NotNull) + * @return Determination. + */ + protected boolean isEndsWithEndBrace(String targetString) { + if (targetString == null) { + String msg = "Argument[targetString] must not be null: " + + targetString; + throw new IllegalArgumentException(msg); + } + targetString = targetString.trim(); + if (targetString.endsWith(_endBrace)) { + return true; + } else { + return false; + } + } + + //========================================================================== + // ================ + // Other + // ===== + /** + * Setup nest map. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(Map currentMap, + String mapKey) { + final Map nestMap = newStringObjectMap(); + currentMap.put(mapKey, nestMap); + return nestMap; + } + + /** + * Setup nest map. + * + * @param currentList Current-list. (NotNull) + * @return Nest map. (NotNull) + */ + protected Map setupNestMap(List currentList) { + final Map nestMap = newStringObjectMap(); + currentList.add(nestMap); + return nestMap; + } + + /** + * Setup nest list. + * + * @param currentMap Current-map. (NotNull) + * @param mapKey Map-key. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(Map currentMap, + String mapKey) { + final List nestList = newObjectList(); + currentMap.put(mapKey, nestList); + return nestList; + } + + /** + * Setup nest list. + * + * @param currentList Current-list. (NotNull) + * @return Nest list. (NotNull) + */ + protected List setupNestList(List currentList) { + final List nestList = newObjectList(); + currentList.add(nestList); + return nestList; + } + + /** + * New string-object-map. + * + * @return String-object-map. (NotNull) + */ + protected Map newStringObjectMap() { + return new LinkedHashMap(); + } + + /** + * New object-list. + * + * @return String-object-list. (NotNull) + */ + protected List newObjectList() { + return new ArrayList(); + } + + /** + * Get new-line and indent. + * + * @return New-line and indent. (NotNull) + */ + protected String getNewLineAndIndent() { + return NEW_LINE + " "; + } + + /** + * Get count that target string exist in the base string. + * + * @param targetString Target string. + * @param delimiter Delimiter + * @return Delimiter count that _remainderString contains. + */ + protected int getDelimiterCount(String targetString, String delimiter) { + int result = 0; + for (int i = 0;;) { + if (targetString.indexOf(delimiter, i) != -1) { + result++; + i = targetString.indexOf(delimiter, i) + 1; + } else { + break; + } + } + if (result == 0) { + result = -1; + } + return result; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapListStringImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilder.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilder.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilder.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,78 @@ +package jp.sf.pal.scheduler.db.allcommon.helper; + +/** + * The interface of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public interface MapStringBuilder { + + //========================================================================== + // =========== + // Setter + // ====== + public void setColumnNames(String[] columnNames); + + public void setColumnNameList(java.util.List columnNameList); + + public void setMsMapMark(String value); + + public void setMsStartBrace(String value); + + public void setMsEndBrace(String value); + + public void setMsDelimiter(String value); + + public void setMsEqual(String value); + + //========================================================================== + // =========== + // Main + // ==== + public String buildByDelimiter(String values, String delimiter); + + public String buildFromList(java.util.List valueList); + + //========================================================================== + // =========== + // Exception Static Class + // ====================== + public static class DifferentDelimiterCountException extends + RuntimeException { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + //====================================================================== + // =============== + // Attribute + // ========= + protected java.util.List _columnNameList; + + protected java.util.List _valueList; + + //====================================================================== + // =============== + // Constructor + // =========== + public DifferentDelimiterCountException(String msg, + java.util.List columnNameList, + java.util.List valueList) { + super(msg); + _columnNameList = columnNameList; + _valueList = valueList; + } + + //====================================================================== + // =============== + // Accessor + // ======== + public java.util.List getColumnNameList() { + return _columnNameList; + } + + public java.util.List getValueList() { + return _valueList; + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilder.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilderImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilderImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilderImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,183 @@ +package jp.sf.pal.scheduler.db.allcommon.helper; + +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * The implementation of map-string-builder. + * + * @author DBFlute(AutoGenerator) + */ +public class MapStringBuilderImpl implements MapStringBuilder { + + protected java.util.List _columnNameList; + + protected String _msMapMark; + + protected String _msStartBrace; + + protected String _msEndBrace; + + protected String _msDelimiter; + + protected String _msEqual; + + protected boolean _trimDoubleQuotation; + + public void setColumnNames(String[] columnNames) { + _columnNameList = java.util.Arrays.asList(columnNames); + } + + public void setColumnNameList(java.util.List columnNameList) { + _columnNameList = columnNameList; + } + + public void setMsMapMark(String value) { + _msMapMark = value; + } + + public void setMsStartBrace(String value) { + _msStartBrace = value; + } + + public void setMsEndBrace(String value) { + _msEndBrace = value; + } + + public void setMsDelimiter(String value) { + _msDelimiter = value; + } + + public void setMsEqual(String value) { + _msEqual = value; + } + + public void trimDoubleQuotation() { + _trimDoubleQuotation = true; + } + + public String buildByDelimiter(String values, String delimiter) { + if (values == null) { + String msg = "The argument[values] should not be null."; + throw new IllegalArgumentException(msg); + } + if (delimiter == null) { + String msg = "The argument[delimiter] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + + final java.util.List valueList = tokenize(values, delimiter); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + public String buildFromList(java.util.List valueList) { + if (valueList == null) { + String msg = "The argument[valueList] should not be null."; + throw new IllegalArgumentException(msg); + } + assertStringComponent(); + assertColumnValueList(_columnNameList, valueList); + + final StringBuffer sb = new StringBuffer(); + sb.append(_msMapMark).append(_msStartBrace); + for (int i = 0; i < _columnNameList.size(); i++) { + sb.append(_columnNameList.get(i)).append(_msEqual).append( + valueList.get(i)).append(_msDelimiter); + } + + sb.delete(sb.length() - _msDelimiter.length(), sb.length()); + sb.append(_msEndBrace); + return sb.toString(); + } + + protected java.util.List tokenize(String value, String delimiter) { + final LineToken lineToken = new LineTokenImpl(); + final LineTokenizingOption lineTokenizingOption = new LineTokenizingOption(); + lineTokenizingOption.setDelimiter(delimiter); + if (_trimDoubleQuotation) { + lineTokenizingOption.trimDoubleQuotation(); + } + return lineToken.tokenize(value, lineTokenizingOption); + } + + protected void assertStringComponent() { + if (_columnNameList == null) { + String msg = "The columnNameList should not be null."; + throw new IllegalStateException(msg); + } + if (_columnNameList.isEmpty()) { + String msg = "The columnNameList should not be empty."; + throw new IllegalStateException(msg); + } + if (_msMapMark == null) { + String msg = "The msMapMark should not be null."; + throw new IllegalStateException(msg); + } + if (_msStartBrace == null) { + String msg = "The msStartBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msEndBrace == null) { + String msg = "The msEndBrace should not be null."; + throw new IllegalStateException(msg); + } + if (_msDelimiter == null) { + String msg = "The msDelimiter should not be null."; + throw new IllegalStateException(msg); + } + if (_msEqual == null) { + String msg = "The msEqual should not be null."; + throw new IllegalStateException(msg); + } + } + + protected void assertColumnValueList(java.util.List columnNameList, + java.util.List valueList) { + if (columnNameList.size() != valueList.size()) { + String msg = "The length of columnNameList and valueList are difference. (" + + columnNameList.size() + ", " + valueList.size() + ")"; + msg = msg + " columnNameList=" + columnNameList; + msg = msg + " valueList=" + valueList; + throw new DifferentDelimiterCountException(msg, columnNameList, + valueList); + } + } + + protected static final String replace(String text, String fromText, + String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + final StringBuffer buf = new StringBuffer(100); + int pos = 0; + int pos2 = 0; + while (true) { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + buf.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + buf.append(text.substring(pos2, pos)); + buf.append(toText); + pos2 = pos + fromText.length(); + } else { + buf.append(text.substring(pos2)); + break; + } + } + return buf.toString(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/MapStringBuilderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/GeneralCharacter.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/GeneralCharacter.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/GeneralCharacter.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.character; + +/** + * The interface of general character. + * + * @author DBFlute(AutoGenerator) + */ +public interface GeneralCharacter { + + public String toSingleByteAlphabet(String s); + + public String toSingleByteNumber(String s); + + public String toSingleByteAlphabetNumber(String target); + + public String toSingleByteAlphabetNumberMark(String target); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/GeneralCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/JapaneseCharacter.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/JapaneseCharacter.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/JapaneseCharacter.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,11 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.character; + +/** + * The interface of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public interface JapaneseCharacter { + + public String toDoubleByteKatakana(String target); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/JapaneseCharacter.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/GeneralCharacterImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/GeneralCharacterImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/GeneralCharacterImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,101 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.character.impl; + +import jp.sf.pal.scheduler.db.allcommon.helper.character.GeneralCharacter; + +/** + * The implementation of general character. + * + * @author DBFlute(AutoGenerator) + */ +public class GeneralCharacterImpl implements GeneralCharacter { + + public String toSingleByteAlphabet(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumber(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + + if (currentChar >= 0xff10 && currentChar <= 0xff19) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff21 && currentChar <= 0xff3a) { + sb.append(toSingleByteCharacter(currentChar)); + } else if (currentChar >= 0xff41 && currentChar <= 0xff5a) { + sb.append(toSingleByteCharacter(currentChar)); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + public String toSingleByteAlphabetNumberMark(String target) { + if (target == null) { + return target; + } + final StringBuffer sb = new StringBuffer(target.length()); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + if (currentChar >= 0xff01 && currentChar <= 0xff5e) { + sb.append(toSingleByteCharacter(currentChar)); + + // It needs to append more mark... + } else if (currentChar == '\u2019' || currentChar == '\u2018' + || currentChar == '\u2032') { + sb.append('\''); + } else if (currentChar == '\u201d' || currentChar == '\u201c' + || currentChar == '\u2033') { + sb.append('\"'); + } else if (currentChar == '\uffe5') { + sb.append('\\'); + } else if (currentChar == '\u2010') { + sb.append('-'); + } else if (currentChar == '\uff5e') { + sb.append('~'); + } else { + sb.append(currentChar); + } + } + return sb.toString(); + } + + protected char toSingleByteCharacter(final char currentChar) { + return (char) (currentChar - 0xfee0); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/GeneralCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,96 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.character.impl; + +import jp.sf.pal.scheduler.db.allcommon.helper.character.JapaneseCharacter; + +/** + * The implementation of Japanese character. + * + * @author DBFlute(AutoGenerator) + */ +public class JapaneseCharacterImpl implements JapaneseCharacter { + + // Double-byte Katakana + protected static final String TABLE_ZENKANA = "\u3002\u300c\u300d\u3001\u30fb\u30f2\u30a1\u30a3\u30a5" + + "\u30a7\u30a9\u30e3\u30e5\u30e7\u30c3\u30fc\u30a2\u30a4" + + "\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5" + + "\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8" + + "\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8" + + "\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f3\u309b\u309c"; + + // (uff71 - uff9d) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA = "\u30a2\u30a4\u30f4\u30a8\u30aa" + + "\u30ac\u30ae\u30b0\u30b2\u30b4" + + "\u30b6\u30b8\u30ba\u30bc\u30be" + + "\u30c0\u30c2\u30c5\u30c7\u30c9" + + "\u30ca\u30cb\u30cc\u30cd\u30ce" + + "\u30d0\u30d3\u30d6\u30d9\u30dc" + + "\u30de\u30df\u30e0\u30e1\u30e2" + + "\u30e4\u30e6\u30e8" + + "\u30e9\u30ea\u30eb\u30ec\u30ed" + "\u30ef\u30f3"; + + // (uff66 - uff6f) + protected static final String DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA = "\u30fa\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7"; + + // (u30cf - u30dd) + protected static final String DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA = "\u30d1\u30d4\u30d7\u30da\u30dd"; + + public String toDoubleByteKatakana(String target) { + if (target == null) { + return target; + } + + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < target.length(); i++) { + final char currentChar = target.charAt(i); + final char nextChar; + if (i < target.length() - 1) { + nextChar = target.charAt(i + 1); + } else { + nextChar = ' '; + } + + if (isVoicedSoundKatakana(currentChar, nextChar)) { + if (currentChar >= 0xff66 && currentChar <= 0xff6f) {// Voiced + // sound + // special + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_SPECIAL_KATAKANA + .charAt(currentChar - 0xff66)); + i++; + } else if (currentChar >= 0xff71 && currentChar <= 0xff9d) {// Voiced + // sound + // normal + // Katakana + sb.append(DEF_DOUBLE_BYTE_VOICED_SOUND_NORMAL_KATAKANA + .charAt(currentChar - 0xff71)); + i++; + } + + } else if (isSemiVoicedSoundKatakana(currentChar, nextChar)) { + sb.append(DEF_DOUBLE_BYTE_SEMI_VOICED_SOUND_KATAKANA + .charAt(currentChar - 0xff8a)); + i++; + } else if (currentChar != 0xff9e && currentChar != 0xff9f) { + if (currentChar >= 0xff61 && currentChar <= 0xff9f) { + sb.append(TABLE_ZENKANA.charAt(currentChar - 0xff61)); + } else { + sb.append(currentChar); + } + } + } + return sb.toString(); + } + + protected boolean isVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return ((currentChar >= 0xff66 && currentChar <= 0xff6f) || (currentChar >= 0xff71 && (currentChar <= 0xff9d))) + && (nextChar == 0xff9e); + } + + protected boolean isSemiVoicedSoundKatakana(final char currentChar, + final char nextChar) { + return (currentChar >= 0xff8a && currentChar <= 0xff8e) + && (nextChar == 0xff9f); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/character/impl/JapaneseCharacterImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrder.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrder.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrder.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,20 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface AccordingToOrder { + + /** + * Order the unordered list. + * + * @param option The option of according-to-order. (NotNull) + * @param unorderedList The unordered list. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + void order(List unorderedList, + AccordingToOrderOption option); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrder.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.collection.order; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public interface AccordingToOrderIdExtractor { + + /** + * Extract ID from the element instance. + * + * @param element Element instance. (NotNull) + * @return Extracted ID. (NotNull) + */ + ID_TYPE extractId(ELEMENT_TYPE element); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderIdExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.collection.order; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + * @param The type of element. + * @param The type of ID. + */ +public class AccordingToOrderOption { + + //========================================================================== + // ========= + // Attribute + // ========= + protected List _orderedUniqueIdList; + + protected AccordingToOrderIdExtractor _idExtractor; + + //========================================================================== + // ========= + // Easy-to-Use + // =========== + public void setupOrderedResource(List orderedUniqueIdList, + AccordingToOrderIdExtractor idExtractor) { + setOrderedUniqueIdList(orderedUniqueIdList); + setIdExtractor(idExtractor); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public List getOrderedUniqueIdList() { + return _orderedUniqueIdList; + } + + public void setOrderedUniqueIdList(List orderedUniqueIdList) { + this._orderedUniqueIdList = orderedUniqueIdList; + } + + public AccordingToOrderIdExtractor getIdExtractor() { + return _idExtractor; + } + + public void setIdExtractor( + AccordingToOrderIdExtractor idExtractor) { + _idExtractor = idExtractor; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/AccordingToOrderOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,103 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.collection.order.impl; + +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.helper.collection.order.AccordingToOrder; +import jp.sf.pal.scheduler.db.allcommon.helper.collection.order.AccordingToOrderIdExtractor; +import jp.sf.pal.scheduler.db.allcommon.helper.collection.order.AccordingToOrderOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class AccordingToOrderImpl implements AccordingToOrder { + + //========================================================================== + // ========= + // Main + // ==== + /** + * The implementation. + * + * @param unorderedList The unordered list. (NotNull) + * @param option The option of according-to-order. (NotNull) + * @param The type of element. + * @param The type of ID. + */ + public void order( + final List unorderedList, + final AccordingToOrderOption option) { + assertObjectNotNull("unorderedList", unorderedList); + if (unorderedList.isEmpty()) { + return; + } + assertObjectNotNull("option", option); + final List orderedUniqueIdList = option + .getOrderedUniqueIdList(); + assertObjectNotNull("option.getOrderedUniqueIdList()", + orderedUniqueIdList); + if (orderedUniqueIdList.isEmpty()) { + return; + } + final AccordingToOrderIdExtractor idExtractor = option + .getIdExtractor(); + assertObjectNotNull("option.getIdExtractor()", idExtractor); + + final Map idIndexMap = new LinkedHashMap(); + int index = 0; + for (ID_TYPE id : orderedUniqueIdList) { + if (idIndexMap.containsKey(id)) { + String msg = "The id was duplicated: id=" + id + + " orderedUniqueIdList=" + orderedUniqueIdList; + throw new IllegalStateException(msg); + } + idIndexMap.put(id, index); + ++index; + } + final Comparator comp = new Comparator() { + public int compare(ELEMENT_TYPE o1, ELEMENT_TYPE o2) { + final ID_TYPE id1 = idExtractor.extractId(o1); + final ID_TYPE id2 = idExtractor.extractId(o2); + assertObjectNotNull("id1 of " + o1, id1); + assertObjectNotNull("id2 of " + o2, id2); + final Integer index1 = idIndexMap.get(id1); + final Integer index2 = idIndexMap.get(id2); + if (index1 != null && index2 != null) { + return index1.compareTo(index2); + } + if (index1 == null && index2 == null) { + return 0; + } + return index1 == null ? 1 : -1; + } + }; + Collections.sort(unorderedList, comp); + } + + //========================================================================== + // ========= + // Assert Helper + // ============= + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/collection/order/impl/AccordingToOrderImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractingResource { + + public boolean isTargetElement(String className, String methodName); + + public String filterSimpleClassName(String simpleClassName); + + public boolean isUseAdditionalInfo(); + + public int getStartIndex(); + + public int getLoopSize(); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractingResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,16 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface InvokeNameExtractor { + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameExtractor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameResult.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameResult.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameResult.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,86 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.stacktrace; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameResult { + + //========================================================================== + // ================ + // Attribute + // ========= + protected String _simpleClassName; + + protected String _methodName; + + protected String _invokeName; + + protected int _foundIndex; + + protected int _foundFirstIndex; + + //========================================================================== + // ================ + // Manipulation + // ============ + public int getNextStartIndex() { + return _foundIndex + 1; + } + + public void beEmptyResult() { + _simpleClassName = null; + _invokeName = ""; // As Default + } + + //========================================================================== + // ================ + // Determination + // ============= + public boolean isEmptyResult() { + return _simpleClassName == null; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public String getSimpleClassName() { + return _simpleClassName; + } + + public void setSimpleClassName(String simpleClassName) { + _simpleClassName = simpleClassName; + } + + public String getMethodName() { + return _methodName; + } + + public void setMethodName(String methodName) { + _methodName = methodName; + } + + public String getInvokeName() { + return _invokeName; + } + + public void setInvokeName(String invokeName) { + _invokeName = invokeName; + } + + public int getFoundIndex() { + return _foundIndex; + } + + public void setFoundIndex(int foundIndex) { + _foundIndex = foundIndex; + } + + public int getFoundFirstIndex() { + return _foundFirstIndex; + } + + public void setFoundFirstIndex(int foundFirstIndex) { + _foundFirstIndex = foundFirstIndex; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/InvokeNameResult.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,103 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.impl; + +import jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.InvokeNameExtractor; +import jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.InvokeNameResult; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InvokeNameExtractorImpl implements InvokeNameExtractor { + + //========================================================================== + // ================ + // Attribute + // ========= + protected StackTraceElement[] _stackTrace; + + //========================================================================== + // ================ + // Main + // ==== + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @return Invoke name. (NotNull: If not found, returns empty string.) + */ + public InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource) { + if (_stackTrace == null) { + String msg = "The attribute 'stackTrace' should not be null: resource=" + + resource; + throw new IllegalStateException(msg); + } + String targetSimpleClassName = null; + String targetMethodName = null; + int lineNumber = 0; + int foundIndex = -1; // The minus one means 'Not Found'. + int foundFirstIndex = -1; // The minus one means 'Not Found'. + boolean onTarget = false; + for (int i = resource.getStartIndex(); i < _stackTrace.length; i++) { + final StackTraceElement element = _stackTrace[i]; + if (i > resource.getStartIndex() + resource.getLoopSize()) { + break; + } + final String className = element.getClassName(); + if (className.startsWith("sun.") || className.startsWith("java.")) { + if (onTarget) { + break; + } + continue; + } + final String methodName = element.getMethodName(); + if (resource.isTargetElement(className, methodName)) { + if (methodName.equals("invoke")) { + continue; + } + targetSimpleClassName = className.substring(className + .lastIndexOf(".") + 1); + targetMethodName = methodName; + if (resource.isUseAdditionalInfo()) { + lineNumber = element.getLineNumber(); + } + foundIndex = i; + if (foundFirstIndex == -1) { + foundFirstIndex = i; + } + onTarget = true; + continue; + } + if (onTarget) { + break; + } + } + final InvokeNameResult result = new InvokeNameResult(); + if (targetSimpleClassName == null) { + result.beEmptyResult(); // Not Found! It sets empty result. + return result; + } + final String filteredClassName = resource + .filterSimpleClassName(targetSimpleClassName); + result.setSimpleClassName(resource + .filterSimpleClassName(targetSimpleClassName)); + result.setMethodName(targetMethodName); + if (lineNumber > 0) { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "():" + lineNumber + " --> "); + } else { + result.setInvokeName(filteredClassName + "." + targetMethodName + + "() --> "); + } + result.setFoundIndex(foundIndex); + result.setFoundFirstIndex(foundFirstIndex); + return result; + } + + //========================================================================== + // ================ + // Accessor + // ======== + public void setStackTrace(StackTraceElement[] stackTrace) { + _stackTrace = stackTrace; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/stacktrace/impl/InvokeNameExtractorImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingCallback.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingCallback.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingCallback.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingCallback { + + /** + * Get file-making header information. + * + *
    +     * You should return your row resource for file-making.
    +     * It continues invoking until this method returns null.
    +     * 
    + * + * @return File-making header information. (Nullable) + */ + public FileMakingRowResource getRowResource(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingHeaderInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingHeaderInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingHeaderInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,23 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingHeaderInfo { + + protected List columnNameList = new java.util.ArrayList(); + + public List getColumnNameList() { + return columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this.columnNameList = columnNameList; + } + + public boolean isEmpty() { + return this.columnNameList.isEmpty(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,107 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Encoding. (Required) */ + protected String _encoding; + + /** Delimiter. (Required) */ + protected String _delimiter; + + /** Line separator. (NotRequired) */ + protected String _lineSeparator; + + /** Good bye double quotation. (NotRequired) */ + protected boolean _goodByeDoubleQuotation; + + /** File-making header information. (NotRequired) */ + protected FileMakingHeaderInfo _fileMakingHeaderInfo; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileMakingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileMakingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileMakingOption separateCrLf() { + _lineSeparator = "\r\n"; + return this; + } + + public FileMakingOption separateLf() { + _lineSeparator = "\n"; + return this; + } + + public FileMakingOption goodByeDoubleQuotation() { + _goodByeDoubleQuotation = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getLineSeparator() { + return _lineSeparator; + } + + public void setLineSeparator(String lineSeparator) { + _lineSeparator = lineSeparator; + } + + public boolean isGoodByeDoubleQuotation() { + return _goodByeDoubleQuotation; + } + + public FileMakingHeaderInfo getFileMakingHeaderInfo() { + return _fileMakingHeaderInfo; + } + + public void setFileMakingHeaderInfo( + FileMakingHeaderInfo fileMakingHeaderInfo) { + _fileMakingHeaderInfo = fileMakingHeaderInfo; + } + +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingRowResource.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingRowResource.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingRowResource.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,47 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected java.util.List _valueList; + + protected java.util.LinkedHashMap _nameValueMap; + + //========================================================================== + // =========== + // Accessor + // ======== + public java.util.List getValueList() { + return _valueList; + } + + /** + * Set the list of value. {Priority One} + * + * @param valueList The list of value. (NotNull and NotEmpty) + */ + public void setValueList(java.util.List valueList) { + this._valueList = valueList; + } + + public java.util.LinkedHashMap getNameValueMap() { + return _nameValueMap; + } + + /** + * Set the map of name and value. {Priority Two}
    If valueList is set, + * This nameValueMap is ignored. + * + * @param nameValueMap The map of name and value. (NotNull and NotEmpty) + */ + public void setNameValueMap( + java.util.LinkedHashMap nameValueMap) { + this._nameValueMap = nameValueMap; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingSimpleFacade.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingSimpleFacade.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingSimpleFacade.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileMakingSimpleFacade { + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileMakingSimpleFacade.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileToken.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileToken.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileToken.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,78 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * File-Token. + * + * @author DBFlute(AutoGenerator) + */ +public interface FileToken { + + /** + * Tokenize token-file data of a specified file. + * + * @param filename Input target file name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + * @param filename Output target file name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException; +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingCallback.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingCallback.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingCallback.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,9 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface FileTokenizingCallback { + public void handleRowResource( + FileTokenizingRowResource fileTokenizingRowResource); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingCallback.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +import java.util.List; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingHeaderInfo { + + //========================================================================== + // =========== + // Attribute + // ========= + protected List _columnNameList = new java.util.ArrayList(); + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + protected String _columnNameRowString; + + public boolean isEmpty() { + return this._columnNameList.isEmpty(); + } + + //========================================================================== + // =========== + // Accessor + // ======== + public List getColumnNameList() { + return _columnNameList; + } + + public void setColumnNameList(List columnNameList) { + this._columnNameList = columnNameList; + } + + public String getColumnNameRowString() { + return _columnNameRowString; + } + + public void setColumnNameRowString(String columnNameRowString) { + _columnNameRowString = columnNameRowString; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingHeaderInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,81 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _encoding; + + protected String _delimiter; + + protected boolean _beginFirstLine; + + protected boolean _handleEmptyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public FileTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public FileTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public FileTokenizingOption encodeAsUTF8() { + _encoding = "UTF-8"; + return this; + } + + public FileTokenizingOption encodeAsWindows31J() { + _encoding = "Windows-31J"; + return this; + } + + public FileTokenizingOption beginFirstLine() { + _beginFirstLine = true; + return this; + } + + public FileTokenizingOption handleEmptyAsNull() { + _handleEmptyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public String getEncoding() { + return _encoding; + } + + public void setEncoding(String encoding) { + _encoding = encoding; + } + + public boolean isBeginFirstLine() { + return _beginFirstLine; + } + + public boolean isHandleEmptyAsNull() { + return _handleEmptyAsNull; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingRowResource.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingRowResource.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingRowResource.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,68 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenizingRowResource { + + //========================================================================== + // =========== + // Attribute + // ========= + protected FileTokenizingHeaderInfo fileTokenizingHeaderInfo; + + protected java.util.List valueList; + + protected String rowString; + + /** The row number. */ + protected int _rowNumber; + + /** The line number. */ + protected int _lineNumber; + + //========================================================================== + // =========== + // Accessor + // ======== + public FileTokenizingHeaderInfo getFileTokenizingHeaderInfo() { + return fileTokenizingHeaderInfo; + } + + public void setFirstLineInfo( + FileTokenizingHeaderInfo fileTokenizingHeaderInfo) { + this.fileTokenizingHeaderInfo = fileTokenizingHeaderInfo; + } + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(java.util.List valueList) { + this.valueList = valueList; + } + + public String getRowString() { + return rowString; + } + + public void setRowString(String rowString) { + this.rowString = rowString; + } + + public int getRowNumber() { + return _rowNumber; + } + + public void setRowNumber(int rowNumber) { + _rowNumber = rowNumber; + } + + public int getLineNumber() { + return _lineNumber; + } + + public void setLineNumber(int lineNumber) { + _lineNumber = lineNumber; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/FileTokenizingRowResource.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,85 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file.impl; + +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingSimpleFacade; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileToken; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileMakingSimpleFacadeImpl implements FileMakingSimpleFacade { + + protected FileToken _fileToken = new FileTokenImpl(); + + public void setFileToken(FileToken fileToken) { + this._fileToken = fileToken; + } + + /** + * Make token-file from row-list. + * + * @param filename Output target file name. (NotNull) + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void makeFromRowList(final String filename, + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + _fileToken.make(filename, fileMakingCallback, fileMakingOption); + } + + /** + * Make bytes from row-list. + * + * @param rowList Row-list composed of value-list. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @return Result byte array. (NotNull) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public byte[] makeFromRowList( + final java.util.List> rowList, + final FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + final FileMakingCallback fileMakingCallback = new FileMakingCallback() { + protected int rowCount = 0; + + public FileMakingRowResource getRowResource() { + ++rowCount; + if (rowList.size() < rowCount) { + return null;// The End! + } + final java.util.List valueList = (java.util.List) rowList + .get(rowCount - 1); + final FileMakingRowResource fileMakingRowResource = new FileMakingRowResource(); + fileMakingRowResource.setValueList(valueList); + return fileMakingRowResource; + } + }; + final java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); + _fileToken.make(baos, fileMakingCallback, fileMakingOption); + return baos.toByteArray(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileMakingSimpleFacadeImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileTokenImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileTokenImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileTokenImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,565 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.file.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingCallback; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingHeaderInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileMakingRowResource; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileToken; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingCallback; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingHeaderInfo; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.file.FileTokenizingRowResource; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineTokenizingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.impl.LineTokenImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class FileTokenImpl implements FileToken { + + //========================================================================== + // =========== + // Attribute + // ========= + /** Line-token for help. */ + protected final LineToken _lineToken = new LineTokenImpl(); + + //========================================================================== + // =========== + // Main + // ==== + /** + * Tokenize token-file data of a specified file. + * + * @param filename File name. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(String filename, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileInputStream fis = null; + try { + fis = new java.io.FileInputStream(filename); + tokenize(fis, fileTokenizingCallback, fileTokenizingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (fis != null) { + fis.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + /** + * Tokenize token-file data of a specified file. + * + *
    +     * This method uses java.io.InputStreamReader and java.io.BufferedReader that wrap the argument[inputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param inputStream Input target stream. (NotNull) + * @param fileTokenizingCallback File-tokenizing callback. (NotNull) + * @param fileTokenizingOption File-tokenizing option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void tokenize(java.io.InputStream inputStream, + FileTokenizingCallback fileTokenizingCallback, + FileTokenizingOption fileTokenizingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("inputStream", inputStream); + assertObjectNotNull("fileTokenizingCallback", fileTokenizingCallback); + assertObjectNotNull("fileTokenizingOption", fileTokenizingOption); + final String delimiter = fileTokenizingOption.getDelimiter(); + final String encoding = fileTokenizingOption.getEncoding(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + + java.io.InputStreamReader ir = null; + java.io.BufferedReader br = null; + + String lineString = null; + String preContinueString = ""; + final List temporaryValueList = new ArrayList(); + final List filteredValueList = new ArrayList(); + + try { + ir = new java.io.InputStreamReader(inputStream, encoding); + br = new java.io.BufferedReader(ir); + + FileTokenizingHeaderInfo fileTokenizingHeaderInfo = null; + int count = -1; + int rowNumber = 1; + int lineNumber = 0; + while (true) { + ++count; + if ("".equals(preContinueString)) { + lineNumber = count + 1; + } + + lineString = br.readLine(); + if (lineString == null) { + break; + } + if (count == 0) { + if (fileTokenizingOption.isBeginFirstLine()) { + fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo();// As + // empty + } else { + fileTokenizingHeaderInfo = analyzeHeaderInfo(delimiter, + lineString); + continue; + } + } + final String rowString; + if (preContinueString.equals("")) { + rowString = lineString; + } else { + final String lineSeparator = System + .getProperty("line.separator"); + rowString = preContinueString + lineSeparator + lineString; + } + final ValueLineInfo valueLineInfo = arrangeValueList(rowString, + delimiter); + final List ls = valueLineInfo.getValueList(); + if (valueLineInfo.isContinueNextLine()) { + preContinueString = (String) ls.remove(ls.size() - 1); + temporaryValueList.addAll(ls); + continue; + } + temporaryValueList.addAll(ls); + + try { + final FileTokenizingRowResource fileTokenizingRowResource = new FileTokenizingRowResource(); + fileTokenizingRowResource + .setFirstLineInfo(fileTokenizingHeaderInfo); + + if (fileTokenizingOption.isHandleEmptyAsNull()) { + for (final Iterator ite = temporaryValueList + .iterator(); ite.hasNext();) { + final String value = (String) ite.next(); + if ("".equals(value)) { + filteredValueList.add(null); + } else { + filteredValueList.add(value); + } + } + fileTokenizingRowResource + .setValueList(filteredValueList); + } else { + fileTokenizingRowResource + .setValueList(temporaryValueList); + } + + fileTokenizingRowResource.setRowString(rowString); + fileTokenizingRowResource.setRowNumber(rowNumber); + fileTokenizingRowResource.setLineNumber(lineNumber); + fileTokenizingCallback + .handleRowResource(fileTokenizingRowResource); + } finally { + ++rowNumber; + temporaryValueList.clear(); + filteredValueList.clear(); + preContinueString = ""; + } + } + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + try { + if (ir != null) { + ir.close(); + } + if (br != null) { + br.close(); + } + } catch (java.io.IOException ignored) { + } + } + } + + protected ValueLineInfo arrangeValueList(final String lineString, + String delimiter) { + final List valueList = new ArrayList(); + + // Don't use split! + // final String[] values = lineString.split(delimiter); + final LineTokenizingOption tokenizingOption = new LineTokenizingOption(); + tokenizingOption.setDelimiter(delimiter); + final List list = _lineToken.tokenize(lineString, + tokenizingOption); + final String[] values = (String[]) list + .toArray(new String[list.size()]); + for (int i = 0; i < values.length; i++) { + valueList.add(values[i]); + } + return arrangeValueList(valueList, delimiter); + } + + protected ValueLineInfo arrangeValueList(List valueList, + String delimiter) { + final ValueLineInfo valueLineInfo = new ValueLineInfo(); + final ArrayList resultList = new ArrayList(); + String preString = ""; + for (int i = 0; i < valueList.size(); i++) { + final String value = (String) valueList.get(i); + if (value == null) { + continue; + } + if (i == valueList.size() - 1) {// The last loop + if (preString.equals("")) { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(value); + break; + } else if (isRearQOnly(value)) { + resultList.add(value); + break; + } else if (isNotBothQ(value)) { + resultList.add(value); + break; + } else { + resultList.add(removeDoubleQuotation(value)); + break; + } + } else { + if (isFrontQOnly(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } else if (isNotBothQ(value)) { + valueLineInfo.setContinueNextLine(true); + resultList.add(connectPreString(preString, delimiter, + value)); + break; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + break; + } + } + } + + if (preString.equals("")) { + if (isFrontQOnly(value)) { + preString = value; + continue; + } else if (isRearQOnly(value)) { + preString = value; + continue; + } else if (isNotBothQ(value)) { + resultList.add(value); + } else { + resultList.add(removeDoubleQuotation(value)); + } + } else { + if (isFrontQOnly(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else if (isRearQOnly(value)) { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } else if (isNotBothQ(value)) { + preString = connectPreString(preString, delimiter, value); + continue; + } else { + resultList.add(removeDoubleQuotation(connectPreString( + preString, delimiter, value))); + } + } + preString = ""; + } + valueLineInfo.setValueList(resultList); + return valueLineInfo; + } + + protected String connectPreString(String preString, String delimiter, + String value) { + if (preString.equals("")) { + return value; + } else { + return preString + delimiter + value; + } + } + + protected boolean isNotBothQ(final String value) { + return !value.startsWith("\"") && !value.endsWith("\""); + } + + protected boolean isRearQOnly(final String value) { + return !value.startsWith("\"") && value.endsWith("\""); + } + + protected boolean isFrontQOnly(final String value) { + return value.startsWith("\"") && !value.endsWith("\""); + } + + protected String removeDoubleQuotation(String value) { + if (!value.startsWith("\"") && !value.endsWith("\"")) { + return value; + } + if (value.startsWith("\"")) { + value = value.substring(1); + } + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected String removeRightDoubleQuotation(String value) { + if (value.endsWith("\"")) { + value = value.substring(0, value.length() - 1); + } + return value; + } + + protected FileTokenizingHeaderInfo analyzeHeaderInfo(String delimiter, + final String lineString) { + final java.util.List columnNameList = new ArrayList(); + final String[] values = lineString.split(delimiter); + for (int i = 0; i < values.length; i++) { + final String value = values[i].trim();// Trimming is Header Only!; + if (value.startsWith("\"") && value.endsWith("\"")) { + columnNameList.add(value.substring(1, value.length() - 1)); + } else { + columnNameList.add(value); + } + } + final FileTokenizingHeaderInfo fileTokenizingHeaderInfo = new FileTokenizingHeaderInfo(); + fileTokenizingHeaderInfo.setColumnNameList(columnNameList); + fileTokenizingHeaderInfo.setColumnNameRowString(lineString); + return fileTokenizingHeaderInfo; + } + + public static class ValueLineInfo { + protected java.util.List valueList; + + protected boolean continueNextLine; + + public java.util.List getValueList() { + return valueList; + } + + public void setValueList(List valueList) { + this.valueList = valueList; + } + + public boolean isContinueNextLine() { + return continueNextLine; + } + + public void setContinueNextLine(boolean continueNextLine) { + this.continueNextLine = continueNextLine; + } + } + + /** + * Make token-file from specified row resources. + * + * @param filename File name. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(String filename, FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertStringNotNullAndNotTrimmedEmpty("filename", filename); + + java.io.FileOutputStream fos = null; + try { + fos = new java.io.FileOutputStream(filename); + make(fos, fileMakingCallback, fileMakingOption); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (fos != null) { + fos.close(); + } + } + } + + /** + * Make token-file from specified row resources. + * + *
    +     * This method uses java.io.BufferedOutputStream and java.io.OutputStreamWriter that wrap the argument[outputStream].
    +     * These objects are closed. (Invoking close() at finally)
    +     * 
    + * + * @param outputStream Output target stream. (NotNull) + * @param fileMakingCallback File-making callback. (NotNull) + * @param fileMakingOption File-making option. (NotNull and + * Required{encoding and delimiter}) + * @throws java.io.FileNotFoundException + * @throws java.io.IOException + */ + public void make(java.io.OutputStream outputStream, + FileMakingCallback fileMakingCallback, + FileMakingOption fileMakingOption) + throws java.io.FileNotFoundException, java.io.IOException { + assertObjectNotNull("outputStream", outputStream); + assertObjectNotNull("fileMakingCallback", fileMakingCallback); + assertObjectNotNull("fileMakingOption", fileMakingOption); + final String encoding = fileMakingOption.getEncoding(); + final String delimiter = fileMakingOption.getDelimiter(); + assertStringNotNullAndNotTrimmedEmpty("encoding", encoding); + assertObjectNotNull("delimiter", delimiter); + final String lineSeparator; + if (fileMakingOption.getLineSeparator() != null + && !fileMakingOption.getLineSeparator().equals("")) { + lineSeparator = fileMakingOption.getLineSeparator(); + } else { + lineSeparator = System.getProperty("line.separator");// Default! + } + + java.io.BufferedOutputStream bos = null; + java.io.Writer writer = null; + try { + bos = new java.io.BufferedOutputStream(outputStream); + writer = new java.io.OutputStreamWriter(bos, encoding); + + boolean headerDone = false; + + // Make header. + final FileMakingHeaderInfo fileMakingHeaderInfo = fileMakingOption + .getFileMakingHeaderInfo(); + if (fileMakingHeaderInfo != null) { + final List columnNameList = fileMakingHeaderInfo + .getColumnNameList(); + if (columnNameList != null && !columnNameList.isEmpty()) { + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + } + + // Make row. + FileMakingRowResource rowResource = null; + while (true) { + rowResource = fileMakingCallback.getRowResource(); + if (rowResource == null) { + break;// The End! + } + final java.util.List valueList; + if (rowResource.getValueList() != null) { + valueList = rowResource.getValueList(); + } else { + final java.util.LinkedHashMap nameValueMap = rowResource + .getNameValueMap(); + if (!headerDone) { + final java.util.List columnNameList = new java.util.ArrayList( + nameValueMap.keySet()); + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + lineMakingOption.trimSpace();// Trimming is Header Only! + final String columnHeaderString = _lineToken.make( + columnNameList, lineMakingOption); + writer.write(columnHeaderString + lineSeparator); + headerDone = true; + } + valueList = new ArrayList(nameValueMap.values()); + } + final LineMakingOption lineMakingOption = new LineMakingOption(); + lineMakingOption.setDelimiter(delimiter); + if (!fileMakingOption.isGoodByeDoubleQuotation()) { + lineMakingOption.quoteByDoubleQuotation(); + } + final String lineString = _lineToken.make(valueList, + lineMakingOption); + writer.write(lineString + lineSeparator); + } + writer.flush(); + } catch (java.io.FileNotFoundException e) { + throw e; + } catch (java.io.IOException e) { + throw e; + } finally { + if (bos != null) { + bos.close(); + } + if (writer != null) { + writer.close(); + } + } + } + + // ---------------------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ---------------------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/file/impl/FileTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineMakingOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineMakingOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineMakingOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,49 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineMakingOption { + + protected String _delimiter; + + protected boolean _quoteByDoubleQuotation; + + protected boolean _trimSpace; + + public LineMakingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineMakingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public LineMakingOption quoteByDoubleQuotation() { + _quoteByDoubleQuotation = true; + return this; + } + + public boolean isQuoteByDoubleQuotation() { + return _quoteByDoubleQuotation; + } + + public LineMakingOption trimSpace() { + _trimSpace = true; + return this; + } + + public boolean isTrimSpace() { + return _trimSpace; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineMakingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineToken.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineToken.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineToken.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,13 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public interface LineToken { + + public java.util.List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption); + + public String make(java.util.List valueList, + LineMakingOption lineMakingOption); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineToken.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineTokenizingOption.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineTokenizingOption.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineTokenizingOption.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,61 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.line; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenizingOption { + + //========================================================================== + // =========== + // Attribute + // ========= + protected String _delimiter; + + protected boolean _trimDoubleQuotation; + + protected boolean _handleEmtpyAsNull; + + //========================================================================== + // =========== + // Easy-to-Use + // =========== + public LineTokenizingOption delimitateByComma() { + _delimiter = ","; + return this; + } + + public LineTokenizingOption delimitateByTab() { + _delimiter = "\t"; + return this; + } + + public LineTokenizingOption trimDoubleQuotation() { + _trimDoubleQuotation = true; + return this; + } + + public LineTokenizingOption handleEmtpyAsNull() { + _handleEmtpyAsNull = true; + return this; + } + + //========================================================================== + // =========== + // Accessor + // ======== + public String getDelimiter() { + return _delimiter; + } + + public void setDelimiter(String delimiter) { + _delimiter = delimiter; + } + + public boolean isTrimDoubleQuotation() { + return _trimDoubleQuotation; + } + + public boolean isHandleEmtpyAsNull() { + return _handleEmtpyAsNull; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/LineTokenizingOption.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/impl/LineTokenImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/impl/LineTokenImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/impl/LineTokenImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,136 @@ +package jp.sf.pal.scheduler.db.allcommon.helper.token.line.impl; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineMakingOption; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineToken; +import jp.sf.pal.scheduler.db.allcommon.helper.token.line.LineTokenizingOption; + +/** + * @author DBFlute(AutoGenerator) + */ +public class LineTokenImpl implements LineToken { + + //========================================================================== + // ========= + // Tokenize Line + // ============= + public List tokenize(String lineString, + LineTokenizingOption lineTokenizingOption) { + final String delimiter = lineTokenizingOption.getDelimiter(); + final List list = new ArrayList(); + int i = 0; + int j = lineString.indexOf(delimiter); + for (int h = 0; j >= 0; h++) { + final String pureValue = lineString.substring(i, j); + if (lineTokenizingOption.isTrimDoubleQuotation()) { + final String before = pureValue; + if (before.length() > 1 && before.startsWith("\"") + && before.endsWith("\"")) { + final String after = before.substring(1, + before.length() - 1); + list.add(filterHandlingEmptyAsNull(after, + lineTokenizingOption)); + } else { + list.add(filterHandlingEmptyAsNull(before, + lineTokenizingOption)); + } + } else { + list.add(filterHandlingEmptyAsNull(pureValue, + lineTokenizingOption)); + } + i = j + delimiter.length(); + j = lineString.indexOf(delimiter, i); + } + list.add(filterHandlingEmptyAsNull(lineString.substring(i), + lineTokenizingOption)); + return list; + } + + protected String filterHandlingEmptyAsNull(String target, + LineTokenizingOption lineTokenizingOption) { + if (target == null) { + return null; + } + if (lineTokenizingOption.isHandleEmtpyAsNull() && "".equals(target)) { + return null; + } + return target; + } + + //========================================================================== + // ========= + // Make Line + // ========= + public String make(java.util.List valueList, + LineMakingOption lineMakingOption) { + assertObjectNotNull("valueList", valueList); + assertObjectNotNull("lineMakingOption", lineMakingOption); + final String delimiter = lineMakingOption.getDelimiter(); + assertObjectNotNull("lineMakingOption.getDelimiter()", delimiter); + return createLineString(valueList, delimiter, lineMakingOption + .isQuoteByDoubleQuotation(), lineMakingOption.isTrimSpace()); + } + + protected String createLineString(List valueList, String delimiter, + boolean quoteByDoubleQuotation, boolean trimSpace) { + final StringBuffer sb = new StringBuffer(); + for (final Iterator ite = valueList.iterator(); ite.hasNext();) { + String value = (String) ite.next(); + value = (value != null ? value : ""); + if (trimSpace) { + value = value.trim(); + } + if (quoteByDoubleQuotation) { + sb.append(delimiter).append("\"").append(value).append("\""); + } else { + sb.append(delimiter).append(value); + } + } + sb.delete(0, delimiter.length()); + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + protected void assertStringNotNullAndNotTrimmedEmpty(String variableName, + String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull(variableName, value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/helper/token/line/impl/LineTokenImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/CursorHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/CursorHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/CursorHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,19 @@ +package jp.sf.pal.scheduler.db.allcommon.jdbc; + +import java.sql.ResultSet; +import java.sql.SQLException; + +/** + * The handler of cursor. + * + * @author DBFlute(AutoGenerator) + */ +public interface CursorHandler { + + /** + * @param resultSet Result set. (NotNull) + * @return Result + * @throws java.sql.SQLException + */ + Object handle(ResultSet resultSet) throws SQLException; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/CursorHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/LatestSqlProvider.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/LatestSqlProvider.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/LatestSqlProvider.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon.jdbc; + +/** + * The provider of latest SQL. + * + * @author DBFlute(AutoGenerator) + */ +public interface LatestSqlProvider { + + /** + * Get display SQL. + * + * @return Display SQL. (Nullable: If it was not found, returns null.) + */ + public String getDisplaySql(); + + /** + * Clear the cache of SQL. + */ + public void clearSqlCache(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/LatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/SqlLogHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/SqlLogHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/SqlLogHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.allcommon.jdbc; + +/** + * The handler of SQL log. + * + * @author DBFlute(AutoGenerator) + */ +public interface SqlLogHandler { + + /** + * @param executedSql The executed SQL. (NotNull) + * @param displaySql The SQL for display. (NotNull) + * @param args The arguments of the SQL. (Nullable) + * @param argTypes The argument types of the SQL. (Nullable) + */ + void handle(String executedSql, String displaySql, Object[] args, + Class[] argTypes); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/SqlLogHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/StatementConfig.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/StatementConfig.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/StatementConfig.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,135 @@ +package jp.sf.pal.scheduler.db.allcommon.jdbc; + +import java.sql.ResultSet; + +/** + * The config of statement. + * + * @author DBFlute(AutoGenerator) + */ +public class StatementConfig { + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + protected Integer _resultSetType; + + // ----------------------------------------------------- + // Statement Option + // ---------------- + protected Integer _queryTimeout; + + protected Integer _fetchSize; + + protected Integer _maxRows; + + //========================================================================== + // ========= + // Setting Interface + // ================= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public StatementConfig typeForwardOnly() { + _resultSetType = ResultSet.TYPE_FORWARD_ONLY; + return this; + } + + public StatementConfig typeScrollInsensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_INSENSITIVE; + return this; + } + + public StatementConfig typeScrollSensitive() { + _resultSetType = ResultSet.TYPE_SCROLL_SENSITIVE; + return this; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public StatementConfig queryTimeout(int queryTimeout) { + this._queryTimeout = queryTimeout; + return this; + } + + public StatementConfig fetchSize(int fetchSize) { + this._fetchSize = fetchSize; + return this; + } + + public StatementConfig maxRows(int maxRows) { + this._maxRows = maxRows; + return this; + } + + //========================================================================== + // ========= + // Determination + // ============= + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public boolean hasResultSetType() { + return _resultSetType != null; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public boolean hasStatementOptions() { + return hasQueryTimeout() || hasFetchSize() || hasMaxRows(); + } + + public boolean hasQueryTimeout() { + return _queryTimeout != null; + } + + public boolean hasFetchSize() { + return _fetchSize != null; + } + + public boolean hasMaxRows() { + return _maxRows != null; + } + + //========================================================================== + // ========= + // Basic Override + // ============== + @Override + public String toString() { + return "{" + _resultSetType + ", " + _queryTimeout + ", " + _fetchSize + + ", " + _maxRows + "}"; + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // ResultSet TYPE + // -------------- + public Integer getResultSetType() { + return _resultSetType; + } + + // ----------------------------------------------------- + // Statement Option + // ---------------- + public Integer getQueryTimeout() { + return _queryTimeout; + } + + public Integer getFetchSize() { + return _fetchSize; + } + + public Integer getMaxRows() { + return _maxRows; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/jdbc/StatementConfig.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,125 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.ResultSetFactory; + +/** + * This is unused in DBFlute so this is very NORMAL result-set-factory for + * S2Dao. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetFactory implements ResultSetFactory { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + */ + public FetchNarrowingResultSetFactory() { + } + + //========================================================================== + // ========= + // Main + // ==== + /** + * Get result set. + * + * @param statement Statement. (NotNull) + * @return Result set for procedure executing of s2dao. (NotNull) + */ + public ResultSet getResultSet(Statement statement) { // Unused in DBFlute + return doGetResultSet(statement); + } + + /** + * Create result set. + * + * @param ps Prepared statement. (NotNull) + * @return Result set. (NotNull) + */ + public ResultSet createResultSet(PreparedStatement ps) { // Unused in + // DBFlute + return executeQuery(ps); + + // *Move to InternalBasicSelectHandler + // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // return resultSet; + // } + // final FetchNarrowingBean cb = + // FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread(); + // if (!isUseFetchNarrowingResultSetWrapper(cb)) { + // return resultSet; + // } + // final FetchNarrowingResultSetWrapper wrapper; + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + // outsideSqlContext.isOffsetByCursorForcedly(), + // outsideSqlContext.isLimitByCursorForcedly()); + // } else { + // wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + // false); + // } + // return wrapper; + } + + // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean + // cb) { + // if (cb.getSafetyMaxResultSize() > 0) { + // return true; + // } + // if (!cb.isFetchNarrowingEffective()) { + // return false;// It is not necessary to control. + // } + // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + // final OutsideSqlContext outsideSqlContext = + // OutsideSqlContext.getOutsideSqlContextOnThread(); + // if (outsideSqlContext.isOffsetByCursorForcedly() || + // outsideSqlContext.isLimitByCursorForcedly()) { + // return true; + // } + // } + // if (cb.isFetchNarrowingSkipStartIndexEffective() || + // cb.isFetchNarrowingLoopCountEffective()) { + // return true; + // } + // return false; + // } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected ResultSet doGetResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected ResultSet executeQuery(PreparedStatement ps) { + try { + return ps.executeQuery(); + } catch (SQLException e) { + handleSQLException(e, ps); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,237 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import jp.sf.pal.scheduler.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; + +import org.seasar.extension.jdbc.impl.ResultSetWrapper; + +/** + * The wrapper of fetch narrowing result set. + * + * @author DBFlute(AutoGenerator) + */ +public class FetchNarrowingResultSetWrapper extends ResultSetWrapper { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The real result set. (NotNull) */ + protected ResultSet _resultSet; + + /** The bean of fetch narrowing. (NotNull) */ + protected FetchNarrowingBean _fetchNarrowingBean; + + /** The counter of fetch. */ + protected long _fetchCounter; + + /** the counter of request. */ + protected long _requestCounter; + + /** Does it offset by cursor forcedly? */ + protected boolean _offsetByCursorForcedly; + + /** Does it limit by cursor forcedly? */ + protected boolean _limitByCursorForcedly; + + /** Does it skip to cursor end? */ + protected boolean _skipToCursorEnd; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param resultSet Original result set. (NotNull) + * @param fetchNarrowingBean Fetch-narrowing-bean. (NotNull) + * @param offsetByCursorForcedly Offset by cursor forcedly. + * @param limitByCursorForcedly Limit by cursor forcedly. + */ + public FetchNarrowingResultSetWrapper(ResultSet resultSet, + FetchNarrowingBean fetchNarrowingBean, + boolean offsetByCursorForcedly, boolean limitByCursorForcedly) { + super(resultSet); + + _resultSet = resultSet; + _fetchNarrowingBean = fetchNarrowingBean; + _offsetByCursorForcedly = offsetByCursorForcedly; + _limitByCursorForcedly = limitByCursorForcedly; + + skip(); + } + + //========================================================================== + // ========= + // Skip + // ==== + /** + * Skip to start-index. + */ + protected void skip() { + if (!isAvailableSkipRecord()) { + return; + } + final int skipStartIndex = getFetchNarrowingSkipStartIndex(); + if (isScrollableCursor()) { + try { + if (0 == skipStartIndex) { + _resultSet.beforeFirst(); + } else { + _resultSet.absolute(skipStartIndex); + } + _fetchCounter = _resultSet.getRow(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } else { + try { + while (true) { + if (_fetchCounter >= skipStartIndex) { + break; + } + if (!_resultSet.next()) { + _skipToCursorEnd = true;// [DBFLUTE-243] + break; + } + ++_fetchCounter; + } + } catch (SQLException e) { + handleSQLException(e, null); + } + } + } + + protected boolean isAvailableSkipRecord() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isOffsetByCursorForcedly()) { + return true; + } + if (isFetchNarrowingSkipStartIndexEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Next + // ==== + /** + * Next. + * + * @return Does the result set have next record? + * @throws SQLException + */ + public boolean next() throws SQLException { + final boolean hasNext = super.next(); + ++_requestCounter; + if (!isAvailableLimitLoopCount()) { + checkSafetyResult(hasNext); + return hasNext; + } + + if (hasNext + && _fetchCounter < getFetchNarrowingSkipStartIndex() + + getFetchNarrowingLoopCount()) { + ++_fetchCounter; + checkSafetyResult(true); + return true; + } else { + return false; + } + } + + protected boolean isAvailableLimitLoopCount() { + if (!isFetchNarrowingEffective()) { + return false; + } + if (isLimitByCursorForcedly()) { + return true; + } + if (isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + protected void checkSafetyResult(boolean hasNext) { + if (hasNext && getSafetyMaxResultSize() > 0 + && _requestCounter > (getSafetyMaxResultSize() + 1)) { + String msg = "You have already been in Danger Zone!"; + msg = msg + + " Please confirm your query or data of table: safetyMaxResultSize=" + + getSafetyMaxResultSize(); + throw new jp.sf.pal.scheduler.db.allcommon.exception.DangerousResultSizeException( + msg, getSafetyMaxResultSize()); + } + } + + //========================================================================== + // ========= + // Fetch Option + // ============ + protected boolean isFetchNarrowingEffective() { + return _fetchNarrowingBean.isFetchNarrowingEffective(); + } + + protected boolean isFetchNarrowingSkipStartIndexEffective() { + return _fetchNarrowingBean.isFetchNarrowingSkipStartIndexEffective(); + } + + protected boolean isFetchNarrowingLoopCountEffective() { + return _fetchNarrowingBean.isFetchNarrowingLoopCountEffective(); + } + + protected int getFetchNarrowingSkipStartIndex() { + return _fetchNarrowingBean.getFetchNarrowingSkipStartIndex(); + } + + protected int getFetchNarrowingLoopCount() { + return _fetchNarrowingBean.getFetchNarrowingLoopCount(); + } + + public int getSafetyMaxResultSize() { + return _fetchNarrowingBean.getSafetyMaxResultSize(); + } + + protected boolean isScrollableCursor() { + try { + return !(_resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY); + } catch (SQLException e) { + handleSQLException(e, null); + return false;// Unreachable! + } + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isOffsetByCursorForcedly() { + return _offsetByCursorForcedly; + } + + public boolean isLimitByCursorForcedly() { + return _limitByCursorForcedly; + } + + public boolean isSkipToCursorEnd() { + return _skipToCursorEnd; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/FetchNarrowingResultSetWrapper.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,116 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.impl.BeanMetaDataFactoryImpl; +import org.seasar.dao.impl.BeanMetaDataImpl; + +/** + * BeanMetaDataFactoryImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2BeanMetaDataFactoryImpl extends BeanMetaDataFactoryImpl { + + protected Map, BeanMetaData> _metaMap = Collections + .synchronizedMap(new HashMap, BeanMetaData>()); + + @Override + public BeanMetaData createBeanMetaData(Class beanClass) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass); + } + } + + @Override + public BeanMetaData createBeanMetaData(Class beanClass, + int relationNestLevel) { + final BeanMetaData cachedMeta = findCachedMeta(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(beanClass, relationNestLevel); + } + } + + @Override + public BeanMetaData createBeanMetaData(DatabaseMetaData dbMetaData, + Class beanClass, int relationNestLevel) { + final BeanMetaData cachedMeta = findOrCreateCachedMetaIfNeeds( + dbMetaData, beanClass, relationNestLevel); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, + relationNestLevel); + } + } + + protected BeanMetaData findCachedMeta(Class beanClass) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } + } + return null; + } + + protected BeanMetaData findOrCreateCachedMetaIfNeeds( + DatabaseMetaData dbMetaData, Class beanClass, int relationNestLevel) { + if (isDBFluteEntity(beanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(beanClass); + if (cachedMeta != null) { + return cachedMeta; + } else { + return super.createBeanMetaData(dbMetaData, beanClass, 0); + } + } + return null; + } + + @Override + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + @Override + public void initialize() { + final Class myBeanClass = getBeanClass(); + if (isDBFluteEntity(myBeanClass)) { + final BeanMetaData cachedMeta = getMetaFromCache(myBeanClass); + if (cachedMeta == null) { + _metaMap.put(myBeanClass, this); + } + } + super.initialize(); + } + }; + } + + protected boolean isDBFluteEntity(Class beanClass) { + return Entity.class.isAssignableFrom(beanClass); + } + + protected BeanMetaData getMetaFromCache(Class beanClass) { + return _metaMap.get(beanClass); + } + + /** + * Get the limit nest level of relation. + * + * @return The limit nest level of relation. + */ + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible to old version DBFlute + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2BeanMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoInterceptor.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoInterceptor.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoInterceptor.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1027 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.InternalMapContext; +import jp.sf.pal.scheduler.db.allcommon.XLog; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlDao; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlOption; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.InvokeNameExtractingResource; +import jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.InvokeNameResult; +import jp.sf.pal.scheduler.db.allcommon.helper.stacktrace.impl.InvokeNameExtractorImpl; +import jp.sf.pal.scheduler.db.allcommon.util.TraceViewUtil; + +import org.aopalliance.intercept.MethodInvocation; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; + +/** + * The interceptor of S2Dao for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoInterceptor extends + org.seasar.framework.aop.interceptors.AbstractInterceptor { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoInterceptor.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** The factory of DAO meta data. */ + protected DaoMetaDataFactory _daoMetaDataFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param daoMetaDataFactory The factory of DAO meta data. (NotNull) + */ + public S2DaoInterceptor(DaoMetaDataFactory daoMetaDataFactory) { + _daoMetaDataFactory = daoMetaDataFactory; + } + + //========================================================================== + // ========= + // Execute Status Log + // ================== + protected void log(String msg) { + XLog.log(msg); + } + + protected boolean isLogEnabled() { + return XLog.isLogEnabled(); + } + + //========================================================================== + // ========= + // Invoke + // ====== + /** + * Invoke the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + public Object invoke(MethodInvocation invocation) throws Throwable { + clearThreadLocal(); + try { + return dispatchInvoking(invocation); + } finally { + clearThreadLocal(); + } + } + + /** + * Dispatch invoking the method. + * + * @param invocation The method invocation. (NotNull) + * @return The result of the method. (Nullable) + * @throws Throwable + */ + protected Object dispatchInvoking(MethodInvocation invocation) + throws Throwable { + final Method method = invocation.getMethod(); + if (!isAbstract(method)) { + return invocation.proceed(); + } + + // - - - - - - - - - - - - - + // Initialize DAO meta data + // - - - - - - - - - - - - - + if (method.getName().equals("initializeDaoMetaData")) { + initializeSqlCommand(invocation); + return null;// The end! (Initilization Only) + } + + // - - - - - - - - - - - - + // Preprocess outside-SQL + // - - - - - - - - - - - - + preprocessOutsideSql(invocation); + + // - - - - - - - - - - - - - + // Preprocess condition-bean + // - - - - - - - - - - - - - + final ConditionBean cb = preprocessConditionBean(invocation); + + // - - - - - - - - - - + // Set up SQL-command + // - - - - - - - - - - + final SqlCommand cmd; + try { + long beforeCmd = 0; + if (isLogEnabled()) { + beforeCmd = System.currentTimeMillis(); + } + cmd = findSqlCommand(invocation); + if (isLogEnabled()) { + final long afterCmd = System.currentTimeMillis(); + if (beforeCmd != afterCmd) { + logSqlCommand(invocation, cmd, beforeCmd, afterCmd); + } + } + } finally { + if (isLogEnabled()) { + logInvocation(invocation); + } + } + + long before = 0; + if (isLogEnabled()) { + before = System.currentTimeMillis(); + } + + // - - - - - - - - - - + // Execute SQL-command + // - - - - - - - - - - + Object ret = null; + try { + ret = cmd.execute(invocation.getArguments()); + } catch (Exception e) { + if (e.getClass().equals(NotSingleRowUpdatedRuntimeException.class)) { + throw new EntityAlreadyUpdatedException( + (NotSingleRowUpdatedRuntimeException) e); + } + throw e; + } finally { + postprocessConditionBean(invocation, cb); + } + final Class retType = method.getReturnType(); + assertRetType(retType, ret); + + if (isLogEnabled()) { + final long after = System.currentTimeMillis(); + logReturn(invocation, retType, ret, before, after); + } + + // - - - - - - - - - - + // Convert and Return! + // - - - - - - - - - - + if (retType.isPrimitive()) { + return org.seasar.framework.util.NumberConversionUtil + .convertPrimitiveWrapper(retType, ret); + } else if (Number.class.isAssignableFrom(retType)) { + return org.seasar.framework.util.NumberConversionUtil + .convertNumber(retType, ret); + } else { + return ret; + } + } + + //========================================================================== + // ========= + // SqlCommand + // ========== + protected void initializeSqlCommand(MethodInvocation invocation) { + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + return;// Do nothing! + } else { + final Object[] arguments = invocation.getArguments(); + if (arguments != null && arguments.length > 0 + && arguments[0] instanceof String) { + final String methodName = (String) arguments[0]; + try { + dmd.getSqlCommand(methodName); + } catch (MethodNotFoundRuntimeException ignored) { + // Do nothing! + if (isLogEnabled()) { + log("Not Found the method: " + methodName + " msg=" + + ignored.getMessage()); + } + } + return; + } else { + String msg = "The method should have one string argument as method name: " + + invocation; + throw new IllegalStateException(msg); + } + } + } + + protected SqlCommand findSqlCommand(MethodInvocation invocation) { + final SqlCommand cmd; + final Class targetType = getTargetClass(invocation); + final DaoMetaData dmd = _daoMetaDataFactory.getDaoMetaData(targetType); + if (OutsideSqlDao.class.isAssignableFrom(targetType)) { + cmd = dmd + .getSqlCommand(generateSpecifiedOutsideSqlUniqueKey(invocation)); + } else { + cmd = dmd.getSqlCommand(invocation.getMethod().getName()); + } + return cmd; + } + + protected String generateSpecifiedOutsideSqlUniqueKey( + MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + final String path = (String) args[0]; + final Object pmb = args[1]; + final OutsideSqlOption option = (OutsideSqlOption) args[2]; + Object resultTypeSpecification = null; + if (args.length > 3) { + resultTypeSpecification = args[3]; + } + return OutsideSqlContext.generateSpecifiedOutsideSqlUniqueKey( + invocation.getMethod().getName(), path, pmb, option, + resultTypeSpecification); + } + + //========================================================================== + // ========= + // Log Invocation + // ============== + protected void logInvocation(MethodInvocation invocation) { + final StackTraceElement[] stackTrace = new Exception().getStackTrace(); + final InvokeNameResult behaviorResult = extractBehaviorInvokeName(stackTrace); + + final String invokeClassName; + final String invokeMethodName; + if (!behaviorResult.isEmptyResult()) { + invokeClassName = behaviorResult.getSimpleClassName(); + invokeMethodName = behaviorResult.getMethodName(); + } else { + final Method method = invocation.getMethod(); + invokeClassName = extractInvocationExpression(method); + invokeMethodName = method.getName(); + } + final String expWithoutKakko = buildInvocationExpressionWithoutKakko( + invocation, invokeClassName, invokeMethodName); + + // Save behavior invoke name for error message. + putObjectToMapContext("df:BehaviorInvokeName", expWithoutKakko + "()"); + + final String equalBorder = buildFitBorder("", "=", expWithoutKakko, + false); + final String invocationExpression = expWithoutKakko + "()"; + + log("/=====================================================" + + equalBorder + "=="); + log(" " + + invocationExpression); + log(" " + + equalBorder + "=/"); + + logPath(invocation, stackTrace, behaviorResult); + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (!outsideSqlContext.isProcedure()) {// [DBFlute-0.7.5] + Object[] args = invocation.getArguments(); + if (outsideSqlContext != null) { + log("path: " + outsideSqlContext.getOutsideSqlPath()); + } else { + log("path: " + getOutsideSqlPath(args)); + } + log("option: " + getOutsideSqlOption(args)); + } + } + } + + protected String buildInvocationExpressionWithoutKakko( + MethodInvocation invocation, String invokeClassName, + String invokeMethodName) { + if (invokeClassName.contains("OutsideSql") + && invokeClassName.endsWith("Executor")) { // OutsideSql + // Executor Handling + try { + final String originalName = invokeClassName; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final String tableDbName = outsideSqlContext + .getTableDbName(); + final DBMeta dbmeta = DBMetaInstanceHandler + .findDBMeta(tableDbName); + final String behaviorTypeName = dbmeta + .getBehaviorTypeName(); + final String behaviorClassName = behaviorTypeName + .substring(behaviorTypeName.lastIndexOf(".") + + ".".length()); + invokeClassName = behaviorClassName + ".outsideSql()"; + if (originalName.endsWith("OutsideSqlEntityExecutor")) { + invokeClassName = invokeClassName + ".entityHandling()"; + } else if (originalName + .endsWith("OutsideSqlPagingExecutor")) { + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + invokeClassName = invokeClassName + ".autoPaging()"; + } else { + invokeClassName = invokeClassName + + ".manualPaging()"; + } + } else if (originalName + .endsWith("OutsideSqlCursorExecutor")) { + invokeClassName = invokeClassName + ".cursorHandling()"; + } + } else { + invokeClassName = "OutsideSql"; + } + } catch (RuntimeException ignored) { + log("Ignored exception occurred: msg=" + ignored.getMessage()); + } + } + String invocationExpressionWithoutKakko = invokeClassName + "." + + invokeMethodName; + if ("selectPage".equals(invokeMethodName)) { // Special Handling! + boolean resultTypeInteger = false; + if (isSpecifiedOutsideSql()) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + if (resultTypeSpecification != null + && resultTypeSpecification instanceof Class) { + final Class resultType = (Class) resultTypeSpecification; + if (Integer.class.isAssignableFrom(resultType)) { + resultTypeInteger = true; + } + } + } + if (resultTypeInteger + || "selectCount".equals(invocation.getMethod().getName())) { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():count"; + } else { + invocationExpressionWithoutKakko = invocationExpressionWithoutKakko + + "():paging"; + } + } + return invocationExpressionWithoutKakko; + } + + protected void logPath(MethodInvocation invocation, + StackTraceElement[] stackTrace, InvokeNameResult behaviorResult) { + final int bhvNextIndex = behaviorResult.getNextStartIndex(); + final InvokeNameResult clientResult = extractClientInvokeName( + stackTrace, bhvNextIndex); + final int clientFirstIndex = clientResult.getFoundFirstIndex(); + final InvokeNameResult byPassResult = extractByPassInvokeName( + stackTrace, bhvNextIndex, clientFirstIndex - bhvNextIndex); + + final String clientInvokeName = clientResult.getInvokeName(); + final String byPassInvokeName = byPassResult.getInvokeName(); + final String behaviorInvokeName = behaviorResult.getInvokeName(); + if (clientInvokeName.trim().length() == 0 + && byPassInvokeName.trim().length() == 0) { + return; + } + + // Save client invoke name for error message. + if (!clientResult.isEmptyResult()) { + putObjectToMapContext("df:ClientInvokeName", clientInvokeName); + } + // Save by-pass invoke name for error message. + if (!byPassResult.isEmptyResult()) { + putObjectToMapContext("df:ByPassInvokeName", byPassInvokeName); + } + + log(clientInvokeName + byPassInvokeName + behaviorInvokeName + "..."); + } + + protected String buildFitBorder(String prefix, String element, + String lengthTargetString, boolean space) { + final int length = space ? lengthTargetString.length() / 2 + : lengthTargetString.length(); + final StringBuffer sb = new StringBuffer(); + sb.append(prefix); + for (int i = 0; i < length; i++) { + sb.append(element); + if (space) { + sb.append(" "); + } + } + if (space) { + sb.append(element); + } + return sb.toString(); + } + + protected InvokeNameResult extractClientInvokeName( + StackTraceElement[] stackTrace, final int startIndex) { + final List suffixList = Arrays.asList(new String[] { "Page", + "Action" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractByPassInvokeName( + StackTraceElement[] stackTrace, final int startIndex, + final int loopSize) { + final List suffixList = Arrays.asList(new String[] { "Service", + "ServiceImpl", "Facade", "FacadeImpl" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + return isClassNameEndsWith(className, suffixList); + } + + public String filterSimpleClassName(String simpleClassName) { + return simpleClassName; + } + + public boolean isUseAdditionalInfo() { + return true; + } + + public int getStartIndex() { + return startIndex; + } + + public int getLoopSize() { + return loopSize >= 0 ? loopSize : 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected InvokeNameResult extractBehaviorInvokeName( + StackTraceElement[] stackTrace) { + final List suffixList = Arrays.asList(new String[] { "Bhv", + "BehaviorReadable", "BehaviorWritable", "PagingInvoker" }); + final List keywordList = Arrays.asList(new String[] { "Bhv$", + "BehaviorReadable$", "BehaviorWritable$" }); + final List ousideSql1List = Arrays + .asList(new String[] { "OutsideSql" }); + final List ousideSql2List = Arrays + .asList(new String[] { "Executor" }); + final List ousideSql3List = Arrays + .asList(new String[] { "Executor$" }); + final InvokeNameExtractingResource resource = new InvokeNameExtractingResource() { + public boolean isTargetElement(String className, String methodName) { + if (isClassNameEndsWith(className, suffixList)) { + return true; + } + if (isClassNameContains(className, keywordList)) { + return true; + } + if (isClassNameContains(className, ousideSql1List) + && (isClassNameEndsWith(className, ousideSql2List) || isClassNameContains( + className, ousideSql3List))) { + return true; + } + return false; + } + + public String filterSimpleClassName(String simpleClassName) { + return removeBasePrefixFromSimpleClassName(simpleClassName); + } + + public boolean isUseAdditionalInfo() { + return false; + } + + public int getStartIndex() { + return 0; + } + + public int getLoopSize() { + return 25; + } + }; + return extractInvokeName(resource, stackTrace); + } + + protected boolean isClassNameEndsWith(String className, + List suffixList) { + for (String suffix : suffixList) { + if (className.endsWith(suffix)) { + return true; + } + } + return false; + } + + protected boolean isClassNameContains(String className, + List keywordList) { + for (String keyword : keywordList) { + if (className.contains(keyword)) { + return true; + } + } + return false; + } + + /** + * @param resource the call-back resource for invoke-name-extracting. + * (NotNull) + * @param stackTrace Stack log. (NotNull) + * @return The result of invoke name. (NotNull: If not found, returns empty + * string.) + */ + protected InvokeNameResult extractInvokeName( + InvokeNameExtractingResource resource, + StackTraceElement[] stackTrace) { + final InvokeNameExtractorImpl extractor = new InvokeNameExtractorImpl(); + extractor.setStackTrace(stackTrace); + return extractor.extractInvokeName(resource); + } + + /** + * @param method The invoked method. (NotNull) + * @return The expression of invocation. (NotNull) + */ + protected String extractInvocationExpression(Method method) { + final Class declaringClass = method.getDeclaringClass(); + return removeBasePrefixFromSimpleClassName(declaringClass + .getSimpleName()); + } + + /** + * @param simpleClassName The simple class name. (NotNull) + * @return The simple class name removed the base prefix. (NotNull) + */ + protected String removeBasePrefixFromSimpleClassName(String simpleClassName) { + if (!simpleClassName.startsWith("Bs")) { + return simpleClassName; + } + final int prefixLength = "Bs".length(); + if (!Character.isUpperCase(simpleClassName.substring(prefixLength) + .charAt(0))) { + return simpleClassName; + } + if (simpleClassName.length() <= prefixLength) { + return simpleClassName; + } + return "" + simpleClassName.substring(prefixLength); + } + + //========================================================================== + // ========= + // Log SqlCommand + // ============== + protected void logSqlCommand(MethodInvocation invocation, SqlCommand cmd, + long beforeCmd, long afterCmd) { + log("SqlCommand Initialization Cost: [" + + TraceViewUtil.convertToPerformanceView(afterCmd - beforeCmd) + + "]"); + } + + protected void assertRetType(Class retType, Object ret) { + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof java.util.List)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret != null && !(ret instanceof Entity)) { + String msg = "The retType is difference from actual return: "; + msg = msg + "retType=" + retType + " ret.getClass()=" + + ret.getClass() + " ref=" + ret; + throw new IllegalStateException(msg); + } + } + } + + //========================================================================== + // ========= + // Log Return + // ========== + protected void logReturn( + org.aopalliance.intercept.MethodInvocation invocation, + Class retType, Object ret, long before, long after) + throws Throwable { + try { + final String daoResultPrefix = "===========/ [" + + TraceViewUtil.convertToPerformanceView(after - before) + + " - "; + if (java.util.List.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected list: null]"); + } else { + final java.util.List ls = (java.util.List) ret; + if (ls.isEmpty()) { + log(daoResultPrefix + "Selected list: 0]"); + } else if (ls.size() == 1 && ls.get(0) instanceof Number) { + log(daoResultPrefix + "Selected count: " + ls.get(0) + + "]"); + } else { + log(daoResultPrefix + "Selected list: " + ls.size() + + " first=" + ls.get(0) + "]"); + } + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (Entity.class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final Entity entity = (Entity) ret; + log(daoResultPrefix + "Selected entity: " + entity + "]"); + } + } else if (int[].class.isAssignableFrom(retType)) { + if (ret == null) { + log(daoResultPrefix + "Selected entity: null" + "]"); + } else { + final int[] resultArray = (int[]) ret; + if (resultArray.length == 0) { + log(daoResultPrefix + "All updated count: 0]"); + } else { + final StringBuilder sb = new StringBuilder(); + boolean resultExpressionScope = true; + int resultCount = 0; + int loopCount = 0; + for (int element : resultArray) { + resultCount = resultCount + element; + if (resultExpressionScope) { + if (loopCount <= 10) { + if (sb.length() == 0) { + sb.append(element); + } else { + sb.append(",").append(element); + } + } else { + sb.append(",").append("..."); + resultExpressionScope = false; + } + } + ++loopCount; + } + sb.insert(0, "{").append("}"); + log(daoResultPrefix + "All updated count: " + + resultCount + " result=" + sb + "]"); + } + } + } else { + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + log(daoResultPrefix + "Selected count: " + ret + "]"); + } else { + log(daoResultPrefix + "Result: " + ret + "]"); + } + } + log(" "); + } catch (Exception e) { + String msg = "Result object debug threw the exception: methodName="; + msg = msg + invocation.getMethod().getName() + " retType=" + + retType; + msg = msg + " ret=" + ret; + _log.warn(msg, e); + throw e; + } + } + + //========================================================================== + // ========= + // Pre Post Process + // ================ + // ----------------------------------------------------- + // OutsideSql + // ---------- + protected void preprocessOutsideSql(MethodInvocation invocation) { + final Class outsideSqlType = jp.sf.pal.scheduler.db.allcommon.annotation.OutsideSql.class; + final jp.sf.pal.scheduler.db.allcommon.annotation.OutsideSql outsideSql = invocation + .getMethod().getAnnotation(outsideSqlType); + + // Traditional OutsideSql + if (outsideSql != null + && (outsideSql.dynamicBinding() || outsideSql.offsetByCursor() + || outsideSql.offsetByCursor() || outsideSql + .limitByCursor())) { + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(outsideSql.dynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(outsideSql + .offsetByCursor()); + outsideSqlContext.setLimitByCursorForcedly(outsideSql + .limitByCursor()); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return; + } + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(args[0] + .getClass())) { + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) args[0]); + } + return; + } + + // Specified OutsideSql + if (isSpecifiedOutsideSql(invocation)) { + if (isOutsideSqlDaoMethodSelect(invocation)) { + setupOutsideSqlContextSelect(invocation); + } else { + setupOutsideSqlContextExecute(invocation); + } + return; + } + } + + protected boolean isSpecifiedOutsideSql(MethodInvocation invocation) { + return OutsideSqlDao.class.isAssignableFrom(getTargetClass(invocation)); + } + + // - - - - - - - - - - - - + // Select + // - - - + protected boolean isOutsideSqlDaoMethodSelect(MethodInvocation invocation) { + return invocation.getMethod().getName().startsWith("select"); + } + + protected void setupOutsideSqlContextSelect(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 4) { + String msg = "Internal Error! OutsideSqlDao.selectXxx() should have 4 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final Object resultTypeSpecification = args[3]; + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setResultTypeSpecification(resultTypeSpecification); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupOutsideSqlContextExecute(MethodInvocation invocation) { + final Object[] args = invocation.getArguments(); + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + final String path = getOutsideSqlPath(args); + final Object pmb = getOutsideSqlParameterBean(args); + final OutsideSqlOption option = getOutsideSqlOption(args); + final OutsideSqlContext outsideSqlContext = new OutsideSqlContext(); + outsideSqlContext.setDynamicBinding(option.isDynamicBinding()); + outsideSqlContext.setOffsetByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setLimitByCursorForcedly(option.isAutoPaging()); + outsideSqlContext.setOutsideSqlPath(path); + outsideSqlContext.setParameterBean(pmb); + outsideSqlContext.setMethodName(invocation.getMethod().getName()); + outsideSqlContext.setStatementConfig(option.getStatementConfig()); + outsideSqlContext.setTableDbName(option.getTableDbName()); + outsideSqlContext.setupBehaviorQueryPathIfNeeds(); + OutsideSqlContext.setOutsideSqlContextOnThread(outsideSqlContext); + + // Set up fetchNarrowingBean. + setupOutsideSqlFetchNarrowingBean(pmb, option); + } + + // - - - - - - - - - - - - + // Common + // - - - + protected String getOutsideSqlPath(Object[] args) { + return (String) args[0]; + } + + protected Object getOutsideSqlParameterBean(Object[] args) { + return args[1]; + } + + protected OutsideSqlOption getOutsideSqlOption(Object[] args) { + return (OutsideSqlOption) args[2]; + } + + protected void setupOutsideSqlFetchNarrowingBean(Object pmb, + OutsideSqlOption option) { + if (pmb == null + || !FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(pmb + .getClass())) { + return; + } + final FetchNarrowingBean fetchNarrowingBean = (FetchNarrowingBean) pmb; + if (option.isManualPaging()) { + fetchNarrowingBean.ignoreFetchNarrowing(); + } + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread(fetchNarrowingBean); + } + + // ----------------------------------------------------- + // ConditionBean + // ------------- + /** + * Pre-process conditionBean. + *

    + * If this method is condition bean select target, make dynamic SQL. Else + * nothing. + * + * @param invocation Method invocation. (NotNull) + * @return ConditionBean. (Nullable) + */ + protected ConditionBean preprocessConditionBean(MethodInvocation invocation) { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + if (outsideSqlContext != null) { + return null; // Because it has already finished setting up + // fetchNarrowingBean for outsideSql here. + } + + final ConditionBean cb; + { + final Object[] args = invocation.getArguments(); + if (args == null || args.length == 0) { + return null; + } + final Object arg0 = args[0]; + if (arg0 == null) { + return null; + } + if (!ConditionBeanContext.isTheTypeConditionBean(arg0.getClass())) {// The + // argument + // is + // not + // condition + // - + // bean + // ... + if (FetchNarrowingBeanContext.isTheTypeFetchNarrowingBean(arg0 + .getClass()) + && !isSelectCountIgnoreFetchScopeMethod(invocation)) { + // Fetch-narrowing-bean and Not select count! + FetchNarrowingBeanContext + .setFetchNarrowingBeanOnThread((FetchNarrowingBean) arg0); + } + return null; + } + cb = (ConditionBean) arg0; + } + + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xsetupSelectCountIgnoreFetchScope(); + } else { + FetchNarrowingBeanContext.setFetchNarrowingBeanOnThread(cb); + } + + ConditionBeanContext.setConditionBeanOnThread(cb); + return cb; + } + + /** + * Post-process condition-bean. + * + * @param invocation Method invocation. (NotNull) + * @param cb Condition-bean. (Nullable) + */ + protected void postprocessConditionBean(MethodInvocation invocation, + ConditionBean cb) { + if (cb == null) { + return; + } + if (isSelectCountIgnoreFetchScopeMethod(invocation)) { + cb.xafterCareSelectCountIgnoreFetchScope(); + } + } + + // ----------------------------------------------------- + // Clear Thread Local + // ------------------ + protected void clearThreadLocal() { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + OutsideSqlContext.clearOutsideSqlContextOnThread(); + } + if (FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + // Because there is possible that fetch narrowing has been ignored + // for manualPaging of outsideSql. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - - - - - - + FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread() + .restoreIgnoredFetchNarrowing(); + + FetchNarrowingBeanContext.clearFetchNarrowingBeanOnThread(); + } + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + ConditionBeanContext.clearConditionBeanOnThread(); + } + if (InternalMapContext.isExistInternalMapContextOnThread()) { + InternalMapContext.clearInternalMapContextOnThread(); + } + } + + //========================================================================== + // ========= + // Context Helper + // ============== + protected OutsideSqlContext getOutsideSqlContext() { + if (!OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + return null; + } + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + final OutsideSqlContext outsideSqlContext = getOutsideSqlContext(); + return outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql(); + } + + protected void putObjectToMapContext(String key, Object value) { + InternalMapContext.setObject(key, value); + } + + //========================================================================== + // ========= + // Determination + // ============= + /** + * Is select count ignore-fetch-scope method? + * + * @param invocation Method invocation. (NotNull) + * @return Determination. + */ + protected boolean isSelectCountIgnoreFetchScopeMethod( + MethodInvocation invocation) { + final String name = invocation.getMethod().getName(); + return name.startsWith("readCount") || name.startsWith("selectCount"); + } + + //========================================================================== + // ========= + // General Helper + // ============== + /** + * Is the method abstract? + * + * @param method Method. (NotNull) + * @return Determination. (NotNull) + */ + public boolean isAbstract(Method method) { + final int mod = method.getModifiers(); + return Modifier.isAbstract(mod); + } + + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected String getLineSeparator() { + return System.getProperty("line.separator"); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoInterceptor.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoLatestSqlProvider.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoLatestSqlProvider.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoLatestSqlProvider.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,20 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import jp.sf.pal.scheduler.db.allcommon.jdbc.LatestSqlProvider; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +/** + * The provider of latest SQL as S2Dao. This instance should be singleton. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoLatestSqlProvider implements LatestSqlProvider { + + public String getDisplaySql() { + return InternalSqlLogRegistry.peekCompleteSql(); + } + + public void clearSqlCache() { + InternalSqlLogRegistry.clearSqlLogRegistry(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoLatestSqlProvider.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataExtension.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataExtension.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataExtension.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1460 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.BehaviorSelector; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.annotation.OutsideSql; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException; +import jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException; +import jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException; +import jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.rshandler.InternalBeanArrayMetaDataResultSetHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.rshandler.InternalBeanListMetaDataResultSetHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteAutoStaticCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteBatchAutoStaticCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalDeleteQueryAutoDynamicCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalInsertAutoDynamicCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalInsertBatchAutoStaticCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalProcedureCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateAutoDynamicCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateBatchAutoStaticCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateDynamicCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateModifiedOnlyCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalUpdateQueryAutoDynamicCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalProcedureMetaDataFactory; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalRelationRowCreator; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalRowCreator; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.SqlCommand; +import org.seasar.dao.TableNaming; +import org.seasar.dao.dbms.DbmsManager; +import org.seasar.dao.impl.BeanMetaDataImpl; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.impl.ResultSetHandlerFactoryImpl; +import org.seasar.dao.impl.SelectDynamicCommand; +import org.seasar.dao.impl.UpdateAutoStaticCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.MethodNotFoundRuntimeException; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.MethodUtil; + +/** + * The extension of DaoMetaDataImpl for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoMetaDataExtension extends DaoMetaDataImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataExtension.class); + + //========================================================================== + // ========= + // Attribute + // ========= + /** Bean enhancer. */ + protected BeanEnhancer beanEnhancer; + + /** The factory of annotation reader. */ + protected org.seasar.dao.AnnotationReaderFactory annotationReaderFactory; + + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The selector of behavior. {Since DBFlute-0.7.1} */ + protected BehaviorSelector _behaviorSelector; + + /** The lock monitor of method initialization. */ + protected Object _methodInitializationLockMonitor = new Object(); + + /** The determination of internal debug. {Since DBFlute-0.6.2} */ + protected boolean _internalDebug; + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataExtension() { + } + + //========================================================================== + // ========= + // Initialize Override + // =================== + @Override + public void initialize() { + beanClass = daoAnnotationReader.getBeanClass(); + daoInterface = getDaoInterface(daoClass); + daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final Connection conn = getConnection();// It is first impact to + // Database! + try { + final DatabaseMetaData dbMetaData = getMetaData(conn); + dbms = DbmsManager.getDbms(getDatabaseProductName(dbMetaData)); + } finally { + close(conn); + } + this.beanMetaData = beanMetaDataFactory.createBeanMetaData( + daoInterface, beanClass); + checkSingleRowUpdateForAll = daoAnnotationReader + .isCheckSingleRowUpdate(); + + // Comment out for lazy-load! + // setupSqlCommand(); + } + + //========================================================================== + // ========= + // SqlCommand Setup Override + // ========================= + @Override + public SqlCommand getSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + synchronized (_methodInitializationLockMonitor) { + cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + if (_log.isDebugEnabled()) { + _log + .debug("...Getting sqlCommand as cache because the previous thread have already initilized."); + } + return cmd; + } + if (_log.isDebugEnabled()) { + _log.debug("...Initializing sqlCommand for " + methodName + + "()."); + } + cmd = initializeSqlCommand(methodName); + } + return cmd; + } + + protected SqlCommand initializeSqlCommand(String methodName) + throws MethodNotFoundRuntimeException { + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext != null + && outsideSqlContext.isSpecifiedOutsideSql()) { + return initializeSpecifiedOutsideSqlCommand(methodName, + outsideSqlContext); + } + } + final Method[] methods = daoBeanDesc.getMethods(methodName); + if (methods.length == 1 && MethodUtil.isAbstract(methods[0])) { + setupMethod(methods[0]); + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(methodName); + if (cmd != null) { + return cmd; + } + throw new MethodNotFoundRuntimeException(daoClass, methodName, null); + } + + protected SqlCommand initializeSpecifiedOutsideSqlCommand( + String sqlCommandKey, OutsideSqlContext outsideSqlContext) + throws MethodNotFoundRuntimeException { + final Method[] methods = daoBeanDesc.getMethods(outsideSqlContext + .getMethodName());// By real method name. + if (methods.length == 1 + && org.seasar.framework.util.MethodUtil.isAbstract(methods[0])) { + final Method method = methods[0]; + if (isOutsideSqlDaoMethodSelect(method)) { + setupSpecifiedOutsideSqlSelectCommand(sqlCommandKey, method, + outsideSqlContext); + } else if (isOutsideSqlDaoMethodCall(method)) { + setupSpecifiedOutsideSqlCallCommand(sqlCommandKey, method, + outsideSqlContext); + } else { + setupSpecifiedOutsideSqlExecuteCommand(sqlCommandKey, method, + outsideSqlContext); + } + } + final SqlCommand cmd = (SqlCommand) sqlCommands.get(sqlCommandKey); + if (cmd != null) { + return cmd; + } + String msg = "Internal Error! The sql-command is not found:"; + msg = msg + " sqlCommandKey=" + sqlCommandKey; + msg = msg + " sqlCommands=" + sqlCommands; + throw new IllegalStateException(msg); + } + + protected boolean isOutsideSqlDaoMethodSelect(Method method) { + return method.getName().startsWith("select"); + } + + protected boolean isOutsideSqlDaoMethodCall(Method method) { + return method.getName().startsWith("call"); + } + + //========================================================================== + // ========= + // Assert Override + // =============== + @Override + protected void setupMethodByAnnotation(Class daoInterface, Method method) { + final String sql = daoAnnotationReader.getSQL(method, dbms.getSuffix()); + assertSQLAnnotationUnsupported(method, sql); + super.setupMethodByAnnotation(daoInterface, method); + } + + protected void assertSQLAnnotationUnsupported(final Method method, + String sql) { + if (sql != null) { + throwS2DaoSQLAnnotationUnsupportedException(method, sql); + } + } + + protected void throwS2DaoSQLAnnotationUnsupportedException( + final Method method, String sql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "Sorry, the SQL annotation of S2Dao is unsupported on DBFlute!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please use outside-sql of behavior." + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " memberBhv.outsideSql().selectList(...)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "If you've got to use it, you can set the property:" + + getLineSeparator(); + msg = msg + "{torque.isCompatibleS2DaoSQLAnnotationValid = true}" + + getLineSeparator(); + msg = msg + "But pay attention to version up of DBFlute" + + getLineSeparator(); + msg = msg + + " because the property will not always supported at the future." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Method]" + getLineSeparator() + method + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQL]" + getLineSeparator() + sql + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + @Override + protected void setupMethodByAuto(Method method) { + final OutsideSql outsideSql = method.getAnnotation(OutsideSql.class); + if (outsideSql != null) { + String msg = "This method '" + method.getName() + + "()' should use Outside Sql but the file was not found!"; + msg = msg + " Expected sql file name is '" + + method.getDeclaringClass().getSimpleName() + "_" + + method.getName() + ".sql'"; + throw new IllegalStateException(msg); + } + super.setupMethodByAuto(method); + } + + //========================================================================== + // ========= + // ConditionBean Override + // ====================== + @Override + protected void setupSelectMethodByAuto(final Method method) { + if (setupInternalSelectMethodSequenceNextVal(method)) { // For sequence + return; + } + if (setupInternalSelectMethodEntityByIdsForBuri(method)) { // For Buri + return; + } + + // Assert unsupported + final String query = daoAnnotationReader.getQuery(method); + assertQueryAnnotationUnsupported(method, query); + final String[] argNames = daoAnnotationReader.getArgNames(method); + assertAutoQueryByArgsAnnotationUnsupported(method, argNames); + + // Here it is the only method that the argument is DTO. + final ResultSetHandler handler = createResultSetHandler(method); + final SqlCommand cmd = setupInternalNonQuerySelectMethodByDto(method, + handler); + + putSqlCommand(method.getName(), cmd); + } + + protected boolean setupInternalSelectMethodSequenceNextVal( + final Method method) { // For sequence + if (!"selectNextVal".equals(method.getName())) { + return false; + } + final DBMeta dbmeta = findDBMeta(); + if (!dbmeta.hasSequence()) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.hasSequence() should return true:"; + msg = msg + " dbmeta.hasSequence()=" + dbmeta.hasSequence() + + " method=" + method; + throw new IllegalStateException(msg); + } + final String nextValSql = dbmeta.getSequenceNextValSql(); + if (nextValSql == null) { + String msg = "If the method 'selectNextVal()' exists, DBMeta.getSequenceNextValSql() should not return null:"; + msg = msg + " dbmeta.getSequenceNextValSql()=" + + dbmeta.getSequenceNextValSql() + " method=" + method; + throw new IllegalStateException(msg); + } + setupSelectMethodByManual(method, nextValSql); + return true; + } + + protected boolean setupInternalSelectMethodEntityByIdsForBuri( + final Method method) { // For Buri + if (!"getEntityByIds".equals(method.getName())) { + return false; + } + final ResultSetHandler handler = createResultSetHandler(method); + final String[] argNames = daoAnnotationReader.getArgNames(method); + final String query = daoAnnotationReader.getQuery(method); + if (query == null) { + String msg = "The method 'getEntityByIds()' should have QUERY annotation:"; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + final Class[] types = method.getParameterTypes(); + final SelectDynamicCommand cmd = createSelectDynamicCommand(handler, + query); + cmd.setArgNames(argNames); + cmd.setArgTypes(types); + putSqlCommand(method.getName(), cmd); + return true; + } + + protected void assertQueryAnnotationUnsupported(final Method method, + String query) { + if (query != null) { + String msg = "Sorry! The QUERY annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " query=" + query + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + protected void assertAutoQueryByArgsAnnotationUnsupported( + final Method method, String[] argNames) { + if (!isAutoSelectSqlByDto(method, argNames)) { + String msg = "Sorry! The auto query by ARGS annotation of S2Dao is unsupported on DBFlute:"; + msg = msg + " argNames=" + argNames + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + // For condition-bean! + protected SqlCommand setupInternalNonQuerySelectMethodByDto(Method method, + ResultSetHandler handler) { + final Class[] argTypes = method.getParameterTypes(); + assertAutoQueryByDtoUnsupported(method, argTypes); + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(handler); + cmd.setArgNames(new String[] { "dto" }); + cmd.setArgTypes(argTypes); + return cmd; + } + + protected void assertAutoQueryByDtoUnsupported(final Method method, + Class[] argTypes) { + final Class firstArgType = argTypes[0]; + if (!ConditionBeanContext.isTheTypeConditionBean(firstArgType)) { + String msg = "Sorry! The auto query by DTO of S2Dao is unsupported on DBFlute:"; + msg = msg + " dto=" + firstArgType + " method=" + method; + throw new UnsupportedOperationException(msg); + } + } + + //========================================================================== + // ========= + // Insert and Update and Delete By Auto Override + // ============================================= + // ----------------------------------------------------- + // Insert + // ------ + @Override + protected void setupInsertMethodByAuto(final Method method) { + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand command; + if (isUpdateSignatureForBean(method)) { + final InternalInsertAutoDynamicCommand cmd = new InternalInsertAutoDynamicCommand(); + cmd.setBeanMetaData(getBeanMetaData()); + cmd.setDataSource(dataSource); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd.setPropertyNames(propertyNames); + cmd.setStatementFactory(statementFactory); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + command = cmd; + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + final InternalInsertBatchAutoStaticCommand cmd = new InternalInsertBatchAutoStaticCommand( + dataSource, statementFactory, getBeanMetaData(), + propertyNames, returningRows); + command = cmd; + } + putSqlCommand(method.getName(), command); + } + + // ----------------------------------------------------- + // Update + // ------ + @Override + protected void setupUpdateMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalUpdateQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + if (isUnlessNull(method.getName())) { + cmd = createInternalUpdateAutoDynamicCommand(method, + propertyNames); + } else if (isModifiedOnly(method.getName())) { + cmd = createInternalUpdateModifiedOnlyCommand(method, + propertyNames); + } else { + cmd = createInternalUpdateAutoStaticCommand(method, + propertyNames); + } + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalUpdateBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected UpdateAutoStaticCommand createInternalUpdateAutoStaticCommand( + final Method method, final String[] propertyNames) { + final UpdateAutoStaticCommand cmd = new UpdateAutoStaticCommand( + dataSource, statementFactory, beanMetaData, propertyNames); + cmd.setCheckSingleRowUpdate(isCheckSingleRowUpdate(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand createInternalUpdateAutoDynamicCommand( + Method method, String[] propertyNames) { + final InternalUpdateAutoDynamicCommand cmd = newUpdateAutoDynamicCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateAutoDynamicCommand newUpdateAutoDynamicCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateAutoDynamicCommand(ds, sf); + } + + protected InternalUpdateModifiedOnlyCommand createInternalUpdateModifiedOnlyCommand( + final Method method, final String[] propertyNames) { + final InternalUpdateModifiedOnlyCommand cmd = newInternalUpdateModifiedOnlyCommand( + method, dataSource, statementFactory); + cmd.setBeanMetaData(createBeanMetaData4UpdateDeleteByAuto(method));// Extension + // Point + // ! + cmd.setPropertyNames(propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + cmd + .setVersionNoAutoIncrementOnMemory(isUpdateVersionNoAutoIncrementOnMemory(method)); + return cmd; + } + + protected InternalUpdateModifiedOnlyCommand newInternalUpdateModifiedOnlyCommand( + Method method, DataSource ds, StatementFactory sf) { + return new InternalUpdateModifiedOnlyCommand(ds, sf); + } + + protected InternalUpdateBatchAutoStaticCommand createInternalUpdateBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalUpdateBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows, isUpdateVersionNoAutoIncrementOnMemory(method)) { + @Override + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Delete + // ------ + @Override + protected void setupDeleteMethodByAuto(final Method method) { + if (isFirstArgumentConditionBean(method)) { + final SqlCommand cmd = new InternalDeleteQueryAutoDynamicCommand( + dataSource, statementFactory); + putSqlCommand(method.getName(), cmd); + return; + } + checkAutoUpdateMethod(method); + final String[] propertyNames = getPersistentPropertyNames(method); + final SqlCommand cmd; + if (isUpdateSignatureForBean(method)) { + cmd = createInternalDeleteAutoStaticCommand(method, propertyNames); + } else { + boolean returningRows = false; + if (int[].class.isAssignableFrom(method.getReturnType())) { + returningRows = true; + } + cmd = createInternalDeleteBatchAutoStaticCommand(method, + propertyNames, returningRows); + } + putSqlCommand(method.getName(), cmd); + } + + protected InternalDeleteAutoStaticCommand createInternalDeleteAutoStaticCommand( + final Method method, final String[] propertyNames) { + final InternalDeleteAutoStaticCommand cmd = new InternalDeleteAutoStaticCommand( + dataSource, statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames); + cmd.setCheckSingleRowUpdate(!isNonstrictMethod(method)); + return cmd; + } + + protected InternalDeleteBatchAutoStaticCommand createInternalDeleteBatchAutoStaticCommand( + final Method method, final String[] propertyNames, + boolean returningRows) { + return new InternalDeleteBatchAutoStaticCommand(dataSource, + statementFactory, + createBeanMetaData4UpdateDeleteByAuto(method), propertyNames, + returningRows) { + @Override + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), + getPropertyTypes()) { + @Override + protected int[] executeBatch(PreparedStatement ps, + List list) { + final int[] result = super.executeBatch(ps, list); + try { + handleBatchUpdateResultWithOptimisticLock(ps, list, + result, method); + } catch (SQLException e) { + handleSQLException(e, ps, false); + return null;// Unreachable! + } + return result; + } + }; + } + }; + } + + // ----------------------------------------------------- + // Common Helper + // ------------- + protected BeanMetaData createBeanMetaData4UpdateDeleteByAuto(Method method) { + if (isNonstrictMethod(method)) { + return createNonConcurrencyBmdFactory().createBeanMetaData( + getBeanClass()); + } else { + return getBeanMetaData(); + } + } + + protected boolean isUpdateVersionNoAutoIncrementOnMemory(Method method) { + return !isNonstrictMethod(method); + } + + protected boolean isNonstrictMethod(Method method) { + return method.getName().contains("Nonstrict"); + } + + protected BeanMetaDataFactory createNonConcurrencyBmdFactory() { + final S2BeanMetaDataFactoryImpl nonConcurrencyBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return new BeanMetaDataImpl() { + public boolean hasVersionNoPropertyType() { + return false; + } + + public boolean hasTimestampPropertyType() { + return false; + } + }; + } + }; + nonConcurrencyBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + nonConcurrencyBmdFactory + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + nonConcurrencyBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + nonConcurrencyBmdFactory.setTableNaming(this.tableNaming); + nonConcurrencyBmdFactory.setDataSource(this.dataSource); + nonConcurrencyBmdFactory + .setDaoNamingConvention(this.daoNamingConvention); + nonConcurrencyBmdFactory.setBeanEnhancer(this.beanEnhancer); + return nonConcurrencyBmdFactory; + } + + protected boolean isFirstArgumentConditionBean(final Method method) { + final Class[] pmbTypes = method.getParameterTypes(); + return pmbTypes.length > 0 + && ConditionBean.class.isAssignableFrom(pmbTypes[0]); + } + + protected void handleBatchUpdateResultWithOptimisticLock( + PreparedStatement ps, List list, int[] result, Method method) + throws SQLException { + if (ConditionBeanContext.isOracle()) { + final int updateCount = ps.getUpdateCount(); + handleBatchUpdateResultWithOptimisticLockByUpdateCount(list, + updateCount, method); + } else { + handleBatchUpdateResultWithOptimisticLockByResult(list, result, + method); + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByUpdateCount( + List list, int updateCount, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (updateCount < 0) { + return;// for Safety! + } + final int entityCount = list.size(); + if (updateCount < entityCount) { + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " updateCount=" + updateCount; + msg = msg + " entityCount=" + entityCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(0), 0, + updateCount); + } + } + } + + protected void handleBatchUpdateResultWithOptimisticLockByResult( + List list, Object result, Method method) { + if (list.isEmpty()) { + return;// for Safety! + } + if (!(result instanceof int[])) { + return;// for Safety! + } + final int[] updatedCountArray = (int[]) result; + final int entityCount = list.size(); + int index = 0; + boolean alreadyUpdated = false; + for (int oneUpdateCount : updatedCountArray) { + if (entityCount <= index) { + break;// for Safety! + } + if (oneUpdateCount == 0) { + alreadyUpdated = true; + break; + } else if (oneUpdateCount > 1) { + String msg = "The entity updated two or more records in batch update:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updatedCount=" + oneUpdateCount; + msg = msg + " allEntities=" + list; + throw new EntityDuplicatedException(msg); + } + ++index; + } + if (alreadyUpdated) { + int updateCount = 0; + for (int oneUpdateCount : updatedCountArray) { + updateCount = updateCount + oneUpdateCount; + } + if (isNonstrictMethod(method)) { + String msg = "The entity have already deleted:"; + msg = msg + " entity=" + list.get(index); + msg = msg + " updateCount=" + updateCount; + msg = msg + " allEntities=" + list; + throw new EntityAlreadyDeletedException(msg); + } else { + throw new BatchEntityAlreadyUpdatedException(list.get(index), + 0, updateCount); + } + } + } + + //========================================================================== + // ========= + // OutsideSql Override + // =================== + // ----------------------------------------------------- + // Normal OutsideSql + // ----------------- + @Override + protected void setupSelectMethodByManual(Method method, String sql) { + final Class[] pmbTypes = method.getParameterTypes(); + final String[] argNames = this.daoAnnotationReader.getArgNames(method); + final Class[] argTypes; + if (pmbTypes != null + && pmbTypes.length > 0 + && CursorHandler.class + .isAssignableFrom(pmbTypes[pmbTypes.length - 1])) { + argTypes = new Class[pmbTypes.length - 1]; + for (int i = 0; i < pmbTypes.length - 1; i++) { + argTypes[i] = pmbTypes[i]; + } + } else { + argTypes = pmbTypes; + } + final BeanMetaData myBeanMetaData = getOutsideSqlBeanMetaData(method); + registerSqlCommand(method.getName(), method, sql, argNames, argTypes, + myBeanMetaData); + } + + protected BeanMetaData getOutsideSqlBeanMetaData(Method method) { + final Class beanClass4SelectMethodByManual = getOutsideSqlDefaultBeanClass(method); + if (beanClass4SelectMethodByManual.equals(getBeanClass())) { + return getBeanMetaData(); + } + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + @Override + protected void setupUpdateMethodByManual(Method method, final String sql) { + // DBFlute Extesion does not exist. Because DBFlute methods don't use + // this! + // The insert/update/delete methods on DAO interface as outside SQL are + // target. + // And especially NonPrimaryInsertMethod uses this for using S2Dao's + // BindVariableNode. + super.setupUpdateMethodByManual(method, sql); + } + + // ----------------------------------------------------- + // Specified OutsideSql + // -------------------- + // - - - - - - - - - - - - + // Select + // - - - + protected void setupSpecifiedOutsideSqlSelectCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + final Object resultTypeSpecification = outsideSqlContext + .getResultTypeSpecification(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + // - - - - - - - - - - - - - - - - + // Create customized BeanMetaData. + // - - - - - - - - - - - - - - - - + final Class lastestArguementType = method.getParameterTypes()[method + .getParameterTypes().length - 1]; + final ResultSetHandler myResultSetHandler; + if (Class.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // EntityHandling + // - - - - - - - - + final Class customizeEntityType = (Class) resultTypeSpecification; + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCustomizeBeanMetaData(customizeEntityType); + if (List.class.isAssignableFrom(method.getReturnType())) { + myResultSetHandler = createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + myBeanMetaData, customizeEntityType); + } else { + throw new UnsupportedOperationException( + "The return type of method is unsupported: method.getReturnType()=" + + method.getReturnType()); + // myResultSetHandler = + // createSpecifiedOutsideSqlCustomizeBeanResultSetHandler + // (myBeanMetaData, customizeEntityType); + } + } else if (CursorHandler.class.isAssignableFrom(lastestArguementType)) { + // - - - - - - - - + // CursorHandling + // - - - - - - - - + final BeanMetaData myBeanMetaData = createSpecifiedOutsideSqlCursorBeanMetaData(method); + myResultSetHandler = createSpecifiedOutsideSqlCursorResultSetHandler(myBeanMetaData); + } else { + String msg = "The lastestArguementType is unsupported:"; + msg = msg + " lastestArguementType=" + lastestArguementType; + msg = msg + " method=" + method; + throw new IllegalStateException(msg); + } + + // - - - - - - - - - - - + // Register Sql-Command. + // - - - - - - - - - - - + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + myResultSetHandler); + } + + protected BeanMetaData createSpecifiedOutsideSqlCustomizeBeanMetaData( + Class clazz) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(clazz); + } + + /** + * Create the handler of result set of specified outside-sql for the list of + * customize bean. + * + * @param specifiedBeanMetaData Specified bean meta data. (NotNull) + * @param customizeEntityType The type of customize entity. (NotNull) + * @return The handler of result set. (NotNull) + */ + protected ResultSetHandler createSpecifiedOutsideSqlCustomizeBeanListResultSetHandler( + BeanMetaData specifiedBeanMetaData, Class customizeEntityType) { + final ValueType valueType = ValueTypes + .getValueType(customizeEntityType); + if (valueType == null || !valueType.equals(ValueTypes.OBJECT)) { + return new InternalObjectListResultSetHandler(valueType); + } + final InternalRowCreator rowCreator = createSpecifiedOutsideSqlInternalRowCreator(specifiedBeanMetaData); + final InternalRelationRowCreator relationRowCreator = createSpecifiedOutsideSqlInternalRelationRowCreator(specifiedBeanMetaData); + return new InternalBeanListMetaDataResultSetHandler( + specifiedBeanMetaData, rowCreator, relationRowCreator); + } + + protected InternalRowCreator createSpecifiedOutsideSqlInternalRowCreator( + BeanMetaData bmd) { + final Class clazz = bmd.getBeanClass(); + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createSpecifiedOutsideSqlInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); + } + + protected class InternalObjectListResultSetHandler implements + ResultSetHandler { + private ValueType valueType; + + public InternalObjectListResultSetHandler(ValueType valueType) { + this.valueType = valueType; + } + + public Object handle(ResultSet rs) throws SQLException { + final List ret = new ArrayList(); + while (rs.next()) { + ret.add(valueType.getValue(rs, 1)); + } + return ret; + } + } + + protected BeanMetaData createSpecifiedOutsideSqlCursorBeanMetaData( + Method method) { + return createOutsideSqlCustomizeBeanMetaDataFactory() + .createBeanMetaData(getOutsideSqlDefaultBeanClass(method)); + } + + protected ResultSetHandler createSpecifiedOutsideSqlCursorResultSetHandler( + BeanMetaData specifiedBeanMetaData) { + return new org.seasar.extension.jdbc.impl.ObjectResultSetHandler();// This + // is + // dummy + // for + // cursor + // handling + // ! + } + + // - - - - - - - - - - - - + // Execute + // - - - - + protected void setupSpecifiedOutsideSqlExecuteCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final String sql = outsideSqlContext.readFilteredOutsideSql( + getSqlFileEncoding(), dbms.getSuffix()); + final Object pmb = outsideSqlContext.getParameterBean(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final String[] argNames = (pmb != null ? new String[] { "pmb" } + : new String[] {}); + final Class[] argTypes = (pmb != null ? new Class[] { pmb + .getClass() } : new Class[] {}); + + final InternalUpdateDynamicCommand cmd = new InternalUpdateDynamicCommand( + dataSource, statementFactory) { + @Override + public Object execute(Object[] args) { + if (args.length != 3) { + String msg = "Internal Error! OutsideSqlDao.execute() should have 3 arguements: args.length=" + + args.length; + throw new IllegalStateException(msg); + } + Object arg = args[1]; + return super.execute(new Object[] { arg }); + } + }; + + // It is unnecessary for DBFlute! + // cmd.setNotSingleRowUpdatedExceptionClass( + // getNotSingleRowUpdatedExceptionClass(method)); + + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + // - - - - - - - - - - - - + // Call Procedure + // - - - - - - - + protected void setupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, + Method method, OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - - - - - - - + // The attribute of Specified-OutsideSqlContext. + // - - - - - - - - - - - - - - - - - - - - - - - + final Object pmb = outsideSqlContext.getParameterBean(); + final String procedureName = outsideSqlContext.getOutsideSqlPath(); + + // - - - - - - - - - - - - - - - + // The attribute of SqlCommand. + // - - - - - - - - - - - - - - - + final InternalProcedureMetaDataFactory factory = createInternalProcedureMetaDataFactory(); + factory.setValueTypeFactory(valueTypeFactory); + final Class pmbType = pmb != null ? pmb.getClass() : null; + final InternalProcedureMetaData metaData = factory + .createProcedureMetaData(procedureName, pmbType); + final InternalProcedureCommand cmd = createInternalProcedureCommand( + method, metaData); + putSqlCommand(sqlCommandKey, cmd); + } + + protected InternalProcedureMetaDataFactory createInternalProcedureMetaDataFactory() { + return new InternalProcedureMetaDataFactory(); + } + + protected InternalProcedureCommand createInternalProcedureCommand( + Method method, InternalProcedureMetaData metaData) { + final ResultSetHandler resultSetHandler = createResultSetHandler(method); + return new InternalProcedureCommand(dataSource, resultSetHandler, + statementFactory, metaData); + } + + // ----------------------------------------------------- + // Common of OutsideSql + // -------------------- + protected BeanMetaDataFactory createOutsideSqlCustomizeBeanMetaDataFactory() { + final S2BeanMetaDataFactoryImpl originalBmdFactory = new S2BeanMetaDataFactoryImpl() { + protected BeanMetaDataImpl createBeanMetaDataImpl() { + return newOutsideSqlCustomizeBeanMetaDataImpl(); + } + }; + originalBmdFactory + .setAnnotationReaderFactory(this.annotationReaderFactory); + originalBmdFactory + .setPropertyTypeFactoryBuilder(createOutsideSqlPropertyTypeFactoryBuilder()); + originalBmdFactory + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + originalBmdFactory.setTableNaming(this.tableNaming); + originalBmdFactory.setDataSource(this.dataSource); + originalBmdFactory.setDaoNamingConvention(this.daoNamingConvention); + originalBmdFactory.setBeanEnhancer(this.beanEnhancer); + return originalBmdFactory; + } + + protected BeanMetaDataImpl newOutsideSqlCustomizeBeanMetaDataImpl() { + return new OutsideSqlCustomizeBeanMetaDataImpl(); + } + + protected static class OutsideSqlCustomizeBeanMetaDataImpl extends + BeanMetaDataImpl { + // Though nothing to override, it uses original class just in case. + } + + protected S2DaoPropertyTypeFactoryBuilderExtension createOutsideSqlPropertyTypeFactoryBuilder() { + final S2DaoPropertyTypeFactoryBuilderExtension impl = new S2DaoPropertyTypeFactoryBuilderExtension(); + if (columnNaming == null) { + String msg = "Internal Error! The columnNaming should not be null! {Failed to Injection!}"; + throw new IllegalStateException(msg); + } + impl.setColumnNaming(columnNaming); + impl.setValueTypeFactory(valueTypeFactory); + return impl; + } + + protected Class getOutsideSqlDefaultBeanClass(Method method) { + final Class retType = method.getReturnType(); + if (java.util.List.class.isAssignableFrom(retType)) { + final Class elementType = InternalMethodUtil + .getElementTypeOfListFromReturnMethod(method); + if (elementType != null) { + return elementType; + } else { + return getBeanClass(); + } + } else if (retType.isArray()) { + return retType.getComponentType(); + } else if (retType.isPrimitive() + || !ValueTypes.getValueType(retType).equals(ValueTypes.OBJECT)) { + return getBeanClass(); + } else { + return retType; + } + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + BeanMetaData myBeanMetaData) { + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, + createResultSetHandler(myBeanMetaData, method)); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + ResultSetHandler myResultSetHandler) { + final S2DaoSelectDynamicCommand cmd = createCustomizeSelectDynamicCommand(myResultSetHandler); + registerSqlCommand(sqlCommandKey, method, sql, argNames, argTypes, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + S2DaoSelectDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + protected void registerSqlCommand(String sqlCommandKey, Method method, + String sql, String[] argNames, Class[] argTypes, + InternalUpdateDynamicCommand cmd) { + cmd.setSql(sql); + cmd.setArgNames(argNames); + cmd.setArgTypes(argTypes); + this.sqlCommands.put(sqlCommandKey, cmd); + } + + //========================================================================== + // ========= + // Common Handlnig + // =============== + @Override + protected void putSqlCommand(String methodName, SqlCommand cmd) { + sqlCommands.put(methodName, cmd); + } + + protected boolean isCheckSingleRowUpdate(Method method) { + return checkSingleRowUpdateForAll + & daoAnnotationReader.isCheckSingleRowUpdate(method); + } + + //========================================================================== + // ========= + // Customize SelectDynamicCommand Creation + // ======================================= + /** + * Create the customize select dynamic command that is for all select SQL on + * DBFlute. + * + * @param handler The handler of result set. (NotNull) + * @return The customize select dynamic command. (NotNull) + */ + protected S2DaoSelectDynamicCommand createCustomizeSelectDynamicCommand( + ResultSetHandler handler) { + return new S2DaoSelectDynamicCommand(dataSource, statementFactory, + handler); + } + + //========================================================================== + // ========= + // ResultSetHandler Override + // ========================= + @Override + protected ResultSetHandler createResultSetHandler(Method method) { + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, beanMetaData, method); + } + + protected ResultSetHandler createResultSetHandler( + BeanMetaData specifiedBeanMetaData, Method method) {// For specified + // BeanMetaData + return this.resultSetHandlerFactory.getResultSetHandler( + daoAnnotationReader, specifiedBeanMetaData, method); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected DatabaseMetaData getMetaData(Connection conn) { + try { + return conn.getMetaData(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected String getDatabaseProductName(DatabaseMetaData dbMetaData) { + try { + return dbMetaData.getDatabaseProductName(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Exception Handlnig + // ================== + protected void handleSQLException(SQLException e, Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + + //========================================================================== + // ========= + // ResultSetHandlerFactoryImpl Extension + // ===================================== + public static class ResultSetHandlerFactoryExtension extends + ResultSetHandlerFactoryImpl { + public ResultSetHandlerFactoryExtension() { + super(); + } + + @Override + protected RowCreator createRowCreator() { // [DAO-118] (2007/08/25) + return createInternalRowCreator(null); + } + + @Override + protected RelationRowCreator createRelationRowCreator() { + return createInternalRelationRowCreator(null); + } + + @Override + protected ResultSetHandler createBeanListMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanListMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + @Override + protected ResultSetHandler createBeanArrayMetaDataResultSetHandler( + BeanMetaData bmd) { // DBFlute Target + final InternalRowCreator rowCreator = createInternalRowCreator(bmd); + final InternalRelationRowCreator relationRowCreator = createInternalRelationRowCreator(bmd); + return new InternalBeanArrayMetaDataResultSetHandler(bmd, + rowCreator, relationRowCreator); + } + + protected InternalRowCreator createInternalRowCreator(BeanMetaData bmd) { + final Class clazz = bmd != null ? bmd.getBeanClass() : null; + return InternalRowCreator.createInternalRowCreator(clazz); + } + + protected InternalRelationRowCreator createInternalRelationRowCreator( + BeanMetaData bmd) { + return new InternalRelationRowCreator(); // Not yet implemented + // about performance + // tuning! + } + } + + //========================================================================== + // ========= + // Vert Internal + // ============= + protected static class InternalMethodUtil { + public static Class getElementTypeOfListFromReturnMethod(Method method) { + return InternalReflectionUtil + .getElementTypeOfListFromReturnType(method); + } + } + + protected static class InternalReflectionUtil { + public static Class getElementTypeOfList(final Type parameterizedList) { + if (!(parameterizedList instanceof ParameterizedType)) { + return null; + } + final ParameterizedType parameterizedType = ParameterizedType.class + .cast(parameterizedList); + final Type rawType = parameterizedType.getRawType(); + if (!(rawType instanceof Class)) { + return null; + } + final Class rawClass = Class.class.cast(rawType); + if (!rawClass.isAssignableFrom(List.class)) { + return null; + } + final Type[] actualTypeArgument = parameterizedType + .getActualTypeArguments(); + if (actualTypeArgument == null || actualTypeArgument.length != 1) { + return null; + } + if (!(actualTypeArgument[0] instanceof Class)) { + return null; + } + return Class.class.cast(actualTypeArgument[0]); + } + + public static Class getElementTypeOfListFromParameterType( + final Method method, final int parameterPosition) { + final Type[] pmbTypes = method.getGenericParameterTypes(); + return getElementTypeOfList(pmbTypes[parameterPosition]); + } + + public static Class getElementTypeOfListFromReturnType( + final Method method) { + return getElementTypeOfList(method.getGenericReturnType()); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected DBMeta findDBMeta() { + final Class beanType = getBeanClass(); + if (beanType == null) { + return null; + } + if (!Entity.class.isAssignableFrom(beanType)) { + return null; + } + final Entity entity; + try { + entity = (Entity) beanType.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + return entity.getDBMeta(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Sql File Encoding + // ----------------- + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + // ----------------------------------------------------- + // Bean Enhancer + // ------------- + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Annotation Reader Factory + // ------------------------- + public void setAnnotationReaderFactory( + org.seasar.dao.AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + public BehaviorSelector getBehaviorSelector() { + return _behaviorSelector; + } + + public void setBehaviorSelector(final BehaviorSelector behaviorSelector) { + this._behaviorSelector = behaviorSelector; + } + + public boolean isInternalDebug() { + return _internalDebug; + } + + public void setInternalDebug(final boolean internalDebug) { + this._internalDebug = internalDebug; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,655 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; +import javax.sql.XADataSource; + +import jp.sf.pal.scheduler.db.allcommon.DBFluteConfig; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.jdbc.StatementConfig; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; + +import org.seasar.dao.AnnotationReaderFactory; +import org.seasar.dao.BeanEnhancer; +import org.seasar.dao.BeanMetaDataFactory; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.DaoAnnotationReader; +import org.seasar.dao.DaoMetaData; +import org.seasar.dao.DaoMetaDataFactory; +import org.seasar.dao.DaoNamingConvention; +import org.seasar.dao.DtoMetaDataFactory; +import org.seasar.dao.ProcedureMetaDataFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.RelationPropertyTypeFactoryBuilder; +import org.seasar.dao.ResultSetHandlerFactory; +import org.seasar.dao.TableNaming; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.DaoMetaDataImpl; +import org.seasar.dao.pager.PagingSqlRewriter; +import org.seasar.extension.jdbc.ResultSetFactory; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.Disposable; +import org.seasar.framework.util.DisposableUtil; + +/** + * The implementation of DaoMetaDataFactory for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ +public class S2DaoMetaDataFactoryImpl implements DaoMetaDataFactory, Disposable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log-instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(S2DaoMetaDataFactoryImpl.class); + + // ----------------------------------------------------- + // For Logging + // ----------- + /** The binding annotation for xaDataSource. {bindingType=may} */ + public static final String xaDataSource_BINDING = "bindingType=may"; + + // ----------------------------------------------------- + // Factory Basic + // ------------- + public static final String dataSource_BINDING = "bindingType=must"; + + public static final String annotationReaderFactory_BINDING = "bindingType=must"; + + public static final String valueTypeFactory_BINDING = "bindingType=must"; + + public static final String beanMetaDataFactory_BINDING = "bindingType=must"; + + public static final String daoNamingConvention_BINDING = "bindingType=must"; + + public static final String resultSetHandlerFactory_BINDING = "bindingType=must"; + + public static final String dtoMetaDataFactory_BINDING = "bindingType=must"; + + public static final String procedureMetaDataFactory_BINDING = "bindingType=must"; + + public static final String pagingSQLRewriter_BINDING = "bindingType=may"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Factory Basic + // ------------- + protected DataSource dataSource; + + protected AnnotationReaderFactory annotationReaderFactory; + + protected ValueTypeFactory valueTypeFactory; + + protected BeanMetaDataFactory beanMetaDataFactory; + + protected DaoNamingConvention daoNamingConvention; + + protected ResultSetHandlerFactory resultSetHandlerFactory; + + protected DtoMetaDataFactory dtoMetaDataFactory; + + protected ProcedureMetaDataFactory procedureMetaDataFactory; + + protected PagingSqlRewriter pagingSqlRewriter; + + protected Map daoMetaDataCache = new HashMap(); + + protected boolean initialized; + + protected boolean useDaoClassForLog; + + protected String sqlFileEncoding; + + protected BeanEnhancer beanEnhancer; + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + /** The naming of column. {After S2Dao-1.0.47} */ + protected ColumnNaming columnNaming; + + /** The builder of property type factory. {After S2Dao-1.0.47} */ + protected PropertyTypeFactoryBuilder propertyTypeFactoryBuilder; + + /** The builder of relation property type factory. {After S2Dao-1.0.47} */ + protected RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder; + + /** The builder of table naming. {After S2Dao-1.0.47} */ + protected TableNaming tableNaming; + + // ----------------------------------------------------- + // DBFlute Extension + // ----------------- + /** The lock monitor of DAO meta data initialization. */ + protected Object _daoMetaDataInitializationLockMonitor = new Object(); + + //========================================================================== + // ========= + // Constructor + // =========== + public S2DaoMetaDataFactoryImpl(DataSource dataSource, + AnnotationReaderFactory annotationReaderFactory, + XADataSource xaDataSource) { + this.dataSource = dataSource; + this.annotationReaderFactory = annotationReaderFactory; + + _log + .info("/* * * * * * * * * * * * * * * * * * * * * * * * * * * * {DBFlute}"); + showInformation(dataSource, xaDataSource); + + // Stop the LinkageError! + ConditionBeanContext.initialize(); + + initializeDatabaseProductNameOfContext(xaDataSource); + + handleSqlLogRegistry(); + + DBFluteConfig.getInstance().lock(); + _log.info("* * * * */"); + } + + protected void showInformation(javax.sql.DataSource dataSource, + javax.sql.XADataSource xaDataSource) { + final StringBuilder sb = new StringBuilder(); + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + final String url = xaDataSourceImpl.getURL(); + final String user = xaDataSourceImpl.getUser(); + sb.append(" [XADataSource]:").append(getLineSeparator()); + sb.append(" driver = " + driverClassName).append( + getLineSeparator()); + sb.append(" url = " + url).append(getLineSeparator()); + sb.append(" user = " + user); + } + _log.info("{Injection Information}" + getLineSeparator() + sb); + } + + protected void handleSqlLogRegistry() { + final StringBuilder sb = new StringBuilder(); + sb.append("{SqlLog Information}").append(getLineSeparator()); + sb.append(" [SqlLogRegistry]").append(getLineSeparator()); + if (DBFluteConfig.getInstance().isUseSqlLogRegistry()) { + if (InternalSqlLogRegistry.setupSqlLogRegistry()) { + sb + .append( + " ...Setting up SqlLogRegistry(org.seasar.extension.jdbc)!") + .append(getLineSeparator()); + sb + .append(" Because the property 'useSqlLogRegistry' of the config of DBFlute is true."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not supported at the version!"); + } + } else { + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + if (sqlLogRegistry != null) { + InternalSqlLogRegistry.closeRegistration(); + sb + .append( + " SqlLogRegistry(org.seasar.extension.jdbc) is close! It's default for DBFlute.") + .append(getLineSeparator()); + sb + .append(" If you want to use this, set SqlLogRegistry to SqlLogRegistryLocator at yourself."); + } else { + sb + .append(" SqlLogRegistry(org.seasar.extension.jdbc) is not available!"); + } + } + _log.info(sb); + } + + // ----------------------------------------------------- + // Database Product Name + // --------------------- + protected void initializeDatabaseProductNameOfContext( + javax.sql.XADataSource xaDataSource) { + if (getDatabaseProductNameFromContext() != null) { + return; + } + + // From JDBC Driver! + if (xaDataSource != null + && xaDataSource instanceof org.seasar.extension.dbcp.impl.XADataSourceImpl) { + final org.seasar.extension.dbcp.impl.XADataSourceImpl xaDataSourceImpl = (org.seasar.extension.dbcp.impl.XADataSourceImpl) xaDataSource; + final String driverClassName = xaDataSourceImpl + .getDriverClassName(); + if (driverClassName != null) { + if (setupDatabaseProductNameByDriverClassName(driverClassName)) { + _log + .info("...Initializing database product name from driverClassName: " + + getDatabaseProductNameFromContext()); + return; + } + } + } + + _log.info("...Initializing database product name as default: H2"); + setDatabaseProductNameToContext("H2"); + } + + protected String getDatabaseProductNameFromContext() { + return ConditionBeanContext.getDatabaseProductName(); + } + + protected void setDatabaseProductNameToContext(String name) { + ConditionBeanContext.setDatabaseProductName(name); + } + + protected boolean setupDatabaseProductNameByDriverClassName( + String driverClassName) { + return ConditionBeanContext + .setupDatabaseProductNameByDriverClassName(driverClassName); + } + + //========================================================================== + // ========= + // Implementation + // ============== + @SuppressWarnings("unchecked") + public DaoMetaData getDaoMetaData(final Class daoClass) { + if (!initialized) { + DisposableUtil.add(this); + initialized = true; + } + final String key = daoClass.getName(); + + // [A] + DaoMetaData dmd = getSynchronizedDaoMetaDataCache(key); + + // [B] + if (dmd != null) { + return dmd; + } + + // [C] + synchronized (_daoMetaDataInitializationLockMonitor) {// One Thread Only + // Entered + // [D] + dmd = getSynchronizedDaoMetaDataCache(key); + // [E] + if (dmd != null) { + // The second thread that stops at [C] can find + // because the first thread have already initialized. + if (_log.isDebugEnabled()) { + _log + .debug("...Getting daoMetaData as cache because the previous thread have already initilized."); + } + return dmd; + } + // [F] + if (_log.isDebugEnabled()) { + _log.debug("...Creating daoMetaData for " + + daoClass.getSimpleName() + "."); + } + final DaoMetaData dmdi = createDaoMetaData(daoClass); + putSynchronizedDaoMetaDataCache(key, dmdi); + } + // [G] + dmd = getSynchronizedDaoMetaDataCache(key); + if (dmd != null) { + return dmd; + } + String msg = "The cache should have data meta data here: key=" + key + + " cache=" + daoMetaDataCache; + throw new IllegalStateException(msg); + } + + @SuppressWarnings("unchecked") + protected void putSynchronizedDaoMetaDataCache(String key, DaoMetaData dmd) { + synchronized (daoMetaDataCache) { + daoMetaDataCache.put(key, dmd); + } + } + + protected DaoMetaData getSynchronizedDaoMetaDataCache(String key) { + DaoMetaData dmd = null; + synchronized (daoMetaDataCache) { + dmd = (DaoMetaData) daoMetaDataCache.get(key); + } + return dmd; + } + + //========================================================================== + // ========= + // DataMetaData Creation + // ===================== + protected DaoMetaData createDaoMetaData(final Class daoClass) { + final BeanDesc daoBeanDesc = BeanDescFactory.getBeanDesc(daoClass); + final DaoAnnotationReader daoAnnotationReader = annotationReaderFactory + .createDaoAnnotationReader(daoBeanDesc); + + final DaoMetaDataImpl daoMetaData = createDaoMetaDataExtension(); + daoMetaData.setDaoClass(daoClass); + daoMetaData.setDataSource(dataSource); + daoMetaData.setStatementFactory(createCustomizeStatememtFactory()); + daoMetaData.setResultSetFactory(createCustomizeResultSetFactory()); + daoMetaData.setValueTypeFactory(valueTypeFactory); + daoMetaData.setBeanMetaDataFactory(getBeanMetaDataFactory()); + daoMetaData.setDaoNamingConvention(getDaoNamingConvention()); + daoMetaData.setUseDaoClassForLog(useDaoClassForLog); + daoMetaData.setDaoAnnotationReader(daoAnnotationReader); + daoMetaData.setProcedureMetaDataFactory(procedureMetaDataFactory); + daoMetaData.setDtoMetaDataFactory(dtoMetaDataFactory); + daoMetaData.setResultSetHandlerFactory(resultSetHandlerFactory); + if (sqlFileEncoding != null) { + daoMetaData.setSqlFileEncoding(sqlFileEncoding); + } + if (pagingSqlRewriter != null) { + daoMetaData.setPagingSQLRewriter(pagingSqlRewriter); + } + daoMetaData.initialize(); + return daoMetaData; + } + + protected S2DaoMetaDataExtension createDaoMetaDataExtension() { + final S2DaoMetaDataExtension dmdExtension = newDaoMetaDataExtension(); + dmdExtension.setBeanEnhancer(beanEnhancer); + dmdExtension.setAnnotationReaderFactory(this.annotationReaderFactory); + dmdExtension.setColumnNaming(this.columnNaming); + dmdExtension + .setPropertyTypeFactoryBuilder(this.propertyTypeFactoryBuilder); + dmdExtension + .setRelationPropertyTypeFactoryBuilder(this.relationPropertyTypeFactoryBuilder); + dmdExtension.setTableNaming(tableNaming); + dmdExtension.setInternalDebug(DBFluteConfig.getInstance() + .isInternalDebug()); + return dmdExtension; + } + + protected S2DaoMetaDataExtension newDaoMetaDataExtension() { + return new S2DaoMetaDataExtension(); + } + + //========================================================================== + // ========= + // Result Set Factory + // ================== + /** + * Create the customize result set factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected ResultSetFactory createCustomizeResultSetFactory() { + return new FetchNarrowingResultSetFactory(); + } + + //========================================================================== + // ========= + // Statement Factory + // ================= + /** + * Create the customize statement factory that is for all SQL on DBFlute. + * + * @return The customize statement factory. (NotNull) + */ + protected StatementFactory createCustomizeStatememtFactory() { + final StatementConfig defaultStatementConfig = DBFluteConfig + .getInstance().getDefaultStatementConfig(); + final boolean internalDebug = DBFluteConfig.getInstance() + .isInternalDebug(); + return new StatementFactory() { + public PreparedStatement createPreparedStatement(Connection con, + String sql) { + try { + final StatementConfig config = findStatementConfigOnThread(); + ; + final int resultSetType; + if (config != null && config.hasResultSetType()) { + resultSetType = config.getResultSetType(); + } else if (defaultStatementConfig != null + && defaultStatementConfig.hasResultSetType()) { + resultSetType = defaultStatementConfig + .getResultSetType(); + } else { + resultSetType = java.sql.ResultSet.TYPE_FORWARD_ONLY; + } + final int resultSetConcurrency = java.sql.ResultSet.CONCUR_READ_ONLY; + if (internalDebug) { + _log.debug("...Creating prepareStatement(sql, " + + resultSetType + ", " + resultSetConcurrency + + ")"); + } + final PreparedStatement ps = con.prepareStatement(sql, + resultSetType, resultSetConcurrency); + if (config != null && config.hasStatementOptions()) { + if (internalDebug) { + _log + .debug("...Setting statement config as request: " + + config); + } + reflectStatementOptions(config, ps); + } else { + reflectDefaultOptionsToStatementIfNeeds(ps); + } + return ps; + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + public CallableStatement createCallableStatement(Connection conn, + String sql) { + return prepareCall(conn, sql); + } + + protected StatementConfig findStatementConfigOnThread() { + final StatementConfig config; + if (ConditionBeanContext.isExistConditionBeanOnThread()) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + config = cb.getStatementConfig(); + } else if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + config = context.getStatementConfig(); + } else { + config = null; + } + return config; + } + + protected void reflectDefaultOptionsToStatementIfNeeds( + PreparedStatement ps) { + if (defaultStatementConfig != null + && defaultStatementConfig.hasStatementOptions()) { + if (internalDebug) { + _log.debug("...Setting statement config as default: " + + defaultStatementConfig); + } + reflectStatementOptions(defaultStatementConfig, ps); + return; + } + } + + protected void reflectStatementOptions(StatementConfig config, + PreparedStatement ps) { + try { + if (config.hasQueryTimeout()) { + ps.setQueryTimeout(config.getQueryTimeout()); + } + if (config.hasFetchSize()) { + ps.setFetchSize(config.getFetchSize()); + } + if (config.hasMaxRows()) { + ps.setMaxRows(config.getMaxRows()); + } + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + + protected CallableStatement prepareCall(Connection conn, String sql) { + try { + return conn.prepareCall(sql); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected void handleSQLException(SQLException e, + Statement statement) { + new SQLExceptionHandler().handleSQLException(e, statement); + } + }; + } + + //========================================================================== + // ========= + // Dispose + // ======= + public synchronized void dispose() { + daoMetaDataCache.clear(); + initialized = false; + } + + //========================================================================== + // ========= + // Helper + // ====== + /** + * Get the value of line separator. + * + * @return The value of line separator. (NotNull) + */ + protected static String getLineSeparator() { + return System.getProperty("line.separator"); + } + + //========================================================================== + // ========= + // Accessor + // ======== + // ----------------------------------------------------- + // Factory Basic + // ------------- + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected BeanMetaDataFactory getBeanMetaDataFactory() { + return beanMetaDataFactory; + } + + public void setBeanMetaDataFactory( + final BeanMetaDataFactory beanMetaDataFactory) { + this.beanMetaDataFactory = beanMetaDataFactory; + } + + public DaoNamingConvention getDaoNamingConvention() { + return daoNamingConvention; + } + + public void setDaoNamingConvention( + final DaoNamingConvention daoNamingConvention) { + this.daoNamingConvention = daoNamingConvention; + } + + public void setAnnotationReaderFactory( + final AnnotationReaderFactory annotationReaderFactory) { + this.annotationReaderFactory = annotationReaderFactory; + } + + public void setDataSource(final DataSource dataSource) { + this.dataSource = dataSource; + } + + public void setUseDaoClassForLog(final boolean userDaoClassForLog) { + useDaoClassForLog = userDaoClassForLog; + } + + public void setResultSetHandlerFactory( + final ResultSetHandlerFactory resultSetHandlerFactory) { + this.resultSetHandlerFactory = resultSetHandlerFactory; + } + + public void setDtoMetaDataFactory( + final DtoMetaDataFactory dtoMetaDataFactory) { + this.dtoMetaDataFactory = dtoMetaDataFactory; + } + + public void setProcedureMetaDataFactory( + ProcedureMetaDataFactory procedureMetaDataFactory) { + this.procedureMetaDataFactory = procedureMetaDataFactory; + } + + public void setPagingSQLRewriter(final PagingSqlRewriter pagingSqlRewriter) { + this.pagingSqlRewriter = pagingSqlRewriter; + } + + public String getSqlFileEncoding() { + return sqlFileEncoding; + } + + public void setSqlFileEncoding(final String encoding) { + sqlFileEncoding = encoding; + } + + public BeanEnhancer getBeanEnhancer() { + return beanEnhancer; + } + + public void setBeanEnhancer(final BeanEnhancer beanEnhancer) { + this.beanEnhancer = beanEnhancer; + } + + // ----------------------------------------------------- + // Version After 1.0.47 + // -------------------- + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(final ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } + + public PropertyTypeFactoryBuilder getPropertyTypeFactoryBuilder() { + return propertyTypeFactoryBuilder; + } + + public void setPropertyTypeFactoryBuilder( + final PropertyTypeFactoryBuilder propertyTypeFactoryBuilder) { + this.propertyTypeFactoryBuilder = propertyTypeFactoryBuilder; + } + + public RelationPropertyTypeFactoryBuilder getRelationPropertyTypeFactoryBuilder() { + return relationPropertyTypeFactoryBuilder; + } + + public void setRelationPropertyTypeFactoryBuilder( + final RelationPropertyTypeFactoryBuilder relationPropertyTypeFactoryBuilder) { + this.relationPropertyTypeFactoryBuilder = relationPropertyTypeFactoryBuilder; + } + + public TableNaming getTableNaming() { + return tableNaming; + } + + public void setTableNaming(final TableNaming tableNaming) { + this.tableNaming = tableNaming; + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoMetaDataFactoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,215 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.sql.DatabaseMetaData; +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanAnnotationReader; +import org.seasar.dao.ColumnNaming; +import org.seasar.dao.Dbms; +import org.seasar.dao.PropertyTypeFactory; +import org.seasar.dao.PropertyTypeFactoryBuilder; +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.impl.AbstractPropertyTypeFactory; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; + +/** + * The factory builder of property type for S2Dao. {Since S2Dao-1.0.47} + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoPropertyTypeFactoryBuilderExtension implements + PropertyTypeFactoryBuilder { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected ColumnNaming columnNaming; + + //========================================================================== + // ========= + // Build + // ===== + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming); + } + + public PropertyTypeFactory build(Class beanClass, + BeanAnnotationReader beanAnnotationReader, Dbms dbms, + DatabaseMetaData databaseMetaData) { + return new FastPropertyTypeFactoryExtension(beanClass, + beanAnnotationReader, valueTypeFactory, columnNaming, dbms); + } + + //========================================================================== + // ========= + // Extension Class + // =============== + protected static class FastPropertyTypeFactoryExtension extends + AbstractPropertyTypeFactory { + + protected DBMeta _dbmeta; + + protected String[] _noPersisteneProps; + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming); + initializeResources(); + } + + public FastPropertyTypeFactoryExtension(Class beanClass, + BeanAnnotationReader beanAnnotationReader, + ValueTypeFactory valueTypeFactory, ColumnNaming columnNaming, + Dbms dbms) { + super(beanClass, beanAnnotationReader, valueTypeFactory, + columnNaming, dbms); + initializeResources(); + } + + protected void initializeResources() { + if (isEntity()) { + _dbmeta = findDBMeta(); + } + _noPersisteneProps = beanAnnotationReader.getNoPersisteneProps(); + } + + protected boolean isEntity() { + return Entity.class.isAssignableFrom(beanClass); + } + + protected boolean hasDBMeta() { + return _dbmeta != null; + } + + protected DBMeta findDBMeta() { + try { + final Entity entity = (Entity) beanClass.newInstance(); + return entity.getDBMeta(); + } catch (Exception e) { + String msg = "beanClass.newInstance() threw the exception: beanClass=" + + beanClass; + throw new RuntimeException(msg, e); + } + } + + public PropertyType[] createBeanPropertyTypes(String tableName) { + final List list = new ArrayList(); + final BeanDesc beanDesc = getBeanDesc(); + for (int i = 0; i < beanDesc.getPropertyDescSize(); ++i) { + final PropertyDesc pd = beanDesc.getPropertyDesc(i); + + // Read-only property is unnecessary! + if (!pd.hasWriteMethod()) { + continue; + } + + // Relation property is unnecessary! + if (isRelation(pd)) { + continue; + } + + final PropertyType pt = createPropertyType(pd); + pt.setPrimaryKey(isPrimaryKey(pd)); + pt.setPersistent(isPersistent(pt)); + list.add(pt); + } + return list.toArray(new PropertyType[list.size()]); + } + + @Override + protected boolean isRelation(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() + && (_dbmeta.hasForeign(propertyName) || _dbmeta + .hasReferrer(propertyName))) { + return true; + } + return hasRelationNoAnnotation(propertyDesc); + } + + protected boolean hasRelationNoAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.hasRelationNo(propertyDesc); + } + + @Override + protected boolean isPrimaryKey(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + if (hasDBMeta() && _dbmeta.hasPrimaryKey() + && _dbmeta.hasColumn(propertyName)) { + if (_dbmeta.findColumnInfo(propertyName).isPrimary()) { + return true; + } + } + return hasIdAnnotation(propertyDesc); + } + + protected boolean hasIdAnnotation(PropertyDesc propertyDesc) { + final Dbms dbms = getDbms(); + return beanAnnotationReader.getId(propertyDesc, dbms) != null; + } + + @Override + protected boolean isPersistent(PropertyType propertyType) { + final String propertyName = propertyType.getPropertyName(); + final PropertyDesc propertyDesc = propertyType.getPropertyDesc(); + if ((hasDBMeta() && _dbmeta.hasColumn(propertyName)) + || hasColumnAnnotation(propertyDesc)) { + if (!isElementOfNoPersistentProps(propertyDesc)) { + return true; + } + } + return false; + } + + protected boolean hasColumnAnnotation(PropertyDesc propertyDesc) { + return beanAnnotationReader.getColumnAnnotation(propertyDesc) != null; + } + + protected boolean isElementOfNoPersistentProps(PropertyDesc propertyDesc) { + final String propertyName = propertyDesc.getPropertyName(); + final String[] props = _noPersisteneProps; + if (props != null && props.length >= 0) { + for (int i = 0; i < props.length; ++i) { + if (props[i].equals(propertyName)) { + return true; + } + } + } + return false; + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ValueTypeFactory getValueTypeFactory() { + return valueTypeFactory; + } + + public void setValueTypeFactory(ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + public ColumnNaming getColumnNaming() { + return columnNaming; + } + + public void setColumnNaming(ColumnNaming columnNaming) { + this.columnNaming = columnNaming; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoPropertyTypeFactoryBuilderExtension.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,491 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand.InternalAbstractDynamicCommand; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalBasicSelectHandler; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * SelectDynamicCommand for DBFlute. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class S2DaoSelectDynamicCommand extends InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + /** The handler of resultSet. */ + protected ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param dataSource Data source. + * @param statementFactory The factory of statement. + * @param resultSetHandler The handler of resultSet. + */ + public S2DaoSelectDynamicCommand(DataSource dataSource, + StatementFactory statementFactory, ResultSetHandler resultSetHandler) { + super(dataSource, statementFactory); + this.resultSetHandler = resultSetHandler; + } + + //========================================================================== + // ========= + // Very Important Extension + // ======================== + // ----------------------------------------------------- + // SelectDynamicCommand Creation + // ----------------------------- + protected S2DaoSelectDynamicCommand createMySelectDynamicCommand() { + return new S2DaoSelectDynamicCommand(getDataSource(), + getStatementFactory(), resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + // ----------------------------------------------------- + // Top Execute + // ----------- + /** + * @param args The array of argument. (Nullable) + * @return The object of execution result. (Nullable) + */ + public Object execute(Object[] args) { + // - - - - - - - - - - - - + // This is top execution. + // - - - - - - - - - - - - + + if (!ConditionBeanContext.isExistConditionBeanOnThread()) { + // - - - - - - - - - - + // Execute outsideSql. + // - - - - - - - - - - + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isDynamicBinding()) { + return executeOutsideSqlAsDynamic(args, outsideSqlContext); + } else { + return executeOutsideSqlAsStatic(args, outsideSqlContext); + } + } + + // - - - - - - - - - + // Execute default. + // - - - - - - - - - + return executeDefault(args); + } + + // - - - - - - - - - - - - + // Execute conditionBean. + // - - - - - - - - - - - - + final List bindVariableList = new ArrayList(4); + final List bindVariableTypeList = new ArrayList(4); + + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String finalClause; + if (cb.hasUnionQueryOrUnionAllQuery()) { + final String realClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + if (cb.isSelectCountIgnoreFetchScope()) { + // If the query uses union and it selects count, the way of + // select-count is as follows. + finalClause = "select count(*) from (" + realClause + + ") dfmain"; + } else { + finalClause = realClause; + } + } else { + if (cb.isSelectCountIgnoreFetchScope()) { + finalClause = setupRealSelectCountClause(args, + bindVariableList, bindVariableTypeList); + } else { + finalClause = setupRealClause(args, bindVariableList, + bindVariableTypeList); + } + } + + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + finalClause, this.resultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + // ----------------------------------------------------- + // Default Execute + // --------------- + /** + * Execute default. + * + * @param args The array of argument. (Nullable) + * @return Result. (Nullable) + */ + protected Object executeDefault(Object args[]) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs = filterArgumentsForResultSetHandler(args); + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + // ----------------------------------------------------- + // OutsideSql Execute + // ------------------ + /** + * Execute outsideSql as static. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsStatic(Object[] args, + OutsideSqlContext outsideSqlContext) { + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = apply(filteredArgs); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = ctx.getBindVariables(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, ctx + .getBindVariableTypes()); + } + + /** + * Execute outsideSql as Dynamic. + * + * @param args The array of argument. (Nullable) + * @param outsideSqlContext The context of outsideSql. (NotNull) + * @return Result. (Nullable) + */ + protected Object executeOutsideSqlAsDynamic(Object[] args, + OutsideSqlContext outsideSqlContext) { + final Object firstArg; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + firstArg = parameterBean; + } else { + firstArg = args[0]; + } + String filteredSql = getSql(); + if (firstArg != null) { + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(firstArg + .getClass()); + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + // Resolve embedded comment for parsing bind variable comment in + // embedded comment. + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - + for (int i = 0; i < beanDesc.getPropertyDescSize(); i++) { + final PropertyDesc propertyDesc = beanDesc.getPropertyDesc(i); + final Class propertyType = propertyDesc.getPropertyType(); + if (!propertyType.equals(String.class)) { + continue; + } + final String outsideSqlPiece = (String) propertyDesc + .getValue(firstArg); + if (outsideSqlPiece == null) { + continue; + } + final String embeddedComment = "/*$pmb." + + propertyDesc.getPropertyName() + "*/"; + filteredSql = replaceString(filteredSql, embeddedComment, + outsideSqlPiece); + } + } + final S2DaoSelectDynamicCommand outsideSqlCommand = createMySelectDynamicCommand(); + if (outsideSqlContext.isSpecifiedOutsideSql()) { + outsideSqlCommand.setArgNames(new String[] { "pmb" }); + outsideSqlCommand + .setArgTypes(new Class[] { firstArg != null ? firstArg + .getClass() : Object.class }); + } else { + outsideSqlCommand.setArgNames(getArgNames()); + outsideSqlCommand.setArgTypes(getArgTypes()); + } + outsideSqlCommand.setSql(filteredSql); + + // - - - - - - - - - - - - - - - - - + // Find specified resultSetHandler. + // - - - - - - - - - - - - - - - - - + final ResultSetHandler specifiedResultSetHandler = findSpecifiedResultSetHandler(args); + + // - - - - - - - - - + // Filter arguments. + // - - - - - - - - - + final Object[] filteredArgs; + if (outsideSqlContext.isSpecifiedOutsideSql()) { + final Object parameterBean = outsideSqlContext.getParameterBean(); + filteredArgs = new Object[] { parameterBean }; + } else { + filteredArgs = filterArgumentsForResultSetHandler(args); + } + + final org.seasar.dao.CommandContext ctx = outsideSqlCommand + .apply(filteredArgs); + final java.util.List bindVariableList = new java.util.ArrayList(); + final java.util.List bindVariableTypeList = new java.util.ArrayList(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + final InternalBasicSelectHandler selectHandler = createBasicSelectHandler( + ctx.getSql(), specifiedResultSetHandler); + final Object[] bindVariableArray = bindVariableList.toArray(); + selectHandler.setLoggingMessageSqlArgs(bindVariableArray); + return selectHandler.execute(bindVariableArray, + toClassArray(bindVariableTypeList)); + } + + protected Object[] filterArgumentsForResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return args; + } + final Object[] filteredArgs; + if (args[args.length - 1] instanceof jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler) { + filteredArgs = new Object[args.length - 1]; + for (int i = 0; i < args.length - 1; i++) { + filteredArgs[i] = args[i]; + } + } else { + filteredArgs = args; + } + return filteredArgs; + } + + protected ResultSetHandler findSpecifiedResultSetHandler(Object[] args) { + if (args == null || args.length == 0) { + return this.resultSetHandler; + } + if (args[args.length - 1] instanceof jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler) { + final jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler cursorHandler = (jp.sf.pal.scheduler.db.allcommon.jdbc.CursorHandler) args[args.length - 1]; + return new ResultSetHandler() { + public Object handle(java.sql.ResultSet rs) + throws java.sql.SQLException { + return cursorHandler.handle(rs); + } + }; + } + if (getArgTypes().length + 1 == args.length + && args[args.length - 1] == null) { + String msg = "System Level Exception!" + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The size of arg types have not been same as the size of arg objects:"; + msg = msg + " argTypes=" + getArgTypes().length + " args=" + + args.length + getLineSeparator(); + msg = msg + + "If the arguments contain ResultSetHandler, the argument value should not be null!" + + getLineSeparator(); + for (int i = 0; i < args.length - 1; i++) { + msg = msg + " args[" + i + "] -- " + args[i] + + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new IllegalStateException(msg); + } + return this.resultSetHandler; + } + + // ----------------------------------------------------- + // Setup Clause + // ------------ + protected String setupRealClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realClause; + { + final S2DaoSelectDynamicCommand dynamicCommand = createMySelectDynamicCommand(); + dynamicCommand.setArgNames(getArgNames()); + dynamicCommand.setArgTypes(getArgTypes()); + if (cb.isLimitSelect_PKOnly()) { + dynamicCommand.setSql(cb.getSqlClause().getClausePKOnly()); + } else { + dynamicCommand.setSql(cb.getSqlClause().getClause()); + } + final CommandContext ctx = dynamicCommand.apply(args); + realClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realClause; + } + + protected String setupRealSelectCountClause(Object[] args, + List bindVariableList, List bindVariableTypeList) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + final String realSelectCountClause; + { + final S2DaoSelectDynamicCommand selectCountCommand = createMySelectDynamicCommand(); + selectCountCommand.setArgNames(getArgNames()); + selectCountCommand.setArgTypes(getArgTypes()); + final String selectClause = "select count(*)"; + String fromWhereClause = cb.getSqlClause() + .getClauseFromWhereWithUnionTemplate(); + + // Replace template marks. These are very important! + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionSelectClauseMark(), selectClause); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereClauseMark(), ""); + fromWhereClause = replaceString(fromWhereClause, cb.getSqlClause() + .getUnionWhereFirstConditionMark(), ""); + + final String sql = cb.getSqlClause().filterSubQueryIndent( + selectClause + " " + fromWhereClause); + selectCountCommand.setSql(sql); + + final CommandContext ctx = selectCountCommand.apply(args); + realSelectCountClause = ctx.getSql(); + addBindVariableInfo(ctx, bindVariableList, bindVariableTypeList); + } + return realSelectCountClause; + } + + protected InternalBasicSelectHandler createBasicSelectHandler( + String realSql, ResultSetHandler specifiedResultSetHandler) { + return newBasicSelectHandler(realSql, specifiedResultSetHandler, + getStatementFactory()); + } + + protected InternalBasicSelectHandler newBasicSelectHandler(String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + return new InternalBasicSelectHandler(getDataSource(), sql, + resultSetHandler, statementFactory) { + @Override + protected void bindArgs(java.sql.PreparedStatement ps, + Object[] args, Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + final ValueType valueType = findValueType(argTypes[i], + args[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (java.sql.SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected ValueType findValueType(Class argType, Object arg) { + ValueType valueType = ValueTypes.getValueType(arg); + if (valueType != null) { + return valueType; + } + valueType = ValueTypes.getValueType(argType); + if (valueType != null) { + return valueType; + } + String msg = "Unknown type¡§argType=" + argType + " args=" + arg; + throw new IllegalStateException(msg); + } + }; + } + + // ----------------------------------------------------- + // Setup Helper + // ------------ + protected Class[] toClassArray(List bindVariableTypeList) { + final Class[] bindVariableTypesArray = new Class[bindVariableTypeList + .size()]; + for (int i = 0; i < bindVariableTypeList.size(); i++) { + final Class bindVariableType = (Class) bindVariableTypeList.get(i); + bindVariableTypesArray[i] = bindVariableType; + } + return bindVariableTypesArray; + } + + protected void addBindVariableInfo(CommandContext ctx, + List bindVariableList, List bindVariableTypeList) { + final Object[] bindVariables = ctx.getBindVariables(); + addBindVariableList(bindVariableList, bindVariables); + final Class[] bindVariableTypes = ctx.getBindVariableTypes(); + addBindVariableTypeList(bindVariableTypeList, bindVariableTypes); + } + + protected void addBindVariableList(List bindVariableList, + Object[] bindVariables) { + for (int i = 0; i < bindVariables.length; i++) { + bindVariableList.add(bindVariables[i]); + } + } + + protected void addBindVariableTypeList(List bindVariableTypeList, + Class[] bindVariableTypes) { + for (int i = 0; i < bindVariableTypes.length; i++) { + bindVariableTypeList.add(bindVariableTypes[i]); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/S2DaoSelectDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,130 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractBeanMetaDataResultSetHandler extends + InternalAbstractDtoMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + protected RelationRowCreator relationRowCreator; + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalAbstractBeanMetaDataResultSetHandler( + BeanMetaData beanMetaData, RowCreator rowCreator, + RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator); + this.beanMetaData = beanMetaData; + this.relationRowCreator = relationRowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + return rowCreator.createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + // - - - - - - - - - + // Override for Bean + // - - - - - - - - - + final Class beanClass = beanMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of relation property cache. Map{String(relationNoSuffix), + * Map{String(columnName), PropertyType}} (NotNull) + * @throws SQLException + */ + protected Map createRelationPropertyCache(Set columnNames) + throws SQLException { + return relationRowCreator + .createPropertyCache(columnNames, beanMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param rpt The type of relation property. (NotNull) + * @param columnNames The set of column name. (NotNull) + * @param relKeyValues The map of rel key values. (Nullable) + * @param relationPropertyCache The map of relation property cache. + * Map{String(relationNoSuffix), Map{String(columnName), + * PropertyType}} (NotNull) + * @return Created relation row. (Nullable) + * @throws SQLException + */ + protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt, + Set columnNames, Map relKeyValues, Map relationPropertyCache) + throws SQLException { + return relationRowCreator.createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + } + + /** + * @param row The row of result list. (NotNull) + */ + protected void postCreateRow(final Object row) { + if (row instanceof Entity) { // DBFlute Target + ((Entity) row).clearModifiedPropertyNames(); + } else { // Basically Unreachable + final BeanMetaData bmd = getBeanMetaData(); + final Set names = bmd.getModifiedPropertyNames(row); + names.clear(); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractBeanMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,89 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.Map; +import java.util.Set; + +import org.seasar.dao.DtoMetaData; +import org.seasar.dao.RowCreator; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.framework.util.CaseInsensitiveSet; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class InternalAbstractDtoMetaDataResultSetHandler implements + ResultSetHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DtoMetaData dtoMetaData; + + protected RowCreator rowCreator; // [DAO-118] (2007/08/25) + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param dtoMetaData Dto meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + */ + public InternalAbstractDtoMetaDataResultSetHandler(DtoMetaData dtoMetaData, + RowCreator rowCreator) { + this.dtoMetaData = dtoMetaData; + this.rowCreator = rowCreator; + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param columnNames The set of column name. (NotNull) + * @return The map of row property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @throws SQLException + */ + protected Map createPropertyCache(Set columnNames) throws SQLException { + return rowCreator.createPropertyCache(columnNames, dtoMetaData); + } + + /** + * @param rs Result set. (NotNull) + * @param propertyCache The map of property cache. Map{String(columnName), + * PropertyType} (NotNull) + * @return Created row. (NotNull) + * @throws SQLException + */ + protected Object createRow(ResultSet rs, Map propertyCache) + throws SQLException { + final Class beanClass = dtoMetaData.getBeanClass(); + return rowCreator.createRow(rs, propertyCache, beanClass); + } + + protected Set createColumnNames(final ResultSetMetaData rsmd) + throws SQLException { + final int count = rsmd.getColumnCount(); + final Set columnNames = new CaseInsensitiveSet(); + for (int i = 0; i < count; ++i) { + final String columnName = rsmd.getColumnLabel(i + 1); + final int pos = columnName.lastIndexOf('.'); // [DAO-41] + if (-1 < pos) { + columnNames.add(columnName.substring(pos + 1)); + } else { + columnNames.add(columnName); + } + } + return columnNames; + } + + public DtoMetaData getDtoMetaData() { + return dtoMetaData; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalAbstractDtoMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,42 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.rshandler; + +import java.lang.reflect.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanArrayMetaDataResultSetHandler extends + InternalBeanListMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanArrayMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + List list = (List) super.handle(rs); + return list.toArray((Object[]) Array.newInstance(getBeanMetaData() + .getBeanClass(), list.size())); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanArrayMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,236 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.rshandler; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.RelationRowCreator; +import org.seasar.dao.RowCreator; +import org.seasar.dao.impl.RelationKey; +import org.seasar.dao.impl.RelationRowCache; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class InternalBeanListMetaDataResultSetHandler extends + InternalAbstractBeanMetaDataResultSetHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * @param beanMetaData Bean meta data. (NotNull) + * @param rowCreator Row creator. (NotNull) + * @param relationRowCreator Relation row creator. (NotNul) + */ + public InternalBeanListMetaDataResultSetHandler(BeanMetaData beanMetaData, + RowCreator rowCreator, RelationRowCreator relationRowCreator) { + super(beanMetaData, rowCreator, relationRowCreator); + } + + //========================================================================== + // ========= + // Handle + // ====== + public Object handle(ResultSet rs) throws SQLException { + // Lazy initialization because if the result is zero, the resources are + // unused. + Set columnNames = null; // Set + Map propertyCache = null; // Map + Map relationPropertyCache = null; // Map> + RelationRowCache relRowCache = null; + + final List list = new ArrayList(); + final int relSize = getBeanMetaData().getRelationPropertyTypeSize(); + final boolean hasCB = hasConditionBean(); + final boolean skipRelationLoop; + { + final boolean emptyRelation = isSelectedForeignInfoEmpty(); + final boolean hasOSC = hasOutsideSqlContext(); + final boolean specifiedOutsideSql = isSpecifiedOutsideSql(); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + skipRelationLoop = (hasCB && emptyRelation) + || (hasOSC && specifiedOutsideSql); + } + + while (rs.next()) { + if (columnNames == null) { + columnNames = createColumnNames(rs.getMetaData()); + } + if (propertyCache == null) { + propertyCache = createPropertyCache(columnNames); + } + + // Create row instance of base table by row property cache. + final Object row = createRow(rs, propertyCache); + + // If it has condition-bean that has no relation to get + // or it has outside-sql context that is specified-outside-sql, + // they are unnecessary to do relation loop! + if (skipRelationLoop) { + postCreateRow(row); + list.add(row); + continue; + } + + if (relationPropertyCache == null) { + relationPropertyCache = createRelationPropertyCache(columnNames); + } + if (relRowCache == null) { + relRowCache = new RelationRowCache(relSize); + } + for (int i = 0; i < relSize; ++i) { + final RelationPropertyType rpt = getBeanMetaData() + .getRelationPropertyType(i); + if (rpt == null) { + continue; + } + + // Do only selected foreign property for performance if + // condition-bean exists. + if (hasCB + && !hasSelectedForeignInfo(buildRelationNoSuffix(rpt))) { + continue; + } + + final Map relKeyValues = new HashMap(); + final RelationKey relKey = createRelationKey(rs, rpt, + columnNames, relKeyValues); + Object relationRow = null; + if (relKey != null) { + relationRow = relRowCache.getRelationRow(i, relKey); + if (relationRow == null) { // when no cache + relationRow = createRelationRow(rs, rpt, columnNames, + relKeyValues, relationPropertyCache); + if (relationRow != null) { + relRowCache.addRelationRow(i, relKey, relationRow); + postCreateRow(relationRow); + } + } + } + if (relationRow != null) { + final PropertyDesc pd = rpt.getPropertyDesc(); + pd.setValue(row, relationRow); + } + } + postCreateRow(row); + list.add(row); + } + return list; + } + + protected RelationKey createRelationKey(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues) + throws SQLException { + final List keyList = new ArrayList(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final ValueType valueType; + String columnName = rpt.getMyKey(i); + if (columnNames.contains(columnName)) { + final PropertyType pt = getBeanMetaData() + .getPropertyTypeByColumnName(columnName); + valueType = pt.getValueType(); + } else { + final PropertyType pt = bmd.getPropertyTypeByColumnName(rpt + .getYourKey(i)); + columnName = pt.getColumnName() + buildRelationNoSuffix(rpt); + if (columnNames.contains(columnName)) { + valueType = pt.getValueType(); + } else { + return null; + } + } + final Object value = valueType.getValue(rs, columnName); + if (value == null) { + return null; + } + relKeyValues.put(columnName, value); + keyList.add(value); + } + if (keyList.size() > 0) { + Object[] keys = keyList.toArray(); + return new RelationKey(keys); + } else { + return null; + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean isSelectedForeignInfoEmpty() { + if (!hasConditionBean()) { + return true; + } + ConditionBean cb = ConditionBeanContext.getConditionBeanOnThread(); + if (cb.getSqlClause().isSelectedForeignInfoEmpty()) { + return true; + } + return false; + } + + /** + * Has it selected foreign information? You should call hasConditionBean() + * before calling this! + * + * @param relationNoSuffix The suffix of relation NO. (NotNull) + * @return Determination. + */ + protected boolean hasSelectedForeignInfo(String relationNoSuffix) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(relationNoSuffix)) { + return true; + } + return false; + } + + /** + * Build the string of relation No suffix. + * + * @param rpt The property type of relation. (NotNull) + * @return The string of relation No suffix. (NotNull) + */ + protected String buildRelationNoSuffix(RelationPropertyType rpt) { + return "_" + rpt.getRelationNo(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected boolean isSpecifiedOutsideSql() { + if (!hasOutsideSqlContext()) { + return false; + } + final OutsideSqlContext context = OutsideSqlContext + .getOutsideSqlContextOnThread(); + return context.isSpecifiedOutsideSql(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/rshandler/InternalBeanListMetaDataResultSetHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,227 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.PrimaryKeyNotFoundRuntimeException; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoStaticCommand extends + InternalAbstractStaticCommand { + + //========================================================================== + // ========= + // Definition + // ========== + protected static final boolean DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY = true; + + //========================================================================== + // ========= + // Attribute + // ========= + private PropertyType[] propertyTypes; + + private boolean checkSingleRowUpdate = true; + + protected boolean versionNoAutoIncrementOnMemory = DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData); + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + setupPropertyTypes(propertyNames); + setupSql(); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + InternalAbstractAutoHandler handler = createAutoHandler(); + handler.setSql(getSql()); + handler.setLoggingMessageSqlArgs(args); + int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw createNotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } + + protected NotSingleRowUpdatedRuntimeException createNotSingleRowUpdatedRuntimeException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected abstract InternalAbstractAutoHandler createAutoHandler(); + + protected abstract void setupPropertyTypes(String[] propertyNames); + + protected void setupInsertPropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (isInsertTarget(pt)) { + types.add(pt); + } + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected boolean isInsertTarget(PropertyType propertyType) { + if (propertyType.isPrimaryKey()) { + String name = propertyType.getPropertyName(); + final IdentifierGenerator generator = getBeanMetaData() + .getIdentifierGenerator(name); + return generator.isSelfGenerate(); + } + return true; + } + + protected void setupUpdatePropertyTypes(String[] propertyNames) { + List types = new ArrayList(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = getBeanMetaData().getPropertyType( + propertyNames[i]); + if (pt.isPrimaryKey()) { + continue; + } + types.add(pt); + } + if (types.size() == 0) { + throw new SRuntimeException("EDAO0020"); + } + propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types + .size()]); + } + + protected void setupDeletePropertyTypes(String[] propertyNames) { + } + + protected abstract void setupSql(); + + protected void setupInsertSql() { + BeanMetaData bmd = getBeanMetaData(); + StringBuilder sb = new StringBuilder(100); + sb.append("insert into "); + sb.append(bmd.getTableName()); + sb.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append(pt.getColumnName()); + sb.append(", "); + } + } + sb.setLength(sb.length() - 2); + sb.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (isInsertTarget(pt)) { + sb.append("?, "); + } + } + sb.setLength(sb.length() - 2); + sb.append(")"); + setSql(sb.toString()); + } + + protected void setupUpdateSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(getBeanMetaData().getTableName()); + sb.append(" set "); + String versionNoPropertyName = getBeanMetaData() + .getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName) + && !versionNoAutoIncrementOnMemory) { + sb.append(pt.getColumnName()).append(" = ").append( + pt.getColumnName()).append(" + 1, "); + continue; + } + sb.append(pt.getColumnName()).append(" = ?, "); + } + sb.setLength(sb.length() - 2); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void setupDeleteSql() { + checkPrimaryKey(); + StringBuilder sb = new StringBuilder(100); + sb.append("delete from "); + sb.append(getBeanMetaData().getTableName()); + setupUpdateWhere(sb); + setSql(sb.toString()); + } + + protected void checkPrimaryKey() { + BeanMetaData bmd = getBeanMetaData(); + if (bmd.getPrimaryKeySize() == 0) { + throw new PrimaryKeyNotFoundRuntimeException(bmd.getBeanClass()); + } + } + + protected void setupUpdateWhere(StringBuilder sb) { + BeanMetaData bmd = getBeanMetaData(); + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,64 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected final boolean returningRows; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + this(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, DEFAULT_VERSION_NO_AUTO_INCREMENT_ON_MEMORY); + } + + public InternalAbstractBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + versionNoAutoIncrementOnMemory); + this.returningRows = returningRows; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final InternalAbstractBatchAutoHandler handler = createBatchAutoHandler(); + + // It is unnecessary! + // injectDaoClass(handler); + + handler.setSql(getSql()); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(args); + if (this.returningRows) { + return handler.executeBatch(args); + } else { + final int updatedRows = handler.execute(args); + return new Integer(updatedRows); + } + } + + protected abstract InternalAbstractBatchAutoHandler createBatchAutoHandler(); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,83 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractDynamicCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected Node rootNode; + + protected String[] argNames = new String[0]; + + protected Class[] argTypes = new Class[0]; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Sql Handling + // ============ + public void setSql(String sql) { + super.setSql(sql); + this.rootNode = createInternalSqlParser(sql).parse(); + } + + protected InternalSqlParser createInternalSqlParser(String sql) { + return new InternalSqlParser(sql); + } + + public CommandContext apply(Object[] args) {// It is necessary to be public! + final CommandContext ctx = createCommandContext(args); + rootNode.accept(ctx); + return ctx; + } + + protected CommandContext createCommandContext(Object[] args) { + return createCommandContextCreator().createCommandContext(args); + } + + protected InternalCommandContextCreator createCommandContextCreator() { + return new InternalCommandContextCreator(argNames, argTypes); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String[] getArgNames() { + return argNames; + } + + public void setArgNames(String[] argNames) { + this.argNames = argNames; + } + + public Class[] getArgTypes() { + return argTypes; + } + + public void setArgTypes(Class[] argTypes) { + this.argTypes = argTypes; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,52 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractSqlCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private StatementFactory statementFactory; + + private String sql; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractSqlCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractSqlCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractStaticCommand extends + InternalAbstractSqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalAbstractStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,46 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoStaticCommand extends + InternalAbstractAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames) { + super(dataSource, statementFactory, beanMetaData, propertyNames); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return new InternalDeleteAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,57 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalDeleteBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return newInternalBatchAutoHandler(); + } + + protected InternalDeleteBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalDeleteBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupDeleteSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupDeletePropertyTypes(propertyNames); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,103 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + String[] argNames = new String[] { "dto" }; + Class[] argTypes = new Class[] { cb.getClass() }; + String twoWaySql = buildQueryDeleteTwoWaySql(cb); + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + if (args == null || args.length == 0) { + String msg = "The arguments should have one argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + protected String buildQueryDeleteTwoWaySql(ConditionBean cb) { + return cb.getSqlClause().getClauseQueryDelete(); + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalDeleteQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,172 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalInsertAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.dao.NotSingleRowUpdatedRuntimeException; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.framework.exception.SRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + protected BeanMetaData beanMetaData; + + protected String[] propertyNames; + + protected boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoDynamicCommand() { + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createInsertPropertyTypes(bmd, + bean, getPropertyNames()); + final String sql = createInsertSql(bmd, propertyTypes); + final InternalInsertAutoHandler handler = new InternalInsertAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler.setSql(sql); + handler.setLoggingMessageSqlArgs(args); + final int rows = handler.execute(args); + if (isCheckSingleRowUpdate() && rows != 1) { + throw new NotSingleRowUpdatedRuntimeException(args[0], rows); + } + return new Integer(rows); + } + + protected String createInsertSql(BeanMetaData bmd, + PropertyType[] propertyTypes) { + StringBuffer buf = new StringBuffer(100); + buf.append("insert into "); + buf.append(bmd.getTableName()); + buf.append(" ("); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + buf.append(", "); + } + buf.append(columnName); + } + buf.append(") values ("); + for (int i = 0; i < propertyTypes.length; ++i) { + if (i > 0) { + buf.append(", "); + } + buf.append("?"); + } + buf.append(")"); + return buf.toString(); + } + + protected PropertyType[] createInsertPropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + + if (0 == propertyNames.length) { + throw new SRuntimeException("EDAO0024", new Object[] { bean + .getClass().getName() }); + } + List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey()) { + final IdentifierGenerator generator = bmd + .getIdentifierGenerator(pt.getPropertyName()); + if (!generator.isSelfGenerate()) { + continue; + } + } else { + if (pt.getPropertyDesc().getValue(bean) == null) { + final String propertyName = pt.getPropertyName(); + if (!propertyName.equalsIgnoreCase(timestampPropertyName) + && !propertyName + .equalsIgnoreCase(versionNoPropertyName)) { + continue; + } + } + } + types.add(pt); + } + if (types.isEmpty()) { + throw new SRuntimeException("EDAO0014"); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + protected DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + protected StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + protected BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + protected String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean checkSingleRowUpdate) { + this.checkSingleRowUpdate = checkSingleRowUpdate; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,53 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalInsertBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + return new InternalInsertBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupInsertSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupInsertPropertyTypes(propertyNames); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalInsertBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,83 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalProcedureHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; + +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected ResultSetHandler resultSetHandler; + + protected StatementFactory statementFactory; + + protected InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureCommand(DataSource dataSource, + ResultSetHandler resultSetHandler, + StatementFactory statementFactory, + InternalProcedureMetaData procedureMetaData) { + this.dataSource = dataSource; + this.resultSetHandler = resultSetHandler; + this.statementFactory = statementFactory; + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(final Object[] args) { + final InternalProcedureHandler handler = newArgumentDtoProcedureHandler(); + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + final Object pmb = outsideSqlContext.getParameterBean(); + // The logging message SQL of procedure is unnecessary. + // handler.setLoggingMessageSqlArgs(...); + return handler.execute(new Object[] { pmb }); + } + + protected InternalProcedureHandler newArgumentDtoProcedureHandler() { + return new InternalProcedureHandler(dataSource, + createSql(procedureMetaData), resultSetHandler, + statementFactory, procedureMetaData); + } + + protected String createSql(final InternalProcedureMetaData procedureMetaData) { + final StringBuilder sb = new StringBuilder(); + sb.append("{"); + int size = procedureMetaData.parameterTypes().size(); + if (procedureMetaData.hasReturnParameterType()) { + sb.append("? = "); + size--; + } + sb.append("call ").append(procedureMetaData.getProcedureName()).append( + "("); + for (int i = 0; i < size; i++) { + sb.append("?, "); + } + if (size > 0) { + sb.setLength(sb.length() - 2); + } + sb.append(")}"); + return sb.toString(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalProcedureCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,233 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.NoUpdatePropertyTypeRuntimeException; +import org.seasar.dao.impl.AbstractSqlCommand; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoDynamicCommand extends AbstractSqlCommand { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalUpdateAutoDynamicCommand.class); + + private static final Integer NO_UPDATE = new Integer(0); + + //========================================================================== + // ========= + // Attribute + // ========= + private BeanMetaData beanMetaData; + + private String[] propertyNames; + + private boolean checkSingleRowUpdate = true; + + private boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + final Object bean = args[0]; + final BeanMetaData bmd = getBeanMetaData(); + final PropertyType[] propertyTypes = createUpdatePropertyTypes(bmd, + bean, getPropertyNames()); + if (propertyTypes.length == 0) { + if (_log.isDebugEnabled()) { + _log.debug(createNoUpdateLogMessage(bean, bmd)); + } + return NO_UPDATE; + } + InternalUpdateAutoHandler handler = createInternalUpdateAutoHandler( + bmd, propertyTypes); + handler.setSql(createUpdateSql(bmd, propertyTypes, bean)); + handler.setLoggingMessageSqlArgs(args); + int i = handler.execute(args); + + // [Comment Out]: This statement moved to the handler at + // [DBFlute-0.8.0]. + // if (isCheckSingleRowUpdate() && i < 1) { + // throw createNotSingleRowUpdatedRuntimeException(args[0], i); + // } + + return new Integer(i); + } + + protected InternalUpdateAutoHandler createInternalUpdateAutoHandler( + BeanMetaData bmd, PropertyType[] propertyTypes) { + InternalUpdateAutoHandler handler = new InternalUpdateAutoHandler( + getDataSource(), getStatementFactory(), bmd, propertyTypes); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + handler.setCheckSingleRowUpdate(isCheckSingleRowUpdate()); //[DBFlute-0.8 + // .0] + return handler; + } + + protected PropertyType[] createUpdatePropertyTypes(BeanMetaData bmd, + Object bean, String[] propertyNames) { + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || pt.getPropertyDesc().getValue(bean) != null) { + types.add(pt); + } + } + } + if (types.isEmpty()) { + throw new NoUpdatePropertyTypeRuntimeException(); + } + PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } + + protected String createNoUpdateLogMessage(final Object bean, + final BeanMetaData bmd) { + final StringBuffer sb = new StringBuffer(); + sb.append("skip UPDATE: table=").append(bmd.getTableName()); + final int size = bmd.getPrimaryKeySize(); + for (int i = 0; i < size; i++) { + if (i == 0) { + sb.append(", key{"); + } else { + sb.append(", "); + } + final String keyName = bmd.getPrimaryKey(i); + sb.append(keyName).append("="); + sb.append(bmd.getPropertyTypeByColumnName(keyName) + .getPropertyDesc().getValue(bean)); + if (i == size - 1) { + sb.append("}"); + } + } + final String s = new String(sb); + return s; + } + + /** + * Create update SQL. The update is by the primary keys. + * + * @param bmd The meta data of bean. (NotNull & RequiredPrimaryKeys) + * @param propertyTypes The types of property for update. (NotNull) + * @param bean A bean for update for handling version no and so on. + * (NotNull) + * @return The update SQL. (NotNull) + */ + protected String createUpdateSql(BeanMetaData bmd, + PropertyType[] propertyTypes, Object bean) { + if (bmd.getPrimaryKeySize() == 0) { + String msg = "The table '" + bmd.getTableName() + + "' does not have primary keys!"; + throw new IllegalStateException(msg); + } + final StringBuilder sb = new StringBuilder(100); + sb.append("update "); + sb.append(bmd.getTableName()); + sb.append(" set "); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + final String columnName = pt.getColumnName(); + if (i > 0) { + sb.append(", "); + } + if (pt.getPropertyName().equalsIgnoreCase(versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + final Object versionNo = pt.getPropertyDesc().getValue(bean); + if (versionNo == null) { + setupVersionNoAutoIncrementOnQuery(sb, columnName); + continue; + } + } + sb.append(columnName).append(" = ?"); + } + sb.append(" where "); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + sb.append(bmd.getPrimaryKey(i)).append(" = ? and "); + } + sb.setLength(sb.length() - 5); + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + sb.append(" and ").append(pt.getColumnName()).append(" = ?"); + } + return sb.toString(); + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } + + protected void setupVersionNoAutoIncrementOnQuery(StringBuilder sb, + String columnName) { + sb.append(columnName).append(" = ").append(columnName).append(" + 1"); + } + + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + public void setBeanMetaData(BeanMetaData beanMetaData) { + this.beanMetaData = beanMetaData; + } + + public String[] getPropertyNames() { + return propertyNames; + } + + public void setPropertyNames(String[] propertyNames) { + this.propertyNames = propertyNames; + } + + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,61 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalAbstractBatchAutoHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalUpdateBatchAutoHandler; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoStaticCommand extends + InternalAbstractBatchAutoStaticCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoStaticCommand(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + String[] propertyNames, boolean returningRows, + boolean versionNoAutoIncrementOnMemory) { + super(dataSource, statementFactory, beanMetaData, propertyNames, + returningRows, versionNoAutoIncrementOnMemory); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected InternalAbstractAutoHandler createAutoHandler() { + return createBatchAutoHandler(); + } + + @Override + protected InternalAbstractBatchAutoHandler createBatchAutoHandler() { + InternalUpdateBatchAutoHandler handler = newInternalBatchAutoHandler(); + handler + .setVersionNoAutoIncrementOnMemory(versionNoAutoIncrementOnMemory); + return handler; + } + + protected InternalUpdateBatchAutoHandler newInternalBatchAutoHandler() { + return new InternalUpdateBatchAutoHandler(getDataSource(), + getStatementFactory(), getBeanMetaData(), getPropertyTypes()); + } + + @Override + protected void setupSql() { + setupUpdateSql(); + } + + @Override + protected void setupPropertyTypes(String[] propertyNames) { + setupUpdatePropertyTypes(propertyNames); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateBatchAutoStaticCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,38 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalBasicUpdateHandler; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateDynamicCommand extends + InternalAbstractDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object args[]) { + final CommandContext ctx = apply(args); + final InternalBasicUpdateHandler updateHandler = new InternalBasicUpdateHandler( + getDataSource(), ctx.getSql(), getStatementFactory()); + Object[] bindVariables = ctx.getBindVariables(); + updateHandler.setLoggingMessageSqlArgs(bindVariables); + return new Integer(updateHandler.execute(bindVariables, ctx + .getBindVariableTypes())); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,55 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateModifiedOnlyCommand extends + InternalUpdateAutoDynamicCommand { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateModifiedOnlyCommand(DataSource dataSource, + StatementFactory statementFactory) { + super(dataSource, statementFactory); + } + + //========================================================================== + // ========= + // No.1 Point Override + // =================== + @Override + protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, + final Object bean, final String[] propertyNames) { + final Set modifiedPropertyNames = getBeanMetaData() + .getModifiedPropertyNames(bean); + final List types = new ArrayList(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyNames.length; ++i) { + final PropertyType pt = bmd.getPropertyType(propertyNames[i]); + if (pt.isPrimaryKey() == false) { + final String propertyName = pt.getPropertyName(); + if (propertyName.equalsIgnoreCase(timestampPropertyName) + || propertyName.equalsIgnoreCase(versionNoPropertyName) + || modifiedPropertyNames.contains(propertyName)) { + types.add(pt); + } + } + } + final PropertyType[] propertyTypes = (PropertyType[]) types + .toArray(new PropertyType[types.size()]); + return propertyTypes; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateModifiedOnlyCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,229 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlcommand; + +import java.lang.reflect.Method; +import java.sql.Timestamp; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler.InternalCommandContextHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalCommandContextCreator; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser.InternalSqlParser; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.SqlCommand; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateQueryAutoDynamicCommand implements SqlCommand { + + //========================================================================== + // ========= + // Attribute + // ========= + protected DataSource dataSource; + + protected StatementFactory statementFactory; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateQueryAutoDynamicCommand(DataSource dataSource, + StatementFactory statementFactory) { + this.dataSource = dataSource; + this.statementFactory = statementFactory; + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + ConditionBean cb = extractConditionBeanWithCheck(args); + Entity entity = extractEntityWithCheck(args); + String[] argNames = new String[] { "dto", "entity" }; + Class[] argTypes = new Class[] { cb.getClass(), entity.getClass() }; + String twoWaySql = buildQueryUpdateTwoWaySql(cb, entity); + if (twoWaySql == null) { + return 0;// No execute! + } + CommandContext context = createCommandContext(twoWaySql, argNames, + argTypes, args); + InternalCommandContextHandler handler = createCommandContextHandler(context); + handler.setLoggingMessageSqlArgs(context.getBindVariables()); + int rows = handler.execute(args); + return new Integer(rows); + } + + protected ConditionBean extractConditionBeanWithCheck(Object[] args) { + assertArgument(args); + Object fisrtArg = args[0]; + if (!(fisrtArg instanceof ConditionBean)) { + String msg = "The type of first argument should be " + + ConditionBean.class + "! But:"; + msg = msg + " type=" + fisrtArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (ConditionBean) fisrtArg; + } + + protected Entity extractEntityWithCheck(Object[] args) { + assertArgument(args); + Object secondArg = args[1]; + if (!(secondArg instanceof Entity)) { + String msg = "The type of second argument should be " + + Entity.class + "! But:"; + msg = msg + " type=" + secondArg.getClass(); + throw new IllegalArgumentException(msg); + } + return (Entity) secondArg; + } + + protected void assertArgument(Object[] args) { + if (args == null || args.length <= 1) { + String msg = "The arguments should have two argument! But:"; + msg = msg + " args=" + (args != null ? args.length : null); + throw new IllegalArgumentException(msg); + } + } + + protected InternalCommandContextHandler createCommandContextHandler( + CommandContext context) { + return new InternalCommandContextHandler(dataSource, statementFactory, + context); + } + + /** + * @param cb Condition-bean. (NotNull) + * @param entity Entity. (NotNull) + * @return The two-way SQL of query update. (Nullable: If the set of + * modified properties is empty, return null.) + */ + protected String buildQueryUpdateTwoWaySql(ConditionBean cb, Entity entity) { + Map columnParameterMap = new LinkedHashMap(); + DBMeta dbmeta = DBMetaInstanceHandler.findDBMeta(entity + .getTableDbName()); + Set modifiedPropertyNames = entity.getModifiedPropertyNames(); + if (modifiedPropertyNames.isEmpty()) { + return null; + } + String currentPropertyName = null; + try { + for (String propertyName : modifiedPropertyNames) { + currentPropertyName = propertyName; + ColumnInfo columnInfo = dbmeta.findColumnInfo(propertyName); + String columnName = columnInfo.getColumnDbName(); + Method getter = columnInfo.findGetter(); + Object value = getter.invoke(entity, (Object[]) null); + if (value != null) { + columnParameterMap.put(columnName, "/*entity." + + propertyName + "*/null"); + } else { + columnParameterMap.put(columnName, "null"); + } + } + if (dbmeta.hasVersionNo()) { + ColumnInfo columnInfo = dbmeta.getVersionNoColumnInfo(); + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, columnName + " + 1"); + } + if (dbmeta.hasUpdateDate()) { + ColumnInfo columnInfo = dbmeta.getUpdateDateColumnInfo(); + Method setter = columnInfo.findSetter(); + if (Timestamp.class.isAssignableFrom(columnInfo + .getPropertyType())) { + setter.invoke(entity, new Timestamp(System + .currentTimeMillis())); + } else { + setter.invoke(entity, new Date()); + } + String columnName = columnInfo.getColumnDbName(); + columnParameterMap.put(columnName, "/*entity." + + columnInfo.getPropertyName() + "*/null"); + } + } catch (Exception e) { + throwQueryUpdateFailureException(cb, entity, currentPropertyName, e); + } + return cb.getSqlClause().getClauseQueryUpdate(columnParameterMap); + } + + protected void throwQueryUpdateFailureException(ConditionBean cb, + Entity entity, String propertyName, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "queryUpdate() failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Doubtful Property Name]" + getLineSeparator() + + propertyName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator() + cb + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new QueryUpdateFailureException(msg, e); + } + + public static class QueryUpdateFailureException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public QueryUpdateFailureException(String msg, Exception e) { + super(msg, e); + } + } + + protected CommandContext createCommandContext(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + CommandContext context; + { + InternalSqlParser parser = new InternalSqlParser(twoWaySql); + Node node = parser.parse(); + InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + return context; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlcommand/InternalUpdateQueryAutoDynamicCommand.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,271 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.util.IntegerConversionUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractAutoHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BeanMetaData beanMetaData; + + protected Object[] bindVariables; + + protected ValueType[] bindVariableValueTypes; + + protected Timestamp timestamp; + + protected Integer versionNo; + + protected PropertyType[] propertyTypes; + + protected boolean versionNoAutoIncrementOnMemory = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory); + this.beanMetaData = beanMetaData; + this.propertyTypes = propertyTypes; + } + + public int execute(Object[] args) { + Connection connection = getConnection(); + try { + return execute(connection, args[0]); + } finally { + close(connection); + } + } + + public int execute(Object[] args, Class[] argTypes) { + return execute(args); + } + + protected int execute(Connection connection, Object bean) { + preUpdateBean(bean); + setupBindVariables(bean); + logSql(bindVariables, getArgTypes(bindVariables)); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, bindVariables, bindVariableValueTypes); + ret = executeUpdate(ps); + } finally { + close(ps); + } + postUpdateBean(bean, ret); + return ret; + } + + protected void bindArgs(PreparedStatement ps, Object[] args, + ValueType[] valueTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = valueTypes[i]; + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected void preUpdateBean(Object bean) { + } + + protected void postUpdateBean(Object bean, int ret) { + } + + protected abstract void setupBindVariables(Object bean); + + protected void setupInsertBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + setVersionNo(new Integer(0)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupUpdateBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + final BeanMetaData bmd = getBeanMetaData(); + final String timestampPropertyName = bmd.getTimestampPropertyName(); + final String versionNoPropertyName = bmd.getVersionNoPropertyName(); + for (int i = 0; i < propertyTypes.length; ++i) { + PropertyType pt = propertyTypes[i]; + if (pt.getPropertyName().equalsIgnoreCase(timestampPropertyName)) { + setTimestamp(new Timestamp(new Date().getTime())); + varList.add(getTimestamp()); + } else if (pt.getPropertyName().equalsIgnoreCase( + versionNoPropertyName)) { + if (!isVersionNoAutoIncrementOnMemory()) { + continue;// because of always 'VERSION_NO = VERSION_NO + 1' + } + Object value = pt.getPropertyDesc().getValue(bean); + if (value == null) { + continue;// because of 'VERSION_NO = VERSION_NO + 1' + } + int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1; + setVersionNo(new Integer(intValue)); + varList.add(getVersionNo()); + } else { + varList.add(pt.getPropertyDesc().getValue(bean)); + } + varValueTypeList.add(pt.getValueType()); + } + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void setupDeleteBindVariables(Object bean) { + final List varList = new ArrayList(); + final List varValueTypeList = new ArrayList(); + addAutoUpdateWhereBindVariables(varList, varValueTypeList, bean); + setBindVariables(varList.toArray()); + setBindVariableValueTypes((ValueType[]) varValueTypeList + .toArray(new ValueType[varValueTypeList.size()])); + } + + protected void addAutoUpdateWhereBindVariables(List varList, + List varValueTypeList, Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getPrimaryKeySize(); ++i) { + PropertyType pt = bmd.getPropertyTypeByColumnName(bmd + .getPrimaryKey(i)); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasVersionNoPropertyType()) { + PropertyType pt = bmd.getVersionNoPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + if (bmd.hasTimestampPropertyType()) { + PropertyType pt = bmd.getTimestampPropertyType(); + PropertyDesc pd = pt.getPropertyDesc(); + varList.add(pd.getValue(bean)); + varValueTypeList.add(pt.getValueType()); + } + } + + protected void updateTimestampIfNeed(Object bean) { + if (getTimestamp() != null) { + PropertyDesc pd = getBeanMetaData().getTimestampPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getTimestamp()); + } + } + + protected void updateVersionNoIfNeed(Object bean) { + if (getVersionNo() != null) { + PropertyDesc pd = getBeanMetaData().getVersionNoPropertyType() + .getPropertyDesc(); + pd.setValue(bean, getVersionNo()); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public BeanMetaData getBeanMetaData() { + return beanMetaData; + } + + protected Object[] getBindVariables() { + return bindVariables; + } + + protected void setBindVariables(Object[] bindVariables) { + this.bindVariables = bindVariables; + } + + protected ValueType[] getBindVariableValueTypes() { + return bindVariableValueTypes; + } + + protected void setBindVariableValueTypes(ValueType[] bindVariableValueTypes) { + this.bindVariableValueTypes = bindVariableValueTypes; + } + + protected Timestamp getTimestamp() { + return timestamp; + } + + protected void setTimestamp(Timestamp timestamp) { + this.timestamp = timestamp; + } + + protected Integer getVersionNo() { + return versionNo; + } + + protected void setVersionNo(Integer versionNo) { + this.versionNo = versionNo; + } + + protected PropertyType[] getPropertyTypes() { + return propertyTypes; + } + + protected void setPropertyTypes(PropertyType[] propertyTypes) { + this.propertyTypes = propertyTypes; + } + + protected boolean isVersionNoAutoIncrementOnMemory() { + return versionNoAutoIncrementOnMemory; + } + + public void setVersionNoAutoIncrementOnMemory( + boolean versionNoAutoIncrementOnMemory) { + this.versionNoAutoIncrementOnMemory = versionNoAutoIncrementOnMemory; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,137 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public abstract class InternalAbstractBatchAutoHandler extends + InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalAbstractBatchAutoHandler.class); + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalAbstractBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int[] execute(List list, Class[] argTypes) { + return execute(list); + } + + public int[] execute(List list) { + if (list == null) { + throw new IllegalArgumentException("list"); + } + if (list.isEmpty()) { + if (_log.isDebugEnabled()) { + _log.debug("Skip executeBatch() bacause of the empty list."); + } + return new int[0]; + } + final Connection connection = getConnection(); + try { + final PreparedStatement ps = prepareStatement(connection); + try { + for (Iterator iter = list.iterator(); iter.hasNext();) { + final Object bean = (Object) iter.next(); + prepareBatchElement(ps, bean); + } + return executeBatch(ps, list); + } finally { + close(ps); + } + } finally { + close(connection); + } + // Reflection to bean is unsupported at batch update. + // postBatchUpdateBean(...); + } + + public int execute(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + int[] ret = execute(list); + int updatedRow = 0; + for (int i = 0; i < ret.length; i++) { + if (ret[i] > 0) { + updatedRow += ret[i]; + } + } + return updatedRow; + } + + public int[] executeBatch(Object[] args) { + List list = null; + if (args[0] instanceof Object[]) { + list = Arrays.asList((Object[]) args[0]); + } else if (args[0] instanceof List) { + list = (List) args[0]; + } + if (list == null) { + throw new IllegalArgumentException("args[0]"); + } + return execute(list); + } + + protected void prepareBatchElement(PreparedStatement ps, Object bean) { + setupBindVariables(bean); + logSql(getBindVariables(), getArgTypes(getBindVariables())); + bindArgs(ps, getBindVariables(), getBindVariableValueTypes()); + addBatch(ps); + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected int[] executeBatch(PreparedStatement ps, List list) { + try { + return ps.executeBatch(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return null; // Unreachable! + } + } + + protected void addBatch(PreparedStatement ps) { + try { + ps.addBatch(); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalAbstractBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,623 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.CallbackContext; +import jp.sf.pal.scheduler.db.allcommon.DBFluteConfig; +import jp.sf.pal.scheduler.db.allcommon.InternalMapContext; +import jp.sf.pal.scheduler.db.allcommon.QLog; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException; +import jp.sf.pal.scheduler.db.allcommon.exception.SQLFailureException; +import jp.sf.pal.scheduler.db.allcommon.jdbc.SqlLogHandler; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqllog.InternalSqlLogRegistry; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.exception.SQLRuntimeException; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private DataSource dataSource; + + private String sql; + + private StatementFactory statementFactory; + + private Object[] loggingMessageSqlArgs; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicHandler(DataSource ds, StatementFactory statementFactory) { + setDataSource(ds); + setStatementFactory(statementFactory); + } + + public InternalBasicHandler(DataSource ds, String sql, + StatementFactory statementFactory) { + setDataSource(ds); + setSql(sql); + setStatementFactory(statementFactory); + } + + //========================================================================== + // ========= + // Common Logic + // ============ + // ----------------------------------------------------- + // Args Handling + // ------------- + protected void bindArgs(PreparedStatement ps, Object[] args, + Class[] argTypes) { + if (args == null) { + return; + } + for (int i = 0; i < args.length; ++i) { + ValueType valueType = getValueType(argTypes[i]); + try { + valueType.bindValue(ps, i + 1, args[i]); + } catch (SQLException e) { + handleSQLException(e, ps); + } + } + } + + protected Class[] getArgTypes(Object[] args) { + if (args == null) { + return null; + } + Class[] argTypes = new Class[args.length]; + for (int i = 0; i < args.length; ++i) { + Object arg = args[i]; + if (arg != null) { + argTypes[i] = arg.getClass(); + } + } + return argTypes; + } + + // ----------------------------------------------------- + // SQL Logging + // ----------- + protected void logSql(Object[] args, Class[] argTypes) { + final SqlLogHandler sqlLogHandler = getSqlLogHander(); + final boolean existsSqlLogHandler = sqlLogHandler != null; + final Object sqlLogRegistry = InternalSqlLogRegistry + .findContainerSqlLogRegistry(); + final boolean existsSqlLogRegistry = sqlLogRegistry != null; + if (isLogEnabled() || existsSqlLogHandler || existsSqlLogRegistry) { + final String completeSql = getCompleteSql(args); + if (isLogEnabled()) { + log((isContainsLineSeparatorInSql() ? getLineSeparator() : "") + + completeSql); + } + if (existsSqlLogHandler) { // DBFlute provides + sqlLogHandler.handle(getSql(), completeSql, args, argTypes); + } + if (existsSqlLogRegistry) { // S2Container provides + InternalSqlLogRegistry.push(getSql(), completeSql, args, + argTypes, sqlLogRegistry); + } + } + } + + protected boolean isLogEnabled() { + return QLog.isLogEnabled(); + } + + protected void log(String msg) { + QLog.log(msg); + } + + protected String getCompleteSql(Object[] args) { + return InternalBindVariableUtil.getCompleteSql(sql, args); + } + + protected SqlLogHandler getSqlLogHander() { + if (!CallbackContext.isExistCallbackContextOnThread()) { + return null; + } + return CallbackContext.getCallbackContextOnThread().getSqlLogHandler(); + } + + protected boolean isContainsLineSeparatorInSql() { + return sql != null ? sql.contains(getLineSeparator()) : false; + } + + // ----------------------------------------------------- + // Various + // ------- + protected String getBindVariableText(Object bindVariable) { + return InternalBindVariableUtil.getBindVariableText(bindVariable); + } + + protected ValueType getValueType(Class clazz) { + return ValueTypes.getValueType(clazz); + } + + //========================================================================== + // ========= + // Exception Handler + // ================= + protected void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + protected void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + String completeSql = buildLoggingMessageSql(); + new SQLExceptionHandler().handleSQLException(e, statement, + uniqueConstraintValid, completeSql); + } + + protected String buildLoggingMessageSql() { + String completeSql = null; + if (sql != null && loggingMessageSqlArgs != null) { + try { + completeSql = getCompleteSql(loggingMessageSqlArgs); + } catch (RuntimeException ignored) { + } + } + return completeSql; + } + + public static class SQLExceptionHandler { + + public void handleSQLException(SQLException e, Statement statement) { + handleSQLException(e, statement, false); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid) { + handleSQLException(e, statement, uniqueConstraintValid, null); + } + + public void handleSQLException(SQLException e, Statement statement, + boolean uniqueConstraintValid, String completeSql) { + if (isSqlExceptionOldStyleHandling()) { + throw new SQLRuntimeException(e); + } + if (uniqueConstraintValid && isUniqueConstraintException(e)) { + throwEntityAlreadyExistsException(e, statement, completeSql); + } + throwSQLFailureException(e, statement, completeSql); + } + + protected boolean isUniqueConstraintException(SQLException e) { + DBFluteConfig.UniqueConstraintDeterminator determinator = getUniqueConstraintDeterminator(); + if (determinator != null) { + return determinator.isUniqueConstraintException(e); + } + return ConditionBeanContext.isUniqueConstraintException( + extractSQLState(e), e.getErrorCode()); + } + + protected DBFluteConfig.UniqueConstraintDeterminator getUniqueConstraintDeterminator() { + return DBFluteConfig.getInstance() + .getUniqueConstraintDeterminator(); + } + + protected boolean isSqlExceptionOldStyleHandling() { + return DBFluteConfig.getInstance().isSqlExceptionOldStyleHandling(); + } + + protected void throwEntityAlreadyExistsException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The entity already exists on the database!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the primary key whether it already exists on the database." + + getLineSeparator(); + msg = msg + "And confirm the unique constraint for other columns." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new EntityAlreadyExistsException(msg, e); + } + + protected void throwSQLFailureException(SQLException e, + Statement statement, String completeSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The SQL failed to execute!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the SQLException message." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLState]" + getLineSeparator() + extractSQLState(e) + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ErrorCode]" + getLineSeparator() + e.getErrorCode() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[SQLException]" + getLineSeparator() + + e.getClass().getName() + getLineSeparator(); + msg = msg + e.getMessage() + getLineSeparator(); + SQLException nextEx = e.getNextException(); + if (nextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextException]" + getLineSeparator(); + msg = msg + nextEx.getClass().getName() + getLineSeparator(); + msg = msg + nextEx.getMessage() + getLineSeparator(); + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx != null) { + msg = msg + getLineSeparator(); + msg = msg + "[NextNextException]" + getLineSeparator(); + msg = msg + nextNextEx.getClass().getName() + + getLineSeparator(); + msg = msg + nextNextEx.getMessage() + getLineSeparator(); + } + } + Object invokeName = extractBehaviorInvokeName(); + if (invokeName != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Behavior]" + getLineSeparator(); + msg = msg + invokeName + getLineSeparator(); + } + if (hasConditionBean()) { + msg = msg + getLineSeparator(); + msg = msg + "[ConditionBean]" + getLineSeparator(); + msg = msg + getConditionBean().getClass().getName() + + getLineSeparator(); + } + if (hasOutsideSqlContext()) { + msg = msg + getLineSeparator(); + msg = msg + "[OutsideSql]" + getLineSeparator(); + msg = msg + getOutsideSqlContext().getOutsideSqlPath() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[ParameterBean]" + getLineSeparator(); + Object pmb = getOutsideSqlContext().getParameterBean(); + if (pmb != null) { + msg = msg + pmb.getClass().getName() + getLineSeparator(); + msg = msg + pmb + getLineSeparator(); + } else { + msg = msg + pmb + getLineSeparator(); + } + } + if (statement != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Statement]" + getLineSeparator(); + msg = msg + statement.getClass().getName() + getLineSeparator(); + } + if (completeSql != null) { + msg = msg + getLineSeparator(); + msg = msg + "[Display SQL]" + getLineSeparator(); + msg = msg + completeSql + getLineSeparator(); + } + msg = msg + "* * * * * * * * * */"; + throw new SQLFailureException(msg, e); + } + + protected String extractSQLState(SQLException e) { + String sqlState = e.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next + SQLException nextEx = e.getNextException(); + if (nextEx == null) { + return null; + } + sqlState = nextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next + SQLException nextNextEx = nextEx.getNextException(); + if (nextNextEx == null) { + return null; + } + sqlState = nextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // Next Next Next + SQLException nextNextNextEx = nextNextEx.getNextException(); + if (nextNextNextEx == null) { + return null; + } + sqlState = nextNextNextEx.getSQLState(); + if (sqlState != null) { + return sqlState; + } + + // It doesn't use recursive call by design because JDBC is + // unpredictable fellow. + return null; + } + + protected String extractBehaviorInvokeName() { + final Object behaviorInvokeName = InternalMapContext + .getObject("df:BehaviorInvokeName"); + if (behaviorInvokeName == null) { + return null; + } + final Object clientInvokeName = InternalMapContext + .getObject("df:ClientInvokeName"); + final Object byPassInvokeName = InternalMapContext + .getObject("df:ByPassInvokeName"); + final StringBuilder sb = new StringBuilder(); + boolean existsPath = false; + if (clientInvokeName != null) { + existsPath = true; + sb.append(clientInvokeName); + } + if (byPassInvokeName != null) { + existsPath = true; + sb.append(byPassInvokeName); + } + sb.append(behaviorInvokeName); + if (existsPath) { + sb.append("..."); + } + return sb.toString(); + } + + protected boolean hasConditionBean() { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected ConditionBean getConditionBean() { + return ConditionBeanContext.getConditionBeanOnThread(); + } + + protected boolean hasOutsideSqlContext() { + return OutsideSqlContext.isExistOutsideSqlContextOnThread(); + } + + protected OutsideSqlContext getOutsideSqlContext() { + return OutsideSqlContext.getOutsideSqlContextOnThread(); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + //========================================================================== + // ========= + // JDBC Delegator + // ============== + protected Connection getConnection() { + if (dataSource == null) { + throw new IllegalStateException( + "The dataSource should not be null!"); + } + try { + return dataSource.getConnection(); + } catch (SQLException e) { + handleSQLException(e, null); + return null;// Unreachable! + } + } + + protected PreparedStatement prepareStatement(Connection conn) { + if (sql == null) { + throw new IllegalStateException("The sql should not be null!"); + } + return statementFactory.createPreparedStatement(conn, sql); + } + + protected int executeUpdate(PreparedStatement ps) { + try { + return ps.executeUpdate(); + } catch (SQLException e) { + handleSQLException(e, ps, true); + return 0;// Unreachable! + } + } + + protected void setFetchSize(Statement statement, int fetchSize) { + if (statement == null) { + return; + } + try { + statement.setFetchSize(fetchSize); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void setMaxRows(Statement statement, int maxRows) { + if (statement == null) { + return; + } + try { + statement.setMaxRows(maxRows); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(Statement statement) { + if (statement == null) { + return; + } + try { + statement.close(); + } catch (SQLException e) { + handleSQLException(e, statement); + } + } + + protected void close(ResultSet resultSet) { + if (resultSet == null) { + return; + } + try { + resultSet.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + protected void close(Connection conn) { + if (conn == null) { + return; + } + try { + conn.close(); + } catch (SQLException e) { + handleSQLException(e, null); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + // It needs this method if the target database doest not support line + // comment. + protected String removeLineComment(final String sql) { // With removing CR! + if (sql == null || sql.trim().length() == 0) { + return sql; + } + final StringBuilder sb = new StringBuilder(); + final String[] lines = sql.split("\n"); + for (String line : lines) { + if (line == null) { + continue; + } + line = line.replaceAll("\r", ""); // Remove CR! + if (line.startsWith("--")) { + continue; + } + sb.append(line).append("\n"); + } + return sb.toString(); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public DataSource getDataSource() { + return dataSource; + } + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + + public StatementFactory getStatementFactory() { + return statementFactory; + } + + public void setStatementFactory(StatementFactory statementFactory) { + this.statementFactory = statementFactory; + } + + public void setLoggingMessageSqlArgs(Object[] loggingMessageSqlArgs) { + this.loggingMessageSqlArgs = loggingMessageSqlArgs; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,146 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.cbean.FetchNarrowingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.FetchNarrowingBeanContext; +import jp.sf.pal.scheduler.db.allcommon.cbean.outsidesql.OutsideSqlContext; +import jp.sf.pal.scheduler.db.allcommon.s2dao.FetchNarrowingResultSetWrapper; + +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicSelectHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private ResultSetHandler resultSetHandler; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicSelectHandler(DataSource dataSource, String sql, + ResultSetHandler resultSetHandler, StatementFactory statementFactory) { + super(dataSource, statementFactory); + setSql(sql); + setResultSetHandler(resultSetHandler); + } + + //========================================================================== + // ========= + // Execute + // ======= + public Object execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public Object execute(Object[] args, Class[] argTypes) { + Connection conn = getConnection(); + try { + return execute(conn, args, argTypes); + } finally { + close(conn); + } + } + + @SuppressWarnings("unchecked") + public Object execute(Connection conn, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = null; + try { + ps = prepareStatement(conn); + bindArgs(ps, args, argTypes); + return execute(ps); + } catch (SQLException e) { + handleSQLException(e, ps); + return null; // Unreachable! + } finally { + close(ps); + } + } + + protected Object execute(PreparedStatement ps) throws SQLException { + if (resultSetHandler == null) { + throw new IllegalStateException( + "The resultSetHandler should not be null!"); + } + ResultSet resultSet = null; + try { + resultSet = createResultSet(ps); + return resultSetHandler.handle(resultSet); + } finally { + close(resultSet); + } + } + + protected ResultSet createResultSet(PreparedStatement ps) + throws SQLException { + final ResultSet resultSet = ps.executeQuery(); + if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) { + return resultSet; + } + final FetchNarrowingBean cb = FetchNarrowingBeanContext + .getFetchNarrowingBeanOnThread(); + if (!isUseFetchNarrowingResultSetWrapper(cb)) { + return resultSet; + } + final FetchNarrowingResultSetWrapper wrapper; + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, + outsideSqlContext.isOffsetByCursorForcedly(), + outsideSqlContext.isLimitByCursorForcedly()); + } else { + wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, + false); + } + return wrapper; + } + + protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) { + if (cb.getSafetyMaxResultSize() > 0) { + return true; + } + if (!cb.isFetchNarrowingEffective()) { + return false; // It is not necessary to control. + } + if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) { + final OutsideSqlContext outsideSqlContext = OutsideSqlContext + .getOutsideSqlContextOnThread(); + if (outsideSqlContext.isOffsetByCursorForcedly() + || outsideSqlContext.isLimitByCursorForcedly()) { + return true; + } + } + if (cb.isFetchNarrowingSkipStartIndexEffective() + || cb.isFetchNarrowingLoopCountEffective()) { + return true; + } + return false; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public ResultSetHandler getResultSetHandler() { + return resultSetHandler; + } + + public void setResultSetHandler(ResultSetHandler resultSetHandler) { + this.resultSetHandler = resultSetHandler; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicSelectHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,53 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBasicUpdateHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBasicUpdateHandler(DataSource dataSource, String sql, + StatementFactory statementFactory) { + super(dataSource, sql, statementFactory); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + return execute(args, getArgTypes(args)); + } + + @SuppressWarnings("unchecked") + public int execute(Object[] args, Class[] argTypes) { + Connection connection = getConnection(); + try { + return execute(connection, args, argTypes); + } finally { + close(connection); + } + } + + @SuppressWarnings("unchecked") + public int execute(Connection connection, Object[] args, Class[] argTypes) { + logSql(args, argTypes); + PreparedStatement ps = prepareStatement(connection); + try { + bindArgs(ps, args, argTypes); + return executeUpdate(ps); + } finally { + close(ps); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalBasicUpdateHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,60 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +import javax.sql.DataSource; + +import org.seasar.dao.CommandContext; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextHandler extends InternalBasicHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + protected CommandContext commandContext; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextHandler(DataSource dataSource, + StatementFactory statementFactory, CommandContext commandContext) { + super(dataSource, statementFactory); + this.commandContext = commandContext; + setSql(commandContext.getSql()); + } + + //========================================================================== + // ========= + // Execute + // ======= + public int execute(Object[] args) { + final Connection connection = getConnection(); + try { + return execute(connection, commandContext); + } finally { + close(connection); + } + } + + protected int execute(Connection connection, CommandContext context) { + logSql(context.getBindVariables(), getArgTypes(context + .getBindVariables())); + PreparedStatement ps = prepareStatement(connection); + int ret = -1; + try { + bindArgs(ps, context.getBindVariables(), context + .getBindVariableTypes()); + ret = executeUpdate(ps); + } finally { + close(ps); + } + return ret; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalCommandContextHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,33 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,34 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalDeleteBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalDeleteBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupDeleteBindVariables(bean); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalDeleteBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,58 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.IdentifierGenerator; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void preUpdateBean(Object bean) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + BeanMetaData bmd = getBeanMetaData(); + for (int i = 0; i < bmd.getIdentifierGeneratorSize(); i++) { + IdentifierGenerator generator = bmd.getIdentifierGenerator(i); + if (!generator.isSelfGenerate()) { + generator.setIdentifier(bean, getDataSource()); + } + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,34 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalInsertBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalInsertBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupInsertBindVariables(bean); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalInsertBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,262 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalProcedureMetaData; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various.InternalProcedureParameterType; + +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ResultSetHandler; +import org.seasar.extension.jdbc.StatementFactory; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.impl.PropertyTypeImpl; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.util.CaseInsensitiveMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureHandler extends InternalBasicSelectHandler { + + //========================================================================== + // ========= + // Attribute + // ========= + private InternalProcedureMetaData procedureMetaData; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureHandler(final DataSource dataSource, + final String sql, final ResultSetHandler resultSetHandler, + final StatementFactory statementFactory, + final InternalProcedureMetaData procedureMetaData) { + super(dataSource, sql, resultSetHandler, statementFactory); + this.procedureMetaData = procedureMetaData; + } + + //========================================================================== + // ========= + // Execute + // ======= + @SuppressWarnings("unchecked") + public Object execute(final Connection connection, final Object[] args, + final Class[] argTypes) { + final Object dto = getArgumentDto(args); + logSql(args, argTypes); + CallableStatement cs = null; + try { + cs = prepareCallableStatement(connection); + bindArgs(cs, dto); + Object returnValue = null; + if (cs.execute()) { + final ResultSet resultSet = cs.getResultSet(); + if (resultSet != null) { + final ResultSetHandler handler = createReturnResultSetHandler(resultSet); + try { + returnValue = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + } + return handleOutParameters(cs, dto, returnValue); + } catch (SQLException e) { + handleSQLException(e, cs); + return null;// Unreachable! + } finally { + close(cs); + } + } + + protected ResultSetHandler createReturnResultSetHandler(ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + @Override + protected String getCompleteSql(final Object[] args) {// for Procedure Call + String sql = getSql(); + Object dto = getArgumentDto(args); + if (args == null || dto == null) { + return sql; + } + StringBuilder sb = new StringBuilder(100); + int pos = 0; + int pos2 = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + if ((pos2 = sql.indexOf('?', pos)) < 0) { + break; + } + sb.append(sql.substring(pos, pos2)); + pos = pos2 + 1; + if (ppt.isInType()) { + sb.append(getBindVariableText(ppt.getValue(dto))); + } else { + sb.append(sql.substring(pos2, pos)); + } + } + sb.append(sql.substring(pos)); + return sb.toString(); + } + + protected CallableStatement prepareCallableStatement( + final Connection connection) { + if (getSql() == null) { + throw new IllegalStateException("The SQL should not be null!"); + } + return getStatementFactory().createCallableStatement(connection, + getSql()); + } + + protected void bindArgs(final CallableStatement cs, final Object dto) + throws SQLException { + if (dto == null) { + return; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + valueType.registerOutParameter(cs, i + 1); + } + if (ppt.isInType()) { + final Object value = ppt.getValue(dto); + valueType.bindValue(cs, i + 1, value); + } + ++i; + } + } + + protected Object handleResultSet(final CallableStatement cs) + throws SQLException { + ResultSet rs = null; + try { + rs = getResultSet(cs); + return getResultSetHandler().handle(rs); + } finally { + close(rs); + } + } + + protected ResultSet getResultSet(Statement statement) { + try { + return statement.getResultSet(); + } catch (SQLException e) { + handleSQLException(e, statement); + return null;// Unreachable! + } + } + + protected Object handleOutParameters(final CallableStatement cs, + final Object dto, Object returnValue) throws SQLException { + if (dto == null) { + return null; + } + int i = 0; + for (InternalProcedureParameterType ppt : procedureMetaData + .parameterTypes()) { + final ValueType valueType = ppt.getValueType(); + if (ppt.isOutType()) { + Object value = valueType.getValue(cs, i + 1); + if (value instanceof ResultSet) { + final ResultSet resultSet = (ResultSet) value; + final ResultSetHandler handler = createOutParameterResultSetHandler( + ppt, resultSet); + try { + value = handler.handle(resultSet); + } finally { + if (resultSet != null) { + resultSet.close(); + } + } + } + ppt.setValue(dto, value); + } else if (ppt.isReturnType()) { + ppt.setValue(dto, returnValue); + } + ++i; + } + return dto; + } + + protected Object getArgumentDto(Object[] args) { + if (args.length == 0) { + return null; + } + if (args.length == 1) { + if (args[0] == null) { + throw new IllegalArgumentException( + "args[0] should not be null!"); + } + return args[0]; + } + throw new IllegalArgumentException("args"); + } + + protected ResultSetHandler createOutParameterResultSetHandler( + InternalProcedureParameterType ppt, ResultSet resultSet) { + return new InternalMapListResultSetHandler(); + } + + //========================================================================== + // ========= + // Map Result Set Handler + // ====================== + protected static abstract class InternalAbstractMapResultSetHandler + implements ResultSetHandler { + + @SuppressWarnings("unchecked") + protected Map createRow(ResultSet rs, + PropertyType[] propertyTypes) throws SQLException { + Map row = new CaseInsensitiveMap(); + for (int i = 0; i < propertyTypes.length; ++i) { + Object value = propertyTypes[i].getValueType().getValue(rs, + i + 1); + row.put(propertyTypes[i].getPropertyName(), value); + } + return row; + } + + protected PropertyType[] createPropertyTypes(ResultSetMetaData rsmd) + throws SQLException { + int count = rsmd.getColumnCount(); + PropertyType[] propertyTypes = new PropertyType[count]; + for (int i = 0; i < count; ++i) { + String propertyName = rsmd.getColumnLabel(i + 1); + ValueType valueType = ValueTypes.getValueType(rsmd + .getColumnType(i + 1)); + propertyTypes[i] = new PropertyTypeImpl(propertyName, valueType); + } + return propertyTypes; + } + } + + protected static class InternalMapListResultSetHandler extends + InternalAbstractMapResultSetHandler { + + public Object handle(ResultSet resultSet) throws SQLException { + PropertyType[] propertyTypes = createPropertyTypes(resultSet + .getMetaData()); + List> list = new ArrayList>(); + while (resultSet.next()) { + list.add(createRow(resultSet, propertyTypes)); + } + return list; + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalProcedureHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,67 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateAutoHandler extends InternalAbstractAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + private boolean checkSingleRowUpdate = true; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + setLoggingMessageSqlArgs(bindVariables); + } + + @Override + protected void postUpdateBean(Object bean, int ret) { + if (isCheckSingleRowUpdate() && ret < 1) { + throw createEntityAlreadyUpdatedException(bean, ret); + } + updateVersionNoIfNeed(bean); + updateTimestampIfNeed(bean); + } + + protected EntityAlreadyUpdatedException createEntityAlreadyUpdatedException( + Object bean, int rows) { + return new EntityAlreadyUpdatedException(bean, rows); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public boolean isCheckSingleRowUpdate() { + return checkSingleRowUpdate; + } + + public void setCheckSingleRowUpdate(boolean resultCheck) { + this.checkSingleRowUpdate = resultCheck; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,34 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlhandler; + +import javax.sql.DataSource; + +import org.seasar.dao.BeanMetaData; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.StatementFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalUpdateBatchAutoHandler extends + InternalAbstractBatchAutoHandler { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalUpdateBatchAutoHandler(DataSource dataSource, + StatementFactory statementFactory, BeanMetaData beanMetaData, + PropertyType[] propertyTypes) { + + super(dataSource, statementFactory, beanMetaData, propertyTypes); + } + + //========================================================================== + // ========= + // Override + // ======== + @Override + protected void setupBindVariables(Object bean) { + setupUpdateBindVariables(bean); + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlhandler/InternalUpdateBatchAutoHandler.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,55 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqllog; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLog { + + //========================================================================== + // ========= + // Attribute + // ========= + private String rawSql; + + private String completeSql; + + private Object[] bindArgs; + + private Class[] bindArgTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlLog(String rawSql, String completeSql, Object[] bindArgs, + Class[] bindArgTypes) { + this.rawSql = rawSql; + this.completeSql = completeSql; + this.bindArgs = bindArgs; + this.bindArgTypes = bindArgTypes; + } + + //========================================================================== + // ========= + // Accessor + // ======== + public Object[] getBindArgs() { + return bindArgs; + } + + public Class[] getBindArgTypes() { + return bindArgTypes; + } + + public String getCompleteSql() { + return completeSql; + } + + public String getRawSql() { + return rawSql; + } + + public String toString() { + return rawSql; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLog.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,277 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqllog; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlLogRegistry { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalSqlLogRegistry.class); + + //========================================================================== + // ========= + // Definition + // ========== + protected static final String NAME_SqlLogRegistryLocator = "org.seasar.extension.jdbc.SqlLogRegistryLocator"; + + protected static final String NAME_getInstance = "getInstance"; + + protected static final String NAME_setInstance = "setInstance"; + + protected static final String NAME_SqlLogRegistry = "org.seasar.extension.jdbc.SqlLogRegistry"; + + protected static final String NAME_SqlLogRegistryImpl = "org.seasar.extension.jdbc.impl.SqlLogRegistryImpl"; + + protected static final String NAME_SqlLog = "org.seasar.extension.jdbc.SqlLog"; + + protected static final String NAME_SqlLogImpl = "org.seasar.extension.jdbc.impl.SqlLogImpl"; + static { + forNameContainerSqlLogRegistryLocator(); + } + + //========================================================================== + // ========= + // Public Entry + // ============ + public static boolean setupSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return false; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return false; + } + final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl(); + if (sqlLogRegistryImpl == null) { + return false; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Setting the registry of sqlLog to the locator."); + method.invoke(null, new Object[] { sqlLogRegistryImpl }); + return true; + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.setupSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void clearSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return; + } + Class sqlLogRegistryType = sqlLogRegistry.getClass(); + try { + final Method method = sqlLogRegistryType.getMethod("clear", + new Class[] {}); + method.invoke(sqlLogRegistry, new Object[] {}); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.clearSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + throw new IllegalStateException(msg, e); + } + } + + public static Object findContainerSqlLogRegistry() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return null; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_getInstance, (Class[]) null); + return method.invoke(null, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_getInstance=" + NAME_getInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void closeRegistration() { + final Class sqlLogRegistryLocatorType = forNameContainerSqlLogRegistryLocator(); + if (sqlLogRegistryLocatorType == null) { + return; + } + final Class sqlLogRegistryType = forNameContainerSqlLogRegistry(); + if (sqlLogRegistryType == null) { + return; + } + try { + final Method method = sqlLogRegistryLocatorType.getMethod( + NAME_setInstance, new Class[] { sqlLogRegistryType }); + _log.info("...Closing the registry of sqlLog."); + method.invoke(null, new Object[] { null }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.closeRegistration() threw the exception:"; + msg = msg + " sqlLogRegistryLocatorType=" + + sqlLogRegistryLocatorType; + msg = msg + " NAME_setInstance=" + NAME_setInstance; + throw new IllegalStateException(msg, e); + } + } + + public static void push(String rawSql, String completeSql, + Object[] bindArgs, Class[] bindArgTypes, Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + throw new IllegalArgumentException( + "sqlLogRegistry should not be null!"); + } + final Object sqlLogImpl = createContainerSqlLogImpl(rawSql, + completeSql, bindArgs, bindArgTypes); + reflectSqlLogToContainerSqlLogRegistry(sqlLogImpl, sqlLogRegistry); + } + + public static String peekCompleteSql() { + final Object sqlLogRegistry = findContainerSqlLogRegistry(); + if (sqlLogRegistry == null) { + return null; + } + final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry); + if (sqlLog == null) { + return null; + } + return extractCompleteSqlFromContainerSqlLog(sqlLog); + } + + //========================================================================== + // ========= + // Container Reflection + // ==================== + protected static Object createContainerSqlLogRegistryImpl() { + try { + final Class clazz = forNameContainerSqlLogRegistryImpl(); + if (clazz == null) { + return null; + } + final Constructor constructor = clazz.getConstructor(int.class); + return constructor.newInstance(new Object[] { 3 }); + } catch (Exception e) { + String msg = NAME_SqlLogRegistry + + ".class.newInstance threw the exception:"; + msg = msg + " NAME_SqlLogRegistry=" + NAME_SqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static Object createContainerSqlLogImpl(String rawSql, + String completeSql, Object[] bindArgs, Class[] bindArgTypes) { + try { + final Class sqlLogImplType = Class.forName(NAME_SqlLogImpl); + final Class[] argTypes = new Class[] { String.class, + String.class, Object[].class, Class[].class }; + final Constructor constructor = sqlLogImplType + .getConstructor(argTypes); + return constructor.newInstance(new Object[] { rawSql, completeSql, + bindArgs, bindArgTypes }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.createContainerSqlLogImpl() threw the exception:"; + msg = msg + " completeSql=" + completeSql; + msg = msg + " NAME_SqlLogImpl=" + NAME_SqlLogImpl; + throw new IllegalStateException(msg, e); + } + } + + protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLog, + Object sqlLogRegistry) { + if (sqlLog == null || sqlLogRegistry == null) { + return; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Class sqlLogType = Class.forName(NAME_SqlLog); + final Method method = sqlLogRegistryType.getMethod("add", + new Class[] { sqlLogType }); + method.invoke(sqlLogRegistry, new Object[] { sqlLog }); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.reflectToContainerSqlLogRegistry() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + + sqlLogRegistry; + msg = msg + " NAME_SqlLog=" + NAME_SqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Object findLastContainerSqlLog(Object sqlLogRegistry) { + if (sqlLogRegistry == null) { + return null; + } + try { + final Class sqlLogRegistryType = sqlLogRegistry.getClass(); + final Method method = sqlLogRegistryType.getMethod("getLast", + (Class[]) null); + return method.invoke(sqlLogRegistry, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.findLastContainerSqlLog() threw the exception:"; + msg = msg + " sqlLogRegistry=" + sqlLogRegistry; + throw new IllegalStateException(msg, e); + } + } + + protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) { + if (sqlLog == null) { + return null; + } + try { + final Class sqlLogType = sqlLog.getClass(); + final Method method = sqlLogType.getMethod("getCompleteSql", + (Class[]) null); + return (String) method.invoke(sqlLog, (Object[]) null); + } catch (Exception e) { + String msg = "InternalSqlLogRegistry.extractCompleteSqlFromContainerSqlLog() threw the exception:"; + msg = msg + " sqlLog=" + sqlLog; + throw new IllegalStateException(msg, e); + } + } + + protected static Class forNameContainerSqlLogRegistryLocator() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryLocator); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistry() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistry); + } catch (Exception ignored) { + return null; + } + return clazz; + } + + protected static Class forNameContainerSqlLogRegistryImpl() { + Class clazz = null; + try { + clazz = Class.forName(NAME_SqlLogRegistryImpl); + } catch (Exception ignored) { + return null; + } + return clazz; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqllog/InternalSqlLogRegistry.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,53 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.context.CommandContextImpl; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalCommandContextCreator { + + //========================================================================== + // ========= + // Attribute + // ========= + protected String[] argNames; + + protected Class[] argTypes; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalCommandContextCreator(String[] argNames, Class[] argTypes) { + this.argNames = (argNames != null ? argNames : new String[0]); + this.argTypes = (argTypes != null ? argTypes : new Class[0]); + } + + //========================================================================== + // ========= + // Create + // ====== + public CommandContext createCommandContext(Object[] args) { + final CommandContext ctx = new CommandContextImpl(); + if (args != null) { + for (int i = 0; i < args.length; ++i) { + Class argType = null; + if (args[i] != null) { + if (i < argTypes.length) { + argType = argTypes[i]; + } else if (args[i] != null) { + argType = args[i].getClass(); + } + } + if (i < argNames.length) { + ctx.addArg(argNames[i], args[i], argType); + } else { + ctx.addArg("$" + (i + 1), args[i], argType); + } + } + } + return ctx; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalCommandContextCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1290 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser; + +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Stack; +import java.util.StringTokenizer; + +import jp.sf.pal.scheduler.db.allcommon.cbean.MapParameterBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption; +import jp.sf.pal.scheduler.db.allcommon.exception.BindVariableCommentNotFoundPropertyException; +import jp.sf.pal.scheduler.db.allcommon.exception.BindVariableParameterNullValueException; +import jp.sf.pal.scheduler.db.allcommon.exception.EmbeddedValueCommentNotFoundPropertyException; +import jp.sf.pal.scheduler.db.allcommon.exception.EmbeddedValueParameterNullValueException; +import jp.sf.pal.scheduler.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.scheduler.db.allcommon.exception.IfCommentConditionNotFoundException; +import jp.sf.pal.scheduler.db.allcommon.exception.IfCommentNotBooleanResultException; +import jp.sf.pal.scheduler.db.allcommon.exception.IfCommentWrongExpressionException; +import jp.sf.pal.scheduler.db.allcommon.exception.RequiredOptionNotFoundException; +import jp.sf.pal.scheduler.db.allcommon.s2dao.internal.util.InternalBindVariableUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleStringUtil; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.CommandContext; +import org.seasar.dao.Node; +import org.seasar.dao.node.AbstractNode; +import org.seasar.dao.node.BeginNode; +import org.seasar.dao.node.ContainerNode; +import org.seasar.dao.node.ElseNode; +import org.seasar.dao.node.PrefixSqlNode; +import org.seasar.dao.node.SqlNode; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.PropertyDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; +import org.seasar.framework.util.OgnlUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlParser { + + //========================================================================== + // ========= + // Attribute + // ========= + protected InternalSqlTokenizer tokenizer; + + protected Stack nodeStack = new Stack(); + + protected String specifiedSql;// Extension! + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlParser(String sql) { + sql = sql.trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); + } + specifiedSql = sql;// Extension! + tokenizer = new InternalSqlTokenizer(sql); + } + + //========================================================================== + // ========= + // Parse + // ===== + public Node parse() { + push(new ContainerNode()); + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + parseToken(); + } + return pop(); + } + + protected void parseToken() { + switch (tokenizer.getTokenType()) { + case InternalSqlTokenizer.SQL: + parseSql(); + break; + case InternalSqlTokenizer.COMMENT: + parseComment(); + break; + case InternalSqlTokenizer.ELSE: + parseElse(); + break; + case InternalSqlTokenizer.BIND_VARIABLE: + parseBindVariable(); + break; + } + } + + protected void parseSql() { + String sql = tokenizer.getToken(); + if (isElseMode()) { + sql = InternalStringUtil.replace(sql, "--", ""); + } + Node node = peek(); + if ((node instanceof InternalIfNode || node instanceof ElseNode) + && node.getChildSize() == 0) { + + InternalSqlTokenizer st = new InternalSqlTokenizer(sql); + st.skipWhitespace(); + String token = st.skipToken(); + st.skipWhitespace(); + if (sql.startsWith(",")) { + if (sql.startsWith(", ")) { + node.addChild(new PrefixSqlNode(", ", sql.substring(2))); + } else { + node.addChild(new PrefixSqlNode(",", sql.substring(1))); + } + } else if ("AND".equalsIgnoreCase(token) + || "OR".equalsIgnoreCase(token)) { + node.addChild(new PrefixSqlNode(st.getBefore(), st.getAfter())); + } else { + node.addChild(new SqlNode(sql)); + } + } else { + node.addChild(new SqlNode(sql)); + } + } + + protected void parseComment() { + final String comment = tokenizer.getToken(); + if (isTargetComment(comment)) { + if (isIfComment(comment)) { + parseIf(); + } else if (isBeginComment(comment)) { + parseBegin(); + } else if (isEndComment(comment)) { + return; + } else { + parseCommentBindVariable(); + } + } else if (comment != null && 0 < comment.length()) { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + // [UnderReview]: Should I resolve bind character on scope + // comment(normal comment)? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - + String before = tokenizer.getBefore(); + peek().addChild( + new SqlNode(before.substring(before.lastIndexOf("/*")))); + } + } + + protected void parseIf() { + final String condition = tokenizer.getToken().substring(2).trim(); + if (InternalStringUtil.isEmpty(condition)) { + throwIfCommentConditionNotFoundException(); + } + final ContainerNode ifNode = createIfNode(condition); + peek().addChild(ifNode); + push(ifNode); + parseEnd(); + } + + protected void throwIfCommentConditionNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The condition of IF comment was Not Found!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the IF comment expression." + + getLineSeparator(); + msg = msg + + "It may exist the IF comment that DOESN'T have a condition." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x) -- /*IF*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + tokenizer.getToken() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentConditionNotFoundException(msg); + } + + protected void parseBegin() { + BeginNode beginNode = new BeginNode(); + peek().addChild(beginNode); + push(beginNode); + parseEnd(); + } + + protected void parseEnd() { + while (InternalSqlTokenizer.EOF != tokenizer.next()) { + if (tokenizer.getTokenType() == InternalSqlTokenizer.COMMENT + && isEndComment(tokenizer.getToken())) { + pop(); + return; + } + parseToken(); + } + throwEndCommentNotFoundException(); + } + + protected void throwEndCommentNotFoundException() { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new EndCommentNotFoundException(msg); + } + + protected void parseElse() { + final Node parent = peek(); + if (!(parent instanceof InternalIfNode)) { + return; + } + final InternalIfNode ifNode = (InternalIfNode) pop(); + final InternalElseNode elseNode = new InternalElseNode(); + ifNode.setElseNode(elseNode); + push(elseNode); + tokenizer.skipWhitespace(); + } + + protected void parseCommentBindVariable() { + final String expr = tokenizer.getToken(); + final String s = tokenizer.skipToken(); + if (expr.startsWith("$")) { + peek().addChild(createEmbeddedValueNode(expr.substring(1), s));// Extension + // ! + } else { + peek().addChild(createBindVariableNode(expr, s));// Extension! + } + } + + protected void parseBindVariable() { + final String expr = tokenizer.getToken(); + peek().addChild(createBindVariableNode(expr, null));// Extension! + } + + protected Node pop() { + return (Node) nodeStack.pop(); + } + + protected Node peek() { + return (Node) nodeStack.peek(); + } + + protected void push(Node node) { + nodeStack.push(node); + } + + protected boolean isElseMode() { + for (int i = 0; i < nodeStack.size(); ++i) { + if (nodeStack.get(i) instanceof InternalElseNode) { + return true; + } + } + return false; + } + + private static boolean isTargetComment(String comment) { + return comment != null && comment.length() > 0 + && Character.isJavaIdentifierStart(comment.charAt(0)); + } + + private static boolean isIfComment(String comment) { + return comment.startsWith("IF"); + } + + private static boolean isBeginComment(String content) { + return content != null && "BEGIN".equals(content); + } + + private static boolean isEndComment(String content) { + return content != null && "END".equals(content); + } + + protected AbstractNode createBindVariableNode(String expr, String testValue) {// Extension + // ! + return new InternalBindVariableNode(expr, testValue, specifiedSql); + } + + protected AbstractNode createEmbeddedValueNode(String expr, String testValue) {// Extension + // ! + return new InternalEmbeddedValueNode(expr, testValue, specifiedSql); + } + + protected ContainerNode createIfNode(String expr) {// Extension! + return new InternalIfNode(expr, specifiedSql); + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + protected final String replaceString(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + //========================================================================== + // ========= + // Extension + // ========= + // ----------------------------------------------------- + // BindVariableNode + // ---------------- + protected static class InternalBindVariableNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalBindVariableNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + bindArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + bindArray(ctx, valueAndType.getTargetValue()); + } else { + ctx.addSql("?", valueAndType.getTargetValue(), valueAndType + .getTargetType()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, true); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, true); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void bindArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + Class clazz = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + clazz = currentElement.getClass(); + break; + } + } + if (clazz == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql("?", currentElement, clazz); + existsValidElements = true; + } else { + ctx.addSql(", ?", currentElement, clazz); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, true); + } + } + + // ----------------------------------------------------- + // EmbeddedValueNode + // ----------------- + protected static class InternalEmbeddedValueNode extends AbstractNode { + protected String _expression; + + protected String _testValue; + + protected String[] _names; + + protected String _specifiedSql; + + public InternalEmbeddedValueNode(String expression, String testValue, + String specifiedSql) { + this._expression = expression; + this._testValue = testValue; + this._names = InternalStringUtil.split(expression, "."); + this._specifiedSql = specifiedSql; + } + + public void accept(CommandContext ctx) { + final Object value = ctx.getArg(_names[0]); + final Class clazz = ctx.getArgType(_names[0]); + final InternalValueAndType valueAndType = new InternalValueAndType(); + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + setupValueAndType(valueAndType); + + if (valueAndType.getTargetValue() == null) { + throwBindOrEmbeddedParameterNullValueException(valueAndType); + } + if (!isInScope()) { + // Main Root + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + // [UnderReview]: Should I make an original exception instead of + // this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } else { + if (List.class.isAssignableFrom(valueAndType.getTargetType())) { + embedArray(ctx, ((List) valueAndType.getTargetValue()) + .toArray()); + } else if (valueAndType.getTargetType().isArray()) { + embedArray(ctx, valueAndType.getTargetValue()); + } else { + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + // [UnderReview]: Should I make an original exception + // instead of this exception? + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - - - - - - - - - - + if (valueAndType.getTargetValue() != null + && valueAndType.getTargetValue().toString() + .indexOf("?") > -1) { + throw new org.seasar.framework.exception.SRuntimeException( + "EDAO0023"); + } + ctx.addSql(valueAndType.getTargetValue().toString()); + } + } + if (valueAndType.isValidRearOption()) { + ctx.addSql(valueAndType.buildRearOptionOnSql()); + } + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + final InternalValueAndTypeSetuper valueAndTypeSetuper = new InternalValueAndTypeSetuper( + _expression, _names, _specifiedSql, false); + valueAndTypeSetuper.setupValueAndType(valueAndType); + } + + protected void throwBindOrEmbeddedParameterNullValueException( + InternalValueAndType valueAndType) { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullValueException( + _expression, valueAndType.getTargetType(), + _specifiedSql, false); + } + + protected boolean isInScope() { + return _testValue != null && _testValue.startsWith("(") + && _testValue.endsWith(")"); + } + + protected void embedArray(CommandContext ctx, Object array) { + if (array == null) { + return; + } + final int length = Array.getLength(array); + if (length == 0) { + throwBindOrEmbeddedParameterEmptyListException(); + } + String quote = null; + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + quote = !(currentElement instanceof Number) ? "'" : ""; + break; + } + } + if (quote == null) { + throwBindOrEmbeddedParameterNullOnlyListException(); + } + boolean existsValidElements = false; + ctx.addSql("("); + for (int i = 0; i < length; ++i) { + final Object currentElement = Array.get(array, i); + if (currentElement != null) { + if (!existsValidElements) { + ctx.addSql(quote + currentElement + quote); + existsValidElements = true; + } else { + ctx.addSql(", " + quote + currentElement + quote); + } + } + } + ctx.addSql(")"); + } + + protected void throwBindOrEmbeddedParameterEmptyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterEmptyListException( + _expression, _specifiedSql, false); + } + + protected void throwBindOrEmbeddedParameterNullOnlyListException() { + ParameterCommentExceptionProvider + .throwBindOrEmbeddedParameterNullOnlyListException( + _expression, _specifiedSql, false); + } + } + + // ----------------------------------------------------- + // Value and Type + // -------------- + protected static class InternalValueAndType { + public Object _targetValue; + + public Class _targetType; + + protected String _rearOption; + + public boolean isValidRearOption() { + return _targetValue != null && _rearOption != null + && _rearOption.trim().length() > 0; + } + + public String buildRearOptionOnSql() { + return " " + _rearOption.trim() + " "; + } + + public Object getTargetValue() { + return _targetValue; + } + + public void setTargetValue(Object targetValue) { + this._targetValue = targetValue; + } + + public Class getTargetType() { + return _targetType; + } + + public void setTargetType(Class targetType) { + this._targetType = targetType; + } + + public String getRearOption() { + return _rearOption; + } + + public void setRearOption(String rearOption) { + this._rearOption = rearOption; + } + } + + protected static class InternalValueAndTypeSetuper { + protected String _expression; + + protected String[] _names; + + protected String _specifiedSql; + + protected boolean _bind; + + public InternalValueAndTypeSetuper(String expression, String[] names, + String specifiedSql, boolean bind) { + this._expression = expression; + this._names = names; + this._specifiedSql = specifiedSql; + this._bind = bind; + } + + protected void setupValueAndType(InternalValueAndType valueAndType) { + Object value = valueAndType.getTargetValue(); + Class clazz = valueAndType.getTargetType(); + + // LikeSearchOption handling here is for OutsideSql. + LikeSearchOption likeSearchOption = null; + String rearOption = null; + + for (int pos = 1; pos < _names.length; ++pos) { + if (value == null) { + break; + } + final String currentName = _names[pos]; + if (pos == 1) {// at the First Loop + final BeanDesc beanDesc = BeanDescFactory + .getBeanDesc(clazz); + if (hasLikeSearchOption(beanDesc, currentName)) { + likeSearchOption = getLikeSearchOption(beanDesc, + currentName, value); + } + } + if (Map.class.isInstance(value)) { + final Map map = (Map) value; + value = map.get(_names[pos]); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : clazz); + continue; + } + final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(clazz); + if (beanDesc.hasPropertyDesc(currentName)) { + final PropertyDesc pd = beanDesc + .getPropertyDesc(currentName); + value = getPropertyValue(clazz, value, currentName, pd); + if (isLastLoop4LikeSearch(pos, likeSearchOption) + && isValidStringValue(value)) {// at the Last Loop + value = likeSearchOption + .generateRealValue((String) value); + rearOption = likeSearchOption.getRearOption(); + } + clazz = (value != null ? value.getClass() : pd + .getPropertyType()); + continue; + } + final String methodName = "get" + initCap(currentName); + if (beanDesc.hasMethod(methodName)) {// Is this unused??? + final Method method = beanDesc.getMethod(methodName); + value = invokeGetter(method, value); + clazz = method.getReturnType(); + continue; + } + if (pos == 1 && MapParameterBean.class.isAssignableFrom(clazz)) { + final MapParameterBean pmb = (MapParameterBean) value; + final Map map = pmb.getParameterMap(); + final Object elementValue = (map != null ? map + .get(_names[pos]) : null); + if (elementValue != null) { + value = elementValue; + clazz = value.getClass(); + continue; + } + } + throwBindOrEmbeddedCommentNotFoundPropertyException( + _expression, clazz, currentName, _specifiedSql, _bind); + } + valueAndType.setTargetValue(value); + valueAndType.setTargetType(clazz); + valueAndType.setRearOption(rearOption); + } + + // for OutsideSql + protected boolean isLastLoop4LikeSearch(int pos, + LikeSearchOption likeSearchOption) { + return _names.length == (pos + 1) && likeSearchOption != null; + } + + protected boolean isValidStringValue(Object value) { + return value != null && value instanceof String + && ((String) value).length() > 0; + } + + // for OutsideSql + protected boolean hasLikeSearchOption(BeanDesc beanDesc, + String currentName) { + return beanDesc.hasPropertyDesc(currentName + + "InternalLikeSearchOption"); + } + + // for OutsideSql + protected LikeSearchOption getLikeSearchOption(BeanDesc beanDesc, + String currentName, Object resourceBean) { + final PropertyDesc pb = beanDesc.getPropertyDesc(currentName + + "InternalLikeSearchOption"); + final LikeSearchOption option = (LikeSearchOption) pb + .getValue(resourceBean); + if (option == null) { + throwLikeSearchOptionNotFoundException(resourceBean, + currentName); + } + if (option.isSplit()) { + throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + option, resourceBean, currentName); + } + return option; + } + + // for OutsideSql + protected void throwLikeSearchOptionNotFoundException( + Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The likeSearchOption was Not Found! (Should not be null!)" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + "." + methodName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new RequiredOptionNotFoundException(msg); + } + + // for OutsideSql + protected void throwOutsideSqlLikeSearchOptionSplitUnsupportedException( + LikeSearchOption option, Object resourceBean, String currentName) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The splitByXxx() of LikeSearchOption is unsupported at OutsideSql!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your method call:" + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + final String beanName = resourceBean.getClass().getSimpleName(); + final String methodName = "set" + initCap(currentName) + + "_LikeSearch(value, likeSearchOption);"; + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + + " likeSearchOption.splitBySpace(); // *No! Don't invoke this!" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + " " + beanName + " pmb = new " + beanName + "();" + + getLineSeparator(); + msg = msg + + " LikeSearchOption likeSearchOption = new LikeSearchOption().likeContain();" + + getLineSeparator(); + msg = msg + " pmb." + methodName + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target LikeSearchOption]" + getLineSeparator() + + option + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target ParameterBean]" + getLineSeparator() + + resourceBean + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new UnsupportedOperationException(msg); + } + + protected Object getPropertyValue(Class beanType, Object beanValue, + String currentName, PropertyDesc pd) { + try { + return pd.getValue(beanValue); + } catch (RuntimeException e) { + throwPropertyHandlingFailureException(beanType, beanValue, + currentName, _expression, _specifiedSql, _bind, e); + return null;// Unreachable! + } + } + + protected void throwPropertyHandlingFailureException(Class beanType, + Object beanValue, String currentName, String expression, + String specifiedSql, boolean bind, Exception e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The handlig of the property was failed!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "This is the Framework Exception!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Type]" + getLineSeparator() + beanType + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Bean Value]" + getLineSeparator() + beanValue + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Property Name]" + getLineSeparator() + currentName + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalStateException(msg, e); + } + + protected String initCap(String name) { + return SimpleStringUtil.initCap(name); + } + + protected Object invokeGetter(Method method, Object target) { + try { + return method.invoke(target, (Object[]) null); + } catch (IllegalArgumentException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (java.lang.reflect.InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + protected void throwBindOrEmbeddedCommentNotFoundPropertyException( + String expression, Class targetType, + String notFoundProperty, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The property on the " + + (bind ? "bind variable" : "embedded value") + + " comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "Abd has the property had misspelling?" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[NotFound Property]" + getLineSeparator() + + (targetType != null ? targetType.getName() + "#" : "") + + notFoundProperty + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableCommentNotFoundPropertyException(msg); + } else { + throw new EmbeddedValueCommentNotFoundPropertyException(msg); + } + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // Exception Provider + // ------------------ + protected static class ParameterCommentExceptionProvider { + public static void throwBindOrEmbeddedParameterNullValueException( + String expression, Class targetType, String specifiedSql, + boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The value of " + + (bind ? "bind variable" : "embedded value") + + " was Null!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Is it within the scope of your assumption?" + + getLineSeparator(); + msg = msg + + "If the answer is YES, please confirm your application logic about the parameter." + + getLineSeparator(); + msg = msg + + "If the answer is NO, please confirm the logic of parameter comment(especially IF comment)." + + getLineSeparator(); + msg = msg + " --> For example:" + getLineSeparator(); + msg = msg + " before (x) -- XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Parameter Property Type]" + getLineSeparator() + + targetType + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + if (bind) { + throw new BindVariableParameterNullValueException(msg); + } else { + throw new EmbeddedValueParameterNullValueException(msg); + } + } + + public static void throwBindOrEmbeddedParameterEmptyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was empty!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + public static void throwBindOrEmbeddedParameterNullOnlyListException( + String expression, String specifiedSql, boolean bind) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The list of " + + (bind ? "bind variable" : "embedded value") + + " was 'Null Only List'!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm your application logic." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " before (x):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + " xxxIdList.add(null);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + " after (o):" + getLineSeparator(); + msg = msg + + " List xxxIdList = new ArrayList();" + + getLineSeparator(); + msg = msg + " xxxIdList.add(3);" + getLineSeparator(); + msg = msg + " xxxIdList.add(7);" + getLineSeparator(); + msg = msg + + " cb.query().setXxxId_InScope(xxxIdList);// Or pmb.setXxxIdList(xxxIdList);" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[" + (bind ? "Bind Variable" : "Embedded Value") + + " Comment Expression]" + getLineSeparator() + expression + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IllegalArgumentException(msg); + } + + protected static String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // IfNode + // ------ + protected static class InternalIfNode extends ContainerNode { + private String _expression; + + private Object _parsedExpression; + + private InternalElseNode _elseNode; + + private String _specifiedSql; + + public InternalIfNode(String expression, String specifiedSql) { + this._expression = expression; + this._parsedExpression = OgnlUtil.parseExpression(expression); + this._specifiedSql = specifiedSql; + } + + public String getExpression() { + return _expression; + } + + public InternalElseNode getElseNode() { + return _elseNode; + } + + public void setElseNode(InternalElseNode elseNode) { + this._elseNode = elseNode; + } + + public void accept(CommandContext ctx) { + Object result = null; + try { + result = OgnlUtil.getValue(_parsedExpression, ctx); + } catch (RuntimeException e) { + if (!_expression.contains("pmb.")) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + final String replaced = InternalStringUtil.replace(_expression, + "pmb.", "pmb.parameterMap."); + final Object secondParsedExpression = OgnlUtil + .parseExpression(replaced); + try { + result = OgnlUtil.getValue(secondParsedExpression, ctx); + } catch (RuntimeException ignored) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + if (result == null) { + throwIfCommentWrongExpressionException(_expression, e, + _specifiedSql); + } + _parsedExpression = secondParsedExpression; + } + if (result != null && result instanceof Boolean) { + if (((Boolean) result).booleanValue()) { + super.accept(ctx); + ctx.setEnabled(true); + } else if (_elseNode != null) { + _elseNode.accept(ctx); + ctx.setEnabled(true); + } + } else { + throwIfCommentNotBooleanResultException(_expression, result, + _specifiedSql); + } + } + + protected void throwIfCommentWrongExpressionException( + String expression, RuntimeException cause, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the existence of your property on your arguments." + + getLineSeparator(); + msg = msg + "And confirm the IF comment of your specified SQL." + + getLineSeparator(); + msg = msg + " For example, correct IF comment is as below:" + + getLineSeparator(); + msg = msg + " /*IF pmb.xxxId != null*/XXX_ID = .../*END*/" + + getLineSeparator(); + msg = msg + " /*IF pmb.isPaging()*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null && pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + + " /*IF pmb.xxxId == null || pmb.xxxName != null*/.../*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Cause Message]" + getLineSeparator(); + msg = msg + cause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + cause.getMessage() + getLineSeparator(); + final Throwable nestedCause = cause.getCause(); + if (nestedCause != null) { + msg = msg + nestedCause.getClass() + ":" + getLineSeparator(); + msg = msg + " --> " + nestedCause.getMessage() + + getLineSeparator(); + } + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentWrongExpressionException(msg, cause); + } + + protected void throwIfCommentNotBooleanResultException( + String expression, Object result, String specifiedSql) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + + "The boolean expression on IF comment of your specified SQL was Wrong!" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "Please confirm the grammar of your IF comment. Does it really express boolean?" + + getLineSeparator(); + msg = msg + + "And confirm the existence of your property on your arguments if you use parameterMap." + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Expression]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[IF Comment Result Value]" + getLineSeparator() + + result + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + specifiedSql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new IfCommentNotBooleanResultException(msg); + } + + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + } + + // ----------------------------------------------------- + // ElseNode + // -------- + protected static class InternalElseNode extends ContainerNode { + public void accept(CommandContext ctx) { + super.accept(ctx); + ctx.setEnabled(true); + } + } + + // ----------------------------------------------------- + // StringUtil + // ---------- + protected static class InternalStringUtil { + + public static final String[] EMPTY_STRINGS = new String[0]; + + private InternalStringUtil() { + } + + public static final boolean isEmpty(String text) { + return text == null || text.length() == 0; + } + + public static final String replace(String text, String fromText, + String toText) { + return SimpleStringUtil.replace(text, fromText, toText); + } + + public static String[] split(String str, String delim) { + if (str == null) { + return EMPTY_STRINGS; + } + List list = new ArrayList(); + StringTokenizer st = new StringTokenizer(str, delim); + while (st.hasMoreElements()) { + list.add(st.nextToken()); + } + return (String[]) list.toArray(new String[list.size()]); + } + } + + //========================================================================== + // ========= + // Convert + // ======= + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + Object arg) { + final String[] argNames = new String[] { "dto" }; + final Class[] argTypes = new Class[] { arg.getClass() }; + final Object[] args = new Object[] { arg }; + return convertTwoWaySql2DisplaySql(twoWaySql, argNames, argTypes, args); + } + + public static String convertTwoWaySql2DisplaySql(String twoWaySql, + String[] argNames, Class[] argTypes, Object[] args) { + final CommandContext context; + { + final InternalSqlParser parser = new InternalSqlParser(twoWaySql); + final Node node = parser.parse(); + final InternalCommandContextCreator creator = new InternalCommandContextCreator( + argNames, argTypes); + context = creator.createCommandContext(args); + node.accept(context); + } + final String preparedSql = context.getSql(); + return InternalBindVariableUtil.getCompleteSql(preparedSql, context + .getBindVariables()); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlParser.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,301 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.sqlparser; + +import jp.sf.pal.scheduler.db.allcommon.exception.EndCommentNotFoundException; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalSqlTokenizer { + + //========================================================================== + // ========= + // Definition + // ========== + public static final int SQL = 1; + + public static final int COMMENT = 2; + + public static final int ELSE = 3; + + public static final int BIND_VARIABLE = 4; + + public static final int EOF = 99; + + //========================================================================== + // ========= + // Attribute + // ========= + protected String sql; + + protected int position = 0; + + protected String token; + + protected int tokenType = SQL; + + protected int nextTokenType = SQL; + + protected int bindVariableNum = 0; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalSqlTokenizer(String sql) { + this.sql = sql; + } + + //========================================================================== + // ========= + // Tokenize + // ======== + public int next() { + if (position >= sql.length()) { + token = null; + tokenType = EOF; + nextTokenType = EOF; + return tokenType; + } + switch (nextTokenType) { + case SQL: + parseSql(); + break; + case COMMENT: + parseComment(); + break; + case ELSE: + parseElse(); + break; + case BIND_VARIABLE: + parseBindVariable(); + break; + default: + parseEof(); + break; + } + return tokenType; + } + + protected void parseSql() { + int commentStartPos = sql.indexOf("/*", position); + int commentStartPos2 = sql.indexOf("#*", position); + if (0 < commentStartPos2 && commentStartPos2 < commentStartPos) { + commentStartPos = commentStartPos2; + } + int lineCommentStartPos = sql.indexOf("--", position); + int bindVariableStartPos = sql.indexOf("?", position); + int elseCommentStartPos = -1; + int elseCommentLength = -1; + if (lineCommentStartPos >= 0) { + int skipPos = skipWhitespace(lineCommentStartPos + 2); + if (skipPos + 4 < sql.length() + && "ELSE".equals(sql.substring(skipPos, skipPos + 4))) { + elseCommentStartPos = lineCommentStartPos; + elseCommentLength = skipPos + 4 - lineCommentStartPos; + } + } + int nextStartPos = getNextStartPos(commentStartPos, + elseCommentStartPos, bindVariableStartPos); + if (nextStartPos < 0) { + token = sql.substring(position); + nextTokenType = EOF; + position = sql.length(); + tokenType = SQL; + } else { + token = sql.substring(position, nextStartPos); + tokenType = SQL; + boolean needNext = nextStartPos == position; + if (nextStartPos == commentStartPos) { + nextTokenType = COMMENT; + position = commentStartPos + 2; + } else if (nextStartPos == elseCommentStartPos) { + nextTokenType = ELSE; + position = elseCommentStartPos + elseCommentLength; + } else if (nextStartPos == bindVariableStartPos) { + nextTokenType = BIND_VARIABLE; + position = bindVariableStartPos; + } + if (needNext) { + next(); + } + } + } + + protected int getNextStartPos(int commentStartPos, int elseCommentStartPos, + int bindVariableStartPos) { + int nextStartPos = -1; + if (commentStartPos >= 0) { + nextStartPos = commentStartPos; + } + if (elseCommentStartPos >= 0 + && (nextStartPos < 0 || elseCommentStartPos < nextStartPos)) { + nextStartPos = elseCommentStartPos; + } + if (bindVariableStartPos >= 0 + && (nextStartPos < 0 || bindVariableStartPos < nextStartPos)) { + nextStartPos = bindVariableStartPos; + } + return nextStartPos; + } + + protected String nextBindVariableName() { + return "$" + ++bindVariableNum; + } + + protected void parseComment() { + int commentEndPos = sql.indexOf("*/", position); + int commentEndPos2 = sql.indexOf("*#", position); + if (0 < commentEndPos2 && commentEndPos2 < commentEndPos) { + commentEndPos = commentEndPos2; + } + if (commentEndPos < 0) { + throwEndCommentNotFoundException(sql.substring(position)); + } + token = sql.substring(position, commentEndPos); + nextTokenType = SQL; + position = commentEndPos + 2; + tokenType = COMMENT; + } + + protected void throwEndCommentNotFoundException(String expression) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "The end comment was Not Found!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + "Please confirm the parameter comment logic." + + getLineSeparator(); + msg = msg + + "It may exist the parameter comment that DOESN'T have an end comment." + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + + " before (x) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3" + + getLineSeparator(); + msg = msg + + " after (o) -- /*IF pmb.xxxId != null*/XXX_ID = /*pmb.xxxId*/3/*END*/" + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[End Comment Expected Place]" + getLineSeparator() + + expression + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Specified SQL]" + getLineSeparator() + sql + + getLineSeparator(); + msg = msg + "* * * * * * * * * */" + getLineSeparator(); + throw new EndCommentNotFoundException(msg); + } + + protected void parseBindVariable() { + token = nextBindVariableName(); + nextTokenType = SQL; + position += 1; + tokenType = BIND_VARIABLE; + } + + protected void parseElse() { + token = null; + nextTokenType = SQL; + tokenType = ELSE; + } + + protected void parseEof() { + token = null; + tokenType = EOF; + nextTokenType = EOF; + } + + public String skipToken() { + int index = sql.length(); + char quote = position < sql.length() ? sql.charAt(position) : '\0'; + boolean quoting = quote == '\'' || quote == '('; + if (quote == '(') { + quote = ')'; + } + for (int i = quoting ? position + 1 : position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if ((Character.isWhitespace(c) || c == ',' || c == ')' || c == '(') + && !quoting) { + index = i; + break; + } else if (c == '/' && i + 1 < sql.length() + && sql.charAt(i + 1) == '*') { + index = i; + break; + } else if (c == '-' && i + 1 < sql.length() + && sql.charAt(i + 1) == '-') { + index = i; + break; + } else if (quoting && quote == '\'' && c == '\'' + && (i + 1 >= sql.length() || sql.charAt(i + 1) != '\'')) { + index = i + 1; + break; + } else if (quoting && c == quote) { + index = i + 1; + break; + } + } + token = sql.substring(position, index); + tokenType = SQL; + nextTokenType = SQL; + position = index; + return token; + } + + public String skipWhitespace() { + int index = skipWhitespace(position); + token = sql.substring(position, index); + position = index; + return token; + } + + protected int skipWhitespace(int position) { + int index = sql.length(); + for (int i = position; i < sql.length(); ++i) { + char c = sql.charAt(i); + if (!Character.isWhitespace(c)) { + index = i; + break; + } + } + return index; + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public int getPosition() { + return position; + } + + public String getToken() { + return token; + } + + public String getBefore() { + return sql.substring(0, position); + } + + public String getAfter() { + return sql.substring(position); + } + + public int getTokenType() { + return tokenType; + } + + public int getNextTokenType() { + return nextTokenType; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/sqlparser/InternalSqlTokenizer.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,304 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.util; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import jp.sf.pal.scheduler.db.allcommon.DBFluteConfig; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalBindVariableUtil { + + //========================================================================== + // ========= + // Definition + // ========== + private static final String NULL = "null"; + + //========================================================================== + // ========= + // Constructor + // =========== + private InternalBindVariableUtil() { + } + + public static String getCompleteSql(String sql, Object[] args) { + if (args == null || args.length == 0) { + return sql; + } + return getCompleteSql(sql, args, new ValueType[args.length]); + } + + public static String getCompleteSql(String sql, Object[] args, + ValueType[] valueTypes) { + if (args == null || args.length == 0) { + return sql; + } + StringBuffer buf = new StringBuffer(sql.length() + args.length * 15); + int pos = 0; + int pos2 = 0; + int pos3 = 0; + int pos4 = 0; + int pos5 = 0; + int pos6 = 0; + int index = 0; + while (true) { + pos = sql.indexOf('?', pos2); + pos3 = sql.indexOf('\'', pos2); + pos4 = sql.indexOf('\'', pos3 + 1); + pos5 = sql.indexOf("/*", pos2); + pos6 = sql.indexOf("*/", pos5 + 1); + if (pos > 0) { + if (pos3 >= 0 && pos3 < pos && pos < pos4) { + buf.append(sql.substring(pos2, pos4 + 1)); + pos2 = pos4 + 1; + } else if (pos5 >= 0 && pos5 < pos && pos < pos6) { + buf.append(sql.substring(pos2, pos6 + 1)); + pos2 = pos6 + 1; + } else { + if (args.length <= index) { + String msg = "The size of bind arguments is illegal:"; + msg = msg + " size=" + args.length + " sql=" + sql; + throw new IllegalStateException(msg); + } + buf.append(sql.substring(pos2, pos)); + buf.append(getBindVariableText(args[index], + valueTypes[index])); + pos2 = pos + 1; + index++; + } + } else { + buf.append(sql.substring(pos2)); + break; + } + } + return buf.toString(); + } + + public static String getBindVariableText(Object bindVariable) { + if (bindVariable instanceof String) { + return quote(bindVariable.toString()); + } else if (bindVariable instanceof Number) { + return bindVariable.toString(); + } else if (bindVariable instanceof Time) { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Timestamp) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogTimestampFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof java.util.Date) { + SimpleDateFormat sdf = new SimpleDateFormat(getLogDateFormat()); + return quote(sdf.format((java.util.Date) bindVariable)); + } else if (bindVariable instanceof Boolean) { + return bindVariable.toString(); + } else if (bindVariable == null) { + return NULL; + } else { + return quote(bindVariable.toString()); + } + } + + protected static String getLogDateFormat() { + String logDateFormat = DBFluteConfig.getInstance().getLogDateFormat(); + return logDateFormat != null ? logDateFormat : "yyyy-MM-dd"; + } + + protected static String getLogTimestampFormat() { + String logTimestampFormat = DBFluteConfig.getInstance() + .getLogTimestampFormat(); + return logTimestampFormat != null ? logTimestampFormat + : "yyyy-MM-dd HH:mm:ss"; + } + + // For various seasar's version. + protected static final Class[] TOTEXT_ARGUMENT_TYPES = new Class[] { Object.class }; + + protected static final Method TOTEXT_METHOD; + static { + Method method = null; + try { + method = ValueType.class.getMethod("toText", TOTEXT_ARGUMENT_TYPES); + } catch (SecurityException e) { + } catch (NoSuchMethodException e) { + } + TOTEXT_METHOD = method; + } + + public static String getBindVariableText(Object bindVariable, + ValueType valueType) { + if (valueType != null && TOTEXT_METHOD != null) { + try { + return (String) TOTEXT_METHOD.invoke(valueType, + new Object[] { bindVariable }); + } catch (IllegalArgumentException e) { + String msg = "ValueType.toText() threw the IllegalArgumentException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (IllegalAccessException e) { + String msg = "ValueType.toText() threw the IllegalAccessException:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e); + } catch (InvocationTargetException e) { + if (e.getTargetException() instanceof RuntimeException) { + throw (RuntimeException) e.getTargetException(); + } else { + String msg = "ValueType.toText() threw the exception:"; + msg = msg + " valueType=" + valueType + " bindVariable=" + + bindVariable; + throw new IllegalStateException(msg, e.getTargetException()); + } + } + } + return getBindVariableText(bindVariable); + } + + public static String nullText() { + return NULL; + } + + public static String toText(Number value) { + if (value == null) { + return NULL; + } + return value.toString(); + } + + public static String toText(Boolean value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + public static String toText(String value) { + if (value == null) { + return NULL; + } + return quote(value); + } + + public static String toText(Date value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addDate(buf, calendar); + return quote(buf.toString()); + } + + public static String toText(Time value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(); + addTime(buf, calendar); + addTimeDecimalPart(buf, calendar.get(Calendar.MILLISECOND)); + return quote(buf.toString()); + } + + public static String toText(Timestamp value) { + if (value == null) { + return NULL; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(value); + StringBuilder buf = new StringBuilder(30); + addDate(buf, calendar); + addTime(buf, calendar); + addTimeDecimalPart(buf, value.getNanos()); + return quote(buf.toString()); + } + + public static String toText(byte[] value) { + if (value == null) { + return NULL; + } + return quote(value.toString() + "(byteLength=" + + Integer.toString(value.length) + ")"); + } + + /** + * {@link Object}¤Îʸ»úÎóɽ¸½¤òÊÖ¤·¤Þ¤¹¡£ + * + * @param value ÃÍ + * @return ʸ»úÎóɽ¸½ + */ + public static String toText(Object value) { + if (value == null) { + return NULL; + } + return quote(value.toString()); + } + + // yyyy-mm-dd + protected static void addDate(StringBuilder buf, Calendar calendar) { + int year = calendar.get(Calendar.YEAR); + buf.append(year); + buf.append('-'); + int month = calendar.get(Calendar.MONTH) + 1; + if (month < 10) { + buf.append('0'); + } + buf.append(month); + buf.append('-'); + int date = calendar.get(Calendar.DATE); + if (date < 10) { + buf.append('0'); + } + buf.append(date); + } + + // hh:mm:ss + protected static void addTime(StringBuilder buf, Calendar calendar) { + if (buf.length() > 0) { + buf.append(' '); + } + int hour = calendar.get(Calendar.HOUR_OF_DAY); + if (hour < 10) { + buf.append('0'); + } + buf.append(hour); + buf.append(':'); + int minute = calendar.get(Calendar.MINUTE); + if (minute < 10) { + buf.append('0'); + } + buf.append(minute); + buf.append(':'); + int second = calendar.get(Calendar.SECOND); + if (second < 10) { + buf.append('0'); + } + buf.append(second); + } + + // .000 + protected static void addTimeDecimalPart(StringBuilder buf, int decimalPart) { + if (decimalPart == 0) { + return; + } + if (buf.length() > 0) { + buf.append('.'); + } + buf.append(decimalPart); + } + + // 'text' + protected static String quote(String text) { + return "'" + text + "'"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/util/InternalBindVariableUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,137 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.valuetype; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.seasar.extension.jdbc.types.BytesType; + +/** + * The value type of bytes OID. (for PostgreSQL) + * + * @author DBFlute(AutoGenerator) + */ +public class InternalBytesOidType extends BytesType { + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalBytesOidType() { + super(new InternalBytesOidTrait()); + } + + //========================================================================== + // ========= + // Blob Trait + // ========== + protected static class InternalBytesOidTrait implements Trait { + + public int getSqlType() { + return Types.BLOB; + } + + public void set(PreparedStatement ps, int parameterIndex, byte[] bytes) + throws SQLException { + ps.setBlob(parameterIndex, createBytesOidImpl(bytes)); + } + + protected Blob createBytesOidImpl(byte[] bytes) { + return new InternalBytesOidImpl(bytes); + } + + public void set(CallableStatement cs, String parameterName, byte[] bytes) + throws SQLException { + cs.setBytes(parameterName, bytes); + } + + public byte[] get(ResultSet rs, int columnIndex) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnIndex)); + } + + public byte[] get(ResultSet rs, String columnName) throws SQLException { + return BytesType.toBytes(rs.getBlob(columnName)); + } + + public byte[] get(CallableStatement cs, int columnIndex) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnIndex)); + } + + public byte[] get(CallableStatement cs, String columnName) + throws SQLException { + return BytesType.toBytes(cs.getBlob(columnName)); + } + } + + //========================================================================== + // ========= + // Blob Implementation + // =================== + protected static class InternalBytesOidImpl implements Blob { + + protected byte[] bytes; + + public InternalBytesOidImpl(byte[] bytes) { + this.bytes = bytes; + } + + public void free() throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException("free()"); + } + + public InputStream getBinaryStream() throws SQLException { + return new ByteArrayInputStream(bytes); + } + + public InputStream getBinaryStream(long pos, long length) + throws SQLException { // for JDK-6.0 + throw new UnsupportedOperationException( + "getBinaryStream(pos, length)"); + } + + public byte[] getBytes(long pos, int length) throws SQLException { + if (length == bytes.length) { + return bytes; + } + byte[] result = new byte[length]; + System.arraycopy(bytes, 0, result, 0, length); + return result; + } + + public long length() throws SQLException { + return bytes.length; + } + + public long position(Blob pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public long position(byte[] pattern, long start) throws SQLException { + throw new UnsupportedOperationException("position"); + } + + public OutputStream setBinaryStream(long pos) throws SQLException { + throw new UnsupportedOperationException("setBinaryStream"); + } + + public int setBytes(long pos, byte[] bytes, int offset, int len) + throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public int setBytes(long pos, byte[] bytes) throws SQLException { + throw new UnsupportedOperationException("setBytes"); + } + + public void truncate(long len) throws SQLException { + throw new UnsupportedOperationException("truncate"); + } + } +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/valuetype/InternalBytesOidType.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,101 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various; + +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaData { + + //========================================================================== + // ========= + // Attribute + // ========= + private String procedureName; + + private Map unorderedMap = createUnorderedMap(); + + private Map parameterTypes = createParameterTypes(); + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureMetaData(final String procedureName) { + this.procedureName = procedureName; + } + + //========================================================================== + // ========= + // Factory + // ======= + protected Map createUnorderedMap() { + return new HashMap(); + } + + protected Map createParameterTypes() { + return new TreeMap( + new ParameterComparator()); + } + + protected class ParameterComparator implements Comparator { + public int compare(String o1, String o2) { + final int oneGreaterThanTwo = 1; + final int twoGreaterThanOne = -1; + final InternalProcedureParameterType parameterType1 = unorderedMap + .get(o1); + final InternalProcedureParameterType parameterType2 = unorderedMap + .get(o2); + if (parameterType1.isReturnType()) { + return twoGreaterThanOne; // Return type is prior + } + if (parameterType2.isReturnType()) { + return oneGreaterThanTwo; // Return type is prior + } + final Integer parameterIndex1 = parameterType1.getParameterIndex(); + final Integer parameterIndex2 = parameterType2.getParameterIndex(); + if (parameterIndex1 == null && parameterIndex2 == null) { + return oneGreaterThanTwo; // No changes + } + if (parameterIndex1 != null && parameterIndex2 == null) { + return twoGreaterThanOne; // Not null is prior + } + if (parameterIndex1 == null && parameterIndex2 != null) { + return oneGreaterThanTwo; // Not null is prior + } + return parameterIndex1.compareTo(parameterIndex2); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getProcedureName() { + return procedureName; + } + + public Collection parameterTypes() { + return parameterTypes.values(); + } + + public void addParameterType( + final InternalProcedureParameterType parameterType) { + final String name = parameterType.getParameterName(); + unorderedMap.put(name, parameterType); + parameterTypes.put(name, parameterType); + if (parameterType.isReturnType()) { + returnType = true; + } + } + + public boolean hasReturnParameterType() { + return returnType; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,232 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Stack; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; + +import org.seasar.dao.ValueTypeFactory; +import org.seasar.dao.util.TypeUtil; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.extension.jdbc.types.ValueTypes; +import org.seasar.framework.beans.BeanDesc; +import org.seasar.framework.beans.factory.BeanDescFactory; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureMetaDataFactory { + + //========================================================================== + // ========= + // Attribute + // ========= + protected ValueTypeFactory valueTypeFactory; + + protected InternalFieldProcedureAnnotationReader annotationReader = new InternalFieldProcedureAnnotationReader(); + + //========================================================================== + // ========= + // Main + // ==== + public InternalProcedureMetaData createProcedureMetaData( + final String procedureName, final Class pmbType) { + final InternalProcedureMetaData metaData = new InternalProcedureMetaData( + procedureName); + if (pmbType == null) { + return metaData; + } else { + if (!isDtoType(pmbType)) { + throw new IllegalStateException( + "The pmb type was Not DTO type: " + pmbType.getName()); + } + } + final BeanDesc pmbDesc = BeanDescFactory.getBeanDesc(pmbType); + + // *Point + final Stack> stack = new Stack>(); + for (Class clazz = pmbType; clazz != null && clazz != Object.class; clazz = clazz + .getSuperclass()) { + stack.push(clazz); + } + for (; !stack.isEmpty();) { + final Class clazz = stack.pop(); + registerParameterType(metaData, pmbDesc, clazz.getDeclaredFields()); + } + + return metaData; + } + + protected void registerParameterType(InternalProcedureMetaData metaData, + BeanDesc pmbDesc, Field[] fields) { + for (Field field : fields) { + if (!isInstanceField(field)) { + continue; + } + final InternalProcedureParameterType ppt = getProcedureParameterType( + pmbDesc, field); + if (ppt == null) { + continue; + } + metaData.addParameterType(ppt); + } + } + + protected InternalProcedureParameterType getProcedureParameterType( + final BeanDesc dtoDesc, final Field field) { + final String procedureParameter = annotationReader + .getProcedureParameter(dtoDesc, field); + if (procedureParameter == null) { + return null; + } + final String type = extractParameterType(procedureParameter); + field.setAccessible(true); + final InternalProcedureParameterType ppt = new InternalProcedureParameterType( + field); + if (type.equalsIgnoreCase("in")) { + ppt.setInType(true); + } else if (type.equalsIgnoreCase("out")) { + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("inout")) { + ppt.setInType(true); + ppt.setOutType(true); + } else if (type.equalsIgnoreCase("return")) { + ppt.setOutType(true); + ppt.setReturnType(true); + } else { + String msg = "The parameter type should be 'in' or 'out' or 'inout' or 'return':"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterType=" + type; + throw new IllegalStateException(msg); + } + final Integer index = extractParameterIndex(procedureParameter, field); + ppt.setParameterIndex(index); + final ValueType valueType = getValueType(dtoDesc, field); + ppt.setValueType(valueType); + return ppt; + } + + protected String extractParameterType(String procedureParameter) { + if (procedureParameter.contains(",")) { + return procedureParameter.substring(0, + procedureParameter.indexOf(",")).trim(); + } + return procedureParameter.trim(); + } + + protected Integer extractParameterIndex(String procedureParameter, + Field field) { + if (procedureParameter.contains(",")) { + String tmp = procedureParameter.substring( + procedureParameter.indexOf(",") + ",".length()).trim(); + try { + return Integer.valueOf(tmp); + } catch (NumberFormatException e) { + String msg = "The parameter index should be number:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + msg = msg + " parameterIndex=" + tmp + " procedureParameter=" + + procedureParameter; + throw new IllegalStateException(msg, e); + } + } + return null; + } + + protected ValueType getValueType(final BeanDesc dtoDesc, final Field field) { + final String name = annotationReader.getValueType(dtoDesc, field); + if (name != null) { + return valueTypeFactory.getValueTypeByName(name); + } + final Class type = field.getType(); + if (List.class.isAssignableFrom(type)) {// is for out parameter cursor. + if (ConditionBeanContext.isOracle()) { + return ValueTypes.ORACLE_RESULT_SET; + } else if (ConditionBeanContext.isPostgreSql()) { + return ValueTypes.POSTGRE_RESULT_SET; + } else { + return ValueTypes.SERIALIZABLE_BYTE_ARRAY; + } + } + return valueTypeFactory.getValueTypeByClass(type); + } + + protected boolean isInstanceField(final Field field) { + final int mod = field.getModifiers(); + return !Modifier.isStatic(mod) && !Modifier.isFinal(mod); + } + + protected boolean isDtoType(final Class clazz) { + return !TypeUtil.isSimpleType(clazz) && !isContainerType(clazz); + } + + protected boolean isContainerType(final Class clazz) { + if (clazz == null) { + throw new NullPointerException("clazz"); + } + return Collection.class.isAssignableFrom(clazz) + || Map.class.isAssignableFrom(clazz) || clazz.isArray(); + } + + public void setValueTypeFactory(final ValueTypeFactory valueTypeFactory) { + this.valueTypeFactory = valueTypeFactory; + } + + protected static class InternalFieldProcedureAnnotationReader { + protected String PROCEDURE_PARAMETER_SUFFIX; + + protected String VALUE_TYPE_SUFFIX; + + public InternalFieldProcedureAnnotationReader() { + PROCEDURE_PARAMETER_SUFFIX = "_PROCEDURE_PARAMETER"; + VALUE_TYPE_SUFFIX = "_VALUE_TYPE"; + } + + public String getProcedureParameter(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + PROCEDURE_PARAMETER_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + public String getValueType(BeanDesc dtoDesc, Field field) { + String fieldName = removeInstanceVariablePrefix(field.getName());// * + // Point + String annotationName = fieldName + VALUE_TYPE_SUFFIX; + if (dtoDesc.hasField(annotationName)) { + Field f = dtoDesc.getField(annotationName); + return (String) getValue(f, null); + } else { + return null; + } + } + + protected String removeInstanceVariablePrefix(String fieldName) { + return fieldName.startsWith("_") ? fieldName + .substring("_".length()) : fieldName; + } + + protected Object getValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureMetaDataFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,112 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various; + +import java.lang.reflect.Field; + +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalProcedureParameterType { + + //========================================================================== + // ========= + // Attribute + // ========= + private String parameterName; + + private Integer parameterIndex; + + private Field field; + + private ValueType valueType; + + private boolean inType; + + private boolean outType; + + private boolean returnType; + + //========================================================================== + // ========= + // Constructor + // =========== + public InternalProcedureParameterType(Field field) { + this.field = field; + this.parameterName = field.getName(); + } + + //========================================================================== + // ========= + // Field Value + // =========== + public Object getValue(Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + String msg = "The getting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + public void setValue(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + String msg = "The setting of the field threw the exception:"; + msg = msg + " class=" + field.getDeclaringClass().getSimpleName(); + msg = msg + " field=" + field.getName(); + throw new IllegalStateException(msg, e); + } + } + + //========================================================================== + // ========= + // Accessor + // ======== + public String getParameterName() { + return parameterName; + } + + public Integer getParameterIndex() { + return parameterIndex; + } + + public void setParameterIndex(Integer parameterIndex) { + this.parameterIndex = parameterIndex; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(final ValueType valueType) { + this.valueType = valueType; + } + + public boolean isInType() { + return inType; + } + + public void setInType(final boolean inType) { + this.inType = inType; + } + + public boolean isOutType() { + return outType; + } + + public void setOutType(final boolean outType) { + this.outType = outType; + } + + public boolean isReturnType() { + return returnType; + } + + public void setReturnType(final boolean returnType) { + this.returnType = returnType; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalProcedureParameterType.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,327 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBeanContext; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; + +import org.seasar.dao.BeanMetaData; +import org.seasar.dao.RelationPropertyType; +import org.seasar.dao.impl.RelationRowCreationResource; +import org.seasar.dao.impl.RelationRowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; +import org.seasar.framework.beans.PropertyDesc; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRelationRowCreator extends RelationRowCreatorImpl { + + @Override + protected Object createRelationRow(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + if (!res.hasPropertyCacheElement()) { + return null; + } + setupRelationKeyValue(res); + setupRelationAllValue(res); + return res.getRow(); + } + + @Override + protected void setupRelationKeyValue(RelationRowCreationResource res) { + final RelationPropertyType rpt = res.getRelationPropertyType(); + final BeanMetaData bmd = rpt.getBeanMetaData(); + final DBMeta dbmeta = findDBMeta(bmd.getBeanClass(), bmd.getTableName()); + for (int i = 0; i < rpt.getKeySize(); ++i) { + final String columnName = rpt.getMyKey(i) + res.getBaseSuffix(); + + if (!res.containsColumnName(columnName)) { + continue; + } + if (!res.hasRowInstance()) { + final Object row; + if (dbmeta != null) { + row = dbmeta.newEntity(); + } else { + row = newRelationRow(rpt); + } + res.setRow(row); + } + if (!res.containsRelKeyValueIfExists(columnName)) { + continue; + } + final Object value = res.extractRelKeyValue(columnName); + if (value == null) { + continue; + } + + final String yourKey = rpt.getYourKey(i); + final PropertyType pt = bmd.getPropertyTypeByColumnName(yourKey); + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + continue; + } + } + + protected Object createRelationRowInstance(DBMeta dbmeta) { + if (dbmeta != null) { + return dbmeta.newEntity(); + } + return null; + } + + protected DBMeta findDBMeta(Class rowType, String tableName) { + return InternalRowCreator.findDBMeta(rowType, tableName); + } + + @SuppressWarnings("unchecked") + @Override + protected void setupRelationAllValue(RelationRowCreationResource res) + throws SQLException { + final Map propertyCacheElement = res.extractPropertyCacheElement(); + final Set columnNameCacheElementKeySet = propertyCacheElement.keySet(); + for (final Iterator ite = columnNameCacheElementKeySet.iterator(); ite + .hasNext();) { + final String columnName = (String) ite.next(); + final PropertyType pt = (PropertyType) propertyCacheElement + .get(columnName); + res.setCurrentPropertyType(pt); + if (!isValidRelationPerPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + setupRelationProperty(res); + } + if (!isValidRelationAfterPropertyLoop(res)) { + res.clearRowInstance(); + return; + } + res.clearValidValueCount(); + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + setupNextRelationRow(res); + } + } + + @Override + protected void registerRelationValue(RelationRowCreationResource res, + String columnName) throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + Object value = null; + if (res.containsRelKeyValueIfExists(columnName)) { + value = res.extractRelKeyValue(columnName); + } else { + final ValueType valueType = pt.getValueType(); + value = valueType.getValue(res.getResultSet(), columnName); + } + + if (value != null) { + res.incrementValidValueCount(); + final DBMeta dbmeta = findDBMeta(res.getRow()); + final String propertyName = pt.getPropertyName(); + if (dbmeta != null + && dbmeta.hasEntityPropertySetupper(propertyName)) { + dbmeta.setupEntityProperty(propertyName, res.getRow(), value); + } else { + final PropertyDesc pd = pt.getPropertyDesc(); + pd.setValue(res.getRow(), value); + } + } + } + + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + protected DBMeta findDBMeta(Object row) { + return InternalRowCreator.findDBMeta(row); + } + + @Override + protected void setupPropertyCache(RelationRowCreationResource res) + throws SQLException { + // - - - - - - - - - - - + // Recursive Call Point! + // - - - - - - - - - - - + res.initializePropertyCacheElement(); + + // Do only selected foreign property for performance if condition-bean + // exists. + if (hasConditionBean(res) && !hasSelectedForeignInfo(res)) { + return; + } + + // Set up property cache about current beanMetaData. + final BeanMetaData nextBmd = res.getRelationBeanMetaData(); + for (int i = 0; i < nextBmd.getPropertyTypeSize(); ++i) { + final PropertyType pt = nextBmd.getPropertyType(i); + res.setCurrentPropertyType(pt); + if (!isTargetProperty(res)) { + continue; + } + setupPropertyCacheElement(res); + } + + // Set up next relation. + if (res.hasNextRelationProperty() + && (hasConditionBean(res) || res.hasNextRelationLevel())) { + res.backupRelationPropertyType(); + res.incrementCurrentRelationNestLevel(); + try { + setupNextPropertyCache(res, nextBmd); + } finally { + res.restoreRelationPropertyType(); + res.decrementCurrentRelationNestLevel(); + } + } + } + + @Override + protected boolean isTargetProperty(RelationRowCreationResource res) + throws SQLException { + final PropertyType pt = res.getCurrentPropertyType(); + if (!pt.getPropertyDesc().hasWriteMethod()) { + return false; + } + if (java.util.List.class.isAssignableFrom(pt.getPropertyDesc() + .getPropertyType())) { + return false; + } + return true; + } + + @Override + protected boolean isCreateDeadLink() { + return false; + } + + @Override + protected int getLimitRelationNestLevel() { + return 2;// for Compatible + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForRow(ResultSet rs, + RelationPropertyType rpt, Set columnNames, Map relKeyValues, + Map relationPropertyCache) throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setResultSet(rs); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelKeyValues(relKeyValues); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix("");// as Default + res.setRelationNoSuffix(buildRelationNoSuffix(rpt)); + res.setLimitRelationNestLevel(getLimitRelationNestLevel()); + res.setCurrentRelationNestLevel(1);// as Default + res.setCreateDeadLink(isCreateDeadLink()); + return res; + } + + @SuppressWarnings("unchecked") + @Override + protected RelationRowCreationResource createResourceForPropertyCache( + RelationPropertyType rpt, Set columnNames, + Map relationPropertyCache, String baseSuffix, + String relationNoSuffix, int limitRelationNestLevel) + throws SQLException { + final RelationRowCreationResource res = new RelationRowCreationResourceExtension(); + res.setRelationPropertyType(rpt); + res.setColumnNames(columnNames); + res.setRelationPropertyCache(relationPropertyCache); + res.setBaseSuffix(baseSuffix); + res.setRelationNoSuffix(relationNoSuffix); + res.setLimitRelationNestLevel(limitRelationNestLevel); + res.setCurrentRelationNestLevel(1);// as Default + return res; + } + + protected boolean isConditionBeanSelectedRelation( + RelationRowCreationResource res) { + if (hasConditionBean(res)) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo( + res.getRelationNoSuffix())) { + return true; + } + } + return false; + } + + protected boolean hasConditionBean(RelationRowCreationResource res) { + return ConditionBeanContext.isExistConditionBeanOnThread(); + } + + protected boolean hasSelectedForeignInfo(RelationRowCreationResource res) { + final ConditionBean cb = ConditionBeanContext + .getConditionBeanOnThread(); + if (cb.getSqlClause().hasSelectedForeignInfo(res.getRelationNoSuffix())) { + return true; + } + return false; + } + + protected static class RelationRowCreationResourceExtension extends + RelationRowCreationResource { + protected Stack backupRelationPropertyType = new Stack(); + + protected Stack backupBaseSuffix = new Stack(); + + protected Stack backupRelationSuffix = new Stack(); + + @Override + public void backupRelationPropertyType() { + backupRelationPropertyType.push(getRelationPropertyType()); + } + + @Override + public void restoreRelationPropertyType() { + setRelationPropertyType(backupRelationPropertyType.pop()); + } + + @Override + public void backupSuffixAndPrepare(String baseSuffix, + String additionalRelationNoSuffix) { + backupBaseSuffixExtension(); + backupRelationNoSuffixExtension(); + setBaseSuffix(baseSuffix); + addRelationNoSuffix(additionalRelationNoSuffix); + } + + @Override + public void restoreSuffix() { + restoreBaseSuffixExtension(); + restoreRelationNoSuffixExtension(); + } + + protected void backupBaseSuffixExtension() { + backupBaseSuffix.push(getBaseSuffix()); + } + + protected void restoreBaseSuffixExtension() { + setBaseSuffix(backupBaseSuffix.pop()); + } + + protected void backupRelationNoSuffixExtension() { + backupRelationSuffix.push(getRelationNoSuffix()); + } + + protected void restoreRelationNoSuffixExtension() { + setRelationNoSuffix(backupRelationSuffix.pop()); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRelationRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRowCreator.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRowCreator.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRowCreator.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,289 @@ +package jp.sf.pal.scheduler.db.allcommon.s2dao.internal.various; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.InternalMapContext; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.allcommon.util.SimpleSystemUtil; + +import org.seasar.dao.impl.RowCreatorImpl; +import org.seasar.extension.jdbc.PropertyType; +import org.seasar.extension.jdbc.ValueType; + +/** + * @author DBFlute(AutoGenerator) + */ +public class InternalRowCreator extends RowCreatorImpl { + + //========================================================================== + // ========= + // Definition + // ========== + /** Log instance. */ + private static final org.apache.commons.logging.Log _log = org.apache.commons.logging.LogFactory + .getLog(InternalRowCreator.class); + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + //========================================================================== + // ========= + // Attribute + // ========= + protected DBMeta _dbmeta; + + //========================================================================== + // ========= + // Constructor + // =========== + protected InternalRowCreator() { + } + + /** + * @param beanClass The class of target bean to find DB-meta. (Nullable) + * @return The instance of internal row creator. (NotNull) + */ + public static InternalRowCreator createInternalRowCreator(Class beanClass) { + final InternalRowCreator rowCreator = new InternalRowCreator(); + if (beanClass != null) { + rowCreator.setDBMeta(findDBMetaByClass(beanClass)); + } + return rowCreator; + } + + //========================================================================== + // ========= + // Main + // ==== + @SuppressWarnings("unchecked") + @Override + public Object createRow(ResultSet rs, Map propertyCache, Class beanClass) + throws SQLException { + final Set columnNameSet = propertyCache.keySet(); + String columnName = null; + PropertyType pt = null; + String propertyName = null; + final Object row; + final DBMeta dbmeta; + if (_dbmeta != null) { + dbmeta = _dbmeta; + row = dbmeta.newEntity(); + } else { + row = newBean(beanClass); + dbmeta = findDBMeta(row); + } + try { + if (dbmeta != null) { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + if (dbmeta.hasEntityPropertySetupper(propertyName)) { + final ValueType valueType = pt.getValueType(); + final Object value = valueType.getValue(rs, columnName); + dbmeta.setupEntityProperty(propertyName, row, value); + } else { + registerValue(rs, row, pt, columnName); + } + } + } else { + for (final Iterator ite = columnNameSet.iterator(); ite + .hasNext();) { + columnName = (String) ite.next(); + pt = (PropertyType) propertyCache.get(columnName); + propertyName = pt.getPropertyName(); + registerValue(rs, row, pt, columnName); + } + } + return row; + } catch (ClassCastException e) { + if (_log.isWarnEnabled()) { + String msg = ClassCastException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName + " dbmeta"); + } + throwNonsenseClassCastException(row, dbmeta, e); + return null; // Unreachable! + } catch (SQLException e) { + if (_log.isWarnEnabled()) { + String msg = SQLException.class.getSimpleName() + + " occurred while ResultSet Handling:"; + _log.warn(msg + " target=" + beanClass.getSimpleName() + "." + + propertyName); + } + throw e; + } + } + + protected void throwNonsenseClassCastException(Object entity, + DBMeta dbmeta, ClassCastException e) { + String msg = "Look! Read the message below." + getLineSeparator(); + msg = msg + + "/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" + + getLineSeparator(); + msg = msg + "Nonsense ClassCastException occured!" + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Advice]" + getLineSeparator(); + msg = msg + + "This exception may be from ClassLoader Headache about HotDeploy." + + getLineSeparator(); + msg = msg + + "Please add the ignore-package setting to convention.dicon like as follows:" + + getLineSeparator(); + msg = msg + " For example:" + getLineSeparator(); + msg = msg + " " + + getLineSeparator(); + msg = msg + " ¡Écom.example.xxx.dbflute¡É" + + getLineSeparator(); + msg = msg + " " + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Exception Message]" + getLineSeparator() + e.getMessage() + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity]" + getLineSeparator() + entity + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target Entity Class Loader]" + getLineSeparator() + + entity.getClass().getClassLoader() + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta]" + getLineSeparator() + dbmeta + + getLineSeparator(); + msg = msg + getLineSeparator(); + msg = msg + "[Target DBMeta Class Loader]" + getLineSeparator() + + dbmeta.getClass().getClassLoader() + getLineSeparator(); + msg = msg + "* * * * * * * * * */"; + throw new NonsenseClassCastException(msg, e); + } + + public static class NonsenseClassCastException extends RuntimeException { + private static final long serialVersionUID = 1L; + + public NonsenseClassCastException(String msg, ClassCastException e) { + super(msg, e); + } + } + + //========================================================================== + // ========= + // Assist Helper + // ============= + /** + * @param row The instance of row. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Object row) { + return DBMetaCacheHandler.findDBMeta(row); + } + + /** + * @param rowType The type of row. (NotNull) + * @param tableName The name of table. (NotNull) + * @return The interface of DBMeta. (Nullable: If it's null, it means + * NotFound.) + */ + public static DBMeta findDBMeta(Class rowType, String tableName) { + return DBMetaCacheHandler.findDBMeta(rowType, tableName); + } + + protected static class DBMetaCacheHandler { + + /** The key of DBMeta cache. */ + protected static final String DBMETA_CACHE_KEY = "df:DBMetaCache"; + + public static DBMeta findDBMeta(Object row) { + if (!(row instanceof Entity)) { + return null; + } + final Entity entity = (Entity) row; + DBMeta dbmeta = findCachedDBMeta(entity.getClass()); + if (dbmeta != null) { + return dbmeta; + } + dbmeta = entity.getDBMeta(); + cacheDBMeta(entity, dbmeta); + return dbmeta; + } + + public static DBMeta findDBMeta(Class rowType, String tableName) { + DBMeta dbmeta = findCachedDBMeta(rowType); + if (dbmeta != null) { + return dbmeta; + } + try { + dbmeta = DBMetaInstanceHandler.findDBMeta(tableName); + } catch (DBMetaInstanceHandler.DBMetaNotFoundException ignored) { + return null; + } + cacheDBMeta(rowType, dbmeta); + return dbmeta; + } + + protected static DBMeta findCachedDBMeta(Class rowType) { + Map, DBMeta> dbmetaCache = findDBMetaCache(); + if (dbmetaCache == null) { + dbmetaCache = new HashMap, DBMeta>(); + InternalMapContext.setObject(DBMETA_CACHE_KEY, dbmetaCache); + } + return dbmetaCache.get(rowType); + } + + protected static void cacheDBMeta(Entity entity, DBMeta dbmeta) { + cacheDBMeta(entity.getClass(), dbmeta); + } + + protected static void cacheDBMeta(Class type, DBMeta dbmeta) { + final Map, DBMeta> dbmetaCache = findDBMetaCache(); + dbmetaCache.put(type, dbmeta); + } + + @SuppressWarnings("unchecked") + protected static Map, DBMeta> findDBMetaCache() { + return (Map, DBMeta>) InternalMapContext + .getObject(DBMETA_CACHE_KEY); + } + } + + protected static DBMeta findDBMetaByClass(Class beanClass) { + final Object instance = newInstance(beanClass); + if (!(instance instanceof Entity)) { + return null; + } + return ((Entity) instance).getDBMeta(); + } + + protected static Object newInstance(Class clazz) { + try { + return clazz.newInstance(); + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + + //========================================================================== + // ========= + // General Helper + // ============== + protected String getLineSeparator() { + return SimpleSystemUtil.getLineSeparator(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + public void setDBMeta(DBMeta dbmeta) { + this._dbmeta = dbmeta; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/s2dao/internal/various/InternalRowCreator.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleAssertUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleAssertUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleAssertUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,54 @@ +package jp.sf.pal.scheduler.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleAssertUtil { + + //========================================================================== + // ========= + // Assert + // ====== + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + public static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } + + // ----------------------------------------------------- + // Assert String + // ------------- + /** + * Assert that the entity is not null and not trimmed empty. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + */ + public static void assertStringNotNullAndNotTrimmedEmpty( + String variableName, String value) { + assertObjectNotNull("variableName", variableName); + assertObjectNotNull("value", value); + if (value.trim().length() == 0) { + String msg = "The value should not be empty: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleAssertUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleStringUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleStringUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleStringUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,67 @@ +package jp.sf.pal.scheduler.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleStringUtil { + + //========================================================================== + // ========= + // String + // ====== + public static String replace(String text, String fromText, String toText) { + if (text == null || fromText == null || toText == null) { + return null; + } + StringBuilder sb = new StringBuilder(); + int pos = 0; + int pos2 = 0; + do { + pos = text.indexOf(fromText, pos2); + if (pos == 0) { + sb.append(toText); + pos2 = fromText.length(); + } else if (pos > 0) { + sb.append(text.substring(pos2, pos)); + sb.append(toText); + pos2 = pos + fromText.length(); + } else { + sb.append(text.substring(pos2)); + return sb.toString(); + } + } while (true); + } + + public static String initCap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + + public static String initUncap(String str) { + assertObjectNotNull("str", str); + return str.substring(0, 1).toLowerCase() + str.substring(1); + } + + // ----------------------------------------------------- + // Assert Object + // ------------- + /** + * Assert that the object is not null. + * + * @param variableName Variable name. (NotNull) + * @param value Value. (NotNull) + * @exception IllegalArgumentException + */ + protected static void assertObjectNotNull(String variableName, Object value) { + if (variableName == null) { + String msg = "The value should not be null: variableName=" + + variableName + " value=" + value; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The value should not be null: variableName=" + + variableName; + throw new IllegalArgumentException(msg); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleStringUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleSystemUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleSystemUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleSystemUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class SimpleSystemUtil { + + //========================================================================== + // ========= + // System + // ====== + public static String getLineSeparator() { + // /- - - - - - - - - - - - - - - - - - - - - - + // Because 'CR + LF' caused many trouble! + // And Now 'LF' have little trouble. + // + // return System.getProperty("line.separator"); + // - - - - - - - - - -/ + return "\n"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/SimpleSystemUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/TraceViewUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/TraceViewUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/TraceViewUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,67 @@ +package jp.sf.pal.scheduler.db.allcommon.util; + +/** + * @author DBFlute(AutoGenerator) + */ +public class TraceViewUtil { + + /** + * Convert to performance view. + * + * @param afterMinusBefore The value of after-minus-before millisecond. + * @return Performance view. (ex. 1m23s456ms) (NotNull) + */ + public static String convertToPerformanceView(long afterMinusBefore) { + if (afterMinusBefore < 0) { + return String.valueOf(afterMinusBefore); + } + + long sec = afterMinusBefore / 1000; + final long min = sec / 60; + sec = sec % 60; + final long mil = afterMinusBefore % 1000; + + final StringBuffer sb = new StringBuffer(); + if (min >= 10) { // Minute + sb.append(min).append("m"); + } else if (min < 10 && min >= 0) { + sb.append("0").append(min).append("m"); + } + if (sec >= 10) { // Second + sb.append(sec).append("s"); + } else if (sec < 10 && sec >= 0) { + sb.append("0").append(sec).append("s"); + } + if (mil >= 100) { // Millisecond + sb.append(mil).append("ms"); + } else if (mil < 100 && mil >= 10) { + sb.append("0").append(mil).append("ms"); + } else if (mil < 10 && mil >= 0) { + sb.append("00").append(mil).append("ms"); + } + + return sb.toString(); + } + + /** + * Convert object array to string view. + * + * @param objArray The array of object. (Nullable) + * @return The string divided with comma. (NotNull: If the argument is null, + * returns empty string.) + */ + public static String convertObjectArrayToStringView(Object[] objArray) { + if (objArray == null) { + return ""; + } + final StringBuffer sb = new StringBuffer(); + for (int i = 0; i < objArray.length; i++) { + if (i == 0) { + sb.append(objArray[i]); + } else { + sb.append(", ").append(objArray[i]); + } + } + return sb.toString(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/TraceViewUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/ValueLabelUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/ValueLabelUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/ValueLabelUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,65 @@ +package jp.sf.pal.scheduler.db.allcommon.util; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author DBFlute(AutoGenerator) + */ +public class ValueLabelUtil { + + /** + * Find the label by the value from the list of value label. + * + * @param valueLabelList The list of value label. (NotNull and NotEmpty) + * @param value Value. (NotNull) + * @return Label. (NotNull) + */ + public static String findLabel(List> valueLabelList, + Object value) { + if (valueLabelList == null) { + String msg = "The arguement[valueLabelList] should not be null."; + throw new IllegalArgumentException(msg); + } + if (valueLabelList.isEmpty()) { + String msg = "The arguement[valueLabelList] should not be empty."; + throw new IllegalArgumentException(msg); + } + if (value == null) { + String msg = "The arguement[value] should not be null."; + throw new IllegalArgumentException(msg); + } + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + if (value.equals(currentValue)) { + return (String) elementMap.get("label"); + } + } + String msg = "Not found label by the value: value=" + value + + " valueLabelList=" + valueLabelList; + throw new IllegalStateException(msg); + } + + public static Map createValueLabelMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentValue, currentLabel); + } + return resultMap; + } + + public static Map createLabelValueMap( + List> valueLabelList) { + final Map resultMap = new LinkedHashMap(); + for (Map elementMap : valueLabelList) { + final Object currentValue = elementMap.get("value"); + final String currentLabel = (String) elementMap.get("label"); + resultMap.put(currentLabel, currentValue); + } + return resultMap; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/util/ValueLabelUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupInfoBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupInfoBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,897 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.GroupInfoDbm; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exbhv.GroupMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.UserInfoBhv; +import jp.sf.pal.scheduler.db.exdao.GroupInfoDao; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of GROUP_INFO. + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupInfoBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupInfoDbm getMyDBMeta() { + return GroupInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + public GroupInfoCB newMyConditionBean() { + return new GroupInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntity(final GroupInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupInfo selectEntityWithDeletedCheck(final GroupInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(GroupInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupInfo selectByPKValueWithDeletedCheck(String groupId) { + GroupInfo entity = new GroupInfo(); + entity.setGroupId(groupId); + final GroupInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadGroupMappingList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setGroupId_InScope(pkList);
    +     * cb.query().addOrderBy_GroupId_Asc();
    +     * 
    + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (groupInfoList.isEmpty()) { + return; + } + loadUserInfoList(groupInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param groupInfoList The entity list of groupInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List groupInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("groupInfoList", groupInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (groupInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + groupInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + GroupInfo entity) { + return entity.getGroupId(); + } + + public void callbackBase_setReferrerList(GroupInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, GroupInfo baseEntity) { + referrerEntity.setGroupInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupInfo groupInfo) { + assertEntityNotNull(groupInfo); + delegateInsert(groupInfo); + } + + @Override + protected void doCreate(Entity groupInfo) { + insert((GroupInfo) groupInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupInfo groupInfo) { + helpUpdateInternally(groupInfo, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final GroupInfo groupInfo) { + helpUpdateNonstrictInternally(groupInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(GroupInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((GroupInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdate(GroupInfo entity) { + update(entity); + } + + public GroupInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupInfo) { + insertOrUpdate((GroupInfo) groupInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param groupInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(GroupInfo groupInfo) { + helpInsertOrUpdateInternally(groupInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(GroupInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(GroupInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((GroupInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupInfo groupInfo) { + helpDeleteInternally(groupInfo, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupInfo) { + delete((GroupInfo) groupInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(GroupInfo groupInfo) { + helpDeleteNonstrictInternally(groupInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(GroupInfo groupInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(groupInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(GroupInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateInsertList(groupInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateList(groupInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateUpdateListNonstrict(groupInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteList(groupInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param groupInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List groupInfoList) { + assertObjectNotNull("groupInfoList", groupInfoList); + return delegateDeleteListNonstrict(groupInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupInfo groupInfo, GroupInfoCB cb) { + assertObjectNotNull("groupInfo", groupInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupInfo); + filterEntityOfUpdate(groupInfo); + assertEntityOfUpdate(groupInfo); + return getMyDao().updateByQuery(cb, groupInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(GroupInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(GroupInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("groupInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupInfo downcast(Entity entity) { + return helpDowncastInternally(entity, GroupInfo.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,602 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.GroupMappingDbm; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.exdao.GroupMappingDao; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of GROUP_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsGroupMappingBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return GroupMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public GroupMappingDbm getMyDBMeta() { + return GroupMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public GroupMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(GroupMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + public GroupMappingCB newMyConditionBean() { + return new GroupMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntity(final GroupMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public GroupMapping selectEntityWithDeletedCheck(final GroupMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + GroupMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public GroupMapping selectByPKValueWithDeletedCheck(Integer id) { + GroupMapping entity = new GroupMapping(); + entity.setId(id); + final GroupMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of GroupMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + GroupMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity( + GroupMapping entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param groupMappingList The list of groupMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List groupMappingList) { + return helpPulloutInternally(groupMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(GroupMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param groupMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(GroupMapping groupMapping) { + assertEntityNotNull(groupMapping); + delegateInsert(groupMapping); + } + + @Override + protected void doCreate(Entity groupMapping) { + insert((GroupMapping) groupMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param groupMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final GroupMapping groupMapping) { + helpUpdateInternally(groupMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(GroupMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((GroupMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((GroupMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param groupMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final GroupMapping groupMapping) { + helpInsertOrUpdateInternally( + groupMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(GroupMapping entity) { + insert(entity); + } + + public void callbackUpdate(GroupMapping entity) { + update(entity); + } + + public GroupMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(GroupMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity groupMapping) { + insertOrUpdate((GroupMapping) groupMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((GroupMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param groupMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(GroupMapping groupMapping) { + helpDeleteInternally(groupMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(GroupMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity groupMapping) { + delete((GroupMapping) groupMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateInsertList(groupMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateUpdateList(groupMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param groupMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List groupMappingList) { + assertObjectNotNull("groupMappingList", groupMappingList); + return delegateDeleteList(groupMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param groupMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(GroupMapping groupMapping, GroupMappingCB cb) { + assertObjectNotNull("groupMapping", groupMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(groupMapping); + filterEntityOfUpdate(groupMapping); + assertEntityOfUpdate(groupMapping); + return getMyDao().updateByQuery(cb, groupMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(GroupMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(GroupMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(GroupMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(GroupMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("groupMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected GroupMapping downcast(Entity entity) { + return helpDowncastInternally(entity, GroupMapping.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsGroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleInfoBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleInfoBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,895 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoleInfoDbm; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exbhv.RoleMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.UserInfoBhv; +import jp.sf.pal.scheduler.db.exdao.RoleInfoDao; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of ROLE_INFO. + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleInfoBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleInfoDbm getMyDBMeta() { + return RoleInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + public RoleInfoCB newMyConditionBean() { + return new RoleInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntity(final RoleInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleInfo selectEntityWithDeletedCheck(final RoleInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleInfo selectByPKValueWithDeletedCheck(String roleId) { + RoleInfo entity = new RoleInfo(); + entity.setRoleId(roleId); + final RoleInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadRoleMappingList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + /** + * Load referrer of userInfoList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setRoleId_InScope(pkList);
    +     * cb.query().addOrderBy_RoleId_Asc();
    +     * 
    + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (roleInfoList.isEmpty()) { + return; + } + loadUserInfoList(roleInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param roleInfoList The entity list of roleInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadUserInfoList(List roleInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("roleInfoList", roleInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (roleInfoList.isEmpty()) { + return; + } + final UserInfoBhv referrerBhv = xgetBSFLR().select(UserInfoBhv.class); + helpLoadReferrerInternally( + roleInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + RoleInfo entity) { + return entity.getRoleId(); + } + + public void callbackBase_setReferrerList(RoleInfo entity, + List referrerList) { + entity.setUserInfoList(referrerList); + } + + public UserInfoCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + UserInfoCB cb, List pkList) { + cb.query().setRoleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + UserInfoCB cb) { + cb.query().addOrderBy_RoleId_Asc(); + } + + public List callbackReferrer_selectList( + UserInfoCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + UserInfo entity) { + return entity.getRoleId(); + } + + public void callbackReferrer_setForeignEntity( + UserInfo referrerEntity, RoleInfo baseEntity) { + referrerEntity.setRoleInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleInfo roleInfo) { + assertEntityNotNull(roleInfo); + delegateInsert(roleInfo); + } + + @Override + protected void doCreate(Entity roleInfo) { + insert((RoleInfo) roleInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleInfo roleInfo) { + helpUpdateInternally(roleInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoleInfo roleInfo) { + helpUpdateNonstrictInternally(roleInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(RoleInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoleInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdate(RoleInfo entity) { + update(entity); + } + + public RoleInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleInfo) { + insertOrUpdate((RoleInfo) roleInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param roleInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoleInfo roleInfo) { + helpInsertOrUpdateInternally(roleInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoleInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoleInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoleInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleInfo roleInfo) { + helpDeleteInternally(roleInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleInfo) { + delete((RoleInfo) roleInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoleInfo roleInfo) { + helpDeleteNonstrictInternally(roleInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoleInfo roleInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(roleInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(RoleInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateInsertList(roleInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateList(roleInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateUpdateListNonstrict(roleInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteList(roleInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param roleInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List roleInfoList) { + assertObjectNotNull("roleInfoList", roleInfoList); + return delegateDeleteListNonstrict(roleInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleInfo roleInfo, RoleInfoCB cb) { + assertObjectNotNull("roleInfo", roleInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleInfo); + filterEntityOfUpdate(roleInfo); + assertEntityOfUpdate(roleInfo); + return getMyDao().updateByQuery(cb, roleInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoleInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoleInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("roleInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleInfo downcast(Entity entity) { + return helpDowncastInternally(entity, RoleInfo.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,597 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoleMappingDbm; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.exdao.RoleMappingDao; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of ROLE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoleMappingBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoleMappingDbm getMyDBMeta() { + return RoleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + public RoleMappingCB newMyConditionBean() { + return new RoleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntity(final RoleMappingCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoleMapping selectEntityWithDeletedCheck(final RoleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(RoleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoleMapping selectByPKValueWithDeletedCheck(Integer id) { + RoleMapping entity = new RoleMapping(); + entity.setId(id); + final RoleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoleMappingCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getRoleInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param roleMappingList The list of roleMapping. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo(List roleMappingList) { + return helpPulloutInternally(roleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity(RoleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param roleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoleMapping roleMapping) { + assertEntityNotNull(roleMapping); + delegateInsert(roleMapping); + } + + @Override + protected void doCreate(Entity roleMapping) { + insert((RoleMapping) roleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param roleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoleMapping roleMapping) { + helpUpdateInternally(roleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param roleMapping The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoleMapping roleMapping) { + helpInsertOrUpdateInternally( + roleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoleMapping entity) { + update(entity); + } + + public RoleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity roleMapping) { + insertOrUpdate((RoleMapping) roleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param roleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoleMapping roleMapping) { + helpDeleteInternally(roleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity roleMapping) { + delete((RoleMapping) roleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateInsertList(roleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateUpdateList(roleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param roleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List roleMappingList) { + assertObjectNotNull("roleMappingList", roleMappingList); + return delegateDeleteList(roleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param roleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoleMapping roleMapping, RoleMappingCB cb) { + assertObjectNotNull("roleMapping", roleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(roleMapping); + filterEntityOfUpdate(roleMapping); + assertEntityOfUpdate(roleMapping); + return getMyDao().updateByQuery(cb, roleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("roleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoleMapping.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,841 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleDbm; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exdao.RoutineScheduleDao; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; + +/** + * The behavior of ROUTINE_SCHEDULE. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROUTINE_SCHEDULE_CONTENT, ROUTINE_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     routineScheduleContentAsOne
    + * 
    + * [referrer-property]
    + *     routineScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoutineScheduleBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROUTINE_SCHEDULE"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoutineScheduleDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoutineScheduleDbm getMyDBMeta() { + return RoutineScheduleDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoutineScheduleDao getMyDao() { + return _dao; + } + + public void setMyDao(RoutineScheduleDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoutineSchedule newMyEntity() { + return new RoutineSchedule(); + } + + public RoutineScheduleCB newMyConditionBean() { + return new RoutineScheduleCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoutineSchedule. (NotNull) + * @return The selected count. + */ + public int selectCount(RoutineScheduleCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoutineSchedule. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoutineSchedule selectEntity(final RoutineScheduleCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + RoutineScheduleCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoutineSchedule. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoutineSchedule selectEntityWithDeletedCheck( + final RoutineScheduleCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + RoutineScheduleCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoutineSchedule selectByPKValueWithDeletedCheck(Long id) { + RoutineSchedule entity = new RoutineSchedule(); + entity.setId(id); + final RoutineScheduleCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoutineSchedule. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(RoutineScheduleCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoutineSchedule. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final RoutineScheduleCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoutineSchedule. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoutineScheduleCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of routineScheduleMappingList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setScheduleId_InScope(pkList);
    +     * cb.query().addOrderBy_ScheduleId_Asc();
    +     * 
    + * + * @param routineScheduleList The entity list of routineSchedule. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoutineScheduleMappingList( + List routineScheduleList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("routineScheduleList", + routineScheduleList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (routineScheduleList.isEmpty()) { + return; + } + loadRoutineScheduleMappingList( + routineScheduleList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param routineScheduleList The entity list of routineSchedule. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoutineScheduleMappingList( + List routineScheduleList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("routineScheduleList", + routineScheduleList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (routineScheduleList.isEmpty()) { + return; + } + final RoutineScheduleMappingBhv referrerBhv = xgetBSFLR().select( + RoutineScheduleMappingBhv.class); + helpLoadReferrerInternally( + routineScheduleList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue( + RoutineSchedule entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + RoutineSchedule entity, + List referrerList) { + entity.setRoutineScheduleMappingList(referrerList); + } + + public RoutineScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoutineScheduleMappingCB cb, List pkList) { + cb.query().setScheduleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoutineScheduleMappingCB cb) { + cb.query().addOrderBy_ScheduleId_Asc(); + } + + public List callbackReferrer_selectList( + RoutineScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + RoutineScheduleMapping entity) { + return entity.getScheduleId(); + } + + public void callbackReferrer_setForeignEntity( + RoutineScheduleMapping referrerEntity, + RoutineSchedule baseEntity) { + referrerEntity.setRoutineSchedule(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of referrer-as-one table 'RoutineScheduleContent'. + * + * @param routineScheduleList The list of routineSchedule. (NotNull) + * @return The list of referrer-as-one table. (NotNull) + */ + public List pulloutRoutineScheduleContentAsOne( + List routineScheduleList) { + return helpPulloutInternally( + routineScheduleList, + new InternalPulloutCallback() { + public RoutineScheduleContent callbackGetForeignEntity( + RoutineSchedule entity) { + return entity.getRoutineScheduleContentAsOne(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param routineSchedule The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoutineSchedule routineSchedule) { + assertEntityNotNull(routineSchedule); + delegateInsert(routineSchedule); + } + + @Override + protected void doCreate(Entity routineSchedule) { + insert((RoutineSchedule) routineSchedule); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param routineSchedule The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoutineSchedule routineSchedule) { + helpUpdateInternally(routineSchedule, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(RoutineSchedule entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoutineSchedule) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param routineSchedule The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final RoutineSchedule routineSchedule) { + helpUpdateNonstrictInternally(routineSchedule, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + RoutineSchedule entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((RoutineSchedule) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param routineSchedule The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final RoutineSchedule routineSchedule) { + helpInsertOrUpdateInternally( + routineSchedule, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoutineSchedule entity) { + insert(entity); + } + + public void callbackUpdate(RoutineSchedule entity) { + update(entity); + } + + public RoutineScheduleCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoutineScheduleCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity routineSchedule) { + insertOrUpdate((RoutineSchedule) routineSchedule); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param routineSchedule The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(RoutineSchedule routineSchedule) { + helpInsertOrUpdateInternally(routineSchedule, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(RoutineSchedule entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(RoutineSchedule entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((RoutineSchedule) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param routineSchedule The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoutineSchedule routineSchedule) { + helpDeleteInternally(routineSchedule, + new InternalDeleteCallback() { + public int callbackDelegateDelete(RoutineSchedule entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity routineSchedule) { + delete((RoutineSchedule) routineSchedule); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param routineSchedule Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(RoutineSchedule routineSchedule) { + helpDeleteNonstrictInternally(routineSchedule, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + RoutineSchedule entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param routineSchedule Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(RoutineSchedule routineSchedule) { + helpDeleteNonstrictIgnoreDeletedInternally( + routineSchedule, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + RoutineSchedule entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List routineScheduleList) { + assertObjectNotNull("routineScheduleList", routineScheduleList); + return delegateInsertList(routineScheduleList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param routineScheduleList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List routineScheduleList) { + assertObjectNotNull("routineScheduleList", routineScheduleList); + return delegateUpdateList(routineScheduleList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List routineScheduleList) { + assertObjectNotNull("routineScheduleList", routineScheduleList); + return delegateUpdateListNonstrict(routineScheduleList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List routineScheduleList) { + assertObjectNotNull("routineScheduleList", routineScheduleList); + return delegateDeleteList(routineScheduleList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param routineScheduleList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List routineScheduleList) { + assertObjectNotNull("routineScheduleList", routineScheduleList); + return delegateDeleteListNonstrict(routineScheduleList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param routineSchedule Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoutineSchedule routineSchedule, RoutineScheduleCB cb) { + assertObjectNotNull("routineSchedule", routineSchedule); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(routineSchedule); + filterEntityOfUpdate(routineSchedule); + assertEntityOfUpdate(routineSchedule); + return getMyDao().updateByQuery(cb, routineSchedule); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoutineScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoutineScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(RoutineScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoutineSchedule e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoutineSchedule e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(RoutineSchedule e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(RoutineSchedule e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(RoutineSchedule e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("routineScheduleList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("routineScheduleList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("routineScheduleList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("routineScheduleList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("routineScheduleList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoutineSchedule downcast(Entity entity) { + return helpDowncastInternally(entity, RoutineSchedule.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,604 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleContentDbm; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; +import jp.sf.pal.scheduler.db.exdao.RoutineScheduleContentDao; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; + +/** + * The behavior of ROUTINE_SCHEDULE_CONTENT. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROUTINE_SCHEDULE
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     routineSchedule
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoutineScheduleContentBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleContentDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoutineScheduleContentDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoutineScheduleContentDbm getMyDBMeta() { + return RoutineScheduleContentDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoutineScheduleContentDao getMyDao() { + return _dao; + } + + public void setMyDao(RoutineScheduleContentDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoutineScheduleContent newMyEntity() { + return new RoutineScheduleContent(); + } + + public RoutineScheduleContentCB newMyConditionBean() { + return new RoutineScheduleContentCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoutineScheduleContent. (NotNull) + * @return The selected count. + */ + public int selectCount(RoutineScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoutineScheduleContent. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoutineScheduleContent selectEntity(final RoutineScheduleContentCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + RoutineScheduleContentCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoutineScheduleContent. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoutineScheduleContent selectEntityWithDeletedCheck( + final RoutineScheduleContentCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + RoutineScheduleContentCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoutineScheduleContent selectByPKValueWithDeletedCheck(Long id) { + RoutineScheduleContent entity = new RoutineScheduleContent(); + entity.setId(id); + final RoutineScheduleContentCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoutineScheduleContent. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + RoutineScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoutineScheduleContent. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final RoutineScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoutineScheduleContent. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoutineScheduleContentCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoutineSchedule'. + * + * @param routineScheduleContentList The list of routineScheduleContent. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoutineSchedule( + List routineScheduleContentList) { + return helpPulloutInternally( + routineScheduleContentList, + new InternalPulloutCallback() { + public RoutineSchedule callbackGetForeignEntity( + RoutineScheduleContent entity) { + return entity.getRoutineSchedule(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param routineScheduleContent The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoutineScheduleContent routineScheduleContent) { + assertEntityNotNull(routineScheduleContent); + delegateInsert(routineScheduleContent); + } + + @Override + protected void doCreate(Entity routineScheduleContent) { + insert((RoutineScheduleContent) routineScheduleContent); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param routineScheduleContent The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoutineScheduleContent routineScheduleContent) { + helpUpdateInternally(routineScheduleContent, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + RoutineScheduleContent entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoutineScheduleContent) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoutineScheduleContent) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param routineScheduleContent The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate( + final RoutineScheduleContent routineScheduleContent) { + helpInsertOrUpdateInternally( + routineScheduleContent, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoutineScheduleContent entity) { + insert(entity); + } + + public void callbackUpdate(RoutineScheduleContent entity) { + update(entity); + } + + public RoutineScheduleContentCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoutineScheduleContentCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity routineScheduleContent) { + insertOrUpdate((RoutineScheduleContent) routineScheduleContent); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoutineScheduleContent) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param routineScheduleContent The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoutineScheduleContent routineScheduleContent) { + helpDeleteInternally(routineScheduleContent, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + RoutineScheduleContent entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity routineScheduleContent) { + delete((RoutineScheduleContent) routineScheduleContent); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleContentList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert( + List routineScheduleContentList) { + assertObjectNotNull("routineScheduleContentList", + routineScheduleContentList); + return delegateInsertList(routineScheduleContentList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param routineScheduleContentList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate( + List routineScheduleContentList) { + assertObjectNotNull("routineScheduleContentList", + routineScheduleContentList); + return delegateUpdateList(routineScheduleContentList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleContentList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete( + List routineScheduleContentList) { + assertObjectNotNull("routineScheduleContentList", + routineScheduleContentList); + return delegateDeleteList(routineScheduleContentList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param routineScheduleContent Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoutineScheduleContent routineScheduleContent, + RoutineScheduleContentCB cb) { + assertObjectNotNull("routineScheduleContent", routineScheduleContent); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(routineScheduleContent); + filterEntityOfUpdate(routineScheduleContent); + assertEntityOfUpdate(routineScheduleContent); + return getMyDao().updateByQuery(cb, routineScheduleContent); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoutineScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoutineScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + RoutineScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoutineScheduleContent e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoutineScheduleContent e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoutineScheduleContent e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("routineScheduleContentList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("routineScheduleContentList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("routineScheduleContentList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoutineScheduleContent downcast(Entity entity) { + return helpDowncastInternally(entity, RoutineScheduleContent.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,624 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleMappingDbm; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.exdao.RoutineScheduleMappingDao; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of ROUTINE_SCHEDULE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, SCHEDULE_ID, USER_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROUTINE_SCHEDULE, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     routineSchedule, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsRoutineScheduleMappingBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return RoutineScheduleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public RoutineScheduleMappingDbm getMyDBMeta() { + return RoutineScheduleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public RoutineScheduleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(RoutineScheduleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public RoutineScheduleMapping newMyEntity() { + return new RoutineScheduleMapping(); + } + + public RoutineScheduleMappingCB newMyConditionBean() { + return new RoutineScheduleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(RoutineScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoutineScheduleMapping selectEntity(final RoutineScheduleMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + RoutineScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public RoutineScheduleMapping selectEntityWithDeletedCheck( + final RoutineScheduleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + RoutineScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public RoutineScheduleMapping selectByPKValueWithDeletedCheck(Long id) { + RoutineScheduleMapping entity = new RoutineScheduleMapping(); + entity.setId(id); + final RoutineScheduleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + RoutineScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final RoutineScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + RoutineScheduleMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'RoutineSchedule'. + * + * @param routineScheduleMappingList The list of routineScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoutineSchedule( + List routineScheduleMappingList) { + return helpPulloutInternally( + routineScheduleMappingList, + new InternalPulloutCallback() { + public RoutineSchedule callbackGetForeignEntity( + RoutineScheduleMapping entity) { + return entity.getRoutineSchedule(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param routineScheduleMappingList The list of routineScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo( + List routineScheduleMappingList) { + return helpPulloutInternally( + routineScheduleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + RoutineScheduleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param routineScheduleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(RoutineScheduleMapping routineScheduleMapping) { + assertEntityNotNull(routineScheduleMapping); + delegateInsert(routineScheduleMapping); + } + + @Override + protected void doCreate(Entity routineScheduleMapping) { + insert((RoutineScheduleMapping) routineScheduleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param routineScheduleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final RoutineScheduleMapping routineScheduleMapping) { + helpUpdateInternally(routineScheduleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + RoutineScheduleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((RoutineScheduleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((RoutineScheduleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param routineScheduleMapping The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate( + final RoutineScheduleMapping routineScheduleMapping) { + helpInsertOrUpdateInternally( + routineScheduleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(RoutineScheduleMapping entity) { + insert(entity); + } + + public void callbackUpdate(RoutineScheduleMapping entity) { + update(entity); + } + + public RoutineScheduleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(RoutineScheduleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity routineScheduleMapping) { + insertOrUpdate((RoutineScheduleMapping) routineScheduleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((RoutineScheduleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param routineScheduleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(RoutineScheduleMapping routineScheduleMapping) { + helpDeleteInternally(routineScheduleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + RoutineScheduleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity routineScheduleMapping) { + delete((RoutineScheduleMapping) routineScheduleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert( + List routineScheduleMappingList) { + assertObjectNotNull("routineScheduleMappingList", + routineScheduleMappingList); + return delegateInsertList(routineScheduleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param routineScheduleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate( + List routineScheduleMappingList) { + assertObjectNotNull("routineScheduleMappingList", + routineScheduleMappingList); + return delegateUpdateList(routineScheduleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param routineScheduleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete( + List routineScheduleMappingList) { + assertObjectNotNull("routineScheduleMappingList", + routineScheduleMappingList); + return delegateDeleteList(routineScheduleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param routineScheduleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(RoutineScheduleMapping routineScheduleMapping, + RoutineScheduleMappingCB cb) { + assertObjectNotNull("routineScheduleMapping", routineScheduleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(routineScheduleMapping); + filterEntityOfUpdate(routineScheduleMapping); + assertEntityOfUpdate(routineScheduleMapping); + return getMyDao().updateByQuery(cb, routineScheduleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(RoutineScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(RoutineScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + RoutineScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(RoutineScheduleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(RoutineScheduleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(RoutineScheduleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("routineScheduleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("routineScheduleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("routineScheduleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected RoutineScheduleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, RoutineScheduleMapping.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,839 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleDbm; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exdao.SingleScheduleDao; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; + +/** + * The behavior of SINGLE_SCHEDULE. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     SINGLE_SCHEDULE_CONTENT, SINGLE_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     singleScheduleContentAsOne
    + * 
    + * [referrer-property]
    + *     singleScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsSingleScheduleBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "SINGLE_SCHEDULE"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return SingleScheduleDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public SingleScheduleDbm getMyDBMeta() { + return SingleScheduleDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public SingleScheduleDao getMyDao() { + return _dao; + } + + public void setMyDao(SingleScheduleDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public SingleSchedule newMyEntity() { + return new SingleSchedule(); + } + + public SingleScheduleCB newMyConditionBean() { + return new SingleScheduleCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of SingleSchedule. (NotNull) + * @return The selected count. + */ + public int selectCount(SingleScheduleCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of SingleSchedule. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public SingleSchedule selectEntity(final SingleScheduleCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + SingleScheduleCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of SingleSchedule. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public SingleSchedule selectEntityWithDeletedCheck(final SingleScheduleCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + SingleScheduleCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public SingleSchedule selectByPKValueWithDeletedCheck(Long id) { + SingleSchedule entity = new SingleSchedule(); + entity.setId(id); + final SingleScheduleCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of SingleSchedule. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(SingleScheduleCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of SingleSchedule. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final SingleScheduleCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of SingleSchedule. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + SingleScheduleCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of singleScheduleMappingList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setScheduleId_InScope(pkList);
    +     * cb.query().addOrderBy_ScheduleId_Asc();
    +     * 
    + * + * @param singleScheduleList The entity list of singleSchedule. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadSingleScheduleMappingList( + List singleScheduleList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("singleScheduleList", + singleScheduleList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (singleScheduleList.isEmpty()) { + return; + } + loadSingleScheduleMappingList( + singleScheduleList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param singleScheduleList The entity list of singleSchedule. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadSingleScheduleMappingList( + List singleScheduleList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("singleScheduleList", + singleScheduleList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (singleScheduleList.isEmpty()) { + return; + } + final SingleScheduleMappingBhv referrerBhv = xgetBSFLR().select( + SingleScheduleMappingBhv.class); + helpLoadReferrerInternally( + singleScheduleList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue( + SingleSchedule entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + SingleSchedule entity, + List referrerList) { + entity.setSingleScheduleMappingList(referrerList); + } + + public SingleScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + SingleScheduleMappingCB cb, List pkList) { + cb.query().setScheduleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + SingleScheduleMappingCB cb) { + cb.query().addOrderBy_ScheduleId_Asc(); + } + + public List callbackReferrer_selectList( + SingleScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + SingleScheduleMapping entity) { + return entity.getScheduleId(); + } + + public void callbackReferrer_setForeignEntity( + SingleScheduleMapping referrerEntity, + SingleSchedule baseEntity) { + referrerEntity.setSingleSchedule(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of referrer-as-one table 'SingleScheduleContent'. + * + * @param singleScheduleList The list of singleSchedule. (NotNull) + * @return The list of referrer-as-one table. (NotNull) + */ + public List pulloutSingleScheduleContentAsOne( + List singleScheduleList) { + return helpPulloutInternally( + singleScheduleList, + new InternalPulloutCallback() { + public SingleScheduleContent callbackGetForeignEntity( + SingleSchedule entity) { + return entity.getSingleScheduleContentAsOne(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param singleSchedule The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(SingleSchedule singleSchedule) { + assertEntityNotNull(singleSchedule); + delegateInsert(singleSchedule); + } + + @Override + protected void doCreate(Entity singleSchedule) { + insert((SingleSchedule) singleSchedule); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param singleSchedule The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final SingleSchedule singleSchedule) { + helpUpdateInternally(singleSchedule, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(SingleSchedule entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((SingleSchedule) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param singleSchedule The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final SingleSchedule singleSchedule) { + helpUpdateNonstrictInternally(singleSchedule, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + SingleSchedule entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((SingleSchedule) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param singleSchedule The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final SingleSchedule singleSchedule) { + helpInsertOrUpdateInternally( + singleSchedule, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(SingleSchedule entity) { + insert(entity); + } + + public void callbackUpdate(SingleSchedule entity) { + update(entity); + } + + public SingleScheduleCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(SingleScheduleCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity singleSchedule) { + insertOrUpdate((SingleSchedule) singleSchedule); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param singleSchedule The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(SingleSchedule singleSchedule) { + helpInsertOrUpdateInternally(singleSchedule, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(SingleSchedule entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(SingleSchedule entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((SingleSchedule) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param singleSchedule The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(SingleSchedule singleSchedule) { + helpDeleteInternally(singleSchedule, + new InternalDeleteCallback() { + public int callbackDelegateDelete(SingleSchedule entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity singleSchedule) { + delete((SingleSchedule) singleSchedule); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param singleSchedule Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(SingleSchedule singleSchedule) { + helpDeleteNonstrictInternally(singleSchedule, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + SingleSchedule entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param singleSchedule Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(SingleSchedule singleSchedule) { + helpDeleteNonstrictIgnoreDeletedInternally( + singleSchedule, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + SingleSchedule entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List singleScheduleList) { + assertObjectNotNull("singleScheduleList", singleScheduleList); + return delegateInsertList(singleScheduleList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param singleScheduleList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List singleScheduleList) { + assertObjectNotNull("singleScheduleList", singleScheduleList); + return delegateUpdateList(singleScheduleList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List singleScheduleList) { + assertObjectNotNull("singleScheduleList", singleScheduleList); + return delegateUpdateListNonstrict(singleScheduleList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List singleScheduleList) { + assertObjectNotNull("singleScheduleList", singleScheduleList); + return delegateDeleteList(singleScheduleList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param singleScheduleList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List singleScheduleList) { + assertObjectNotNull("singleScheduleList", singleScheduleList); + return delegateDeleteListNonstrict(singleScheduleList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param singleSchedule Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(SingleSchedule singleSchedule, SingleScheduleCB cb) { + assertObjectNotNull("singleSchedule", singleSchedule); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(singleSchedule); + filterEntityOfUpdate(singleSchedule); + assertEntityOfUpdate(singleSchedule); + return getMyDao().updateByQuery(cb, singleSchedule); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(SingleScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(SingleScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(SingleScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(SingleSchedule e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(SingleSchedule e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(SingleSchedule e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(SingleSchedule e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(SingleSchedule e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("singleScheduleList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("singleScheduleList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("singleScheduleList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("singleScheduleList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("singleScheduleList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected SingleSchedule downcast(Entity entity) { + return helpDowncastInternally(entity, SingleSchedule.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,603 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleContentDbm; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; +import jp.sf.pal.scheduler.db.exdao.SingleScheduleContentDao; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; + +/** + * The behavior of SINGLE_SCHEDULE_CONTENT. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     SINGLE_SCHEDULE
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     singleSchedule
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsSingleScheduleContentBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleContentDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return SingleScheduleContentDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public SingleScheduleContentDbm getMyDBMeta() { + return SingleScheduleContentDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public SingleScheduleContentDao getMyDao() { + return _dao; + } + + public void setMyDao(SingleScheduleContentDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public SingleScheduleContent newMyEntity() { + return new SingleScheduleContent(); + } + + public SingleScheduleContentCB newMyConditionBean() { + return new SingleScheduleContentCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of SingleScheduleContent. (NotNull) + * @return The selected count. + */ + public int selectCount(SingleScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of SingleScheduleContent. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public SingleScheduleContent selectEntity(final SingleScheduleContentCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + SingleScheduleContentCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of SingleScheduleContent. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public SingleScheduleContent selectEntityWithDeletedCheck( + final SingleScheduleContentCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + SingleScheduleContentCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public SingleScheduleContent selectByPKValueWithDeletedCheck(Long id) { + SingleScheduleContent entity = new SingleScheduleContent(); + entity.setId(id); + final SingleScheduleContentCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of SingleScheduleContent. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + SingleScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of SingleScheduleContent. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final SingleScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of SingleScheduleContent. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + SingleScheduleContentCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'SingleSchedule'. + * + * @param singleScheduleContentList The list of singleScheduleContent. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutSingleSchedule( + List singleScheduleContentList) { + return helpPulloutInternally( + singleScheduleContentList, + new InternalPulloutCallback() { + public SingleSchedule callbackGetForeignEntity( + SingleScheduleContent entity) { + return entity.getSingleSchedule(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param singleScheduleContent The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(SingleScheduleContent singleScheduleContent) { + assertEntityNotNull(singleScheduleContent); + delegateInsert(singleScheduleContent); + } + + @Override + protected void doCreate(Entity singleScheduleContent) { + insert((SingleScheduleContent) singleScheduleContent); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param singleScheduleContent The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final SingleScheduleContent singleScheduleContent) { + helpUpdateInternally(singleScheduleContent, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + SingleScheduleContent entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((SingleScheduleContent) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((SingleScheduleContent) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param singleScheduleContent The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final SingleScheduleContent singleScheduleContent) { + helpInsertOrUpdateInternally( + singleScheduleContent, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(SingleScheduleContent entity) { + insert(entity); + } + + public void callbackUpdate(SingleScheduleContent entity) { + update(entity); + } + + public SingleScheduleContentCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(SingleScheduleContentCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity singleScheduleContent) { + insertOrUpdate((SingleScheduleContent) singleScheduleContent); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((SingleScheduleContent) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param singleScheduleContent The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(SingleScheduleContent singleScheduleContent) { + helpDeleteInternally(singleScheduleContent, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + SingleScheduleContent entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity singleScheduleContent) { + delete((SingleScheduleContent) singleScheduleContent); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleContentList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert( + List singleScheduleContentList) { + assertObjectNotNull("singleScheduleContentList", + singleScheduleContentList); + return delegateInsertList(singleScheduleContentList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param singleScheduleContentList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate( + List singleScheduleContentList) { + assertObjectNotNull("singleScheduleContentList", + singleScheduleContentList); + return delegateUpdateList(singleScheduleContentList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleContentList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete( + List singleScheduleContentList) { + assertObjectNotNull("singleScheduleContentList", + singleScheduleContentList); + return delegateDeleteList(singleScheduleContentList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param singleScheduleContent Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(SingleScheduleContent singleScheduleContent, + SingleScheduleContentCB cb) { + assertObjectNotNull("singleScheduleContent", singleScheduleContent); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(singleScheduleContent); + filterEntityOfUpdate(singleScheduleContent); + assertEntityOfUpdate(singleScheduleContent); + return getMyDao().updateByQuery(cb, singleScheduleContent); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(SingleScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(SingleScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + SingleScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(SingleScheduleContent e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(SingleScheduleContent e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(SingleScheduleContent e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("singleScheduleContentList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("singleScheduleContentList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("singleScheduleContentList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected SingleScheduleContent downcast(Entity entity) { + return helpDowncastInternally(entity, SingleScheduleContent.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,622 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleMappingDbm; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.exdao.SingleScheduleMappingDao; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of SINGLE_SCHEDULE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, SCHEDULE_ID, USER_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     SINGLE_SCHEDULE, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     singleSchedule, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsSingleScheduleMappingBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return SingleScheduleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public SingleScheduleMappingDbm getMyDBMeta() { + return SingleScheduleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public SingleScheduleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(SingleScheduleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public SingleScheduleMapping newMyEntity() { + return new SingleScheduleMapping(); + } + + public SingleScheduleMappingCB newMyConditionBean() { + return new SingleScheduleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of SingleScheduleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(SingleScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of SingleScheduleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public SingleScheduleMapping selectEntity(final SingleScheduleMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + SingleScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of SingleScheduleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public SingleScheduleMapping selectEntityWithDeletedCheck( + final SingleScheduleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + SingleScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public SingleScheduleMapping selectByPKValueWithDeletedCheck(Long id) { + SingleScheduleMapping entity = new SingleScheduleMapping(); + entity.setId(id); + final SingleScheduleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of SingleScheduleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + SingleScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of SingleScheduleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final SingleScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of SingleScheduleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + SingleScheduleMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'SingleSchedule'. + * + * @param singleScheduleMappingList The list of singleScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutSingleSchedule( + List singleScheduleMappingList) { + return helpPulloutInternally( + singleScheduleMappingList, + new InternalPulloutCallback() { + public SingleSchedule callbackGetForeignEntity( + SingleScheduleMapping entity) { + return entity.getSingleSchedule(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param singleScheduleMappingList The list of singleScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo( + List singleScheduleMappingList) { + return helpPulloutInternally(singleScheduleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + SingleScheduleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param singleScheduleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(SingleScheduleMapping singleScheduleMapping) { + assertEntityNotNull(singleScheduleMapping); + delegateInsert(singleScheduleMapping); + } + + @Override + protected void doCreate(Entity singleScheduleMapping) { + insert((SingleScheduleMapping) singleScheduleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param singleScheduleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final SingleScheduleMapping singleScheduleMapping) { + helpUpdateInternally(singleScheduleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + SingleScheduleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((SingleScheduleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((SingleScheduleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param singleScheduleMapping The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final SingleScheduleMapping singleScheduleMapping) { + helpInsertOrUpdateInternally( + singleScheduleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(SingleScheduleMapping entity) { + insert(entity); + } + + public void callbackUpdate(SingleScheduleMapping entity) { + update(entity); + } + + public SingleScheduleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(SingleScheduleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity singleScheduleMapping) { + insertOrUpdate((SingleScheduleMapping) singleScheduleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((SingleScheduleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param singleScheduleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(SingleScheduleMapping singleScheduleMapping) { + helpDeleteInternally(singleScheduleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + SingleScheduleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity singleScheduleMapping) { + delete((SingleScheduleMapping) singleScheduleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert( + List singleScheduleMappingList) { + assertObjectNotNull("singleScheduleMappingList", + singleScheduleMappingList); + return delegateInsertList(singleScheduleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param singleScheduleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate( + List singleScheduleMappingList) { + assertObjectNotNull("singleScheduleMappingList", + singleScheduleMappingList); + return delegateUpdateList(singleScheduleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param singleScheduleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete( + List singleScheduleMappingList) { + assertObjectNotNull("singleScheduleMappingList", + singleScheduleMappingList); + return delegateDeleteList(singleScheduleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param singleScheduleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(SingleScheduleMapping singleScheduleMapping, + SingleScheduleMappingCB cb) { + assertObjectNotNull("singleScheduleMapping", singleScheduleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(singleScheduleMapping); + filterEntityOfUpdate(singleScheduleMapping); + assertEntityOfUpdate(singleScheduleMapping); + return getMyDao().updateByQuery(cb, singleScheduleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(SingleScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(SingleScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + SingleScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(SingleScheduleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(SingleScheduleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(SingleScheduleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("singleScheduleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("singleScheduleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("singleScheduleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected SingleScheduleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, SingleScheduleMapping.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1124 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exbhv.GroupMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.RoleMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exdao.UserInfoDao; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of USER_INFO. + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING, ROUTINE_SCHEDULE_MAPPING, SINGLE_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList, routineScheduleMappingList, singleScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsUserInfoBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return UserInfoDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public UserInfoDbm getMyDBMeta() { + return UserInfoDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public UserInfoDao getMyDao() { + return _dao; + } + + public void setMyDao(UserInfoDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + public UserInfoCB newMyConditionBean() { + return new UserInfoCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected count. + */ + public int selectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntity(final UserInfoCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public UserInfo selectEntityWithDeletedCheck(final UserInfoCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(UserInfoCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public UserInfo selectByPKValueWithDeletedCheck(String userId) { + UserInfo entity = new UserInfo(); + entity.setUserId(userId); + final UserInfoCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final UserInfoCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of UserInfo. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + UserInfoCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of groupMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadGroupMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setGroupMappingList(referrerList); + } + + public GroupMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + GroupMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + GroupMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + GroupMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + GroupMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + GroupMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoleMappingList(userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoleMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoleMappingBhv referrerBhv = xgetBSFLR().select( + RoleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoleMappingList(referrerList); + } + + public RoleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoleMapping referrerEntity, UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of routineScheduleMappingList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadRoutineScheduleMappingList( + List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadRoutineScheduleMappingList( + userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadRoutineScheduleMappingList( + List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final RoutineScheduleMappingBhv referrerBhv = xgetBSFLR().select( + RoutineScheduleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setRoutineScheduleMappingList(referrerList); + } + + public RoutineScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + RoutineScheduleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + RoutineScheduleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + RoutineScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + RoutineScheduleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + RoutineScheduleMapping referrerEntity, + UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + /** + * Load referrer of singleScheduleMappingList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setUserId_InScope(pkList);
    +     * cb.query().addOrderBy_UserId_Asc();
    +     * 
    + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadSingleScheduleMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (userInfoList.isEmpty()) { + return; + } + loadSingleScheduleMappingList( + userInfoList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param userInfoList The entity list of userInfo. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadSingleScheduleMappingList( + List userInfoList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("userInfoList", userInfoList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (userInfoList.isEmpty()) { + return; + } + final SingleScheduleMappingBhv referrerBhv = xgetBSFLR().select( + SingleScheduleMappingBhv.class); + helpLoadReferrerInternally( + userInfoList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public String callbackBase_getPrimaryKeyValue( + UserInfo entity) { + return entity.getUserId(); + } + + public void callbackBase_setReferrerList(UserInfo entity, + List referrerList) { + entity.setSingleScheduleMappingList(referrerList); + } + + public SingleScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + SingleScheduleMappingCB cb, List pkList) { + cb.query().setUserId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + SingleScheduleMappingCB cb) { + cb.query().addOrderBy_UserId_Asc(); + } + + public List callbackReferrer_selectList( + SingleScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public String callbackReferrer_getForeignKeyValue( + SingleScheduleMapping entity) { + return entity.getUserId(); + } + + public void callbackReferrer_setForeignEntity( + SingleScheduleMapping referrerEntity, + UserInfo baseEntity) { + referrerEntity.setUserInfo(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'GroupInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutGroupInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public GroupInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getGroupInfo(); + } + }); + } + + /** + * Pull out the list of foreign table 'RoleInfo'. + * + * @param userInfoList The list of userInfo. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutRoleInfo(List userInfoList) { + return helpPulloutInternally(userInfoList, + new InternalPulloutCallback() { + public RoleInfo callbackGetForeignEntity(UserInfo entity) { + return entity.getRoleInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param userInfo The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(UserInfo userInfo) { + assertEntityNotNull(userInfo); + delegateInsert(userInfo); + } + + @Override + protected void doCreate(Entity userInfo) { + insert((UserInfo) userInfo); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final UserInfo userInfo) { + helpUpdateInternally(userInfo, new InternalUpdateCallback() { + public int callbackDelegateUpdate(UserInfo entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((UserInfo) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final UserInfo userInfo) { + helpUpdateNonstrictInternally(userInfo, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(UserInfo entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((UserInfo) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdate(UserInfo entity) { + update(entity); + } + + public UserInfoCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(UserInfoCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity userInfo) { + insertOrUpdate((UserInfo) userInfo); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param userInfo The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(UserInfo userInfo) { + helpInsertOrUpdateInternally(userInfo, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(UserInfo entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(UserInfo entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((UserInfo) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param userInfo The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(UserInfo userInfo) { + helpDeleteInternally(userInfo, new InternalDeleteCallback() { + public int callbackDelegateDelete(UserInfo entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity userInfo) { + delete((UserInfo) userInfo); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(UserInfo userInfo) { + helpDeleteNonstrictInternally(userInfo, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(UserInfo userInfo) { + helpDeleteNonstrictIgnoreDeletedInternally(userInfo, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(UserInfo entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateInsertList(userInfoList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateList(userInfoList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateUpdateListNonstrict(userInfoList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteList(userInfoList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param userInfoList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List userInfoList) { + assertObjectNotNull("userInfoList", userInfoList); + return delegateDeleteListNonstrict(userInfoList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param userInfo Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(UserInfo userInfo, UserInfoCB cb) { + assertObjectNotNull("userInfo", userInfo); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(userInfo); + filterEntityOfUpdate(userInfo); + assertEntityOfUpdate(userInfo); + return getMyDao().updateByQuery(cb, userInfo); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(UserInfoCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(UserInfo e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(UserInfo e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(UserInfo e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("userInfoList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected UserInfo downcast(Entity entity) { + return helpDowncastInternally(entity, UserInfo.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupInfoDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupInfoDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupInfoDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; + +/** + * The DAO interface of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupInfoDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = GroupInfo.class; // For S2Dao + + public int selectCount(GroupInfoCB cb); + + public List selectList(GroupInfoCB cb); + + int insert(GroupInfo entity); + + int updateModifiedOnly(GroupInfo entity); + + int updateNonstrictModifiedOnly(GroupInfo entity); + + int delete(GroupInfo entity); + + int deleteNonstrict(GroupInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(GroupInfoCB cb, GroupInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(GroupInfoCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; + +/** + * The DAO interface of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsGroupMappingDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = GroupMapping.class; // For S2Dao + + public int selectCount(GroupMappingCB cb); + + public List selectList(GroupMappingCB cb); + + int insert(GroupMapping entity); + + int updateModifiedOnly(GroupMapping entity); + + int delete(GroupMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(GroupMappingCB cb, GroupMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(GroupMappingCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsGroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleInfoDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleInfoDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleInfoDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; + +/** + * The DAO interface of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleInfoDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = RoleInfo.class; // For S2Dao + + public int selectCount(RoleInfoCB cb); + + public List selectList(RoleInfoCB cb); + + int insert(RoleInfo entity); + + int updateModifiedOnly(RoleInfo entity); + + int updateNonstrictModifiedOnly(RoleInfo entity); + + int delete(RoleInfo entity); + + int deleteNonstrict(RoleInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoleInfoCB cb, RoleInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoleInfoCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; + +/** + * The DAO interface of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoleMappingDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = RoleMapping.class; // For S2Dao + + public int selectCount(RoleMappingCB cb); + + public List selectList(RoleMappingCB cb); + + int insert(RoleMapping entity); + + int updateModifiedOnly(RoleMapping entity); + + int delete(RoleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoleMappingCB cb, RoleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoleMappingCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; + +/** + * The DAO interface of ROUTINE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoutineScheduleContentDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = RoutineScheduleContent.class; // For S2Dao + + public int selectCount(RoutineScheduleContentCB cb); + + public List selectList(RoutineScheduleContentCB cb); + + int insert(RoutineScheduleContent entity); + + int updateModifiedOnly(RoutineScheduleContent entity); + + int delete(RoutineScheduleContent entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoutineScheduleContentCB cb, RoutineScheduleContent entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoutineScheduleContentCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; + +/** + * The DAO interface of ROUTINE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoutineScheduleDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = RoutineSchedule.class; // For S2Dao + + public int selectCount(RoutineScheduleCB cb); + + public List selectList(RoutineScheduleCB cb); + + int insert(RoutineSchedule entity); + + int updateModifiedOnly(RoutineSchedule entity); + + int updateNonstrictModifiedOnly(RoutineSchedule entity); + + int delete(RoutineSchedule entity); + + int deleteNonstrict(RoutineSchedule entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(RoutineScheduleCB cb, RoutineSchedule entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(RoutineScheduleCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; + +/** + * The DAO interface of ROUTINE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsRoutineScheduleMappingDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = RoutineScheduleMapping.class; // For S2Dao + + public int selectCount(RoutineScheduleMappingCB cb); + + public List selectList(RoutineScheduleMappingCB cb); + + int insert(RoutineScheduleMapping entity); + + int updateModifiedOnly(RoutineScheduleMapping entity); + + int delete(RoutineScheduleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(RoutineScheduleMappingCB cb, RoutineScheduleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(RoutineScheduleMappingCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; + +/** + * The DAO interface of SINGLE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsSingleScheduleContentDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = SingleScheduleContent.class; // For S2Dao + + public int selectCount(SingleScheduleContentCB cb); + + public List selectList(SingleScheduleContentCB cb); + + int insert(SingleScheduleContent entity); + + int updateModifiedOnly(SingleScheduleContent entity); + + int delete(SingleScheduleContent entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(SingleScheduleContentCB cb, SingleScheduleContent entity); + + int[] deleteList(List entityList); + + int deleteByQuery(SingleScheduleContentCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; + +/** + * The DAO interface of SINGLE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsSingleScheduleDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = SingleSchedule.class; // For S2Dao + + public int selectCount(SingleScheduleCB cb); + + public List selectList(SingleScheduleCB cb); + + int insert(SingleSchedule entity); + + int updateModifiedOnly(SingleSchedule entity); + + int updateNonstrictModifiedOnly(SingleSchedule entity); + + int delete(SingleSchedule entity); + + int deleteNonstrict(SingleSchedule entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(SingleScheduleCB cb, SingleSchedule entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(SingleScheduleCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; + +/** + * The DAO interface of SINGLE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsSingleScheduleMappingDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = SingleScheduleMapping.class; // For S2Dao + + public int selectCount(SingleScheduleMappingCB cb); + + public List selectList(SingleScheduleMappingCB cb); + + int insert(SingleScheduleMapping entity); + + int updateModifiedOnly(SingleScheduleMapping entity); + + int delete(SingleScheduleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(SingleScheduleMappingCB cb, SingleScheduleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(SingleScheduleMappingCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsUserInfoDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsUserInfoDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsUserInfoDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The DAO interface of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsUserInfoDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = UserInfo.class; // For S2Dao + + public int selectCount(UserInfoCB cb); + + public List selectList(UserInfoCB cb); + + int insert(UserInfo entity); + + int updateModifiedOnly(UserInfo entity); + + int updateNonstrictModifiedOnly(UserInfo entity); + + int delete(UserInfo entity); + + int deleteNonstrict(UserInfo entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(UserInfoCB cb, UserInfo entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(UserInfoCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsUserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,611 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of GROUP_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     GROUP_ID
    + * 
    + * [column]
    + *     GROUP_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     groupMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_INFO. */ + public static final String TABLE = "GROUP_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** GROUP_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _groupId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_groupId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupInfo)) { + return false; + } + BsGroupInfo otherEntity = (BsGroupInfo) other; + if (!helpComparingValue(getGroupId(), otherEntity.getGroupId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getGroupId() != null) { + result = result + getGroupId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,356 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of GROUP_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, GROUP_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     groupInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsGroupMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is GROUP_MAPPING. */ + public static final String TABLE = "GROUP_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "groupMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsGroupMapping)) { + return false; + } + BsGroupMapping otherEntity = (BsGroupMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGroupId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * GROUP_INFO} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsGroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,611 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of ROLE_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ROLE_ID
    + * 
    + * [column]
    + *     ROLE_ID, NAME, DESCRIPTION, EMAIL, URL, TELEPHONE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROLE_MAPPING, USER_INFO
    + * 
    + * [foreign-property]
    + *     
    + * 
    + * [referrer-property]
    + *     roleMappingList, userInfoList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_INFO. */ + public static final String TABLE = "ROLE_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ROLE_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _roleId; + + /** NAME: {VARCHAR(100)} */ + protected String _name; + + /** DESCRIPTION: {VARCHAR(255)} */ + protected String _description; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [userInfoList] + // * * * * * * * * */ + /** USER_INFO as 'userInfoList'. */ + protected List _childrenUserInfoList; + + /** + * USER_INFO as 'userInfoList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'userInfoList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getUserInfoList() { + if (_childrenUserInfoList == null) { + _childrenUserInfoList = new ArrayList(); + } + return _childrenUserInfoList; + } + + /** + * USER_INFO as 'userInfoList'. + * + * @param userInfoList The entity list of referrer property 'userInfoList'. + * (Nullable) + */ + public void setUserInfoList(List userInfoList) { + _childrenUserInfoList = userInfoList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_roleId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleInfo)) { + return false; + } + BsRoleInfo otherEntity = (BsRoleInfo) other; + if (!helpComparingValue(getRoleId(), otherEntity.getRoleId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getRoleId() != null) { + result = result + getRoleId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getDescription()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {VARCHAR(100)}
    + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String description_COLUMN = "DESCRIPTION"; + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @return The value of the column 'DESCRIPTION'. (Nullable) + */ + public String getDescription() { + return _description; + } + + /** + * DESCRIPTION: {VARCHAR(255)}
    + * + * @param description The value of the column 'DESCRIPTION'. (Nullable) + */ + public void setDescription(String description) { + _modifiedProperties.addPropertyName("description"); + this._description = description; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,356 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of ROLE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, USER_ID, ROLE_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROLE_INFO, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     roleInfo, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoleMapping implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROLE_MAPPING. */ + public static final String TABLE = "ROLE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + /** ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "roleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 0; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoleMapping)) { + return false; + } + BsRoleMapping otherEntity = (BsRoleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getRoleId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * ROLE_INFO} + */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {NotNull : VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,673 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; + +/** + * The entity of ROUTINE_SCHEDULE that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     ROUTINE_SCHEDULE_CONTENT, ROUTINE_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     routineScheduleContentAsOne
    + * 
    + * [referrer-property]
    + *     routineScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoutineSchedule implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROUTINE_SCHEDULE. */ + public static final String TABLE = "ROUTINE_SCHEDULE"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** TITLE: {NotNull : VARCHAR(100)} */ + protected String _title; + + /** LOCATION: {VARCHAR(100)} */ + protected String _location; + + /** START_DATE: {NotNull : DATE} */ + protected java.util.Date _startDate; + + /** START_TIME: {TIME} */ + protected java.sql.Time _startTime; + + /** END_DATE: {DATE} */ + protected java.util.Date _endDate; + + /** END_TIME: {TIME} */ + protected java.sql.Time _endTime; + + /** TYPE: {NotNull : VARCHAR(10)} */ + protected String _type; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoutineSchedule() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "routineSchedule"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [routineScheduleContentAsOne] + // * * * * * * * * */ + public static final int routineScheduleContentAsOne_RELNO = 0; + + public static final String routineScheduleContentAsOne_RELKEYS = "ID:ID"; + + /** ROUTINE_SCHEDULE_CONTENT as 'routineScheduleContentAsOne'. */ + protected RoutineScheduleContent _childrenroutineScheduleContentAsOne; + + /** + * ROUTINE_SCHEDULE_CONTENT as 'routineScheduleContentAsOne'. {without + * lazy-load}
    + * + * @return the entity of foreign property(referrer-as-one) + * 'routineScheduleContentAsOne'. (Nullable: If the foreign key does + * not have 'NotNull' constraint, please check null.) + */ + public RoutineScheduleContent getRoutineScheduleContentAsOne() { + return _childrenroutineScheduleContentAsOne; + } + + /** + * ROUTINE_SCHEDULE_CONTENT as 'routineScheduleContentAsOne'. + * + * @param routineScheduleContentAsOne The entity of foreign + * property(referrer-as-one) 'routineScheduleContentAsOne'. + * (Nullable) + */ + public void setRoutineScheduleContentAsOne( + RoutineScheduleContent routineScheduleContentAsOne) { + _childrenroutineScheduleContentAsOne = routineScheduleContentAsOne; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [routineScheduleMappingList] + // * * * * * * * * */ + /** ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. */ + protected List _childrenRoutineScheduleMappingList; + + /** + * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. {without + * lazy-load}
    + * + * @return The entity list of referrer property + * 'routineScheduleMappingList'. (NotNull: If it's not loaded yet, + * initializes the list instance of referrer as empty and returns + * it.) + */ + public List getRoutineScheduleMappingList() { + if (_childrenRoutineScheduleMappingList == null) { + _childrenRoutineScheduleMappingList = new ArrayList(); + } + return _childrenRoutineScheduleMappingList; + } + + /** + * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. + * + * @param routineScheduleMappingList The entity list of referrer property + * 'routineScheduleMappingList'. (Nullable) + */ + public void setRoutineScheduleMappingList( + List routineScheduleMappingList) { + _childrenRoutineScheduleMappingList = routineScheduleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoutineSchedule)) { + return false; + } + BsRoutineSchedule otherEntity = (BsRoutineSchedule) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getTitle()); + sb.append(delimiter).append(getLocation()); + sb.append(delimiter).append(getStartDate()); + sb.append(delimiter).append(getStartTime()); + sb.append(delimiter).append(getEndDate()); + sb.append(delimiter).append(getEndTime()); + sb.append(delimiter).append(getType()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String title_COLUMN = "TITLE"; + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'TITLE'. (Nullable) + */ + public String getTitle() { + return _title; + } + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @param title The value of the column 'TITLE'. (Nullable) + */ + public void setTitle(String title) { + _modifiedProperties.addPropertyName("title"); + this._title = title; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String location_COLUMN = "LOCATION"; + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @return The value of the column 'LOCATION'. (Nullable) + */ + public String getLocation() { + return _location; + } + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @param location The value of the column 'LOCATION'. (Nullable) + */ + public void setLocation(String location) { + _modifiedProperties.addPropertyName("location"); + this._location = location; + } + + /** The column annotation for S2Dao. {NotNull : DATE} */ + public static final String startDate_COLUMN = "START_DATE"; + + /** + * START_DATE: {NotNull : DATE}
    + * + * @return The value of the column 'START_DATE'. (Nullable) + */ + public java.util.Date getStartDate() { + return _startDate; + } + + /** + * START_DATE: {NotNull : DATE}
    + * + * @param startDate The value of the column 'START_DATE'. (Nullable) + */ + public void setStartDate(java.util.Date startDate) { + _modifiedProperties.addPropertyName("startDate"); + this._startDate = startDate; + } + + /** The column annotation for S2Dao. {TIME} */ + public static final String startTime_COLUMN = "START_TIME"; + + /** + * START_TIME: {TIME}
    + * + * @return The value of the column 'START_TIME'. (Nullable) + */ + public java.sql.Time getStartTime() { + return _startTime; + } + + /** + * START_TIME: {TIME}
    + * + * @param startTime The value of the column 'START_TIME'. (Nullable) + */ + public void setStartTime(java.sql.Time startTime) { + _modifiedProperties.addPropertyName("startTime"); + this._startTime = startTime; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String endDate_COLUMN = "END_DATE"; + + /** + * END_DATE: {DATE}
    + * + * @return The value of the column 'END_DATE'. (Nullable) + */ + public java.util.Date getEndDate() { + return _endDate; + } + + /** + * END_DATE: {DATE}
    + * + * @param endDate The value of the column 'END_DATE'. (Nullable) + */ + public void setEndDate(java.util.Date endDate) { + _modifiedProperties.addPropertyName("endDate"); + this._endDate = endDate; + } + + /** The column annotation for S2Dao. {TIME} */ + public static final String endTime_COLUMN = "END_TIME"; + + /** + * END_TIME: {TIME}
    + * + * @return The value of the column 'END_TIME'. (Nullable) + */ + public java.sql.Time getEndTime() { + return _endTime; + } + + /** + * END_TIME: {TIME}
    + * + * @param endTime The value of the column 'END_TIME'. (Nullable) + */ + public void setEndTime(java.sql.Time endTime) { + _modifiedProperties.addPropertyName("endTime"); + this._endTime = endTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(10)} */ + public static final String type_COLUMN = "TYPE"; + + /** + * TYPE: {NotNull : VARCHAR(10)}
    + * + * @return The value of the column 'TYPE'. (Nullable) + */ + public String getType() { + return _type; + } + + /** + * TYPE: {NotNull : VARCHAR(10)}
    + * + * @param type The value of the column 'TYPE'. (Nullable) + */ + public void setType(String type) { + _modifiedProperties.addPropertyName("type"); + this._type = type; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,295 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; + +/** + * The entity of ROUTINE_SCHEDULE_CONTENT that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROUTINE_SCHEDULE
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     routineSchedule
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoutineScheduleContent implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROUTINE_SCHEDULE_CONTENT. */ + public static final String TABLE = "ROUTINE_SCHEDULE_CONTENT"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : NotNull : BIGINT : FK to ROUTINE_SCHEDULE} */ + protected Long _id; + + /** CONTENT: {VARCHAR(1000)} */ + protected String _content; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoutineScheduleContent() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "routineScheduleContent"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [routineSchedule] + // * * * * * * * * */ + public static final int routineSchedule_RELNO = 0; + + public static final String routineSchedule_RELKEYS = "ID:ID"; + + /** ROUTINE_SCHEDULE as 'routineSchedule'. */ + protected RoutineSchedule _parentRoutineSchedule; + + /** + * ROUTINE_SCHEDULE as 'routineSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'routineSchedule'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoutineSchedule getRoutineSchedule() { + return _parentRoutineSchedule; + } + + /** + * ROUTINE_SCHEDULE as 'routineSchedule'. + * + * @param routineSchedule The entity of foreign property 'routineSchedule'. + * (Nullable) + */ + public void setRoutineSchedule(RoutineSchedule routineSchedule) { + _parentRoutineSchedule = routineSchedule; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoutineScheduleContent)) { + return false; + } + BsRoutineScheduleContent otherEntity = (BsRoutineScheduleContent) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getContent()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** + * The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to + * ROUTINE_SCHEDULE} + */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(1000)} */ + public static final String content_COLUMN = "CONTENT"; + + /** + * CONTENT: {VARCHAR(1000)}
    + * + * @return The value of the column 'CONTENT'. (Nullable) + */ + public String getContent() { + return _content; + } + + /** + * CONTENT: {VARCHAR(1000)}
    + * + * @param content The value of the column 'CONTENT'. (Nullable) + */ + public void setContent(String content) { + _modifiedProperties.addPropertyName("content"); + this._content = content; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,358 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of ROUTINE_SCHEDULE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, SCHEDULE_ID, USER_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     ROUTINE_SCHEDULE, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     routineSchedule, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsRoutineScheduleMapping implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is ROUTINE_SCHEDULE_MAPPING. */ + public static final String TABLE = "ROUTINE_SCHEDULE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** SCHEDULE_ID: {NotNull : BIGINT : FK to ROUTINE_SCHEDULE} */ + protected Long _scheduleId; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoutineScheduleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "routineScheduleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [routineSchedule] + // * * * * * * * * */ + public static final int routineSchedule_RELNO = 0; + + public static final String routineSchedule_RELKEYS = "SCHEDULE_ID:ID"; + + /** ROUTINE_SCHEDULE as 'routineSchedule'. */ + protected RoutineSchedule _parentRoutineSchedule; + + /** + * ROUTINE_SCHEDULE as 'routineSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'routineSchedule'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoutineSchedule getRoutineSchedule() { + return _parentRoutineSchedule; + } + + /** + * ROUTINE_SCHEDULE as 'routineSchedule'. + * + * @param routineSchedule The entity of foreign property 'routineSchedule'. + * (Nullable) + */ + public void setRoutineSchedule(RoutineSchedule routineSchedule) { + _parentRoutineSchedule = routineSchedule; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsRoutineScheduleMapping)) { + return false; + } + BsRoutineScheduleMapping otherEntity = (BsRoutineScheduleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getScheduleId()); + sb.append(delimiter).append(getUserId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : BIGINT : FK to + * ROUTINE_SCHEDULE} + */ + public static final String scheduleId_COLUMN = "SCHEDULE_ID"; + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    + * + * @return The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public Long getScheduleId() { + return _scheduleId; + } + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    + * + * @param scheduleId The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public void setScheduleId(Long scheduleId) { + _modifiedProperties.addPropertyName("scheduleId"); + this._scheduleId = scheduleId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,646 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; + +/** + * The entity of SINGLE_SCHEDULE that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     SINGLE_SCHEDULE_CONTENT, SINGLE_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     singleScheduleContentAsOne
    + * 
    + * [referrer-property]
    + *     singleScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsSingleSchedule implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is SINGLE_SCHEDULE. */ + public static final String TABLE = "SINGLE_SCHEDULE"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** TITLE: {NotNull : VARCHAR(100)} */ + protected String _title; + + /** LOCATION: {VARCHAR(100)} */ + protected String _location; + + /** START_DATE: {NotNull : DATE} */ + protected java.util.Date _startDate; + + /** START_TIME: {TIME} */ + protected java.sql.Time _startTime; + + /** END_DATE: {NotNull : DATE} */ + protected java.util.Date _endDate; + + /** END_TIME: {TIME} */ + protected java.sql.Time _endTime; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsSingleSchedule() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "singleSchedule"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [singleScheduleContentAsOne] + // * * * * * * * * */ + public static final int singleScheduleContentAsOne_RELNO = 0; + + public static final String singleScheduleContentAsOne_RELKEYS = "ID:ID"; + + /** SINGLE_SCHEDULE_CONTENT as 'singleScheduleContentAsOne'. */ + protected SingleScheduleContent _childrensingleScheduleContentAsOne; + + /** + * SINGLE_SCHEDULE_CONTENT as 'singleScheduleContentAsOne'. {without + * lazy-load}
    + * + * @return the entity of foreign property(referrer-as-one) + * 'singleScheduleContentAsOne'. (Nullable: If the foreign key does + * not have 'NotNull' constraint, please check null.) + */ + public SingleScheduleContent getSingleScheduleContentAsOne() { + return _childrensingleScheduleContentAsOne; + } + + /** + * SINGLE_SCHEDULE_CONTENT as 'singleScheduleContentAsOne'. + * + * @param singleScheduleContentAsOne The entity of foreign + * property(referrer-as-one) 'singleScheduleContentAsOne'. + * (Nullable) + */ + public void setSingleScheduleContentAsOne( + SingleScheduleContent singleScheduleContentAsOne) { + _childrensingleScheduleContentAsOne = singleScheduleContentAsOne; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [singleScheduleMappingList] + // * * * * * * * * */ + /** SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. */ + protected List _childrenSingleScheduleMappingList; + + /** + * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. {without + * lazy-load}
    + * + * @return The entity list of referrer property 'singleScheduleMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getSingleScheduleMappingList() { + if (_childrenSingleScheduleMappingList == null) { + _childrenSingleScheduleMappingList = new ArrayList(); + } + return _childrenSingleScheduleMappingList; + } + + /** + * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. + * + * @param singleScheduleMappingList The entity list of referrer property + * 'singleScheduleMappingList'. (Nullable) + */ + public void setSingleScheduleMappingList( + List singleScheduleMappingList) { + _childrenSingleScheduleMappingList = singleScheduleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsSingleSchedule)) { + return false; + } + BsSingleSchedule otherEntity = (BsSingleSchedule) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getTitle()); + sb.append(delimiter).append(getLocation()); + sb.append(delimiter).append(getStartDate()); + sb.append(delimiter).append(getStartTime()); + sb.append(delimiter).append(getEndDate()); + sb.append(delimiter).append(getEndTime()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String title_COLUMN = "TITLE"; + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'TITLE'. (Nullable) + */ + public String getTitle() { + return _title; + } + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @param title The value of the column 'TITLE'. (Nullable) + */ + public void setTitle(String title) { + _modifiedProperties.addPropertyName("title"); + this._title = title; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String location_COLUMN = "LOCATION"; + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @return The value of the column 'LOCATION'. (Nullable) + */ + public String getLocation() { + return _location; + } + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @param location The value of the column 'LOCATION'. (Nullable) + */ + public void setLocation(String location) { + _modifiedProperties.addPropertyName("location"); + this._location = location; + } + + /** The column annotation for S2Dao. {NotNull : DATE} */ + public static final String startDate_COLUMN = "START_DATE"; + + /** + * START_DATE: {NotNull : DATE}
    + * + * @return The value of the column 'START_DATE'. (Nullable) + */ + public java.util.Date getStartDate() { + return _startDate; + } + + /** + * START_DATE: {NotNull : DATE}
    + * + * @param startDate The value of the column 'START_DATE'. (Nullable) + */ + public void setStartDate(java.util.Date startDate) { + _modifiedProperties.addPropertyName("startDate"); + this._startDate = startDate; + } + + /** The column annotation for S2Dao. {TIME} */ + public static final String startTime_COLUMN = "START_TIME"; + + /** + * START_TIME: {TIME}
    + * + * @return The value of the column 'START_TIME'. (Nullable) + */ + public java.sql.Time getStartTime() { + return _startTime; + } + + /** + * START_TIME: {TIME}
    + * + * @param startTime The value of the column 'START_TIME'. (Nullable) + */ + public void setStartTime(java.sql.Time startTime) { + _modifiedProperties.addPropertyName("startTime"); + this._startTime = startTime; + } + + /** The column annotation for S2Dao. {NotNull : DATE} */ + public static final String endDate_COLUMN = "END_DATE"; + + /** + * END_DATE: {NotNull : DATE}
    + * + * @return The value of the column 'END_DATE'. (Nullable) + */ + public java.util.Date getEndDate() { + return _endDate; + } + + /** + * END_DATE: {NotNull : DATE}
    + * + * @param endDate The value of the column 'END_DATE'. (Nullable) + */ + public void setEndDate(java.util.Date endDate) { + _modifiedProperties.addPropertyName("endDate"); + this._endDate = endDate; + } + + /** The column annotation for S2Dao. {TIME} */ + public static final String endTime_COLUMN = "END_TIME"; + + /** + * END_TIME: {TIME}
    + * + * @return The value of the column 'END_TIME'. (Nullable) + */ + public java.sql.Time getEndTime() { + return _endTime; + } + + /** + * END_TIME: {TIME}
    + * + * @param endTime The value of the column 'END_TIME'. (Nullable) + */ + public void setEndTime(java.sql.Time endTime) { + _modifiedProperties.addPropertyName("endTime"); + this._endTime = endTime; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,295 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; + +/** + * The entity of SINGLE_SCHEDULE_CONTENT that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     SINGLE_SCHEDULE
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     singleSchedule
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsSingleScheduleContent implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is SINGLE_SCHEDULE_CONTENT. */ + public static final String TABLE = "SINGLE_SCHEDULE_CONTENT"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : NotNull : BIGINT : FK to SINGLE_SCHEDULE} */ + protected Long _id; + + /** CONTENT: {VARCHAR(1000)} */ + protected String _content; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsSingleScheduleContent() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "singleScheduleContent"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [singleSchedule] + // * * * * * * * * */ + public static final int singleSchedule_RELNO = 0; + + public static final String singleSchedule_RELKEYS = "ID:ID"; + + /** SINGLE_SCHEDULE as 'singleSchedule'. */ + protected SingleSchedule _parentSingleSchedule; + + /** + * SINGLE_SCHEDULE as 'singleSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'singleSchedule'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public SingleSchedule getSingleSchedule() { + return _parentSingleSchedule; + } + + /** + * SINGLE_SCHEDULE as 'singleSchedule'. + * + * @param singleSchedule The entity of foreign property 'singleSchedule'. + * (Nullable) + */ + public void setSingleSchedule(SingleSchedule singleSchedule) { + _parentSingleSchedule = singleSchedule; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsSingleScheduleContent)) { + return false; + } + BsSingleScheduleContent otherEntity = (BsSingleScheduleContent) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getContent()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** + * The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to + * SINGLE_SCHEDULE} + */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(1000)} */ + public static final String content_COLUMN = "CONTENT"; + + /** + * CONTENT: {VARCHAR(1000)}
    + * + * @return The value of the column 'CONTENT'. (Nullable) + */ + public String getContent() { + return _content; + } + + /** + * CONTENT: {VARCHAR(1000)}
    + * + * @param content The value of the column 'CONTENT'. (Nullable) + */ + public void setContent(String content) { + _modifiedProperties.addPropertyName("content"); + this._content = content; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,358 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of SINGLE_SCHEDULE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, SCHEDULE_ID, USER_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     SINGLE_SCHEDULE, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     singleSchedule, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsSingleScheduleMapping implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is SINGLE_SCHEDULE_MAPPING. */ + public static final String TABLE = "SINGLE_SCHEDULE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** SCHEDULE_ID: {NotNull : BIGINT : FK to SINGLE_SCHEDULE} */ + protected Long _scheduleId; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsSingleScheduleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "singleScheduleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [singleSchedule] + // * * * * * * * * */ + public static final int singleSchedule_RELNO = 0; + + public static final String singleSchedule_RELKEYS = "SCHEDULE_ID:ID"; + + /** SINGLE_SCHEDULE as 'singleSchedule'. */ + protected SingleSchedule _parentSingleSchedule; + + /** + * SINGLE_SCHEDULE as 'singleSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'singleSchedule'. (Nullable: If + * the foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public SingleSchedule getSingleSchedule() { + return _parentSingleSchedule; + } + + /** + * SINGLE_SCHEDULE as 'singleSchedule'. + * + * @param singleSchedule The entity of foreign property 'singleSchedule'. + * (Nullable) + */ + public void setSingleSchedule(SingleSchedule singleSchedule) { + _parentSingleSchedule = singleSchedule; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsSingleScheduleMapping)) { + return false; + } + BsSingleScheduleMapping otherEntity = (BsSingleScheduleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getScheduleId()); + sb.append(delimiter).append(getUserId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : BIGINT : FK to + * SINGLE_SCHEDULE} + */ + public static final String scheduleId_COLUMN = "SCHEDULE_ID"; + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    + * + * @return The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public Long getScheduleId() { + return _scheduleId; + } + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    + * + * @param scheduleId The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public void setScheduleId(Long scheduleId) { + _modifiedProperties.addPropertyName("scheduleId"); + this._scheduleId = scheduleId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,950 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; + +/** + * The entity of USER_INFO that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     USER_ID
    + * 
    + * [column]
    + *     USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     GROUP_INFO, ROLE_INFO
    + * 
    + * [referrer-table]
    + *     GROUP_MAPPING, ROLE_MAPPING, ROUTINE_SCHEDULE_MAPPING, SINGLE_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     groupInfo, roleInfo
    + * 
    + * [referrer-property]
    + *     groupMappingList, roleMappingList, routineScheduleMappingList, singleScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsUserInfo implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is USER_INFO. */ + public static final String TABLE = "USER_INFO"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** USER_ID: {PK : NotNull : VARCHAR(255)} */ + protected String _userId; + + /** GIVEN_NAME: {VARCHAR(100)} */ + protected String _givenName; + + /** FAMILY_NAME: {VARCHAR(100)} */ + protected String _familyName; + + /** MIDDLE_NAME: {VARCHAR(50)} */ + protected String _middleName; + + /** GIVEN_NAME_DESC: {VARCHAR(100)} */ + protected String _givenNameDesc; + + /** FAMILY_NAME_DESC: {VARCHAR(100)} */ + protected String _familyNameDesc; + + /** NICKNAME: {VARCHAR(100)} */ + protected String _nickname; + + /** GENDER: {VARCHAR(1)} */ + protected String _gender; + + /** BIRTH_DATE: {DATE} */ + protected java.util.Date _birthDate; + + /** EMAIL: {VARCHAR(255)} */ + protected String _email; + + /** URL: {VARCHAR(255)} */ + protected String _url; + + /** TELEPHONE: {VARCHAR(40)} */ + protected String _telephone; + + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ + protected String _roleId; + + /** GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO} */ + protected String _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfo() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "userInfo"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [groupInfo] + // * * * * * * * * */ + public static final int groupInfo_RELNO = 0; + + public static final String groupInfo_RELKEYS = "GROUP_ID:GROUP_ID"; + + /** GROUP_INFO as 'groupInfo'. */ + protected GroupInfo _parentGroupInfo; + + /** + * GROUP_INFO as 'groupInfo'. {without lazy-load} + * + * @return The entity of foreign property 'groupInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public GroupInfo getGroupInfo() { + return _parentGroupInfo; + } + + /** + * GROUP_INFO as 'groupInfo'. + * + * @param groupInfo The entity of foreign property 'groupInfo'. (Nullable) + */ + public void setGroupInfo(GroupInfo groupInfo) { + _parentGroupInfo = groupInfo; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [roleInfo] + // * * * * * * * * */ + public static final int roleInfo_RELNO = 1; + + public static final String roleInfo_RELKEYS = "ROLE_ID:ROLE_ID"; + + /** ROLE_INFO as 'roleInfo'. */ + protected RoleInfo _parentRoleInfo; + + /** + * ROLE_INFO as 'roleInfo'. {without lazy-load} + * + * @return The entity of foreign property 'roleInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public RoleInfo getRoleInfo() { + return _parentRoleInfo; + } + + /** + * ROLE_INFO as 'roleInfo'. + * + * @param roleInfo The entity of foreign property 'roleInfo'. (Nullable) + */ + public void setRoleInfo(RoleInfo roleInfo) { + _parentRoleInfo = roleInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [groupMappingList] + // * * * * * * * * */ + /** GROUP_MAPPING as 'groupMappingList'. */ + protected List _childrenGroupMappingList; + + /** + * GROUP_MAPPING as 'groupMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'groupMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getGroupMappingList() { + if (_childrenGroupMappingList == null) { + _childrenGroupMappingList = new ArrayList(); + } + return _childrenGroupMappingList; + } + + /** + * GROUP_MAPPING as 'groupMappingList'. + * + * @param groupMappingList The entity list of referrer property + * 'groupMappingList'. (Nullable) + */ + public void setGroupMappingList(List groupMappingList) { + _childrenGroupMappingList = groupMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [roleMappingList] + // * * * * * * * * */ + /** ROLE_MAPPING as 'roleMappingList'. */ + protected List _childrenRoleMappingList; + + /** + * ROLE_MAPPING as 'roleMappingList'. {without lazy-load}
    + * + * @return The entity list of referrer property 'roleMappingList'. (NotNull: + * If it's not loaded yet, initializes the list instance of referrer + * as empty and returns it.) + */ + public List getRoleMappingList() { + if (_childrenRoleMappingList == null) { + _childrenRoleMappingList = new ArrayList(); + } + return _childrenRoleMappingList; + } + + /** + * ROLE_MAPPING as 'roleMappingList'. + * + * @param roleMappingList The entity list of referrer property + * 'roleMappingList'. (Nullable) + */ + public void setRoleMappingList(List roleMappingList) { + _childrenRoleMappingList = roleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [routineScheduleMappingList] + // * * * * * * * * */ + /** ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. */ + protected List _childrenRoutineScheduleMappingList; + + /** + * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. {without + * lazy-load}
    + * + * @return The entity list of referrer property + * 'routineScheduleMappingList'. (NotNull: If it's not loaded yet, + * initializes the list instance of referrer as empty and returns + * it.) + */ + public List getRoutineScheduleMappingList() { + if (_childrenRoutineScheduleMappingList == null) { + _childrenRoutineScheduleMappingList = new ArrayList(); + } + return _childrenRoutineScheduleMappingList; + } + + /** + * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. + * + * @param routineScheduleMappingList The entity list of referrer property + * 'routineScheduleMappingList'. (Nullable) + */ + public void setRoutineScheduleMappingList( + List routineScheduleMappingList) { + _childrenRoutineScheduleMappingList = routineScheduleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [singleScheduleMappingList] + // * * * * * * * * */ + /** SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. */ + protected List _childrenSingleScheduleMappingList; + + /** + * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. {without + * lazy-load}
    + * + * @return The entity list of referrer property 'singleScheduleMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getSingleScheduleMappingList() { + if (_childrenSingleScheduleMappingList == null) { + _childrenSingleScheduleMappingList = new ArrayList(); + } + return _childrenSingleScheduleMappingList; + } + + /** + * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. + * + * @param singleScheduleMappingList The entity list of referrer property + * 'singleScheduleMappingList'. (Nullable) + */ + public void setSingleScheduleMappingList( + List singleScheduleMappingList) { + _childrenSingleScheduleMappingList = singleScheduleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_userId == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsUserInfo)) { + return false; + } + BsUserInfo otherEntity = (BsUserInfo) other; + if (!helpComparingValue(getUserId(), otherEntity.getUserId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getUserId() != null) { + result = result + getUserId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getUserId()); + sb.append(delimiter).append(getGivenName()); + sb.append(delimiter).append(getFamilyName()); + sb.append(delimiter).append(getMiddleName()); + sb.append(delimiter).append(getGivenNameDesc()); + sb.append(delimiter).append(getFamilyNameDesc()); + sb.append(delimiter).append(getNickname()); + sb.append(delimiter).append(getGender()); + sb.append(delimiter).append(getBirthDate()); + sb.append(delimiter).append(getEmail()); + sb.append(delimiter).append(getUrl()); + sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getRoleId()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : NotNull : VARCHAR(255)} */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {PK : NotNull : VARCHAR(255)}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenName_COLUMN = "GIVEN_NAME"; + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME'. (Nullable) + */ + public String getGivenName() { + return _givenName; + } + + /** + * GIVEN_NAME: {VARCHAR(100)}
    + * + * @param givenName The value of the column 'GIVEN_NAME'. (Nullable) + */ + public void setGivenName(String givenName) { + _modifiedProperties.addPropertyName("givenName"); + this._givenName = givenName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyName_COLUMN = "FAMILY_NAME"; + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME'. (Nullable) + */ + public String getFamilyName() { + return _familyName; + } + + /** + * FAMILY_NAME: {VARCHAR(100)}
    + * + * @param familyName The value of the column 'FAMILY_NAME'. (Nullable) + */ + public void setFamilyName(String familyName) { + _modifiedProperties.addPropertyName("familyName"); + this._familyName = familyName; + } + + /** The column annotation for S2Dao. {VARCHAR(50)} */ + public static final String middleName_COLUMN = "MIDDLE_NAME"; + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @return The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public String getMiddleName() { + return _middleName; + } + + /** + * MIDDLE_NAME: {VARCHAR(50)}
    + * + * @param middleName The value of the column 'MIDDLE_NAME'. (Nullable) + */ + public void setMiddleName(String middleName) { + _modifiedProperties.addPropertyName("middleName"); + this._middleName = middleName; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String givenNameDesc_COLUMN = "GIVEN_NAME_DESC"; + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'GIVEN_NAME_DESC'. (Nullable) + */ + public String getGivenNameDesc() { + return _givenNameDesc; + } + + /** + * GIVEN_NAME_DESC: {VARCHAR(100)}
    + * + * @param givenNameDesc The value of the column 'GIVEN_NAME_DESC'. + * (Nullable) + */ + public void setGivenNameDesc(String givenNameDesc) { + _modifiedProperties.addPropertyName("givenNameDesc"); + this._givenNameDesc = givenNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String familyNameDesc_COLUMN = "FAMILY_NAME_DESC"; + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @return The value of the column 'FAMILY_NAME_DESC'. (Nullable) + */ + public String getFamilyNameDesc() { + return _familyNameDesc; + } + + /** + * FAMILY_NAME_DESC: {VARCHAR(100)}
    + * + * @param familyNameDesc The value of the column 'FAMILY_NAME_DESC'. + * (Nullable) + */ + public void setFamilyNameDesc(String familyNameDesc) { + _modifiedProperties.addPropertyName("familyNameDesc"); + this._familyNameDesc = familyNameDesc; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String nickname_COLUMN = "NICKNAME"; + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @return The value of the column 'NICKNAME'. (Nullable) + */ + public String getNickname() { + return _nickname; + } + + /** + * NICKNAME: {VARCHAR(100)}
    + * + * @param nickname The value of the column 'NICKNAME'. (Nullable) + */ + public void setNickname(String nickname) { + _modifiedProperties.addPropertyName("nickname"); + this._nickname = nickname; + } + + /** The column annotation for S2Dao. {VARCHAR(1)} */ + public static final String gender_COLUMN = "GENDER"; + + /** + * GENDER: {VARCHAR(1)}
    + * + * @return The value of the column 'GENDER'. (Nullable) + */ + public String getGender() { + return _gender; + } + + /** + * GENDER: {VARCHAR(1)}
    + * + * @param gender The value of the column 'GENDER'. (Nullable) + */ + public void setGender(String gender) { + _modifiedProperties.addPropertyName("gender"); + this._gender = gender; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String birthDate_COLUMN = "BIRTH_DATE"; + + /** + * BIRTH_DATE: {DATE}
    + * + * @return The value of the column 'BIRTH_DATE'. (Nullable) + */ + public java.util.Date getBirthDate() { + return _birthDate; + } + + /** + * BIRTH_DATE: {DATE}
    + * + * @param birthDate The value of the column 'BIRTH_DATE'. (Nullable) + */ + public void setBirthDate(java.util.Date birthDate) { + _modifiedProperties.addPropertyName("birthDate"); + this._birthDate = birthDate; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String email_COLUMN = "EMAIL"; + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @return The value of the column 'EMAIL'. (Nullable) + */ + public String getEmail() { + return _email; + } + + /** + * EMAIL: {VARCHAR(255)}
    + * + * @param email The value of the column 'EMAIL'. (Nullable) + */ + public void setEmail(String email) { + _modifiedProperties.addPropertyName("email"); + this._email = email; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String url_COLUMN = "URL"; + + /** + * URL: {VARCHAR(255)}
    + * + * @return The value of the column 'URL'. (Nullable) + */ + public String getUrl() { + return _url; + } + + /** + * URL: {VARCHAR(255)}
    + * + * @param url The value of the column 'URL'. (Nullable) + */ + public void setUrl(String url) { + _modifiedProperties.addPropertyName("url"); + this._url = url; + } + + /** The column annotation for S2Dao. {VARCHAR(40)} */ + public static final String telephone_COLUMN = "TELEPHONE"; + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @return The value of the column 'TELEPHONE'. (Nullable) + */ + public String getTelephone() { + return _telephone; + } + + /** + * TELEPHONE: {VARCHAR(40)}
    + * + * @param telephone The value of the column 'TELEPHONE'. (Nullable) + */ + public void setTelephone(String telephone) { + _modifiedProperties.addPropertyName("telephone"); + this._telephone = telephone; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ + public static final String roleId_COLUMN = "ROLE_ID"; + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @return The value of the column 'ROLE_ID'. (Nullable) + */ + public String getRoleId() { + return _roleId; + } + + /** + * ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO}
    + * + * @param roleId The value of the column 'ROLE_ID'. (Nullable) + */ + public void setRoleId(String roleId) { + _modifiedProperties.addPropertyName("roleId"); + this._roleId = roleId; + } + + /** The column annotation for S2Dao. {VARCHAR(255) : FK to GROUP_INFO} */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public String getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {VARCHAR(255) : FK to GROUP_INFO}
    + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(String groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupInfoDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupInfoDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupInfoDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,447 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.GroupInfo; + +/** + * The DB meta of GROUP_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoDbm extends AbstractDBMeta { + + private static final GroupInfoDbm _instance = new GroupInfoDbm(); + + private GroupInfoDbm() { + } + + public static GroupInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTablePropertyName() { + return "groupInfo"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.GroupInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.GroupInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.GroupInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.GroupInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupInfo newMyEntity() { + return new GroupInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnGroupId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnGroupId(), + GroupMappingDbm.getInstance().columnGroupId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnGroupId(), + UserInfoDbm.getInstance().columnGroupId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupInfo) entity, value); + } + + public static class EpsGroupId implements Eps { + public void setup(GroupInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(GroupInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(GroupInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(GroupInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(GroupInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(GroupInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupMappingDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupMappingDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,299 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; + +/** + * The DB meta of GROUP_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingDbm extends AbstractDBMeta { + + private static final GroupMappingDbm _instance = new GroupMappingDbm(); + + private GroupMappingDbm() { + } + + public static GroupMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTablePropertyName() { + return "groupMapping"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.GroupMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.GroupMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.GroupMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.GroupMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return GroupMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public GroupMapping newMyEntity() { + return new GroupMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((GroupMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((GroupMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((GroupMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(GroupMapping e, Object v) { + e.setGroupId((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/GroupMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleInfoDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleInfoDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleInfoDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,447 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.RoleInfo; + +/** + * The DB meta of ROLE_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoDbm extends AbstractDBMeta { + + private static final RoleInfoDbm _instance = new RoleInfoDbm(); + + private RoleInfoDbm() { + } + + public static RoleInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTablePropertyName() { + return "roleInfo"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + true, 255, 0); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnDescription = cci("DESCRIPTION", "description", + String.class, false, 255, 0); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnDescription() { + return _columnDescription; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.RoleInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.RoleInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.RoleInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.RoleInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleInfo newMyEntity() { + return new RoleInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnRoleId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnRoleId(), + RoleMappingDbm.getInstance().columnRoleId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerUserInfoList() { + Map map = newLinkedHashMap(columnRoleId(), + UserInfoDbm.getInstance().columnRoleId()); + return cri("userInfoList", this, UserInfoDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsDescription(), columnDescription()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleInfo) entity, value); + } + + public static class EpsRoleId implements Eps { + public void setup(RoleInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsName implements Eps { + public void setup(RoleInfo e, Object v) { + e.setName((String) v); + } + } + + public static class EpsDescription implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDescription((String) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(RoleInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(RoleInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoleInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoleInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleMappingDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleMappingDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,299 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; + +/** + * The DB meta of ROLE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingDbm extends AbstractDBMeta { + + private static final RoleMappingDbm _instance = new RoleMappingDbm(); + + private RoleMappingDbm() { + } + + public static RoleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTablePropertyName() { + return "roleMapping"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.RoleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.RoleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.RoleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.RoleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoleMapping newMyEntity() { + return new RoleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoleMapping) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoleMapping) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoleMapping) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(RoleMapping e, Object v) { + e.setRoleId((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,283 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; + +/** + * The DB meta of ROUTINE_SCHEDULE_CONTENT. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContentDbm extends AbstractDBMeta { + + private static final RoutineScheduleContentDbm _instance = new RoutineScheduleContentDbm(); + + private RoutineScheduleContentDbm() { + } + + public static RoutineScheduleContentDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + public String getTablePropertyName() { + return "routineScheduleContent"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnContent = cci("CONTENT", "content", + String.class, false, 1000, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnContent() { + return _columnContent; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.RoutineScheduleContentCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.RoutineScheduleContentDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.RoutineScheduleContentBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoutineScheduleContent.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoutineScheduleContent newMyEntity() { + return new RoutineScheduleContent(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoutineSchedule() { + Map map = newLinkedHashMap(columnId(), + RoutineScheduleDbm.getInstance().columnId()); + return cfi("routineSchedule", this, RoutineScheduleDbm.getInstance(), + map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoutineScheduleContent) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoutineScheduleContent) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsContent(), columnContent()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoutineScheduleContent) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(RoutineScheduleContent e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsContent implements Eps { + public void setup(RoutineScheduleContent e, Object v) { + e.setContent((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,477 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; + +/** + * The DB meta of ROUTINE_SCHEDULE. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleDbm extends AbstractDBMeta { + + private static final RoutineScheduleDbm _instance = new RoutineScheduleDbm(); + + private RoutineScheduleDbm() { + } + + public static RoutineScheduleDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE"; + } + + public String getTablePropertyName() { + return "routineSchedule"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnTitle = cci("TITLE", "title", String.class, + false, 100, 0); + + protected ColumnInfo _columnLocation = cci("LOCATION", "location", + String.class, false, 100, 0); + + protected ColumnInfo _columnStartDate = cci("START_DATE", "startDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnStartTime = cci("START_TIME", "startTime", + java.sql.Time.class, false, null, null); + + protected ColumnInfo _columnEndDate = cci("END_DATE", "endDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", + java.sql.Time.class, false, null, null); + + protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, + 10, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnTitle() { + return _columnTitle; + } + + public ColumnInfo columnLocation() { + return _columnLocation; + } + + public ColumnInfo columnStartDate() { + return _columnStartDate; + } + + public ColumnInfo columnStartTime() { + return _columnStartTime; + } + + public ColumnInfo columnEndDate() { + return _columnEndDate; + } + + public ColumnInfo columnEndTime() { + return _columnEndTime; + } + + public ColumnInfo columnType() { + return _columnType; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.RoutineSchedule"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.RoutineScheduleCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.RoutineScheduleDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.RoutineScheduleBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoutineSchedule.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoutineSchedule newMyEntity() { + return new RoutineSchedule(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoutineScheduleContentAsOne() { + Map map = newLinkedHashMap(columnId(), + RoutineScheduleContentDbm.getInstance().columnId()); + return cfi("routineScheduleContentAsOne", this, + RoutineScheduleContentDbm.getInstance(), map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerRoutineScheduleMappingList() { + Map map = newLinkedHashMap(columnId(), + RoutineScheduleMappingDbm.getInstance().columnScheduleId()); + return cri("routineScheduleMappingList", this, + RoutineScheduleMappingDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoutineSchedule) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoutineSchedule) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsTitle(), columnTitle()); + setupEps(_epsMap, new EpsLocation(), columnLocation()); + setupEps(_epsMap, new EpsStartDate(), columnStartDate()); + setupEps(_epsMap, new EpsStartTime(), columnStartTime()); + setupEps(_epsMap, new EpsEndDate(), columnEndDate()); + setupEps(_epsMap, new EpsEndTime(), columnEndTime()); + setupEps(_epsMap, new EpsType(), columnType()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoutineSchedule) entity, value); + } + + public static class EpsId implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsTitle implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setTitle((String) v); + } + } + + public static class EpsLocation implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setLocation((String) v); + } + } + + public static class EpsStartDate implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setStartDate((java.util.Date) v); + } + } + + public static class EpsStartTime implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setStartTime((java.sql.Time) v); + } + } + + public static class EpsEndDate implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setEndDate((java.util.Date) v); + } + } + + public static class EpsEndTime implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setEndTime((java.sql.Time) v); + } + } + + public static class EpsType implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setType((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,303 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; + +/** + * The DB meta of ROUTINE_SCHEDULE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMappingDbm extends AbstractDBMeta { + + private static final RoutineScheduleMappingDbm _instance = new RoutineScheduleMappingDbm(); + + private RoutineScheduleMappingDbm() { + } + + public static RoutineScheduleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() { + return "routineScheduleMapping"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnScheduleId = cci("SCHEDULE_ID", "scheduleId", + Long.class, false, null, null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnScheduleId() { + return _columnScheduleId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.RoutineScheduleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.RoutineScheduleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return RoutineScheduleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public RoutineScheduleMapping newMyEntity() { + return new RoutineScheduleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignRoutineSchedule() { + Map map = newLinkedHashMap(columnScheduleId(), + RoutineScheduleDbm.getInstance().columnId()); + return cfi("routineSchedule", this, RoutineScheduleDbm.getInstance(), + map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((RoutineScheduleMapping) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((RoutineScheduleMapping) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsScheduleId(), columnScheduleId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((RoutineScheduleMapping) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(RoutineScheduleMapping e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsScheduleId implements Eps { + public void setup(RoutineScheduleMapping e, Object v) { + e.setScheduleId((Long) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(RoutineScheduleMapping e, Object v) { + e.setUserId((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,283 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; + +/** + * The DB meta of SINGLE_SCHEDULE_CONTENT. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContentDbm extends AbstractDBMeta { + + private static final SingleScheduleContentDbm _instance = new SingleScheduleContentDbm(); + + private SingleScheduleContentDbm() { + } + + public static SingleScheduleContentDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + public String getTablePropertyName() { + return "singleScheduleContent"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnContent = cci("CONTENT", "content", + String.class, false, 1000, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnContent() { + return _columnContent; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.SingleScheduleContent"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.SingleScheduleContentCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.SingleScheduleContentDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.SingleScheduleContentBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return SingleScheduleContent.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public SingleScheduleContent newMyEntity() { + return new SingleScheduleContent(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignSingleSchedule() { + Map map = newLinkedHashMap(columnId(), + SingleScheduleDbm.getInstance().columnId()); + return cfi("singleSchedule", this, SingleScheduleDbm.getInstance(), + map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((SingleScheduleContent) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((SingleScheduleContent) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsContent(), columnContent()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((SingleScheduleContent) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(SingleScheduleContent e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsContent implements Eps { + public void setup(SingleScheduleContent e, Object v) { + e.setContent((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,462 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; + +/** + * The DB meta of SINGLE_SCHEDULE. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleDbm extends AbstractDBMeta { + + private static final SingleScheduleDbm _instance = new SingleScheduleDbm(); + + private SingleScheduleDbm() { + } + + public static SingleScheduleDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE"; + } + + public String getTablePropertyName() { + return "singleSchedule"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnTitle = cci("TITLE", "title", String.class, + false, 100, 0); + + protected ColumnInfo _columnLocation = cci("LOCATION", "location", + String.class, false, 100, 0); + + protected ColumnInfo _columnStartDate = cci("START_DATE", "startDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnStartTime = cci("START_TIME", "startTime", + java.sql.Time.class, false, null, null); + + protected ColumnInfo _columnEndDate = cci("END_DATE", "endDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", + java.sql.Time.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnTitle() { + return _columnTitle; + } + + public ColumnInfo columnLocation() { + return _columnLocation; + } + + public ColumnInfo columnStartDate() { + return _columnStartDate; + } + + public ColumnInfo columnStartTime() { + return _columnStartTime; + } + + public ColumnInfo columnEndDate() { + return _columnEndDate; + } + + public ColumnInfo columnEndTime() { + return _columnEndTime; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.SingleSchedule"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.SingleScheduleCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.SingleScheduleDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.SingleScheduleBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return SingleSchedule.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public SingleSchedule newMyEntity() { + return new SingleSchedule(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignSingleScheduleContentAsOne() { + Map map = newLinkedHashMap(columnId(), + SingleScheduleContentDbm.getInstance().columnId()); + return cfi("singleScheduleContentAsOne", this, SingleScheduleContentDbm + .getInstance(), map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerSingleScheduleMappingList() { + Map map = newLinkedHashMap(columnId(), + SingleScheduleMappingDbm.getInstance().columnScheduleId()); + return cri("singleScheduleMappingList", this, SingleScheduleMappingDbm + .getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((SingleSchedule) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((SingleSchedule) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsTitle(), columnTitle()); + setupEps(_epsMap, new EpsLocation(), columnLocation()); + setupEps(_epsMap, new EpsStartDate(), columnStartDate()); + setupEps(_epsMap, new EpsStartTime(), columnStartTime()); + setupEps(_epsMap, new EpsEndDate(), columnEndDate()); + setupEps(_epsMap, new EpsEndTime(), columnEndTime()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((SingleSchedule) entity, value); + } + + public static class EpsId implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsTitle implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setTitle((String) v); + } + } + + public static class EpsLocation implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setLocation((String) v); + } + } + + public static class EpsStartDate implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setStartDate((java.util.Date) v); + } + } + + public static class EpsStartTime implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setStartTime((java.sql.Time) v); + } + } + + public static class EpsEndDate implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setEndDate((java.util.Date) v); + } + } + + public static class EpsEndTime implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setEndTime((java.sql.Time) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,303 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; + +/** + * The DB meta of SINGLE_SCHEDULE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMappingDbm extends AbstractDBMeta { + + private static final SingleScheduleMappingDbm _instance = new SingleScheduleMappingDbm(); + + private SingleScheduleMappingDbm() { + } + + public static SingleScheduleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() { + return "singleScheduleMapping"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnScheduleId = cci("SCHEDULE_ID", "scheduleId", + Long.class, false, null, null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnScheduleId() { + return _columnScheduleId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.SingleScheduleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.SingleScheduleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return SingleScheduleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public SingleScheduleMapping newMyEntity() { + return new SingleScheduleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignSingleSchedule() { + Map map = newLinkedHashMap(columnScheduleId(), + SingleScheduleDbm.getInstance().columnId()); + return cfi("singleSchedule", this, SingleScheduleDbm.getInstance(), + map, 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((SingleScheduleMapping) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((SingleScheduleMapping) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsScheduleId(), columnScheduleId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((SingleScheduleMapping) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(SingleScheduleMapping e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsScheduleId implements Eps { + public void setup(SingleScheduleMapping e, Object v) { + e.setScheduleId((Long) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(SingleScheduleMapping e, Object v) { + e.setUserId((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,586 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The DB meta of USER_INFO. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoDbm extends AbstractDBMeta { + + private static final UserInfoDbm _instance = new UserInfoDbm(); + + private UserInfoDbm() { + } + + public static UserInfoDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTablePropertyName() { + return "userInfo"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + true, 255, 0); + + protected ColumnInfo _columnGivenName = cci("GIVEN_NAME", "givenName", + String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyName = cci("FAMILY_NAME", "familyName", + String.class, false, 100, 0); + + protected ColumnInfo _columnMiddleName = cci("MIDDLE_NAME", "middleName", + String.class, false, 50, 0); + + protected ColumnInfo _columnGivenNameDesc = cci("GIVEN_NAME_DESC", + "givenNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnFamilyNameDesc = cci("FAMILY_NAME_DESC", + "familyNameDesc", String.class, false, 100, 0); + + protected ColumnInfo _columnNickname = cci("NICKNAME", "nickname", + String.class, false, 100, 0); + + protected ColumnInfo _columnGender = cci("GENDER", "gender", String.class, + false, 1, 0); + + protected ColumnInfo _columnBirthDate = cci("BIRTH_DATE", "birthDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnEmail = cci("EMAIL", "email", String.class, + false, 255, 0); + + protected ColumnInfo _columnUrl = cci("URL", "url", String.class, false, + 255, 0); + + protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", + String.class, false, 40, 0); + + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, + false, 255, 0); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + String.class, false, 255, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + public ColumnInfo columnGivenName() { + return _columnGivenName; + } + + public ColumnInfo columnFamilyName() { + return _columnFamilyName; + } + + public ColumnInfo columnMiddleName() { + return _columnMiddleName; + } + + public ColumnInfo columnGivenNameDesc() { + return _columnGivenNameDesc; + } + + public ColumnInfo columnFamilyNameDesc() { + return _columnFamilyNameDesc; + } + + public ColumnInfo columnNickname() { + return _columnNickname; + } + + public ColumnInfo columnGender() { + return _columnGender; + } + + public ColumnInfo columnBirthDate() { + return _columnBirthDate; + } + + public ColumnInfo columnEmail() { + return _columnEmail; + } + + public ColumnInfo columnUrl() { + return _columnUrl; + } + + public ColumnInfo columnTelephone() { + return _columnTelephone; + } + + public ColumnInfo columnRoleId() { + return _columnRoleId; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.UserInfo"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.UserInfoCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.UserInfoDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.UserInfoBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return UserInfo.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public UserInfo newMyEntity() { + return new UserInfo(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnUserId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignGroupInfo() { + Map map = newLinkedHashMap(columnGroupId(), + GroupInfoDbm.getInstance().columnGroupId()); + return cfi("groupInfo", this, GroupInfoDbm.getInstance(), map, 0, false); + } + + public ForeignInfo foreignRoleInfo() { + Map map = newLinkedHashMap(columnRoleId(), + RoleInfoDbm.getInstance().columnRoleId()); + return cfi("roleInfo", this, RoleInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerGroupMappingList() { + Map map = newLinkedHashMap(columnUserId(), + GroupMappingDbm.getInstance().columnUserId()); + return cri("groupMappingList", this, GroupMappingDbm.getInstance(), + map, false); + } + + public ReferrerInfo referrerRoleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoleMappingDbm.getInstance().columnUserId()); + return cri("roleMappingList", this, RoleMappingDbm.getInstance(), map, + false); + } + + public ReferrerInfo referrerRoutineScheduleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + RoutineScheduleMappingDbm.getInstance().columnUserId()); + return cri("routineScheduleMappingList", this, + RoutineScheduleMappingDbm.getInstance(), map, false); + } + + public ReferrerInfo referrerSingleScheduleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + SingleScheduleMappingDbm.getInstance().columnUserId()); + return cri("singleScheduleMappingList", this, SingleScheduleMappingDbm + .getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((UserInfo) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((UserInfo) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsUserId(), columnUserId()); + setupEps(_epsMap, new EpsGivenName(), columnGivenName()); + setupEps(_epsMap, new EpsFamilyName(), columnFamilyName()); + setupEps(_epsMap, new EpsMiddleName(), columnMiddleName()); + setupEps(_epsMap, new EpsGivenNameDesc(), columnGivenNameDesc()); + setupEps(_epsMap, new EpsFamilyNameDesc(), columnFamilyNameDesc()); + setupEps(_epsMap, new EpsNickname(), columnNickname()); + setupEps(_epsMap, new EpsGender(), columnGender()); + setupEps(_epsMap, new EpsBirthDate(), columnBirthDate()); + setupEps(_epsMap, new EpsEmail(), columnEmail()); + setupEps(_epsMap, new EpsUrl(), columnUrl()); + setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsRoleId(), columnRoleId()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((UserInfo) entity, value); + } + + public static class EpsUserId implements Eps { + public void setup(UserInfo e, Object v) { + e.setUserId((String) v); + } + } + + public static class EpsGivenName implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenName((String) v); + } + } + + public static class EpsFamilyName implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyName((String) v); + } + } + + public static class EpsMiddleName implements Eps { + public void setup(UserInfo e, Object v) { + e.setMiddleName((String) v); + } + } + + public static class EpsGivenNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setGivenNameDesc((String) v); + } + } + + public static class EpsFamilyNameDesc implements Eps { + public void setup(UserInfo e, Object v) { + e.setFamilyNameDesc((String) v); + } + } + + public static class EpsNickname implements Eps { + public void setup(UserInfo e, Object v) { + e.setNickname((String) v); + } + } + + public static class EpsGender implements Eps { + public void setup(UserInfo e, Object v) { + e.setGender((String) v); + } + } + + public static class EpsBirthDate implements Eps { + public void setup(UserInfo e, Object v) { + e.setBirthDate((java.util.Date) v); + } + } + + public static class EpsEmail implements Eps { + public void setup(UserInfo e, Object v) { + e.setEmail((String) v); + } + } + + public static class EpsUrl implements Eps { + public void setup(UserInfo e, Object v) { + e.setUrl((String) v); + } + } + + public static class EpsTelephone implements Eps { + public void setup(UserInfo e, Object v) { + e.setTelephone((String) v); + } + } + + public static class EpsRoleId implements Eps { + public void setup(UserInfo e, Object v) { + e.setRoleId((String) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(UserInfo e, Object v) { + e.setGroupId((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(UserInfo e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(UserInfo e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupInfoCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupInfoCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCB extends jp.sf.pal.scheduler.db.cbean.bs.BsGroupInfoCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsGroupMappingCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/GroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleInfoCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleInfoCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCB extends jp.sf.pal.scheduler.db.cbean.bs.BsRoleInfoCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsRoleMappingCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of ROUTINE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsRoutineScheduleCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of ROUTINE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContentCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsRoutineScheduleContentCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of ROUTINE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMappingCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsRoutineScheduleMappingCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of SINGLE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsSingleScheduleCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of SINGLE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContentCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsSingleScheduleContentCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of SINGLE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMappingCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsSingleScheduleMappingCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/UserInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/UserInfoCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/UserInfoCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCB extends jp.sf.pal.scheduler.db.cbean.bs.BsUserInfoCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/UserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupInfoCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupInfoCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,295 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; + +/** + * The base condition-bean of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("GROUP_ID"); + if (obj instanceof String) { + query().setGroupId_Equal((String) obj); + } else { + checkTypeString(obj, "groupId", "String"); + query().setGroupId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_GroupId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_GroupId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupInfoCQ query() { + return getConditionQuery(); + } + + public GroupInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupInfoCB>() {
    +     *     public void query(GroupInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(GroupInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnGroupId();// PK + } + + protected String getTableDbName() { + return "GROUP_INFO"; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + GroupInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, GroupInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,325 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public GroupMappingCQ query() { + return getConditionQuery(); + } + + public GroupMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new GroupMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<GroupMappingCB>() {
    +     *     public void query(GroupMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final GroupMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(GroupMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(GroupMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public GroupMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "GROUP_MAPPING"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsGroupMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleInfoCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleInfoCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,292 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; + +/** + * The base condition-bean of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ROLE_ID"); + if (obj instanceof String) { + query().setRoleId_Equal((String) obj); + } else { + checkTypeString(obj, "roleId", "String"); + query().setRoleId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_RoleId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_RoleId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleInfoCQ query() { + return getConditionQuery(); + } + + public RoleInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleInfoCB>() {
    +     *     public void query(RoleInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(RoleInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnDescription() { + doColumn("DESCRIPTION"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnRoleId();// PK + } + + protected String getTableDbName() { + return "ROLE_INFO"; + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedUserInfoList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, RoleInfoCQ cq, + String aliasName) { + cq.xderiveUserInfoList(function, subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,325 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.nss.RoleInfoNss; +import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoleMappingCQ query() { + return getConditionQuery(); + } + + public RoleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoleMappingCB>() {
    +     *     public void query(RoleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoleInfoCB.Specification _roleInfo; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROLE_MAPPING"; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,342 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.RoutineScheduleContentNss; + +/** + * The base condition-bean of ROUTINE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoutineScheduleCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoutineScheduleCQ query() { + return getConditionQuery(); + } + + public RoutineScheduleCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoutineScheduleCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoutineScheduleCB>() {
    +     *     public void query(RoutineScheduleCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoutineScheduleCB cb = new RoutineScheduleCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoutineScheduleCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoutineScheduleCB>() {
    +     *     public void query(RoutineScheduleCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoutineScheduleCB cb = new RoutineScheduleCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoutineScheduleCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoutineScheduleCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(RoutineScheduleCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoutineScheduleContentNss _nssRoutineScheduleContentAsOne; + + public RoutineScheduleContentNss getNssRoutineScheduleContentAsOne() { + if (_nssRoutineScheduleContentAsOne == null) { + _nssRoutineScheduleContentAsOne = new RoutineScheduleContentNss( + null); + } + return _nssRoutineScheduleContentAsOne; + } + + public RoutineScheduleContentNss setupSelect_RoutineScheduleContentAsOne() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoutineScheduleContentAsOne(); + } + }); + if (_nssRoutineScheduleContentAsOne == null + || !_nssRoutineScheduleContentAsOne.hasConditionQuery()) { + _nssRoutineScheduleContentAsOne = new RoutineScheduleContentNss( + query().queryRoutineScheduleContentAsOne()); + } + return _nssRoutineScheduleContentAsOne; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoutineScheduleCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoutineScheduleContentCB.Specification _routineScheduleContentAsOne; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnTitle() { + doColumn("TITLE"); + } + + public void columnLocation() { + doColumn("LOCATION"); + } + + public void columnStartDate() { + doColumn("START_DATE"); + } + + public void columnStartTime() { + doColumn("START_TIME"); + } + + public void columnEndDate() { + doColumn("END_DATE"); + } + + public void columnEndTime() { + doColumn("END_TIME"); + } + + public void columnType() { + doColumn("TYPE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + } + + protected String getTableDbName() { + return "ROUTINE_SCHEDULE"; + } + + public RoutineScheduleContentCB.Specification specifyRoutineScheduleContentAsOne() { + assertForeign("routineScheduleContentAsOne"); + if (_routineScheduleContentAsOne == null) { + _routineScheduleContentAsOne = new RoutineScheduleContentCB.Specification( + _baseCB, new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryRoutineScheduleContentAsOne(); + } + + public RoutineScheduleContentCQ qy() { + return _myQyCall.qy() + .queryRoutineScheduleContentAsOne(); + } + }, _forDeriveReferrer); + } + return _routineScheduleContentAsOne; + } + + public RAFunction derivedRoutineScheduleMappingList() { + return new RAFunction( + _baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + RoutineScheduleCQ cq, String aliasName) { + cq.xderiveRoutineScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoutineScheduleCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,276 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.RoutineScheduleNss; + +/** + * The base condition-bean of ROUTINE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoutineScheduleContentCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleContentCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoutineScheduleContentCQ query() { + return getConditionQuery(); + } + + public RoutineScheduleContentCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoutineScheduleContentCQ(null, + getSqlClause(), getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoutineScheduleContentCB>() {
    +     *     public void query(RoutineScheduleContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoutineScheduleContentCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoutineScheduleContentCB>() {
    +     *     public void query(RoutineScheduleContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoutineScheduleContentCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoutineScheduleContentCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use + * unionAll(UnionQuery unionQuery). + */ + public void unionAll(RoutineScheduleContentCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoutineScheduleNss _nssRoutineSchedule; + + public RoutineScheduleNss getNssRoutineSchedule() { + if (_nssRoutineSchedule == null) { + _nssRoutineSchedule = new RoutineScheduleNss(null); + } + return _nssRoutineSchedule; + } + + public RoutineScheduleNss setupSelect_RoutineSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoutineSchedule(); + } + }); + if (_nssRoutineSchedule == null + || !_nssRoutineSchedule.hasConditionQuery()) { + _nssRoutineSchedule = new RoutineScheduleNss(query() + .queryRoutineSchedule()); + } + return _nssRoutineSchedule; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoutineScheduleContentCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoutineScheduleCB.Specification _routineSchedule; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnContent() { + doColumn("CONTENT"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoutineSchedule()) { + } + } + + protected String getTableDbName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + public RoutineScheduleCB.Specification specifyRoutineSchedule() { + assertForeign("routineSchedule"); + if (_routineSchedule == null) { + _routineSchedule = new RoutineScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryRoutineSchedule(); + } + + public RoutineScheduleCQ qy() { + return _myQyCall.qy().queryRoutineSchedule(); + } + }, _forDeriveReferrer); + } + return _routineSchedule; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoutineScheduleContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleContentCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,329 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.nss.RoutineScheduleNss; +import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of ROUTINE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoutineScheduleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public RoutineScheduleMappingCQ query() { + return getConditionQuery(); + } + + public RoutineScheduleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new RoutineScheduleMappingCQ(null, + getSqlClause(), getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<RoutineScheduleMappingCB>() {
    +     *     public void query(RoutineScheduleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoutineScheduleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<RoutineScheduleMappingCB>() {
    +     *     public void query(RoutineScheduleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final RoutineScheduleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(RoutineScheduleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use + * unionAll(UnionQuery unionQuery). + */ + public void unionAll(RoutineScheduleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected RoutineScheduleNss _nssRoutineSchedule; + + public RoutineScheduleNss getNssRoutineSchedule() { + if (_nssRoutineSchedule == null) { + _nssRoutineSchedule = new RoutineScheduleNss(null); + } + return _nssRoutineSchedule; + } + + public RoutineScheduleNss setupSelect_RoutineSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoutineSchedule(); + } + }); + if (_nssRoutineSchedule == null + || !_nssRoutineSchedule.hasConditionQuery()) { + _nssRoutineSchedule = new RoutineScheduleNss(query() + .queryRoutineSchedule()); + } + return _nssRoutineSchedule; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public RoutineScheduleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected RoutineScheduleCB.Specification _routineSchedule; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnScheduleId() { + doColumn("SCHEDULE_ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryRoutineSchedule()) { + columnScheduleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + public RoutineScheduleCB.Specification specifyRoutineSchedule() { + assertForeign("routineSchedule"); + if (_routineSchedule == null) { + _routineSchedule = new RoutineScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryRoutineSchedule(); + } + + public RoutineScheduleCQ qy() { + return _myQyCall.qy().queryRoutineSchedule(); + } + }, _forDeriveReferrer); + } + return _routineSchedule; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoutineScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,337 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.SingleScheduleContentNss; + +/** + * The base condition-bean of SINGLE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsSingleScheduleCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public SingleScheduleCQ query() { + return getConditionQuery(); + } + + public SingleScheduleCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new SingleScheduleCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<SingleScheduleCB>() {
    +     *     public void query(SingleScheduleCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final SingleScheduleCB cb = new SingleScheduleCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final SingleScheduleCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<SingleScheduleCB>() {
    +     *     public void query(SingleScheduleCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final SingleScheduleCB cb = new SingleScheduleCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final SingleScheduleCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(SingleScheduleCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(SingleScheduleCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected SingleScheduleContentNss _nssSingleScheduleContentAsOne; + + public SingleScheduleContentNss getNssSingleScheduleContentAsOne() { + if (_nssSingleScheduleContentAsOne == null) { + _nssSingleScheduleContentAsOne = new SingleScheduleContentNss(null); + } + return _nssSingleScheduleContentAsOne; + } + + public SingleScheduleContentNss setupSelect_SingleScheduleContentAsOne() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().querySingleScheduleContentAsOne(); + } + }); + if (_nssSingleScheduleContentAsOne == null + || !_nssSingleScheduleContentAsOne.hasConditionQuery()) { + _nssSingleScheduleContentAsOne = new SingleScheduleContentNss( + query().querySingleScheduleContentAsOne()); + } + return _nssSingleScheduleContentAsOne; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public SingleScheduleCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected SingleScheduleContentCB.Specification _singleScheduleContentAsOne; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnTitle() { + doColumn("TITLE"); + } + + public void columnLocation() { + doColumn("LOCATION"); + } + + public void columnStartDate() { + doColumn("START_DATE"); + } + + public void columnStartTime() { + doColumn("START_TIME"); + } + + public void columnEndDate() { + doColumn("END_DATE"); + } + + public void columnEndTime() { + doColumn("END_TIME"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + } + + protected String getTableDbName() { + return "SINGLE_SCHEDULE"; + } + + public SingleScheduleContentCB.Specification specifySingleScheduleContentAsOne() { + assertForeign("singleScheduleContentAsOne"); + if (_singleScheduleContentAsOne == null) { + _singleScheduleContentAsOne = new SingleScheduleContentCB.Specification( + _baseCB, new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQuerySingleScheduleContentAsOne(); + } + + public SingleScheduleContentCQ qy() { + return _myQyCall.qy() + .querySingleScheduleContentAsOne(); + } + }, _forDeriveReferrer); + } + return _singleScheduleContentAsOne; + } + + public RAFunction derivedSingleScheduleMappingList() { + return new RAFunction( + _baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + SingleScheduleCQ cq, String aliasName) { + cq.xderiveSingleScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return SingleScheduleCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,276 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.SingleScheduleNss; + +/** + * The base condition-bean of SINGLE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsSingleScheduleContentCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleContentCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public SingleScheduleContentCQ query() { + return getConditionQuery(); + } + + public SingleScheduleContentCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new SingleScheduleContentCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<SingleScheduleContentCB>() {
    +     *     public void query(SingleScheduleContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final SingleScheduleContentCB cb = new SingleScheduleContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final SingleScheduleContentCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<SingleScheduleContentCB>() {
    +     *     public void query(SingleScheduleContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final SingleScheduleContentCB cb = new SingleScheduleContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final SingleScheduleContentCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(SingleScheduleContentCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use + * unionAll(UnionQuery unionQuery). + */ + public void unionAll(SingleScheduleContentCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected SingleScheduleNss _nssSingleSchedule; + + public SingleScheduleNss getNssSingleSchedule() { + if (_nssSingleSchedule == null) { + _nssSingleSchedule = new SingleScheduleNss(null); + } + return _nssSingleSchedule; + } + + public SingleScheduleNss setupSelect_SingleSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().querySingleSchedule(); + } + }); + if (_nssSingleSchedule == null + || !_nssSingleSchedule.hasConditionQuery()) { + _nssSingleSchedule = new SingleScheduleNss(query() + .querySingleSchedule()); + } + return _nssSingleSchedule; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public SingleScheduleContentCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected SingleScheduleCB.Specification _singleSchedule; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnContent() { + doColumn("CONTENT"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQuerySingleSchedule()) { + } + } + + protected String getTableDbName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + public SingleScheduleCB.Specification specifySingleSchedule() { + assertForeign("singleSchedule"); + if (_singleSchedule == null) { + _singleSchedule = new SingleScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQuerySingleSchedule(); + } + + public SingleScheduleCQ qy() { + return _myQyCall.qy().querySingleSchedule(); + } + }, _forDeriveReferrer); + } + return _singleSchedule; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return SingleScheduleContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleContentCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,329 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.nss.SingleScheduleNss; +import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of SINGLE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsSingleScheduleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public SingleScheduleMappingCQ query() { + return getConditionQuery(); + } + + public SingleScheduleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new SingleScheduleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<SingleScheduleMappingCB>() {
    +     *     public void query(SingleScheduleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final SingleScheduleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<SingleScheduleMappingCB>() {
    +     *     public void query(SingleScheduleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final SingleScheduleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(SingleScheduleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use + * unionAll(UnionQuery unionQuery). + */ + public void unionAll(SingleScheduleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected SingleScheduleNss _nssSingleSchedule; + + public SingleScheduleNss getNssSingleSchedule() { + if (_nssSingleSchedule == null) { + _nssSingleSchedule = new SingleScheduleNss(null); + } + return _nssSingleSchedule; + } + + public SingleScheduleNss setupSelect_SingleSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().querySingleSchedule(); + } + }); + if (_nssSingleSchedule == null + || !_nssSingleSchedule.hasConditionQuery()) { + _nssSingleSchedule = new SingleScheduleNss(query() + .querySingleSchedule()); + } + return _nssSingleSchedule; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public SingleScheduleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected SingleScheduleCB.Specification _singleSchedule; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnScheduleId() { + doColumn("SCHEDULE_ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQuerySingleSchedule()) { + columnScheduleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + public SingleScheduleCB.Specification specifySingleSchedule() { + assertForeign("singleSchedule"); + if (_singleSchedule == null) { + _singleSchedule = new SingleScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQuerySingleSchedule(); + } + + public SingleScheduleCQ qy() { + return _myQyCall.qy().querySingleSchedule(); + } + }, _forDeriveReferrer); + } + return _singleSchedule; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return SingleScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,450 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.nss.GroupInfoNss; +import jp.sf.pal.scheduler.db.cbean.nss.RoleInfoNss; + +/** + * The base condition-bean of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("USER_ID"); + if (obj instanceof String) { + query().setUserId_Equal((String) obj); + } else { + checkTypeString(obj, "userId", "String"); + query().setUserId_Equal((String) obj); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_UserId_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_UserId_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public UserInfoCQ query() { + return getConditionQuery(); + } + + public UserInfoCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new UserInfoCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<UserInfoCB>() {
    +     *     public void query(UserInfoCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final UserInfoCB cb = new UserInfoCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final UserInfoCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(UserInfoCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(UserInfoCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected GroupInfoNss _nssGroupInfo; + + public GroupInfoNss getNssGroupInfo() { + if (_nssGroupInfo == null) { + _nssGroupInfo = new GroupInfoNss(null); + } + return _nssGroupInfo; + } + + public GroupInfoNss setupSelect_GroupInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryGroupInfo(); + } + }); + if (_nssGroupInfo == null || !_nssGroupInfo.hasConditionQuery()) { + _nssGroupInfo = new GroupInfoNss(query().queryGroupInfo()); + } + return _nssGroupInfo; + } + + protected RoleInfoNss _nssRoleInfo; + + public RoleInfoNss getNssRoleInfo() { + if (_nssRoleInfo == null) { + _nssRoleInfo = new RoleInfoNss(null); + } + return _nssRoleInfo; + } + + public RoleInfoNss setupSelect_RoleInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryRoleInfo(); + } + }); + if (_nssRoleInfo == null || !_nssRoleInfo.hasConditionQuery()) { + _nssRoleInfo = new RoleInfoNss(query().queryRoleInfo()); + } + return _nssRoleInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public UserInfoCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected GroupInfoCB.Specification _groupInfo; + + protected RoleInfoCB.Specification _roleInfo; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + public void columnGivenName() { + doColumn("GIVEN_NAME"); + } + + public void columnFamilyName() { + doColumn("FAMILY_NAME"); + } + + public void columnMiddleName() { + doColumn("MIDDLE_NAME"); + } + + public void columnGivenNameDesc() { + doColumn("GIVEN_NAME_DESC"); + } + + public void columnFamilyNameDesc() { + doColumn("FAMILY_NAME_DESC"); + } + + public void columnNickname() { + doColumn("NICKNAME"); + } + + public void columnGender() { + doColumn("GENDER"); + } + + public void columnBirthDate() { + doColumn("BIRTH_DATE"); + } + + public void columnEmail() { + doColumn("EMAIL"); + } + + public void columnUrl() { + doColumn("URL"); + } + + public void columnTelephone() { + doColumn("TELEPHONE"); + } + + public void columnRoleId() { + doColumn("ROLE_ID"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnUserId();// PK + if (_myQyCall.qy().hasConditionQueryGroupInfo()) { + columnGroupId();// FK + } + if (_myQyCall.qy().hasConditionQueryRoleInfo()) { + columnRoleId();// FK + } + } + + protected String getTableDbName() { + return "USER_INFO"; + } + + public GroupInfoCB.Specification specifyGroupInfo() { + assertForeign("groupInfo"); + if (_groupInfo == null) { + _groupInfo = new GroupInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryGroupInfo(); + } + + public GroupInfoCQ qy() { + return _myQyCall.qy().queryGroupInfo(); + } + }, _forDeriveReferrer); + } + return _groupInfo; + } + + public RoleInfoCB.Specification specifyRoleInfo() { + assertForeign("roleInfo"); + if (_roleInfo == null) { + _roleInfo = new RoleInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryRoleInfo(); + } + + public RoleInfoCQ qy() { + return _myQyCall.qy().queryRoleInfo(); + } + }, _forDeriveReferrer); + } + return _roleInfo; + } + + public RAFunction derivedGroupMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveGroupMappingList(function, subQuery, + aliasName); + } + }); + } + + public RAFunction derivedRoleMappingList() { + return new RAFunction(_baseCB, _myQyCall + .qy(), new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, UserInfoCQ cq, + String aliasName) { + cq.xderiveRoleMappingList(function, subQuery, aliasName); + } + }); + } + + public RAFunction derivedRoutineScheduleMappingList() { + return new RAFunction( + _baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveRoutineScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + + public RAFunction derivedSingleScheduleMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveSingleScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-query of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCQ extends BsGroupInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-query of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCQ extends BsGroupMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public GroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/GroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-query of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCQ extends BsRoleInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-query of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCQ extends BsRoleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleCQ; + +/** + * The condition-query of ROUTINE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleCQ extends BsRoutineScheduleCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoutineScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleContentCQ; + +/** + * The condition-query of ROUTINE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContentCQ extends BsRoutineScheduleContentCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoutineScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleMappingCQ; + +/** + * The condition-query of ROUTINE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMappingCQ extends BsRoutineScheduleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public RoutineScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleCQ; + +/** + * The condition-query of SINGLE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleCQ extends BsSingleScheduleCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public SingleScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleContentCQ; + +/** + * The condition-query of SINGLE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContentCQ extends BsSingleScheduleContentCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public SingleScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleMappingCQ; + +/** + * The condition-query of SINGLE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMappingCQ extends BsSingleScheduleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public SingleScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/UserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/UserInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/UserInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-query of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCQ extends BsUserInfoCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public UserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/UserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1896 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupInfoCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_INFO"; + } + + public String getTableSqlName() { + return "GROUP_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of GroupId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * GroupId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from + * USER_INFO where ...)} + * + * @param subQuery The sub-query of GroupId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepGroupId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,465 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsGroupMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsGroupMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "GROUP_MAPPING"; + } + + public String getTableSqlName() { + return "GROUP_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return GroupMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1894 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_INFO"; + } + + public String getTableSqlName() { + return "ROLE_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfoList(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotInScopeSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param userInfoCBquery Query. + * @deprecated Please use existsUserInfoList(subQuery) method. + */ + public void setRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(userInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ROLE_ID from USER_INFO where + * ...)} + * + * @param subQuery The sub-query of RoleId_ExistsSubQuery_UserInfoList for + * 'exists'. (NotNull) + */ + public void existsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_ExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_ExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ROLE_ID from USER_INFO + * where ...)} + * + * @param subQuery The sub-query of RoleId_NotExistsSubQuery_UserInfoList + * for 'not exists'. (NotNull) + */ + public void notExistsUserInfoList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_NotExistsSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_NotExistsSubQuery_UserInfoList( + UserInfoCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveUserInfoList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_DeriveSubQuery_UserInfoList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepRoleId_DeriveSubQuery_UserInfoList( + UserInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setName_IsNull() { + regName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setName_IsNotNull() { + regName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param description The value of description as equal. + */ + public void setDescription_Equal(String description) { + regDescription(CK_EQ, fRES(description)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as notEqual. + */ + public void setDescription_NotEqual(String description) { + regDescription(CK_NE, fRES(description)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterThan. + */ + public void setDescription_GreaterThan(String description) { + regDescription(CK_GT, fRES(description)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessThan. + */ + public void setDescription_LessThan(String description) { + regDescription(CK_LT, fRES(description)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as greaterEqual. + */ + public void setDescription_GreaterEqual(String description) { + regDescription(CK_GE, fRES(description)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as lessEqual. + */ + public void setDescription_LessEqual(String description) { + regDescription(CK_LE, fRES(description)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param description The value of description as prefixSearch. + */ + public void setDescription_PrefixSearch(String description) { + regDescription(CK_PS, fRES(description)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param description The value of description as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDescription_LikeSearch( + String description, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(description), + getCValueDescription(), "DESCRIPTION", "Description", + "description", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as inScope. + */ + public void setDescription_InScope(Collection descriptionList) { + regDescription(CK_INS, cTL(descriptionList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param description The collection of description as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDescription_InScope( + String description, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(description), getCValueDescription(), + "DESCRIPTION", "Description", "description", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param descriptionList The collection of description as notInScope. + */ + public void setDescription_NotInScope(Collection descriptionList) { + regDescription(CK_NINS, cTL(descriptionList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDescription_IsNull() { + regDescription(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDescription_IsNotNull() { + regDescription(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDescription(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + protected void registerInlineDescription(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDescription(), "DESCRIPTION", + "Description", "description"); + } + + abstract protected ConditionValue getCValueDescription(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,464 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoleMappingCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROLE_MAPPING"; + } + + public String getTableSqlName() { + return "ROLE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ subQuery); + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1920 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; + +/** + * The abstract condition-query of ROUTINE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoutineScheduleCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoutineScheduleCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param routineScheduleContentCBquery Query. + * @deprecated Please use inScopeRoutineScheduleContentAsOne(subQuery) + * method. + */ + public void setId_InScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ routineScheduleContentCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleContentAsOne(routineScheduleContentCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(routineScheduleContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeRoutineScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleContentAsOne(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery); + + /** + * @param routineScheduleMappingCBquery Query. + * @deprecated Please use inScopeRoutineScheduleMappingList(subQuery) + * method. + */ + public void setId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ routineScheduleMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(routineScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + public void inScopeRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + public void notInScopeRoutineScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery); + + public void notInScopeRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + /** + * @param routineScheduleContentCBquery Query. + * @deprecated Please use existsRoutineScheduleContentAsOne(subQuery) + * method. + */ + public void setId_ExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ routineScheduleContentCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleContentAsOne(routineScheduleContentCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(routineScheduleContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ID from + * ROUTINE_SCHEDULE_CONTENT where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_RoutineScheduleContentAsOne for 'exists'. + * (NotNull) + */ + public void existsRoutineScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleContentAsOne(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery); + + /** + * @param routineScheduleMappingCBquery Query. + * @deprecated Please use existsRoutineScheduleMappingList(subQuery) method. + */ + public void setId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ routineScheduleMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(routineScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select SCHEDULE_ID from + * ROUTINE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_RoutineScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ID from + * ROUTINE_SCHEDULE_CONTENT where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_RoutineScheduleContentAsOne for 'not + * exists'. (NotNull) + */ + public void notExistsRoutineScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_RoutineScheduleContentAsOne(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select SCHEDULE_ID from + * ROUTINE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_RoutineScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + public void xderiveRoutineScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param title The value of title as equal. + */ + public void setTitle_Equal(String title) { + regTitle(CK_EQ, fRES(title)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as notEqual. + */ + public void setTitle_NotEqual(String title) { + regTitle(CK_NE, fRES(title)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterThan. + */ + public void setTitle_GreaterThan(String title) { + regTitle(CK_GT, fRES(title)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessThan. + */ + public void setTitle_LessThan(String title) { + regTitle(CK_LT, fRES(title)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterEqual. + */ + public void setTitle_GreaterEqual(String title) { + regTitle(CK_GE, fRES(title)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessEqual. + */ + public void setTitle_LessEqual(String title) { + regTitle(CK_LE, fRES(title)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as prefixSearch. + */ + public void setTitle_PrefixSearch(String title) { + regTitle(CK_PS, fRES(title)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param title The value of title as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTitle_LikeSearch( + String title, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as inScope. + */ + public void setTitle_InScope(Collection titleList) { + regTitle(CK_INS, cTL(titleList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param title The collection of title as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTitle_InScope( + String title, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as notInScope. + */ + public void setTitle_NotInScope(Collection titleList) { + regTitle(CK_NINS, cTL(titleList)); + } + + protected void regTitle(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTitle(), "TITLE", "Title", "title"); + } + + protected void registerInlineTitle(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTitle(), "TITLE", "Title", + "title"); + } + + abstract protected ConditionValue getCValueTitle(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param location The value of location as equal. + */ + public void setLocation_Equal(String location) { + regLocation(CK_EQ, fRES(location)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as notEqual. + */ + public void setLocation_NotEqual(String location) { + regLocation(CK_NE, fRES(location)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as greaterThan. + */ + public void setLocation_GreaterThan(String location) { + regLocation(CK_GT, fRES(location)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as lessThan. + */ + public void setLocation_LessThan(String location) { + regLocation(CK_LT, fRES(location)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as greaterEqual. + */ + public void setLocation_GreaterEqual(String location) { + regLocation(CK_GE, fRES(location)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as lessEqual. + */ + public void setLocation_LessEqual(String location) { + regLocation(CK_LE, fRES(location)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as prefixSearch. + */ + public void setLocation_PrefixSearch(String location) { + regLocation(CK_PS, fRES(location)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param location The value of location as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocation_LikeSearch( + String location, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(location), getCValueLocation(), + "LOCATION", "Location", "location", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locationList The collection of location as inScope. + */ + public void setLocation_InScope(Collection locationList) { + regLocation(CK_INS, cTL(locationList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param location The collection of location as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocation_InScope( + String location, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(location), getCValueLocation(), + "LOCATION", "Location", "location", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locationList The collection of location as notInScope. + */ + public void setLocation_NotInScope(Collection locationList) { + regLocation(CK_NINS, cTL(locationList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocation_IsNull() { + regLocation(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocation_IsNotNull() { + regLocation(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocation(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocation(), "LOCATION", "Location", + "location"); + } + + protected void registerInlineLocation(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocation(), "LOCATION", + "Location", "location"); + } + + abstract protected ConditionValue getCValueLocation(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} + * + * @param startDate The value of startDate as equal. + */ + public void setStartDate_Equal(java.util.Date startDate) { + regStartDate(CK_EQ, startDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as notEqual. + */ + public void setStartDate_NotEqual(java.util.Date startDate) { + regStartDate(CK_NE, startDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterThan. + */ + public void setStartDate_GreaterThan(java.util.Date startDate) { + regStartDate(CK_GT, startDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessThan. + */ + public void setStartDate_LessThan(java.util.Date startDate) { + regStartDate(CK_LT, startDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterEqual. + */ + public void setStartDate_GreaterEqual(java.util.Date startDate) { + regStartDate(CK_GE, startDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessEqual. + */ + public void setStartDate_LessEqual(java.util.Date startDate) { + regStartDate(CK_LE, startDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setStartDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueStartDate(), + "START_DATE", "StartDate", "startDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + */ + public void setStartDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setStartDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regStartDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + protected void registerInlineStartDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + abstract protected ConditionValue getCValueStartDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIME} + * + * @param startTime The value of startTime as equal. + */ + public void setStartTime_Equal(java.sql.Time startTime) { + regStartTime(CK_EQ, startTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as notEqual. + */ + public void setStartTime_NotEqual(java.sql.Time startTime) { + regStartTime(CK_NE, startTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as greaterThan. + */ + public void setStartTime_GreaterThan(java.sql.Time startTime) { + regStartTime(CK_GT, startTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as lessThan. + */ + public void setStartTime_LessThan(java.sql.Time startTime) { + regStartTime(CK_LT, startTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as greaterEqual. + */ + public void setStartTime_GreaterEqual(java.sql.Time startTime) { + regStartTime(CK_GE, startTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as lessEqual. + */ + public void setStartTime_LessEqual(java.sql.Time startTime) { + regStartTime(CK_LE, startTime); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setStartTime_IsNull() { + regStartTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setStartTime_IsNotNull() { + regStartTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regStartTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartTime(), "START_TIME", + "StartTime", "startTime"); + } + + protected void registerInlineStartTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartTime(), "START_TIME", + "StartTime", "startTime"); + } + + abstract protected ConditionValue getCValueStartTime(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param endDate The value of endDate as equal. + */ + public void setEndDate_Equal(java.util.Date endDate) { + regEndDate(CK_EQ, endDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as notEqual. + */ + public void setEndDate_NotEqual(java.util.Date endDate) { + regEndDate(CK_NE, endDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterThan. + */ + public void setEndDate_GreaterThan(java.util.Date endDate) { + regEndDate(CK_GT, endDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessThan. + */ + public void setEndDate_LessThan(java.util.Date endDate) { + regEndDate(CK_LT, endDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterEqual. + */ + public void setEndDate_GreaterEqual(java.util.Date endDate) { + regEndDate(CK_GE, endDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessEqual. + */ + public void setEndDate_LessEqual(java.util.Date endDate) { + regEndDate(CK_LE, endDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setEndDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueEndDate(), "END_DATE", + "EndDate", "endDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + */ + public void setEndDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setEndDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEndDate_IsNull() { + regEndDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEndDate_IsNotNull() { + regEndDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEndDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndDate(), "END_DATE", "EndDate", + "endDate"); + } + + protected void registerInlineEndDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndDate(), "END_DATE", + "EndDate", "endDate"); + } + + abstract protected ConditionValue getCValueEndDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIME} + * + * @param endTime The value of endTime as equal. + */ + public void setEndTime_Equal(java.sql.Time endTime) { + regEndTime(CK_EQ, endTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as notEqual. + */ + public void setEndTime_NotEqual(java.sql.Time endTime) { + regEndTime(CK_NE, endTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as greaterThan. + */ + public void setEndTime_GreaterThan(java.sql.Time endTime) { + regEndTime(CK_GT, endTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as lessThan. + */ + public void setEndTime_LessThan(java.sql.Time endTime) { + regEndTime(CK_LT, endTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as greaterEqual. + */ + public void setEndTime_GreaterEqual(java.sql.Time endTime) { + regEndTime(CK_GE, endTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as lessEqual. + */ + public void setEndTime_LessEqual(java.sql.Time endTime) { + regEndTime(CK_LE, endTime); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEndTime_IsNull() { + regEndTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEndTime_IsNotNull() { + regEndTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEndTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndTime(), "END_TIME", "EndTime", + "endTime"); + } + + protected void registerInlineEndTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndTime(), "END_TIME", + "EndTime", "endTime"); + } + + abstract protected ConditionValue getCValueEndTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(10)} + * + * @param type The value of type as equal. + */ + public void setType_Equal(String type) { + regType(CK_EQ, fRES(type)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as notEqual. + */ + public void setType_NotEqual(String type) { + regType(CK_NE, fRES(type)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterThan. + */ + public void setType_GreaterThan(String type) { + regType(CK_GT, fRES(type)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessThan. + */ + public void setType_LessThan(String type) { + regType(CK_LT, fRES(type)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterEqual. + */ + public void setType_GreaterEqual(String type) { + regType(CK_GE, fRES(type)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessEqual. + */ + public void setType_LessEqual(String type) { + regType(CK_LE, fRES(type)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as prefixSearch. + */ + public void setType_PrefixSearch(String type) { + regType(CK_PS, fRES(type)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param type The value of type as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setType_LikeSearch( + String type, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", + "Type", "type", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as inScope. + */ + public void setType_InScope(Collection typeList) { + regType(CK_INS, cTL(typeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param type The collection of type as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setType_InScope( + String type, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", + "Type", "type", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as notInScope. + */ + public void setType_NotInScope(Collection typeList) { + regType(CK_NINS, cTL(typeList)); + } + + protected void regType(ConditionKey key, Object value) { + registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + protected void registerInlineType(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + abstract protected ConditionValue getCValueType(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoutineScheduleCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,324 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; + +/** + * The abstract condition-query of ROUTINE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoutineScheduleContentCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoutineScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to + * ROUTINE_SCHEDULE} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param routineScheduleCBquery Query. + * @deprecated Please use inScopeRoutineSchedule(subQuery) method. + */ + public void setId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ routineScheduleCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_RoutineSchedule(routineScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(routineScheduleCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeRoutineSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleCB cb = new RoutineScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_RoutineSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1000)} + * + * @param content The value of content as equal. + */ + public void setContent_Equal(String content) { + regContent(CK_EQ, fRES(content)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as notEqual. + */ + public void setContent_NotEqual(String content) { + regContent(CK_NE, fRES(content)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterThan. + */ + public void setContent_GreaterThan(String content) { + regContent(CK_GT, fRES(content)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessThan. + */ + public void setContent_LessThan(String content) { + regContent(CK_LT, fRES(content)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterEqual. + */ + public void setContent_GreaterEqual(String content) { + regContent(CK_GE, fRES(content)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessEqual. + */ + public void setContent_LessEqual(String content) { + regContent(CK_LE, fRES(content)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as prefixSearch. + */ + public void setContent_PrefixSearch(String content) { + regContent(CK_PS, fRES(content)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param content The value of content as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setContent_LikeSearch( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as inScope. + */ + public void setContent_InScope(Collection contentList) { + regContent(CK_INS, cTL(contentList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param content The collection of content as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setContent_InScope( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as notInScope. + */ + public void setContent_NotInScope(Collection contentList) { + regContent(CK_NINS, cTL(contentList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setContent_IsNull() { + regContent(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setContent_IsNotNull() { + regContent(CK_ISNN, DUMMY_OBJECT); + } + + protected void regContent(ConditionKey key, Object value) { + registerQuery(key, value, getCValueContent(), "CONTENT", "Content", + "content"); + } + + protected void registerInlineContent(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueContent(), "CONTENT", + "Content", "content"); + } + + abstract protected ConditionValue getCValueContent(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoutineScheduleContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,429 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of ROUTINE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsRoutineScheduleMappingCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsRoutineScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "ROUTINE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * ROUTINE_SCHEDULE} + * + * @param scheduleId The value of scheduleId as equal. + */ + public void setScheduleId_Equal(Long scheduleId) { + regScheduleId(CK_EQ, scheduleId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as notEqual. + */ + public void setScheduleId_NotEqual(Long scheduleId) { + regScheduleId(CK_NE, scheduleId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterThan. + */ + public void setScheduleId_GreaterThan(Long scheduleId) { + regScheduleId(CK_GT, scheduleId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessThan. + */ + public void setScheduleId_LessThan(Long scheduleId) { + regScheduleId(CK_LT, scheduleId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterEqual. + */ + public void setScheduleId_GreaterEqual(Long scheduleId) { + regScheduleId(CK_GE, scheduleId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessEqual. + */ + public void setScheduleId_LessEqual(Long scheduleId) { + regScheduleId(CK_LE, scheduleId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as inScope. + */ + public void setScheduleId_InScope(Collection scheduleIdList) { + regScheduleId(CK_INS, cTL(scheduleIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as notInScope. + */ + public void setScheduleId_NotInScope(Collection scheduleIdList) { + regScheduleId(CK_NINS, cTL(scheduleIdList)); + } + + /** + * @param routineScheduleCBquery Query. + * @deprecated Please use inScopeRoutineSchedule(subQuery) method. + */ + public void setScheduleId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ routineScheduleCBquery) { + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_RoutineSchedule(routineScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(routineScheduleCBquery, "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + public void inScopeRoutineSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleCB cb = new RoutineScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_RoutineSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepScheduleId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ subQuery); + + protected void regScheduleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + protected void registerInlineScheduleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + abstract protected ConditionValue getCValueScheduleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return RoutineScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1809 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; + +/** + * The abstract condition-query of SINGLE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsSingleScheduleCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsSingleScheduleCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param singleScheduleContentCBquery Query. + * @deprecated Please use inScopeSingleScheduleContentAsOne(subQuery) + * method. + */ + public void setId_InScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ singleScheduleContentCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleContentAsOne(singleScheduleContentCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(singleScheduleContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeSingleScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleContentCB cb = new SingleScheduleContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleContentAsOne(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery); + + /** + * @param singleScheduleMappingCBquery Query. + * @deprecated Please use inScopeSingleScheduleMappingList(subQuery) method. + */ + public void setId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ singleScheduleMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(singleScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + public void inScopeSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + public void notInScopeSingleScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleContentCB cb = new SingleScheduleContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_SingleScheduleContentAsOne(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery); + + public void notInScopeSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + /** + * @param singleScheduleContentCBquery Query. + * @deprecated Please use existsSingleScheduleContentAsOne(subQuery) method. + */ + public void setId_ExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ singleScheduleContentCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleContentAsOne(singleScheduleContentCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(singleScheduleContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ID from + * SINGLE_SCHEDULE_CONTENT where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_SingleScheduleContentAsOne for 'exists'. + * (NotNull) + */ + public void existsSingleScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleContentCB cb = new SingleScheduleContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleContentAsOne(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery); + + /** + * @param singleScheduleMappingCBquery Query. + * @deprecated Please use existsSingleScheduleMappingList(subQuery) method. + */ + public void setId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ singleScheduleMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(singleScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select SCHEDULE_ID from + * SINGLE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_SingleScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ID from + * SINGLE_SCHEDULE_CONTENT where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_SingleScheduleContentAsOne for 'not + * exists'. (NotNull) + */ + public void notExistsSingleScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleContentCB cb = new SingleScheduleContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_SingleScheduleContentAsOne(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select SCHEDULE_ID from + * SINGLE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_SingleScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + public void xderiveSingleScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param title The value of title as equal. + */ + public void setTitle_Equal(String title) { + regTitle(CK_EQ, fRES(title)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as notEqual. + */ + public void setTitle_NotEqual(String title) { + regTitle(CK_NE, fRES(title)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterThan. + */ + public void setTitle_GreaterThan(String title) { + regTitle(CK_GT, fRES(title)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessThan. + */ + public void setTitle_LessThan(String title) { + regTitle(CK_LT, fRES(title)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterEqual. + */ + public void setTitle_GreaterEqual(String title) { + regTitle(CK_GE, fRES(title)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessEqual. + */ + public void setTitle_LessEqual(String title) { + regTitle(CK_LE, fRES(title)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as prefixSearch. + */ + public void setTitle_PrefixSearch(String title) { + regTitle(CK_PS, fRES(title)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param title The value of title as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTitle_LikeSearch( + String title, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as inScope. + */ + public void setTitle_InScope(Collection titleList) { + regTitle(CK_INS, cTL(titleList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param title The collection of title as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTitle_InScope( + String title, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as notInScope. + */ + public void setTitle_NotInScope(Collection titleList) { + regTitle(CK_NINS, cTL(titleList)); + } + + protected void regTitle(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTitle(), "TITLE", "Title", "title"); + } + + protected void registerInlineTitle(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTitle(), "TITLE", "Title", + "title"); + } + + abstract protected ConditionValue getCValueTitle(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param location The value of location as equal. + */ + public void setLocation_Equal(String location) { + regLocation(CK_EQ, fRES(location)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as notEqual. + */ + public void setLocation_NotEqual(String location) { + regLocation(CK_NE, fRES(location)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as greaterThan. + */ + public void setLocation_GreaterThan(String location) { + regLocation(CK_GT, fRES(location)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as lessThan. + */ + public void setLocation_LessThan(String location) { + regLocation(CK_LT, fRES(location)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as greaterEqual. + */ + public void setLocation_GreaterEqual(String location) { + regLocation(CK_GE, fRES(location)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as lessEqual. + */ + public void setLocation_LessEqual(String location) { + regLocation(CK_LE, fRES(location)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as prefixSearch. + */ + public void setLocation_PrefixSearch(String location) { + regLocation(CK_PS, fRES(location)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param location The value of location as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocation_LikeSearch( + String location, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(location), getCValueLocation(), + "LOCATION", "Location", "location", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locationList The collection of location as inScope. + */ + public void setLocation_InScope(Collection locationList) { + regLocation(CK_INS, cTL(locationList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param location The collection of location as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocation_InScope( + String location, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(location), getCValueLocation(), + "LOCATION", "Location", "location", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locationList The collection of location as notInScope. + */ + public void setLocation_NotInScope(Collection locationList) { + regLocation(CK_NINS, cTL(locationList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocation_IsNull() { + regLocation(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocation_IsNotNull() { + regLocation(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocation(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocation(), "LOCATION", "Location", + "location"); + } + + protected void registerInlineLocation(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocation(), "LOCATION", + "Location", "location"); + } + + abstract protected ConditionValue getCValueLocation(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} + * + * @param startDate The value of startDate as equal. + */ + public void setStartDate_Equal(java.util.Date startDate) { + regStartDate(CK_EQ, startDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as notEqual. + */ + public void setStartDate_NotEqual(java.util.Date startDate) { + regStartDate(CK_NE, startDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterThan. + */ + public void setStartDate_GreaterThan(java.util.Date startDate) { + regStartDate(CK_GT, startDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessThan. + */ + public void setStartDate_LessThan(java.util.Date startDate) { + regStartDate(CK_LT, startDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterEqual. + */ + public void setStartDate_GreaterEqual(java.util.Date startDate) { + regStartDate(CK_GE, startDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessEqual. + */ + public void setStartDate_LessEqual(java.util.Date startDate) { + regStartDate(CK_LE, startDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setStartDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueStartDate(), + "START_DATE", "StartDate", "startDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + */ + public void setStartDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setStartDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regStartDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + protected void registerInlineStartDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + abstract protected ConditionValue getCValueStartDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIME} + * + * @param startTime The value of startTime as equal. + */ + public void setStartTime_Equal(java.sql.Time startTime) { + regStartTime(CK_EQ, startTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as notEqual. + */ + public void setStartTime_NotEqual(java.sql.Time startTime) { + regStartTime(CK_NE, startTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as greaterThan. + */ + public void setStartTime_GreaterThan(java.sql.Time startTime) { + regStartTime(CK_GT, startTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as lessThan. + */ + public void setStartTime_LessThan(java.sql.Time startTime) { + regStartTime(CK_LT, startTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as greaterEqual. + */ + public void setStartTime_GreaterEqual(java.sql.Time startTime) { + regStartTime(CK_GE, startTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as lessEqual. + */ + public void setStartTime_LessEqual(java.sql.Time startTime) { + regStartTime(CK_LE, startTime); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setStartTime_IsNull() { + regStartTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setStartTime_IsNotNull() { + regStartTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regStartTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartTime(), "START_TIME", + "StartTime", "startTime"); + } + + protected void registerInlineStartTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartTime(), "START_TIME", + "StartTime", "startTime"); + } + + abstract protected ConditionValue getCValueStartTime(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} + * + * @param endDate The value of endDate as equal. + */ + public void setEndDate_Equal(java.util.Date endDate) { + regEndDate(CK_EQ, endDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as notEqual. + */ + public void setEndDate_NotEqual(java.util.Date endDate) { + regEndDate(CK_NE, endDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterThan. + */ + public void setEndDate_GreaterThan(java.util.Date endDate) { + regEndDate(CK_GT, endDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessThan. + */ + public void setEndDate_LessThan(java.util.Date endDate) { + regEndDate(CK_LT, endDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterEqual. + */ + public void setEndDate_GreaterEqual(java.util.Date endDate) { + regEndDate(CK_GE, endDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessEqual. + */ + public void setEndDate_LessEqual(java.util.Date endDate) { + regEndDate(CK_LE, endDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setEndDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueEndDate(), "END_DATE", + "EndDate", "endDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + */ + public void setEndDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setEndDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regEndDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndDate(), "END_DATE", "EndDate", + "endDate"); + } + + protected void registerInlineEndDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndDate(), "END_DATE", + "EndDate", "endDate"); + } + + abstract protected ConditionValue getCValueEndDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIME} + * + * @param endTime The value of endTime as equal. + */ + public void setEndTime_Equal(java.sql.Time endTime) { + regEndTime(CK_EQ, endTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as notEqual. + */ + public void setEndTime_NotEqual(java.sql.Time endTime) { + regEndTime(CK_NE, endTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as greaterThan. + */ + public void setEndTime_GreaterThan(java.sql.Time endTime) { + regEndTime(CK_GT, endTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as lessThan. + */ + public void setEndTime_LessThan(java.sql.Time endTime) { + regEndTime(CK_LT, endTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as greaterEqual. + */ + public void setEndTime_GreaterEqual(java.sql.Time endTime) { + regEndTime(CK_GE, endTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as lessEqual. + */ + public void setEndTime_LessEqual(java.sql.Time endTime) { + regEndTime(CK_LE, endTime); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEndTime_IsNull() { + regEndTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEndTime_IsNotNull() { + regEndTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEndTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndTime(), "END_TIME", "EndTime", + "endTime"); + } + + protected void registerInlineEndTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndTime(), "END_TIME", + "EndTime", "endTime"); + } + + abstract protected ConditionValue getCValueEndTime(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUpdatedTime_IsNull() { + regUpdatedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUpdatedTime_IsNotNull() { + regUpdatedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUpdatedBy_IsNull() { + regUpdatedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUpdatedBy_IsNotNull() { + regUpdatedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return SingleScheduleCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,324 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; + +/** + * The abstract condition-query of SINGLE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsSingleScheduleContentCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsSingleScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to + * SINGLE_SCHEDULE} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param singleScheduleCBquery Query. + * @deprecated Please use inScopeSingleSchedule(subQuery) method. + */ + public void setId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ singleScheduleCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_SingleSchedule(singleScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(singleScheduleCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeSingleSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleCB cb = new SingleScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_SingleSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1000)} + * + * @param content The value of content as equal. + */ + public void setContent_Equal(String content) { + regContent(CK_EQ, fRES(content)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as notEqual. + */ + public void setContent_NotEqual(String content) { + regContent(CK_NE, fRES(content)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterThan. + */ + public void setContent_GreaterThan(String content) { + regContent(CK_GT, fRES(content)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessThan. + */ + public void setContent_LessThan(String content) { + regContent(CK_LT, fRES(content)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterEqual. + */ + public void setContent_GreaterEqual(String content) { + regContent(CK_GE, fRES(content)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessEqual. + */ + public void setContent_LessEqual(String content) { + regContent(CK_LE, fRES(content)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as prefixSearch. + */ + public void setContent_PrefixSearch(String content) { + regContent(CK_PS, fRES(content)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param content The value of content as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setContent_LikeSearch( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as inScope. + */ + public void setContent_InScope(Collection contentList) { + regContent(CK_INS, cTL(contentList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param content The collection of content as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setContent_InScope( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as notInScope. + */ + public void setContent_NotInScope(Collection contentList) { + regContent(CK_NINS, cTL(contentList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setContent_IsNull() { + regContent(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setContent_IsNotNull() { + regContent(CK_ISNN, DUMMY_OBJECT); + } + + protected void regContent(ConditionKey key, Object value) { + registerQuery(key, value, getCValueContent(), "CONTENT", "Content", + "content"); + } + + protected void registerInlineContent(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueContent(), "CONTENT", + "Content", "content"); + } + + abstract protected ConditionValue getCValueContent(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return SingleScheduleContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,429 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of SINGLE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsSingleScheduleMappingCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsSingleScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "SINGLE_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * SINGLE_SCHEDULE} + * + * @param scheduleId The value of scheduleId as equal. + */ + public void setScheduleId_Equal(Long scheduleId) { + regScheduleId(CK_EQ, scheduleId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as notEqual. + */ + public void setScheduleId_NotEqual(Long scheduleId) { + regScheduleId(CK_NE, scheduleId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterThan. + */ + public void setScheduleId_GreaterThan(Long scheduleId) { + regScheduleId(CK_GT, scheduleId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessThan. + */ + public void setScheduleId_LessThan(Long scheduleId) { + regScheduleId(CK_LT, scheduleId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterEqual. + */ + public void setScheduleId_GreaterEqual(Long scheduleId) { + regScheduleId(CK_GE, scheduleId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessEqual. + */ + public void setScheduleId_LessEqual(Long scheduleId) { + regScheduleId(CK_LE, scheduleId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as inScope. + */ + public void setScheduleId_InScope(Collection scheduleIdList) { + regScheduleId(CK_INS, cTL(scheduleIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as notInScope. + */ + public void setScheduleId_NotInScope(Collection scheduleIdList) { + regScheduleId(CK_NINS, cTL(scheduleIdList)); + } + + /** + * @param singleScheduleCBquery Query. + * @deprecated Please use inScopeSingleSchedule(subQuery) method. + */ + public void setScheduleId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ singleScheduleCBquery) { + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_SingleSchedule(singleScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(singleScheduleCBquery, "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + public void inScopeSingleSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleCB cb = new SingleScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_SingleSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepScheduleId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ subQuery); + + protected void regScheduleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + protected void registerInlineScheduleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + abstract protected ConditionValue getCValueScheduleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return SingleScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,3288 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsUserInfoCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "USER_INFO"; + } + + public String getTableSqlName() { + return "USER_INFO"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {PK : NotNull : + * VARCHAR(255)} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use inScopeGroupMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use inScopeRoleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param routineScheduleMappingCBquery Query. + * @deprecated Please use inScopeRoutineScheduleMappingList(subQuery) + * method. + */ + public void setUserId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ routineScheduleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(routineScheduleMappingCBquery, "USER_ID", + "USER_ID", subQueryPropertyName); + } + + public void inScopeRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + /** + * @param singleScheduleMappingCBquery Query. + * @deprecated Please use inScopeSingleScheduleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ singleScheduleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(singleScheduleMappingCBquery, "USER_ID", + "USER_ID", subQueryPropertyName); + } + + public void inScopeSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + public void notInScopeGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void notInScopeRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void notInScopeRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + public void notInScopeSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotInScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + /** + * @param groupMappingCBquery Query. + * @deprecated Please use existsGroupMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ groupMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(groupMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(groupMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from GROUP_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_GroupMappingList + * for 'exists'. (NotNull) + */ + public void existsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * @param roleMappingCBquery Query. + * @deprecated Please use existsRoleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ roleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(roleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(roleMappingCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from ROLE_MAPPING + * where ...)} + * + * @param subQuery The sub-query of UserId_ExistsSubQuery_RoleMappingList + * for 'exists'. (NotNull) + */ + public void existsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * @param routineScheduleMappingCBquery Query. + * @deprecated Please use existsRoutineScheduleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ routineScheduleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(routineScheduleMappingCBquery, "USER_ID", + "USER_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from + * ROUTINE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_RoutineScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + /** + * @param singleScheduleMappingCBquery Query. + * @deprecated Please use existsSingleScheduleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ singleScheduleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(singleScheduleMappingCBquery, "USER_ID", + "USER_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select USER_ID from + * SINGLE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_SingleScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_ExistsSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * GROUP_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_GroupMappingList for 'not exists'. + * (NotNull) + */ + public void notExistsGroupMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROLE_MAPPING where ...)} + * + * @param subQuery The sub-query of UserId_NotExistsSubQuery_RoleMappingList + * for 'not exists'. (NotNull) + */ + public void notExistsRoleMappingList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * ROUTINE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_RoutineScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsRoutineScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * SINGLE_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_NotExistsSubQuery_SingleScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsSingleScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_NotExistsSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_NotExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + public void xderiveGroupMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + GroupMappingCB cb = new GroupMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_GroupMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery); + + public void xderiveRoleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoleMappingCB cb = new RoleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery); + + public void xderiveRoutineScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_RoutineScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery); + + public void xderiveSingleScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_DeriveSubQuery_SingleScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepUserId_DeriveSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUserId_IsNull() { + regUserId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUserId_IsNotNull() { + regUserId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenName The value of givenName as equal. + */ + public void setGivenName_Equal(String givenName) { + regGivenName(CK_EQ, fRES(givenName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as notEqual. + */ + public void setGivenName_NotEqual(String givenName) { + regGivenName(CK_NE, fRES(givenName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterThan. + */ + public void setGivenName_GreaterThan(String givenName) { + regGivenName(CK_GT, fRES(givenName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessThan. + */ + public void setGivenName_LessThan(String givenName) { + regGivenName(CK_LT, fRES(givenName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as greaterEqual. + */ + public void setGivenName_GreaterEqual(String givenName) { + regGivenName(CK_GE, fRES(givenName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as lessEqual. + */ + public void setGivenName_LessEqual(String givenName) { + regGivenName(CK_LE, fRES(givenName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenName The value of givenName as prefixSearch. + */ + public void setGivenName_PrefixSearch(String givenName) { + regGivenName(CK_PS, fRES(givenName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenName The value of givenName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenName_LikeSearch( + String givenName, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as inScope. + */ + public void setGivenName_InScope(Collection givenNameList) { + regGivenName(CK_INS, cTL(givenNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenName The collection of givenName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenName_InScope( + String givenName, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenName), getCValueGivenName(), + "GIVEN_NAME", "GivenName", "givenName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameList The collection of givenName as notInScope. + */ + public void setGivenName_NotInScope(Collection givenNameList) { + regGivenName(CK_NINS, cTL(givenNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenName_IsNull() { + regGivenName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenName_IsNotNull() { + regGivenName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + protected void registerInlineGivenName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenName(), "GIVEN_NAME", + "GivenName", "givenName"); + } + + abstract protected ConditionValue getCValueGivenName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyName The value of familyName as equal. + */ + public void setFamilyName_Equal(String familyName) { + regFamilyName(CK_EQ, fRES(familyName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as notEqual. + */ + public void setFamilyName_NotEqual(String familyName) { + regFamilyName(CK_NE, fRES(familyName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterThan. + */ + public void setFamilyName_GreaterThan(String familyName) { + regFamilyName(CK_GT, fRES(familyName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessThan. + */ + public void setFamilyName_LessThan(String familyName) { + regFamilyName(CK_LT, fRES(familyName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as greaterEqual. + */ + public void setFamilyName_GreaterEqual(String familyName) { + regFamilyName(CK_GE, fRES(familyName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as lessEqual. + */ + public void setFamilyName_LessEqual(String familyName) { + regFamilyName(CK_LE, fRES(familyName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyName The value of familyName as prefixSearch. + */ + public void setFamilyName_PrefixSearch(String familyName) { + regFamilyName(CK_PS, fRES(familyName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyName The value of familyName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyName_LikeSearch( + String familyName, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as inScope. + */ + public void setFamilyName_InScope(Collection familyNameList) { + regFamilyName(CK_INS, cTL(familyNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyName The collection of familyName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyName_InScope( + String familyName, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyName), getCValueFamilyName(), + "FAMILY_NAME", "FamilyName", "familyName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameList The collection of familyName as notInScope. + */ + public void setFamilyName_NotInScope(Collection familyNameList) { + regFamilyName(CK_NINS, cTL(familyNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyName_IsNull() { + regFamilyName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyName_IsNotNull() { + regFamilyName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + protected void registerInlineFamilyName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyName(), "FAMILY_NAME", + "FamilyName", "familyName"); + } + + abstract protected ConditionValue getCValueFamilyName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(50)} + * + * @param middleName The value of middleName as equal. + */ + public void setMiddleName_Equal(String middleName) { + regMiddleName(CK_EQ, fRES(middleName)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as notEqual. + */ + public void setMiddleName_NotEqual(String middleName) { + regMiddleName(CK_NE, fRES(middleName)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterThan. + */ + public void setMiddleName_GreaterThan(String middleName) { + regMiddleName(CK_GT, fRES(middleName)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessThan. + */ + public void setMiddleName_LessThan(String middleName) { + regMiddleName(CK_LT, fRES(middleName)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as greaterEqual. + */ + public void setMiddleName_GreaterEqual(String middleName) { + regMiddleName(CK_GE, fRES(middleName)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as lessEqual. + */ + public void setMiddleName_LessEqual(String middleName) { + regMiddleName(CK_LE, fRES(middleName)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param middleName The value of middleName as prefixSearch. + */ + public void setMiddleName_PrefixSearch(String middleName) { + regMiddleName(CK_PS, fRES(middleName)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param middleName The value of middleName as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setMiddleName_LikeSearch( + String middleName, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as inScope. + */ + public void setMiddleName_InScope(Collection middleNameList) { + regMiddleName(CK_INS, cTL(middleNameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleName The collection of middleName as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setMiddleName_InScope( + String middleName, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(middleName), getCValueMiddleName(), + "MIDDLE_NAME", "MiddleName", "middleName", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param middleNameList The collection of middleName as notInScope. + */ + public void setMiddleName_NotInScope(Collection middleNameList) { + regMiddleName(CK_NINS, cTL(middleNameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setMiddleName_IsNull() { + regMiddleName(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setMiddleName_IsNotNull() { + regMiddleName(CK_ISNN, DUMMY_OBJECT); + } + + protected void regMiddleName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + protected void registerInlineMiddleName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueMiddleName(), "MIDDLE_NAME", + "MiddleName", "middleName"); + } + + abstract protected ConditionValue getCValueMiddleName(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param givenNameDesc The value of givenNameDesc as equal. + */ + public void setGivenNameDesc_Equal(String givenNameDesc) { + regGivenNameDesc(CK_EQ, fRES(givenNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as notEqual. + */ + public void setGivenNameDesc_NotEqual(String givenNameDesc) { + regGivenNameDesc(CK_NE, fRES(givenNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterThan. + */ + public void setGivenNameDesc_GreaterThan(String givenNameDesc) { + regGivenNameDesc(CK_GT, fRES(givenNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessThan. + */ + public void setGivenNameDesc_LessThan(String givenNameDesc) { + regGivenNameDesc(CK_LT, fRES(givenNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as greaterEqual. + */ + public void setGivenNameDesc_GreaterEqual(String givenNameDesc) { + regGivenNameDesc(CK_GE, fRES(givenNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as lessEqual. + */ + public void setGivenNameDesc_LessEqual(String givenNameDesc) { + regGivenNameDesc(CK_LE, fRES(givenNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param givenNameDesc The value of givenNameDesc as prefixSearch. + */ + public void setGivenNameDesc_PrefixSearch(String givenNameDesc) { + regGivenNameDesc(CK_PS, fRES(givenNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param givenNameDesc The value of givenNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGivenNameDesc_LikeSearch( + String givenNameDesc, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as inScope. + */ + public void setGivenNameDesc_InScope(Collection givenNameDescList) { + regGivenNameDesc(CK_INS, cTL(givenNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDesc The collection of givenNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGivenNameDesc_InScope( + String givenNameDesc, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(givenNameDesc), + getCValueGivenNameDesc(), "GIVEN_NAME_DESC", "GivenNameDesc", + "givenNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param givenNameDescList The collection of givenNameDesc as notInScope. + */ + public void setGivenNameDesc_NotInScope(Collection givenNameDescList) { + regGivenNameDesc(CK_NINS, cTL(givenNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNull() { + regGivenNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGivenNameDesc_IsNotNull() { + regGivenNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGivenNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGivenNameDesc(), "GIVEN_NAME_DESC", + "GivenNameDesc", "givenNameDesc"); + } + + protected void registerInlineGivenNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGivenNameDesc(), + "GIVEN_NAME_DESC", "GivenNameDesc", "givenNameDesc"); + } + + abstract protected ConditionValue getCValueGivenNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param familyNameDesc The value of familyNameDesc as equal. + */ + public void setFamilyNameDesc_Equal(String familyNameDesc) { + regFamilyNameDesc(CK_EQ, fRES(familyNameDesc)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as notEqual. + */ + public void setFamilyNameDesc_NotEqual(String familyNameDesc) { + regFamilyNameDesc(CK_NE, fRES(familyNameDesc)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterThan. + */ + public void setFamilyNameDesc_GreaterThan(String familyNameDesc) { + regFamilyNameDesc(CK_GT, fRES(familyNameDesc)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessThan. + */ + public void setFamilyNameDesc_LessThan(String familyNameDesc) { + regFamilyNameDesc(CK_LT, fRES(familyNameDesc)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as greaterEqual. + */ + public void setFamilyNameDesc_GreaterEqual(String familyNameDesc) { + regFamilyNameDesc(CK_GE, fRES(familyNameDesc)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as lessEqual. + */ + public void setFamilyNameDesc_LessEqual(String familyNameDesc) { + regFamilyNameDesc(CK_LE, fRES(familyNameDesc)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param familyNameDesc The value of familyNameDesc as prefixSearch. + */ + public void setFamilyNameDesc_PrefixSearch(String familyNameDesc) { + regFamilyNameDesc(CK_PS, fRES(familyNameDesc)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param familyNameDesc The value of familyNameDesc as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setFamilyNameDesc_LikeSearch( + String familyNameDesc, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as inScope. + */ + public void setFamilyNameDesc_InScope(Collection familyNameDescList) { + regFamilyNameDesc(CK_INS, cTL(familyNameDescList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDesc The collection of familyNameDesc as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setFamilyNameDesc_InScope( + String familyNameDesc, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(familyNameDesc), + getCValueFamilyNameDesc(), "FAMILY_NAME_DESC", + "FamilyNameDesc", "familyNameDesc", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param familyNameDescList The collection of familyNameDesc as notInScope. + */ + public void setFamilyNameDesc_NotInScope( + Collection familyNameDescList) { + regFamilyNameDesc(CK_NINS, cTL(familyNameDescList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNull() { + regFamilyNameDesc(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setFamilyNameDesc_IsNotNull() { + regFamilyNameDesc(CK_ISNN, DUMMY_OBJECT); + } + + protected void regFamilyNameDesc(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + protected void registerInlineFamilyNameDesc(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFamilyNameDesc(), + "FAMILY_NAME_DESC", "FamilyNameDesc", "familyNameDesc"); + } + + abstract protected ConditionValue getCValueFamilyNameDesc(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param nickname The value of nickname as equal. + */ + public void setNickname_Equal(String nickname) { + regNickname(CK_EQ, fRES(nickname)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as notEqual. + */ + public void setNickname_NotEqual(String nickname) { + regNickname(CK_NE, fRES(nickname)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterThan. + */ + public void setNickname_GreaterThan(String nickname) { + regNickname(CK_GT, fRES(nickname)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessThan. + */ + public void setNickname_LessThan(String nickname) { + regNickname(CK_LT, fRES(nickname)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as greaterEqual. + */ + public void setNickname_GreaterEqual(String nickname) { + regNickname(CK_GE, fRES(nickname)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as lessEqual. + */ + public void setNickname_LessEqual(String nickname) { + regNickname(CK_LE, fRES(nickname)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param nickname The value of nickname as prefixSearch. + */ + public void setNickname_PrefixSearch(String nickname) { + regNickname(CK_PS, fRES(nickname)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param nickname The value of nickname as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setNickname_LikeSearch( + String nickname, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as inScope. + */ + public void setNickname_InScope(Collection nicknameList) { + regNickname(CK_INS, cTL(nicknameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nickname The collection of nickname as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setNickname_InScope( + String nickname, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(nickname), getCValueNickname(), + "NICKNAME", "Nickname", "nickname", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nicknameList The collection of nickname as notInScope. + */ + public void setNickname_NotInScope(Collection nicknameList) { + regNickname(CK_NINS, cTL(nicknameList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setNickname_IsNull() { + regNickname(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setNickname_IsNotNull() { + regNickname(CK_ISNN, DUMMY_OBJECT); + } + + protected void regNickname(ConditionKey key, Object value) { + registerQuery(key, value, getCValueNickname(), "NICKNAME", "Nickname", + "nickname"); + } + + protected void registerInlineNickname(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueNickname(), "NICKNAME", + "Nickname", "nickname"); + } + + abstract protected ConditionValue getCValueNickname(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1)} + * + * @param gender The value of gender as equal. + */ + public void setGender_Equal(String gender) { + regGender(CK_EQ, fRES(gender)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as notEqual. + */ + public void setGender_NotEqual(String gender) { + regGender(CK_NE, fRES(gender)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterThan. + */ + public void setGender_GreaterThan(String gender) { + regGender(CK_GT, fRES(gender)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessThan. + */ + public void setGender_LessThan(String gender) { + regGender(CK_LT, fRES(gender)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as greaterEqual. + */ + public void setGender_GreaterEqual(String gender) { + regGender(CK_GE, fRES(gender)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as lessEqual. + */ + public void setGender_LessEqual(String gender) { + regGender(CK_LE, fRES(gender)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param gender The value of gender as prefixSearch. + */ + public void setGender_PrefixSearch(String gender) { + regGender(CK_PS, fRES(gender)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param gender The value of gender as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGender_LikeSearch( + String gender, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(gender), getCValueGender(), + "GENDER", "Gender", "gender", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as inScope. + */ + public void setGender_InScope(Collection genderList) { + regGender(CK_INS, cTL(genderList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param gender The collection of gender as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGender_InScope( + String gender, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(gender), getCValueGender(), "GENDER", + "Gender", "gender", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param genderList The collection of gender as notInScope. + */ + public void setGender_NotInScope(Collection genderList) { + regGender(CK_NINS, cTL(genderList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGender_IsNull() { + regGender(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGender_IsNotNull() { + regGender(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGender(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + protected void registerInlineGender(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGender(), "GENDER", "Gender", + "gender"); + } + + abstract protected ConditionValue getCValueGender(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param birthDate The value of birthDate as equal. + */ + public void setBirthDate_Equal(java.util.Date birthDate) { + regBirthDate(CK_EQ, birthDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as notEqual. + */ + public void setBirthDate_NotEqual(java.util.Date birthDate) { + regBirthDate(CK_NE, birthDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterThan. + */ + public void setBirthDate_GreaterThan(java.util.Date birthDate) { + regBirthDate(CK_GT, birthDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessThan. + */ + public void setBirthDate_LessThan(java.util.Date birthDate) { + regBirthDate(CK_LT, birthDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as greaterEqual. + */ + public void setBirthDate_GreaterEqual(java.util.Date birthDate) { + regBirthDate(CK_GE, birthDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param birthDate The value of birthDate as lessEqual. + */ + public void setBirthDate_LessEqual(java.util.Date birthDate) { + regBirthDate(CK_LE, birthDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setBirthDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueBirthDate(), + "BIRTH_DATE", "BirthDate", "birthDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of birthDate. (Nullable) + * @param toDate The to-date of birthDate. (Nullable) + */ + public void setBirthDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setBirthDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setBirthDate_IsNull() { + regBirthDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setBirthDate_IsNotNull() { + regBirthDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regBirthDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + protected void registerInlineBirthDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueBirthDate(), "BIRTH_DATE", + "BirthDate", "birthDate"); + } + + abstract protected ConditionValue getCValueBirthDate(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param email The value of email as equal. + */ + public void setEmail_Equal(String email) { + regEmail(CK_EQ, fRES(email)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as notEqual. + */ + public void setEmail_NotEqual(String email) { + regEmail(CK_NE, fRES(email)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterThan. + */ + public void setEmail_GreaterThan(String email) { + regEmail(CK_GT, fRES(email)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessThan. + */ + public void setEmail_LessThan(String email) { + regEmail(CK_LT, fRES(email)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as greaterEqual. + */ + public void setEmail_GreaterEqual(String email) { + regEmail(CK_GE, fRES(email)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as lessEqual. + */ + public void setEmail_LessEqual(String email) { + regEmail(CK_LE, fRES(email)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param email The value of email as prefixSearch. + */ + public void setEmail_PrefixSearch(String email) { + regEmail(CK_PS, fRES(email)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param email The value of email as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setEmail_LikeSearch( + String email, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as inScope. + */ + public void setEmail_InScope(Collection emailList) { + regEmail(CK_INS, cTL(emailList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param email The collection of email as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setEmail_InScope( + String email, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(email), getCValueEmail(), "EMAIL", + "Email", "email", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param emailList The collection of email as notInScope. + */ + public void setEmail_NotInScope(Collection emailList) { + regEmail(CK_NINS, cTL(emailList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEmail_IsNull() { + regEmail(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEmail_IsNotNull() { + regEmail(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEmail(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEmail(), "EMAIL", "Email", "email"); + } + + protected void registerInlineEmail(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEmail(), "EMAIL", "Email", + "email"); + } + + abstract protected ConditionValue getCValueEmail(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param url The value of url as equal. + */ + public void setUrl_Equal(String url) { + regUrl(CK_EQ, fRES(url)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as notEqual. + */ + public void setUrl_NotEqual(String url) { + regUrl(CK_NE, fRES(url)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterThan. + */ + public void setUrl_GreaterThan(String url) { + regUrl(CK_GT, fRES(url)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessThan. + */ + public void setUrl_LessThan(String url) { + regUrl(CK_LT, fRES(url)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as greaterEqual. + */ + public void setUrl_GreaterEqual(String url) { + regUrl(CK_GE, fRES(url)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as lessEqual. + */ + public void setUrl_LessEqual(String url) { + regUrl(CK_LE, fRES(url)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param url The value of url as prefixSearch. + */ + public void setUrl_PrefixSearch(String url) { + regUrl(CK_PS, fRES(url)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param url The value of url as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUrl_LikeSearch( + String url, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(url), getCValueUrl(), "URL", "Url", + "url", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as inScope. + */ + public void setUrl_InScope(Collection urlList) { + regUrl(CK_INS, cTL(urlList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param url The collection of url as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUrl_InScope( + String url, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(url), getCValueUrl(), "URL", "Url", + "url", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param urlList The collection of url as notInScope. + */ + public void setUrl_NotInScope(Collection urlList) { + regUrl(CK_NINS, cTL(urlList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setUrl_IsNull() { + regUrl(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setUrl_IsNotNull() { + regUrl(CK_ISNN, DUMMY_OBJECT); + } + + protected void regUrl(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + protected void registerInlineUrl(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUrl(), "URL", "Url", "url"); + } + + abstract protected ConditionValue getCValueUrl(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(40)} + * + * @param telephone The value of telephone as equal. + */ + public void setTelephone_Equal(String telephone) { + regTelephone(CK_EQ, fRES(telephone)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as notEqual. + */ + public void setTelephone_NotEqual(String telephone) { + regTelephone(CK_NE, fRES(telephone)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterThan. + */ + public void setTelephone_GreaterThan(String telephone) { + regTelephone(CK_GT, fRES(telephone)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessThan. + */ + public void setTelephone_LessThan(String telephone) { + regTelephone(CK_LT, fRES(telephone)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as greaterEqual. + */ + public void setTelephone_GreaterEqual(String telephone) { + regTelephone(CK_GE, fRES(telephone)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as lessEqual. + */ + public void setTelephone_LessEqual(String telephone) { + regTelephone(CK_LE, fRES(telephone)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param telephone The value of telephone as prefixSearch. + */ + public void setTelephone_PrefixSearch(String telephone) { + regTelephone(CK_PS, fRES(telephone)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param telephone The value of telephone as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTelephone_LikeSearch( + String telephone, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as inScope. + */ + public void setTelephone_InScope(Collection telephoneList) { + regTelephone(CK_INS, cTL(telephoneList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephone The collection of telephone as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTelephone_InScope( + String telephone, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(telephone), getCValueTelephone(), + "TELEPHONE", "Telephone", "telephone", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param telephoneList The collection of telephone as notInScope. + */ + public void setTelephone_NotInScope(Collection telephoneList) { + regTelephone(CK_NINS, cTL(telephoneList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setTelephone_IsNull() { + regTelephone(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setTelephone_IsNotNull() { + regTelephone(CK_ISNN, DUMMY_OBJECT); + } + + protected void regTelephone(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + protected void registerInlineTelephone(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTelephone(), "TELEPHONE", + "Telephone", "telephone"); + } + + abstract protected ConditionValue getCValueTelephone(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * ROLE_INFO} + * + * @param roleId The value of roleId as equal. + */ + public void setRoleId_Equal(String roleId) { + regRoleId(CK_EQ, fRES(roleId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as notEqual. + */ + public void setRoleId_NotEqual(String roleId) { + regRoleId(CK_NE, fRES(roleId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterThan. + */ + public void setRoleId_GreaterThan(String roleId) { + regRoleId(CK_GT, fRES(roleId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessThan. + */ + public void setRoleId_LessThan(String roleId) { + regRoleId(CK_LT, fRES(roleId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as greaterEqual. + */ + public void setRoleId_GreaterEqual(String roleId) { + regRoleId(CK_GE, fRES(roleId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as lessEqual. + */ + public void setRoleId_LessEqual(String roleId) { + regRoleId(CK_LE, fRES(roleId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param roleId The value of roleId as prefixSearch. + */ + public void setRoleId_PrefixSearch(String roleId) { + regRoleId(CK_PS, fRES(roleId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param roleId The value of roleId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setRoleId_LikeSearch( + String roleId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as inScope. + */ + public void setRoleId_InScope(Collection roleIdList) { + regRoleId(CK_INS, cTL(roleIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleId The collection of roleId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setRoleId_InScope( + String roleId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(roleId), getCValueRoleId(), + "ROLE_ID", "RoleId", "roleId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param roleIdList The collection of roleId as notInScope. + */ + public void setRoleId_NotInScope(Collection roleIdList) { + regRoleId(CK_NINS, cTL(roleIdList)); + } + + /** + * @param roleInfoCBquery Query. + * @deprecated Please use inScopeRoleInfo(subQuery) method. + */ + public void setRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ roleInfoCBquery) { + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(roleInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(roleInfoCBquery, "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + public void inScopeRoleInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + RoleInfoCB cb = new RoleInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepRoleId_InScopeSubQuery_RoleInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ROLE_ID", "ROLE_ID", + subQueryPropertyName); + } + + abstract public String keepRoleId_InScopeSubQuery_RoleInfo( + jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setRoleId_IsNull() { + regRoleId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setRoleId_IsNotNull() { + regRoleId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regRoleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + protected void registerInlineRoleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueRoleId(), "ROLE_ID", "RoleId", + "roleId"); + } + + abstract protected ConditionValue getCValueRoleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to + * GROUP_INFO} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(String groupId) { + regGroupId(CK_EQ, fRES(groupId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(String groupId) { + regGroupId(CK_NE, fRES(groupId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(String groupId) { + regGroupId(CK_GT, fRES(groupId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(String groupId) { + regGroupId(CK_LT, fRES(groupId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(String groupId) { + regGroupId(CK_GE, fRES(groupId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(String groupId) { + regGroupId(CK_LE, fRES(groupId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param groupId The value of groupId as prefixSearch. + */ + public void setGroupId_PrefixSearch(String groupId) { + regGroupId(CK_PS, fRES(groupId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param groupId The value of groupId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setGroupId_LikeSearch( + String groupId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupId The collection of groupId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setGroupId_InScope( + String groupId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(groupId), getCValueGroupId(), + "GROUP_ID", "GroupId", "groupId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param groupInfoCBquery Query. + * @deprecated Please use inScopeGroupInfo(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_GroupInfo( + GroupInfoCQ groupInfoCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(groupInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(groupInfoCBquery, "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeGroupInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + GroupInfoCB cb = new GroupInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_GroupInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_GroupInfo( + jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setGroupId_IsNull() { + regGroupId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setGroupId_IsNotNull() { + regGroupId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return UserInfoCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,575 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.GroupInfoCIQ; + +/** + * The base condition-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupInfoCQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_InScopeSubQuery_GroupMappingList() { + return _groupId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupMappingListMap == null) { + _groupId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_InScopeSubQuery_UserInfoListMap; + + public Map getGroupId_InScopeSubQuery_UserInfoList() { + return _groupId_InScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_UserInfoListMap == null) { + _groupId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getGroupId_NotInScopeSubQuery_GroupMappingList() { + return _groupId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotInScopeSubQuery_GroupMappingListMap == null) { + _groupId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotInScopeSubQuery_UserInfoListMap; + + public Map getGroupId_NotInScopeSubQuery_UserInfoList() { + return _groupId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + if (_groupId_NotInScopeSubQuery_UserInfoListMap == null) { + _groupId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _groupId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _groupId_ExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_ExistsSubQuery_GroupMappingList() { + return _groupId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_ExistsSubQuery_GroupMappingListMap == null) { + _groupId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_ExistsSubQuery_UserInfoListMap; + + public Map getGroupId_ExistsSubQuery_UserInfoList() { + return _groupId_ExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_ExistsSubQuery_UserInfoListMap == null) { + _groupId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_ExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_NotExistsSubQuery_GroupMappingListMap; + + public Map getGroupId_NotExistsSubQuery_GroupMappingList() { + return _groupId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_NotExistsSubQuery_GroupMappingListMap == null) { + _groupId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _groupId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_NotExistsSubQuery_UserInfoListMap; + + public Map getGroupId_NotExistsSubQuery_UserInfoList() { + return _groupId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_NotExistsSubQuery_UserInfoListMap == null) { + _groupId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _groupId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _groupId_DeriveSubQuery_GroupMappingListMap; + + public Map getGroupId_DeriveSubQuery_GroupMappingList() { + return _groupId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_groupId_DeriveSubQuery_GroupMappingListMap == null) { + _groupId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _groupId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _groupId_DeriveSubQuery_UserInfoListMap; + + public Map getGroupId_DeriveSubQuery_UserInfoList() { + return _groupId_DeriveSubQuery_UserInfoListMap; + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_groupId_DeriveSubQuery_UserInfoListMap == null) { + _groupId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_DeriveSubQuery_UserInfoListMap.size() + 1); + _groupId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "groupId_DeriveSubQuery_UserInfoList." + key; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsGroupInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsGroupInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsGroupInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsGroupInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsGroupInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsGroupInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsGroupInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsGroupInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,291 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.GroupMappingCIQ; + +/** + * The base condition-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsGroupMappingCQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected GroupMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsGroupMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from GROUP_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public GroupMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new GroupMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * GROUP_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public GroupMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + GroupMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsGroupMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsGroupMappingCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsGroupMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + GroupMappingCQ baseQuery = (GroupMappingCQ) baseQueryAsSuper; + GroupMappingCQ unionQuery = (GroupMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("GROUP_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsGroupMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,574 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoleInfoCIQ; + +/** + * The base condition-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleInfoCQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_InScopeSubQuery_RoleMappingList() { + return _roleId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleMappingListMap == null) { + _roleId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_InScopeSubQuery_UserInfoListMap; + + public Map getRoleId_InScopeSubQuery_UserInfoList() { + return _roleId_InScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_UserInfoListMap == null) { + _roleId_InScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_InScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_InScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getRoleId_NotInScopeSubQuery_RoleMappingList() { + return _roleId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotInScopeSubQuery_RoleMappingListMap == null) { + _roleId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotInScopeSubQuery_UserInfoListMap; + + public Map getRoleId_NotInScopeSubQuery_UserInfoList() { + return _roleId_NotInScopeSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotInScopeSubQuery_UserInfoListMap == null) { + _roleId_NotInScopeSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotInScopeSubQuery_UserInfoListMap.size() + 1); + _roleId_NotInScopeSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotInScopeSubQuery_UserInfoList." + key; + } + + protected Map _roleId_ExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_ExistsSubQuery_RoleMappingList() { + return _roleId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_ExistsSubQuery_RoleMappingListMap == null) { + _roleId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_ExistsSubQuery_UserInfoListMap; + + public Map getRoleId_ExistsSubQuery_UserInfoList() { + return _roleId_ExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_ExistsSubQuery_UserInfoListMap == null) { + _roleId_ExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_ExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_ExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_ExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_NotExistsSubQuery_RoleMappingListMap; + + public Map getRoleId_NotExistsSubQuery_RoleMappingList() { + return _roleId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_NotExistsSubQuery_RoleMappingListMap == null) { + _roleId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _roleId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_NotExistsSubQuery_UserInfoListMap; + + public Map getRoleId_NotExistsSubQuery_UserInfoList() { + return _roleId_NotExistsSubQuery_UserInfoListMap; + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_NotExistsSubQuery_UserInfoListMap == null) { + _roleId_NotExistsSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_NotExistsSubQuery_UserInfoListMap.size() + 1); + _roleId_NotExistsSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_NotExistsSubQuery_UserInfoList." + key; + } + + protected Map _roleId_DeriveSubQuery_RoleMappingListMap; + + public Map getRoleId_DeriveSubQuery_RoleMappingList() { + return _roleId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_roleId_DeriveSubQuery_RoleMappingListMap == null) { + _roleId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _roleId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _roleId_DeriveSubQuery_UserInfoListMap; + + public Map getRoleId_DeriveSubQuery_UserInfoList() { + return _roleId_DeriveSubQuery_UserInfoListMap; + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + if (_roleId_DeriveSubQuery_UserInfoListMap == null) { + _roleId_DeriveSubQuery_UserInfoListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_DeriveSubQuery_UserInfoListMap.size() + 1); + _roleId_DeriveSubQuery_UserInfoListMap.put(key, subQuery); + return "roleId_DeriveSubQuery_UserInfoList." + key; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsRoleInfoCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _description; + + public ConditionValue getDescription() { + if (_description == null) { + _description = new ConditionValue(); + } + return _description; + } + + protected ConditionValue getCValueDescription() { + return getDescription(); + } + + public BsRoleInfoCQ addOrderBy_Description_Asc() { + regOBA("DESCRIPTION"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Description_Desc() { + regOBD("DESCRIPTION"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsRoleInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsRoleInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsRoleInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoleInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoleInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoleInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,291 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoleMappingCIQ; + +/** + * The base condition-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoleMappingCQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoleMappingCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROLE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoleMappingCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROLE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsRoleMappingCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoleMappingCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoleMappingCQ baseQuery = (RoleMappingCQ) baseQueryAsSuper; + RoleMappingCQ unionQuery = (RoleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROLE_MAPPING", "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,655 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoutineScheduleCIQ; + +/** + * The base condition-query of ROUTINE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoutineScheduleCQ extends AbstractBsRoutineScheduleCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoutineScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROUTINE_SCHEDULE) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoutineScheduleCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoutineScheduleCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROUTINE_SCHEDULE on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoutineScheduleCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoutineScheduleCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_RoutineScheduleContentAsOneMap; + + public Map getId_InScopeSubQuery_RoutineScheduleContentAsOne() { + return _id_InScopeSubQuery_RoutineScheduleContentAsOneMap; + } + + public String keepId_InScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + if (_id_InScopeSubQuery_RoutineScheduleContentAsOneMap == null) { + _id_InScopeSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_RoutineScheduleContentAsOneMap.size() + 1); + _id_InScopeSubQuery_RoutineScheduleContentAsOneMap.put(key, subQuery); + return "id_InScopeSubQuery_RoutineScheduleContentAsOne." + key; + } + + protected Map _id_InScopeSubQuery_RoutineScheduleMappingListMap; + + public Map getId_InScopeSubQuery_RoutineScheduleMappingList() { + return _id_InScopeSubQuery_RoutineScheduleMappingListMap; + } + + public String keepId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_id_InScopeSubQuery_RoutineScheduleMappingListMap == null) { + _id_InScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_RoutineScheduleMappingListMap.size() + 1); + _id_InScopeSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap; + + public Map getId_NotInScopeSubQuery_RoutineScheduleContentAsOne() { + return _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap; + } + + public String keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + if (_id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap == null) { + _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap.size() + 1); + _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap + .put(key, subQuery); + return "id_NotInScopeSubQuery_RoutineScheduleContentAsOne." + key; + } + + protected Map _id_NotInScopeSubQuery_RoutineScheduleMappingListMap; + + public Map getId_NotInScopeSubQuery_RoutineScheduleMappingList() { + return _id_NotInScopeSubQuery_RoutineScheduleMappingListMap; + } + + public String keepId_NotInScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_RoutineScheduleMappingListMap == null) { + _id_NotInScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_RoutineScheduleMappingListMap.size() + 1); + _id_NotInScopeSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _id_ExistsSubQuery_RoutineScheduleContentAsOneMap; + + public Map getId_ExistsSubQuery_RoutineScheduleContentAsOne() { + return _id_ExistsSubQuery_RoutineScheduleContentAsOneMap; + } + + public String keepId_ExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + if (_id_ExistsSubQuery_RoutineScheduleContentAsOneMap == null) { + _id_ExistsSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_RoutineScheduleContentAsOneMap.size() + 1); + _id_ExistsSubQuery_RoutineScheduleContentAsOneMap.put(key, subQuery); + return "id_ExistsSubQuery_RoutineScheduleContentAsOne." + key; + } + + protected Map _id_ExistsSubQuery_RoutineScheduleMappingListMap; + + public Map getId_ExistsSubQuery_RoutineScheduleMappingList() { + return _id_ExistsSubQuery_RoutineScheduleMappingListMap; + } + + public String keepId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_id_ExistsSubQuery_RoutineScheduleMappingListMap == null) { + _id_ExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_RoutineScheduleMappingListMap.size() + 1); + _id_ExistsSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap; + + public Map getId_NotExistsSubQuery_RoutineScheduleContentAsOne() { + return _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap; + } + + public String keepId_NotExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + if (_id_NotExistsSubQuery_RoutineScheduleContentAsOneMap == null) { + _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_RoutineScheduleContentAsOneMap.size() + 1); + _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap.put(key, subQuery); + return "id_NotExistsSubQuery_RoutineScheduleContentAsOne." + key; + } + + protected Map _id_NotExistsSubQuery_RoutineScheduleMappingListMap; + + public Map getId_NotExistsSubQuery_RoutineScheduleMappingList() { + return _id_NotExistsSubQuery_RoutineScheduleMappingListMap; + } + + public String keepId_NotExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_id_NotExistsSubQuery_RoutineScheduleMappingListMap == null) { + _id_NotExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_RoutineScheduleMappingListMap.size() + 1); + _id_NotExistsSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _id_DeriveSubQuery_RoutineScheduleMappingListMap; + + public Map getId_DeriveSubQuery_RoutineScheduleMappingList() { + return _id_DeriveSubQuery_RoutineScheduleMappingListMap; + } + + public String keepId_DeriveSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_id_DeriveSubQuery_RoutineScheduleMappingListMap == null) { + _id_DeriveSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_RoutineScheduleMappingListMap.size() + 1); + _id_DeriveSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_RoutineScheduleMappingList." + key; + } + + public BsRoutineScheduleCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _title; + + public ConditionValue getTitle() { + if (_title == null) { + _title = new ConditionValue(); + } + return _title; + } + + protected ConditionValue getCValueTitle() { + return getTitle(); + } + + public BsRoutineScheduleCQ addOrderBy_Title_Asc() { + regOBA("TITLE"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_Title_Desc() { + regOBD("TITLE"); + return this; + } + + protected ConditionValue _location; + + public ConditionValue getLocation() { + if (_location == null) { + _location = new ConditionValue(); + } + return _location; + } + + protected ConditionValue getCValueLocation() { + return getLocation(); + } + + public BsRoutineScheduleCQ addOrderBy_Location_Asc() { + regOBA("LOCATION"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_Location_Desc() { + regOBD("LOCATION"); + return this; + } + + protected ConditionValue _startDate; + + public ConditionValue getStartDate() { + if (_startDate == null) { + _startDate = new ConditionValue(); + } + return _startDate; + } + + protected ConditionValue getCValueStartDate() { + return getStartDate(); + } + + public BsRoutineScheduleCQ addOrderBy_StartDate_Asc() { + regOBA("START_DATE"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_StartDate_Desc() { + regOBD("START_DATE"); + return this; + } + + protected ConditionValue _startTime; + + public ConditionValue getStartTime() { + if (_startTime == null) { + _startTime = new ConditionValue(); + } + return _startTime; + } + + protected ConditionValue getCValueStartTime() { + return getStartTime(); + } + + public BsRoutineScheduleCQ addOrderBy_StartTime_Asc() { + regOBA("START_TIME"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_StartTime_Desc() { + regOBD("START_TIME"); + return this; + } + + protected ConditionValue _endDate; + + public ConditionValue getEndDate() { + if (_endDate == null) { + _endDate = new ConditionValue(); + } + return _endDate; + } + + protected ConditionValue getCValueEndDate() { + return getEndDate(); + } + + public BsRoutineScheduleCQ addOrderBy_EndDate_Asc() { + regOBA("END_DATE"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_EndDate_Desc() { + regOBD("END_DATE"); + return this; + } + + protected ConditionValue _endTime; + + public ConditionValue getEndTime() { + if (_endTime == null) { + _endTime = new ConditionValue(); + } + return _endTime; + } + + protected ConditionValue getCValueEndTime() { + return getEndTime(); + } + + public BsRoutineScheduleCQ addOrderBy_EndTime_Asc() { + regOBA("END_TIME"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_EndTime_Desc() { + regOBD("END_TIME"); + return this; + } + + protected ConditionValue _type; + + public ConditionValue getType() { + if (_type == null) { + _type = new ConditionValue(); + } + return _type; + } + + protected ConditionValue getCValueType() { + return getType(); + } + + public BsRoutineScheduleCQ addOrderBy_Type_Asc() { + regOBA("TYPE"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_Type_Desc() { + regOBD("TYPE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsRoutineScheduleCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsRoutineScheduleCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsRoutineScheduleCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsRoutineScheduleCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsRoutineScheduleCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsRoutineScheduleCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsRoutineScheduleCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoutineScheduleCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoutineScheduleCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoutineScheduleCQ baseQuery = (RoutineScheduleCQ) baseQueryAsSuper; + RoutineScheduleCQ unionQuery = (RoutineScheduleCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoutineScheduleContentAsOne()) { + unionQuery.queryRoutineScheduleContentAsOne() + .reflectRelationOnUnionQuery( + baseQuery.queryRoutineScheduleContentAsOne(), + unionQuery.queryRoutineScheduleContentAsOne()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoutineScheduleContentCQ queryRoutineScheduleContentAsOne() { + return getConditionQueryRoutineScheduleContentAsOne(); + } + + protected RoutineScheduleContentCQ _conditionQueryRoutineScheduleContentAsOne; + + public RoutineScheduleContentCQ getConditionQueryRoutineScheduleContentAsOne() { + if (_conditionQueryRoutineScheduleContentAsOne == null) { + _conditionQueryRoutineScheduleContentAsOne = createQueryRoutineScheduleContentAsOne(); + setupOuterJoin_RoutineScheduleContentAsOne(); + } + return _conditionQueryRoutineScheduleContentAsOne; + } + + protected void setupOuterJoin_RoutineScheduleContentAsOne() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), + getConditionQueryRoutineScheduleContentAsOne() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryRoutineScheduleContentAsOne(), + joinOnMap); + } + + protected RoutineScheduleContentCQ createQueryRoutineScheduleContentAsOne() { + String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE", + "routineScheduleContentAsOne"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoutineScheduleContentCQ cq = new RoutineScheduleContentCQ(this, + getSqlClause(), jan, getNextNestLevel()); + cq.xsetForeignPropertyName("routineScheduleContentAsOne"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoutineScheduleContentAsOne() { + return _conditionQueryRoutineScheduleContentAsOne != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,218 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoutineScheduleContentCIQ; + +/** + * The base condition-query of ROUTINE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoutineScheduleContentCQ extends + AbstractBsRoutineScheduleContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleContentCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoutineScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROUTINE_SCHEDULE_CONTENT) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoutineScheduleContentCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoutineScheduleContentCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROUTINE_SCHEDULE_CONTENT on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoutineScheduleContentCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoutineScheduleContentCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_RoutineScheduleMap; + + public Map getId_InScopeSubQuery_RoutineSchedule() { + return _id_InScopeSubQuery_RoutineScheduleMap; + } + + public String keepId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ subQuery) { + if (_id_InScopeSubQuery_RoutineScheduleMap == null) { + _id_InScopeSubQuery_RoutineScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_RoutineScheduleMap.size() + 1); + _id_InScopeSubQuery_RoutineScheduleMap.put(key, subQuery); + return "id_InScopeSubQuery_RoutineSchedule." + key; + } + + public BsRoutineScheduleContentCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoutineScheduleContentCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _content; + + public ConditionValue getContent() { + if (_content == null) { + _content = new ConditionValue(); + } + return _content; + } + + protected ConditionValue getCValueContent() { + return getContent(); + } + + public BsRoutineScheduleContentCQ addOrderBy_Content_Asc() { + regOBA("CONTENT"); + return this; + } + + public BsRoutineScheduleContentCQ addOrderBy_Content_Desc() { + regOBD("CONTENT"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoutineScheduleContentCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoutineScheduleContentCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoutineScheduleContentCQ baseQuery = (RoutineScheduleContentCQ) baseQueryAsSuper; + RoutineScheduleContentCQ unionQuery = (RoutineScheduleContentCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoutineSchedule()) { + unionQuery.queryRoutineSchedule().reflectRelationOnUnionQuery( + baseQuery.queryRoutineSchedule(), + unionQuery.queryRoutineSchedule()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoutineScheduleCQ queryRoutineSchedule() { + return getConditionQueryRoutineSchedule(); + } + + protected RoutineScheduleCQ _conditionQueryRoutineSchedule; + + public RoutineScheduleCQ getConditionQueryRoutineSchedule() { + if (_conditionQueryRoutineSchedule == null) { + _conditionQueryRoutineSchedule = createQueryRoutineSchedule(); + setupOuterJoin_RoutineSchedule(); + } + return _conditionQueryRoutineSchedule; + } + + protected void setupOuterJoin_RoutineSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), + getConditionQueryRoutineSchedule().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryRoutineSchedule(), joinOnMap); + } + + protected RoutineScheduleCQ createQueryRoutineSchedule() { + String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE_CONTENT", + "routineSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoutineScheduleCQ cq = new RoutineScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("routineSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoutineSchedule() { + return _conditionQueryRoutineSchedule != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleContentCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,298 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoutineScheduleMappingCIQ; + +/** + * The base condition-query of ROUTINE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsRoutineScheduleMappingCQ extends + AbstractBsRoutineScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected RoutineScheduleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsRoutineScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from ROUTINE_SCHEDULE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public RoutineScheduleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new RoutineScheduleMappingCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * ROUTINE_SCHEDULE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public RoutineScheduleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + RoutineScheduleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsRoutineScheduleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsRoutineScheduleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _scheduleId; + + public ConditionValue getScheduleId() { + if (_scheduleId == null) { + _scheduleId = new ConditionValue(); + } + return _scheduleId; + } + + protected ConditionValue getCValueScheduleId() { + return getScheduleId(); + } + + protected Map _scheduleId_InScopeSubQuery_RoutineScheduleMap; + + public Map getScheduleId_InScopeSubQuery_RoutineSchedule() { + return _scheduleId_InScopeSubQuery_RoutineScheduleMap; + } + + public String keepScheduleId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ subQuery) { + if (_scheduleId_InScopeSubQuery_RoutineScheduleMap == null) { + _scheduleId_InScopeSubQuery_RoutineScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_scheduleId_InScopeSubQuery_RoutineScheduleMap.size() + 1); + _scheduleId_InScopeSubQuery_RoutineScheduleMap.put(key, subQuery); + return "scheduleId_InScopeSubQuery_RoutineSchedule." + key; + } + + public BsRoutineScheduleMappingCQ addOrderBy_ScheduleId_Asc() { + regOBA("SCHEDULE_ID"); + return this; + } + + public BsRoutineScheduleMappingCQ addOrderBy_ScheduleId_Desc() { + regOBD("SCHEDULE_ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsRoutineScheduleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsRoutineScheduleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsRoutineScheduleMappingCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsRoutineScheduleMappingCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + RoutineScheduleMappingCQ baseQuery = (RoutineScheduleMappingCQ) baseQueryAsSuper; + RoutineScheduleMappingCQ unionQuery = (RoutineScheduleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryRoutineSchedule()) { + unionQuery.queryRoutineSchedule().reflectRelationOnUnionQuery( + baseQuery.queryRoutineSchedule(), + unionQuery.queryRoutineSchedule()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public RoutineScheduleCQ queryRoutineSchedule() { + return getConditionQueryRoutineSchedule(); + } + + protected RoutineScheduleCQ _conditionQueryRoutineSchedule; + + public RoutineScheduleCQ getConditionQueryRoutineSchedule() { + if (_conditionQueryRoutineSchedule == null) { + _conditionQueryRoutineSchedule = createQueryRoutineSchedule(); + setupOuterJoin_RoutineSchedule(); + } + return _conditionQueryRoutineSchedule; + } + + protected void setupOuterJoin_RoutineSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("SCHEDULE_ID"), + getConditionQueryRoutineSchedule().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryRoutineSchedule(), joinOnMap); + } + + protected RoutineScheduleCQ createQueryRoutineSchedule() { + String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE_MAPPING", + "routineSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoutineScheduleCQ cq = new RoutineScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("routineSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoutineSchedule() { + return _conditionQueryRoutineSchedule != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE_MAPPING", + "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,631 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.SingleScheduleCIQ; + +/** + * The base condition-query of SINGLE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsSingleScheduleCQ extends AbstractBsSingleScheduleCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsSingleScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from SINGLE_SCHEDULE) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public SingleScheduleCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new SingleScheduleCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * SINGLE_SCHEDULE on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public SingleScheduleCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + SingleScheduleCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_SingleScheduleContentAsOneMap; + + public Map getId_InScopeSubQuery_SingleScheduleContentAsOne() { + return _id_InScopeSubQuery_SingleScheduleContentAsOneMap; + } + + public String keepId_InScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + if (_id_InScopeSubQuery_SingleScheduleContentAsOneMap == null) { + _id_InScopeSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_SingleScheduleContentAsOneMap.size() + 1); + _id_InScopeSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); + return "id_InScopeSubQuery_SingleScheduleContentAsOne." + key; + } + + protected Map _id_InScopeSubQuery_SingleScheduleMappingListMap; + + public Map getId_InScopeSubQuery_SingleScheduleMappingList() { + return _id_InScopeSubQuery_SingleScheduleMappingListMap; + } + + public String keepId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_id_InScopeSubQuery_SingleScheduleMappingListMap == null) { + _id_InScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_SingleScheduleMappingListMap.size() + 1); + _id_InScopeSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap; + + public Map getId_NotInScopeSubQuery_SingleScheduleContentAsOne() { + return _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap; + } + + public String keepId_NotInScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + if (_id_NotInScopeSubQuery_SingleScheduleContentAsOneMap == null) { + _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_SingleScheduleContentAsOneMap.size() + 1); + _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); + return "id_NotInScopeSubQuery_SingleScheduleContentAsOne." + key; + } + + protected Map _id_NotInScopeSubQuery_SingleScheduleMappingListMap; + + public Map getId_NotInScopeSubQuery_SingleScheduleMappingList() { + return _id_NotInScopeSubQuery_SingleScheduleMappingListMap; + } + + public String keepId_NotInScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_SingleScheduleMappingListMap == null) { + _id_NotInScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_SingleScheduleMappingListMap.size() + 1); + _id_NotInScopeSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _id_ExistsSubQuery_SingleScheduleContentAsOneMap; + + public Map getId_ExistsSubQuery_SingleScheduleContentAsOne() { + return _id_ExistsSubQuery_SingleScheduleContentAsOneMap; + } + + public String keepId_ExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + if (_id_ExistsSubQuery_SingleScheduleContentAsOneMap == null) { + _id_ExistsSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_SingleScheduleContentAsOneMap.size() + 1); + _id_ExistsSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); + return "id_ExistsSubQuery_SingleScheduleContentAsOne." + key; + } + + protected Map _id_ExistsSubQuery_SingleScheduleMappingListMap; + + public Map getId_ExistsSubQuery_SingleScheduleMappingList() { + return _id_ExistsSubQuery_SingleScheduleMappingListMap; + } + + public String keepId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_id_ExistsSubQuery_SingleScheduleMappingListMap == null) { + _id_ExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_SingleScheduleMappingListMap.size() + 1); + _id_ExistsSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _id_NotExistsSubQuery_SingleScheduleContentAsOneMap; + + public Map getId_NotExistsSubQuery_SingleScheduleContentAsOne() { + return _id_NotExistsSubQuery_SingleScheduleContentAsOneMap; + } + + public String keepId_NotExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + if (_id_NotExistsSubQuery_SingleScheduleContentAsOneMap == null) { + _id_NotExistsSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_SingleScheduleContentAsOneMap.size() + 1); + _id_NotExistsSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); + return "id_NotExistsSubQuery_SingleScheduleContentAsOne." + key; + } + + protected Map _id_NotExistsSubQuery_SingleScheduleMappingListMap; + + public Map getId_NotExistsSubQuery_SingleScheduleMappingList() { + return _id_NotExistsSubQuery_SingleScheduleMappingListMap; + } + + public String keepId_NotExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_id_NotExistsSubQuery_SingleScheduleMappingListMap == null) { + _id_NotExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_SingleScheduleMappingListMap.size() + 1); + _id_NotExistsSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _id_DeriveSubQuery_SingleScheduleMappingListMap; + + public Map getId_DeriveSubQuery_SingleScheduleMappingList() { + return _id_DeriveSubQuery_SingleScheduleMappingListMap; + } + + public String keepId_DeriveSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_id_DeriveSubQuery_SingleScheduleMappingListMap == null) { + _id_DeriveSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_SingleScheduleMappingListMap.size() + 1); + _id_DeriveSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_SingleScheduleMappingList." + key; + } + + public BsSingleScheduleCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _title; + + public ConditionValue getTitle() { + if (_title == null) { + _title = new ConditionValue(); + } + return _title; + } + + protected ConditionValue getCValueTitle() { + return getTitle(); + } + + public BsSingleScheduleCQ addOrderBy_Title_Asc() { + regOBA("TITLE"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_Title_Desc() { + regOBD("TITLE"); + return this; + } + + protected ConditionValue _location; + + public ConditionValue getLocation() { + if (_location == null) { + _location = new ConditionValue(); + } + return _location; + } + + protected ConditionValue getCValueLocation() { + return getLocation(); + } + + public BsSingleScheduleCQ addOrderBy_Location_Asc() { + regOBA("LOCATION"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_Location_Desc() { + regOBD("LOCATION"); + return this; + } + + protected ConditionValue _startDate; + + public ConditionValue getStartDate() { + if (_startDate == null) { + _startDate = new ConditionValue(); + } + return _startDate; + } + + protected ConditionValue getCValueStartDate() { + return getStartDate(); + } + + public BsSingleScheduleCQ addOrderBy_StartDate_Asc() { + regOBA("START_DATE"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_StartDate_Desc() { + regOBD("START_DATE"); + return this; + } + + protected ConditionValue _startTime; + + public ConditionValue getStartTime() { + if (_startTime == null) { + _startTime = new ConditionValue(); + } + return _startTime; + } + + protected ConditionValue getCValueStartTime() { + return getStartTime(); + } + + public BsSingleScheduleCQ addOrderBy_StartTime_Asc() { + regOBA("START_TIME"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_StartTime_Desc() { + regOBD("START_TIME"); + return this; + } + + protected ConditionValue _endDate; + + public ConditionValue getEndDate() { + if (_endDate == null) { + _endDate = new ConditionValue(); + } + return _endDate; + } + + protected ConditionValue getCValueEndDate() { + return getEndDate(); + } + + public BsSingleScheduleCQ addOrderBy_EndDate_Asc() { + regOBA("END_DATE"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_EndDate_Desc() { + regOBD("END_DATE"); + return this; + } + + protected ConditionValue _endTime; + + public ConditionValue getEndTime() { + if (_endTime == null) { + _endTime = new ConditionValue(); + } + return _endTime; + } + + protected ConditionValue getCValueEndTime() { + return getEndTime(); + } + + public BsSingleScheduleCQ addOrderBy_EndTime_Asc() { + regOBA("END_TIME"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_EndTime_Desc() { + regOBD("END_TIME"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsSingleScheduleCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsSingleScheduleCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsSingleScheduleCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsSingleScheduleCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsSingleScheduleCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsSingleScheduleCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsSingleScheduleCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsSingleScheduleCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsSingleScheduleCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + SingleScheduleCQ baseQuery = (SingleScheduleCQ) baseQueryAsSuper; + SingleScheduleCQ unionQuery = (SingleScheduleCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQuerySingleScheduleContentAsOne()) { + unionQuery.querySingleScheduleContentAsOne() + .reflectRelationOnUnionQuery( + baseQuery.querySingleScheduleContentAsOne(), + unionQuery.querySingleScheduleContentAsOne()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public SingleScheduleContentCQ querySingleScheduleContentAsOne() { + return getConditionQuerySingleScheduleContentAsOne(); + } + + protected SingleScheduleContentCQ _conditionQuerySingleScheduleContentAsOne; + + public SingleScheduleContentCQ getConditionQuerySingleScheduleContentAsOne() { + if (_conditionQuerySingleScheduleContentAsOne == null) { + _conditionQuerySingleScheduleContentAsOne = createQuerySingleScheduleContentAsOne(); + setupOuterJoin_SingleScheduleContentAsOne(); + } + return _conditionQuerySingleScheduleContentAsOne; + } + + protected void setupOuterJoin_SingleScheduleContentAsOne() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), + getConditionQuerySingleScheduleContentAsOne() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQuerySingleScheduleContentAsOne(), + joinOnMap); + } + + protected SingleScheduleContentCQ createQuerySingleScheduleContentAsOne() { + String nrp = resolveNextRelationPath("SINGLE_SCHEDULE", + "singleScheduleContentAsOne"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + SingleScheduleContentCQ cq = new SingleScheduleContentCQ(this, + getSqlClause(), jan, getNextNestLevel()); + cq.xsetForeignPropertyName("singleScheduleContentAsOne"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQuerySingleScheduleContentAsOne() { + return _conditionQuerySingleScheduleContentAsOne != null; + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,218 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.SingleScheduleContentCIQ; + +/** + * The base condition-query of SINGLE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsSingleScheduleContentCQ extends + AbstractBsSingleScheduleContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleContentCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsSingleScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from SINGLE_SCHEDULE_CONTENT) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public SingleScheduleContentCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new SingleScheduleContentCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * SINGLE_SCHEDULE_CONTENT on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public SingleScheduleContentCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + SingleScheduleContentCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_SingleScheduleMap; + + public Map getId_InScopeSubQuery_SingleSchedule() { + return _id_InScopeSubQuery_SingleScheduleMap; + } + + public String keepId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ subQuery) { + if (_id_InScopeSubQuery_SingleScheduleMap == null) { + _id_InScopeSubQuery_SingleScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_SingleScheduleMap.size() + 1); + _id_InScopeSubQuery_SingleScheduleMap.put(key, subQuery); + return "id_InScopeSubQuery_SingleSchedule." + key; + } + + public BsSingleScheduleContentCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsSingleScheduleContentCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _content; + + public ConditionValue getContent() { + if (_content == null) { + _content = new ConditionValue(); + } + return _content; + } + + protected ConditionValue getCValueContent() { + return getContent(); + } + + public BsSingleScheduleContentCQ addOrderBy_Content_Asc() { + regOBA("CONTENT"); + return this; + } + + public BsSingleScheduleContentCQ addOrderBy_Content_Desc() { + regOBD("CONTENT"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsSingleScheduleContentCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsSingleScheduleContentCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + SingleScheduleContentCQ baseQuery = (SingleScheduleContentCQ) baseQueryAsSuper; + SingleScheduleContentCQ unionQuery = (SingleScheduleContentCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQuerySingleSchedule()) { + unionQuery.querySingleSchedule().reflectRelationOnUnionQuery( + baseQuery.querySingleSchedule(), + unionQuery.querySingleSchedule()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public SingleScheduleCQ querySingleSchedule() { + return getConditionQuerySingleSchedule(); + } + + protected SingleScheduleCQ _conditionQuerySingleSchedule; + + public SingleScheduleCQ getConditionQuerySingleSchedule() { + if (_conditionQuerySingleSchedule == null) { + _conditionQuerySingleSchedule = createQuerySingleSchedule(); + setupOuterJoin_SingleSchedule(); + } + return _conditionQuerySingleSchedule; + } + + protected void setupOuterJoin_SingleSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), + getConditionQuerySingleSchedule().getRealColumnName("ID")); + registerOuterJoin(getConditionQuerySingleSchedule(), joinOnMap); + } + + protected SingleScheduleCQ createQuerySingleSchedule() { + String nrp = resolveNextRelationPath("SINGLE_SCHEDULE_CONTENT", + "singleSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + SingleScheduleCQ cq = new SingleScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("singleSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQuerySingleSchedule() { + return _conditionQuerySingleSchedule != null; + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleContentCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,298 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.SingleScheduleMappingCIQ; + +/** + * The base condition-query of SINGLE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsSingleScheduleMappingCQ extends + AbstractBsSingleScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected SingleScheduleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsSingleScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from SINGLE_SCHEDULE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public SingleScheduleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new SingleScheduleMappingCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * SINGLE_SCHEDULE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public SingleScheduleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + SingleScheduleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsSingleScheduleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsSingleScheduleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _scheduleId; + + public ConditionValue getScheduleId() { + if (_scheduleId == null) { + _scheduleId = new ConditionValue(); + } + return _scheduleId; + } + + protected ConditionValue getCValueScheduleId() { + return getScheduleId(); + } + + protected Map _scheduleId_InScopeSubQuery_SingleScheduleMap; + + public Map getScheduleId_InScopeSubQuery_SingleSchedule() { + return _scheduleId_InScopeSubQuery_SingleScheduleMap; + } + + public String keepScheduleId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ subQuery) { + if (_scheduleId_InScopeSubQuery_SingleScheduleMap == null) { + _scheduleId_InScopeSubQuery_SingleScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_scheduleId_InScopeSubQuery_SingleScheduleMap.size() + 1); + _scheduleId_InScopeSubQuery_SingleScheduleMap.put(key, subQuery); + return "scheduleId_InScopeSubQuery_SingleSchedule." + key; + } + + public BsSingleScheduleMappingCQ addOrderBy_ScheduleId_Asc() { + regOBA("SCHEDULE_ID"); + return this; + } + + public BsSingleScheduleMappingCQ addOrderBy_ScheduleId_Desc() { + regOBD("SCHEDULE_ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsSingleScheduleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsSingleScheduleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsSingleScheduleMappingCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsSingleScheduleMappingCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + SingleScheduleMappingCQ baseQuery = (SingleScheduleMappingCQ) baseQueryAsSuper; + SingleScheduleMappingCQ unionQuery = (SingleScheduleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQuerySingleSchedule()) { + unionQuery.querySingleSchedule().reflectRelationOnUnionQuery( + baseQuery.querySingleSchedule(), + unionQuery.querySingleSchedule()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public SingleScheduleCQ querySingleSchedule() { + return getConditionQuerySingleSchedule(); + } + + protected SingleScheduleCQ _conditionQuerySingleSchedule; + + public SingleScheduleCQ getConditionQuerySingleSchedule() { + if (_conditionQuerySingleSchedule == null) { + _conditionQuerySingleSchedule = createQuerySingleSchedule(); + setupOuterJoin_SingleSchedule(); + } + return _conditionQuerySingleSchedule; + } + + protected void setupOuterJoin_SingleSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("SCHEDULE_ID"), + getConditionQuerySingleSchedule().getRealColumnName("ID")); + registerOuterJoin(getConditionQuerySingleSchedule(), joinOnMap); + } + + protected SingleScheduleCQ createQuerySingleSchedule() { + String nrp = resolveNextRelationPath("SINGLE_SCHEDULE_MAPPING", + "singleSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + SingleScheduleCQ cq = new SingleScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("singleSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQuerySingleSchedule() { + return _conditionQuerySingleSchedule != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("SINGLE_SCHEDULE_MAPPING", + "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,1058 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.UserInfoCIQ; + +/** + * The base condition-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsUserInfoCQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected UserInfoCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsUserInfoCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from USER_INFO) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public UserInfoCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new UserInfoCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * USER_INFO on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public UserInfoCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + UserInfoCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_GroupMappingListMap; + + public Map getUserId_InScopeSubQuery_GroupMappingList() { + return _userId_InScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_InScopeSubQuery_GroupMappingListMap == null) { + _userId_InScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_InScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoleMappingList() { + return _userId_InScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoleMappingListMap == null) { + _userId_InScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_RoutineScheduleMappingListMap; + + public Map getUserId_InScopeSubQuery_RoutineScheduleMappingList() { + return _userId_InScopeSubQuery_RoutineScheduleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_RoutineScheduleMappingListMap == null) { + _userId_InScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_RoutineScheduleMappingListMap.size() + 1); + _userId_InScopeSubQuery_RoutineScheduleMappingListMap + .put(key, subQuery); + return "userId_InScopeSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _userId_InScopeSubQuery_SingleScheduleMappingListMap; + + public Map getUserId_InScopeSubQuery_SingleScheduleMappingList() { + return _userId_InScopeSubQuery_SingleScheduleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_SingleScheduleMappingListMap == null) { + _userId_InScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_SingleScheduleMappingListMap.size() + 1); + _userId_InScopeSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; + + public Map getUserId_NotInScopeSubQuery_GroupMappingList() { + return _userId_NotInScopeSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_GroupMappingListMap == null) { + _userId_NotInScopeSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_GroupMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoleMappingList() { + return _userId_NotInScopeSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoleMappingListMap.size() + 1); + _userId_NotInScopeSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotInScopeSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_RoutineScheduleMappingList() { + return _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_RoutineScheduleMappingListMap == null) { + _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_RoutineScheduleMappingListMap + .size() + 1); + _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _userId_NotInScopeSubQuery_SingleScheduleMappingListMap; + + public Map getUserId_NotInScopeSubQuery_SingleScheduleMappingList() { + return _userId_NotInScopeSubQuery_SingleScheduleMappingListMap; + } + + public String keepUserId_NotInScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_SingleScheduleMappingListMap == null) { + _userId_NotInScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotInScopeSubQuery_SingleScheduleMappingListMap + .size() + 1); + _userId_NotInScopeSubQuery_SingleScheduleMappingListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_GroupMappingListMap; + + public Map getUserId_ExistsSubQuery_GroupMappingList() { + return _userId_ExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_ExistsSubQuery_GroupMappingListMap == null) { + _userId_ExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_ExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoleMappingList() { + return _userId_ExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoleMappingListMap == null) { + _userId_ExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_RoutineScheduleMappingListMap; + + public Map getUserId_ExistsSubQuery_RoutineScheduleMappingList() { + return _userId_ExistsSubQuery_RoutineScheduleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_RoutineScheduleMappingListMap == null) { + _userId_ExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_RoutineScheduleMappingListMap.size() + 1); + _userId_ExistsSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _userId_ExistsSubQuery_SingleScheduleMappingListMap; + + public Map getUserId_ExistsSubQuery_SingleScheduleMappingList() { + return _userId_ExistsSubQuery_SingleScheduleMappingListMap; + } + + public String keepUserId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_SingleScheduleMappingListMap == null) { + _userId_ExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_ExistsSubQuery_SingleScheduleMappingListMap.size() + 1); + _userId_ExistsSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_GroupMappingListMap; + + public Map getUserId_NotExistsSubQuery_GroupMappingList() { + return _userId_NotExistsSubQuery_GroupMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_GroupMappingListMap == null) { + _userId_NotExistsSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_GroupMappingListMap.size() + 1); + _userId_NotExistsSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_GroupMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoleMappingList() { + return _userId_NotExistsSubQuery_RoleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoleMappingListMap == null) { + _userId_NotExistsSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_NotExistsSubQuery_RoleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_RoutineScheduleMappingListMap; + + public Map getUserId_NotExistsSubQuery_RoutineScheduleMappingList() { + return _userId_NotExistsSubQuery_RoutineScheduleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_RoutineScheduleMappingListMap == null) { + _userId_NotExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_RoutineScheduleMappingListMap + .size() + 1); + _userId_NotExistsSubQuery_RoutineScheduleMappingListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _userId_NotExistsSubQuery_SingleScheduleMappingListMap; + + public Map getUserId_NotExistsSubQuery_SingleScheduleMappingList() { + return _userId_NotExistsSubQuery_SingleScheduleMappingListMap; + } + + public String keepUserId_NotExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_SingleScheduleMappingListMap == null) { + _userId_NotExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_NotExistsSubQuery_SingleScheduleMappingListMap + .size() + 1); + _userId_NotExistsSubQuery_SingleScheduleMappingListMap.put(key, + subQuery); + return "userId_NotExistsSubQuery_SingleScheduleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_GroupMappingListMap; + + public Map getUserId_DeriveSubQuery_GroupMappingList() { + return _userId_DeriveSubQuery_GroupMappingListMap; + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + if (_userId_DeriveSubQuery_GroupMappingListMap == null) { + _userId_DeriveSubQuery_GroupMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_GroupMappingListMap.size() + 1); + _userId_DeriveSubQuery_GroupMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_GroupMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoleMappingList() { + return _userId_DeriveSubQuery_RoleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoleMappingListMap == null) { + _userId_DeriveSubQuery_RoleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_RoutineScheduleMappingListMap; + + public Map getUserId_DeriveSubQuery_RoutineScheduleMappingList() { + return _userId_DeriveSubQuery_RoutineScheduleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_RoutineScheduleMappingListMap == null) { + _userId_DeriveSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_RoutineScheduleMappingListMap.size() + 1); + _userId_DeriveSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_RoutineScheduleMappingList." + key; + } + + protected Map _userId_DeriveSubQuery_SingleScheduleMappingListMap; + + public Map getUserId_DeriveSubQuery_SingleScheduleMappingList() { + return _userId_DeriveSubQuery_SingleScheduleMappingListMap; + } + + public String keepUserId_DeriveSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_SingleScheduleMappingListMap == null) { + _userId_DeriveSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_DeriveSubQuery_SingleScheduleMappingListMap.size() + 1); + _userId_DeriveSubQuery_SingleScheduleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_SingleScheduleMappingList." + key; + } + + public BsUserInfoCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + protected ConditionValue _givenName; + + public ConditionValue getGivenName() { + if (_givenName == null) { + _givenName = new ConditionValue(); + } + return _givenName; + } + + protected ConditionValue getCValueGivenName() { + return getGivenName(); + } + + public BsUserInfoCQ addOrderBy_GivenName_Asc() { + regOBA("GIVEN_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenName_Desc() { + regOBD("GIVEN_NAME"); + return this; + } + + protected ConditionValue _familyName; + + public ConditionValue getFamilyName() { + if (_familyName == null) { + _familyName = new ConditionValue(); + } + return _familyName; + } + + protected ConditionValue getCValueFamilyName() { + return getFamilyName(); + } + + public BsUserInfoCQ addOrderBy_FamilyName_Asc() { + regOBA("FAMILY_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyName_Desc() { + regOBD("FAMILY_NAME"); + return this; + } + + protected ConditionValue _middleName; + + public ConditionValue getMiddleName() { + if (_middleName == null) { + _middleName = new ConditionValue(); + } + return _middleName; + } + + protected ConditionValue getCValueMiddleName() { + return getMiddleName(); + } + + public BsUserInfoCQ addOrderBy_MiddleName_Asc() { + regOBA("MIDDLE_NAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_MiddleName_Desc() { + regOBD("MIDDLE_NAME"); + return this; + } + + protected ConditionValue _givenNameDesc; + + public ConditionValue getGivenNameDesc() { + if (_givenNameDesc == null) { + _givenNameDesc = new ConditionValue(); + } + return _givenNameDesc; + } + + protected ConditionValue getCValueGivenNameDesc() { + return getGivenNameDesc(); + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Asc() { + regOBA("GIVEN_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_GivenNameDesc_Desc() { + regOBD("GIVEN_NAME_DESC"); + return this; + } + + protected ConditionValue _familyNameDesc; + + public ConditionValue getFamilyNameDesc() { + if (_familyNameDesc == null) { + _familyNameDesc = new ConditionValue(); + } + return _familyNameDesc; + } + + protected ConditionValue getCValueFamilyNameDesc() { + return getFamilyNameDesc(); + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Asc() { + regOBA("FAMILY_NAME_DESC"); + return this; + } + + public BsUserInfoCQ addOrderBy_FamilyNameDesc_Desc() { + regOBD("FAMILY_NAME_DESC"); + return this; + } + + protected ConditionValue _nickname; + + public ConditionValue getNickname() { + if (_nickname == null) { + _nickname = new ConditionValue(); + } + return _nickname; + } + + protected ConditionValue getCValueNickname() { + return getNickname(); + } + + public BsUserInfoCQ addOrderBy_Nickname_Asc() { + regOBA("NICKNAME"); + return this; + } + + public BsUserInfoCQ addOrderBy_Nickname_Desc() { + regOBD("NICKNAME"); + return this; + } + + protected ConditionValue _gender; + + public ConditionValue getGender() { + if (_gender == null) { + _gender = new ConditionValue(); + } + return _gender; + } + + protected ConditionValue getCValueGender() { + return getGender(); + } + + public BsUserInfoCQ addOrderBy_Gender_Asc() { + regOBA("GENDER"); + return this; + } + + public BsUserInfoCQ addOrderBy_Gender_Desc() { + regOBD("GENDER"); + return this; + } + + protected ConditionValue _birthDate; + + public ConditionValue getBirthDate() { + if (_birthDate == null) { + _birthDate = new ConditionValue(); + } + return _birthDate; + } + + protected ConditionValue getCValueBirthDate() { + return getBirthDate(); + } + + public BsUserInfoCQ addOrderBy_BirthDate_Asc() { + regOBA("BIRTH_DATE"); + return this; + } + + public BsUserInfoCQ addOrderBy_BirthDate_Desc() { + regOBD("BIRTH_DATE"); + return this; + } + + protected ConditionValue _email; + + public ConditionValue getEmail() { + if (_email == null) { + _email = new ConditionValue(); + } + return _email; + } + + protected ConditionValue getCValueEmail() { + return getEmail(); + } + + public BsUserInfoCQ addOrderBy_Email_Asc() { + regOBA("EMAIL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Email_Desc() { + regOBD("EMAIL"); + return this; + } + + protected ConditionValue _url; + + public ConditionValue getUrl() { + if (_url == null) { + _url = new ConditionValue(); + } + return _url; + } + + protected ConditionValue getCValueUrl() { + return getUrl(); + } + + public BsUserInfoCQ addOrderBy_Url_Asc() { + regOBA("URL"); + return this; + } + + public BsUserInfoCQ addOrderBy_Url_Desc() { + regOBD("URL"); + return this; + } + + protected ConditionValue _telephone; + + public ConditionValue getTelephone() { + if (_telephone == null) { + _telephone = new ConditionValue(); + } + return _telephone; + } + + protected ConditionValue getCValueTelephone() { + return getTelephone(); + } + + public BsUserInfoCQ addOrderBy_Telephone_Asc() { + regOBA("TELEPHONE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Telephone_Desc() { + regOBD("TELEPHONE"); + return this; + } + + protected ConditionValue _roleId; + + public ConditionValue getRoleId() { + if (_roleId == null) { + _roleId = new ConditionValue(); + } + return _roleId; + } + + protected ConditionValue getCValueRoleId() { + return getRoleId(); + } + + protected Map _roleId_InScopeSubQuery_RoleInfoMap; + + public Map getRoleId_InScopeSubQuery_RoleInfo() { + return _roleId_InScopeSubQuery_RoleInfoMap; + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + if (_roleId_InScopeSubQuery_RoleInfoMap == null) { + _roleId_InScopeSubQuery_RoleInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_roleId_InScopeSubQuery_RoleInfoMap.size() + 1); + _roleId_InScopeSubQuery_RoleInfoMap.put(key, subQuery); + return "roleId_InScopeSubQuery_RoleInfo." + key; + } + + public BsUserInfoCQ addOrderBy_RoleId_Asc() { + regOBA("ROLE_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_RoleId_Desc() { + regOBD("ROLE_ID"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_GroupInfoMap; + + public Map getGroupId_InScopeSubQuery_GroupInfo() { + return _groupId_InScopeSubQuery_GroupInfoMap; + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + if (_groupId_InScopeSubQuery_GroupInfoMap == null) { + _groupId_InScopeSubQuery_GroupInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_GroupInfoMap.size() + 1); + _groupId_InScopeSubQuery_GroupInfoMap.put(key, subQuery); + return "groupId_InScopeSubQuery_GroupInfo." + key; + } + + public BsUserInfoCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsUserInfoCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsUserInfoCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsUserInfoCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsUserInfoCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsUserInfoCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + UserInfoCQ baseQuery = (UserInfoCQ) baseQueryAsSuper; + UserInfoCQ unionQuery = (UserInfoCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryGroupInfo()) { + unionQuery.queryGroupInfo().reflectRelationOnUnionQuery( + baseQuery.queryGroupInfo(), unionQuery.queryGroupInfo()); + } + if (baseQuery.hasConditionQueryRoleInfo()) { + unionQuery.queryRoleInfo().reflectRelationOnUnionQuery( + baseQuery.queryRoleInfo(), unionQuery.queryRoleInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public GroupInfoCQ queryGroupInfo() { + return getConditionQueryGroupInfo(); + } + + protected GroupInfoCQ _conditionQueryGroupInfo; + + public GroupInfoCQ getConditionQueryGroupInfo() { + if (_conditionQueryGroupInfo == null) { + _conditionQueryGroupInfo = createQueryGroupInfo(); + setupOuterJoin_GroupInfo(); + } + return _conditionQueryGroupInfo; + } + + protected void setupOuterJoin_GroupInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryGroupInfo().getRealColumnName("GROUP_ID")); + registerOuterJoin(getConditionQueryGroupInfo(), joinOnMap); + } + + protected GroupInfoCQ createQueryGroupInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "groupInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + GroupInfoCQ cq = new GroupInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("groupInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryGroupInfo() { + return _conditionQueryGroupInfo != null; + } + + public RoleInfoCQ queryRoleInfo() { + return getConditionQueryRoleInfo(); + } + + protected RoleInfoCQ _conditionQueryRoleInfo; + + public RoleInfoCQ getConditionQueryRoleInfo() { + if (_conditionQueryRoleInfo == null) { + _conditionQueryRoleInfo = createQueryRoleInfo(); + setupOuterJoin_RoleInfo(); + } + return _conditionQueryRoleInfo; + } + + protected void setupOuterJoin_RoleInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ROLE_ID"), getConditionQueryRoleInfo() + .getRealColumnName("ROLE_ID")); + registerOuterJoin(getConditionQueryRoleInfo(), joinOnMap); + } + + protected RoleInfoCQ createQueryRoleInfo() { + String nrp = resolveNextRelationPath("USER_INFO", "roleInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + RoleInfoCQ cq = new RoleInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("roleInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryRoleInfo() { + return _conditionQueryRoleInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupInfoCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupInfoCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupInfoCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,202 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsGroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsGroupInfoCQ; + +/** + * The condition-inline-query of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoCIQ extends AbstractBsGroupInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepGroupId_NotInScopeSubQuery_UserInfoList( + UserInfoCQ subQuery) { + return _myCQ.keepGroupId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepGroupId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepGroupId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return GroupInfoCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupMappingCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupMappingCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,118 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsGroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsGroupMappingCQ; + +/** + * The condition-inline-query of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingCIQ extends AbstractBsGroupMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsGroupMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public GroupMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsGroupMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return GroupMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/GroupMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleInfoCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleInfoCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleInfoCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,201 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoleInfoCQ; + +/** + * The condition-inline-query of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoCIQ extends AbstractBsRoleInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_InScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepRoleId_NotInScopeSubQuery_UserInfoList(UserInfoCQ subQuery) { + return _myCQ.keepRoleId_NotInScopeSubQuery_UserInfoList(subQuery); + } + + public String keepRoleId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_ExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_NotExistsSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepRoleId_DeriveSubQuery_UserInfoList(UserInfoCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueDescription() { + return _myCQ.getDescription(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoleInfoCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleMappingCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleMappingCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,118 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoleMappingCQ; + +/** + * The condition-inline-query of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingCIQ extends AbstractBsRoleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoleMappingCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,212 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleCQ; + +/** + * The condition-inline-query of ROUTINE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleCIQ extends AbstractBsRoutineScheduleCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoutineScheduleCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoutineScheduleCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsRoutineScheduleCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + return _myCQ + .keepId_InScopeSubQuery_RoutineScheduleContentAsOne(subQuery); + } + + public String keepId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + return _myCQ + .keepId_InScopeSubQuery_RoutineScheduleMappingList(subQuery); + } + + public String keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne(subQuery); + } + + public String keepId_NotInScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_RoutineScheduleMappingList(subQuery); + } + + public String keepId_ExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_RoutineScheduleContentAsOne( + RoutineScheduleContentCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueTitle() { + return _myCQ.getTitle(); + } + + protected ConditionValue getCValueLocation() { + return _myCQ.getLocation(); + } + + protected ConditionValue getCValueStartDate() { + return _myCQ.getStartDate(); + } + + protected ConditionValue getCValueStartTime() { + return _myCQ.getStartTime(); + } + + protected ConditionValue getCValueEndDate() { + return _myCQ.getEndDate(); + } + + protected ConditionValue getCValueEndTime() { + return _myCQ.getEndTime(); + } + + protected ConditionValue getCValueType() { + return _myCQ.getType(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,112 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoutineScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleContentCQ; + +/** + * The condition-inline-query of ROUTINE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContentCIQ extends + AbstractBsRoutineScheduleContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoutineScheduleContentCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoutineScheduleContentCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsRoutineScheduleContentCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_RoutineSchedule(subQuery); + } + + protected ConditionValue getCValueContent() { + return _myCQ.getContent(); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,121 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleMappingCQ; + +/** + * The condition-inline-query of ROUTINE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMappingCIQ extends + AbstractBsRoutineScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsRoutineScheduleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public RoutineScheduleMappingCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsRoutineScheduleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueScheduleId() { + return _myCQ.getScheduleId(); + } + + public String keepScheduleId_InScopeSubQuery_RoutineSchedule( + RoutineScheduleCQ subQuery) { + return _myCQ.keepScheduleId_InScopeSubQuery_RoutineSchedule(subQuery); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return RoutineScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,207 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsSingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleCQ; + +/** + * The condition-inline-query of SINGLE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleCIQ extends AbstractBsSingleScheduleCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsSingleScheduleCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public SingleScheduleCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsSingleScheduleCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + return _myCQ + .keepId_InScopeSubQuery_SingleScheduleContentAsOne(subQuery); + } + + public String keepId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_SingleScheduleMappingList(subQuery); + } + + public String keepId_NotInScopeSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_SingleScheduleContentAsOne(subQuery); + } + + public String keepId_NotInScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_SingleScheduleMappingList(subQuery); + } + + public String keepId_ExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_SingleScheduleContentAsOne( + SingleScheduleContentCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueTitle() { + return _myCQ.getTitle(); + } + + protected ConditionValue getCValueLocation() { + return _myCQ.getLocation(); + } + + protected ConditionValue getCValueStartDate() { + return _myCQ.getStartDate(); + } + + protected ConditionValue getCValueStartTime() { + return _myCQ.getStartTime(); + } + + protected ConditionValue getCValueEndDate() { + return _myCQ.getEndDate(); + } + + protected ConditionValue getCValueEndTime() { + return _myCQ.getEndTime(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,111 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsSingleScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleContentCQ; + +/** + * The condition-inline-query of SINGLE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContentCIQ extends AbstractBsSingleScheduleContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsSingleScheduleContentCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public SingleScheduleContentCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsSingleScheduleContentCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_SingleSchedule(subQuery); + } + + protected ConditionValue getCValueContent() { + return _myCQ.getContent(); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,120 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsSingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleMappingCQ; + +/** + * The condition-inline-query of SINGLE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMappingCIQ extends AbstractBsSingleScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsSingleScheduleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public SingleScheduleMappingCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsSingleScheduleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueScheduleId() { + return _myCQ.getScheduleId(); + } + + public String keepScheduleId_InScopeSubQuery_SingleSchedule( + SingleScheduleCQ subQuery) { + return _myCQ.keepScheduleId_InScopeSubQuery_SingleSchedule(subQuery); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return SingleScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,310 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsUserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsUserInfoCQ; + +/** + * The condition-inline-query of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoCIQ extends AbstractBsUserInfoCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsUserInfoCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public UserInfoCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsUserInfoCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_RoutineScheduleMappingList(subQuery); + } + + public String keepUserId_InScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_SingleScheduleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList(subQuery); + } + + public String keepUserId_NotInScopeSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + return _myCQ + .keepUserId_NotInScopeSubQuery_SingleScheduleMappingList(subQuery); + } + + public String keepUserId_ExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_ExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_NotExistsSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_GroupMappingList( + GroupMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoleMappingList( + RoleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_RoutineScheduleMappingList( + RoutineScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepUserId_DeriveSubQuery_SingleScheduleMappingList( + SingleScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueGivenName() { + return _myCQ.getGivenName(); + } + + protected ConditionValue getCValueFamilyName() { + return _myCQ.getFamilyName(); + } + + protected ConditionValue getCValueMiddleName() { + return _myCQ.getMiddleName(); + } + + protected ConditionValue getCValueGivenNameDesc() { + return _myCQ.getGivenNameDesc(); + } + + protected ConditionValue getCValueFamilyNameDesc() { + return _myCQ.getFamilyNameDesc(); + } + + protected ConditionValue getCValueNickname() { + return _myCQ.getNickname(); + } + + protected ConditionValue getCValueGender() { + return _myCQ.getGender(); + } + + protected ConditionValue getCValueBirthDate() { + return _myCQ.getBirthDate(); + } + + protected ConditionValue getCValueEmail() { + return _myCQ.getEmail(); + } + + protected ConditionValue getCValueUrl() { + return _myCQ.getUrl(); + } + + protected ConditionValue getCValueTelephone() { + return _myCQ.getTelephone(); + } + + protected ConditionValue getCValueRoleId() { + return _myCQ.getRoleId(); + } + + public String keepRoleId_InScopeSubQuery_RoleInfo(RoleInfoCQ subQuery) { + return _myCQ.keepRoleId_InScopeSubQuery_RoleInfo(subQuery); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_GroupInfo(GroupInfoCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_GroupInfo(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return UserInfoCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupInfoNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupInfoNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupInfoNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,32 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; + +/** + * The nest-select-setupper of GROUP_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoNss { + + protected GroupInfoCQ _query; + + public GroupInfoNss(GroupInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupMappingNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupMappingNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; + +/** + * The nest-select-setupper of GROUP_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingNss { + + protected GroupMappingCQ _query; + + public GroupMappingNss(GroupMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new GroupMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/GroupMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleInfoNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleInfoNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleInfoNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,32 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; + +/** + * The nest-select-setupper of ROLE_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoNss { + + protected RoleInfoCQ _query; + + public RoleInfoNss(RoleInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleMappingNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleMappingNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; + +/** + * The nest-select-setupper of ROLE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingNss { + + protected RoleMappingCQ _query; + + public RoleMappingNss(RoleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoleInfoNss withRoleInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,41 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; + +/** + * The nest-select-setupper of ROUTINE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContentNss { + + protected RoutineScheduleContentCQ _query; + + public RoutineScheduleContentNss(RoutineScheduleContentCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoutineScheduleNss withRoutineSchedule() { + _query.doNss(new RoutineScheduleContentCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoutineSchedule(); + } + }); + return new RoutineScheduleNss(_query.queryRoutineSchedule()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; + +/** + * The nest-select-setupper of ROUTINE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMappingNss { + + protected RoutineScheduleMappingCQ _query; + + public RoutineScheduleMappingNss(RoutineScheduleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public RoutineScheduleNss withRoutineSchedule() { + _query.doNss(new RoutineScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoutineSchedule(); + } + }); + return new RoutineScheduleNss(_query.queryRoutineSchedule()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new RoutineScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,42 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; + +/** + * The nest-select-setupper of ROUTINE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleNss { + + protected RoutineScheduleCQ _query; + + public RoutineScheduleNss(RoutineScheduleCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== + public RoutineScheduleContentNss withRoutineScheduleContentAsOne() { + _query.doNss(new RoutineScheduleCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoutineScheduleContentAsOne(); + } + }); + return new RoutineScheduleContentNss(_query + .queryRoutineScheduleContentAsOne()); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,41 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; + +/** + * The nest-select-setupper of SINGLE_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContentNss { + + protected SingleScheduleContentCQ _query; + + public SingleScheduleContentNss(SingleScheduleContentCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public SingleScheduleNss withSingleSchedule() { + _query.doNss(new SingleScheduleContentCQ.NssCall() { + public ConditionQuery qf() { + return _query.querySingleSchedule(); + } + }); + return new SingleScheduleNss(_query.querySingleSchedule()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; + +/** + * The nest-select-setupper of SINGLE_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMappingNss { + + protected SingleScheduleMappingCQ _query; + + public SingleScheduleMappingNss(SingleScheduleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public SingleScheduleNss withSingleSchedule() { + _query.doNss(new SingleScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.querySingleSchedule(); + } + }); + return new SingleScheduleNss(_query.querySingleSchedule()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new SingleScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,42 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; + +/** + * The nest-select-setupper of SINGLE_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleNss { + + protected SingleScheduleCQ _query; + + public SingleScheduleNss(SingleScheduleCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== + public SingleScheduleContentNss withSingleScheduleContentAsOne() { + _query.doNss(new SingleScheduleCQ.NssCall() { + public ConditionQuery qf() { + return _query.querySingleScheduleContentAsOne(); + } + }); + return new SingleScheduleContentNss(_query + .querySingleScheduleContentAsOne()); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/UserInfoNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/UserInfoNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/UserInfoNss.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The nest-select-setupper of USER_INFO. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoNss { + + protected UserInfoCQ _query; + + public UserInfoNss(UserInfoCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public GroupInfoNss withGroupInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryGroupInfo(); + } + }); + return new GroupInfoNss(_query.queryGroupInfo()); + } + + public RoleInfoNss withRoleInfo() { + _query.doNss(new UserInfoCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryRoleInfo(); + } + }); + return new RoleInfoNss(_query.queryRoleInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/UserInfoNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupInfoBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupInfoBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfoBhv extends jp.sf.pal.scheduler.db.bsbhv.BsGroupInfoBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMappingBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsGroupMappingBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/GroupMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleInfoBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleInfoBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfoBhv extends jp.sf.pal.scheduler.db.bsbhv.BsRoleInfoBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMappingBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsRoleMappingBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of ROUTINE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsRoutineScheduleBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of ROUTINE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContentBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsRoutineScheduleContentBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of ROUTINE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMappingBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsRoutineScheduleMappingBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of SINGLE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsSingleScheduleBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of SINGLE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContentBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsSingleScheduleContentBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of SINGLE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMappingBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsSingleScheduleMappingBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/UserInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/UserInfoBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/UserInfoBhv.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfoBhv extends jp.sf.pal.scheduler.db.bsbhv.BsUserInfoBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/UserInfoBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupInfoDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupInfoDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupInfoDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of GROUP_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupInfoDao extends + jp.sf.pal.scheduler.db.bsdao.BsGroupInfoDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of GROUP_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface GroupMappingDao extends + jp.sf.pal.scheduler.db.bsdao.BsGroupMappingDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/GroupMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleInfoDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleInfoDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleInfoDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of ROLE_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleInfoDao extends jp.sf.pal.scheduler.db.bsdao.BsRoleInfoDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of ROLE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoleMappingDao extends + jp.sf.pal.scheduler.db.bsdao.BsRoleMappingDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of ROUTINE_SCHEDULE_CONTENT.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoutineScheduleContentDao extends + jp.sf.pal.scheduler.db.bsdao.BsRoutineScheduleContentDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of ROUTINE_SCHEDULE.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoutineScheduleDao extends + jp.sf.pal.scheduler.db.bsdao.BsRoutineScheduleDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of ROUTINE_SCHEDULE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface RoutineScheduleMappingDao extends + jp.sf.pal.scheduler.db.bsdao.BsRoutineScheduleMappingDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of SINGLE_SCHEDULE_CONTENT.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface SingleScheduleContentDao extends + jp.sf.pal.scheduler.db.bsdao.BsSingleScheduleContentDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of SINGLE_SCHEDULE.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface SingleScheduleDao extends + jp.sf.pal.scheduler.db.bsdao.BsSingleScheduleDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of SINGLE_SCHEDULE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface SingleScheduleMappingDao extends + jp.sf.pal.scheduler.db.bsdao.BsSingleScheduleMappingDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/UserInfoDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/UserInfoDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/UserInfoDao.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of USER_INFO.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface UserInfoDao extends jp.sf.pal.scheduler.db.bsdao.BsUserInfoDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/UserInfoDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of GROUP_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupInfo extends jp.sf.pal.scheduler.db.bsentity.BsGroupInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of GROUP_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class GroupMapping extends + jp.sf.pal.scheduler.db.bsentity.BsGroupMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/GroupMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of ROLE_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleInfo extends jp.sf.pal.scheduler.db.bsentity.BsRoleInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of ROLE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoleMapping extends jp.sf.pal.scheduler.db.bsentity.BsRoleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,75 @@ +package jp.sf.pal.scheduler.db.exentity; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +/** + * The entity of ROUTINE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineSchedule extends + jp.sf.pal.scheduler.db.bsentity.BsRoutineSchedule { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public String getContent() { + if (getRoutineScheduleContentAsOne() != null) { + return getRoutineScheduleContentAsOne().getContent(); + } + return null; + } + + public void setContent(String content) { + if (getRoutineScheduleContentAsOne() == null) { + setRoutineScheduleContentAsOne(new RoutineScheduleContent()); + } + getRoutineScheduleContentAsOne().setContent(content); + } + + public String[] getSelectedUsers() { + if (getRoutineScheduleMappingList() != null + && !getRoutineScheduleMappingList().isEmpty()) { + List list = new ArrayList(); + for (RoutineScheduleMapping ssm : getRoutineScheduleMappingList()) { + list.add(ssm.getUserId()); + } + return list.toArray(new String[0]); + } + return null; + } + + public void setSelectedUsers(String[] users) { + if (users != null && getRoutineScheduleMappingList() != null) { + List userList = new LinkedList(); + for (String userId : users) { + userList.add(userId); + } + for (RoutineScheduleMapping ssm : getRoutineScheduleMappingList()) { + boolean delete = true; + for (String userId : userList) { + if (ssm.getUserId().equals(userId)) { + delete = false; + userList.remove(userId); + break; + } + } + if (delete) { + ssm.setDelete(true); + } + } + for (String userId : userList) { + RoutineScheduleMapping ssm = new RoutineScheduleMapping(); + ssm.setUserId(userId); + getRoutineScheduleMappingList().add(ssm); + } + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of ROUTINE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleContent extends + jp.sf.pal.scheduler.db.bsentity.BsRoutineScheduleContent { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,28 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of ROUTINE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class RoutineScheduleMapping extends + jp.sf.pal.scheduler.db.bsentity.BsRoutineScheduleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + private boolean delete = false; + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,75 @@ +package jp.sf.pal.scheduler.db.exentity; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +/** + * The entity of SINGLE_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleSchedule extends + jp.sf.pal.scheduler.db.bsentity.BsSingleSchedule { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public String getContent() { + if (getSingleScheduleContentAsOne() != null) { + return getSingleScheduleContentAsOne().getContent(); + } + return null; + } + + public void setContent(String content) { + if (getSingleScheduleContentAsOne() == null) { + setSingleScheduleContentAsOne(new SingleScheduleContent()); + } + getSingleScheduleContentAsOne().setContent(content); + } + + public String[] getSelectedUsers() { + if (getSingleScheduleMappingList() != null + && !getSingleScheduleMappingList().isEmpty()) { + List list = new ArrayList(); + for (SingleScheduleMapping ssm : getSingleScheduleMappingList()) { + list.add(ssm.getUserId()); + } + return list.toArray(new String[0]); + } + return null; + } + + public void setSelectedUsers(String[] users) { + if (users != null && getSingleScheduleMappingList() != null) { + List userList = new LinkedList(); + for (String userId : users) { + userList.add(userId); + } + for (SingleScheduleMapping ssm : getSingleScheduleMappingList()) { + boolean delete = true; + for (String userId : userList) { + if (ssm.getUserId().equals(userId)) { + delete = false; + userList.remove(userId); + break; + } + } + if (delete) { + ssm.setDelete(true); + } + } + for (String userId : userList) { + SingleScheduleMapping ssm = new SingleScheduleMapping(); + ssm.setUserId(userId); + getSingleScheduleMappingList().add(ssm); + } + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of SINGLE_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleContent extends + jp.sf.pal.scheduler.db.bsentity.BsSingleScheduleContent { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,28 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of SINGLE_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class SingleScheduleMapping extends + jp.sf.pal.scheduler.db.bsentity.BsSingleScheduleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + private boolean delete = false; + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,38 @@ +package jp.sf.pal.scheduler.db.exentity; + +import org.apache.commons.lang.StringUtils; + +/** + * The entity of USER_INFO. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class UserInfo extends jp.sf.pal.scheduler.db.bsentity.BsUserInfo { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public String getDisplayName() { + // TODO i18n + StringBuilder buf = new StringBuilder(); + if (getFamilyName() != null) { + buf.append(getFamilyName()); + } + if (getFamilyName() != null && getGivenName() != null) { + buf.append(" "); + } + if (getGivenName() != null) { + buf.append(getGivenName()); + } + String displayName = buf.toString(); + if (StringUtils.isEmpty(displayName)) { + return getUserId(); + } + return displayName; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,61 @@ +package jp.sf.pal.scheduler.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.form.admin.RoutineScheduleForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimePattern; + +public interface RoutineScheduleDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromRoutineScheduleToForm( + RoutineSchedule routineSchedule, RoutineScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToRoutineSchedule(RoutineScheduleForm form, + RoutineSchedule routineSchedule); + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,61 @@ +package jp.sf.pal.scheduler.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.form.admin.SingleScheduleForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimePattern; + +public interface SingleScheduleDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromSingleScheduleToForm(SingleSchedule singleSchedule, + SingleScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToSingleSchedule(SingleScheduleForm form, + SingleSchedule singleSchedule); + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,17 @@ +package jp.sf.pal.scheduler.form; + +import java.io.Serializable; + +import org.seasar.struts.annotation.Required; + +public class ConfigForm implements Serializable { + + private static final long serialVersionUID = 2108115319030589706L; + + @Required(target = "update") + public String roleAvailable; + + @Required(target = "update") + public String groupAvailable; + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,96 @@ +package jp.sf.pal.scheduler.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RoutineScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6969085674310253357L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @DateType + public String endDate; + + public String endTime; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,92 @@ +package jp.sf.pal.scheduler.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class SingleScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6969085674310253357L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @Required(target = "confirm,create,update,delete") + @DateType + public String endDate; + + public String endTime; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.pager; + +import jp.sf.pal.scheduler.common.pager.DefaultPager; + +public class RoutineSchedulePager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + public RoutineSchedulePager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.pager; + +import jp.sf.pal.scheduler.common.pager.DefaultPager; + +public class SingleSchedulePager extends DefaultPager { + + private static final long serialVersionUID = 208357552837282806L; + + public SingleSchedulePager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,177 @@ +package jp.sf.pal.scheduler.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; +import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleBhv; +import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleContentBhv; +import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; +import jp.sf.pal.scheduler.pager.RoutineSchedulePager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class RoutineScheduleService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient RoutineScheduleBhv routineScheduleBhv; + + private transient RoutineScheduleContentBhv routineScheduleContentBhv; + + private transient RoutineScheduleMappingBhv routineScheduleMappingBhv; + + private PagerDxo pagerDxo; + + public List getRoutineScheduleList( + RoutineSchedulePager routineSchedulePager, String userId) { + + HotdeployUtil.rebuildValue(routineSchedulePager); + + RoutineScheduleCB cb = new RoutineScheduleCB(); + + cb.fetchFirst(routineSchedulePager.getPageSize()); + cb.fetchPage(routineSchedulePager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_StartDate_Desc(); + + PagingResultBean groupInfoList = routineScheduleBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), + routineSchedulePager); + groupInfoList.setPageRangeSize(5); + routineSchedulePager.setPageNumberList(groupInfoList.pageRange() + .createPageNumberList()); + + return groupInfoList; + } + + public RoutineSchedule getRoutineSchedule(Long id, String userid) { + RoutineScheduleCB cb = new RoutineScheduleCB(); + + // setup + cb.setupSelect_RoutineScheduleContentAsOne(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + RoutineSchedule routineSchedule = routineScheduleBhv.selectEntity(cb); + if (routineSchedule == null) { + return null; + } + + RoutineScheduleMappingCB cb2 = new RoutineScheduleMappingCB(); + cb2.query().setScheduleId_Equal(id); + routineSchedule.setRoutineScheduleMappingList(routineScheduleMappingBhv + .selectList(cb2)); + return routineSchedule; + } + + public void store(RoutineSchedule routineSchedule) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + routineSchedule.setUpdatedTime(now); + + RoutineScheduleContent ssc = routineSchedule + .getRoutineScheduleContentAsOne(); + + if (routineSchedule.getCreatedTime() == null) { + // create + routineSchedule.setCreatedTime(now); + routineScheduleBhv.insert(routineSchedule); + + if (ssc != null) { + ssc.setId(routineSchedule.getId()); + routineScheduleContentBhv.insert(ssc); + } + } else { + // update + routineScheduleBhv.update(routineSchedule); + + if (ssc != null) { + if (ssc.getId() == null) { + ssc.setId(routineSchedule.getId()); + } + routineScheduleContentBhv.insertOrUpdate(ssc); + } + } + + // mapping + List ssmList = routineSchedule + .getRoutineScheduleMappingList(); + if (ssmList != null) { + for (RoutineScheduleMapping ssm : ssmList) { + if (ssm.isDelete()) { + // delete + routineScheduleMappingBhv.delete(ssm); + } else if (ssm.getId() == null) { + // create + ssm.setScheduleId(routineSchedule.getId()); + routineScheduleMappingBhv.insert(ssm); + } + } + } + } + + public void disable(Long id, String name) { + // not delete + RoutineScheduleCB cb = new RoutineScheduleCB(); + + cb.query().setId_Equal(id); + RoutineSchedule groupInfo = routineScheduleBhv.selectEntity(cb); + + // TODO throw an exception + + groupInfo.setDeletedBy(name); + groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); + routineScheduleBhv.update(groupInfo); + } + + public RoutineScheduleBhv getRoutineScheduleBhv() { + return routineScheduleBhv; + } + + public void setRoutineScheduleBhv(RoutineScheduleBhv messageBhv) { + this.routineScheduleBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RoutineScheduleMappingBhv getRoutineScheduleMappingBhv() { + return routineScheduleMappingBhv; + } + + public void setRoutineScheduleMappingBhv( + RoutineScheduleMappingBhv routineScheduleMappingBhv) { + this.routineScheduleMappingBhv = routineScheduleMappingBhv; + } + + public RoutineScheduleContentBhv getRoutineScheduleContentBhv() { + return routineScheduleContentBhv; + } + + public void setRoutineScheduleContentBhv( + RoutineScheduleContentBhv routineScheduleContentBhv) { + this.routineScheduleContentBhv = routineScheduleContentBhv; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,177 @@ +package jp.sf.pal.scheduler.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; +import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.SingleScheduleBhv; +import jp.sf.pal.scheduler.db.exbhv.SingleScheduleContentBhv; +import jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; +import jp.sf.pal.scheduler.pager.SingleSchedulePager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class SingleScheduleService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient SingleScheduleBhv singleScheduleBhv; + + private transient SingleScheduleContentBhv singleScheduleContentBhv; + + private transient SingleScheduleMappingBhv singleScheduleMappingBhv; + + private PagerDxo pagerDxo; + + public List getSingleScheduleList( + SingleSchedulePager singleSchedulePager, String userId) { + + HotdeployUtil.rebuildValue(singleSchedulePager); + + SingleScheduleCB cb = new SingleScheduleCB(); + + cb.fetchFirst(singleSchedulePager.getPageSize()); + cb.fetchPage(singleSchedulePager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_StartDate_Desc(); + + PagingResultBean groupInfoList = singleScheduleBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), + singleSchedulePager); + groupInfoList.setPageRangeSize(5); + singleSchedulePager.setPageNumberList(groupInfoList.pageRange() + .createPageNumberList()); + + return groupInfoList; + } + + public SingleSchedule getSingleSchedule(Long id, String userid) { + SingleScheduleCB cb = new SingleScheduleCB(); + + // setup + cb.setupSelect_SingleScheduleContentAsOne(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + SingleSchedule singleSchedule = singleScheduleBhv.selectEntity(cb); + if (singleSchedule == null) { + return null; + } + + SingleScheduleMappingCB cb2 = new SingleScheduleMappingCB(); + cb2.query().setScheduleId_Equal(id); + singleSchedule.setSingleScheduleMappingList(singleScheduleMappingBhv + .selectList(cb2)); + return singleSchedule; + } + + public void store(SingleSchedule singleSchedule) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + singleSchedule.setUpdatedTime(now); + + SingleScheduleContent ssc = singleSchedule + .getSingleScheduleContentAsOne(); + + if (singleSchedule.getCreatedTime() == null) { + // create + singleSchedule.setCreatedTime(now); + singleScheduleBhv.insert(singleSchedule); + + if (ssc != null) { + ssc.setId(singleSchedule.getId()); + singleScheduleContentBhv.insert(ssc); + } + } else { + // update + singleScheduleBhv.update(singleSchedule); + + if (ssc != null) { + if (ssc.getId() == null) { + ssc.setId(singleSchedule.getId()); + } + singleScheduleContentBhv.insertOrUpdate(ssc); + } + } + + // mapping + List ssmList = singleSchedule + .getSingleScheduleMappingList(); + if (ssmList != null) { + for (SingleScheduleMapping ssm : ssmList) { + if (ssm.isDelete()) { + // delete + singleScheduleMappingBhv.delete(ssm); + } else if (ssm.getId() == null) { + // create + ssm.setScheduleId(singleSchedule.getId()); + singleScheduleMappingBhv.insert(ssm); + } + } + } + } + + public void disable(Long id, String name) { + // not delete + SingleScheduleCB cb = new SingleScheduleCB(); + + cb.query().setId_Equal(id); + SingleSchedule groupInfo = singleScheduleBhv.selectEntity(cb); + + // TODO throw an exception + + groupInfo.setDeletedBy(name); + groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); + singleScheduleBhv.update(groupInfo); + } + + public SingleScheduleBhv getSingleScheduleBhv() { + return singleScheduleBhv; + } + + public void setSingleScheduleBhv(SingleScheduleBhv messageBhv) { + this.singleScheduleBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public SingleScheduleMappingBhv getSingleScheduleMappingBhv() { + return singleScheduleMappingBhv; + } + + public void setSingleScheduleMappingBhv( + SingleScheduleMappingBhv singleScheduleMappingBhv) { + this.singleScheduleMappingBhv = singleScheduleMappingBhv; + } + + public SingleScheduleContentBhv getSingleScheduleContentBhv() { + return singleScheduleContentBhv; + } + + public void setSingleScheduleContentBhv( + SingleScheduleContentBhv singleScheduleContentBhv) { + this.singleScheduleContentBhv = singleScheduleContentBhv; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,58 @@ +package jp.sf.pal.scheduler.service; + +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exbhv.UserInfoBhv; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +public class UserInfoService { + private transient UserInfoBhv userInfoBhv; + + public List getAvailableUserList(String[] selectedUsers, + String userId) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + if (selectedUsers != null) { + List excludedUserIdList = new ArrayList(); + for (String uid : selectedUsers) { + excludedUserIdList.add(uid); + } + cb.query().setUserId_NotInScope(excludedUserIdList); + } + return userInfoBhv.selectList(cb); + } + + public List getSelectedUserList(String[] selectedUsers) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + if (selectedUsers != null) { + List userIdList = new ArrayList( + selectedUsers.length); + for (String userId : selectedUsers) { + userIdList.add(userId); + } + cb.query().setUserId_InScope(userIdList); + } + + cb.query().addOrderBy_FamilyName_Asc(); + + return userInfoBhv.selectList(cb); + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,5 @@ +package jp.sf.pal.scheduler.util; + +public class SchedulerUtil { + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/app.dicon =================================================================== --- scheduler/trunk/src/main/resources/app.dicon (rev 0) +++ scheduler/trunk/src/main/resources/app.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,11 @@ + + + + + + + + + + Added: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties (rev 0) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,63 @@ +errors.header=
      +errors.footer=
    +errors.prefix=
  • +errors.suffix=
  • +msg.header=
      +msg.footer=
    + +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.required.other={0} is required ({1}). +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +success.update_config=Updated configuration. +success.create_singleSchedule=Created your event. +success.update_singleSchedule=Updated your event. +success.delete_singleSchedule=Deleted your event. +success.create_routineSchedule=Created your event. +success.update_routineSchedule=Updated your event. +success.delete_routineSchedule=Deleted your event. + +errors.failed_to_update_config=Failed to update the configuration. +errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). +errors.failed_to_create_singleSchedule=Failed to create a new event. +errors.failed_to_update_singleSchedule=Failed to update the event. +errors.failed_to_delete_singleSchedule=Failed to delete the event. +errors.could_not_find_singleSchedule=Could not find the event({0}). +errors.failed_to_create_routineSchedule=Failed to create a new event. +errors.failed_to_update_routineSchedule=Failed to update the event. +errors.failed_to_delete_routineSchedule=Failed to delete the event. +errors.could_not_find_routineSchedule=Could not find the event({0}). + +labels.detail=Detail +labels.create=Create +labels.update=Update +labels.delete=Delete +labels.back=Back +labels.edit=Edit +labels.confirm=Confirm + +labels.config=Configuration + +labels.event_detail=Event Details +labels.confirmation_of_event=Confirmation of Event + +labels.create_new_event=Create New Event +labels.to_next=Next +labels.to_back=Back + + Property changes on: scheduler/trunk/src/main/resources/application.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/application_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/application_ja.properties (rev 0) +++ scheduler/trunk/src/main/resources/application_ja.properties 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,48 @@ +errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.maxbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.minbytelength={0} \u306e\u30b5\u30a4\u30ba\u306f {1} \u30d0\u30a4\u30c8\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.required={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +errors.required.other={0} \u306f\u5fc5\u305a\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002({1}) +errors.byte={0} \u306f\u30d0\u30a4\u30c8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.date={0} \u306f\u65e5\u4ed8\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.double={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (double \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.float={0} \u306f\u6d6e\u52d5\u5c0f\u6570\u70b9\u578b (float \u578b) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.integer={0} \u306f\u6574\u6570\u578b (2147483647 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.long={0} \u306f\u6574\u6570\u578b (9223372036854775807 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.short={0} \u306f\u6574\u6570\u578b (32767 \u4ee5\u4e0b\u306e\u6574\u6570) \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.creditcard={0} \u306f\u6b63\u3057\u3044\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.email={0} \u306f\u6b63\u3057\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.url={0} \u306f\u6b63\u3057\u3044 URL (\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u30a2\u30c9\u30ec\u30b9) \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 + +success.update_config=\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.create_singleSchedule=Created your event. +success.update_singleSchedule=Updated your event. +success.delete_singleSchedule=Deleted your event. +success.create_routineSchedule=Created your event. +success.update_routineSchedule=Updated your event. +success.delete_routineSchedule=Deleted your event. + +errors.failed_to_update_config=\u8a2d\u5b9a\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) +errors.failed_to_create_singleSchedule=Failed to create a new event. +errors.failed_to_update_singleSchedule=Failed to update the event. +errors.failed_to_delete_singleSchedule=Failed to delete the event. +errors.could_not_find_singleSchedule=Could not find the event({0}). +errors.failed_to_create_routineSchedule=Failed to create a new event. +errors.failed_to_update_routineSchedule=Failed to update the event. +errors.failed_to_delete_routineSchedule=Failed to delete the event. +errors.could_not_find_routineSchedule=Could not find the event({0}). + +labels.detail=\u8a73\u7d30 +labels.create=\u4f5c\u6210 +labels.update=\u66f4\u65b0 +labels.delete=\u524a\u9664 +labels.back=\u623b\u308b +labels.edit=\u7de8\u96c6 +labels.confirm=\u78ba\u8a8d + +labels.config=\u8a2d\u5b9a + Property changes on: scheduler/trunk/src/main/resources/application_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/convention.dicon =================================================================== --- scheduler/trunk/src/main/resources/convention.dicon (rev 0) +++ scheduler/trunk/src/main/resources/convention.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,21 @@ + + + + + + "jp.sf.pal.scheduler" + + + "jp.sf.pal.scheduler.common" + + + "jp.sf.pal.scheduler.common.util" + + + + Added: scheduler/trunk/src/main/resources/creator.dicon =================================================================== --- scheduler/trunk/src/main/resources/creator.dicon (rev 0) +++ scheduler/trunk/src/main/resources/creator.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + Added: scheduler/trunk/src/main/resources/customizer.dicon =================================================================== --- scheduler/trunk/src/main/resources/customizer.dicon (rev 0) +++ scheduler/trunk/src/main/resources/customizer.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,58 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + + + + + + + + + traceCustomizer + + + s2DxoCustomizer + + + + + + + Added: scheduler/trunk/src/main/resources/dbflute.dicon =================================================================== --- scheduler/trunk/src/main/resources/dbflute.dicon (rev 0) +++ scheduler/trunk/src/main/resources/dbflute.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,111 @@ + + + + + + + + + "UTF-8" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + Added: scheduler/trunk/src/main/resources/env.txt =================================================================== --- scheduler/trunk/src/main/resources/env.txt (rev 0) +++ scheduler/trunk/src/main/resources/env.txt 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1 @@ +product Property changes on: scheduler/trunk/src/main/resources/env.txt ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/env_ut.txt =================================================================== --- scheduler/trunk/src/main/resources/env_ut.txt (rev 0) +++ scheduler/trunk/src/main/resources/env_ut.txt 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1 @@ +ut \ No newline at end of file Property changes on: scheduler/trunk/src/main/resources/env_ut.txt ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jdbc.dicon =================================================================== --- scheduler/trunk/src/main/resources/jdbc.dicon (rev 0) +++ scheduler/trunk/src/main/resources/jdbc.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,160 @@ + + + + + + + + + + + + 100 + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:file:" + container.getComponent(@java.lang.Class ¡÷ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/scheduler") + + + "sa" + "" + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + Added: scheduler/trunk/src/main/resources/s2container.dicon =================================================================== --- scheduler/trunk/src/main/resources/s2container.dicon (rev 0) +++ scheduler/trunk/src/main/resources/s2container.dicon 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db =================================================================== (Binary files differ) Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db =================================================================== (Binary files differ) Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db =================================================================== (Binary files differ) Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,55 @@ + + + + Scheduler + PAL Project + + SchedulerConfig + admin + + + SchedulerManager + admin + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,47 @@ + + + + SchedulerConfig + Scheduler: Scheduler Configuration + Edit configurations. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /config/ + + 0 + + text/html + VIEW + + en + ja + + Scheduler Configuration + Config + Scheduler,URL + + + + SchedulerManager + Scheduler: Scheduler Manager + Edit user information. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /admin/singleSchedule/ + + 0 + + text/html + VIEW + + en + ja + + Scheduler Manager + Schedulers + Scheduler,URL + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/scheduler.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/scheduler.xml (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/scheduler.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,3 @@ + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/scheduler.xml ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/struts-config.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/struts-config.xml ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/validator-rules.xml ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,122 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One Time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + + + +
    +

    NameCompany  
    ${f:h(p.familyName)} ${f:h(p.givenName)} ${f:h(p.company.name)} - Edit - Delete + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What${f:h(title)}
    Where${f:h(location)}
    Repeats +Daily +Every weekday (Mon-Fri) +Every Mon., Wed., and Fri. +Every Tues., and Thurs. +Weekly +Monthly +Yearly + +
    When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
    +To: + ${f:h(endDate)} + ${f:h(endTime)} +
    Description${f:br(f:h(content))}
    Assigned + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + + + ${f:u(u.userId)} + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + "/> + +
    + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,115 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One Time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What
    Where
    Repeats + + Daily + Every weekday (Mon-Fri) + Every Mon., Wed., and Fri. + Every Tues., and Thurs. + Weekly + Monthly + Yearly + +
    When +From: + + +
    +To: + + +
    Description
    Assigned + + + + + + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + +
    + + + ${f:u(u.userId)} + + +
    + "/> + "/> +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/error.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • One Time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + + +
    + +
    + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/index.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One Time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + +
    IDTitle 
    ${f:h(ss.id)}${f:h(ss.title)} + + +
    + +
    + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
    +
    + + ${routineSchedulePager.currentPageNumber}/${routineSchedulePager.allPageCount} (${routineSchedulePager.allRecordCount}) + +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/userlist.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,99 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One Time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + +
    + + + + + + + + + + +
    + + + + + + + + + + + +
    User List
    + + + + ${f:h(u.displayName)} + + +
    +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + +
    Selected User List
    + + + + ${f:h(u.displayName)} + + + + + ${f:u(u.userId)} + + +
    + +
    +
    +
    +
    + +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,109 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What${f:h(title)}
    Where${f:h(location)}
    When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
    +To: + ${f:h(endDate)} + ${f:h(endTime)} +
    Description${f:br(f:h(content))}
    Assigned + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + + + ${f:u(u.userId)} + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + "/> + +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,101 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What
    Where
    When +From: + + +
    +To: + + +
    Description
    Assigned + + + + + + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + +
    + + + ${f:u(u.userId)} + + +
    + "/> + "/> +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/error.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • One time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + + +
    + +
    + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/index.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + + + + +
    IDTitle 
    ${f:h(ss.id)}${f:h(ss.title)} + + +
    + +
    + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
    +
    + + ${singleSchedulePager.currentPageNumber}/${singleSchedulePager.allPageCount} (${singleSchedulePager.allRecordCount}) + +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/userlist.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,98 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • One time
    • +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + +
    + + + + + + + + + +
    + + + + + + + + + + + +
    User List
    + + + + ${f:h(u.displayName)} + + +
    +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + +
    Selected User List
    + + + + ${f:h(u.displayName)} + + + + + ${f:u(u.userId)} + + +
    + +
    +
    +
    +
    + +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,9 @@ +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> + +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,46 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + +
    +"/> +
    +
    +
    +
    + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/web.xml (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-14 09:14:02 UTC (rev 1350) @@ -0,0 +1,168 @@ + + + + Scheduler + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + encodingfilter + /* + + + portletRequestFilter + /* + INCLUDE + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + routingfilter + /* + REQUEST + + + portletRoutingfilter + /* + INCLUDE + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + 1 + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + s2container + /s2container + + + + index.html + index.htm + index.jsp + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/web.xml ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Fri Nov 14 20:57:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 14 Nov 2008 20:57:04 +0900 Subject: [pal-cvs 3616] [1351] Initial Import Message-ID: <1226663824.932023.9511.nullmailer@users.sourceforge.jp> Revision: 1351 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1351 Author: karma Date: 2008-11-14 20:57:04 +0900 (Fri, 14 Nov 2008) Log Message: ----------- Initial Import Added Paths: ----------- palwassr/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Fri Nov 14 21:11:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 14 Nov 2008 21:11:04 +0900 Subject: [pal-cvs 3617] [1352] Message-ID: <1226664664.381893.22347.nullmailer@users.sourceforge.jp> Revision: 1352 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1352 Author: karma Date: 2008-11-14 21:11:03 +0900 (Fri, 14 Nov 2008) Log Message: ----------- Added Paths: ----------- palwassr/.classpath palwassr/.project palwassr/LICENSE.txt palwassr/pom.xml palwassr/src/ palwassr/src/main/ palwassr/src/main/java/ palwassr/src/main/java/jp/ palwassr/src/main/java/jp/sf/ palwassr/src/main/java/jp/sf/pal/ palwassr/src/main/java/jp/sf/pal/wassr/ palwassr/src/main/java/jp/sf/pal/wassr/action/ palwassr/src/main/java/jp/sf/pal/wassr/action/IndexAction.java palwassr/src/main/java/jp/sf/pal/wassr/form/ palwassr/src/main/java/jp/sf/pal/wassr/service/ palwassr/src/main/java/jp/sf/pal/wassr/service/HttpClientService.java palwassr/src/main/java/jp/sf/pal/wassr/service/TimelineService.java palwassr/src/main/java/jp/sf/pal/wassr/service/WassrTimelineService.java palwassr/src/main/resources/ palwassr/src/main/resources/app.dicon palwassr/src/main/resources/application.properties palwassr/src/main/resources/application_ja.properties palwassr/src/main/resources/convention.dicon palwassr/src/main/resources/creator.dicon palwassr/src/main/resources/customizer.dicon palwassr/src/main/resources/data/ palwassr/src/main/resources/data/demo.1.log.db palwassr/src/main/resources/data/demo.data.db palwassr/src/main/resources/data/demo.index.db palwassr/src/main/resources/data/demo.sql palwassr/src/main/resources/env.txt palwassr/src/main/resources/env_ut.txt palwassr/src/main/resources/jdbc.dicon palwassr/src/main/resources/jp/ palwassr/src/main/resources/jp/sf/ palwassr/src/main/resources/jp/sf/pal/ palwassr/src/main/resources/jp/sf/pal/wassr/ palwassr/src/main/resources/jp/sf/pal/wassr/action/ palwassr/src/main/resources/jp/sf/pal/wassr/form/ palwassr/src/main/resources/log4j.properties palwassr/src/main/resources/s2container.dicon palwassr/src/main/webapp/ palwassr/src/main/webapp/WEB-INF/ palwassr/src/main/webapp/WEB-INF/lib/ palwassr/src/main/webapp/WEB-INF/lib/antlr-2.7.7.jar palwassr/src/main/webapp/WEB-INF/lib/aopalliance-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/commons-beanutils-1.7.0.jar palwassr/src/main/webapp/WEB-INF/lib/commons-codec-1.3.jar palwassr/src/main/webapp/WEB-INF/lib/commons-collections-3.1.jar palwassr/src/main/webapp/WEB-INF/lib/commons-digester-1.6.jar palwassr/src/main/webapp/WEB-INF/lib/commons-el-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/commons-fileupload-1.2.jar palwassr/src/main/webapp/WEB-INF/lib/commons-httpclient-3.1.jar palwassr/src/main/webapp/WEB-INF/lib/commons-io-1.3.2.jar palwassr/src/main/webapp/WEB-INF/lib/commons-logging-1.1.jar palwassr/src/main/webapp/WEB-INF/lib/commons-validator-1.2.0.jar palwassr/src/main/webapp/WEB-INF/lib/geronimo-annotation_1.0_spec-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/geronimo-ejb_3.0_spec-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/geronimo-interceptor_3.0_spec-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/geronimo-jpa_3.0_spec-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/geronimo-jta_1.1_spec-1.0.jar palwassr/src/main/webapp/WEB-INF/lib/h2-1.0.69.jar palwassr/src/main/webapp/WEB-INF/lib/jakarta-oro-2.0.8.jar palwassr/src/main/webapp/WEB-INF/lib/jakarta-taglibs-standard-1.1.2.jar palwassr/src/main/webapp/WEB-INF/lib/javassist-3.4.ga.jar palwassr/src/main/webapp/WEB-INF/lib/jstl-1.1.2.jar palwassr/src/main/webapp/WEB-INF/lib/log4j-1.2.13.jar palwassr/src/main/webapp/WEB-INF/lib/ognl-2.6.9-patch-20070908.jar palwassr/src/main/webapp/WEB-INF/lib/poi-3.0-FINAL.jar palwassr/src/main/webapp/WEB-INF/lib/s2-extension-2.4.29.jar palwassr/src/main/webapp/WEB-INF/lib/s2-framework-2.4.29.jar palwassr/src/main/webapp/WEB-INF/lib/s2-tiger-2.4.29.jar palwassr/src/main/webapp/WEB-INF/lib/sa-struts-1.0.4-sp1.jar palwassr/src/main/webapp/WEB-INF/lib/sa-struts-portlet-1.0.0-rc3.jar palwassr/src/main/webapp/WEB-INF/lib/sources/ palwassr/src/main/webapp/WEB-INF/lib/sources/commons-beanutils-1.7.0-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/commons-collections-3.1-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/commons-el-1.0-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/commons-fileupload-1.2-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/commons-io-1.3.2-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/commons-logging-1.1-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/commons-validator-1.2.0-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/jakarta-oro-2.0.8-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/jakarta-taglibs-standard-1.1.2-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/log4j-1.2.13-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/s2-extension-2.4.29-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/s2-framework-2.4.29-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/s2-tiger-2.4.29-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/sa-struts-1.0.4-sp1-sources.jar palwassr/src/main/webapp/WEB-INF/lib/sources/struts-1.2.9-sources.jar palwassr/src/main/webapp/WEB-INF/lib/struts-1.2.9.jar palwassr/src/main/webapp/WEB-INF/portlet.xml palwassr/src/main/webapp/WEB-INF/struts-config.xml palwassr/src/main/webapp/WEB-INF/validator-rules.xml palwassr/src/main/webapp/WEB-INF/view/ palwassr/src/main/webapp/WEB-INF/view/common/ palwassr/src/main/webapp/WEB-INF/view/common/common.jsp palwassr/src/main/webapp/WEB-INF/view/common/footer.jsp palwassr/src/main/webapp/WEB-INF/view/common/header.jsp palwassr/src/main/webapp/WEB-INF/view/common/layout.jsp palwassr/src/main/webapp/WEB-INF/view/common/menu.jsp palwassr/src/main/webapp/WEB-INF/view/index.jsp palwassr/src/main/webapp/WEB-INF/web.xml palwassr/src/main/webapp/js/ palwassr/src/main/webapp/js/jquery.js palwassr/src/test/ palwassr/src/test/java/ palwassr/src/test/java/jp/ palwassr/src/test/java/jp/sf/ palwassr/src/test/java/jp/sf/pal/ palwassr/src/test/java/jp/sf/pal/wassr/ palwassr/src/test/java/jp/sf/pal/wassr/action/ palwassr/src/test/java/jp/sf/pal/wassr/form/ palwassr/src/test/resources/ -------------- next part -------------- Added: palwassr/.classpath =================================================================== --- palwassr/.classpath (rev 0) +++ palwassr/.classpath 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: palwassr/.project =================================================================== --- palwassr/.project (rev 0) +++ palwassr/.project 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,26 @@ + + + palwassr + + + + + + org.maven.ide.eclipse.maven2Builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + org.seasar.dolteng.eclipse.nature + org.seasar.dblauncher.nature + com.sysdeo.eclipse.tomcat.tomcatnature + + Added: palwassr/LICENSE.txt =================================================================== --- palwassr/LICENSE.txt (rev 0) +++ palwassr/LICENSE.txt 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: palwassr/pom.xml =================================================================== --- palwassr/pom.xml (rev 0) +++ palwassr/pom.xml 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,238 @@ + + 4.0.0 + jp.sf.pal.wassr + palwassr + 0.0.1 + war + palwassr + + src/main/java + src/main/webapp/WEB-INF/classes + + + src/main/resources + + + target/test-classes + src/test/java + + + src/test/resources + + + validate + + + maven-compiler-plugin + + 1.6 + 1.6 + UTF-8 + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + maven-eclipse-plugin + + 1.5 + + + + + + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + local + Local Repository + file:repo + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + org.apache.geronimo.specs + geronimo-jsp_2.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-servlet_2.4_spec + 1.0 + + + junit + junit + 3.8.2 + + + junit-addons + junit-addons + 1.4 + + + antlr + antlr + 2.7.7 + + + aopalliance + aopalliance + 1.0 + + + commons-beanutils + commons-beanutils + 1.7.0 + + + commons-collections + commons-collections + 3.1 + + + commons-digester + commons-digester + 1.6 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2 + + + commons-io + commons-io + 1.3.2 + + + commons-logging + commons-logging + 1.1 + + + commons-validator + commons-validator + 1.2.0 + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jpa_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + com.h2database + h2 + 1.0.69 + + + oro + oro + 2.0.8 + + + taglibs + standard + 1.1.2 + + + jboss + javassist + 3.4.ga + + + jstl + jstl + 1.1.2 + + + log4j + log4j + 1.2.13 + + + ognl + ognl + 2.6.9-patch-20070908 + + + poi + poi + 3.0-FINAL + + + org.seasar.container + s2-extension + 2.4.29 + + + org.seasar.container + s2-framework + 2.4.29 + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.seasar.sastruts + sa-struts + 1.0.4-sp1 + + + struts + struts + 1.2.9 + + + Added: palwassr/src/main/java/jp/sf/pal/wassr/action/IndexAction.java =================================================================== --- palwassr/src/main/java/jp/sf/pal/wassr/action/IndexAction.java (rev 0) +++ palwassr/src/main/java/jp/sf/pal/wassr/action/IndexAction.java 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,41 @@ +/* + * Copyright 2004-2008 the Seasar Foundation and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.wassr.action; + +import javax.annotation.*; + +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.util.*; + +import jp.sf.pal.wassr.service.WassrTimelineService; + +public class IndexAction { + + @Resource + protected WassrTimelineService wassrTimelineService ; + + @Execute(validator = false) + public String index() { + return "index.jsp"; + } + + @Execute(validator = false) + public String public_timeline() { + ResponseUtil.write(wassrTimelineService.getPublicTimeline()); + return null ; + } + +} Added: palwassr/src/main/java/jp/sf/pal/wassr/service/HttpClientService.java =================================================================== --- palwassr/src/main/java/jp/sf/pal/wassr/service/HttpClientService.java (rev 0) +++ palwassr/src/main/java/jp/sf/pal/wassr/service/HttpClientService.java 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,92 @@ +package jp.sf.pal.wassr.service; + +import org.apache.commons.httpclient.*; +import org.apache.commons.httpclient.methods.*; +import org.apache.commons.httpclient.auth.*; + +public class HttpClientService { + + private String userId ; + private String password ; + private HttpClient client ; + private boolean requireAuth ; + + public HttpClientService(String userId, String password, boolean requireAuth) { + this.userId = userId; + this.password = password; + this.requireAuth = requireAuth; + this.client = new HttpClient(); + } + + public HttpClientService(boolean requireAuth) { + this(null,null,requireAuth); + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public boolean isRequireAuth() { + return requireAuth; + } + + public void setRequireAuth(boolean requireAuth) { + this.requireAuth = requireAuth; + } + + public String getContents(String _url) { + + HttpURL url = null ; + String hostname = null ; + int port = 80 ; + String ret = null ; + + try { + url = new HttpURL(_url); + hostname = url.getHost(); + port = url.getPort(); + } catch(Exception e) { + // TODO: + return ret ; + } + + if (this.requireAuth) { + this.client.getState().setCredentials( + new AuthScope(hostname, port, "realm"), + new UsernamePasswordCredentials(userId, password)); + } + + GetMethod get = new GetMethod(url.toString()); + + if (this.requireAuth) { + get.setDoAuthentication(true); + } else { + get.setDoAuthentication(false); + } + + try { + int status = this.client.executeMethod(get); + ret = get.getResponseBodyAsString(); + } catch(Exception e) { + // TODO: + } finally { + get.releaseConnection(); + } + + return ret; + + } + +} Added: palwassr/src/main/java/jp/sf/pal/wassr/service/TimelineService.java =================================================================== --- palwassr/src/main/java/jp/sf/pal/wassr/service/TimelineService.java (rev 0) +++ palwassr/src/main/java/jp/sf/pal/wassr/service/TimelineService.java 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,17 @@ +package jp.sf.pal.wassr.service; + +public interface TimelineService { + + /** + * ͧã¤Î¤Ò¤È¤³¤È¤òÆÀ¤ë + * @return ͧã¤Î¤Ò¤È¤³¤È + */ + String getFriendsTimeline(String userId); + + /** + * ÆüËÜÃæ¤Î¤Ò¤È¤³¤È¤òÆÀ¤ë + * @return ÆüËÜÃæ¤Î¤Ò¤È¤³¤È + */ + String getPublicTimeline(); + +} Added: palwassr/src/main/java/jp/sf/pal/wassr/service/WassrTimelineService.java =================================================================== --- palwassr/src/main/java/jp/sf/pal/wassr/service/WassrTimelineService.java (rev 0) +++ palwassr/src/main/java/jp/sf/pal/wassr/service/WassrTimelineService.java 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,18 @@ + package jp.sf.pal.wassr.service; + +public class WassrTimelineService implements TimelineService { + + private static final String friendsTimelineUrl = "http://api.wassr.jp/statuses/friends_timeline.json" ; + private static final String publicTimelineUrl = "http://api.wassr.jp/statuses/public_timeline.json" ; + + public String getFriendsTimeline(String userId) { + HttpClientService service = new HttpClientService(false); + return service.getContents(friendsTimelineUrl + "?" + userId); + } + + public String getPublicTimeline() { + HttpClientService service = new HttpClientService(false); + return service.getContents(publicTimelineUrl) ; + } + +} Added: palwassr/src/main/resources/app.dicon =================================================================== --- palwassr/src/main/resources/app.dicon (rev 0) +++ palwassr/src/main/resources/app.dicon 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,9 @@ + + + + + + + + Added: palwassr/src/main/resources/application.properties =================================================================== --- palwassr/src/main/resources/application.properties (rev 0) +++ palwassr/src/main/resources/application.properties 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,23 @@ +errors.header=
      +errors.footer=
    +errors.prefix=
  • +errors.suffix=
  • +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +errors.upload.size=Uploading failed, because actual size {0} bytes exceeded limit size {1} bytes. \ No newline at end of file Added: palwassr/src/main/resources/application_ja.properties =================================================================== --- palwassr/src/main/resources/application_ja.properties (rev 0) +++ palwassr/src/main/resources/application_ja.properties 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,23 @@ +errors.header=
      +errors.footer=
    +errors.prefix=
  • +errors.suffix=
  • +errors.invalid={0}\u304c\u4e0d\u6b63\u3067\u3059\u3002 +errors.maxlength={0}\u306e\u9577\u3055\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002 +errors.minlength={0}\u306e\u9577\u3055\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002 +errors.maxbytelength={0}\u306e\u30d0\u30a4\u30c8\u9577\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002 +errors.minbytelength={0}\u306e\u30d0\u30a4\u30c8\u9577\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002 +errors.range={0}\u306f{1}\u3068{2}\u306e\u9593\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.required={0}\u306f\u5fc5\u9808\u3067\u3059\u3002 +errors.byte={0}\u306f\u30d0\u30a4\u30c8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.date={0}\u306f\u65e5\u4ed8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093 +errors.double={0}\u306f\u500d\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.float={0}\u306f\u5358\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.integer={0}\u306f\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.long={0}\u306f\u9577\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.short={0}\u306f\u77ed\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.creditcard={0}\u306f\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 +errors.email={0}\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 +errors.url={0}\u306fURL\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 + +errors.upload.size=\u4e0a\u9650\u304c{1}\u30d0\u30a4\u30c8\u306a\u306e\u306b\u5b9f\u969b\u306f{0}\u30d0\u30a4\u30c8\u3060\u3063\u305f\u306e\u3067\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \ No newline at end of file Added: palwassr/src/main/resources/convention.dicon =================================================================== --- palwassr/src/main/resources/convention.dicon (rev 0) +++ palwassr/src/main/resources/convention.dicon 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,10 @@ + + + + + + "jp.sf.pal.wassr" + + + Added: palwassr/src/main/resources/creator.dicon =================================================================== --- palwassr/src/main/resources/creator.dicon (rev 0) +++ palwassr/src/main/resources/creator.dicon 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,13 @@ + + + + + + + + + + + + Added: palwassr/src/main/resources/customizer.dicon =================================================================== --- palwassr/src/main/resources/customizer.dicon (rev 0) +++ palwassr/src/main/resources/customizer.dicon 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,35 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + + + + + + Added: palwassr/src/main/resources/data/demo.1.log.db =================================================================== (Binary files differ) Property changes on: palwassr/src/main/resources/data/demo.1.log.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/resources/data/demo.data.db =================================================================== (Binary files differ) Property changes on: palwassr/src/main/resources/data/demo.data.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/resources/data/demo.index.db =================================================================== (Binary files differ) Property changes on: palwassr/src/main/resources/data/demo.index.db ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/resources/data/demo.sql =================================================================== --- palwassr/src/main/resources/data/demo.sql (rev 0) +++ palwassr/src/main/resources/data/demo.sql 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,21 @@ +CREATE TABLE EMP(ID IDENTITY NOT NULL PRIMARY KEY, EMP_NO INTEGER NOT NULL ,EMP_NAME VARCHAR(20),MGR_ID INTEGER,HIREDATE DATE,SAL NUMERIC(7,2),DEPT_ID INTEGER, VERSION_NO INTEGER); +CREATE TABLE DEPT(ID IDENTITY NOT NULL PRIMARY KEY, DEPT_NO INTEGER NOT NULL,DEPT_NAME VARCHAR(20),LOC VARCHAR(20), VERSION_NO INTEGER); + +INSERT INTO EMP VALUES(1,7369,'SMITH',13,'1980-12-17',800,2,1); +INSERT INTO EMP VALUES(2,7499,'ALLEN',6,'1981-02-20',1600,3,1); +INSERT INTO EMP VALUES(3,7521,'WARD',6,'1981-02-22',1250,3,1); +INSERT INTO EMP VALUES(4,7566,'JONES',9,'1981-04-02',2975,2,1); +INSERT INTO EMP VALUES(5,7654,'MARTIN',6,'1981-09-28',1250,3,1); +INSERT INTO EMP VALUES(6,7698,'BLAKE',9,'1981-05-01',2850,3,1); +INSERT INTO EMP VALUES(7,7782,'CLARK',9,'1981-06-09',2450,1,1); +INSERT INTO EMP VALUES(8,7788,'SCOTT',4,'1982-12-09',3000.0,2,1); +INSERT INTO EMP VALUES(9,7839,'KING',NULL,'1981-11-17',5000,1,1); +INSERT INTO EMP VALUES(10,7844,'TURNER',6,'1981-09-08',1500,3,1); +INSERT INTO EMP VALUES(11,7876,'ADAMS',8,'1983-01-12',1100,2,1); +INSERT INTO EMP VALUES(12,7900,'JAMES',6,'1981-12-03',950,3,1); +INSERT INTO EMP VALUES(13,7902,'FORD',4,'1981-12-03',3000,2,1); +INSERT INTO EMP VALUES(14,7934,'MILLER',7,'1982-01-23',1300,1,1); +INSERT INTO DEPT VALUES(1,10,'ACCOUNTING','NEW YORK',1); +INSERT INTO DEPT VALUES(2,20,'RESEARCH','DALLAS',1); +INSERT INTO DEPT VALUES(3,30,'SALES','CHICAGO',1); +INSERT INTO DEPT VALUES(4,40,'OPERATIONS','BOSTON',1); \ No newline at end of file Added: palwassr/src/main/resources/env.txt =================================================================== --- palwassr/src/main/resources/env.txt (rev 0) +++ palwassr/src/main/resources/env.txt 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1 @@ +ct \ No newline at end of file Added: palwassr/src/main/resources/env_ut.txt =================================================================== --- palwassr/src/main/resources/env_ut.txt (rev 0) +++ palwassr/src/main/resources/env_ut.txt 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1 @@ +ut \ No newline at end of file Added: palwassr/src/main/resources/jdbc.dicon =================================================================== --- palwassr/src/main/resources/jdbc.dicon (rev 0) +++ palwassr/src/main/resources/jdbc.dicon 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,183 @@ + + + + + + + + + + + + 100 + + + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:tcp://localhost:9092/demo" + + "sa" + "" + + @org.seasar.framework.util.DriverManagerUtil ¡÷ deregisterAllDrivers() + + + + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + \ No newline at end of file Added: palwassr/src/main/resources/log4j.properties =================================================================== --- palwassr/src/main/resources/log4j.properties (rev 0) +++ palwassr/src/main/resources/log4j.properties 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,16 @@ +log4j.category.org.seasar=DEBUG, C +log4j.additivity.org.seasar=false + +log4j.category.tutorial=DEBUG, C +log4j.additivity.tutorial=false + +log4j.appender.C=org.apache.log4j.ConsoleAppender +log4j.appender.C.Target=System.out +log4j.appender.C.ImmediateFlush=true +log4j.appender.C.layout=org.apache.log4j.PatternLayout +log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n + +log4j.rootLogger=INFO, A1 +log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n Added: palwassr/src/main/resources/s2container.dicon =================================================================== --- palwassr/src/main/resources/s2container.dicon (rev 0) +++ palwassr/src/main/resources/s2container.dicon 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: palwassr/src/main/webapp/WEB-INF/lib/antlr-2.7.7.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/antlr-2.7.7.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/aopalliance-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/aopalliance-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-beanutils-1.7.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-beanutils-1.7.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-codec-1.3.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-codec-1.3.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-collections-3.1.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-collections-3.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-digester-1.6.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-digester-1.6.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-el-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-el-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-fileupload-1.2.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-fileupload-1.2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-httpclient-3.1.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-httpclient-3.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-io-1.3.2.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-io-1.3.2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-logging-1.1.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-logging-1.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/commons-validator-1.2.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/commons-validator-1.2.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/geronimo-annotation_1.0_spec-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/geronimo-annotation_1.0_spec-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/geronimo-ejb_3.0_spec-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/geronimo-ejb_3.0_spec-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/geronimo-interceptor_3.0_spec-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/geronimo-interceptor_3.0_spec-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/geronimo-jpa_3.0_spec-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/geronimo-jpa_3.0_spec-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/geronimo-jta_1.1_spec-1.0.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/geronimo-jta_1.1_spec-1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/h2-1.0.69.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/h2-1.0.69.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/jakarta-oro-2.0.8.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/jakarta-oro-2.0.8.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/jakarta-taglibs-standard-1.1.2.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/jakarta-taglibs-standard-1.1.2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/javassist-3.4.ga.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/javassist-3.4.ga.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/jstl-1.1.2.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/jstl-1.1.2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/log4j-1.2.13.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/log4j-1.2.13.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/ognl-2.6.9-patch-20070908.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/ognl-2.6.9-patch-20070908.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/poi-3.0-FINAL.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/poi-3.0-FINAL.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/s2-extension-2.4.29.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/s2-extension-2.4.29.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/s2-framework-2.4.29.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/s2-framework-2.4.29.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/s2-tiger-2.4.29.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/s2-tiger-2.4.29.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sa-struts-1.0.4-sp1.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sa-struts-1.0.4-sp1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sa-struts-portlet-1.0.0-rc3.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sa-struts-portlet-1.0.0-rc3.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-beanutils-1.7.0-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-beanutils-1.7.0-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-collections-3.1-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-collections-3.1-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-el-1.0-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-el-1.0-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-fileupload-1.2-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-fileupload-1.2-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-io-1.3.2-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-io-1.3.2-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-logging-1.1-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-logging-1.1-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-validator-1.2.0-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/commons-validator-1.2.0-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/jakarta-oro-2.0.8-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/jakarta-oro-2.0.8-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/jakarta-taglibs-standard-1.1.2-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/jakarta-taglibs-standard-1.1.2-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/log4j-1.2.13-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/log4j-1.2.13-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/s2-extension-2.4.29-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/s2-extension-2.4.29-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/s2-framework-2.4.29-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/s2-framework-2.4.29-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/s2-tiger-2.4.29-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/s2-tiger-2.4.29-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/sa-struts-1.0.4-sp1-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/sa-struts-1.0.4-sp1-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/sources/struts-1.2.9-sources.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/sources/struts-1.2.9-sources.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/lib/struts-1.2.9.jar =================================================================== (Binary files differ) Property changes on: palwassr/src/main/webapp/WEB-INF/lib/struts-1.2.9.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: palwassr/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- palwassr/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ palwassr/src/main/webapp/WEB-INF/portlet.xml 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,39 @@ + + + + + PalWassrPortlet + Wassr Portlet by PAL + Wassr + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + / + + 600 + + text/html + VIEW + + en + ja + + Wassr + Wassr + Wassr + + + + Added: palwassr/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- palwassr/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ palwassr/src/main/webapp/WEB-INF/struts-config.xml 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: palwassr/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- palwassr/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ palwassr/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: palwassr/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- palwassr/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ palwassr/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,9 @@ +<%@page pageEncoding="UTF-8"%> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions" %> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Added: palwassr/src/main/webapp/WEB-INF/view/common/footer.jsp =================================================================== --- palwassr/src/main/webapp/WEB-INF/view/common/footer.jsp (rev 0) +++ palwassr/src/main/webapp/WEB-INF/view/common/footer.jsp 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1 @@ +footer \ No newline at end of file Added: palwassr/src/main/webapp/WEB-INF/view/common/header.jsp =================================================================== --- palwassr/src/main/webapp/WEB-INF/view/common/header.jsp (rev 0) +++ palwassr/src/main/webapp/WEB-INF/view/common/header.jsp 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1 @@ +header \ No newline at end of file Added: palwassr/src/main/webapp/WEB-INF/view/common/layout.jsp =================================================================== --- palwassr/src/main/webapp/WEB-INF/view/common/layout.jsp (rev 0) +++ palwassr/src/main/webapp/WEB-INF/view/common/layout.jsp 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,15 @@ + + +<tiles:getAsString name="title" /> + + + + + + + + + +
    + + \ No newline at end of file Added: palwassr/src/main/webapp/WEB-INF/view/common/menu.jsp =================================================================== --- palwassr/src/main/webapp/WEB-INF/view/common/menu.jsp (rev 0) +++ palwassr/src/main/webapp/WEB-INF/view/common/menu.jsp 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,3 @@ +
      +
    • appName
    • +
    \ No newline at end of file Added: palwassr/src/main/webapp/WEB-INF/view/index.jsp =================================================================== --- palwassr/src/main/webapp/WEB-INF/view/index.jsp (rev 0) +++ palwassr/src/main/webapp/WEB-INF/view/index.jsp 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,36 @@ + + + + +

    Wassr Public Timeline

    + + +
    + Added: palwassr/src/main/webapp/WEB-INF/web.xml =================================================================== --- palwassr/src/main/webapp/WEB-INF/web.xml (rev 0) +++ palwassr/src/main/webapp/WEB-INF/web.xml 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,190 @@ + + + + + + + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + + encodingfilter + /* + + + + portletRequestFilter + /* + INCLUDE + + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + + routingfilter + /* + REQUEST + + + + portletRoutingfilter + /* + INCLUDE + + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + + debug + 2 + + + detail + 2 + + 1 + + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + + s2container + /s2container + + + + + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + Added: palwassr/src/main/webapp/js/jquery.js =================================================================== --- palwassr/src/main/webapp/js/jquery.js (rev 0) +++ palwassr/src/main/webapp/js/jquery.js 2008-11-14 12:11:03 UTC (rev 1352) @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!tags.indexOf("
    "]||(!tags.indexOf("
    "]||!tags.indexOf("
    "]||jQuery.browser.msie&&[1,"div
    ","
    "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
    ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file From svnnotify ¡÷ sourceforge.jp Sat Nov 15 01:30:19 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 15 Nov 2008 01:30:19 +0900 Subject: [pal-cvs 3618] [1353] create trunk and move all files. Message-ID: <1226680219.511194.14235.nullmailer@users.sourceforge.jp> Revision: 1353 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1353 Author: karma Date: 2008-11-15 01:30:19 +0900 (Sat, 15 Nov 2008) Log Message: ----------- create trunk and move all files. Added Paths: ----------- palwassr/trunk/ palwassr/trunk/.classpath palwassr/trunk/.project palwassr/trunk/LICENSE.txt palwassr/trunk/pom.xml palwassr/trunk/src/ Removed Paths: ------------- palwassr/.classpath palwassr/.project palwassr/LICENSE.txt palwassr/pom.xml palwassr/src/ -------------- next part -------------- Deleted: palwassr/.classpath =================================================================== --- palwassr/.classpath 2008-11-14 12:11:03 UTC (rev 1352) +++ palwassr/.classpath 2008-11-14 16:30:19 UTC (rev 1353) @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deleted: palwassr/.project =================================================================== --- palwassr/.project 2008-11-14 12:11:03 UTC (rev 1352) +++ palwassr/.project 2008-11-14 16:30:19 UTC (rev 1353) @@ -1,26 +0,0 @@ - - - palwassr - - - - - - org.maven.ide.eclipse.maven2Builder - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - org.maven.ide.eclipse.maven2Nature - org.seasar.dolteng.eclipse.nature - org.seasar.dblauncher.nature - com.sysdeo.eclipse.tomcat.tomcatnature - - Deleted: palwassr/LICENSE.txt =================================================================== --- palwassr/LICENSE.txt 2008-11-14 12:11:03 UTC (rev 1352) +++ palwassr/LICENSE.txt 2008-11-14 16:30:19 UTC (rev 1353) @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. Deleted: palwassr/pom.xml =================================================================== --- palwassr/pom.xml 2008-11-14 12:11:03 UTC (rev 1352) +++ palwassr/pom.xml 2008-11-14 16:30:19 UTC (rev 1353) @@ -1,238 +0,0 @@ - - 4.0.0 - jp.sf.pal.wassr - palwassr - 0.0.1 - war - palwassr - - src/main/java - src/main/webapp/WEB-INF/classes - - - src/main/resources - - - target/test-classes - src/test/java - - - src/test/resources - - - validate - - - maven-compiler-plugin - - 1.6 - 1.6 - UTF-8 - - - - maven-source-plugin - - - source-jar - package - - jar - - - - - - - - - maven-eclipse-plugin - - 1.5 - - - - - - - - maven.seasar.org - The Seasar Foundation Maven2 Repository - http://maven.seasar.org/maven2 - - - - - local - Local Repository - file:repo - - - maven.seasar.org - The Seasar Foundation Maven2 Repository - http://maven.seasar.org/maven2 - - - - - org.apache.geronimo.specs - geronimo-jsp_2.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-servlet_2.4_spec - 1.0 - - - junit - junit - 3.8.2 - - - junit-addons - junit-addons - 1.4 - - - antlr - antlr - 2.7.7 - - - aopalliance - aopalliance - 1.0 - - - commons-beanutils - commons-beanutils - 1.7.0 - - - commons-collections - commons-collections - 3.1 - - - commons-digester - commons-digester - 1.6 - - - commons-el - commons-el - 1.0 - - - commons-fileupload - commons-fileupload - 1.2 - - - commons-io - commons-io - 1.3.2 - - - commons-logging - commons-logging - 1.1 - - - commons-validator - commons-validator - 1.2.0 - - - org.apache.geronimo.specs - geronimo-annotation_1.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-ejb_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-interceptor_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-jpa_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - 1.0 - - - com.h2database - h2 - 1.0.69 - - - oro - oro - 2.0.8 - - - taglibs - standard - 1.1.2 - - - jboss - javassist - 3.4.ga - - - jstl - jstl - 1.1.2 - - - log4j - log4j - 1.2.13 - - - ognl - ognl - 2.6.9-patch-20070908 - - - poi - poi - 3.0-FINAL - - - org.seasar.container - s2-extension - 2.4.29 - - - org.seasar.container - s2-framework - 2.4.29 - - - org.seasar.container - s2-tiger - 2.4.29 - - - org.seasar.sastruts - sa-struts - 1.0.4-sp1 - - - struts - struts - 1.2.9 - - - Copied: palwassr/trunk/.classpath (from rev 1352, palwassr/.classpath) =================================================================== --- palwassr/trunk/.classpath (rev 0) +++ palwassr/trunk/.classpath 2008-11-14 16:30:19 UTC (rev 1353) @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: palwassr/trunk/.classpath ___________________________________________________________________ Name: svn:mergeinfo + Copied: palwassr/trunk/.project (from rev 1352, palwassr/.project) =================================================================== --- palwassr/trunk/.project (rev 0) +++ palwassr/trunk/.project 2008-11-14 16:30:19 UTC (rev 1353) @@ -0,0 +1,26 @@ + + + palwassr + + + + + + org.maven.ide.eclipse.maven2Builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + org.seasar.dolteng.eclipse.nature + org.seasar.dblauncher.nature + com.sysdeo.eclipse.tomcat.tomcatnature + + Property changes on: palwassr/trunk/.project ___________________________________________________________________ Name: svn:mergeinfo + Copied: palwassr/trunk/LICENSE.txt (from rev 1352, palwassr/LICENSE.txt) =================================================================== --- palwassr/trunk/LICENSE.txt (rev 0) +++ palwassr/trunk/LICENSE.txt 2008-11-14 16:30:19 UTC (rev 1353) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Property changes on: palwassr/trunk/LICENSE.txt ___________________________________________________________________ Name: svn:mergeinfo + Copied: palwassr/trunk/pom.xml (from rev 1352, palwassr/pom.xml) =================================================================== --- palwassr/trunk/pom.xml (rev 0) +++ palwassr/trunk/pom.xml 2008-11-14 16:30:19 UTC (rev 1353) @@ -0,0 +1,238 @@ + + 4.0.0 + jp.sf.pal.wassr + palwassr + 0.0.1 + war + palwassr + + src/main/java + src/main/webapp/WEB-INF/classes + + + src/main/resources + + + target/test-classes + src/test/java + + + src/test/resources + + + validate + + + maven-compiler-plugin + + 1.6 + 1.6 + UTF-8 + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + maven-eclipse-plugin + + 1.5 + + + + + + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + local + Local Repository + file:repo + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + org.apache.geronimo.specs + geronimo-jsp_2.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-servlet_2.4_spec + 1.0 + + + junit + junit + 3.8.2 + + + junit-addons + junit-addons + 1.4 + + + antlr + antlr + 2.7.7 + + + aopalliance + aopalliance + 1.0 + + + commons-beanutils + commons-beanutils + 1.7.0 + + + commons-collections + commons-collections + 3.1 + + + commons-digester + commons-digester + 1.6 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2 + + + commons-io + commons-io + 1.3.2 + + + commons-logging + commons-logging + 1.1 + + + commons-validator + commons-validator + 1.2.0 + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jpa_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + com.h2database + h2 + 1.0.69 + + + oro + oro + 2.0.8 + + + taglibs + standard + 1.1.2 + + + jboss + javassist + 3.4.ga + + + jstl + jstl + 1.1.2 + + + log4j + log4j + 1.2.13 + + + ognl + ognl + 2.6.9-patch-20070908 + + + poi + poi + 3.0-FINAL + + + org.seasar.container + s2-extension + 2.4.29 + + + org.seasar.container + s2-framework + 2.4.29 + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.seasar.sastruts + sa-struts + 1.0.4-sp1 + + + struts + struts + 1.2.9 + + + Property changes on: palwassr/trunk/pom.xml ___________________________________________________________________ Name: svn:mergeinfo + Copied: palwassr/trunk/src (from rev 1352, palwassr/src) Property changes on: palwassr/trunk/src ___________________________________________________________________ Name: svn:mergeinfo + From svnnotify ¡÷ sourceforge.jp Sun Nov 16 22:27:06 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 16 Nov 2008 22:27:06 +0900 Subject: [pal-cvs 3619] [1354] added month and week view, changed db schema. Message-ID: <1226842026.557701.6147.nullmailer@users.sourceforge.jp> Revision: 1354 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1354 Author: shinsuke Date: 2008-11-16 22:27:06 +0900 (Sun, 16 Nov 2008) Log Message: ----------- added month and week view, changed db schema. Modified Paths: -------------- scheduler/trunk/src/main/config/erd/scheduler.erd scheduler/trunk/src/main/config/sql/scheduler.ddl scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java scheduler/trunk/src/main/resources/convention.dicon scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp Added Paths: ----------- scheduler/trunk/mydbflute/ scheduler/trunk/mydbflute/README.txt scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/CalendarUtil.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java scheduler/trunk/src/main/webapp/WEB-INF/view/user/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/userlist.jsp -------------- next part -------------- Added: scheduler/trunk/mydbflute/README.txt =================================================================== --- scheduler/trunk/mydbflute/README.txt (rev 0) +++ scheduler/trunk/mydbflute/README.txt 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,3 @@ +$ mkdir dbflute-0.8.2 +$ cd dbflute-0.8.2 +$ unzip ../dbflute-0.8.2.zip Property changes on: scheduler/trunk/mydbflute/README.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/config/erd/scheduler.erd =================================================================== --- scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-16 13:27:06 UTC (rev 1354) @@ -1063,6 +1063,22 @@ + secret + Secret + + VARCHAR + String + true + 12 + + 1 + true + false + + false + 'F' + + created_time Created Time @@ -1092,7 +1108,7 @@ updated_time Updated Time - + 10 false false @@ -1114,7 +1130,7 @@ deleted_time Deleted Time - + 10 false false @@ -1426,6 +1442,17 @@ + secret + Secret + + 1 + true + false + + false + 'F' + + type Type @@ -1439,7 +1466,7 @@ created_time Created Time - + 10 true false @@ -1461,7 +1488,7 @@ updated_time Updated Time - + 10 true false @@ -1483,7 +1510,7 @@ deleted_time Deleted Time - + 10 false false @@ -1505,7 +1532,7 @@ versionNo Version No. - + 10 true false Modified: scheduler/trunk/src/main/config/sql/scheduler.ddl =================================================================== --- scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-16 13:27:06 UTC (rev 1354) @@ -110,6 +110,7 @@ start_time TIME, end_date DATE NOT NULL, end_time TIME, + secret VARCHAR(1) DEFAULT 'F' NOT NULL, created_time TIMESTAMP NOT NULL, created_by VARCHAR(255) NOT NULL, updated_time TIMESTAMP, @@ -141,6 +142,7 @@ start_time TIME, end_date DATE, end_time TIME, + secret VARCHAR(1) DEFAULT 'F' NOT NULL, type VARCHAR(10) NOT NULL, created_time TIMESTAMP NOT NULL, created_by VARCHAR(255) NOT NULL, Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,833 @@ +package jp.sf.pal.scheduler.action.user; + +import java.io.Serializable; +import java.sql.Time; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.DateUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; +import jp.sf.pal.scheduler.form.user.CalendarForm; +import jp.sf.pal.scheduler.service.RoutineScheduleService; +import jp.sf.pal.scheduler.service.SingleScheduleService; + +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; + +public class CalendarAction implements Serializable { + + private static final long serialVersionUID = 7273459452094199148L; + + public List> calendarDayItems; + + public List> weekDayItems; + + public List>>> eventInWeekItems; + + public List>> allDayEventInWeekItems; + + @ActionForm + private CalendarForm calendarForm; + + private SingleScheduleService singleScheduleService; + + private RoutineScheduleService routineScheduleService; + + private transient HttpServletRequest request; + + private void createSideCalendar() { + calendarDayItems = new LinkedList>(); + Calendar targetCalendar = calendarForm.getTargetCalendar(); + int targetYear = CalendarUtil.getYear(targetCalendar); + int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1; + int targetDate = CalendarUtil.getDate(targetCalendar); + + // create a previous month + Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); + int count = CalendarUtil.getDay(cal) - 1; + while (count > 0) { + cal = CalendarUtil.getPrev(cal); + calendarDayItems.add(0, createCalendarDayItem(cal, false)); + count--; + } + + // create this month + cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); + int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil + .getLastCalendarInMonth(targetCalendar)); + for (int i = 0; i < lastDayOfMonth; i++) { + calendarDayItems.add(createCalendarDayItem(cal, targetYear, + targetMonth, targetDate, true)); + cal = CalendarUtil.getNext(cal); + } + + // create a next month + count = CalendarUtil.getDay(cal); + while (count != 1) { + calendarDayItems.add(createCalendarDayItem(cal, false)); + cal = CalendarUtil.getNext(cal); + count = CalendarUtil.getDay(cal); + } + + } + + private String displayPersonalWeek() { + createSideCalendar(); + + List calendarList = new ArrayList(7); + eventInWeekItems = new ArrayList>>>(7); + allDayEventInWeekItems = new ArrayList>>(7); + Calendar cal = calendarForm.getTargetCalendar(); + calendarList.add(cal); + weekDayItems = new ArrayList>(); + Map indexMap = new HashMap(7); + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n + for (int i = 0; i < 7; i++) { + calendarList.add(cal); + + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int date = CalendarUtil.getDate(cal); + + Map map = new HashMap(); + map.put("displayedDate", sdf.format(cal.getTime())); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("date", String.valueOf(date)); + map.put("month", String.valueOf(month)); + map.put("year", String.valueOf(year)); + weekDayItems.add(map); + cal = CalendarUtil.getNext(cal); + + indexMap.put(year + "-" + month + "-" + date, i); + + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + eventInWeekItems.add(eventInDayItems); + + allDayEventInWeekItems.add(new ArrayList>()); + } + + String userId = request.getRemoteUser(); + List ssmList = singleScheduleService + .getPersonalScheduleMappingList(userId, calendarList.get(0) + .getTime(), calendarList.get(6).getTime()); + for (SingleScheduleMapping ssm : ssmList) { + SingleSchedule singleSchedule = ssm.getSingleSchedule(); + Date startDate = singleSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(-1); + } + + Date endDate = singleSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(7); + } + + int startIdx = sIndex.intValue(); + if (startIdx < 0) { + startIdx = 0; + } + int endIdx = eIndex.intValue(); + if (endIdx > 6) { + endIdx = 6; + } + + Time time = singleSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(singleSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(singleSchedule, true, true)); + } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + allDayEventInWeekItems.get(i).add( + createEvent(singleSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(singleSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (singleSchedule.getEndTime() == null) { + allDayEventInWeekItems.get(i).add( + createEvent(singleSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(singleSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(singleSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(singleSchedule, false, false)); + } + } + } + + List rsmList = routineScheduleService + .getPersonalScheduleMappingList(userId, calendarList.get(0) + .getTime(), calendarList.get(6).getTime()); + for (RoutineScheduleMapping rsm : rsmList) { + RoutineSchedule routineSchedule = rsm.getRoutineSchedule(); + Date startDate = routineSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(0); + } + + Date endDate = routineSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(6); + } + } else { + eIndex = Integer.valueOf(6); + } + + Time time = routineSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = routineSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(routineSchedule, true, true)); + } else { + + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, + false)); + } + } + } + } else if ("MWF".equals(type)) { + String d = weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, + false)); + } + } + } + } else if ("TT".equals(type)) { + String d = weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, + false)); + } + } + } + } else if ("WEEKLY".equals(type)) { + String d = weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, + false)); + } + } + } + } else if ("MONTHLY".equals(type)) { + String d = weekDayItems.get(i).get("date"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, + false)); + } + } + } + } else if ("YEARLY".equals(type)) { + String d = weekDayItems.get(i).get("date"); + String m = weekDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(routineSchedule, false, + false)); + } + } + } + } + } + + } + + return "personalweek.jsp"; + } + + private String displayPersonalMonth() { + createSideCalendar(); + + Map indexMap = new HashMap(50); + int count = 0; + for (Map calendarDay : calendarDayItems) { + indexMap.put(calendarDay.get("year") + "-" + + calendarDay.get("month") + "-" + + calendarDay.get("dayOfMonth"), count); + calendarDay.put("allDayEventItems", + new ArrayList>()); + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + calendarDay.put("eventItems", eventInDayItems); + count++; + } + + Calendar cal = calendarForm.getTargetCalendar(); + Calendar startCal = CalendarUtil.getFirstCalendarInMonth(cal); + int firstYear = CalendarUtil.getYear(startCal); + int firstMonth = CalendarUtil.getMonth(startCal) + 1; + int firstDate = CalendarUtil.getDate(startCal); + int firstDateIndex = indexMap.get(firstYear + "-" + firstMonth + "-" + + firstDate); + Calendar endCal = CalendarUtil.getLastCalendarInMonth(cal); + int lastYear = CalendarUtil.getYear(endCal); + int lastMonth = CalendarUtil.getMonth(endCal) + 1; + int lastDate = CalendarUtil.getDate(endCal); + int endDateIndex = indexMap.get(lastYear + "-" + lastMonth + "-" + + lastDate); + + String userId = request.getRemoteUser(); + List ssmList = singleScheduleService + .getPersonalScheduleMappingList(userId, startCal.getTime(), + endCal.getTime()); + for (SingleScheduleMapping ssm : ssmList) { + SingleSchedule singleSchedule = ssm.getSingleSchedule(); + Date startDate = singleSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex - 1); + } + + Date endDate = singleSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + + int startIdx = sIndex.intValue(); + if (startIdx < firstDateIndex) { + startIdx = firstDateIndex; + } + int endIdx = eIndex.intValue(); + if (endIdx > endDateIndex) { + endIdx = endDateIndex; + } + + Time time = singleSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(singleSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(singleSchedule, true, true)); + } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(singleSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(singleSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (singleSchedule.getEndTime() == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(singleSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(singleSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(singleSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(singleSchedule, + false, false)); + } + } + } + + List rsmList = routineScheduleService + .getPersonalScheduleMappingList(userId, startCal.getTime(), + endCal.getTime()); + for (RoutineScheduleMapping rsm : rsmList) { + RoutineSchedule routineSchedule = rsm.getRoutineSchedule(); + Date startDate = routineSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex); + } + + Date endDate = routineSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + } else { + eIndex = Integer.valueOf(endDateIndex); + } + + Time time = routineSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = routineSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(routineSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } + } + } else if ("MWF".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } + } + } else if ("TT".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get( + "dayOfMonth"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } + } + } else if ("YEARLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get( + "dayOfMonth"); + String m = (String) calendarDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex) + .add( + createEvent(routineSchedule, + true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + routineSchedule, false, false)); + } + } + } + } + } + + } + + return "personalmonth.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonaldate/{year}/{month}/{date}") + public String selectpersonalday() { + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalweek/{year}/{month}/{date}") + public String selectpersonalweek() { + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalmonth/{year}/{month}/{date}") + public String selectpersonalmonth() { + return displayPersonalMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthprevmonth/{year}/{month}/{date}") + public String movepersonalmonthprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayPersonalMonth(); + } + + @Execute(validator = false, input = "error.jsp") + public String movepersonalmonththismonth() { + calendarForm.changeCalendarToToday(); + return displayPersonalMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthnextmonth/{year}/{month}/{date}") + public String movepersonalmonthnextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayPersonalMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalweekprevmonth/{year}/{month}/{date}") + public String movepersonalweekprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayPersonalWeek(); + } + + @Execute(validator = false, input = "error.jsp") + public String movepersonalweekthismonth() { + calendarForm.changeCalendarToToday(); + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalweeknextmonth/{year}/{month}/{date}") + public String movepersonalweeknextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayPersonalWeek(); + } + + private Map createCalendarDayItem(Calendar cal, + boolean thisMonth) { + Map map = new HashMap(); + map.put("year", String.valueOf(CalendarUtil.getYear(cal))); + map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1)); + map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal))); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("thisMonth", String.valueOf(thisMonth)); + map.put("target", "false"); + return map; + } + + private Map createCalendarDayItem(Calendar cal, int tYear, + int tMonth, int tDate, boolean thisMonth) { + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int dayOfMonth = CalendarUtil.getDate(cal); + int dayOfWeek = CalendarUtil.getDay(cal); + Map map = new HashMap(); + map.put("year", String.valueOf(year)); + map.put("month", String.valueOf(month)); + map.put("dayOfMonth", String.valueOf(dayOfMonth)); + map.put("dayOfWeek", String.valueOf(dayOfWeek)); + map.put("thisMonth", String.valueOf(thisMonth)); + if (year == tYear && month == tMonth && dayOfMonth == tDate) { + map.put("target", "true"); + } else { + map.put("target", "false"); + } + return map; + } + + private Map createEvent(EventSchedule eventSchedule, + boolean start, boolean end) { + Map map = new HashMap(); + map.put("id", eventSchedule.getId().toString()); + map.put("title", eventSchedule.getTitle()); + if (start || end) { + StringBuilder buf = new StringBuilder(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n + if (start && eventSchedule.getStartTime() != null) { + buf.append(sdf.format(eventSchedule.getStartTime())); + } + buf.append("-"); + if (end && eventSchedule.getEndTime() != null) { + buf.append(sdf.format(eventSchedule.getEndTime())); + } + map.put("time", buf.toString()); + } + if (eventSchedule instanceof RoutineSchedule) { + map.put("repeat", "true"); + map.put("type", ((RoutineSchedule) eventSchedule).getType()); + } else { + map.put("repeat", "false"); + } + + return map; + } + + public CalendarForm getCalendarForm() { + return calendarForm; + } + + public void setCalendarForm(CalendarForm calendarForm) { + this.calendarForm = calendarForm; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public SingleScheduleService getSingleScheduleService() { + return singleScheduleService; + } + + public void setSingleScheduleService( + SingleScheduleService singleScheduleService) { + this.singleScheduleService = singleScheduleService; + } + + public RoutineScheduleService getRoutineScheduleService() { + return routineScheduleService; + } + + public void setRoutineScheduleService( + RoutineScheduleService routineScheduleService) { + this.routineScheduleService = routineScheduleService; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,448 @@ +package jp.sf.pal.scheduler.action.user; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RoutineScheduleDxo; +import jp.sf.pal.scheduler.form.user.RoutineScheduleForm; +import jp.sf.pal.scheduler.pager.RoutineSchedulePager; +import jp.sf.pal.scheduler.service.RoutineScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RoutineScheduleAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory + .getLog(RoutineScheduleAction.class); + + // for list + + public List routineScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private RoutineScheduleForm routineScheduleForm; + + private RoutineScheduleService routineScheduleService; + + private UserInfoService userInfoService; + + private RoutineSchedulePager routineSchedulePager; + + private PagerDxo pagerDxo; + + private RoutineScheduleDxo routineScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + routineScheduleItems = routineScheduleService.getRoutineScheduleList( + routineSchedulePager, null); + + // restore from pager + // routineScheduleForm.routineSchedulename = + // routineSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(routineScheduleForm, routineSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // routineSchedulePager.setGroupInfoname(routineScheduleForm. + // routineSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + routineSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + routineScheduleForm.returnType + "/" + + routineScheduleForm.year + "/" + routineScheduleForm.month + + "/" + routineScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") + public String confirmpage() { + if (routineScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + routineScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") + public String createpage() { + // page navi + routineScheduleForm.initialize(); + routineScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + routineScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (routineScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + routineScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + routineScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (routineScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + routineScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + routineScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + RoutineSchedule routineSchedule = createRoutineSchedule(); + routineScheduleService.store(routineSchedule); + SAStrutsUtil.addMessage(request, "success.create_routineSchedule"); + + routineScheduleForm.id = String.valueOf(routineSchedule.getId()); + routineScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_routineSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + RoutineSchedule routineSchedule = createRoutineSchedule(); + routineScheduleService.store(routineSchedule); + SAStrutsUtil.addMessage(request, "success.update_routineSchedule"); + + routineScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadRoutineSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_routineSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + routineScheduleService + .disable(Long.parseLong(routineScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_routineSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + routineScheduleForm.returnType + "/" + + routineScheduleForm.year + "/" + + routineScheduleForm.month + "/" + + routineScheduleForm.date + "?redirect=true"; + // return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_routineSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (routineScheduleForm.selectedUsers != null) { + for (String userId : routineScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (routineScheduleForm.addedUsers != null) { + for (String userId : routineScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + routineScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + routineScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (routineScheduleForm.selectedUsers != null) { + for (String userId : routineScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (routineScheduleForm.removedUsers != null) { + for (String userId : routineScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + routineScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + routineScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadRoutineSchedule() { + + RoutineSchedule routineSchedule = routineScheduleService + .getRoutineSchedule(Long.parseLong(routineScheduleForm.id), + null); + if (routineSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_routineSchedule", + new Object[] { routineScheduleForm.id }); + } + routineScheduleDxo.convertFromRoutineScheduleToForm(routineSchedule, + routineScheduleForm); + + routineScheduleForm.selectedUsers = routineSchedule.getSelectedUsers(); + } + + private RoutineSchedule createRoutineSchedule() { + String userId = request.getRemoteUser(); + RoutineSchedule routineSchedule; + if (routineScheduleForm.mode == CommonConstants.EDIT_MODE) { + routineSchedule = routineScheduleService.getRoutineSchedule(Long + .parseLong(routineScheduleForm.id), null); + routineSchedule.setUpdatedBy(userId); + } else { + routineSchedule = new RoutineSchedule(); + routineSchedule.setUpdatedBy(userId); + routineSchedule.setCreatedBy(userId); + } + routineScheduleDxo.convertFromFormToRoutineSchedule( + routineScheduleForm, routineSchedule); + + return routineSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + routineScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (routineScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(routineScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RoutineScheduleForm getRoutineScheduleForm() { + return routineScheduleForm; + } + + public void setRoutineScheduleForm(RoutineScheduleForm routineScheduleForm) { + this.routineScheduleForm = routineScheduleForm; + } + + public RoutineScheduleService getRoutineScheduleService() { + return routineScheduleService; + } + + public void setRoutineScheduleService( + RoutineScheduleService routineScheduleService) { + this.routineScheduleService = routineScheduleService; + } + + public RoutineSchedulePager getRoutineSchedulePager() { + return routineSchedulePager; + } + + public void setRoutineSchedulePager( + RoutineSchedulePager routineSchedulePager) { + this.routineSchedulePager = routineSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RoutineScheduleDxo getRoutineScheduleDxo() { + return routineScheduleDxo; + } + + public void setRoutineScheduleDxo(RoutineScheduleDxo routineScheduleDxo) { + this.routineScheduleDxo = routineScheduleDxo; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,445 @@ +package jp.sf.pal.scheduler.action.user; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.SingleScheduleDxo; +import jp.sf.pal.scheduler.form.user.SingleScheduleForm; +import jp.sf.pal.scheduler.pager.SingleSchedulePager; +import jp.sf.pal.scheduler.service.SingleScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class SingleScheduleAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory + .getLog(SingleScheduleAction.class); + + // for list + + public List singleScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private SingleScheduleForm singleScheduleForm; + + private SingleScheduleService singleScheduleService; + + private UserInfoService userInfoService; + + private SingleSchedulePager singleSchedulePager; + + private PagerDxo pagerDxo; + + private SingleScheduleDxo singleScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + singleScheduleItems = singleScheduleService.getSingleScheduleList( + singleSchedulePager, null); + + // restore from pager + // singleScheduleForm.singleSchedulename = + // singleSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(singleScheduleForm, singleSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // singleSchedulePager.setGroupInfoname(singleScheduleForm. + // singleSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + singleSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + singleScheduleForm.returnType + "/" + + singleScheduleForm.year + "/" + singleScheduleForm.month + + "/" + singleScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") + public String confirmpage() { + if (singleScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + singleScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") + public String createpage() { + // page navi + singleScheduleForm.initialize(); + singleScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + singleScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (singleScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + singleScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + singleScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (singleScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + singleScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + singleScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + SingleSchedule singleSchedule = createSingleSchedule(); + singleScheduleService.store(singleSchedule); + SAStrutsUtil.addMessage(request, "success.create_singleSchedule"); + + singleScheduleForm.id = String.valueOf(singleSchedule.getId()); + singleScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_singleSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + SingleSchedule singleSchedule = createSingleSchedule(); + singleScheduleService.store(singleSchedule); + SAStrutsUtil.addMessage(request, "success.update_singleSchedule"); + + singleScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadSingleSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_singleSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + singleScheduleService.disable( + Long.parseLong(singleScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_singleSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + singleScheduleForm.returnType + "/" + + singleScheduleForm.year + "/" + singleScheduleForm.month + + "/" + singleScheduleForm.date + "?redirect=true"; + // return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_singleSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (singleScheduleForm.selectedUsers != null) { + for (String userId : singleScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (singleScheduleForm.addedUsers != null) { + for (String userId : singleScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + singleScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + singleScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (singleScheduleForm.selectedUsers != null) { + for (String userId : singleScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (singleScheduleForm.removedUsers != null) { + for (String userId : singleScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + singleScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + singleScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadSingleSchedule() { + + SingleSchedule singleSchedule = singleScheduleService + .getSingleSchedule(Long.parseLong(singleScheduleForm.id), null); + if (singleSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_singleSchedule", + new Object[] { singleScheduleForm.id }); + } + singleScheduleDxo.convertFromSingleScheduleToForm(singleSchedule, + singleScheduleForm); + + singleScheduleForm.selectedUsers = singleSchedule.getSelectedUsers(); + } + + private SingleSchedule createSingleSchedule() { + String userId = request.getRemoteUser(); + SingleSchedule singleSchedule; + if (singleScheduleForm.mode == CommonConstants.EDIT_MODE) { + singleSchedule = singleScheduleService.getSingleSchedule(Long + .parseLong(singleScheduleForm.id), null); + singleSchedule.setUpdatedBy(userId); + } else { + singleSchedule = new SingleSchedule(); + singleSchedule.setUpdatedBy(userId); + singleSchedule.setCreatedBy(userId); + } + singleScheduleDxo.convertFromFormToSingleSchedule(singleScheduleForm, + singleSchedule); + + return singleSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + singleScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (singleScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(singleScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public SingleScheduleForm getSingleScheduleForm() { + return singleScheduleForm; + } + + public void setSingleScheduleForm(SingleScheduleForm singleScheduleForm) { + this.singleScheduleForm = singleScheduleForm; + } + + public SingleScheduleService getSingleScheduleService() { + return singleScheduleService; + } + + public void setSingleScheduleService( + SingleScheduleService singleScheduleService) { + this.singleScheduleService = singleScheduleService; + } + + public SingleSchedulePager getSingleSchedulePager() { + return singleSchedulePager; + } + + public void setSingleSchedulePager(SingleSchedulePager singleSchedulePager) { + this.singleSchedulePager = singleSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public SingleScheduleDxo getSingleScheduleDxo() { + return singleScheduleDxo; + } + + public void setSingleScheduleDxo(SingleScheduleDxo singleScheduleDxo) { + this.singleScheduleDxo = singleScheduleDxo; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/CalendarUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/CalendarUtil.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/CalendarUtil.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,227 @@ +/* + * Copyright 2004-2007 The Portal Application Laboratory Team. Licensed under + * the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License + * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable + * law or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.scheduler.common.util; + +import java.util.Calendar; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public class CalendarUtil { + /** + * Logger for this class + */ + private static final Log log = LogFactory.getLog(CalendarUtil.class); + + /** + * Allocates a Date object and initializes it so that it represents + * midnight, local time, at the beginning of the day specified by the year, + * month, and date arguments. + * + * @param year + * @param month + * @param date + * @return + */ + public static Calendar get(int year, int month, int date) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int) - : year=" + year + ", month=" + + month + ", date=" + date); + } + + return get(year, month, date, 0, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the minute specified by the year, month, date, + * hrs, and min arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @return + */ + public static Calendar get(int year, int month, int date, int hrs, int min) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min); + } + + return get(year, month, date, hrs, min, 0); + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, and sec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @return + */ + public static Calendar get(int year, int month, int date, int hrs, int min, + int sec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec); + } + + return get(year, month, date, hrs, min, sec, 0); + + } + + /** + * Allocates a Date object and initializes it so that it represents the + * instant at the start of the second specified by the year, month, date, + * hrs, min, sec and millisec arguments, in the local time zone. + * + * @param year + * @param month + * @param date + * @param hrs + * @param min + * @param sec + * @param millisec + * @return + */ + public static Calendar get(int year, int month, int date, int hrs, int min, + int sec, int millisec) { + if (log.isDebugEnabled()) { + log.debug("get(int, int, int, int, int, int) - : year=" + year + + ", month=" + month + ", date=" + date + ", hrs=" + hrs + + ", min=" + min + ", sec=" + sec + ", millisec=" + + millisec); + } + + Calendar cal = Calendar.getInstance(); + cal.set(year, month, date, hrs, min, sec); + cal.set(Calendar.MILLISECOND, millisec); + return cal; + + } + + /** + * Returns a value that is the result that contains or begins with the + * instant in time represented by this Date object, as interpreted in the + * local time zone. + * + * @param d + * @return + */ + public static int getYear(Calendar cal) { + return cal.get(Calendar.YEAR); + } + + /** + * Returns a number representing the month that contains or begins with the + * instant in time represented by this Date object. The value returned is + * between 0 and 11, with the value 0 representing January. + * + * @param d + * @return + */ + public static int getMonth(Calendar cal) { + return cal.get(Calendar.MONTH); + } + + /** + * Returns the day of the month represented by this Date object. The value + * returned is between 1 and 31 representing the day of the month that + * contains or begins with the instant in time represented by this Date + * object, as interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDate(Calendar cal) { + return cal.get(Calendar.DAY_OF_MONTH); + } + + /** + * Returns the day of the week represented by this date. The returned value + * (1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = + * Friday, 7 = Saturday) represents the day of the week that contains or + * begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getDay(Calendar cal) { + return cal.get(Calendar.DAY_OF_WEEK); + } + + /** + * Returns the hour represented by this Date object. The returned value is a + * number (0 through 23) representing the hour within the day that contains + * or begins with the instant in time represented by this Date object, as + * interpreted in the local time zone. + * + * @param d + * @return + */ + public static int getHours(Calendar cal) { + return cal.get(Calendar.HOUR_OF_DAY); + } + + /** + * Returns the number of minutes past the hour represented by this date, as + * interpreted in the local time zone. The value returned is between 0 and + * 59. + * + * @param d + * @return + */ + public static int getMinutes(Calendar cal) { + return cal.get(Calendar.MINUTE); + } + + /** + * Returns the number of seconds past the minute represented by this date. + * The value returned is between 0 and 61. The values 60 and 61 can only + * occur on those Java Virtual Machines that take leap seconds into account. + * + * @param d + * @return + */ + public static int getSeconds(Calendar cal) { + return cal.get(Calendar.SECOND); + } + + public static Calendar getFirstCalendarInMonth(Calendar cal) { + return get(getYear(cal), getMonth(cal), 1); + } + + public static Calendar getLastCalendarInMonth(Calendar cal) { + return get(getYear(cal), getMonth(cal) + 1, 0); + } + + public static Calendar getToday() { + return Calendar.getInstance(); + } + + public static Calendar getPrev(Calendar cal) { + return get(getYear(cal), getMonth(cal), getDate(cal) - 1); + } + + public static Calendar getNext(Calendar cal) { + return get(getYear(cal), getMonth(cal), getDate(cal) + 1); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/util/CalendarUtil.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -33,7 +33,7 @@ * ID * * [column] - * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -33,7 +33,7 @@ * ID * * [column] - * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -18,7 +18,7 @@ * ID * * [column] - * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -91,6 +91,9 @@ /** END_TIME: {TIME} */ protected java.sql.Time _endTime; + /** SECRET: {NotNull : VARCHAR(1) : Default=[F]} */ + protected String _secret; + /** TYPE: {NotNull : VARCHAR(10)} */ protected String _type; @@ -320,6 +323,7 @@ sb.append(delimiter).append(getStartTime()); sb.append(delimiter).append(getEndDate()); sb.append(delimiter).append(getEndTime()); + sb.append(delimiter).append(getSecret()); sb.append(delimiter).append(getType()); sb.append(delimiter).append(getCreatedTime()); sb.append(delimiter).append(getCreatedBy()); @@ -494,6 +498,28 @@ this._endTime = endTime; } + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[F]} */ + public static final String secret_COLUMN = "SECRET"; + + /** + * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    + * + * @return The value of the column 'SECRET'. (Nullable) + */ + public String getSecret() { + return _secret; + } + + /** + * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    + * + * @param secret The value of the column 'SECRET'. (Nullable) + */ + public void setSecret(String secret) { + _modifiedProperties.addPropertyName("secret"); + this._secret = secret; + } + /** The column annotation for S2Dao. {NotNull : VARCHAR(10)} */ public static final String type_COLUMN = "TYPE"; Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -18,7 +18,7 @@ * ID * * [column] - * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -91,6 +91,9 @@ /** END_TIME: {TIME} */ protected java.sql.Time _endTime; + /** SECRET: {NotNull : VARCHAR(1) : Default=[F]} */ + protected String _secret; + /** CREATED_TIME: {NotNull : TIMESTAMP} */ protected java.sql.Timestamp _createdTime; @@ -316,6 +319,7 @@ sb.append(delimiter).append(getStartTime()); sb.append(delimiter).append(getEndDate()); sb.append(delimiter).append(getEndTime()); + sb.append(delimiter).append(getSecret()); sb.append(delimiter).append(getCreatedTime()); sb.append(delimiter).append(getCreatedBy()); sb.append(delimiter).append(getUpdatedTime()); @@ -489,6 +493,28 @@ this._endTime = endTime; } + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[F]} */ + public static final String secret_COLUMN = "SECRET"; + + /** + * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    + * + * @return The value of the column 'SECRET'. (Nullable) + */ + public String getSecret() { + return _secret; + } + + /** + * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    + * + * @param secret The value of the column 'SECRET'. (Nullable) + */ + public void setSecret(String secret) { + _modifiedProperties.addPropertyName("secret"); + this._secret = secret; + } + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ public static final String createdTime_COLUMN = "CREATED_TIME"; Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -69,6 +69,9 @@ protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", java.sql.Time.class, false, null, null); + protected ColumnInfo _columnSecret = cci("SECRET", "secret", String.class, + false, 1, 0); + protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, 10, 0); @@ -121,6 +124,10 @@ return _columnEndTime; } + public ColumnInfo columnSecret() { + return _columnSecret; + } + public ColumnInfo columnType() { return _columnType; } @@ -366,6 +373,7 @@ setupEps(_epsMap, new EpsStartTime(), columnStartTime()); setupEps(_epsMap, new EpsEndDate(), columnEndDate()); setupEps(_epsMap, new EpsEndTime(), columnEndTime()); + setupEps(_epsMap, new EpsSecret(), columnSecret()); setupEps(_epsMap, new EpsType(), columnType()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); @@ -427,6 +435,12 @@ } } + public static class EpsSecret implements Eps { + public void setup(RoutineSchedule e, Object v) { + e.setSecret((String) v); + } + } + public static class EpsType implements Eps { public void setup(RoutineSchedule e, Object v) { e.setType((String) v); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -69,6 +69,9 @@ protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", java.sql.Time.class, false, null, null); + protected ColumnInfo _columnSecret = cci("SECRET", "secret", String.class, + false, 1, 0); + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", "createdTime", java.sql.Timestamp.class, false, null, null); @@ -118,6 +121,10 @@ return _columnEndTime; } + public ColumnInfo columnSecret() { + return _columnSecret; + } + public ColumnInfo columnCreatedTime() { return _columnCreatedTime; } @@ -358,6 +365,7 @@ setupEps(_epsMap, new EpsStartTime(), columnStartTime()); setupEps(_epsMap, new EpsEndDate(), columnEndDate()); setupEps(_epsMap, new EpsEndTime(), columnEndTime()); + setupEps(_epsMap, new EpsSecret(), columnSecret()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); @@ -418,6 +426,12 @@ } } + public static class EpsSecret implements Eps { + public void setup(SingleSchedule e, Object v) { + e.setSecret((String) v); + } + } + public static class EpsCreatedTime implements Eps { public void setup(SingleSchedule e, Object v) { e.setCreatedTime((java.sql.Timestamp) v); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -251,6 +251,10 @@ doColumn("END_TIME"); } + public void columnSecret() { + doColumn("SECRET"); + } + public void columnType() { doColumn("TYPE"); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -250,6 +250,10 @@ doColumn("END_TIME"); } + public void columnSecret() { + doColumn("SECRET"); + } + public void columnCreatedTime() { doColumn("CREATED_TIME"); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -1007,6 +1007,130 @@ abstract protected ConditionValue getCValueEndTime(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : + * Default=[F]} + * + * @param secret The value of secret as equal. + */ + public void setSecret_Equal(String secret) { + regSecret(CK_EQ, fRES(secret)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as notEqual. + */ + public void setSecret_NotEqual(String secret) { + regSecret(CK_NE, fRES(secret)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as greaterThan. + */ + public void setSecret_GreaterThan(String secret) { + regSecret(CK_GT, fRES(secret)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as lessThan. + */ + public void setSecret_LessThan(String secret) { + regSecret(CK_LT, fRES(secret)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as greaterEqual. + */ + public void setSecret_GreaterEqual(String secret) { + regSecret(CK_GE, fRES(secret)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as lessEqual. + */ + public void setSecret_LessEqual(String secret) { + regSecret(CK_LE, fRES(secret)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as prefixSearch. + */ + public void setSecret_PrefixSearch(String secret) { + regSecret(CK_PS, fRES(secret)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param secret The value of secret as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setSecret_LikeSearch( + String secret, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(secret), getCValueSecret(), + "SECRET", "Secret", "secret", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secretList The collection of secret as inScope. + */ + public void setSecret_InScope(Collection secretList) { + regSecret(CK_INS, cTL(secretList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secret The collection of secret as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setSecret_InScope( + String secret, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(secret), getCValueSecret(), "SECRET", + "Secret", "secret", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secretList The collection of secret as notInScope. + */ + public void setSecret_NotInScope(Collection secretList) { + regSecret(CK_NINS, cTL(secretList)); + } + + protected void regSecret(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSecret(), "SECRET", "Secret", + "secret"); + } + + protected void registerInlineSecret(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSecret(), "SECRET", "Secret", + "secret"); + } + + abstract protected ConditionValue getCValueSecret(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(10)} * * @param type The value of type as equal. Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -990,6 +990,130 @@ abstract protected ConditionValue getCValueEndTime(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : + * Default=[F]} + * + * @param secret The value of secret as equal. + */ + public void setSecret_Equal(String secret) { + regSecret(CK_EQ, fRES(secret)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as notEqual. + */ + public void setSecret_NotEqual(String secret) { + regSecret(CK_NE, fRES(secret)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as greaterThan. + */ + public void setSecret_GreaterThan(String secret) { + regSecret(CK_GT, fRES(secret)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as lessThan. + */ + public void setSecret_LessThan(String secret) { + regSecret(CK_LT, fRES(secret)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as greaterEqual. + */ + public void setSecret_GreaterEqual(String secret) { + regSecret(CK_GE, fRES(secret)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as lessEqual. + */ + public void setSecret_LessEqual(String secret) { + regSecret(CK_LE, fRES(secret)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as prefixSearch. + */ + public void setSecret_PrefixSearch(String secret) { + regSecret(CK_PS, fRES(secret)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param secret The value of secret as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setSecret_LikeSearch( + String secret, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(secret), getCValueSecret(), + "SECRET", "Secret", "secret", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secretList The collection of secret as inScope. + */ + public void setSecret_InScope(Collection secretList) { + regSecret(CK_INS, cTL(secretList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secret The collection of secret as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setSecret_InScope( + String secret, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(secret), getCValueSecret(), "SECRET", + "Secret", "secret", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secretList The collection of secret as notInScope. + */ + public void setSecret_NotInScope(Collection secretList) { + regSecret(CK_NINS, cTL(secretList)); + } + + protected void regSecret(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSecret(), "SECRET", "Secret", + "secret"); + } + + protected void registerInlineSecret(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSecret(), "SECRET", "Secret", + "secret"); + } + + abstract protected ConditionValue getCValueSecret(); + + /** * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} * * @param createdTime The value of createdTime as equal. Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -388,6 +388,29 @@ return this; } + protected ConditionValue _secret; + + public ConditionValue getSecret() { + if (_secret == null) { + _secret = new ConditionValue(); + } + return _secret; + } + + protected ConditionValue getCValueSecret() { + return getSecret(); + } + + public BsRoutineScheduleCQ addOrderBy_Secret_Asc() { + regOBA("SECRET"); + return this; + } + + public BsRoutineScheduleCQ addOrderBy_Secret_Desc() { + regOBD("SECRET"); + return this; + } + protected ConditionValue _type; public ConditionValue getType() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -387,6 +387,29 @@ return this; } + protected ConditionValue _secret; + + public ConditionValue getSecret() { + if (_secret == null) { + _secret = new ConditionValue(); + } + return _secret; + } + + protected ConditionValue getCValueSecret() { + return getSecret(); + } + + public BsSingleScheduleCQ addOrderBy_Secret_Asc() { + regOBA("SECRET"); + return this; + } + + public BsSingleScheduleCQ addOrderBy_Secret_Desc() { + regOBD("SECRET"); + return this; + } + protected ConditionValue _createdTime; public ConditionValue getCreatedTime() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -174,6 +174,10 @@ return _myCQ.getEndTime(); } + protected ConditionValue getCValueSecret() { + return _myCQ.getSecret(); + } + protected ConditionValue getCValueType() { return _myCQ.getType(); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -173,6 +173,10 @@ return _myCQ.getEndTime(); } + protected ConditionValue getCValueSecret() { + return _myCQ.getSecret(); + } + protected ConditionValue getCValueCreatedTime() { return _myCQ.getCreatedTime(); } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,189 @@ +package jp.sf.pal.scheduler.db.exentity; + +public interface EventSchedule { + public abstract String getContent(); + + public abstract void setContent(String content); + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public abstract Long getId(); + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public abstract void setId(Long id); + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'TITLE'. (Nullable) + */ + public abstract String getTitle(); + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @param title The value of the column 'TITLE'. (Nullable) + */ + public abstract void setTitle(String title); + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @return The value of the column 'LOCATION'. (Nullable) + */ + public abstract String getLocation(); + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @param location The value of the column 'LOCATION'. (Nullable) + */ + public abstract void setLocation(String location); + + /** + * START_DATE: {NotNull : DATE}
    + * + * @return The value of the column 'START_DATE'. (Nullable) + */ + public abstract java.util.Date getStartDate(); + + /** + * START_DATE: {NotNull : DATE}
    + * + * @param startDate The value of the column 'START_DATE'. (Nullable) + */ + public abstract void setStartDate(java.util.Date startDate); + + /** + * START_TIME: {TIME}
    + * + * @return The value of the column 'START_TIME'. (Nullable) + */ + public abstract java.sql.Time getStartTime(); + + /** + * START_TIME: {TIME}
    + * + * @param startTime The value of the column 'START_TIME'. (Nullable) + */ + public abstract void setStartTime(java.sql.Time startTime); + + /** + * END_DATE: {NotNull : DATE}
    + * + * @return The value of the column 'END_DATE'. (Nullable) + */ + public abstract java.util.Date getEndDate(); + + /** + * END_DATE: {NotNull : DATE}
    + * + * @param endDate The value of the column 'END_DATE'. (Nullable) + */ + public abstract void setEndDate(java.util.Date endDate); + + /** + * END_TIME: {TIME}
    + * + * @return The value of the column 'END_TIME'. (Nullable) + */ + public abstract java.sql.Time getEndTime(); + + /** + * END_TIME: {TIME}
    + * + * @param endTime The value of the column 'END_TIME'. (Nullable) + */ + public abstract void setEndTime(java.sql.Time endTime); + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public abstract java.sql.Timestamp getCreatedTime(); + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public abstract void setCreatedTime(java.sql.Timestamp createdTime); + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public abstract String getCreatedBy(); + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public abstract void setCreatedBy(String createdBy); + + /** + * UPDATED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public abstract java.sql.Timestamp getUpdatedTime(); + + /** + * UPDATED_TIME: {TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public abstract void setUpdatedTime(java.sql.Timestamp updatedTime); + + /** + * UPDATED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public abstract String getUpdatedBy(); + + /** + * UPDATED_BY: {VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public abstract void setUpdatedBy(String updatedBy); + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public abstract java.sql.Timestamp getDeletedTime(); + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public abstract void setDeletedTime(java.sql.Timestamp deletedTime); + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public abstract String getDeletedBy(); + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public abstract void setDeletedBy(String deletedBy); +} \ No newline at end of file Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -15,7 +15,8 @@ */ @SuppressWarnings("unchecked") public class RoutineSchedule extends - jp.sf.pal.scheduler.db.bsentity.BsRoutineSchedule { + jp.sf.pal.scheduler.db.bsentity.BsRoutineSchedule implements + EventSchedule { /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -15,7 +15,8 @@ */ @SuppressWarnings("unchecked") public class SingleSchedule extends - jp.sf.pal.scheduler.db.bsentity.BsSingleSchedule { + jp.sf.pal.scheduler.db.bsentity.BsSingleSchedule implements + EventSchedule { /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -20,13 +20,14 @@ public String getDisplayName() { // TODO i18n StringBuilder buf = new StringBuilder(); - if (getFamilyName() != null) { + if (!StringUtils.isEmpty(getFamilyName())) { buf.append(getFamilyName()); } - if (getFamilyName() != null && getGivenName() != null) { + if (!StringUtils.isEmpty(getFamilyName()) + && !StringUtils.isEmpty(getGivenName())) { buf.append(" "); } - if (getGivenName() != null) { + if (!StringUtils.isEmpty(getGivenName())) { buf.append(getGivenName()); } String displayName = buf.toString(); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -22,6 +22,7 @@ + ", startTime : startTime" // + ", endDate : endDate" // + ", endTime : endTime" // + + ", secret : secret" // + ", createdTime : createdTime" // + ", createdBy : createdBy" // + ", updatedTime : updatedTime" // @@ -45,6 +46,7 @@ + ", startTime : startTime" // + ", endDate : endDate" // + ", endTime : endTime" // + + ", secret : secret" // // + ", createdTime : createdTime" // // + ", createdBy : createdBy" // // + ", updatedTime : updatedTime" // @@ -58,4 +60,53 @@ public void convertFromFormToRoutineSchedule(RoutineScheduleForm form, RoutineSchedule routineSchedule); + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromRoutineScheduleToForm( + RoutineSchedule routineSchedule, + jp.sf.pal.scheduler.form.user.RoutineScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToRoutineSchedule( + jp.sf.pal.scheduler.form.user.RoutineScheduleForm form, + RoutineSchedule routineSchedule); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -2,7 +2,7 @@ import java.io.Serializable; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; import jp.sf.pal.scheduler.form.admin.SingleScheduleForm; import org.seasar.extension.dxo.annotation.ConversionRule; @@ -22,6 +22,7 @@ + ", startTime : startTime" // + ", endDate : endDate" // + ", endTime : endTime" // + + ", secret : secret" // + ", createdTime : createdTime" // + ", createdBy : createdBy" // + ", updatedTime : updatedTime" // @@ -32,7 +33,7 @@ + ", content : content" // + ", selectedUsers : selectedUsers" // ) - public void convertFromSingleScheduleToForm(SingleSchedule singleSchedule, + public void convertFromSingleScheduleToForm(EventSchedule singleSchedule, SingleScheduleForm form); @ExcludeNull @@ -45,6 +46,7 @@ + ", startTime : startTime" // + ", endDate : endDate" // + ", endTime : endTime" // + + ", secret : secret" // // + ", createdTime : createdTime" // // + ", createdBy : createdBy" // // + ", updatedTime : updatedTime" // @@ -56,6 +58,54 @@ + ", selectedUsers : selectedUsers" // ) public void convertFromFormToSingleSchedule(SingleScheduleForm form, - SingleSchedule singleSchedule); + EventSchedule singleSchedule); + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromSingleScheduleToForm(EventSchedule singleSchedule, + jp.sf.pal.scheduler.form.user.SingleScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToSingleSchedule( + jp.sf.pal.scheduler.form.user.SingleScheduleForm form, + EventSchedule singleSchedule); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -39,6 +39,10 @@ public String endTime; + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + @Required(target = "confirm,create,update,delete") @Maxbytelength(maxbytelength = 10) public String type; @@ -92,5 +96,6 @@ addedUsers = null; removedUsers = null; selectedUsers = null; + secret = "F"; } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -40,6 +40,10 @@ public String endTime; + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + @DateType public String createdTime; @@ -88,5 +92,6 @@ addedUsers = null; removedUsers = null; selectedUsers = null; + secret = "F"; } } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,63 @@ +package jp.sf.pal.scheduler.form.user; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Required; + +public class CalendarForm implements Serializable { + + private static final long serialVersionUID = 8620446294327855407L; + + @Required(target = "selectpersonalmonth,movepersonalprevmonth,movepersonalnextmonth") + @IntegerType + public String year; + + @IntegerType + public String month; + + @IntegerType + public String date; + + public Calendar getTargetCalendar() { + if (!StringUtils.isEmpty(year) && !StringUtils.isEmpty(month) + && !StringUtils.isEmpty(date)) { + return CalendarUtil.get(Integer.parseInt(year), Integer + .parseInt(month) - 1, Integer.parseInt(date)); + } + Calendar today = CalendarUtil.getToday(); + year = String.valueOf(CalendarUtil.getYear(today)); + month = String.valueOf(CalendarUtil.getMonth(today) + 1); + date = String.valueOf(CalendarUtil.getDate(today)); + return today; + } + + public void changeCalendarToToday() { + Calendar today = CalendarUtil.getToday(); + year = String.valueOf(CalendarUtil.getYear(today)); + month = String.valueOf(CalendarUtil.getMonth(today) + 1); + date = String.valueOf(CalendarUtil.getDate(today)); + } + + public void changeCalendarToPrevMonth() { + month = String.valueOf(Integer.parseInt(month) - 1); + updateCalendarValue(); + } + + public void changeCalendarToNextMonth() { + month = String.valueOf(Integer.parseInt(month) + 1); + updateCalendarValue(); + } + + private void updateCalendarValue() { + Calendar cal = CalendarUtil.get(Integer.parseInt(year), Integer + .parseInt(month) - 1, Integer.parseInt(date)); + year = String.valueOf(CalendarUtil.getYear(cal)); + month = String.valueOf(CalendarUtil.getMonth(cal) + 1); + date = String.valueOf(CalendarUtil.getDate(cal)); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,116 @@ +package jp.sf.pal.scheduler.form.user; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RoutineScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6969085674310253357L; + + @Required + public String returnType; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,112 @@ +package jp.sf.pal.scheduler.form.user; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class SingleScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 6969085674310253357L; + + @Required + public String returnType; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @Required(target = "confirm,create,update,delete") + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -8,6 +8,7 @@ import jp.sf.pal.scheduler.common.dxo.PagerDxo; import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleBhv; @@ -32,6 +33,33 @@ private PagerDxo pagerDxo; + public List getPersonalScheduleMappingList( + final String userId, final Date fromDate, final Date toDate) { + RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + + // setup + cb.setupSelect_RoutineSchedule(); + + cb.query().setUserId_Equal(userId); + cb.query().queryRoutineSchedule().setDeletedBy_IsNull(); + cb.query().queryRoutineSchedule().setStartDate_LessEqual(toDate); + cb.query().queryRoutineSchedule().setEndDate_GreaterEqual(fromDate); + cb.unionAll(new UnionQuery() { + public void query(RoutineScheduleMappingCB unionCB) { + unionCB.query().setUserId_Equal(userId); + unionCB.query().queryRoutineSchedule().setDeletedBy_IsNull(); + unionCB.query().queryRoutineSchedule().setStartDate_LessEqual( + toDate); + unionCB.query().queryRoutineSchedule().setEndDate_IsNull(); + unionCB.query().queryRoutineSchedule() + .addOrderBy_StartDate_Asc(); + } + }); + cb.query().queryRoutineSchedule().addOrderBy_StartDate_Asc(); + + return routineScheduleMappingBhv.selectList(cb); + } + public List getRoutineScheduleList( RoutineSchedulePager routineSchedulePager, String userId) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -32,6 +32,23 @@ private PagerDxo pagerDxo; + public List getPersonalScheduleMappingList( + String userId, Date fromDate, Date toDate) { + SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); + + // setup + cb.setupSelect_SingleSchedule(); + + cb.query().setUserId_Equal(userId); + cb.query().querySingleSchedule().setDeletedBy_IsNull(); + cb.query().querySingleSchedule().setStartDate_LessEqual(toDate); + cb.query().querySingleSchedule().setEndDate_GreaterEqual(fromDate); + + cb.query().querySingleSchedule().addOrderBy_StartDate_Asc(); + + return singleScheduleMappingBhv.selectList(cb); + } + public List getSingleScheduleList( SingleSchedulePager singleSchedulePager, String userId) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-16 13:27:06 UTC (rev 1354) @@ -1,6 +1,8 @@ package jp.sf.pal.scheduler.service; +import java.sql.Timestamp; import java.util.ArrayList; +import java.util.Date; import java.util.List; import jp.sf.pal.scheduler.db.cbean.UserInfoCB; @@ -10,6 +12,23 @@ public class UserInfoService { private transient UserInfoBhv userInfoBhv; + public void initUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + cb.query().setDeletedBy_IsNull(); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + Timestamp now = new Timestamp(new Date().getTime()); + userInfo = new UserInfo(); + userInfo.setUserId(userId); + userInfo.setCreatedBy(userId); + userInfo.setCreatedTime(now); + userInfo.setUpdatedBy(userId); + userInfo.setUpdatedTime(now); + userInfoBhv.insert(userInfo); + } + } + public List getAvailableUserList(String[] selectedUsers, String userId) { UserInfoCB cb = new UserInfoCB(); Modified: scheduler/trunk/src/main/resources/convention.dicon =================================================================== --- scheduler/trunk/src/main/resources/convention.dicon 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/resources/convention.dicon 2008-11-16 13:27:06 UTC (rev 1354) @@ -12,10 +12,8 @@ "jp.sf.pal.scheduler.common.util" - Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-16 13:27:06 UTC (rev 1354) @@ -25,7 +25,7 @@ SchedulerManager Scheduler: Scheduler Manager - Edit user information. + Manage all events. org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -40,8 +40,30 @@ ja Scheduler Manager - Schedulers + Scheduler Scheduler,URL + + Scheduler + Scheduler: Scheduler + Manage your events. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /user/calendar/ + + 0 + + text/html + VIEW + + en + ja + + Scheduler + Scheduler + Scheduler,URL + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -68,6 +68,14 @@
    ${f:br(f:h(content))}
    Privacy +Public +Private + +
    Assigned Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -69,6 +69,15 @@ + + + +
    Privacy + + Public + Private + +
    Assigned Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -55,6 +55,14 @@ + + + + - + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-18 05:48:03 UTC (rev 1363) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-18 06:08:26 UTC (rev 1364) @@ -34,7 +34,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -168,7 +168,7 @@ - + @@ -237,7 +237,7 @@ - + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-18 05:48:03 UTC (rev 1363) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-18 06:08:26 UTC (rev 1364) @@ -29,7 +29,7 @@ - + @@ -77,7 +77,7 @@ - + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-18 05:48:03 UTC (rev 1363) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-18 06:08:26 UTC (rev 1364) @@ -34,7 +34,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -95,11 +95,11 @@ - + - + @@ -115,11 +115,11 @@ - + - + @@ -136,7 +136,7 @@ - + @@ -168,7 +168,7 @@ - + @@ -216,7 +216,7 @@ - + @@ -237,7 +237,7 @@ - + From svnnotify ¡÷ sourceforge.jp Tue Nov 18 15:56:01 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 15:56:01 +0900 Subject: [pal-cvs 3630] [1365] changed translation. Message-ID: <1226991361.066628.29080.nullmailer@users.sourceforge.jp> Revision: 1365 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1365 Author: shinsuke Date: 2008-11-18 15:56:00 +0900 (Tue, 18 Nov 2008) Log Message: ----------- changed translation. Modified Paths: -------------- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/label_ja.properties -------------- next part -------------- Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/label_ja.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/label_ja.properties 2008-11-18 06:08:26 UTC (rev 1364) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/label_ja.properties 2008-11-18 06:56:00 UTC (rev 1365) @@ -3,7 +3,7 @@ groupTab=\u30b0\u30eb\u30fc\u30d7 portletsTab=\u30dd\u30fc\u30c8\u30ec\u30c3\u30c8 -deployerTab=\u30c7\u30d7\u30ed\u30a4\u30e4\u30fc +deployerTab=\u914d\u5099 previousPage=\u524d\u3078 nextPage=\u6b21\u3078 From svnnotify ¡÷ sourceforge.jp Tue Nov 18 17:02:11 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 17:02:11 +0900 Subject: [pal-cvs 3631] [1366] added default manager name, display i18ned name, fixed bugs. Message-ID: <1226995331.505742.31549.nullmailer@users.sourceforge.jp> Revision: 1366 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1366 Author: shinsuke Date: 2008-11-18 17:02:11 +0900 (Tue, 18 Nov 2008) Log Message: ----------- added default manager name, display i18ned name, fixed bugs. Modified Paths: -------------- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java timecard/trunk/src/main/resources/application.properties timecard/trunk/src/main/resources/application_ja.properties timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp -------------- next part -------------- Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -79,4 +79,5 @@ public static final String TIME_LABEL_MINUTES = "time.label.minutes"; public static final String TIME_HOLIDAYS = "time.holidays"; + public static final String DEFAULT_MANAGER = "default.manager"; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -40,6 +40,8 @@ TimecardConstants.TIME_LABEL_MINUTES, "00\n15\n30\n45"); configForm.holidays = ConfigUtil.getString( TimecardConstants.TIME_HOLIDAYS, ""); + configForm.holidays = ConfigUtil.getString( + TimecardConstants.DEFAULT_MANAGER, "admin"); return "index.jsp"; } @@ -64,6 +66,8 @@ configForm.displayedMinutes); ConfigUtil.setProperty(TimecardConstants.TIME_HOLIDAYS, configForm.holidays); + ConfigUtil.setProperty(TimecardConstants.DEFAULT_MANAGER, + configForm.defaultManager); try { ConfigUtil.save(); SAStrutsUtil.addMessage(request, "success.update_config"); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -73,6 +73,13 @@ } else { year = Integer.parseInt(employeeForm.year); month = Integer.parseInt(employeeForm.month); + + // check date + Date tDate = DateUtil.get(year - 1900, month - 1, 1); + year = DateUtil.getYear(tDate) + 1900; + month = DateUtil.getMonth(tDate) + 1; + employeeForm.year = String.valueOf(year); + employeeForm.month = String.valueOf(month); } monthlyReport = reportService.getMonthlyReport(username, year, month); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -73,6 +73,13 @@ } else { year = Integer.parseInt(timecardForm.year); month = Integer.parseInt(timecardForm.month); + + // check date + Date tDate = DateUtil.get(year - 1900, month - 1, 1); + year = DateUtil.getYear(tDate) + 1900; + month = DateUtil.getMonth(tDate) + 1; + timecardForm.year = String.valueOf(year); + timecardForm.month = String.valueOf(month); } monthlyReport = reportService.getMonthlyReport(username, year, month); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -73,6 +73,13 @@ } else { year = Integer.parseInt(timecardForm.year); month = Integer.parseInt(timecardForm.month); + + // check date + Date tDate = DateUtil.get(year - 1900, month - 1, 1); + year = DateUtil.getYear(tDate) + 1900; + month = DateUtil.getMonth(tDate) + 1; + timecardForm.year = String.valueOf(year); + timecardForm.month = String.valueOf(month); } monthlyReport = reportService.getMonthlyReport(username, year, month); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -1,5 +1,7 @@ package jp.sf.pal.timecard.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of USER_INFO. *

    @@ -14,4 +16,32 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -30,4 +30,7 @@ @Required(target = "update") public String holidays; + + @Required(target = "update") + public String defaultManager; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -55,6 +55,8 @@ cb.fetchPage(employeePager.getCurrentPageNumber()); // setup + cb.setupSelect_UserInfoByUsername(); + cb.setupSelect_UserInfoByManager(); if (employeePager.getUsername() != null) { cb.query().setUsername_Equal(employeePager.getUsername()); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -7,6 +7,7 @@ import java.util.List; import jp.sf.pal.timecard.TimecardConstants; +import jp.sf.pal.timecard.common.util.ConfigUtil; import jp.sf.pal.timecard.common.util.DateUtil; import jp.sf.pal.timecard.db.cbean.DailyReportCB; import jp.sf.pal.timecard.db.cbean.EmployeeCB; @@ -34,7 +35,7 @@ private transient UserInfoBhv userInfoBhv; - private void initUserInfo(String userId) { + private UserInfo initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); cb.query().setDeletedBy_IsNull(); @@ -49,6 +50,7 @@ userInfo.setUpdatedTime(now); userInfoBhv.insert(userInfo); } + return userInfo; } public MonthlyReport getMonthlyReport(String username, int year, int month) { @@ -56,7 +58,8 @@ MonthlyReportCB cb = new MonthlyReportCB(); // setup - cb.setupSelect_Employee(); + cb.setupSelect_Employee().withUserInfoByUsername(); + cb.setupSelect_Employee().withUserInfoByManager(); cb.query().setYear_Equal(year); cb.query().setMonth_Equal(month); @@ -73,17 +76,23 @@ Employee employee = employeeBhv.selectEntity(cb1); // TODO option if (employee == null) { - initUserInfo(username); + String manager = ConfigUtil.getString( + TimecardConstants.DEFAULT_MANAGER, "admin"); + UserInfo userInfoByUsername = initUserInfo(username); + UserInfo userInfoByManager = initUserInfo(manager); // create employee employee = new Employee(); employee.setUsername(username); - employee.setManager("admin"); + employee.setManager(manager); // TODO employee.setPaidHolidays(BigDecimal.valueOf(0)); employee.setCreatedBy(username); employee.setCreatedTime(now); employee.setUpdatedBy(username); employee.setUpdatedTime(now); employeeBhv.insert(employee); + + employee.setUserInfoByUsername(userInfoByUsername); + employee.setUserInfoByManager(userInfoByManager); } // create monthly report Modified: timecard/trunk/src/main/resources/application.properties =================================================================== --- timecard/trunk/src/main/resources/application.properties 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/resources/application.properties 2008-11-18 08:02:11 UTC (rev 1366) @@ -5,6 +5,13 @@ msg.header=

      msg.footer=
    +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. @@ -103,7 +110,7 @@ labels.otj_time=OTJ time labels.editing=Editing now labels.request=Request -labels.recognized=Recognized +labels.recognized=Approved labels.memo=Memo labels.edit_timecard=Editing timecard @@ -149,5 +156,17 @@ labels.auto_fill=Auto fill labels.fix_monthly_report=Fixing monthly report -labels.recognized2=Recognized -labels.recognize=Recognize \ No newline at end of file +labels.recognized2=Approved +labels.recognize=Approve + +labels.holiday_list=Holiday List +labels.minutes_to_display=Selectable Minutes +labels.holiday_format=ex. YYYY-MM-DD +labels.default_manager=Default Manager +labels.search_user_id=User ID +labels.search=Search +labels.reset=Reset + +# 0: year, 1: month +display.yearmonth_format={0}/{1} + Modified: timecard/trunk/src/main/resources/application_ja.properties =================================================================== --- timecard/trunk/src/main/resources/application_ja.properties 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/resources/application_ja.properties 2008-11-18 08:02:11 UTC (rev 1366) @@ -1,3 +1,10 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 @@ -143,4 +150,16 @@ labels.fix_monthly_report=\u6708\u6b21\u78ba\u5b9a labels.recognized2=\u627f\u8a8d\u6e08\u307f -labels.recognize=\u627f\u8a8d \ No newline at end of file +labels.recognize=\u627f\u8a8d + +labels.holiday_list=\u4f11\u65e5\u4e00\u89a7 +labels.minutes_to_display=\u9078\u629e\u53ef\u80fd\u306a\u5206 +labels.holiday_format=\u4f8b: YYYY-MM-DD +labels.default_manager=\u30c7\u30d5\u30a9\u30eb\u30c8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc +labels.search_user_id=\u30e6\u30fc\u30b6\u30fc ID +labels.search=\u691c\u7d22 +labels.reset=\u30ea\u30bb\u30c3\u30c8 + +# 0: year, 1: month +display.yearmonth_format={0}\u5e74{1}\u6708 + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -13,11 +13,11 @@
    ${f:br(f:h(content))}
    Privacy +Public +Private + +
    Assigned Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp 2008-11-14 16:30:19 UTC (rev 1353) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -55,6 +55,15 @@ + + + + - + - - + + @@ -48,31 +48,31 @@
    - - + + - + - + ${p} - + ${p} - - + +
    - ${singleSchedulePager.currentPageNumber}/${singleSchedulePager.allPageCount} (${singleSchedulePager.allRecordCount}) + ${onetimeSchedulePager.currentPageNumber}/${onetimeSchedulePager.allPageCount} (${onetimeSchedulePager.allRecordCount})
    Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/userlist.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -12,7 +12,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • Copied: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule (from rev 1356, scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule) Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/confirm.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -10,7 +10,7 @@
    • -
    • One Time
    • +
    • One Time
    • Repeats
    • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/edit.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -10,7 +10,7 @@
      • -
      • One Time
      • +
      • One Time
      • Repeats
      • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/error.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -9,7 +9,7 @@
        • -
        • One Time
        • +
        • One Time
        • Repeats
        • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/index.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -10,7 +10,7 @@
          • -
          • One Time
          • +
          • One Time
          • Repeats
          • @@ -33,13 +33,13 @@
    - + - - + + @@ -48,31 +48,31 @@
    - - + + - + - + ${p} - + ${p} - - + +
    - ${routineSchedulePager.currentPageNumber}/${routineSchedulePager.allPageCount} (${routineSchedulePager.allRecordCount}) + ${repeatSchedulePager.currentPageNumber}/${repeatSchedulePager.allPageCount} (${repeatSchedulePager.allRecordCount})
    Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/userlist.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -10,7 +10,7 @@
    • -
    • One Time
    • +
    • One Time
    • Repeats
    • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -24,7 +24,7 @@
      - +
      < @@ -72,8 +72,8 @@
      • -${event.title} -${event.title} +${event.title} +${event.title}
      @@ -91,8 +91,8 @@
      • ${event.time}
        -${event.title} -${event.title} +${event.title} +${event.title}
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -24,7 +24,7 @@
      - +
      < @@ -76,15 +76,15 @@
      • -${event.title} -${event.title} +${event.title} +${event.title}
      • ${event.time}
        -${event.title} -${event.title} +${event.title} +${event.title}
      • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -24,7 +24,7 @@
        - +
        < @@ -75,8 +75,8 @@
        • -${event.title} -${event.title} +${event.title} +${event.title}
        @@ -91,8 +91,8 @@
      • ${event.time}
        -${event.title} -${event.title} +${event.title} +${event.title}
      • Copied: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule (from rev 1356, scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule) Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -15,7 +15,7 @@
      • One time
      • -
      • Repeats
      • +
      • Repeats
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/edit.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -15,7 +15,7 @@
    • One time
    • -
    • Repeats
    • +
    • Repeats
    Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/error.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -14,7 +14,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/userlist.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -15,7 +15,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • Copied: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule (from rev 1356, scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule) Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -13,7 +13,7 @@
  • Calendar
  • -
  • One Time
  • +
  • One Time
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/edit.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -13,7 +13,7 @@
  • Calendar
  • -
  • One Time
  • +
  • One Time
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/error.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -12,7 +12,7 @@
  • Calendar
  • -
  • One Time
  • +
  • One Time
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/userlist.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -13,7 +13,7 @@
  • Calendar
  • -
  • One Time
  • +
  • One Time
  • Repeats
  • From svnnotify ¡÷ sourceforge.jp Tue Nov 18 00:07:37 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 00:07:37 +0900 Subject: [pal-cvs 3623] [1358] cleanup.. Message-ID: <1226934457.215034.13859.nullmailer@users.sourceforge.jp> Revision: 1358 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1358 Author: shinsuke Date: 2008-11-18 00:07:36 +0900 (Tue, 18 Nov 2008) Log Message: ----------- cleanup.. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-17 14:07:31 UTC (rev 1357) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-17 15:07:36 UTC (rev 1358) @@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.scheduler.SchedulerConstants; import jp.sf.pal.scheduler.common.util.CalendarUtil; import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.DateUtil; @@ -234,7 +235,6 @@ for (List> events : eventInDayItems) { if (!events.isEmpty()) { int idx = events.size() - 1; - Map lastEvent = events.get(idx); for (int i = idx; i < maxCols - 1; i++) { events.add(createEmptyEvent()); } @@ -293,8 +293,6 @@ for (List> events : eventInDayItems) { if (!events.isEmpty()) { int idx = events.size() - 1; - Map lastEvent = events.get(idx); - int cols = maxCols - idx; for (int i = idx; i < maxCols - 1; i++) { events.add(createEmptyEvent()); } @@ -1010,11 +1008,11 @@ } map.put("time", buf.toString()); } - if (eventSchedule instanceof EventSchedule) { + if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) { + map.put("repeat", "false"); + } else { map.put("repeat", "true"); map.put("type", ((EventSchedule) eventSchedule).getType()); - } else { - map.put("repeat", "false"); } return map; From svnnotify ¡÷ sourceforge.jp Tue Nov 18 00:11:35 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 00:11:35 +0900 Subject: [pal-cvs 3624] [1359] use pull-down box for date and time. Message-ID: <1226934695.548062.17928.nullmailer@users.sourceforge.jp> Revision: 1359 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1359 Author: shinsuke Date: 2008-11-18 00:11:35 +0900 (Tue, 18 Nov 2008) Log Message: ----------- use pull-down box for date and time. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-17 15:07:36 UTC (rev 1358) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-17 15:11:35 UTC (rev 1359) @@ -2,12 +2,15 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import jp.sf.pal.scheduler.common.CommonConstants; import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.CalendarUtil; import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.SAStrutsUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; @@ -380,6 +383,67 @@ .getSelectedUserList(onetimeScheduleForm.selectedUsers); } + public List getYearItems() { + int year = CalendarUtil.getYear(CalendarUtil.getToday()); + List items = new ArrayList(); + for (int i = year - 10; i < year + 5; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getMonthItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 13; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getDateItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 32; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List> getHourItems() { + List> items = new ArrayList>(); + for (int i = 0; i < 24; i++) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + // TODO i18n + Map map = new HashMap(); + map.put("label", buf.toString()); + map.put("value", buf.toString()); + items.add(map); + } + return items; + } + + public List getMinuteItems() { + List items = new ArrayList(); + for (int i = 0; i < 60; i += 5) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + items.add(buf.toString()); + } + return items; + } + /** * @return the request */ Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-17 15:07:36 UTC (rev 1358) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-17 15:11:35 UTC (rev 1359) @@ -2,12 +2,15 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import jp.sf.pal.scheduler.common.CommonConstants; import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.CalendarUtil; import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.SAStrutsUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; @@ -379,6 +382,67 @@ .getSelectedUserList(repeatScheduleForm.selectedUsers); } + public List getYearItems() { + int year = CalendarUtil.getYear(CalendarUtil.getToday()); + List items = new ArrayList(); + for (int i = year - 10; i < year + 5; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getMonthItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 13; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getDateItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 32; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List> getHourItems() { + List> items = new ArrayList>(); + for (int i = 0; i < 24; i++) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + // TODO i18n + Map map = new HashMap(); + map.put("label", buf.toString()); + map.put("value", buf.toString()); + items.add(map); + } + return items; + } + + public List getMinuteItems() { + List items = new ArrayList(); + for (int i = 0; i < 60; i += 5) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + items.add(buf.toString()); + } + return items; + } + /** * @return the request */ Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-17 15:07:36 UTC (rev 1358) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-17 15:11:35 UTC (rev 1359) @@ -1,9 +1,12 @@ package jp.sf.pal.scheduler.form.user; import java.io.Serializable; +import java.util.Calendar; import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import org.apache.commons.lang.StringUtils; import org.seasar.struts.annotation.DateType; import org.seasar.struts.annotation.IntegerType; import org.seasar.struts.annotation.LongType; @@ -43,18 +46,44 @@ @Maxbytelength(maxbytelength = 100) public String location; + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String startDate; + @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; + public String startDateY; - public String startTime; + @Required(target = "confirm,create,update,delete") + public String startDateM; @Required(target = "confirm,create,update,delete") - @DateType - public String endDate; + public String startDateD; - public String endTime; + // public String startTime; + public String startTimeH; + + public String startTimeM; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String endDate; + + @Required(target = "confirm,create,update,delete") + public String endDateY; + + @Required(target = "confirm,create,update,delete") + public String endDateM; + + @Required(target = "confirm,create,update,delete") + public String endDateD; + + // public String endTime; + + public String endTimeH; + + public String endTimeM; + @Required @Maxbytelength(maxbytelength = 1) public String secret; @@ -93,10 +122,32 @@ id = null; title = null; location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; + Calendar today = CalendarUtil.getToday(); + String year = String.valueOf(CalendarUtil.getYear(today)); + int m = CalendarUtil.getMonth(today) + 1; + String month; + if (m < 10) { + month = "0" + String.valueOf(m); + } else { + month = String.valueOf(m); + } + int d = CalendarUtil.getDate(today); + String date; + if (d < 10) { + date = "0" + String.valueOf(d); + } else { + date = String.valueOf(d); + } + startDateY = year; + startDateM = month; + startDateD = date; + startTimeH = null; + startTimeM = null; + endDateY = year; + endDateM = month; + endDateD = date; + endTimeH = null; + endTimeM = null; createdTime = null; createdBy = null; updatedTime = null; @@ -109,4 +160,116 @@ selectedUsers = null; secret = "F"; } + + public String getStartDate() { + if (!StringUtils.isEmpty(startDateY) + && !StringUtils.isEmpty(startDateM) + && !StringUtils.isEmpty(startDateD)) { + StringBuilder buf = new StringBuilder(startDateY); + buf.append("/"); + buf.append(startDateM); + buf.append("/"); + buf.append(startDateD); + return buf.toString(); + } + return null; + } + + public void setStartDate(String startDate) { + if (!StringUtils.isEmpty(startDate)) { + int idx = startDate.indexOf(" "); + if (idx > 0) { + startDate = startDate.substring(0, idx); + } + String[] values = startDate.split("/"); + if (values.length == 3) { + startDateY = values[0]; + startDateM = values[1]; + startDateD = values[2]; + return; + } + } + startDateY = null; + startDateM = null; + startDateD = null; + } + + public String getEndDate() { + if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) + && !StringUtils.isEmpty(endDateD)) { + StringBuilder buf = new StringBuilder(endDateY); + buf.append("/"); + buf.append(endDateM); + buf.append("/"); + buf.append(endDateD); + return buf.toString(); + } + return null; + } + + public void setEndDate(String endDate) { + if (!StringUtils.isEmpty(endDate)) { + int idx = endDate.indexOf(" "); + if (idx > 0) { + endDate = endDate.substring(0, idx); + } + String[] values = endDate.split("/"); + if (values.length == 3) { + endDateY = values[0]; + endDateM = values[1]; + endDateD = values[2]; + return; + } + } + endDateY = null; + endDateM = null; + endDateD = null; + } + + public String getStartTime() { + if (!StringUtils.isEmpty(startTimeH) + && !StringUtils.isEmpty(startTimeM)) { + StringBuilder buf = new StringBuilder(startTimeH); + buf.append(":"); + buf.append(startTimeM); + return buf.toString(); + } + return null; + } + + public void setStartTime(String startTime) { + if (!StringUtils.isEmpty(startTime)) { + String[] values = startTime.split(":"); + if (values.length > 1) { + startTimeH = values[0]; + startTimeM = values[1]; + return; + } + } + startTimeH = null; + startTimeM = null; + } + + public String getEndTime() { + if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { + StringBuilder buf = new StringBuilder(endTimeH); + buf.append(":"); + buf.append(endTimeM); + return buf.toString(); + } + return null; + } + + public void setEndTime(String endTime) { + if (!StringUtils.isEmpty(endTime)) { + String[] values = endTime.split(":"); + if (values.length > 1) { + endTimeH = values[0]; + endTimeM = values[1]; + return; + } + } + endTimeH = null; + endTimeM = null; + } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-17 15:07:36 UTC (rev 1358) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-17 15:11:35 UTC (rev 1359) @@ -1,9 +1,12 @@ package jp.sf.pal.scheduler.form.user; import java.io.Serializable; +import java.util.Calendar; import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import org.apache.commons.lang.StringUtils; import org.seasar.struts.annotation.DateType; import org.seasar.struts.annotation.IntegerType; import org.seasar.struts.annotation.LongType; @@ -43,17 +46,40 @@ @Maxbytelength(maxbytelength = 100) public String location; + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String startDate; + @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; + public String startDateY; - public String startTime; + @Required(target = "confirm,create,update,delete") + public String startDateM; - @DateType - public String endDate; + @Required(target = "confirm,create,update,delete") + public String startDateD; - public String endTime; + // public String startTime; + public String startTimeH; + + public String startTimeM; + + // @DateType + // public String endDate; + + public String endDateY; + + public String endDateM; + + public String endDateD; + + // public String endTime; + + public String endTimeH; + + public String endTimeM; + @Required @Maxbytelength(maxbytelength = 1) public String secret; @@ -96,10 +122,32 @@ id = null; title = null; location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; + Calendar today = CalendarUtil.getToday(); + String year = String.valueOf(CalendarUtil.getYear(today)); + int m = CalendarUtil.getMonth(today) + 1; + String month; + if (m < 10) { + month = "0" + String.valueOf(m); + } else { + month = String.valueOf(m); + } + int d = CalendarUtil.getDate(today); + String date; + if (d < 10) { + date = "0" + String.valueOf(d); + } else { + date = String.valueOf(d); + } + startDateY = year; + startDateM = month; + startDateD = date; + startTimeH = null; + startTimeM = null; + endDateY = null; + endDateM = null; + endDateD = null; + endTimeH = null; + endTimeM = null; type = null; createdTime = null; createdBy = null; @@ -113,4 +161,116 @@ selectedUsers = null; secret = "F"; } + + public String getStartDate() { + if (!StringUtils.isEmpty(startDateY) + && !StringUtils.isEmpty(startDateM) + && !StringUtils.isEmpty(startDateD)) { + StringBuilder buf = new StringBuilder(startDateY); + buf.append("/"); + buf.append(startDateM); + buf.append("/"); + buf.append(startDateD); + return buf.toString(); + } + return null; + } + + public void setStartDate(String startDate) { + if (!StringUtils.isEmpty(startDate)) { + int idx = startDate.indexOf(" "); + if (idx > 0) { + startDate = startDate.substring(0, idx); + } + String[] values = startDate.split("/"); + if (values.length == 3) { + startDateY = values[0]; + startDateM = values[1]; + startDateD = values[2]; + return; + } + } + startDateY = null; + startDateM = null; + startDateD = null; + } + + public String getEndDate() { + if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) + && !StringUtils.isEmpty(endDateD)) { + StringBuilder buf = new StringBuilder(endDateY); + buf.append("/"); + buf.append(endDateM); + buf.append("/"); + buf.append(endDateD); + return buf.toString(); + } + return null; + } + + public void setEndDate(String endDate) { + if (!StringUtils.isEmpty(endDate)) { + int idx = endDate.indexOf(" "); + if (idx > 0) { + endDate = endDate.substring(0, idx); + } + String[] values = endDate.split("/"); + if (values.length == 3) { + endDateY = values[0]; + endDateM = values[1]; + endDateD = values[2]; + return; + } + } + endDateY = null; + endDateM = null; + endDateD = null; + } + + public String getStartTime() { + if (!StringUtils.isEmpty(startTimeH) + && !StringUtils.isEmpty(startTimeM)) { + StringBuilder buf = new StringBuilder(startTimeH); + buf.append(":"); + buf.append(startTimeM); + return buf.toString(); + } + return null; + } + + public void setStartTime(String startTime) { + if (!StringUtils.isEmpty(startTime)) { + String[] values = startTime.split(":"); + if (values.length > 1) { + startTimeH = values[0]; + startTimeM = values[1]; + return; + } + } + startTimeH = null; + startTimeM = null; + } + + public String getEndTime() { + if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { + StringBuilder buf = new StringBuilder(endTimeH); + buf.append(":"); + buf.append(endTimeM); + return buf.toString(); + } + return null; + } + + public void setEndTime(String endTime) { + if (!StringUtils.isEmpty(endTime)) { + String[] values = endTime.split(":"); + if (values.length > 1) { + endTimeH = values[0]; + endTimeM = values[1]; + return; + } + } + endTimeH = null; + endTimeM = null; + } } Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-17 15:07:36 UTC (rev 1358) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-17 15:11:35 UTC (rev 1359) @@ -32,7 +32,7 @@
    -
    Privacy + + Public + Private + +
    Assigned Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,103 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Day
    • +
    • +
    • Week
    • +
    • +
    • Month
    • +
    • +
    +
    + + +
    + +
    +
    + +
    +
    +< +Today +> +
    +
    + + + + + + + + + + + + + + + + + + + + +
    ${year}/${month}
    SMTWTFS
    +${day.dayOfMonth} +
    + + +
    + + + + + + + + + + + + + + + + + + +
    SunMonTueWedThuFriSat
    +${day.dayOfMonth}
    +
      + +
    • +${event.title} +${event.title} +
    • +
      + + +
    • ${event.time}
      +${event.title} +${event.title} +
    • +
      +
      + +
    +
    +
    + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,109 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Day
    • +
    • +
    • Week
    • +
    • +
    • Month
    • +
    • +
    +
    + + +
    + +
    +
    + +
    +
    +< +Today +> +
    + + + + + + + + + + + + + + + + + + + + + +
    ${year}/${month}
    SMTWTFS
    +${day.dayOfMonth} +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + +
    Time${day.displayedDate}
    All Day +
      + +
    • +${event.title} +${event.title} +
    • +
      +
    +
    Events +
      + + +
    • ${event.time}
      +${event.title} +${event.title} +
    • +
      +
      +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,138 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • + +
    • +
    • One Time
    • +
      +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What${f:h(title)}
    Where${f:h(location)}
    Repeats +Daily +Every weekday (Mon-Fri) +Every Mon., Wed., and Fri. +Every Tues., and Thurs. +Weekly +Monthly +Yearly + +
    When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
    +To: + ${f:h(endDate)} + ${f:h(endTime)} +
    Description${f:br(f:h(content))}
    Privacy +Public +Private + +
    Assigned + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + + + ${f:u(u.userId)} + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + "/> + +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/edit.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,132 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • + +
    • +
    • One Time
    • +
      +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What
    Where
    Repeats + + Daily + Every weekday (Mon-Fri) + Every Mon., Wed., and Fri. + Every Tues., and Thurs. + Weekly + Monthly + Yearly + +
    When +From: + + +
    +To: + + +
    Description
    Privacy + + Public + Private + +
    Assigned + + + + + + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + +
    + + + ${f:u(u.userId)} + + +
    + "/> + "/> +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/error.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,29 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • + +
    • +
    • One Time
    • +
      +
    • +
    • Repeats
    • +
    • +
    +
    + + + +
    + +
    + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/userlist.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,107 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • + +
    • +
    • One Time
    • +
      +
    • +
    • Repeats
    • +
    • +
    +
    + + +
    + + +
    + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    User List
    + + + + ${f:h(u.displayName)} + + +
    +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + +
    Selected User List
    + + + + ${f:h(u.displayName)} + + + + + ${f:u(u.userId)} + + +
    + +
    +
    +
    +
    + +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,125 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • +
    • +
    • One time
    • + +
    • +
    • Repeats
    • +
      +
    • +
    +
    + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What${f:h(title)}
    Where${f:h(location)}
    When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
    +To: + ${f:h(endDate)} + ${f:h(endTime)} +
    Description${f:br(f:h(content))}
    Privacy +Public +Private + +
    Assigned + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + + + ${f:u(u.userId)} + + +
    + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + "/> + +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/edit.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,118 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • +
    • +
    • One time
    • + +
    • +
    • Repeats
    • +
      +
    • +
    +
    + + +
    + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    What
    Where
    When +From: + + +
    +To: + + +
    Description
    Privacy + + Public + Private + +
    Assigned + + + + + + + + + + + + + + + + +
    Name
    ${f:h(u.displayName)}
    + +
    + + + ${f:u(u.userId)} + + +
    + "/> + "/> +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/error.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,29 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • +
    • +
    • One time
    • + +
    • +
    • Repeats
    • +
      +
    • +
    +
    + + + +
    + +
    + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/userlist.jsp 2008-11-16 13:27:06 UTC (rev 1354) @@ -0,0 +1,106 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Calendar
    • +
    • +
    • One time
    • + +
    • +
    • Repeats
    • +
      +
    • +
    +
    + + +
    + + +
    + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    User List
    + + + + ${f:h(u.displayName)} + + +
    +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + +
    Selected User List
    + + + + ${f:h(u.displayName)} + + + + + ${f:u(u.userId)} + + +
    + +
    +
    +
    +
    + +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Mon Nov 17 06:57:31 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 17 Nov 2008 06:57:31 +0900 Subject: [pal-cvs 3620] [1355] updated build process for groupware guilde. Message-ID: <1226872651.511485.29700.nullmailer@users.sourceforge.jp> Revision: 1355 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1355 Author: shinsuke Date: 2008-11-17 06:57:30 +0900 (Mon, 17 Nov 2008) Log Message: ----------- updated build process for groupware guilde. Modified Paths: -------------- pal-portal/docs/build.xml pal-portal/docs/ja/groupware-guide/trunk/build.properties pal-portal/docs/ja/groupware-guide/trunk/build.xml pal-portal/docs/ja/groupware-guide/trunk/src/tex/groupware-guide.tex Added Paths: ----------- pal-portal/docs/ja/groupware-guide/trunk/src/images/ pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0001.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0002.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0003.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0004.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0005.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0006.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0007.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0009.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0010.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0011.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0012.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0013.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0014.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0015.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0017.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0018.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0019.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0020.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0021.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0022.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0023.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0024.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0025.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0026.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0027.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0028.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0029.png pal-portal/docs/ja/groupware-guide/trunk/src/images/PAL0030.png pal-portal/docs/ja/groupware-guide/trunk/src/lib/ pal-portal/docs/ja/groupware-guide/trunk/src/lib/ant-contrib-1.0b2.jar Removed Paths: ------------- pal-portal/docs/ja/groupware-guide/trunk/src/tex/images/ -------------- next part -------------- Modified: pal-portal/docs/build.xml =================================================================== --- pal-portal/docs/build.xml 2008-11-16 13:27:06 UTC (rev 1354) +++ pal-portal/docs/build.xml 2008-11-16 21:57:30 UTC (rev 1355) @@ -58,6 +58,14 @@ > + + + + @@ -97,6 +105,14 @@ > + + + + Modified: pal-portal/docs/ja/groupware-guide/trunk/build.properties =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/build.properties 2008-11-16 13:27:06 UTC (rev 1354) +++ pal-portal/docs/ja/groupware-guide/trunk/build.properties 2008-11-16 21:57:30 UTC (rev 1355) @@ -1,8 +1,11 @@ build.dir=${basedir}/target +build.img.dir=${basedir}/target/images src.tex.dir=${basedir}/src/tex +src.img.dir=${basedir}/src/images document.name=groupware-guide -document.version=1.0 +document.version=1.0-rev1 tex.cmd=platex dvi2ps.cmd=pdvips gs.cmd=gs +convert.cmd=convert Modified: pal-portal/docs/ja/groupware-guide/trunk/build.xml =================================================================== --- pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-16 13:27:06 UTC (rev 1354) +++ pal-portal/docs/ja/groupware-guide/trunk/build.xml 2008-11-16 21:57:30 UTC (rev 1355) @@ -1,45 +1,69 @@ - + + + + + + + + + + ${convert.cmd} ${image.name}.png ${image.name}.eps + + + + + + + + + + + + + + + + + - + - + - + - - - - - - Revision: 1356 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1356 Author: shinsuke Date: 2008-11-17 18:09:12 +0900 (Mon, 17 Nov 2008) Log Message: ----------- added day view. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp Added Paths: ----------- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-16 21:57:30 UTC (rev 1355) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-17 09:09:12 UTC (rev 1356) @@ -34,12 +34,18 @@ public List> calendarDayItems; - public List> weekDayItems; + public List> weekDayItems; - public List>>> eventInWeekItems; + public List>>> eventInWeekItems; - public List>> allDayEventInWeekItems; + public List>> allDayEventInWeekItems; + public List>> eventInDayItems; + + public List> allDayEventInDayItems; + + public int maxCols; + @ActionForm private CalendarForm calendarForm; @@ -85,15 +91,235 @@ } + private boolean compare(int year1, int month1, int date1, int year2, + int month2, int date2) { + if (year1 == year2 && month1 == month2 && date1 == date2) { + return true; + } + return false; + } + + private Map createEmptyEvent() { + Map emptyEvent = new HashMap(); + emptyEvent.put("startEvent", "true"); + emptyEvent.put("cols", "1"); + emptyEvent.put("rows", "1"); + emptyEvent.put("time", "none"); + return emptyEvent; + } + + private void putEventSchedule(EventSchedule eventSchedule, Time startTime, + Time endTime) { + if (startTime != null && endTime != null) { + int sIdx = DateUtil.getHours(startTime); + int eIdx = DateUtil.getHours(endTime) - 1; + if (DateUtil.getMinutes(endTime) != 0) { + eIdx++; + } + if (eIdx > 23) { + eIdx = 23; + } + for (int i = sIdx; i <= eIdx; i++) { + Map eventMap = createEvent(eventSchedule, true, + true); + if (i == sIdx) { + eventMap.put("startEvent", "true"); + int size = eIdx - sIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else if (startTime != null && endTime == null) { + int sIdx = DateUtil.getHours(startTime); + for (int i = sIdx; i <= 23; i++) { + Map eventMap = createEvent(eventSchedule, true, + false); + if (i == sIdx) { + eventMap.put("startEvent", "true"); + int size = 23 - sIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else if (startTime == null && endTime != null) { + int eIdx = DateUtil.getHours(endTime) - 1; + if (DateUtil.getMinutes(endTime) != 0) { + eIdx++; + } + if (eIdx > 23) { + eIdx = 23; + } + for (int i = 0; i <= eIdx; i++) { + Map eventMap = createEvent(eventSchedule, + false, true); + if (i == 0) { + eventMap.put("startEvent", "true"); + int size = eIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else { + // all day + allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); + } + + } + + private String displayPersonalDay() { + createSideCalendar(); + + Calendar cal = calendarForm.getTargetCalendar(); + Calendar nextCal = cal; + int tYear = CalendarUtil.getYear(cal); + int tMonth = CalendarUtil.getMonth(cal) + 1; + int tDate = CalendarUtil.getDate(cal); + int tDay = CalendarUtil.getDay(cal); + eventInDayItems = new ArrayList>>(); + allDayEventInDayItems = new ArrayList>(); + for (int i = 0; i < 24; i++) { + eventInDayItems.add(new ArrayList>()); + } + + String userId = request.getRemoteUser(); + List ssmList = singleScheduleService + .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal + .getTime()); + for (SingleScheduleMapping ssm : ssmList) { + SingleSchedule singleSchedule = ssm.getSingleSchedule(); + Date startDate = singleSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Date endDate = singleSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + + Time startTime = singleSchedule.getStartTime(); + Time endTime = singleSchedule.getEndTime(); + if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(singleSchedule, startTime, endTime); + } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(singleSchedule, startTime, null); + } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(singleSchedule, null, endTime); + } else { + // all day + allDayEventInDayItems.add(createEvent(singleSchedule, false, + false)); + } + } + + maxCols = 0; + for (List> events : eventInDayItems) { + if (!events.isEmpty() && events.size() > maxCols) { + maxCols = events.size(); + } + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty()) { + int idx = events.size() - 1; + Map lastEvent = events.get(idx); + for (int i = idx; i < maxCols - 1; i++) { + events.add(createEmptyEvent()); + } + } + } + + List rsmList = routineScheduleService + .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal + .getTime()); + for (RoutineScheduleMapping rsm : rsmList) { + RoutineSchedule routineSchedule = rsm.getRoutineSchedule(); + Date startDate = routineSchedule.getStartDate(); + // int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Time startTime = routineSchedule.getStartTime(); + Time endTime = routineSchedule.getEndTime(); + String type = routineSchedule.getType(); + if ("MTWTFSS".equals(type)) { + putEventSchedule(routineSchedule, startTime, endTime); + } else if ("MTWTF".equals(type)) { + if (tDay > 1 && tDay < 7) { + putEventSchedule(routineSchedule, startTime, endTime); + } + } else if ("MWF".equals(type)) { + if (tDay == 2 || tDay == 4 || tDay == 6) { + putEventSchedule(routineSchedule, startTime, endTime); + } + } else if ("TT".equals(type)) { + if (tDay == 3 || tDay == 5) { + putEventSchedule(routineSchedule, startTime, endTime); + } + } else if ("WEEKLY".equals(type)) { + if (tDay == DateUtil.getDay(startDate) + 1) { + putEventSchedule(routineSchedule, startTime, endTime); + } + } else if ("MONTHLY".equals(type)) { + if (tDate == sDate) { + putEventSchedule(routineSchedule, startTime, endTime); + } + } else if ("YEARLY".equals(type)) { + if (tDate == sDate && tMonth == sMonth) { + putEventSchedule(routineSchedule, startTime, endTime); + } + } + + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty() && events.size() > maxCols) { + maxCols = events.size(); + } + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty()) { + int idx = events.size() - 1; + Map lastEvent = events.get(idx); + int cols = maxCols - idx; + for (int i = idx; i < maxCols - 1; i++) { + events.add(createEmptyEvent()); + } + } else { + Map emptyEvent = new HashMap(); + emptyEvent.put("noEvent", "true"); + events.add(emptyEvent); + } + } + + return "personalday.jsp"; + } + private String displayPersonalWeek() { createSideCalendar(); List calendarList = new ArrayList(7); - eventInWeekItems = new ArrayList>>>(7); - allDayEventInWeekItems = new ArrayList>>(7); + eventInWeekItems = new ArrayList>>>(7); + allDayEventInWeekItems = new ArrayList>>(7); Calendar cal = calendarForm.getTargetCalendar(); calendarList.add(cal); - weekDayItems = new ArrayList>(); + weekDayItems = new ArrayList>(); Map indexMap = new HashMap(7); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n for (int i = 0; i < 7; i++) { @@ -103,7 +329,7 @@ int month = CalendarUtil.getMonth(cal) + 1; int date = CalendarUtil.getDate(cal); - Map map = new HashMap(); + Map map = new HashMap(); map.put("displayedDate", sdf.format(cal.getTime())); map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); map.put("date", String.valueOf(date)); @@ -114,14 +340,14 @@ indexMap.put(year + "-" + month + "-" + date, i); - List>> eventInDayItems = new ArrayList>>( + List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>()); } eventInWeekItems.add(eventInDayItems); - allDayEventInWeekItems.add(new ArrayList>()); + allDayEventInWeekItems.add(new ArrayList>()); } String userId = request.getRemoteUser(); @@ -242,7 +468,7 @@ createEvent(routineSchedule, false, false)); } } else if ("MTWTF".equals(type)) { - String d = weekDayItems.get(i).get("dayOfWeek"); + String d = (String) weekDayItems.get(i).get("dayOfWeek"); if (d != null) { int dayOfWeek = Integer.parseInt(d); if (dayOfWeek > 1 && dayOfWeek < 7) { @@ -261,7 +487,7 @@ } } } else if ("MWF".equals(type)) { - String d = weekDayItems.get(i).get("dayOfWeek"); + String d = (String) weekDayItems.get(i).get("dayOfWeek"); if (d != null) { int dayOfWeek = Integer.parseInt(d); if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { @@ -280,7 +506,7 @@ } } } else if ("TT".equals(type)) { - String d = weekDayItems.get(i).get("dayOfWeek"); + String d = (String) weekDayItems.get(i).get("dayOfWeek"); if (d != null) { int dayOfWeek = Integer.parseInt(d); if (dayOfWeek == 3 || dayOfWeek == 5) { @@ -299,7 +525,7 @@ } } } else if ("WEEKLY".equals(type)) { - String d = weekDayItems.get(i).get("dayOfWeek"); + String d = (String) weekDayItems.get(i).get("dayOfWeek"); if (d != null) { int dayOfWeek = Integer.parseInt(d); if (dayOfWeek == DateUtil.getDay(startDate) + 1) { @@ -318,7 +544,7 @@ } } } else if ("MONTHLY".equals(type)) { - String d = weekDayItems.get(i).get("date"); + String d = (String) weekDayItems.get(i).get("date"); if (d != null) { int date = Integer.parseInt(d); if (date == sDate) { @@ -337,8 +563,8 @@ } } } else if ("YEARLY".equals(type)) { - String d = weekDayItems.get(i).get("date"); - String m = weekDayItems.get(i).get("month"); + String d = (String) weekDayItems.get(i).get("date"); + String m = (String) weekDayItems.get(i).get("month"); if (d != null && m != null) { int date = Integer.parseInt(d); int month = Integer.parseInt(m); @@ -375,11 +601,11 @@ + calendarDay.get("month") + "-" + calendarDay.get("dayOfMonth"), count); calendarDay.put("allDayEventItems", - new ArrayList>()); - List>> eventInDayItems = new ArrayList>>( + new ArrayList>()); + List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>()); } calendarDay.put("eventItems", eventInDayItems); count++; @@ -437,33 +663,33 @@ if (i == sIndex.intValue() && i == eIndex.intValue()) { if (time == null) { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent(singleSchedule, false, false)); } else { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( createEvent(singleSchedule, true, true)); } } else if (i == sIndex.intValue() && i != eIndex.intValue()) { if (time == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent(singleSchedule, false, false)); } else { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( createEvent(singleSchedule, true, false)); } } else if (i != sIndex.intValue() && i == eIndex.intValue()) { if (singleSchedule.getEndTime() == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent(singleSchedule, false, false)); @@ -473,14 +699,14 @@ if (timeIndex < 0) { timeIndex = 0; } - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( createEvent(singleSchedule, false, true)); } } else if (i != sIndex.intValue() && i != eIndex.intValue()) { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent(singleSchedule, false, false)); @@ -522,13 +748,13 @@ if ("MTWTFSS".equals(type)) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( createEvent(routineSchedule, true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -541,7 +767,7 @@ if (dayOfWeek > 1 && dayOfWeek < 7) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex) .add( @@ -549,7 +775,7 @@ true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -564,7 +790,7 @@ if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex) .add( @@ -572,7 +798,7 @@ true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -587,7 +813,7 @@ if (dayOfWeek == 3 || dayOfWeek == 5) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex) .add( @@ -595,7 +821,7 @@ true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -610,7 +836,7 @@ if (dayOfWeek == DateUtil.getDay(startDate) + 1) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex) .add( @@ -618,7 +844,7 @@ true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -633,7 +859,7 @@ if (date == sDate) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex) .add( @@ -641,7 +867,7 @@ true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -658,7 +884,7 @@ if (date == sDate && month == sMonth) { if (time != null) { int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems + List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex) .add( @@ -666,7 +892,7 @@ true, true)); } else { // all day - List> allDayEventInMonthItems = (List>) calendarDayItems + List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( routineSchedule, false, false)); @@ -687,9 +913,9 @@ return displayPersonalWeek(); } - @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonaldate/{year}/{month}/{date}") + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalday/{year}/{month}/{date}") public String selectpersonalday() { - return displayPersonalWeek(); + return displayPersonalDay(); } @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalweek/{year}/{month}/{date}") @@ -738,6 +964,24 @@ return displayPersonalWeek(); } + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonaldayprevmonth/{year}/{month}/{date}") + public String movepersonaldayprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayPersonalDay(); + } + + @Execute(validator = false, input = "error.jsp") + public String movepersonaldaythismonth() { + calendarForm.changeCalendarToToday(); + return displayPersonalDay(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonaldaynextmonth/{year}/{month}/{date}") + public String movepersonaldaynextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayPersonalDay(); + } + private Map createCalendarDayItem(Calendar cal, boolean thisMonth) { Map map = new HashMap(); @@ -770,9 +1014,9 @@ return map; } - private Map createEvent(EventSchedule eventSchedule, + private Map createEvent(EventSchedule eventSchedule, boolean start, boolean end) { - Map map = new HashMap(); + Map map = new HashMap(); map.put("id", eventSchedule.getId().toString()); map.put("title", eventSchedule.getTitle()); if (start || end) { Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp 2008-11-17 09:09:12 UTC (rev 1356) @@ -0,0 +1,110 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • Day
    • +
    • +
    • Week
    • +
    • +
    • Month
    • +
    • +
    +
    + + +
    + +
    +
    + +
    +
    +< +Today +> +
    + + + + + + + + + + + + + + + + + + + + + +
    ${year}/${month}
    SMTWTFS
    +${day.dayOfMonth} +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TimeEvents
    All Day +
      + +
    • +${event.title} +${event.title} +
    • +
      +
    +
    ${s.index}:00  + +
      +
    • ${event.time}
      +${event.title} +${event.title} +
    • +
    +
    +
    +
    +
    + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp 2008-11-16 21:57:30 UTC (rev 1355) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/confirm.jsp 2008-11-17 09:09:12 UTC (rev 1356) @@ -122,7 +122,7 @@ "/> - "/> + "/> "/> Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp 2008-11-16 21:57:30 UTC (rev 1355) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/confirm.jsp 2008-11-17 09:09:12 UTC (rev 1356) @@ -109,7 +109,7 @@ "/> - "/> + "/> "/> From svnnotify ¡÷ sourceforge.jp Mon Nov 17 23:07:31 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 17 Nov 2008 23:07:31 +0900 Subject: [pal-cvs 3622] [1357] refactoring.. Message-ID: <1226930851.878517.19544.nullmailer@users.sourceforge.jp> Revision: 1357 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1357 Author: shinsuke Date: 2008-11-17 23:07:31 +0900 (Mon, 17 Nov 2008) Log Message: ----------- refactoring.. Modified Paths: -------------- scheduler/trunk/src/main/config/erd/scheduler.erd scheduler/trunk/src/main/config/sql/scheduler.ddl scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/dbflute.dicon scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp Added Paths: ----------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleContentDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleContentCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleContentNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/OnetimeSchedulePager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RepeatSchedulePager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/ Removed Paths: ------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/routineSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/routineSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/singleSchedule/ -------------- next part -------------- Modified: scheduler/trunk/src/main/config/erd/scheduler.erd =================================================================== --- scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-17 14:07:31 UTC (rev 1357) @@ -277,7 +277,7 @@ - 442 + 185 199 -1 -1 @@ -747,7 +747,7 @@ - 308 + 364 700 -1 -1 @@ -887,7 +887,7 @@ - FK_from_single_schedule_mapping_to_user + FK_from_schedule_mapping_to_user @@ -912,8 +912,8 @@ - single_schedule_mapping - Single Schedule Mapping + event_schedule_mapping + Event Schedule Mapping @@ -935,12 +935,7 @@ schedule_id Schedule ID - - BIGINT - Integer - true - -5 - + 20 true false @@ -952,7 +947,7 @@ - 839 + 557 40 -1 -1 @@ -960,13 +955,18 @@ - FK_from_single_schedule_mapping_to_schedule + FK_from_routine_schedule_mapping_to_schedule id ID - + + BIGINT + Integer + true + -5 + 20 true true @@ -981,8 +981,8 @@ - single_schedule - Single Schedule + event_schedule + Event Schedule @@ -1045,7 +1045,7 @@ End Date 10 - true + false false false @@ -1079,6 +1079,17 @@ 'F' + type + Type + + 10 + true + false + + false + + + created_time Created Time @@ -1108,9 +1119,9 @@ updated_time Updated Time - + 10 - false + true false false @@ -1121,7 +1132,7 @@ Updated By 255 - false + true false false @@ -1130,7 +1141,7 @@ deleted_time Deleted Time - + 10 false false @@ -1151,7 +1162,7 @@ versionNo - Version No + Version No. INTEGER Integer @@ -1168,7 +1179,7 @@ - 1104 + 695 199 -1 -1 @@ -1177,14 +1188,14 @@ - FK_from_content_to_single_schedule + FK_from_content_to_schedule id ID - + 20 true true @@ -1197,8 +1208,8 @@ - single_schedule_content - Single Schedule Content + event_schedule_content + Event Schedule Content @@ -1216,7 +1227,7 @@ - 1371 + 839 40 -1 -1 @@ -1290,381 +1301,6 @@ - - FK_from_routine_schedule_mapping_to_user - - - - - user_id - User ID - - 255 - true - false - - false - - - - - - - - routine_schedule_mapping - Routine Schedule Mapping - - - - id - ID - - 20 - true - true - - true - - - - schedule_id - Schedule ID - - 20 - true - false - - false - - - - - - - 557 - 40 - -1 - -1 - - - - - FK_from_routine_schedule_mapping_to_schedule - - - - id - ID - - 20 - true - true - - true - - - - - - - - - - routine_schedule - Routine Schedule - - - - - title - Title - - 100 - true - false - - false - - - - location - Location - - 100 - false - false - - false - - - - start_date - Start Date - - 10 - true - false - - false - - - - start_time - Start Time - - 10 - false - false - - false - - - - end_date - End Date - - 10 - false - false - - false - - - - end_time - End Time - - 10 - false - false - - false - - - - secret - Secret - - 1 - true - false - - false - 'F' - - - type - Type - - 10 - true - false - - false - - - - created_time - Created Time - - 10 - true - false - - false - - - - created_by - Created By - - 255 - true - false - - false - - - - updated_time - Updated Time - - 10 - true - false - - false - - - - updated_by - Updated By - - 255 - true - false - - false - - - - deleted_time - Deleted Time - - 10 - false - false - - false - - - - deleted_by - Deleted By - - 255 - false - false - - false - - - - versionNo - Version No. - - 10 - true - false - - false - - - - - - 836 - 199 - -1 - -1 - - - - - - FK_from_content_to_routine_schedule - - - - - id - ID - - 20 - true - true - - false - - - - - - - - routine_schedule_content - Routine Schedule Content - - - - - content - Content - - 1000 - false - false - - false - - - - - - 1121 - 40 - -1 - -1 - - - - - - - - - 2 - - - - - - - - - - - 2 - - - - - - - - - - - 2 - - - - - - - - - - 2 - - - - - - - - - - - - 2 - - - - - - - - - - - 2 - - - - - - @@ -1682,10 +1318,7 @@ - - - hsqldb Modified: scheduler/trunk/src/main/config/sql/scheduler.ddl =================================================================== --- scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,9 +1,6 @@ -DROP TABLE routine_schedule_content; -DROP TABLE single_schedule_content; -DROP TABLE routine_schedule_mapping; -DROP TABLE routine_schedule; -DROP TABLE single_schedule_mapping; -DROP TABLE single_schedule; +DROP TABLE event_schedule_content; +DROP TABLE event_schedule_mapping; +DROP TABLE event_schedule; DROP TABLE role_mapping; DROP TABLE group_mapping; DROP TABLE user_info; @@ -100,46 +97,14 @@ ); /********************************** -Table Name: Single Schedule +Table Name: Event Schedule **********************************/ -CREATE TABLE single_schedule( +CREATE TABLE event_schedule( id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, title VARCHAR(100) NOT NULL, location VARCHAR(100), start_date DATE NOT NULL, start_time TIME, - end_date DATE NOT NULL, - end_time TIME, - secret VARCHAR(1) DEFAULT 'F' NOT NULL, - created_time TIMESTAMP NOT NULL, - created_by VARCHAR(255) NOT NULL, - updated_time TIMESTAMP, - updated_by VARCHAR(255), - deleted_time TIMESTAMP, - deleted_by VARCHAR(255), - versionNo INTEGER NOT NULL -); - -/********************************** -Table Name: Single Schedule Mapping -**********************************/ -CREATE TABLE single_schedule_mapping( - id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, - schedule_id BIGINT(20) NOT NULL, - user_id VARCHAR(255) NOT NULL, - FOREIGN KEY (user_id) REFERENCES user_info (user_id), - FOREIGN KEY (schedule_id) REFERENCES single_schedule (id) -); - -/********************************** -Table Name: Routine Schedule -**********************************/ -CREATE TABLE routine_schedule( - id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, - title VARCHAR(100) NOT NULL, - location VARCHAR(100), - start_date DATE NOT NULL, - start_time TIME, end_date DATE, end_time TIME, secret VARCHAR(1) DEFAULT 'F' NOT NULL, @@ -154,31 +119,22 @@ ); /********************************** -Table Name: Routine Schedule Mapping +Table Name: Event Schedule Mapping **********************************/ -CREATE TABLE routine_schedule_mapping( +CREATE TABLE event_schedule_mapping( id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, schedule_id BIGINT(20) NOT NULL, user_id VARCHAR(255) NOT NULL, FOREIGN KEY (user_id) REFERENCES user_info (user_id), - FOREIGN KEY (schedule_id) REFERENCES routine_schedule (id) + FOREIGN KEY (schedule_id) REFERENCES event_schedule (id) ); /********************************** -Table Name: Single Schedule Content +Table Name: Event Schedule Content **********************************/ -CREATE TABLE single_schedule_content( +CREATE TABLE event_schedule_content( id BIGINT(20) NOT NULL PRIMARY KEY, content VARCHAR(1000), - FOREIGN KEY (id) REFERENCES single_schedule (id) + FOREIGN KEY (id) REFERENCES event_schedule (id) ); -/********************************** -Table Name: Routine Schedule Content -**********************************/ -CREATE TABLE routine_schedule_content( - id BIGINT(20) NOT NULL PRIMARY KEY, - content VARCHAR(1000), - FOREIGN KEY (id) REFERENCES routine_schedule (id) -); - Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -6,4 +6,6 @@ public static final String GROUP_AVAILABLE = "features.group"; + public static final String ONETIME_SCHEDULE = "ONETIME"; + } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,423 @@ +package jp.sf.pal.scheduler.action.admin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; +import jp.sf.pal.scheduler.form.admin.OnetimeScheduleForm; +import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class OnetimeScheduleAction implements Serializable { + + private static final long serialVersionUID = 8949370315196737389L; + + private static final Log log = LogFactory + .getLog(OnetimeScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private OnetimeScheduleForm onetimeScheduleForm; + + private OnetimeScheduleService onetimeScheduleService; + + private UserInfoService userInfoService; + + private OnetimeSchedulePager onetimeSchedulePager; + + private PagerDxo pagerDxo; + + private OnetimeScheduleDxo onetimeScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = onetimeScheduleService.getEventScheduleList( + onetimeSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + onetimeSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + onetimeScheduleForm.initialize(); + onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + onetimeScheduleService + .disable(Long.parseLong(onetimeScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.addedUsers != null) { + for (String userId : onetimeScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.removedUsers != null) { + for (String userId : onetimeScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( + Long.parseLong(onetimeScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { onetimeScheduleForm.id }); + } + onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + onetimeScheduleForm); + + onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = onetimeScheduleService.getEventSchedule(Long + .parseLong(onetimeScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + onetimeScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (onetimeScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(onetimeScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public OnetimeScheduleForm getOnetimeScheduleForm() { + return onetimeScheduleForm; + } + + public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { + this.onetimeScheduleForm = onetimeScheduleForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public OnetimeSchedulePager getOnetimeSchedulePager() { + return onetimeSchedulePager; + } + + public void setOnetimeSchedulePager( + OnetimeSchedulePager onetimeSchedulePager) { + this.onetimeSchedulePager = onetimeSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public OnetimeScheduleDxo getOnetimeScheduleDxo() { + return onetimeScheduleDxo; + } + + public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { + this.onetimeScheduleDxo = onetimeScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,422 @@ +package jp.sf.pal.scheduler.action.admin; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; +import jp.sf.pal.scheduler.form.admin.RepeatScheduleForm; +import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RepeatScheduleAction implements Serializable { + + private static final long serialVersionUID = 5257944698130191448L; + + private static final Log log = LogFactory + .getLog(RepeatScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private RepeatScheduleForm repeatScheduleForm; + + private RepeatScheduleService repeatScheduleService; + + private UserInfoService userInfoService; + + private RepeatSchedulePager repeatSchedulePager; + + private PagerDxo pagerDxo; + + private RepeatScheduleDxo repeatScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = repeatScheduleService.getEventScheduleList( + repeatSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + repeatSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + repeatScheduleForm.initialize(); + repeatScheduleForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + repeatScheduleService.disable( + Long.parseLong(repeatScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.addedUsers != null) { + for (String userId : repeatScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.removedUsers != null) { + for (String userId : repeatScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( + Long.parseLong(repeatScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { repeatScheduleForm.id }); + } + repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + repeatScheduleForm); + + repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = repeatScheduleService.getEventSchedule(Long + .parseLong(repeatScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + repeatScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (repeatScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(repeatScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RepeatScheduleForm getRepeatScheduleForm() { + return repeatScheduleForm; + } + + public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { + this.repeatScheduleForm = repeatScheduleForm; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public RepeatSchedulePager getRepeatSchedulePager() { + return repeatSchedulePager; + } + + public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { + this.repeatSchedulePager = repeatSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RepeatScheduleDxo getRepeatScheduleDxo() { + return repeatScheduleDxo; + } + + public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { + this.repeatScheduleDxo = repeatScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RoutineScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,424 +0,0 @@ -package jp.sf.pal.scheduler.action.admin; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.RoutineScheduleDxo; -import jp.sf.pal.scheduler.form.admin.RoutineScheduleForm; -import jp.sf.pal.scheduler.pager.RoutineSchedulePager; -import jp.sf.pal.scheduler.service.RoutineScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class RoutineScheduleAction implements Serializable { - - private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory - .getLog(RoutineScheduleAction.class); - - // for list - - public List routineScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private RoutineScheduleForm routineScheduleForm; - - private RoutineScheduleService routineScheduleService; - - private UserInfoService userInfoService; - - private RoutineSchedulePager routineSchedulePager; - - private PagerDxo pagerDxo; - - private RoutineScheduleDxo routineScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - routineScheduleItems = routineScheduleService.getRoutineScheduleList( - routineSchedulePager, null); - - // restore from pager - // routineScheduleForm.routineSchedulename = - // routineSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(routineScheduleForm, routineSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // routineSchedulePager.setGroupInfoname(routineScheduleForm. - // routineSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - routineSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") - public String confirmpage() { - if (routineScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - routineScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String createpage() { - // page navi - routineScheduleForm.initialize(); - routineScheduleForm.mode = CommonConstants.CREATE_MODE; - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (routineScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - routineScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - routineScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (routineScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - routineScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - routineScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - RoutineSchedule routineSchedule = createRoutineSchedule(); - routineScheduleService.store(routineSchedule); - SAStrutsUtil.addMessage(request, "success.create_routineSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_routineSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - RoutineSchedule routineSchedule = createRoutineSchedule(); - routineScheduleService.store(routineSchedule); - SAStrutsUtil.addMessage(request, "success.update_routineSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_routineSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - routineScheduleService - .disable(Long.parseLong(routineScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_routineSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_routineSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (routineScheduleForm.selectedUsers != null) { - for (String userId : routineScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (routineScheduleForm.addedUsers != null) { - for (String userId : routineScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - routineScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - routineScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (routineScheduleForm.selectedUsers != null) { - for (String userId : routineScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (routineScheduleForm.removedUsers != null) { - for (String userId : routineScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - routineScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - routineScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadRoutineSchedule() { - - RoutineSchedule routineSchedule = routineScheduleService - .getRoutineSchedule(Long.parseLong(routineScheduleForm.id), - null); - if (routineSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_routineSchedule", - new Object[] { routineScheduleForm.id }); - } - routineScheduleDxo.convertFromRoutineScheduleToForm(routineSchedule, - routineScheduleForm); - - routineScheduleForm.selectedUsers = routineSchedule.getSelectedUsers(); - } - - private RoutineSchedule createRoutineSchedule() { - String userId = request.getRemoteUser(); - RoutineSchedule routineSchedule; - if (routineScheduleForm.mode == CommonConstants.EDIT_MODE) { - routineSchedule = routineScheduleService.getRoutineSchedule(Long - .parseLong(routineScheduleForm.id), null); - routineSchedule.setUpdatedBy(userId); - } else { - routineSchedule = new RoutineSchedule(); - routineSchedule.setUpdatedBy(userId); - routineSchedule.setCreatedBy(userId); - } - routineScheduleDxo.convertFromFormToRoutineSchedule( - routineScheduleForm, routineSchedule); - - return routineSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList( - routineScheduleForm.selectedUsers, null); - } - - public List getSelectedUserItems() { - if (routineScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(routineScheduleForm.selectedUsers); - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public RoutineScheduleForm getRoutineScheduleForm() { - return routineScheduleForm; - } - - public void setRoutineScheduleForm(RoutineScheduleForm routineScheduleForm) { - this.routineScheduleForm = routineScheduleForm; - } - - public RoutineScheduleService getRoutineScheduleService() { - return routineScheduleService; - } - - public void setRoutineScheduleService( - RoutineScheduleService routineScheduleService) { - this.routineScheduleService = routineScheduleService; - } - - public RoutineSchedulePager getRoutineSchedulePager() { - return routineSchedulePager; - } - - public void setRoutineSchedulePager( - RoutineSchedulePager routineSchedulePager) { - this.routineSchedulePager = routineSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public RoutineScheduleDxo getRoutineScheduleDxo() { - return routineScheduleDxo; - } - - public void setRoutineScheduleDxo(RoutineScheduleDxo routineScheduleDxo) { - this.routineScheduleDxo = routineScheduleDxo; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/SingleScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,422 +0,0 @@ -package jp.sf.pal.scheduler.action.admin; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.SingleScheduleDxo; -import jp.sf.pal.scheduler.form.admin.SingleScheduleForm; -import jp.sf.pal.scheduler.pager.SingleSchedulePager; -import jp.sf.pal.scheduler.service.SingleScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class SingleScheduleAction implements Serializable { - - private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory - .getLog(SingleScheduleAction.class); - - // for list - - public List singleScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private SingleScheduleForm singleScheduleForm; - - private SingleScheduleService singleScheduleService; - - private UserInfoService userInfoService; - - private SingleSchedulePager singleSchedulePager; - - private PagerDxo pagerDxo; - - private SingleScheduleDxo singleScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - singleScheduleItems = singleScheduleService.getSingleScheduleList( - singleSchedulePager, null); - - // restore from pager - // singleScheduleForm.singleSchedulename = - // singleSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(singleScheduleForm, singleSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // singleSchedulePager.setGroupInfoname(singleScheduleForm. - // singleSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - singleSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") - public String confirmpage() { - if (singleScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - singleScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String createpage() { - // page navi - singleScheduleForm.initialize(); - singleScheduleForm.mode = CommonConstants.CREATE_MODE; - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (singleScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - singleScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - singleScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (singleScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - singleScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - singleScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - SingleSchedule singleSchedule = createSingleSchedule(); - singleScheduleService.store(singleSchedule); - SAStrutsUtil.addMessage(request, "success.create_singleSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_singleSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - SingleSchedule singleSchedule = createSingleSchedule(); - singleScheduleService.store(singleSchedule); - SAStrutsUtil.addMessage(request, "success.update_singleSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_singleSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - singleScheduleService.disable( - Long.parseLong(singleScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_singleSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_singleSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (singleScheduleForm.selectedUsers != null) { - for (String userId : singleScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (singleScheduleForm.addedUsers != null) { - for (String userId : singleScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - singleScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - singleScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (singleScheduleForm.selectedUsers != null) { - for (String userId : singleScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (singleScheduleForm.removedUsers != null) { - for (String userId : singleScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - singleScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - singleScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadSingleSchedule() { - - SingleSchedule singleSchedule = singleScheduleService - .getSingleSchedule(Long.parseLong(singleScheduleForm.id), null); - if (singleSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_singleSchedule", - new Object[] { singleScheduleForm.id }); - } - singleScheduleDxo.convertFromSingleScheduleToForm(singleSchedule, - singleScheduleForm); - - singleScheduleForm.selectedUsers = singleSchedule.getSelectedUsers(); - } - - private SingleSchedule createSingleSchedule() { - String userId = request.getRemoteUser(); - SingleSchedule singleSchedule; - if (singleScheduleForm.mode == CommonConstants.EDIT_MODE) { - singleSchedule = singleScheduleService.getSingleSchedule(Long - .parseLong(singleScheduleForm.id), null); - singleSchedule.setUpdatedBy(userId); - } else { - singleSchedule = new SingleSchedule(); - singleSchedule.setUpdatedBy(userId); - singleSchedule.setCreatedBy(userId); - } - singleScheduleDxo.convertFromFormToSingleSchedule(singleScheduleForm, - singleSchedule); - - return singleSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList( - singleScheduleForm.selectedUsers, null); - } - - public List getSelectedUserItems() { - if (singleScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(singleScheduleForm.selectedUsers); - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public SingleScheduleForm getSingleScheduleForm() { - return singleScheduleForm; - } - - public void setSingleScheduleForm(SingleScheduleForm singleScheduleForm) { - this.singleScheduleForm = singleScheduleForm; - } - - public SingleScheduleService getSingleScheduleService() { - return singleScheduleService; - } - - public void setSingleScheduleService( - SingleScheduleService singleScheduleService) { - this.singleScheduleService = singleScheduleService; - } - - public SingleSchedulePager getSingleSchedulePager() { - return singleSchedulePager; - } - - public void setSingleSchedulePager(SingleSchedulePager singleSchedulePager) { - this.singleSchedulePager = singleSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public SingleScheduleDxo getSingleScheduleDxo() { - return singleScheduleDxo; - } - - public void setSingleScheduleDxo(SingleScheduleDxo singleScheduleDxo) { - this.singleScheduleDxo = singleScheduleDxo; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -17,20 +17,17 @@ import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.DateUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; import jp.sf.pal.scheduler.form.user.CalendarForm; -import jp.sf.pal.scheduler.service.RoutineScheduleService; -import jp.sf.pal.scheduler.service.SingleScheduleService; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.RepeatScheduleService; import org.seasar.struts.annotation.ActionForm; import org.seasar.struts.annotation.Execute; public class CalendarAction implements Serializable { - private static final long serialVersionUID = 7273459452094199148L; + private static final long serialVersionUID = -222687807313390813L; public List> calendarDayItems; @@ -49,9 +46,9 @@ @ActionForm private CalendarForm calendarForm; - private SingleScheduleService singleScheduleService; + private OnetimeScheduleService onetimeScheduleService; - private RoutineScheduleService routineScheduleService; + private RepeatScheduleService repeatScheduleService; private transient HttpServletRequest request; @@ -194,35 +191,35 @@ } String userId = request.getRemoteUser(); - List ssmList = singleScheduleService + List ssmList = onetimeScheduleService .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal .getTime()); - for (SingleScheduleMapping ssm : ssmList) { - SingleSchedule singleSchedule = ssm.getSingleSchedule(); - Date startDate = singleSchedule.getStartDate(); + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); int sYear = DateUtil.getYear(startDate) + 1900; int sMonth = DateUtil.getMonth(startDate) + 1; int sDate = DateUtil.getDate(startDate); - Date endDate = singleSchedule.getEndDate(); + Date endDate = eventSchedule.getEndDate(); int eYear = DateUtil.getYear(endDate) + 1900; int eMonth = DateUtil.getMonth(endDate) + 1; int eDate = DateUtil.getDate(endDate); - Time startTime = singleSchedule.getStartTime(); - Time endTime = singleSchedule.getEndTime(); + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(singleSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(singleSchedule, startTime, null); + putEventSchedule(eventSchedule, startTime, null); } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(singleSchedule, null, endTime); + putEventSchedule(eventSchedule, null, endTime); } else { // all day - allDayEventInDayItems.add(createEvent(singleSchedule, false, + allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); } } @@ -244,44 +241,44 @@ } } - List rsmList = routineScheduleService + List rsmList = repeatScheduleService .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal .getTime()); - for (RoutineScheduleMapping rsm : rsmList) { - RoutineSchedule routineSchedule = rsm.getRoutineSchedule(); - Date startDate = routineSchedule.getStartDate(); + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); // int sYear = DateUtil.getYear(startDate) + 1900; int sMonth = DateUtil.getMonth(startDate) + 1; int sDate = DateUtil.getDate(startDate); - Time startTime = routineSchedule.getStartTime(); - Time endTime = routineSchedule.getEndTime(); - String type = routineSchedule.getType(); + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + String type = eventSchedule.getType(); if ("MTWTFSS".equals(type)) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } else if ("MTWTF".equals(type)) { if (tDay > 1 && tDay < 7) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } } else if ("MWF".equals(type)) { if (tDay == 2 || tDay == 4 || tDay == 6) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } } else if ("TT".equals(type)) { if (tDay == 3 || tDay == 5) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } } else if ("WEEKLY".equals(type)) { if (tDay == DateUtil.getDay(startDate) + 1) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } } else if ("MONTHLY".equals(type)) { if (tDate == sDate) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } } else if ("YEARLY".equals(type)) { if (tDate == sDate && tMonth == sMonth) { - putEventSchedule(routineSchedule, startTime, endTime); + putEventSchedule(eventSchedule, startTime, endTime); } } @@ -351,12 +348,12 @@ } String userId = request.getRemoteUser(); - List ssmList = singleScheduleService + List ssmList = onetimeScheduleService .getPersonalScheduleMappingList(userId, calendarList.get(0) .getTime(), calendarList.get(6).getTime()); - for (SingleScheduleMapping ssm : ssmList) { - SingleSchedule singleSchedule = ssm.getSingleSchedule(); - Date startDate = singleSchedule.getStartDate(); + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); int sYear = DateUtil.getYear(startDate) + 1900; int sMonth = DateUtil.getMonth(startDate) + 1; int sDate = DateUtil.getDate(startDate); @@ -365,7 +362,7 @@ sIndex = Integer.valueOf(-1); } - Date endDate = singleSchedule.getEndDate(); + Date endDate = eventSchedule.getEndDate(); int eYear = DateUtil.getYear(endDate) + 1900; int eMonth = DateUtil.getMonth(endDate) + 1; int eDate = DateUtil.getDate(endDate); @@ -383,54 +380,54 @@ endIdx = 6; } - Time time = singleSchedule.getStartTime(); + Time time = eventSchedule.getStartTime(); for (int i = startIdx; i < endIdx + 1; i++) { if (i == sIndex.intValue() && i == eIndex.intValue()) { if (time == null) { // all day allDayEventInWeekItems.get(i).add( - createEvent(singleSchedule, false, false)); + createEvent(eventSchedule, false, false)); } else { int timeIndex = DateUtil.getHours(time); eventInWeekItems.get(i).get(timeIndex).add( - createEvent(singleSchedule, true, true)); + createEvent(eventSchedule, true, true)); } } else if (i == sIndex.intValue() && i != eIndex.intValue()) { if (time == null) { allDayEventInWeekItems.get(i).add( - createEvent(singleSchedule, false, false)); + createEvent(eventSchedule, false, false)); } else { int timeIndex = DateUtil.getHours(time); eventInWeekItems.get(i).get(timeIndex).add( - createEvent(singleSchedule, true, false)); + createEvent(eventSchedule, true, false)); } } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (singleSchedule.getEndTime() == null) { + if (eventSchedule.getEndTime() == null) { allDayEventInWeekItems.get(i).add( - createEvent(singleSchedule, false, false)); + createEvent(eventSchedule, false, false)); } else { - int timeIndex = DateUtil.getHours(singleSchedule + int timeIndex = DateUtil.getHours(eventSchedule .getEndTime()) - 1; if (timeIndex < 0) { timeIndex = 0; } eventInWeekItems.get(i).get(timeIndex).add( - createEvent(singleSchedule, false, true)); + createEvent(eventSchedule, false, true)); } } else if (i != sIndex.intValue() && i != eIndex.intValue()) { // all day allDayEventInWeekItems.get(i).add( - createEvent(singleSchedule, false, false)); + createEvent(eventSchedule, false, false)); } } } - List rsmList = routineScheduleService + List rsmList = repeatScheduleService .getPersonalScheduleMappingList(userId, calendarList.get(0) .getTime(), calendarList.get(6).getTime()); - for (RoutineScheduleMapping rsm : rsmList) { - RoutineSchedule routineSchedule = rsm.getRoutineSchedule(); - Date startDate = routineSchedule.getStartDate(); + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); int sYear = DateUtil.getYear(startDate) + 1900; int sMonth = DateUtil.getMonth(startDate) + 1; int sDate = DateUtil.getDate(startDate); @@ -439,7 +436,7 @@ sIndex = Integer.valueOf(0); } - Date endDate = routineSchedule.getEndDate(); + Date endDate = eventSchedule.getEndDate(); Integer eIndex; if (endDate != null) { int eYear = DateUtil.getYear(endDate) + 1900; @@ -453,19 +450,19 @@ eIndex = Integer.valueOf(6); } - Time time = routineSchedule.getStartTime(); + Time time = eventSchedule.getStartTime(); for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = routineSchedule.getType(); + String type = eventSchedule.getType(); if ("MTWTFSS".equals(type)) { if (time != null) { int timeIndex = DateUtil.getHours(time); eventInWeekItems.get(i).get(timeIndex).add( - createEvent(routineSchedule, true, true)); + createEvent(eventSchedule, true, true)); } else { // all day allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, false)); + createEvent(eventSchedule, false, false)); } } else if ("MTWTF".equals(type)) { String d = (String) weekDayItems.get(i).get("dayOfWeek"); @@ -474,15 +471,14 @@ if (dayOfWeek > 1 && dayOfWeek < 7) { if (time != null) { int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day - allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, - false)); + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); } } } @@ -493,15 +489,14 @@ if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { if (time != null) { int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day - allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, - false)); + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); } } } @@ -512,15 +507,14 @@ if (dayOfWeek == 3 || dayOfWeek == 5) { if (time != null) { int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day - allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, - false)); + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); } } } @@ -531,15 +525,14 @@ if (dayOfWeek == DateUtil.getDay(startDate) + 1) { if (time != null) { int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day - allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, - false)); + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); } } } @@ -550,15 +543,14 @@ if (date == sDate) { if (time != null) { int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day - allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, - false)); + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); } } } @@ -571,15 +563,14 @@ if (date == sDate && month == sMonth) { if (time != null) { int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day - allDayEventInWeekItems.get(i).add( - createEvent(routineSchedule, false, - false)); + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); } } } @@ -626,12 +617,12 @@ + lastDate); String userId = request.getRemoteUser(); - List ssmList = singleScheduleService + List ssmList = onetimeScheduleService .getPersonalScheduleMappingList(userId, startCal.getTime(), endCal.getTime()); - for (SingleScheduleMapping ssm : ssmList) { - SingleSchedule singleSchedule = ssm.getSingleSchedule(); - Date startDate = singleSchedule.getStartDate(); + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); int sYear = DateUtil.getYear(startDate) + 1900; int sMonth = DateUtil.getMonth(startDate) + 1; int sDate = DateUtil.getDate(startDate); @@ -640,7 +631,7 @@ sIndex = Integer.valueOf(firstDateIndex - 1); } - Date endDate = singleSchedule.getEndDate(); + Date endDate = eventSchedule.getEndDate(); int eYear = DateUtil.getYear(endDate) + 1900; int eMonth = DateUtil.getMonth(endDate) + 1; int eDate = DateUtil.getDate(endDate); @@ -658,43 +649,43 @@ endIdx = endDateIndex; } - Time time = singleSchedule.getStartTime(); + Time time = eventSchedule.getStartTime(); for (int i = startIdx; i < endIdx + 1; i++) { if (i == sIndex.intValue() && i == eIndex.intValue()) { if (time == null) { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(singleSchedule, + allDayEventInMonthItems.add(createEvent(eventSchedule, false, false)); } else { int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( - createEvent(singleSchedule, true, true)); + createEvent(eventSchedule, true, true)); } } else if (i == sIndex.intValue() && i != eIndex.intValue()) { if (time == null) { List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(singleSchedule, + allDayEventInMonthItems.add(createEvent(eventSchedule, false, false)); } else { int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( - createEvent(singleSchedule, true, false)); + createEvent(eventSchedule, true, false)); } } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (singleSchedule.getEndTime() == null) { + if (eventSchedule.getEndTime() == null) { List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(singleSchedule, + allDayEventInMonthItems.add(createEvent(eventSchedule, false, false)); } else { - int timeIndex = DateUtil.getHours(singleSchedule + int timeIndex = DateUtil.getHours(eventSchedule .getEndTime()) - 1; if (timeIndex < 0) { timeIndex = 0; @@ -702,24 +693,24 @@ List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( - createEvent(singleSchedule, false, true)); + createEvent(eventSchedule, false, true)); } } else if (i != sIndex.intValue() && i != eIndex.intValue()) { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(singleSchedule, + allDayEventInMonthItems.add(createEvent(eventSchedule, false, false)); } } } - List rsmList = routineScheduleService + List rsmList = repeatScheduleService .getPersonalScheduleMappingList(userId, startCal.getTime(), endCal.getTime()); - for (RoutineScheduleMapping rsm : rsmList) { - RoutineSchedule routineSchedule = rsm.getRoutineSchedule(); - Date startDate = routineSchedule.getStartDate(); + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); int sYear = DateUtil.getYear(startDate) + 1900; int sMonth = DateUtil.getMonth(startDate) + 1; int sDate = DateUtil.getDate(startDate); @@ -728,7 +719,7 @@ sIndex = Integer.valueOf(firstDateIndex); } - Date endDate = routineSchedule.getEndDate(); + Date endDate = eventSchedule.getEndDate(); Integer eIndex; if (endDate != null) { int eYear = DateUtil.getYear(endDate) + 1900; @@ -742,22 +733,22 @@ eIndex = Integer.valueOf(endDateIndex); } - Time time = routineSchedule.getStartTime(); + Time time = eventSchedule.getStartTime(); for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = routineSchedule.getType(); + String type = eventSchedule.getType(); if ("MTWTFSS".equals(type)) { if (time != null) { int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); eventInMonthItems.get(timeIndex).add( - createEvent(routineSchedule, true, true)); + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); } } else if ("MTWTF".equals(type)) { String d = (String) calendarDayItems.get(i) @@ -769,16 +760,14 @@ int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + eventSchedule, false, false)); } } } @@ -792,16 +781,14 @@ int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + eventSchedule, false, false)); } } } @@ -815,16 +802,14 @@ int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + eventSchedule, false, false)); } } } @@ -838,16 +823,14 @@ int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + eventSchedule, false, false)); } } } @@ -861,16 +844,14 @@ int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + eventSchedule, false, false)); } } } @@ -886,16 +867,14 @@ int timeIndex = DateUtil.getHours(time); List>> eventInMonthItems = (List>>) calendarDayItems .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex) - .add( - createEvent(routineSchedule, - true, true)); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } else { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent( - routineSchedule, false, false)); + eventSchedule, false, false)); } } } @@ -1031,9 +1010,9 @@ } map.put("time", buf.toString()); } - if (eventSchedule instanceof RoutineSchedule) { + if (eventSchedule instanceof EventSchedule) { map.put("repeat", "true"); - map.put("type", ((RoutineSchedule) eventSchedule).getType()); + map.put("type", ((EventSchedule) eventSchedule).getType()); } else { map.put("repeat", "false"); } @@ -1049,29 +1028,30 @@ this.calendarForm = calendarForm; } - public HttpServletRequest getRequest() { - return request; + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; } - public void setRequest(HttpServletRequest request) { - this.request = request; + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; } - public SingleScheduleService getSingleScheduleService() { - return singleScheduleService; + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; } - public void setSingleScheduleService( - SingleScheduleService singleScheduleService) { - this.singleScheduleService = singleScheduleService; + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; } - public RoutineScheduleService getRoutineScheduleService() { - return routineScheduleService; + public HttpServletRequest getRequest() { + return request; } - public void setRoutineScheduleService( - RoutineScheduleService routineScheduleService) { - this.routineScheduleService = routineScheduleService; + public void setRequest(HttpServletRequest request) { + this.request = request; } + } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,447 @@ +package jp.sf.pal.scheduler.action.user; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; +import jp.sf.pal.scheduler.form.user.OnetimeScheduleForm; +import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class OnetimeScheduleAction implements Serializable { + + private static final long serialVersionUID = -492597057773820702L; + + private static final Log log = LogFactory + .getLog(OnetimeScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private OnetimeScheduleForm onetimeScheduleForm; + + private OnetimeScheduleService onetimeScheduleService; + + private UserInfoService userInfoService; + + private OnetimeSchedulePager onetimeSchedulePager; + + private PagerDxo pagerDxo; + + private OnetimeScheduleDxo onetimeScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = onetimeScheduleService.getEventScheduleList( + onetimeSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + onetimeSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + onetimeScheduleForm.returnType + "/" + + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month + + "/" + onetimeScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") + public String confirmpage() { + if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + onetimeScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") + public String createpage() { + // page navi + onetimeScheduleForm.initialize(); + onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + onetimeScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + onetimeScheduleForm.id = String.valueOf(eventSchedule.getId()); + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + onetimeScheduleService + .disable(Long.parseLong(onetimeScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + onetimeScheduleForm.returnType + "/" + + onetimeScheduleForm.year + "/" + + onetimeScheduleForm.month + "/" + + onetimeScheduleForm.date + "?redirect=true"; + // return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.addedUsers != null) { + for (String userId : onetimeScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.removedUsers != null) { + for (String userId : onetimeScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( + Long.parseLong(onetimeScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { onetimeScheduleForm.id }); + } + onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + onetimeScheduleForm); + + onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = onetimeScheduleService.getEventSchedule(Long + .parseLong(onetimeScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + onetimeScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (onetimeScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(onetimeScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public OnetimeScheduleForm getOnetimeScheduleForm() { + return onetimeScheduleForm; + } + + public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { + this.onetimeScheduleForm = onetimeScheduleForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public OnetimeSchedulePager getOnetimeSchedulePager() { + return onetimeSchedulePager; + } + + public void setOnetimeSchedulePager( + OnetimeSchedulePager onetimeSchedulePager) { + this.onetimeSchedulePager = onetimeSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public OnetimeScheduleDxo getOnetimeScheduleDxo() { + return onetimeScheduleDxo; + } + + public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { + this.onetimeScheduleDxo = onetimeScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,445 @@ +package jp.sf.pal.scheduler.action.user; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; +import jp.sf.pal.scheduler.form.user.RepeatScheduleForm; +import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RepeatScheduleAction implements Serializable { + + private static final long serialVersionUID = -2000704312247639038L; + + private static final Log log = LogFactory + .getLog(RepeatScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private RepeatScheduleForm repeatScheduleForm; + + private RepeatScheduleService repeatScheduleService; + + private UserInfoService userInfoService; + + private RepeatSchedulePager repeatSchedulePager; + + private PagerDxo pagerDxo; + + private RepeatScheduleDxo repeatScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = repeatScheduleService.getEventScheduleList( + repeatSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + repeatSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + repeatScheduleForm.returnType + "/" + + repeatScheduleForm.year + "/" + repeatScheduleForm.month + + "/" + repeatScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") + public String confirmpage() { + if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + repeatScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") + public String createpage() { + // page navi + repeatScheduleForm.initialize(); + repeatScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + repeatScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + repeatScheduleForm.id = String.valueOf(eventSchedule.getId()); + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + repeatScheduleService.disable( + Long.parseLong(repeatScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + repeatScheduleForm.returnType + "/" + + repeatScheduleForm.year + "/" + repeatScheduleForm.month + + "/" + repeatScheduleForm.date + "?redirect=true"; + // return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.addedUsers != null) { + for (String userId : repeatScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.removedUsers != null) { + for (String userId : repeatScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( + Long.parseLong(repeatScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { repeatScheduleForm.id }); + } + repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + repeatScheduleForm); + + repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = repeatScheduleService.getEventSchedule(Long + .parseLong(repeatScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList( + repeatScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (repeatScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(repeatScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RepeatScheduleForm getRepeatScheduleForm() { + return repeatScheduleForm; + } + + public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { + this.repeatScheduleForm = repeatScheduleForm; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public RepeatSchedulePager getRepeatSchedulePager() { + return repeatSchedulePager; + } + + public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { + this.repeatSchedulePager = repeatSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RepeatScheduleDxo getRepeatScheduleDxo() { + return repeatScheduleDxo; + } + + public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { + this.repeatScheduleDxo = repeatScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RoutineScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,448 +0,0 @@ -package jp.sf.pal.scheduler.action.user; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.RoutineScheduleDxo; -import jp.sf.pal.scheduler.form.user.RoutineScheduleForm; -import jp.sf.pal.scheduler.pager.RoutineSchedulePager; -import jp.sf.pal.scheduler.service.RoutineScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class RoutineScheduleAction implements Serializable { - - private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory - .getLog(RoutineScheduleAction.class); - - // for list - - public List routineScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private RoutineScheduleForm routineScheduleForm; - - private RoutineScheduleService routineScheduleService; - - private UserInfoService userInfoService; - - private RoutineSchedulePager routineSchedulePager; - - private PagerDxo pagerDxo; - - private RoutineScheduleDxo routineScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - routineScheduleItems = routineScheduleService.getRoutineScheduleList( - routineSchedulePager, null); - - // restore from pager - // routineScheduleForm.routineSchedulename = - // routineSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(routineScheduleForm, routineSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // routineSchedulePager.setGroupInfoname(routineScheduleForm. - // routineSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - routineSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + routineScheduleForm.returnType + "/" - + routineScheduleForm.year + "/" + routineScheduleForm.month - + "/" + routineScheduleForm.date + "?redirect=true"; - // return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") - public String confirmpage() { - if (routineScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - routineScheduleForm.mode }); - } - - String userId = request.getRemoteUser(); - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") - public String createpage() { - // page navi - routineScheduleForm.initialize(); - routineScheduleForm.mode = CommonConstants.CREATE_MODE; - - // set me to assigned - String userId = request.getRemoteUser(); - routineScheduleForm.selectedUsers = new String[] { userId }; - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (routineScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - routineScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - routineScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (routineScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - routineScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - routineScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - RoutineSchedule routineSchedule = createRoutineSchedule(); - routineScheduleService.store(routineSchedule); - SAStrutsUtil.addMessage(request, "success.create_routineSchedule"); - - routineScheduleForm.id = String.valueOf(routineSchedule.getId()); - routineScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_routineSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - RoutineSchedule routineSchedule = createRoutineSchedule(); - routineScheduleService.store(routineSchedule); - SAStrutsUtil.addMessage(request, "success.update_routineSchedule"); - - routineScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadRoutineSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_routineSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - routineScheduleService - .disable(Long.parseLong(routineScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_routineSchedule"); - - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + routineScheduleForm.returnType + "/" - + routineScheduleForm.year + "/" - + routineScheduleForm.month + "/" - + routineScheduleForm.date + "?redirect=true"; - // return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_routineSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (routineScheduleForm.selectedUsers != null) { - for (String userId : routineScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (routineScheduleForm.addedUsers != null) { - for (String userId : routineScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - routineScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - routineScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (routineScheduleForm.selectedUsers != null) { - for (String userId : routineScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (routineScheduleForm.removedUsers != null) { - for (String userId : routineScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - routineScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - routineScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadRoutineSchedule() { - - RoutineSchedule routineSchedule = routineScheduleService - .getRoutineSchedule(Long.parseLong(routineScheduleForm.id), - null); - if (routineSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_routineSchedule", - new Object[] { routineScheduleForm.id }); - } - routineScheduleDxo.convertFromRoutineScheduleToForm(routineSchedule, - routineScheduleForm); - - routineScheduleForm.selectedUsers = routineSchedule.getSelectedUsers(); - } - - private RoutineSchedule createRoutineSchedule() { - String userId = request.getRemoteUser(); - RoutineSchedule routineSchedule; - if (routineScheduleForm.mode == CommonConstants.EDIT_MODE) { - routineSchedule = routineScheduleService.getRoutineSchedule(Long - .parseLong(routineScheduleForm.id), null); - routineSchedule.setUpdatedBy(userId); - } else { - routineSchedule = new RoutineSchedule(); - routineSchedule.setUpdatedBy(userId); - routineSchedule.setCreatedBy(userId); - } - routineScheduleDxo.convertFromFormToRoutineSchedule( - routineScheduleForm, routineSchedule); - - return routineSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList( - routineScheduleForm.selectedUsers, null); - } - - public List getSelectedUserItems() { - if (routineScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(routineScheduleForm.selectedUsers); - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public RoutineScheduleForm getRoutineScheduleForm() { - return routineScheduleForm; - } - - public void setRoutineScheduleForm(RoutineScheduleForm routineScheduleForm) { - this.routineScheduleForm = routineScheduleForm; - } - - public RoutineScheduleService getRoutineScheduleService() { - return routineScheduleService; - } - - public void setRoutineScheduleService( - RoutineScheduleService routineScheduleService) { - this.routineScheduleService = routineScheduleService; - } - - public RoutineSchedulePager getRoutineSchedulePager() { - return routineSchedulePager; - } - - public void setRoutineSchedulePager( - RoutineSchedulePager routineSchedulePager) { - this.routineSchedulePager = routineSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public RoutineScheduleDxo getRoutineScheduleDxo() { - return routineScheduleDxo; - } - - public void setRoutineScheduleDxo(RoutineScheduleDxo routineScheduleDxo) { - this.routineScheduleDxo = routineScheduleDxo; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/SingleScheduleAction.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,445 +0,0 @@ -package jp.sf.pal.scheduler.action.user; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.SingleScheduleDxo; -import jp.sf.pal.scheduler.form.user.SingleScheduleForm; -import jp.sf.pal.scheduler.pager.SingleSchedulePager; -import jp.sf.pal.scheduler.service.SingleScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class SingleScheduleAction implements Serializable { - - private static final long serialVersionUID = 1L; - - private static final Log log = LogFactory - .getLog(SingleScheduleAction.class); - - // for list - - public List singleScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private SingleScheduleForm singleScheduleForm; - - private SingleScheduleService singleScheduleService; - - private UserInfoService userInfoService; - - private SingleSchedulePager singleSchedulePager; - - private PagerDxo pagerDxo; - - private SingleScheduleDxo singleScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - singleScheduleItems = singleScheduleService.getSingleScheduleList( - singleSchedulePager, null); - - // restore from pager - // singleScheduleForm.singleSchedulename = - // singleSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(singleScheduleForm, singleSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // singleSchedulePager.setGroupInfoname(singleScheduleForm. - // singleSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - singleSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + singleScheduleForm.returnType + "/" - + singleScheduleForm.year + "/" + singleScheduleForm.month - + "/" + singleScheduleForm.date + "?redirect=true"; - // return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") - public String confirmpage() { - if (singleScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - singleScheduleForm.mode }); - } - - String userId = request.getRemoteUser(); - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") - public String createpage() { - // page navi - singleScheduleForm.initialize(); - singleScheduleForm.mode = CommonConstants.CREATE_MODE; - - // set me to assigned - String userId = request.getRemoteUser(); - singleScheduleForm.selectedUsers = new String[] { userId }; - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (singleScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - singleScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - singleScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (singleScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - singleScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - singleScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - SingleSchedule singleSchedule = createSingleSchedule(); - singleScheduleService.store(singleSchedule); - SAStrutsUtil.addMessage(request, "success.create_singleSchedule"); - - singleScheduleForm.id = String.valueOf(singleSchedule.getId()); - singleScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_singleSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - SingleSchedule singleSchedule = createSingleSchedule(); - singleScheduleService.store(singleSchedule); - SAStrutsUtil.addMessage(request, "success.update_singleSchedule"); - - singleScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadSingleSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_singleSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - singleScheduleService.disable( - Long.parseLong(singleScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_singleSchedule"); - - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + singleScheduleForm.returnType + "/" - + singleScheduleForm.year + "/" + singleScheduleForm.month - + "/" + singleScheduleForm.date + "?redirect=true"; - // return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_singleSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (singleScheduleForm.selectedUsers != null) { - for (String userId : singleScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (singleScheduleForm.addedUsers != null) { - for (String userId : singleScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - singleScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - singleScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (singleScheduleForm.selectedUsers != null) { - for (String userId : singleScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (singleScheduleForm.removedUsers != null) { - for (String userId : singleScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - singleScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - singleScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadSingleSchedule() { - - SingleSchedule singleSchedule = singleScheduleService - .getSingleSchedule(Long.parseLong(singleScheduleForm.id), null); - if (singleSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_singleSchedule", - new Object[] { singleScheduleForm.id }); - } - singleScheduleDxo.convertFromSingleScheduleToForm(singleSchedule, - singleScheduleForm); - - singleScheduleForm.selectedUsers = singleSchedule.getSelectedUsers(); - } - - private SingleSchedule createSingleSchedule() { - String userId = request.getRemoteUser(); - SingleSchedule singleSchedule; - if (singleScheduleForm.mode == CommonConstants.EDIT_MODE) { - singleSchedule = singleScheduleService.getSingleSchedule(Long - .parseLong(singleScheduleForm.id), null); - singleSchedule.setUpdatedBy(userId); - } else { - singleSchedule = new SingleSchedule(); - singleSchedule.setUpdatedBy(userId); - singleSchedule.setCreatedBy(userId); - } - singleScheduleDxo.convertFromFormToSingleSchedule(singleScheduleForm, - singleSchedule); - - return singleSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList( - singleScheduleForm.selectedUsers, null); - } - - public List getSelectedUserItems() { - if (singleScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(singleScheduleForm.selectedUsers); - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public SingleScheduleForm getSingleScheduleForm() { - return singleScheduleForm; - } - - public void setSingleScheduleForm(SingleScheduleForm singleScheduleForm) { - this.singleScheduleForm = singleScheduleForm; - } - - public SingleScheduleService getSingleScheduleService() { - return singleScheduleService; - } - - public void setSingleScheduleService( - SingleScheduleService singleScheduleService) { - this.singleScheduleService = singleScheduleService; - } - - public SingleSchedulePager getSingleSchedulePager() { - return singleSchedulePager; - } - - public void setSingleSchedulePager(SingleSchedulePager singleSchedulePager) { - this.singleSchedulePager = singleSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public SingleScheduleDxo getSingleScheduleDxo() { - return singleScheduleDxo; - } - - public void setSingleScheduleDxo(SingleScheduleDxo singleScheduleDxo) { - this.singleScheduleDxo = singleScheduleDxo; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -27,6 +27,14 @@ static { Map tmpMap = new LinkedHashMap(); + tmpMap.put("EVENT_SCHEDULE", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleDbm"); + tmpMap + .put("EVENT_SCHEDULE_CONTENT", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleContentDbm"); + tmpMap + .put("EVENT_SCHEDULE_MAPPING", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleMappingDbm"); tmpMap.put("GROUP_INFO", "jp.sf.pal.scheduler.db.bsentity.dbmeta.GroupInfoDbm"); tmpMap.put("GROUP_MAPPING", @@ -35,22 +43,6 @@ "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoleInfoDbm"); tmpMap.put("ROLE_MAPPING", "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoleMappingDbm"); - tmpMap.put("ROUTINE_SCHEDULE", - "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleDbm"); - tmpMap - .put("ROUTINE_SCHEDULE_CONTENT", - "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleContentDbm"); - tmpMap - .put("ROUTINE_SCHEDULE_MAPPING", - "jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleMappingDbm"); - tmpMap.put("SINGLE_SCHEDULE", - "jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleDbm"); - tmpMap - .put("SINGLE_SCHEDULE_CONTENT", - "jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleContentDbm"); - tmpMap - .put("SINGLE_SCHEDULE_MAPPING", - "jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleMappingDbm"); tmpMap.put("USER_INFO", "jp.sf.pal.scheduler.db.bsentity.dbmeta.UserInfoDbm"); @@ -62,20 +54,15 @@ static { Map tmpMap = new LinkedHashMap(); + tmpMap.put("EVENT_SCHEDULE".toLowerCase(), "eventSchedule"); + tmpMap.put("EVENT_SCHEDULE_CONTENT".toLowerCase(), + "eventScheduleContent"); + tmpMap.put("EVENT_SCHEDULE_MAPPING".toLowerCase(), + "eventScheduleMapping"); tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); tmpMap.put("ROLE_MAPPING".toLowerCase(), "roleMapping"); - tmpMap.put("ROUTINE_SCHEDULE".toLowerCase(), "routineSchedule"); - tmpMap.put("ROUTINE_SCHEDULE_CONTENT".toLowerCase(), - "routineScheduleContent"); - tmpMap.put("ROUTINE_SCHEDULE_MAPPING".toLowerCase(), - "routineScheduleMapping"); - tmpMap.put("SINGLE_SCHEDULE".toLowerCase(), "singleSchedule"); - tmpMap.put("SINGLE_SCHEDULE_CONTENT".toLowerCase(), - "singleScheduleContent"); - tmpMap.put("SINGLE_SCHEDULE_MAPPING".toLowerCase(), - "singleScheduleMapping"); tmpMap.put("USER_INFO".toLowerCase(), "userInfo"); _tableDbNamePropertyNameKeyToLowerMap = Collections @@ -87,20 +74,15 @@ static { Map tmpMap = new LinkedHashMap(); + tmpMap.put("eventSchedule".toLowerCase(), "EVENT_SCHEDULE"); + tmpMap.put("eventScheduleContent".toLowerCase(), + "EVENT_SCHEDULE_CONTENT"); + tmpMap.put("eventScheduleMapping".toLowerCase(), + "EVENT_SCHEDULE_MAPPING"); tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); tmpMap.put("roleMapping".toLowerCase(), "ROLE_MAPPING"); - tmpMap.put("routineSchedule".toLowerCase(), "ROUTINE_SCHEDULE"); - tmpMap.put("routineScheduleContent".toLowerCase(), - "ROUTINE_SCHEDULE_CONTENT"); - tmpMap.put("routineScheduleMapping".toLowerCase(), - "ROUTINE_SCHEDULE_MAPPING"); - tmpMap.put("singleSchedule".toLowerCase(), "SINGLE_SCHEDULE"); - tmpMap.put("singleScheduleContent".toLowerCase(), - "SINGLE_SCHEDULE_CONTENT"); - tmpMap.put("singleScheduleMapping".toLowerCase(), - "SINGLE_SCHEDULE_MAPPING"); tmpMap.put("userInfo".toLowerCase(), "USER_INFO"); _tablePropertyNameDbNameKeyToLowerMap = Collections Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,839 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleDbm; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exdao.EventScheduleDao; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; + +/** + * The behavior of EVENT_SCHEDULE. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     EVENT_SCHEDULE_CONTENT, EVENT_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     eventScheduleContentAsOne
    + * 
    + * [referrer-property]
    + *     eventScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsEventScheduleBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "EVENT_SCHEDULE"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return EventScheduleDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public EventScheduleDbm getMyDBMeta() { + return EventScheduleDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public EventScheduleDao getMyDao() { + return _dao; + } + + public void setMyDao(EventScheduleDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public EventSchedule newMyEntity() { + return new EventSchedule(); + } + + public EventScheduleCB newMyConditionBean() { + return new EventScheduleCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of EventSchedule. (NotNull) + * @return The selected count. + */ + public int selectCount(EventScheduleCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of EventSchedule. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public EventSchedule selectEntity(final EventScheduleCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + EventScheduleCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of EventSchedule. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public EventSchedule selectEntityWithDeletedCheck(final EventScheduleCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + EventScheduleCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public EventSchedule selectByPKValueWithDeletedCheck(Long id) { + EventSchedule entity = new EventSchedule(); + entity.setId(id); + final EventScheduleCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of EventSchedule. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(EventScheduleCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of EventSchedule. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final EventScheduleCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of EventSchedule. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + EventScheduleCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of eventScheduleMappingList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
    +     * cb.query().setScheduleId_InScope(pkList);
    +     * cb.query().addOrderBy_ScheduleId_Asc();
    +     * 
    + * + * @param eventScheduleList The entity list of eventSchedule. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadEventScheduleMappingList( + List eventScheduleList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("eventScheduleList", + eventScheduleList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (eventScheduleList.isEmpty()) { + return; + } + loadEventScheduleMappingList( + eventScheduleList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param eventScheduleList The entity list of eventSchedule. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadEventScheduleMappingList( + List eventScheduleList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("eventScheduleList", + eventScheduleList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (eventScheduleList.isEmpty()) { + return; + } + final EventScheduleMappingBhv referrerBhv = xgetBSFLR().select( + EventScheduleMappingBhv.class); + helpLoadReferrerInternally( + eventScheduleList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue( + EventSchedule entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + EventSchedule entity, + List referrerList) { + entity.setEventScheduleMappingList(referrerList); + } + + public EventScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + EventScheduleMappingCB cb, List pkList) { + cb.query().setScheduleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + EventScheduleMappingCB cb) { + cb.query().addOrderBy_ScheduleId_Asc(); + } + + public List callbackReferrer_selectList( + EventScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + EventScheduleMapping entity) { + return entity.getScheduleId(); + } + + public void callbackReferrer_setForeignEntity( + EventScheduleMapping referrerEntity, + EventSchedule baseEntity) { + referrerEntity.setEventSchedule(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of referrer-as-one table 'EventScheduleContent'. + * + * @param eventScheduleList The list of eventSchedule. (NotNull) + * @return The list of referrer-as-one table. (NotNull) + */ + public List pulloutEventScheduleContentAsOne( + List eventScheduleList) { + return helpPulloutInternally( + eventScheduleList, + new InternalPulloutCallback() { + public EventScheduleContent callbackGetForeignEntity( + EventSchedule entity) { + return entity.getEventScheduleContentAsOne(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param eventSchedule The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(EventSchedule eventSchedule) { + assertEntityNotNull(eventSchedule); + delegateInsert(eventSchedule); + } + + @Override + protected void doCreate(Entity eventSchedule) { + insert((EventSchedule) eventSchedule); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param eventSchedule The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final EventSchedule eventSchedule) { + helpUpdateInternally(eventSchedule, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(EventSchedule entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((EventSchedule) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param eventSchedule The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final EventSchedule eventSchedule) { + helpUpdateNonstrictInternally(eventSchedule, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + EventSchedule entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((EventSchedule) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param eventSchedule The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final EventSchedule eventSchedule) { + helpInsertOrUpdateInternally( + eventSchedule, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(EventSchedule entity) { + insert(entity); + } + + public void callbackUpdate(EventSchedule entity) { + update(entity); + } + + public EventScheduleCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(EventScheduleCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity eventSchedule) { + insertOrUpdate((EventSchedule) eventSchedule); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param eventSchedule The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(EventSchedule eventSchedule) { + helpInsertOrUpdateInternally(eventSchedule, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(EventSchedule entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(EventSchedule entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((EventSchedule) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param eventSchedule The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(EventSchedule eventSchedule) { + helpDeleteInternally(eventSchedule, + new InternalDeleteCallback() { + public int callbackDelegateDelete(EventSchedule entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity eventSchedule) { + delete((EventSchedule) eventSchedule); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param eventSchedule Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(EventSchedule eventSchedule) { + helpDeleteNonstrictInternally(eventSchedule, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + EventSchedule entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param eventSchedule Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(EventSchedule eventSchedule) { + helpDeleteNonstrictIgnoreDeletedInternally( + eventSchedule, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + EventSchedule entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List eventScheduleList) { + assertObjectNotNull("eventScheduleList", eventScheduleList); + return delegateInsertList(eventScheduleList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param eventScheduleList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List eventScheduleList) { + assertObjectNotNull("eventScheduleList", eventScheduleList); + return delegateUpdateList(eventScheduleList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List eventScheduleList) { + assertObjectNotNull("eventScheduleList", eventScheduleList); + return delegateUpdateListNonstrict(eventScheduleList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List eventScheduleList) { + assertObjectNotNull("eventScheduleList", eventScheduleList); + return delegateDeleteList(eventScheduleList); + } + + /** + * Batch delete the list non-strictly.
    This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param eventScheduleList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List eventScheduleList) { + assertObjectNotNull("eventScheduleList", eventScheduleList); + return delegateDeleteListNonstrict(eventScheduleList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param eventSchedule Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(EventSchedule eventSchedule, EventScheduleCB cb) { + assertObjectNotNull("eventSchedule", eventSchedule); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(eventSchedule); + filterEntityOfUpdate(eventSchedule); + assertEntityOfUpdate(eventSchedule); + return getMyDao().updateByQuery(cb, eventSchedule); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(EventScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(EventScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(EventScheduleCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(EventSchedule e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(EventSchedule e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(EventSchedule e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(EventSchedule e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(EventSchedule e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("eventScheduleList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("eventScheduleList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("eventScheduleList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("eventScheduleList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("eventScheduleList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected EventSchedule downcast(Entity entity) { + return helpDowncastInternally(entity, EventSchedule.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleContentBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,600 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleContentDbm; +import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; +import jp.sf.pal.scheduler.db.exdao.EventScheduleContentDao; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; + +/** + * The behavior of EVENT_SCHEDULE_CONTENT. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     EVENT_SCHEDULE
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     eventSchedule
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsEventScheduleContentBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleContentDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return EventScheduleContentDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public EventScheduleContentDbm getMyDBMeta() { + return EventScheduleContentDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public EventScheduleContentDao getMyDao() { + return _dao; + } + + public void setMyDao(EventScheduleContentDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public EventScheduleContent newMyEntity() { + return new EventScheduleContent(); + } + + public EventScheduleContentCB newMyConditionBean() { + return new EventScheduleContentCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of EventScheduleContent. (NotNull) + * @return The selected count. + */ + public int selectCount(EventScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of EventScheduleContent. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public EventScheduleContent selectEntity(final EventScheduleContentCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + EventScheduleContentCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of EventScheduleContent. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public EventScheduleContent selectEntityWithDeletedCheck( + final EventScheduleContentCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + EventScheduleContentCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public EventScheduleContent selectByPKValueWithDeletedCheck(Long id) { + EventScheduleContent entity = new EventScheduleContent(); + entity.setId(id); + final EventScheduleContentCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of EventScheduleContent. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + EventScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of EventScheduleContent. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final EventScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of EventScheduleContent. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + EventScheduleContentCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'EventSchedule'. + * + * @param eventScheduleContentList The list of eventScheduleContent. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutEventSchedule( + List eventScheduleContentList) { + return helpPulloutInternally( + eventScheduleContentList, + new InternalPulloutCallback() { + public EventSchedule callbackGetForeignEntity( + EventScheduleContent entity) { + return entity.getEventSchedule(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param eventScheduleContent The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(EventScheduleContent eventScheduleContent) { + assertEntityNotNull(eventScheduleContent); + delegateInsert(eventScheduleContent); + } + + @Override + protected void doCreate(Entity eventScheduleContent) { + insert((EventScheduleContent) eventScheduleContent); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param eventScheduleContent The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final EventScheduleContent eventScheduleContent) { + helpUpdateInternally(eventScheduleContent, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + EventScheduleContent entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((EventScheduleContent) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((EventScheduleContent) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param eventScheduleContent The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final EventScheduleContent eventScheduleContent) { + helpInsertOrUpdateInternally( + eventScheduleContent, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(EventScheduleContent entity) { + insert(entity); + } + + public void callbackUpdate(EventScheduleContent entity) { + update(entity); + } + + public EventScheduleContentCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(EventScheduleContentCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity eventScheduleContent) { + insertOrUpdate((EventScheduleContent) eventScheduleContent); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((EventScheduleContent) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param eventScheduleContent The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(EventScheduleContent eventScheduleContent) { + helpDeleteInternally(eventScheduleContent, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + EventScheduleContent entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity eventScheduleContent) { + delete((EventScheduleContent) eventScheduleContent); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleContentList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List eventScheduleContentList) { + assertObjectNotNull("eventScheduleContentList", + eventScheduleContentList); + return delegateInsertList(eventScheduleContentList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param eventScheduleContentList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List eventScheduleContentList) { + assertObjectNotNull("eventScheduleContentList", + eventScheduleContentList); + return delegateUpdateList(eventScheduleContentList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleContentList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List eventScheduleContentList) { + assertObjectNotNull("eventScheduleContentList", + eventScheduleContentList); + return delegateDeleteList(eventScheduleContentList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param eventScheduleContent Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(EventScheduleContent eventScheduleContent, + EventScheduleContentCB cb) { + assertObjectNotNull("eventScheduleContent", eventScheduleContent); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(eventScheduleContent); + filterEntityOfUpdate(eventScheduleContent); + assertEntityOfUpdate(eventScheduleContent); + return getMyDao().updateByQuery(cb, eventScheduleContent); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(EventScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(EventScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + EventScheduleContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(EventScheduleContent e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(EventScheduleContent e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(EventScheduleContent e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("eventScheduleContentList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("eventScheduleContentList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("eventScheduleContentList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected EventScheduleContent downcast(Entity entity) { + return helpDowncastInternally(entity, EventScheduleContent.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleMappingBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,619 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleMappingDbm; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.exdao.EventScheduleMappingDao; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The behavior of EVENT_SCHEDULE_MAPPING. + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, SCHEDULE_ID, USER_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     EVENT_SCHEDULE, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     eventSchedule, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsEventScheduleMappingBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return EventScheduleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public EventScheduleMappingDbm getMyDBMeta() { + return EventScheduleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public EventScheduleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(EventScheduleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public EventScheduleMapping newMyEntity() { + return new EventScheduleMapping(); + } + + public EventScheduleMappingCB newMyConditionBean() { + return new EventScheduleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of EventScheduleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(EventScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of EventScheduleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public EventScheduleMapping selectEntity(final EventScheduleMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + EventScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of EventScheduleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public EventScheduleMapping selectEntityWithDeletedCheck( + final EventScheduleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + EventScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public EventScheduleMapping selectByPKValueWithDeletedCheck(Long id) { + EventScheduleMapping entity = new EventScheduleMapping(); + entity.setId(id); + final EventScheduleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of EventScheduleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + EventScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of EventScheduleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final EventScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of EventScheduleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + EventScheduleMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'EventSchedule'. + * + * @param eventScheduleMappingList The list of eventScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutEventSchedule( + List eventScheduleMappingList) { + return helpPulloutInternally( + eventScheduleMappingList, + new InternalPulloutCallback() { + public EventSchedule callbackGetForeignEntity( + EventScheduleMapping entity) { + return entity.getEventSchedule(); + } + }); + } + + /** + * Pull out the list of foreign table 'UserInfo'. + * + * @param eventScheduleMappingList The list of eventScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutUserInfo( + List eventScheduleMappingList) { + return helpPulloutInternally(eventScheduleMappingList, + new InternalPulloutCallback() { + public UserInfo callbackGetForeignEntity( + EventScheduleMapping entity) { + return entity.getUserInfo(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param eventScheduleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(EventScheduleMapping eventScheduleMapping) { + assertEntityNotNull(eventScheduleMapping); + delegateInsert(eventScheduleMapping); + } + + @Override + protected void doCreate(Entity eventScheduleMapping) { + insert((EventScheduleMapping) eventScheduleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param eventScheduleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final EventScheduleMapping eventScheduleMapping) { + helpUpdateInternally(eventScheduleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + EventScheduleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((EventScheduleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((EventScheduleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param eventScheduleMapping The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final EventScheduleMapping eventScheduleMapping) { + helpInsertOrUpdateInternally( + eventScheduleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(EventScheduleMapping entity) { + insert(entity); + } + + public void callbackUpdate(EventScheduleMapping entity) { + update(entity); + } + + public EventScheduleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(EventScheduleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity eventScheduleMapping) { + insertOrUpdate((EventScheduleMapping) eventScheduleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((EventScheduleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param eventScheduleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(EventScheduleMapping eventScheduleMapping) { + helpDeleteInternally(eventScheduleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + EventScheduleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity eventScheduleMapping) { + delete((EventScheduleMapping) eventScheduleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List eventScheduleMappingList) { + assertObjectNotNull("eventScheduleMappingList", + eventScheduleMappingList); + return delegateInsertList(eventScheduleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
    This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param eventScheduleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List eventScheduleMappingList) { + assertObjectNotNull("eventScheduleMappingList", + eventScheduleMappingList); + return delegateUpdateList(eventScheduleMappingList); + } + + /** + * Batch delete the list.
    This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param eventScheduleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List eventScheduleMappingList) { + assertObjectNotNull("eventScheduleMappingList", + eventScheduleMappingList); + return delegateDeleteList(eventScheduleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param eventScheduleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(EventScheduleMapping eventScheduleMapping, + EventScheduleMappingCB cb) { + assertObjectNotNull("eventScheduleMapping", eventScheduleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(eventScheduleMapping); + filterEntityOfUpdate(eventScheduleMapping); + assertEntityOfUpdate(eventScheduleMapping); + return getMyDao().updateByQuery(cb, eventScheduleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(EventScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(EventScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + EventScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(EventScheduleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(EventScheduleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(EventScheduleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("eventScheduleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("eventScheduleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("eventScheduleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected EventScheduleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, EventScheduleMapping.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,841 +0,0 @@ -package jp.sf.pal.scheduler.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.scheduler.db.allcommon.DaoReadable; -import jp.sf.pal.scheduler.db.allcommon.DaoWritable; -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleDbm; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv; -import jp.sf.pal.scheduler.db.exdao.RoutineScheduleDao; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; - -/** - * The behavior of ROUTINE_SCHEDULE. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     
    - * 
    - * [referrer-table]
    - *     ROUTINE_SCHEDULE_CONTENT, ROUTINE_SCHEDULE_MAPPING
    - * 
    - * [foreign-property]
    - *     routineScheduleContentAsOne
    - * 
    - * [referrer-property]
    - *     routineScheduleMappingList
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ -public abstract class BsRoutineScheduleBhv extends - jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "ROUTINE_SCHEDULE"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return RoutineScheduleDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public RoutineScheduleDbm getMyDBMeta() { - return RoutineScheduleDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public RoutineScheduleDao getMyDao() { - return _dao; - } - - public void setMyDao(RoutineScheduleDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public RoutineSchedule newMyEntity() { - return new RoutineSchedule(); - } - - public RoutineScheduleCB newMyConditionBean() { - return new RoutineScheduleCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of RoutineSchedule. (NotNull) - * @return The selected count. - */ - public int selectCount(RoutineScheduleCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of RoutineSchedule. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public RoutineSchedule selectEntity(final RoutineScheduleCB cb) { - return helpSelectEntityInternally( - cb, - new InternalSelectEntityCallback() { - public List callbackSelectList( - RoutineScheduleCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of RoutineSchedule. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public RoutineSchedule selectEntityWithDeletedCheck( - final RoutineScheduleCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList( - RoutineScheduleCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public RoutineSchedule selectByPKValueWithDeletedCheck(Long id) { - RoutineSchedule entity = new RoutineSchedule(); - entity.setId(id); - final RoutineScheduleCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result bean. - * - * @param cb The condition-bean of RoutineSchedule. (NotNull) - * @return The result bean of selected list. (NotNull) - */ - public ListResultBean selectList(RoutineScheduleCB cb) { - assertConditionBeanNotNull(cb); - return new ResultBeanBuilder(getTableDbName()) - .buildListResultBean(cb, delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result bean. - * - * @param cb The condition-bean of RoutineSchedule. (NotNull) - * @return The result bean of selected page. (NotNull) - */ - public PagingResultBean selectPage( - final RoutineScheduleCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of RoutineSchedule. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - RoutineScheduleCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - /** - * Load referrer of routineScheduleMappingList with the setupper for - * condition-bean of referrer.
    About internal policy, the value of - * primary key(and others too) is treated as case-insensitive.
    The - * condition-bean that the setupper provides have settings before you touch - * it. It is as follows: - * - *
    -     * cb.query().setScheduleId_InScope(pkList);
    -     * cb.query().addOrderBy_ScheduleId_Asc();
    -     * 
    - * - * @param routineScheduleList The entity list of routineSchedule. (NotNull) - * @param conditionBeanSetupper The instance of referrer condition-bean - * setupper for registering referrer condition. (NotNull) - */ - public void loadRoutineScheduleMappingList( - List routineScheduleList, - ConditionBeanSetupper conditionBeanSetupper) { - assertObjectNotNull("routineScheduleList", - routineScheduleList); - assertObjectNotNull("conditionBeanSetupper", - conditionBeanSetupper); - if (routineScheduleList.isEmpty()) { - return; - } - loadRoutineScheduleMappingList( - routineScheduleList, - new LoadReferrerOption( - conditionBeanSetupper)); - } - - /** - * {Refer to overload method that has an argument of condition-bean - * setupper.} - * - * @param routineScheduleList The entity list of routineSchedule. (NotNull) - * @param loadReferrerOption The option of load-referrer. (NotNull) - */ - public void loadRoutineScheduleMappingList( - List routineScheduleList, - LoadReferrerOption loadReferrerOption) { - assertObjectNotNull("routineScheduleList", - routineScheduleList); - assertObjectNotNull( - "loadReferrerOption", - loadReferrerOption); - if (routineScheduleList.isEmpty()) { - return; - } - final RoutineScheduleMappingBhv referrerBhv = xgetBSFLR().select( - RoutineScheduleMappingBhv.class); - helpLoadReferrerInternally( - routineScheduleList, - loadReferrerOption, - new InternalLoadReferrerCallback() { - public Long callbackBase_getPrimaryKeyValue( - RoutineSchedule entity) { - return entity.getId(); - } - - public void callbackBase_setReferrerList( - RoutineSchedule entity, - List referrerList) { - entity.setRoutineScheduleMappingList(referrerList); - } - - public RoutineScheduleMappingCB callbackReferrer_newMyConditionBean() { - return referrerBhv.newMyConditionBean(); - } - - public void callbackReferrer_queryForeignKeyInScope( - RoutineScheduleMappingCB cb, List pkList) { - cb.query().setScheduleId_InScope(pkList); - } - - public void callbackReferrer_queryAddOrderByForeignKeyAsc( - RoutineScheduleMappingCB cb) { - cb.query().addOrderBy_ScheduleId_Asc(); - } - - public List callbackReferrer_selectList( - RoutineScheduleMappingCB cb) { - return referrerBhv.selectList(cb); - } - - public Long callbackReferrer_getForeignKeyValue( - RoutineScheduleMapping entity) { - return entity.getScheduleId(); - } - - public void callbackReferrer_setForeignEntity( - RoutineScheduleMapping referrerEntity, - RoutineSchedule baseEntity) { - referrerEntity.setRoutineSchedule(baseEntity); - } - }); - } - - //========================================================================== - // ========= - // Pullout Foreign - // =============== - /** - * Pull out the list of referrer-as-one table 'RoutineScheduleContent'. - * - * @param routineScheduleList The list of routineSchedule. (NotNull) - * @return The list of referrer-as-one table. (NotNull) - */ - public List pulloutRoutineScheduleContentAsOne( - List routineScheduleList) { - return helpPulloutInternally( - routineScheduleList, - new InternalPulloutCallback() { - public RoutineScheduleContent callbackGetForeignEntity( - RoutineSchedule entity) { - return entity.getRoutineScheduleContentAsOne(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param routineSchedule The entity of insert target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(RoutineSchedule routineSchedule) { - assertEntityNotNull(routineSchedule); - delegateInsert(routineSchedule); - } - - @Override - protected void doCreate(Entity routineSchedule) { - insert((RoutineSchedule) routineSchedule); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param routineSchedule The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final RoutineSchedule routineSchedule) { - helpUpdateInternally(routineSchedule, - new InternalUpdateCallback() { - public int callbackDelegateUpdate(RoutineSchedule entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((RoutineSchedule) entity); - } - - /** - * Update the entity non-strictly modified-only. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param routineSchedule The entity of update target. (NotNull) - * {PrimaryKeyRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void updateNonstrict(final RoutineSchedule routineSchedule) { - helpUpdateNonstrictInternally(routineSchedule, - new InternalUpdateNonstrictCallback() { - public int callbackDelegateUpdateNonstrict( - RoutineSchedule entity) { - return delegateUpdateNonstrict(entity); - } - }); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - updateNonstrict((RoutineSchedule) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param routineSchedule The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate(final RoutineSchedule routineSchedule) { - helpInsertOrUpdateInternally( - routineSchedule, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(RoutineSchedule entity) { - insert(entity); - } - - public void callbackUpdate(RoutineSchedule entity) { - update(entity); - } - - public RoutineScheduleCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(RoutineScheduleCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity routineSchedule) { - insertOrUpdate((RoutineSchedule) routineSchedule); - } - - /** - * Insert or update the entity non-strictly modified-only. - * {NonConcurrencyControl(when update)} - * - * @param routineSchedule The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdateNonstrict(RoutineSchedule routineSchedule) { - helpInsertOrUpdateInternally(routineSchedule, - new InternalInsertOrUpdateNonstrictCallback() { - public void callbackInsert(RoutineSchedule entity) { - insert(entity); - } - - public void callbackUpdateNonstrict(RoutineSchedule entity) { - updateNonstrict(entity); - } - }); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdateNonstrict((RoutineSchedule) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param routineSchedule The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(RoutineSchedule routineSchedule) { - helpDeleteInternally(routineSchedule, - new InternalDeleteCallback() { - public int callbackDelegateDelete(RoutineSchedule entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity routineSchedule) { - delete((RoutineSchedule) routineSchedule); - } - - /** - * Delete the entity non-strictly. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param routineSchedule Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrict(RoutineSchedule routineSchedule) { - helpDeleteNonstrictInternally(routineSchedule, - new InternalDeleteNonstrictCallback() { - public int callbackDelegateDeleteNonstrict( - RoutineSchedule entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - /** - * Delete the entity non-strictly ignoring deleted. - * {UpdateCountZeroException, NonConcurrencyControl} - * - * @param routineSchedule Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrictIgnoreDeleted(RoutineSchedule routineSchedule) { - helpDeleteNonstrictIgnoreDeletedInternally( - routineSchedule, - new InternalDeleteNonstrictIgnoreDeletedCallback() { - public int callbackDelegateDeleteNonstrict( - RoutineSchedule entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert(List routineScheduleList) { - assertObjectNotNull("routineScheduleList", routineScheduleList); - return delegateInsertList(routineScheduleList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param routineScheduleList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchUpdate(List routineScheduleList) { - assertObjectNotNull("routineScheduleList", routineScheduleList); - return delegateUpdateList(routineScheduleList); - } - - /** - * Batch update the list non-strictly. All columns are update target. {NOT - * modified only}
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdateNonstrict(List routineScheduleList) { - assertObjectNotNull("routineScheduleList", routineScheduleList); - return delegateUpdateListNonstrict(routineScheduleList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchDelete(List routineScheduleList) { - assertObjectNotNull("routineScheduleList", routineScheduleList); - return delegateDeleteList(routineScheduleList); - } - - /** - * Batch delete the list non-strictly.
    This method use 'Batch Update' - * of java.sql.PreparedStatement. - * - * @param routineScheduleList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDeleteNonstrict(List routineScheduleList) { - assertObjectNotNull("routineScheduleList", routineScheduleList); - return delegateDeleteListNonstrict(routineScheduleList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param routineSchedule Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(RoutineSchedule routineSchedule, RoutineScheduleCB cb) { - assertObjectNotNull("routineSchedule", routineSchedule); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(routineSchedule); - filterEntityOfUpdate(routineSchedule); - assertEntityOfUpdate(routineSchedule); - return getMyDao().updateByQuery(cb, routineSchedule); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(RoutineScheduleCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateSelectCount(RoutineScheduleCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList(RoutineScheduleCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(RoutineSchedule e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(RoutineSchedule e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateUpdateNonstrict(RoutineSchedule e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateNonstrictModifiedOnly(e); - } - - protected int delegateDelete(RoutineSchedule e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int delegateDeleteNonstrict(RoutineSchedule e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().deleteNonstrict(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("routineScheduleList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("routineScheduleList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateUpdateListNonstrict(List ls) { - assertObjectNotNull("routineScheduleList", ls); - return getMyDao().updateListNonstrict( - helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("routineScheduleList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - protected int[] delegateDeleteListNonstrict(List ls) { - assertObjectNotNull("routineScheduleList", ls); - return getMyDao().deleteListNonstrict( - helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return !(downcast(entity).getVersionno() + "").equals("null");// For - // primitive - // type - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected RoutineSchedule downcast(Entity entity) { - return helpDowncastInternally(entity, RoutineSchedule.class); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleContentBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,604 +0,0 @@ -package jp.sf.pal.scheduler.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.scheduler.db.allcommon.DaoReadable; -import jp.sf.pal.scheduler.db.allcommon.DaoWritable; -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleContentDbm; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; -import jp.sf.pal.scheduler.db.exdao.RoutineScheduleContentDao; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; - -/** - * The behavior of ROUTINE_SCHEDULE_CONTENT. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, CONTENT
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     ROUTINE_SCHEDULE
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     routineSchedule
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ -public abstract class BsRoutineScheduleContentBhv extends - jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleContentDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return RoutineScheduleContentDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public RoutineScheduleContentDbm getMyDBMeta() { - return RoutineScheduleContentDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public RoutineScheduleContentDao getMyDao() { - return _dao; - } - - public void setMyDao(RoutineScheduleContentDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public RoutineScheduleContent newMyEntity() { - return new RoutineScheduleContent(); - } - - public RoutineScheduleContentCB newMyConditionBean() { - return new RoutineScheduleContentCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of RoutineScheduleContent. (NotNull) - * @return The selected count. - */ - public int selectCount(RoutineScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of RoutineScheduleContent. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public RoutineScheduleContent selectEntity(final RoutineScheduleContentCB cb) { - return helpSelectEntityInternally( - cb, - new InternalSelectEntityCallback() { - public List callbackSelectList( - RoutineScheduleContentCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of RoutineScheduleContent. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public RoutineScheduleContent selectEntityWithDeletedCheck( - final RoutineScheduleContentCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList( - RoutineScheduleContentCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public RoutineScheduleContent selectByPKValueWithDeletedCheck(Long id) { - RoutineScheduleContent entity = new RoutineScheduleContent(); - entity.setId(id); - final RoutineScheduleContentCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result bean. - * - * @param cb The condition-bean of RoutineScheduleContent. (NotNull) - * @return The result bean of selected list. (NotNull) - */ - public ListResultBean selectList( - RoutineScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return new ResultBeanBuilder(getTableDbName()) - .buildListResultBean(cb, delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result bean. - * - * @param cb The condition-bean of RoutineScheduleContent. (NotNull) - * @return The result bean of selected page. (NotNull) - */ - public PagingResultBean selectPage( - final RoutineScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of RoutineScheduleContent. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - RoutineScheduleContentCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - - //========================================================================== - // ========= - // Pullout Foreign - // =============== - /** - * Pull out the list of foreign table 'RoutineSchedule'. - * - * @param routineScheduleContentList The list of routineScheduleContent. - * (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutRoutineSchedule( - List routineScheduleContentList) { - return helpPulloutInternally( - routineScheduleContentList, - new InternalPulloutCallback() { - public RoutineSchedule callbackGetForeignEntity( - RoutineScheduleContent entity) { - return entity.getRoutineSchedule(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param routineScheduleContent The entity of insert target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(RoutineScheduleContent routineScheduleContent) { - assertEntityNotNull(routineScheduleContent); - delegateInsert(routineScheduleContent); - } - - @Override - protected void doCreate(Entity routineScheduleContent) { - insert((RoutineScheduleContent) routineScheduleContent); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param routineScheduleContent The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final RoutineScheduleContent routineScheduleContent) { - helpUpdateInternally(routineScheduleContent, - new InternalUpdateCallback() { - public int callbackDelegateUpdate( - RoutineScheduleContent entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((RoutineScheduleContent) entity); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - update((RoutineScheduleContent) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param routineScheduleContent The entity of insert or update target. - * (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate( - final RoutineScheduleContent routineScheduleContent) { - helpInsertOrUpdateInternally( - routineScheduleContent, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(RoutineScheduleContent entity) { - insert(entity); - } - - public void callbackUpdate(RoutineScheduleContent entity) { - update(entity); - } - - public RoutineScheduleContentCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(RoutineScheduleContentCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity routineScheduleContent) { - insertOrUpdate((RoutineScheduleContent) routineScheduleContent); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdate((RoutineScheduleContent) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param routineScheduleContent The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(RoutineScheduleContent routineScheduleContent) { - helpDeleteInternally(routineScheduleContent, - new InternalDeleteCallback() { - public int callbackDelegateDelete( - RoutineScheduleContent entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity routineScheduleContent) { - delete((RoutineScheduleContent) routineScheduleContent); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleContentList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert( - List routineScheduleContentList) { - assertObjectNotNull("routineScheduleContentList", - routineScheduleContentList); - return delegateInsertList(routineScheduleContentList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param routineScheduleContentList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdate( - List routineScheduleContentList) { - assertObjectNotNull("routineScheduleContentList", - routineScheduleContentList); - return delegateUpdateList(routineScheduleContentList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleContentList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDelete( - List routineScheduleContentList) { - assertObjectNotNull("routineScheduleContentList", - routineScheduleContentList); - return delegateDeleteList(routineScheduleContentList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param routineScheduleContent Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(RoutineScheduleContent routineScheduleContent, - RoutineScheduleContentCB cb) { - assertObjectNotNull("routineScheduleContent", routineScheduleContent); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(routineScheduleContent); - filterEntityOfUpdate(routineScheduleContent); - assertEntityOfUpdate(routineScheduleContent); - return getMyDao().updateByQuery(cb, routineScheduleContent); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(RoutineScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateSelectCount(RoutineScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList( - RoutineScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(RoutineScheduleContent e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(RoutineScheduleContent e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateDelete(RoutineScheduleContent e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("routineScheduleContentList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("routineScheduleContentList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("routineScheduleContentList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return false; - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected RoutineScheduleContent downcast(Entity entity) { - return helpDowncastInternally(entity, RoutineScheduleContent.class); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsRoutineScheduleMappingBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,624 +0,0 @@ -package jp.sf.pal.scheduler.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.scheduler.db.allcommon.DaoReadable; -import jp.sf.pal.scheduler.db.allcommon.DaoWritable; -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.bsentity.dbmeta.RoutineScheduleMappingDbm; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.exdao.RoutineScheduleMappingDao; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; -import jp.sf.pal.scheduler.db.exentity.UserInfo; - -/** - * The behavior of ROUTINE_SCHEDULE_MAPPING. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, SCHEDULE_ID, USER_ID
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     ROUTINE_SCHEDULE, USER_INFO
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     routineSchedule, userInfo
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ -public abstract class BsRoutineScheduleMappingBhv extends - jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleMappingDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return RoutineScheduleMappingDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public RoutineScheduleMappingDbm getMyDBMeta() { - return RoutineScheduleMappingDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public RoutineScheduleMappingDao getMyDao() { - return _dao; - } - - public void setMyDao(RoutineScheduleMappingDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public RoutineScheduleMapping newMyEntity() { - return new RoutineScheduleMapping(); - } - - public RoutineScheduleMappingCB newMyConditionBean() { - return new RoutineScheduleMappingCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) - * @return The selected count. - */ - public int selectCount(RoutineScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public RoutineScheduleMapping selectEntity(final RoutineScheduleMappingCB cb) { - return helpSelectEntityInternally( - cb, - new InternalSelectEntityCallback() { - public List callbackSelectList( - RoutineScheduleMappingCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public RoutineScheduleMapping selectEntityWithDeletedCheck( - final RoutineScheduleMappingCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList( - RoutineScheduleMappingCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public RoutineScheduleMapping selectByPKValueWithDeletedCheck(Long id) { - RoutineScheduleMapping entity = new RoutineScheduleMapping(); - entity.setId(id); - final RoutineScheduleMappingCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result bean. - * - * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) - * @return The result bean of selected list. (NotNull) - */ - public ListResultBean selectList( - RoutineScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return new ResultBeanBuilder(getTableDbName()) - .buildListResultBean(cb, delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result bean. - * - * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) - * @return The result bean of selected page. (NotNull) - */ - public PagingResultBean selectPage( - final RoutineScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of RoutineScheduleMapping. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - RoutineScheduleMappingCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - - //========================================================================== - // ========= - // Pullout Foreign - // =============== - /** - * Pull out the list of foreign table 'RoutineSchedule'. - * - * @param routineScheduleMappingList The list of routineScheduleMapping. - * (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutRoutineSchedule( - List routineScheduleMappingList) { - return helpPulloutInternally( - routineScheduleMappingList, - new InternalPulloutCallback() { - public RoutineSchedule callbackGetForeignEntity( - RoutineScheduleMapping entity) { - return entity.getRoutineSchedule(); - } - }); - } - - /** - * Pull out the list of foreign table 'UserInfo'. - * - * @param routineScheduleMappingList The list of routineScheduleMapping. - * (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutUserInfo( - List routineScheduleMappingList) { - return helpPulloutInternally( - routineScheduleMappingList, - new InternalPulloutCallback() { - public UserInfo callbackGetForeignEntity( - RoutineScheduleMapping entity) { - return entity.getUserInfo(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param routineScheduleMapping The entity of insert target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(RoutineScheduleMapping routineScheduleMapping) { - assertEntityNotNull(routineScheduleMapping); - delegateInsert(routineScheduleMapping); - } - - @Override - protected void doCreate(Entity routineScheduleMapping) { - insert((RoutineScheduleMapping) routineScheduleMapping); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param routineScheduleMapping The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final RoutineScheduleMapping routineScheduleMapping) { - helpUpdateInternally(routineScheduleMapping, - new InternalUpdateCallback() { - public int callbackDelegateUpdate( - RoutineScheduleMapping entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((RoutineScheduleMapping) entity); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - update((RoutineScheduleMapping) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param routineScheduleMapping The entity of insert or update target. - * (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate( - final RoutineScheduleMapping routineScheduleMapping) { - helpInsertOrUpdateInternally( - routineScheduleMapping, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(RoutineScheduleMapping entity) { - insert(entity); - } - - public void callbackUpdate(RoutineScheduleMapping entity) { - update(entity); - } - - public RoutineScheduleMappingCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(RoutineScheduleMappingCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity routineScheduleMapping) { - insertOrUpdate((RoutineScheduleMapping) routineScheduleMapping); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdate((RoutineScheduleMapping) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param routineScheduleMapping The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(RoutineScheduleMapping routineScheduleMapping) { - helpDeleteInternally(routineScheduleMapping, - new InternalDeleteCallback() { - public int callbackDelegateDelete( - RoutineScheduleMapping entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity routineScheduleMapping) { - delete((RoutineScheduleMapping) routineScheduleMapping); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleMappingList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert( - List routineScheduleMappingList) { - assertObjectNotNull("routineScheduleMappingList", - routineScheduleMappingList); - return delegateInsertList(routineScheduleMappingList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param routineScheduleMappingList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdate( - List routineScheduleMappingList) { - assertObjectNotNull("routineScheduleMappingList", - routineScheduleMappingList); - return delegateUpdateList(routineScheduleMappingList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param routineScheduleMappingList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDelete( - List routineScheduleMappingList) { - assertObjectNotNull("routineScheduleMappingList", - routineScheduleMappingList); - return delegateDeleteList(routineScheduleMappingList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param routineScheduleMapping Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(RoutineScheduleMapping routineScheduleMapping, - RoutineScheduleMappingCB cb) { - assertObjectNotNull("routineScheduleMapping", routineScheduleMapping); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(routineScheduleMapping); - filterEntityOfUpdate(routineScheduleMapping); - assertEntityOfUpdate(routineScheduleMapping); - return getMyDao().updateByQuery(cb, routineScheduleMapping); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(RoutineScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateSelectCount(RoutineScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList( - RoutineScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(RoutineScheduleMapping e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(RoutineScheduleMapping e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateDelete(RoutineScheduleMapping e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("routineScheduleMappingList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("routineScheduleMappingList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("routineScheduleMappingList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return false; - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected RoutineScheduleMapping downcast(Entity entity) { - return helpDowncastInternally(entity, RoutineScheduleMapping.class); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,839 +0,0 @@ -package jp.sf.pal.scheduler.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.scheduler.db.allcommon.DaoReadable; -import jp.sf.pal.scheduler.db.allcommon.DaoWritable; -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleDbm; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv; -import jp.sf.pal.scheduler.db.exdao.SingleScheduleDao; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; - -/** - * The behavior of SINGLE_SCHEDULE. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     
    - * 
    - * [referrer-table]
    - *     SINGLE_SCHEDULE_CONTENT, SINGLE_SCHEDULE_MAPPING
    - * 
    - * [foreign-property]
    - *     singleScheduleContentAsOne
    - * 
    - * [referrer-property]
    - *     singleScheduleMappingList
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ -public abstract class BsSingleScheduleBhv extends - jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "SINGLE_SCHEDULE"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return SingleScheduleDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public SingleScheduleDbm getMyDBMeta() { - return SingleScheduleDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public SingleScheduleDao getMyDao() { - return _dao; - } - - public void setMyDao(SingleScheduleDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public SingleSchedule newMyEntity() { - return new SingleSchedule(); - } - - public SingleScheduleCB newMyConditionBean() { - return new SingleScheduleCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of SingleSchedule. (NotNull) - * @return The selected count. - */ - public int selectCount(SingleScheduleCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of SingleSchedule. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public SingleSchedule selectEntity(final SingleScheduleCB cb) { - return helpSelectEntityInternally( - cb, - new InternalSelectEntityCallback() { - public List callbackSelectList( - SingleScheduleCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of SingleSchedule. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public SingleSchedule selectEntityWithDeletedCheck(final SingleScheduleCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList( - SingleScheduleCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public SingleSchedule selectByPKValueWithDeletedCheck(Long id) { - SingleSchedule entity = new SingleSchedule(); - entity.setId(id); - final SingleScheduleCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result bean. - * - * @param cb The condition-bean of SingleSchedule. (NotNull) - * @return The result bean of selected list. (NotNull) - */ - public ListResultBean selectList(SingleScheduleCB cb) { - assertConditionBeanNotNull(cb); - return new ResultBeanBuilder(getTableDbName()) - .buildListResultBean(cb, delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result bean. - * - * @param cb The condition-bean of SingleSchedule. (NotNull) - * @return The result bean of selected page. (NotNull) - */ - public PagingResultBean selectPage(final SingleScheduleCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of SingleSchedule. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - SingleScheduleCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - /** - * Load referrer of singleScheduleMappingList with the setupper for - * condition-bean of referrer.
    About internal policy, the value of - * primary key(and others too) is treated as case-insensitive.
    The - * condition-bean that the setupper provides have settings before you touch - * it. It is as follows: - * - *
    -     * cb.query().setScheduleId_InScope(pkList);
    -     * cb.query().addOrderBy_ScheduleId_Asc();
    -     * 
    - * - * @param singleScheduleList The entity list of singleSchedule. (NotNull) - * @param conditionBeanSetupper The instance of referrer condition-bean - * setupper for registering referrer condition. (NotNull) - */ - public void loadSingleScheduleMappingList( - List singleScheduleList, - ConditionBeanSetupper conditionBeanSetupper) { - assertObjectNotNull("singleScheduleList", - singleScheduleList); - assertObjectNotNull("conditionBeanSetupper", - conditionBeanSetupper); - if (singleScheduleList.isEmpty()) { - return; - } - loadSingleScheduleMappingList( - singleScheduleList, - new LoadReferrerOption( - conditionBeanSetupper)); - } - - /** - * {Refer to overload method that has an argument of condition-bean - * setupper.} - * - * @param singleScheduleList The entity list of singleSchedule. (NotNull) - * @param loadReferrerOption The option of load-referrer. (NotNull) - */ - public void loadSingleScheduleMappingList( - List singleScheduleList, - LoadReferrerOption loadReferrerOption) { - assertObjectNotNull("singleScheduleList", - singleScheduleList); - assertObjectNotNull( - "loadReferrerOption", - loadReferrerOption); - if (singleScheduleList.isEmpty()) { - return; - } - final SingleScheduleMappingBhv referrerBhv = xgetBSFLR().select( - SingleScheduleMappingBhv.class); - helpLoadReferrerInternally( - singleScheduleList, - loadReferrerOption, - new InternalLoadReferrerCallback() { - public Long callbackBase_getPrimaryKeyValue( - SingleSchedule entity) { - return entity.getId(); - } - - public void callbackBase_setReferrerList( - SingleSchedule entity, - List referrerList) { - entity.setSingleScheduleMappingList(referrerList); - } - - public SingleScheduleMappingCB callbackReferrer_newMyConditionBean() { - return referrerBhv.newMyConditionBean(); - } - - public void callbackReferrer_queryForeignKeyInScope( - SingleScheduleMappingCB cb, List pkList) { - cb.query().setScheduleId_InScope(pkList); - } - - public void callbackReferrer_queryAddOrderByForeignKeyAsc( - SingleScheduleMappingCB cb) { - cb.query().addOrderBy_ScheduleId_Asc(); - } - - public List callbackReferrer_selectList( - SingleScheduleMappingCB cb) { - return referrerBhv.selectList(cb); - } - - public Long callbackReferrer_getForeignKeyValue( - SingleScheduleMapping entity) { - return entity.getScheduleId(); - } - - public void callbackReferrer_setForeignEntity( - SingleScheduleMapping referrerEntity, - SingleSchedule baseEntity) { - referrerEntity.setSingleSchedule(baseEntity); - } - }); - } - - //========================================================================== - // ========= - // Pullout Foreign - // =============== - /** - * Pull out the list of referrer-as-one table 'SingleScheduleContent'. - * - * @param singleScheduleList The list of singleSchedule. (NotNull) - * @return The list of referrer-as-one table. (NotNull) - */ - public List pulloutSingleScheduleContentAsOne( - List singleScheduleList) { - return helpPulloutInternally( - singleScheduleList, - new InternalPulloutCallback() { - public SingleScheduleContent callbackGetForeignEntity( - SingleSchedule entity) { - return entity.getSingleScheduleContentAsOne(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param singleSchedule The entity of insert target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(SingleSchedule singleSchedule) { - assertEntityNotNull(singleSchedule); - delegateInsert(singleSchedule); - } - - @Override - protected void doCreate(Entity singleSchedule) { - insert((SingleSchedule) singleSchedule); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param singleSchedule The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final SingleSchedule singleSchedule) { - helpUpdateInternally(singleSchedule, - new InternalUpdateCallback() { - public int callbackDelegateUpdate(SingleSchedule entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((SingleSchedule) entity); - } - - /** - * Update the entity non-strictly modified-only. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param singleSchedule The entity of update target. (NotNull) - * {PrimaryKeyRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void updateNonstrict(final SingleSchedule singleSchedule) { - helpUpdateNonstrictInternally(singleSchedule, - new InternalUpdateNonstrictCallback() { - public int callbackDelegateUpdateNonstrict( - SingleSchedule entity) { - return delegateUpdateNonstrict(entity); - } - }); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - updateNonstrict((SingleSchedule) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param singleSchedule The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate(final SingleSchedule singleSchedule) { - helpInsertOrUpdateInternally( - singleSchedule, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(SingleSchedule entity) { - insert(entity); - } - - public void callbackUpdate(SingleSchedule entity) { - update(entity); - } - - public SingleScheduleCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(SingleScheduleCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity singleSchedule) { - insertOrUpdate((SingleSchedule) singleSchedule); - } - - /** - * Insert or update the entity non-strictly modified-only. - * {NonConcurrencyControl(when update)} - * - * @param singleSchedule The entity of insert or update target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdateNonstrict(SingleSchedule singleSchedule) { - helpInsertOrUpdateInternally(singleSchedule, - new InternalInsertOrUpdateNonstrictCallback() { - public void callbackInsert(SingleSchedule entity) { - insert(entity); - } - - public void callbackUpdateNonstrict(SingleSchedule entity) { - updateNonstrict(entity); - } - }); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdateNonstrict((SingleSchedule) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param singleSchedule The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException - * When the entity has already been updated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(SingleSchedule singleSchedule) { - helpDeleteInternally(singleSchedule, - new InternalDeleteCallback() { - public int callbackDelegateDelete(SingleSchedule entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity singleSchedule) { - delete((SingleSchedule) singleSchedule); - } - - /** - * Delete the entity non-strictly. {UpdateCountZeroException, - * NonConcurrencyControl} - * - * @param singleSchedule Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrict(SingleSchedule singleSchedule) { - helpDeleteNonstrictInternally(singleSchedule, - new InternalDeleteNonstrictCallback() { - public int callbackDelegateDeleteNonstrict( - SingleSchedule entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - /** - * Delete the entity non-strictly ignoring deleted. - * {UpdateCountZeroException, NonConcurrencyControl} - * - * @param singleSchedule Entity. (NotNull) {PrimaryKeyRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void deleteNonstrictIgnoreDeleted(SingleSchedule singleSchedule) { - helpDeleteNonstrictIgnoreDeletedInternally( - singleSchedule, - new InternalDeleteNonstrictIgnoreDeletedCallback() { - public int callbackDelegateDeleteNonstrict( - SingleSchedule entity) { - return delegateDeleteNonstrict(entity); - } - }); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert(List singleScheduleList) { - assertObjectNotNull("singleScheduleList", singleScheduleList); - return delegateInsertList(singleScheduleList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param singleScheduleList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchUpdate(List singleScheduleList) { - assertObjectNotNull("singleScheduleList", singleScheduleList); - return delegateUpdateList(singleScheduleList); - } - - /** - * Batch update the list non-strictly. All columns are update target. {NOT - * modified only}
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdateNonstrict(List singleScheduleList) { - assertObjectNotNull("singleScheduleList", singleScheduleList); - return delegateUpdateListNonstrict(singleScheduleList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException - * When the entity has already been updated. This exception - * extends ${glEntityAlreadyUpdateException}. - */ - public int[] batchDelete(List singleScheduleList) { - assertObjectNotNull("singleScheduleList", singleScheduleList); - return delegateDeleteList(singleScheduleList); - } - - /** - * Batch delete the list non-strictly.
    This method use 'Batch Update' - * of java.sql.PreparedStatement. - * - * @param singleScheduleList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDeleteNonstrict(List singleScheduleList) { - assertObjectNotNull("singleScheduleList", singleScheduleList); - return delegateDeleteListNonstrict(singleScheduleList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param singleSchedule Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(SingleSchedule singleSchedule, SingleScheduleCB cb) { - assertObjectNotNull("singleSchedule", singleSchedule); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(singleSchedule); - filterEntityOfUpdate(singleSchedule); - assertEntityOfUpdate(singleSchedule); - return getMyDao().updateByQuery(cb, singleSchedule); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(SingleScheduleCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateSelectCount(SingleScheduleCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList(SingleScheduleCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(SingleSchedule e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(SingleSchedule e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateUpdateNonstrict(SingleSchedule e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateNonstrictModifiedOnly(e); - } - - protected int delegateDelete(SingleSchedule e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int delegateDeleteNonstrict(SingleSchedule e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().deleteNonstrict(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("singleScheduleList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("singleScheduleList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateUpdateListNonstrict(List ls) { - assertObjectNotNull("singleScheduleList", ls); - return getMyDao().updateListNonstrict( - helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("singleScheduleList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - protected int[] delegateDeleteListNonstrict(List ls) { - assertObjectNotNull("singleScheduleList", ls); - return getMyDao().deleteListNonstrict( - helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return !(downcast(entity).getVersionno() + "").equals("null");// For - // primitive - // type - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected SingleSchedule downcast(Entity entity) { - return helpDowncastInternally(entity, SingleSchedule.class); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleContentBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,603 +0,0 @@ -package jp.sf.pal.scheduler.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.scheduler.db.allcommon.DaoReadable; -import jp.sf.pal.scheduler.db.allcommon.DaoWritable; -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleContentDbm; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; -import jp.sf.pal.scheduler.db.exdao.SingleScheduleContentDao; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; - -/** - * The behavior of SINGLE_SCHEDULE_CONTENT. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, CONTENT
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     SINGLE_SCHEDULE
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     singleSchedule
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ -public abstract class BsSingleScheduleContentBhv extends - jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleContentDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return SingleScheduleContentDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public SingleScheduleContentDbm getMyDBMeta() { - return SingleScheduleContentDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public SingleScheduleContentDao getMyDao() { - return _dao; - } - - public void setMyDao(SingleScheduleContentDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public SingleScheduleContent newMyEntity() { - return new SingleScheduleContent(); - } - - public SingleScheduleContentCB newMyConditionBean() { - return new SingleScheduleContentCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of SingleScheduleContent. (NotNull) - * @return The selected count. - */ - public int selectCount(SingleScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of SingleScheduleContent. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public SingleScheduleContent selectEntity(final SingleScheduleContentCB cb) { - return helpSelectEntityInternally( - cb, - new InternalSelectEntityCallback() { - public List callbackSelectList( - SingleScheduleContentCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of SingleScheduleContent. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public SingleScheduleContent selectEntityWithDeletedCheck( - final SingleScheduleContentCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList( - SingleScheduleContentCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public SingleScheduleContent selectByPKValueWithDeletedCheck(Long id) { - SingleScheduleContent entity = new SingleScheduleContent(); - entity.setId(id); - final SingleScheduleContentCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result bean. - * - * @param cb The condition-bean of SingleScheduleContent. (NotNull) - * @return The result bean of selected list. (NotNull) - */ - public ListResultBean selectList( - SingleScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return new ResultBeanBuilder(getTableDbName()) - .buildListResultBean(cb, delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result bean. - * - * @param cb The condition-bean of SingleScheduleContent. (NotNull) - * @return The result bean of selected page. (NotNull) - */ - public PagingResultBean selectPage( - final SingleScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of SingleScheduleContent. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - SingleScheduleContentCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - - //========================================================================== - // ========= - // Pullout Foreign - // =============== - /** - * Pull out the list of foreign table 'SingleSchedule'. - * - * @param singleScheduleContentList The list of singleScheduleContent. - * (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutSingleSchedule( - List singleScheduleContentList) { - return helpPulloutInternally( - singleScheduleContentList, - new InternalPulloutCallback() { - public SingleSchedule callbackGetForeignEntity( - SingleScheduleContent entity) { - return entity.getSingleSchedule(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param singleScheduleContent The entity of insert target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(SingleScheduleContent singleScheduleContent) { - assertEntityNotNull(singleScheduleContent); - delegateInsert(singleScheduleContent); - } - - @Override - protected void doCreate(Entity singleScheduleContent) { - insert((SingleScheduleContent) singleScheduleContent); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param singleScheduleContent The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final SingleScheduleContent singleScheduleContent) { - helpUpdateInternally(singleScheduleContent, - new InternalUpdateCallback() { - public int callbackDelegateUpdate( - SingleScheduleContent entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((SingleScheduleContent) entity); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - update((SingleScheduleContent) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param singleScheduleContent The entity of insert or update target. - * (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate(final SingleScheduleContent singleScheduleContent) { - helpInsertOrUpdateInternally( - singleScheduleContent, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(SingleScheduleContent entity) { - insert(entity); - } - - public void callbackUpdate(SingleScheduleContent entity) { - update(entity); - } - - public SingleScheduleContentCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(SingleScheduleContentCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity singleScheduleContent) { - insertOrUpdate((SingleScheduleContent) singleScheduleContent); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdate((SingleScheduleContent) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param singleScheduleContent The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(SingleScheduleContent singleScheduleContent) { - helpDeleteInternally(singleScheduleContent, - new InternalDeleteCallback() { - public int callbackDelegateDelete( - SingleScheduleContent entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity singleScheduleContent) { - delete((SingleScheduleContent) singleScheduleContent); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleContentList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert( - List singleScheduleContentList) { - assertObjectNotNull("singleScheduleContentList", - singleScheduleContentList); - return delegateInsertList(singleScheduleContentList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param singleScheduleContentList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdate( - List singleScheduleContentList) { - assertObjectNotNull("singleScheduleContentList", - singleScheduleContentList); - return delegateUpdateList(singleScheduleContentList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleContentList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDelete( - List singleScheduleContentList) { - assertObjectNotNull("singleScheduleContentList", - singleScheduleContentList); - return delegateDeleteList(singleScheduleContentList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param singleScheduleContent Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(SingleScheduleContent singleScheduleContent, - SingleScheduleContentCB cb) { - assertObjectNotNull("singleScheduleContent", singleScheduleContent); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(singleScheduleContent); - filterEntityOfUpdate(singleScheduleContent); - assertEntityOfUpdate(singleScheduleContent); - return getMyDao().updateByQuery(cb, singleScheduleContent); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(SingleScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateSelectCount(SingleScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList( - SingleScheduleContentCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(SingleScheduleContent e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(SingleScheduleContent e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateDelete(SingleScheduleContent e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("singleScheduleContentList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("singleScheduleContentList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("singleScheduleContentList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return false; - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected SingleScheduleContent downcast(Entity entity) { - return helpDowncastInternally(entity, SingleScheduleContent.class); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsSingleScheduleMappingBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,622 +0,0 @@ -package jp.sf.pal.scheduler.db.bsbhv; - -import java.util.List; - -import jp.sf.pal.scheduler.db.allcommon.DaoReadable; -import jp.sf.pal.scheduler.db.allcommon.DaoWritable; -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.bsentity.dbmeta.SingleScheduleMappingDbm; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.exdao.SingleScheduleMappingDao; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; -import jp.sf.pal.scheduler.db.exentity.UserInfo; - -/** - * The behavior of SINGLE_SCHEDULE_MAPPING. - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, SCHEDULE_ID, USER_ID
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     SINGLE_SCHEDULE, USER_INFO
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     singleSchedule, userInfo
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ -public abstract class BsSingleScheduleMappingBhv extends - jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { - - //========================================================================== - // ========= - // Definition - // ========== - /* df:BehaviorQueryPathBegin */ - /* df:BehaviorQueryPathEnd */ - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleMappingDao _dao; - - //========================================================================== - // ========= - // Table name - // ========== - /** @return The name on database of table. (NotNull) */ - public String getTableDbName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - /** @return The meta data of the database. (NotNull) */ - public DBMeta getDBMeta() { - return SingleScheduleMappingDbm.getInstance(); - } - - /** @return The meta data of the database as my table type. (NotNull) */ - public SingleScheduleMappingDbm getMyDBMeta() { - return SingleScheduleMappingDbm.getInstance(); - } - - //========================================================================== - // ========= - // Dao Accessor - // ============ - public SingleScheduleMappingDao getMyDao() { - return _dao; - } - - public void setMyDao(SingleScheduleMappingDao dao) { - assertObjectNotNull("dao", dao); - _dao = dao; - } - - public DaoReadable getDaoReadable() { - return getMyDao(); - } - - public DaoWritable getDaoWritable() { - return getMyDao(); - } - - //========================================================================== - // ========= - // New Instance - // ============ - public Entity newEntity() { - return newMyEntity(); - } - - public ConditionBean newConditionBean() { - return newMyConditionBean(); - } - - public SingleScheduleMapping newMyEntity() { - return new SingleScheduleMapping(); - } - - public SingleScheduleMappingCB newMyConditionBean() { - return new SingleScheduleMappingCB(); - } - - //========================================================================== - // ========= - // Count Select - // ============ - /** - * Select the count of the condition-bean. {IgnorePagingCondition} - * - * @param cb The condition-bean of SingleScheduleMapping. (NotNull) - * @return The selected count. - */ - public int selectCount(SingleScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return delegateSelectCount(cb); - } - - //========================================================================== - // ========= - // Entity Select - // ============= - /** - * Select the entity by the condition-bean. - * - * @param cb The condition-bean of SingleScheduleMapping. (NotNull) - * @return The selected entity. (Nullalble) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public SingleScheduleMapping selectEntity(final SingleScheduleMappingCB cb) { - return helpSelectEntityInternally( - cb, - new InternalSelectEntityCallback() { - public List callbackSelectList( - SingleScheduleMappingCB cb) { - return selectList(cb); - } - }); - } - - /** - * Select the entity by the condition-bean with deleted check. - * - * @param cb The condition-bean of SingleScheduleMapping. (NotNull) - * @return The selected entity. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public SingleScheduleMapping selectEntityWithDeletedCheck( - final SingleScheduleMappingCB cb) { - return helpSelectEntityWithDeletedCheckInternally( - cb, - new InternalSelectEntityWithDeletedCheckCallback() { - public List callbackSelectList( - SingleScheduleMappingCB cb) { - return selectList(cb); - } - }); - } - - /* - * (non-javadoc) Select the entity with deleted check. {by primary-key - * value} - * @param primaryKey The keys of primary. - * @return The selected entity. (NotNull) - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception - * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When - * the entity has been duplicated. - */ - public SingleScheduleMapping selectByPKValueWithDeletedCheck(Long id) { - SingleScheduleMapping entity = new SingleScheduleMapping(); - entity.setId(id); - final SingleScheduleMappingCB cb = newMyConditionBean(); - cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( - entity)); - return selectEntityWithDeletedCheck(cb); - } - - //========================================================================== - // ========= - // List Select - // =========== - /** - * Select the list as result bean. - * - * @param cb The condition-bean of SingleScheduleMapping. (NotNull) - * @return The result bean of selected list. (NotNull) - */ - public ListResultBean selectList( - SingleScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return new ResultBeanBuilder(getTableDbName()) - .buildListResultBean(cb, delegateSelectList(cb)); - } - - //========================================================================== - // ========= - // Page Select - // =========== - /** - * Select the page as result bean. - * - * @param cb The condition-bean of SingleScheduleMapping. (NotNull) - * @return The result bean of selected page. (NotNull) - */ - public PagingResultBean selectPage( - final SingleScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - final PagingInvoker invoker = new PagingInvoker( - getTableDbName()); - final PagingHandler handler = new PagingHandler() { - public PagingBean getPagingBean() { - return cb; - } - - public int count() { - return selectCount(cb); - } - - public List paging() { - return selectList(cb); - } - }; - return invoker.invokePaging(handler); - } - - //========================================================================== - // ========= - // Various Select - // ============== - /** - * Select the list of value-label. - * - * @param cb The condition-bean of SingleScheduleMapping. (NotNull) - * @param valueLabelSetupper The setupper of value-label. (NotNull) - * @return The list of value-label. (NotNull) - */ - public List> selectValueLabelList( - SingleScheduleMappingCB cb, - ValueLabelSetupper valueLabelSetupper) { - return createValueLabelList(selectList(cb), valueLabelSetupper); - } - - //========================================================================== - // ========= - // Load Referrer - // ============= - - //========================================================================== - // ========= - // Pullout Foreign - // =============== - /** - * Pull out the list of foreign table 'SingleSchedule'. - * - * @param singleScheduleMappingList The list of singleScheduleMapping. - * (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutSingleSchedule( - List singleScheduleMappingList) { - return helpPulloutInternally( - singleScheduleMappingList, - new InternalPulloutCallback() { - public SingleSchedule callbackGetForeignEntity( - SingleScheduleMapping entity) { - return entity.getSingleSchedule(); - } - }); - } - - /** - * Pull out the list of foreign table 'UserInfo'. - * - * @param singleScheduleMappingList The list of singleScheduleMapping. - * (NotNull) - * @return The list of foreign table. (NotNull) - */ - public List pulloutUserInfo( - List singleScheduleMappingList) { - return helpPulloutInternally(singleScheduleMappingList, - new InternalPulloutCallback() { - public UserInfo callbackGetForeignEntity( - SingleScheduleMapping entity) { - return entity.getUserInfo(); - } - }); - } - - //========================================================================== - // ========= - // Entity Update - // ============= - /** - * Insert the entity. - * - * @param singleScheduleMapping The entity of insert target. (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insert(SingleScheduleMapping singleScheduleMapping) { - assertEntityNotNull(singleScheduleMapping); - delegateInsert(singleScheduleMapping); - } - - @Override - protected void doCreate(Entity singleScheduleMapping) { - insert((SingleScheduleMapping) singleScheduleMapping); - } - - /** - * Update the entity modified-only. {UpdateCountZeroException, - * ConcurrencyControl} - * - * @param singleScheduleMapping The entity of update target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void update(final SingleScheduleMapping singleScheduleMapping) { - helpUpdateInternally(singleScheduleMapping, - new InternalUpdateCallback() { - public int callbackDelegateUpdate( - SingleScheduleMapping entity) { - return delegateUpdate(entity); - } - }); - } - - @Override - protected void doModify(Entity entity) { - update((SingleScheduleMapping) entity); - } - - @Override - protected void doModifyNonstrict(Entity entity) { - update((SingleScheduleMapping) entity); - } - - /** - * Insert or update the entity modified-only. {ConcurrencyControl(when - * update)} - * - * @param singleScheduleMapping The entity of insert or update target. - * (NotNull) - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException - * When the entity already exists. (Unique Constraint - * Violation) - */ - public void insertOrUpdate(final SingleScheduleMapping singleScheduleMapping) { - helpInsertOrUpdateInternally( - singleScheduleMapping, - new InternalInsertOrUpdateCallback() { - public void callbackInsert(SingleScheduleMapping entity) { - insert(entity); - } - - public void callbackUpdate(SingleScheduleMapping entity) { - update(entity); - } - - public SingleScheduleMappingCB callbackNewMyConditionBean() { - return newMyConditionBean(); - } - - public int callbackSelectCount(SingleScheduleMappingCB cb) { - return selectCount(cb); - } - }); - } - - @Override - protected void doCreateOrUpdate(Entity singleScheduleMapping) { - insertOrUpdate((SingleScheduleMapping) singleScheduleMapping); - } - - @Override - protected void doCreateOrUpdateNonstrict(Entity entity) { - insertOrUpdate((SingleScheduleMapping) entity); - } - - /** - * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} - * - * @param singleScheduleMapping The entity of delete target. (NotNull) - * {PrimaryKeyRequired, ConcurrencyColumnRequired} - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException - * When the entity has been duplicated. - */ - public void delete(SingleScheduleMapping singleScheduleMapping) { - helpDeleteInternally(singleScheduleMapping, - new InternalDeleteCallback() { - public int callbackDelegateDelete( - SingleScheduleMapping entity) { - return delegateDelete(entity); - } - }); - } - - @Override - protected void doRemove(Entity singleScheduleMapping) { - delete((SingleScheduleMapping) singleScheduleMapping); - } - - //========================================================================== - // ========= - // Batch Update - // ============ - /** - * Batch insert the list. This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleMappingList The list of the entity. (NotNull) - * @return The array of inserted count. - */ - public int[] batchInsert( - List singleScheduleMappingList) { - assertObjectNotNull("singleScheduleMappingList", - singleScheduleMappingList); - return delegateInsertList(singleScheduleMappingList); - } - - /** - * Batch update the list. All columns are update target. {NOT modified only} - *
    This method use 'Batch Update' of java.sql.PreparedStatement. - * - * @param singleScheduleMappingList The list of the entity. (NotNull) - * @return The array of updated count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchUpdate( - List singleScheduleMappingList) { - assertObjectNotNull("singleScheduleMappingList", - singleScheduleMappingList); - return delegateUpdateList(singleScheduleMappingList); - } - - /** - * Batch delete the list.
    This method use 'Batch Update' of - * java.sql.PreparedStatement. - * - * @param singleScheduleMappingList The list of the entity. (NotNull) - * @return The array of deleted count. - * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException - * When the entity has already been deleted. - */ - public int[] batchDelete( - List singleScheduleMappingList) { - assertObjectNotNull("singleScheduleMappingList", - singleScheduleMappingList); - return delegateDeleteList(singleScheduleMappingList); - } - - //========================================================================== - // ========= - // Query Update - // ============ - /** - * Query update the several entities. {NoConcurrencyControl} - * - * @param singleScheduleMapping Entity. (NotNull) {PrimaryKeyNotRequired} - * @param cb Condition-bean. (NotNull) - * @return The updated count. - */ - public int queryUpdate(SingleScheduleMapping singleScheduleMapping, - SingleScheduleMappingCB cb) { - assertObjectNotNull("singleScheduleMapping", singleScheduleMapping); - assertConditionBeanNotNull(cb); - setupCommonColumnOfUpdateIfNeeds(singleScheduleMapping); - filterEntityOfUpdate(singleScheduleMapping); - assertEntityOfUpdate(singleScheduleMapping); - return getMyDao().updateByQuery(cb, singleScheduleMapping); - } - - /** - * Query delete the several entities. {NoConcurrencyControl} - * - * @param cb Condition-bean. (NotNull) - * @return The deleted count. - */ - public int queryDelete(SingleScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().deleteByQuery(cb); - } - - //========================================================================== - // ========= - // Various Update - // ============== - - //========================================================================== - // ========= - // Delegate Method - // =============== - // ----------------------------------------------------- - // Select - // ------ - protected int delegateSelectCount(SingleScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectCount(cb); - } - - protected List delegateSelectList( - SingleScheduleMappingCB cb) { - assertConditionBeanNotNull(cb); - return getMyDao().selectList(cb); - } - - // ----------------------------------------------------- - // Update - // ------ - protected int delegateInsert(SingleScheduleMapping e) { - if (!processBeforeInsert(e)) { - return 1; - } - return getMyDao().insert(e); - } - - protected int delegateUpdate(SingleScheduleMapping e) { - if (!processBeforeUpdate(e)) { - return 1; - } - return getMyDao().updateModifiedOnly(e); - } - - protected int delegateDelete(SingleScheduleMapping e) { - if (!processBeforeDelete(e)) { - return 1; - } - return getMyDao().delete(e); - } - - protected int[] delegateInsertList(List ls) { - assertObjectNotNull("singleScheduleMappingList", ls); - return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); - } - - protected int[] delegateUpdateList(List ls) { - assertObjectNotNull("singleScheduleMappingList", ls); - return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); - } - - protected int[] delegateDeleteList(List ls) { - assertObjectNotNull("singleScheduleMappingList", ls); - return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); - } - - //========================================================================== - // ========= - // Optimistic Lock Info - // ==================== - @Override - protected boolean hasVersionNoValue(Entity entity) { - return false; - } - - @Override - protected boolean hasUpdateDateValue(Entity entity) { - return false; - } - - //========================================================================== - // ========= - // Helper - // ====== - protected SingleScheduleMapping downcast(Entity entity) { - return helpDowncastInternally(entity, SingleScheduleMapping.class); - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -17,22 +17,19 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.scheduler.db.bsentity.dbmeta.UserInfoDbm; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; import jp.sf.pal.scheduler.db.exbhv.GroupMappingBhv; import jp.sf.pal.scheduler.db.exbhv.RoleMappingBhv; -import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv; -import jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv; import jp.sf.pal.scheduler.db.exdao.UserInfoDao; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; import jp.sf.pal.scheduler.db.exentity.GroupInfo; import jp.sf.pal.scheduler.db.exentity.GroupMapping; import jp.sf.pal.scheduler.db.exentity.RoleInfo; import jp.sf.pal.scheduler.db.exentity.RoleMapping; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; import jp.sf.pal.scheduler.db.exentity.UserInfo; /** @@ -58,13 +55,13 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * GROUP_MAPPING, ROLE_MAPPING, ROUTINE_SCHEDULE_MAPPING, SINGLE_SCHEDULE_MAPPING + * EVENT_SCHEDULE_MAPPING, GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * groupMappingList, roleMappingList, routineScheduleMappingList, singleScheduleMappingList + * eventScheduleMappingList, groupMappingList, roleMappingList * * * @author DBFlute(AutoGenerator) @@ -293,11 +290,11 @@ // Load Referrer // ============= /** - * Load referrer of groupMappingList with the setupper for condition-bean of - * referrer.
    About internal policy, the value of primary key(and - * others too) is treated as case-insensitive.
    The condition-bean - * that the setupper provides have settings before you touch it. It is as - * follows: + * Load referrer of eventScheduleMappingList with the setupper for + * condition-bean of referrer.
    About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
    The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: * *
          * cb.query().setUserId_InScope(pkList);
    @@ -308,16 +305,17 @@
          * @param conditionBeanSetupper The instance of referrer condition-bean
          *            setupper for registering referrer condition. (NotNull)
          */
    -    public void loadGroupMappingList(List userInfoList,
    -            ConditionBeanSetupper conditionBeanSetupper) {
    +    public void loadEventScheduleMappingList(List userInfoList,
    +            ConditionBeanSetupper conditionBeanSetupper) {
             assertObjectNotNull("userInfoList", userInfoList);
    -        assertObjectNotNull("conditionBeanSetupper",
    +        assertObjectNotNull("conditionBeanSetupper",
                     conditionBeanSetupper);
             if (userInfoList.isEmpty()) {
                 return;
             }
    -        loadGroupMappingList(userInfoList,
    -                new LoadReferrerOption(
    +        loadEventScheduleMappingList(
    +                userInfoList,
    +                new LoadReferrerOption(
                             conditionBeanSetupper));
         }
     
    @@ -328,63 +326,66 @@
          * @param userInfoList The entity list of userInfo. (NotNull)
          * @param loadReferrerOption The option of load-referrer. (NotNull)
          */
    -    public void loadGroupMappingList(List userInfoList,
    -            LoadReferrerOption loadReferrerOption) {
    +    public void loadEventScheduleMappingList(
    +            List userInfoList,
    +            LoadReferrerOption loadReferrerOption) {
             assertObjectNotNull("userInfoList", userInfoList);
    -        assertObjectNotNull("loadReferrerOption",
    +        assertObjectNotNull(
    +                "loadReferrerOption",
                     loadReferrerOption);
             if (userInfoList.isEmpty()) {
                 return;
             }
    -        final GroupMappingBhv referrerBhv = xgetBSFLR().select(
    -                GroupMappingBhv.class);
    +        final EventScheduleMappingBhv referrerBhv = xgetBSFLR().select(
    +                EventScheduleMappingBhv.class);
             helpLoadReferrerInternally(
                     userInfoList,
                     loadReferrerOption,
    -                new InternalLoadReferrerCallback() {
    +                new InternalLoadReferrerCallback() {
                         public String callbackBase_getPrimaryKeyValue(
                                 UserInfo entity) {
                             return entity.getUserId();
                         }
     
                         public void callbackBase_setReferrerList(UserInfo entity,
    -                            List referrerList) {
    -                        entity.setGroupMappingList(referrerList);
    +                            List referrerList) {
    +                        entity.setEventScheduleMappingList(referrerList);
                         }
     
    -                    public GroupMappingCB callbackReferrer_newMyConditionBean() {
    +                    public EventScheduleMappingCB callbackReferrer_newMyConditionBean() {
                             return referrerBhv.newMyConditionBean();
                         }
     
                         public void callbackReferrer_queryForeignKeyInScope(
    -                            GroupMappingCB cb, List pkList) {
    +                            EventScheduleMappingCB cb, List pkList) {
                             cb.query().setUserId_InScope(pkList);
                         }
     
                         public void callbackReferrer_queryAddOrderByForeignKeyAsc(
    -                            GroupMappingCB cb) {
    +                            EventScheduleMappingCB cb) {
                             cb.query().addOrderBy_UserId_Asc();
                         }
     
    -                    public List callbackReferrer_selectList(
    -                            GroupMappingCB cb) {
    +                    public List callbackReferrer_selectList(
    +                            EventScheduleMappingCB cb) {
                             return referrerBhv.selectList(cb);
                         }
     
                         public String callbackReferrer_getForeignKeyValue(
    -                            GroupMapping entity) {
    +                            EventScheduleMapping entity) {
                             return entity.getUserId();
                         }
     
                         public void callbackReferrer_setForeignEntity(
    -                            GroupMapping referrerEntity, UserInfo baseEntity) {
    +                            EventScheduleMapping referrerEntity,
    +                            UserInfo baseEntity) {
                             referrerEntity.setUserInfo(baseEntity);
                         }
                     });
         }
     
         /**
    -     * Load referrer of roleMappingList with the setupper for condition-bean of
    +     * Load referrer of groupMappingList with the setupper for condition-bean of
          * referrer. 
    About internal policy, the value of primary key(and * others too) is treated as case-insensitive.
    The condition-bean * that the setupper provides have settings before you touch it. It is as @@ -399,16 +400,16 @@ * @param conditionBeanSetupper The instance of referrer condition-bean * setupper for registering referrer condition. (NotNull) */ - public void loadRoleMappingList(List userInfoList, - ConditionBeanSetupper conditionBeanSetupper) { + public void loadGroupMappingList(List userInfoList, + ConditionBeanSetupper conditionBeanSetupper) { assertObjectNotNull("userInfoList", userInfoList); - assertObjectNotNull("conditionBeanSetupper", + assertObjectNotNull("conditionBeanSetupper", conditionBeanSetupper); if (userInfoList.isEmpty()) { return; } - loadRoleMappingList(userInfoList, - new LoadReferrerOption( + loadGroupMappingList(userInfoList, + new LoadReferrerOption( conditionBeanSetupper)); } @@ -419,67 +420,67 @@ * @param userInfoList The entity list of userInfo. (NotNull) * @param loadReferrerOption The option of load-referrer. (NotNull) */ - public void loadRoleMappingList(List userInfoList, - LoadReferrerOption loadReferrerOption) { + public void loadGroupMappingList(List userInfoList, + LoadReferrerOption loadReferrerOption) { assertObjectNotNull("userInfoList", userInfoList); - assertObjectNotNull("loadReferrerOption", + assertObjectNotNull("loadReferrerOption", loadReferrerOption); if (userInfoList.isEmpty()) { return; } - final RoleMappingBhv referrerBhv = xgetBSFLR().select( - RoleMappingBhv.class); + final GroupMappingBhv referrerBhv = xgetBSFLR().select( + GroupMappingBhv.class); helpLoadReferrerInternally( userInfoList, loadReferrerOption, - new InternalLoadReferrerCallback() { + new InternalLoadReferrerCallback() { public String callbackBase_getPrimaryKeyValue( UserInfo entity) { return entity.getUserId(); } public void callbackBase_setReferrerList(UserInfo entity, - List referrerList) { - entity.setRoleMappingList(referrerList); + List referrerList) { + entity.setGroupMappingList(referrerList); } - public RoleMappingCB callbackReferrer_newMyConditionBean() { + public GroupMappingCB callbackReferrer_newMyConditionBean() { return referrerBhv.newMyConditionBean(); } public void callbackReferrer_queryForeignKeyInScope( - RoleMappingCB cb, List pkList) { + GroupMappingCB cb, List pkList) { cb.query().setUserId_InScope(pkList); } public void callbackReferrer_queryAddOrderByForeignKeyAsc( - RoleMappingCB cb) { + GroupMappingCB cb) { cb.query().addOrderBy_UserId_Asc(); } - public List callbackReferrer_selectList( - RoleMappingCB cb) { + public List callbackReferrer_selectList( + GroupMappingCB cb) { return referrerBhv.selectList(cb); } public String callbackReferrer_getForeignKeyValue( - RoleMapping entity) { + GroupMapping entity) { return entity.getUserId(); } public void callbackReferrer_setForeignEntity( - RoleMapping referrerEntity, UserInfo baseEntity) { + GroupMapping referrerEntity, UserInfo baseEntity) { referrerEntity.setUserInfo(baseEntity); } }); } /** - * Load referrer of routineScheduleMappingList with the setupper for - * condition-bean of referrer.
    About internal policy, the value of - * primary key(and others too) is treated as case-insensitive.
    The - * condition-bean that the setupper provides have settings before you touch - * it. It is as follows: + * Load referrer of roleMappingList with the setupper for condition-bean of + * referrer.
    About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
    The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: * *
          * cb.query().setUserId_InScope(pkList);
    @@ -490,18 +491,16 @@
          * @param conditionBeanSetupper The instance of referrer condition-bean
          *            setupper for registering referrer condition. (NotNull)
          */
    -    public void loadRoutineScheduleMappingList(
    -            List userInfoList,
    -            ConditionBeanSetupper conditionBeanSetupper) {
    +    public void loadRoleMappingList(List userInfoList,
    +            ConditionBeanSetupper conditionBeanSetupper) {
             assertObjectNotNull("userInfoList", userInfoList);
    -        assertObjectNotNull("conditionBeanSetupper",
    +        assertObjectNotNull("conditionBeanSetupper",
                     conditionBeanSetupper);
             if (userInfoList.isEmpty()) {
                 return;
             }
    -        loadRoutineScheduleMappingList(
    -                userInfoList,
    -                new LoadReferrerOption(
    +        loadRoleMappingList(userInfoList,
    +                new LoadReferrerOption(
                             conditionBeanSetupper));
         }
     
    @@ -512,159 +511,61 @@
          * @param userInfoList The entity list of userInfo. (NotNull)
          * @param loadReferrerOption The option of load-referrer. (NotNull)
          */
    -    public void loadRoutineScheduleMappingList(
    -            List userInfoList,
    -            LoadReferrerOption loadReferrerOption) {
    +    public void loadRoleMappingList(List userInfoList,
    +            LoadReferrerOption loadReferrerOption) {
             assertObjectNotNull("userInfoList", userInfoList);
    -        assertObjectNotNull(
    -                "loadReferrerOption",
    +        assertObjectNotNull("loadReferrerOption",
                     loadReferrerOption);
             if (userInfoList.isEmpty()) {
                 return;
             }
    -        final RoutineScheduleMappingBhv referrerBhv = xgetBSFLR().select(
    -                RoutineScheduleMappingBhv.class);
    +        final RoleMappingBhv referrerBhv = xgetBSFLR().select(
    +                RoleMappingBhv.class);
             helpLoadReferrerInternally(
                     userInfoList,
                     loadReferrerOption,
    -                new InternalLoadReferrerCallback() {
    +                new InternalLoadReferrerCallback() {
                         public String callbackBase_getPrimaryKeyValue(
                                 UserInfo entity) {
                             return entity.getUserId();
                         }
     
                         public void callbackBase_setReferrerList(UserInfo entity,
    -                            List referrerList) {
    -                        entity.setRoutineScheduleMappingList(referrerList);
    +                            List referrerList) {
    +                        entity.setRoleMappingList(referrerList);
                         }
     
    -                    public RoutineScheduleMappingCB callbackReferrer_newMyConditionBean() {
    +                    public RoleMappingCB callbackReferrer_newMyConditionBean() {
                             return referrerBhv.newMyConditionBean();
                         }
     
                         public void callbackReferrer_queryForeignKeyInScope(
    -                            RoutineScheduleMappingCB cb, List pkList) {
    +                            RoleMappingCB cb, List pkList) {
                             cb.query().setUserId_InScope(pkList);
                         }
     
                         public void callbackReferrer_queryAddOrderByForeignKeyAsc(
    -                            RoutineScheduleMappingCB cb) {
    +                            RoleMappingCB cb) {
                             cb.query().addOrderBy_UserId_Asc();
                         }
     
    -                    public List callbackReferrer_selectList(
    -                            RoutineScheduleMappingCB cb) {
    +                    public List callbackReferrer_selectList(
    +                            RoleMappingCB cb) {
                             return referrerBhv.selectList(cb);
                         }
     
                         public String callbackReferrer_getForeignKeyValue(
    -                            RoutineScheduleMapping entity) {
    +                            RoleMapping entity) {
                             return entity.getUserId();
                         }
     
                         public void callbackReferrer_setForeignEntity(
    -                            RoutineScheduleMapping referrerEntity,
    -                            UserInfo baseEntity) {
    +                            RoleMapping referrerEntity, UserInfo baseEntity) {
                             referrerEntity.setUserInfo(baseEntity);
                         }
                     });
         }
     
    -    /**
    -     * Load referrer of singleScheduleMappingList with the setupper for
    -     * condition-bean of referrer. 
    About internal policy, the value of - * primary key(and others too) is treated as case-insensitive.
    The - * condition-bean that the setupper provides have settings before you touch - * it. It is as follows: - * - *
    -     * cb.query().setUserId_InScope(pkList);
    -     * cb.query().addOrderBy_UserId_Asc();
    -     * 
    - * - * @param userInfoList The entity list of userInfo. (NotNull) - * @param conditionBeanSetupper The instance of referrer condition-bean - * setupper for registering referrer condition. (NotNull) - */ - public void loadSingleScheduleMappingList(List userInfoList, - ConditionBeanSetupper conditionBeanSetupper) { - assertObjectNotNull("userInfoList", userInfoList); - assertObjectNotNull("conditionBeanSetupper", - conditionBeanSetupper); - if (userInfoList.isEmpty()) { - return; - } - loadSingleScheduleMappingList( - userInfoList, - new LoadReferrerOption( - conditionBeanSetupper)); - } - - /** - * {Refer to overload method that has an argument of condition-bean - * setupper.} - * - * @param userInfoList The entity list of userInfo. (NotNull) - * @param loadReferrerOption The option of load-referrer. (NotNull) - */ - public void loadSingleScheduleMappingList( - List userInfoList, - LoadReferrerOption loadReferrerOption) { - assertObjectNotNull("userInfoList", userInfoList); - assertObjectNotNull( - "loadReferrerOption", - loadReferrerOption); - if (userInfoList.isEmpty()) { - return; - } - final SingleScheduleMappingBhv referrerBhv = xgetBSFLR().select( - SingleScheduleMappingBhv.class); - helpLoadReferrerInternally( - userInfoList, - loadReferrerOption, - new InternalLoadReferrerCallback() { - public String callbackBase_getPrimaryKeyValue( - UserInfo entity) { - return entity.getUserId(); - } - - public void callbackBase_setReferrerList(UserInfo entity, - List referrerList) { - entity.setSingleScheduleMappingList(referrerList); - } - - public SingleScheduleMappingCB callbackReferrer_newMyConditionBean() { - return referrerBhv.newMyConditionBean(); - } - - public void callbackReferrer_queryForeignKeyInScope( - SingleScheduleMappingCB cb, List pkList) { - cb.query().setUserId_InScope(pkList); - } - - public void callbackReferrer_queryAddOrderByForeignKeyAsc( - SingleScheduleMappingCB cb) { - cb.query().addOrderBy_UserId_Asc(); - } - - public List callbackReferrer_selectList( - SingleScheduleMappingCB cb) { - return referrerBhv.selectList(cb); - } - - public String callbackReferrer_getForeignKeyValue( - SingleScheduleMapping entity) { - return entity.getUserId(); - } - - public void callbackReferrer_setForeignEntity( - SingleScheduleMapping referrerEntity, - UserInfo baseEntity) { - referrerEntity.setUserInfo(baseEntity); - } - }); - } - //========================================================================== // ========= // Pullout Foreign Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleContentDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; + +/** + * The DAO interface of EVENT_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsEventScheduleContentDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = EventScheduleContent.class; // For S2Dao + + public int selectCount(EventScheduleContentCB cb); + + public List selectList(EventScheduleContentCB cb); + + int insert(EventScheduleContent entity); + + int updateModifiedOnly(EventScheduleContent entity); + + int delete(EventScheduleContent entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(EventScheduleContentCB cb, EventScheduleContent entity); + + int[] deleteList(List entityList); + + int deleteByQuery(EventScheduleContentCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; + +/** + * The DAO interface of EVENT_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsEventScheduleDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = EventSchedule.class; // For S2Dao + + public int selectCount(EventScheduleCB cb); + + public List selectList(EventScheduleCB cb); + + int insert(EventSchedule entity); + + int updateModifiedOnly(EventSchedule entity); + + int updateNonstrictModifiedOnly(EventSchedule entity); + + int delete(EventSchedule entity); + + int deleteNonstrict(EventSchedule entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(EventScheduleCB cb, EventSchedule entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(EventScheduleCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleMappingDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; + +/** + * The DAO interface of EVENT_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsEventScheduleMappingDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = EventScheduleMapping.class; // For S2Dao + + public int selectCount(EventScheduleMappingCB cb); + + public List selectList(EventScheduleMappingCB cb); + + int insert(EventScheduleMapping entity); + + int updateModifiedOnly(EventScheduleMapping entity); + + int delete(EventScheduleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(EventScheduleMappingCB cb, EventScheduleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(EventScheduleMappingCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsEventScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleContentDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,37 +0,0 @@ -package jp.sf.pal.scheduler.db.bsdao; - -import java.util.List; - -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; - -/** - * The DAO interface of ROUTINE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ -public interface BsRoutineScheduleContentDao extends - jp.sf.pal.scheduler.db.allcommon.DaoWritable { - - public Class BEAN = RoutineScheduleContent.class; // For S2Dao - - public int selectCount(RoutineScheduleContentCB cb); - - public List selectList(RoutineScheduleContentCB cb); - - int insert(RoutineScheduleContent entity); - - int updateModifiedOnly(RoutineScheduleContent entity); - - int delete(RoutineScheduleContent entity); - - int[] insertList(List entityList); - - int[] updateList(List entityList); - - int updateByQuery(RoutineScheduleContentCB cb, RoutineScheduleContent entity); - - int[] deleteList(List entityList); - - int deleteByQuery(RoutineScheduleContentCB cb); -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.bsdao; - -import java.util.List; - -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; - -/** - * The DAO interface of ROUTINE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ -public interface BsRoutineScheduleDao extends - jp.sf.pal.scheduler.db.allcommon.DaoWritable { - - public Class BEAN = RoutineSchedule.class; // For S2Dao - - public int selectCount(RoutineScheduleCB cb); - - public List selectList(RoutineScheduleCB cb); - - int insert(RoutineSchedule entity); - - int updateModifiedOnly(RoutineSchedule entity); - - int updateNonstrictModifiedOnly(RoutineSchedule entity); - - int delete(RoutineSchedule entity); - - int deleteNonstrict(RoutineSchedule entity); - - int[] insertList(List entityList); - - int[] updateList(List entityList); - - int[] updateListNonstrict(List entityList); - - int updateByQuery(RoutineScheduleCB cb, RoutineSchedule entity); - - int[] deleteList(List entityList); - - int[] deleteListNonstrict(List entityList); - - int deleteByQuery(RoutineScheduleCB cb); -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsRoutineScheduleMappingDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,37 +0,0 @@ -package jp.sf.pal.scheduler.db.bsdao; - -import java.util.List; - -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; - -/** - * The DAO interface of ROUTINE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ -public interface BsRoutineScheduleMappingDao extends - jp.sf.pal.scheduler.db.allcommon.DaoWritable { - - public Class BEAN = RoutineScheduleMapping.class; // For S2Dao - - public int selectCount(RoutineScheduleMappingCB cb); - - public List selectList(RoutineScheduleMappingCB cb); - - int insert(RoutineScheduleMapping entity); - - int updateModifiedOnly(RoutineScheduleMapping entity); - - int delete(RoutineScheduleMapping entity); - - int[] insertList(List entityList); - - int[] updateList(List entityList); - - int updateByQuery(RoutineScheduleMappingCB cb, RoutineScheduleMapping entity); - - int[] deleteList(List entityList); - - int deleteByQuery(RoutineScheduleMappingCB cb); -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleContentDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,37 +0,0 @@ -package jp.sf.pal.scheduler.db.bsdao; - -import java.util.List; - -import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; - -/** - * The DAO interface of SINGLE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ -public interface BsSingleScheduleContentDao extends - jp.sf.pal.scheduler.db.allcommon.DaoWritable { - - public Class BEAN = SingleScheduleContent.class; // For S2Dao - - public int selectCount(SingleScheduleContentCB cb); - - public List selectList(SingleScheduleContentCB cb); - - int insert(SingleScheduleContent entity); - - int updateModifiedOnly(SingleScheduleContent entity); - - int delete(SingleScheduleContent entity); - - int[] insertList(List entityList); - - int[] updateList(List entityList); - - int updateByQuery(SingleScheduleContentCB cb, SingleScheduleContent entity); - - int[] deleteList(List entityList); - - int deleteByQuery(SingleScheduleContentCB cb); -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.bsdao; - -import java.util.List; - -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; - -/** - * The DAO interface of SINGLE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ -public interface BsSingleScheduleDao extends - jp.sf.pal.scheduler.db.allcommon.DaoWritable { - - public Class BEAN = SingleSchedule.class; // For S2Dao - - public int selectCount(SingleScheduleCB cb); - - public List selectList(SingleScheduleCB cb); - - int insert(SingleSchedule entity); - - int updateModifiedOnly(SingleSchedule entity); - - int updateNonstrictModifiedOnly(SingleSchedule entity); - - int delete(SingleSchedule entity); - - int deleteNonstrict(SingleSchedule entity); - - int[] insertList(List entityList); - - int[] updateList(List entityList); - - int[] updateListNonstrict(List entityList); - - int updateByQuery(SingleScheduleCB cb, SingleSchedule entity); - - int[] deleteList(List entityList); - - int[] deleteListNonstrict(List entityList); - - int deleteByQuery(SingleScheduleCB cb); -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsSingleScheduleMappingDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,37 +0,0 @@ -package jp.sf.pal.scheduler.db.bsdao; - -import java.util.List; - -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; - -/** - * The DAO interface of SINGLE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ -public interface BsSingleScheduleMappingDao extends - jp.sf.pal.scheduler.db.allcommon.DaoWritable { - - public Class BEAN = SingleScheduleMapping.class; // For S2Dao - - public int selectCount(SingleScheduleMappingCB cb); - - public List selectList(SingleScheduleMappingCB cb); - - int insert(SingleScheduleMapping entity); - - int updateModifiedOnly(SingleScheduleMapping entity); - - int delete(SingleScheduleMapping entity); - - int[] insertList(List entityList); - - int[] updateList(List entityList); - - int updateByQuery(SingleScheduleMappingCB cb, SingleScheduleMapping entity); - - int[] deleteList(List entityList); - - int deleteByQuery(SingleScheduleMappingCB cb); -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,698 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; + +/** + * The entity of EVENT_SCHEDULE that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     VERSIONNO
    + * 
    + * [foreign-table]
    + *     
    + * 
    + * [referrer-table]
    + *     EVENT_SCHEDULE_CONTENT, EVENT_SCHEDULE_MAPPING
    + * 
    + * [foreign-property]
    + *     eventScheduleContentAsOne
    + * 
    + * [referrer-property]
    + *     eventScheduleMappingList
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsEventSchedule implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is EVENT_SCHEDULE. */ + public static final String TABLE = "EVENT_SCHEDULE"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** TITLE: {NotNull : VARCHAR(100)} */ + protected String _title; + + /** LOCATION: {VARCHAR(100)} */ + protected String _location; + + /** START_DATE: {NotNull : DATE} */ + protected java.util.Date _startDate; + + /** START_TIME: {TIME} */ + protected java.sql.Time _startTime; + + /** END_DATE: {DATE} */ + protected java.util.Date _endDate; + + /** END_TIME: {TIME} */ + protected java.sql.Time _endTime; + + /** SECRET: {NotNull : VARCHAR(1) : Default=[F]} */ + protected String _secret; + + /** TYPE: {NotNull : VARCHAR(10)} */ + protected String _type; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsEventSchedule() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "eventSchedule"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [eventScheduleContentAsOne] + // * * * * * * * * */ + public static final int eventScheduleContentAsOne_RELNO = 0; + + public static final String eventScheduleContentAsOne_RELKEYS = "ID:ID"; + + /** EVENT_SCHEDULE_CONTENT as 'eventScheduleContentAsOne'. */ + protected EventScheduleContent _childreneventScheduleContentAsOne; + + /** + * EVENT_SCHEDULE_CONTENT as 'eventScheduleContentAsOne'. {without + * lazy-load}
    + * + * @return the entity of foreign property(referrer-as-one) + * 'eventScheduleContentAsOne'. (Nullable: If the foreign key does + * not have 'NotNull' constraint, please check null.) + */ + public EventScheduleContent getEventScheduleContentAsOne() { + return _childreneventScheduleContentAsOne; + } + + /** + * EVENT_SCHEDULE_CONTENT as 'eventScheduleContentAsOne'. + * + * @param eventScheduleContentAsOne The entity of foreign + * property(referrer-as-one) 'eventScheduleContentAsOne'. + * (Nullable) + */ + public void setEventScheduleContentAsOne( + EventScheduleContent eventScheduleContentAsOne) { + _childreneventScheduleContentAsOne = eventScheduleContentAsOne; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [eventScheduleMappingList] + // * * * * * * * * */ + /** EVENT_SCHEDULE_MAPPING as 'eventScheduleMappingList'. */ + protected List _childrenEventScheduleMappingList; + + /** + * EVENT_SCHEDULE_MAPPING as 'eventScheduleMappingList'. {without lazy-load} + *
    + * + * @return The entity list of referrer property 'eventScheduleMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getEventScheduleMappingList() { + if (_childrenEventScheduleMappingList == null) { + _childrenEventScheduleMappingList = new ArrayList(); + } + return _childrenEventScheduleMappingList; + } + + /** + * EVENT_SCHEDULE_MAPPING as 'eventScheduleMappingList'. + * + * @param eventScheduleMappingList The entity list of referrer property + * 'eventScheduleMappingList'. (Nullable) + */ + public void setEventScheduleMappingList( + List eventScheduleMappingList) { + _childrenEventScheduleMappingList = eventScheduleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsEventSchedule)) { + return false; + } + BsEventSchedule otherEntity = (BsEventSchedule) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getTitle()); + sb.append(delimiter).append(getLocation()); + sb.append(delimiter).append(getStartDate()); + sb.append(delimiter).append(getStartTime()); + sb.append(delimiter).append(getEndDate()); + sb.append(delimiter).append(getEndTime()); + sb.append(delimiter).append(getSecret()); + sb.append(delimiter).append(getType()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String title_COLUMN = "TITLE"; + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @return The value of the column 'TITLE'. (Nullable) + */ + public String getTitle() { + return _title; + } + + /** + * TITLE: {NotNull : VARCHAR(100)}
    + * + * @param title The value of the column 'TITLE'. (Nullable) + */ + public void setTitle(String title) { + _modifiedProperties.addPropertyName("title"); + this._title = title; + } + + /** The column annotation for S2Dao. {VARCHAR(100)} */ + public static final String location_COLUMN = "LOCATION"; + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @return The value of the column 'LOCATION'. (Nullable) + */ + public String getLocation() { + return _location; + } + + /** + * LOCATION: {VARCHAR(100)}
    + * + * @param location The value of the column 'LOCATION'. (Nullable) + */ + public void setLocation(String location) { + _modifiedProperties.addPropertyName("location"); + this._location = location; + } + + /** The column annotation for S2Dao. {NotNull : DATE} */ + public static final String startDate_COLUMN = "START_DATE"; + + /** + * START_DATE: {NotNull : DATE}
    + * + * @return The value of the column 'START_DATE'. (Nullable) + */ + public java.util.Date getStartDate() { + return _startDate; + } + + /** + * START_DATE: {NotNull : DATE}
    + * + * @param startDate The value of the column 'START_DATE'. (Nullable) + */ + public void setStartDate(java.util.Date startDate) { + _modifiedProperties.addPropertyName("startDate"); + this._startDate = startDate; + } + + /** The column annotation for S2Dao. {TIME} */ + public static final String startTime_COLUMN = "START_TIME"; + + /** + * START_TIME: {TIME}
    + * + * @return The value of the column 'START_TIME'. (Nullable) + */ + public java.sql.Time getStartTime() { + return _startTime; + } + + /** + * START_TIME: {TIME}
    + * + * @param startTime The value of the column 'START_TIME'. (Nullable) + */ + public void setStartTime(java.sql.Time startTime) { + _modifiedProperties.addPropertyName("startTime"); + this._startTime = startTime; + } + + /** The column annotation for S2Dao. {DATE} */ + public static final String endDate_COLUMN = "END_DATE"; + + /** + * END_DATE: {DATE}
    + * + * @return The value of the column 'END_DATE'. (Nullable) + */ + public java.util.Date getEndDate() { + return _endDate; + } + + /** + * END_DATE: {DATE}
    + * + * @param endDate The value of the column 'END_DATE'. (Nullable) + */ + public void setEndDate(java.util.Date endDate) { + _modifiedProperties.addPropertyName("endDate"); + this._endDate = endDate; + } + + /** The column annotation for S2Dao. {TIME} */ + public static final String endTime_COLUMN = "END_TIME"; + + /** + * END_TIME: {TIME}
    + * + * @return The value of the column 'END_TIME'. (Nullable) + */ + public java.sql.Time getEndTime() { + return _endTime; + } + + /** + * END_TIME: {TIME}
    + * + * @param endTime The value of the column 'END_TIME'. (Nullable) + */ + public void setEndTime(java.sql.Time endTime) { + _modifiedProperties.addPropertyName("endTime"); + this._endTime = endTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[F]} */ + public static final String secret_COLUMN = "SECRET"; + + /** + * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    + * + * @return The value of the column 'SECRET'. (Nullable) + */ + public String getSecret() { + return _secret; + } + + /** + * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    + * + * @param secret The value of the column 'SECRET'. (Nullable) + */ + public void setSecret(String secret) { + _modifiedProperties.addPropertyName("secret"); + this._secret = secret; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(10)} */ + public static final String type_COLUMN = "TYPE"; + + /** + * TYPE: {NotNull : VARCHAR(10)}
    + * + * @return The value of the column 'TYPE'. (Nullable) + */ + public String getType() { + return _type; + } + + /** + * TYPE: {NotNull : VARCHAR(10)}
    + * + * @param type The value of the column 'TYPE'. (Nullable) + */ + public void setType(String type) { + _modifiedProperties.addPropertyName("type"); + this._type = type; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
    + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
    + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
    + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
    + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER}
    + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleContent.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,295 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; + +/** + * The entity of EVENT_SCHEDULE_CONTENT that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, CONTENT
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     EVENT_SCHEDULE
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     eventSchedule
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsEventScheduleContent implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is EVENT_SCHEDULE_CONTENT. */ + public static final String TABLE = "EVENT_SCHEDULE_CONTENT"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : NotNull : BIGINT : FK to EVENT_SCHEDULE} */ + protected Long _id; + + /** CONTENT: {VARCHAR(1000)} */ + protected String _content; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsEventScheduleContent() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "eventScheduleContent"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [eventSchedule] + // * * * * * * * * */ + public static final int eventSchedule_RELNO = 0; + + public static final String eventSchedule_RELKEYS = "ID:ID"; + + /** EVENT_SCHEDULE as 'eventSchedule'. */ + protected EventSchedule _parentEventSchedule; + + /** + * EVENT_SCHEDULE as 'eventSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'eventSchedule'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public EventSchedule getEventSchedule() { + return _parentEventSchedule; + } + + /** + * EVENT_SCHEDULE as 'eventSchedule'. + * + * @param eventSchedule The entity of foreign property 'eventSchedule'. + * (Nullable) + */ + public void setEventSchedule(EventSchedule eventSchedule) { + _parentEventSchedule = eventSchedule; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsEventScheduleContent)) { + return false; + } + BsEventScheduleContent otherEntity = (BsEventScheduleContent) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getContent()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** + * The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to + * EVENT_SCHEDULE} + */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : NotNull : BIGINT : FK to EVENT_SCHEDULE}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : NotNull : BIGINT : FK to EVENT_SCHEDULE}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(1000)} */ + public static final String content_COLUMN = "CONTENT"; + + /** + * CONTENT: {VARCHAR(1000)}
    + * + * @return The value of the column 'CONTENT'. (Nullable) + */ + public String getContent() { + return _content; + } + + /** + * CONTENT: {VARCHAR(1000)}
    + * + * @param content The value of the column 'CONTENT'. (Nullable) + */ + public void setContent(String content) { + _modifiedProperties.addPropertyName("content"); + this._content = content; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleMapping.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,358 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; + +/** + * The entity of EVENT_SCHEDULE_MAPPING that the type is TABLE.
    + * + *
    + * [primary-key]
    + *     ID
    + * 
    + * [column]
    + *     ID, SCHEDULE_ID, USER_ID
    + * 
    + * [sequence]
    + *     
    + * 
    + * [identity]
    + *     ID
    + * 
    + * [version-no]
    + *     
    + * 
    + * [foreign-table]
    + *     EVENT_SCHEDULE, USER_INFO
    + * 
    + * [referrer-table]
    + *     
    + * 
    + * [foreign-property]
    + *     eventSchedule, userInfo
    + * 
    + * [referrer-property]
    + * 
    + * 
    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsEventScheduleMapping implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is EVENT_SCHEDULE_MAPPING. */ + public static final String TABLE = "EVENT_SCHEDULE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** SCHEDULE_ID: {NotNull : BIGINT : FK to EVENT_SCHEDULE} */ + protected Long _scheduleId; + + /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ + protected String _userId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsEventScheduleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "eventScheduleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [eventSchedule] + // * * * * * * * * */ + public static final int eventSchedule_RELNO = 0; + + public static final String eventSchedule_RELKEYS = "SCHEDULE_ID:ID"; + + /** EVENT_SCHEDULE as 'eventSchedule'. */ + protected EventSchedule _parentEventSchedule; + + /** + * EVENT_SCHEDULE as 'eventSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'eventSchedule'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public EventSchedule getEventSchedule() { + return _parentEventSchedule; + } + + /** + * EVENT_SCHEDULE as 'eventSchedule'. + * + * @param eventSchedule The entity of foreign property 'eventSchedule'. + * (Nullable) + */ + public void setEventSchedule(EventSchedule eventSchedule) { + _parentEventSchedule = eventSchedule; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [userInfo] + // * * * * * * * * */ + public static final int userInfo_RELNO = 1; + + public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; + + /** USER_INFO as 'userInfo'. */ + protected UserInfo _parentUserInfo; + + /** + * USER_INFO as 'userInfo'. {without lazy-load} + * + * @return The entity of foreign property 'userInfo'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public UserInfo getUserInfo() { + return _parentUserInfo; + } + + /** + * USER_INFO as 'userInfo'. + * + * @param userInfo The entity of foreign property 'userInfo'. (Nullable) + */ + public void setUserInfo(UserInfo userInfo) { + _parentUserInfo = userInfo; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsEventScheduleMapping)) { + return false; + } + BsEventScheduleMapping otherEntity = (BsEventScheduleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getScheduleId()); + sb.append(delimiter).append(getUserId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
    + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : BIGINT : FK to + * EVENT_SCHEDULE} + */ + public static final String scheduleId_COLUMN = "SCHEDULE_ID"; + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to EVENT_SCHEDULE}
    + * + * @return The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public Long getScheduleId() { + return _scheduleId; + } + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to EVENT_SCHEDULE}
    + * + * @param scheduleId The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public void setScheduleId(Long scheduleId) { + _modifiedProperties.addPropertyName("scheduleId"); + this._scheduleId = scheduleId; + } + + /** + * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to + * USER_INFO} + */ + public static final String userId_COLUMN = "USER_ID"; + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @return The value of the column 'USER_ID'. (Nullable) + */ + public String getUserId() { + return _userId; + } + + /** + * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    + * + * @param userId The value of the column 'USER_ID'. (Nullable) + */ + public void setUserId(String userId) { + _modifiedProperties.addPropertyName("userId"); + this._userId = userId; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineSchedule.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,699 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; - -/** - * The entity of ROUTINE_SCHEDULE that the type is TABLE.
    - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, TYPE, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     
    - * 
    - * [referrer-table]
    - *     ROUTINE_SCHEDULE_CONTENT, ROUTINE_SCHEDULE_MAPPING
    - * 
    - * [foreign-property]
    - *     routineScheduleContentAsOne
    - * 
    - * [referrer-property]
    - *     routineScheduleMappingList
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsRoutineSchedule implements Entity, java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is ROUTINE_SCHEDULE. */ - public static final String TABLE = "ROUTINE_SCHEDULE"; - - /** VERSION_NO-Annotation */ - public static final String VERSION_NO_PROPERTY = "versionno"; - - /** ID-Annotation */ - public static final String id_ID = "identity"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** ID: {PK : ID : NotNull : BIGINT} */ - protected Long _id; - - /** TITLE: {NotNull : VARCHAR(100)} */ - protected String _title; - - /** LOCATION: {VARCHAR(100)} */ - protected String _location; - - /** START_DATE: {NotNull : DATE} */ - protected java.util.Date _startDate; - - /** START_TIME: {TIME} */ - protected java.sql.Time _startTime; - - /** END_DATE: {DATE} */ - protected java.util.Date _endDate; - - /** END_TIME: {TIME} */ - protected java.sql.Time _endTime; - - /** SECRET: {NotNull : VARCHAR(1) : Default=[F]} */ - protected String _secret; - - /** TYPE: {NotNull : VARCHAR(10)} */ - protected String _type; - - /** CREATED_TIME: {NotNull : TIMESTAMP} */ - protected java.sql.Timestamp _createdTime; - - /** CREATED_BY: {NotNull : VARCHAR(255)} */ - protected String _createdBy; - - /** UPDATED_TIME: {NotNull : TIMESTAMP} */ - protected java.sql.Timestamp _updatedTime; - - /** UPDATED_BY: {NotNull : VARCHAR(255)} */ - protected String _updatedBy; - - /** DELETED_TIME: {TIMESTAMP} */ - protected java.sql.Timestamp _deletedTime; - - /** DELETED_BY: {VARCHAR(255)} */ - protected String _deletedBy; - - /** VERSIONNO: {NotNull : INTEGER} */ - protected Integer _versionno; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsRoutineSchedule() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "routineSchedule"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [routineScheduleContentAsOne] - // * * * * * * * * */ - public static final int routineScheduleContentAsOne_RELNO = 0; - - public static final String routineScheduleContentAsOne_RELKEYS = "ID:ID"; - - /** ROUTINE_SCHEDULE_CONTENT as 'routineScheduleContentAsOne'. */ - protected RoutineScheduleContent _childrenroutineScheduleContentAsOne; - - /** - * ROUTINE_SCHEDULE_CONTENT as 'routineScheduleContentAsOne'. {without - * lazy-load}
    - * - * @return the entity of foreign property(referrer-as-one) - * 'routineScheduleContentAsOne'. (Nullable: If the foreign key does - * not have 'NotNull' constraint, please check null.) - */ - public RoutineScheduleContent getRoutineScheduleContentAsOne() { - return _childrenroutineScheduleContentAsOne; - } - - /** - * ROUTINE_SCHEDULE_CONTENT as 'routineScheduleContentAsOne'. - * - * @param routineScheduleContentAsOne The entity of foreign - * property(referrer-as-one) 'routineScheduleContentAsOne'. - * (Nullable) - */ - public void setRoutineScheduleContentAsOne( - RoutineScheduleContent routineScheduleContentAsOne) { - _childrenroutineScheduleContentAsOne = routineScheduleContentAsOne; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Referrer Property = [routineScheduleMappingList] - // * * * * * * * * */ - /** ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. */ - protected List _childrenRoutineScheduleMappingList; - - /** - * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. {without - * lazy-load}
    - * - * @return The entity list of referrer property - * 'routineScheduleMappingList'. (NotNull: If it's not loaded yet, - * initializes the list instance of referrer as empty and returns - * it.) - */ - public List getRoutineScheduleMappingList() { - if (_childrenRoutineScheduleMappingList == null) { - _childrenRoutineScheduleMappingList = new ArrayList(); - } - return _childrenRoutineScheduleMappingList; - } - - /** - * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. - * - * @param routineScheduleMappingList The entity list of referrer property - * 'routineScheduleMappingList'. (Nullable) - */ - public void setRoutineScheduleMappingList( - List routineScheduleMappingList) { - _childrenRoutineScheduleMappingList = routineScheduleMappingList; - } - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsRoutineSchedule)) { - return false; - } - BsRoutineSchedule otherEntity = (BsRoutineSchedule) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getTitle()); - sb.append(delimiter).append(getLocation()); - sb.append(delimiter).append(getStartDate()); - sb.append(delimiter).append(getStartTime()); - sb.append(delimiter).append(getEndDate()); - sb.append(delimiter).append(getEndTime()); - sb.append(delimiter).append(getSecret()); - sb.append(delimiter).append(getType()); - sb.append(delimiter).append(getCreatedTime()); - sb.append(delimiter).append(getCreatedBy()); - sb.append(delimiter).append(getUpdatedTime()); - sb.append(delimiter).append(getUpdatedBy()); - sb.append(delimiter).append(getDeletedTime()); - sb.append(delimiter).append(getDeletedBy()); - sb.append(delimiter).append(getVersionno()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ - public static final String id_COLUMN = "ID"; - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ - public static final String title_COLUMN = "TITLE"; - - /** - * TITLE: {NotNull : VARCHAR(100)}
    - * - * @return The value of the column 'TITLE'. (Nullable) - */ - public String getTitle() { - return _title; - } - - /** - * TITLE: {NotNull : VARCHAR(100)}
    - * - * @param title The value of the column 'TITLE'. (Nullable) - */ - public void setTitle(String title) { - _modifiedProperties.addPropertyName("title"); - this._title = title; - } - - /** The column annotation for S2Dao. {VARCHAR(100)} */ - public static final String location_COLUMN = "LOCATION"; - - /** - * LOCATION: {VARCHAR(100)}
    - * - * @return The value of the column 'LOCATION'. (Nullable) - */ - public String getLocation() { - return _location; - } - - /** - * LOCATION: {VARCHAR(100)}
    - * - * @param location The value of the column 'LOCATION'. (Nullable) - */ - public void setLocation(String location) { - _modifiedProperties.addPropertyName("location"); - this._location = location; - } - - /** The column annotation for S2Dao. {NotNull : DATE} */ - public static final String startDate_COLUMN = "START_DATE"; - - /** - * START_DATE: {NotNull : DATE}
    - * - * @return The value of the column 'START_DATE'. (Nullable) - */ - public java.util.Date getStartDate() { - return _startDate; - } - - /** - * START_DATE: {NotNull : DATE}
    - * - * @param startDate The value of the column 'START_DATE'. (Nullable) - */ - public void setStartDate(java.util.Date startDate) { - _modifiedProperties.addPropertyName("startDate"); - this._startDate = startDate; - } - - /** The column annotation for S2Dao. {TIME} */ - public static final String startTime_COLUMN = "START_TIME"; - - /** - * START_TIME: {TIME}
    - * - * @return The value of the column 'START_TIME'. (Nullable) - */ - public java.sql.Time getStartTime() { - return _startTime; - } - - /** - * START_TIME: {TIME}
    - * - * @param startTime The value of the column 'START_TIME'. (Nullable) - */ - public void setStartTime(java.sql.Time startTime) { - _modifiedProperties.addPropertyName("startTime"); - this._startTime = startTime; - } - - /** The column annotation for S2Dao. {DATE} */ - public static final String endDate_COLUMN = "END_DATE"; - - /** - * END_DATE: {DATE}
    - * - * @return The value of the column 'END_DATE'. (Nullable) - */ - public java.util.Date getEndDate() { - return _endDate; - } - - /** - * END_DATE: {DATE}
    - * - * @param endDate The value of the column 'END_DATE'. (Nullable) - */ - public void setEndDate(java.util.Date endDate) { - _modifiedProperties.addPropertyName("endDate"); - this._endDate = endDate; - } - - /** The column annotation for S2Dao. {TIME} */ - public static final String endTime_COLUMN = "END_TIME"; - - /** - * END_TIME: {TIME}
    - * - * @return The value of the column 'END_TIME'. (Nullable) - */ - public java.sql.Time getEndTime() { - return _endTime; - } - - /** - * END_TIME: {TIME}
    - * - * @param endTime The value of the column 'END_TIME'. (Nullable) - */ - public void setEndTime(java.sql.Time endTime) { - _modifiedProperties.addPropertyName("endTime"); - this._endTime = endTime; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[F]} */ - public static final String secret_COLUMN = "SECRET"; - - /** - * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    - * - * @return The value of the column 'SECRET'. (Nullable) - */ - public String getSecret() { - return _secret; - } - - /** - * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    - * - * @param secret The value of the column 'SECRET'. (Nullable) - */ - public void setSecret(String secret) { - _modifiedProperties.addPropertyName("secret"); - this._secret = secret; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(10)} */ - public static final String type_COLUMN = "TYPE"; - - /** - * TYPE: {NotNull : VARCHAR(10)}
    - * - * @return The value of the column 'TYPE'. (Nullable) - */ - public String getType() { - return _type; - } - - /** - * TYPE: {NotNull : VARCHAR(10)}
    - * - * @param type The value of the column 'TYPE'. (Nullable) - */ - public void setType(String type) { - _modifiedProperties.addPropertyName("type"); - this._type = type; - } - - /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ - public static final String createdTime_COLUMN = "CREATED_TIME"; - - /** - * CREATED_TIME: {NotNull : TIMESTAMP}
    - * - * @return The value of the column 'CREATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getCreatedTime() { - return _createdTime; - } - - /** - * CREATED_TIME: {NotNull : TIMESTAMP}
    - * - * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) - */ - public void setCreatedTime(java.sql.Timestamp createdTime) { - _modifiedProperties.addPropertyName("createdTime"); - this._createdTime = createdTime; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ - public static final String createdBy_COLUMN = "CREATED_BY"; - - /** - * CREATED_BY: {NotNull : VARCHAR(255)}
    - * - * @return The value of the column 'CREATED_BY'. (Nullable) - */ - public String getCreatedBy() { - return _createdBy; - } - - /** - * CREATED_BY: {NotNull : VARCHAR(255)}
    - * - * @param createdBy The value of the column 'CREATED_BY'. (Nullable) - */ - public void setCreatedBy(String createdBy) { - _modifiedProperties.addPropertyName("createdBy"); - this._createdBy = createdBy; - } - - /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ - public static final String updatedTime_COLUMN = "UPDATED_TIME"; - - /** - * UPDATED_TIME: {NotNull : TIMESTAMP}
    - * - * @return The value of the column 'UPDATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getUpdatedTime() { - return _updatedTime; - } - - /** - * UPDATED_TIME: {NotNull : TIMESTAMP}
    - * - * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) - */ - public void setUpdatedTime(java.sql.Timestamp updatedTime) { - _modifiedProperties.addPropertyName("updatedTime"); - this._updatedTime = updatedTime; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ - public static final String updatedBy_COLUMN = "UPDATED_BY"; - - /** - * UPDATED_BY: {NotNull : VARCHAR(255)}
    - * - * @return The value of the column 'UPDATED_BY'. (Nullable) - */ - public String getUpdatedBy() { - return _updatedBy; - } - - /** - * UPDATED_BY: {NotNull : VARCHAR(255)}
    - * - * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) - */ - public void setUpdatedBy(String updatedBy) { - _modifiedProperties.addPropertyName("updatedBy"); - this._updatedBy = updatedBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP} */ - public static final String deletedTime_COLUMN = "DELETED_TIME"; - - /** - * DELETED_TIME: {TIMESTAMP}
    - * - * @return The value of the column 'DELETED_TIME'. (Nullable) - */ - public java.sql.Timestamp getDeletedTime() { - return _deletedTime; - } - - /** - * DELETED_TIME: {TIMESTAMP}
    - * - * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) - */ - public void setDeletedTime(java.sql.Timestamp deletedTime) { - _modifiedProperties.addPropertyName("deletedTime"); - this._deletedTime = deletedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255)} */ - public static final String deletedBy_COLUMN = "DELETED_BY"; - - /** - * DELETED_BY: {VARCHAR(255)}
    - * - * @return The value of the column 'DELETED_BY'. (Nullable) - */ - public String getDeletedBy() { - return _deletedBy; - } - - /** - * DELETED_BY: {VARCHAR(255)}
    - * - * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) - */ - public void setDeletedBy(String deletedBy) { - _modifiedProperties.addPropertyName("deletedBy"); - this._deletedBy = deletedBy; - } - - /** The column annotation for S2Dao. {NotNull : INTEGER} */ - public static final String versionno_COLUMN = "VERSIONNO"; - - /** - * VERSIONNO: {NotNull : INTEGER}
    - * - * @return The value of the column 'VERSIONNO'. (Nullable) - */ - public Integer getVersionno() { - return _versionno; - } - - /** - * VERSIONNO: {NotNull : INTEGER}
    - * - * @param versionno The value of the column 'VERSIONNO'. (Nullable) - */ - public void setVersionno(Integer versionno) { - _modifiedProperties.addPropertyName("versionno"); - this._versionno = versionno; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleContent.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,295 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity; - -import java.util.Set; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; - -/** - * The entity of ROUTINE_SCHEDULE_CONTENT that the type is TABLE.
    - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, CONTENT
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     ROUTINE_SCHEDULE
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     routineSchedule
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsRoutineScheduleContent implements Entity, - java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is ROUTINE_SCHEDULE_CONTENT. */ - public static final String TABLE = "ROUTINE_SCHEDULE_CONTENT"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** ID: {PK : NotNull : BIGINT : FK to ROUTINE_SCHEDULE} */ - protected Long _id; - - /** CONTENT: {VARCHAR(1000)} */ - protected String _content; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsRoutineScheduleContent() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "routineScheduleContent"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [routineSchedule] - // * * * * * * * * */ - public static final int routineSchedule_RELNO = 0; - - public static final String routineSchedule_RELKEYS = "ID:ID"; - - /** ROUTINE_SCHEDULE as 'routineSchedule'. */ - protected RoutineSchedule _parentRoutineSchedule; - - /** - * ROUTINE_SCHEDULE as 'routineSchedule'. {without lazy-load} - * - * @return The entity of foreign property 'routineSchedule'. (Nullable: If - * the foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public RoutineSchedule getRoutineSchedule() { - return _parentRoutineSchedule; - } - - /** - * ROUTINE_SCHEDULE as 'routineSchedule'. - * - * @param routineSchedule The entity of foreign property 'routineSchedule'. - * (Nullable) - */ - public void setRoutineSchedule(RoutineSchedule routineSchedule) { - _parentRoutineSchedule = routineSchedule; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsRoutineScheduleContent)) { - return false; - } - BsRoutineScheduleContent otherEntity = (BsRoutineScheduleContent) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getContent()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** - * The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to - * ROUTINE_SCHEDULE} - */ - public static final String id_COLUMN = "ID"; - - /** - * ID: {PK : NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * ID: {PK : NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** The column annotation for S2Dao. {VARCHAR(1000)} */ - public static final String content_COLUMN = "CONTENT"; - - /** - * CONTENT: {VARCHAR(1000)}
    - * - * @return The value of the column 'CONTENT'. (Nullable) - */ - public String getContent() { - return _content; - } - - /** - * CONTENT: {VARCHAR(1000)}
    - * - * @param content The value of the column 'CONTENT'. (Nullable) - */ - public void setContent(String content) { - _modifiedProperties.addPropertyName("content"); - this._content = content; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsRoutineScheduleMapping.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,358 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity; - -import java.util.Set; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; - -/** - * The entity of ROUTINE_SCHEDULE_MAPPING that the type is TABLE.
    - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, SCHEDULE_ID, USER_ID
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     ROUTINE_SCHEDULE, USER_INFO
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     routineSchedule, userInfo
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsRoutineScheduleMapping implements Entity, - java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is ROUTINE_SCHEDULE_MAPPING. */ - public static final String TABLE = "ROUTINE_SCHEDULE_MAPPING"; - - /** ID-Annotation */ - public static final String id_ID = "identity"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** ID: {PK : ID : NotNull : BIGINT} */ - protected Long _id; - - /** SCHEDULE_ID: {NotNull : BIGINT : FK to ROUTINE_SCHEDULE} */ - protected Long _scheduleId; - - /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ - protected String _userId; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsRoutineScheduleMapping() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "routineScheduleMapping"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [routineSchedule] - // * * * * * * * * */ - public static final int routineSchedule_RELNO = 0; - - public static final String routineSchedule_RELKEYS = "SCHEDULE_ID:ID"; - - /** ROUTINE_SCHEDULE as 'routineSchedule'. */ - protected RoutineSchedule _parentRoutineSchedule; - - /** - * ROUTINE_SCHEDULE as 'routineSchedule'. {without lazy-load} - * - * @return The entity of foreign property 'routineSchedule'. (Nullable: If - * the foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public RoutineSchedule getRoutineSchedule() { - return _parentRoutineSchedule; - } - - /** - * ROUTINE_SCHEDULE as 'routineSchedule'. - * - * @param routineSchedule The entity of foreign property 'routineSchedule'. - * (Nullable) - */ - public void setRoutineSchedule(RoutineSchedule routineSchedule) { - _parentRoutineSchedule = routineSchedule; - } - - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [userInfo] - // * * * * * * * * */ - public static final int userInfo_RELNO = 1; - - public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; - - /** USER_INFO as 'userInfo'. */ - protected UserInfo _parentUserInfo; - - /** - * USER_INFO as 'userInfo'. {without lazy-load} - * - * @return The entity of foreign property 'userInfo'. (Nullable: If the - * foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public UserInfo getUserInfo() { - return _parentUserInfo; - } - - /** - * USER_INFO as 'userInfo'. - * - * @param userInfo The entity of foreign property 'userInfo'. (Nullable) - */ - public void setUserInfo(UserInfo userInfo) { - _parentUserInfo = userInfo; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsRoutineScheduleMapping)) { - return false; - } - BsRoutineScheduleMapping otherEntity = (BsRoutineScheduleMapping) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getScheduleId()); - sb.append(delimiter).append(getUserId()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ - public static final String id_COLUMN = "ID"; - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** - * The column annotation for S2Dao. {NotNull : BIGINT : FK to - * ROUTINE_SCHEDULE} - */ - public static final String scheduleId_COLUMN = "SCHEDULE_ID"; - - /** - * SCHEDULE_ID: {NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    - * - * @return The value of the column 'SCHEDULE_ID'. (Nullable) - */ - public Long getScheduleId() { - return _scheduleId; - } - - /** - * SCHEDULE_ID: {NotNull : BIGINT : FK to ROUTINE_SCHEDULE}
    - * - * @param scheduleId The value of the column 'SCHEDULE_ID'. (Nullable) - */ - public void setScheduleId(Long scheduleId) { - _modifiedProperties.addPropertyName("scheduleId"); - this._scheduleId = scheduleId; - } - - /** - * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to - * USER_INFO} - */ - public static final String userId_COLUMN = "USER_ID"; - - /** - * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    - * - * @return The value of the column 'USER_ID'. (Nullable) - */ - public String getUserId() { - return _userId; - } - - /** - * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    - * - * @param userId The value of the column 'USER_ID'. (Nullable) - */ - public void setUserId(String userId) { - _modifiedProperties.addPropertyName("userId"); - this._userId = userId; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleSchedule.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,672 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; - -/** - * The entity of SINGLE_SCHEDULE that the type is TABLE.
    - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, TITLE, LOCATION, START_DATE, START_TIME, END_DATE, END_TIME, SECRET, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     VERSIONNO
    - * 
    - * [foreign-table]
    - *     
    - * 
    - * [referrer-table]
    - *     SINGLE_SCHEDULE_CONTENT, SINGLE_SCHEDULE_MAPPING
    - * 
    - * [foreign-property]
    - *     singleScheduleContentAsOne
    - * 
    - * [referrer-property]
    - *     singleScheduleMappingList
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsSingleSchedule implements Entity, java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is SINGLE_SCHEDULE. */ - public static final String TABLE = "SINGLE_SCHEDULE"; - - /** VERSION_NO-Annotation */ - public static final String VERSION_NO_PROPERTY = "versionno"; - - /** ID-Annotation */ - public static final String id_ID = "identity"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** ID: {PK : ID : NotNull : BIGINT} */ - protected Long _id; - - /** TITLE: {NotNull : VARCHAR(100)} */ - protected String _title; - - /** LOCATION: {VARCHAR(100)} */ - protected String _location; - - /** START_DATE: {NotNull : DATE} */ - protected java.util.Date _startDate; - - /** START_TIME: {TIME} */ - protected java.sql.Time _startTime; - - /** END_DATE: {NotNull : DATE} */ - protected java.util.Date _endDate; - - /** END_TIME: {TIME} */ - protected java.sql.Time _endTime; - - /** SECRET: {NotNull : VARCHAR(1) : Default=[F]} */ - protected String _secret; - - /** CREATED_TIME: {NotNull : TIMESTAMP} */ - protected java.sql.Timestamp _createdTime; - - /** CREATED_BY: {NotNull : VARCHAR(255)} */ - protected String _createdBy; - - /** UPDATED_TIME: {TIMESTAMP} */ - protected java.sql.Timestamp _updatedTime; - - /** UPDATED_BY: {VARCHAR(255)} */ - protected String _updatedBy; - - /** DELETED_TIME: {TIMESTAMP} */ - protected java.sql.Timestamp _deletedTime; - - /** DELETED_BY: {VARCHAR(255)} */ - protected String _deletedBy; - - /** VERSIONNO: {NotNull : INTEGER} */ - protected Integer _versionno; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsSingleSchedule() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "singleSchedule"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [singleScheduleContentAsOne] - // * * * * * * * * */ - public static final int singleScheduleContentAsOne_RELNO = 0; - - public static final String singleScheduleContentAsOne_RELKEYS = "ID:ID"; - - /** SINGLE_SCHEDULE_CONTENT as 'singleScheduleContentAsOne'. */ - protected SingleScheduleContent _childrensingleScheduleContentAsOne; - - /** - * SINGLE_SCHEDULE_CONTENT as 'singleScheduleContentAsOne'. {without - * lazy-load}
    - * - * @return the entity of foreign property(referrer-as-one) - * 'singleScheduleContentAsOne'. (Nullable: If the foreign key does - * not have 'NotNull' constraint, please check null.) - */ - public SingleScheduleContent getSingleScheduleContentAsOne() { - return _childrensingleScheduleContentAsOne; - } - - /** - * SINGLE_SCHEDULE_CONTENT as 'singleScheduleContentAsOne'. - * - * @param singleScheduleContentAsOne The entity of foreign - * property(referrer-as-one) 'singleScheduleContentAsOne'. - * (Nullable) - */ - public void setSingleScheduleContentAsOne( - SingleScheduleContent singleScheduleContentAsOne) { - _childrensingleScheduleContentAsOne = singleScheduleContentAsOne; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Referrer Property = [singleScheduleMappingList] - // * * * * * * * * */ - /** SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. */ - protected List _childrenSingleScheduleMappingList; - - /** - * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. {without - * lazy-load}
    - * - * @return The entity list of referrer property 'singleScheduleMappingList'. - * (NotNull: If it's not loaded yet, initializes the list instance - * of referrer as empty and returns it.) - */ - public List getSingleScheduleMappingList() { - if (_childrenSingleScheduleMappingList == null) { - _childrenSingleScheduleMappingList = new ArrayList(); - } - return _childrenSingleScheduleMappingList; - } - - /** - * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. - * - * @param singleScheduleMappingList The entity list of referrer property - * 'singleScheduleMappingList'. (Nullable) - */ - public void setSingleScheduleMappingList( - List singleScheduleMappingList) { - _childrenSingleScheduleMappingList = singleScheduleMappingList; - } - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsSingleSchedule)) { - return false; - } - BsSingleSchedule otherEntity = (BsSingleSchedule) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getTitle()); - sb.append(delimiter).append(getLocation()); - sb.append(delimiter).append(getStartDate()); - sb.append(delimiter).append(getStartTime()); - sb.append(delimiter).append(getEndDate()); - sb.append(delimiter).append(getEndTime()); - sb.append(delimiter).append(getSecret()); - sb.append(delimiter).append(getCreatedTime()); - sb.append(delimiter).append(getCreatedBy()); - sb.append(delimiter).append(getUpdatedTime()); - sb.append(delimiter).append(getUpdatedBy()); - sb.append(delimiter).append(getDeletedTime()); - sb.append(delimiter).append(getDeletedBy()); - sb.append(delimiter).append(getVersionno()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ - public static final String id_COLUMN = "ID"; - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ - public static final String title_COLUMN = "TITLE"; - - /** - * TITLE: {NotNull : VARCHAR(100)}
    - * - * @return The value of the column 'TITLE'. (Nullable) - */ - public String getTitle() { - return _title; - } - - /** - * TITLE: {NotNull : VARCHAR(100)}
    - * - * @param title The value of the column 'TITLE'. (Nullable) - */ - public void setTitle(String title) { - _modifiedProperties.addPropertyName("title"); - this._title = title; - } - - /** The column annotation for S2Dao. {VARCHAR(100)} */ - public static final String location_COLUMN = "LOCATION"; - - /** - * LOCATION: {VARCHAR(100)}
    - * - * @return The value of the column 'LOCATION'. (Nullable) - */ - public String getLocation() { - return _location; - } - - /** - * LOCATION: {VARCHAR(100)}
    - * - * @param location The value of the column 'LOCATION'. (Nullable) - */ - public void setLocation(String location) { - _modifiedProperties.addPropertyName("location"); - this._location = location; - } - - /** The column annotation for S2Dao. {NotNull : DATE} */ - public static final String startDate_COLUMN = "START_DATE"; - - /** - * START_DATE: {NotNull : DATE}
    - * - * @return The value of the column 'START_DATE'. (Nullable) - */ - public java.util.Date getStartDate() { - return _startDate; - } - - /** - * START_DATE: {NotNull : DATE}
    - * - * @param startDate The value of the column 'START_DATE'. (Nullable) - */ - public void setStartDate(java.util.Date startDate) { - _modifiedProperties.addPropertyName("startDate"); - this._startDate = startDate; - } - - /** The column annotation for S2Dao. {TIME} */ - public static final String startTime_COLUMN = "START_TIME"; - - /** - * START_TIME: {TIME}
    - * - * @return The value of the column 'START_TIME'. (Nullable) - */ - public java.sql.Time getStartTime() { - return _startTime; - } - - /** - * START_TIME: {TIME}
    - * - * @param startTime The value of the column 'START_TIME'. (Nullable) - */ - public void setStartTime(java.sql.Time startTime) { - _modifiedProperties.addPropertyName("startTime"); - this._startTime = startTime; - } - - /** The column annotation for S2Dao. {NotNull : DATE} */ - public static final String endDate_COLUMN = "END_DATE"; - - /** - * END_DATE: {NotNull : DATE}
    - * - * @return The value of the column 'END_DATE'. (Nullable) - */ - public java.util.Date getEndDate() { - return _endDate; - } - - /** - * END_DATE: {NotNull : DATE}
    - * - * @param endDate The value of the column 'END_DATE'. (Nullable) - */ - public void setEndDate(java.util.Date endDate) { - _modifiedProperties.addPropertyName("endDate"); - this._endDate = endDate; - } - - /** The column annotation for S2Dao. {TIME} */ - public static final String endTime_COLUMN = "END_TIME"; - - /** - * END_TIME: {TIME}
    - * - * @return The value of the column 'END_TIME'. (Nullable) - */ - public java.sql.Time getEndTime() { - return _endTime; - } - - /** - * END_TIME: {TIME}
    - * - * @param endTime The value of the column 'END_TIME'. (Nullable) - */ - public void setEndTime(java.sql.Time endTime) { - _modifiedProperties.addPropertyName("endTime"); - this._endTime = endTime; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(1) : Default=[F]} */ - public static final String secret_COLUMN = "SECRET"; - - /** - * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    - * - * @return The value of the column 'SECRET'. (Nullable) - */ - public String getSecret() { - return _secret; - } - - /** - * SECRET: {NotNull : VARCHAR(1) : Default=[F]}
    - * - * @param secret The value of the column 'SECRET'. (Nullable) - */ - public void setSecret(String secret) { - _modifiedProperties.addPropertyName("secret"); - this._secret = secret; - } - - /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ - public static final String createdTime_COLUMN = "CREATED_TIME"; - - /** - * CREATED_TIME: {NotNull : TIMESTAMP}
    - * - * @return The value of the column 'CREATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getCreatedTime() { - return _createdTime; - } - - /** - * CREATED_TIME: {NotNull : TIMESTAMP}
    - * - * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) - */ - public void setCreatedTime(java.sql.Timestamp createdTime) { - _modifiedProperties.addPropertyName("createdTime"); - this._createdTime = createdTime; - } - - /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ - public static final String createdBy_COLUMN = "CREATED_BY"; - - /** - * CREATED_BY: {NotNull : VARCHAR(255)}
    - * - * @return The value of the column 'CREATED_BY'. (Nullable) - */ - public String getCreatedBy() { - return _createdBy; - } - - /** - * CREATED_BY: {NotNull : VARCHAR(255)}
    - * - * @param createdBy The value of the column 'CREATED_BY'. (Nullable) - */ - public void setCreatedBy(String createdBy) { - _modifiedProperties.addPropertyName("createdBy"); - this._createdBy = createdBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP} */ - public static final String updatedTime_COLUMN = "UPDATED_TIME"; - - /** - * UPDATED_TIME: {TIMESTAMP}
    - * - * @return The value of the column 'UPDATED_TIME'. (Nullable) - */ - public java.sql.Timestamp getUpdatedTime() { - return _updatedTime; - } - - /** - * UPDATED_TIME: {TIMESTAMP}
    - * - * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) - */ - public void setUpdatedTime(java.sql.Timestamp updatedTime) { - _modifiedProperties.addPropertyName("updatedTime"); - this._updatedTime = updatedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255)} */ - public static final String updatedBy_COLUMN = "UPDATED_BY"; - - /** - * UPDATED_BY: {VARCHAR(255)}
    - * - * @return The value of the column 'UPDATED_BY'. (Nullable) - */ - public String getUpdatedBy() { - return _updatedBy; - } - - /** - * UPDATED_BY: {VARCHAR(255)}
    - * - * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) - */ - public void setUpdatedBy(String updatedBy) { - _modifiedProperties.addPropertyName("updatedBy"); - this._updatedBy = updatedBy; - } - - /** The column annotation for S2Dao. {TIMESTAMP} */ - public static final String deletedTime_COLUMN = "DELETED_TIME"; - - /** - * DELETED_TIME: {TIMESTAMP}
    - * - * @return The value of the column 'DELETED_TIME'. (Nullable) - */ - public java.sql.Timestamp getDeletedTime() { - return _deletedTime; - } - - /** - * DELETED_TIME: {TIMESTAMP}
    - * - * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) - */ - public void setDeletedTime(java.sql.Timestamp deletedTime) { - _modifiedProperties.addPropertyName("deletedTime"); - this._deletedTime = deletedTime; - } - - /** The column annotation for S2Dao. {VARCHAR(255)} */ - public static final String deletedBy_COLUMN = "DELETED_BY"; - - /** - * DELETED_BY: {VARCHAR(255)}
    - * - * @return The value of the column 'DELETED_BY'. (Nullable) - */ - public String getDeletedBy() { - return _deletedBy; - } - - /** - * DELETED_BY: {VARCHAR(255)}
    - * - * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) - */ - public void setDeletedBy(String deletedBy) { - _modifiedProperties.addPropertyName("deletedBy"); - this._deletedBy = deletedBy; - } - - /** The column annotation for S2Dao. {NotNull : INTEGER} */ - public static final String versionno_COLUMN = "VERSIONNO"; - - /** - * VERSIONNO: {NotNull : INTEGER}
    - * - * @return The value of the column 'VERSIONNO'. (Nullable) - */ - public Integer getVersionno() { - return _versionno; - } - - /** - * VERSIONNO: {NotNull : INTEGER}
    - * - * @param versionno The value of the column 'VERSIONNO'. (Nullable) - */ - public void setVersionno(Integer versionno) { - _modifiedProperties.addPropertyName("versionno"); - this._versionno = versionno; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleContent.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,295 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity; - -import java.util.Set; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; - -/** - * The entity of SINGLE_SCHEDULE_CONTENT that the type is TABLE.
    - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, CONTENT
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     SINGLE_SCHEDULE
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     singleSchedule
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsSingleScheduleContent implements Entity, - java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is SINGLE_SCHEDULE_CONTENT. */ - public static final String TABLE = "SINGLE_SCHEDULE_CONTENT"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** ID: {PK : NotNull : BIGINT : FK to SINGLE_SCHEDULE} */ - protected Long _id; - - /** CONTENT: {VARCHAR(1000)} */ - protected String _content; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsSingleScheduleContent() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "singleScheduleContent"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [singleSchedule] - // * * * * * * * * */ - public static final int singleSchedule_RELNO = 0; - - public static final String singleSchedule_RELKEYS = "ID:ID"; - - /** SINGLE_SCHEDULE as 'singleSchedule'. */ - protected SingleSchedule _parentSingleSchedule; - - /** - * SINGLE_SCHEDULE as 'singleSchedule'. {without lazy-load} - * - * @return The entity of foreign property 'singleSchedule'. (Nullable: If - * the foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public SingleSchedule getSingleSchedule() { - return _parentSingleSchedule; - } - - /** - * SINGLE_SCHEDULE as 'singleSchedule'. - * - * @param singleSchedule The entity of foreign property 'singleSchedule'. - * (Nullable) - */ - public void setSingleSchedule(SingleSchedule singleSchedule) { - _parentSingleSchedule = singleSchedule; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsSingleScheduleContent)) { - return false; - } - BsSingleScheduleContent otherEntity = (BsSingleScheduleContent) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getContent()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** - * The column annotation for S2Dao. {PK : NotNull : BIGINT : FK to - * SINGLE_SCHEDULE} - */ - public static final String id_COLUMN = "ID"; - - /** - * ID: {PK : NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * ID: {PK : NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** The column annotation for S2Dao. {VARCHAR(1000)} */ - public static final String content_COLUMN = "CONTENT"; - - /** - * CONTENT: {VARCHAR(1000)}
    - * - * @return The value of the column 'CONTENT'. (Nullable) - */ - public String getContent() { - return _content; - } - - /** - * CONTENT: {VARCHAR(1000)}
    - * - * @param content The value of the column 'CONTENT'. (Nullable) - */ - public void setContent(String content) { - _modifiedProperties.addPropertyName("content"); - this._content = content; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsSingleScheduleMapping.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,358 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity; - -import java.util.Set; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; - -/** - * The entity of SINGLE_SCHEDULE_MAPPING that the type is TABLE.
    - * - *
    - * [primary-key]
    - *     ID
    - * 
    - * [column]
    - *     ID, SCHEDULE_ID, USER_ID
    - * 
    - * [sequence]
    - *     
    - * 
    - * [identity]
    - *     ID
    - * 
    - * [version-no]
    - *     
    - * 
    - * [foreign-table]
    - *     SINGLE_SCHEDULE, USER_INFO
    - * 
    - * [referrer-table]
    - *     
    - * 
    - * [foreign-property]
    - *     singleSchedule, userInfo
    - * 
    - * [referrer-property]
    - * 
    - * 
    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class BsSingleScheduleMapping implements Entity, - java.io.Serializable { - - //========================================================================== - // ========= - // Definition - // ========== - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - /** TABLE-Annotation for S2Dao. The value is SINGLE_SCHEDULE_MAPPING. */ - public static final String TABLE = "SINGLE_SCHEDULE_MAPPING"; - - /** ID-Annotation */ - public static final String id_ID = "identity"; - - //========================================================================== - // ========= - // Attribute - // ========= - // ----------------------------------------------------- - // Column - // ------ - /** ID: {PK : ID : NotNull : BIGINT} */ - protected Long _id; - - /** SCHEDULE_ID: {NotNull : BIGINT : FK to SINGLE_SCHEDULE} */ - protected Long _scheduleId; - - /** USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO} */ - protected String _userId; - - // ----------------------------------------------------- - // Internal - // -------- - /** The attribute of entity modified properties. (for S2Dao) */ - protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); - - //========================================================================== - // ========= - // Constructor - // =========== - public BsSingleScheduleMapping() { - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - public String getTablePropertyName() {// as JavaBeansRule - return "singleScheduleMapping"; - } - - //========================================================================== - // ========= - // DBMeta - // ====== - public DBMeta getDBMeta() { - return DBMetaInstanceHandler.findDBMeta(getTableDbName()); - } - - //========================================================================== - // ========= - // Classification Classifying - // ========================== - //========================================================================== - // ========= - // Classification Determination - // ============================ - //========================================================================== - // ========= - // Classification Name/Alias - // ========================= - //========================================================================== - // ========= - // Foreign Property - // ================ - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [singleSchedule] - // * * * * * * * * */ - public static final int singleSchedule_RELNO = 0; - - public static final String singleSchedule_RELKEYS = "SCHEDULE_ID:ID"; - - /** SINGLE_SCHEDULE as 'singleSchedule'. */ - protected SingleSchedule _parentSingleSchedule; - - /** - * SINGLE_SCHEDULE as 'singleSchedule'. {without lazy-load} - * - * @return The entity of foreign property 'singleSchedule'. (Nullable: If - * the foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public SingleSchedule getSingleSchedule() { - return _parentSingleSchedule; - } - - /** - * SINGLE_SCHEDULE as 'singleSchedule'. - * - * @param singleSchedule The entity of foreign property 'singleSchedule'. - * (Nullable) - */ - public void setSingleSchedule(SingleSchedule singleSchedule) { - _parentSingleSchedule = singleSchedule; - } - - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Foreign Property = [userInfo] - // * * * * * * * * */ - public static final int userInfo_RELNO = 1; - - public static final String userInfo_RELKEYS = "USER_ID:USER_ID"; - - /** USER_INFO as 'userInfo'. */ - protected UserInfo _parentUserInfo; - - /** - * USER_INFO as 'userInfo'. {without lazy-load} - * - * @return The entity of foreign property 'userInfo'. (Nullable: If the - * foreign key does not have 'NotNull' constraint, please check - * null.) - */ - public UserInfo getUserInfo() { - return _parentUserInfo; - } - - /** - * USER_INFO as 'userInfo'. - * - * @param userInfo The entity of foreign property 'userInfo'. (Nullable) - */ - public void setUserInfo(UserInfo userInfo) { - _parentUserInfo = userInfo; - } - - //========================================================================== - // ========= - // Referrer Property - // ================= - - //========================================================================== - // ========= - // Determination - // ============= - public boolean hasPrimaryKeyValue() { - if (_id == null) { - return false; - } - return true; - } - - //========================================================================== - // ========= - // Modified Properties - // =================== - public Set getModifiedPropertyNames() { - return _modifiedProperties.getPropertyNames(); - } - - protected EntityModifiedProperties newEntityModifiedProperties() { - return new EntityModifiedProperties(); - } - - public void clearModifiedPropertyNames() { - _modifiedProperties.clear(); - } - - public boolean hasModification() { - return !_modifiedProperties.isEmpty(); - } - - //========================================================================== - // ========= - // Basic Override - // ============== - /** - * If the primary-key of the other is same as this one, returns true. - * - * @param other Other entity. - * @return Comparing result. - */ - public boolean equals(Object other) { - if (other == null || !(other instanceof BsSingleScheduleMapping)) { - return false; - } - BsSingleScheduleMapping otherEntity = (BsSingleScheduleMapping) other; - if (!helpComparingValue(getId(), otherEntity.getId())) { - return false; - } - return true; - } - - protected boolean helpComparingValue(Object value1, Object value2) { - if (value1 == null && value2 == null) { - return true; - } - return value1 != null && value2 != null && value1.equals(value2); - } - - /** - * Calculates hash-code from primary-key. - * - * @return Hash-code from primary-keys. - */ - public int hashCode() { - int result = 17; - if (this.getId() != null) { - result = result + getId().hashCode(); - } - return result; - } - - /** - * @return The view string of columns. (NotNull) - */ - public String toString() { - String delimiter = ","; - StringBuilder sb = new StringBuilder(); - sb.append(delimiter).append(getId()); - sb.append(delimiter).append(getScheduleId()); - sb.append(delimiter).append(getUserId()); - if (sb.length() > 0) { - sb.delete(0, delimiter.length()); - } - sb.insert(0, "{").append("}"); - return sb.toString(); - } - - //========================================================================== - // ========= - // Accessor - // ======== - - /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ - public static final String id_COLUMN = "ID"; - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public Long getId() { - return _id; - } - - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public void setId(Long id) { - _modifiedProperties.addPropertyName("id"); - this._id = id; - } - - /** - * The column annotation for S2Dao. {NotNull : BIGINT : FK to - * SINGLE_SCHEDULE} - */ - public static final String scheduleId_COLUMN = "SCHEDULE_ID"; - - /** - * SCHEDULE_ID: {NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    - * - * @return The value of the column 'SCHEDULE_ID'. (Nullable) - */ - public Long getScheduleId() { - return _scheduleId; - } - - /** - * SCHEDULE_ID: {NotNull : BIGINT : FK to SINGLE_SCHEDULE}
    - * - * @param scheduleId The value of the column 'SCHEDULE_ID'. (Nullable) - */ - public void setScheduleId(Long scheduleId) { - _modifiedProperties.addPropertyName("scheduleId"); - this._scheduleId = scheduleId; - } - - /** - * The column annotation for S2Dao. {NotNull : VARCHAR(255) : FK to - * USER_INFO} - */ - public static final String userId_COLUMN = "USER_ID"; - - /** - * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    - * - * @return The value of the column 'USER_ID'. (Nullable) - */ - public String getUserId() { - return _userId; - } - - /** - * USER_ID: {NotNull : VARCHAR(255) : FK to USER_INFO}
    - * - * @param userId The value of the column 'USER_ID'. (Nullable) - */ - public void setUserId(String userId) { - _modifiedProperties.addPropertyName("userId"); - this._userId = userId; - } - -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -7,12 +7,11 @@ import jp.sf.pal.scheduler.db.allcommon.Entity; import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; import jp.sf.pal.scheduler.db.exentity.GroupInfo; import jp.sf.pal.scheduler.db.exentity.GroupMapping; import jp.sf.pal.scheduler.db.exentity.RoleInfo; import jp.sf.pal.scheduler.db.exentity.RoleMapping; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; /** * The entity of USER_INFO that the type is TABLE.
    @@ -37,13 +36,13 @@ * GROUP_INFO, ROLE_INFO * * [referrer-table] - * GROUP_MAPPING, ROLE_MAPPING, ROUTINE_SCHEDULE_MAPPING, SINGLE_SCHEDULE_MAPPING + * EVENT_SCHEDULE_MAPPING, GROUP_MAPPING, ROLE_MAPPING * * [foreign-property] * groupInfo, roleInfo * * [referrer-property] - * groupMappingList, roleMappingList, routineScheduleMappingList, singleScheduleMappingList + * eventScheduleMappingList, groupMappingList, roleMappingList *
    * * @author DBFlute(AutoGenerator) @@ -248,6 +247,38 @@ // Referrer Property // ================= // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [eventScheduleMappingList] + // * * * * * * * * */ + /** EVENT_SCHEDULE_MAPPING as 'eventScheduleMappingList'. */ + protected List _childrenEventScheduleMappingList; + + /** + * EVENT_SCHEDULE_MAPPING as 'eventScheduleMappingList'. {without lazy-load} + *
    + * + * @return The entity list of referrer property 'eventScheduleMappingList'. + * (NotNull: If it's not loaded yet, initializes the list instance + * of referrer as empty and returns it.) + */ + public List getEventScheduleMappingList() { + if (_childrenEventScheduleMappingList == null) { + _childrenEventScheduleMappingList = new ArrayList(); + } + return _childrenEventScheduleMappingList; + } + + /** + * EVENT_SCHEDULE_MAPPING as 'eventScheduleMappingList'. + * + * @param eventScheduleMappingList The entity list of referrer property + * 'eventScheduleMappingList'. (Nullable) + */ + public void setEventScheduleMappingList( + List eventScheduleMappingList) { + _childrenEventScheduleMappingList = eventScheduleMappingList; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Referrer Property = [groupMappingList] // * * * * * * * * */ /** GROUP_MAPPING as 'groupMappingList'. */ @@ -307,71 +338,6 @@ _childrenRoleMappingList = roleMappingList; } - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Referrer Property = [routineScheduleMappingList] - // * * * * * * * * */ - /** ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. */ - protected List _childrenRoutineScheduleMappingList; - - /** - * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. {without - * lazy-load}
    - * - * @return The entity list of referrer property - * 'routineScheduleMappingList'. (NotNull: If it's not loaded yet, - * initializes the list instance of referrer as empty and returns - * it.) - */ - public List getRoutineScheduleMappingList() { - if (_childrenRoutineScheduleMappingList == null) { - _childrenRoutineScheduleMappingList = new ArrayList(); - } - return _childrenRoutineScheduleMappingList; - } - - /** - * ROUTINE_SCHEDULE_MAPPING as 'routineScheduleMappingList'. - * - * @param routineScheduleMappingList The entity list of referrer property - * 'routineScheduleMappingList'. (Nullable) - */ - public void setRoutineScheduleMappingList( - List routineScheduleMappingList) { - _childrenRoutineScheduleMappingList = routineScheduleMappingList; - } - - // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - // Referrer Property = [singleScheduleMappingList] - // * * * * * * * * */ - /** SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. */ - protected List _childrenSingleScheduleMappingList; - - /** - * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. {without - * lazy-load}
    - * - * @return The entity list of referrer property 'singleScheduleMappingList'. - * (NotNull: If it's not loaded yet, initializes the list instance - * of referrer as empty and returns it.) - */ - public List getSingleScheduleMappingList() { - if (_childrenSingleScheduleMappingList == null) { - _childrenSingleScheduleMappingList = new ArrayList(); - } - return _childrenSingleScheduleMappingList; - } - - /** - * SINGLE_SCHEDULE_MAPPING as 'singleScheduleMappingList'. - * - * @param singleScheduleMappingList The entity list of referrer property - * 'singleScheduleMappingList'. (Nullable) - */ - public void setSingleScheduleMappingList( - List singleScheduleMappingList) { - _childrenSingleScheduleMappingList = singleScheduleMappingList; - } - //========================================================================== // ========= // Determination Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleContentDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleContentDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleContentDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,283 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; + +/** + * The DB meta of EVENT_SCHEDULE_CONTENT. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContentDbm extends AbstractDBMeta { + + private static final EventScheduleContentDbm _instance = new EventScheduleContentDbm(); + + private EventScheduleContentDbm() { + } + + public static EventScheduleContentDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + public String getTablePropertyName() { + return "eventScheduleContent"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnContent = cci("CONTENT", "content", + String.class, false, 1000, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnContent() { + return _columnContent; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.EventScheduleContent"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.EventScheduleContentCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.EventScheduleContentDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.EventScheduleContentBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return EventScheduleContent.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public EventScheduleContent newMyEntity() { + return new EventScheduleContent(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignEventSchedule() { + Map map = newLinkedHashMap(columnId(), + EventScheduleDbm.getInstance().columnId()); + return cfi("eventSchedule", this, EventScheduleDbm.getInstance(), map, + 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((EventScheduleContent) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((EventScheduleContent) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsContent(), columnContent()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((EventScheduleContent) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(EventScheduleContent e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsContent implements Eps { + public void setup(EventScheduleContent e, Object v) { + e.setContent((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleContentDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,490 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; + +/** + * The DB meta of EVENT_SCHEDULE. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleDbm extends AbstractDBMeta { + + private static final EventScheduleDbm _instance = new EventScheduleDbm(); + + private EventScheduleDbm() { + } + + public static EventScheduleDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE"; + } + + public String getTablePropertyName() { + return "eventSchedule"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnTitle = cci("TITLE", "title", String.class, + false, 100, 0); + + protected ColumnInfo _columnLocation = cci("LOCATION", "location", + String.class, false, 100, 0); + + protected ColumnInfo _columnStartDate = cci("START_DATE", "startDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnStartTime = cci("START_TIME", "startTime", + java.sql.Time.class, false, null, null); + + protected ColumnInfo _columnEndDate = cci("END_DATE", "endDate", + java.util.Date.class, false, null, null); + + protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", + java.sql.Time.class, false, null, null); + + protected ColumnInfo _columnSecret = cci("SECRET", "secret", String.class, + false, 1, 0); + + protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, + 10, 0); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnTitle() { + return _columnTitle; + } + + public ColumnInfo columnLocation() { + return _columnLocation; + } + + public ColumnInfo columnStartDate() { + return _columnStartDate; + } + + public ColumnInfo columnStartTime() { + return _columnStartTime; + } + + public ColumnInfo columnEndDate() { + return _columnEndDate; + } + + public ColumnInfo columnEndTime() { + return _columnEndTime; + } + + public ColumnInfo columnSecret() { + return _columnSecret; + } + + public ColumnInfo columnType() { + return _columnType; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.EventSchedule"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.EventScheduleCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.EventScheduleDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.EventScheduleBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return EventSchedule.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public EventSchedule newMyEntity() { + return new EventSchedule(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignEventScheduleContentAsOne() { + Map map = newLinkedHashMap(columnId(), + EventScheduleContentDbm.getInstance().columnId()); + return cfi("eventScheduleContentAsOne", this, EventScheduleContentDbm + .getInstance(), map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerEventScheduleMappingList() { + Map map = newLinkedHashMap(columnId(), + EventScheduleMappingDbm.getInstance().columnScheduleId()); + return cri("eventScheduleMappingList", this, EventScheduleMappingDbm + .getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((EventSchedule) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((EventSchedule) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsTitle(), columnTitle()); + setupEps(_epsMap, new EpsLocation(), columnLocation()); + setupEps(_epsMap, new EpsStartDate(), columnStartDate()); + setupEps(_epsMap, new EpsStartTime(), columnStartTime()); + setupEps(_epsMap, new EpsEndDate(), columnEndDate()); + setupEps(_epsMap, new EpsEndTime(), columnEndTime()); + setupEps(_epsMap, new EpsSecret(), columnSecret()); + setupEps(_epsMap, new EpsType(), columnType()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((EventSchedule) entity, value); + } + + public static class EpsId implements Eps { + public void setup(EventSchedule e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsTitle implements Eps { + public void setup(EventSchedule e, Object v) { + e.setTitle((String) v); + } + } + + public static class EpsLocation implements Eps { + public void setup(EventSchedule e, Object v) { + e.setLocation((String) v); + } + } + + public static class EpsStartDate implements Eps { + public void setup(EventSchedule e, Object v) { + e.setStartDate((java.util.Date) v); + } + } + + public static class EpsStartTime implements Eps { + public void setup(EventSchedule e, Object v) { + e.setStartTime((java.sql.Time) v); + } + } + + public static class EpsEndDate implements Eps { + public void setup(EventSchedule e, Object v) { + e.setEndDate((java.util.Date) v); + } + } + + public static class EpsEndTime implements Eps { + public void setup(EventSchedule e, Object v) { + e.setEndTime((java.sql.Time) v); + } + } + + public static class EpsSecret implements Eps { + public void setup(EventSchedule e, Object v) { + e.setSecret((String) v); + } + } + + public static class EpsType implements Eps { + public void setup(EventSchedule e, Object v) { + e.setType((String) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(EventSchedule e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(EventSchedule e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(EventSchedule e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(EventSchedule e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(EventSchedule e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(EventSchedule e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(EventSchedule e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleMappingDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleMappingDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,303 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; + +/** + * The DB meta of EVENT_SCHEDULE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMappingDbm extends AbstractDBMeta { + + private static final EventScheduleMappingDbm _instance = new EventScheduleMappingDbm(); + + private EventScheduleMappingDbm() { + } + + public static EventScheduleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() { + return "eventScheduleMapping"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnScheduleId = cci("SCHEDULE_ID", "scheduleId", + Long.class, false, null, null); + + protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, + false, 255, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnScheduleId() { + return _columnScheduleId; + } + + public ColumnInfo columnUserId() { + return _columnUserId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.EventScheduleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.EventScheduleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.EventScheduleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return EventScheduleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public EventScheduleMapping newMyEntity() { + return new EventScheduleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignEventSchedule() { + Map map = newLinkedHashMap(columnScheduleId(), + EventScheduleDbm.getInstance().columnId()); + return cfi("eventSchedule", this, EventScheduleDbm.getInstance(), map, + 0, false); + } + + public ForeignInfo foreignUserInfo() { + Map map = newLinkedHashMap(columnUserId(), + UserInfoDbm.getInstance().columnUserId()); + return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((EventScheduleMapping) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((EventScheduleMapping) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsScheduleId(), columnScheduleId()); + setupEps(_epsMap, new EpsUserId(), columnUserId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((EventScheduleMapping) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(EventScheduleMapping e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsScheduleId implements Eps { + public void setup(EventScheduleMapping e, Object v) { + e.setScheduleId((Long) v); + } + } + + public static class EpsUserId implements Eps { + public void setup(EventScheduleMapping e, Object v) { + e.setUserId((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleContentDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,283 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; - -/** - * The DB meta of ROUTINE_SCHEDULE_CONTENT. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContentDbm extends AbstractDBMeta { - - private static final RoutineScheduleContentDbm _instance = new RoutineScheduleContentDbm(); - - private RoutineScheduleContentDbm() { - } - - public static RoutineScheduleContentDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - public String getTablePropertyName() { - return "routineScheduleContent"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnContent = cci("CONTENT", "content", - String.class, false, 1000, 0); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnContent() { - return _columnContent; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.scheduler.db.cbean.bs.RoutineScheduleContentCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.scheduler.db.exdao.RoutineScheduleContentDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.scheduler.db.exbhv.RoutineScheduleContentBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return RoutineScheduleContent.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public RoutineScheduleContent newMyEntity() { - return new RoutineScheduleContent(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignRoutineSchedule() { - Map map = newLinkedHashMap(columnId(), - RoutineScheduleDbm.getInstance().columnId()); - return cfi("routineSchedule", this, RoutineScheduleDbm.getInstance(), - map, 0, true); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - - //========================================================================== - // ========= - // Various Info - // ============ - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((RoutineScheduleContent) entity, primaryKeyMap, - _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((RoutineScheduleContent) entity, columnValueMap, - _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsContent(), columnContent()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((RoutineScheduleContent) entity, - value); - } - - public static class EpsId implements Eps { - public void setup(RoutineScheduleContent e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsContent implements Eps { - public void setup(RoutineScheduleContent e, Object v) { - e.setContent((String) v); - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,491 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; - -/** - * The DB meta of ROUTINE_SCHEDULE. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleDbm extends AbstractDBMeta { - - private static final RoutineScheduleDbm _instance = new RoutineScheduleDbm(); - - private RoutineScheduleDbm() { - } - - public static RoutineScheduleDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE"; - } - - public String getTablePropertyName() { - return "routineSchedule"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnTitle = cci("TITLE", "title", String.class, - false, 100, 0); - - protected ColumnInfo _columnLocation = cci("LOCATION", "location", - String.class, false, 100, 0); - - protected ColumnInfo _columnStartDate = cci("START_DATE", "startDate", - java.util.Date.class, false, null, null); - - protected ColumnInfo _columnStartTime = cci("START_TIME", "startTime", - java.sql.Time.class, false, null, null); - - protected ColumnInfo _columnEndDate = cci("END_DATE", "endDate", - java.util.Date.class, false, null, null); - - protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", - java.sql.Time.class, false, null, null); - - protected ColumnInfo _columnSecret = cci("SECRET", "secret", String.class, - false, 1, 0); - - protected ColumnInfo _columnType = cci("TYPE", "type", String.class, false, - 10, 0); - - protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", - "createdTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", - "updatedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", - "deletedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", - Integer.class, false, null, null, OptimisticLockType.VERSION_NO); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnTitle() { - return _columnTitle; - } - - public ColumnInfo columnLocation() { - return _columnLocation; - } - - public ColumnInfo columnStartDate() { - return _columnStartDate; - } - - public ColumnInfo columnStartTime() { - return _columnStartTime; - } - - public ColumnInfo columnEndDate() { - return _columnEndDate; - } - - public ColumnInfo columnEndTime() { - return _columnEndTime; - } - - public ColumnInfo columnSecret() { - return _columnSecret; - } - - public ColumnInfo columnType() { - return _columnType; - } - - public ColumnInfo columnCreatedTime() { - return _columnCreatedTime; - } - - public ColumnInfo columnCreatedBy() { - return _columnCreatedBy; - } - - public ColumnInfo columnUpdatedTime() { - return _columnUpdatedTime; - } - - public ColumnInfo columnUpdatedBy() { - return _columnUpdatedBy; - } - - public ColumnInfo columnDeletedTime() { - return _columnDeletedTime; - } - - public ColumnInfo columnDeletedBy() { - return _columnDeletedBy; - } - - public ColumnInfo columnVersionno() { - return _columnVersionno; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.scheduler.db.exentity.RoutineSchedule"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.scheduler.db.cbean.bs.RoutineScheduleCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.scheduler.db.exdao.RoutineScheduleDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.scheduler.db.exbhv.RoutineScheduleBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return RoutineSchedule.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public RoutineSchedule newMyEntity() { - return new RoutineSchedule(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignRoutineScheduleContentAsOne() { - Map map = newLinkedHashMap(columnId(), - RoutineScheduleContentDbm.getInstance().columnId()); - return cfi("routineScheduleContentAsOne", this, - RoutineScheduleContentDbm.getInstance(), map, 0, true); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - public ReferrerInfo referrerRoutineScheduleMappingList() { - Map map = newLinkedHashMap(columnId(), - RoutineScheduleMappingDbm.getInstance().columnScheduleId()); - return cri("routineScheduleMappingList", this, - RoutineScheduleMappingDbm.getInstance(), map, false); - } - - //========================================================================== - // ========= - // Various Info - // ============ - public boolean hasVersionNo() { - return true; - } - - public ColumnInfo getVersionNoColumnInfo() { - return _columnVersionno; - } - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((RoutineSchedule) entity, primaryKeyMap, _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((RoutineSchedule) entity, columnValueMap, - _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsTitle(), columnTitle()); - setupEps(_epsMap, new EpsLocation(), columnLocation()); - setupEps(_epsMap, new EpsStartDate(), columnStartDate()); - setupEps(_epsMap, new EpsStartTime(), columnStartTime()); - setupEps(_epsMap, new EpsEndDate(), columnEndDate()); - setupEps(_epsMap, new EpsEndTime(), columnEndTime()); - setupEps(_epsMap, new EpsSecret(), columnSecret()); - setupEps(_epsMap, new EpsType(), columnType()); - setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); - setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); - setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); - setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); - setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); - setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); - setupEps(_epsMap, new EpsVersionno(), columnVersionno()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((RoutineSchedule) entity, value); - } - - public static class EpsId implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsTitle implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setTitle((String) v); - } - } - - public static class EpsLocation implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setLocation((String) v); - } - } - - public static class EpsStartDate implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setStartDate((java.util.Date) v); - } - } - - public static class EpsStartTime implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setStartTime((java.sql.Time) v); - } - } - - public static class EpsEndDate implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setEndDate((java.util.Date) v); - } - } - - public static class EpsEndTime implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setEndTime((java.sql.Time) v); - } - } - - public static class EpsSecret implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setSecret((String) v); - } - } - - public static class EpsType implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setType((String) v); - } - } - - public static class EpsCreatedTime implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setCreatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsCreatedBy implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setCreatedBy((String) v); - } - } - - public static class EpsUpdatedTime implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setUpdatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsUpdatedBy implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setUpdatedBy((String) v); - } - } - - public static class EpsDeletedTime implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setDeletedTime((java.sql.Timestamp) v); - } - } - - public static class EpsDeletedBy implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setDeletedBy((String) v); - } - } - - public static class EpsVersionno implements Eps { - public void setup(RoutineSchedule e, Object v) { - e.setVersionno((Integer) v); - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/RoutineScheduleMappingDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,303 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; - -/** - * The DB meta of ROUTINE_SCHEDULE_MAPPING. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMappingDbm extends AbstractDBMeta { - - private static final RoutineScheduleMappingDbm _instance = new RoutineScheduleMappingDbm(); - - private RoutineScheduleMappingDbm() { - } - - public static RoutineScheduleMappingDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - public String getTablePropertyName() { - return "routineScheduleMapping"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnScheduleId = cci("SCHEDULE_ID", "scheduleId", - Long.class, false, null, null); - - protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, - false, 255, 0); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnScheduleId() { - return _columnScheduleId; - } - - public ColumnInfo columnUserId() { - return _columnUserId; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.scheduler.db.cbean.bs.RoutineScheduleMappingCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.scheduler.db.exdao.RoutineScheduleMappingDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return RoutineScheduleMapping.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public RoutineScheduleMapping newMyEntity() { - return new RoutineScheduleMapping(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignRoutineSchedule() { - Map map = newLinkedHashMap(columnScheduleId(), - RoutineScheduleDbm.getInstance().columnId()); - return cfi("routineSchedule", this, RoutineScheduleDbm.getInstance(), - map, 0, false); - } - - public ForeignInfo foreignUserInfo() { - Map map = newLinkedHashMap(columnUserId(), - UserInfoDbm.getInstance().columnUserId()); - return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - - //========================================================================== - // ========= - // Various Info - // ============ - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((RoutineScheduleMapping) entity, primaryKeyMap, - _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((RoutineScheduleMapping) entity, columnValueMap, - _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsScheduleId(), columnScheduleId()); - setupEps(_epsMap, new EpsUserId(), columnUserId()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((RoutineScheduleMapping) entity, - value); - } - - public static class EpsId implements Eps { - public void setup(RoutineScheduleMapping e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsScheduleId implements Eps { - public void setup(RoutineScheduleMapping e, Object v) { - e.setScheduleId((Long) v); - } - } - - public static class EpsUserId implements Eps { - public void setup(RoutineScheduleMapping e, Object v) { - e.setUserId((String) v); - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleContentDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,283 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; - -/** - * The DB meta of SINGLE_SCHEDULE_CONTENT. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContentDbm extends AbstractDBMeta { - - private static final SingleScheduleContentDbm _instance = new SingleScheduleContentDbm(); - - private SingleScheduleContentDbm() { - } - - public static SingleScheduleContentDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - public String getTablePropertyName() { - return "singleScheduleContent"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnContent = cci("CONTENT", "content", - String.class, false, 1000, 0); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnContent() { - return _columnContent; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.scheduler.db.exentity.SingleScheduleContent"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.scheduler.db.cbean.bs.SingleScheduleContentCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.scheduler.db.exdao.SingleScheduleContentDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.scheduler.db.exbhv.SingleScheduleContentBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return SingleScheduleContent.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public SingleScheduleContent newMyEntity() { - return new SingleScheduleContent(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignSingleSchedule() { - Map map = newLinkedHashMap(columnId(), - SingleScheduleDbm.getInstance().columnId()); - return cfi("singleSchedule", this, SingleScheduleDbm.getInstance(), - map, 0, true); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - - //========================================================================== - // ========= - // Various Info - // ============ - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((SingleScheduleContent) entity, primaryKeyMap, - _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((SingleScheduleContent) entity, columnValueMap, - _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsContent(), columnContent()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((SingleScheduleContent) entity, - value); - } - - public static class EpsId implements Eps { - public void setup(SingleScheduleContent e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsContent implements Eps { - public void setup(SingleScheduleContent e, Object v) { - e.setContent((String) v); - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,476 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; - -/** - * The DB meta of SINGLE_SCHEDULE. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleDbm extends AbstractDBMeta { - - private static final SingleScheduleDbm _instance = new SingleScheduleDbm(); - - private SingleScheduleDbm() { - } - - public static SingleScheduleDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE"; - } - - public String getTablePropertyName() { - return "singleSchedule"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnTitle = cci("TITLE", "title", String.class, - false, 100, 0); - - protected ColumnInfo _columnLocation = cci("LOCATION", "location", - String.class, false, 100, 0); - - protected ColumnInfo _columnStartDate = cci("START_DATE", "startDate", - java.util.Date.class, false, null, null); - - protected ColumnInfo _columnStartTime = cci("START_TIME", "startTime", - java.sql.Time.class, false, null, null); - - protected ColumnInfo _columnEndDate = cci("END_DATE", "endDate", - java.util.Date.class, false, null, null); - - protected ColumnInfo _columnEndTime = cci("END_TIME", "endTime", - java.sql.Time.class, false, null, null); - - protected ColumnInfo _columnSecret = cci("SECRET", "secret", String.class, - false, 1, 0); - - protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", - "createdTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", - "updatedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", - "deletedTime", java.sql.Timestamp.class, false, null, null); - - protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", - String.class, false, 255, 0); - - protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", - Integer.class, false, null, null, OptimisticLockType.VERSION_NO); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnTitle() { - return _columnTitle; - } - - public ColumnInfo columnLocation() { - return _columnLocation; - } - - public ColumnInfo columnStartDate() { - return _columnStartDate; - } - - public ColumnInfo columnStartTime() { - return _columnStartTime; - } - - public ColumnInfo columnEndDate() { - return _columnEndDate; - } - - public ColumnInfo columnEndTime() { - return _columnEndTime; - } - - public ColumnInfo columnSecret() { - return _columnSecret; - } - - public ColumnInfo columnCreatedTime() { - return _columnCreatedTime; - } - - public ColumnInfo columnCreatedBy() { - return _columnCreatedBy; - } - - public ColumnInfo columnUpdatedTime() { - return _columnUpdatedTime; - } - - public ColumnInfo columnUpdatedBy() { - return _columnUpdatedBy; - } - - public ColumnInfo columnDeletedTime() { - return _columnDeletedTime; - } - - public ColumnInfo columnDeletedBy() { - return _columnDeletedBy; - } - - public ColumnInfo columnVersionno() { - return _columnVersionno; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.scheduler.db.exentity.SingleSchedule"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.scheduler.db.cbean.bs.SingleScheduleCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.scheduler.db.exdao.SingleScheduleDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.scheduler.db.exbhv.SingleScheduleBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return SingleSchedule.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public SingleSchedule newMyEntity() { - return new SingleSchedule(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignSingleScheduleContentAsOne() { - Map map = newLinkedHashMap(columnId(), - SingleScheduleContentDbm.getInstance().columnId()); - return cfi("singleScheduleContentAsOne", this, SingleScheduleContentDbm - .getInstance(), map, 0, true); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - public ReferrerInfo referrerSingleScheduleMappingList() { - Map map = newLinkedHashMap(columnId(), - SingleScheduleMappingDbm.getInstance().columnScheduleId()); - return cri("singleScheduleMappingList", this, SingleScheduleMappingDbm - .getInstance(), map, false); - } - - //========================================================================== - // ========= - // Various Info - // ============ - public boolean hasVersionNo() { - return true; - } - - public ColumnInfo getVersionNoColumnInfo() { - return _columnVersionno; - } - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((SingleSchedule) entity, primaryKeyMap, _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((SingleSchedule) entity, columnValueMap, _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsTitle(), columnTitle()); - setupEps(_epsMap, new EpsLocation(), columnLocation()); - setupEps(_epsMap, new EpsStartDate(), columnStartDate()); - setupEps(_epsMap, new EpsStartTime(), columnStartTime()); - setupEps(_epsMap, new EpsEndDate(), columnEndDate()); - setupEps(_epsMap, new EpsEndTime(), columnEndTime()); - setupEps(_epsMap, new EpsSecret(), columnSecret()); - setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); - setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); - setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); - setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); - setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); - setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); - setupEps(_epsMap, new EpsVersionno(), columnVersionno()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((SingleSchedule) entity, value); - } - - public static class EpsId implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsTitle implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setTitle((String) v); - } - } - - public static class EpsLocation implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setLocation((String) v); - } - } - - public static class EpsStartDate implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setStartDate((java.util.Date) v); - } - } - - public static class EpsStartTime implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setStartTime((java.sql.Time) v); - } - } - - public static class EpsEndDate implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setEndDate((java.util.Date) v); - } - } - - public static class EpsEndTime implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setEndTime((java.sql.Time) v); - } - } - - public static class EpsSecret implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setSecret((String) v); - } - } - - public static class EpsCreatedTime implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setCreatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsCreatedBy implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setCreatedBy((String) v); - } - } - - public static class EpsUpdatedTime implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setUpdatedTime((java.sql.Timestamp) v); - } - } - - public static class EpsUpdatedBy implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setUpdatedBy((String) v); - } - } - - public static class EpsDeletedTime implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setDeletedTime((java.sql.Timestamp) v); - } - } - - public static class EpsDeletedBy implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setDeletedBy((String) v); - } - } - - public static class EpsVersionno implements Eps { - public void setup(SingleSchedule e, Object v) { - e.setVersionno((Integer) v); - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/SingleScheduleMappingDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,303 +0,0 @@ -package jp.sf.pal.scheduler.db.bsentity.dbmeta; - -import java.util.List; -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.Entity; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; -import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; - -/** - * The DB meta of SINGLE_SCHEDULE_MAPPING. (Singleton) - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMappingDbm extends AbstractDBMeta { - - private static final SingleScheduleMappingDbm _instance = new SingleScheduleMappingDbm(); - - private SingleScheduleMappingDbm() { - } - - public static SingleScheduleMappingDbm getInstance() { - return _instance; - } - - //========================================================================== - // ========= - // Table Info - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - public String getTablePropertyName() { - return "singleScheduleMapping"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // Column Info - // =========== - protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, - null); - - protected ColumnInfo _columnScheduleId = cci("SCHEDULE_ID", "scheduleId", - Long.class, false, null, null); - - protected ColumnInfo _columnUserId = cci("USER_ID", "userId", String.class, - false, 255, 0); - - public ColumnInfo columnId() { - return _columnId; - } - - public ColumnInfo columnScheduleId() { - return _columnScheduleId; - } - - public ColumnInfo columnUserId() { - return _columnUserId; - } - - { - initializeColumnInfoList(); - } - - //========================================================================== - // ========= - // Name Map - // ======== - public Map getDbNamePropertyNameKeyToLowerMap() { - return createDbNamePropertyNameKeyToLowerMap(); - } - - public Map getPropertyNameDbNameKeyToLowerMap() { - return createPropertyNameDbNameKeyToLowerMap(); - } - - protected static Map _dbNamePropertyNameKeyToLowerMap; - - protected Map createDbNamePropertyNameKeyToLowerMap() { - if (_dbNamePropertyNameKeyToLowerMap == null) { - _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); - } - return _dbNamePropertyNameKeyToLowerMap; - } - - protected static Map _propertyNameDbNameKeyToLowerMap; - - protected Map createPropertyNameDbNameKeyToLowerMap() { - if (_propertyNameDbNameKeyToLowerMap == null) { - _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); - } - return _propertyNameDbNameKeyToLowerMap; - } - - //========================================================================== - // ========= - // Type Name - // ========= - public String getEntityTypeName() { - return "jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping"; - } - - public String getConditionBeanTypeName() { - return "jp.sf.pal.scheduler.db.cbean.bs.SingleScheduleMappingCB"; - } - - public String getDaoTypeName() { - return "jp.sf.pal.scheduler.db.exdao.SingleScheduleMappingDao"; - } - - public String getBehaviorTypeName() { - return "jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv"; - } - - //========================================================================== - // ========= - // Object Type - // =========== - public Class getEntityType() { - return SingleScheduleMapping.class; - } - - //========================================================================== - // ========= - // Object Instance - // =============== - public Entity newEntity() { - return newMyEntity(); - } - - public SingleScheduleMapping newMyEntity() { - return new SingleScheduleMapping(); - } - - //========================================================================== - // ========= - // Unique Info - // =========== - // ----------------------------------------------------- - // Primary Element - // --------------- - public UniqueInfo getPrimaryUniqueInfo() { - return createPrimaryUniqueInfo(columnId()); - } - - public boolean hasPrimaryKey() { - return true; - } - - public boolean hasTwoOrMorePrimaryKeys() { - return false; - } - - //========================================================================== - // ========= - // Relation Info - // ============= - // ----------------------------------------------------- - // Foreign Property - // ---------------- - public ForeignInfo foreignSingleSchedule() { - Map map = newLinkedHashMap(columnScheduleId(), - SingleScheduleDbm.getInstance().columnId()); - return cfi("singleSchedule", this, SingleScheduleDbm.getInstance(), - map, 0, false); - } - - public ForeignInfo foreignUserInfo() { - Map map = newLinkedHashMap(columnUserId(), - UserInfoDbm.getInstance().columnUserId()); - return cfi("userInfo", this, UserInfoDbm.getInstance(), map, 1, false); - } - - // ----------------------------------------------------- - // Referrer Property - // ----------------- - - //========================================================================== - // ========= - // Various Info - // ============ - - //========================================================================== - // ========= - // Entity Handling - // =============== - // ----------------------------------------------------- - // Accept - // ------ - public void acceptPrimaryKeyMap(Entity entity, - Map primaryKeyMap) { - doAcceptPrimaryKeyMap((SingleScheduleMapping) entity, primaryKeyMap, - _epsMap); - } - - public void acceptPrimaryKeyMapString(Entity entity, - String primaryKeyMapString) { - MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); - } - - public void acceptColumnValueMap(Entity entity, - Map columnValueMap) { - doAcceptColumnValueMap((SingleScheduleMapping) entity, columnValueMap, - _epsMap); - } - - public void acceptColumnValueMapString(Entity entity, - String columnValueMapString) { - MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); - } - - // ----------------------------------------------------- - // Extract - // ------- - public String extractPrimaryKeyMapString(Entity entity) { - return MapStringUtil.extractPrimaryKeyMapString(entity); - } - - public String extractPrimaryKeyMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - public String extractColumnValueMapString(Entity entity) { - return MapStringUtil.extractColumnValueMapString(entity); - } - - public String extractColumnValueMapString(Entity entity, String startBrace, - String endBrace, String delimiter, String equal) { - return doExtractColumnValueMapString(entity, startBrace, endBrace, - delimiter, equal); - } - - // ----------------------------------------------------- - // Convert - // ------- - public List convertToColumnValueList(Entity entity) { - return newArrayList(convertToColumnValueMap(entity).values()); - } - - public Map convertToColumnValueMap(Entity entity) { - return doConvertToColumnValueMap(entity); - } - - public List convertToColumnStringValueList(Entity entity) { - return newArrayList(convertToColumnStringValueMap(entity).values()); - } - - public Map convertToColumnStringValueMap(Entity entity) { - return doConvertToColumnStringValueMap(entity); - } - - //========================================================================== - // ========= - // Entity Property Setup - // ===================== - // It's very INTERNAL! - protected Map> _epsMap = newHashMap(); - { - setupEps(_epsMap, new EpsId(), columnId()); - setupEps(_epsMap, new EpsScheduleId(), columnScheduleId()); - setupEps(_epsMap, new EpsUserId(), columnUserId()); - } - - public boolean hasEntityPropertySetupper(String propertyName) { - return _epsMap.containsKey(propertyName); - } - - public void setupEntityProperty(String propertyName, Object entity, - Object value) { - findEps(_epsMap, propertyName).setup((SingleScheduleMapping) entity, - value); - } - - public static class EpsId implements Eps { - public void setup(SingleScheduleMapping e, Object v) { - e.setId((Long) v); - } - } - - public static class EpsScheduleId implements Eps { - public void setup(SingleScheduleMapping e, Object v) { - e.setScheduleId((Long) v); - } - } - - public static class EpsUserId implements Eps { - public void setup(SingleScheduleMapping e, Object v) { - e.setUserId((String) v); - } - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -310,6 +310,13 @@ // ----------------------------------------------------- // Referrer Property // ----------------- + public ReferrerInfo referrerEventScheduleMappingList() { + Map map = newLinkedHashMap(columnUserId(), + EventScheduleMappingDbm.getInstance().columnUserId()); + return cri("eventScheduleMappingList", this, EventScheduleMappingDbm + .getInstance(), map, false); + } + public ReferrerInfo referrerGroupMappingList() { Map map = newLinkedHashMap(columnUserId(), GroupMappingDbm.getInstance().columnUserId()); @@ -324,20 +331,6 @@ false); } - public ReferrerInfo referrerRoutineScheduleMappingList() { - Map map = newLinkedHashMap(columnUserId(), - RoutineScheduleMappingDbm.getInstance().columnUserId()); - return cri("routineScheduleMappingList", this, - RoutineScheduleMappingDbm.getInstance(), map, false); - } - - public ReferrerInfo referrerSingleScheduleMappingList() { - Map map = newLinkedHashMap(columnUserId(), - SingleScheduleMappingDbm.getInstance().columnUserId()); - return cri("singleScheduleMappingList", this, SingleScheduleMappingDbm - .getInstance(), map, false); - } - //========================================================================== // ========= // Various Info Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of EVENT_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsEventScheduleCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleContentCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of EVENT_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContentCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsEventScheduleContentCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleMappingCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of EVENT_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMappingCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsEventScheduleMappingCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/EventScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean; - -/** - * The condition-bean of ROUTINE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleCB extends - jp.sf.pal.scheduler.db.cbean.bs.BsRoutineScheduleCB { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleContentCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean; - -/** - * The condition-bean of ROUTINE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContentCB extends - jp.sf.pal.scheduler.db.cbean.bs.BsRoutineScheduleContentCB { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/RoutineScheduleMappingCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean; - -/** - * The condition-bean of ROUTINE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMappingCB extends - jp.sf.pal.scheduler.db.cbean.bs.BsRoutineScheduleMappingCB { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean; - -/** - * The condition-bean of SINGLE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleCB extends - jp.sf.pal.scheduler.db.cbean.bs.BsSingleScheduleCB { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleContentCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean; - -/** - * The condition-bean of SINGLE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContentCB extends - jp.sf.pal.scheduler.db.cbean.bs.BsSingleScheduleContentCB { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/SingleScheduleMappingCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean; - -/** - * The condition-bean of SINGLE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMappingCB extends - jp.sf.pal.scheduler.db.cbean.bs.BsSingleScheduleMappingCB { -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,344 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.EventScheduleContentNss; + +/** + * The base condition-bean of EVENT_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsEventScheduleCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public EventScheduleCQ query() { + return getConditionQuery(); + } + + public EventScheduleCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new EventScheduleCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<EventScheduleCB>() {
    +     *     public void query(EventScheduleCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final EventScheduleCB cb = new EventScheduleCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final EventScheduleCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<EventScheduleCB>() {
    +     *     public void query(EventScheduleCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final EventScheduleCB cb = new EventScheduleCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final EventScheduleCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(EventScheduleCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(EventScheduleCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected EventScheduleContentNss _nssEventScheduleContentAsOne; + + public EventScheduleContentNss getNssEventScheduleContentAsOne() { + if (_nssEventScheduleContentAsOne == null) { + _nssEventScheduleContentAsOne = new EventScheduleContentNss(null); + } + return _nssEventScheduleContentAsOne; + } + + public EventScheduleContentNss setupSelect_EventScheduleContentAsOne() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryEventScheduleContentAsOne(); + } + }); + if (_nssEventScheduleContentAsOne == null + || !_nssEventScheduleContentAsOne.hasConditionQuery()) { + _nssEventScheduleContentAsOne = new EventScheduleContentNss(query() + .queryEventScheduleContentAsOne()); + } + return _nssEventScheduleContentAsOne; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public EventScheduleCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected EventScheduleContentCB.Specification _eventScheduleContentAsOne; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnTitle() { + doColumn("TITLE"); + } + + public void columnLocation() { + doColumn("LOCATION"); + } + + public void columnStartDate() { + doColumn("START_DATE"); + } + + public void columnStartTime() { + doColumn("START_TIME"); + } + + public void columnEndDate() { + doColumn("END_DATE"); + } + + public void columnEndTime() { + doColumn("END_TIME"); + } + + public void columnSecret() { + doColumn("SECRET"); + } + + public void columnType() { + doColumn("TYPE"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + } + + protected String getTableDbName() { + return "EVENT_SCHEDULE"; + } + + public EventScheduleContentCB.Specification specifyEventScheduleContentAsOne() { + assertForeign("eventScheduleContentAsOne"); + if (_eventScheduleContentAsOne == null) { + _eventScheduleContentAsOne = new EventScheduleContentCB.Specification( + _baseCB, new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryEventScheduleContentAsOne(); + } + + public EventScheduleContentCQ qy() { + return _myQyCall.qy() + .queryEventScheduleContentAsOne(); + } + }, _forDeriveReferrer); + } + return _eventScheduleContentAsOne; + } + + public RAFunction derivedEventScheduleMappingList() { + return new RAFunction( + _baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + EventScheduleCQ cq, String aliasName) { + cq.xderiveEventScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return EventScheduleCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleContentCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,275 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.EventScheduleNss; + +/** + * The base condition-bean of EVENT_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsEventScheduleContentCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleContentCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public EventScheduleContentCQ query() { + return getConditionQuery(); + } + + public EventScheduleContentCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new EventScheduleContentCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<EventScheduleContentCB>() {
    +     *     public void query(EventScheduleContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final EventScheduleContentCB cb = new EventScheduleContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final EventScheduleContentCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<EventScheduleContentCB>() {
    +     *     public void query(EventScheduleContentCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final EventScheduleContentCB cb = new EventScheduleContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final EventScheduleContentCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(EventScheduleContentCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(EventScheduleContentCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected EventScheduleNss _nssEventSchedule; + + public EventScheduleNss getNssEventSchedule() { + if (_nssEventSchedule == null) { + _nssEventSchedule = new EventScheduleNss(null); + } + return _nssEventSchedule; + } + + public EventScheduleNss setupSelect_EventSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryEventSchedule(); + } + }); + if (_nssEventSchedule == null || !_nssEventSchedule.hasConditionQuery()) { + _nssEventSchedule = new EventScheduleNss(query() + .queryEventSchedule()); + } + return _nssEventSchedule; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public EventScheduleContentCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected EventScheduleCB.Specification _eventSchedule; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnContent() { + doColumn("CONTENT"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryEventSchedule()) { + } + } + + protected String getTableDbName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + public EventScheduleCB.Specification specifyEventSchedule() { + assertForeign("eventSchedule"); + if (_eventSchedule == null) { + _eventSchedule = new EventScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryEventSchedule(); + } + + public EventScheduleCQ qy() { + return _myQyCall.qy().queryEventSchedule(); + } + }, _forDeriveReferrer); + } + return _eventSchedule; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return EventScheduleContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleContentCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleMappingCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,328 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.nss.EventScheduleNss; +import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; + +/** + * The base condition-bean of EVENT_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsEventScheduleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public EventScheduleMappingCQ query() { + return getConditionQuery(); + } + + public EventScheduleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new EventScheduleMappingCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
    +     * cb.query().union(new UnionQuery<EventScheduleMappingCB>() {
    +     *     public void query(EventScheduleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final EventScheduleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
    +     * cb.query().unionAll(new UnionQuery<EventScheduleMappingCB>() {
    +     *     public void query(EventScheduleMappingCB unionCB) {
    +     *         unionCB.query().setXxx...
    +     *     }
    +     * });
    +     * 
    + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final EventScheduleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(EventScheduleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(EventScheduleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected EventScheduleNss _nssEventSchedule; + + public EventScheduleNss getNssEventSchedule() { + if (_nssEventSchedule == null) { + _nssEventSchedule = new EventScheduleNss(null); + } + return _nssEventSchedule; + } + + public EventScheduleNss setupSelect_EventSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryEventSchedule(); + } + }); + if (_nssEventSchedule == null || !_nssEventSchedule.hasConditionQuery()) { + _nssEventSchedule = new EventScheduleNss(query() + .queryEventSchedule()); + } + return _nssEventSchedule; + } + + protected UserInfoNss _nssUserInfo; + + public UserInfoNss getNssUserInfo() { + if (_nssUserInfo == null) { + _nssUserInfo = new UserInfoNss(null); + } + return _nssUserInfo; + } + + public UserInfoNss setupSelect_UserInfo() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryUserInfo(); + } + }); + if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { + _nssUserInfo = new UserInfoNss(query().queryUserInfo()); + } + return _nssUserInfo; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public EventScheduleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected EventScheduleCB.Specification _eventSchedule; + + protected UserInfoCB.Specification _userInfo; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnScheduleId() { + doColumn("SCHEDULE_ID"); + } + + public void columnUserId() { + doColumn("USER_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryEventSchedule()) { + columnScheduleId();// FK + } + if (_myQyCall.qy().hasConditionQueryUserInfo()) { + columnUserId();// FK + } + } + + protected String getTableDbName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + public EventScheduleCB.Specification specifyEventSchedule() { + assertForeign("eventSchedule"); + if (_eventSchedule == null) { + _eventSchedule = new EventScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryEventSchedule(); + } + + public EventScheduleCQ qy() { + return _myQyCall.qy().queryEventSchedule(); + } + }, _forDeriveReferrer); + } + return _eventSchedule; + } + + public UserInfoCB.Specification specifyUserInfo() { + assertForeign("userInfo"); + if (_userInfo == null) { + _userInfo = new UserInfoCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryUserInfo(); + } + + public UserInfoCQ qy() { + return _myQyCall.qy().queryUserInfo(); + } + }, _forDeriveReferrer); + } + return _userInfo; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return EventScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,346 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.nss.RoutineScheduleContentNss; - -/** - * The base condition-bean of ROUTINE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsRoutineScheduleCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public RoutineScheduleCQ query() { - return getConditionQuery(); - } - - public RoutineScheduleCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new RoutineScheduleCQ(null, getSqlClause(), - getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<RoutineScheduleCB>() {
    -     *     public void query(RoutineScheduleCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final RoutineScheduleCB cb = new RoutineScheduleCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final RoutineScheduleCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<RoutineScheduleCB>() {
    -     *     public void query(RoutineScheduleCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final RoutineScheduleCB cb = new RoutineScheduleCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final RoutineScheduleCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery - * unionQuery). - */ - public void union(RoutineScheduleCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use unionAll(UnionQuery - * unionQuery). - */ - public void unionAll(RoutineScheduleCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected RoutineScheduleContentNss _nssRoutineScheduleContentAsOne; - - public RoutineScheduleContentNss getNssRoutineScheduleContentAsOne() { - if (_nssRoutineScheduleContentAsOne == null) { - _nssRoutineScheduleContentAsOne = new RoutineScheduleContentNss( - null); - } - return _nssRoutineScheduleContentAsOne; - } - - public RoutineScheduleContentNss setupSelect_RoutineScheduleContentAsOne() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().queryRoutineScheduleContentAsOne(); - } - }); - if (_nssRoutineScheduleContentAsOne == null - || !_nssRoutineScheduleContentAsOne.hasConditionQuery()) { - _nssRoutineScheduleContentAsOne = new RoutineScheduleContentNss( - query().queryRoutineScheduleContentAsOne()); - } - return _nssRoutineScheduleContentAsOne; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public RoutineScheduleCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends - AbstractSpecification { - protected SpQyCall _myQyCall; - - protected RoutineScheduleContentCB.Specification _routineScheduleContentAsOne; - - public Specification(ConditionBean baseCB, - SpQyCall qyCall, boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnTitle() { - doColumn("TITLE"); - } - - public void columnLocation() { - doColumn("LOCATION"); - } - - public void columnStartDate() { - doColumn("START_DATE"); - } - - public void columnStartTime() { - doColumn("START_TIME"); - } - - public void columnEndDate() { - doColumn("END_DATE"); - } - - public void columnEndTime() { - doColumn("END_TIME"); - } - - public void columnSecret() { - doColumn("SECRET"); - } - - public void columnType() { - doColumn("TYPE"); - } - - public void columnCreatedTime() { - doColumn("CREATED_TIME"); - } - - public void columnCreatedBy() { - doColumn("CREATED_BY"); - } - - public void columnUpdatedTime() { - doColumn("UPDATED_TIME"); - } - - public void columnUpdatedBy() { - doColumn("UPDATED_BY"); - } - - public void columnDeletedTime() { - doColumn("DELETED_TIME"); - } - - public void columnDeletedBy() { - doColumn("DELETED_BY"); - } - - public void columnVersionno() { - doColumn("VERSIONNO"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - } - - protected String getTableDbName() { - return "ROUTINE_SCHEDULE"; - } - - public RoutineScheduleContentCB.Specification specifyRoutineScheduleContentAsOne() { - assertForeign("routineScheduleContentAsOne"); - if (_routineScheduleContentAsOne == null) { - _routineScheduleContentAsOne = new RoutineScheduleContentCB.Specification( - _baseCB, new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall - .qy() - .hasConditionQueryRoutineScheduleContentAsOne(); - } - - public RoutineScheduleContentCQ qy() { - return _myQyCall.qy() - .queryRoutineScheduleContentAsOne(); - } - }, _forDeriveReferrer); - } - return _routineScheduleContentAsOne; - } - - public RAFunction derivedRoutineScheduleMappingList() { - return new RAFunction( - _baseCB, - _myQyCall.qy(), - new RAQSetupper() { - public void setup(String function, - SubQuery subQuery, - RoutineScheduleCQ cq, String aliasName) { - cq.xderiveRoutineScheduleMappingList(function, - subQuery, aliasName); - } - }); - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return RoutineScheduleCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleContentCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,276 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.nss.RoutineScheduleNss; - -/** - * The base condition-bean of ROUTINE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsRoutineScheduleContentCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleContentCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public RoutineScheduleContentCQ query() { - return getConditionQuery(); - } - - public RoutineScheduleContentCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new RoutineScheduleContentCQ(null, - getSqlClause(), getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<RoutineScheduleContentCB>() {
    -     *     public void query(RoutineScheduleContentCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final RoutineScheduleContentCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<RoutineScheduleContentCB>() {
    -     *     public void query(RoutineScheduleContentCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final RoutineScheduleContentCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery - * unionQuery). - */ - public void union(RoutineScheduleContentCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use - * unionAll(UnionQuery unionQuery). - */ - public void unionAll(RoutineScheduleContentCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected RoutineScheduleNss _nssRoutineSchedule; - - public RoutineScheduleNss getNssRoutineSchedule() { - if (_nssRoutineSchedule == null) { - _nssRoutineSchedule = new RoutineScheduleNss(null); - } - return _nssRoutineSchedule; - } - - public RoutineScheduleNss setupSelect_RoutineSchedule() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().queryRoutineSchedule(); - } - }); - if (_nssRoutineSchedule == null - || !_nssRoutineSchedule.hasConditionQuery()) { - _nssRoutineSchedule = new RoutineScheduleNss(query() - .queryRoutineSchedule()); - } - return _nssRoutineSchedule; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public RoutineScheduleContentCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends - AbstractSpecification { - protected SpQyCall _myQyCall; - - protected RoutineScheduleCB.Specification _routineSchedule; - - public Specification(ConditionBean baseCB, - SpQyCall qyCall, - boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnContent() { - doColumn("CONTENT"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - if (_myQyCall.qy().hasConditionQueryRoutineSchedule()) { - } - } - - protected String getTableDbName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - public RoutineScheduleCB.Specification specifyRoutineSchedule() { - assertForeign("routineSchedule"); - if (_routineSchedule == null) { - _routineSchedule = new RoutineScheduleCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall - .qy() - .hasConditionQueryRoutineSchedule(); - } - - public RoutineScheduleCQ qy() { - return _myQyCall.qy().queryRoutineSchedule(); - } - }, _forDeriveReferrer); - } - return _routineSchedule; - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return RoutineScheduleContentCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleContentCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsRoutineScheduleMappingCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,329 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.UserInfoCB; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; -import jp.sf.pal.scheduler.db.cbean.nss.RoutineScheduleNss; -import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; - -/** - * The base condition-bean of ROUTINE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsRoutineScheduleMappingCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleMappingCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public RoutineScheduleMappingCQ query() { - return getConditionQuery(); - } - - public RoutineScheduleMappingCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new RoutineScheduleMappingCQ(null, - getSqlClause(), getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<RoutineScheduleMappingCB>() {
    -     *     public void query(RoutineScheduleMappingCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final RoutineScheduleMappingCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<RoutineScheduleMappingCB>() {
    -     *     public void query(RoutineScheduleMappingCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final RoutineScheduleMappingCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery - * unionQuery). - */ - public void union(RoutineScheduleMappingCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use - * unionAll(UnionQuery unionQuery). - */ - public void unionAll(RoutineScheduleMappingCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected RoutineScheduleNss _nssRoutineSchedule; - - public RoutineScheduleNss getNssRoutineSchedule() { - if (_nssRoutineSchedule == null) { - _nssRoutineSchedule = new RoutineScheduleNss(null); - } - return _nssRoutineSchedule; - } - - public RoutineScheduleNss setupSelect_RoutineSchedule() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().queryRoutineSchedule(); - } - }); - if (_nssRoutineSchedule == null - || !_nssRoutineSchedule.hasConditionQuery()) { - _nssRoutineSchedule = new RoutineScheduleNss(query() - .queryRoutineSchedule()); - } - return _nssRoutineSchedule; - } - - protected UserInfoNss _nssUserInfo; - - public UserInfoNss getNssUserInfo() { - if (_nssUserInfo == null) { - _nssUserInfo = new UserInfoNss(null); - } - return _nssUserInfo; - } - - public UserInfoNss setupSelect_UserInfo() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().queryUserInfo(); - } - }); - if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { - _nssUserInfo = new UserInfoNss(query().queryUserInfo()); - } - return _nssUserInfo; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public RoutineScheduleMappingCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends - AbstractSpecification { - protected SpQyCall _myQyCall; - - protected RoutineScheduleCB.Specification _routineSchedule; - - protected UserInfoCB.Specification _userInfo; - - public Specification(ConditionBean baseCB, - SpQyCall qyCall, - boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnScheduleId() { - doColumn("SCHEDULE_ID"); - } - - public void columnUserId() { - doColumn("USER_ID"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - if (_myQyCall.qy().hasConditionQueryRoutineSchedule()) { - columnScheduleId();// FK - } - if (_myQyCall.qy().hasConditionQueryUserInfo()) { - columnUserId();// FK - } - } - - protected String getTableDbName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - public RoutineScheduleCB.Specification specifyRoutineSchedule() { - assertForeign("routineSchedule"); - if (_routineSchedule == null) { - _routineSchedule = new RoutineScheduleCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall - .qy() - .hasConditionQueryRoutineSchedule(); - } - - public RoutineScheduleCQ qy() { - return _myQyCall.qy().queryRoutineSchedule(); - } - }, _forDeriveReferrer); - } - return _routineSchedule; - } - - public UserInfoCB.Specification specifyUserInfo() { - assertForeign("userInfo"); - if (_userInfo == null) { - _userInfo = new UserInfoCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall.qy() - .hasConditionQueryUserInfo(); - } - - public UserInfoCQ qy() { - return _myQyCall.qy().queryUserInfo(); - } - }, _forDeriveReferrer); - } - return _userInfo; - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return RoutineScheduleMappingCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleMappingCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,341 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.nss.SingleScheduleContentNss; - -/** - * The base condition-bean of SINGLE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsSingleScheduleCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public SingleScheduleCQ query() { - return getConditionQuery(); - } - - public SingleScheduleCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new SingleScheduleCQ(null, getSqlClause(), - getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<SingleScheduleCB>() {
    -     *     public void query(SingleScheduleCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final SingleScheduleCB cb = new SingleScheduleCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final SingleScheduleCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<SingleScheduleCB>() {
    -     *     public void query(SingleScheduleCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final SingleScheduleCB cb = new SingleScheduleCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final SingleScheduleCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery - * unionQuery). - */ - public void union(SingleScheduleCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use unionAll(UnionQuery - * unionQuery). - */ - public void unionAll(SingleScheduleCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected SingleScheduleContentNss _nssSingleScheduleContentAsOne; - - public SingleScheduleContentNss getNssSingleScheduleContentAsOne() { - if (_nssSingleScheduleContentAsOne == null) { - _nssSingleScheduleContentAsOne = new SingleScheduleContentNss(null); - } - return _nssSingleScheduleContentAsOne; - } - - public SingleScheduleContentNss setupSelect_SingleScheduleContentAsOne() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().querySingleScheduleContentAsOne(); - } - }); - if (_nssSingleScheduleContentAsOne == null - || !_nssSingleScheduleContentAsOne.hasConditionQuery()) { - _nssSingleScheduleContentAsOne = new SingleScheduleContentNss( - query().querySingleScheduleContentAsOne()); - } - return _nssSingleScheduleContentAsOne; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public SingleScheduleCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends - AbstractSpecification { - protected SpQyCall _myQyCall; - - protected SingleScheduleContentCB.Specification _singleScheduleContentAsOne; - - public Specification(ConditionBean baseCB, - SpQyCall qyCall, boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnTitle() { - doColumn("TITLE"); - } - - public void columnLocation() { - doColumn("LOCATION"); - } - - public void columnStartDate() { - doColumn("START_DATE"); - } - - public void columnStartTime() { - doColumn("START_TIME"); - } - - public void columnEndDate() { - doColumn("END_DATE"); - } - - public void columnEndTime() { - doColumn("END_TIME"); - } - - public void columnSecret() { - doColumn("SECRET"); - } - - public void columnCreatedTime() { - doColumn("CREATED_TIME"); - } - - public void columnCreatedBy() { - doColumn("CREATED_BY"); - } - - public void columnUpdatedTime() { - doColumn("UPDATED_TIME"); - } - - public void columnUpdatedBy() { - doColumn("UPDATED_BY"); - } - - public void columnDeletedTime() { - doColumn("DELETED_TIME"); - } - - public void columnDeletedBy() { - doColumn("DELETED_BY"); - } - - public void columnVersionno() { - doColumn("VERSIONNO"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - } - - protected String getTableDbName() { - return "SINGLE_SCHEDULE"; - } - - public SingleScheduleContentCB.Specification specifySingleScheduleContentAsOne() { - assertForeign("singleScheduleContentAsOne"); - if (_singleScheduleContentAsOne == null) { - _singleScheduleContentAsOne = new SingleScheduleContentCB.Specification( - _baseCB, new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall - .qy() - .hasConditionQuerySingleScheduleContentAsOne(); - } - - public SingleScheduleContentCQ qy() { - return _myQyCall.qy() - .querySingleScheduleContentAsOne(); - } - }, _forDeriveReferrer); - } - return _singleScheduleContentAsOne; - } - - public RAFunction derivedSingleScheduleMappingList() { - return new RAFunction( - _baseCB, - _myQyCall.qy(), - new RAQSetupper() { - public void setup(String function, - SubQuery subQuery, - SingleScheduleCQ cq, String aliasName) { - cq.xderiveSingleScheduleMappingList(function, - subQuery, aliasName); - } - }); - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return SingleScheduleCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleContentCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,276 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.nss.SingleScheduleNss; - -/** - * The base condition-bean of SINGLE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsSingleScheduleContentCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleContentCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public SingleScheduleContentCQ query() { - return getConditionQuery(); - } - - public SingleScheduleContentCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new SingleScheduleContentCQ(null, getSqlClause(), - getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<SingleScheduleContentCB>() {
    -     *     public void query(SingleScheduleContentCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final SingleScheduleContentCB cb = new SingleScheduleContentCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final SingleScheduleContentCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<SingleScheduleContentCB>() {
    -     *     public void query(SingleScheduleContentCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final SingleScheduleContentCB cb = new SingleScheduleContentCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final SingleScheduleContentCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery - * unionQuery). - */ - public void union(SingleScheduleContentCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use - * unionAll(UnionQuery unionQuery). - */ - public void unionAll(SingleScheduleContentCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected SingleScheduleNss _nssSingleSchedule; - - public SingleScheduleNss getNssSingleSchedule() { - if (_nssSingleSchedule == null) { - _nssSingleSchedule = new SingleScheduleNss(null); - } - return _nssSingleSchedule; - } - - public SingleScheduleNss setupSelect_SingleSchedule() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().querySingleSchedule(); - } - }); - if (_nssSingleSchedule == null - || !_nssSingleSchedule.hasConditionQuery()) { - _nssSingleSchedule = new SingleScheduleNss(query() - .querySingleSchedule()); - } - return _nssSingleSchedule; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public SingleScheduleContentCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends - AbstractSpecification { - protected SpQyCall _myQyCall; - - protected SingleScheduleCB.Specification _singleSchedule; - - public Specification(ConditionBean baseCB, - SpQyCall qyCall, - boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnContent() { - doColumn("CONTENT"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - if (_myQyCall.qy().hasConditionQuerySingleSchedule()) { - } - } - - protected String getTableDbName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - public SingleScheduleCB.Specification specifySingleSchedule() { - assertForeign("singleSchedule"); - if (_singleSchedule == null) { - _singleSchedule = new SingleScheduleCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall - .qy() - .hasConditionQuerySingleSchedule(); - } - - public SingleScheduleCQ qy() { - return _myQyCall.qy().querySingleSchedule(); - } - }, _forDeriveReferrer); - } - return _singleSchedule; - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return SingleScheduleContentCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleContentCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsSingleScheduleMappingCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,329 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.UserInfoCB; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; -import jp.sf.pal.scheduler.db.cbean.nss.SingleScheduleNss; -import jp.sf.pal.scheduler.db.cbean.nss.UserInfoNss; - -/** - * The base condition-bean of SINGLE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsSingleScheduleMappingCB extends AbstractConditionBean { - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleMappingCQ _conditionQuery; - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // PrimaryKey Map - // ============== - public void acceptPrimaryKeyMap(Map primaryKeyMap) { - assertPrimaryKeyMap(primaryKeyMap); - { - Object obj = primaryKeyMap.get("ID"); - if (obj instanceof Long) { - query().setId_Equal((Long) obj); - } else { - query().setId_Equal(new Long((String) obj)); - } - } - - } - - //========================================================================== - // ========= - // OrderBy Setting - // =============== - public ConditionBean addOrderBy_PK_Asc() { - query().addOrderBy_Id_Asc(); - return this; - } - - public ConditionBean addOrderBy_PK_Desc() { - query().addOrderBy_Id_Desc(); - return this; - } - - //========================================================================== - // ========= - // Query - // ===== - public SingleScheduleMappingCQ query() { - return getConditionQuery(); - } - - public SingleScheduleMappingCQ getConditionQuery() { - if (_conditionQuery == null) { - _conditionQuery = new SingleScheduleMappingCQ(null, getSqlClause(), - getSqlClause().getLocalTableAliasName(), 0); - } - return _conditionQuery; - } - - public ConditionQuery getConditionQueryAsInterface() { - return getConditionQuery(); - } - - //========================================================================== - // ========= - // Union - // ===== - /** - * Set up 'union'. - * - *
    -     * cb.query().union(new UnionQuery<SingleScheduleMappingCB>() {
    -     *     public void query(SingleScheduleMappingCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void union(UnionQuery unionQuery) { - final SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final SingleScheduleMappingCQ cq = cb.query(); - query().xsetUnionQuery(cq); - } - - /** - * Set up 'union all'. - * - *
    -     * cb.query().unionAll(new UnionQuery<SingleScheduleMappingCB>() {
    -     *     public void query(SingleScheduleMappingCB unionCB) {
    -     *         unionCB.query().setXxx...
    -     *     }
    -     * });
    -     * 
    - * - * @param unionQuery The query of 'union'. (NotNull) - */ - public void unionAll(UnionQuery unionQuery) { - final SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForUnion(); - unionQuery.query(cb); - final SingleScheduleMappingCQ cq = cb.query(); - query().xsetUnionAllQuery(cq); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use union(UnionQuery - * unionQuery). - */ - public void union(SingleScheduleMappingCQ unionQuery) { - query().xsetUnionQuery(unionQuery); - } - - /** - * @param unionQuery The query of 'union'. (NotNull) - * @deprecated Sorry! Please use - * unionAll(UnionQuery unionQuery). - */ - public void unionAll(SingleScheduleMappingCQ unionQuery) { - query().xsetUnionAllQuery(unionQuery); - } - - public boolean hasUnionQueryOrUnionAllQuery() { - return query().hasUnionQueryOrUnionAllQuery(); - } - - //========================================================================== - // ========= - // Setup Select - // ============ - - protected SingleScheduleNss _nssSingleSchedule; - - public SingleScheduleNss getNssSingleSchedule() { - if (_nssSingleSchedule == null) { - _nssSingleSchedule = new SingleScheduleNss(null); - } - return _nssSingleSchedule; - } - - public SingleScheduleNss setupSelect_SingleSchedule() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().querySingleSchedule(); - } - }); - if (_nssSingleSchedule == null - || !_nssSingleSchedule.hasConditionQuery()) { - _nssSingleSchedule = new SingleScheduleNss(query() - .querySingleSchedule()); - } - return _nssSingleSchedule; - } - - protected UserInfoNss _nssUserInfo; - - public UserInfoNss getNssUserInfo() { - if (_nssUserInfo == null) { - _nssUserInfo = new UserInfoNss(null); - } - return _nssUserInfo; - } - - public UserInfoNss setupSelect_UserInfo() { - doSetupSelect(new SsCall() { - public ConditionQuery qf() { - return query().queryUserInfo(); - } - }); - if (_nssUserInfo == null || !_nssUserInfo.hasConditionQuery()) { - _nssUserInfo = new UserInfoNss(query().queryUserInfo()); - } - return _nssUserInfo; - } - - // [DBFlute-0.7.4] - //========================================================================== - // ========= - // Specify - // ======= - protected Specification _specification; - - public Specification specify() { - if (_specification == null) { - _specification = new Specification(this, - new SpQyCall() { - public boolean has() { - return true; - } - - public SingleScheduleMappingCQ qy() { - return query(); - } - }, _forDeriveReferrer); - } - return _specification; - } - - public static class Specification extends - AbstractSpecification { - protected SpQyCall _myQyCall; - - protected SingleScheduleCB.Specification _singleSchedule; - - protected UserInfoCB.Specification _userInfo; - - public Specification(ConditionBean baseCB, - SpQyCall qyCall, - boolean forDeriveReferrer) { - super(baseCB, qyCall, forDeriveReferrer); - _myQyCall = qyCall; - } - - public void columnId() { - doColumn("ID"); - } - - public void columnScheduleId() { - doColumn("SCHEDULE_ID"); - } - - public void columnUserId() { - doColumn("USER_ID"); - } - - protected void doSpecifyRequiredColumn() { - columnId();// PK - if (_myQyCall.qy().hasConditionQuerySingleSchedule()) { - columnScheduleId();// FK - } - if (_myQyCall.qy().hasConditionQueryUserInfo()) { - columnUserId();// FK - } - } - - protected String getTableDbName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - public SingleScheduleCB.Specification specifySingleSchedule() { - assertForeign("singleSchedule"); - if (_singleSchedule == null) { - _singleSchedule = new SingleScheduleCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall - .qy() - .hasConditionQuerySingleSchedule(); - } - - public SingleScheduleCQ qy() { - return _myQyCall.qy().querySingleSchedule(); - } - }, _forDeriveReferrer); - } - return _singleSchedule; - } - - public UserInfoCB.Specification specifyUserInfo() { - assertForeign("userInfo"); - if (_userInfo == null) { - _userInfo = new UserInfoCB.Specification(_baseCB, - new SpQyCall() { - public boolean has() { - return _myQyCall.has() - && _myQyCall.qy() - .hasConditionQueryUserInfo(); - } - - public UserInfoCQ qy() { - return _myQyCall.qy().queryUserInfo(); - } - }, _forDeriveReferrer); - } - return _userInfo; - } - } - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return SingleScheduleMappingCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleMappingCQ.class.getName(); - } - - protected String getSubQueryClassNameInternally() { - return SubQuery.class.getName(); - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -7,12 +7,11 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.UserInfoCB; import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; @@ -384,6 +383,19 @@ return _roleInfo; } + public RAFunction derivedEventScheduleMappingList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + UserInfoCQ cq, String aliasName) { + cq.xderiveEventScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + public RAFunction derivedGroupMappingList() { return new RAFunction(_baseCB, _myQyCall.qy(), @@ -407,32 +419,6 @@ } }); } - - public RAFunction derivedRoutineScheduleMappingList() { - return new RAFunction( - _baseCB, _myQyCall.qy(), - new RAQSetupper() { - public void setup(String function, - SubQuery subQuery, - UserInfoCQ cq, String aliasName) { - cq.xderiveRoutineScheduleMappingList(function, - subQuery, aliasName); - } - }); - } - - public RAFunction derivedSingleScheduleMappingList() { - return new RAFunction(_baseCB, - _myQyCall.qy(), - new RAQSetupper() { - public void setup(String function, - SubQuery subQuery, - UserInfoCQ cq, String aliasName) { - cq.xderiveSingleScheduleMappingList(function, - subQuery, aliasName); - } - }); - } } // Very Internal (for Suppressing Warn about 'Not Use Import') Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleCQ; + +/** + * The condition-query of EVENT_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleCQ extends BsEventScheduleCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public EventScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleContentCQ; + +/** + * The condition-query of EVENT_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContentCQ extends BsEventScheduleContentCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public EventScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleMappingCQ; + +/** + * The condition-query of EVENT_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMappingCQ extends BsEventScheduleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public EventScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/EventScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleCQ; - -/** - * The condition-query of ROUTINE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleCQ extends BsRoutineScheduleCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public RoutineScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleContentCQ; - -/** - * The condition-query of ROUTINE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContentCQ extends BsRoutineScheduleContentCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public RoutineScheduleContentCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/RoutineScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleMappingCQ; - -/** - * The condition-query of ROUTINE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMappingCQ extends BsRoutineScheduleMappingCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public RoutineScheduleMappingCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleCQ; - -/** - * The condition-query of SINGLE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleCQ extends BsSingleScheduleCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public SingleScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleContentCQ; - -/** - * The condition-query of SINGLE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContentCQ extends BsSingleScheduleContentCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public SingleScheduleContentCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/SingleScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,45 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleMappingCQ; - -/** - * The condition-query of SINGLE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMappingCQ extends BsSingleScheduleMappingCQ { - - //========================================================================== - // ========= - // Constructor - // =========== - /** - * Constructor. - * - * @param childQuery Child query as abstract class. (Nullable: If null, this - * is base instance.) - * @param sqlClause SQL clause instance. (NotNull) - * @param aliasName My alias name. (NotNull) - * @param nestLevel Nest level. - */ - public SingleScheduleMappingCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Arrange Method - // ============== - // You can make original arrange query methods here. - // public void arranegeXxx() { - // ... - // } -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,2040 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; + +/** + * The abstract condition-query of EVENT_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsEventScheduleCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsEventScheduleCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param eventScheduleContentCBquery Query. + * @deprecated Please use inScopeEventScheduleContentAsOne(subQuery) method. + */ + public void setId_InScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ eventScheduleContentCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_EventScheduleContentAsOne(eventScheduleContentCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(eventScheduleContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeEventScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleContentCB cb = new EventScheduleContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_EventScheduleContentAsOne(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery); + + /** + * @param eventScheduleMappingCBquery Query. + * @deprecated Please use inScopeEventScheduleMappingList(subQuery) method. + */ + public void setId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ eventScheduleMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_EventScheduleMappingList(eventScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(eventScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + public void inScopeEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_EventScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); + + public void notInScopeEventScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleContentCB cb = new EventScheduleContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_EventScheduleContentAsOne(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery); + + public void notInScopeEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_EventScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); + + /** + * @param eventScheduleContentCBquery Query. + * @deprecated Please use existsEventScheduleContentAsOne(subQuery) method. + */ + public void setId_ExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ eventScheduleContentCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_EventScheduleContentAsOne(eventScheduleContentCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(eventScheduleContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ID from EVENT_SCHEDULE_CONTENT + * where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_EventScheduleContentAsOne for 'exists'. + * (NotNull) + */ + public void existsEventScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleContentCB cb = new EventScheduleContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_EventScheduleContentAsOne(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery); + + /** + * @param eventScheduleMappingCBquery Query. + * @deprecated Please use existsEventScheduleMappingList(subQuery) method. + */ + public void setId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ eventScheduleMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_EventScheduleMappingList(eventScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(eventScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select SCHEDULE_ID from + * EVENT_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_EventScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_EventScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ID from + * EVENT_SCHEDULE_CONTENT where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_EventScheduleContentAsOne for 'not + * exists'. (NotNull) + */ + public void notExistsEventScheduleContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleContentCB cb = new EventScheduleContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_EventScheduleContentAsOne(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select SCHEDULE_ID from + * EVENT_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_EventScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_EventScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); + + public void xderiveEventScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_EventScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param title The value of title as equal. + */ + public void setTitle_Equal(String title) { + regTitle(CK_EQ, fRES(title)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as notEqual. + */ + public void setTitle_NotEqual(String title) { + regTitle(CK_NE, fRES(title)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterThan. + */ + public void setTitle_GreaterThan(String title) { + regTitle(CK_GT, fRES(title)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessThan. + */ + public void setTitle_LessThan(String title) { + regTitle(CK_LT, fRES(title)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as greaterEqual. + */ + public void setTitle_GreaterEqual(String title) { + regTitle(CK_GE, fRES(title)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as lessEqual. + */ + public void setTitle_LessEqual(String title) { + regTitle(CK_LE, fRES(title)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param title The value of title as prefixSearch. + */ + public void setTitle_PrefixSearch(String title) { + regTitle(CK_PS, fRES(title)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param title The value of title as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setTitle_LikeSearch( + String title, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as inScope. + */ + public void setTitle_InScope(Collection titleList) { + regTitle(CK_INS, cTL(titleList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param title The collection of title as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setTitle_InScope( + String title, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(title), getCValueTitle(), "TITLE", + "Title", "title", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param titleList The collection of title as notInScope. + */ + public void setTitle_NotInScope(Collection titleList) { + regTitle(CK_NINS, cTL(titleList)); + } + + protected void regTitle(ConditionKey key, Object value) { + registerQuery(key, value, getCValueTitle(), "TITLE", "Title", "title"); + } + + protected void registerInlineTitle(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueTitle(), "TITLE", "Title", + "title"); + } + + abstract protected ConditionValue getCValueTitle(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} + * + * @param location The value of location as equal. + */ + public void setLocation_Equal(String location) { + regLocation(CK_EQ, fRES(location)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as notEqual. + */ + public void setLocation_NotEqual(String location) { + regLocation(CK_NE, fRES(location)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as greaterThan. + */ + public void setLocation_GreaterThan(String location) { + regLocation(CK_GT, fRES(location)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as lessThan. + */ + public void setLocation_LessThan(String location) { + regLocation(CK_LT, fRES(location)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as greaterEqual. + */ + public void setLocation_GreaterEqual(String location) { + regLocation(CK_GE, fRES(location)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as lessEqual. + */ + public void setLocation_LessEqual(String location) { + regLocation(CK_LE, fRES(location)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param location The value of location as prefixSearch. + */ + public void setLocation_PrefixSearch(String location) { + regLocation(CK_PS, fRES(location)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param location The value of location as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocation_LikeSearch( + String location, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(location), getCValueLocation(), + "LOCATION", "Location", "location", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locationList The collection of location as inScope. + */ + public void setLocation_InScope(Collection locationList) { + regLocation(CK_INS, cTL(locationList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param location The collection of location as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocation_InScope( + String location, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(location), getCValueLocation(), + "LOCATION", "Location", "location", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locationList The collection of location as notInScope. + */ + public void setLocation_NotInScope(Collection locationList) { + regLocation(CK_NINS, cTL(locationList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocation_IsNull() { + regLocation(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocation_IsNotNull() { + regLocation(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocation(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocation(), "LOCATION", "Location", + "location"); + } + + protected void registerInlineLocation(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocation(), "LOCATION", + "Location", "location"); + } + + abstract protected ConditionValue getCValueLocation(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} + * + * @param startDate The value of startDate as equal. + */ + public void setStartDate_Equal(java.util.Date startDate) { + regStartDate(CK_EQ, startDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as notEqual. + */ + public void setStartDate_NotEqual(java.util.Date startDate) { + regStartDate(CK_NE, startDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterThan. + */ + public void setStartDate_GreaterThan(java.util.Date startDate) { + regStartDate(CK_GT, startDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessThan. + */ + public void setStartDate_LessThan(java.util.Date startDate) { + regStartDate(CK_LT, startDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as greaterEqual. + */ + public void setStartDate_GreaterEqual(java.util.Date startDate) { + regStartDate(CK_GE, startDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startDate The value of startDate as lessEqual. + */ + public void setStartDate_LessEqual(java.util.Date startDate) { + regStartDate(CK_LE, startDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setStartDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueStartDate(), + "START_DATE", "StartDate", "startDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : DATE} + * + * @param fromDate The from-date of startDate. (Nullable) + * @param toDate The to-date of startDate. (Nullable) + */ + public void setStartDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setStartDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regStartDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + protected void registerInlineStartDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartDate(), "START_DATE", + "StartDate", "startDate"); + } + + abstract protected ConditionValue getCValueStartDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIME} + * + * @param startTime The value of startTime as equal. + */ + public void setStartTime_Equal(java.sql.Time startTime) { + regStartTime(CK_EQ, startTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as notEqual. + */ + public void setStartTime_NotEqual(java.sql.Time startTime) { + regStartTime(CK_NE, startTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as greaterThan. + */ + public void setStartTime_GreaterThan(java.sql.Time startTime) { + regStartTime(CK_GT, startTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as lessThan. + */ + public void setStartTime_LessThan(java.sql.Time startTime) { + regStartTime(CK_LT, startTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as greaterEqual. + */ + public void setStartTime_GreaterEqual(java.sql.Time startTime) { + regStartTime(CK_GE, startTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param startTime The value of startTime as lessEqual. + */ + public void setStartTime_LessEqual(java.sql.Time startTime) { + regStartTime(CK_LE, startTime); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setStartTime_IsNull() { + regStartTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setStartTime_IsNotNull() { + regStartTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regStartTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueStartTime(), "START_TIME", + "StartTime", "startTime"); + } + + protected void registerInlineStartTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueStartTime(), "START_TIME", + "StartTime", "startTime"); + } + + abstract protected ConditionValue getCValueStartTime(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {DATE} + * + * @param endDate The value of endDate as equal. + */ + public void setEndDate_Equal(java.util.Date endDate) { + regEndDate(CK_EQ, endDate); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as notEqual. + */ + public void setEndDate_NotEqual(java.util.Date endDate) { + regEndDate(CK_NE, endDate); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterThan. + */ + public void setEndDate_GreaterThan(java.util.Date endDate) { + regEndDate(CK_GT, endDate); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessThan. + */ + public void setEndDate_LessThan(java.util.Date endDate) { + regEndDate(CK_LT, endDate); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as greaterEqual. + */ + public void setEndDate_GreaterEqual(java.util.Date endDate) { + regEndDate(CK_GE, endDate); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endDate The value of endDate as lessEqual. + */ + public void setEndDate_LessEqual(java.util.Date endDate) { + regEndDate(CK_LE, endDate); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setEndDate_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery(fromDate, toDate, getCValueEndDate(), "END_DATE", + "EndDate", "endDate", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {DATE} + * + * @param fromDate The from-date of endDate. (Nullable) + * @param toDate The to-date of endDate. (Nullable) + */ + public void setEndDate_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setEndDate_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEndDate_IsNull() { + regEndDate(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEndDate_IsNotNull() { + regEndDate(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEndDate(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndDate(), "END_DATE", "EndDate", + "endDate"); + } + + protected void registerInlineEndDate(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndDate(), "END_DATE", + "EndDate", "endDate"); + } + + abstract protected ConditionValue getCValueEndDate(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIME} + * + * @param endTime The value of endTime as equal. + */ + public void setEndTime_Equal(java.sql.Time endTime) { + regEndTime(CK_EQ, endTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as notEqual. + */ + public void setEndTime_NotEqual(java.sql.Time endTime) { + regEndTime(CK_NE, endTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as greaterThan. + */ + public void setEndTime_GreaterThan(java.sql.Time endTime) { + regEndTime(CK_GT, endTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as lessThan. + */ + public void setEndTime_LessThan(java.sql.Time endTime) { + regEndTime(CK_LT, endTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as greaterEqual. + */ + public void setEndTime_GreaterEqual(java.sql.Time endTime) { + regEndTime(CK_GE, endTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param endTime The value of endTime as lessEqual. + */ + public void setEndTime_LessEqual(java.sql.Time endTime) { + regEndTime(CK_LE, endTime); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setEndTime_IsNull() { + regEndTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setEndTime_IsNotNull() { + regEndTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regEndTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueEndTime(), "END_TIME", "EndTime", + "endTime"); + } + + protected void registerInlineEndTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueEndTime(), "END_TIME", + "EndTime", "endTime"); + } + + abstract protected ConditionValue getCValueEndTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : + * Default=[F]} + * + * @param secret The value of secret as equal. + */ + public void setSecret_Equal(String secret) { + regSecret(CK_EQ, fRES(secret)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as notEqual. + */ + public void setSecret_NotEqual(String secret) { + regSecret(CK_NE, fRES(secret)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as greaterThan. + */ + public void setSecret_GreaterThan(String secret) { + regSecret(CK_GT, fRES(secret)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as lessThan. + */ + public void setSecret_LessThan(String secret) { + regSecret(CK_LT, fRES(secret)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as greaterEqual. + */ + public void setSecret_GreaterEqual(String secret) { + regSecret(CK_GE, fRES(secret)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as lessEqual. + */ + public void setSecret_LessEqual(String secret) { + regSecret(CK_LE, fRES(secret)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param secret The value of secret as prefixSearch. + */ + public void setSecret_PrefixSearch(String secret) { + regSecret(CK_PS, fRES(secret)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param secret The value of secret as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setSecret_LikeSearch( + String secret, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(secret), getCValueSecret(), + "SECRET", "Secret", "secret", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secretList The collection of secret as inScope. + */ + public void setSecret_InScope(Collection secretList) { + regSecret(CK_INS, cTL(secretList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secret The collection of secret as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setSecret_InScope( + String secret, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(secret), getCValueSecret(), "SECRET", + "Secret", "secret", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param secretList The collection of secret as notInScope. + */ + public void setSecret_NotInScope(Collection secretList) { + regSecret(CK_NINS, cTL(secretList)); + } + + protected void regSecret(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSecret(), "SECRET", "Secret", + "secret"); + } + + protected void registerInlineSecret(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSecret(), "SECRET", "Secret", + "secret"); + } + + abstract protected ConditionValue getCValueSecret(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(10)} + * + * @param type The value of type as equal. + */ + public void setType_Equal(String type) { + regType(CK_EQ, fRES(type)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as notEqual. + */ + public void setType_NotEqual(String type) { + regType(CK_NE, fRES(type)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterThan. + */ + public void setType_GreaterThan(String type) { + regType(CK_GT, fRES(type)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessThan. + */ + public void setType_LessThan(String type) { + regType(CK_LT, fRES(type)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as greaterEqual. + */ + public void setType_GreaterEqual(String type) { + regType(CK_GE, fRES(type)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as lessEqual. + */ + public void setType_LessEqual(String type) { + regType(CK_LE, fRES(type)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param type The value of type as prefixSearch. + */ + public void setType_PrefixSearch(String type) { + regType(CK_PS, fRES(type)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param type The value of type as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setType_LikeSearch( + String type, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", + "Type", "type", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as inScope. + */ + public void setType_InScope(Collection typeList) { + regType(CK_INS, cTL(typeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param type The collection of type as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setType_InScope( + String type, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", + "Type", "type", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param typeList The collection of type as notInScope. + */ + public void setType_NotInScope(Collection typeList) { + regType(CK_NINS, cTL(typeList)); + } + + protected void regType(ConditionKey key, Object value) { + registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + protected void registerInlineType(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); + } + + abstract protected ConditionValue getCValueType(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return EventScheduleCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,324 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; + +/** + * The abstract condition-query of EVENT_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsEventScheduleContentCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsEventScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE_CONTENT"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to + * EVENT_SCHEDULE} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param eventScheduleCBquery Query. + * @deprecated Please use inScopeEventSchedule(subQuery) method. + */ + public void setId_InScopeSubQuery_EventSchedule( + EventScheduleCQ eventScheduleCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_EventSchedule(eventScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(eventScheduleCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeEventSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleCB cb = new EventScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_EventSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1000)} + * + * @param content The value of content as equal. + */ + public void setContent_Equal(String content) { + regContent(CK_EQ, fRES(content)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as notEqual. + */ + public void setContent_NotEqual(String content) { + regContent(CK_NE, fRES(content)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterThan. + */ + public void setContent_GreaterThan(String content) { + regContent(CK_GT, fRES(content)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessThan. + */ + public void setContent_LessThan(String content) { + regContent(CK_LT, fRES(content)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterEqual. + */ + public void setContent_GreaterEqual(String content) { + regContent(CK_GE, fRES(content)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessEqual. + */ + public void setContent_LessEqual(String content) { + regContent(CK_LE, fRES(content)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as prefixSearch. + */ + public void setContent_PrefixSearch(String content) { + regContent(CK_PS, fRES(content)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param content The value of content as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setContent_LikeSearch( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as inScope. + */ + public void setContent_InScope(Collection contentList) { + regContent(CK_INS, cTL(contentList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param content The collection of content as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setContent_InScope( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as notInScope. + */ + public void setContent_NotInScope(Collection contentList) { + regContent(CK_NINS, cTL(contentList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setContent_IsNull() { + regContent(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setContent_IsNotNull() { + regContent(CK_ISNN, DUMMY_OBJECT); + } + + protected void regContent(ConditionKey key, Object value) { + registerQuery(key, value, getCValueContent(), "CONTENT", "Content", + "content"); + } + + protected void registerInlineContent(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueContent(), "CONTENT", + "Content", "content"); + } + + abstract protected ConditionValue getCValueContent(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return EventScheduleContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,429 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; + +/** + * The abstract condition-query of EVENT_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsEventScheduleMappingCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsEventScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "EVENT_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * EVENT_SCHEDULE} + * + * @param scheduleId The value of scheduleId as equal. + */ + public void setScheduleId_Equal(Long scheduleId) { + regScheduleId(CK_EQ, scheduleId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as notEqual. + */ + public void setScheduleId_NotEqual(Long scheduleId) { + regScheduleId(CK_NE, scheduleId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterThan. + */ + public void setScheduleId_GreaterThan(Long scheduleId) { + regScheduleId(CK_GT, scheduleId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessThan. + */ + public void setScheduleId_LessThan(Long scheduleId) { + regScheduleId(CK_LT, scheduleId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterEqual. + */ + public void setScheduleId_GreaterEqual(Long scheduleId) { + regScheduleId(CK_GE, scheduleId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessEqual. + */ + public void setScheduleId_LessEqual(Long scheduleId) { + regScheduleId(CK_LE, scheduleId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as inScope. + */ + public void setScheduleId_InScope(Collection scheduleIdList) { + regScheduleId(CK_INS, cTL(scheduleIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as notInScope. + */ + public void setScheduleId_NotInScope(Collection scheduleIdList) { + regScheduleId(CK_NINS, cTL(scheduleIdList)); + } + + /** + * @param eventScheduleCBquery Query. + * @deprecated Please use inScopeEventSchedule(subQuery) method. + */ + public void setScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ eventScheduleCBquery) { + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_EventSchedule(eventScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(eventScheduleCBquery, "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + public void inScopeEventSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleCB cb = new EventScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_EventSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery); + + protected void regScheduleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + protected void registerInlineScheduleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + abstract protected ConditionValue getCValueScheduleId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) + * : FK to USER_INFO} + * + * @param userId The value of userId as equal. + */ + public void setUserId_Equal(String userId) { + regUserId(CK_EQ, fRES(userId)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as notEqual. + */ + public void setUserId_NotEqual(String userId) { + regUserId(CK_NE, fRES(userId)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterThan. + */ + public void setUserId_GreaterThan(String userId) { + regUserId(CK_GT, fRES(userId)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessThan. + */ + public void setUserId_LessThan(String userId) { + regUserId(CK_LT, fRES(userId)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as greaterEqual. + */ + public void setUserId_GreaterEqual(String userId) { + regUserId(CK_GE, fRES(userId)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as lessEqual. + */ + public void setUserId_LessEqual(String userId) { + regUserId(CK_LE, fRES(userId)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param userId The value of userId as prefixSearch. + */ + public void setUserId_PrefixSearch(String userId) { + regUserId(CK_PS, fRES(userId)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param userId The value of userId as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUserId_LikeSearch( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as inScope. + */ + public void setUserId_InScope(Collection userIdList) { + regUserId(CK_INS, cTL(userIdList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userId The collection of userId as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUserId_InScope( + String userId, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), + "USER_ID", "UserId", "userId", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param userIdList The collection of userId as notInScope. + */ + public void setUserId_NotInScope(Collection userIdList) { + regUserId(CK_NINS, cTL(userIdList)); + } + + /** + * @param userInfoCBquery Query. + * @deprecated Please use inScopeUserInfo(subQuery) method. + */ + public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", + subQueryPropertyName); + } + + public void inScopeUserInfo(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + UserInfoCB cb = new UserInfoCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_UserInfo( + jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); + + protected void regUserId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + protected void registerInlineUserId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", + "userId"); + } + + abstract protected ConditionValue getCValueUserId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return EventScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,2044 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; - -/** - * The abstract condition-query of ROUTINE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsRoutineScheduleCQ extends - AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsRoutineScheduleCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * @param routineScheduleContentCBquery Query. - * @deprecated Please use inScopeRoutineScheduleContentAsOne(subQuery) - * method. - */ - public void setId_InScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ routineScheduleContentCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleContentAsOne(routineScheduleContentCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(routineScheduleContentCBquery, "ID", "ID", - subQueryPropertyName); - } - - public void inScopeRoutineScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleContentAsOne(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery); - - /** - * @param routineScheduleMappingCBquery Query. - * @deprecated Please use inScopeRoutineScheduleMappingList(subQuery) - * method. - */ - public void setId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ routineScheduleMappingCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(routineScheduleMappingCBquery, "ID", - "SCHEDULE_ID", subQueryPropertyName); - } - - public void inScopeRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - public void notInScopeRoutineScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne(cb - .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery); - - public void notInScopeRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotInScopeSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_NotInScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - /** - * @param routineScheduleContentCBquery Query. - * @deprecated Please use existsRoutineScheduleContentAsOne(subQuery) - * method. - */ - public void setId_ExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ routineScheduleContentCBquery) { - String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleContentAsOne(routineScheduleContentCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(routineScheduleContentCBquery, "ID", "ID", - subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select ID from - * ROUTINE_SCHEDULE_CONTENT where ...)} - * - * @param subQuery The sub-query of - * Id_ExistsSubQuery_RoutineScheduleContentAsOne for 'exists'. - * (NotNull) - */ - public void existsRoutineScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleContentAsOne(cb - .query());// for saving query-value. - registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_ExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery); - - /** - * @param routineScheduleMappingCBquery Query. - * @deprecated Please use existsRoutineScheduleMappingList(subQuery) method. - */ - public void setId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ routineScheduleMappingCBquery) { - String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(routineScheduleMappingCBquery, "ID", - "SCHEDULE_ID", subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select SCHEDULE_ID from - * ROUTINE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * Id_ExistsSubQuery_RoutineScheduleMappingList for 'exists'. - * (NotNull) - */ - public void existsRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_ExistsSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - /** - * Set up 'not exists' sub-query. {not exists (select ID from - * ROUTINE_SCHEDULE_CONTENT where ...)} - * - * @param subQuery The sub-query of - * Id_NotExistsSubQuery_RoutineScheduleContentAsOne for 'not - * exists'. (NotNull) - */ - public void notExistsRoutineScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleContentCB cb = new RoutineScheduleContentCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotExistsSubQuery_RoutineScheduleContentAsOne(cb - .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_NotExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery); - - /** - * Set up 'not exists' sub-query. {not exists (select SCHEDULE_ID from - * ROUTINE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * Id_NotExistsSubQuery_RoutineScheduleMappingList for 'not - * exists'. (NotNull) - */ - public void notExistsRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotExistsSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_NotExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - public void xderiveRoutineScheduleMappingList(String function, - SubQuery subQuery, String aliasName) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForDeriveReferrer(); - subQuery.query(cb); - String subQueryPropertyName = keepId_DeriveSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerDeriveSubQuery(function, cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName, aliasName); - } - - abstract public String keepId_DeriveSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(100)} - * - * @param title The value of title as equal. - */ - public void setTitle_Equal(String title) { - regTitle(CK_EQ, fRES(title)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as notEqual. - */ - public void setTitle_NotEqual(String title) { - regTitle(CK_NE, fRES(title)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as greaterThan. - */ - public void setTitle_GreaterThan(String title) { - regTitle(CK_GT, fRES(title)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as lessThan. - */ - public void setTitle_LessThan(String title) { - regTitle(CK_LT, fRES(title)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as greaterEqual. - */ - public void setTitle_GreaterEqual(String title) { - regTitle(CK_GE, fRES(title)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as lessEqual. - */ - public void setTitle_LessEqual(String title) { - regTitle(CK_LE, fRES(title)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as prefixSearch. - */ - public void setTitle_PrefixSearch(String title) { - regTitle(CK_PS, fRES(title)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param title The value of title as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setTitle_LikeSearch( - String title, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(title), getCValueTitle(), "TITLE", - "Title", "title", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param titleList The collection of title as inScope. - */ - public void setTitle_InScope(Collection titleList) { - regTitle(CK_INS, cTL(titleList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param title The collection of title as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setTitle_InScope( - String title, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(title), getCValueTitle(), "TITLE", - "Title", "title", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param titleList The collection of title as notInScope. - */ - public void setTitle_NotInScope(Collection titleList) { - regTitle(CK_NINS, cTL(titleList)); - } - - protected void regTitle(ConditionKey key, Object value) { - registerQuery(key, value, getCValueTitle(), "TITLE", "Title", "title"); - } - - protected void registerInlineTitle(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueTitle(), "TITLE", "Title", - "title"); - } - - abstract protected ConditionValue getCValueTitle(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} - * - * @param location The value of location as equal. - */ - public void setLocation_Equal(String location) { - regLocation(CK_EQ, fRES(location)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as notEqual. - */ - public void setLocation_NotEqual(String location) { - regLocation(CK_NE, fRES(location)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as greaterThan. - */ - public void setLocation_GreaterThan(String location) { - regLocation(CK_GT, fRES(location)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as lessThan. - */ - public void setLocation_LessThan(String location) { - regLocation(CK_LT, fRES(location)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as greaterEqual. - */ - public void setLocation_GreaterEqual(String location) { - regLocation(CK_GE, fRES(location)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as lessEqual. - */ - public void setLocation_LessEqual(String location) { - regLocation(CK_LE, fRES(location)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as prefixSearch. - */ - public void setLocation_PrefixSearch(String location) { - regLocation(CK_PS, fRES(location)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param location The value of location as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setLocation_LikeSearch( - String location, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(location), getCValueLocation(), - "LOCATION", "Location", "location", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param locationList The collection of location as inScope. - */ - public void setLocation_InScope(Collection locationList) { - regLocation(CK_INS, cTL(locationList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param location The collection of location as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setLocation_InScope( - String location, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(location), getCValueLocation(), - "LOCATION", "Location", "location", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param locationList The collection of location as notInScope. - */ - public void setLocation_NotInScope(Collection locationList) { - regLocation(CK_NINS, cTL(locationList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setLocation_IsNull() { - regLocation(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setLocation_IsNotNull() { - regLocation(CK_ISNN, DUMMY_OBJECT); - } - - protected void regLocation(ConditionKey key, Object value) { - registerQuery(key, value, getCValueLocation(), "LOCATION", "Location", - "location"); - } - - protected void registerInlineLocation(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueLocation(), "LOCATION", - "Location", "location"); - } - - abstract protected ConditionValue getCValueLocation(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} - * - * @param startDate The value of startDate as equal. - */ - public void setStartDate_Equal(java.util.Date startDate) { - regStartDate(CK_EQ, startDate); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as notEqual. - */ - public void setStartDate_NotEqual(java.util.Date startDate) { - regStartDate(CK_NE, startDate); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as greaterThan. - */ - public void setStartDate_GreaterThan(java.util.Date startDate) { - regStartDate(CK_GT, startDate); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as lessThan. - */ - public void setStartDate_LessThan(java.util.Date startDate) { - regStartDate(CK_LT, startDate); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as greaterEqual. - */ - public void setStartDate_GreaterEqual(java.util.Date startDate) { - regStartDate(CK_GE, startDate); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as lessEqual. - */ - public void setStartDate_LessEqual(java.util.Date startDate) { - regStartDate(CK_LE, startDate); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {NotNull : DATE} - * - * @param fromDate The from-date of startDate. (Nullable) - * @param toDate The to-date of startDate. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setStartDate_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery(fromDate, toDate, getCValueStartDate(), - "START_DATE", "StartDate", "startDate", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {NotNull : DATE} - * - * @param fromDate The from-date of startDate. (Nullable) - * @param toDate The to-date of startDate. (Nullable) - */ - public void setStartDate_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setStartDate_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regStartDate(ConditionKey key, Object value) { - registerQuery(key, value, getCValueStartDate(), "START_DATE", - "StartDate", "startDate"); - } - - protected void registerInlineStartDate(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueStartDate(), "START_DATE", - "StartDate", "startDate"); - } - - abstract protected ConditionValue getCValueStartDate(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIME} - * - * @param startTime The value of startTime as equal. - */ - public void setStartTime_Equal(java.sql.Time startTime) { - regStartTime(CK_EQ, startTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as notEqual. - */ - public void setStartTime_NotEqual(java.sql.Time startTime) { - regStartTime(CK_NE, startTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as greaterThan. - */ - public void setStartTime_GreaterThan(java.sql.Time startTime) { - regStartTime(CK_GT, startTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as lessThan. - */ - public void setStartTime_LessThan(java.sql.Time startTime) { - regStartTime(CK_LT, startTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as greaterEqual. - */ - public void setStartTime_GreaterEqual(java.sql.Time startTime) { - regStartTime(CK_GE, startTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as lessEqual. - */ - public void setStartTime_LessEqual(java.sql.Time startTime) { - regStartTime(CK_LE, startTime); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setStartTime_IsNull() { - regStartTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setStartTime_IsNotNull() { - regStartTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regStartTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueStartTime(), "START_TIME", - "StartTime", "startTime"); - } - - protected void registerInlineStartTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueStartTime(), "START_TIME", - "StartTime", "startTime"); - } - - abstract protected ConditionValue getCValueStartTime(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {DATE} - * - * @param endDate The value of endDate as equal. - */ - public void setEndDate_Equal(java.util.Date endDate) { - regEndDate(CK_EQ, endDate); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as notEqual. - */ - public void setEndDate_NotEqual(java.util.Date endDate) { - regEndDate(CK_NE, endDate); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as greaterThan. - */ - public void setEndDate_GreaterThan(java.util.Date endDate) { - regEndDate(CK_GT, endDate); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as lessThan. - */ - public void setEndDate_LessThan(java.util.Date endDate) { - regEndDate(CK_LT, endDate); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as greaterEqual. - */ - public void setEndDate_GreaterEqual(java.util.Date endDate) { - regEndDate(CK_GE, endDate); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as lessEqual. - */ - public void setEndDate_LessEqual(java.util.Date endDate) { - regEndDate(CK_LE, endDate); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {DATE} - * - * @param fromDate The from-date of endDate. (Nullable) - * @param toDate The to-date of endDate. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setEndDate_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery(fromDate, toDate, getCValueEndDate(), "END_DATE", - "EndDate", "endDate", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {DATE} - * - * @param fromDate The from-date of endDate. (Nullable) - * @param toDate The to-date of endDate. (Nullable) - */ - public void setEndDate_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setEndDate_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setEndDate_IsNull() { - regEndDate(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setEndDate_IsNotNull() { - regEndDate(CK_ISNN, DUMMY_OBJECT); - } - - protected void regEndDate(ConditionKey key, Object value) { - registerQuery(key, value, getCValueEndDate(), "END_DATE", "EndDate", - "endDate"); - } - - protected void registerInlineEndDate(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueEndDate(), "END_DATE", - "EndDate", "endDate"); - } - - abstract protected ConditionValue getCValueEndDate(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIME} - * - * @param endTime The value of endTime as equal. - */ - public void setEndTime_Equal(java.sql.Time endTime) { - regEndTime(CK_EQ, endTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as notEqual. - */ - public void setEndTime_NotEqual(java.sql.Time endTime) { - regEndTime(CK_NE, endTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as greaterThan. - */ - public void setEndTime_GreaterThan(java.sql.Time endTime) { - regEndTime(CK_GT, endTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as lessThan. - */ - public void setEndTime_LessThan(java.sql.Time endTime) { - regEndTime(CK_LT, endTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as greaterEqual. - */ - public void setEndTime_GreaterEqual(java.sql.Time endTime) { - regEndTime(CK_GE, endTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as lessEqual. - */ - public void setEndTime_LessEqual(java.sql.Time endTime) { - regEndTime(CK_LE, endTime); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setEndTime_IsNull() { - regEndTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setEndTime_IsNotNull() { - regEndTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regEndTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueEndTime(), "END_TIME", "EndTime", - "endTime"); - } - - protected void registerInlineEndTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueEndTime(), "END_TIME", - "EndTime", "endTime"); - } - - abstract protected ConditionValue getCValueEndTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : - * Default=[F]} - * - * @param secret The value of secret as equal. - */ - public void setSecret_Equal(String secret) { - regSecret(CK_EQ, fRES(secret)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as notEqual. - */ - public void setSecret_NotEqual(String secret) { - regSecret(CK_NE, fRES(secret)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as greaterThan. - */ - public void setSecret_GreaterThan(String secret) { - regSecret(CK_GT, fRES(secret)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as lessThan. - */ - public void setSecret_LessThan(String secret) { - regSecret(CK_LT, fRES(secret)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as greaterEqual. - */ - public void setSecret_GreaterEqual(String secret) { - regSecret(CK_GE, fRES(secret)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as lessEqual. - */ - public void setSecret_LessEqual(String secret) { - regSecret(CK_LE, fRES(secret)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as prefixSearch. - */ - public void setSecret_PrefixSearch(String secret) { - regSecret(CK_PS, fRES(secret)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param secret The value of secret as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setSecret_LikeSearch( - String secret, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(secret), getCValueSecret(), - "SECRET", "Secret", "secret", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param secretList The collection of secret as inScope. - */ - public void setSecret_InScope(Collection secretList) { - regSecret(CK_INS, cTL(secretList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param secret The collection of secret as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setSecret_InScope( - String secret, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(secret), getCValueSecret(), "SECRET", - "Secret", "secret", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param secretList The collection of secret as notInScope. - */ - public void setSecret_NotInScope(Collection secretList) { - regSecret(CK_NINS, cTL(secretList)); - } - - protected void regSecret(ConditionKey key, Object value) { - registerQuery(key, value, getCValueSecret(), "SECRET", "Secret", - "secret"); - } - - protected void registerInlineSecret(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueSecret(), "SECRET", "Secret", - "secret"); - } - - abstract protected ConditionValue getCValueSecret(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(10)} - * - * @param type The value of type as equal. - */ - public void setType_Equal(String type) { - regType(CK_EQ, fRES(type)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as notEqual. - */ - public void setType_NotEqual(String type) { - regType(CK_NE, fRES(type)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as greaterThan. - */ - public void setType_GreaterThan(String type) { - regType(CK_GT, fRES(type)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as lessThan. - */ - public void setType_LessThan(String type) { - regType(CK_LT, fRES(type)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as greaterEqual. - */ - public void setType_GreaterEqual(String type) { - regType(CK_GE, fRES(type)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as lessEqual. - */ - public void setType_LessEqual(String type) { - regType(CK_LE, fRES(type)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param type The value of type as prefixSearch. - */ - public void setType_PrefixSearch(String type) { - regType(CK_PS, fRES(type)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param type The value of type as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setType_LikeSearch( - String type, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(type), getCValueType(), "TYPE", - "Type", "type", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param typeList The collection of type as inScope. - */ - public void setType_InScope(Collection typeList) { - regType(CK_INS, cTL(typeList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param type The collection of type as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setType_InScope( - String type, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(type), getCValueType(), "TYPE", - "Type", "type", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param typeList The collection of type as notInScope. - */ - public void setType_NotInScope(Collection typeList) { - regType(CK_NINS, cTL(typeList)); - } - - protected void regType(ConditionKey key, Object value) { - registerQuery(key, value, getCValueType(), "TYPE", "Type", "type"); - } - - protected void registerInlineType(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueType(), "TYPE", "Type", "type"); - } - - abstract protected ConditionValue getCValueType(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} - * - * @param createdTime The value of createdTime as equal. - */ - public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { - regCreatedTime(CK_EQ, createdTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as notEqual. - */ - public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_NE, createdTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterThan. - */ - public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GT, createdTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessThan. - */ - public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LT, createdTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterEqual. - */ - public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GE, createdTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessEqual. - */ - public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LE, createdTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {NotNull : TIMESTAMP} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setCreatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueCreatedTime(), - "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {NotNull : TIMESTAMP} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - */ - public void setCreatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setCreatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regCreatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - protected void registerInlineCreatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - abstract protected ConditionValue getCValueCreatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} - * - * @param createdBy The value of createdBy as equal. - */ - public void setCreatedBy_Equal(String createdBy) { - regCreatedBy(CK_EQ, fRES(createdBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as notEqual. - */ - public void setCreatedBy_NotEqual(String createdBy) { - regCreatedBy(CK_NE, fRES(createdBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterThan. - */ - public void setCreatedBy_GreaterThan(String createdBy) { - regCreatedBy(CK_GT, fRES(createdBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessThan. - */ - public void setCreatedBy_LessThan(String createdBy) { - regCreatedBy(CK_LT, fRES(createdBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterEqual. - */ - public void setCreatedBy_GreaterEqual(String createdBy) { - regCreatedBy(CK_GE, fRES(createdBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessEqual. - */ - public void setCreatedBy_LessEqual(String createdBy) { - regCreatedBy(CK_LE, fRES(createdBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as prefixSearch. - */ - public void setCreatedBy_PrefixSearch(String createdBy) { - regCreatedBy(CK_PS, fRES(createdBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param createdBy The value of createdBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setCreatedBy_LikeSearch( - String createdBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as inScope. - */ - public void setCreatedBy_InScope(Collection createdByList) { - regCreatedBy(CK_INS, cTL(createdByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdBy The collection of createdBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setCreatedBy_InScope( - String createdBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as notInScope. - */ - public void setCreatedBy_NotInScope(Collection createdByList) { - regCreatedBy(CK_NINS, cTL(createdByList)); - } - - protected void regCreatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - protected void registerInlineCreatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - abstract protected ConditionValue getCValueCreatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} - * - * @param updatedTime The value of updatedTime as equal. - */ - public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_EQ, updatedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as notEqual. - */ - public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_NE, updatedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterThan. - */ - public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GT, updatedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessThan. - */ - public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LT, updatedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterEqual. - */ - public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GE, updatedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessEqual. - */ - public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LE, updatedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {NotNull : TIMESTAMP} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setUpdatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueUpdatedTime(), - "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {NotNull : TIMESTAMP} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - */ - public void setUpdatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setUpdatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regUpdatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - protected void registerInlineUpdatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - abstract protected ConditionValue getCValueUpdatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} - * - * @param updatedBy The value of updatedBy as equal. - */ - public void setUpdatedBy_Equal(String updatedBy) { - regUpdatedBy(CK_EQ, fRES(updatedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as notEqual. - */ - public void setUpdatedBy_NotEqual(String updatedBy) { - regUpdatedBy(CK_NE, fRES(updatedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterThan. - */ - public void setUpdatedBy_GreaterThan(String updatedBy) { - regUpdatedBy(CK_GT, fRES(updatedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessThan. - */ - public void setUpdatedBy_LessThan(String updatedBy) { - regUpdatedBy(CK_LT, fRES(updatedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterEqual. - */ - public void setUpdatedBy_GreaterEqual(String updatedBy) { - regUpdatedBy(CK_GE, fRES(updatedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessEqual. - */ - public void setUpdatedBy_LessEqual(String updatedBy) { - regUpdatedBy(CK_LE, fRES(updatedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as prefixSearch. - */ - public void setUpdatedBy_PrefixSearch(String updatedBy) { - regUpdatedBy(CK_PS, fRES(updatedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param updatedBy The value of updatedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUpdatedBy_LikeSearch( - String updatedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as inScope. - */ - public void setUpdatedBy_InScope(Collection updatedByList) { - regUpdatedBy(CK_INS, cTL(updatedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedBy The collection of updatedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUpdatedBy_InScope( - String updatedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as notInScope. - */ - public void setUpdatedBy_NotInScope(Collection updatedByList) { - regUpdatedBy(CK_NINS, cTL(updatedByList)); - } - - protected void regUpdatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - protected void registerInlineUpdatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - abstract protected ConditionValue getCValueUpdatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} - * - * @param deletedTime The value of deletedTime as equal. - */ - public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_EQ, deletedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as notEqual. - */ - public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_NE, deletedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterThan. - */ - public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GT, deletedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessThan. - */ - public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LT, deletedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterEqual. - */ - public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GE, deletedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessEqual. - */ - public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LE, deletedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setDeletedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueDeletedTime(), - "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - */ - public void setDeletedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setDeletedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedTime_IsNull() { - regDeletedTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedTime_IsNotNull() { - regDeletedTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - protected void registerInlineDeletedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - abstract protected ConditionValue getCValueDeletedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} - * - * @param deletedBy The value of deletedBy as equal. - */ - public void setDeletedBy_Equal(String deletedBy) { - regDeletedBy(CK_EQ, fRES(deletedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as notEqual. - */ - public void setDeletedBy_NotEqual(String deletedBy) { - regDeletedBy(CK_NE, fRES(deletedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterThan. - */ - public void setDeletedBy_GreaterThan(String deletedBy) { - regDeletedBy(CK_GT, fRES(deletedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessThan. - */ - public void setDeletedBy_LessThan(String deletedBy) { - regDeletedBy(CK_LT, fRES(deletedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterEqual. - */ - public void setDeletedBy_GreaterEqual(String deletedBy) { - regDeletedBy(CK_GE, fRES(deletedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessEqual. - */ - public void setDeletedBy_LessEqual(String deletedBy) { - regDeletedBy(CK_LE, fRES(deletedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as prefixSearch. - */ - public void setDeletedBy_PrefixSearch(String deletedBy) { - regDeletedBy(CK_PS, fRES(deletedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param deletedBy The value of deletedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setDeletedBy_LikeSearch( - String deletedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as inScope. - */ - public void setDeletedBy_InScope(Collection deletedByList) { - regDeletedBy(CK_INS, cTL(deletedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedBy The collection of deletedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setDeletedBy_InScope( - String deletedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as notInScope. - */ - public void setDeletedBy_NotInScope(Collection deletedByList) { - regDeletedBy(CK_NINS, cTL(deletedByList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedBy_IsNull() { - regDeletedBy(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedBy_IsNotNull() { - regDeletedBy(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - protected void registerInlineDeletedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - abstract protected ConditionValue getCValueDeletedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} - * - * @param versionno The value of versionno as equal. - */ - public void setVersionno_Equal(Integer versionno) { - regVersionno(CK_EQ, versionno); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as notEqual. - */ - public void setVersionno_NotEqual(Integer versionno) { - regVersionno(CK_NE, versionno); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterThan. - */ - public void setVersionno_GreaterThan(Integer versionno) { - regVersionno(CK_GT, versionno); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessThan. - */ - public void setVersionno_LessThan(Integer versionno) { - regVersionno(CK_LT, versionno); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterEqual. - */ - public void setVersionno_GreaterEqual(Integer versionno) { - regVersionno(CK_GE, versionno); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessEqual. - */ - public void setVersionno_LessEqual(Integer versionno) { - regVersionno(CK_LE, versionno); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as inScope. - */ - public void setVersionno_InScope(Collection versionnoList) { - regVersionno(CK_INS, cTL(versionnoList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as notInScope. - */ - public void setVersionno_NotInScope(Collection versionnoList) { - regVersionno(CK_NINS, cTL(versionnoList)); - } - - protected void regVersionno(ConditionKey key, Object value) { - registerQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - protected void registerInlineVersionno(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - abstract protected ConditionValue getCValueVersionno(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return RoutineScheduleCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,324 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; - -/** - * The abstract condition-query of ROUTINE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsRoutineScheduleContentCQ extends - AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsRoutineScheduleContentCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to - * ROUTINE_SCHEDULE} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * @param routineScheduleCBquery Query. - * @deprecated Please use inScopeRoutineSchedule(subQuery) method. - */ - public void setId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ routineScheduleCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_RoutineSchedule(routineScheduleCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(routineScheduleCBquery, "ID", "ID", - subQueryPropertyName); - } - - public void inScopeRoutineSchedule(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleCB cb = new RoutineScheduleCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_RoutineSchedule(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ subQuery); - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1000)} - * - * @param content The value of content as equal. - */ - public void setContent_Equal(String content) { - regContent(CK_EQ, fRES(content)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as notEqual. - */ - public void setContent_NotEqual(String content) { - regContent(CK_NE, fRES(content)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as greaterThan. - */ - public void setContent_GreaterThan(String content) { - regContent(CK_GT, fRES(content)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as lessThan. - */ - public void setContent_LessThan(String content) { - regContent(CK_LT, fRES(content)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as greaterEqual. - */ - public void setContent_GreaterEqual(String content) { - regContent(CK_GE, fRES(content)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as lessEqual. - */ - public void setContent_LessEqual(String content) { - regContent(CK_LE, fRES(content)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as prefixSearch. - */ - public void setContent_PrefixSearch(String content) { - regContent(CK_PS, fRES(content)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param content The value of content as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setContent_LikeSearch( - String content, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), - "CONTENT", "Content", "content", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param contentList The collection of content as inScope. - */ - public void setContent_InScope(Collection contentList) { - regContent(CK_INS, cTL(contentList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param content The collection of content as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setContent_InScope( - String content, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), - "CONTENT", "Content", "content", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param contentList The collection of content as notInScope. - */ - public void setContent_NotInScope(Collection contentList) { - regContent(CK_NINS, cTL(contentList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setContent_IsNull() { - regContent(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setContent_IsNotNull() { - regContent(CK_ISNN, DUMMY_OBJECT); - } - - protected void regContent(ConditionKey key, Object value) { - registerQuery(key, value, getCValueContent(), "CONTENT", "Content", - "content"); - } - - protected void registerInlineContent(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueContent(), "CONTENT", - "Content", "content"); - } - - abstract protected ConditionValue getCValueContent(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return RoutineScheduleContentCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleContentCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsRoutineScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,429 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.UserInfoCB; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; - -/** - * The abstract condition-query of ROUTINE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsRoutineScheduleMappingCQ extends - AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsRoutineScheduleMappingCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - public String getTableSqlName() { - return "ROUTINE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to - * ROUTINE_SCHEDULE} - * - * @param scheduleId The value of scheduleId as equal. - */ - public void setScheduleId_Equal(Long scheduleId) { - regScheduleId(CK_EQ, scheduleId); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as notEqual. - */ - public void setScheduleId_NotEqual(Long scheduleId) { - regScheduleId(CK_NE, scheduleId); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as greaterThan. - */ - public void setScheduleId_GreaterThan(Long scheduleId) { - regScheduleId(CK_GT, scheduleId); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as lessThan. - */ - public void setScheduleId_LessThan(Long scheduleId) { - regScheduleId(CK_LT, scheduleId); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as greaterEqual. - */ - public void setScheduleId_GreaterEqual(Long scheduleId) { - regScheduleId(CK_GE, scheduleId); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as lessEqual. - */ - public void setScheduleId_LessEqual(Long scheduleId) { - regScheduleId(CK_LE, scheduleId); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param scheduleIdList The collection of scheduleId as inScope. - */ - public void setScheduleId_InScope(Collection scheduleIdList) { - regScheduleId(CK_INS, cTL(scheduleIdList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param scheduleIdList The collection of scheduleId as notInScope. - */ - public void setScheduleId_NotInScope(Collection scheduleIdList) { - regScheduleId(CK_NINS, cTL(scheduleIdList)); - } - - /** - * @param routineScheduleCBquery Query. - * @deprecated Please use inScopeRoutineSchedule(subQuery) method. - */ - public void setScheduleId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ routineScheduleCBquery) { - String subQueryPropertyName = keepScheduleId_InScopeSubQuery_RoutineSchedule(routineScheduleCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(routineScheduleCBquery, "SCHEDULE_ID", "ID", - subQueryPropertyName); - } - - public void inScopeRoutineSchedule(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleCB cb = new RoutineScheduleCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepScheduleId_InScopeSubQuery_RoutineSchedule(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "SCHEDULE_ID", "ID", - subQueryPropertyName); - } - - abstract public String keepScheduleId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ subQuery); - - protected void regScheduleId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", - "ScheduleId", "scheduleId"); - } - - protected void registerInlineScheduleId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", - "ScheduleId", "scheduleId"); - } - - abstract protected ConditionValue getCValueScheduleId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) - * : FK to USER_INFO} - * - * @param userId The value of userId as equal. - */ - public void setUserId_Equal(String userId) { - regUserId(CK_EQ, fRES(userId)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as notEqual. - */ - public void setUserId_NotEqual(String userId) { - regUserId(CK_NE, fRES(userId)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as greaterThan. - */ - public void setUserId_GreaterThan(String userId) { - regUserId(CK_GT, fRES(userId)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as lessThan. - */ - public void setUserId_LessThan(String userId) { - regUserId(CK_LT, fRES(userId)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as greaterEqual. - */ - public void setUserId_GreaterEqual(String userId) { - regUserId(CK_GE, fRES(userId)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as lessEqual. - */ - public void setUserId_LessEqual(String userId) { - regUserId(CK_LE, fRES(userId)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as prefixSearch. - */ - public void setUserId_PrefixSearch(String userId) { - regUserId(CK_PS, fRES(userId)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param userId The value of userId as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUserId_LikeSearch( - String userId, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), - "USER_ID", "UserId", "userId", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param userIdList The collection of userId as inScope. - */ - public void setUserId_InScope(Collection userIdList) { - regUserId(CK_INS, cTL(userIdList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param userId The collection of userId as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUserId_InScope( - String userId, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), - "USER_ID", "UserId", "userId", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param userIdList The collection of userId as notInScope. - */ - public void setUserId_NotInScope(Collection userIdList) { - regUserId(CK_NINS, cTL(userIdList)); - } - - /** - * @param userInfoCBquery Query. - * @deprecated Please use inScopeUserInfo(subQuery) method. - */ - public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { - String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", - subQueryPropertyName); - } - - public void inScopeUserInfo(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - UserInfoCB cb = new UserInfoCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); - } - - abstract public String keepUserId_InScopeSubQuery_UserInfo( - jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); - - protected void regUserId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", - "userId"); - } - - protected void registerInlineUserId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", - "userId"); - } - - abstract protected ConditionValue getCValueUserId(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return RoutineScheduleMappingCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleMappingCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,1933 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; - -/** - * The abstract condition-query of SINGLE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsSingleScheduleCQ extends AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsSingleScheduleCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * @param singleScheduleContentCBquery Query. - * @deprecated Please use inScopeSingleScheduleContentAsOne(subQuery) - * method. - */ - public void setId_InScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ singleScheduleContentCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleContentAsOne(singleScheduleContentCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(singleScheduleContentCBquery, "ID", "ID", - subQueryPropertyName); - } - - public void inScopeSingleScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleContentCB cb = new SingleScheduleContentCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleContentAsOne(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery); - - /** - * @param singleScheduleMappingCBquery Query. - * @deprecated Please use inScopeSingleScheduleMappingList(subQuery) method. - */ - public void setId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ singleScheduleMappingCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(singleScheduleMappingCBquery, "ID", - "SCHEDULE_ID", subQueryPropertyName); - } - - public void inScopeSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - - public void notInScopeSingleScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleContentCB cb = new SingleScheduleContentCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotInScopeSubQuery_SingleScheduleContentAsOne(cb - .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_NotInScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery); - - public void notInScopeSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotInScopeSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_NotInScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - - /** - * @param singleScheduleContentCBquery Query. - * @deprecated Please use existsSingleScheduleContentAsOne(subQuery) method. - */ - public void setId_ExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ singleScheduleContentCBquery) { - String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleContentAsOne(singleScheduleContentCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(singleScheduleContentCBquery, "ID", "ID", - subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select ID from - * SINGLE_SCHEDULE_CONTENT where ...)} - * - * @param subQuery The sub-query of - * Id_ExistsSubQuery_SingleScheduleContentAsOne for 'exists'. - * (NotNull) - */ - public void existsSingleScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleContentCB cb = new SingleScheduleContentCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleContentAsOne(cb - .query());// for saving query-value. - registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_ExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery); - - /** - * @param singleScheduleMappingCBquery Query. - * @deprecated Please use existsSingleScheduleMappingList(subQuery) method. - */ - public void setId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ singleScheduleMappingCBquery) { - String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(singleScheduleMappingCBquery, "ID", - "SCHEDULE_ID", subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select SCHEDULE_ID from - * SINGLE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * Id_ExistsSubQuery_SingleScheduleMappingList for 'exists'. - * (NotNull) - */ - public void existsSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_ExistsSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - - /** - * Set up 'not exists' sub-query. {not exists (select ID from - * SINGLE_SCHEDULE_CONTENT where ...)} - * - * @param subQuery The sub-query of - * Id_NotExistsSubQuery_SingleScheduleContentAsOne for 'not - * exists'. (NotNull) - */ - public void notExistsSingleScheduleContentAsOne( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleContentCB cb = new SingleScheduleContentCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotExistsSubQuery_SingleScheduleContentAsOne(cb - .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_NotExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery); - - /** - * Set up 'not exists' sub-query. {not exists (select SCHEDULE_ID from - * SINGLE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * Id_NotExistsSubQuery_SingleScheduleMappingList for 'not - * exists'. (NotNull) - */ - public void notExistsSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_NotExistsSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName); - } - - abstract public String keepId_NotExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - - public void xderiveSingleScheduleMappingList(String function, - SubQuery subQuery, String aliasName) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForDeriveReferrer(); - subQuery.query(cb); - String subQueryPropertyName = keepId_DeriveSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerDeriveSubQuery(function, cb.query(), "ID", "SCHEDULE_ID", - subQueryPropertyName, aliasName); - } - - abstract public String keepId_DeriveSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(100)} - * - * @param title The value of title as equal. - */ - public void setTitle_Equal(String title) { - regTitle(CK_EQ, fRES(title)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as notEqual. - */ - public void setTitle_NotEqual(String title) { - regTitle(CK_NE, fRES(title)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as greaterThan. - */ - public void setTitle_GreaterThan(String title) { - regTitle(CK_GT, fRES(title)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as lessThan. - */ - public void setTitle_LessThan(String title) { - regTitle(CK_LT, fRES(title)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as greaterEqual. - */ - public void setTitle_GreaterEqual(String title) { - regTitle(CK_GE, fRES(title)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as lessEqual. - */ - public void setTitle_LessEqual(String title) { - regTitle(CK_LE, fRES(title)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param title The value of title as prefixSearch. - */ - public void setTitle_PrefixSearch(String title) { - regTitle(CK_PS, fRES(title)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param title The value of title as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setTitle_LikeSearch( - String title, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(title), getCValueTitle(), "TITLE", - "Title", "title", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param titleList The collection of title as inScope. - */ - public void setTitle_InScope(Collection titleList) { - regTitle(CK_INS, cTL(titleList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param title The collection of title as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setTitle_InScope( - String title, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(title), getCValueTitle(), "TITLE", - "Title", "title", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param titleList The collection of title as notInScope. - */ - public void setTitle_NotInScope(Collection titleList) { - regTitle(CK_NINS, cTL(titleList)); - } - - protected void regTitle(ConditionKey key, Object value) { - registerQuery(key, value, getCValueTitle(), "TITLE", "Title", "title"); - } - - protected void registerInlineTitle(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueTitle(), "TITLE", "Title", - "title"); - } - - abstract protected ConditionValue getCValueTitle(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(100)} - * - * @param location The value of location as equal. - */ - public void setLocation_Equal(String location) { - regLocation(CK_EQ, fRES(location)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as notEqual. - */ - public void setLocation_NotEqual(String location) { - regLocation(CK_NE, fRES(location)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as greaterThan. - */ - public void setLocation_GreaterThan(String location) { - regLocation(CK_GT, fRES(location)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as lessThan. - */ - public void setLocation_LessThan(String location) { - regLocation(CK_LT, fRES(location)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as greaterEqual. - */ - public void setLocation_GreaterEqual(String location) { - regLocation(CK_GE, fRES(location)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as lessEqual. - */ - public void setLocation_LessEqual(String location) { - regLocation(CK_LE, fRES(location)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param location The value of location as prefixSearch. - */ - public void setLocation_PrefixSearch(String location) { - regLocation(CK_PS, fRES(location)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param location The value of location as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setLocation_LikeSearch( - String location, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(location), getCValueLocation(), - "LOCATION", "Location", "location", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param locationList The collection of location as inScope. - */ - public void setLocation_InScope(Collection locationList) { - regLocation(CK_INS, cTL(locationList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param location The collection of location as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setLocation_InScope( - String location, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(location), getCValueLocation(), - "LOCATION", "Location", "location", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param locationList The collection of location as notInScope. - */ - public void setLocation_NotInScope(Collection locationList) { - regLocation(CK_NINS, cTL(locationList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setLocation_IsNull() { - regLocation(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setLocation_IsNotNull() { - regLocation(CK_ISNN, DUMMY_OBJECT); - } - - protected void regLocation(ConditionKey key, Object value) { - registerQuery(key, value, getCValueLocation(), "LOCATION", "Location", - "location"); - } - - protected void registerInlineLocation(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueLocation(), "LOCATION", - "Location", "location"); - } - - abstract protected ConditionValue getCValueLocation(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} - * - * @param startDate The value of startDate as equal. - */ - public void setStartDate_Equal(java.util.Date startDate) { - regStartDate(CK_EQ, startDate); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as notEqual. - */ - public void setStartDate_NotEqual(java.util.Date startDate) { - regStartDate(CK_NE, startDate); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as greaterThan. - */ - public void setStartDate_GreaterThan(java.util.Date startDate) { - regStartDate(CK_GT, startDate); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as lessThan. - */ - public void setStartDate_LessThan(java.util.Date startDate) { - regStartDate(CK_LT, startDate); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as greaterEqual. - */ - public void setStartDate_GreaterEqual(java.util.Date startDate) { - regStartDate(CK_GE, startDate); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param startDate The value of startDate as lessEqual. - */ - public void setStartDate_LessEqual(java.util.Date startDate) { - regStartDate(CK_LE, startDate); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {NotNull : DATE} - * - * @param fromDate The from-date of startDate. (Nullable) - * @param toDate The to-date of startDate. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setStartDate_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery(fromDate, toDate, getCValueStartDate(), - "START_DATE", "StartDate", "startDate", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {NotNull : DATE} - * - * @param fromDate The from-date of startDate. (Nullable) - * @param toDate The to-date of startDate. (Nullable) - */ - public void setStartDate_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setStartDate_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regStartDate(ConditionKey key, Object value) { - registerQuery(key, value, getCValueStartDate(), "START_DATE", - "StartDate", "startDate"); - } - - protected void registerInlineStartDate(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueStartDate(), "START_DATE", - "StartDate", "startDate"); - } - - abstract protected ConditionValue getCValueStartDate(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIME} - * - * @param startTime The value of startTime as equal. - */ - public void setStartTime_Equal(java.sql.Time startTime) { - regStartTime(CK_EQ, startTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as notEqual. - */ - public void setStartTime_NotEqual(java.sql.Time startTime) { - regStartTime(CK_NE, startTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as greaterThan. - */ - public void setStartTime_GreaterThan(java.sql.Time startTime) { - regStartTime(CK_GT, startTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as lessThan. - */ - public void setStartTime_LessThan(java.sql.Time startTime) { - regStartTime(CK_LT, startTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as greaterEqual. - */ - public void setStartTime_GreaterEqual(java.sql.Time startTime) { - regStartTime(CK_GE, startTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param startTime The value of startTime as lessEqual. - */ - public void setStartTime_LessEqual(java.sql.Time startTime) { - regStartTime(CK_LE, startTime); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setStartTime_IsNull() { - regStartTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setStartTime_IsNotNull() { - regStartTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regStartTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueStartTime(), "START_TIME", - "StartTime", "startTime"); - } - - protected void registerInlineStartTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueStartTime(), "START_TIME", - "StartTime", "startTime"); - } - - abstract protected ConditionValue getCValueStartTime(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : DATE} - * - * @param endDate The value of endDate as equal. - */ - public void setEndDate_Equal(java.util.Date endDate) { - regEndDate(CK_EQ, endDate); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as notEqual. - */ - public void setEndDate_NotEqual(java.util.Date endDate) { - regEndDate(CK_NE, endDate); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as greaterThan. - */ - public void setEndDate_GreaterThan(java.util.Date endDate) { - regEndDate(CK_GT, endDate); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as lessThan. - */ - public void setEndDate_LessThan(java.util.Date endDate) { - regEndDate(CK_LT, endDate); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as greaterEqual. - */ - public void setEndDate_GreaterEqual(java.util.Date endDate) { - regEndDate(CK_GE, endDate); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param endDate The value of endDate as lessEqual. - */ - public void setEndDate_LessEqual(java.util.Date endDate) { - regEndDate(CK_LE, endDate); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {NotNull : DATE} - * - * @param fromDate The from-date of endDate. (Nullable) - * @param toDate The to-date of endDate. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setEndDate_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery(fromDate, toDate, getCValueEndDate(), "END_DATE", - "EndDate", "endDate", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {NotNull : DATE} - * - * @param fromDate The from-date of endDate. (Nullable) - * @param toDate The to-date of endDate. (Nullable) - */ - public void setEndDate_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setEndDate_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regEndDate(ConditionKey key, Object value) { - registerQuery(key, value, getCValueEndDate(), "END_DATE", "EndDate", - "endDate"); - } - - protected void registerInlineEndDate(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueEndDate(), "END_DATE", - "EndDate", "endDate"); - } - - abstract protected ConditionValue getCValueEndDate(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIME} - * - * @param endTime The value of endTime as equal. - */ - public void setEndTime_Equal(java.sql.Time endTime) { - regEndTime(CK_EQ, endTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as notEqual. - */ - public void setEndTime_NotEqual(java.sql.Time endTime) { - regEndTime(CK_NE, endTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as greaterThan. - */ - public void setEndTime_GreaterThan(java.sql.Time endTime) { - regEndTime(CK_GT, endTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as lessThan. - */ - public void setEndTime_LessThan(java.sql.Time endTime) { - regEndTime(CK_LT, endTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as greaterEqual. - */ - public void setEndTime_GreaterEqual(java.sql.Time endTime) { - regEndTime(CK_GE, endTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param endTime The value of endTime as lessEqual. - */ - public void setEndTime_LessEqual(java.sql.Time endTime) { - regEndTime(CK_LE, endTime); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setEndTime_IsNull() { - regEndTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setEndTime_IsNotNull() { - regEndTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regEndTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueEndTime(), "END_TIME", "EndTime", - "endTime"); - } - - protected void registerInlineEndTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueEndTime(), "END_TIME", - "EndTime", "endTime"); - } - - abstract protected ConditionValue getCValueEndTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(1) : - * Default=[F]} - * - * @param secret The value of secret as equal. - */ - public void setSecret_Equal(String secret) { - regSecret(CK_EQ, fRES(secret)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as notEqual. - */ - public void setSecret_NotEqual(String secret) { - regSecret(CK_NE, fRES(secret)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as greaterThan. - */ - public void setSecret_GreaterThan(String secret) { - regSecret(CK_GT, fRES(secret)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as lessThan. - */ - public void setSecret_LessThan(String secret) { - regSecret(CK_LT, fRES(secret)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as greaterEqual. - */ - public void setSecret_GreaterEqual(String secret) { - regSecret(CK_GE, fRES(secret)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as lessEqual. - */ - public void setSecret_LessEqual(String secret) { - regSecret(CK_LE, fRES(secret)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param secret The value of secret as prefixSearch. - */ - public void setSecret_PrefixSearch(String secret) { - regSecret(CK_PS, fRES(secret)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param secret The value of secret as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setSecret_LikeSearch( - String secret, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(secret), getCValueSecret(), - "SECRET", "Secret", "secret", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param secretList The collection of secret as inScope. - */ - public void setSecret_InScope(Collection secretList) { - regSecret(CK_INS, cTL(secretList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param secret The collection of secret as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setSecret_InScope( - String secret, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(secret), getCValueSecret(), "SECRET", - "Secret", "secret", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param secretList The collection of secret as notInScope. - */ - public void setSecret_NotInScope(Collection secretList) { - regSecret(CK_NINS, cTL(secretList)); - } - - protected void regSecret(ConditionKey key, Object value) { - registerQuery(key, value, getCValueSecret(), "SECRET", "Secret", - "secret"); - } - - protected void registerInlineSecret(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueSecret(), "SECRET", "Secret", - "secret"); - } - - abstract protected ConditionValue getCValueSecret(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} - * - * @param createdTime The value of createdTime as equal. - */ - public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { - regCreatedTime(CK_EQ, createdTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as notEqual. - */ - public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_NE, createdTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterThan. - */ - public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GT, createdTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessThan. - */ - public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LT, createdTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as greaterEqual. - */ - public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_GE, createdTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param createdTime The value of createdTime as lessEqual. - */ - public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { - regCreatedTime(CK_LE, createdTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {NotNull : TIMESTAMP} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setCreatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueCreatedTime(), - "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {NotNull : TIMESTAMP} - * - * @param fromDate The from-date of createdTime. (Nullable) - * @param toDate The to-date of createdTime. (Nullable) - */ - public void setCreatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setCreatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - protected void regCreatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - protected void registerInlineCreatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", - "CreatedTime", "createdTime"); - } - - abstract protected ConditionValue getCValueCreatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : - * VARCHAR(255)} - * - * @param createdBy The value of createdBy as equal. - */ - public void setCreatedBy_Equal(String createdBy) { - regCreatedBy(CK_EQ, fRES(createdBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as notEqual. - */ - public void setCreatedBy_NotEqual(String createdBy) { - regCreatedBy(CK_NE, fRES(createdBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterThan. - */ - public void setCreatedBy_GreaterThan(String createdBy) { - regCreatedBy(CK_GT, fRES(createdBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessThan. - */ - public void setCreatedBy_LessThan(String createdBy) { - regCreatedBy(CK_LT, fRES(createdBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as greaterEqual. - */ - public void setCreatedBy_GreaterEqual(String createdBy) { - regCreatedBy(CK_GE, fRES(createdBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as lessEqual. - */ - public void setCreatedBy_LessEqual(String createdBy) { - regCreatedBy(CK_LE, fRES(createdBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param createdBy The value of createdBy as prefixSearch. - */ - public void setCreatedBy_PrefixSearch(String createdBy) { - regCreatedBy(CK_PS, fRES(createdBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param createdBy The value of createdBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setCreatedBy_LikeSearch( - String createdBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as inScope. - */ - public void setCreatedBy_InScope(Collection createdByList) { - regCreatedBy(CK_INS, cTL(createdByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdBy The collection of createdBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setCreatedBy_InScope( - String createdBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), - "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param createdByList The collection of createdBy as notInScope. - */ - public void setCreatedBy_NotInScope(Collection createdByList) { - regCreatedBy(CK_NINS, cTL(createdByList)); - } - - protected void regCreatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - protected void registerInlineCreatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", - "CreatedBy", "createdBy"); - } - - abstract protected ConditionValue getCValueCreatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} - * - * @param updatedTime The value of updatedTime as equal. - */ - public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_EQ, updatedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as notEqual. - */ - public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_NE, updatedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterThan. - */ - public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GT, updatedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessThan. - */ - public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LT, updatedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as greaterEqual. - */ - public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_GE, updatedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param updatedTime The value of updatedTime as lessEqual. - */ - public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { - regUpdatedTime(CK_LE, updatedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setUpdatedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueUpdatedTime(), - "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of updatedTime. (Nullable) - * @param toDate The to-date of updatedTime. (Nullable) - */ - public void setUpdatedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setUpdatedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setUpdatedTime_IsNull() { - regUpdatedTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setUpdatedTime_IsNotNull() { - regUpdatedTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regUpdatedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - protected void registerInlineUpdatedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", - "UpdatedTime", "updatedTime"); - } - - abstract protected ConditionValue getCValueUpdatedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} - * - * @param updatedBy The value of updatedBy as equal. - */ - public void setUpdatedBy_Equal(String updatedBy) { - regUpdatedBy(CK_EQ, fRES(updatedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as notEqual. - */ - public void setUpdatedBy_NotEqual(String updatedBy) { - regUpdatedBy(CK_NE, fRES(updatedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterThan. - */ - public void setUpdatedBy_GreaterThan(String updatedBy) { - regUpdatedBy(CK_GT, fRES(updatedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessThan. - */ - public void setUpdatedBy_LessThan(String updatedBy) { - regUpdatedBy(CK_LT, fRES(updatedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as greaterEqual. - */ - public void setUpdatedBy_GreaterEqual(String updatedBy) { - regUpdatedBy(CK_GE, fRES(updatedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as lessEqual. - */ - public void setUpdatedBy_LessEqual(String updatedBy) { - regUpdatedBy(CK_LE, fRES(updatedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param updatedBy The value of updatedBy as prefixSearch. - */ - public void setUpdatedBy_PrefixSearch(String updatedBy) { - regUpdatedBy(CK_PS, fRES(updatedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param updatedBy The value of updatedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUpdatedBy_LikeSearch( - String updatedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as inScope. - */ - public void setUpdatedBy_InScope(Collection updatedByList) { - regUpdatedBy(CK_INS, cTL(updatedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedBy The collection of updatedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUpdatedBy_InScope( - String updatedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), - "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param updatedByList The collection of updatedBy as notInScope. - */ - public void setUpdatedBy_NotInScope(Collection updatedByList) { - regUpdatedBy(CK_NINS, cTL(updatedByList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setUpdatedBy_IsNull() { - regUpdatedBy(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setUpdatedBy_IsNotNull() { - regUpdatedBy(CK_ISNN, DUMMY_OBJECT); - } - - protected void regUpdatedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - protected void registerInlineUpdatedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", - "UpdatedBy", "updatedBy"); - } - - abstract protected ConditionValue getCValueUpdatedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} - * - * @param deletedTime The value of deletedTime as equal. - */ - public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_EQ, deletedTime); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as notEqual. - */ - public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_NE, deletedTime); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterThan. - */ - public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GT, deletedTime); - } - - /** - * LessThan(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessThan. - */ - public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LT, deletedTime); - } - - /** - * GreaterEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as greaterEqual. - */ - public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_GE, deletedTime); - } - - /** - * LessEqual(>). And NullIgnored, OnceRegistered. - * - * @param deletedTime The value of deletedTime as lessEqual. - */ - public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { - regDeletedTime(CK_LE, deletedTime); - } - - /** - * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - * @param fromToOption The option of from-to. (NotNull) - */ - public void setDeletedTime_FromTo( - java.util.Date fromDate, - java.util.Date toDate, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { - registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate - .getTime()) : null), (toDate != null ? new java.sql.Timestamp( - toDate.getTime()) : null), getCValueDeletedTime(), - "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); - } - - /** - * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, - * OnceRegistered. {TIMESTAMP} - * - * @param fromDate The from-date of deletedTime. (Nullable) - * @param toDate The to-date of deletedTime. (Nullable) - */ - public void setDeletedTime_DateFromTo(java.util.Date fromDate, - java.util.Date toDate) { - setDeletedTime_FromTo( - fromDate, - toDate, - new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedTime_IsNull() { - regDeletedTime(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedTime_IsNotNull() { - regDeletedTime(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedTime(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - protected void registerInlineDeletedTime(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", - "DeletedTime", "deletedTime"); - } - - abstract protected ConditionValue getCValueDeletedTime(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} - * - * @param deletedBy The value of deletedBy as equal. - */ - public void setDeletedBy_Equal(String deletedBy) { - regDeletedBy(CK_EQ, fRES(deletedBy)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as notEqual. - */ - public void setDeletedBy_NotEqual(String deletedBy) { - regDeletedBy(CK_NE, fRES(deletedBy)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterThan. - */ - public void setDeletedBy_GreaterThan(String deletedBy) { - regDeletedBy(CK_GT, fRES(deletedBy)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessThan. - */ - public void setDeletedBy_LessThan(String deletedBy) { - regDeletedBy(CK_LT, fRES(deletedBy)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as greaterEqual. - */ - public void setDeletedBy_GreaterEqual(String deletedBy) { - regDeletedBy(CK_GE, fRES(deletedBy)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as lessEqual. - */ - public void setDeletedBy_LessEqual(String deletedBy) { - regDeletedBy(CK_LE, fRES(deletedBy)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param deletedBy The value of deletedBy as prefixSearch. - */ - public void setDeletedBy_PrefixSearch(String deletedBy) { - regDeletedBy(CK_PS, fRES(deletedBy)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param deletedBy The value of deletedBy as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setDeletedBy_LikeSearch( - String deletedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as inScope. - */ - public void setDeletedBy_InScope(Collection deletedByList) { - regDeletedBy(CK_INS, cTL(deletedByList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedBy The collection of deletedBy as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setDeletedBy_InScope( - String deletedBy, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), - "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param deletedByList The collection of deletedBy as notInScope. - */ - public void setDeletedBy_NotInScope(Collection deletedByList) { - regDeletedBy(CK_NINS, cTL(deletedByList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setDeletedBy_IsNull() { - regDeletedBy(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setDeletedBy_IsNotNull() { - regDeletedBy(CK_ISNN, DUMMY_OBJECT); - } - - protected void regDeletedBy(ConditionKey key, Object value) { - registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - protected void registerInlineDeletedBy(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", - "DeletedBy", "deletedBy"); - } - - abstract protected ConditionValue getCValueDeletedBy(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER} - * - * @param versionno The value of versionno as equal. - */ - public void setVersionno_Equal(Integer versionno) { - regVersionno(CK_EQ, versionno); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as notEqual. - */ - public void setVersionno_NotEqual(Integer versionno) { - regVersionno(CK_NE, versionno); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterThan. - */ - public void setVersionno_GreaterThan(Integer versionno) { - regVersionno(CK_GT, versionno); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessThan. - */ - public void setVersionno_LessThan(Integer versionno) { - regVersionno(CK_LT, versionno); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as greaterEqual. - */ - public void setVersionno_GreaterEqual(Integer versionno) { - regVersionno(CK_GE, versionno); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param versionno The value of versionno as lessEqual. - */ - public void setVersionno_LessEqual(Integer versionno) { - regVersionno(CK_LE, versionno); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as inScope. - */ - public void setVersionno_InScope(Collection versionnoList) { - regVersionno(CK_INS, cTL(versionnoList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param versionnoList The collection of versionno as notInScope. - */ - public void setVersionno_NotInScope(Collection versionnoList) { - regVersionno(CK_NINS, cTL(versionnoList)); - } - - protected void regVersionno(ConditionKey key, Object value) { - registerQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - protected void registerInlineVersionno(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", - "Versionno", "versionno"); - } - - abstract protected ConditionValue getCValueVersionno(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return SingleScheduleCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,324 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleContentCB; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; - -/** - * The abstract condition-query of SINGLE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsSingleScheduleContentCQ extends - AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsSingleScheduleContentCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE_CONTENT"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : BIGINT : FK to - * SINGLE_SCHEDULE} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * @param singleScheduleCBquery Query. - * @deprecated Please use inScopeSingleSchedule(subQuery) method. - */ - public void setId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ singleScheduleCBquery) { - String subQueryPropertyName = keepId_InScopeSubQuery_SingleSchedule(singleScheduleCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(singleScheduleCBquery, "ID", "ID", - subQueryPropertyName); - } - - public void inScopeSingleSchedule(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleCB cb = new SingleScheduleCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepId_InScopeSubQuery_SingleSchedule(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); - } - - abstract public String keepId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ subQuery); - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1000)} - * - * @param content The value of content as equal. - */ - public void setContent_Equal(String content) { - regContent(CK_EQ, fRES(content)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as notEqual. - */ - public void setContent_NotEqual(String content) { - regContent(CK_NE, fRES(content)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as greaterThan. - */ - public void setContent_GreaterThan(String content) { - regContent(CK_GT, fRES(content)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as lessThan. - */ - public void setContent_LessThan(String content) { - regContent(CK_LT, fRES(content)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as greaterEqual. - */ - public void setContent_GreaterEqual(String content) { - regContent(CK_GE, fRES(content)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as lessEqual. - */ - public void setContent_LessEqual(String content) { - regContent(CK_LE, fRES(content)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param content The value of content as prefixSearch. - */ - public void setContent_PrefixSearch(String content) { - regContent(CK_PS, fRES(content)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param content The value of content as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setContent_LikeSearch( - String content, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), - "CONTENT", "Content", "content", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param contentList The collection of content as inScope. - */ - public void setContent_InScope(Collection contentList) { - regContent(CK_INS, cTL(contentList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param content The collection of content as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setContent_InScope( - String content, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), - "CONTENT", "Content", "content", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param contentList The collection of content as notInScope. - */ - public void setContent_NotInScope(Collection contentList) { - regContent(CK_NINS, cTL(contentList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setContent_IsNull() { - regContent(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setContent_IsNotNull() { - regContent(CK_ISNN, DUMMY_OBJECT); - } - - protected void regContent(ConditionKey key, Object value) { - registerQuery(key, value, getCValueContent(), "CONTENT", "Content", - "content"); - } - - protected void registerInlineContent(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueContent(), "CONTENT", - "Content", "content"); - } - - abstract protected ConditionValue getCValueContent(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return SingleScheduleContentCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleContentCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsSingleScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,429 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Collection; - -import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.UserInfoCB; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; - -/** - * The abstract condition-query of SINGLE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public abstract class AbstractBsSingleScheduleMappingCQ extends - AbstractConditionQuery { - - //========================================================================== - // ========= - // Constructor - // =========== - public AbstractBsSingleScheduleMappingCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Table Name - // ========== - public String getTableDbName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - public String getTableSqlName() { - return "SINGLE_SCHEDULE_MAPPING"; - } - - //========================================================================== - // ========= - // Query - // ===== - - /** - * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} - * - * @param id The value of id as equal. - */ - public void setId_Equal(Long id) { - regId(CK_EQ, id); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as notEqual. - */ - public void setId_NotEqual(Long id) { - regId(CK_NE, id); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterThan. - */ - public void setId_GreaterThan(Long id) { - regId(CK_GT, id); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessThan. - */ - public void setId_LessThan(Long id) { - regId(CK_LT, id); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as greaterEqual. - */ - public void setId_GreaterEqual(Long id) { - regId(CK_GE, id); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param id The value of id as lessEqual. - */ - public void setId_LessEqual(Long id) { - regId(CK_LE, id); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as inScope. - */ - public void setId_InScope(Collection idList) { - regId(CK_INS, cTL(idList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param idList The collection of id as notInScope. - */ - public void setId_NotInScope(Collection idList) { - regId(CK_NINS, cTL(idList)); - } - - /** - * IsNull(is null). And OnceRegistered. - */ - public void setId_IsNull() { - regId(CK_ISN, DUMMY_OBJECT); - } - - /** - * IsNotNull(is not null). And OnceRegistered. - */ - public void setId_IsNotNull() { - regId(CK_ISNN, DUMMY_OBJECT); - } - - protected void regId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - protected void registerInlineId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); - } - - abstract protected ConditionValue getCValueId(); - - /** - * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to - * SINGLE_SCHEDULE} - * - * @param scheduleId The value of scheduleId as equal. - */ - public void setScheduleId_Equal(Long scheduleId) { - regScheduleId(CK_EQ, scheduleId); - } - - /** - * NotEqual(!=). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as notEqual. - */ - public void setScheduleId_NotEqual(Long scheduleId) { - regScheduleId(CK_NE, scheduleId); - } - - /** - * GreaterThan(>). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as greaterThan. - */ - public void setScheduleId_GreaterThan(Long scheduleId) { - regScheduleId(CK_GT, scheduleId); - } - - /** - * LessThan(<). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as lessThan. - */ - public void setScheduleId_LessThan(Long scheduleId) { - regScheduleId(CK_LT, scheduleId); - } - - /** - * GreaterEqual(>=). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as greaterEqual. - */ - public void setScheduleId_GreaterEqual(Long scheduleId) { - regScheduleId(CK_GE, scheduleId); - } - - /** - * LessEqual(<=). And NullIgnored, OnceRegistered. - * - * @param scheduleId The value of scheduleId as lessEqual. - */ - public void setScheduleId_LessEqual(Long scheduleId) { - regScheduleId(CK_LE, scheduleId); - } - - /** - * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param scheduleIdList The collection of scheduleId as inScope. - */ - public void setScheduleId_InScope(Collection scheduleIdList) { - regScheduleId(CK_INS, cTL(scheduleIdList)); - } - - /** - * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, - * SeveralRegistered. - * - * @param scheduleIdList The collection of scheduleId as notInScope. - */ - public void setScheduleId_NotInScope(Collection scheduleIdList) { - regScheduleId(CK_NINS, cTL(scheduleIdList)); - } - - /** - * @param singleScheduleCBquery Query. - * @deprecated Please use inScopeSingleSchedule(subQuery) method. - */ - public void setScheduleId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ singleScheduleCBquery) { - String subQueryPropertyName = keepScheduleId_InScopeSubQuery_SingleSchedule(singleScheduleCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(singleScheduleCBquery, "SCHEDULE_ID", "ID", - subQueryPropertyName); - } - - public void inScopeSingleSchedule(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleCB cb = new SingleScheduleCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepScheduleId_InScopeSubQuery_SingleSchedule(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "SCHEDULE_ID", "ID", - subQueryPropertyName); - } - - abstract public String keepScheduleId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ subQuery); - - protected void regScheduleId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", - "ScheduleId", "scheduleId"); - } - - protected void registerInlineScheduleId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", - "ScheduleId", "scheduleId"); - } - - abstract protected ConditionValue getCValueScheduleId(); - - /** - * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : VARCHAR(255) - * : FK to USER_INFO} - * - * @param userId The value of userId as equal. - */ - public void setUserId_Equal(String userId) { - regUserId(CK_EQ, fRES(userId)); - } - - /** - * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as notEqual. - */ - public void setUserId_NotEqual(String userId) { - regUserId(CK_NE, fRES(userId)); - } - - /** - * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as greaterThan. - */ - public void setUserId_GreaterThan(String userId) { - regUserId(CK_GT, fRES(userId)); - } - - /** - * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as lessThan. - */ - public void setUserId_LessThan(String userId) { - regUserId(CK_LT, fRES(userId)); - } - - /** - * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as greaterEqual. - */ - public void setUserId_GreaterEqual(String userId) { - regUserId(CK_GE, fRES(userId)); - } - - /** - * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as lessEqual. - */ - public void setUserId_LessEqual(String userId) { - regUserId(CK_LE, fRES(userId)); - } - - /** - * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. - * - * @param userId The value of userId as prefixSearch. - */ - public void setUserId_PrefixSearch(String userId) { - regUserId(CK_PS, fRES(userId)); - } - - /** - * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, - * SeveralRegistered. - * - * @param userId The value of userId as likeSearch. - * @param likeSearchOption The option of like-search. (NotNull) - */ - public void setUserId_LikeSearch( - String userId, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { - registerLikeSearchQuery(CK_LS, fRES(userId), getCValueUserId(), - "USER_ID", "UserId", "userId", likeSearchOption); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param userIdList The collection of userId as inScope. - */ - public void setUserId_InScope(Collection userIdList) { - regUserId(CK_INS, cTL(userIdList)); - } - - /** - * InScope(in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param userId The collection of userId as inScope. - * @param inScopeOption The option of in-scope. (NotNull) - */ - public void setUserId_InScope( - String userId, - jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { - registerInScopeQuery(CK_INS, fRES(userId), getCValueUserId(), - "USER_ID", "UserId", "userId", inScopeOption); - } - - /** - * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, - * NullOrEmptyElementIgnored, SeveralRegistered. - * - * @param userIdList The collection of userId as notInScope. - */ - public void setUserId_NotInScope(Collection userIdList) { - regUserId(CK_NINS, cTL(userIdList)); - } - - /** - * @param userInfoCBquery Query. - * @deprecated Please use inScopeUserInfo(subQuery) method. - */ - public void setUserId_InScopeSubQuery_UserInfo(UserInfoCQ userInfoCBquery) { - String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(userInfoCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(userInfoCBquery, "USER_ID", "USER_ID", - subQueryPropertyName); - } - - public void inScopeUserInfo(SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - UserInfoCB cb = new UserInfoCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_InScopeSubQuery_UserInfo(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); - } - - abstract public String keepUserId_InScopeSubQuery_UserInfo( - jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ subQuery); - - protected void regUserId(ConditionKey key, Object value) { - registerQuery(key, value, getCValueUserId(), "USER_ID", "UserId", - "userId"); - } - - protected void registerInlineUserId(ConditionKey key, Object value) { - registerInlineQuery(key, value, getCValueUserId(), "USER_ID", "UserId", - "userId"); - } - - abstract protected ConditionValue getCValueUserId(); - - // Very Internal (for Suppressing Warn about 'Not Use Import') - protected String getConditionBeanClassNameInternally() { - return SingleScheduleMappingCB.class.getName(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleMappingCQ.class.getName(); - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -8,19 +8,17 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.GroupInfoCB; import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; import jp.sf.pal.scheduler.db.cbean.RoleInfoCB; import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; /** @@ -170,6 +168,37 @@ } /** + * @param eventScheduleMappingCBquery Query. + * @deprecated Please use inScopeEventScheduleMappingList(subQuery) method. + */ + public void setUserId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ eventScheduleMappingCBquery) { + String subQueryPropertyName = keepUserId_InScopeSubQuery_EventScheduleMappingList(eventScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(eventScheduleMappingCBquery, "USER_ID", + "USER_ID", subQueryPropertyName); + } + + public void inScopeEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepUserId_InScopeSubQuery_EventScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName); + } + + abstract public String keepUserId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); + + /** * @param groupMappingCBquery Query. * @deprecated Please use inScopeGroupMappingList(subQuery) method. */ @@ -229,69 +258,21 @@ abstract public String keepUserId_InScopeSubQuery_RoleMappingList( RoleMappingCQ subQuery); - /** - * @param routineScheduleMappingCBquery Query. - * @deprecated Please use inScopeRoutineScheduleMappingList(subQuery) - * method. - */ - public void setUserId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ routineScheduleMappingCBquery) { - String subQueryPropertyName = keepUserId_InScopeSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(routineScheduleMappingCBquery, "USER_ID", - "USER_ID", subQueryPropertyName); - } - - public void inScopeRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + public void notInScopeEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); cb.xsetupForInScopeSubQuery(); subQuery.query(cb); - String subQueryPropertyName = keepUserId_InScopeSubQuery_RoutineScheduleMappingList(cb + String subQueryPropertyName = keepUserId_NotInScopeSubQuery_EventScheduleMappingList(cb .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", subQueryPropertyName); } - abstract public String keepUserId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); + abstract public String keepUserId_NotInScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); - /** - * @param singleScheduleMappingCBquery Query. - * @deprecated Please use inScopeSingleScheduleMappingList(subQuery) method. - */ - public void setUserId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ singleScheduleMappingCBquery) { - String subQueryPropertyName = keepUserId_InScopeSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerInScopeSubQuery(singleScheduleMappingCBquery, "USER_ID", - "USER_ID", subQueryPropertyName); - } - - public void inScopeSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_InScopeSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); - } - - abstract public String keepUserId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - public void notInScopeGroupMappingList(SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); GroupMappingCB cb = new GroupMappingCB(); @@ -320,35 +301,44 @@ abstract public String keepUserId_NotInScopeSubQuery_RoleMappingList( RoleMappingCQ subQuery); - public void notInScopeRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); + /** + * @param eventScheduleMappingCBquery Query. + * @deprecated Please use existsEventScheduleMappingList(subQuery) method. + */ + public void setUserId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ eventScheduleMappingCBquery) { + String subQueryPropertyName = keepUserId_ExistsSubQuery_EventScheduleMappingList(eventScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(eventScheduleMappingCBquery, "USER_ID", + "USER_ID", subQueryPropertyName); } - abstract public String keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - public void notInScopeSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForInScopeSubQuery(); + /** + * Set up 'exists' sub-query. {exists (select USER_ID from + * EVENT_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * UserId_ExistsSubQuery_EventScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); subQuery.query(cb); - String subQueryPropertyName = keepUserId_NotInScopeSubQuery_SingleScheduleMappingList(cb + String subQueryPropertyName = keepUserId_ExistsSubQuery_EventScheduleMappingList(cb .query());// for saving query-value. - registerNotInScopeSubQuery(cb.query(), "USER_ID", "USER_ID", + registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", subQueryPropertyName); } - abstract public String keepUserId_NotInScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); + abstract public String keepUserId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); /** * @param groupMappingCBquery Query. @@ -425,84 +415,29 @@ RoleMappingCQ subQuery); /** - * @param routineScheduleMappingCBquery Query. - * @deprecated Please use existsRoutineScheduleMappingList(subQuery) method. - */ - public void setUserId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ routineScheduleMappingCBquery) { - String subQueryPropertyName = keepUserId_ExistsSubQuery_RoutineScheduleMappingList(routineScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(routineScheduleMappingCBquery, "USER_ID", - "USER_ID", subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select USER_ID from - * ROUTINE_SCHEDULE_MAPPING where ...)} + * Set up 'not exists' sub-query. {not exists (select USER_ID from + * EVENT_SCHEDULE_MAPPING where ...)} * * @param subQuery The sub-query of - * UserId_ExistsSubQuery_RoutineScheduleMappingList for 'exists'. - * (NotNull) + * UserId_NotExistsSubQuery_EventScheduleMappingList for 'not + * exists'. (NotNull) */ - public void existsRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); + public void notExistsEventScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); cb.xsetupForExistsSubQuery(); subQuery.query(cb); - String subQueryPropertyName = keepUserId_ExistsSubQuery_RoutineScheduleMappingList(cb + String subQueryPropertyName = keepUserId_NotExistsSubQuery_EventScheduleMappingList(cb .query());// for saving query-value. - registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", + registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", subQueryPropertyName); } - abstract public String keepUserId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); + abstract public String keepUserId_NotExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); /** - * @param singleScheduleMappingCBquery Query. - * @deprecated Please use existsSingleScheduleMappingList(subQuery) method. - */ - public void setUserId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ singleScheduleMappingCBquery) { - String subQueryPropertyName = keepUserId_ExistsSubQuery_SingleScheduleMappingList(singleScheduleMappingCBquery);// for - // saving - // query - // - - // value - // . - registerExistsSubQuery(singleScheduleMappingCBquery, "USER_ID", - "USER_ID", subQueryPropertyName); - } - - /** - * Set up 'exists' sub-query. {exists (select USER_ID from - * SINGLE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * UserId_ExistsSubQuery_SingleScheduleMappingList for 'exists'. - * (NotNull) - */ - public void existsSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_ExistsSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerExistsSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); - } - - abstract public String keepUserId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - - /** * Set up 'not exists' sub-query. {not exists (select USER_ID from * GROUP_MAPPING where ...)} * @@ -545,52 +480,21 @@ abstract public String keepUserId_NotExistsSubQuery_RoleMappingList( RoleMappingCQ subQuery); - /** - * Set up 'not exists' sub-query. {not exists (select USER_ID from - * ROUTINE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * UserId_NotExistsSubQuery_RoutineScheduleMappingList for 'not - * exists'. (NotNull) - */ - public void notExistsRoutineScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); + public void xderiveEventScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); subQuery.query(cb); - String subQueryPropertyName = keepUserId_NotExistsSubQuery_RoutineScheduleMappingList(cb + String subQueryPropertyName = keepUserId_DeriveSubQuery_EventScheduleMappingList(cb .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); + registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", + subQueryPropertyName, aliasName); } - abstract public String keepUserId_NotExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); + abstract public String keepUserId_DeriveSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery); - /** - * Set up 'not exists' sub-query. {not exists (select USER_ID from - * SINGLE_SCHEDULE_MAPPING where ...)} - * - * @param subQuery The sub-query of - * UserId_NotExistsSubQuery_SingleScheduleMappingList for 'not - * exists'. (NotNull) - */ - public void notExistsSingleScheduleMappingList( - SubQuery subQuery) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForExistsSubQuery(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_NotExistsSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerNotExistsSubQuery(cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName); - } - - abstract public String keepUserId_NotExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - public void xderiveGroupMappingList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); @@ -621,36 +525,6 @@ abstract public String keepUserId_DeriveSubQuery_RoleMappingList( RoleMappingCQ subQuery); - public void xderiveRoutineScheduleMappingList(String function, - SubQuery subQuery, String aliasName) { - assertObjectNotNull("subQuery", subQuery); - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - cb.xsetupForDeriveReferrer(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_DeriveSubQuery_RoutineScheduleMappingList(cb - .query());// for saving query-value. - registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName, aliasName); - } - - abstract public String keepUserId_DeriveSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery); - - public void xderiveSingleScheduleMappingList(String function, - SubQuery subQuery, String aliasName) { - assertObjectNotNull("subQuery", subQuery); - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - cb.xsetupForDeriveReferrer(); - subQuery.query(cb); - String subQueryPropertyName = keepUserId_DeriveSubQuery_SingleScheduleMappingList(cb - .query());// for saving query-value. - registerDeriveSubQuery(function, cb.query(), "USER_ID", "USER_ID", - subQueryPropertyName, aliasName); - } - - abstract public String keepUserId_DeriveSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery); - /** * IsNull(is null). And OnceRegistered. */ Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,677 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.EventScheduleCIQ; + +/** + * The base condition-query of EVENT_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsEventScheduleCQ extends AbstractBsEventScheduleCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsEventScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from EVENT_SCHEDULE) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public EventScheduleCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new EventScheduleCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * EVENT_SCHEDULE on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public EventScheduleCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + EventScheduleCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_EventScheduleContentAsOneMap; + + public Map getId_InScopeSubQuery_EventScheduleContentAsOne() { + return _id_InScopeSubQuery_EventScheduleContentAsOneMap; + } + + public String keepId_InScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + if (_id_InScopeSubQuery_EventScheduleContentAsOneMap == null) { + _id_InScopeSubQuery_EventScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_EventScheduleContentAsOneMap.size() + 1); + _id_InScopeSubQuery_EventScheduleContentAsOneMap.put(key, subQuery); + return "id_InScopeSubQuery_EventScheduleContentAsOne." + key; + } + + protected Map _id_InScopeSubQuery_EventScheduleMappingListMap; + + public Map getId_InScopeSubQuery_EventScheduleMappingList() { + return _id_InScopeSubQuery_EventScheduleMappingListMap; + } + + public String keepId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_id_InScopeSubQuery_EventScheduleMappingListMap == null) { + _id_InScopeSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_EventScheduleMappingListMap.size() + 1); + _id_InScopeSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_EventScheduleMappingList." + key; + } + + protected Map _id_NotInScopeSubQuery_EventScheduleContentAsOneMap; + + public Map getId_NotInScopeSubQuery_EventScheduleContentAsOne() { + return _id_NotInScopeSubQuery_EventScheduleContentAsOneMap; + } + + public String keepId_NotInScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + if (_id_NotInScopeSubQuery_EventScheduleContentAsOneMap == null) { + _id_NotInScopeSubQuery_EventScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_EventScheduleContentAsOneMap.size() + 1); + _id_NotInScopeSubQuery_EventScheduleContentAsOneMap.put(key, subQuery); + return "id_NotInScopeSubQuery_EventScheduleContentAsOne." + key; + } + + protected Map _id_NotInScopeSubQuery_EventScheduleMappingListMap; + + public Map getId_NotInScopeSubQuery_EventScheduleMappingList() { + return _id_NotInScopeSubQuery_EventScheduleMappingListMap; + } + + public String keepId_NotInScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_EventScheduleMappingListMap == null) { + _id_NotInScopeSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_EventScheduleMappingListMap.size() + 1); + _id_NotInScopeSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_EventScheduleMappingList." + key; + } + + protected Map _id_ExistsSubQuery_EventScheduleContentAsOneMap; + + public Map getId_ExistsSubQuery_EventScheduleContentAsOne() { + return _id_ExistsSubQuery_EventScheduleContentAsOneMap; + } + + public String keepId_ExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + if (_id_ExistsSubQuery_EventScheduleContentAsOneMap == null) { + _id_ExistsSubQuery_EventScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_EventScheduleContentAsOneMap.size() + 1); + _id_ExistsSubQuery_EventScheduleContentAsOneMap.put(key, subQuery); + return "id_ExistsSubQuery_EventScheduleContentAsOne." + key; + } + + protected Map _id_ExistsSubQuery_EventScheduleMappingListMap; + + public Map getId_ExistsSubQuery_EventScheduleMappingList() { + return _id_ExistsSubQuery_EventScheduleMappingListMap; + } + + public String keepId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_id_ExistsSubQuery_EventScheduleMappingListMap == null) { + _id_ExistsSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_EventScheduleMappingListMap.size() + 1); + _id_ExistsSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_EventScheduleMappingList." + key; + } + + protected Map _id_NotExistsSubQuery_EventScheduleContentAsOneMap; + + public Map getId_NotExistsSubQuery_EventScheduleContentAsOne() { + return _id_NotExistsSubQuery_EventScheduleContentAsOneMap; + } + + public String keepId_NotExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + if (_id_NotExistsSubQuery_EventScheduleContentAsOneMap == null) { + _id_NotExistsSubQuery_EventScheduleContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_EventScheduleContentAsOneMap.size() + 1); + _id_NotExistsSubQuery_EventScheduleContentAsOneMap.put(key, subQuery); + return "id_NotExistsSubQuery_EventScheduleContentAsOne." + key; + } + + protected Map _id_NotExistsSubQuery_EventScheduleMappingListMap; + + public Map getId_NotExistsSubQuery_EventScheduleMappingList() { + return _id_NotExistsSubQuery_EventScheduleMappingListMap; + } + + public String keepId_NotExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_id_NotExistsSubQuery_EventScheduleMappingListMap == null) { + _id_NotExistsSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_EventScheduleMappingListMap.size() + 1); + _id_NotExistsSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_EventScheduleMappingList." + key; + } + + protected Map _id_DeriveSubQuery_EventScheduleMappingListMap; + + public Map getId_DeriveSubQuery_EventScheduleMappingList() { + return _id_DeriveSubQuery_EventScheduleMappingListMap; + } + + public String keepId_DeriveSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_id_DeriveSubQuery_EventScheduleMappingListMap == null) { + _id_DeriveSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_EventScheduleMappingListMap.size() + 1); + _id_DeriveSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_EventScheduleMappingList." + key; + } + + public BsEventScheduleCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsEventScheduleCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _title; + + public ConditionValue getTitle() { + if (_title == null) { + _title = new ConditionValue(); + } + return _title; + } + + protected ConditionValue getCValueTitle() { + return getTitle(); + } + + public BsEventScheduleCQ addOrderBy_Title_Asc() { + regOBA("TITLE"); + return this; + } + + public BsEventScheduleCQ addOrderBy_Title_Desc() { + regOBD("TITLE"); + return this; + } + + protected ConditionValue _location; + + public ConditionValue getLocation() { + if (_location == null) { + _location = new ConditionValue(); + } + return _location; + } + + protected ConditionValue getCValueLocation() { + return getLocation(); + } + + public BsEventScheduleCQ addOrderBy_Location_Asc() { + regOBA("LOCATION"); + return this; + } + + public BsEventScheduleCQ addOrderBy_Location_Desc() { + regOBD("LOCATION"); + return this; + } + + protected ConditionValue _startDate; + + public ConditionValue getStartDate() { + if (_startDate == null) { + _startDate = new ConditionValue(); + } + return _startDate; + } + + protected ConditionValue getCValueStartDate() { + return getStartDate(); + } + + public BsEventScheduleCQ addOrderBy_StartDate_Asc() { + regOBA("START_DATE"); + return this; + } + + public BsEventScheduleCQ addOrderBy_StartDate_Desc() { + regOBD("START_DATE"); + return this; + } + + protected ConditionValue _startTime; + + public ConditionValue getStartTime() { + if (_startTime == null) { + _startTime = new ConditionValue(); + } + return _startTime; + } + + protected ConditionValue getCValueStartTime() { + return getStartTime(); + } + + public BsEventScheduleCQ addOrderBy_StartTime_Asc() { + regOBA("START_TIME"); + return this; + } + + public BsEventScheduleCQ addOrderBy_StartTime_Desc() { + regOBD("START_TIME"); + return this; + } + + protected ConditionValue _endDate; + + public ConditionValue getEndDate() { + if (_endDate == null) { + _endDate = new ConditionValue(); + } + return _endDate; + } + + protected ConditionValue getCValueEndDate() { + return getEndDate(); + } + + public BsEventScheduleCQ addOrderBy_EndDate_Asc() { + regOBA("END_DATE"); + return this; + } + + public BsEventScheduleCQ addOrderBy_EndDate_Desc() { + regOBD("END_DATE"); + return this; + } + + protected ConditionValue _endTime; + + public ConditionValue getEndTime() { + if (_endTime == null) { + _endTime = new ConditionValue(); + } + return _endTime; + } + + protected ConditionValue getCValueEndTime() { + return getEndTime(); + } + + public BsEventScheduleCQ addOrderBy_EndTime_Asc() { + regOBA("END_TIME"); + return this; + } + + public BsEventScheduleCQ addOrderBy_EndTime_Desc() { + regOBD("END_TIME"); + return this; + } + + protected ConditionValue _secret; + + public ConditionValue getSecret() { + if (_secret == null) { + _secret = new ConditionValue(); + } + return _secret; + } + + protected ConditionValue getCValueSecret() { + return getSecret(); + } + + public BsEventScheduleCQ addOrderBy_Secret_Asc() { + regOBA("SECRET"); + return this; + } + + public BsEventScheduleCQ addOrderBy_Secret_Desc() { + regOBD("SECRET"); + return this; + } + + protected ConditionValue _type; + + public ConditionValue getType() { + if (_type == null) { + _type = new ConditionValue(); + } + return _type; + } + + protected ConditionValue getCValueType() { + return getType(); + } + + public BsEventScheduleCQ addOrderBy_Type_Asc() { + regOBA("TYPE"); + return this; + } + + public BsEventScheduleCQ addOrderBy_Type_Desc() { + regOBD("TYPE"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsEventScheduleCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsEventScheduleCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsEventScheduleCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsEventScheduleCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsEventScheduleCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsEventScheduleCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsEventScheduleCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsEventScheduleCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsEventScheduleCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsEventScheduleCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsEventScheduleCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsEventScheduleCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsEventScheduleCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsEventScheduleCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsEventScheduleCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsEventScheduleCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + EventScheduleCQ baseQuery = (EventScheduleCQ) baseQueryAsSuper; + EventScheduleCQ unionQuery = (EventScheduleCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryEventScheduleContentAsOne()) { + unionQuery.queryEventScheduleContentAsOne() + .reflectRelationOnUnionQuery( + baseQuery.queryEventScheduleContentAsOne(), + unionQuery.queryEventScheduleContentAsOne()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public EventScheduleContentCQ queryEventScheduleContentAsOne() { + return getConditionQueryEventScheduleContentAsOne(); + } + + protected EventScheduleContentCQ _conditionQueryEventScheduleContentAsOne; + + public EventScheduleContentCQ getConditionQueryEventScheduleContentAsOne() { + if (_conditionQueryEventScheduleContentAsOne == null) { + _conditionQueryEventScheduleContentAsOne = createQueryEventScheduleContentAsOne(); + setupOuterJoin_EventScheduleContentAsOne(); + } + return _conditionQueryEventScheduleContentAsOne; + } + + protected void setupOuterJoin_EventScheduleContentAsOne() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), + getConditionQueryEventScheduleContentAsOne().getRealColumnName( + "ID")); + registerOuterJoin(getConditionQueryEventScheduleContentAsOne(), + joinOnMap); + } + + protected EventScheduleContentCQ createQueryEventScheduleContentAsOne() { + String nrp = resolveNextRelationPath("EVENT_SCHEDULE", + "eventScheduleContentAsOne"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + EventScheduleContentCQ cq = new EventScheduleContentCQ(this, + getSqlClause(), jan, getNextNestLevel()); + cq.xsetForeignPropertyName("eventScheduleContentAsOne"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryEventScheduleContentAsOne() { + return _conditionQueryEventScheduleContentAsOne != null; + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,216 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.EventScheduleContentCIQ; + +/** + * The base condition-query of EVENT_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsEventScheduleContentCQ extends AbstractBsEventScheduleContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleContentCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsEventScheduleContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from EVENT_SCHEDULE_CONTENT) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public EventScheduleContentCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new EventScheduleContentCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * EVENT_SCHEDULE_CONTENT on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public EventScheduleContentCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + EventScheduleContentCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_EventScheduleMap; + + public Map getId_InScopeSubQuery_EventSchedule() { + return _id_InScopeSubQuery_EventScheduleMap; + } + + public String keepId_InScopeSubQuery_EventSchedule(EventScheduleCQ subQuery) { + if (_id_InScopeSubQuery_EventScheduleMap == null) { + _id_InScopeSubQuery_EventScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_EventScheduleMap.size() + 1); + _id_InScopeSubQuery_EventScheduleMap.put(key, subQuery); + return "id_InScopeSubQuery_EventSchedule." + key; + } + + public BsEventScheduleContentCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsEventScheduleContentCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _content; + + public ConditionValue getContent() { + if (_content == null) { + _content = new ConditionValue(); + } + return _content; + } + + protected ConditionValue getCValueContent() { + return getContent(); + } + + public BsEventScheduleContentCQ addOrderBy_Content_Asc() { + regOBA("CONTENT"); + return this; + } + + public BsEventScheduleContentCQ addOrderBy_Content_Desc() { + regOBD("CONTENT"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsEventScheduleContentCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsEventScheduleContentCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + EventScheduleContentCQ baseQuery = (EventScheduleContentCQ) baseQueryAsSuper; + EventScheduleContentCQ unionQuery = (EventScheduleContentCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryEventSchedule()) { + unionQuery.queryEventSchedule().reflectRelationOnUnionQuery( + baseQuery.queryEventSchedule(), + unionQuery.queryEventSchedule()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public EventScheduleCQ queryEventSchedule() { + return getConditionQueryEventSchedule(); + } + + protected EventScheduleCQ _conditionQueryEventSchedule; + + public EventScheduleCQ getConditionQueryEventSchedule() { + if (_conditionQueryEventSchedule == null) { + _conditionQueryEventSchedule = createQueryEventSchedule(); + setupOuterJoin_EventSchedule(); + } + return _conditionQueryEventSchedule; + } + + protected void setupOuterJoin_EventSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), getConditionQueryEventSchedule() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryEventSchedule(), joinOnMap); + } + + protected EventScheduleCQ createQueryEventSchedule() { + String nrp = resolveNextRelationPath("EVENT_SCHEDULE_CONTENT", + "eventSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + EventScheduleCQ cq = new EventScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("eventSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryEventSchedule() { + return _conditionQueryEventSchedule != null; + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleContentCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,297 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.EventScheduleMappingCIQ; + +/** + * The base condition-query of EVENT_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsEventScheduleMappingCQ extends AbstractBsEventScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected EventScheduleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsEventScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
    {select ... from ... left outer join (select + * * from EVENT_SCHEDULE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public EventScheduleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new EventScheduleMappingCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
    {select ... from ... left outer join + * EVENT_SCHEDULE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public EventScheduleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + EventScheduleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsEventScheduleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsEventScheduleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _scheduleId; + + public ConditionValue getScheduleId() { + if (_scheduleId == null) { + _scheduleId = new ConditionValue(); + } + return _scheduleId; + } + + protected ConditionValue getCValueScheduleId() { + return getScheduleId(); + } + + protected Map _scheduleId_InScopeSubQuery_EventScheduleMap; + + public Map getScheduleId_InScopeSubQuery_EventSchedule() { + return _scheduleId_InScopeSubQuery_EventScheduleMap; + } + + public String keepScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery) { + if (_scheduleId_InScopeSubQuery_EventScheduleMap == null) { + _scheduleId_InScopeSubQuery_EventScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_scheduleId_InScopeSubQuery_EventScheduleMap.size() + 1); + _scheduleId_InScopeSubQuery_EventScheduleMap.put(key, subQuery); + return "scheduleId_InScopeSubQuery_EventSchedule." + key; + } + + public BsEventScheduleMappingCQ addOrderBy_ScheduleId_Asc() { + regOBA("SCHEDULE_ID"); + return this; + } + + public BsEventScheduleMappingCQ addOrderBy_ScheduleId_Desc() { + regOBD("SCHEDULE_ID"); + return this; + } + + protected ConditionValue _userId; + + public ConditionValue getUserId() { + if (_userId == null) { + _userId = new ConditionValue(); + } + return _userId; + } + + protected ConditionValue getCValueUserId() { + return getUserId(); + } + + protected Map _userId_InScopeSubQuery_UserInfoMap; + + public Map getUserId_InScopeSubQuery_UserInfo() { + return _userId_InScopeSubQuery_UserInfoMap; + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + if (_userId_InScopeSubQuery_UserInfoMap == null) { + _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); + _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); + return "userId_InScopeSubQuery_UserInfo." + key; + } + + public BsEventScheduleMappingCQ addOrderBy_UserId_Asc() { + regOBA("USER_ID"); + return this; + } + + public BsEventScheduleMappingCQ addOrderBy_UserId_Desc() { + regOBD("USER_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsEventScheduleMappingCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsEventScheduleMappingCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + EventScheduleMappingCQ baseQuery = (EventScheduleMappingCQ) baseQueryAsSuper; + EventScheduleMappingCQ unionQuery = (EventScheduleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryEventSchedule()) { + unionQuery.queryEventSchedule().reflectRelationOnUnionQuery( + baseQuery.queryEventSchedule(), + unionQuery.queryEventSchedule()); + } + if (baseQuery.hasConditionQueryUserInfo()) { + unionQuery.queryUserInfo().reflectRelationOnUnionQuery( + baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public EventScheduleCQ queryEventSchedule() { + return getConditionQueryEventSchedule(); + } + + protected EventScheduleCQ _conditionQueryEventSchedule; + + public EventScheduleCQ getConditionQueryEventSchedule() { + if (_conditionQueryEventSchedule == null) { + _conditionQueryEventSchedule = createQueryEventSchedule(); + setupOuterJoin_EventSchedule(); + } + return _conditionQueryEventSchedule; + } + + protected void setupOuterJoin_EventSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("SCHEDULE_ID"), + getConditionQueryEventSchedule().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryEventSchedule(), joinOnMap); + } + + protected EventScheduleCQ createQueryEventSchedule() { + String nrp = resolveNextRelationPath("EVENT_SCHEDULE_MAPPING", + "eventSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + EventScheduleCQ cq = new EventScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("eventSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryEventSchedule() { + return _conditionQueryEventSchedule != null; + } + + public UserInfoCQ queryUserInfo() { + return getConditionQueryUserInfo(); + } + + protected UserInfoCQ _conditionQueryUserInfo; + + public UserInfoCQ getConditionQueryUserInfo() { + if (_conditionQueryUserInfo == null) { + _conditionQueryUserInfo = createQueryUserInfo(); + setupOuterJoin_UserInfo(); + } + return _conditionQueryUserInfo; + } + + protected void setupOuterJoin_UserInfo() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() + .getRealColumnName("USER_ID")); + registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); + } + + protected UserInfoCQ createQueryUserInfo() { + String nrp = resolveNextRelationPath("EVENT_SCHEDULE_MAPPING", + "userInfo"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("userInfo"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryUserInfo() { + return _conditionQueryUserInfo != null; + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,678 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoutineScheduleCIQ; - -/** - * The base condition-query of ROUTINE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsRoutineScheduleCQ extends AbstractBsRoutineScheduleCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsRoutineScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from ROUTINE_SCHEDULE) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public RoutineScheduleCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new RoutineScheduleCIQ(getChildQuery(), - getSqlClause(), getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * ROUTINE_SCHEDULE on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public RoutineScheduleCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - RoutineScheduleCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - protected Map _id_InScopeSubQuery_RoutineScheduleContentAsOneMap; - - public Map getId_InScopeSubQuery_RoutineScheduleContentAsOne() { - return _id_InScopeSubQuery_RoutineScheduleContentAsOneMap; - } - - public String keepId_InScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - if (_id_InScopeSubQuery_RoutineScheduleContentAsOneMap == null) { - _id_InScopeSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_RoutineScheduleContentAsOneMap.size() + 1); - _id_InScopeSubQuery_RoutineScheduleContentAsOneMap.put(key, subQuery); - return "id_InScopeSubQuery_RoutineScheduleContentAsOne." + key; - } - - protected Map _id_InScopeSubQuery_RoutineScheduleMappingListMap; - - public Map getId_InScopeSubQuery_RoutineScheduleMappingList() { - return _id_InScopeSubQuery_RoutineScheduleMappingListMap; - } - - public String keepId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_id_InScopeSubQuery_RoutineScheduleMappingListMap == null) { - _id_InScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_RoutineScheduleMappingListMap.size() + 1); - _id_InScopeSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "id_InScopeSubQuery_RoutineScheduleMappingList." + key; - } - - protected Map _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap; - - public Map getId_NotInScopeSubQuery_RoutineScheduleContentAsOne() { - return _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap; - } - - public String keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - if (_id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap == null) { - _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap.size() + 1); - _id_NotInScopeSubQuery_RoutineScheduleContentAsOneMap - .put(key, subQuery); - return "id_NotInScopeSubQuery_RoutineScheduleContentAsOne." + key; - } - - protected Map _id_NotInScopeSubQuery_RoutineScheduleMappingListMap; - - public Map getId_NotInScopeSubQuery_RoutineScheduleMappingList() { - return _id_NotInScopeSubQuery_RoutineScheduleMappingListMap; - } - - public String keepId_NotInScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_id_NotInScopeSubQuery_RoutineScheduleMappingListMap == null) { - _id_NotInScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotInScopeSubQuery_RoutineScheduleMappingListMap.size() + 1); - _id_NotInScopeSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "id_NotInScopeSubQuery_RoutineScheduleMappingList." + key; - } - - protected Map _id_ExistsSubQuery_RoutineScheduleContentAsOneMap; - - public Map getId_ExistsSubQuery_RoutineScheduleContentAsOne() { - return _id_ExistsSubQuery_RoutineScheduleContentAsOneMap; - } - - public String keepId_ExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - if (_id_ExistsSubQuery_RoutineScheduleContentAsOneMap == null) { - _id_ExistsSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_ExistsSubQuery_RoutineScheduleContentAsOneMap.size() + 1); - _id_ExistsSubQuery_RoutineScheduleContentAsOneMap.put(key, subQuery); - return "id_ExistsSubQuery_RoutineScheduleContentAsOne." + key; - } - - protected Map _id_ExistsSubQuery_RoutineScheduleMappingListMap; - - public Map getId_ExistsSubQuery_RoutineScheduleMappingList() { - return _id_ExistsSubQuery_RoutineScheduleMappingListMap; - } - - public String keepId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_id_ExistsSubQuery_RoutineScheduleMappingListMap == null) { - _id_ExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_ExistsSubQuery_RoutineScheduleMappingListMap.size() + 1); - _id_ExistsSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "id_ExistsSubQuery_RoutineScheduleMappingList." + key; - } - - protected Map _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap; - - public Map getId_NotExistsSubQuery_RoutineScheduleContentAsOne() { - return _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap; - } - - public String keepId_NotExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - if (_id_NotExistsSubQuery_RoutineScheduleContentAsOneMap == null) { - _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotExistsSubQuery_RoutineScheduleContentAsOneMap.size() + 1); - _id_NotExistsSubQuery_RoutineScheduleContentAsOneMap.put(key, subQuery); - return "id_NotExistsSubQuery_RoutineScheduleContentAsOne." + key; - } - - protected Map _id_NotExistsSubQuery_RoutineScheduleMappingListMap; - - public Map getId_NotExistsSubQuery_RoutineScheduleMappingList() { - return _id_NotExistsSubQuery_RoutineScheduleMappingListMap; - } - - public String keepId_NotExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_id_NotExistsSubQuery_RoutineScheduleMappingListMap == null) { - _id_NotExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotExistsSubQuery_RoutineScheduleMappingListMap.size() + 1); - _id_NotExistsSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "id_NotExistsSubQuery_RoutineScheduleMappingList." + key; - } - - protected Map _id_DeriveSubQuery_RoutineScheduleMappingListMap; - - public Map getId_DeriveSubQuery_RoutineScheduleMappingList() { - return _id_DeriveSubQuery_RoutineScheduleMappingListMap; - } - - public String keepId_DeriveSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_id_DeriveSubQuery_RoutineScheduleMappingListMap == null) { - _id_DeriveSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_DeriveSubQuery_RoutineScheduleMappingListMap.size() + 1); - _id_DeriveSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "id_DeriveSubQuery_RoutineScheduleMappingList." + key; - } - - public BsRoutineScheduleCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _title; - - public ConditionValue getTitle() { - if (_title == null) { - _title = new ConditionValue(); - } - return _title; - } - - protected ConditionValue getCValueTitle() { - return getTitle(); - } - - public BsRoutineScheduleCQ addOrderBy_Title_Asc() { - regOBA("TITLE"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_Title_Desc() { - regOBD("TITLE"); - return this; - } - - protected ConditionValue _location; - - public ConditionValue getLocation() { - if (_location == null) { - _location = new ConditionValue(); - } - return _location; - } - - protected ConditionValue getCValueLocation() { - return getLocation(); - } - - public BsRoutineScheduleCQ addOrderBy_Location_Asc() { - regOBA("LOCATION"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_Location_Desc() { - regOBD("LOCATION"); - return this; - } - - protected ConditionValue _startDate; - - public ConditionValue getStartDate() { - if (_startDate == null) { - _startDate = new ConditionValue(); - } - return _startDate; - } - - protected ConditionValue getCValueStartDate() { - return getStartDate(); - } - - public BsRoutineScheduleCQ addOrderBy_StartDate_Asc() { - regOBA("START_DATE"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_StartDate_Desc() { - regOBD("START_DATE"); - return this; - } - - protected ConditionValue _startTime; - - public ConditionValue getStartTime() { - if (_startTime == null) { - _startTime = new ConditionValue(); - } - return _startTime; - } - - protected ConditionValue getCValueStartTime() { - return getStartTime(); - } - - public BsRoutineScheduleCQ addOrderBy_StartTime_Asc() { - regOBA("START_TIME"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_StartTime_Desc() { - regOBD("START_TIME"); - return this; - } - - protected ConditionValue _endDate; - - public ConditionValue getEndDate() { - if (_endDate == null) { - _endDate = new ConditionValue(); - } - return _endDate; - } - - protected ConditionValue getCValueEndDate() { - return getEndDate(); - } - - public BsRoutineScheduleCQ addOrderBy_EndDate_Asc() { - regOBA("END_DATE"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_EndDate_Desc() { - regOBD("END_DATE"); - return this; - } - - protected ConditionValue _endTime; - - public ConditionValue getEndTime() { - if (_endTime == null) { - _endTime = new ConditionValue(); - } - return _endTime; - } - - protected ConditionValue getCValueEndTime() { - return getEndTime(); - } - - public BsRoutineScheduleCQ addOrderBy_EndTime_Asc() { - regOBA("END_TIME"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_EndTime_Desc() { - regOBD("END_TIME"); - return this; - } - - protected ConditionValue _secret; - - public ConditionValue getSecret() { - if (_secret == null) { - _secret = new ConditionValue(); - } - return _secret; - } - - protected ConditionValue getCValueSecret() { - return getSecret(); - } - - public BsRoutineScheduleCQ addOrderBy_Secret_Asc() { - regOBA("SECRET"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_Secret_Desc() { - regOBD("SECRET"); - return this; - } - - protected ConditionValue _type; - - public ConditionValue getType() { - if (_type == null) { - _type = new ConditionValue(); - } - return _type; - } - - protected ConditionValue getCValueType() { - return getType(); - } - - public BsRoutineScheduleCQ addOrderBy_Type_Asc() { - regOBA("TYPE"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_Type_Desc() { - regOBD("TYPE"); - return this; - } - - protected ConditionValue _createdTime; - - public ConditionValue getCreatedTime() { - if (_createdTime == null) { - _createdTime = new ConditionValue(); - } - return _createdTime; - } - - protected ConditionValue getCValueCreatedTime() { - return getCreatedTime(); - } - - public BsRoutineScheduleCQ addOrderBy_CreatedTime_Asc() { - regOBA("CREATED_TIME"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_CreatedTime_Desc() { - regOBD("CREATED_TIME"); - return this; - } - - protected ConditionValue _createdBy; - - public ConditionValue getCreatedBy() { - if (_createdBy == null) { - _createdBy = new ConditionValue(); - } - return _createdBy; - } - - protected ConditionValue getCValueCreatedBy() { - return getCreatedBy(); - } - - public BsRoutineScheduleCQ addOrderBy_CreatedBy_Asc() { - regOBA("CREATED_BY"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_CreatedBy_Desc() { - regOBD("CREATED_BY"); - return this; - } - - protected ConditionValue _updatedTime; - - public ConditionValue getUpdatedTime() { - if (_updatedTime == null) { - _updatedTime = new ConditionValue(); - } - return _updatedTime; - } - - protected ConditionValue getCValueUpdatedTime() { - return getUpdatedTime(); - } - - public BsRoutineScheduleCQ addOrderBy_UpdatedTime_Asc() { - regOBA("UPDATED_TIME"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_UpdatedTime_Desc() { - regOBD("UPDATED_TIME"); - return this; - } - - protected ConditionValue _updatedBy; - - public ConditionValue getUpdatedBy() { - if (_updatedBy == null) { - _updatedBy = new ConditionValue(); - } - return _updatedBy; - } - - protected ConditionValue getCValueUpdatedBy() { - return getUpdatedBy(); - } - - public BsRoutineScheduleCQ addOrderBy_UpdatedBy_Asc() { - regOBA("UPDATED_BY"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_UpdatedBy_Desc() { - regOBD("UPDATED_BY"); - return this; - } - - protected ConditionValue _deletedTime; - - public ConditionValue getDeletedTime() { - if (_deletedTime == null) { - _deletedTime = new ConditionValue(); - } - return _deletedTime; - } - - protected ConditionValue getCValueDeletedTime() { - return getDeletedTime(); - } - - public BsRoutineScheduleCQ addOrderBy_DeletedTime_Asc() { - regOBA("DELETED_TIME"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_DeletedTime_Desc() { - regOBD("DELETED_TIME"); - return this; - } - - protected ConditionValue _deletedBy; - - public ConditionValue getDeletedBy() { - if (_deletedBy == null) { - _deletedBy = new ConditionValue(); - } - return _deletedBy; - } - - protected ConditionValue getCValueDeletedBy() { - return getDeletedBy(); - } - - public BsRoutineScheduleCQ addOrderBy_DeletedBy_Asc() { - regOBA("DELETED_BY"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_DeletedBy_Desc() { - regOBD("DELETED_BY"); - return this; - } - - protected ConditionValue _versionno; - - public ConditionValue getVersionno() { - if (_versionno == null) { - _versionno = new ConditionValue(); - } - return _versionno; - } - - protected ConditionValue getCValueVersionno() { - return getVersionno(); - } - - public BsRoutineScheduleCQ addOrderBy_Versionno_Asc() { - regOBA("VERSIONNO"); - return this; - } - - public BsRoutineScheduleCQ addOrderBy_Versionno_Desc() { - regOBD("VERSIONNO"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsRoutineScheduleCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsRoutineScheduleCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - RoutineScheduleCQ baseQuery = (RoutineScheduleCQ) baseQueryAsSuper; - RoutineScheduleCQ unionQuery = (RoutineScheduleCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQueryRoutineScheduleContentAsOne()) { - unionQuery.queryRoutineScheduleContentAsOne() - .reflectRelationOnUnionQuery( - baseQuery.queryRoutineScheduleContentAsOne(), - unionQuery.queryRoutineScheduleContentAsOne()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public RoutineScheduleContentCQ queryRoutineScheduleContentAsOne() { - return getConditionQueryRoutineScheduleContentAsOne(); - } - - protected RoutineScheduleContentCQ _conditionQueryRoutineScheduleContentAsOne; - - public RoutineScheduleContentCQ getConditionQueryRoutineScheduleContentAsOne() { - if (_conditionQueryRoutineScheduleContentAsOne == null) { - _conditionQueryRoutineScheduleContentAsOne = createQueryRoutineScheduleContentAsOne(); - setupOuterJoin_RoutineScheduleContentAsOne(); - } - return _conditionQueryRoutineScheduleContentAsOne; - } - - protected void setupOuterJoin_RoutineScheduleContentAsOne() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("ID"), - getConditionQueryRoutineScheduleContentAsOne() - .getRealColumnName("ID")); - registerOuterJoin(getConditionQueryRoutineScheduleContentAsOne(), - joinOnMap); - } - - protected RoutineScheduleContentCQ createQueryRoutineScheduleContentAsOne() { - String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE", - "routineScheduleContentAsOne"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - RoutineScheduleContentCQ cq = new RoutineScheduleContentCQ(this, - getSqlClause(), jan, getNextNestLevel()); - cq.xsetForeignPropertyName("routineScheduleContentAsOne"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQueryRoutineScheduleContentAsOne() { - return _conditionQueryRoutineScheduleContentAsOne != null; - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,218 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoutineScheduleContentCIQ; - -/** - * The base condition-query of ROUTINE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsRoutineScheduleContentCQ extends - AbstractBsRoutineScheduleContentCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleContentCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsRoutineScheduleContentCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from ROUTINE_SCHEDULE_CONTENT) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public RoutineScheduleContentCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new RoutineScheduleContentCIQ(getChildQuery(), - getSqlClause(), getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * ROUTINE_SCHEDULE_CONTENT on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public RoutineScheduleContentCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - RoutineScheduleContentCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - protected Map _id_InScopeSubQuery_RoutineScheduleMap; - - public Map getId_InScopeSubQuery_RoutineSchedule() { - return _id_InScopeSubQuery_RoutineScheduleMap; - } - - public String keepId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ subQuery) { - if (_id_InScopeSubQuery_RoutineScheduleMap == null) { - _id_InScopeSubQuery_RoutineScheduleMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_RoutineScheduleMap.size() + 1); - _id_InScopeSubQuery_RoutineScheduleMap.put(key, subQuery); - return "id_InScopeSubQuery_RoutineSchedule." + key; - } - - public BsRoutineScheduleContentCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsRoutineScheduleContentCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _content; - - public ConditionValue getContent() { - if (_content == null) { - _content = new ConditionValue(); - } - return _content; - } - - protected ConditionValue getCValueContent() { - return getContent(); - } - - public BsRoutineScheduleContentCQ addOrderBy_Content_Asc() { - regOBA("CONTENT"); - return this; - } - - public BsRoutineScheduleContentCQ addOrderBy_Content_Desc() { - regOBD("CONTENT"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsRoutineScheduleContentCQ addSpecifiedDerivedOrderBy_Asc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsRoutineScheduleContentCQ addSpecifiedDerivedOrderBy_Desc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - RoutineScheduleContentCQ baseQuery = (RoutineScheduleContentCQ) baseQueryAsSuper; - RoutineScheduleContentCQ unionQuery = (RoutineScheduleContentCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQueryRoutineSchedule()) { - unionQuery.queryRoutineSchedule().reflectRelationOnUnionQuery( - baseQuery.queryRoutineSchedule(), - unionQuery.queryRoutineSchedule()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public RoutineScheduleCQ queryRoutineSchedule() { - return getConditionQueryRoutineSchedule(); - } - - protected RoutineScheduleCQ _conditionQueryRoutineSchedule; - - public RoutineScheduleCQ getConditionQueryRoutineSchedule() { - if (_conditionQueryRoutineSchedule == null) { - _conditionQueryRoutineSchedule = createQueryRoutineSchedule(); - setupOuterJoin_RoutineSchedule(); - } - return _conditionQueryRoutineSchedule; - } - - protected void setupOuterJoin_RoutineSchedule() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("ID"), - getConditionQueryRoutineSchedule().getRealColumnName("ID")); - registerOuterJoin(getConditionQueryRoutineSchedule(), joinOnMap); - } - - protected RoutineScheduleCQ createQueryRoutineSchedule() { - String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE_CONTENT", - "routineSchedule"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - RoutineScheduleCQ cq = new RoutineScheduleCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("routineSchedule"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQueryRoutineSchedule() { - return _conditionQueryRoutineSchedule != null; - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleContentCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsRoutineScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,298 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; -import jp.sf.pal.scheduler.db.cbean.cq.ciq.RoutineScheduleMappingCIQ; - -/** - * The base condition-query of ROUTINE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsRoutineScheduleMappingCQ extends - AbstractBsRoutineScheduleMappingCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected RoutineScheduleMappingCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsRoutineScheduleMappingCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from ROUTINE_SCHEDULE_MAPPING) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public RoutineScheduleMappingCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new RoutineScheduleMappingCIQ(getChildQuery(), - getSqlClause(), getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * ROUTINE_SCHEDULE_MAPPING on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public RoutineScheduleMappingCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - RoutineScheduleMappingCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - public BsRoutineScheduleMappingCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsRoutineScheduleMappingCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _scheduleId; - - public ConditionValue getScheduleId() { - if (_scheduleId == null) { - _scheduleId = new ConditionValue(); - } - return _scheduleId; - } - - protected ConditionValue getCValueScheduleId() { - return getScheduleId(); - } - - protected Map _scheduleId_InScopeSubQuery_RoutineScheduleMap; - - public Map getScheduleId_InScopeSubQuery_RoutineSchedule() { - return _scheduleId_InScopeSubQuery_RoutineScheduleMap; - } - - public String keepScheduleId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ subQuery) { - if (_scheduleId_InScopeSubQuery_RoutineScheduleMap == null) { - _scheduleId_InScopeSubQuery_RoutineScheduleMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_scheduleId_InScopeSubQuery_RoutineScheduleMap.size() + 1); - _scheduleId_InScopeSubQuery_RoutineScheduleMap.put(key, subQuery); - return "scheduleId_InScopeSubQuery_RoutineSchedule." + key; - } - - public BsRoutineScheduleMappingCQ addOrderBy_ScheduleId_Asc() { - regOBA("SCHEDULE_ID"); - return this; - } - - public BsRoutineScheduleMappingCQ addOrderBy_ScheduleId_Desc() { - regOBD("SCHEDULE_ID"); - return this; - } - - protected ConditionValue _userId; - - public ConditionValue getUserId() { - if (_userId == null) { - _userId = new ConditionValue(); - } - return _userId; - } - - protected ConditionValue getCValueUserId() { - return getUserId(); - } - - protected Map _userId_InScopeSubQuery_UserInfoMap; - - public Map getUserId_InScopeSubQuery_UserInfo() { - return _userId_InScopeSubQuery_UserInfoMap; - } - - public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { - if (_userId_InScopeSubQuery_UserInfoMap == null) { - _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); - _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); - return "userId_InScopeSubQuery_UserInfo." + key; - } - - public BsRoutineScheduleMappingCQ addOrderBy_UserId_Asc() { - regOBA("USER_ID"); - return this; - } - - public BsRoutineScheduleMappingCQ addOrderBy_UserId_Desc() { - regOBD("USER_ID"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsRoutineScheduleMappingCQ addSpecifiedDerivedOrderBy_Asc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsRoutineScheduleMappingCQ addSpecifiedDerivedOrderBy_Desc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - RoutineScheduleMappingCQ baseQuery = (RoutineScheduleMappingCQ) baseQueryAsSuper; - RoutineScheduleMappingCQ unionQuery = (RoutineScheduleMappingCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQueryRoutineSchedule()) { - unionQuery.queryRoutineSchedule().reflectRelationOnUnionQuery( - baseQuery.queryRoutineSchedule(), - unionQuery.queryRoutineSchedule()); - } - if (baseQuery.hasConditionQueryUserInfo()) { - unionQuery.queryUserInfo().reflectRelationOnUnionQuery( - baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public RoutineScheduleCQ queryRoutineSchedule() { - return getConditionQueryRoutineSchedule(); - } - - protected RoutineScheduleCQ _conditionQueryRoutineSchedule; - - public RoutineScheduleCQ getConditionQueryRoutineSchedule() { - if (_conditionQueryRoutineSchedule == null) { - _conditionQueryRoutineSchedule = createQueryRoutineSchedule(); - setupOuterJoin_RoutineSchedule(); - } - return _conditionQueryRoutineSchedule; - } - - protected void setupOuterJoin_RoutineSchedule() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("SCHEDULE_ID"), - getConditionQueryRoutineSchedule().getRealColumnName("ID")); - registerOuterJoin(getConditionQueryRoutineSchedule(), joinOnMap); - } - - protected RoutineScheduleCQ createQueryRoutineSchedule() { - String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE_MAPPING", - "routineSchedule"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - RoutineScheduleCQ cq = new RoutineScheduleCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("routineSchedule"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQueryRoutineSchedule() { - return _conditionQueryRoutineSchedule != null; - } - - public UserInfoCQ queryUserInfo() { - return getConditionQueryUserInfo(); - } - - protected UserInfoCQ _conditionQueryUserInfo; - - public UserInfoCQ getConditionQueryUserInfo() { - if (_conditionQueryUserInfo == null) { - _conditionQueryUserInfo = createQueryUserInfo(); - setupOuterJoin_UserInfo(); - } - return _conditionQueryUserInfo; - } - - protected void setupOuterJoin_UserInfo() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() - .getRealColumnName("USER_ID")); - registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); - } - - protected UserInfoCQ createQueryUserInfo() { - String nrp = resolveNextRelationPath("ROUTINE_SCHEDULE_MAPPING", - "userInfo"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("userInfo"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQueryUserInfo() { - return _conditionQueryUserInfo != null; - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleMappingCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,654 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.ciq.SingleScheduleCIQ; - -/** - * The base condition-query of SINGLE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsSingleScheduleCQ extends AbstractBsSingleScheduleCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsSingleScheduleCQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from SINGLE_SCHEDULE) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public SingleScheduleCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new SingleScheduleCIQ(getChildQuery(), - getSqlClause(), getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * SINGLE_SCHEDULE on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public SingleScheduleCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - SingleScheduleCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - protected Map _id_InScopeSubQuery_SingleScheduleContentAsOneMap; - - public Map getId_InScopeSubQuery_SingleScheduleContentAsOne() { - return _id_InScopeSubQuery_SingleScheduleContentAsOneMap; - } - - public String keepId_InScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - if (_id_InScopeSubQuery_SingleScheduleContentAsOneMap == null) { - _id_InScopeSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_SingleScheduleContentAsOneMap.size() + 1); - _id_InScopeSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); - return "id_InScopeSubQuery_SingleScheduleContentAsOne." + key; - } - - protected Map _id_InScopeSubQuery_SingleScheduleMappingListMap; - - public Map getId_InScopeSubQuery_SingleScheduleMappingList() { - return _id_InScopeSubQuery_SingleScheduleMappingListMap; - } - - public String keepId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_id_InScopeSubQuery_SingleScheduleMappingListMap == null) { - _id_InScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_SingleScheduleMappingListMap.size() + 1); - _id_InScopeSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "id_InScopeSubQuery_SingleScheduleMappingList." + key; - } - - protected Map _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap; - - public Map getId_NotInScopeSubQuery_SingleScheduleContentAsOne() { - return _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap; - } - - public String keepId_NotInScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - if (_id_NotInScopeSubQuery_SingleScheduleContentAsOneMap == null) { - _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotInScopeSubQuery_SingleScheduleContentAsOneMap.size() + 1); - _id_NotInScopeSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); - return "id_NotInScopeSubQuery_SingleScheduleContentAsOne." + key; - } - - protected Map _id_NotInScopeSubQuery_SingleScheduleMappingListMap; - - public Map getId_NotInScopeSubQuery_SingleScheduleMappingList() { - return _id_NotInScopeSubQuery_SingleScheduleMappingListMap; - } - - public String keepId_NotInScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_id_NotInScopeSubQuery_SingleScheduleMappingListMap == null) { - _id_NotInScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotInScopeSubQuery_SingleScheduleMappingListMap.size() + 1); - _id_NotInScopeSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "id_NotInScopeSubQuery_SingleScheduleMappingList." + key; - } - - protected Map _id_ExistsSubQuery_SingleScheduleContentAsOneMap; - - public Map getId_ExistsSubQuery_SingleScheduleContentAsOne() { - return _id_ExistsSubQuery_SingleScheduleContentAsOneMap; - } - - public String keepId_ExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - if (_id_ExistsSubQuery_SingleScheduleContentAsOneMap == null) { - _id_ExistsSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_ExistsSubQuery_SingleScheduleContentAsOneMap.size() + 1); - _id_ExistsSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); - return "id_ExistsSubQuery_SingleScheduleContentAsOne." + key; - } - - protected Map _id_ExistsSubQuery_SingleScheduleMappingListMap; - - public Map getId_ExistsSubQuery_SingleScheduleMappingList() { - return _id_ExistsSubQuery_SingleScheduleMappingListMap; - } - - public String keepId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_id_ExistsSubQuery_SingleScheduleMappingListMap == null) { - _id_ExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_ExistsSubQuery_SingleScheduleMappingListMap.size() + 1); - _id_ExistsSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "id_ExistsSubQuery_SingleScheduleMappingList." + key; - } - - protected Map _id_NotExistsSubQuery_SingleScheduleContentAsOneMap; - - public Map getId_NotExistsSubQuery_SingleScheduleContentAsOne() { - return _id_NotExistsSubQuery_SingleScheduleContentAsOneMap; - } - - public String keepId_NotExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - if (_id_NotExistsSubQuery_SingleScheduleContentAsOneMap == null) { - _id_NotExistsSubQuery_SingleScheduleContentAsOneMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotExistsSubQuery_SingleScheduleContentAsOneMap.size() + 1); - _id_NotExistsSubQuery_SingleScheduleContentAsOneMap.put(key, subQuery); - return "id_NotExistsSubQuery_SingleScheduleContentAsOne." + key; - } - - protected Map _id_NotExistsSubQuery_SingleScheduleMappingListMap; - - public Map getId_NotExistsSubQuery_SingleScheduleMappingList() { - return _id_NotExistsSubQuery_SingleScheduleMappingListMap; - } - - public String keepId_NotExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_id_NotExistsSubQuery_SingleScheduleMappingListMap == null) { - _id_NotExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_NotExistsSubQuery_SingleScheduleMappingListMap.size() + 1); - _id_NotExistsSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "id_NotExistsSubQuery_SingleScheduleMappingList." + key; - } - - protected Map _id_DeriveSubQuery_SingleScheduleMappingListMap; - - public Map getId_DeriveSubQuery_SingleScheduleMappingList() { - return _id_DeriveSubQuery_SingleScheduleMappingListMap; - } - - public String keepId_DeriveSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_id_DeriveSubQuery_SingleScheduleMappingListMap == null) { - _id_DeriveSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_DeriveSubQuery_SingleScheduleMappingListMap.size() + 1); - _id_DeriveSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "id_DeriveSubQuery_SingleScheduleMappingList." + key; - } - - public BsSingleScheduleCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _title; - - public ConditionValue getTitle() { - if (_title == null) { - _title = new ConditionValue(); - } - return _title; - } - - protected ConditionValue getCValueTitle() { - return getTitle(); - } - - public BsSingleScheduleCQ addOrderBy_Title_Asc() { - regOBA("TITLE"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_Title_Desc() { - regOBD("TITLE"); - return this; - } - - protected ConditionValue _location; - - public ConditionValue getLocation() { - if (_location == null) { - _location = new ConditionValue(); - } - return _location; - } - - protected ConditionValue getCValueLocation() { - return getLocation(); - } - - public BsSingleScheduleCQ addOrderBy_Location_Asc() { - regOBA("LOCATION"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_Location_Desc() { - regOBD("LOCATION"); - return this; - } - - protected ConditionValue _startDate; - - public ConditionValue getStartDate() { - if (_startDate == null) { - _startDate = new ConditionValue(); - } - return _startDate; - } - - protected ConditionValue getCValueStartDate() { - return getStartDate(); - } - - public BsSingleScheduleCQ addOrderBy_StartDate_Asc() { - regOBA("START_DATE"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_StartDate_Desc() { - regOBD("START_DATE"); - return this; - } - - protected ConditionValue _startTime; - - public ConditionValue getStartTime() { - if (_startTime == null) { - _startTime = new ConditionValue(); - } - return _startTime; - } - - protected ConditionValue getCValueStartTime() { - return getStartTime(); - } - - public BsSingleScheduleCQ addOrderBy_StartTime_Asc() { - regOBA("START_TIME"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_StartTime_Desc() { - regOBD("START_TIME"); - return this; - } - - protected ConditionValue _endDate; - - public ConditionValue getEndDate() { - if (_endDate == null) { - _endDate = new ConditionValue(); - } - return _endDate; - } - - protected ConditionValue getCValueEndDate() { - return getEndDate(); - } - - public BsSingleScheduleCQ addOrderBy_EndDate_Asc() { - regOBA("END_DATE"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_EndDate_Desc() { - regOBD("END_DATE"); - return this; - } - - protected ConditionValue _endTime; - - public ConditionValue getEndTime() { - if (_endTime == null) { - _endTime = new ConditionValue(); - } - return _endTime; - } - - protected ConditionValue getCValueEndTime() { - return getEndTime(); - } - - public BsSingleScheduleCQ addOrderBy_EndTime_Asc() { - regOBA("END_TIME"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_EndTime_Desc() { - regOBD("END_TIME"); - return this; - } - - protected ConditionValue _secret; - - public ConditionValue getSecret() { - if (_secret == null) { - _secret = new ConditionValue(); - } - return _secret; - } - - protected ConditionValue getCValueSecret() { - return getSecret(); - } - - public BsSingleScheduleCQ addOrderBy_Secret_Asc() { - regOBA("SECRET"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_Secret_Desc() { - regOBD("SECRET"); - return this; - } - - protected ConditionValue _createdTime; - - public ConditionValue getCreatedTime() { - if (_createdTime == null) { - _createdTime = new ConditionValue(); - } - return _createdTime; - } - - protected ConditionValue getCValueCreatedTime() { - return getCreatedTime(); - } - - public BsSingleScheduleCQ addOrderBy_CreatedTime_Asc() { - regOBA("CREATED_TIME"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_CreatedTime_Desc() { - regOBD("CREATED_TIME"); - return this; - } - - protected ConditionValue _createdBy; - - public ConditionValue getCreatedBy() { - if (_createdBy == null) { - _createdBy = new ConditionValue(); - } - return _createdBy; - } - - protected ConditionValue getCValueCreatedBy() { - return getCreatedBy(); - } - - public BsSingleScheduleCQ addOrderBy_CreatedBy_Asc() { - regOBA("CREATED_BY"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_CreatedBy_Desc() { - regOBD("CREATED_BY"); - return this; - } - - protected ConditionValue _updatedTime; - - public ConditionValue getUpdatedTime() { - if (_updatedTime == null) { - _updatedTime = new ConditionValue(); - } - return _updatedTime; - } - - protected ConditionValue getCValueUpdatedTime() { - return getUpdatedTime(); - } - - public BsSingleScheduleCQ addOrderBy_UpdatedTime_Asc() { - regOBA("UPDATED_TIME"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_UpdatedTime_Desc() { - regOBD("UPDATED_TIME"); - return this; - } - - protected ConditionValue _updatedBy; - - public ConditionValue getUpdatedBy() { - if (_updatedBy == null) { - _updatedBy = new ConditionValue(); - } - return _updatedBy; - } - - protected ConditionValue getCValueUpdatedBy() { - return getUpdatedBy(); - } - - public BsSingleScheduleCQ addOrderBy_UpdatedBy_Asc() { - regOBA("UPDATED_BY"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_UpdatedBy_Desc() { - regOBD("UPDATED_BY"); - return this; - } - - protected ConditionValue _deletedTime; - - public ConditionValue getDeletedTime() { - if (_deletedTime == null) { - _deletedTime = new ConditionValue(); - } - return _deletedTime; - } - - protected ConditionValue getCValueDeletedTime() { - return getDeletedTime(); - } - - public BsSingleScheduleCQ addOrderBy_DeletedTime_Asc() { - regOBA("DELETED_TIME"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_DeletedTime_Desc() { - regOBD("DELETED_TIME"); - return this; - } - - protected ConditionValue _deletedBy; - - public ConditionValue getDeletedBy() { - if (_deletedBy == null) { - _deletedBy = new ConditionValue(); - } - return _deletedBy; - } - - protected ConditionValue getCValueDeletedBy() { - return getDeletedBy(); - } - - public BsSingleScheduleCQ addOrderBy_DeletedBy_Asc() { - regOBA("DELETED_BY"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_DeletedBy_Desc() { - regOBD("DELETED_BY"); - return this; - } - - protected ConditionValue _versionno; - - public ConditionValue getVersionno() { - if (_versionno == null) { - _versionno = new ConditionValue(); - } - return _versionno; - } - - protected ConditionValue getCValueVersionno() { - return getVersionno(); - } - - public BsSingleScheduleCQ addOrderBy_Versionno_Asc() { - regOBA("VERSIONNO"); - return this; - } - - public BsSingleScheduleCQ addOrderBy_Versionno_Desc() { - regOBD("VERSIONNO"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsSingleScheduleCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsSingleScheduleCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - SingleScheduleCQ baseQuery = (SingleScheduleCQ) baseQueryAsSuper; - SingleScheduleCQ unionQuery = (SingleScheduleCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQuerySingleScheduleContentAsOne()) { - unionQuery.querySingleScheduleContentAsOne() - .reflectRelationOnUnionQuery( - baseQuery.querySingleScheduleContentAsOne(), - unionQuery.querySingleScheduleContentAsOne()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public SingleScheduleContentCQ querySingleScheduleContentAsOne() { - return getConditionQuerySingleScheduleContentAsOne(); - } - - protected SingleScheduleContentCQ _conditionQuerySingleScheduleContentAsOne; - - public SingleScheduleContentCQ getConditionQuerySingleScheduleContentAsOne() { - if (_conditionQuerySingleScheduleContentAsOne == null) { - _conditionQuerySingleScheduleContentAsOne = createQuerySingleScheduleContentAsOne(); - setupOuterJoin_SingleScheduleContentAsOne(); - } - return _conditionQuerySingleScheduleContentAsOne; - } - - protected void setupOuterJoin_SingleScheduleContentAsOne() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("ID"), - getConditionQuerySingleScheduleContentAsOne() - .getRealColumnName("ID")); - registerOuterJoin(getConditionQuerySingleScheduleContentAsOne(), - joinOnMap); - } - - protected SingleScheduleContentCQ createQuerySingleScheduleContentAsOne() { - String nrp = resolveNextRelationPath("SINGLE_SCHEDULE", - "singleScheduleContentAsOne"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - SingleScheduleContentCQ cq = new SingleScheduleContentCQ(this, - getSqlClause(), jan, getNextNestLevel()); - cq.xsetForeignPropertyName("singleScheduleContentAsOne"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQuerySingleScheduleContentAsOne() { - return _conditionQuerySingleScheduleContentAsOne != null; - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleContentCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,218 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.ciq.SingleScheduleContentCIQ; - -/** - * The base condition-query of SINGLE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsSingleScheduleContentCQ extends - AbstractBsSingleScheduleContentCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleContentCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsSingleScheduleContentCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from SINGLE_SCHEDULE_CONTENT) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public SingleScheduleContentCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new SingleScheduleContentCIQ(getChildQuery(), - getSqlClause(), getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * SINGLE_SCHEDULE_CONTENT on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public SingleScheduleContentCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - SingleScheduleContentCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - protected Map _id_InScopeSubQuery_SingleScheduleMap; - - public Map getId_InScopeSubQuery_SingleSchedule() { - return _id_InScopeSubQuery_SingleScheduleMap; - } - - public String keepId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ subQuery) { - if (_id_InScopeSubQuery_SingleScheduleMap == null) { - _id_InScopeSubQuery_SingleScheduleMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_id_InScopeSubQuery_SingleScheduleMap.size() + 1); - _id_InScopeSubQuery_SingleScheduleMap.put(key, subQuery); - return "id_InScopeSubQuery_SingleSchedule." + key; - } - - public BsSingleScheduleContentCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsSingleScheduleContentCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _content; - - public ConditionValue getContent() { - if (_content == null) { - _content = new ConditionValue(); - } - return _content; - } - - protected ConditionValue getCValueContent() { - return getContent(); - } - - public BsSingleScheduleContentCQ addOrderBy_Content_Asc() { - regOBA("CONTENT"); - return this; - } - - public BsSingleScheduleContentCQ addOrderBy_Content_Desc() { - regOBD("CONTENT"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsSingleScheduleContentCQ addSpecifiedDerivedOrderBy_Asc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsSingleScheduleContentCQ addSpecifiedDerivedOrderBy_Desc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - SingleScheduleContentCQ baseQuery = (SingleScheduleContentCQ) baseQueryAsSuper; - SingleScheduleContentCQ unionQuery = (SingleScheduleContentCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQuerySingleSchedule()) { - unionQuery.querySingleSchedule().reflectRelationOnUnionQuery( - baseQuery.querySingleSchedule(), - unionQuery.querySingleSchedule()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public SingleScheduleCQ querySingleSchedule() { - return getConditionQuerySingleSchedule(); - } - - protected SingleScheduleCQ _conditionQuerySingleSchedule; - - public SingleScheduleCQ getConditionQuerySingleSchedule() { - if (_conditionQuerySingleSchedule == null) { - _conditionQuerySingleSchedule = createQuerySingleSchedule(); - setupOuterJoin_SingleSchedule(); - } - return _conditionQuerySingleSchedule; - } - - protected void setupOuterJoin_SingleSchedule() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("ID"), - getConditionQuerySingleSchedule().getRealColumnName("ID")); - registerOuterJoin(getConditionQuerySingleSchedule(), joinOnMap); - } - - protected SingleScheduleCQ createQuerySingleSchedule() { - String nrp = resolveNextRelationPath("SINGLE_SCHEDULE_CONTENT", - "singleSchedule"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - SingleScheduleCQ cq = new SingleScheduleCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("singleSchedule"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQuerySingleSchedule() { - return _conditionQuerySingleSchedule != null; - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleContentCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsSingleScheduleMappingCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,298 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.bs; - -import java.util.Map; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; -import jp.sf.pal.scheduler.db.cbean.cq.ciq.SingleScheduleMappingCIQ; - -/** - * The base condition-query of SINGLE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class BsSingleScheduleMappingCQ extends - AbstractBsSingleScheduleMappingCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected SingleScheduleMappingCIQ _inlineQuery; - - //========================================================================== - // ========= - // Constructor - // =========== - public BsSingleScheduleMappingCQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel) { - super(childQuery, sqlClause, aliasName, nestLevel); - } - - //========================================================================== - // ========= - // Inline - // ====== - /** - * Prepare inline query.
    {select ... from ... left outer join (select - * * from SINGLE_SCHEDULE_MAPPING) where abc = [abc] ...} - * - * @return Inline query. (NotNull) - */ - public SingleScheduleMappingCIQ inline() { - if (_inlineQuery == null) { - _inlineQuery = new SingleScheduleMappingCIQ(getChildQuery(), - getSqlClause(), getAliasName(), getNestLevel(), this); - } - _inlineQuery.xsetOnClauseInline(false); - return _inlineQuery; - } - - /** - * Prepare on-clause query.
    {select ... from ... left outer join - * SINGLE_SCHEDULE_MAPPING on ... and abc = [abc] ...} - * - * @return On-clause query. (NotNull) - */ - public SingleScheduleMappingCIQ on() { - if (isBaseQuery(this)) { - throw new UnsupportedOperationException( - "Unsupported onClause of Base Table!"); - } - SingleScheduleMappingCIQ inlineQuery = inline(); - inlineQuery.xsetOnClauseInline(true); - return inlineQuery; - } - - //========================================================================== - // ========= - // Query - // ===== - - protected ConditionValue _id; - - public ConditionValue getId() { - if (_id == null) { - _id = new ConditionValue(); - } - return _id; - } - - protected ConditionValue getCValueId() { - return getId(); - } - - public BsSingleScheduleMappingCQ addOrderBy_Id_Asc() { - regOBA("ID"); - return this; - } - - public BsSingleScheduleMappingCQ addOrderBy_Id_Desc() { - regOBD("ID"); - return this; - } - - protected ConditionValue _scheduleId; - - public ConditionValue getScheduleId() { - if (_scheduleId == null) { - _scheduleId = new ConditionValue(); - } - return _scheduleId; - } - - protected ConditionValue getCValueScheduleId() { - return getScheduleId(); - } - - protected Map _scheduleId_InScopeSubQuery_SingleScheduleMap; - - public Map getScheduleId_InScopeSubQuery_SingleSchedule() { - return _scheduleId_InScopeSubQuery_SingleScheduleMap; - } - - public String keepScheduleId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ subQuery) { - if (_scheduleId_InScopeSubQuery_SingleScheduleMap == null) { - _scheduleId_InScopeSubQuery_SingleScheduleMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_scheduleId_InScopeSubQuery_SingleScheduleMap.size() + 1); - _scheduleId_InScopeSubQuery_SingleScheduleMap.put(key, subQuery); - return "scheduleId_InScopeSubQuery_SingleSchedule." + key; - } - - public BsSingleScheduleMappingCQ addOrderBy_ScheduleId_Asc() { - regOBA("SCHEDULE_ID"); - return this; - } - - public BsSingleScheduleMappingCQ addOrderBy_ScheduleId_Desc() { - regOBD("SCHEDULE_ID"); - return this; - } - - protected ConditionValue _userId; - - public ConditionValue getUserId() { - if (_userId == null) { - _userId = new ConditionValue(); - } - return _userId; - } - - protected ConditionValue getCValueUserId() { - return getUserId(); - } - - protected Map _userId_InScopeSubQuery_UserInfoMap; - - public Map getUserId_InScopeSubQuery_UserInfo() { - return _userId_InScopeSubQuery_UserInfoMap; - } - - public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { - if (_userId_InScopeSubQuery_UserInfoMap == null) { - _userId_InScopeSubQuery_UserInfoMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_InScopeSubQuery_UserInfoMap.size() + 1); - _userId_InScopeSubQuery_UserInfoMap.put(key, subQuery); - return "userId_InScopeSubQuery_UserInfo." + key; - } - - public BsSingleScheduleMappingCQ addOrderBy_UserId_Asc() { - regOBA("USER_ID"); - return this; - } - - public BsSingleScheduleMappingCQ addOrderBy_UserId_Desc() { - regOBD("USER_ID"); - return this; - } - - //========================================================================== - // ========= - // Specified Derived OrderBy - // ========================= - public BsSingleScheduleMappingCQ addSpecifiedDerivedOrderBy_Asc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Asc(aliasName); - return this; - } - - public BsSingleScheduleMappingCQ addSpecifiedDerivedOrderBy_Desc( - String aliasName) { - registerSpecifiedDerivedOrderBy_Desc(aliasName); - return this; - } - - //========================================================================== - // ========= - // Union Query - // =========== - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - SingleScheduleMappingCQ baseQuery = (SingleScheduleMappingCQ) baseQueryAsSuper; - SingleScheduleMappingCQ unionQuery = (SingleScheduleMappingCQ) unionQueryAsSuper; - if (baseQuery.hasConditionQuerySingleSchedule()) { - unionQuery.querySingleSchedule().reflectRelationOnUnionQuery( - baseQuery.querySingleSchedule(), - unionQuery.querySingleSchedule()); - } - if (baseQuery.hasConditionQueryUserInfo()) { - unionQuery.queryUserInfo().reflectRelationOnUnionQuery( - baseQuery.queryUserInfo(), unionQuery.queryUserInfo()); - } - } - - //========================================================================== - // ========= - // Foreign Query - // ============= - - public SingleScheduleCQ querySingleSchedule() { - return getConditionQuerySingleSchedule(); - } - - protected SingleScheduleCQ _conditionQuerySingleSchedule; - - public SingleScheduleCQ getConditionQuerySingleSchedule() { - if (_conditionQuerySingleSchedule == null) { - _conditionQuerySingleSchedule = createQuerySingleSchedule(); - setupOuterJoin_SingleSchedule(); - } - return _conditionQuerySingleSchedule; - } - - protected void setupOuterJoin_SingleSchedule() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("SCHEDULE_ID"), - getConditionQuerySingleSchedule().getRealColumnName("ID")); - registerOuterJoin(getConditionQuerySingleSchedule(), joinOnMap); - } - - protected SingleScheduleCQ createQuerySingleSchedule() { - String nrp = resolveNextRelationPath("SINGLE_SCHEDULE_MAPPING", - "singleSchedule"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - SingleScheduleCQ cq = new SingleScheduleCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("singleSchedule"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQuerySingleSchedule() { - return _conditionQuerySingleSchedule != null; - } - - public UserInfoCQ queryUserInfo() { - return getConditionQueryUserInfo(); - } - - protected UserInfoCQ _conditionQueryUserInfo; - - public UserInfoCQ getConditionQueryUserInfo() { - if (_conditionQueryUserInfo == null) { - _conditionQueryUserInfo = createQueryUserInfo(); - setupOuterJoin_UserInfo(); - } - return _conditionQueryUserInfo; - } - - protected void setupOuterJoin_UserInfo() { - Map joinOnMap = newLinkedHashMap(); - joinOnMap.put(getRealColumnName("USER_ID"), getConditionQueryUserInfo() - .getRealColumnName("USER_ID")); - registerOuterJoin(getConditionQueryUserInfo(), joinOnMap); - } - - protected UserInfoCQ createQueryUserInfo() { - String nrp = resolveNextRelationPath("SINGLE_SCHEDULE_MAPPING", - "userInfo"); - String jan = resolveJoinAliasName(nrp, getNextNestLevel()); - UserInfoCQ cq = new UserInfoCQ(this, getSqlClause(), jan, - getNextNestLevel()); - cq.xsetForeignPropertyName("userInfo"); - cq.xsetRelationPath(nrp); - return cq; - } - - public boolean hasConditionQueryUserInfo() { - return _conditionQueryUserInfo != null; - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleMappingCQ.class.getName(); - } - - protected String getMapClassNameInternally() { - return Map.class.getName(); - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -5,12 +5,11 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.ciq.UserInfoCIQ; @@ -90,6 +89,23 @@ return getUserId(); } + protected Map _userId_InScopeSubQuery_EventScheduleMappingListMap; + + public Map getUserId_InScopeSubQuery_EventScheduleMappingList() { + return _userId_InScopeSubQuery_EventScheduleMappingListMap; + } + + public String keepUserId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_userId_InScopeSubQuery_EventScheduleMappingListMap == null) { + _userId_InScopeSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_userId_InScopeSubQuery_EventScheduleMappingListMap.size() + 1); + _userId_InScopeSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "userId_InScopeSubQuery_EventScheduleMappingList." + key; + } + protected Map _userId_InScopeSubQuery_GroupMappingListMap; public Map getUserId_InScopeSubQuery_GroupMappingList() { @@ -124,41 +140,25 @@ return "userId_InScopeSubQuery_RoleMappingList." + key; } - protected Map _userId_InScopeSubQuery_RoutineScheduleMappingListMap; + protected Map _userId_NotInScopeSubQuery_EventScheduleMappingListMap; - public Map getUserId_InScopeSubQuery_RoutineScheduleMappingList() { - return _userId_InScopeSubQuery_RoutineScheduleMappingListMap; + public Map getUserId_NotInScopeSubQuery_EventScheduleMappingList() { + return _userId_NotInScopeSubQuery_EventScheduleMappingListMap; } - public String keepUserId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_userId_InScopeSubQuery_RoutineScheduleMappingListMap == null) { - _userId_InScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + public String keepUserId_NotInScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_userId_NotInScopeSubQuery_EventScheduleMappingListMap == null) { + _userId_NotInScopeSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); } String key = "subQueryMapKey" - + (_userId_InScopeSubQuery_RoutineScheduleMappingListMap.size() + 1); - _userId_InScopeSubQuery_RoutineScheduleMappingListMap - .put(key, subQuery); - return "userId_InScopeSubQuery_RoutineScheduleMappingList." + key; + + (_userId_NotInScopeSubQuery_EventScheduleMappingListMap + .size() + 1); + _userId_NotInScopeSubQuery_EventScheduleMappingListMap.put(key, + subQuery); + return "userId_NotInScopeSubQuery_EventScheduleMappingList." + key; } - protected Map _userId_InScopeSubQuery_SingleScheduleMappingListMap; - - public Map getUserId_InScopeSubQuery_SingleScheduleMappingList() { - return _userId_InScopeSubQuery_SingleScheduleMappingListMap; - } - - public String keepUserId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_userId_InScopeSubQuery_SingleScheduleMappingListMap == null) { - _userId_InScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_InScopeSubQuery_SingleScheduleMappingListMap.size() + 1); - _userId_InScopeSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "userId_InScopeSubQuery_SingleScheduleMappingList." + key; - } - protected Map _userId_NotInScopeSubQuery_GroupMappingListMap; public Map getUserId_NotInScopeSubQuery_GroupMappingList() { @@ -193,44 +193,23 @@ return "userId_NotInScopeSubQuery_RoleMappingList." + key; } - protected Map _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap; + protected Map _userId_ExistsSubQuery_EventScheduleMappingListMap; - public Map getUserId_NotInScopeSubQuery_RoutineScheduleMappingList() { - return _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap; + public Map getUserId_ExistsSubQuery_EventScheduleMappingList() { + return _userId_ExistsSubQuery_EventScheduleMappingListMap; } - public String keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_userId_NotInScopeSubQuery_RoutineScheduleMappingListMap == null) { - _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + public String keepUserId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_userId_ExistsSubQuery_EventScheduleMappingListMap == null) { + _userId_ExistsSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); } String key = "subQueryMapKey" - + (_userId_NotInScopeSubQuery_RoutineScheduleMappingListMap - .size() + 1); - _userId_NotInScopeSubQuery_RoutineScheduleMappingListMap.put(key, - subQuery); - return "userId_NotInScopeSubQuery_RoutineScheduleMappingList." + key; + + (_userId_ExistsSubQuery_EventScheduleMappingListMap.size() + 1); + _userId_ExistsSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "userId_ExistsSubQuery_EventScheduleMappingList." + key; } - protected Map _userId_NotInScopeSubQuery_SingleScheduleMappingListMap; - - public Map getUserId_NotInScopeSubQuery_SingleScheduleMappingList() { - return _userId_NotInScopeSubQuery_SingleScheduleMappingListMap; - } - - public String keepUserId_NotInScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_userId_NotInScopeSubQuery_SingleScheduleMappingListMap == null) { - _userId_NotInScopeSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_NotInScopeSubQuery_SingleScheduleMappingListMap - .size() + 1); - _userId_NotInScopeSubQuery_SingleScheduleMappingListMap.put(key, - subQuery); - return "userId_NotInScopeSubQuery_SingleScheduleMappingList." + key; - } - protected Map _userId_ExistsSubQuery_GroupMappingListMap; public Map getUserId_ExistsSubQuery_GroupMappingList() { @@ -265,40 +244,24 @@ return "userId_ExistsSubQuery_RoleMappingList." + key; } - protected Map _userId_ExistsSubQuery_RoutineScheduleMappingListMap; + protected Map _userId_NotExistsSubQuery_EventScheduleMappingListMap; - public Map getUserId_ExistsSubQuery_RoutineScheduleMappingList() { - return _userId_ExistsSubQuery_RoutineScheduleMappingListMap; + public Map getUserId_NotExistsSubQuery_EventScheduleMappingList() { + return _userId_NotExistsSubQuery_EventScheduleMappingListMap; } - public String keepUserId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_userId_ExistsSubQuery_RoutineScheduleMappingListMap == null) { - _userId_ExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + public String keepUserId_NotExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_userId_NotExistsSubQuery_EventScheduleMappingListMap == null) { + _userId_NotExistsSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); } String key = "subQueryMapKey" - + (_userId_ExistsSubQuery_RoutineScheduleMappingListMap.size() + 1); - _userId_ExistsSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "userId_ExistsSubQuery_RoutineScheduleMappingList." + key; + + (_userId_NotExistsSubQuery_EventScheduleMappingListMap.size() + 1); + _userId_NotExistsSubQuery_EventScheduleMappingListMap + .put(key, subQuery); + return "userId_NotExistsSubQuery_EventScheduleMappingList." + key; } - protected Map _userId_ExistsSubQuery_SingleScheduleMappingListMap; - - public Map getUserId_ExistsSubQuery_SingleScheduleMappingList() { - return _userId_ExistsSubQuery_SingleScheduleMappingListMap; - } - - public String keepUserId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_userId_ExistsSubQuery_SingleScheduleMappingListMap == null) { - _userId_ExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_ExistsSubQuery_SingleScheduleMappingListMap.size() + 1); - _userId_ExistsSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "userId_ExistsSubQuery_SingleScheduleMappingList." + key; - } - protected Map _userId_NotExistsSubQuery_GroupMappingListMap; public Map getUserId_NotExistsSubQuery_GroupMappingList() { @@ -333,44 +296,23 @@ return "userId_NotExistsSubQuery_RoleMappingList." + key; } - protected Map _userId_NotExistsSubQuery_RoutineScheduleMappingListMap; + protected Map _userId_DeriveSubQuery_EventScheduleMappingListMap; - public Map getUserId_NotExistsSubQuery_RoutineScheduleMappingList() { - return _userId_NotExistsSubQuery_RoutineScheduleMappingListMap; + public Map getUserId_DeriveSubQuery_EventScheduleMappingList() { + return _userId_DeriveSubQuery_EventScheduleMappingListMap; } - public String keepUserId_NotExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_userId_NotExistsSubQuery_RoutineScheduleMappingListMap == null) { - _userId_NotExistsSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); + public String keepUserId_DeriveSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + if (_userId_DeriveSubQuery_EventScheduleMappingListMap == null) { + _userId_DeriveSubQuery_EventScheduleMappingListMap = newLinkedHashMap(); } String key = "subQueryMapKey" - + (_userId_NotExistsSubQuery_RoutineScheduleMappingListMap - .size() + 1); - _userId_NotExistsSubQuery_RoutineScheduleMappingListMap.put(key, - subQuery); - return "userId_NotExistsSubQuery_RoutineScheduleMappingList." + key; + + (_userId_DeriveSubQuery_EventScheduleMappingListMap.size() + 1); + _userId_DeriveSubQuery_EventScheduleMappingListMap.put(key, subQuery); + return "userId_DeriveSubQuery_EventScheduleMappingList." + key; } - protected Map _userId_NotExistsSubQuery_SingleScheduleMappingListMap; - - public Map getUserId_NotExistsSubQuery_SingleScheduleMappingList() { - return _userId_NotExistsSubQuery_SingleScheduleMappingListMap; - } - - public String keepUserId_NotExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_userId_NotExistsSubQuery_SingleScheduleMappingListMap == null) { - _userId_NotExistsSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_NotExistsSubQuery_SingleScheduleMappingListMap - .size() + 1); - _userId_NotExistsSubQuery_SingleScheduleMappingListMap.put(key, - subQuery); - return "userId_NotExistsSubQuery_SingleScheduleMappingList." + key; - } - protected Map _userId_DeriveSubQuery_GroupMappingListMap; public Map getUserId_DeriveSubQuery_GroupMappingList() { @@ -405,40 +347,6 @@ return "userId_DeriveSubQuery_RoleMappingList." + key; } - protected Map _userId_DeriveSubQuery_RoutineScheduleMappingListMap; - - public Map getUserId_DeriveSubQuery_RoutineScheduleMappingList() { - return _userId_DeriveSubQuery_RoutineScheduleMappingListMap; - } - - public String keepUserId_DeriveSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - if (_userId_DeriveSubQuery_RoutineScheduleMappingListMap == null) { - _userId_DeriveSubQuery_RoutineScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_DeriveSubQuery_RoutineScheduleMappingListMap.size() + 1); - _userId_DeriveSubQuery_RoutineScheduleMappingListMap.put(key, subQuery); - return "userId_DeriveSubQuery_RoutineScheduleMappingList." + key; - } - - protected Map _userId_DeriveSubQuery_SingleScheduleMappingListMap; - - public Map getUserId_DeriveSubQuery_SingleScheduleMappingList() { - return _userId_DeriveSubQuery_SingleScheduleMappingListMap; - } - - public String keepUserId_DeriveSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - if (_userId_DeriveSubQuery_SingleScheduleMappingListMap == null) { - _userId_DeriveSubQuery_SingleScheduleMappingListMap = newLinkedHashMap(); - } - String key = "subQueryMapKey" - + (_userId_DeriveSubQuery_SingleScheduleMappingListMap.size() + 1); - _userId_DeriveSubQuery_SingleScheduleMappingListMap.put(key, subQuery); - return "userId_DeriveSubQuery_SingleScheduleMappingList." + key; - } - public BsUserInfoCQ addOrderBy_UserId_Asc() { regOBA("USER_ID"); return this; Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,214 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsEventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleCQ; + +/** + * The condition-inline-query of EVENT_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleCIQ extends AbstractBsEventScheduleCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsEventScheduleCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public EventScheduleCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsEventScheduleCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_EventScheduleContentAsOne(subQuery); + } + + public String keepId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_EventScheduleMappingList(subQuery); + } + + public String keepId_NotInScopeSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_EventScheduleContentAsOne(subQuery); + } + + public String keepId_NotInScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_EventScheduleMappingList(subQuery); + } + + public String keepId_ExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_EventScheduleContentAsOne( + EventScheduleContentCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueTitle() { + return _myCQ.getTitle(); + } + + protected ConditionValue getCValueLocation() { + return _myCQ.getLocation(); + } + + protected ConditionValue getCValueStartDate() { + return _myCQ.getStartDate(); + } + + protected ConditionValue getCValueStartTime() { + return _myCQ.getStartTime(); + } + + protected ConditionValue getCValueEndDate() { + return _myCQ.getEndDate(); + } + + protected ConditionValue getCValueEndTime() { + return _myCQ.getEndTime(); + } + + protected ConditionValue getCValueSecret() { + return _myCQ.getSecret(); + } + + protected ConditionValue getCValueType() { + return _myCQ.getType(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleContentCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleContentCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleContentCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,110 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsEventScheduleContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleContentCQ; + +/** + * The condition-inline-query of EVENT_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContentCIQ extends AbstractBsEventScheduleContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsEventScheduleContentCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public EventScheduleContentCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsEventScheduleContentCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_EventSchedule(EventScheduleCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_EventSchedule(subQuery); + } + + protected ConditionValue getCValueContent() { + return _myCQ.getContent(); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleContentCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleMappingCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleMappingCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,120 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsEventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleMappingCQ; + +/** + * The condition-inline-query of EVENT_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMappingCIQ extends AbstractBsEventScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsEventScheduleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public EventScheduleMappingCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsEventScheduleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueScheduleId() { + return _myCQ.getScheduleId(); + } + + public String keepScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery) { + return _myCQ.keepScheduleId_InScopeSubQuery_EventSchedule(subQuery); + } + + protected ConditionValue getCValueUserId() { + return _myCQ.getUserId(); + } + + public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { + return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return EventScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,216 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.ciq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleCQ; - -/** - * The condition-inline-query of ROUTINE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleCIQ extends AbstractBsRoutineScheduleCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsRoutineScheduleCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public RoutineScheduleCIQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel, BsRoutineScheduleCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - public String keepId_InScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - return _myCQ - .keepId_InScopeSubQuery_RoutineScheduleContentAsOne(subQuery); - } - - public String keepId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - return _myCQ - .keepId_InScopeSubQuery_RoutineScheduleMappingList(subQuery); - } - - public String keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - return _myCQ - .keepId_NotInScopeSubQuery_RoutineScheduleContentAsOne(subQuery); - } - - public String keepId_NotInScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - return _myCQ - .keepId_NotInScopeSubQuery_RoutineScheduleMappingList(subQuery); - } - - public String keepId_ExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_NotExistsSubQuery_RoutineScheduleContentAsOne( - RoutineScheduleContentCQ subQuery) { - throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_NotExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_DeriveSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "DeriveSubQuery at inline() is unsupported! Sorry!"); - } - - protected ConditionValue getCValueTitle() { - return _myCQ.getTitle(); - } - - protected ConditionValue getCValueLocation() { - return _myCQ.getLocation(); - } - - protected ConditionValue getCValueStartDate() { - return _myCQ.getStartDate(); - } - - protected ConditionValue getCValueStartTime() { - return _myCQ.getStartTime(); - } - - protected ConditionValue getCValueEndDate() { - return _myCQ.getEndDate(); - } - - protected ConditionValue getCValueEndTime() { - return _myCQ.getEndTime(); - } - - protected ConditionValue getCValueSecret() { - return _myCQ.getSecret(); - } - - protected ConditionValue getCValueType() { - return _myCQ.getType(); - } - - protected ConditionValue getCValueCreatedTime() { - return _myCQ.getCreatedTime(); - } - - protected ConditionValue getCValueCreatedBy() { - return _myCQ.getCreatedBy(); - } - - protected ConditionValue getCValueUpdatedTime() { - return _myCQ.getUpdatedTime(); - } - - protected ConditionValue getCValueUpdatedBy() { - return _myCQ.getUpdatedBy(); - } - - protected ConditionValue getCValueDeletedTime() { - return _myCQ.getDeletedTime(); - } - - protected ConditionValue getCValueDeletedBy() { - return _myCQ.getDeletedBy(); - } - - protected ConditionValue getCValueVersionno() { - return _myCQ.getVersionno(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleContentCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,112 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.ciq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoutineScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleContentCQ; - -/** - * The condition-inline-query of ROUTINE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContentCIQ extends - AbstractBsRoutineScheduleContentCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsRoutineScheduleContentCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public RoutineScheduleContentCIQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel, - BsRoutineScheduleContentCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - public String keepId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ subQuery) { - return _myCQ.keepId_InScopeSubQuery_RoutineSchedule(subQuery); - } - - protected ConditionValue getCValueContent() { - return _myCQ.getContent(); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleContentCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/RoutineScheduleMappingCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,121 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.ciq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsRoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsRoutineScheduleMappingCQ; - -/** - * The condition-inline-query of ROUTINE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMappingCIQ extends - AbstractBsRoutineScheduleMappingCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsRoutineScheduleMappingCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public RoutineScheduleMappingCIQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel, - BsRoutineScheduleMappingCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - protected ConditionValue getCValueScheduleId() { - return _myCQ.getScheduleId(); - } - - public String keepScheduleId_InScopeSubQuery_RoutineSchedule( - RoutineScheduleCQ subQuery) { - return _myCQ.keepScheduleId_InScopeSubQuery_RoutineSchedule(subQuery); - } - - protected ConditionValue getCValueUserId() { - return _myCQ.getUserId(); - } - - public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { - return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); - } - - protected String getConditionQueryClassNameInternally() { - return RoutineScheduleMappingCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,211 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.ciq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsSingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleCQ; - -/** - * The condition-inline-query of SINGLE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleCIQ extends AbstractBsSingleScheduleCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsSingleScheduleCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public SingleScheduleCIQ(ConditionQuery childQuery, SqlClause sqlClause, - String aliasName, int nestLevel, BsSingleScheduleCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - public String keepId_InScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - return _myCQ - .keepId_InScopeSubQuery_SingleScheduleContentAsOne(subQuery); - } - - public String keepId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - return _myCQ.keepId_InScopeSubQuery_SingleScheduleMappingList(subQuery); - } - - public String keepId_NotInScopeSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - return _myCQ - .keepId_NotInScopeSubQuery_SingleScheduleContentAsOne(subQuery); - } - - public String keepId_NotInScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - return _myCQ - .keepId_NotInScopeSubQuery_SingleScheduleMappingList(subQuery); - } - - public String keepId_ExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_NotExistsSubQuery_SingleScheduleContentAsOne( - SingleScheduleContentCQ subQuery) { - throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_NotExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepId_DeriveSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "DeriveSubQuery at inline() is unsupported! Sorry!"); - } - - protected ConditionValue getCValueTitle() { - return _myCQ.getTitle(); - } - - protected ConditionValue getCValueLocation() { - return _myCQ.getLocation(); - } - - protected ConditionValue getCValueStartDate() { - return _myCQ.getStartDate(); - } - - protected ConditionValue getCValueStartTime() { - return _myCQ.getStartTime(); - } - - protected ConditionValue getCValueEndDate() { - return _myCQ.getEndDate(); - } - - protected ConditionValue getCValueEndTime() { - return _myCQ.getEndTime(); - } - - protected ConditionValue getCValueSecret() { - return _myCQ.getSecret(); - } - - protected ConditionValue getCValueCreatedTime() { - return _myCQ.getCreatedTime(); - } - - protected ConditionValue getCValueCreatedBy() { - return _myCQ.getCreatedBy(); - } - - protected ConditionValue getCValueUpdatedTime() { - return _myCQ.getUpdatedTime(); - } - - protected ConditionValue getCValueUpdatedBy() { - return _myCQ.getUpdatedBy(); - } - - protected ConditionValue getCValueDeletedTime() { - return _myCQ.getDeletedTime(); - } - - protected ConditionValue getCValueDeletedBy() { - return _myCQ.getDeletedBy(); - } - - protected ConditionValue getCValueVersionno() { - return _myCQ.getVersionno(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleContentCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,111 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.ciq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsSingleScheduleContentCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleContentCQ; - -/** - * The condition-inline-query of SINGLE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContentCIQ extends AbstractBsSingleScheduleContentCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsSingleScheduleContentCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public SingleScheduleContentCIQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel, - BsSingleScheduleContentCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - public String keepId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ subQuery) { - return _myCQ.keepId_InScopeSubQuery_SingleSchedule(subQuery); - } - - protected ConditionValue getCValueContent() { - return _myCQ.getContent(); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleContentCQ.class.getName(); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/SingleScheduleMappingCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,120 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.cq.ciq; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; -import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; -import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; -import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsSingleScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.bs.BsSingleScheduleMappingCQ; - -/** - * The condition-inline-query of SINGLE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMappingCIQ extends AbstractBsSingleScheduleMappingCQ { - - //========================================================================== - // ========= - // Attribute - // ========= - protected BsSingleScheduleMappingCQ _myCQ; - - //========================================================================== - // ========= - // Constructor - // =========== - public SingleScheduleMappingCIQ(ConditionQuery childQuery, - SqlClause sqlClause, String aliasName, int nestLevel, - BsSingleScheduleMappingCQ myCQ) { - super(childQuery, sqlClause, aliasName, nestLevel); - _myCQ = myCQ; - _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign - // property name. - _relationPath = _myCQ.getRelationPath();// Accept relation path. - } - - //========================================================================== - // ========= - // Override about Register - // ======================= - @Override - protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, - ConditionQuery unionQueryAsSuper) { - throw new UnsupportedOperationException( - "InlineQuery must not need UNION method: " + baseQueryAsSuper - + " : " + unionQueryAsSuper); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName); - } - - @Override - protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, - Object value, ConditionValue cvalue, String colName, - String capPropName, String uncapPropName, ConditionOption option) { - registerInlineQuery(key, value, cvalue, colName, capPropName, - uncapPropName, option); - } - - @Override - protected void registerWhereClause(String whereClause) { - registerInlineWhereClause(whereClause); - } - - @Override - protected String getInScopeSubQueryRealColumnName(String columnName) { - if (_onClauseInline) { - throw new UnsupportedOperationException( - "InScopeSubQuery of on-clause is unsupported"); - } - return _onClauseInline ? getRealAliasName() + "." + columnName - : columnName; - } - - @Override - protected void registerExistsSubQuery(ConditionQuery subQuery, - String columnName, String relatedColumnName, String propertyName) { - throw new UnsupportedOperationException( - "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); - } - - //========================================================================== - // ========= - // Override about Query - // ==================== - protected ConditionValue getCValueId() { - return _myCQ.getId(); - } - - protected ConditionValue getCValueScheduleId() { - return _myCQ.getScheduleId(); - } - - public String keepScheduleId_InScopeSubQuery_SingleSchedule( - SingleScheduleCQ subQuery) { - return _myCQ.keepScheduleId_InScopeSubQuery_SingleSchedule(subQuery); - } - - protected ConditionValue getCValueUserId() { - return _myCQ.getUserId(); - } - - public String keepUserId_InScopeSubQuery_UserInfo(UserInfoCQ subQuery) { - return _myCQ.keepUserId_InScopeSubQuery_UserInfo(subQuery); - } - - protected String getConditionQueryClassNameInternally() { - return SingleScheduleMappingCQ.class.getName(); - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -5,12 +5,11 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.GroupInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.GroupMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.RoleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.UserInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsUserInfoCQ; import jp.sf.pal.scheduler.db.cbean.cq.bs.BsUserInfoCQ; @@ -100,6 +99,12 @@ return _myCQ.getUserId(); } + public String keepUserId_InScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + return _myCQ + .keepUserId_InScopeSubQuery_EventScheduleMappingList(subQuery); + } + public String keepUserId_InScopeSubQuery_GroupMappingList( GroupMappingCQ subQuery) { return _myCQ.keepUserId_InScopeSubQuery_GroupMappingList(subQuery); @@ -110,18 +115,12 @@ return _myCQ.keepUserId_InScopeSubQuery_RoleMappingList(subQuery); } - public String keepUserId_InScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { + public String keepUserId_NotInScopeSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { return _myCQ - .keepUserId_InScopeSubQuery_RoutineScheduleMappingList(subQuery); + .keepUserId_NotInScopeSubQuery_EventScheduleMappingList(subQuery); } - public String keepUserId_InScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - return _myCQ - .keepUserId_InScopeSubQuery_SingleScheduleMappingList(subQuery); - } - public String keepUserId_NotInScopeSubQuery_GroupMappingList( GroupMappingCQ subQuery) { return _myCQ.keepUserId_NotInScopeSubQuery_GroupMappingList(subQuery); @@ -132,18 +131,12 @@ return _myCQ.keepUserId_NotInScopeSubQuery_RoleMappingList(subQuery); } - public String keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - return _myCQ - .keepUserId_NotInScopeSubQuery_RoutineScheduleMappingList(subQuery); + public String keepUserId_ExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); } - public String keepUserId_NotInScopeSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - return _myCQ - .keepUserId_NotInScopeSubQuery_SingleScheduleMappingList(subQuery); - } - public String keepUserId_ExistsSubQuery_GroupMappingList( GroupMappingCQ subQuery) { throw new UnsupportedOperationException( @@ -156,18 +149,12 @@ "ExistsSubQuery at inline() is unsupported! Sorry!"); } - public String keepUserId_ExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { + public String keepUserId_NotExistsSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); + "NotExistsSubQuery at inline() is unsupported! Sorry!"); } - public String keepUserId_ExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "ExistsSubQuery at inline() is unsupported! Sorry!"); - } - public String keepUserId_NotExistsSubQuery_GroupMappingList( GroupMappingCQ subQuery) { throw new UnsupportedOperationException( @@ -180,18 +167,12 @@ "NotExistsSubQuery at inline() is unsupported! Sorry!"); } - public String keepUserId_NotExistsSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { + public String keepUserId_DeriveSubQuery_EventScheduleMappingList( + EventScheduleMappingCQ subQuery) { throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); + "DeriveSubQuery at inline() is unsupported! Sorry!"); } - public String keepUserId_NotExistsSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "NotExistsSubQuery at inline() is unsupported! Sorry!"); - } - public String keepUserId_DeriveSubQuery_GroupMappingList( GroupMappingCQ subQuery) { throw new UnsupportedOperationException( @@ -204,18 +185,6 @@ "DeriveSubQuery at inline() is unsupported! Sorry!"); } - public String keepUserId_DeriveSubQuery_RoutineScheduleMappingList( - RoutineScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "DeriveSubQuery at inline() is unsupported! Sorry!"); - } - - public String keepUserId_DeriveSubQuery_SingleScheduleMappingList( - SingleScheduleMappingCQ subQuery) { - throw new UnsupportedOperationException( - "DeriveSubQuery at inline() is unsupported! Sorry!"); - } - protected ConditionValue getCValueGivenName() { return _myCQ.getGivenName(); } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleContentNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleContentNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleContentNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,41 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; + +/** + * The nest-select-setupper of EVENT_SCHEDULE_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContentNss { + + protected EventScheduleContentCQ _query; + + public EventScheduleContentNss(EventScheduleContentCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public EventScheduleNss withEventSchedule() { + _query.doNss(new EventScheduleContentCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryEventSchedule(); + } + }); + return new EventScheduleNss(_query.queryEventSchedule()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleContentNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleMappingNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleMappingNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; + +/** + * The nest-select-setupper of EVENT_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMappingNss { + + protected EventScheduleMappingCQ _query; + + public EventScheduleMappingNss(EventScheduleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public EventScheduleNss withEventSchedule() { + _query.doNss(new EventScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryEventSchedule(); + } + }); + return new EventScheduleNss(_query.queryEventSchedule()); + } + + public UserInfoNss withUserInfo() { + _query.doNss(new EventScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryUserInfo(); + } + }); + return new UserInfoNss(_query.queryUserInfo()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,42 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; + +/** + * The nest-select-setupper of EVENT_SCHEDULE. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleNss { + + protected EventScheduleCQ _query; + + public EventScheduleNss(EventScheduleCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== + public EventScheduleContentNss withEventScheduleContentAsOne() { + _query.doNss(new EventScheduleCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryEventScheduleContentAsOne(); + } + }); + return new EventScheduleContentNss(_query + .queryEventScheduleContentAsOne()); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/EventScheduleNss.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleContentNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,41 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.nss; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleContentCQ; - -/** - * The nest-select-setupper of ROUTINE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContentNss { - - protected RoutineScheduleContentCQ _query; - - public RoutineScheduleContentNss(RoutineScheduleContentCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - public RoutineScheduleNss withRoutineSchedule() { - _query.doNss(new RoutineScheduleContentCQ.NssCall() { - public ConditionQuery qf() { - return _query.queryRoutineSchedule(); - } - }); - return new RoutineScheduleNss(_query.queryRoutineSchedule()); - } - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleMappingNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,50 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.nss; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleMappingCQ; - -/** - * The nest-select-setupper of ROUTINE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMappingNss { - - protected RoutineScheduleMappingCQ _query; - - public RoutineScheduleMappingNss(RoutineScheduleMappingCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - public RoutineScheduleNss withRoutineSchedule() { - _query.doNss(new RoutineScheduleMappingCQ.NssCall() { - public ConditionQuery qf() { - return _query.queryRoutineSchedule(); - } - }); - return new RoutineScheduleNss(_query.queryRoutineSchedule()); - } - - public UserInfoNss withUserInfo() { - _query.doNss(new RoutineScheduleMappingCQ.NssCall() { - public ConditionQuery qf() { - return _query.queryUserInfo(); - } - }); - return new UserInfoNss(_query.queryUserInfo()); - } - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/RoutineScheduleNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,42 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.nss; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.cbean.cq.RoutineScheduleCQ; - -/** - * The nest-select-setupper of ROUTINE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleNss { - - protected RoutineScheduleCQ _query; - - public RoutineScheduleNss(RoutineScheduleCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== - public RoutineScheduleContentNss withRoutineScheduleContentAsOne() { - _query.doNss(new RoutineScheduleCQ.NssCall() { - public ConditionQuery qf() { - return _query.queryRoutineScheduleContentAsOne(); - } - }); - return new RoutineScheduleContentNss(_query - .queryRoutineScheduleContentAsOne()); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleContentNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,41 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.nss; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleContentCQ; - -/** - * The nest-select-setupper of SINGLE_SCHEDULE_CONTENT. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContentNss { - - protected SingleScheduleContentCQ _query; - - public SingleScheduleContentNss(SingleScheduleContentCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - public SingleScheduleNss withSingleSchedule() { - _query.doNss(new SingleScheduleContentCQ.NssCall() { - public ConditionQuery qf() { - return _query.querySingleSchedule(); - } - }); - return new SingleScheduleNss(_query.querySingleSchedule()); - } - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleMappingNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,50 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.nss; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleMappingCQ; - -/** - * The nest-select-setupper of SINGLE_SCHEDULE_MAPPING. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMappingNss { - - protected SingleScheduleMappingCQ _query; - - public SingleScheduleMappingNss(SingleScheduleMappingCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - public SingleScheduleNss withSingleSchedule() { - _query.doNss(new SingleScheduleMappingCQ.NssCall() { - public ConditionQuery qf() { - return _query.querySingleSchedule(); - } - }); - return new SingleScheduleNss(_query.querySingleSchedule()); - } - - public UserInfoNss withUserInfo() { - _query.doNss(new SingleScheduleMappingCQ.NssCall() { - public ConditionQuery qf() { - return _query.queryUserInfo(); - } - }); - return new UserInfoNss(_query.queryUserInfo()); - } - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/SingleScheduleNss.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,42 +0,0 @@ -package jp.sf.pal.scheduler.db.cbean.nss; - -import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; -import jp.sf.pal.scheduler.db.cbean.cq.SingleScheduleCQ; - -/** - * The nest-select-setupper of SINGLE_SCHEDULE. - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleNss { - - protected SingleScheduleCQ _query; - - public SingleScheduleNss(SingleScheduleCQ query) { - _query = query; - } - - public boolean hasConditionQuery() { - return _query != null; - } - - //========================================================================== - // ========= - // With Nested Foreign Table - // ========================= - - //========================================================================== - // ========= - // With Nested Referrer Table - // ========================== - public SingleScheduleContentNss withSingleScheduleContentAsOne() { - _query.doNss(new SingleScheduleCQ.NssCall() { - public ConditionQuery qf() { - return _query.querySingleScheduleContentAsOne(); - } - }); - return new SingleScheduleContentNss(_query - .querySingleScheduleContentAsOne()); - } -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of EVENT_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsEventScheduleBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleContentBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of EVENT_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContentBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsEventScheduleContentBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleMappingBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of EVENT_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMappingBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsEventScheduleMappingBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/EventScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exbhv; - -/** - * The behavior of ROUTINE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleBhv extends - jp.sf.pal.scheduler.db.bsbhv.BsRoutineScheduleBhv { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleContentBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exbhv; - -/** - * The behavior of ROUTINE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContentBhv extends - jp.sf.pal.scheduler.db.bsbhv.BsRoutineScheduleContentBhv { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/RoutineScheduleMappingBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exbhv; - -/** - * The behavior of ROUTINE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMappingBhv extends - jp.sf.pal.scheduler.db.bsbhv.BsRoutineScheduleMappingBhv { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exbhv; - -/** - * The behavior of SINGLE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleBhv extends - jp.sf.pal.scheduler.db.bsbhv.BsSingleScheduleBhv { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleContentBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exbhv; - -/** - * The behavior of SINGLE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContentBhv extends - jp.sf.pal.scheduler.db.bsbhv.BsSingleScheduleContentBhv { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/SingleScheduleMappingBhv.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exbhv; - -/** - * The behavior of SINGLE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMappingBhv extends - jp.sf.pal.scheduler.db.bsbhv.BsSingleScheduleMappingBhv { -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleContentDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of EVENT_SCHEDULE_CONTENT.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface EventScheduleContentDao extends + jp.sf.pal.scheduler.db.bsdao.BsEventScheduleContentDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of EVENT_SCHEDULE.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface EventScheduleDao extends + jp.sf.pal.scheduler.db.bsdao.BsEventScheduleDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleMappingDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of EVENT_SCHEDULE_MAPPING.
    + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface EventScheduleMappingDao extends + jp.sf.pal.scheduler.db.bsdao.BsEventScheduleMappingDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/EventScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleContentDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exdao; - -/** - * The dao interface of ROUTINE_SCHEDULE_CONTENT.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface RoutineScheduleContentDao extends - jp.sf.pal.scheduler.db.bsdao.BsRoutineScheduleContentDao { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exdao; - -/** - * The dao interface of ROUTINE_SCHEDULE.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface RoutineScheduleDao extends - jp.sf.pal.scheduler.db.bsdao.BsRoutineScheduleDao { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/RoutineScheduleMappingDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exdao; - -/** - * The dao interface of ROUTINE_SCHEDULE_MAPPING.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface RoutineScheduleMappingDao extends - jp.sf.pal.scheduler.db.bsdao.BsRoutineScheduleMappingDao { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleContentDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exdao; - -/** - * The dao interface of SINGLE_SCHEDULE_CONTENT.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface SingleScheduleContentDao extends - jp.sf.pal.scheduler.db.bsdao.BsSingleScheduleContentDao { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exdao; - -/** - * The dao interface of SINGLE_SCHEDULE.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface SingleScheduleDao extends - jp.sf.pal.scheduler.db.bsdao.BsSingleScheduleDao { -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/SingleScheduleMappingDao.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,15 +0,0 @@ -package jp.sf.pal.scheduler.db.exdao; - -/** - * The dao interface of SINGLE_SCHEDULE_MAPPING.
    - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public interface SingleScheduleMappingDao extends - jp.sf.pal.scheduler.db.bsdao.BsSingleScheduleMappingDao { -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,189 +1,75 @@ package jp.sf.pal.scheduler.db.exentity; -public interface EventSchedule { - public abstract String getContent(); +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; - public abstract void setContent(String content); +/** + * The entity of EVENT_SCHEDULE. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventSchedule extends + jp.sf.pal.scheduler.db.bsentity.BsEventSchedule { - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @return The value of the column 'ID'. (Nullable) - */ - public abstract Long getId(); + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; - /** - * ID: {PK : ID : NotNull : BIGINT}
    - * - * @param id The value of the column 'ID'. (Nullable) - */ - public abstract void setId(Long id); + public String getContent() { + if (getEventScheduleContentAsOne() != null) { + return getEventScheduleContentAsOne().getContent(); + } + return null; + } - /** - * TITLE: {NotNull : VARCHAR(100)}
    - * - * @return The value of the column 'TITLE'. (Nullable) - */ - public abstract String getTitle(); + public void setContent(String content) { + if (getEventScheduleContentAsOne() == null) { + setEventScheduleContentAsOne(new EventScheduleContent()); + } + getEventScheduleContentAsOne().setContent(content); + } - /** - * TITLE: {NotNull : VARCHAR(100)}
    - * - * @param title The value of the column 'TITLE'. (Nullable) - */ - public abstract void setTitle(String title); + public String[] getSelectedUsers() { + if (getEventScheduleMappingList() != null + && !getEventScheduleMappingList().isEmpty()) { + List list = new ArrayList(); + for (EventScheduleMapping ssm : getEventScheduleMappingList()) { + list.add(ssm.getUserId()); + } + return list.toArray(new String[0]); + } + return null; + } - /** - * LOCATION: {VARCHAR(100)}
    - * - * @return The value of the column 'LOCATION'. (Nullable) - */ - public abstract String getLocation(); - - /** - * LOCATION: {VARCHAR(100)}
    - * - * @param location The value of the column 'LOCATION'. (Nullable) - */ - public abstract void setLocation(String location); - - /** - * START_DATE: {NotNull : DATE}
    - * - * @return The value of the column 'START_DATE'. (Nullable) - */ - public abstract java.util.Date getStartDate(); - - /** - * START_DATE: {NotNull : DATE}
    - * - * @param startDate The value of the column 'START_DATE'. (Nullable) - */ - public abstract void setStartDate(java.util.Date startDate); - - /** - * START_TIME: {TIME}
    - * - * @return The value of the column 'START_TIME'. (Nullable) - */ - public abstract java.sql.Time getStartTime(); - - /** - * START_TIME: {TIME}
    - * - * @param startTime The value of the column 'START_TIME'. (Nullable) - */ - public abstract void setStartTime(java.sql.Time startTime); - - /** - * END_DATE: {NotNull : DATE}
    - * - * @return The value of the column 'END_DATE'. (Nullable) - */ - public abstract java.util.Date getEndDate(); - - /** - * END_DATE: {NotNull : DATE}
    - * - * @param endDate The value of the column 'END_DATE'. (Nullable) - */ - public abstract void setEndDate(java.util.Date endDate); - - /** - * END_TIME: {TIME}
    - * - * @return The value of the column 'END_TIME'. (Nullable) - */ - public abstract java.sql.Time getEndTime(); - - /** - * END_TIME: {TIME}
    - * - * @param endTime The value of the column 'END_TIME'. (Nullable) - */ - public abstract void setEndTime(java.sql.Time endTime); - - /** - * CREATED_TIME: {NotNull : TIMESTAMP}
    - * - * @return The value of the column 'CREATED_TIME'. (Nullable) - */ - public abstract java.sql.Timestamp getCreatedTime(); - - /** - * CREATED_TIME: {NotNull : TIMESTAMP}
    - * - * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) - */ - public abstract void setCreatedTime(java.sql.Timestamp createdTime); - - /** - * CREATED_BY: {NotNull : VARCHAR(255)}
    - * - * @return The value of the column 'CREATED_BY'. (Nullable) - */ - public abstract String getCreatedBy(); - - /** - * CREATED_BY: {NotNull : VARCHAR(255)}
    - * - * @param createdBy The value of the column 'CREATED_BY'. (Nullable) - */ - public abstract void setCreatedBy(String createdBy); - - /** - * UPDATED_TIME: {TIMESTAMP}
    - * - * @return The value of the column 'UPDATED_TIME'. (Nullable) - */ - public abstract java.sql.Timestamp getUpdatedTime(); - - /** - * UPDATED_TIME: {TIMESTAMP}
    - * - * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) - */ - public abstract void setUpdatedTime(java.sql.Timestamp updatedTime); - - /** - * UPDATED_BY: {VARCHAR(255)}
    - * - * @return The value of the column 'UPDATED_BY'. (Nullable) - */ - public abstract String getUpdatedBy(); - - /** - * UPDATED_BY: {VARCHAR(255)}
    - * - * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) - */ - public abstract void setUpdatedBy(String updatedBy); - - /** - * DELETED_TIME: {TIMESTAMP}
    - * - * @return The value of the column 'DELETED_TIME'. (Nullable) - */ - public abstract java.sql.Timestamp getDeletedTime(); - - /** - * DELETED_TIME: {TIMESTAMP}
    - * - * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) - */ - public abstract void setDeletedTime(java.sql.Timestamp deletedTime); - - /** - * DELETED_BY: {VARCHAR(255)}
    - * - * @return The value of the column 'DELETED_BY'. (Nullable) - */ - public abstract String getDeletedBy(); - - /** - * DELETED_BY: {VARCHAR(255)}
    - * - * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) - */ - public abstract void setDeletedBy(String deletedBy); -} \ No newline at end of file + public void setSelectedUsers(String[] users) { + if (users != null && getEventScheduleMappingList() != null) { + List userList = new LinkedList(); + for (String userId : users) { + userList.add(userId); + } + for (EventScheduleMapping ssm : getEventScheduleMappingList()) { + boolean delete = true; + for (String userId : userList) { + if (ssm.getUserId().equals(userId)) { + delete = false; + userList.remove(userId); + break; + } + } + if (delete) { + ssm.setDelete(true); + } + } + for (String userId : userList) { + EventScheduleMapping ssm = new EventScheduleMapping(); + ssm.setUserId(userId); + getEventScheduleMappingList().add(ssm); + } + } + } +} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleContent.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of EVENT_SCHEDULE_CONTENT. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleContent extends + jp.sf.pal.scheduler.db.bsentity.BsEventScheduleContent { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleMapping.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,28 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of EVENT_SCHEDULE_MAPPING. + *

    + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

    + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class EventScheduleMapping extends + jp.sf.pal.scheduler.db.bsentity.BsEventScheduleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + private boolean delete = false; + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineSchedule.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,76 +0,0 @@ -package jp.sf.pal.scheduler.db.exentity; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -/** - * The entity of ROUTINE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineSchedule extends - jp.sf.pal.scheduler.db.bsentity.BsRoutineSchedule implements - EventSchedule { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - public String getContent() { - if (getRoutineScheduleContentAsOne() != null) { - return getRoutineScheduleContentAsOne().getContent(); - } - return null; - } - - public void setContent(String content) { - if (getRoutineScheduleContentAsOne() == null) { - setRoutineScheduleContentAsOne(new RoutineScheduleContent()); - } - getRoutineScheduleContentAsOne().setContent(content); - } - - public String[] getSelectedUsers() { - if (getRoutineScheduleMappingList() != null - && !getRoutineScheduleMappingList().isEmpty()) { - List list = new ArrayList(); - for (RoutineScheduleMapping ssm : getRoutineScheduleMappingList()) { - list.add(ssm.getUserId()); - } - return list.toArray(new String[0]); - } - return null; - } - - public void setSelectedUsers(String[] users) { - if (users != null && getRoutineScheduleMappingList() != null) { - List userList = new LinkedList(); - for (String userId : users) { - userList.add(userId); - } - for (RoutineScheduleMapping ssm : getRoutineScheduleMappingList()) { - boolean delete = true; - for (String userId : userList) { - if (ssm.getUserId().equals(userId)) { - delete = false; - userList.remove(userId); - break; - } - } - if (delete) { - ssm.setDelete(true); - } - } - for (String userId : userList) { - RoutineScheduleMapping ssm = new RoutineScheduleMapping(); - ssm.setUserId(userId); - getRoutineScheduleMappingList().add(ssm); - } - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleContent.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,18 +0,0 @@ -package jp.sf.pal.scheduler.db.exentity; - -/** - * The entity of ROUTINE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleContent extends - jp.sf.pal.scheduler.db.bsentity.BsRoutineScheduleContent { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/RoutineScheduleMapping.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,28 +0,0 @@ -package jp.sf.pal.scheduler.db.exentity; - -/** - * The entity of ROUTINE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class RoutineScheduleMapping extends - jp.sf.pal.scheduler.db.bsentity.BsRoutineScheduleMapping { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - private boolean delete = false; - - public boolean isDelete() { - return delete; - } - - public void setDelete(boolean delete) { - this.delete = delete; - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleSchedule.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,76 +0,0 @@ -package jp.sf.pal.scheduler.db.exentity; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -/** - * The entity of SINGLE_SCHEDULE. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleSchedule extends - jp.sf.pal.scheduler.db.bsentity.BsSingleSchedule implements - EventSchedule { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - public String getContent() { - if (getSingleScheduleContentAsOne() != null) { - return getSingleScheduleContentAsOne().getContent(); - } - return null; - } - - public void setContent(String content) { - if (getSingleScheduleContentAsOne() == null) { - setSingleScheduleContentAsOne(new SingleScheduleContent()); - } - getSingleScheduleContentAsOne().setContent(content); - } - - public String[] getSelectedUsers() { - if (getSingleScheduleMappingList() != null - && !getSingleScheduleMappingList().isEmpty()) { - List list = new ArrayList(); - for (SingleScheduleMapping ssm : getSingleScheduleMappingList()) { - list.add(ssm.getUserId()); - } - return list.toArray(new String[0]); - } - return null; - } - - public void setSelectedUsers(String[] users) { - if (users != null && getSingleScheduleMappingList() != null) { - List userList = new LinkedList(); - for (String userId : users) { - userList.add(userId); - } - for (SingleScheduleMapping ssm : getSingleScheduleMappingList()) { - boolean delete = true; - for (String userId : userList) { - if (ssm.getUserId().equals(userId)) { - delete = false; - userList.remove(userId); - break; - } - } - if (delete) { - ssm.setDelete(true); - } - } - for (String userId : userList) { - SingleScheduleMapping ssm = new SingleScheduleMapping(); - ssm.setUserId(userId); - getSingleScheduleMappingList().add(ssm); - } - } - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleContent.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,18 +0,0 @@ -package jp.sf.pal.scheduler.db.exentity; - -/** - * The entity of SINGLE_SCHEDULE_CONTENT. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleContent extends - jp.sf.pal.scheduler.db.bsentity.BsSingleScheduleContent { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/SingleScheduleMapping.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,28 +0,0 @@ -package jp.sf.pal.scheduler.db.exentity; - -/** - * The entity of SINGLE_SCHEDULE_MAPPING. - *

    - * You can implement your original methods here. This class is NOT overrided - * when re-generating. - *

    - * - * @author DBFlute(AutoGenerator) - */ - ¡÷ SuppressWarnings("unchecked") -public class SingleScheduleMapping extends - jp.sf.pal.scheduler.db.bsentity.BsSingleScheduleMapping { - - /** Serial version UID. (Default) */ - private static final long serialVersionUID = 1L; - - private boolean delete = false; - - public boolean isDelete() { - return delete; - } - - public void setDelete(boolean delete) { - this.delete = delete; - } -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,111 @@ +package jp.sf.pal.scheduler.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.form.admin.OnetimeScheduleForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimePattern; + +public interface OnetimeScheduleDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromEventScheduleToForm(EventSchedule eventSchedule, + OnetimeScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToEventSchedule(OnetimeScheduleForm form, + EventSchedule eventSchedule); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromEventScheduleToForm(EventSchedule eventSchedule, + jp.sf.pal.scheduler.form.user.OnetimeScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToEventSchedule( + jp.sf.pal.scheduler.form.user.OnetimeScheduleForm form, + EventSchedule eventSchedule); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,111 @@ +package jp.sf.pal.scheduler.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.form.admin.RepeatScheduleForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.DatePattern; +import org.seasar.extension.dxo.annotation.ExcludeNull; +import org.seasar.extension.dxo.annotation.TimePattern; + +public interface RepeatScheduleDxo extends Serializable { + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromEventScheduleToForm(EventSchedule eventSchedule, + RepeatScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToEventSchedule(RepeatScheduleForm form, + EventSchedule eventSchedule); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromEventScheduleToForm(EventSchedule eventSchedule, + jp.sf.pal.scheduler.form.user.RepeatScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + ) + public void convertFromFormToEventSchedule( + jp.sf.pal.scheduler.form.user.RepeatScheduleForm form, + EventSchedule eventSchedule); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RoutineScheduleDxo.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,112 +0,0 @@ -package jp.sf.pal.scheduler.dxo; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.form.admin.RoutineScheduleForm; - -import org.seasar.extension.dxo.annotation.ConversionRule; -import org.seasar.extension.dxo.annotation.DatePattern; -import org.seasar.extension.dxo.annotation.ExcludeNull; -import org.seasar.extension.dxo.annotation.TimePattern; - -public interface RoutineScheduleDxo extends Serializable { - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule("id : id" // - + ", title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - + ", createdTime : createdTime" // - + ", createdBy : createdBy" // - + ", updatedTime : updatedTime" // - + ", updatedBy : updatedBy" // - + ", deletedTime : deletedTime" // - + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromRoutineScheduleToForm( - RoutineSchedule routineSchedule, RoutineScheduleForm form); - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule(// - "title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - // + ", createdTime : createdTime" // - // + ", createdBy : createdBy" // - // + ", updatedTime : updatedTime" // - // + ", updatedBy : updatedBy" // - // + ", deletedTime : deletedTime" // - // + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromFormToRoutineSchedule(RoutineScheduleForm form, - RoutineSchedule routineSchedule); - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule("id : id" // - + ", title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - + ", createdTime : createdTime" // - + ", createdBy : createdBy" // - + ", updatedTime : updatedTime" // - + ", updatedBy : updatedBy" // - + ", deletedTime : deletedTime" // - + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromRoutineScheduleToForm( - RoutineSchedule routineSchedule, - jp.sf.pal.scheduler.form.user.RoutineScheduleForm form); - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule(// - "title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - // + ", createdTime : createdTime" // - // + ", createdBy : createdBy" // - // + ", updatedTime : updatedTime" // - // + ", updatedBy : updatedBy" // - // + ", deletedTime : deletedTime" // - // + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromFormToRoutineSchedule( - jp.sf.pal.scheduler.form.user.RoutineScheduleForm form, - RoutineSchedule routineSchedule); -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/SingleScheduleDxo.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,111 +0,0 @@ -package jp.sf.pal.scheduler.dxo; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.form.admin.SingleScheduleForm; - -import org.seasar.extension.dxo.annotation.ConversionRule; -import org.seasar.extension.dxo.annotation.DatePattern; -import org.seasar.extension.dxo.annotation.ExcludeNull; -import org.seasar.extension.dxo.annotation.TimePattern; - -public interface SingleScheduleDxo extends Serializable { - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule("id : id" // - + ", title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - + ", createdTime : createdTime" // - + ", createdBy : createdBy" // - + ", updatedTime : updatedTime" // - + ", updatedBy : updatedBy" // - + ", deletedTime : deletedTime" // - + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromSingleScheduleToForm(EventSchedule singleSchedule, - SingleScheduleForm form); - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule(// - "title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - // + ", createdTime : createdTime" // - // + ", createdBy : createdBy" // - // + ", updatedTime : updatedTime" // - // + ", updatedBy : updatedBy" // - // + ", deletedTime : deletedTime" // - // + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromFormToSingleSchedule(SingleScheduleForm form, - EventSchedule singleSchedule); - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule("id : id" // - + ", title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - + ", createdTime : createdTime" // - + ", createdBy : createdBy" // - + ", updatedTime : updatedTime" // - + ", updatedBy : updatedBy" // - + ", deletedTime : deletedTime" // - + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromSingleScheduleToForm(EventSchedule singleSchedule, - jp.sf.pal.scheduler.form.user.SingleScheduleForm form); - - @ExcludeNull - @DatePattern("yyyy/MM/dd") - @TimePattern("HH:mm") - @ConversionRule(// - "title : title" // - + ", location : location" // - + ", startDate : startDate" // - + ", startTime : startTime" // - + ", endDate : endDate" // - + ", endTime : endTime" // - + ", secret : secret" // - // + ", createdTime : createdTime" // - // + ", createdBy : createdBy" // - // + ", updatedTime : updatedTime" // - // + ", updatedBy : updatedBy" // - // + ", deletedTime : deletedTime" // - // + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // - + ", content : content" // - + ", selectedUsers : selectedUsers" // - ) - public void convertFromFormToSingleSchedule( - jp.sf.pal.scheduler.form.user.SingleScheduleForm form, - EventSchedule singleSchedule); -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/ConfigForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -6,7 +6,7 @@ public class ConfigForm implements Serializable { - private static final long serialVersionUID = 2108115319030589706L; + private static final long serialVersionUID = -8652826957783721623L; @Required(target = "update") public String roleAvailable; Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,97 @@ +package jp.sf.pal.scheduler.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class OnetimeScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 3337888500823811168L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @Required(target = "confirm,create,update,delete") + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,101 @@ +package jp.sf.pal.scheduler.form.admin; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RepeatScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 7630330195098138706L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RoutineScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,101 +0,0 @@ -package jp.sf.pal.scheduler.form.admin; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; - -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class RoutineScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = 6969085674310253357L; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; - - public String startTime; - - @DateType - public String endDate; - - public String endTime; - - @Required - @Maxbytelength(maxbytelength = 1) - public String secret; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 10) - public String type; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; - type = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/SingleScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,97 +0,0 @@ -package jp.sf.pal.scheduler.form.admin; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; - -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class SingleScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = 6969085674310253357L; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; - - public String startTime; - - @Required(target = "confirm,create,update,delete") - @DateType - public String endDate; - - public String endTime; - - @Required - @Maxbytelength(maxbytelength = 1) - public String secret; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - } -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -11,7 +11,7 @@ public class CalendarForm implements Serializable { - private static final long serialVersionUID = 8620446294327855407L; + private static final long serialVersionUID = 1997153402576130079L; @Required(target = "selectpersonalmonth,movepersonalprevmonth,movepersonalnextmonth") @IntegerType Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,112 @@ +package jp.sf.pal.scheduler.form.user; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class OnetimeScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -3648751435246338787L; + + @Required + public String returnType; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @Required(target = "confirm,create,update,delete") + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,116 @@ +package jp.sf.pal.scheduler.form.user; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RepeatScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -2759046144118833141L; + + @Required + public String returnType; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RoutineScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,116 +0,0 @@ -package jp.sf.pal.scheduler.form.user; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; - -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class RoutineScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = 6969085674310253357L; - - @Required - public String returnType; - - @Required - @IntegerType - public String year; - - @Required - @IntegerType - public String month; - - @Required - @IntegerType - public String date; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; - - public String startTime; - - @DateType - public String endDate; - - public String endTime; - - @Required - @Maxbytelength(maxbytelength = 1) - public String secret; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 10) - public String type; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; - type = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/SingleScheduleForm.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,112 +0,0 @@ -package jp.sf.pal.scheduler.form.user; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; - -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class SingleScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = 6969085674310253357L; - - @Required - public String returnType; - - @Required - @IntegerType - public String year; - - @Required - @IntegerType - public String month; - - @Required - @IntegerType - public String date; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; - - public String startTime; - - @Required(target = "confirm,create,update,delete") - @DateType - public String endDate; - - public String endTime; - - @Required - @Maxbytelength(maxbytelength = 1) - public String secret; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - } -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/OnetimeSchedulePager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/OnetimeSchedulePager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/OnetimeSchedulePager.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.pager; + +import jp.sf.pal.scheduler.common.pager.DefaultPager; + +public class OnetimeSchedulePager extends DefaultPager { + + private static final long serialVersionUID = 3196586044367032054L; + + public OnetimeSchedulePager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/OnetimeSchedulePager.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RepeatSchedulePager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RepeatSchedulePager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RepeatSchedulePager.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.pager; + +import jp.sf.pal.scheduler.common.pager.DefaultPager; + +public class RepeatSchedulePager extends DefaultPager { + + private static final long serialVersionUID = 3417835424826481941L; + + public RepeatSchedulePager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RepeatSchedulePager.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/RoutineSchedulePager.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,21 +0,0 @@ -package jp.sf.pal.scheduler.pager; - -import jp.sf.pal.scheduler.common.pager.DefaultPager; - -public class RoutineSchedulePager extends DefaultPager { - - private static final long serialVersionUID = 208357552837282806L; - - public RoutineSchedulePager() { - - } - - public void clear() { - super.clear(); - } - - protected int getDefaultPageSize() { - return 50; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/SingleSchedulePager.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,21 +0,0 @@ -package jp.sf.pal.scheduler.pager; - -import jp.sf.pal.scheduler.common.pager.DefaultPager; - -public class SingleSchedulePager extends DefaultPager { - - private static final long serialVersionUID = 208357552837282806L; - - public SingleSchedulePager() { - - } - - public void clear() { - super.clear(); - } - - protected int getDefaultPageSize() { - return 50; - } - -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,200 @@ +package jp.sf.pal.scheduler.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleBhv; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleContentBhv; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class OnetimeScheduleService implements Serializable { + + private static final long serialVersionUID = 8675633065293522816L; + + private transient EventScheduleBhv eventScheduleBhv; + + private transient EventScheduleContentBhv eventScheduleContentBhv; + + private transient EventScheduleMappingBhv eventScheduleMappingBhv; + + private PagerDxo pagerDxo; + + public List getPersonalScheduleMappingList( + String userId, Date fromDate, Date toDate) { + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + + // setup + cb.setupSelect_EventSchedule(); + + cb.query().setUserId_Equal(userId); + cb.query().queryEventSchedule().setDeletedBy_IsNull(); + cb.query().queryEventSchedule().setStartDate_LessEqual(toDate); + cb.query().queryEventSchedule().setEndDate_GreaterEqual(fromDate); + cb.query().queryEventSchedule().setType_Equal( + SchedulerConstants.ONETIME_SCHEDULE); + + cb.query().queryEventSchedule().addOrderBy_StartDate_Asc(); + + return eventScheduleMappingBhv.selectList(cb); + } + + public List getEventScheduleList( + OnetimeSchedulePager onetimeSchedulePager, String userId) { + + HotdeployUtil.rebuildValue(onetimeSchedulePager); + + EventScheduleCB cb = new EventScheduleCB(); + + cb.fetchFirst(onetimeSchedulePager.getPageSize()); + cb.fetchPage(onetimeSchedulePager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setType_Equal(SchedulerConstants.ONETIME_SCHEDULE); + + cb.query().addOrderBy_StartDate_Desc(); + + PagingResultBean groupInfoList = eventScheduleBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), + onetimeSchedulePager); + groupInfoList.setPageRangeSize(5); + onetimeSchedulePager.setPageNumberList(groupInfoList.pageRange() + .createPageNumberList()); + + return groupInfoList; + } + + public EventSchedule getEventSchedule(Long id, String userid) { + EventScheduleCB cb = new EventScheduleCB(); + + // setup + cb.setupSelect_EventScheduleContentAsOne(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + cb.query().setType_Equal(SchedulerConstants.ONETIME_SCHEDULE); + EventSchedule eventSchedule = eventScheduleBhv.selectEntity(cb); + if (eventSchedule == null) { + return null; + } + + EventScheduleMappingCB cb2 = new EventScheduleMappingCB(); + cb2.query().setScheduleId_Equal(id); + eventSchedule.setEventScheduleMappingList(eventScheduleMappingBhv + .selectList(cb2)); + return eventSchedule; + } + + public void store(EventSchedule eventSchedule) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + eventSchedule.setUpdatedTime(now); + eventSchedule.setType(SchedulerConstants.ONETIME_SCHEDULE); + + EventScheduleContent ssc = eventSchedule.getEventScheduleContentAsOne(); + + if (eventSchedule.getCreatedTime() == null) { + // create + eventSchedule.setCreatedTime(now); + eventScheduleBhv.insert(eventSchedule); + + if (ssc != null) { + ssc.setId(eventSchedule.getId()); + eventScheduleContentBhv.insert(ssc); + } + } else { + // update + eventScheduleBhv.update(eventSchedule); + + if (ssc != null) { + if (ssc.getId() == null) { + ssc.setId(eventSchedule.getId()); + } + eventScheduleContentBhv.insertOrUpdate(ssc); + } + } + + // mapping + List ssmList = eventSchedule + .getEventScheduleMappingList(); + if (ssmList != null) { + for (EventScheduleMapping ssm : ssmList) { + if (ssm.isDelete()) { + // delete + eventScheduleMappingBhv.delete(ssm); + } else if (ssm.getId() == null) { + // create + ssm.setScheduleId(eventSchedule.getId()); + eventScheduleMappingBhv.insert(ssm); + } + } + } + } + + public void disable(Long id, String name) { + // not delete + EventScheduleCB cb = new EventScheduleCB(); + + cb.query().setId_Equal(id); + cb.query().setType_Equal(SchedulerConstants.ONETIME_SCHEDULE); + EventSchedule groupInfo = eventScheduleBhv.selectEntity(cb); + + // TODO throw an exception + + groupInfo.setDeletedBy(name); + groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); + eventScheduleBhv.update(groupInfo); + } + + public EventScheduleBhv getEventScheduleBhv() { + return eventScheduleBhv; + } + + public void setEventScheduleBhv(EventScheduleBhv messageBhv) { + this.eventScheduleBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public EventScheduleMappingBhv getEventScheduleMappingBhv() { + return eventScheduleMappingBhv; + } + + public void setEventScheduleMappingBhv( + EventScheduleMappingBhv eventScheduleMappingBhv) { + this.eventScheduleMappingBhv = eventScheduleMappingBhv; + } + + public EventScheduleContentBhv getEventScheduleContentBhv() { + return eventScheduleContentBhv; + } + + public void setEventScheduleContentBhv( + EventScheduleContentBhv eventScheduleContentBhv) { + this.eventScheduleContentBhv = eventScheduleContentBhv; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -0,0 +1,211 @@ +package jp.sf.pal.scheduler.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleBhv; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleContentBhv; +import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.pager.RepeatSchedulePager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class RepeatScheduleService implements Serializable { + + private static final long serialVersionUID = 8451033131320325847L; + + private transient EventScheduleBhv eventScheduleBhv; + + private transient EventScheduleContentBhv eventScheduleContentBhv; + + private transient EventScheduleMappingBhv eventScheduleMappingBhv; + + private PagerDxo pagerDxo; + + public List getPersonalScheduleMappingList( + final String userId, final Date fromDate, final Date toDate) { + EventScheduleMappingCB cb = new EventScheduleMappingCB(); + + // setup + cb.setupSelect_EventSchedule(); + + cb.query().setUserId_Equal(userId); + cb.query().queryEventSchedule().setDeletedBy_IsNull(); + cb.query().queryEventSchedule().setStartDate_LessEqual(toDate); + cb.query().queryEventSchedule().setEndDate_GreaterEqual(fromDate); + cb.query().queryEventSchedule().setType_NotEqual( + SchedulerConstants.ONETIME_SCHEDULE); + cb.unionAll(new UnionQuery() { + public void query(EventScheduleMappingCB unionCB) { + unionCB.query().setUserId_Equal(userId); + unionCB.query().queryEventSchedule().setDeletedBy_IsNull(); + unionCB.query().queryEventSchedule().setStartDate_LessEqual( + toDate); + unionCB.query().queryEventSchedule().setEndDate_IsNull(); + unionCB.query().queryEventSchedule().setType_NotEqual( + SchedulerConstants.ONETIME_SCHEDULE); + unionCB.query().queryEventSchedule().addOrderBy_StartDate_Asc(); + } + }); + cb.query().queryEventSchedule().addOrderBy_StartDate_Asc(); + + return eventScheduleMappingBhv.selectList(cb); + } + + public List getEventScheduleList( + RepeatSchedulePager repeatSchedulePager, String userId) { + + HotdeployUtil.rebuildValue(repeatSchedulePager); + + EventScheduleCB cb = new EventScheduleCB(); + + cb.fetchFirst(repeatSchedulePager.getPageSize()); + cb.fetchPage(repeatSchedulePager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setType_NotEqual(SchedulerConstants.ONETIME_SCHEDULE); + + cb.query().addOrderBy_StartDate_Desc(); + + PagingResultBean groupInfoList = eventScheduleBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), + repeatSchedulePager); + groupInfoList.setPageRangeSize(5); + repeatSchedulePager.setPageNumberList(groupInfoList.pageRange() + .createPageNumberList()); + + return groupInfoList; + } + + public EventSchedule getEventSchedule(Long id, String userid) { + EventScheduleCB cb = new EventScheduleCB(); + + // setup + cb.setupSelect_EventScheduleContentAsOne(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + cb.query().setType_NotEqual(SchedulerConstants.ONETIME_SCHEDULE); + EventSchedule eventSchedule = eventScheduleBhv.selectEntity(cb); + if (eventSchedule == null) { + return null; + } + + EventScheduleMappingCB cb2 = new EventScheduleMappingCB(); + cb2.query().setScheduleId_Equal(id); + eventSchedule.setEventScheduleMappingList(eventScheduleMappingBhv + .selectList(cb2)); + return eventSchedule; + } + + public void store(EventSchedule eventSchedule) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + eventSchedule.setUpdatedTime(now); + + EventScheduleContent ssc = eventSchedule.getEventScheduleContentAsOne(); + + if (eventSchedule.getCreatedTime() == null) { + // create + eventSchedule.setCreatedTime(now); + eventScheduleBhv.insert(eventSchedule); + + if (ssc != null) { + ssc.setId(eventSchedule.getId()); + eventScheduleContentBhv.insert(ssc); + } + } else { + // update + eventScheduleBhv.update(eventSchedule); + + if (ssc != null) { + if (ssc.getId() == null) { + ssc.setId(eventSchedule.getId()); + } + eventScheduleContentBhv.insertOrUpdate(ssc); + } + } + + // mapping + List ssmList = eventSchedule + .getEventScheduleMappingList(); + if (ssmList != null) { + for (EventScheduleMapping ssm : ssmList) { + if (ssm.isDelete()) { + // delete + eventScheduleMappingBhv.delete(ssm); + } else if (ssm.getId() == null) { + // create + ssm.setScheduleId(eventSchedule.getId()); + eventScheduleMappingBhv.insert(ssm); + } + } + } + } + + public void disable(Long id, String name) { + // not delete + EventScheduleCB cb = new EventScheduleCB(); + + cb.query().setId_Equal(id); + cb.query().setType_NotEqual(SchedulerConstants.ONETIME_SCHEDULE); + EventSchedule groupInfo = eventScheduleBhv.selectEntity(cb); + + // TODO throw an exception + + groupInfo.setDeletedBy(name); + groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); + eventScheduleBhv.update(groupInfo); + } + + public EventScheduleBhv getEventScheduleBhv() { + return eventScheduleBhv; + } + + public void setEventScheduleBhv(EventScheduleBhv messageBhv) { + this.eventScheduleBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public EventScheduleMappingBhv getEventScheduleMappingBhv() { + return eventScheduleMappingBhv; + } + + public void setEventScheduleMappingBhv( + EventScheduleMappingBhv eventScheduleMappingBhv) { + this.eventScheduleMappingBhv = eventScheduleMappingBhv; + } + + public EventScheduleContentBhv getEventScheduleContentBhv() { + return eventScheduleContentBhv; + } + + public void setEventScheduleContentBhv( + EventScheduleContentBhv eventScheduleContentBhv) { + this.eventScheduleContentBhv = eventScheduleContentBhv; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RoutineScheduleService.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,205 +0,0 @@ -package jp.sf.pal.scheduler.service; - -import java.io.Serializable; -import java.sql.Timestamp; -import java.util.Date; -import java.util.List; - -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleCB; -import jp.sf.pal.scheduler.db.cbean.RoutineScheduleMappingCB; -import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleBhv; -import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleContentBhv; -import jp.sf.pal.scheduler.db.exbhv.RoutineScheduleMappingBhv; -import jp.sf.pal.scheduler.db.exentity.RoutineSchedule; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleContent; -import jp.sf.pal.scheduler.db.exentity.RoutineScheduleMapping; -import jp.sf.pal.scheduler.pager.RoutineSchedulePager; - -import org.seasar.framework.container.hotdeploy.HotdeployUtil; - -public class RoutineScheduleService implements Serializable { - - private static final long serialVersionUID = 1L; - - private transient RoutineScheduleBhv routineScheduleBhv; - - private transient RoutineScheduleContentBhv routineScheduleContentBhv; - - private transient RoutineScheduleMappingBhv routineScheduleMappingBhv; - - private PagerDxo pagerDxo; - - public List getPersonalScheduleMappingList( - final String userId, final Date fromDate, final Date toDate) { - RoutineScheduleMappingCB cb = new RoutineScheduleMappingCB(); - - // setup - cb.setupSelect_RoutineSchedule(); - - cb.query().setUserId_Equal(userId); - cb.query().queryRoutineSchedule().setDeletedBy_IsNull(); - cb.query().queryRoutineSchedule().setStartDate_LessEqual(toDate); - cb.query().queryRoutineSchedule().setEndDate_GreaterEqual(fromDate); - cb.unionAll(new UnionQuery() { - public void query(RoutineScheduleMappingCB unionCB) { - unionCB.query().setUserId_Equal(userId); - unionCB.query().queryRoutineSchedule().setDeletedBy_IsNull(); - unionCB.query().queryRoutineSchedule().setStartDate_LessEqual( - toDate); - unionCB.query().queryRoutineSchedule().setEndDate_IsNull(); - unionCB.query().queryRoutineSchedule() - .addOrderBy_StartDate_Asc(); - } - }); - cb.query().queryRoutineSchedule().addOrderBy_StartDate_Asc(); - - return routineScheduleMappingBhv.selectList(cb); - } - - public List getRoutineScheduleList( - RoutineSchedulePager routineSchedulePager, String userId) { - - HotdeployUtil.rebuildValue(routineSchedulePager); - - RoutineScheduleCB cb = new RoutineScheduleCB(); - - cb.fetchFirst(routineSchedulePager.getPageSize()); - cb.fetchPage(routineSchedulePager.getCurrentPageNumber()); - - // setup - - cb.query().setDeletedBy_IsNull(); - - cb.query().addOrderBy_StartDate_Desc(); - - PagingResultBean groupInfoList = routineScheduleBhv - .selectPage(cb); - - // update pager - pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), - routineSchedulePager); - groupInfoList.setPageRangeSize(5); - routineSchedulePager.setPageNumberList(groupInfoList.pageRange() - .createPageNumberList()); - - return groupInfoList; - } - - public RoutineSchedule getRoutineSchedule(Long id, String userid) { - RoutineScheduleCB cb = new RoutineScheduleCB(); - - // setup - cb.setupSelect_RoutineScheduleContentAsOne(); - - cb.query().setDeletedBy_IsNull(); - cb.query().setId_Equal(id); - RoutineSchedule routineSchedule = routineScheduleBhv.selectEntity(cb); - if (routineSchedule == null) { - return null; - } - - RoutineScheduleMappingCB cb2 = new RoutineScheduleMappingCB(); - cb2.query().setScheduleId_Equal(id); - routineSchedule.setRoutineScheduleMappingList(routineScheduleMappingBhv - .selectList(cb2)); - return routineSchedule; - } - - public void store(RoutineSchedule routineSchedule) { - Timestamp now = new Timestamp(System.currentTimeMillis()); - routineSchedule.setUpdatedTime(now); - - RoutineScheduleContent ssc = routineSchedule - .getRoutineScheduleContentAsOne(); - - if (routineSchedule.getCreatedTime() == null) { - // create - routineSchedule.setCreatedTime(now); - routineScheduleBhv.insert(routineSchedule); - - if (ssc != null) { - ssc.setId(routineSchedule.getId()); - routineScheduleContentBhv.insert(ssc); - } - } else { - // update - routineScheduleBhv.update(routineSchedule); - - if (ssc != null) { - if (ssc.getId() == null) { - ssc.setId(routineSchedule.getId()); - } - routineScheduleContentBhv.insertOrUpdate(ssc); - } - } - - // mapping - List ssmList = routineSchedule - .getRoutineScheduleMappingList(); - if (ssmList != null) { - for (RoutineScheduleMapping ssm : ssmList) { - if (ssm.isDelete()) { - // delete - routineScheduleMappingBhv.delete(ssm); - } else if (ssm.getId() == null) { - // create - ssm.setScheduleId(routineSchedule.getId()); - routineScheduleMappingBhv.insert(ssm); - } - } - } - } - - public void disable(Long id, String name) { - // not delete - RoutineScheduleCB cb = new RoutineScheduleCB(); - - cb.query().setId_Equal(id); - RoutineSchedule groupInfo = routineScheduleBhv.selectEntity(cb); - - // TODO throw an exception - - groupInfo.setDeletedBy(name); - groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); - routineScheduleBhv.update(groupInfo); - } - - public RoutineScheduleBhv getRoutineScheduleBhv() { - return routineScheduleBhv; - } - - public void setRoutineScheduleBhv(RoutineScheduleBhv messageBhv) { - this.routineScheduleBhv = messageBhv; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public RoutineScheduleMappingBhv getRoutineScheduleMappingBhv() { - return routineScheduleMappingBhv; - } - - public void setRoutineScheduleMappingBhv( - RoutineScheduleMappingBhv routineScheduleMappingBhv) { - this.routineScheduleMappingBhv = routineScheduleMappingBhv; - } - - public RoutineScheduleContentBhv getRoutineScheduleContentBhv() { - return routineScheduleContentBhv; - } - - public void setRoutineScheduleContentBhv( - RoutineScheduleContentBhv routineScheduleContentBhv) { - this.routineScheduleContentBhv = routineScheduleContentBhv; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/SingleScheduleService.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,194 +0,0 @@ -package jp.sf.pal.scheduler.service; - -import java.io.Serializable; -import java.sql.Timestamp; -import java.util.Date; -import java.util.List; - -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; -import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleCB; -import jp.sf.pal.scheduler.db.cbean.SingleScheduleMappingCB; -import jp.sf.pal.scheduler.db.exbhv.SingleScheduleBhv; -import jp.sf.pal.scheduler.db.exbhv.SingleScheduleContentBhv; -import jp.sf.pal.scheduler.db.exbhv.SingleScheduleMappingBhv; -import jp.sf.pal.scheduler.db.exentity.SingleSchedule; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleContent; -import jp.sf.pal.scheduler.db.exentity.SingleScheduleMapping; -import jp.sf.pal.scheduler.pager.SingleSchedulePager; - -import org.seasar.framework.container.hotdeploy.HotdeployUtil; - -public class SingleScheduleService implements Serializable { - - private static final long serialVersionUID = 1L; - - private transient SingleScheduleBhv singleScheduleBhv; - - private transient SingleScheduleContentBhv singleScheduleContentBhv; - - private transient SingleScheduleMappingBhv singleScheduleMappingBhv; - - private PagerDxo pagerDxo; - - public List getPersonalScheduleMappingList( - String userId, Date fromDate, Date toDate) { - SingleScheduleMappingCB cb = new SingleScheduleMappingCB(); - - // setup - cb.setupSelect_SingleSchedule(); - - cb.query().setUserId_Equal(userId); - cb.query().querySingleSchedule().setDeletedBy_IsNull(); - cb.query().querySingleSchedule().setStartDate_LessEqual(toDate); - cb.query().querySingleSchedule().setEndDate_GreaterEqual(fromDate); - - cb.query().querySingleSchedule().addOrderBy_StartDate_Asc(); - - return singleScheduleMappingBhv.selectList(cb); - } - - public List getSingleScheduleList( - SingleSchedulePager singleSchedulePager, String userId) { - - HotdeployUtil.rebuildValue(singleSchedulePager); - - SingleScheduleCB cb = new SingleScheduleCB(); - - cb.fetchFirst(singleSchedulePager.getPageSize()); - cb.fetchPage(singleSchedulePager.getCurrentPageNumber()); - - // setup - - cb.query().setDeletedBy_IsNull(); - - cb.query().addOrderBy_StartDate_Desc(); - - PagingResultBean groupInfoList = singleScheduleBhv - .selectPage(cb); - - // update pager - pagerDxo.convert(new PagingResultBeanWrapper(groupInfoList), - singleSchedulePager); - groupInfoList.setPageRangeSize(5); - singleSchedulePager.setPageNumberList(groupInfoList.pageRange() - .createPageNumberList()); - - return groupInfoList; - } - - public SingleSchedule getSingleSchedule(Long id, String userid) { - SingleScheduleCB cb = new SingleScheduleCB(); - - // setup - cb.setupSelect_SingleScheduleContentAsOne(); - - cb.query().setDeletedBy_IsNull(); - cb.query().setId_Equal(id); - SingleSchedule singleSchedule = singleScheduleBhv.selectEntity(cb); - if (singleSchedule == null) { - return null; - } - - SingleScheduleMappingCB cb2 = new SingleScheduleMappingCB(); - cb2.query().setScheduleId_Equal(id); - singleSchedule.setSingleScheduleMappingList(singleScheduleMappingBhv - .selectList(cb2)); - return singleSchedule; - } - - public void store(SingleSchedule singleSchedule) { - Timestamp now = new Timestamp(System.currentTimeMillis()); - singleSchedule.setUpdatedTime(now); - - SingleScheduleContent ssc = singleSchedule - .getSingleScheduleContentAsOne(); - - if (singleSchedule.getCreatedTime() == null) { - // create - singleSchedule.setCreatedTime(now); - singleScheduleBhv.insert(singleSchedule); - - if (ssc != null) { - ssc.setId(singleSchedule.getId()); - singleScheduleContentBhv.insert(ssc); - } - } else { - // update - singleScheduleBhv.update(singleSchedule); - - if (ssc != null) { - if (ssc.getId() == null) { - ssc.setId(singleSchedule.getId()); - } - singleScheduleContentBhv.insertOrUpdate(ssc); - } - } - - // mapping - List ssmList = singleSchedule - .getSingleScheduleMappingList(); - if (ssmList != null) { - for (SingleScheduleMapping ssm : ssmList) { - if (ssm.isDelete()) { - // delete - singleScheduleMappingBhv.delete(ssm); - } else if (ssm.getId() == null) { - // create - ssm.setScheduleId(singleSchedule.getId()); - singleScheduleMappingBhv.insert(ssm); - } - } - } - } - - public void disable(Long id, String name) { - // not delete - SingleScheduleCB cb = new SingleScheduleCB(); - - cb.query().setId_Equal(id); - SingleSchedule groupInfo = singleScheduleBhv.selectEntity(cb); - - // TODO throw an exception - - groupInfo.setDeletedBy(name); - groupInfo.setDeletedTime(new Timestamp(new Date().getTime())); - singleScheduleBhv.update(groupInfo); - } - - public SingleScheduleBhv getSingleScheduleBhv() { - return singleScheduleBhv; - } - - public void setSingleScheduleBhv(SingleScheduleBhv messageBhv) { - this.singleScheduleBhv = messageBhv; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public SingleScheduleMappingBhv getSingleScheduleMappingBhv() { - return singleScheduleMappingBhv; - } - - public void setSingleScheduleMappingBhv( - SingleScheduleMappingBhv singleScheduleMappingBhv) { - this.singleScheduleMappingBhv = singleScheduleMappingBhv; - } - - public SingleScheduleContentBhv getSingleScheduleContentBhv() { - return singleScheduleContentBhv; - } - - public void setSingleScheduleContentBhv( - SingleScheduleContentBhv singleScheduleContentBhv) { - this.singleScheduleContentBhv = singleScheduleContentBhv; - } - -} Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-17 14:07:31 UTC (rev 1357) @@ -1,5 +1,6 @@ package jp.sf.pal.scheduler.service; +import java.io.Serializable; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; @@ -9,7 +10,10 @@ import jp.sf.pal.scheduler.db.exbhv.UserInfoBhv; import jp.sf.pal.scheduler.db.exentity.UserInfo; -public class UserInfoService { +public class UserInfoService implements Serializable { + + private static final long serialVersionUID = 8638255044858963846L; + private transient UserInfoBhv userInfoBhv; public void initUserInfo(String userId) { Modified: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-17 14:07:31 UTC (rev 1357) @@ -25,23 +25,16 @@ errors.url={0} is an invalid url (web address). success.update_config=Updated configuration. -success.create_singleSchedule=Created your event. -success.update_singleSchedule=Updated your event. -success.delete_singleSchedule=Deleted your event. -success.create_routineSchedule=Created your event. -success.update_routineSchedule=Updated your event. -success.delete_routineSchedule=Deleted your event. +success.create_eventSchedule=Created the event. +success.update_eventSchedule=Updated the event. +success.delete_eventSchedule=Deleted the event. errors.failed_to_update_config=Failed to update the configuration. errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). -errors.failed_to_create_singleSchedule=Failed to create a new event. -errors.failed_to_update_singleSchedule=Failed to update the event. -errors.failed_to_delete_singleSchedule=Failed to delete the event. -errors.could_not_find_singleSchedule=Could not find the event({0}). -errors.failed_to_create_routineSchedule=Failed to create a new event. -errors.failed_to_update_routineSchedule=Failed to update the event. -errors.failed_to_delete_routineSchedule=Failed to delete the event. -errors.could_not_find_routineSchedule=Could not find the event({0}). +errors.failed_to_create_eventSchedule=Failed to create a new event. +errors.failed_to_update_eventSchedule=Failed to update the event. +errors.failed_to_delete_eventSchedule=Failed to delete the event. +errors.could_not_find_eventSchedule=Could not find the event({0}). labels.detail=Detail labels.create=Create Modified: scheduler/trunk/src/main/resources/dbflute.dicon =================================================================== --- scheduler/trunk/src/main/resources/dbflute.dicon 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/resources/dbflute.dicon 2008-11-17 14:07:31 UTC (rev 1357) @@ -42,6 +42,24 @@ + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + dbflute.interceptor @@ -66,42 +84,6 @@ - - - dbflute.interceptor - - - - - - dbflute.interceptor - - - - - - dbflute.interceptor - - - - - - dbflute.interceptor - - - - - - dbflute.interceptor - - - - - - dbflute.interceptor - - - dbflute.interceptor Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-17 14:07:31 UTC (rev 1357) @@ -29,7 +29,7 @@ org.seasar.struts.portlet.SAStrutsPortlet viewPage - /admin/singleSchedule/ + /admin/onetimeSchedule/ 0 Copied: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule (from rev 1356, scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule) Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/confirm.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -12,7 +12,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/edit.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -12,7 +12,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/error.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -11,7 +11,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/singleSchedule/index.jsp 2008-11-17 09:09:12 UTC (rev 1356) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp 2008-11-17 14:07:31 UTC (rev 1357) @@ -12,7 +12,7 @@
  • One time
  • -
  • Repeats
  • +
  • Repeats
  • @@ -33,13 +33,13 @@
    ${f:h(ss.id)}${f:h(ss.title)}${f:h(event.id)}${f:h(event.title)} - - + +
    ${f:h(ss.id)}${f:h(ss.title)}${f:h(event.id)}${f:h(event.title)} - - + +
    +
    @@ -44,21 +44,87 @@ - + - - - Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-17 15:07:36 UTC (rev 1358) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-17 15:11:35 UTC (rev 1359) @@ -32,7 +32,7 @@
    -
    WhenWhen -From: - - + + + + + + + + + + + +
    From + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
    To + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
    -To: - - -
    Description
    +
    @@ -58,21 +58,90 @@ - + - - - From svnnotify ¡÷ sourceforge.jp Tue Nov 18 09:49:31 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 09:49:31 +0900 Subject: [pal-cvs 3625] [1360] i18ned display name, disabled config tool. Message-ID: <1226969371.163568.29633.nullmailer@users.sourceforge.jp> Revision: 1360 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1360 Author: shinsuke Date: 2008-11-18 09:49:30 +0900 (Tue, 18 Nov 2008) Log Message: ----------- i18ned display name, disabled config tool. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/application_ja.properties scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/UserInfo.java 2008-11-18 00:49:30 UTC (rev 1360) @@ -17,23 +17,31 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; - public String getDisplayName() { - // TODO i18n - StringBuilder buf = new StringBuilder(); - if (!StringUtils.isEmpty(getFamilyName())) { - buf.append(getFamilyName()); - } - if (!StringUtils.isEmpty(getFamilyName()) - && !StringUtils.isEmpty(getGivenName())) { - buf.append(" "); - } - if (!StringUtils.isEmpty(getGivenName())) { - buf.append(getGivenName()); - } - String displayName = buf.toString(); - if (StringUtils.isEmpty(displayName)) { + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { return getUserId(); } - return displayName; + return getGivenName() != null ? getGivenName() : ""; } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } } Modified: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-18 00:49:30 UTC (rev 1360) @@ -5,6 +5,11 @@ msg.header=
      msg.footer=
    +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. Modified: scheduler/trunk/src/main/resources/application_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/application_ja.properties 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/resources/application_ja.properties 2008-11-18 00:49:30 UTC (rev 1360) @@ -1,3 +1,8 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-18 00:49:30 UTC (rev 1360) @@ -1,5 +1,6 @@ + SchedulerManager Scheduler: Scheduler Manager Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -72,7 +72,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -73,7 +73,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -44,7 +44,7 @@ - ${f:h(u.displayName)} + @@ -69,7 +69,7 @@ - ${f:h(u.displayName)} + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -85,7 +85,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -87,7 +87,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -45,7 +45,7 @@ - ${f:h(u.displayName)} + @@ -70,7 +70,7 @@ - ${f:h(u.displayName)} + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -80,7 +80,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -147,7 +147,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -52,7 +52,7 @@ - ${f:h(u.displayName)} + @@ -77,7 +77,7 @@ - ${f:h(u.displayName)} + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -93,7 +93,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -164,7 +164,7 @@ - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-17 15:11:35 UTC (rev 1359) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-18 00:49:30 UTC (rev 1360) @@ -26,7 +26,7 @@
    - + @@ -53,7 +53,7 @@ - ${f:h(u.displayName)} + @@ -78,7 +78,7 @@ - ${f:h(u.displayName)} + From svnnotify ¡÷ sourceforge.jp Tue Nov 18 10:04:14 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 10:04:14 +0900 Subject: [pal-cvs 3626] [1361] i18ned display name. Message-ID: <1226970254.760201.11519.nullmailer@users.sourceforge.jp> Revision: 1361 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1361 Author: shinsuke Date: 2008-11-18 10:04:14 +0900 (Tue, 18 Nov 2008) Log Message: ----------- i18ned display name. Modified Paths: -------------- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/resources/application_ja.properties userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp -------------- next part -------------- Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java 2008-11-18 00:49:30 UTC (rev 1360) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java 2008-11-18 01:04:14 UTC (rev 1361) @@ -1,5 +1,7 @@ package jp.sf.pal.userinfo.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of USER_INFO. *

    @@ -14,4 +16,32 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } } Modified: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties 2008-11-18 00:49:30 UTC (rev 1360) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-18 01:04:14 UTC (rev 1361) @@ -5,6 +5,11 @@ msg.header=

      msg.footer=
    +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. @@ -88,6 +93,7 @@ labels.confirmation_of_user_info=Confirmation of User Info labels.user_id=User ID +labels.name=Name labels.given_name=Given Name labels.given_name_desc=Given Name (Reading) labels.family_name=Family Name Modified: userinfo/trunk/src/main/resources/application_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/application_ja.properties 2008-11-18 00:49:30 UTC (rev 1360) +++ userinfo/trunk/src/main/resources/application_ja.properties 2008-11-18 01:04:14 UTC (rev 1361) @@ -1,3 +1,8 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 @@ -81,6 +86,7 @@ labels.confirmation_of_user_info=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u767b\u9332 labels.user_id=\u30e6\u30fc\u30b6\u30fc ID +labels.name=\u540d\u524d labels.given_name=\u540d labels.given_name_desc=\u540d(\u3088\u307f) labels.family_name=\u59d3 Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-18 00:49:30 UTC (rev 1360) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-18 01:04:14 UTC (rev 1361) @@ -34,8 +34,7 @@
    - - + @@ -44,8 +43,7 @@ - - + - + - + - + + + + + - + + + + + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-18 05:48:03 UTC (rev 1363) @@ -92,12 +92,43 @@ + + + + @@ -105,12 +136,43 @@ + + + + Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp 2008-11-18 05:48:03 UTC (rev 1363) @@ -0,0 +1,115 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • + +
    • +
    • +
      + +
    • +
    • +
      +
    • +
    +
    + + +
    + + +
    + + + + + + + + + + + + + + + + + + ${f:u(u.roleId)} + + +
    +
    WhenWhen -From: - - + + + + + + + + + + + +
    From + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
    To + + + + ${f:h(v)} + + +/ + + + + ${f:h(v)} + + +/ + + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
    -To: - - -
    Description
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
    ${f:h(u.displayName)}
     
    ${f:h(u.userId)}${f:h(u.familyName)}${f:h(u.givenName)} ${f:h(u.email)} From svnnotify ¡÷ sourceforge.jp Tue Nov 18 13:50:50 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 13:50:50 +0900 Subject: [pal-cvs 3627] [1362] i18ned display name, and updated translation. Message-ID: <1226983850.081574.31375.nullmailer@users.sourceforge.jp> Revision: 1362 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1362 Author: shinsuke Date: 2008-11-18 13:50:49 +0900 (Tue, 18 Nov 2008) Log Message: ----------- i18ned display name, and updated translation. Modified Paths: -------------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java addresslist/trunk/src/main/resources/application.properties addresslist/trunk/src/main/resources/application_ja.properties addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp -------------- next part -------------- Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java 2008-11-18 01:04:14 UTC (rev 1361) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/Person.java 2008-11-18 04:50:49 UTC (rev 1362) @@ -3,6 +3,8 @@ import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang.StringUtils; + /** * The entity of PERSON. *

    @@ -405,4 +407,32 @@ newCustomList.add(custom4); return newCustomList; } + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java 2008-11-18 01:04:14 UTC (rev 1361) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/exentity/UserInfo.java 2008-11-18 04:50:49 UTC (rev 1362) @@ -1,5 +1,7 @@ package jp.sf.pal.addresslist.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of USER_INFO. *

    @@ -14,4 +16,32 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } } Modified: addresslist/trunk/src/main/resources/application.properties =================================================================== --- addresslist/trunk/src/main/resources/application.properties 2008-11-18 01:04:14 UTC (rev 1361) +++ addresslist/trunk/src/main/resources/application.properties 2008-11-18 04:50:49 UTC (rev 1362) @@ -5,6 +5,13 @@ msg.header=

      msg.footer=
    +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. @@ -68,7 +75,7 @@ labels.confirm_company_info=Confirm Company Info labels.name=Name -labels.name_desc=Name (Description) +labels.name_desc=Name (Phonetic) labels.department=Department labels.postal_code=Postal Code labels.state=State @@ -91,9 +98,9 @@ labels.address_info=Address Info labels.f_name=Family Name -labels.f_name_desc=Family Name (Description) +labels.f_name_desc=Family Name (Phonetic) labels.g_name=Given Name -labels.g_name_desc=Given Name (Description) +labels.g_name_desc=Given Name (Phonetic) labels.m_name=Middle name labels.name_prefix=Name Prefix labels.name_suffix=Name Suffix Modified: addresslist/trunk/src/main/resources/application_ja.properties =================================================================== --- addresslist/trunk/src/main/resources/application_ja.properties 2008-11-18 01:04:14 UTC (rev 1361) +++ addresslist/trunk/src/main/resources/application_ja.properties 2008-11-18 04:50:49 UTC (rev 1362) @@ -1,3 +1,10 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 @@ -61,7 +68,7 @@ labels.confirm_company_info=\u4f1a\u793e\u60c5\u5831 labels.name=\u540d\u524d -labels.name_desc=\u540d\u524d (\u8a73\u7d30) +labels.name_desc=\u540d\u524d (\u3088\u307f) labels.department=\u90e8\u7f72 labels.postal_code=\u90f5\u4fbf\u756a\u53f7 labels.state=\u90fd\u9053\u5e9c\u770c @@ -84,9 +91,9 @@ labels.address_info=\u500b\u4eba\u60c5\u5831 labels.f_name=\u59d3 -labels.f_name_desc=\u59d3 (\u8a73\u7d30) +labels.f_name_desc=\u59d3 (\u3088\u307f) labels.g_name=\u540d -labels.g_name_desc=\u540d (\u8a73\u7d30) +labels.g_name_desc=\u540d (\u3088\u307f) labels.m_name=\u30df\u30c9\u30eb\u30cd\u30fc\u30e0 labels.name_prefix=\u656c\u79f0 (\u524d) labels.name_suffix=\u656c\u79f0 (\u5f8c) Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-18 01:04:14 UTC (rev 1361) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-18 04:50:49 UTC (rev 1362) @@ -35,7 +35,7 @@
    ${f:h(p.familyName)} ${f:h(p.givenName)} ${f:h(p.company.name)} Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-18 01:04:14 UTC (rev 1361) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-18 04:50:49 UTC (rev 1362) @@ -35,7 +35,7 @@
    ${f:h(p.familyName)} ${f:h(p.givenName)} ${f:h(p.company.name)} From svnnotify ¡÷ sourceforge.jp Tue Nov 18 14:48:03 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 14:48:03 +0900 Subject: [pal-cvs 3628] [1363] select mulitiple groups/roles. Message-ID: <1226987283.498995.28259.nullmailer@users.sourceforge.jp> Revision: 1363 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1363 Author: shinsuke Date: 2008-11-18 14:48:03 +0900 (Tue, 18 Nov 2008) Log Message: ----------- select mulitiple groups/roles. Modified Paths: -------------- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/resources/application_ja.properties userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp Added Paths: ----------- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp -------------- next part -------------- Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -1,6 +1,7 @@ package jp.sf.pal.userinfo.action; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; @@ -249,6 +250,110 @@ } } + @Execute(validator = false, input = "error.jsp") + public String selectroles() { + return "rolelist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setroles() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addroles() { + List userList = new ArrayList(); + if (userInfoForm.selectedRoles != null) { + for (String userId : userInfoForm.selectedRoles) { + userList.add(userId); + } + } + if (userInfoForm.addedRoles != null) { + for (String userId : userInfoForm.addedRoles) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + userInfoForm.selectedRoles = userList.toArray(new String[0]); + } else { + userInfoForm.selectedRoles = null; + } + return "rolelist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeroles() { + List userList = new ArrayList(); + if (userInfoForm.selectedRoles != null) { + for (String userId : userInfoForm.selectedRoles) { + userList.add(userId); + } + } + if (userInfoForm.removedRoles != null) { + for (String userId : userInfoForm.removedRoles) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + userInfoForm.selectedRoles = userList.toArray(new String[0]); + } else { + userInfoForm.selectedRoles = null; + } + return "rolelist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String selectgroups() { + return "grouplist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setgroups() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addgroups() { + List userList = new ArrayList(); + if (userInfoForm.selectedGroups != null) { + for (String userId : userInfoForm.selectedGroups) { + userList.add(userId); + } + } + if (userInfoForm.addedGroups != null) { + for (String userId : userInfoForm.addedGroups) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + userInfoForm.selectedGroups = userList.toArray(new String[0]); + } else { + userInfoForm.selectedGroups = null; + } + return "grouplist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removegroups() { + List userList = new ArrayList(); + if (userInfoForm.selectedGroups != null) { + for (String userId : userInfoForm.selectedGroups) { + userList.add(userId); + } + } + if (userInfoForm.removedGroups != null) { + for (String userId : userInfoForm.removedGroups) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + userInfoForm.selectedGroups = userList.toArray(new String[0]); + } else { + userInfoForm.selectedGroups = null; + } + return "grouplist.jsp"; + } + private void loadUserInfo() { UserInfo userInfo = userInfoService.getUserInfo(userInfoForm.userId); @@ -299,6 +404,31 @@ return ConfigUtil.getBoolean(UserInfoConstants.GROUP_AVAILABLE, true); } + public List getAvailableRoleItems() { + return roleInfoService.getAvailableRoleList(userInfoForm.selectedRoles, + null); + } + + public List getSelectedRoleItems() { + if (userInfoForm.selectedRoles == null) { + return null; + } + return roleInfoService.getSelectedRoleList(userInfoForm.selectedRoles); + } + + public List getAvailableGroupItems() { + return groupInfoService.getAvailableGroupList( + userInfoForm.selectedGroups, null); + } + + public List getSelectedGroupItems() { + if (userInfoForm.selectedGroups == null) { + return null; + } + return groupInfoService + .getSelectedGroupList(userInfoForm.selectedGroups); + } + /** * @return the request */ Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -14,4 +14,14 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + private boolean delete = false; + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -14,4 +14,15 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + private boolean delete = false; + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } + } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -1,5 +1,9 @@ package jp.sf.pal.userinfo.db.exentity; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + import org.apache.commons.lang.StringUtils; /** @@ -44,4 +48,80 @@ public String getNameArg4() { return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; } + + public String[] getSelectedRoles() { + if (getRoleMappingList() != null && !getRoleMappingList().isEmpty()) { + List list = new ArrayList(); + for (RoleMapping mapping : getRoleMappingList()) { + list.add(mapping.getRoleId()); + } + return list.toArray(new String[0]); + } + return null; + } + + public void setSelectedRoles(String[] roles) { + if (roles != null && getRoleMappingList() != null) { + List roleList = new LinkedList(); + for (String roleId : roles) { + roleList.add(roleId); + } + for (RoleMapping mapping : getRoleMappingList()) { + boolean delete = true; + for (String roleId : roleList) { + if (mapping.getRoleId().equals(roleId)) { + delete = false; + roleList.remove(roleId); + break; + } + } + if (delete) { + mapping.setDelete(true); + } + } + for (String roleId : roleList) { + RoleMapping mapping = new RoleMapping(); + mapping.setRoleId(roleId); + getRoleMappingList().add(mapping); + } + } + } + + public String[] getSelectedGroups() { + if (getGroupMappingList() != null && !getGroupMappingList().isEmpty()) { + List list = new ArrayList(); + for (GroupMapping mapping : getGroupMappingList()) { + list.add(mapping.getGroupId()); + } + return list.toArray(new String[0]); + } + return null; + } + + public void setSelectedGroups(String[] groups) { + if (groups != null && getGroupMappingList() != null) { + List groupList = new LinkedList(); + for (String groupId : groups) { + groupList.add(groupId); + } + for (GroupMapping mapping : getGroupMappingList()) { + boolean delete = true; + for (String groupId : groupList) { + if (mapping.getGroupId().equals(groupId)) { + delete = false; + groupList.remove(groupId); + break; + } + } + if (delete) { + mapping.setDelete(true); + } + } + for (String groupId : groupList) { + GroupMapping mapping = new GroupMapping(); + mapping.setGroupId(groupId); + getGroupMappingList().add(mapping); + } + } + } } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -34,6 +34,8 @@ + ", deletedTime : deletedTime" // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // + + ", selectedRoles : selectedRoles" // + + ", selectedGroups : selectedGroups" // ) public void convertFromUserInfoToForm(UserInfo userInfo, UserInfoForm form); @@ -54,12 +56,14 @@ + ", roleId : roleId" // + ", groupId : groupId" // // + ", createdTime : createdTime" // - // + ", createdBy : createdBy" // - // + ", updatedTime : updatedTime" // - // + ", updatedBy : updatedBy" // - // + ", deletedTime : deletedTime" // - // + ", deletedBy : deletedBy" // - // + ", versionno : versionno" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", selectedRoles : selectedRoles" // + + ", selectedGroups : selectedGroups" // ) public void convertFromFormToUserInfo(UserInfoForm form, UserInfo userInfo); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -77,6 +77,18 @@ @Maxbytelength(maxbytelength = 255) public String deletedBy; + public String[] addedRoles; + + public String[] removedRoles; + + public String[] selectedRoles; + + public String[] addedGroups; + + public String[] removedGroups; + + public String[] selectedGroups; + @IntegerType public String pageNumber; @@ -101,5 +113,11 @@ updatedBy = null; deletedTime = null; deletedBy = null; + addedRoles = null; + removedRoles = null; + selectedRoles = null; + addedGroups = null; + removedGroups = null; + selectedGroups = null; } } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -2,6 +2,7 @@ import java.io.Serializable; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -99,6 +100,45 @@ groupInfoBhv.update(groupInfo); } + public List getAvailableGroupList(String[] selectedGroups, + String groupId) { + GroupInfoCB cb = new GroupInfoCB(); + + // setup + + if (groupId != null) { + cb.query().setGroupId_Equal(groupId); + } + if (selectedGroups != null) { + List excludedGroupIdList = new ArrayList(); + for (String uid : selectedGroups) { + excludedGroupIdList.add(uid); + } + cb.query().setGroupId_NotInScope(excludedGroupIdList); + } + cb.query().addOrderBy_GroupId_Asc(); + return groupInfoBhv.selectList(cb); + } + + public List getSelectedGroupList(String[] selectedGroups) { + GroupInfoCB cb = new GroupInfoCB(); + + // setup + + if (selectedGroups != null) { + List groupIdList = new ArrayList( + selectedGroups.length); + for (String groupId : selectedGroups) { + groupIdList.add(groupId); + } + cb.query().setGroupId_InScope(groupIdList); + } + + cb.query().addOrderBy_GroupId_Asc(); + + return groupInfoBhv.selectList(cb); + } + public GroupInfoBhv getGroupInfoBhv() { return groupInfoBhv; } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -2,6 +2,7 @@ import java.io.Serializable; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -98,6 +99,45 @@ roleInfoBhv.update(roleInfo); } + public List getAvailableRoleList(String[] selectedRoles, + String roleId) { + RoleInfoCB cb = new RoleInfoCB(); + + // setup + + if (roleId != null) { + cb.query().setRoleId_Equal(roleId); + } + if (selectedRoles != null) { + List excludedRoleIdList = new ArrayList(); + for (String uid : selectedRoles) { + excludedRoleIdList.add(uid); + } + cb.query().setRoleId_NotInScope(excludedRoleIdList); + } + cb.query().addOrderBy_RoleId_Asc(); + return roleInfoBhv.selectList(cb); + } + + public List getSelectedRoleList(String[] selectedRoles) { + RoleInfoCB cb = new RoleInfoCB(); + + // setup + + if (selectedRoles != null) { + List roleIdList = new ArrayList( + selectedRoles.length); + for (String roleId : selectedRoles) { + roleIdList.add(roleId); + } + cb.query().setRoleId_InScope(roleIdList); + } + + cb.query().addOrderBy_RoleId_Asc(); + + return roleInfoBhv.selectList(cb); + } + public RoleInfoBhv getRoleInfoBhv() { return roleInfoBhv; } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java 2008-11-18 05:48:03 UTC (rev 1363) @@ -8,8 +8,14 @@ import jp.sf.pal.userinfo.common.dxo.PagerDxo; import jp.sf.pal.userinfo.common.util.PagingResultBeanWrapper; import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.userinfo.db.cbean.GroupMappingCB; +import jp.sf.pal.userinfo.db.cbean.RoleMappingCB; import jp.sf.pal.userinfo.db.cbean.UserInfoCB; +import jp.sf.pal.userinfo.db.exbhv.GroupMappingBhv; +import jp.sf.pal.userinfo.db.exbhv.RoleMappingBhv; import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv; +import jp.sf.pal.userinfo.db.exentity.GroupMapping; +import jp.sf.pal.userinfo.db.exentity.RoleMapping; import jp.sf.pal.userinfo.db.exentity.UserInfo; import jp.sf.pal.userinfo.pager.UserInfoPager; @@ -22,6 +28,10 @@ private transient UserInfoBhv userInfoBhv; + private transient RoleMappingBhv roleMappingBhv; + + private transient GroupMappingBhv groupMappingBhv; + private PagerDxo pagerDxo; public List getUserInfoList(UserInfoPager userInfoPager) { @@ -58,7 +68,20 @@ cb.query().setDeletedBy_IsNull(); cb.query().setUserId_Equal(userId); - return userInfoBhv.selectEntity(cb); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + return null; + } + + RoleMappingCB cb2 = new RoleMappingCB(); + cb2.query().setUserId_Equal(userId); + userInfo.setRoleMappingList(roleMappingBhv.selectList(cb2)); + + GroupMappingCB cb3 = new GroupMappingCB(); + cb3.query().setUserId_Equal(userId); + userInfo.setGroupMappingList(groupMappingBhv.selectList(cb3)); + + return userInfo; } public void store(UserInfo userInfo) { @@ -77,6 +100,36 @@ userInfo.setCreatedTime(now); } userInfoBhv.insertOrUpdate(userInfo); + + // role mapping + List roleMappingList = userInfo.getRoleMappingList(); + if (roleMappingList != null) { + for (RoleMapping mapping : roleMappingList) { + if (mapping.isDelete()) { + // delete + roleMappingBhv.delete(mapping); + } else if (mapping.getId() == null) { + // create + mapping.setUserId(userInfo.getUserId()); + roleMappingBhv.insert(mapping); + } + } + } + + // group mapping + List groupMappingList = userInfo.getGroupMappingList(); + if (groupMappingList != null) { + for (GroupMapping mapping : groupMappingList) { + if (mapping.isDelete()) { + // delete + groupMappingBhv.delete(mapping); + } else if (mapping.getId() == null) { + // create + mapping.setUserId(userInfo.getUserId()); + groupMappingBhv.insert(mapping); + } + } + } } public void disable(String userId, String name) { @@ -109,4 +162,20 @@ this.pagerDxo = pagerDxo; } + public RoleMappingBhv getRoleMappingBhv() { + return roleMappingBhv; + } + + public void setRoleMappingBhv(RoleMappingBhv roleMappingBhv) { + this.roleMappingBhv = roleMappingBhv; + } + + public GroupMappingBhv getGroupMappingBhv() { + return groupMappingBhv; + } + + public void setGroupMappingBhv(GroupMappingBhv groupMappingBhv) { + this.groupMappingBhv = groupMappingBhv; + } + } Modified: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-18 05:48:03 UTC (rev 1363) @@ -9,6 +9,8 @@ display.name={0} {2} {1} # 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. @@ -111,4 +113,24 @@ labels.user_detail=User Detail -labels.create_new_user=Create New User \ No newline at end of file +labels.create_new_user=Create New User + +labels.roles=Roles +labels.role_name=Role Name +labels.role_name=ID +labels.select_roles=Select Roles +labels.groups=Groups +labels.group_name=Group Name +labels.group_name=ID +labels.select_groups=Select Groups + +labels.role_list=Role List +labels.selected_roles=Selected Roles +labels.add_roles=Add >> +labels.remove_roles=<< Remove +labels.ok=OK +labels.group_list=Group List +labels.selected_groups=Selected Groups +labels.add_groups=Add >> +labels.remove_groups=<< Remove + Modified: userinfo/trunk/src/main/resources/application_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/application_ja.properties 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/resources/application_ja.properties 2008-11-18 05:48:03 UTC (rev 1363) @@ -2,6 +2,8 @@ display.name={1} {0} # 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 @@ -104,4 +106,24 @@ labels.user_detail=\u30e6\u30fc\u30b6\u30fc\u306e\u8a73\u7d30 -labels.create_new_user=\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210 \ No newline at end of file +labels.create_new_user=\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210 + +labels.roles=\u30ed\u30fc\u30eb +labels.role_name=\u30ed\u30fc\u30eb\u540d +labels.role_name=ID +labels.select_roles=\u30ed\u30fc\u30eb\u306e\u9078\u629e +labels.groups=\u30b0\u30eb\u30fc\u30d7 +labels.group_name=\u30b0\u30eb\u30fc\u30d7\u540d +labels.group_name=ID +labels.select_groups=\u30b0\u30eb\u30fc\u30d7\u306e\u9078\u629e + +labels.role_list=\u30ed\u30fc\u30eb\u4e00\u89a7 +labels.selected_roles=\u9078\u629e\u6e08\u307f\u30ed\u30fc\u30eb +labels.add_roles=\u8ffd\u52a0 >> +labels.remove_roles=<< \u524a\u9664 +labels.ok=\u4e86\u89e3 +labels.group_list=\u30b0\u30eb\u30fc\u30d7\u4e00\u89a7 +labels.selected_groups=\u9078\u629e\u6e08\u307f\u30b0\u30eb\u30fc\u30d7 +labels.add_groups=\u8ffd\u52a0 >> +labels.remove_groups=<< \u524a\u9664 + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-18 04:50:49 UTC (rev 1362) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-18 05:48:03 UTC (rev 1363) @@ -87,27 +87,75 @@
    - - ${f:h(r.name)} + + ${f:h(r.name)}${f:h(r.roleId)}
    + + + + + + + + + + + + + +
    ${f:h(r.roleId)}${f:h(r.name)}
    + + + ${f:u(u.roleId)} + + +
    - - ${f:h(g.name)} + + ${f:h(g.name)}${f:h(g.roleId)}
    + + + + + + + + + + + + + +
    ${f:h(r.groupId)}${f:h(r.name)}
    + + + ${f:u(u.groupId)} + + +
    - - ${f:h(r.name)} + + ${f:h(r.name)}${f:h(r.roleId)}
    + + + + + + + + + + + + + + + + + + +
    ${f:h(r.roleId)}${f:h(r.name)}
    +"/> +
    + + + ${f:u(u.roleId)} + + +
    - - ${f:h(g.name)} + + ${f:h(g.name)}${f:h(g.groupId)}
    + + + + + + + + + + + + + + + + + + +
    ${f:h(r.groupId)}${f:h(r.name)}
    +"/> +
    + + + ${f:u(u.groupId)} + + +
    + + + + + + + + + + +
    + + + + ${f:h(group.groupId)}${f:h(group.name)}(${f:h(group.groupId)}) + + +
    + +
    +"/> +"/> +
    +
    + + + + + + + + + + + + + + + + +
    + + + + ${f:h(group.groupId)}${f:h(group.name)}(${f:h(group.groupId)}) + + + + + ${f:u(u.groupId)} + + +
    +"/> +
    +
    + + + + + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp (rev 0) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp 2008-11-18 05:48:03 UTC (rev 1363) @@ -0,0 +1,115 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
    + +
    +
      +
    • +
    • + +
    • +
    • +
      + +
    • +
    • +
      +
    • +
    +
    + + +
    + + +
    + + + + + + + + + + + + + + + + + + ${f:u(u.groupId)} + + +
    + + + + + + + + + + + +
    + + + + ${f:h(role.roleId)}${f:h(role.name)}(${f:h(role.roleId)}) + + +
    +
    +
    +"/> +"/> +
    +
    + + + + + + + + + + + + + + + + +
    + + + + ${f:h(role.roleId)}${f:h(role.name)}(${f:h(role.roleId)}) + + + + + ${f:u(u.roleId)} + + +
    +"/> +
    +
    +
    +
    + +
    + + + Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Tue Nov 18 15:08:26 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 15:08:26 +0900 Subject: [pal-cvs 3629] [1364] changed width, added links, fixed a bug. Message-ID: <1226988506.770981.14569.nullmailer@users.sourceforge.jp> Revision: 1364 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1364 Author: shinsuke Date: 2008-11-18 15:08:26 +0900 (Tue, 18 Nov 2008) Log Message: ----------- changed width, added links, fixed a bug. Modified Paths: -------------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp -------------- next part -------------- Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-18 05:48:03 UTC (rev 1363) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-18 06:08:26 UTC (rev 1364) @@ -255,6 +255,7 @@ } personDxo.convertFromPersonToForm(person, personForm); + company = person.getCompany(); } private Person createPerson() { Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-18 05:48:03 UTC (rev 1363) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-18 06:08:26 UTC (rev 1364) @@ -257,6 +257,7 @@ } personDxo.convertFromPersonToForm(person, personForm); + company = person.getCompany(); } private Person createPerson() { Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-18 05:48:03 UTC (rev 1363) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-18 06:08:26 UTC (rev 1364) @@ -29,7 +29,7 @@
    ${f:h(name)}${f:h(name)}
    ${f:h(familyName)}${f:h(familyName)}
    ${f:h(homeTelephone)}${f:h(homeTelephone)}
    ${f:h(postalCode)}${f:h(postalCode)}
    ${f:h(company.name)}${f:h(company.name)}
    ${f:h(customData1)}${f:h(customData1)}
    ${f:h(name)}${f:h(name)}
    ${f:h(url)}${f:h(url)}${f:h(url)}
    ${f:h(familyName)}${f:h(familyName)}
    ${f:h(homeTelephone)}${f:h(homeTelephone)}
    ${f:h(homeEmailPC)}${f:h(homeEmailPC)}${f:h(homeEmailPC)}
    ${f:h(homeEmailMobile)}${f:h(homeEmailMobile)}${f:h(homeEmailMobile)}
    ${f:h(businessEmailPC)}${f:h(businessEmailPC)}${f:h(businessEmailPC)}
    ${f:h(businessEmailMobile)}${f:h(businessEmailMobile)}${f:h(businessEmailMobile)}
    ${f:h(postalCode)}${f:h(postalCode)}
    ${f:h(company.name)}${f:h(company.name)}
    ${f:h(company.url)}${f:h(company.url)}${f:h(company.url)}
    ${f:h(customData1)}${f:h(customData1)}
    - + - - + + - - + + - + + + + + + + + +
    User ID - - + "/> + "/>
     
    ${f:h(e.username)}${f:h(e.manager)} (${f:h(e.username)}) (${f:h(e.manager)}) Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -16,8 +16,16 @@
    ${username}
    (${f:h(monthlyReport.employee.username)})
    (${f:h(monthlyReport.employee.manager)})
    @@ -99,7 +107,8 @@ | -
    +
    + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -29,15 +29,19 @@ - + - + + + + + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -90,7 +90,8 @@ | -
    ɽ¼¨¤¹¤ëʬ
    µÙÆü -
    ex. YYYY-MM-DD +
    +
    + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -13,11 +13,11 @@
    - + - - + + - - + + - + + + + + + + + +
    User ID - - + "/> + "/>
     
    ${f:h(e.username)}${f:h(e.manager)} (${f:h(e.username)}) (${f:h(e.manager)}) <%-- Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -16,8 +16,16 @@
    ${username}
    (${f:h(monthlyReport.employee.username)})
    (${f:h(monthlyReport.employee.manager)})
    @@ -102,7 +110,8 @@ | -
    +
    + From svnnotify ¡÷ sourceforge.jp Tue Nov 18 17:21:33 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 17:21:33 +0900 Subject: [pal-cvs 3632] [1367] fixed bugs. Message-ID: <1226996493.679031.23859.nullmailer@users.sourceforge.jp> Revision: 1367 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1367 Author: shinsuke Date: 2008-11-18 17:21:33 +0900 (Tue, 18 Nov 2008) Log Message: ----------- fixed bugs. Modified Paths: -------------- userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/resources/application_ja.properties userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp -------------- next part -------------- Modified: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties 2008-11-18 08:02:11 UTC (rev 1366) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-18 08:21:33 UTC (rev 1367) @@ -117,11 +117,11 @@ labels.roles=Roles labels.role_name=Role Name -labels.role_name=ID +labels.role_id=ID labels.select_roles=Select Roles labels.groups=Groups labels.group_name=Group Name -labels.group_name=ID +labels.group_id=ID labels.select_groups=Select Groups labels.role_list=Role List Modified: userinfo/trunk/src/main/resources/application_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/application_ja.properties 2008-11-18 08:02:11 UTC (rev 1366) +++ userinfo/trunk/src/main/resources/application_ja.properties 2008-11-18 08:21:33 UTC (rev 1367) @@ -110,11 +110,11 @@ labels.roles=\u30ed\u30fc\u30eb labels.role_name=\u30ed\u30fc\u30eb\u540d -labels.role_name=ID +labels.role_id=ID labels.select_roles=\u30ed\u30fc\u30eb\u306e\u9078\u629e labels.groups=\u30b0\u30eb\u30fc\u30d7 labels.group_name=\u30b0\u30eb\u30fc\u30d7\u540d -labels.group_name=ID +labels.group_id=ID labels.select_groups=\u30b0\u30eb\u30fc\u30d7\u306e\u9078\u629e labels.role_list=\u30ed\u30fc\u30eb\u4e00\u89a7 Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-18 08:02:11 UTC (rev 1366) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-18 08:21:33 UTC (rev 1367) @@ -126,7 +126,7 @@
    - ${f:h(g.name)}${f:h(g.roleId)} + ${f:h(g.name)}${f:h(g.groupId)} From svnnotify ¡÷ sourceforge.jp Tue Nov 18 20:22:54 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 20:22:54 +0900 Subject: [pal-cvs 3633] [1368] Message-ID: <1227007374.544763.11115.nullmailer@users.sourceforge.jp> Revision: 1368 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1368 Author: karma Date: 2008-11-18 20:22:54 +0900 (Tue, 18 Nov 2008) Log Message: ----------- Modified Paths: -------------- palwassr/trunk/.classpath palwassr/trunk/pom.xml Removed Paths: ------------- palwassr/trunk/src/main/webapp/WEB-INF/lib/antlr-2.7.7.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/aopalliance-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-beanutils-1.7.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-codec-1.3.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-collections-3.1.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-digester-1.6.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-el-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-fileupload-1.2.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-httpclient-3.1.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-io-1.3.2.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-logging-1.1.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-validator-1.2.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-annotation_1.0_spec-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-ejb_3.0_spec-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-interceptor_3.0_spec-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-jpa_3.0_spec-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-jta_1.1_spec-1.0.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/h2-1.0.69.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/jakarta-oro-2.0.8.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/jakarta-taglibs-standard-1.1.2.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/javassist-3.4.ga.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/jstl-1.1.2.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/log4j-1.2.13.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/ognl-2.6.9-patch-20070908.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/poi-3.0-FINAL.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/s2-extension-2.4.29.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/s2-framework-2.4.29.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/s2-tiger-2.4.29.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/sa-struts-1.0.4-sp1.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/sa-struts-portlet-1.0.0-rc3.jar palwassr/trunk/src/main/webapp/WEB-INF/lib/sources/ palwassr/trunk/src/main/webapp/WEB-INF/lib/struts-1.2.9.jar Property Changed: ---------------- palwassr/trunk/ palwassr/trunk/src/main/webapp/WEB-INF/ -------------- next part -------------- Property changes on: palwassr/trunk ___________________________________________________________________ Name: svn:ignore + target repo Modified: palwassr/trunk/.classpath =================================================================== --- palwassr/trunk/.classpath 2008-11-18 08:21:33 UTC (rev 1367) +++ palwassr/trunk/.classpath 2008-11-18 11:22:54 UTC (rev 1368) @@ -1,45 +1,10 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modified: palwassr/trunk/pom.xml =================================================================== --- palwassr/trunk/pom.xml 2008-11-18 08:21:33 UTC (rev 1367) +++ palwassr/trunk/pom.xml 2008-11-18 11:22:54 UTC (rev 1368) @@ -1,238 +1,248 @@ - - 4.0.0 - jp.sf.pal.wassr - palwassr - 0.0.1 - war - palwassr - - src/main/java - src/main/webapp/WEB-INF/classes - - - src/main/resources - - - target/test-classes - src/test/java - - - src/test/resources - - - validate - - - maven-compiler-plugin - - 1.6 - 1.6 - UTF-8 - - - - maven-source-plugin - - - source-jar - package - - jar - - - - - - - - - maven-eclipse-plugin - - 1.5 - - - - - - - - maven.seasar.org - The Seasar Foundation Maven2 Repository - http://maven.seasar.org/maven2 - - - - - local - Local Repository - file:repo - - - maven.seasar.org - The Seasar Foundation Maven2 Repository - http://maven.seasar.org/maven2 - - - - - org.apache.geronimo.specs - geronimo-jsp_2.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-servlet_2.4_spec - 1.0 - - - junit - junit - 3.8.2 - - - junit-addons - junit-addons - 1.4 - - - antlr - antlr - 2.7.7 - - - aopalliance - aopalliance - 1.0 - - - commons-beanutils - commons-beanutils - 1.7.0 - - - commons-collections - commons-collections - 3.1 - - - commons-digester - commons-digester - 1.6 - - - commons-el - commons-el - 1.0 - - - commons-fileupload - commons-fileupload - 1.2 - - - commons-io - commons-io - 1.3.2 - - - commons-logging - commons-logging - 1.1 - - - commons-validator - commons-validator - 1.2.0 - - - org.apache.geronimo.specs - geronimo-annotation_1.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-ejb_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-interceptor_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-jpa_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - 1.0 - - - com.h2database - h2 - 1.0.69 - - - oro - oro - 2.0.8 - - - taglibs - standard - 1.1.2 - - - jboss - javassist - 3.4.ga - - - jstl - jstl - 1.1.2 - - - log4j - log4j - 1.2.13 - - - ognl - ognl - 2.6.9-patch-20070908 - - - poi - poi - 3.0-FINAL - - - org.seasar.container - s2-extension - 2.4.29 - - - org.seasar.container - s2-framework - 2.4.29 - - - org.seasar.container - s2-tiger - 2.4.29 - - - org.seasar.sastruts - sa-struts - 1.0.4-sp1 - - - struts - struts - 1.2.9 - - - + + 4.0.0 + jp.sf.pal.wassr + palwassr + war + palwassr + 0.0.1 + + src/main/java + src/test/java + src/main/webapp/WEB-INF/classes + target/test-classes + validate + + + src/main/resources + + + + + src/test/resources + + + + + + maven-eclipse-plugin + + 1.5 + + + + + + + maven-compiler-plugin + + 1.6 + 1.6 + UTF-8 + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + local + Local Repository + file:repo + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + org.apache.geronimo.specs + geronimo-jsp_2.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-servlet_2.4_spec + 1.0 + + + junit + junit + 3.8.2 + + + junit-addons + junit-addons + 1.4 + + + antlr + antlr + 2.7.7 + + + aopalliance + aopalliance + 1.0 + + + commons-beanutils + commons-beanutils + 1.7.0 + + + commons-collections + commons-collections + 3.1 + + + commons-digester + commons-digester + 1.6 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2 + + + commons-io + commons-io + 1.3.2 + + + commons-logging + commons-logging + 1.1 + + + commons-validator + commons-validator + 1.2.0 + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jpa_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + com.h2database + h2 + 1.0.69 + + + oro + oro + 2.0.8 + + + taglibs + standard + 1.1.2 + + + jboss + javassist + 3.4.ga + + + jstl + jstl + 1.1.2 + + + log4j + log4j + 1.2.13 + + + ognl + ognl + 2.6.9-patch-20070908 + + + poi + poi + 3.0-FINAL + + + org.seasar.container + s2-extension + 2.4.29 + + + org.seasar.container + s2-framework + 2.4.29 + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.seasar.sastruts + sa-struts + 1.0.4-sp1 + + + struts + struts + 1.2.9 + + + commons-httpclient + commons-httpclient + 3.1 + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + \ No newline at end of file Property changes on: palwassr/trunk/src/main/webapp/WEB-INF ___________________________________________________________________ Name: svn:ignore + classes Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/antlr-2.7.7.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/aopalliance-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-beanutils-1.7.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-codec-1.3.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-collections-3.1.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-digester-1.6.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-el-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-fileupload-1.2.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-httpclient-3.1.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-io-1.3.2.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-logging-1.1.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/commons-validator-1.2.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-annotation_1.0_spec-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-ejb_3.0_spec-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-interceptor_3.0_spec-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-jpa_3.0_spec-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/geronimo-jta_1.1_spec-1.0.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/h2-1.0.69.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/jakarta-oro-2.0.8.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/jakarta-taglibs-standard-1.1.2.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/javassist-3.4.ga.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/jstl-1.1.2.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/log4j-1.2.13.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/ognl-2.6.9-patch-20070908.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/poi-3.0-FINAL.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/s2-extension-2.4.29.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/s2-framework-2.4.29.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/s2-tiger-2.4.29.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/sa-struts-1.0.4-sp1.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/sa-struts-portlet-1.0.0-rc3.jar =================================================================== (Binary files differ) Deleted: palwassr/trunk/src/main/webapp/WEB-INF/lib/struts-1.2.9.jar =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Tue Nov 18 21:17:30 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 21:17:30 +0900 Subject: [pal-cvs 3634] [1369] changed index name. Message-ID: <1227010650.382154.701.nullmailer@users.sourceforge.jp> Revision: 1369 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1369 Author: shinsuke Date: 2008-11-18 21:17:30 +0900 (Tue, 18 Nov 2008) Log Message: ----------- changed index name. Modified Paths: -------------- notepad/trunk/src/main/config/erd/notepad.erd notepad/trunk/src/main/config/sql/notepad.ddl notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db -------------- next part -------------- Modified: notepad/trunk/src/main/config/erd/notepad.erd =================================================================== --- notepad/trunk/src/main/config/erd/notepad.erd 2008-11-18 11:22:54 UTC (rev 1368) +++ notepad/trunk/src/main/config/erd/notepad.erd 2008-11-18 12:17:30 UTC (rev 1369) @@ -1055,7 +1055,7 @@ - IDX_created_by_and_category_id_for_link + IDX_created_by_and_category_id_for_notepad INDEX @@ -1242,7 +1242,7 @@ - IDX_created_by_for_category + IDX_created_by_for_notepad_category created_by @@ -1257,7 +1257,7 @@ - FK_from_category_createdby_to_user + FK_from_notepad_category_createdby_to_user @@ -1277,7 +1277,7 @@ - FK_from_category_updatedby_to_user + FK_from_notepad_category_updatedby_to_user @@ -1344,7 +1344,7 @@ - FK_from_content_to_user + FK_from_notepad_content_to_user Modified: notepad/trunk/src/main/config/sql/notepad.ddl =================================================================== --- notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-18 11:22:54 UTC (rev 1368) +++ notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-18 12:17:30 UTC (rev 1369) @@ -145,7 +145,7 @@ ); -CREATE INDEX IDX_created_by_for_category ON notepad_category (created_by); +CREATE INDEX IDX_created_by_for_notepad_category ON notepad_category (created_by); -CREATE INDEX IDX_created_by_and_category_id_for_link ON notepad (created_by, category_id); +CREATE INDEX IDX_created_by_and_category_id_for_notepad ON notepad (created_by, category_id); Modified: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db =================================================================== (Binary files differ) Modified: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Tue Nov 18 21:22:18 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 21:22:18 +0900 Subject: [pal-cvs 3635] [1370] changed index name. Message-ID: <1227010938.560723.5622.nullmailer@users.sourceforge.jp> Revision: 1370 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1370 Author: shinsuke Date: 2008-11-18 21:22:18 +0900 (Tue, 18 Nov 2008) Log Message: ----------- changed index name. Modified Paths: -------------- bookmark/trunk/src/main/config/erd/bookmark.erd bookmark/trunk/src/main/config/sql/bookmark.ddl bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db -------------- next part -------------- Modified: bookmark/trunk/src/main/config/erd/bookmark.erd =================================================================== --- bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-18 12:17:30 UTC (rev 1369) +++ bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-18 12:22:18 UTC (rev 1370) @@ -1286,7 +1286,7 @@ - IDX_created_by_for_category + IDX_created_by_for_bookmark_category created_by @@ -1301,7 +1301,7 @@ - FK_from_category_create_to_user + FK_from_bookmark_category_create_to_user @@ -1321,7 +1321,7 @@ - FK_from_category_update_to_user + FK_from_bookmark_category_update_to_user Modified: bookmark/trunk/src/main/config/sql/bookmark.ddl =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-18 12:17:30 UTC (rev 1369) +++ bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-18 12:22:18 UTC (rev 1370) @@ -139,7 +139,7 @@ ); -CREATE INDEX IDX_created_by_for_category ON bookmark_category (created_by); +CREATE INDEX IDX_created_by_for_bookmark_category ON bookmark_category (created_by); CREATE INDEX IDX_created_by_and_category_id_for_link ON bookmark_link (created_by, category_id); Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Tue Nov 18 21:29:52 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 21:29:52 +0900 Subject: [pal-cvs 3636] [1371] integrated db. Message-ID: <1227011392.697686.12543.nullmailer@users.sourceforge.jp> Revision: 1371 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1371 Author: shinsuke Date: 2008-11-18 21:29:52 +0900 (Tue, 18 Nov 2008) Log Message: ----------- integrated db. Modified Paths: -------------- userinfo/trunk/src/main/resources/jdbc.dicon userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db Added Paths: ----------- userinfo/trunk/README.txt userinfo/trunk/src/main/config/sql/others/ userinfo/trunk/src/main/config/sql/others/0-userinfo.dml userinfo/trunk/src/main/config/sql/others/addresslist.ddl userinfo/trunk/src/main/config/sql/others/board.ddl userinfo/trunk/src/main/config/sql/others/board.dml userinfo/trunk/src/main/config/sql/others/bookmark.ddl userinfo/trunk/src/main/config/sql/others/bookmark.dml userinfo/trunk/src/main/config/sql/others/notepad.ddl userinfo/trunk/src/main/config/sql/others/notepad.dml userinfo/trunk/src/main/config/sql/others/scheduler.ddl userinfo/trunk/src/main/config/sql/others/timecard.ddl userinfo/trunk/src/main/config/sql/others/todolist.ddl -------------- next part -------------- Added: userinfo/trunk/README.txt =================================================================== --- userinfo/trunk/README.txt (rev 0) +++ userinfo/trunk/README.txt 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,7 @@ +-------- +Start DB +-------- + +$ cd [portal_home]/webapps/userinfo/WEB-INF/db +$ java -jar ../lib/h2-1.0.79.jar org.h2.tools.Server & + Property changes on: userinfo/trunk/README.txt ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/config/sql/others/0-userinfo.dml =================================================================== --- userinfo/trunk/src/main/config/sql/others/0-userinfo.dml (rev 0) +++ userinfo/trunk/src/main/config/sql/others/0-userinfo.dml 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,2 @@ +insert into user_info (USER_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO) values ('admin', '2008-10-15 17:17:37', 'admin', '2008-10-15 17:17:37', 'admin', 0); + Added: userinfo/trunk/src/main/config/sql/others/addresslist.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/addresslist.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/addresslist.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,95 @@ +/********************************** +Table Name: Company +**********************************/ +CREATE TABLE company( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255), + name VARCHAR(200), + name_desc VARCHAR(200), + department VARCHAR(200), + building VARCHAR(200), + street VARCHAR(200), + city VARCHAR(100), + state VARCHAR(100), + postal_code VARCHAR(30), + country VARCHAR(200), + telephone1 VARCHAR(40), + telephone2 VARCHAR(40), + fax1 VARCHAR(40), + fax2 VARCHAR(40), + url VARCHAR(255), + is_public VARCHAR(1) DEFAULT 'T', + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 1 NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Person +**********************************/ +CREATE TABLE person( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + user_id VARCHAR(255), + given_name VARCHAR(100), + given_name_desc VARCHAR(100), + family_name VARCHAR(100), + family_name_desc VARCHAR(100), + middle_name VARCHAR(50), + name_prefix VARCHAR(30), + name_suffix VARCHAR(30), + nickname VARCHAR(100), + job_title VARCHAR(50), + is_public VARCHAR(1) DEFAULT 'T', + company_id BIGINT(19), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 1 NOT NULL, + FOREIGN KEY (company_id) REFERENCES company (id), + FOREIGN KEY (user_id) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Custom +**********************************/ +CREATE TABLE custom( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + person_id BIGINT(19) NOT NULL, + value VARCHAR(255), + sort_order INTEGER NOT NULL, + FOREIGN KEY (person_id) REFERENCES person (id) +); + +/********************************** +Table Name: Contact +**********************************/ +CREATE TABLE contact( + id BIGINT(19) NOT NULL IDENTITY PRIMARY KEY, + person_id BIGINT(19) NOT NULL, + name VARCHAR(20) NOT NULL, + value VARCHAR(255), + FOREIGN KEY (person_id) REFERENCES person (id) +); + +/********************************** +Table Name: Postal +**********************************/ +CREATE TABLE postal( + person_id BIGINT(19) NOT NULL PRIMARY KEY, + building VARCHAR(200), + street VARCHAR(200), + city VARCHAR(100), + state VARCHAR(100), + postal_code VARCHAR(30), + country VARCHAR(100), + FOREIGN KEY (person_id) REFERENCES person (id) +); + Added: userinfo/trunk/src/main/config/sql/others/board.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/board.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/board.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,116 @@ + +/********************************** +Table Name: Category +**********************************/ +CREATE TABLE category( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL +); + +/********************************** +Table Name: Attachment +**********************************/ +CREATE TABLE attachment( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + data BLOB NOT NULL, + name VARCHAR(255), + size INTEGER, + content_type VARCHAR(40), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL +); + +/********************************** +Table Name: Message +**********************************/ +CREATE TABLE message( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + display_name VARCHAR(100) NOT NULL, + title VARCHAR(200) NOT NULL, + status VARCHAR(1) DEFAULT 'E' NOT NULL, + start_time DATETIME, + end_time DATETIME, + has_reply VARCHAR(1) DEFAULT 'T' NOT NULL, + category_id INTEGER DEFAULT 0 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (category_id) REFERENCES category (id) +); + +/********************************** +Table Name: Category Access +**********************************/ +CREATE TABLE category_access( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(255) NOT NULL, + access_type INTEGER NOT NULL, + category_id INTEGER NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + versionNo INT DEFAULT 0 NOT NULL, + FOREIGN KEY (category_id) REFERENCES category (id) +); + +/********************************** +Table Name: Reply +**********************************/ +CREATE TABLE reply( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + display_name VARCHAR(100) NOT NULL, + content VARCHAR(4000), + message_id BIGINT(20) NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + FOREIGN KEY (message_id) REFERENCES message (id) +); + +/********************************** +Table Name: Message Attachment +**********************************/ +CREATE TABLE message_attachment( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + memo VARCHAR(100), + versionable VARCHAR(1) DEFAULT 'F' NOT NULL, + message_id BIGINT(20) NOT NULL, + attachment_id BIGINT(20) NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (message_id) REFERENCES message (id), + FOREIGN KEY (attachment_id) REFERENCES attachment (id) +); + +/********************************** +Table Name: Message Content +**********************************/ +CREATE TABLE message_content( + message_id BIGINT(20) NOT NULL PRIMARY KEY, + content VARCHAR(4000), + FOREIGN KEY (message_id) REFERENCES message (id) +); + +CREATE INDEX IDX_title_for_message ON message (title); + +CREATE INDEX IDX_content_for_message_content ON message_content (content); + Added: userinfo/trunk/src/main/config/sql/others/board.dml =================================================================== --- userinfo/trunk/src/main/config/sql/others/board.dml (rev 0) +++ userinfo/trunk/src/main/config/sql/others/board.dml 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,3 @@ +insert into CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO) values (1, 'TOP', '2008-10-06 16:17:41', 'admin', 1, '2008-10-06 16:17:41', 'admin', 0); +insert into CATEGORY_ACCESS (ID, NAME, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, VERSIONNO, ACCESS_TYPE, CATEGORY_ID) values (1, 'role::user', '2008-10-06 16:17:41', 'admin', '2008-10-06 16:17:41', 'admin', 0, 4, 1); + Added: userinfo/trunk/src/main/config/sql/others/bookmark.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/bookmark.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/bookmark.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,49 @@ + +/********************************** +Table Name: Bookmark Category +**********************************/ +CREATE TABLE bookmark_category( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + memo VARCHAR(200), + type VARCHAR(1) DEFAULT 'P' NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Bookmark Link +**********************************/ +CREATE TABLE bookmark_link( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + memo VARCHAR(200), + url VARCHAR(255) DEFAULT 'E' NOT NULL, + type VARCHAR(1) NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + category_id INTEGER DEFAULT 0, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (category_id) REFERENCES bookmark_category (id), + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) +); + + +CREATE INDEX IDX_created_by_for_bookmark_category ON bookmark_category (created_by); + +CREATE INDEX IDX_created_by_and_category_id_for_link ON bookmark_link (created_by, category_id); + Added: userinfo/trunk/src/main/config/sql/others/bookmark.dml =================================================================== --- userinfo/trunk/src/main/config/sql/others/bookmark.dml (rev 0) +++ userinfo/trunk/src/main/config/sql/others/bookmark.dml 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,2 @@ +insert into BOOKMARK_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO, TYPE) values (1, '(Unclassified)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, '', 'P'); +insert into BOOKMARK_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, MEMO, TYPE) values (2, '(Shared)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, '', 'P'); Added: userinfo/trunk/src/main/config/sql/others/notepad.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/notepad.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/notepad.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,54 @@ + +/********************************** +Table Name: Notepad Category +**********************************/ +CREATE TABLE notepad_category( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + type VARCHAR(1) DEFAULT 'P' NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Notepad +**********************************/ +CREATE TABLE notepad( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + title VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 0 NOT NULL, + category_id INTEGER DEFAULT 0, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (category_id) REFERENCES notepad_category (id), + FOREIGN KEY (created_by) REFERENCES user_info (user_id), + FOREIGN KEY (updated_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Notepad Content +**********************************/ +CREATE TABLE notepad_content( + id BIGINT(20) NOT NULL PRIMARY KEY, + content VARCHAR(4000), + FOREIGN KEY (id) REFERENCES notepad (id) +); + + +CREATE INDEX IDX_created_by_for_notepad_category ON notepad_category (created_by); + +CREATE INDEX IDX_created_by_and_category_id_for_notepad ON notepad (created_by, category_id); + Added: userinfo/trunk/src/main/config/sql/others/notepad.dml =================================================================== --- userinfo/trunk/src/main/config/sql/others/notepad.dml (rev 0) +++ userinfo/trunk/src/main/config/sql/others/notepad.dml 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,2 @@ +insert into NOTEPAD_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, TYPE) values (1, '(Unclassified)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, 'P'); +insert into NOTEPAD_CATEGORY (ID, NAME, CREATED_TIME, CREATED_BY, SORT_ORDER, UPDATED_TIME, UPDATED_BY, VERSIONNO, TYPE) values (2, '(Shared)', '2008-10-15 17:17:37', 'admin', 1, '2008-10-15 17:17:37', 'admin', 0, 'P'); Added: userinfo/trunk/src/main/config/sql/others/scheduler.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/scheduler.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/scheduler.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,43 @@ + +/********************************** +Table Name: Event Schedule +**********************************/ +CREATE TABLE event_schedule( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + title VARCHAR(100) NOT NULL, + location VARCHAR(100), + start_date DATE NOT NULL, + start_time TIME, + end_date DATE, + end_time TIME, + secret VARCHAR(1) DEFAULT 'F' NOT NULL, + type VARCHAR(10) NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL +); + +/********************************** +Table Name: Event Schedule Mapping +**********************************/ +CREATE TABLE event_schedule_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + schedule_id BIGINT(20) NOT NULL, + user_id VARCHAR(255) NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (schedule_id) REFERENCES event_schedule (id) +); + +/********************************** +Table Name: Event Schedule Content +**********************************/ +CREATE TABLE event_schedule_content( + id BIGINT(20) NOT NULL PRIMARY KEY, + content VARCHAR(1000), + FOREIGN KEY (id) REFERENCES event_schedule (id) +); + Added: userinfo/trunk/src/main/config/sql/others/timecard.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/timecard.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/timecard.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,74 @@ + +/********************************** +Table Name: Employee +**********************************/ +CREATE TABLE employee( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + username VARCHAR(255) NOT NULL, + manager VARCHAR(255) NOT NULL, + paid_holidays DOUBLE DEFAULT 0 NOT NULL, + is_available VARCHAR(1) DEFAULT 'T' NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (username) REFERENCES user_info (user_id), + FOREIGN KEY (manager) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: Monthly Report +**********************************/ +CREATE TABLE monthly_report( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + year INTEGER NOT NULL, + month INTEGER NOT NULL, + status INTEGER DEFAULT 1 NOT NULL, + working_days DOUBLE DEFAULT 0 NOT NULL, + std_working_days DOUBLE DEFAULT 0 NOT NULL, + holidays DOUBLE DEFAULT 0 NOT NULL, + paid_holidays DOUBLE DEFAULT 0 NOT NULL, + working_time BIGINT(20) DEFAULT 0 NOT NULL, + std_working_time BIGINT(20) DEFAULT 0 NOT NULL, + over_time BIGINT(20) DEFAULT 0 NOT NULL, + mnt_over_time BIGINT(20) DEFAULT 0 NOT NULL, + employee_id INTEGER NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (employee_id) REFERENCES employee (id) +); + +/********************************** +Table Name: Daily Report +**********************************/ +CREATE TABLE daily_report( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + date INTEGER NOT NULL, + day_of_week INTEGER NOT NULL, + date_type INTEGER NOT NULL, + working_type INTEGER DEFAULT 1 NOT NULL, + status INTEGER DEFAULT 1 NOT NULL, + start_time TIME, + end_time TIME, + break_time TIME, + otj_time TIME, + working_time BIGINT(20), + memo VARCHAR(200), + monthly_report_id BIGINT(20) DEFAULT 0 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (monthly_report_id) REFERENCES monthly_report (id) +); + + Added: userinfo/trunk/src/main/config/sql/others/todolist.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/todolist.ddl (rev 0) +++ userinfo/trunk/src/main/config/sql/others/todolist.ddl 2008-11-18 12:29:52 UTC (rev 1371) @@ -0,0 +1,61 @@ + +/********************************** +Table Name: ToDo +**********************************/ +CREATE TABLE todo( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + description VARCHAR(200), + priority INTEGER NOT NULL, + status INTEGER NOT NULL, + start_date TIMESTAMP, + end_date TIMESTAMP, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (created_by) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: ToDo Category +**********************************/ +CREATE TABLE todo_category( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 1 NOT NULL, + user_id VARCHAR(255) NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + FOREIGN KEY (user_id) REFERENCES user_info (user_id) +); + +/********************************** +Table Name: ToDo Mapping +**********************************/ +CREATE TABLE todo_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + status INT NOT NULL, + memo VARCHAR(255), + todo_id BIGINT(20) NOT NULL, + user_id VARCHAR(255) NOT NULL, + category_id BIGINT(20), + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER NOT NULL, + FOREIGN KEY (user_id) REFERENCES user_info (user_id), + FOREIGN KEY (todo_id) REFERENCES todo (id), + FOREIGN KEY (category_id) REFERENCES todo_category (id) +); + Modified: userinfo/trunk/src/main/resources/jdbc.dicon =================================================================== --- userinfo/trunk/src/main/resources/jdbc.dicon 2008-11-18 12:22:18 UTC (rev 1370) +++ userinfo/trunk/src/main/resources/jdbc.dicon 2008-11-18 12:29:52 UTC (rev 1371) @@ -40,9 +40,9 @@ "org.h2.Driver" - "jdbc:h2:file:" + container.getComponent(@java.lang.Class ¡÷ forName("javax.servlet.ServletContext")).getRealPath("/WEB-INF/db/userinfo") + "jdbc:h2:tcp://localhost:9092/userinfo" - + "sa" "" Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Tue Nov 18 22:57:14 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 18 Nov 2008 22:57:14 +0900 Subject: [pal-cvs 3637] [1372] added pull-down box to an user list page. Message-ID: <1227016634.734554.32165.nullmailer@users.sourceforge.jp> Revision: 1372 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1372 Author: shinsuke Date: 2008-11-18 22:57:14 +0900 (Tue, 18 Nov 2008) Log Message: ----------- added pull-down box to an user list page. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/SchedulerConstants.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -8,4 +8,8 @@ public static final String ONETIME_SCHEDULE = "ONETIME"; + public static final String ROLE_PREFIX = "role::"; + + public static final String GROUP_PREFIX = "group::"; + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -344,7 +344,7 @@ public List getAvailableUserItems() { // TODO should not get all user - return userInfoService.getAvailableUserList( + return userInfoService.getAvailableUserList(null, null, onetimeScheduleForm.selectedUsers, null); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -344,7 +344,7 @@ public List getAvailableUserItems() { // TODO should not get all user - return userInfoService.getAvailableUserList( + return userInfoService.getAvailableUserList(null, null, repeatScheduleForm.selectedUsers, null); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.scheduler.SchedulerConstants; import jp.sf.pal.scheduler.common.CommonConstants; import jp.sf.pal.scheduler.common.dxo.PagerDxo; import jp.sf.pal.scheduler.common.util.CalendarUtil; @@ -279,9 +280,32 @@ @Execute(validator = false, input = "error.jsp") public String selectusers() { + if (onetimeScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + onetimeScheduleForm.userGroup = userGroupList.get(0).get( + "value"); + } + } return "userlist.jsp"; } + @Execute(validator = true, input = "error.jsp") + public String changeusergroup() { + if (onetimeScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + onetimeScheduleForm.userGroup = userGroupList.get(0).get( + "value"); + } + } + return "userlist.jsp"; + } + @Execute(validator = false, input = "error.jsp") public String setusers() { return "edit.jsp"; @@ -369,10 +393,31 @@ private void loadDetailsPageParameters() { } + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList( - onetimeScheduleForm.selectedUsers, null); + String roleId = null; + String groupId = null; + if (onetimeScheduleForm.userGroup != null) { + if (onetimeScheduleForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + roleId = onetimeScheduleForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + } else if (onetimeScheduleForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + groupId = onetimeScheduleForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + } + } + if (roleId == null && groupId == null) { + return new ArrayList(); + } else { + return userInfoService.getAvailableUserList(roleId, groupId, + onetimeScheduleForm.selectedUsers, null); + } } public List getSelectedUserItems() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.scheduler.SchedulerConstants; import jp.sf.pal.scheduler.common.CommonConstants; import jp.sf.pal.scheduler.common.dxo.PagerDxo; import jp.sf.pal.scheduler.common.util.CalendarUtil; @@ -278,9 +279,32 @@ @Execute(validator = false, input = "error.jsp") public String selectusers() { + if (repeatScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + repeatScheduleForm.userGroup = userGroupList.get(0) + .get("value"); + } + } return "userlist.jsp"; } + @Execute(validator = true, input = "error.jsp") + public String changeusergroup() { + if (repeatScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + repeatScheduleForm.userGroup = userGroupList.get(0) + .get("value"); + } + } + return "userlist.jsp"; + } + @Execute(validator = false, input = "error.jsp") public String setusers() { return "edit.jsp"; @@ -368,10 +392,31 @@ private void loadDetailsPageParameters() { } + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList( - repeatScheduleForm.selectedUsers, null); + String roleId = null; + String groupId = null; + if (repeatScheduleForm.userGroup != null) { + if (repeatScheduleForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + roleId = repeatScheduleForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + } else if (repeatScheduleForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + groupId = repeatScheduleForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + } + } + if (roleId == null && groupId == null) { + return new ArrayList(); + } else { + return userInfoService.getAvailableUserList(roleId, groupId, + repeatScheduleForm.selectedUsers, null); + } } public List getSelectedUserItems() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -84,7 +84,7 @@ public String endTimeM; - @Required + @Required(target = "confirm,create,update,delete") @Maxbytelength(maxbytelength = 1) public String secret; @@ -115,6 +115,9 @@ public String[] selectedUsers; + @Required(target = "changeusergroup") + public String userGroup; + @IntegerType public String pageNumber; @@ -159,6 +162,7 @@ removedUsers = null; selectedUsers = null; secret = "F"; + userGroup = null; } public String getStartDate() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -80,7 +80,7 @@ public String endTimeM; - @Required + @Required(target = "confirm,create,update,delete") @Maxbytelength(maxbytelength = 1) public String secret; @@ -115,6 +115,9 @@ public String[] selectedUsers; + @Required(target = "changeusergroup") + public String userGroup; + @IntegerType public String pageNumber; @@ -160,6 +163,7 @@ removedUsers = null; selectedUsers = null; secret = "F"; + userGroup = null; } public String getStartDate() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-18 13:57:14 UTC (rev 1372) @@ -4,10 +4,19 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.db.cbean.GroupMappingCB; +import jp.sf.pal.scheduler.db.cbean.RoleMappingCB; import jp.sf.pal.scheduler.db.cbean.UserInfoCB; +import jp.sf.pal.scheduler.db.exbhv.GroupMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.RoleMappingBhv; import jp.sf.pal.scheduler.db.exbhv.UserInfoBhv; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; import jp.sf.pal.scheduler.db.exentity.UserInfo; public class UserInfoService implements Serializable { @@ -16,6 +25,10 @@ private transient UserInfoBhv userInfoBhv; + private transient RoleMappingBhv roleMappingBhv; + + private transient GroupMappingBhv groupMappingBhv; + public void initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); @@ -33,23 +46,70 @@ } } - public List getAvailableUserList(String[] selectedUsers, - String userId) { - UserInfoCB cb = new UserInfoCB(); + public List getAvailableUserList(String roleId, String groupId, + String[] selectedUsers, String userId) { + if (roleId == null && groupId == null) { + UserInfoCB cb = new UserInfoCB(); - // setup + // setup - if (userId != null) { - cb.query().setUserId_Equal(userId); - } - if (selectedUsers != null) { - List excludedUserIdList = new ArrayList(); - for (String uid : selectedUsers) { - excludedUserIdList.add(uid); + if (userId != null) { + cb.query().setUserId_Equal(userId); } - cb.query().setUserId_NotInScope(excludedUserIdList); + if (selectedUsers != null) { + List excludedUserIdList = new ArrayList(); + for (String uid : selectedUsers) { + excludedUserIdList.add(uid); + } + cb.query().setUserId_NotInScope(excludedUserIdList); + } + return userInfoBhv.selectList(cb); + } else if (roleId != null) { + RoleMappingCB cb = new RoleMappingCB(); + + // setup + cb.setupSelect_UserInfo(); + + if (selectedUsers != null) { + List excludedUserIdList = new ArrayList(); + for (String uid : selectedUsers) { + excludedUserIdList.add(uid); + } + cb.query().setUserId_NotInScope(excludedUserIdList); + } + cb.query().setRoleId_Equal(roleId); + List roleMappingList = roleMappingBhv.selectList(cb); + + List userInfoList = new ArrayList(); + for (RoleMapping roleMapping : roleMappingList) { + userInfoList.add(roleMapping.getUserInfo()); + } + return userInfoList; + } else if (groupId != null) { + GroupMappingCB cb = new GroupMappingCB(); + + // setup + cb.setupSelect_UserInfo(); + + if (selectedUsers != null) { + List excludedUserIdList = new ArrayList(); + for (String uid : selectedUsers) { + excludedUserIdList.add(uid); + } + cb.query().setUserId_NotInScope(excludedUserIdList); + } + cb.query().setGroupId_Equal(groupId); + List groupMappingList = groupMappingBhv + .selectList(cb); + + List userInfoList = new ArrayList(); + for (GroupMapping groupMapping : groupMappingList) { + userInfoList.add(groupMapping.getUserInfo()); + } + return userInfoList; + } else { + return new ArrayList(); } - return userInfoBhv.selectList(cb); } public List getSelectedUserList(String[] selectedUsers) { @@ -71,6 +131,50 @@ return userInfoBhv.selectList(cb); } + public List> getUserGroupList(String userId) { + List> userGroupList = new ArrayList>(); + + RoleMappingCB cb1 = new RoleMappingCB(); + // setup + cb1.setupSelect_RoleInfo(); + cb1.query().setUserId_Equal(userId); + cb1.query().addOrderBy_RoleId_Asc(); + List roleMappingList = roleMappingBhv.selectList(cb1); + for (RoleMapping roleMapping : roleMappingList) { + Map map = new HashMap(); + map.put("value", SchedulerConstants.ROLE_PREFIX + + roleMapping.getRoleId()); + String name = roleMapping.getRoleInfo().getName(); + if (name == null) { + map.put("label", roleMapping.getRoleId()); + } else { + map.put("label", name); + } + userGroupList.add(map); + } + + GroupMappingCB cb2 = new GroupMappingCB(); + // setup + cb2.setupSelect_GroupInfo(); + cb2.query().setUserId_Equal(userId); + cb2.query().addOrderBy_GroupId_Asc(); + List groupMappingList = groupMappingBhv.selectList(cb2); + for (GroupMapping groupMapping : groupMappingList) { + Map map = new HashMap(); + map.put("value", SchedulerConstants.GROUP_PREFIX + + groupMapping.getGroupId()); + String name = groupMapping.getGroupInfo().getName(); + if (name == null) { + map.put("label", groupMapping.getGroupId()); + } else { + map.put("label", name); + } + userGroupList.add(map); + } + + return userGroupList; + } + public UserInfoBhv getUserInfoBhv() { return userInfoBhv; } @@ -78,4 +182,20 @@ public void setUserInfoBhv(UserInfoBhv userInfoBhv) { this.userInfoBhv = userInfoBhv; } + + public RoleMappingBhv getRoleMappingBhv() { + return roleMappingBhv; + } + + public void setRoleMappingBhv(RoleMappingBhv roleMappingBhv) { + this.roleMappingBhv = roleMappingBhv; + } + + public GroupMappingBhv getGroupMappingBhv() { + return groupMappingBhv; + } + + public void setGroupMappingBhv(GroupMappingBhv groupMappingBhv) { + this.groupMappingBhv = groupMappingBhv; + } } Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-18 13:57:14 UTC (rev 1372) @@ -40,6 +40,29 @@
    + + + + + + + + + + + + + + +
    User Group
    + + + ${f:h(u.label)} + + +
    + +
    @@ -49,8 +72,7 @@
    - - + @@ -60,7 +82,7 @@
    -
    +
    Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-18 12:29:52 UTC (rev 1371) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-18 13:57:14 UTC (rev 1372) @@ -41,6 +41,29 @@
    + + + + + + + + + + + + + + +
    User Group
    + + + ${f:h(u.label)} + + +
    + +
    @@ -50,8 +73,7 @@
    - - + @@ -61,7 +83,7 @@
    -
    +
    From svnnotify ¡÷ sourceforge.jp Wed Nov 19 13:15:58 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 19 Nov 2008 13:15:58 +0900 Subject: [pal-cvs 3638] [1373] mkdir chat Message-ID: <1227068158.764955.15797.nullmailer@users.sourceforge.jp> Revision: 1373 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1373 Author: sone Date: 2008-11-19 13:15:58 +0900 (Wed, 19 Nov 2008) Log Message: ----------- mkdir chat Added Paths: ----------- chat/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Wed Nov 19 13:35:36 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 19 Nov 2008 13:35:36 +0900 Subject: [pal-cvs 3639] [1374] imported chat portlet Message-ID: <1227069336.199800.32398.nullmailer@users.sourceforge.jp> Revision: 1374 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1374 Author: sone Date: 2008-11-19 13:35:36 +0900 (Wed, 19 Nov 2008) Log Message: ----------- imported chat portlet Added Paths: ----------- chat/trunk/ chat/trunk/LICENSE.txt chat/trunk/licenses/ chat/trunk/licenses/LICENSE.h2.html chat/trunk/licenses/LICENSE.hsqldb.txt chat/trunk/licenses/LICENSE.javassist.html chat/trunk/licenses/LICENSE.junit.html chat/trunk/licenses/LICENSE.ognl.txt chat/trunk/licenses/LICENSE.was_uow.html chat/trunk/licenses/NOTICE.txt chat/trunk/pom.xml chat/trunk/src/ chat/trunk/src/main/ chat/trunk/src/main/java/ chat/trunk/src/main/java/jp/ chat/trunk/src/main/java/jp/sf/ chat/trunk/src/main/java/jp/sf/pal/ chat/trunk/src/main/java/jp/sf/pal/chat/ chat/trunk/src/main/java/jp/sf/pal/chat/action/ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java chat/trunk/src/main/java/jp/sf/pal/chat/dao/ chat/trunk/src/main/java/jp/sf/pal/chat/dto/ chat/trunk/src/main/java/jp/sf/pal/chat/dxo/ chat/trunk/src/main/java/jp/sf/pal/chat/entity/ chat/trunk/src/main/java/jp/sf/pal/chat/form/ chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java chat/trunk/src/main/resources/ chat/trunk/src/main/resources/app.dicon chat/trunk/src/main/resources/application.properties chat/trunk/src/main/resources/application_ja.properties chat/trunk/src/main/resources/convention.dicon chat/trunk/src/main/resources/creator.dicon chat/trunk/src/main/resources/customizer.dicon chat/trunk/src/main/resources/data/ chat/trunk/src/main/resources/data/demo.sql chat/trunk/src/main/resources/env.txt chat/trunk/src/main/resources/env_ut.txt chat/trunk/src/main/resources/jdbc.dicon chat/trunk/src/main/resources/jp/ chat/trunk/src/main/resources/jp/sf/ chat/trunk/src/main/resources/jp/sf/pal/ chat/trunk/src/main/resources/jp/sf/pal/chat/ chat/trunk/src/main/resources/jp/sf/pal/chat/action/ chat/trunk/src/main/resources/jp/sf/pal/chat/dao/ chat/trunk/src/main/resources/jp/sf/pal/chat/dto/ chat/trunk/src/main/resources/jp/sf/pal/chat/dxo/ chat/trunk/src/main/resources/jp/sf/pal/chat/entity/ chat/trunk/src/main/resources/jp/sf/pal/chat/form/ chat/trunk/src/main/resources/log4j.properties chat/trunk/src/main/resources/s2container.dicon chat/trunk/src/main/webapp/ chat/trunk/src/main/webapp/WEB-INF/ chat/trunk/src/main/webapp/WEB-INF/chatlog/ chat/trunk/src/main/webapp/WEB-INF/portlet.xml chat/trunk/src/main/webapp/WEB-INF/struts-config.xml chat/trunk/src/main/webapp/WEB-INF/tld/ chat/trunk/src/main/webapp/WEB-INF/tld/portlet.tld chat/trunk/src/main/webapp/WEB-INF/validator-rules.xml chat/trunk/src/main/webapp/WEB-INF/view/ chat/trunk/src/main/webapp/WEB-INF/view/chat/ chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp chat/trunk/src/main/webapp/WEB-INF/view/common/ chat/trunk/src/main/webapp/WEB-INF/view/common/common.jsp chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp chat/trunk/src/main/webapp/WEB-INF/view/index.jsp chat/trunk/src/main/webapp/WEB-INF/web.xml chat/trunk/src/test/ chat/trunk/src/test/java/ chat/trunk/src/test/java/jp/ chat/trunk/src/test/java/jp/sf/ chat/trunk/src/test/java/jp/sf/pal/ chat/trunk/src/test/java/jp/sf/pal/chat/ chat/trunk/src/test/java/jp/sf/pal/chat/action/ chat/trunk/src/test/java/jp/sf/pal/chat/dao/ chat/trunk/src/test/java/jp/sf/pal/chat/dto/ chat/trunk/src/test/java/jp/sf/pal/chat/dxo/ chat/trunk/src/test/java/jp/sf/pal/chat/entity/ chat/trunk/src/test/java/jp/sf/pal/chat/form/ chat/trunk/src/test/resources/ -------------- next part -------------- Added: chat/trunk/LICENSE.txt =================================================================== --- chat/trunk/LICENSE.txt (rev 0) +++ chat/trunk/LICENSE.txt 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: chat/trunk/licenses/LICENSE.h2.html =================================================================== --- chat/trunk/licenses/LICENSE.h2.html (rev 0) +++ chat/trunk/licenses/LICENSE.h2.html 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,396 @@ + + + +License + + + +
    + +

    License

    + +

    Summary and License FAQ

    +This license is a modified version of the MPL 1.1 available at www.mozilla.org/MPL, +the changes are underlined. +There is a License FAQ section at the Mozilla web site, most of that is applicable to the H2 License as well. +
      +
    • You can use H2 for free. You can integrate it into your application (including commercial applications), and you can distribute it. +
    • Files containing only your code are not covered by this license (it is 'commercial friendly'). +
    • Modifications to the H2 source code must be published. +
    • You don't need to provide the source code of H2 if you did not modify anything. +
    +However, nobody is allowed to rename H2, modify it a little, and sell it as a database engine without telling the customers it is in fact H2. +This happened to HSQLDB, when a company called 'bungisoft' copied HSQLDB, renamed it to 'RedBase', and tried to sell it, +hiding the fact that it was, in fact, just HSQLDB. At this time, it seems 'bungisoft' does not exist any more, but you can use the +Wayback Machine of http://www.archive.org and look for old web pages of http://www.bungisoft.com. +

    +About porting the source code to another language (for example C# or C++): Converted source code (even if done manually) stays under the same +copyright and license as the original code. The copyright of the ported source code does not (automatically) go to the person ported the code. + +

    H2 License, Version 1.0

    + +

    1. Definitions

    +

    1.0.1. "Commercial Use" + means distribution or otherwise making the Covered Code available to a third party. +

    +

    1.1. "Contributor" + means each entity that creates or contributes to the creation of Modifications. +

    +

    1.2. "Contributor Version" + means the combination of the Original Code, prior Modifications used by a Contributor, + and the Modifications made by that particular Contributor. +

    +

    1.3. "Covered Code" + means the Original Code or Modifications or the combination of the Original Code and + Modifications, in each case including portions thereof. +

    +

    1.4. "Electronic Distribution Mechanism" + means a mechanism generally accepted in the software development community for the + electronic transfer of data. +

    +

    1.5. "Executable" + means Covered Code in any form other than Source Code. +

    +

    1.6. "Initial Developer" + means the individual or entity identified as the Initial Developer in the Source Code + notice required by Exhibit A. +

    +

    1.7. "Larger Work" + means a work which combines Covered Code or portions thereof with code not governed + by the terms of this License. +

    +

    1.8. "License" + means this document. +

    +

    1.8.1. "Licensable" + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently acquired, any and all of the rights + conveyed herein. +

    +

    1.9. "Modifications" + means any addition to or deletion from the substance or structure of either the + Original Code or any previous Modifications. When Covered Code is released as a + series of files, a Modification is: +

    +
      +
    1. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. +
    2. Any new file that contains any part of the Original Code or + previous Modifications. +
    +

    1.10. "Original Code" + means Source Code of computer software code which is described in the Source Code + notice required by Exhibit A as Original Code, and which, + at the time of its release under this License is not already Covered Code governed + by this License. +

    +

    1.10.1. "Patent Claims" + means any patent claim(s), now owned or hereafter acquired, including without + limitation, method, process, and apparatus claims, in any patent Licensable by + grantor. +

    +

    1.11. "Source Code" + means the preferred form of the Covered Code for making modifications to it, + including all modules it contains, plus any associated interface definition files, + scripts used to control compilation and installation of an Executable, or source + code differential comparisons against either the Original Code or another well known, + available Covered Code of the Contributor's choice. The Source Code can be in a + compressed or archival form, provided the appropriate decompression or de-archiving + software is widely available for no charge. +

    +

    1.12. "You" (or "Your") + means an individual or a legal entity exercising rights under, and complying with + all of the terms of, this License or a future version of this License issued under + Section 6.1. For legal entities, "You" includes any entity + which controls, is controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or otherwise, or (b) + ownership of more than fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. +

    + +

    2. Source Code License

    +

    2.1. The Initial Developer Grant

    +

    The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive + license, subject to third party intellectual property claims: +

      +
    1. under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, + sublicense and distribute the Original Code (or portions thereof) with or without + Modifications, and/or as part of a Larger Work; and +
    2. under Patents Claims infringed by the making, using or selling + of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or + otherwise dispose of the Original Code (or portions thereof). +
    3. the licenses granted in this Section 2.1 + (a) and (b) are effective on + the date Initial Developer first distributes Original Code under the terms of this + License. +
    4. Notwithstanding Section 2.1 (b) + above, no patent license is granted: 1) for code that You delete from the Original Code; + 2) separate from the Original Code; or 3) for infringements caused by: i) the + modification of the Original Code or ii) the combination of the Original Code with other + software or devices. +
    + +

    2.2. Contributor Grant

    +

    Subject to third party intellectual property claims, each Contributor hereby grants You + a world-wide, royalty-free, non-exclusive license +

      +
    1. under intellectual property rights (other than patent or trademark) + Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and + distribute the Modifications created by such Contributor (or portions thereof) either on + an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger + Work; and +
    2. under Patent Claims infringed by the making, using, or selling of + Modifications made by that Contributor either alone and/or in combination with its + Contributor Version (or portions of such combination), to make, use, sell, offer for + sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor + (or portions thereof); and 2) the combination of Modifications made by that Contributor + with its Contributor Version (or portions of such combination). +
    3. the licenses granted in Sections 2.2 + (a) and 2.2 (b) are effective + on the date Contributor first makes Commercial Use of the Covered Code. +
    4. Notwithstanding Section 2.2 (b) + above, no patent license is granted: 1) for any code that Contributor has deleted from + the Contributor Version; 2) separate from the Contributor Version; 3) for infringements + caused by: i) third party modifications of Contributor Version or ii) the combination of + Modifications made by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code + in the absence of Modifications made by that Contributor. +
    + +

    3. Distribution Obligations

    +

    3.1. Application of License

    +

    The Modifications which You create or to which You contribute are governed by the terms + of this License, including without limitation Section 2.2. The + Source Code version of Covered Code may be distributed only under the terms of this License + or a future version of this License released under Section 6.1, + and You must include a copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code version that alters or + restricts the applicable version of this License or the recipients' rights hereunder. + However, You may include an additional document offering the additional rights described in + Section 3.5. +

    3.2. Availability of Source Code

    +

    Any Modification which You create or to which You contribute must be made available in + Source Code form under the terms of this License either on the same media as an Executable + version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic Distribution Mechanism, + must remain available for at least twelve (12) months after the date it initially became + available, or at least six (6) months after a subsequent version of that particular + Modification has been made available to such recipients. You are responsible for ensuring + that the Source Code version remains available even if the Electronic Distribution + Mechanism is maintained by a third party. +

    3.3. Description of Modifications

    + +

    You must cause all Covered Code to which You contribute to contain a file documenting the + changes You made to create that Covered Code and the date of any change. You must include a + prominent statement that the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the Initial Developer in + (a) the Source Code, and (b) in any notice in an Executable version or related documentation + in which You describe the origin or ownership of the Covered Code. +

    3.4. Intellectual Property Matters

    +
      +
    1. Third Party Claims: + If Contributor has knowledge that a license under a third party's intellectual property + rights is required to exercise the rights granted by such Contributor under Sections + 2.1 or 2.2, Contributor must include a + text file with the Source Code distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will know whom to contact. If + Contributor obtains such knowledge after the Modification is made available as described in + Section 3.2, Contributor shall promptly modify the LEGAL file in + all copies Contributor makes available thereafter and shall take other steps (such as + notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who + received the Covered Code that new knowledge has been obtained. +
    2. Contributor APIs: + If Contributor's Modifications include an application programming interface and Contributor + has knowledge of patent licenses which are reasonably necessary to implement that + API, Contributor must also include this information in the legal file. +
    3. Representations: + Contributor represents that, except as disclosed pursuant to Section 3.4 + (a) above, Contributor believes that Contributor's Modifications + are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the + rights conveyed by this License. +
    +

    3.5. Required Notices

    +

    You must duplicate the notice in Exhibit A in each file of the + Source Code. If it is not possible to put such notice in a particular Source Code file due to + its structure, then You must include such notice in a location (such as a relevant directory) + where a user would be likely to look for such a notice. If You created one or more + Modification(s) You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership rights relating to + Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity + or liability obligations to one or more recipients of Covered Code. However, You may do so + only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You + must make it absolutely clear than any such warranty, support, indemnity or liability + obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer + and every Contributor for any liability incurred by the Initial Developer or such Contributor + as a result of warranty, support, indemnity or liability terms You offer. +

    3.6. Distribution of Executable Versions

    +

    You may distribute Covered Code in Executable form only if the requirements of Sections + 3.1, 3.2, + 3.3, 3.4 and + 3.5 have been met for that Covered Code, and if You include a + notice stating that the Source Code version of the Covered Code is available under the terms + of this License, including a description of how and where You have fulfilled the obligations + of Section 3.2. The notice must be conspicuously included in any + notice in an Executable version, related documentation or collateral in which You describe + recipients' rights relating to the Covered Code. You may distribute the Executable version of + Covered Code or ownership rights under a license of Your choice, which may contain terms + different from this License, provided that You are in compliance with the terms of this + License and that the license for the Executable version does not attempt to limit or alter the + recipient's rights in the Source Code version from the rights set forth in this License. If + You distribute the Executable version under a different license You must make it absolutely + clear that any terms which differ from this License are offered by You alone, not by the + Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and + every Contributor for any liability incurred by the Initial Developer or such Contributor as + a result of any such terms You offer. +

    3.7. Larger Works

    + +

    You may create a Larger Work by combining Covered Code with other code not governed by the + terms of this License and distribute the Larger Work as a single product. In such a case, + You must make sure the requirements of this License are fulfilled for the Covered Code. +

    4. Inability to Comply Due to Statute or Regulation.

    +

    If it is impossible for You to comply with any of the terms of this License with respect to + some or all of the Covered Code due to statute, judicial order, or regulation then You must: + (a) comply with the terms of this License to the maximum extent possible; and (b) describe + the limitations and the code they affect. Such description must be included in the + legal file described in Section + 3.4 and must be included with all distributions of the Source Code. + Except to the extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to understand it. +

    5. Application of this License.

    +

    This License applies to code to which the Initial Developer has attached the notice in + Exhibit A and to related Covered Code. +

    6. Versions of the License.

    + +

    6.1. New Versions

    +

    The H2 Group may publish revised and/or new versions + of the License from time to time. Each version will be given a distinguishing version number. +

    6.2. Effect of New Versions

    +

    Once Covered Code has been published under a particular version of the License, You may + always continue to use it under the terms of that version. You may also choose to use such + Covered Code under the terms of any subsequent version of the License published by the H2 Group. + No one other than the H2 Group has the right to modify the terms applicable to Covered Code + created under this License. +

    6.3. Derivative Works

    +

    If You create or use a modified version of this License (which you may only do in order to + apply it to code which is not already Covered Code governed by this License), You must (a) + rename Your license so that the phrases "H2 Group", "H2" + or any confusingly similar phrase do not appear in your license (except to note that + your license differs from this License) and (b) otherwise make it clear that Your version of + the license contains terms which differ from the H2 License. + (Filling in the name of the Initial Developer, Original Code or Contributor in the + notice described in Exhibit A shall not of themselves be deemed to + be modifications of this License.) +

    7. Disclaimer of Warranty

    +

    Covered code is provided under this license on an "as is" + basis, without warranty of any kind, either expressed or implied, including, without + limitation, warranties that the covered code is free of defects, merchantable, fit for a + particular purpose or non-infringing. The entire risk as to the quality and performance of + the covered code is with you. Should any covered code prove defective in any respect, you + (not the initial developer or any other contributor) assume the cost of any necessary + servicing, repair or correction. This disclaimer of warranty constitutes an essential part + of this license. No use of any covered code is authorized hereunder except under this + disclaimer. +

    8. Termination

    +

    8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure such breach + within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which + are properly granted shall survive any termination of this License. Provisions which, by + their nature, must remain in effect beyond the termination of this License shall survive. +

    8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declaratory judgment actions) against Initial Developer or a Contributor + (the Initial Developer or Contributor against whom You file such action is referred to + as "Participant") alleging that: +

      +
    1. such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such Participant to You under + Sections 2.1 and/or 2.2 of this + License shall, upon 60 days notice from Participant terminate prospectively, unless if + within 60 days after receipt of notice You either: (i) agree in writing to pay + Participant a mutually agreeable reasonable royalty for Your past and future use of + Modifications made by such Participant, or (ii) withdraw Your litigation claim with + respect to the Contributor Version against such Participant. If within 60 days of + notice, a reasonable royalty and payment arrangement are not mutually agreed upon in + writing by the parties or the litigation claim is not withdrawn, the rights granted by + Participant to You under Sections 2.1 and/or + 2.2 automatically terminate at the expiration of the 60 day + notice period specified above. +
    2. any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then any rights + granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first + made, used, sold, distributed, or had made, Modifications made by that Participant. +
    +

    8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or indirectly infringes + any patent where such claim is resolved (such as by license or settlement) prior to the + initiation of patent infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or + 2.2 shall be taken into account in determining the amount or + value of any payment or license. +

    8.4. In the event of termination under Sections + 8.1 or 8.2 above, all end user + license agreements (excluding distributors and resellers) which have been validly + granted by You or any distributor hereunder prior to termination shall survive + termination. +

    9. Limitation of Liability

    + +

    Under no circumstances and under no legal theory, whether + tort (including negligence), contract, or otherwise, shall you, the initial developer, + any other contributor, or any distributor of covered code, or any supplier of any of + such parties, be liable to any person for any indirect, special, incidental, or + consequential damages of any character including, without limitation, damages for loss + of goodwill, work stoppage, computer failure or malfunction, or any and all other + commercial damages or losses, even if such party shall have been informed of the + possibility of such damages. This limitation of liability shall not apply to liability + for death or personal injury resulting from such party's negligence to the extent + applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion + or limitation of incidental or consequential damages, so this exclusion and limitation + may not apply to you. +

    10. United States Government End Users

    +

    The Covered Code is a "commercial item", as that term is defined in 48 + C.F.R. 2.101 (October 1995), consisting of + "commercial computer software" and "commercial computer software documentation", as such + terms are used in 48 C.F.R. 12.212 (September 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. + 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Code with only those rights set forth herein. +

    11. Miscellaneous

    +

    This License represents the complete agreement concerning subject matter hereof. If + any provision of this License is held to be unenforceable, such provision shall be + reformed only to the extent necessary to make it enforceable. This License shall be + governed by Swiss law provisions (except to the extent applicable law, if any, + provides otherwise), excluding its conflict-of-law provisions. With respect to + disputes in which at least one party is a citizen of, or an entity chartered or + registered to do business in Switzerland, any litigation relating to + this License shall be subject to the jurisdiction of Switzerland, + with the losing party responsible for costs, including without limitation, court + costs and reasonable attorneys' fees and expenses. The application of the United + Nations Convention on Contracts for the International Sale of Goods is expressly + excluded. Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this License. +

    12. Responsibility for Claims

    + +

    As between Initial Developer and the Contributors, each party is responsible for + claims and damages arising, directly or indirectly, out of its utilization of rights + under this License and You agree to work with Initial Developer and Contributors to + distribute such responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. +

    13. Multiple-Licensed Code

    +

    Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits + you to utilize portions of the Covered Code under Your choice of this + or the alternative licenses, if any, specified by the Initial Developer in the file + described in Exhibit A. +

    Exhibit A

    + +
    +Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
    +Initial Developer: H2 Group
    +
    + +
    Added: chat/trunk/licenses/LICENSE.hsqldb.txt =================================================================== --- chat/trunk/licenses/LICENSE.hsqldb.txt (rev 0) +++ chat/trunk/licenses/LICENSE.hsqldb.txt 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,64 @@ +/* Copyright (c) 1995-2000, The Hypersonic SQL Group. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the Hypersonic SQL Group nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE HYPERSONIC SQL GROUP, + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This software consists of voluntary contributions made by many individuals + * on behalf of the Hypersonic SQL Group. + * + * + * For work added by the HSQL Development Group: + * + * Copyright (c) 2001-2004, The HSQL Development Group + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the HSQL Development Group nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ Added: chat/trunk/licenses/LICENSE.javassist.html =================================================================== --- chat/trunk/licenses/LICENSE.javassist.html (rev 0) +++ chat/trunk/licenses/LICENSE.javassist.html 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,372 @@ + + +Javassist License + + + + +
    MOZILLA PUBLIC LICENSE
    Version +1.1 +

    +


    +
    +

    1. Definitions. +

      1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. +

      1.1. ''Contributor'' means each entity that creates or contributes + to the creation of Modifications. +

      1.2. ''Contributor Version'' means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications made by + that particular Contributor. +

      1.3. ''Covered Code'' means the Original Code or Modifications or + the combination of the Original Code and Modifications, in each case including + portions thereof. +

      1.4. ''Electronic Distribution Mechanism'' means a mechanism + generally accepted in the software development community for the electronic + transfer of data. +

      1.5. ''Executable'' means Covered Code in any form other than Source + Code. +

      1.6. ''Initial Developer'' means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. +

      1.7. ''Larger Work'' means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. +

      1.8. ''License'' means this document. +

      1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or subsequently + acquired, any and all of the rights conveyed herein. +

      1.9. ''Modifications'' means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: +

        A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. +

        B. Any new file that contains any part of the Original Code or + previous Modifications.
         

      1.10. ''Original Code'' + means Source Code of computer software code which is described in the Source + Code notice required by Exhibit A as Original Code, and which, at the + time of its release under this License is not already Covered Code governed by + this License. +

      1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation,  method, process, and + apparatus claims, in any patent Licensable by grantor. +

      1.11. ''Source Code'' means the preferred form of the Covered Code + for making modifications to it, including all modules it contains, plus any + associated interface definition files, scripts used to control compilation and + installation of an Executable, or source code differential comparisons against + either the Original Code or another well known, available Covered Code of the + Contributor's choice. The Source Code can be in a compressed or archival form, + provided the appropriate decompression or de-archiving software is widely + available for no charge. +

      1.12. "You'' (or "Your")  means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this License + or a future version of this License issued under Section 6.1. For legal + entities, "You'' includes any entity which controls, is controlled by, or is + under common control with You. For purposes of this definition, "control'' + means (a) the power, direct or indirect, to cause the direction or management + of such entity, whether by contract or otherwise, or (b) ownership of more + than fifty percent (50%) of the outstanding shares or beneficial ownership of + such entity.

    2. Source Code License. +
      2.1. The Initial Developer Grant.
      The Initial Developer hereby + grants You a world-wide, royalty-free, non-exclusive license, subject to third + party intellectual property claims: +
        (a)  under intellectual property rights (other than + patent or trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original Code (or + portions thereof) with or without Modifications, and/or as part of a Larger + Work; and +

        (b) under Patents Claims infringed by the making, using or selling + of Original Code, to make, have made, use, practice, sell, and offer for + sale, and/or otherwise dispose of the Original Code (or portions thereof). +

          +
          (c) the licenses granted in this Section 2.1(a) and (b) + are effective on the date Initial Developer first distributes Original Code + under the terms of this License. +

          (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) separate + from the Original Code;  or 3) for infringements caused by: i) the + modification of the Original Code or ii) the combination of the Original + Code with other software or devices.
           

        2.2. Contributor + Grant.
        Subject to third party intellectual property claims, each + Contributor hereby grants You a world-wide, royalty-free, non-exclusive + license +

          (a)  under intellectual property rights (other + than patent or trademark) Licensable by Contributor, to use, reproduce, + modify, display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an unmodified + basis, with other Modifications, as Covered Code and/or as part of a Larger + Work; and +

          (b) under Patent Claims infringed by the making, using, or selling + of  Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, and/or + otherwise dispose of: 1) Modifications made by that Contributor (or portions + thereof); and 2) the combination of  Modifications made by that + Contributor with its Contributor Version (or portions of such + combination). +

          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of the Covered + Code. +

          (d)    Notwithstanding Section 2.2(b) above, no + patent license is granted: 1) for any code that Contributor has deleted from + the Contributor Version; 2)  separate from the Contributor + Version;  3)  for infringements caused by: i) third party + modifications of Contributor Version or ii)  the combination of + Modifications made by that Contributor with other software  (except as + part of the Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by that + Contributor.

      +


      3. Distribution Obligations. +

        3.1. Application of License.
        The Modifications which You create + or to which You contribute are governed by the terms of this License, + including without limitation Section 2.2. The Source Code version of + Covered Code may be distributed only under the terms of this License or a + future version of this License released under Section 6.1, and You must + include a copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code version + that alters or restricts the applicable version of this License or the + recipients' rights hereunder. However, You may include an additional document + offering the additional rights described in Section 3.5. +

        3.2. Availability of Source Code.
        Any Modification which You + create or to which You contribute must be made available in Source Code form + under the terms of this License either on the same media as an Executable + version or via an accepted Electronic Distribution Mechanism to anyone to whom + you made an Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) months + after the date it initially became available, or at least six (6) months after + a subsequent version of that particular Modification has been made available + to such recipients. You are responsible for ensuring that the Source Code + version remains available even if the Electronic Distribution Mechanism is + maintained by a third party. +

        3.3. Description of Modifications.
        You must cause all Covered + Code to which You contribute to contain a file documenting the changes You + made to create that Covered Code and the date of any change. You must include + a prominent statement that the Modification is derived, directly or + indirectly, from Original Code provided by the Initial Developer and including + the name of the Initial Developer in (a) the Source Code, and (b) in any + notice in an Executable version or related documentation in which You describe + the origin or ownership of the Covered Code. +

        3.4. Intellectual Property Matters +

          (a) Third Party Claims.
          If Contributor has knowledge that a + license under a third party's intellectual property rights is required to + exercise the rights granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code distribution + titled "LEGAL'' which describes the claim and the party making the claim in + sufficient detail that a recipient will know whom to contact. If Contributor + obtains such knowledge after the Modification is made available as described + in Section 3.2, Contributor shall promptly modify the LEGAL file in all + copies Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) reasonably + calculated to inform those who received the Covered Code that new knowledge + has been obtained. +

          (b) Contributor APIs.
          If Contributor's Modifications include + an application programming interface and Contributor has knowledge of patent + licenses which are reasonably necessary to implement that API, Contributor + must also include this information in the LEGAL file. +
           

                  + (c)    Representations. +
          Contributor represents that, except as disclosed pursuant to Section + 3.4(a) above, Contributor believes that Contributor's Modifications are + Contributor's original creation(s) and/or Contributor has sufficient rights + to grant the rights conveyed by this License.
        +


        3.5. Required Notices.
        You must duplicate the notice in + Exhibit A in each file of the Source Code.  If it is not possible + to put such notice in a particular Source Code file due to its structure, then + You must include such notice in a location (such as a relevant directory) + where a user would be likely to look for such a notice.  If You created + one or more Modification(s) You may add your name as a Contributor to the + notice described in Exhibit A.  You must also duplicate this + License in any documentation for the Source Code where You describe + recipients' rights or ownership rights relating to Covered Code.  You may + choose to offer, and to charge a fee for, warranty, support, indemnity or + liability obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial Developer + or any Contributor. You must make it absolutely clear than any such warranty, + support, indemnity or liability obligation is offered by You alone, and You + hereby agree to indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as a result of + warranty, support, indemnity or liability terms You offer. +

        3.6. Distribution of Executable Versions.
        You may distribute + Covered Code in Executable form only if the requirements of Section + 3.1-3.5 have been met for that Covered Code, and if You include a + notice stating that the Source Code version of the Covered Code is available + under the terms of this License, including a description of how and where You + have fulfilled the obligations of Section 3.2. The notice must be + conspicuously included in any notice in an Executable version, related + documentation or collateral in which You describe recipients' rights relating + to the Covered Code. You may distribute the Executable version of Covered Code + or ownership rights under a license of Your choice, which may contain terms + different from this License, provided that You are in compliance with the + terms of this License and that the license for the Executable version does not + attempt to limit or alter the recipient's rights in the Source Code version + from the rights set forth in this License. If You distribute the Executable + version under a different license You must make it absolutely clear that any + terms which differ from this License are offered by You alone, not by the + Initial Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of any such terms You offer. + +

        3.7. Larger Works.
        You may create a Larger Work by combining + Covered Code with other code not governed by the terms of this License and + distribute the Larger Work as a single product. In such a case, You must make + sure the requirements of this License are fulfilled for the Covered +Code.

      4. Inability to Comply Due to Statute or Regulation. +
        If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to statute, + judicial order, or regulation then You must: (a) comply with the terms of this + License to the maximum extent possible; and (b) describe the limitations and + the code they affect. Such description must be included in the LEGAL file + described in Section 3.4 and must be included with all distributions of + the Source Code. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it.
      5. Application of this License. +
        This License applies to code to which the Initial Developer has attached + the notice in Exhibit A and to related Covered Code.
      6. Versions +of the License. +
        6.1. New Versions.
        Netscape Communications Corporation + (''Netscape'') may publish revised and/or new versions of the License from + time to time. Each version will be given a distinguishing version number. +

        6.2. Effect of New Versions.
        Once Covered Code has been + published under a particular version of the License, You may always continue + to use it under the terms of that version. You may also choose to use such + Covered Code under the terms of any subsequent version of the License + published by Netscape. No one other than Netscape has the right to modify the + terms applicable to Covered Code created under this License. +

        6.3. Derivative Works.
        If You create or use a modified version + of this License (which you may only do in order to apply it to code which is + not already Covered Code governed by this License), You must (a) rename Your + license so that the phrases ''Mozilla'', ''MOZILLAPL'', ''MOZPL'', + ''Netscape'', "MPL", ''NPL'' or any confusingly similar phrase do not appear + in your license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license contains + terms which differ from the Mozilla Public License and Netscape Public + License. (Filling in the name of the Initial Developer, Original Code or + Contributor in the notice described in Exhibit A shall not of + themselves be deemed to be modifications of this License.)

      7. +DISCLAIMER OF WARRANTY. +
        COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS'' BASIS, WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT + LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, + FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE + QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED + CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR + CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS + LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER.
      8. TERMINATION. +
        8.1.  This License and the rights granted hereunder will + terminate automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall survive any + termination of this License. Provisions which, by their nature, must remain in + effect beyond the termination of this License shall survive. +

        8.2.  If You initiate litigation by asserting a patent + infringement claim (excluding declatory judgment actions) against Initial + Developer or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant")  alleging that: +

        (a)  such Participant's Contributor Version directly or + indirectly infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon + 60 days notice from Participant terminate prospectively, unless if within 60 + days after receipt of notice You either: (i)  agree in writing to pay + Participant a mutually agreeable reasonable royalty for Your past and future + use of Modifications made by such Participant, or (ii) withdraw Your + litigation claim with respect to the Contributor Version against such + Participant.  If within 60 days of notice, a reasonable royalty and + payment arrangement are not mutually agreed upon in writing by the parties or + the litigation claim is not withdrawn, the rights granted by Participant to + You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. +

        (b)  any software, hardware, or device, other than such + Participant's Contributor Version, directly or indirectly infringes any + patent, then any rights granted to You by such Participant under Sections + 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that Participant. +

        8.3.  If You assert a patent infringement claim against + Participant alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as by + license or settlement) prior to the initiation of patent infringement + litigation, then the reasonable value of the licenses granted by such + Participant under Sections 2.1 or 2.2 shall be taken into account in + determining the amount or value of any payment or license. +

        8.4.  In the event of termination under Sections 8.1 or 8.2 + above,  all end user license agreements (excluding distributors and + resellers) which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination.

      9. LIMITATION OF +LIABILITY. +
        UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING + NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY + OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY + OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR + MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH + PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS + LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL + INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND + LIMITATION MAY NOT APPLY TO YOU.
      10. U.S. GOVERNMENT END USERS. +
        The Covered Code is a ''commercial item,'' as that term is defined in 48 + C.F.R. 2.101 (Oct. 1995), consisting of ''commercial computer software'' and + ''commercial computer software documentation,'' as such terms are used in 48 + C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. + 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users + acquire Covered Code with only those rights set forth herein.
      11. +MISCELLANEOUS. +
        This License represents the complete agreement concerning subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. This License shall be governed by California law provisions + (except to the extent applicable law, if any, provides otherwise), excluding + its conflict-of-law provisions. With respect to disputes in which at least one + party is a citizen of, or an entity chartered or registered to do business in + the United States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern District of + California, with venue lying in Santa Clara County, California, with the + losing party responsible for costs, including without limitation, court costs + and reasonable attorneys' fees and expenses. The application of the United + Nations Convention on Contracts for the International Sale of Goods is + expressly excluded. Any law or regulation which provides that the language of + a contract shall be construed against the drafter shall not apply to this + License.
      12. RESPONSIBILITY FOR CLAIMS. +
        As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, out of its + utilization of rights under this License and You agree to work with Initial + Developer and Contributors to distribute such responsibility on an equitable + basis. Nothing herein is intended or shall be deemed to constitute any + admission of liability.
      13. MULTIPLE-LICENSED CODE. +
        Initial Developer may designate portions of the Covered Code as + ?Multiple-Licensed?.  ?Multiple-Licensed? means that the Initial + Developer permits you to utilize portions of the Covered Code under Your + choice of the MPL or the alternative licenses, if any, specified by the + Initial Developer in the file described in Exhibit A.
      +


      EXHIBIT A -Mozilla Public License. +

        The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at +
        http://www.mozilla.org/MPL/ +

        Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF
        ANY KIND, either express or implied. See the License + for the specific language governing rights and
        limitations under the + License. +

        The Original Code is Javassist. +

        The Initial Developer of the Original Code is Shigeru Chiba. + Portions created by the Initial Developer are
          + Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved. +

        Contributor(s): ______________________________________. + +

        Alternatively, the contents of this file may be used under the terms of + the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + in which case the provisions of the LGPL are applicable instead + of those above. If you wish to allow use of your version of this file only + under the terms of the LGPL, and not to allow others to + use your version of this file under the terms of the MPL, indicate your + decision by deleting the provisions above and replace them with the notice + and other provisions required by the LGPL. If you do not delete + the provisions above, a recipient may use your version of this file under + the terms of either the MPL or the LGPL. + +

      + + Added: chat/trunk/licenses/LICENSE.junit.html =================================================================== --- chat/trunk/licenses/LICENSE.junit.html (rev 0) +++ chat/trunk/licenses/LICENSE.junit.html 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,125 @@ + + + +Common Public License - v 1.0 + + + + + + +

      Common Public License - v 1.0 +

      +

      THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. +

      +

      1. DEFINITIONS +

      "Contribution" means: + +

        a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
        +b) in the case of each subsequent Contributor:
      + + +
        i) changes to the Program, and
      + + +
        ii) additions to the Program;
      + + +
        where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
      + +

      +

      "Contributor" means any person or entity that distributes the Program. +

      +

      "Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. +

      +

      "Program" means the Contributions distributed in accordance with this Agreement. +

      +

      "Recipient" means anyone who receives the Program under this Agreement, including all Contributors. +

      +

      2. GRANT OF RIGHTS + +

        a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
      + + +
      + + +
        b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
      + + +
      + + +
        c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
      + + +
      + + +
        d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
      + + +
      + +

      3. REQUIREMENTS +

      A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: + +

        a) it complies with the terms and conditions of this Agreement; and
      + + +
        b) its license agreement:
      + + +
        i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
      + + +
        ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
      + + +
        iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
      + + +
        iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
      + + +
      + +

      When the Program is made available in source code form: + +

        a) it must be made available under this Agreement; and
      + + +
        b) a copy of this Agreement must be included with each copy of the Program.
      + +

      +

      Contributors may not remove or alter any copyright notices contained within the Program. +

      +

      Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. +

      +

      4. COMMERCIAL DISTRIBUTION +

      Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. +

      +

      For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. +

      +

      5. NO WARRANTY +

      EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. +

      +

      6. DISCLAIMER OF LIABILITY +

      EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +

      +

      7. GENERAL +

      If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +

      +

      If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. +

      +

      All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. +

      +

      Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. +

      +

      This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. +

      +

      + + + + \ No newline at end of file Added: chat/trunk/licenses/LICENSE.ognl.txt =================================================================== --- chat/trunk/licenses/LICENSE.ognl.txt (rev 0) +++ chat/trunk/licenses/LICENSE.ognl.txt 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,32 @@ +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* * +* Copyright (c) 1998-2004, Drew Davidson and Luke Blanshard * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions are * +* met: * +* * +* Redistributions of source code must retain the above copyright notice, * +* this list of conditions and the following disclaimer. * +* Redistributions in binary form must reproduce the above copyright * +* notice, this list of conditions and the following disclaimer in the * +* documentation and/or other materials provided with the distribution. * +* Neither the name of the Drew Davidson nor the names of its contributors * +* may be used to endorse or promote products derived from this software * +* without specific prior written permission. * +* * +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * +* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * +* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * +* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * +* DAMAGE. * +* * +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Added: chat/trunk/licenses/LICENSE.was_uow.html =================================================================== --- chat/trunk/licenses/LICENSE.was_uow.html (rev 0) +++ chat/trunk/licenses/LICENSE.was_uow.html 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,18 @@ +You may use or redistribute the files or modules contained in this jar subject to the following terms: + +The WebSphere Application Server files or modules contained in this jar +may be redistrubuted as provided by IBM to you, and only as part of Your +application distribution. + +You may not use IBM's name or trademarks in connection with the marketing +of Your applications without IBM's prior written consent. + +IBM PROVIDES THESE FILES OR MODULES ON AN "AS IS" BASIS AND IBM DISCLAIMS +ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +WARRANTY OF NON-INFRINGEMENT AND THE IMPLIED WARRANTIES OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. IBM SHALL NOT BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OR OPERATION OF THE FILES OR MODULES . IBM HAS NO OBLIGATION +TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR MODIFICATIONS TO +THE FILES OR MODULES . + Added: chat/trunk/licenses/NOTICE.txt =================================================================== --- chat/trunk/licenses/NOTICE.txt (rev 0) +++ chat/trunk/licenses/NOTICE.txt 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,6 @@ +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +This product includes software developed by the +OpenSymphony Group (http://www.opensymphony.com/). + \ No newline at end of file Added: chat/trunk/pom.xml =================================================================== --- chat/trunk/pom.xml (rev 0) +++ chat/trunk/pom.xml 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,272 @@ + + 4.0.0 + jp.sf.pal.chat + chat + 0.0.1 + war + chat + + src/main/java + src/main/webapp/WEB-INF/classes + + + src/main/resources + + + target/test-classes + src/test/java + + + src/test/resources + + + validate + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + maven-eclipse-plugin + + 1.5 + + + + + + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + local + Local Repository + file:repo + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + org.apache.geronimo.specs + geronimo-jsp_2.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-servlet_2.4_spec + 1.0 + + + junit + junit + 3.8.2 + + + junit-addons + junit-addons + 1.4 + + + antlr + antlr + 2.7.7 + + + aopalliance + aopalliance + 1.0 + + + commons-beanutils + commons-beanutils + 1.7.0 + + + commons-collections + commons-collections + 3.1 + + + commons-digester + commons-digester + 1.6 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2 + + + commons-io + commons-io + 1.3.2 + + + commons-logging + commons-logging + 1.1 + + + commons-validator + commons-validator + 1.2.0 + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jpa_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + com.h2database + h2 + 1.0.69 + + + oro + oro + 2.0.8 + + + taglibs + standard + 1.1.2 + + + jboss + javassist + 3.4.ga + + + jstl + jstl + 1.1.2 + + + log4j + log4j + 1.2.13 + + + ognl + ognl + 2.6.9-patch-20070908 + + + poi + poi + 3.0-FINAL + + + org.seasar.dao + s2-dao + 1.0.48 + + + org.seasar.dao + s2-dao-tiger + 1.0.48 + + + org.seasar.container + s2-extension + 2.4.29 + + + org.seasar.container + s2-framework + 2.4.29 + + + org.seasar.container + s2-tiger + 2.4.29 + + + org.seasar.sastruts + sa-struts + 1.0.4-sp1 + + + struts + struts + 1.2.9 + + + commons-lang + commons-lang + 2.3 + + + org.seasar.sastruts + sa-struts-portlet + 1.0.0-rc3 + + + org.easymock + easymock + + + commons-logging + commons-logging + + + junit + junit + + + + + Added: chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,74 @@ +/* + * Copyright 2004-2008 the Seasar Foundation and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.chat.action; + +import java.text.DateFormat; +import java.util.Date; +import java.util.LinkedList; + +import javax.annotation.Resource; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.chat.form.ChatForm; + +import org.apache.commons.lang.StringEscapeUtils; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.util.ResponseUtil; + +public class ChatAction { + @Resource + @ActionForm + protected ChatForm chatForm; + + protected ChatLog chatLog = new ChatLog(); + + public ServletContext context; + public HttpServletRequest request; + + @Execute(validator = false) + public String index() { + return "index.jsp"; + } + + @Execute(validator = false) + public String chat() { + Date date = new Date(); + String d = DateFormat.getInstance().format(date); + String name = chatForm.name; + String msg = StringEscapeUtils.escapeHtml(chatForm.msg); + chatLog.loadLog(context); + chatLog.add((name + ":" + msg + " (" + d + ")"), context); + loadChat(); + return null; + } + + @Execute(validator = false) + public String loadChat() { + LinkedList dataList = chatLog.loadLog(context); + if (dataList != null && dataList.size() != 0) { + StringBuffer buffer = new StringBuffer(""); + for(int i=0; (i < ChatConstants.DEFAULT_SHOW_NUM && i < dataList.size()) ;i++){ + buffer.append("
      "); + buffer.append(dataList.get(i)); + } + ResponseUtil.write(buffer.toString()); + } + return null; + } + +} Added: chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,13 @@ +package jp.sf.pal.chat.action; + +public class ChatConstants { + + public static final String PREFIX = "jp.sf.pal.chat"; + public static final String LOG_ATTRIBUTE_NAME = PREFIX + ".log"; + public static final String LAST_SAVED = PREFIX + ".last_saved"; + public static final String DEFAULT_FILE_DIR = "/WEB-INF/chatlog"; + public static final String CHAT_LOG_FILE = DEFAULT_FILE_DIR + "/log"; + public static final int DEFAULT_SHOW_NUM = 10; + public static final long SAVE_INTERVAL = 5 * 60 * 1000; + +} Added: chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,76 @@ +package jp.sf.pal.chat.action; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.Date; +import java.util.LinkedList; + +import javax.servlet.ServletContext; + +public class ChatLog { + + private LinkedList chatLogList; + + public ChatLog() { + this.chatLogList = new LinkedList(); + } + + public synchronized LinkedList add(String msg, ServletContext context) { + loadLog(context); + chatLogList.addFirst(msg); + saveLog(context); + return chatLogList; + } + + public synchronized LinkedList loadLog(ServletContext context) { + chatLogList = (LinkedList) context + .getAttribute(ChatConstants.LOG_ATTRIBUTE_NAME); + if (chatLogList == null) { + try { + fileLoad(context); + } catch (Exception e) { + chatLogList = new LinkedList(); + } + } + return (LinkedList)chatLogList.clone(); + } + + private void saveLog(ServletContext context) { + context.setAttribute(ChatConstants.LOG_ATTRIBUTE_NAME, chatLogList); + Long last_saved = Long.decode("0"); + if (context.getAttribute(ChatConstants.LAST_SAVED) != null) { + last_saved = Long.decode((String)context.getAttribute(ChatConstants.LAST_SAVED)); + } + long now = new Date().getTime(); + if ((now - last_saved.longValue()) > ChatConstants.SAVE_INTERVAL) { + try { + fileSave(context); + } catch (Exception e) { + e.printStackTrace(); + } + context.setAttribute(ChatConstants.LAST_SAVED, Long.valueOf(now).toString()); + } + } + + private void fileSave(ServletContext context) throws Exception { + FileOutputStream fileOutputStream = new FileOutputStream(context + .getRealPath(ChatConstants.CHAT_LOG_FILE)); + ObjectOutputStream objectOutputStream = new ObjectOutputStream( + fileOutputStream); + objectOutputStream.writeObject(chatLogList); + objectOutputStream.close(); + fileOutputStream.close(); + } + + private void fileLoad(ServletContext context) throws Exception { + FileInputStream fileInputStream = new FileInputStream(context + .getRealPath(ChatConstants.CHAT_LOG_FILE)); + ObjectInputStream objectInputStream = new ObjectInputStream( + fileInputStream); + chatLogList = (LinkedList) objectInputStream.readObject(); + fileInputStream.close(); + objectInputStream.close(); + } +} Added: chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,26 @@ +/* + * Copyright 2004-2008 the Seasar Foundation and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.chat.action; + +import org.seasar.struts.annotation.Execute; + +public class IndexAction { + + @Execute(validator = false) + public String index() { + return "index.jsp"; + } +} Added: chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,6 @@ +package jp.sf.pal.chat.form; + +public class ChatForm { + public String name; + public String msg; +} Added: chat/trunk/src/main/resources/app.dicon =================================================================== --- chat/trunk/src/main/resources/app.dicon (rev 0) +++ chat/trunk/src/main/resources/app.dicon 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,11 @@ + + + + + + + + + + Added: chat/trunk/src/main/resources/application.properties =================================================================== --- chat/trunk/src/main/resources/application.properties (rev 0) +++ chat/trunk/src/main/resources/application.properties 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,23 @@ +errors.header=

        +errors.footer=
      +errors.prefix=
    • +errors.suffix=
    • +errors.invalid={0} is invalid. +errors.maxlength={0} can not be greater than {1} characters. +errors.minlength={0} can not be less than {1} characters. +errors.maxbytelength={0} can not be greater than {1} bytes. +errors.minbytelength={0} can not be less than {1} bytes. +errors.range={0} is not in the range {1} through {2}. +errors.required={0} is required. +errors.byte={0} must be an byte. +errors.date={0} is not a date. +errors.double={0} must be an double. +errors.float={0} must be an float. +errors.integer={0} must be an integer. +errors.long={0} must be an long. +errors.short={0} must be an short. +errors.creditcard={0} is not a valid credit card number. +errors.email={0} is an invalid e-mail address. +errors.url={0} is an invalid url (web address). + +errors.upload.size=Uploading failed, because actual size {0} bytes exceeded limit size {1} bytes. \ No newline at end of file Added: chat/trunk/src/main/resources/application_ja.properties =================================================================== --- chat/trunk/src/main/resources/application_ja.properties (rev 0) +++ chat/trunk/src/main/resources/application_ja.properties 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,23 @@ +errors.header=
        +errors.footer=
      +errors.prefix=
    • +errors.suffix=
    • +errors.invalid={0}\u304c\u4e0d\u6b63\u3067\u3059\u3002 +errors.maxlength={0}\u306e\u9577\u3055\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002 +errors.minlength={0}\u306e\u9577\u3055\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002 +errors.maxbytelength={0}\u306e\u30d0\u30a4\u30c8\u9577\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002 +errors.minbytelength={0}\u306e\u30d0\u30a4\u30c8\u9577\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002 +errors.range={0}\u306f{1}\u3068{2}\u306e\u9593\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.required={0}\u306f\u5fc5\u9808\u3067\u3059\u3002 +errors.byte={0}\u306f\u30d0\u30a4\u30c8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.date={0}\u306f\u65e5\u4ed8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093 +errors.double={0}\u306f\u500d\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.float={0}\u306f\u5358\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.integer={0}\u306f\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.long={0}\u306f\u9577\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.short={0}\u306f\u77ed\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002 +errors.creditcard={0}\u306f\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 +errors.email={0}\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 +errors.url={0}\u306fURL\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002 + +errors.upload.size=\u4e0a\u9650\u304c{1}\u30d0\u30a4\u30c8\u306a\u306e\u306b\u5b9f\u969b\u306f{0}\u30d0\u30a4\u30c8\u3060\u3063\u305f\u306e\u3067\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \ No newline at end of file Added: chat/trunk/src/main/resources/convention.dicon =================================================================== --- chat/trunk/src/main/resources/convention.dicon (rev 0) +++ chat/trunk/src/main/resources/convention.dicon 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,10 @@ + + + + + + "jp.sf.pal.chat" + + + Added: chat/trunk/src/main/resources/creator.dicon =================================================================== --- chat/trunk/src/main/resources/creator.dicon (rev 0) +++ chat/trunk/src/main/resources/creator.dicon 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,13 @@ + + + + + + + + + + + + Added: chat/trunk/src/main/resources/customizer.dicon =================================================================== --- chat/trunk/src/main/resources/customizer.dicon (rev 0) +++ chat/trunk/src/main/resources/customizer.dicon 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,67 @@ + + + + + + + + "aop.traceInterceptor" + + + "actionMessagesThrowsInterceptor" + + + + + + + + + + + + + + + "aop.traceInterceptor" + + + traceCustomizer + + + requiredTxCustomizer + + + + + + + + + + traceCustomizer + + + + + traceCustomizer + + + s2DaoCustomizer + + + + + traceCustomizer + + + s2DxoCustomizer + + + + + traceCustomizer + + + Added: chat/trunk/src/main/resources/data/demo.sql =================================================================== --- chat/trunk/src/main/resources/data/demo.sql (rev 0) +++ chat/trunk/src/main/resources/data/demo.sql 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,21 @@ +CREATE TABLE EMP(ID IDENTITY NOT NULL PRIMARY KEY, EMP_NO INTEGER NOT NULL ,EMP_NAME VARCHAR(20),MGR_ID INTEGER,HIREDATE DATE,SAL NUMERIC(7,2),DEPT_ID INTEGER, VERSION_NO INTEGER); +CREATE TABLE DEPT(ID IDENTITY NOT NULL PRIMARY KEY, DEPT_NO INTEGER NOT NULL,DEPT_NAME VARCHAR(20),LOC VARCHAR(20), VERSION_NO INTEGER); + +INSERT INTO EMP VALUES(1,7369,'SMITH',13,'1980-12-17',800,2,1); +INSERT INTO EMP VALUES(2,7499,'ALLEN',6,'1981-02-20',1600,3,1); +INSERT INTO EMP VALUES(3,7521,'WARD',6,'1981-02-22',1250,3,1); +INSERT INTO EMP VALUES(4,7566,'JONES',9,'1981-04-02',2975,2,1); +INSERT INTO EMP VALUES(5,7654,'MARTIN',6,'1981-09-28',1250,3,1); +INSERT INTO EMP VALUES(6,7698,'BLAKE',9,'1981-05-01',2850,3,1); +INSERT INTO EMP VALUES(7,7782,'CLARK',9,'1981-06-09',2450,1,1); +INSERT INTO EMP VALUES(8,7788,'SCOTT',4,'1982-12-09',3000.0,2,1); +INSERT INTO EMP VALUES(9,7839,'KING',NULL,'1981-11-17',5000,1,1); +INSERT INTO EMP VALUES(10,7844,'TURNER',6,'1981-09-08',1500,3,1); +INSERT INTO EMP VALUES(11,7876,'ADAMS',8,'1983-01-12',1100,2,1); +INSERT INTO EMP VALUES(12,7900,'JAMES',6,'1981-12-03',950,3,1); +INSERT INTO EMP VALUES(13,7902,'FORD',4,'1981-12-03',3000,2,1); +INSERT INTO EMP VALUES(14,7934,'MILLER',7,'1982-01-23',1300,1,1); +INSERT INTO DEPT VALUES(1,10,'ACCOUNTING','NEW YORK',1); +INSERT INTO DEPT VALUES(2,20,'RESEARCH','DALLAS',1); +INSERT INTO DEPT VALUES(3,30,'SALES','CHICAGO',1); +INSERT INTO DEPT VALUES(4,40,'OPERATIONS','BOSTON',1); \ No newline at end of file Added: chat/trunk/src/main/resources/env.txt =================================================================== --- chat/trunk/src/main/resources/env.txt (rev 0) +++ chat/trunk/src/main/resources/env.txt 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1 @@ +product Added: chat/trunk/src/main/resources/env_ut.txt =================================================================== --- chat/trunk/src/main/resources/env_ut.txt (rev 0) +++ chat/trunk/src/main/resources/env_ut.txt 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1 @@ +ut \ No newline at end of file Added: chat/trunk/src/main/resources/jdbc.dicon =================================================================== --- chat/trunk/src/main/resources/jdbc.dicon (rev 0) +++ chat/trunk/src/main/resources/jdbc.dicon 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,183 @@ + + + + + + + + + + + + 100 + + + + + + + + + + + "org.h2.Driver" + + + "jdbc:h2:tcp://localhost:9092/demo" + + "sa" + "" + + @org.seasar.framework.util.DriverManagerUtil ¡÷ deregisterAllDrivers() + + + + + + + + + + + + + + + + + + + 600 + 10 + true + + + + + + + + + + \ No newline at end of file Added: chat/trunk/src/main/resources/log4j.properties =================================================================== --- chat/trunk/src/main/resources/log4j.properties (rev 0) +++ chat/trunk/src/main/resources/log4j.properties 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,16 @@ +log4j.category.org.seasar=DEBUG, C +log4j.additivity.org.seasar=false + +log4j.category.tutorial=DEBUG, C +log4j.additivity.tutorial=false + +log4j.appender.C=org.apache.log4j.ConsoleAppender +log4j.appender.C.Target=System.out +log4j.appender.C.ImmediateFlush=true +log4j.appender.C.layout=org.apache.log4j.PatternLayout +log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n + +log4j.rootLogger=INFO, A1 +log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n Added: chat/trunk/src/main/resources/s2container.dicon =================================================================== --- chat/trunk/src/main/resources/s2container.dicon (rev 0) +++ chat/trunk/src/main/resources/s2container.dicon 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/portlet.xml (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,26 @@ + + + + chat portlet + Chat + Chat + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /chat/ + + 0 + + text/html + VIEW + + en + + Chat + + + + Added: chat/trunk/src/main/webapp/WEB-INF/struts-config.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/struts-config.xml (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/struts-config.xml 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: chat/trunk/src/main/webapp/WEB-INF/tld/portlet.tld =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/tld/portlet.tld (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/tld/portlet.tld 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,103 @@ + + + + + 1.0 + 1.1 + Tags for portlets + + defineObjects + org.apache.pluto.tags.DefineObjectsTag + org.apache.pluto.tags.DefineObjectsTag$TEI + empty + + + param + org.apache.pluto.tags.ParamTag + empty + + name + true + true + + + value + true + true + + + + actionURL + org.apache.pluto.tags.ActionURLTag + org.apache.pluto.tags.BasicURLTag$TEI + JSP + + windowState + false + true + + + portletMode + false + true + + + secure + false + true + + + var + false + true + + + + renderURL + org.apache.pluto.tags.RenderURLTag + org.apache.pluto.tags.BasicURLTag$TEI + JSP + + windowState + false + true + + + portletMode + false + true + + + secure + false + true + + + var + false + true + + + + namespace + org.apache.pluto.tags.NamespaceTag + empty + + Added: chat/trunk/src/main/webapp/WEB-INF/validator-rules.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/validator-rules.xml (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/validator-rules.xml 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Added: chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,35 @@ +<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> +<%@page pageEncoding="UTF-8"%> +<%@page import="org.seasar.struts.portlet.util.PortletUtil"%> +<%@page import="javax.portlet.PortletConfig"%> +<%@page import="javax.portlet.PortletRequest"%> +<%@page import="javax.portlet.PortletResponse"%> + + +Dolteng Auto Generated + + + + + + + +
      + +
      +
      + +

      + + \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/common.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,9 @@ +<%@page pageEncoding="UTF-8"%> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> +<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> +<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> +<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet" %> +<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions" %> \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1 @@ +footer \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1 @@ +header \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,15 @@ + + +<tiles:getAsString name="title" /> + + + + + + + + + +
      + + \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,3 @@ +
        +
      • appName
      • +
      \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/view/index.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/index.jsp (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/view/index.jsp 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,9 @@ + + + +Dolteng Auto Generated + + +

      Hello World!

      + + \ No newline at end of file Added: chat/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/web.xml (rev 0) +++ chat/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-19 04:35:36 UTC (rev 1374) @@ -0,0 +1,168 @@ + + + + chat + + sastruts.VIEW_PREFIX + /WEB-INF/view + + + encodingfilter + org.seasar.extension.filter.EncodingFilter + + encoding + UTF-8 + + + + portletRequestFilter + org.seasar.struts.portlet.filter.PortletRequestFilter + + + requestDumpFilter + org.seasar.extension.filter.RequestDumpFilter + + + s2filter + org.seasar.struts.portlet.filter.S2ContainerFilter + + + hotdeployfilter + org.seasar.struts.portlet.filter.HotdeployFilter + + + routingfilter + org.seasar.struts.filter.RoutingFilter + + jspDirectAccess + false + + + + portletRoutingfilter + org.seasar.struts.portlet.filter.PortletRoutingFilter + + jspDirectAccess + false + + + + encodingfilter + /* + + + portletRequestFilter + /* + INCLUDE + + + s2filter + /* + REQUEST + FORWARD + INCLUDE + + + hotdeployfilter + /* + REQUEST + FORWARD + INCLUDE + + + routingfilter + /* + REQUEST + + + portletRoutingfilter + /* + INCLUDE + + + requestDumpFilter + *.do + REQUEST + FORWARD + INCLUDE + + + action + org.seasar.struts.portlet.servlet.ActionServlet + + config + /WEB-INF/struts-config.xml + + + configFactory + org.seasar.struts.config.S2ModuleConfigFactory + + 1 + + + s2container + org.seasar.framework.container.servlet.S2ContainerServlet + 2 + + + + action + *.do + + + s2container + /s2container + + + + index.html + index.htm + index.jsp + + + + + *.jsp + false + UTF-8 + false + /WEB-INF/view/common/common.jsp + + + From svnnotify ¡÷ sourceforge.jp Wed Nov 19 17:28:18 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 19 Nov 2008 17:28:18 +0900 Subject: [pal-cvs 3640] [1375] i18ned todo Message-ID: <1227083298.918150.28815.nullmailer@users.sourceforge.jp> Revision: 1375 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1375 Author: sone Date: 2008-11-19 17:28:18 +0900 (Wed, 19 Nov 2008) Log Message: ----------- i18ned todo Modified Paths: -------------- todolist/trunk/src/main/resources/application.properties todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/admin/userInfo/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp Added Paths: ----------- todolist/trunk/src/main/resources/application_ja.properties -------------- next part -------------- Modified: todolist/trunk/src/main/resources/application.properties =================================================================== --- todolist/trunk/src/main/resources/application.properties 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/resources/application.properties 2008-11-19 08:28:18 UTC (rev 1375) @@ -55,3 +55,59 @@ errors.could_not_find_userInfo=Could not find the user information({0}). errors.failed_to_delete_todo_mapping=Failed to remove the user. errors.user_already_exists_in_task=The user already exists in this task. + +label.tab.category=Category +label.tab.tasks=Tasks +label.name=Name +label.back=Back +label.owner=Owners +label.prev=Prev +label.next=Next +label.basic=Basic +label.description=Description +label.priority=Priority +label.status=Status +label.working=Working +label.completed=Completed +label.start_date=Start Date +label.end_date=End Date +label.personal=Personal +label.category_id=Category ID +label.assigned=Assigned +label.title=Title +label.remove=Remove +label.created_by=Created By +label.due_date=Due Date +label.edit=Edit +label.user_id=User ID +label.email=Email +label.add=Add +label.category=Category +label.configuration=Configuration +label.guest_user_name=Guest User Name +label.add_user_to_this_task=Add User to This Task +label.all=ALL +label.memo=memo + +label.blocker=Blocker +label.critical=Critical +label.major=Major +label.minor=Minor +label.trivial=Trivial + +label.input.create=Create +label.input.delete=Delete +label.input.confirm=Confirm +label.input.back=Back +label.input.update=Update +label.input.edit=Edit +label.input.remove=Remove +label.input.remove_from_me=Remove this task from me + +label.category.confirm.category_info=Confirmation of Category Info +label.category.edit.category_info=Edit Category Info +label.category.index.category=Create New Category +label.todo.confirm.task_info=Confirmation of Task Info +label.todo.edit.task_info=Edit Task Info +label.todo.index.create_new_task=Create New Task +label.userinfo.index.back_to_task_detail=Back to Task Detail \ No newline at end of file Added: todolist/trunk/src/main/resources/application_ja.properties =================================================================== --- todolist/trunk/src/main/resources/application_ja.properties (rev 0) +++ todolist/trunk/src/main/resources/application_ja.properties 2008-11-19 08:28:18 UTC (rev 1375) @@ -0,0 +1,106 @@ +errors.invalid={0} \u306f\u7121\u52b9\u3067\u3059\u3002 +errors.maxlength={0} \u3092 {1} \u6587\u5b57\u3088\u308a\u591a\u304f\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 +errors.minlength={0} \u3092 {1} \u6587\u5b57\u3088\u308a\u5c11\u306a\u304f\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 +errors.maxbytelength={0} \u306f {1} \u30d0\u30a4\u30c8\u3088\u308a\u5927\u304d\u304f\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 +errors.minbytelength={0} \u306f {1} \u30d0\u30a4\u30c8\u3088\u308a\u5c0f\u3055\u304f\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 +errors.range={0} \u306f {1} \u304b\u3089 {2} \u306e\u9593\u306b\u3042\u308a\u307e\u305b\u3093\u3002 +errors.required={0} \u306f\u5fc5\u9808\u3067\u3059 +errors.required.other={0} \u306f\u5fc5\u9808\u3067\u3059 ({1}). +errors.byte={0} \u306f byte \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.date={0} \u306f date \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.double={0} \u306f double \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.float={0} \u306f float \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.integer={0} \u306f integer \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.long={0} \u306f long \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.short={0} \u306f short \u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +errors.creditcard={0} \u306f\u6709\u52b9\u306a\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.email={0} \u306f\u6709\u52b9\u306a E\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 +errors.url={0} \u306f\u7121\u52b9\u306a url \u3067\u3059\u3002 + +success.update_config=\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.create_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_todo=\u30bf\u30b9\u30af\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_todo=\u30bf\u30b9\u30af\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_todo=\u30bf\u30b9\u30af\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.add_userInfo_to_task=\u30e6\u30fc\u30b6\u3092\u30bf\u30b9\u30af\u306b\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002 +success.delete_todo_mapping=\u30e6\u30fc\u30b6\u3092\u30bf\u30b9\u30af\u304b\u3089\u524a\u9664\u3057\u307e\u3057\u305f\u3002 + +errors.failed_to_update_config=\u8a2d\u5b9a\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.invalid.mode=\u6709\u52b9\u3067\u306f\u306a\u3044\u30e2\u30fc\u30c9\u3067\u3059(\u671f\u5f85\u3055\u308c\u308b\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5b9f\u969b\u306b\u306f {1} \u3067\u3059) +errors.failed_to_create_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u306e\u65b0\u898f\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f({0}). +errors.failed_to_create_todo=\u65b0\u3057\u3044\u30bf\u30b9\u30af\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_todo=\u30bf\u30b9\u30af\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_todo=\u30bf\u30b9\u30af\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_todo=\u30bf\u30b9\u30af\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f({0}) +errors.failed_to_create_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u306e\u65b0\u898f\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_category=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u306e\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f({0}). +errors.failed_to_add_userInfo_to_task=\u30bf\u30b9\u30af\u3078\u306e\u30e6\u30fc\u30b6\u306e\u8ffd\u52a0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_userInfo=\u30e6\u30fc\u30b6\u60c5\u5831\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f({0}). +errors.failed_to_delete_todo_mapping=\u30e6\u30fc\u30b6\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.user_already_exists_in_task=\u305d\u306e\u30e6\u30fc\u30b6\u306f\u3059\u3067\u306b\u3053\u306e\u30bf\u30b9\u30af\u306b\u5b58\u5728\u3057\u307e\u3059\u3002 + +label.tab.category=\u30ab\u30c6\u30b4\u30ea +label.tab.tasks=\u30bf\u30b9\u30af +label.name=\u540d\u524d +label.back=\u623b\u308b +label.owner=\u30aa\u30fc\u30ca\u30fc +label.prev=\u524d\u3078 +label.next=\u6b21\u3078 +label.basic=\u57fa\u672c +label.description=\u8aac\u660e +label.priority=\u512a\u5148\u5ea6 +label.status=\u72b6\u614b +label.working=\u4f5c\u696d\u4e2d +label.completed=\u7d42\u4e86 +label.start_date=\u958b\u59cb\u65e5 +label.end_date=\u7d42\u4e86\u65e5 +label.personal=\u500b\u4eba +label.category_id=\u30ab\u30c6\u30b4\u30eaID +label.assigned=\u5272\u308a\u5f53\u3066 +label.title=\u30bf\u30a4\u30c8\u30eb +label.remove=\u524a\u9664 +label.created_by=\u4f5c\u6210\u8005 +label.due_date=\u671f\u65e5 +label.edit=\u7de8\u96c6 +label.user_id=\u30e6\u30fc\u30b6ID +label.email=E\u30e1\u30fc\u30eb +label.add=\u8ffd\u52a0 +label.category=\u30ab\u30c6\u30b4\u30ea +label.configuration=\u8a2d\u5b9a +label.guest_user_name=\u30b2\u30b9\u30c8\u30e6\u30fc\u30b6\u540d +label.add_user_to_this_task=\u30e6\u30fc\u30b6\u3092\u3053\u306e\u30bf\u30b9\u30af\u306b\u8ffd\u52a0 +label.all=\u3059\u3079\u3066 +label.memo=\u30e1\u30e2 + +label.blocker=\u6700\u512a\u5148 +label.critical=\u512a\u5148 +label.major=\u666e\u901a +label.minor=\u4f4e\u3044 +label.trivial=\u6700\u3082\u4f4e\u3044 + +label.input.create=\u4f5c\u6210 +label.input.delete=\u524a\u9664 +label.input.confirm=\u78ba\u8a8d +label.input.back=\u623b\u308b +label.input.update=\u66f4\u65b0 +label.input.edit=\u7de8\u96c6 +label.input.remove=\u79fb\u52d5 +label.input.remove_from_me=\u3053\u306e\u30bf\u30b9\u30af\u3092\u79fb\u52d5\u3059\u308b + +label.category.confirm.category_info=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u306e\u78ba\u5b9a +label.category.edit.category_info=\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u306e\u7de8\u96c6 +label.category.index.category=\u65b0\u3057\u3044\u30ab\u30c6\u30b4\u30ea\u306e\u4f5c\u6210 +label.todo.confirm.task_info=\u30bf\u30b9\u30af\u306e\u78ba\u5b9a +label.todo.edit.task_info=\u30bf\u30b9\u30af\u306e\u7de8\u96c6 +label.todo.index.create_new_task=\u30bf\u30b9\u30af\u306e\u4f5c\u6210 +label.userinfo.index.back_to_task_detail=\u30bf\u30b9\u30af\u306e\u8a73\u7d30\u3078\u623b\u308b \ No newline at end of file Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -10,9 +10,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -25,10 +25,10 @@
      - + - + @@ -36,21 +36,21 @@ Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -10,9 +10,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -25,18 +25,18 @@
      Confirmation of Category Info
      Name ${f:h(name)}
      - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
      - + - + Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -9,9 +9,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -19,7 +19,7 @@
      -Ìá¤ë + Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -10,9 +10,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -22,13 +22,13 @@
      -Create New Category +
      Edit Category Info
      Name
      - - + "/> + "/>
      - - + + @@ -49,7 +49,7 @@
      - Á°¤Ø + @@ -66,7 +66,7 @@ - ¼¡¤Ø +
      Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/confirm.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -10,9 +10,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -26,43 +26,43 @@
      NameOwner  
      - + - + From svnnotify ¡÷ sourceforge.jp Sat Nov 22 08:34:49 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 22 Nov 2008 08:34:49 +0900 Subject: [pal-cvs 3661] [1396] fixed sort problem. Message-ID: <1227310489.808907.29951.nullmailer@users.sourceforge.jp> Revision: 1396 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1396 Author: shinsuke Date: 2008-11-22 08:34:49 +0900 (Sat, 22 Nov 2008) Log Message: ----------- fixed sort problem. Modified Paths: -------------- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp -------------- next part -------------- Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java 2008-11-21 23:00:53 UTC (rev 1395) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java 2008-11-21 23:34:49 UTC (rev 1396) @@ -147,7 +147,7 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveUp(category); + categoryService.moveDown(category); NotepadUtil.addMessage(request, "success.move_category_up"); } catch (ActionMessagesException e) { throw e; @@ -171,7 +171,7 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveDown(category); + categoryService.moveUp(category); NotepadUtil.addMessage(request, "success.move_category_down"); } catch (ActionMessagesException e) { throw e; Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java 2008-11-21 23:00:53 UTC (rev 1395) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java 2008-11-21 23:34:49 UTC (rev 1396) @@ -135,8 +135,8 @@ return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") - public String moveup() { + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { if (categoryForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } @@ -147,8 +147,8 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveUp(category); - NotepadUtil.addMessage(request, "success.move_category_up"); + categoryService.moveDown(category); + NotepadUtil.addMessage(request, "success.move_category_down"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { @@ -159,8 +159,8 @@ return displayList(); } - @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") - public String movedown() { + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { if (categoryForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } @@ -171,8 +171,8 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveDown(category); - NotepadUtil.addMessage(request, "success.move_category_down"); + categoryService.moveUp(category); + NotepadUtil.addMessage(request, "success.move_category_up"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-21 23:00:53 UTC (rev 1395) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-21 23:34:49 UTC (rev 1396) @@ -137,20 +137,27 @@ notepadCategoryBhv.update(category); } - public void moveUp(NotepadCategory category) { + public void moveDown(NotepadCategory category) { NotepadCategoryCB cb = new NotepadCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_GreaterThan(category.getSortOrder()); + cb.query().setId_NotEqual(category.getId()); + cb.query().setSortOrder_GreaterEqual(category.getSortOrder()); + cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Asc(); List categoryList = notepadCategoryBhv.selectPage(cb); if (categoryList != null && !categoryList.isEmpty()) { NotepadCategory targetCategory = categoryList.get(0); Integer sortOrder = targetCategory.getSortOrder(); - targetCategory.setSortOrder(category.getSortOrder()); - category.setSortOrder(sortOrder); - notepadCategoryBhv.update(targetCategory); - notepadCategoryBhv.update(category); + if (sortOrder.intValue() == category.getSortOrder().intValue()) { + category.setSortOrder(sortOrder.intValue() + 1); + notepadCategoryBhv.update(category); + } else { + targetCategory.setSortOrder(category.getSortOrder()); + category.setSortOrder(sortOrder); + notepadCategoryBhv.update(targetCategory); + notepadCategoryBhv.update(category); + } } else { // TODO replace with CommonException throw new ActionMessagesException( @@ -158,20 +165,27 @@ } } - public void moveDown(NotepadCategory category) { + public void moveUp(NotepadCategory category) { NotepadCategoryCB cb = new NotepadCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); + cb.query().setId_NotEqual(category.getId()); cb.query().setSortOrder_LessThan(category.getSortOrder()); + cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Desc(); List categoryList = notepadCategoryBhv.selectPage(cb); if (categoryList != null && !categoryList.isEmpty()) { NotepadCategory targetCategory = categoryList.get(0); Integer sortOrder = targetCategory.getSortOrder(); - targetCategory.setSortOrder(category.getSortOrder()); - category.setSortOrder(sortOrder); - notepadCategoryBhv.update(targetCategory); - notepadCategoryBhv.update(category); + if (sortOrder.intValue() == category.getSortOrder().intValue()) { + category.setSortOrder(sortOrder.intValue() - 1); + notepadCategoryBhv.update(category); + } else { + targetCategory.setSortOrder(category.getSortOrder()); + category.setSortOrder(sortOrder); + notepadCategoryBhv.update(targetCategory); + notepadCategoryBhv.update(category); + } } else { // TODO replace with CommonException throw new ActionMessagesException( Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-21 23:00:53 UTC (rev 1395) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-21 23:34:49 UTC (rev 1396) @@ -29,13 +29,13 @@ From svnnotify ¡÷ sourceforge.jp Sat Nov 22 08:37:51 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 22 Nov 2008 08:37:51 +0900 Subject: [pal-cvs 3662] [1397] fixed sort problem. Message-ID: <1227310671.483556.32365.nullmailer@users.sourceforge.jp> Revision: 1397 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1397 Author: shinsuke Date: 2008-11-22 08:37:51 +0900 (Sat, 22 Nov 2008) Log Message: ----------- fixed sort problem. Modified Paths: -------------- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java -------------- next part -------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-21 23:34:49 UTC (rev 1396) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-21 23:37:51 UTC (rev 1397) @@ -141,7 +141,8 @@ BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_GreaterThan(category.getSortOrder()); + cb.query().setId_NotEqual(category.getId()); + cb.query().setSortOrder_GreaterEqual(category.getSortOrder()); cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Asc(); List categoryList = bookmarkCategoryBhv @@ -149,10 +150,15 @@ if (categoryList != null && !categoryList.isEmpty()) { BookmarkCategory targetCategory = categoryList.get(0); Integer sortOrder = targetCategory.getSortOrder(); - targetCategory.setSortOrder(category.getSortOrder()); - category.setSortOrder(sortOrder); - bookmarkCategoryBhv.update(targetCategory); - bookmarkCategoryBhv.update(category); + if (sortOrder.intValue() == category.getSortOrder().intValue()) { + category.setSortOrder(sortOrder.intValue() + 1); + bookmarkCategoryBhv.update(category); + } else { + targetCategory.setSortOrder(category.getSortOrder()); + category.setSortOrder(sortOrder); + bookmarkCategoryBhv.update(targetCategory); + bookmarkCategoryBhv.update(category); + } } else { // TODO replace with CommonException throw new ActionMessagesException( @@ -164,7 +170,8 @@ BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_LessThan(category.getSortOrder()); + cb.query().setId_NotEqual(category.getId()); + cb.query().setSortOrder_LessEqual(category.getSortOrder()); cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Desc(); List categoryList = bookmarkCategoryBhv @@ -172,10 +179,15 @@ if (categoryList != null && !categoryList.isEmpty()) { BookmarkCategory targetCategory = categoryList.get(0); Integer sortOrder = targetCategory.getSortOrder(); - targetCategory.setSortOrder(category.getSortOrder()); - category.setSortOrder(sortOrder); - bookmarkCategoryBhv.update(targetCategory); - bookmarkCategoryBhv.update(category); + if (sortOrder.intValue() == category.getSortOrder().intValue()) { + category.setSortOrder(sortOrder.intValue() - 1); + bookmarkCategoryBhv.update(category); + } else { + targetCategory.setSortOrder(category.getSortOrder()); + category.setSortOrder(sortOrder); + bookmarkCategoryBhv.update(targetCategory); + bookmarkCategoryBhv.update(category); + } } else { // TODO replace with CommonException throw new ActionMessagesException( From svnnotify ¡÷ sourceforge.jp Sat Nov 22 08:38:17 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 22 Nov 2008 08:38:17 +0900 Subject: [pal-cvs 3663] [1398] fixed sort problem. Message-ID: <1227310697.156212.925.nullmailer@users.sourceforge.jp> Revision: 1398 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1398 Author: shinsuke Date: 2008-11-22 08:38:17 +0900 (Sat, 22 Nov 2008) Log Message: ----------- fixed sort problem. Modified Paths: -------------- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java -------------- next part -------------- Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-21 23:37:51 UTC (rev 1397) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-21 23:38:17 UTC (rev 1398) @@ -170,7 +170,7 @@ cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setId_NotEqual(category.getId()); - cb.query().setSortOrder_LessThan(category.getSortOrder()); + cb.query().setSortOrder_LessEqual(category.getSortOrder()); cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Desc(); List categoryList = notepadCategoryBhv.selectPage(cb); From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:08:45 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:08:45 +0900 Subject: [pal-cvs 3664] [1399] clean up jars. Message-ID: <1227398925.641872.12129.nullmailer@users.sourceforge.jp> Revision: 1399 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1399 Author: shinsuke Date: 2008-11-23 09:08:45 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- scheduler/trunk/.classpath scheduler/trunk/pom.xml -------------- next part -------------- Modified: scheduler/trunk/.classpath =================================================================== --- scheduler/trunk/.classpath 2008-11-21 23:38:17 UTC (rev 1398) +++ scheduler/trunk/.classpath 2008-11-23 00:08:45 UTC (rev 1399) @@ -4,35 +4,37 @@ + + + - - - + + + + + + + - - - - + - - - - + + - + @@ -40,7 +42,5 @@ - - Modified: scheduler/trunk/pom.xml =================================================================== --- scheduler/trunk/pom.xml 2008-11-21 23:38:17 UTC (rev 1398) +++ scheduler/trunk/pom.xml 2008-11-23 00:08:45 UTC (rev 1399) @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,45 +68,35 @@ - portlet-api - portlet-api - 1.0 - provided + log4j + log4j + 1.2.13 - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - + com.h2database + h2 + 1.0.79 + - commons-configuration - commons-configuration - 1.5 + javax.servlet + servlet-api + 2.3 + provided + portlet-api + portlet-api + 1.0 + provided + + jstl jstl 1.1.2 @@ -127,6 +107,16 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + commons-el commons-el 1.0 @@ -156,124 +146,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -286,17 +193,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:31:51 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:31:51 +0900 Subject: [pal-cvs 3665] [1400] clean up jars. Message-ID: <1227400311.267523.32707.nullmailer@users.sourceforge.jp> Revision: 1400 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1400 Author: shinsuke Date: 2008-11-23 09:31:51 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- addresslist/trunk/.classpath addresslist/trunk/pom.xml -------------- next part -------------- Modified: addresslist/trunk/.classpath =================================================================== --- addresslist/trunk/.classpath 2008-11-23 00:08:45 UTC (rev 1399) +++ addresslist/trunk/.classpath 2008-11-23 00:31:51 UTC (rev 1400) @@ -4,35 +4,37 @@ + + + - - - + + + + + + + - - - - + - - - - + + - + @@ -40,7 +42,5 @@ - - Modified: addresslist/trunk/pom.xml =================================================================== --- addresslist/trunk/pom.xml 2008-11-23 00:08:45 UTC (rev 1399) +++ addresslist/trunk/pom.xml 2008-11-23 00:31:51 UTC (rev 1400) @@ -5,7 +5,7 @@ addresslist 1.0-SNAPSHOT war - AddressList + Address List addresslist @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,45 +68,35 @@ - portlet-api - portlet-api - 1.0 - provided + log4j + log4j + 1.2.13 - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - + com.h2database + h2 + 1.0.79 + - commons-configuration - commons-configuration - 1.5 + javax.servlet + servlet-api + 2.3 + provided + portlet-api + portlet-api + 1.0 + provided + + jstl jstl 1.1.2 @@ -127,6 +107,16 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + commons-el commons-el 1.0 @@ -156,124 +146,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -286,17 +193,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:42:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:42:04 +0900 Subject: [pal-cvs 3666] [1401] clean up jars. Message-ID: <1227400924.155585.16741.nullmailer@users.sourceforge.jp> Revision: 1401 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1401 Author: shinsuke Date: 2008-11-23 09:42:03 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- board/trunk/.classpath board/trunk/pom.xml -------------- next part -------------- Modified: board/trunk/.classpath =================================================================== --- board/trunk/.classpath 2008-11-23 00:31:51 UTC (rev 1400) +++ board/trunk/.classpath 2008-11-23 00:42:03 UTC (rev 1401) @@ -4,35 +4,37 @@ + + + - - + + + + + - - - + - - - - + + - + @@ -40,7 +42,5 @@ - - Modified: board/trunk/pom.xml =================================================================== --- board/trunk/pom.xml 2008-11-23 00:31:51 UTC (rev 1400) +++ board/trunk/pom.xml 2008-11-23 00:42:03 UTC (rev 1401) @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,35 +68,35 @@ + log4j + log4j + 1.2.13 + + + com.h2database + h2 + 1.0.79 + + + + javax.servlet + servlet-api + 2.3 + provided + + portlet-api portlet-api 1.0 provided - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - - - jstl jstl 1.1.2 @@ -156,124 +146,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -286,17 +193,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:45:41 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:45:41 +0900 Subject: [pal-cvs 3667] [1402] clean up jars. Message-ID: <1227401141.581737.21609.nullmailer@users.sourceforge.jp> Revision: 1402 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1402 Author: shinsuke Date: 2008-11-23 09:45:41 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- bookmark/trunk/.classpath bookmark/trunk/pom.xml -------------- next part -------------- Modified: bookmark/trunk/.classpath =================================================================== --- bookmark/trunk/.classpath 2008-11-23 00:42:03 UTC (rev 1401) +++ bookmark/trunk/.classpath 2008-11-23 00:45:41 UTC (rev 1402) @@ -1,37 +1,37 @@ - - - - - + + + + + + + - - + + - - - - + + - + @@ -39,7 +39,5 @@ - - - + \ No newline at end of file Modified: bookmark/trunk/pom.xml =================================================================== --- bookmark/trunk/pom.xml 2008-11-23 00:42:03 UTC (rev 1401) +++ bookmark/trunk/pom.xml 2008-11-23 00:45:41 UTC (rev 1402) @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,35 +68,35 @@ + log4j + log4j + 1.2.13 + + + com.h2database + h2 + 1.0.79 + + + + javax.servlet + servlet-api + 2.3 + provided + + portlet-api portlet-api 1.0 provided - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - - - jstl jstl 1.1.2 @@ -117,6 +107,18 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-el commons-el 1.0 @@ -146,124 +148,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -276,17 +195,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:47:43 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:47:43 +0900 Subject: [pal-cvs 3668] [1403] modified pathes. Message-ID: <1227401263.087775.23036.nullmailer@users.sourceforge.jp> Revision: 1403 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1403 Author: shinsuke Date: 2008-11-23 09:47:42 +0900 (Sun, 23 Nov 2008) Log Message: ----------- modified pathes. Modified Paths: -------------- bookmark/trunk/.classpath -------------- next part -------------- Modified: bookmark/trunk/.classpath =================================================================== --- bookmark/trunk/.classpath 2008-11-23 00:45:41 UTC (rev 1402) +++ bookmark/trunk/.classpath 2008-11-23 00:47:42 UTC (rev 1403) @@ -1,8 +1,9 @@ - - - - + + + + + @@ -40,4 +41,4 @@ - \ No newline at end of file + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:48:47 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:48:47 +0900 Subject: [pal-cvs 3669] [1404] clean up jars. Message-ID: <1227401327.077169.25070.nullmailer@users.sourceforge.jp> Revision: 1404 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1404 Author: shinsuke Date: 2008-11-23 09:48:46 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- notepad/trunk/.classpath notepad/trunk/pom.xml -------------- next part -------------- Modified: notepad/trunk/.classpath =================================================================== --- notepad/trunk/.classpath 2008-11-23 00:47:42 UTC (rev 1403) +++ notepad/trunk/.classpath 2008-11-23 00:48:46 UTC (rev 1404) @@ -4,34 +4,35 @@ + + + - - + + - - - - + + - + @@ -39,7 +40,5 @@ - - Modified: notepad/trunk/pom.xml =================================================================== --- notepad/trunk/pom.xml 2008-11-23 00:47:42 UTC (rev 1403) +++ notepad/trunk/pom.xml 2008-11-23 00:48:46 UTC (rev 1404) @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,35 +68,35 @@ + log4j + log4j + 1.2.13 + + + com.h2database + h2 + 1.0.79 + + + + javax.servlet + servlet-api + 2.3 + provided + + portlet-api portlet-api 1.0 provided - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - - - jstl jstl 1.1.2 @@ -117,6 +107,18 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-el commons-el 1.0 @@ -146,124 +148,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -276,17 +195,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:52:19 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:52:19 +0900 Subject: [pal-cvs 3670] [1405] clean up jars. Message-ID: <1227401539.562971.29133.nullmailer@users.sourceforge.jp> Revision: 1405 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1405 Author: shinsuke Date: 2008-11-23 09:52:19 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- timecard/trunk/.classpath timecard/trunk/pom.xml -------------- next part -------------- Modified: timecard/trunk/.classpath =================================================================== --- timecard/trunk/.classpath 2008-11-23 00:48:46 UTC (rev 1404) +++ timecard/trunk/.classpath 2008-11-23 00:52:19 UTC (rev 1405) @@ -4,35 +4,37 @@ + + + - - - + + + + + + + - - - - + - - - - + + - + @@ -40,7 +42,5 @@ - - Modified: timecard/trunk/pom.xml =================================================================== --- timecard/trunk/pom.xml 2008-11-23 00:48:46 UTC (rev 1404) +++ timecard/trunk/pom.xml 2008-11-23 00:52:19 UTC (rev 1405) @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,45 +68,35 @@ - portlet-api - portlet-api - 1.0 - provided + log4j + log4j + 1.2.13 - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - + com.h2database + h2 + 1.0.79 + - commons-configuration - commons-configuration - 1.5 + javax.servlet + servlet-api + 2.3 + provided + portlet-api + portlet-api + 1.0 + provided + + jstl jstl 1.1.2 @@ -127,6 +107,16 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + commons-el commons-el 1.0 @@ -156,124 +146,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -286,17 +193,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:54:43 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:54:43 +0900 Subject: [pal-cvs 3671] [1406] clean up jars. Message-ID: <1227401683.647211.31645.nullmailer@users.sourceforge.jp> Revision: 1406 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1406 Author: shinsuke Date: 2008-11-23 09:54:43 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- todolist/trunk/.classpath todolist/trunk/pom.xml -------------- next part -------------- Modified: todolist/trunk/.classpath =================================================================== --- todolist/trunk/.classpath 2008-11-23 00:52:19 UTC (rev 1405) +++ todolist/trunk/.classpath 2008-11-23 00:54:43 UTC (rev 1406) @@ -4,35 +4,37 @@ + + + - - - + + + + + + + - - - - + - - - - + + - + @@ -40,7 +42,5 @@ - - Modified: todolist/trunk/pom.xml =================================================================== --- todolist/trunk/pom.xml 2008-11-23 00:52:19 UTC (rev 1405) +++ todolist/trunk/pom.xml 2008-11-23 00:54:43 UTC (rev 1406) @@ -5,7 +5,7 @@ todolist 1.0-SNAPSHOT war - ToDoList + ToDo List todolist @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,45 +68,35 @@ - portlet-api - portlet-api - 1.0 - provided + log4j + log4j + 1.2.13 - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - + com.h2database + h2 + 1.0.79 + - commons-configuration - commons-configuration - 1.5 + javax.servlet + servlet-api + 2.3 + provided + portlet-api + portlet-api + 1.0 + provided + + jstl jstl 1.1.2 @@ -127,6 +107,16 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + commons-el commons-el 1.0 @@ -156,124 +146,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -286,17 +193,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 09:59:49 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 09:59:49 +0900 Subject: [pal-cvs 3672] [1407] clean up jars. Message-ID: <1227401989.395985.3230.nullmailer@users.sourceforge.jp> Revision: 1407 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1407 Author: shinsuke Date: 2008-11-23 09:59:49 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- userinfo/trunk/.classpath userinfo/trunk/pom.xml -------------- next part -------------- Modified: userinfo/trunk/.classpath =================================================================== --- userinfo/trunk/.classpath 2008-11-23 00:54:43 UTC (rev 1406) +++ userinfo/trunk/.classpath 2008-11-23 00:59:49 UTC (rev 1407) @@ -4,35 +4,37 @@ + + + - - - + + + + + + + - - - - + - - - - + + - + @@ -40,7 +42,5 @@ - - Modified: userinfo/trunk/pom.xml =================================================================== --- userinfo/trunk/pom.xml 2008-11-23 00:54:43 UTC (rev 1406) +++ userinfo/trunk/pom.xml 2008-11-23 00:59:49 UTC (rev 1407) @@ -5,7 +5,7 @@ userinfo 1.0-SNAPSHOT war - UserInfo + User Info userinfo @@ -61,16 +61,6 @@ - mvnrepository.com - Maven2 Repository on mvnrepository.com - http://mvnrepository.com/artifact/ - - - maven.marevol.com - Maven2 Repository on marevol.com - http://maven2.marevol.com/ - - maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 @@ -78,45 +68,35 @@ - portlet-api - portlet-api - 1.0 - provided + log4j + log4j + 1.2.13 - org.apache.portals.bridges - portals-bridges-portletfilter - 1.0.4 - - - logkit - logkit - - - avalon-framework - avalon-framework - - - javax.servlet - servlet-api - - - log4j - log4j - - + com.h2database + h2 + 1.0.79 + - commons-configuration - commons-configuration - 1.5 + javax.servlet + servlet-api + 2.3 + provided + portlet-api + portlet-api + 1.0 + provided + + jstl jstl 1.1.2 @@ -127,6 +107,16 @@ 1.1.2 + commons-collections + commons-collections + 3.2 + + + commons-configuration + commons-configuration + 1.5 + + commons-el commons-el 1.0 @@ -156,124 +146,41 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - - javax.servlet - servlet-api - 2.3 - provided - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - @@ -286,17 +193,37 @@ s2-dao-tiger 1.0.48 + - com.h2database - h2 - 1.0.79 + + antlr + antlr + 2.7.7 + provided - + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 10:05:51 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 10:05:51 +0900 Subject: [pal-cvs 3673] [1408] updated db. Message-ID: <1227402351.158834.9294.nullmailer@users.sourceforge.jp> Revision: 1408 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1408 Author: shinsuke Date: 2008-11-23 10:05:51 +0900 (Sun, 23 Nov 2008) Log Message: ----------- updated db. Modified Paths: -------------- userinfo/trunk/src/main/config/sql/others/scheduler.ddl userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db -------------- next part -------------- Modified: userinfo/trunk/src/main/config/sql/others/scheduler.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/others/scheduler.ddl 2008-11-23 00:59:49 UTC (rev 1407) +++ userinfo/trunk/src/main/config/sql/others/scheduler.ddl 2008-11-23 01:05:51 UTC (rev 1408) @@ -41,3 +41,57 @@ FOREIGN KEY (id) REFERENCES event_schedule (id) ); +/********************************** +Table Name: Facility Group +**********************************/ +CREATE TABLE facility_group( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 1 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL +); + +/********************************** +Table Name: Facility +**********************************/ +CREATE TABLE facility( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 1 NOT NULL, + group_id INTEGER NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (group_id) REFERENCES facility_group (id) +); + +/********************************** +Table Name: Facility Content +**********************************/ +CREATE TABLE facility_content( + id INTEGER NOT NULL PRIMARY KEY, + content VARCHAR(1000), + FOREIGN KEY (id) REFERENCES facility (id) +); + +/********************************** +Table Name: Facility Schedule Mapping +**********************************/ +CREATE TABLE facility_schedule_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + schedule_id BIGINT(20) NOT NULL, + facility_id INTEGER NOT NULL, + FOREIGN KEY (schedule_id) REFERENCES event_schedule (id), + FOREIGN KEY (facility_id) REFERENCES facility (id) +); + Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.index.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Sun Nov 23 10:24:32 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 10:24:32 +0900 Subject: [pal-cvs 3674] [1409] clean up jars. Message-ID: <1227403472.053708.32503.nullmailer@users.sourceforge.jp> Revision: 1409 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1409 Author: shinsuke Date: 2008-11-23 10:24:31 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- chat/trunk/.classpath chat/trunk/pom.xml -------------- next part -------------- Modified: chat/trunk/.classpath =================================================================== --- chat/trunk/.classpath 2008-11-23 01:05:51 UTC (rev 1408) +++ chat/trunk/.classpath 2008-11-23 01:24:31 UTC (rev 1409) @@ -4,40 +4,39 @@ - - - + - - - + + + + + - Modified: chat/trunk/pom.xml =================================================================== --- chat/trunk/pom.xml 2008-11-23 01:05:51 UTC (rev 1408) +++ chat/trunk/pom.xml 2008-11-23 01:24:31 UTC (rev 1409) @@ -48,24 +48,11 @@ - org.easymock - easymock - 2.2 - test + log4j + log4j + 1.2.13 - junit - junit - 3.8.2 - test - - - antlr - antlr - 2.7.7 - provided - - portlet-api portlet-api 1.0 @@ -91,6 +78,7 @@ commons-el 1.0 + commons-lang commons-lang @@ -116,12 +105,6 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - org.seasar.container @@ -161,6 +144,11 @@ org.apache.geronimo.specs + geronimo-jpa_3.0_spec + 1.0 + + + org.apache.geronimo.specs geronimo-jsp_2.0_spec 1.0 provided @@ -171,10 +159,37 @@ 1.0 provided + - org.apache.geronimo.specs - geronimo-jpa_3.0_spec - 1.0 + + antlr + antlr + 2.7.7 + provided + + junit + junit + 3.8.2 + test + + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 10:32:11 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 10:32:11 +0900 Subject: [pal-cvs 3675] [1410] clean up jars. Message-ID: <1227403931.267324.16822.nullmailer@users.sourceforge.jp> Revision: 1410 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1410 Author: shinsuke Date: 2008-11-23 10:32:11 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- googlegadgets/trunk/.classpath googlegadgets/trunk/pom.xml -------------- next part -------------- Modified: googlegadgets/trunk/.classpath =================================================================== --- googlegadgets/trunk/.classpath 2008-11-23 01:24:31 UTC (rev 1409) +++ googlegadgets/trunk/.classpath 2008-11-23 01:32:11 UTC (rev 1410) @@ -4,13 +4,12 @@ + - - @@ -18,14 +17,11 @@ - - - - - + + - + @@ -34,7 +30,9 @@ + + Modified: googlegadgets/trunk/pom.xml =================================================================== --- googlegadgets/trunk/pom.xml 2008-11-23 01:24:31 UTC (rev 1409) +++ googlegadgets/trunk/pom.xml 2008-11-23 01:32:11 UTC (rev 1410) @@ -98,6 +98,11 @@ + log4j + log4j + 1.2.13 + + portlet-api portlet-api 1.0 @@ -118,6 +123,7 @@ commons-el 1.0 + commons-lang commons-lang @@ -144,30 +151,6 @@ 1.0.4 - log4j - log4j - 1.2.13 - jar - - - javax.mail - mail - 1.4 - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - javax.servlet servlet-api 2.3 @@ -178,20 +161,6 @@ org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs @@ -213,6 +182,38 @@ geronimo-jta_1.1_spec 1.0 + + + + antlr + antlr + 2.7.7 + provided + + + junit + junit + 3.8.2 + test + + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 10:35:59 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 10:35:59 +0900 Subject: [pal-cvs 3676] [1411] clean up jars. Message-ID: <1227404159.228547.21379.nullmailer@users.sourceforge.jp> Revision: 1411 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1411 Author: shinsuke Date: 2008-11-23 10:35:58 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- netvibes-widgets/trunk/.classpath netvibes-widgets/trunk/pom.xml -------------- next part -------------- Modified: netvibes-widgets/trunk/.classpath =================================================================== --- netvibes-widgets/trunk/.classpath 2008-11-23 01:32:11 UTC (rev 1410) +++ netvibes-widgets/trunk/.classpath 2008-11-23 01:35:58 UTC (rev 1411) @@ -4,13 +4,12 @@ + - - @@ -18,14 +17,11 @@ - - - - - + + - + @@ -34,7 +30,9 @@ + + Modified: netvibes-widgets/trunk/pom.xml =================================================================== --- netvibes-widgets/trunk/pom.xml 2008-11-23 01:32:11 UTC (rev 1410) +++ netvibes-widgets/trunk/pom.xml 2008-11-23 01:35:58 UTC (rev 1411) @@ -98,6 +98,11 @@ + log4j + log4j + 1.2.13 + + portlet-api portlet-api 1.0 @@ -118,6 +123,7 @@ commons-el 1.0 + commons-lang commons-lang @@ -144,30 +151,6 @@ 1.0.4 - log4j - log4j - 1.2.13 - jar - - - javax.mail - mail - 1.4 - - - - org.apache.portals.jetspeed-2 - jetspeed-api - 2.1.3 - provided - - - junit - junit - - - - javax.servlet servlet-api 2.3 @@ -178,20 +161,6 @@ org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs @@ -213,6 +182,38 @@ geronimo-jta_1.1_spec 1.0 + + + + antlr + antlr + 2.7.7 + provided + + + junit + junit + 3.8.2 + test + + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Sun Nov 23 10:39:24 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 23 Nov 2008 10:39:24 +0900 Subject: [pal-cvs 3677] [1412] clean up jars. Message-ID: <1227404364.646388.25708.nullmailer@users.sourceforge.jp> Revision: 1412 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1412 Author: shinsuke Date: 2008-11-23 10:39:24 +0900 (Sun, 23 Nov 2008) Log Message: ----------- clean up jars. Modified Paths: -------------- vfs-portlets/trunk/.classpath vfs-portlets/trunk/pom.xml -------------- next part -------------- Modified: vfs-portlets/trunk/.classpath =================================================================== --- vfs-portlets/trunk/.classpath 2008-11-23 01:35:58 UTC (rev 1411) +++ vfs-portlets/trunk/.classpath 2008-11-23 01:39:24 UTC (rev 1412) @@ -4,6 +4,7 @@ + @@ -15,26 +16,28 @@ + + + + - - - + - - + + - + Modified: vfs-portlets/trunk/pom.xml =================================================================== --- vfs-portlets/trunk/pom.xml 2008-11-23 01:35:58 UTC (rev 1411) +++ vfs-portlets/trunk/pom.xml 2008-11-23 01:39:24 UTC (rev 1412) @@ -98,6 +98,11 @@ + log4j + log4j + 1.2.13 + + javax.servlet servlet-api 2.3 @@ -174,106 +179,74 @@ commons-logging 1.0.4 - - log4j - log4j - 1.2.13 - jar - org.seasar.container s2-extension 2.4.29 - - - log4j - log4j - - - junit - junit - - org.seasar.container s2-tiger 2.4.29 - - - org.easymock - easymock - - - junit - junit - - org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - org.apache.geronimo.specs geronimo-annotation_1.0_spec 1.1.1 - - - junit - junit - - org.apache.geronimo.specs geronimo-ejb_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-interceptor_3.0_spec 1.0 - - - junit - junit - - org.apache.geronimo.specs geronimo-jta_1.1_spec 1.0 - - - junit - junit - - + + + + antlr + antlr + 2.7.7 + provided + + + junit + junit + 3.8.2 + test + + + org.easymock + easymock + 2.2 + test + + + xalan + xalan + 2.5.1 + provided + + + xml-apis + xml-apis + 2.0.2 + provided + From svnnotify ¡÷ sourceforge.jp Mon Nov 24 13:03:52 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 13:03:52 +0900 Subject: [pal-cvs 3678] [1413] added language. Message-ID: <1227499432.525328.25167.nullmailer@users.sourceforge.jp> Revision: 1413 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1413 Author: shinsuke Date: 2008-11-24 13:03:52 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- userinfo/trunk/src/main/config/erd/userinfo.erd userinfo/trunk/src/main/config/sql/userinfo.ddl userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java userinfo/trunk/src/main/resources/application.properties userinfo/trunk/src/main/resources/application_ja.properties userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp -------------- next part -------------- Modified: userinfo/trunk/src/main/config/erd/userinfo.erd =================================================================== --- userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/config/erd/userinfo.erd 2008-11-24 04:03:52 UTC (rev 1413) @@ -166,6 +166,22 @@ + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -217,7 +233,7 @@ updated_time Updated Time - + 10 true false @@ -239,7 +255,7 @@ deleted_time Deleted Time - + 10 false false @@ -298,7 +314,7 @@ false - + @@ -368,7 +384,7 @@ created_time Created Time - + 10 true false @@ -390,7 +406,7 @@ updated_time Updated Time - + 10 true false @@ -412,7 +428,7 @@ deleted_time Deleted Time - + 10 false false @@ -434,7 +450,7 @@ versionNo Version No. - + 10 true false @@ -446,7 +462,7 @@ 40 - 700 + 719 -1 -1 @@ -600,7 +616,7 @@ false - + @@ -670,7 +686,7 @@ created_time Created Time - + 10 true false @@ -692,7 +708,7 @@ updated_time Updated Time - + 10 true false @@ -714,7 +730,7 @@ deleted_time Deleted Time - + 10 false false @@ -736,7 +752,7 @@ versionNo Version No. - + 10 true false @@ -748,7 +764,7 @@ 364 - 700 + 719 -1 -1 Modified: userinfo/trunk/src/main/config/sql/userinfo.ddl =================================================================== --- userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/config/sql/userinfo.ddl 2008-11-24 04:03:52 UTC (rev 1413) @@ -58,6 +58,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -2,7 +2,10 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Locale; +import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -444,6 +447,26 @@ .getSelectedGroupList(userInfoForm.selectedGroups); } + public List> getLocaleItems() { + List> localeList = new ArrayList>(); + Locale[] locales = Locale.getAvailableLocales(); + Locale cLocale = request.getLocale(); + Map checkMap = new HashMap(); + for (Locale lc : locales) { + String value = lc.toString().length() > 5 ? lc.toString() + .substring(0, 5) : lc.toString(); + if (!checkMap.containsKey(value)) { + Map map = new HashMap(2); + map.put("label", lc.getDisplayLanguage(cLocale) + "(" + value + + ")"); + map.put("value", value); + localeList.add(map); + checkMap.put(value, lc); + } + } + return localeList; + } + /** * @return the request */ Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsbhv/BsUserInfoBhv.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -37,7 +37,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/BsUserInfo.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -20,7 +20,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -105,6 +105,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -395,6 +398,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -682,6 +686,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -424,6 +431,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -516,6 +524,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/bs/BsUserInfoCB.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -294,6 +294,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -1910,6 +1910,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.userinfo.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -521,6 +521,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -198,6 +198,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -25,6 +25,7 @@ + ", email : email" // + ", url : url" // + ", telephone : telephone" // + + ", locale : locale" // + ", roleId : roleId" // + ", groupId : groupId" // + ", createdTime : createdTime" // @@ -53,6 +54,7 @@ + ", email : email" // + ", url : url" // + ", telephone : telephone" // + + ", locale : locale" // + ", roleId : roleId" // + ", groupId : groupId" // // + ", createdTime : createdTime" // Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java 2008-11-24 04:03:52 UTC (rev 1413) @@ -53,6 +53,9 @@ @Maxbytelength(maxbytelength = 40) public String telephone; + @Maxbytelength(maxbytelength = 5) + public String locale; + @Maxbytelength(maxbytelength = 255) public String roleId; @@ -105,6 +108,7 @@ email = null; url = null; telephone = null; + locale = null; roleId = null; groupId = null; createdTime = null; Modified: userinfo/trunk/src/main/resources/application.properties =================================================================== --- userinfo/trunk/src/main/resources/application.properties 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/resources/application.properties 2008-11-24 04:03:52 UTC (rev 1413) @@ -134,3 +134,5 @@ labels.add_groups=Add >> labels.remove_groups=<< Remove +labels.locale=Language + Modified: userinfo/trunk/src/main/resources/application_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/application_ja.properties 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/resources/application_ja.properties 2008-11-24 04:03:52 UTC (rev 1413) @@ -127,3 +127,4 @@ labels.add_groups=\u8ffd\u52a0 >> labels.remove_groups=<< \u524a\u9664 +labels.locale=\u8a00\u8a9e Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.1.log.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/db/userinfo.data.db =================================================================== (Binary files differ) Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-24 04:03:52 UTC (rev 1413) @@ -85,6 +85,16 @@
      + + + + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-24 04:03:52 UTC (rev 1413) @@ -86,6 +86,17 @@ + + + + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp 2008-11-24 04:03:52 UTC (rev 1413) @@ -41,6 +41,7 @@ + Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp 2008-11-23 01:39:24 UTC (rev 1412) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp 2008-11-24 04:03:52 UTC (rev 1413) @@ -41,6 +41,7 @@ + From svnnotify ¡÷ sourceforge.jp Mon Nov 24 13:16:20 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 13:16:20 +0900 Subject: [pal-cvs 3679] [1414] added language. Message-ID: <1227500180.247353.4588.nullmailer@users.sourceforge.jp> Revision: 1414 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1414 Author: shinsuke Date: 2008-11-24 13:16:20 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- addresslist/trunk/src/main/config/erd/addresslist.erd addresslist/trunk/src/main/config/sql/addresslist.ddl addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db -------------- next part -------------- Modified: addresslist/trunk/src/main/config/erd/addresslist.erd =================================================================== --- addresslist/trunk/src/main/config/erd/addresslist.erd 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/config/erd/addresslist.erd 2008-11-24 04:16:20 UTC (rev 1414) @@ -166,6 +166,22 @@ + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -217,7 +233,7 @@ updated_time Updated Time - + 10 true false @@ -239,7 +255,7 @@ deleted_time Deleted Time - + 10 false false @@ -298,7 +314,7 @@ false - + @@ -368,7 +384,7 @@ created_time Created Time - + 10 true false @@ -390,7 +406,7 @@ updated_time Updated Time - + 10 true false @@ -412,7 +428,7 @@ deleted_time Deleted Time - + 10 false false @@ -434,7 +450,7 @@ versionNo Version No. - + 10 true false @@ -446,7 +462,7 @@ 40 - 1816 + 1835 -1 -1 @@ -600,7 +616,7 @@ false - + @@ -670,7 +686,7 @@ created_time Created Time - + 10 true false @@ -692,7 +708,7 @@ updated_time Updated Time - + 10 true false @@ -714,7 +730,7 @@ deleted_time Deleted Time - + 10 false false @@ -736,7 +752,7 @@ versionNo Version No. - + 10 true false @@ -748,7 +764,7 @@ 586 - 1816 + 1835 -1 -1 Modified: addresslist/trunk/src/main/config/sql/addresslist.ddl =================================================================== --- addresslist/trunk/src/main/config/sql/addresslist.ddl 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/config/sql/addresslist.ddl 2008-11-24 04:16:20 UTC (rev 1414) @@ -63,6 +63,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsbhv/BsUserInfoBhv.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -43,7 +43,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/BsUserInfo.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -22,7 +22,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -107,6 +107,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -457,6 +460,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -744,6 +748,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -436,6 +443,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -528,6 +536,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/bs/BsUserInfoCB.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -296,6 +296,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -2144,6 +2144,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.addresslist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -683,6 +683,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 04:03:52 UTC (rev 1413) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 04:16:20 UTC (rev 1414) @@ -246,6 +246,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: addresslist/trunk/src/main/webapp/WEB-INF/db/addresslist.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Mon Nov 24 14:14:05 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 14:14:05 +0900 Subject: [pal-cvs 3680] [1415] added language. Message-ID: <1227503645.607937.25858.nullmailer@users.sourceforge.jp> Revision: 1415 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1415 Author: shinsuke Date: 2008-11-24 14:14:05 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- board/trunk/src/main/config/erd/board.erd board/trunk/src/main/config/sql/board.ddl board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java board/trunk/src/main/webapp/WEB-INF/db/board.data.db -------------- next part -------------- Modified: board/trunk/src/main/config/erd/board.erd =================================================================== --- board/trunk/src/main/config/erd/board.erd 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/config/erd/board.erd 2008-11-24 05:14:05 UTC (rev 1415) @@ -152,7 +152,7 @@ 452 - 871 + 890 -1 -1 @@ -1312,6 +1312,22 @@
      + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -1363,7 +1379,7 @@ updated_time Updated Time - + 10 true false @@ -1385,7 +1401,7 @@ deleted_time Deleted Time - + 10 false false @@ -1444,7 +1460,7 @@ false - + @@ -1514,7 +1530,7 @@ created_time Created Time - + 10 true false @@ -1536,7 +1552,7 @@ updated_time Updated Time - + 10 true false @@ -1558,7 +1574,7 @@ deleted_time Deleted Time - + 10 false false @@ -1580,7 +1596,7 @@ versionNo Version No. - + 10 true false @@ -1592,7 +1608,7 @@ 1094 - 871 + 890 -1 -1 @@ -1746,7 +1762,7 @@ false - + @@ -1816,7 +1832,7 @@ created_time Created Time - + 10 true false @@ -1838,7 +1854,7 @@ updated_time Updated Time - + 10 true false @@ -1860,7 +1876,7 @@ deleted_time Deleted Time - + 10 false false @@ -1882,7 +1898,7 @@ versionNo Version No. - + 10 true false @@ -1894,7 +1910,7 @@ 1418 - 871 + 890 -1 -1 Modified: board/trunk/src/main/config/sql/board.ddl =================================================================== --- board/trunk/src/main/config/sql/board.ddl 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/config/sql/board.ddl 2008-11-24 05:14:05 UTC (rev 1415) @@ -176,6 +176,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsbhv/BsUserInfoBhv.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -37,7 +37,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/BsUserInfo.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -20,7 +20,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -105,6 +105,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -395,6 +398,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -682,6 +686,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -424,6 +431,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -516,6 +524,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/bs/BsUserInfoCB.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -294,6 +294,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -1909,6 +1909,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.board.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.board.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -521,6 +521,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 04:16:20 UTC (rev 1414) +++ board/trunk/src/main/java/jp/sf/pal/board/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 05:14:05 UTC (rev 1415) @@ -198,6 +198,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: board/trunk/src/main/webapp/WEB-INF/db/board.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Mon Nov 24 14:27:50 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 14:27:50 +0900 Subject: [pal-cvs 3681] [1416] added language. Message-ID: <1227504470.165441.5645.nullmailer@users.sourceforge.jp> Revision: 1416 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1416 Author: shinsuke Date: 2008-11-24 14:27:50 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- bookmark/trunk/src/main/config/erd/bookmark.erd bookmark/trunk/src/main/config/sql/bookmark.ddl bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db -------------- next part -------------- Modified: bookmark/trunk/src/main/config/erd/bookmark.erd =================================================================== --- bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/config/erd/bookmark.erd 2008-11-24 05:27:50 UTC (rev 1416) @@ -166,6 +166,22 @@
      + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -217,7 +233,7 @@ updated_time Updated Time - + 10 true false @@ -239,7 +255,7 @@ deleted_time Deleted Time - + 10 false false @@ -298,7 +314,7 @@ false - + @@ -368,7 +384,7 @@ created_time Created Time - + 10 true false @@ -390,7 +406,7 @@ updated_time Updated Time - + 10 true false @@ -412,7 +428,7 @@ deleted_time Deleted Time - + 10 false false @@ -434,7 +450,7 @@ versionNo Version No. - + 10 true false @@ -446,7 +462,7 @@ 40 - 1239 + 1258 -1 -1 @@ -600,7 +616,7 @@ false - + @@ -670,7 +686,7 @@ created_time Created Time - + 10 true false @@ -692,7 +708,7 @@ updated_time Updated Time - + 10 true false @@ -714,7 +730,7 @@ deleted_time Deleted Time - + 10 false false @@ -736,7 +752,7 @@ versionNo Version No. - + 10 true false @@ -748,7 +764,7 @@ 620 - 1239 + 1258 -1 -1 Modified: bookmark/trunk/src/main/config/sql/bookmark.ddl =================================================================== --- bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/config/sql/bookmark.ddl 2008-11-24 05:27:50 UTC (rev 1416) @@ -60,6 +60,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsbhv/BsUserInfoBhv.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -43,7 +43,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/BsUserInfo.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -22,7 +22,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -107,6 +107,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -529,6 +532,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -816,6 +820,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -452,6 +459,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -544,6 +552,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/bs/BsUserInfoCB.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -296,6 +296,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -2414,6 +2414,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.bookmark.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -903,6 +903,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 05:14:05 UTC (rev 1415) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 05:27:50 UTC (rev 1416) @@ -320,6 +320,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.1.log.db =================================================================== (Binary files differ) Modified: bookmark/trunk/src/main/webapp/WEB-INF/db/bookmark.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Mon Nov 24 15:37:59 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 15:37:59 +0900 Subject: [pal-cvs 3682] [1417] added language. Message-ID: <1227508679.461460.4014.nullmailer@users.sourceforge.jp> Revision: 1417 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1417 Author: shinsuke Date: 2008-11-24 15:37:59 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- notepad/trunk/src/main/config/erd/notepad.erd notepad/trunk/src/main/config/sql/notepad.ddl notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db -------------- next part -------------- Modified: notepad/trunk/src/main/config/erd/notepad.erd =================================================================== --- notepad/trunk/src/main/config/erd/notepad.erd 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/config/erd/notepad.erd 2008-11-24 06:37:59 UTC (rev 1417) @@ -166,6 +166,22 @@
      + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -217,7 +233,7 @@ updated_time Updated Time - + 10 true false @@ -239,7 +255,7 @@ deleted_time Deleted Time - + 10 false false @@ -298,7 +314,7 @@ false - + @@ -368,7 +384,7 @@ created_time Created Time - + 10 true false @@ -390,7 +406,7 @@ updated_time Updated Time - + 10 true false @@ -412,7 +428,7 @@ deleted_time Deleted Time - + 10 false false @@ -434,7 +450,7 @@ versionNo Version No. - + 10 true false @@ -446,7 +462,7 @@ 40 - 1303 + 1322 -1 -1 @@ -600,7 +616,7 @@ false - + @@ -670,7 +686,7 @@ created_time Created Time - + 10 true false @@ -692,7 +708,7 @@ updated_time Updated Time - + 10 true false @@ -714,7 +730,7 @@ deleted_time Deleted Time - + 10 false false @@ -736,7 +752,7 @@ versionNo Version No. - + 10 true false @@ -748,7 +764,7 @@ 620 - 1303 + 1322 -1 -1 Modified: notepad/trunk/src/main/config/sql/notepad.ddl =================================================================== --- notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/config/sql/notepad.ddl 2008-11-24 06:37:59 UTC (rev 1417) @@ -61,6 +61,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsbhv/BsUserInfoBhv.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -43,7 +43,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/BsUserInfo.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -22,7 +22,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -107,6 +107,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -523,6 +526,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -810,6 +814,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -452,6 +459,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -544,6 +552,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/bs/BsUserInfoCB.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -296,6 +296,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -2402,6 +2402,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.notepad.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.notepad.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -885,6 +885,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 05:27:50 UTC (rev 1416) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 06:37:59 UTC (rev 1417) @@ -320,6 +320,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.1.log.db =================================================================== (Binary files differ) Modified: notepad/trunk/src/main/webapp/WEB-INF/db/notepad.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Mon Nov 24 15:49:26 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 15:49:26 +0900 Subject: [pal-cvs 3683] [1418] added language. Message-ID: <1227509366.068077.13319.nullmailer@users.sourceforge.jp> Revision: 1418 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1418 Author: shinsuke Date: 2008-11-24 15:49:25 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- scheduler/trunk/src/main/config/erd/scheduler.erd scheduler/trunk/src/main/config/sql/scheduler.ddl scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db -------------- next part -------------- Modified: scheduler/trunk/src/main/config/erd/scheduler.erd =================================================================== --- scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-24 06:49:25 UTC (rev 1418) @@ -166,6 +166,22 @@
      + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -217,7 +233,7 @@ updated_time Updated Time - + 10 true false @@ -239,7 +255,7 @@ deleted_time Deleted Time - + 10 false false @@ -298,7 +314,7 @@ false - + @@ -368,7 +384,7 @@ created_time Created Time - + 10 true false @@ -390,7 +406,7 @@ updated_time Updated Time - + 10 true false @@ -412,7 +428,7 @@ deleted_time Deleted Time - + 10 false false @@ -434,7 +450,7 @@ versionNo Version No. - + 10 true false @@ -446,7 +462,7 @@ 40 - 700 + 719 -1 -1 @@ -600,7 +616,7 @@ false - + @@ -670,7 +686,7 @@ created_time Created Time - + 10 true false @@ -692,7 +708,7 @@ updated_time Updated Time - + 10 true false @@ -714,7 +730,7 @@ deleted_time Deleted Time - + 10 false false @@ -736,7 +752,7 @@ versionNo Version No. - + 10 true false @@ -748,7 +764,7 @@ 364 - 700 + 719 -1 -1 @@ -1616,7 +1632,7 @@ 823 - 700 + 719 -1 -1 Modified: scheduler/trunk/src/main/config/sql/scheduler.ddl =================================================================== --- scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-24 06:49:25 UTC (rev 1418) @@ -65,6 +65,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsUserInfoBhv.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -40,7 +40,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsUserInfo.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -21,7 +21,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -106,6 +106,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -428,6 +431,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -715,6 +719,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -431,6 +438,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -523,6 +531,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsUserInfoCB.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -295,6 +295,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -2035,6 +2035,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -610,6 +610,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 06:37:59 UTC (rev 1417) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 06:49:25 UTC (rev 1418) @@ -229,6 +229,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.1.log.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.data.db =================================================================== (Binary files differ) Modified: scheduler/trunk/src/main/webapp/WEB-INF/db/scheduler.index.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Mon Nov 24 15:55:26 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 15:55:26 +0900 Subject: [pal-cvs 3684] [1419] added language. Message-ID: <1227509726.330688.18267.nullmailer@users.sourceforge.jp> Revision: 1419 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1419 Author: shinsuke Date: 2008-11-24 15:55:26 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- timecard/trunk/src/main/config/erd/timecard.erd timecard/trunk/src/main/config/sql/timecard.ddl timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db -------------- next part -------------- Modified: timecard/trunk/src/main/config/erd/timecard.erd =================================================================== --- timecard/trunk/src/main/config/erd/timecard.erd 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/config/erd/timecard.erd 2008-11-24 06:55:26 UTC (rev 1419) @@ -271,7 +271,7 @@ - 280 + 293 484 -1 -1 @@ -448,7 +448,7 @@ - 292 + 305 966 -1 -1 @@ -628,6 +628,22 @@
      + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -679,7 +695,7 @@ updated_time Updated Time - + 10 true false @@ -701,7 +717,7 @@ deleted_time Deleted Time - + 10 false false @@ -739,7 +755,7 @@ - 276 + 289 1296 -1 -1 @@ -760,7 +776,7 @@ false - + @@ -830,7 +846,7 @@ created_time Created Time - + 10 true false @@ -852,7 +868,7 @@ updated_time Updated Time - + 10 true false @@ -874,7 +890,7 @@ deleted_time Deleted Time - + 10 false false @@ -896,7 +912,7 @@ versionNo Version No. - + 10 true false @@ -908,7 +924,7 @@ 40 - 1797 + 1816 -1 -1 @@ -976,7 +992,7 @@ - 56 + 44 966 -1 -1 @@ -1062,7 +1078,7 @@ false - + @@ -1132,7 +1148,7 @@ created_time Created Time - + 10 true false @@ -1154,7 +1170,7 @@ updated_time Updated Time - + 10 true false @@ -1176,7 +1192,7 @@ deleted_time Deleted Time - + 10 false false @@ -1198,7 +1214,7 @@ versionNo Version No. - + 10 true false @@ -1209,8 +1225,8 @@ - 542 - 1797 + 568 + 1816 -1 -1 @@ -1273,7 +1289,7 @@ - 563 + 576 966 -1 -1 @@ -1658,7 +1674,7 @@ - 267 + 280 40 -1 -1 @@ -1727,4 +1743,4 @@ - + \ No newline at end of file Modified: timecard/trunk/src/main/config/sql/timecard.ddl =================================================================== --- timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/config/sql/timecard.ddl 2008-11-24 06:55:26 UTC (rev 1419) @@ -61,6 +61,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsbhv/BsUserInfoBhv.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -40,7 +40,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/BsUserInfo.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -21,7 +21,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -106,6 +106,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -456,6 +459,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -743,6 +747,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -438,6 +445,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -530,6 +538,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/bs/BsUserInfoCB.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -295,6 +295,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -2150,6 +2150,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.timecard.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.timecard.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -692,6 +692,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 06:49:25 UTC (rev 1418) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 06:55:26 UTC (rev 1419) @@ -258,6 +258,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.1.log.db =================================================================== (Binary files differ) Modified: timecard/trunk/src/main/webapp/WEB-INF/db/timecard.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Mon Nov 24 16:02:36 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Mon, 24 Nov 2008 16:02:36 +0900 Subject: [pal-cvs 3685] [1420] added language. Message-ID: <1227510156.345761.25766.nullmailer@users.sourceforge.jp> Revision: 1420 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1420 Author: shinsuke Date: 2008-11-24 16:02:36 +0900 (Mon, 24 Nov 2008) Log Message: ----------- added language. Modified Paths: -------------- todolist/trunk/src/main/config/erd/todolist.erd todolist/trunk/src/main/config/sql/todolist.ddl todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db -------------- next part -------------- Modified: todolist/trunk/src/main/config/erd/todolist.erd =================================================================== --- todolist/trunk/src/main/config/erd/todolist.erd 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/config/erd/todolist.erd 2008-11-24 07:02:36 UTC (rev 1420) @@ -166,6 +166,22 @@
      + locale + Locale + + VARCHAR + String + true + 12 + + 5 + false + false + + false + + + role_id Default Role ID @@ -217,7 +233,7 @@ updated_time Updated Time - + 10 true false @@ -239,7 +255,7 @@ deleted_time Deleted Time - + 10 false false @@ -298,7 +314,7 @@ false - + @@ -368,7 +384,7 @@ created_time Created Time - + 10 true false @@ -390,7 +406,7 @@ updated_time Updated Time - + 10 true false @@ -412,7 +428,7 @@ deleted_time Deleted Time - + 10 false false @@ -434,7 +450,7 @@ versionNo Version No. - + 10 true false @@ -446,7 +462,7 @@ 40 - 1258 + 1277 -1 -1 @@ -600,7 +616,7 @@ false - + @@ -670,7 +686,7 @@ created_time Created Time - + 10 true false @@ -692,7 +708,7 @@ updated_time Updated Time - + 10 true false @@ -714,7 +730,7 @@ deleted_time Deleted Time - + 10 false false @@ -736,7 +752,7 @@ versionNo Version No. - + 10 true false @@ -748,7 +764,7 @@ 864 - 1258 + 1277 -1 -1 @@ -1175,7 +1191,7 @@ created_time Created Time - + 10 true false @@ -1197,7 +1213,7 @@ updated_time Updated Time - + 10 true false @@ -1219,7 +1235,7 @@ deleted_time Deleted Time - + 10 false false @@ -1241,7 +1257,7 @@ versionNo Version No. - + 10 true false @@ -1375,7 +1391,7 @@ created_time Created Time - + 10 true false @@ -1397,7 +1413,7 @@ updated_time Updated Time - + 10 true false @@ -1419,7 +1435,7 @@ deleted_time Deleted Time - + 10 false false Modified: todolist/trunk/src/main/config/sql/todolist.ddl =================================================================== --- todolist/trunk/src/main/config/sql/todolist.ddl 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/config/sql/todolist.ddl 2008-11-24 07:02:36 UTC (rev 1420) @@ -61,6 +61,7 @@ email VARCHAR(255), url VARCHAR(255), telephone VARCHAR(40), + locale VARCHAR(5), role_id VARCHAR(255), group_id VARCHAR(255), created_time TIMESTAMP NOT NULL, Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsbhv/BsUserInfoBhv.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -46,7 +46,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/BsUserInfo.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -23,7 +23,7 @@ * USER_ID * * [column] - * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO + * USER_ID, GIVEN_NAME, FAMILY_NAME, MIDDLE_NAME, GIVEN_NAME_DESC, FAMILY_NAME_DESC, NICKNAME, GENDER, BIRTH_DATE, EMAIL, URL, TELEPHONE, LOCALE, ROLE_ID, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO * * [sequence] * @@ -108,6 +108,9 @@ /** TELEPHONE: {VARCHAR(40)} */ protected String _telephone; + /** LOCALE: {VARCHAR(5)} */ + protected String _locale; + /** ROLE_ID: {VARCHAR(255) : FK to ROLE_INFO} */ protected String _roleId; @@ -488,6 +491,7 @@ sb.append(delimiter).append(getEmail()); sb.append(delimiter).append(getUrl()); sb.append(delimiter).append(getTelephone()); + sb.append(delimiter).append(getLocale()); sb.append(delimiter).append(getRoleId()); sb.append(delimiter).append(getGroupId()); sb.append(delimiter).append(getCreatedTime()); @@ -775,6 +779,28 @@ this._telephone = telephone; } + /** The column annotation for S2Dao. {VARCHAR(5)} */ + public static final String locale_COLUMN = "LOCALE"; + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @return The value of the column 'LOCALE'. (Nullable) + */ + public String getLocale() { + return _locale; + } + + /** + * LOCALE: {VARCHAR(5)}
      + * + * @param locale The value of the column 'LOCALE'. (Nullable) + */ + public void setLocale(String locale) { + _modifiedProperties.addPropertyName("locale"); + this._locale = locale; + } + /** The column annotation for S2Dao. {VARCHAR(255) : FK to ROLE_INFO} */ public static final String roleId_COLUMN = "ROLE_ID"; Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/bsentity/dbmeta/UserInfoDbm.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -84,6 +84,9 @@ protected ColumnInfo _columnTelephone = cci("TELEPHONE", "telephone", String.class, false, 40, 0); + protected ColumnInfo _columnLocale = cci("LOCALE", "locale", String.class, + false, 5, 0); + protected ColumnInfo _columnRoleId = cci("ROLE_ID", "roleId", String.class, false, 255, 0); @@ -159,6 +162,10 @@ return _columnTelephone; } + public ColumnInfo columnLocale() { + return _columnLocale; + } + public ColumnInfo columnRoleId() { return _columnRoleId; } @@ -444,6 +451,7 @@ setupEps(_epsMap, new EpsEmail(), columnEmail()); setupEps(_epsMap, new EpsUrl(), columnUrl()); setupEps(_epsMap, new EpsTelephone(), columnTelephone()); + setupEps(_epsMap, new EpsLocale(), columnLocale()); setupEps(_epsMap, new EpsRoleId(), columnRoleId()); setupEps(_epsMap, new EpsGroupId(), columnGroupId()); setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); @@ -536,6 +544,12 @@ } } + public static class EpsLocale implements Eps { + public void setup(UserInfo e, Object v) { + e.setLocale((String) v); + } + } + public static class EpsRoleId implements Eps { public void setup(UserInfo e, Object v) { e.setRoleId((String) v); Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/bs/BsUserInfoCB.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -297,6 +297,10 @@ doColumn("TELEPHONE"); } + public void columnLocale() { + doColumn("LOCALE"); + } + public void columnRoleId() { doColumn("ROLE_ID"); } Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/AbstractBsUserInfoCQ.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -2262,6 +2262,143 @@ abstract protected ConditionValue getCValueTelephone(); /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(5)} + * + * @param locale The value of locale as equal. + */ + public void setLocale_Equal(String locale) { + regLocale(CK_EQ, fRES(locale)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as notEqual. + */ + public void setLocale_NotEqual(String locale) { + regLocale(CK_NE, fRES(locale)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterThan. + */ + public void setLocale_GreaterThan(String locale) { + regLocale(CK_GT, fRES(locale)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessThan. + */ + public void setLocale_LessThan(String locale) { + regLocale(CK_LT, fRES(locale)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as greaterEqual. + */ + public void setLocale_GreaterEqual(String locale) { + regLocale(CK_GE, fRES(locale)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as lessEqual. + */ + public void setLocale_LessEqual(String locale) { + regLocale(CK_LE, fRES(locale)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param locale The value of locale as prefixSearch. + */ + public void setLocale_PrefixSearch(String locale) { + regLocale(CK_PS, fRES(locale)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param locale The value of locale as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setLocale_LikeSearch( + String locale, + jp.sf.pal.todolist.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(locale), getCValueLocale(), + "LOCALE", "Locale", "locale", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as inScope. + */ + public void setLocale_InScope(Collection localeList) { + regLocale(CK_INS, cTL(localeList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param locale The collection of locale as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setLocale_InScope( + String locale, + jp.sf.pal.todolist.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(locale), getCValueLocale(), "LOCALE", + "Locale", "locale", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param localeList The collection of locale as notInScope. + */ + public void setLocale_NotInScope(Collection localeList) { + regLocale(CK_NINS, cTL(localeList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setLocale_IsNull() { + regLocale(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setLocale_IsNotNull() { + regLocale(CK_ISNN, DUMMY_OBJECT); + } + + protected void regLocale(ConditionKey key, Object value) { + registerQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + protected void registerInlineLocale(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueLocale(), "LOCALE", "Locale", + "locale"); + } + + abstract protected ConditionValue getCValueLocale(); + + /** * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255) : FK to * ROLE_INFO} * Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/bs/BsUserInfoCQ.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -774,6 +774,29 @@ return this; } + protected ConditionValue _locale; + + public ConditionValue getLocale() { + if (_locale == null) { + _locale = new ConditionValue(); + } + return _locale; + } + + protected ConditionValue getCValueLocale() { + return getLocale(); + } + + public BsUserInfoCQ addOrderBy_Locale_Asc() { + regOBA("LOCALE"); + return this; + } + + public BsUserInfoCQ addOrderBy_Locale_Desc() { + regOBD("LOCALE"); + return this; + } + protected ConditionValue _roleId; public ConditionValue getRoleId() { Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 06:55:26 UTC (rev 1419) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/cbean/cq/ciq/UserInfoCIQ.java 2008-11-24 07:02:36 UTC (rev 1420) @@ -280,6 +280,10 @@ return _myCQ.getTelephone(); } + protected ConditionValue getCValueLocale() { + return _myCQ.getLocale(); + } + protected ConditionValue getCValueRoleId() { return _myCQ.getRoleId(); } Modified: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.1.log.db =================================================================== (Binary files differ) Modified: todolist/trunk/src/main/webapp/WEB-INF/db/todolist.data.db =================================================================== (Binary files differ) From svnnotify ¡÷ sourceforge.jp Tue Nov 25 08:34:39 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 08:34:39 +0900 Subject: [pal-cvs 3686] [1421] added facilities portlet. Message-ID: <1227569679.960750.11550.nullmailer@users.sourceforge.jp> Revision: 1421 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1421 Author: shinsuke Date: 2008-11-25 08:34:39 +0900 (Tue, 25 Nov 2008) Log Message: ----------- added facilities portlet. Modified Paths: -------------- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-24 07:02:36 UTC (rev 1420) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-24 23:34:39 UTC (rev 1421) @@ -90,4 +90,26 @@ Scheduler,URL + + Facilities + Scheduler: Facilities + Manage facilities. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /user/facility/facility/ + + 0 + + text/html + VIEW + + en + ja + + Facilities + Facilities + Scheduler,URL + + From svnnotify ¡÷ sourceforge.jp Tue Nov 25 08:48:38 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 08:48:38 +0900 Subject: [pal-cvs 3687] [1422] modified portlet definition. Message-ID: <1227570518.670040.23255.nullmailer@users.sourceforge.jp> Revision: 1422 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1422 Author: shinsuke Date: 2008-11-25 08:48:38 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-24 23:34:39 UTC (rev 1421) +++ addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-24 23:48:38 UTC (rev 1422) @@ -1,9 +1,11 @@ + Edit configurations. + ¥¢¥É¥ì¥¹Ä¢¤ÎÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ AddressListConfig - AddressList: AddressList Configuration - Edit configurations. + AddressList: AddressList Config + ¥¢¥É¥ì¥¹Ä¢: ¥¢¥É¥ì¥¹Ä¢ÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -16,16 +18,19 @@ en ja + - AddressList Configuration + AddressList Config Config AddressList,URL + Edit an address list. + ¥¢¥É¥ì¥¹Ä¢¤òÊÔ½¸¤·¤Þ¤¹¡£ AddressListEditor AddressList: AddressList Editor - Edit an address list. + ¥¢¥É¥ì¥¹Ä¢: ¥¢¥É¥ì¥¹Ä¢ÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -38,16 +43,19 @@ en ja + - AddressList Editor + Address List AddressLists AddressList,URL + Manage an address list. + ¥¢¥É¥ì¥¹Ä¢¤ò´ÉÍý¤·¤Þ¤¹¡£ AddressListManager AddressList: AddressList Manager - Manage an address list. + ¥¢¥É¥ì¥¹Ä¢: ¥¢¥É¥ì¥¹Ä¢´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -60,6 +68,7 @@ en ja + AddressList Manager AddressLists From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:03:49 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:03:49 +0900 Subject: [pal-cvs 3688] [1423] modified portlet definition. Message-ID: <1227571429.730399.6185.nullmailer@users.sourceforge.jp> Revision: 1423 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1423 Author: shinsuke Date: 2008-11-25 09:03:49 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- board/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: board/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- board/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-24 23:48:38 UTC (rev 1422) +++ board/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:03:49 UTC (rev 1423) @@ -1,9 +1,11 @@ - + + Manage categories. + ¥«¥Æ¥´¥ê¡¼¤ò´ÉÍý¤·¤Þ¤¹¡£ CategoryEdit Board: Category Editor - Manage categories. + ·Ç¼¨ÈÄ: ¥«¥Æ¥´¥ê¥¨¥Ç¥£¥¿¡¼ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -16,6 +18,7 @@ en ja + Category Editor Categories @@ -23,9 +26,11 @@ - MessageAdmin - Board: Message Admin - Display messages. + Manage messages. + µ­»ö¤ò´ÉÍý¤·¤Þ¤¹¡£ + MessageManager + Board: Message Manager + ·Ç¼¨ÈÄ: µ­»ö´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -38,16 +43,19 @@ en ja + - Message Admin + Message Manager Messages Board,Message - MessageView - Board: Message Viewer - Display messages. + Display/Edit messages. + µ­»ö¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ + MessageEditor + Board: Message Editor + ·Ç¼¨ÈÄ: µ­»öÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -60,16 +68,19 @@ en ja + - Message Viewer + Messages Messages Board,Message + Edit configurations. + ÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ BoardConfig - Board: Board Configuration - Edit configurations. + Board: Board Config + ·Ç¼¨ÈÄ: ·Ç¼¨ÈÄÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -82,22 +93,11 @@ en ja + Board Configuration Config Board,URL - - Given name - user.name.given - - - Family name - user.name.family - - - User Nickname - user.name.nickName - From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:04:48 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:04:48 +0900 Subject: [pal-cvs 3689] [1424] added xml namespace. Message-ID: <1227571488.734310.7461.nullmailer@users.sourceforge.jp> Revision: 1424 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1424 Author: shinsuke Date: 2008-11-25 09:04:48 +0900 (Tue, 25 Nov 2008) Log Message: ----------- added xml namespace. Modified Paths: -------------- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:03:49 UTC (rev 1423) +++ addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:04:48 UTC (rev 1424) @@ -1,5 +1,5 @@ - + Edit configurations. ¥¢¥É¥ì¥¹Ä¢¤ÎÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ @@ -18,7 +18,7 @@ en ja - + AddressList Config Config @@ -43,7 +43,7 @@ en ja - + Address List AddressLists @@ -68,7 +68,7 @@ en ja - + AddressList Manager AddressLists From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:08:40 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:08:40 +0900 Subject: [pal-cvs 3690] [1425] modified portlet definition. Message-ID: <1227571720.607960.13316.nullmailer@users.sourceforge.jp> Revision: 1425 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1425 Author: shinsuke Date: 2008-11-25 09:08:40 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:04:48 UTC (rev 1424) +++ bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:08:40 UTC (rev 1425) @@ -1,9 +1,11 @@ - + - BookmarkView - Bookmark: Bookmark Viewer - Display bookmarks. + Display/Edit bookmarks. + ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ + BookmarkEditor + Bookmark: Bookmark Editor + ¥Ö¥Ã¥¯¥Þ¡¼¥¯: ¥Ö¥Ã¥¯¥Þ¡¼¥¯ÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -16,16 +18,19 @@ en ja + - Bookmark Viewer + Bookmarks Bookmarks Bookmark,URL - BookmarkAdmin + Manage bookmarks. + ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò´ÉÍý¤·¤Þ¤¹¡£ + BookmarkManager Bookmark: Bookmark Manager - Manage all bookmarks. + ¥Ö¥Ã¥¯¥Þ¡¼¥¯: ¥Ö¥Ã¥¯¥Þ¡¼¥¯´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -38,6 +43,7 @@ en ja + Bookmark Manager Bookmarks From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:11:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:11:04 +0900 Subject: [pal-cvs 3691] [1426] modified portlet definition. Message-ID: <1227571864.324094.21201.nullmailer@users.sourceforge.jp> Revision: 1426 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1426 Author: shinsuke Date: 2008-11-25 09:11:04 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- chat/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: chat/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:08:40 UTC (rev 1425) +++ chat/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:11:04 UTC (rev 1426) @@ -4,9 +4,11 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> - chat portlet + Display/Post chat messages. + ¥Á¥ã¥Ã¥È¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¡¦Åê¹Æ¤·¤Þ¤¹¡£ Chat Chat + ¥Á¥ã¥Ã¥È org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -18,6 +20,8 @@ VIEW en + ja + Chat From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:16:52 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:16:52 +0900 Subject: [pal-cvs 3692] [1427] modified portlet definition. Message-ID: <1227572212.250360.27674.nullmailer@users.sourceforge.jp> Revision: 1427 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1427 Author: shinsuke Date: 2008-11-25 09:16:52 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml notepad/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:11:04 UTC (rev 1426) +++ notepad/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:16:52 UTC (rev 1427) @@ -19,7 +19,7 @@ Notepad PAL Project - NotepadAdmin + NotepadManager admin - Notepad Viewer - Notepads + Notepad + Notepad Notepad,URL - NotepadAdmin + Manage notepad. + ¥á¥â¤ò´ÉÍý¤·¤Þ¤¹¡£ + NotepadManager Notepad: Notepad Manager - Manage all notepads. + ¥á¥âÄ¢: ¥á¥âÄ¢´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -38,6 +43,7 @@ en ja + Notepad Manager Notepads From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:23:15 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:23:15 +0900 Subject: [pal-cvs 3693] [1428] modified portlet definition. Message-ID: <1227572595.751487.808.nullmailer@users.sourceforge.jp> Revision: 1428 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1428 Author: shinsuke Date: 2008-11-25 09:23:15 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:16:52 UTC (rev 1427) +++ scheduler/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:23:15 UTC (rev 1428) @@ -19,7 +19,7 @@ Scheduler PAL Project - SchedulerConfig + FacilityManager admin Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:16:52 UTC (rev 1427) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:23:15 UTC (rev 1428) @@ -1,5 +1,5 @@ - + + Manage facilities. + »ÜÀß¾ðÊó¤ò´ÉÍý¤·¤Þ¤¹¡£ FacilityManager Scheduler: Facility Manager - Manage all facilities. + ¥¹¥±¥¸¥å¡¼¥ë: »ÜÀß´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -40,6 +42,7 @@ en ja + Facility Manager Facilities @@ -47,9 +50,11 @@ + Manage events. + ͽÄê¤ò´ÉÍý¤·¤Þ¤¹¡£ SchedulerManager Scheduler: Scheduler Manager - Manage all events. + ¥¹¥±¥¸¥å¡¼¥ë: ¥¹¥±¥¸¥å¡¼¥ë´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -62,6 +67,7 @@ en ja + Scheduler Manager Scheduler @@ -69,9 +75,11 @@ + Display/Edit events. + ͽÄê¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ Scheduler Scheduler: Scheduler - Manage your events. + ¥¹¥±¥¸¥å¡¼¥ë: ¥¹¥±¥¸¥å¡¼¥ëÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -84,6 +92,7 @@ en ja + Scheduler Scheduler @@ -91,9 +100,11 @@ + Display/Edit a schedule of facilities. + »ÜÀߤÎͽÄê¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ Facilities Scheduler: Facilities - Manage facilities. + ¥¹¥±¥¸¥å¡¼¥ë: »ÜÀß¾ðÊó org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -106,6 +117,7 @@ en ja + Facilities Facilities From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:31:40 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:31:40 +0900 Subject: [pal-cvs 3694] [1429] modified portlet definition. Message-ID: <1227573100.806729.10304.nullmailer@users.sourceforge.jp> Revision: 1429 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1429 Author: shinsuke Date: 2008-11-25 09:31:40 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- timecard/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: timecard/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:23:15 UTC (rev 1428) +++ timecard/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:31:40 UTC (rev 1429) @@ -1,111 +1,103 @@ - - - TimecardConfig - Timecard: Timecard Configuration - ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥ÉÀßÄê - Edit configurations. - ¥¿¥¤¥à¥«¡¼¥É¤ÎÀßÄê - org.seasar.struts.portlet.SAStrutsPortlet - - - viewPage - /config/ - - 0 - - text/html - VIEW - - en - ja - jp.sf.pal.timecard.resources.TimecardConfig - - - Timecard Configuration - Config - Timecard,URL - - - - TimecardEditor - Timecard: Timecard Editor - ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥É¥¨¥Ç¥£¥¿ - Edit timecards. - ¥¿¥¤¥à¥«¡¼¥É¤ÎÊÔ½¸ - org.seasar.struts.portlet.SAStrutsPortlet - - - viewPage - /employee/ - - 0 - - text/html - VIEW - - en - ja - jp.sf.pal.timecard.resources.TimecardEditor - - - Timecard Editor - Timecards - Timecard,URL - - - - TimecardAdmin - Timecard: Timecard Admin Manager - ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥É´ÉÍý - Manage all timecards. - Á´¤Æ¤Î¥¿¥¤¥à¥«¡¼¥É¤Î´ÉÍý - org.seasar.struts.portlet.SAStrutsPortlet - - - viewPage - /admin/employee/ - - 0 - - text/html - VIEW - - en - ja - jp.sf.pal.timecard.resources.TimecardAdmin - - - Timecard Admin Manager - Timecards - Timecard,URL - - - - TimecardManager - Timecard: Timecard Manager - ¥¿¥¤¥à¥«¡¼¥É: ¥¿¥¤¥à¥«¡¼¥É¥Þ¥Í¡¼¥¸¥ã - Manage timecards for staffs. - ¼Ò°÷¤Î¥¿¥¤¥à¥«¡¼¥É¤Î´ÉÍý - org.seasar.struts.portlet.SAStrutsPortlet - - - viewPage - /manager/employee/ - - 0 - - text/html - VIEW - - en - ja - jp.sf.pal.timecard.resources.TimecardManager - - - Timecard Manager - Timecards - Timecard,URL - - + + + Edit configurations. + ÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ + TimecardConfig + Timecard: Timecard Config + ¶ÐÂÕ: ¶ÐÂÕÀßÄê + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /config/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardConfig + + Timecard Config + Config + Timecard,URL + + + + Edit timecards. + ¶ÐÂÕ¤òÊÔ½¸¤·¤Þ¤¹¡£ + TimecardEditor + Timecard: Timecard Editor + ¶ÐÂÕ: ¶ÐÂÕÊÔ½¸ + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /employee/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardEditor + + Timecard + Timecard + Timecard,URL + + + + Manage all timecards. + Á´¤Æ¤Î¶ÐÂÕ¤ò´ÉÍý¤·¤Þ¤¹¡£ + TimecardAdmin + Timecard: Timecard Admin Manager + ¶ÐÂÕ: ´ÉÍý¼ÔÍѶÐÂÕ´ÉÍý + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /admin/employee/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardAdmin + + Timecard Admin Manager + Timecards + Timecard,URL + + + + Manage timecards for staffs. + ¼Ò°÷¤Î¶ÐÂÕ¤ò´ÉÍý¤·¤Þ¤¹¡£ + TimecardManager + Timecard: Timecard Manager + ¶ÐÂÕ: ¶ÐÂÕ´ÉÍý + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /manager/employee/ + + 0 + + text/html + VIEW + + en + ja + jp.sf.pal.timecard.resources.TimecardManager + + Timecard Manager + Timecards + Timecard,URL + + From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:34:38 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:34:38 +0900 Subject: [pal-cvs 3695] [1430] modified portlet definition. Message-ID: <1227573278.438474.13668.nullmailer@users.sourceforge.jp> Revision: 1430 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1430 Author: shinsuke Date: 2008-11-25 09:34:38 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- todolist/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: todolist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:31:40 UTC (rev 1429) +++ todolist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:34:38 UTC (rev 1430) @@ -1,11 +1,11 @@ - + + Edit configurations. + ÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ ToDoListConfig - ToDoList: ToDoList Configuration + ToDoList: ToDoList Config ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥ÈÀßÄê - Edit configurations. - ToDo¥ê¥¹¥È¤ÎÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -26,11 +26,11 @@ + Manage ToDos. + ToDo ¤ò´ÉÍý¤·¤Þ¤¹¡£ ToDoListManager ToDoList: ToDoList Manager ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥È´ÉÍý - Edit user information. - ¥æ¡¼¥¶¾ðÊó¤ÎÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -47,15 +47,15 @@ ToDoList Manager ToDoLists - ToDoList,URL + ToDo,URL + Edit my tasks. + ¥¿¥¹¥¯¤òÊÔ½¸¤·¤Þ¤¹¡£ ToDoListEditor ToDoList: ToDoList Editor - ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥È¥¨¥Ç¥£¥¿ - Edit my tasks. - ¥¿¥¹¥¯¤ÎÊÔ½¸ + ToDo¥ê¥¹¥È: ToDo¥ê¥¹¥ÈÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -70,9 +70,9 @@ ja jp.sf.pal.todolist.resources.TodoListEditor - ToDoList + ToDo List ToDo - ToDoList,URL + ToDo,URL From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:37:27 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:37:27 +0900 Subject: [pal-cvs 3696] [1431] modified portlet definition. Message-ID: <1227573447.091858.15546.nullmailer@users.sourceforge.jp> Revision: 1431 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1431 Author: shinsuke Date: 2008-11-25 09:37:26 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:34:38 UTC (rev 1430) +++ userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 00:37:26 UTC (rev 1431) @@ -1,9 +1,11 @@ - + + Edit configurations. + ÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ UserInfoConfig - UserInfo: UserInfo Configuration - Edit configurations. + UserInfo: Configuration + ¥æ¡¼¥¶¡¼¾ðÊó: ÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -16,16 +18,19 @@ en ja + - UserInfo Configuration + UserInfo Config Config UserInfo,URL + Edit user information. + Edit user information. UserInfoManager UserInfo: UserInfo Manager - Edit user information. + ¥æ¡¼¥¶¡¼¾ðÊó: ¥æ¡¼¥¶¡¼¾ðÊó´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -38,6 +43,7 @@ en ja + UserInfo Manager UserInfos From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:43:09 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:43:09 +0900 Subject: [pal-cvs 3697] [1432] modified portlet definition. Message-ID: <1227573789.587869.20283.nullmailer@users.sourceforge.jp> Revision: 1432 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1432 Author: shinsuke Date: 2008-11-25 09:43:09 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- vfs-portlets/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml vfs-portlets/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:37:26 UTC (rev 1431) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:43:09 UTC (rev 1432) @@ -19,11 +19,11 @@ VFS Portlet PAL Project - VFSDefaultConfigurator + VFSDefaultConfig admin - VFSPersonalFolderConfigurator + VFSPersonalFolderConfig admin VFS Explorer Explorer @@ -45,9 +48,11 @@ - Manage a default configuration. - VFSDefaultConfigurator - VFS: Configurator + Manage a configuration. + ÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ + VFSDefaultConfig + VFS: Config + VFS: ÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -64,16 +69,19 @@ en ja + - VFS Configurator + VFS Config Configurator VFS,Configuration Display a personal folder. + ¸Ä¿Í¥Õ¥©¥ë¥À¤òɽ¼¨¤·¤Þ¤¹¡£ VFSPersonalFolderExplorer - VFS: Personal Folder Explorer + VFS: Personal Folder + VFS: ¸Ä¿ÍÍÑ¥Õ¥©¥ë¥À org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -90,6 +98,7 @@ en ja + Personal Folder Personal @@ -98,8 +107,10 @@ Manage a personal folder configuration. - VFSPersonalFolderConfigurator - VFS: Personal Folder Configurator + ¸Ä¿ÍÍÑ¥Õ¥©¥ë¥À¤ÎÀßÄê¤ò´ÉÍý¤·¤Þ¤¹¡£ + VFSPersonalFolderConfig + VFS: Personal Folder Config + VFS: ¸Ä¿ÍÍÑ¥Õ¥©¥ë¥ÀÀßÄê org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -116,8 +127,9 @@ en ja + - Personal Folder Configurator + Personal Folder Config Configurator Personal,Configuration From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:44:47 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:44:47 +0900 Subject: [pal-cvs 3698] [1433] modified portlet definition. Message-ID: <1227573887.589128.22972.nullmailer@users.sourceforge.jp> Revision: 1433 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1433 Author: shinsuke Date: 2008-11-25 09:44:47 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- board/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml -------------- next part -------------- Modified: board/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- board/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:43:09 UTC (rev 1432) +++ board/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:44:47 UTC (rev 1433) @@ -23,16 +23,16 @@ admin - MessageAdmin + MessageManager admin BoardConfig admin + - From svnnotify ¡÷ sourceforge.jp Tue Nov 25 09:45:10 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 09:45:10 +0900 Subject: [pal-cvs 3699] [1434] modified portlet definition. Message-ID: <1227573910.595505.23181.nullmailer@users.sourceforge.jp> Revision: 1434 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1434 Author: shinsuke Date: 2008-11-25 09:45:10 +0900 (Tue, 25 Nov 2008) Log Message: ----------- modified portlet definition. Modified Paths: -------------- bookmark/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml -------------- next part -------------- Modified: bookmark/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:44:47 UTC (rev 1433) +++ bookmark/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2008-11-25 00:45:10 UTC (rev 1434) @@ -19,7 +19,7 @@ Bookmark PAL Project - BookmarkAdmin + BookmarkManager admin + jp.sf.pal.chat.resources.Chat Chat Modified: chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp 2008-11-25 06:06:53 UTC (rev 1438) +++ chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp 2008-11-25 06:23:57 UTC (rev 1439) @@ -21,15 +21,23 @@ }); +
      +
      Confirmation of Task Info
      Basic - + - + - + - + - + - + - + - + Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,119 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      +
      Title ${f:h(nameForTodo)}
      Description ${f:br(f:nbsp(f:h(descriptionForTodo)))}
      Priority -Blocker -Critical -Major -Minor -Trivial + + + + +
      Status -Working -Completed + +
      Start Date ${f:h(y)} @@ -85,7 +85,7 @@
      End Date ${f:h(y)} @@ -112,24 +112,24 @@
      Personal - + - + - + @@ -138,20 +138,20 @@ - + + +
      Category ID ${f:h(categoryId)}
      Status -Working -Completed + +
      Memo ${f:br(f:nbsp(f:h(memo)))}
      Assigned - - + + @@ -166,26 +166,26 @@ Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/edit.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -10,9 +10,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -26,43 +26,43 @@
      NameStatus
      ${f:h(t.userIdFromUserInfo)} -Working -Completed +g +
      - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - - + "/> + "/> + "/> + "/> - - + "/> + "/>
      - + - + + +
      Edit Task Info
      Basic - + - + - + - + - + - + - + + + + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -92,6 +92,35 @@ + + + + Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -0,0 +1,103 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + ${f:u(u.userId)} + + +
      +
      Title
      Description
      Priority - Blocker - Critical - Major - Minor - Trivial + + + + +
      Status -Working -Completed + +
      Start Date @@ -87,7 +87,7 @@
      End Date @@ -117,25 +117,25 @@
      Personal - + - + - + @@ -143,29 +143,29 @@ - + @@ -174,8 +174,8 @@ Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/error.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -9,9 +9,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -19,7 +19,7 @@
      -Ìá¤ë + Modified: todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp 2008-11-19 04:35:36 UTC (rev 1374) +++ todolist/trunk/src/main/webapp/WEB-INF/view/admin/todo/index.jsp 2008-11-19 08:28:18 UTC (rev 1375) @@ -10,9 +10,9 @@
      • -
      • Tasks
      • +
      • -
      • Category
      • +
      @@ -22,16 +22,16 @@
      -Create New Task +
      Category ID
      Status - Working - Completed + +
      Memo
      Assigned - - + + - +
      NameStatus  
      ${f:h(t.userIdFromUserInfo)} -Working -Completed + + Remove
      -Add User to This Task +
      - - + "/> + "/>
      - - - - - + + + + + @@ -39,11 +39,11 @@ @@ -54,7 +54,7 @@ From svnnotify ¡÷ sourceforge.jp Thu Nov 20 18:13:34 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 18:13:34 +0900 Subject: [pal-cvs 3650] [1385] refactoring.. Message-ID: <1227172414.668025.30665.nullmailer@users.sourceforge.jp> Revision: 1385 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1385 Author: shinsuke Date: 2008-11-20 18:13:34 +0900 (Thu, 20 Nov 2008) Log Message: ----------- refactoring.. and added facilities management for admin. Modified Paths: -------------- scheduler/trunk/src/main/config/erd/scheduler.erd scheduler/trunk/src/main/config/sql/scheduler.ddl scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/dbflute.dicon scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp Added Paths: ----------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityGroupAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityGroupBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityGroupDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacility.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityGroup.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityContentDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityGroupDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityScheduleMappingDbm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityGroupCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityContentCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityGroupCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityScheduleMappingCB.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityGroupCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityGroupCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityContentCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityGroupCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityScheduleMappingCQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityContentCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityGroupCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityScheduleMappingCIQ.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityContentNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityGroupNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityScheduleMappingNss.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityContentBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityGroupBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityScheduleMappingBhv.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityContentDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityGroupDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityScheduleMappingDao.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/Facility.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityContent.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityGroup.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityGroupDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityGroupForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp Removed Paths: ------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/config/erd/scheduler.erd =================================================================== --- scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/config/erd/scheduler.erd 2008-11-20 09:13:34 UTC (rev 1385) @@ -1179,7 +1179,7 @@ - 695 + 1091 199 -1 -1 @@ -1227,7 +1227,7 @@ - 839 + 1332 40 -1 -1 @@ -1257,6 +1257,510 @@ + + FK_from_facility_mapping_to_schedule + + + + + schedule_id + Schedule ID + + BIGINT + Integer + true + -5 + + 20 + true + false + + false + + + + + + + + facility_schedule_mapping + Facility Schedule Mapping + + + + id + ID + + 20 + true + true + + true + + + + + facility_id + Facility ID + + INTEGER + Integer + false + 4 + + 255 + true + false + + false + + + + + + 1076 + 40 + -1 + -1 + + + + + FK_from_facility_mapping_to_facility + + + + id + ID + + INTEGER + Integer + false + 4 + + 20 + true + true + + true + + + + + + + + + + facility + Facility + + + + + name + Name + + VARCHAR + String + true + 12 + + 100 + true + false + + false + + + + sort_order + Sort Order + + INTEGER + Integer + false + 4 + + 100 + true + false + + false + 1 + + + group_id + Group ID + + 10 + true + false + + false + + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + 0 + + + + + 823 + 199 + -1 + -1 + + + + FK_from_facility_to_group + + + + id + ID + + 20 + true + true + + true + + + + + + + + + + facility_group + Facility Group + + + + + name + Name + + 100 + true + false + + false + + + + sort_order + Sort Order + + 100 + true + false + + false + 1 + + + created_time + Created Time + + 10 + true + false + + false + + + + created_by + Created By + + 255 + true + false + + false + + + + updated_time + Updated Time + + 10 + true + false + + false + + + + updated_by + Updated By + + 255 + true + false + + false + + + + deleted_time + Deleted Time + + 10 + false + false + + false + + + + deleted_by + Deleted By + + 255 + false + false + + false + + + + versionNo + Version No. + + 10 + true + false + + false + 0 + + + + + 823 + 700 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + FK_from_content_to_facility + + + + + id + ID + + 10 + true + true + + false + + + + + + + + facility_content + Facility Content + + + + + content + Content + + 1000 + false + false + + false + + + + + + 839 + 40 + -1 + -1 + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + 2 + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + + + @@ -1319,6 +1823,10 @@ + + + + hsqldb Modified: scheduler/trunk/src/main/config/sql/scheduler.ddl =================================================================== --- scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/config/sql/scheduler.ddl 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,3 +1,7 @@ +DROP TABLE facility_schedule_mapping; +DROP TABLE facility_content; +DROP TABLE facility; +DROP TABLE facility_group; DROP TABLE event_schedule_content; DROP TABLE event_schedule_mapping; DROP TABLE event_schedule; @@ -138,3 +142,57 @@ FOREIGN KEY (id) REFERENCES event_schedule (id) ); +/********************************** +Table Name: Facility Group +**********************************/ +CREATE TABLE facility_group( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 1 NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL +); + +/********************************** +Table Name: Facility +**********************************/ +CREATE TABLE facility( + id INTEGER NOT NULL IDENTITY PRIMARY KEY, + name VARCHAR(100) NOT NULL, + sort_order INTEGER DEFAULT 1 NOT NULL, + group_id INTEGER NOT NULL, + created_time TIMESTAMP NOT NULL, + created_by VARCHAR(255) NOT NULL, + updated_time TIMESTAMP NOT NULL, + updated_by VARCHAR(255) NOT NULL, + deleted_time TIMESTAMP, + deleted_by VARCHAR(255), + versionNo INTEGER DEFAULT 0 NOT NULL, + FOREIGN KEY (group_id) REFERENCES facility_group (id) +); + +/********************************** +Table Name: Facility Content +**********************************/ +CREATE TABLE facility_content( + id INTEGER NOT NULL PRIMARY KEY, + content VARCHAR(1000), + FOREIGN KEY (id) REFERENCES facility (id) +); + +/********************************** +Table Name: Facility Schedule Mapping +**********************************/ +CREATE TABLE facility_schedule_mapping( + id BIGINT(20) NOT NULL IDENTITY PRIMARY KEY, + schedule_id BIGINT(20) NOT NULL, + facility_id INTEGER NOT NULL, + FOREIGN KEY (schedule_id) REFERENCES event_schedule (id), + FOREIGN KEY (facility_id) REFERENCES facility (id) +); + Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/ConfigAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -53,6 +53,9 @@ SAStrutsUtil.addMessage(request, "success.update_config"); return displayIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (ConfigurationException e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_config"); Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/OnetimeScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,423 +0,0 @@ -package jp.sf.pal.scheduler.action.admin; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; -import jp.sf.pal.scheduler.form.admin.OnetimeScheduleForm; -import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; -import jp.sf.pal.scheduler.service.OnetimeScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class OnetimeScheduleAction implements Serializable { - - private static final long serialVersionUID = 8949370315196737389L; - - private static final Log log = LogFactory - .getLog(OnetimeScheduleAction.class); - - // for list - - public List eventScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private OnetimeScheduleForm onetimeScheduleForm; - - private OnetimeScheduleService onetimeScheduleService; - - private UserInfoService userInfoService; - - private OnetimeSchedulePager onetimeSchedulePager; - - private PagerDxo pagerDxo; - - private OnetimeScheduleDxo onetimeScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - eventScheduleItems = onetimeScheduleService.getEventScheduleList( - onetimeSchedulePager, null); - - // restore from pager - // eventScheduleForm.eventSchedulename = - // eventSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // eventSchedulePager.setGroupInfoname(eventScheduleForm. - // eventSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - onetimeSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") - public String confirmpage() { - if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - onetimeScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String createpage() { - // page navi - onetimeScheduleForm.initialize(); - onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - onetimeScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - onetimeScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - EventSchedule eventSchedule = createEventSchedule(); - onetimeScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_eventSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - EventSchedule eventSchedule = createEventSchedule(); - onetimeScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - onetimeScheduleService - .disable(Long.parseLong(onetimeScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (onetimeScheduleForm.selectedUsers != null) { - for (String userId : onetimeScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (onetimeScheduleForm.addedUsers != null) { - for (String userId : onetimeScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - onetimeScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (onetimeScheduleForm.selectedUsers != null) { - for (String userId : onetimeScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (onetimeScheduleForm.removedUsers != null) { - for (String userId : onetimeScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - onetimeScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadEventSchedule() { - - EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( - Long.parseLong(onetimeScheduleForm.id), null); - if (eventSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_eventSchedule", - new Object[] { onetimeScheduleForm.id }); - } - onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, - onetimeScheduleForm); - - onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); - } - - private EventSchedule createEventSchedule() { - String userId = request.getRemoteUser(); - EventSchedule eventSchedule; - if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { - eventSchedule = onetimeScheduleService.getEventSchedule(Long - .parseLong(onetimeScheduleForm.id), null); - eventSchedule.setUpdatedBy(userId); - } else { - eventSchedule = new EventSchedule(); - eventSchedule.setUpdatedBy(userId); - eventSchedule.setCreatedBy(userId); - } - onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, - eventSchedule); - - return eventSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList(null, null, - onetimeScheduleForm.selectedUsers, null); - } - - public List getSelectedUserItems() { - if (onetimeScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(onetimeScheduleForm.selectedUsers); - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public OnetimeScheduleForm getOnetimeScheduleForm() { - return onetimeScheduleForm; - } - - public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { - this.onetimeScheduleForm = onetimeScheduleForm; - } - - public OnetimeScheduleService getOnetimeScheduleService() { - return onetimeScheduleService; - } - - public void setOnetimeScheduleService( - OnetimeScheduleService onetimeScheduleService) { - this.onetimeScheduleService = onetimeScheduleService; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - - public OnetimeSchedulePager getOnetimeSchedulePager() { - return onetimeSchedulePager; - } - - public void setOnetimeSchedulePager( - OnetimeSchedulePager onetimeSchedulePager) { - this.onetimeSchedulePager = onetimeSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public OnetimeScheduleDxo getOnetimeScheduleDxo() { - return onetimeScheduleDxo; - } - - public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { - this.onetimeScheduleDxo = onetimeScheduleDxo; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/RepeatScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,422 +0,0 @@ -package jp.sf.pal.scheduler.action.admin; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; -import jp.sf.pal.scheduler.form.admin.RepeatScheduleForm; -import jp.sf.pal.scheduler.pager.RepeatSchedulePager; -import jp.sf.pal.scheduler.service.RepeatScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class RepeatScheduleAction implements Serializable { - - private static final long serialVersionUID = 5257944698130191448L; - - private static final Log log = LogFactory - .getLog(RepeatScheduleAction.class); - - // for list - - public List eventScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private RepeatScheduleForm repeatScheduleForm; - - private RepeatScheduleService repeatScheduleService; - - private UserInfoService userInfoService; - - private RepeatSchedulePager repeatSchedulePager; - - private PagerDxo pagerDxo; - - private RepeatScheduleDxo repeatScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - eventScheduleItems = repeatScheduleService.getEventScheduleList( - repeatSchedulePager, null); - - // restore from pager - // eventScheduleForm.eventSchedulename = - // eventSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // eventSchedulePager.setGroupInfoname(eventScheduleForm. - // eventSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - repeatSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") - public String confirmpage() { - if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - repeatScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String createpage() { - // page navi - repeatScheduleForm.initialize(); - repeatScheduleForm.mode = CommonConstants.CREATE_MODE; - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - repeatScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - repeatScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - repeatScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - repeatScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - EventSchedule eventSchedule = createEventSchedule(); - repeatScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_eventSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - EventSchedule eventSchedule = createEventSchedule(); - repeatScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - repeatScheduleService.disable( - Long.parseLong(repeatScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (repeatScheduleForm.selectedUsers != null) { - for (String userId : repeatScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (repeatScheduleForm.addedUsers != null) { - for (String userId : repeatScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - repeatScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (repeatScheduleForm.selectedUsers != null) { - for (String userId : repeatScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (repeatScheduleForm.removedUsers != null) { - for (String userId : repeatScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - repeatScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadEventSchedule() { - - EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( - Long.parseLong(repeatScheduleForm.id), null); - if (eventSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_eventSchedule", - new Object[] { repeatScheduleForm.id }); - } - repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, - repeatScheduleForm); - - repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); - } - - private EventSchedule createEventSchedule() { - String userId = request.getRemoteUser(); - EventSchedule eventSchedule; - if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { - eventSchedule = repeatScheduleService.getEventSchedule(Long - .parseLong(repeatScheduleForm.id), null); - eventSchedule.setUpdatedBy(userId); - } else { - eventSchedule = new EventSchedule(); - eventSchedule.setUpdatedBy(userId); - eventSchedule.setCreatedBy(userId); - } - repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, - eventSchedule); - - return eventSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List getAvailableUserItems() { - // TODO should not get all user - return userInfoService.getAvailableUserList(null, null, - repeatScheduleForm.selectedUsers, null); - } - - public List getSelectedUserItems() { - if (repeatScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(repeatScheduleForm.selectedUsers); - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public RepeatScheduleForm getRepeatScheduleForm() { - return repeatScheduleForm; - } - - public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { - this.repeatScheduleForm = repeatScheduleForm; - } - - public RepeatScheduleService getRepeatScheduleService() { - return repeatScheduleService; - } - - public void setRepeatScheduleService( - RepeatScheduleService repeatScheduleService) { - this.repeatScheduleService = repeatScheduleService; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - - public RepeatSchedulePager getRepeatSchedulePager() { - return repeatSchedulePager; - } - - public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { - this.repeatSchedulePager = repeatSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public RepeatScheduleDxo getRepeatScheduleDxo() { - return repeatScheduleDxo; - } - - public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { - this.repeatScheduleDxo = repeatScheduleDxo; - } - -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,424 @@ +package jp.sf.pal.scheduler.action.admin.facility; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.dxo.FacilityDxo; +import jp.sf.pal.scheduler.form.admin.facility.FacilityForm; +import jp.sf.pal.scheduler.pager.FacilityPager; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class FacilityAction implements Serializable { + + private static final long serialVersionUID = 7317093462215155891L; + + private static final Log log = LogFactory.getLog(FacilityAction.class); + + // for list + + public List facilityItems; + + // for edit/confirm/delete + + @ActionForm + private FacilityForm facilityForm; + + private FacilityService facilityService; + + private FacilityGroupService facilityGroupService; + + private FacilityPager facilityPager; + + private PagerDxo pagerDxo; + + private FacilityDxo facilityDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + facilityItems = facilityService.getFacilityList(facilityPager); + + // restore from pager + // facilityForm.facilityname = + // facilityPager.getFacilityname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(facilityForm, facilityPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // facilityPager.setFacilityname(facilityForm. + // facilityname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + facilityPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (facilityForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + facilityForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + facilityForm.initialize(); + facilityForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (facilityForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, facilityForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + facilityForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (facilityForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + facilityForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + facilityForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + try { + Facility facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facilityService.moveUp(facility); + SAStrutsUtil.addMessage(request, "success.moveup_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_moveup_facility"); + } + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + try { + Facility facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facilityService.moveDown(facility); + SAStrutsUtil.addMessage(request, "success.movedown_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_movedown_facility"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Facility facility = createFacility(); + facilityService.store(facility); + SAStrutsUtil.addMessage(request, "success.create_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_facility"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Facility facility = createFacility(); + facilityService.store(facility); + SAStrutsUtil.addMessage(request, "success.update_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_facility"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + String userId = request.getRemoteUser(); + Facility facility = createFacility(); + facilityService.disable(Integer.parseInt(facilityForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_facility"); + } + } + + private void loadFacility() { + + Facility facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facilityDxo.convertFromFacilityToForm(facility, facilityForm); + + } + + private Facility createFacility() { + Facility facility; + String userId = request.getRemoteUser(); + if (facilityForm.mode == CommonConstants.EDIT_MODE) { + facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facility.setUpdatedBy(userId); + } else { + facility = new Facility(); + facility.setUpdatedBy(userId); + facility.setCreatedBy(userId); + } + facilityDxo.convertFromFormToFacility(facilityForm, facility); + + return facility; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public FacilityForm getFacilityForm() { + return facilityForm; + } + + public void setFacilityForm(FacilityForm facilityForm) { + this.facilityForm = facilityForm; + } + + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public FacilityPager getFacilityPager() { + return facilityPager; + } + + public void setFacilityPager(FacilityPager facilityPager) { + this.facilityPager = facilityPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public FacilityDxo getFacilityDxo() { + return facilityDxo; + } + + public void setFacilityDxo(FacilityDxo facilityDxo) { + this.facilityDxo = facilityDxo; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityGroupAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityGroupAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityGroupAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,413 @@ +package jp.sf.pal.scheduler.action.admin.facility; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.dxo.FacilityGroupDxo; +import jp.sf.pal.scheduler.form.admin.facility.FacilityGroupForm; +import jp.sf.pal.scheduler.pager.FacilityGroupPager; +import jp.sf.pal.scheduler.service.FacilityGroupService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class FacilityGroupAction implements Serializable { + + private static final long serialVersionUID = 1733862274303812163L; + + private static final Log log = LogFactory.getLog(FacilityGroupAction.class); + + // for list + + public List facilityGroupItems; + + // for edit/confirm/delete + + @ActionForm + private FacilityGroupForm facilityGroupForm; + + private FacilityGroupService facilityGroupService; + + private FacilityGroupPager facilityGroupPager; + + private PagerDxo pagerDxo; + + private FacilityGroupDxo facilityGroupDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + facilityGroupItems = facilityGroupService + .getFacilityGroupList(facilityGroupPager); + + // restore from pager + // facilityGroupForm.facilityGroupname = + // facilityGroupPager.getFacilityGroupname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(facilityGroupForm, facilityGroupPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // facilityGroupPager.setFacilityGroupname(facilityGroupForm. + // facilityGroupname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + facilityGroupPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (facilityGroupForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + facilityGroupForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacilityGroup(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + facilityGroupForm.initialize(); + facilityGroupForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (facilityGroupForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + facilityGroupForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacilityGroup(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + facilityGroupForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadFacilityGroup(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (facilityGroupForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + facilityGroupForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacilityGroup(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + try { + FacilityGroup facilityGroup = facilityGroupService + .getFacilityGroup(Integer.parseInt(facilityGroupForm.id)); + if (facilityGroup == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facilityGroup", + new Object[] { facilityGroupForm.id }); + } + facilityGroupService.moveUp(facilityGroup); + SAStrutsUtil.addMessage(request, "success.moveup_facilityGroup"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_moveup_facilityGroup"); + } + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + try { + FacilityGroup facilityGroup = facilityGroupService + .getFacilityGroup(Integer.parseInt(facilityGroupForm.id)); + if (facilityGroup == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facilityGroup", + new Object[] { facilityGroupForm.id }); + } + facilityGroupService.moveDown(facilityGroup); + SAStrutsUtil.addMessage(request, "success.movedown_facilityGroup"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_movedown_facilityGroup"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + facilityGroupForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadFacilityGroup(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + FacilityGroup facilityGroup = createFacilityGroup(); + facilityGroupService.store(facilityGroup); + SAStrutsUtil.addMessage(request, "success.create_facilityGroup"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_facilityGroup"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + FacilityGroup facilityGroup = createFacilityGroup(); + facilityGroupService.store(facilityGroup); + SAStrutsUtil.addMessage(request, "success.update_facilityGroup"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_facilityGroup"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + String userId = request.getRemoteUser(); + FacilityGroup facilityGroup = createFacilityGroup(); + facilityGroupService.disable( + Integer.parseInt(facilityGroupForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_facilityGroup"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_facilityGroup"); + } + } + + private void loadFacilityGroup() { + + FacilityGroup facilityGroup = facilityGroupService + .getFacilityGroup(Integer.parseInt(facilityGroupForm.id)); + if (facilityGroup == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facilityGroup", + new Object[] { facilityGroupForm.id }); + } + facilityGroupDxo.convertFromFacilityGroupToForm(facilityGroup, + facilityGroupForm); + + } + + private FacilityGroup createFacilityGroup() { + FacilityGroup facilityGroup; + String userId = request.getRemoteUser(); + if (facilityGroupForm.mode == CommonConstants.EDIT_MODE) { + facilityGroup = facilityGroupService.getFacilityGroup(Integer + .parseInt(facilityGroupForm.id)); + if (facilityGroup == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facilityGroup", + new Object[] { facilityGroupForm.id }); + } + facilityGroup.setUpdatedBy(userId); + } else { + facilityGroup = new FacilityGroup(); + facilityGroup.setUpdatedBy(userId); + facilityGroup.setCreatedBy(userId); + } + facilityGroupDxo.convertFromFormToFacilityGroup(facilityGroupForm, + facilityGroup); + + return facilityGroup; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public FacilityGroupForm getFacilityGroupForm() { + return facilityGroupForm; + } + + public void setFacilityGroupForm(FacilityGroupForm facilityGroupForm) { + this.facilityGroupForm = facilityGroupForm; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + + public FacilityGroupPager getFacilityGroupPager() { + return facilityGroupPager; + } + + public void setFacilityGroupPager(FacilityGroupPager facilityGroupPager) { + this.facilityGroupPager = facilityGroupPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public FacilityGroupDxo getFacilityGroupDxo() { + return facilityGroupDxo; + } + + public void setFacilityGroupDxo(FacilityGroupDxo facilityGroupDxo) { + this.facilityGroupDxo = facilityGroupDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityGroupAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,432 @@ +package jp.sf.pal.scheduler.action.admin.schedule; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; +import jp.sf.pal.scheduler.form.admin.schedule.OnetimeScheduleForm; +import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class OnetimeScheduleAction implements Serializable { + + private static final long serialVersionUID = 8949370315196737389L; + + private static final Log log = LogFactory + .getLog(OnetimeScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private OnetimeScheduleForm onetimeScheduleForm; + + private OnetimeScheduleService onetimeScheduleService; + + private UserInfoService userInfoService; + + private OnetimeSchedulePager onetimeSchedulePager; + + private PagerDxo pagerDxo; + + private OnetimeScheduleDxo onetimeScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = onetimeScheduleService.getEventScheduleList( + onetimeSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + onetimeSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + onetimeScheduleForm.initialize(); + onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + onetimeScheduleService + .disable(Long.parseLong(onetimeScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.addedUsers != null) { + for (String userId : onetimeScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.removedUsers != null) { + for (String userId : onetimeScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( + Long.parseLong(onetimeScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { onetimeScheduleForm.id }); + } + onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + onetimeScheduleForm); + + onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = onetimeScheduleService.getEventSchedule(Long + .parseLong(onetimeScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList(null, null, + onetimeScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (onetimeScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(onetimeScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public OnetimeScheduleForm getOnetimeScheduleForm() { + return onetimeScheduleForm; + } + + public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { + this.onetimeScheduleForm = onetimeScheduleForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public OnetimeSchedulePager getOnetimeSchedulePager() { + return onetimeSchedulePager; + } + + public void setOnetimeSchedulePager( + OnetimeSchedulePager onetimeSchedulePager) { + this.onetimeSchedulePager = onetimeSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public OnetimeScheduleDxo getOnetimeScheduleDxo() { + return onetimeScheduleDxo; + } + + public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { + this.onetimeScheduleDxo = onetimeScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,431 @@ +package jp.sf.pal.scheduler.action.admin.schedule; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; +import jp.sf.pal.scheduler.form.admin.schedule.RepeatScheduleForm; +import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RepeatScheduleAction implements Serializable { + + private static final long serialVersionUID = 5257944698130191448L; + + private static final Log log = LogFactory + .getLog(RepeatScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private RepeatScheduleForm repeatScheduleForm; + + private RepeatScheduleService repeatScheduleService; + + private UserInfoService userInfoService; + + private RepeatSchedulePager repeatSchedulePager; + + private PagerDxo pagerDxo; + + private RepeatScheduleDxo repeatScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = repeatScheduleService.getEventScheduleList( + repeatSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + repeatSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + repeatScheduleForm.initialize(); + repeatScheduleForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + repeatScheduleService.disable( + Long.parseLong(repeatScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.addedUsers != null) { + for (String userId : repeatScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.removedUsers != null) { + for (String userId : repeatScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( + Long.parseLong(repeatScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { repeatScheduleForm.id }); + } + repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + repeatScheduleForm); + + repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = repeatScheduleService.getEventSchedule(Long + .parseLong(repeatScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getAvailableUserItems() { + // TODO should not get all user + return userInfoService.getAvailableUserList(null, null, + repeatScheduleForm.selectedUsers, null); + } + + public List getSelectedUserItems() { + if (repeatScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(repeatScheduleForm.selectedUsers); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RepeatScheduleForm getRepeatScheduleForm() { + return repeatScheduleForm; + } + + public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { + this.repeatScheduleForm = repeatScheduleForm; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public RepeatSchedulePager getRepeatSchedulePager() { + return repeatSchedulePager; + } + + public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { + this.repeatSchedulePager = repeatSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RepeatScheduleDxo getRepeatScheduleDxo() { + return repeatScheduleDxo; + } + + public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { + this.repeatScheduleDxo = repeatScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/CalendarAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,1055 +0,0 @@ -package jp.sf.pal.scheduler.action.user; - -import java.io.Serializable; -import java.sql.Time; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.SchedulerConstants; -import jp.sf.pal.scheduler.common.util.CalendarUtil; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.DateUtil; -import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; -import jp.sf.pal.scheduler.form.user.CalendarForm; -import jp.sf.pal.scheduler.service.OnetimeScheduleService; -import jp.sf.pal.scheduler.service.RepeatScheduleService; - -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; - -public class CalendarAction implements Serializable { - - private static final long serialVersionUID = -222687807313390813L; - - public List> calendarDayItems; - - public List> weekDayItems; - - public List>>> eventInWeekItems; - - public List>> allDayEventInWeekItems; - - public List>> eventInDayItems; - - public List> allDayEventInDayItems; - - public int maxCols; - - @ActionForm - private CalendarForm calendarForm; - - private OnetimeScheduleService onetimeScheduleService; - - private RepeatScheduleService repeatScheduleService; - - private transient HttpServletRequest request; - - private void createSideCalendar() { - calendarDayItems = new LinkedList>(); - Calendar targetCalendar = calendarForm.getTargetCalendar(); - int targetYear = CalendarUtil.getYear(targetCalendar); - int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1; - int targetDate = CalendarUtil.getDate(targetCalendar); - - // create a previous month - Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); - int count = CalendarUtil.getDay(cal) - 1; - while (count > 0) { - cal = CalendarUtil.getPrev(cal); - calendarDayItems.add(0, createCalendarDayItem(cal, false)); - count--; - } - - // create this month - cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); - int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil - .getLastCalendarInMonth(targetCalendar)); - for (int i = 0; i < lastDayOfMonth; i++) { - calendarDayItems.add(createCalendarDayItem(cal, targetYear, - targetMonth, targetDate, true)); - cal = CalendarUtil.getNext(cal); - } - - // create a next month - count = CalendarUtil.getDay(cal); - while (count != 1) { - calendarDayItems.add(createCalendarDayItem(cal, false)); - cal = CalendarUtil.getNext(cal); - count = CalendarUtil.getDay(cal); - } - - } - - private boolean compare(int year1, int month1, int date1, int year2, - int month2, int date2) { - if (year1 == year2 && month1 == month2 && date1 == date2) { - return true; - } - return false; - } - - private Map createEmptyEvent() { - Map emptyEvent = new HashMap(); - emptyEvent.put("startEvent", "true"); - emptyEvent.put("cols", "1"); - emptyEvent.put("rows", "1"); - emptyEvent.put("time", "none"); - return emptyEvent; - } - - private void putEventSchedule(EventSchedule eventSchedule, Time startTime, - Time endTime) { - if (startTime != null && endTime != null) { - int sIdx = DateUtil.getHours(startTime); - int eIdx = DateUtil.getHours(endTime) - 1; - if (DateUtil.getMinutes(endTime) != 0) { - eIdx++; - } - if (eIdx > 23) { - eIdx = 23; - } - for (int i = sIdx; i <= eIdx; i++) { - Map eventMap = createEvent(eventSchedule, true, - true); - if (i == sIdx) { - eventMap.put("startEvent", "true"); - int size = eIdx - sIdx + 1; - eventMap.put("rows", String.valueOf(size)); - eventMap.put("lastEvent", "true"); - } else { - eventMap.put("startEvent", "false"); - } - eventMap.put("cols", "1"); - eventInDayItems.get(i).add(eventMap); - } - } else if (startTime != null && endTime == null) { - int sIdx = DateUtil.getHours(startTime); - for (int i = sIdx; i <= 23; i++) { - Map eventMap = createEvent(eventSchedule, true, - false); - if (i == sIdx) { - eventMap.put("startEvent", "true"); - int size = 23 - sIdx + 1; - eventMap.put("rows", String.valueOf(size)); - eventMap.put("lastEvent", "true"); - } else { - eventMap.put("startEvent", "false"); - } - eventMap.put("cols", "1"); - eventInDayItems.get(i).add(eventMap); - } - } else if (startTime == null && endTime != null) { - int eIdx = DateUtil.getHours(endTime) - 1; - if (DateUtil.getMinutes(endTime) != 0) { - eIdx++; - } - if (eIdx > 23) { - eIdx = 23; - } - for (int i = 0; i <= eIdx; i++) { - Map eventMap = createEvent(eventSchedule, - false, true); - if (i == 0) { - eventMap.put("startEvent", "true"); - int size = eIdx + 1; - eventMap.put("rows", String.valueOf(size)); - eventMap.put("lastEvent", "true"); - } else { - eventMap.put("startEvent", "false"); - } - eventMap.put("cols", "1"); - eventInDayItems.get(i).add(eventMap); - } - } else { - // all day - allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); - } - - } - - private String displayPersonalDay() { - createSideCalendar(); - - Calendar cal = calendarForm.getTargetCalendar(); - Calendar nextCal = cal; - int tYear = CalendarUtil.getYear(cal); - int tMonth = CalendarUtil.getMonth(cal) + 1; - int tDate = CalendarUtil.getDate(cal); - int tDay = CalendarUtil.getDay(cal); - eventInDayItems = new ArrayList>>(); - allDayEventInDayItems = new ArrayList>(); - for (int i = 0; i < 24; i++) { - eventInDayItems.add(new ArrayList>()); - } - - String userId = request.getRemoteUser(); - List ssmList = onetimeScheduleService - .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal - .getTime()); - for (EventScheduleMapping ssm : ssmList) { - EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - - Time startTime = eventSchedule.getStartTime(); - Time endTime = eventSchedule.getEndTime(); - if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, startTime, endTime); - } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, startTime, null); - } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, null, endTime); - } else { - // all day - allDayEventInDayItems.add(createEvent(eventSchedule, false, - false)); - } - } - - maxCols = 0; - for (List> events : eventInDayItems) { - if (!events.isEmpty() && events.size() > maxCols) { - maxCols = events.size(); - } - } - - for (List> events : eventInDayItems) { - if (!events.isEmpty()) { - int idx = events.size() - 1; - for (int i = idx; i < maxCols - 1; i++) { - events.add(createEmptyEvent()); - } - } - } - - List rsmList = repeatScheduleService - .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal - .getTime()); - for (EventScheduleMapping rsm : rsmList) { - EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - // int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - - Time startTime = eventSchedule.getStartTime(); - Time endTime = eventSchedule.getEndTime(); - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - putEventSchedule(eventSchedule, startTime, endTime); - } else if ("MTWTF".equals(type)) { - if (tDay > 1 && tDay < 7) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("MWF".equals(type)) { - if (tDay == 2 || tDay == 4 || tDay == 6) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("TT".equals(type)) { - if (tDay == 3 || tDay == 5) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("WEEKLY".equals(type)) { - if (tDay == DateUtil.getDay(startDate) + 1) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("MONTHLY".equals(type)) { - if (tDate == sDate) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("YEARLY".equals(type)) { - if (tDate == sDate && tMonth == sMonth) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } - - } - - for (List> events : eventInDayItems) { - if (!events.isEmpty() && events.size() > maxCols) { - maxCols = events.size(); - } - } - - for (List> events : eventInDayItems) { - if (!events.isEmpty()) { - int idx = events.size() - 1; - for (int i = idx; i < maxCols - 1; i++) { - events.add(createEmptyEvent()); - } - } else { - Map emptyEvent = new HashMap(); - emptyEvent.put("noEvent", "true"); - events.add(emptyEvent); - } - } - - return "personalday.jsp"; - } - - private String displayPersonalWeek() { - createSideCalendar(); - - List calendarList = new ArrayList(7); - eventInWeekItems = new ArrayList>>>(7); - allDayEventInWeekItems = new ArrayList>>(7); - Calendar cal = calendarForm.getTargetCalendar(); - calendarList.add(cal); - weekDayItems = new ArrayList>(); - Map indexMap = new HashMap(7); - SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n - for (int i = 0; i < 7; i++) { - calendarList.add(cal); - - int year = CalendarUtil.getYear(cal); - int month = CalendarUtil.getMonth(cal) + 1; - int date = CalendarUtil.getDate(cal); - - Map map = new HashMap(); - map.put("displayedDate", sdf.format(cal.getTime())); - map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); - map.put("date", String.valueOf(date)); - map.put("month", String.valueOf(month)); - map.put("year", String.valueOf(year)); - weekDayItems.add(map); - cal = CalendarUtil.getNext(cal); - - indexMap.put(year + "-" + month + "-" + date, i); - - List>> eventInDayItems = new ArrayList>>( - 24); - for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); - } - eventInWeekItems.add(eventInDayItems); - - allDayEventInWeekItems.add(new ArrayList>()); - } - - String userId = request.getRemoteUser(); - List ssmList = onetimeScheduleService - .getPersonalScheduleMappingList(userId, calendarList.get(0) - .getTime(), calendarList.get(6).getTime()); - for (EventScheduleMapping ssm : ssmList) { - EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(-1); - } - - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(7); - } - - int startIdx = sIndex.intValue(); - if (startIdx < 0) { - startIdx = 0; - } - int endIdx = eIndex.intValue(); - if (endIdx > 6) { - endIdx = 6; - } - - Time time = eventSchedule.getStartTime(); - for (int i = startIdx; i < endIdx + 1; i++) { - if (i == sIndex.intValue() && i == eIndex.intValue()) { - if (time == null) { - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } - } else if (i == sIndex.intValue() && i != eIndex.intValue()) { - if (time == null) { - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, false)); - } - } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (eventSchedule.getEndTime() == null) { - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(eventSchedule - .getEndTime()) - 1; - if (timeIndex < 0) { - timeIndex = 0; - } - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, false, true)); - } - } else if (i != sIndex.intValue() && i != eIndex.intValue()) { - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } - } - } - - List rsmList = repeatScheduleService - .getPersonalScheduleMappingList(userId, calendarList.get(0) - .getTime(), calendarList.get(6).getTime()); - for (EventScheduleMapping rsm : rsmList) { - EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(0); - } - - Date endDate = eventSchedule.getEndDate(); - Integer eIndex; - if (endDate != null) { - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(6); - } - } else { - eIndex = Integer.valueOf(6); - } - - Time time = eventSchedule.getStartTime(); - for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } - } else if ("MTWTF".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek > 1 && dayOfWeek < 7) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("MWF".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("TT".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 3 || dayOfWeek == 5) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("WEEKLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == DateUtil.getDay(startDate) + 1) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("MONTHLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("date"); - if (d != null) { - int date = Integer.parseInt(d); - if (date == sDate) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("YEARLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("date"); - String m = (String) weekDayItems.get(i).get("month"); - if (d != null && m != null) { - int date = Integer.parseInt(d); - int month = Integer.parseInt(m); - if (date == sDate && month == sMonth) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } - } - - } - - return "personalweek.jsp"; - } - - private String displayPersonalMonth() { - createSideCalendar(); - - Map indexMap = new HashMap(50); - int count = 0; - for (Map calendarDay : calendarDayItems) { - indexMap.put(calendarDay.get("year") + "-" - + calendarDay.get("month") + "-" - + calendarDay.get("dayOfMonth"), count); - calendarDay.put("allDayEventItems", - new ArrayList>()); - List>> eventInDayItems = new ArrayList>>( - 24); - for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); - } - calendarDay.put("eventItems", eventInDayItems); - count++; - } - - Calendar cal = calendarForm.getTargetCalendar(); - Calendar startCal = CalendarUtil.getFirstCalendarInMonth(cal); - int firstYear = CalendarUtil.getYear(startCal); - int firstMonth = CalendarUtil.getMonth(startCal) + 1; - int firstDate = CalendarUtil.getDate(startCal); - int firstDateIndex = indexMap.get(firstYear + "-" + firstMonth + "-" - + firstDate); - Calendar endCal = CalendarUtil.getLastCalendarInMonth(cal); - int lastYear = CalendarUtil.getYear(endCal); - int lastMonth = CalendarUtil.getMonth(endCal) + 1; - int lastDate = CalendarUtil.getDate(endCal); - int endDateIndex = indexMap.get(lastYear + "-" + lastMonth + "-" - + lastDate); - - String userId = request.getRemoteUser(); - List ssmList = onetimeScheduleService - .getPersonalScheduleMappingList(userId, startCal.getTime(), - endCal.getTime()); - for (EventScheduleMapping ssm : ssmList) { - EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(firstDateIndex - 1); - } - - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(endDateIndex); - } - - int startIdx = sIndex.intValue(); - if (startIdx < firstDateIndex) { - startIdx = firstDateIndex; - } - int endIdx = eIndex.intValue(); - if (endIdx > endDateIndex) { - endIdx = endDateIndex; - } - - Time time = eventSchedule.getStartTime(); - for (int i = startIdx; i < endIdx + 1; i++) { - if (i == sIndex.intValue() && i == eIndex.intValue()) { - if (time == null) { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } - } else if (i == sIndex.intValue() && i != eIndex.intValue()) { - if (time == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, false)); - } - } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (eventSchedule.getEndTime() == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(eventSchedule - .getEndTime()) - 1; - if (timeIndex < 0) { - timeIndex = 0; - } - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, false, true)); - } - } else if (i != sIndex.intValue() && i != eIndex.intValue()) { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } - } - } - - List rsmList = repeatScheduleService - .getPersonalScheduleMappingList(userId, startCal.getTime(), - endCal.getTime()); - for (EventScheduleMapping rsm : rsmList) { - EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(firstDateIndex); - } - - Date endDate = eventSchedule.getEndDate(); - Integer eIndex; - if (endDate != null) { - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(endDateIndex); - } - } else { - eIndex = Integer.valueOf(endDateIndex); - } - - Time time = eventSchedule.getStartTime(); - for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } - } else if ("MTWTF".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek > 1 && dayOfWeek < 7) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("MWF".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("TT".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 3 || dayOfWeek == 5) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("WEEKLY".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == DateUtil.getDay(startDate) + 1) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("MONTHLY".equals(type)) { - String d = (String) calendarDayItems.get(i).get( - "dayOfMonth"); - if (d != null) { - int date = Integer.parseInt(d); - if (date == sDate) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("YEARLY".equals(type)) { - String d = (String) calendarDayItems.get(i).get( - "dayOfMonth"); - String m = (String) calendarDayItems.get(i).get("month"); - if (d != null && m != null) { - int date = Integer.parseInt(d); - int month = Integer.parseInt(m); - if (date == sDate && month == sMonth) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } - } - - } - - return "personalmonth.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayPersonalWeek(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalday/{year}/{month}/{date}") - public String selectpersonalday() { - return displayPersonalDay(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalweek/{year}/{month}/{date}") - public String selectpersonalweek() { - return displayPersonalWeek(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalmonth/{year}/{month}/{date}") - public String selectpersonalmonth() { - return displayPersonalMonth(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthprevmonth/{year}/{month}/{date}") - public String movepersonalmonthprevmonth() { - calendarForm.changeCalendarToPrevMonth(); - return displayPersonalMonth(); - } - - @Execute(validator = false, input = "error.jsp") - public String movepersonalmonththismonth() { - calendarForm.changeCalendarToToday(); - return displayPersonalMonth(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthnextmonth/{year}/{month}/{date}") - public String movepersonalmonthnextmonth() { - calendarForm.changeCalendarToNextMonth(); - return displayPersonalMonth(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalweekprevmonth/{year}/{month}/{date}") - public String movepersonalweekprevmonth() { - calendarForm.changeCalendarToPrevMonth(); - return displayPersonalWeek(); - } - - @Execute(validator = false, input = "error.jsp") - public String movepersonalweekthismonth() { - calendarForm.changeCalendarToToday(); - return displayPersonalWeek(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalweeknextmonth/{year}/{month}/{date}") - public String movepersonalweeknextmonth() { - calendarForm.changeCalendarToNextMonth(); - return displayPersonalWeek(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonaldayprevmonth/{year}/{month}/{date}") - public String movepersonaldayprevmonth() { - calendarForm.changeCalendarToPrevMonth(); - return displayPersonalDay(); - } - - @Execute(validator = false, input = "error.jsp") - public String movepersonaldaythismonth() { - calendarForm.changeCalendarToToday(); - return displayPersonalDay(); - } - - @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonaldaynextmonth/{year}/{month}/{date}") - public String movepersonaldaynextmonth() { - calendarForm.changeCalendarToNextMonth(); - return displayPersonalDay(); - } - - private Map createCalendarDayItem(Calendar cal, - boolean thisMonth) { - Map map = new HashMap(); - map.put("year", String.valueOf(CalendarUtil.getYear(cal))); - map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1)); - map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal))); - map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); - map.put("thisMonth", String.valueOf(thisMonth)); - map.put("target", "false"); - return map; - } - - private Map createCalendarDayItem(Calendar cal, int tYear, - int tMonth, int tDate, boolean thisMonth) { - int year = CalendarUtil.getYear(cal); - int month = CalendarUtil.getMonth(cal) + 1; - int dayOfMonth = CalendarUtil.getDate(cal); - int dayOfWeek = CalendarUtil.getDay(cal); - Map map = new HashMap(); - map.put("year", String.valueOf(year)); - map.put("month", String.valueOf(month)); - map.put("dayOfMonth", String.valueOf(dayOfMonth)); - map.put("dayOfWeek", String.valueOf(dayOfWeek)); - map.put("thisMonth", String.valueOf(thisMonth)); - if (year == tYear && month == tMonth && dayOfMonth == tDate) { - map.put("target", "true"); - } else { - map.put("target", "false"); - } - return map; - } - - private Map createEvent(EventSchedule eventSchedule, - boolean start, boolean end) { - Map map = new HashMap(); - map.put("id", eventSchedule.getId().toString()); - map.put("title", eventSchedule.getTitle()); - if (start || end) { - StringBuilder buf = new StringBuilder(); - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n - if (start && eventSchedule.getStartTime() != null) { - buf.append(sdf.format(eventSchedule.getStartTime())); - } - buf.append("-"); - if (end && eventSchedule.getEndTime() != null) { - buf.append(sdf.format(eventSchedule.getEndTime())); - } - map.put("time", buf.toString()); - } - if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) { - map.put("repeat", "false"); - } else { - map.put("repeat", "true"); - map.put("type", ((EventSchedule) eventSchedule).getType()); - } - - return map; - } - - public CalendarForm getCalendarForm() { - return calendarForm; - } - - public void setCalendarForm(CalendarForm calendarForm) { - this.calendarForm = calendarForm; - } - - public OnetimeScheduleService getOnetimeScheduleService() { - return onetimeScheduleService; - } - - public void setOnetimeScheduleService( - OnetimeScheduleService onetimeScheduleService) { - this.onetimeScheduleService = onetimeScheduleService; - } - - public RepeatScheduleService getRepeatScheduleService() { - return repeatScheduleService; - } - - public void setRepeatScheduleService( - RepeatScheduleService repeatScheduleService) { - this.repeatScheduleService = repeatScheduleService; - } - - public HttpServletRequest getRequest() { - return request; - } - - public void setRequest(HttpServletRequest request) { - this.request = request; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/OnetimeScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,556 +0,0 @@ -package jp.sf.pal.scheduler.action.user; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.SchedulerConstants; -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.CalendarUtil; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; -import jp.sf.pal.scheduler.form.user.OnetimeScheduleForm; -import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; -import jp.sf.pal.scheduler.service.OnetimeScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class OnetimeScheduleAction implements Serializable { - - private static final long serialVersionUID = -492597057773820702L; - - private static final Log log = LogFactory - .getLog(OnetimeScheduleAction.class); - - // for list - - public List eventScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private OnetimeScheduleForm onetimeScheduleForm; - - private OnetimeScheduleService onetimeScheduleService; - - private UserInfoService userInfoService; - - private OnetimeSchedulePager onetimeSchedulePager; - - private PagerDxo pagerDxo; - - private OnetimeScheduleDxo onetimeScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - eventScheduleItems = onetimeScheduleService.getEventScheduleList( - onetimeSchedulePager, null); - - // restore from pager - // eventScheduleForm.eventSchedulename = - // eventSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // eventSchedulePager.setGroupInfoname(eventScheduleForm. - // eventSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - onetimeSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + onetimeScheduleForm.returnType + "/" - + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month - + "/" + onetimeScheduleForm.date + "?redirect=true"; - // return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") - public String confirmpage() { - if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - onetimeScheduleForm.mode }); - } - - String userId = request.getRemoteUser(); - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") - public String createpage() { - // page navi - onetimeScheduleForm.initialize(); - onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; - - // set me to assigned - String userId = request.getRemoteUser(); - onetimeScheduleForm.selectedUsers = new String[] { userId }; - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - onetimeScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - onetimeScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - EventSchedule eventSchedule = createEventSchedule(); - onetimeScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); - - onetimeScheduleForm.id = String.valueOf(eventSchedule.getId()); - onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_eventSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - EventSchedule eventSchedule = createEventSchedule(); - onetimeScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); - - onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - onetimeScheduleService - .disable(Long.parseLong(onetimeScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + onetimeScheduleForm.returnType + "/" - + onetimeScheduleForm.year + "/" - + onetimeScheduleForm.month + "/" - + onetimeScheduleForm.date + "?redirect=true"; - // return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - if (onetimeScheduleForm.userGroup == null) { - String userId = request.getRemoteUser(); - List> userGroupList = userInfoService - .getUserGroupList(userId); - if (!userGroupList.isEmpty()) { - onetimeScheduleForm.userGroup = userGroupList.get(0).get( - "value"); - } - } - return "userlist.jsp"; - } - - @Execute(validator = true, input = "error.jsp") - public String changeusergroup() { - if (onetimeScheduleForm.userGroup == null) { - String userId = request.getRemoteUser(); - List> userGroupList = userInfoService - .getUserGroupList(userId); - if (!userGroupList.isEmpty()) { - onetimeScheduleForm.userGroup = userGroupList.get(0).get( - "value"); - } - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (onetimeScheduleForm.selectedUsers != null) { - for (String userId : onetimeScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (onetimeScheduleForm.addedUsers != null) { - for (String userId : onetimeScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - onetimeScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (onetimeScheduleForm.selectedUsers != null) { - for (String userId : onetimeScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (onetimeScheduleForm.removedUsers != null) { - for (String userId : onetimeScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - onetimeScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadEventSchedule() { - - EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( - Long.parseLong(onetimeScheduleForm.id), null); - if (eventSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_eventSchedule", - new Object[] { onetimeScheduleForm.id }); - } - onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, - onetimeScheduleForm); - - onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); - } - - private EventSchedule createEventSchedule() { - String userId = request.getRemoteUser(); - EventSchedule eventSchedule; - if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { - eventSchedule = onetimeScheduleService.getEventSchedule(Long - .parseLong(onetimeScheduleForm.id), null); - eventSchedule.setUpdatedBy(userId); - } else { - eventSchedule = new EventSchedule(); - eventSchedule.setUpdatedBy(userId); - eventSchedule.setCreatedBy(userId); - } - onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, - eventSchedule); - - return eventSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List> getUserGroupItems() { - String userId = request.getRemoteUser(); - return userInfoService.getUserGroupList(userId); - } - - public List getAvailableUserItems() { - String roleId = null; - String groupId = null; - if (onetimeScheduleForm.userGroup != null) { - if (onetimeScheduleForm.userGroup - .startsWith(SchedulerConstants.ROLE_PREFIX)) { - roleId = onetimeScheduleForm.userGroup - .substring(SchedulerConstants.ROLE_PREFIX.length()); - } else if (onetimeScheduleForm.userGroup - .startsWith(SchedulerConstants.GROUP_PREFIX)) { - groupId = onetimeScheduleForm.userGroup - .substring(SchedulerConstants.GROUP_PREFIX.length()); - } - } - if (roleId == null && groupId == null) { - return new ArrayList(); - } else { - return userInfoService.getAvailableUserList(roleId, groupId, - onetimeScheduleForm.selectedUsers, null); - } - } - - public List getSelectedUserItems() { - if (onetimeScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(onetimeScheduleForm.selectedUsers); - } - - public List getYearItems() { - int year = CalendarUtil.getYear(CalendarUtil.getToday()); - List items = new ArrayList(); - for (int i = year - 10; i < year + 5; i++) { - items.add(String.valueOf(i)); - } - return items; - } - - public List getMonthItems() { - List items = new ArrayList(); - for (int i = 1; i < 10; i++) { - items.add("0" + String.valueOf(i)); - } - for (int i = 10; i < 13; i++) { - items.add(String.valueOf(i)); - } - return items; - } - - public List getDateItems() { - List items = new ArrayList(); - for (int i = 1; i < 10; i++) { - items.add("0" + String.valueOf(i)); - } - for (int i = 10; i < 32; i++) { - items.add(String.valueOf(i)); - } - return items; - } - - public List> getHourItems() { - List> items = new ArrayList>(); - for (int i = 0; i < 24; i++) { - StringBuilder buf = new StringBuilder(); - if (i < 10) { - buf.append("0"); - } - buf.append(i); - // TODO i18n - Map map = new HashMap(); - map.put("label", buf.toString()); - map.put("value", buf.toString()); - items.add(map); - } - return items; - } - - public List getMinuteItems() { - List items = new ArrayList(); - for (int i = 0; i < 60; i += 5) { - StringBuilder buf = new StringBuilder(); - if (i < 10) { - buf.append("0"); - } - buf.append(i); - items.add(buf.toString()); - } - return items; - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public OnetimeScheduleForm getOnetimeScheduleForm() { - return onetimeScheduleForm; - } - - public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { - this.onetimeScheduleForm = onetimeScheduleForm; - } - - public OnetimeScheduleService getOnetimeScheduleService() { - return onetimeScheduleService; - } - - public void setOnetimeScheduleService( - OnetimeScheduleService onetimeScheduleService) { - this.onetimeScheduleService = onetimeScheduleService; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - - public OnetimeSchedulePager getOnetimeSchedulePager() { - return onetimeSchedulePager; - } - - public void setOnetimeSchedulePager( - OnetimeSchedulePager onetimeSchedulePager) { - this.onetimeSchedulePager = onetimeSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public OnetimeScheduleDxo getOnetimeScheduleDxo() { - return onetimeScheduleDxo; - } - - public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { - this.onetimeScheduleDxo = onetimeScheduleDxo; - } - -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/RepeatScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,554 +0,0 @@ -package jp.sf.pal.scheduler.action.user; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import jp.sf.pal.scheduler.SchedulerConstants; -import jp.sf.pal.scheduler.common.CommonConstants; -import jp.sf.pal.scheduler.common.dxo.PagerDxo; -import jp.sf.pal.scheduler.common.util.CalendarUtil; -import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.SAStrutsUtil; -import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.db.exentity.UserInfo; -import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; -import jp.sf.pal.scheduler.form.user.RepeatScheduleForm; -import jp.sf.pal.scheduler.pager.RepeatSchedulePager; -import jp.sf.pal.scheduler.service.RepeatScheduleService; -import jp.sf.pal.scheduler.service.UserInfoService; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.seasar.struts.annotation.ActionForm; -import org.seasar.struts.annotation.Execute; -import org.seasar.struts.exception.ActionMessagesException; - -public class RepeatScheduleAction implements Serializable { - - private static final long serialVersionUID = -2000704312247639038L; - - private static final Log log = LogFactory - .getLog(RepeatScheduleAction.class); - - // for list - - public List eventScheduleItems; - - // for edit/confirm/delete - - @ActionForm - private RepeatScheduleForm repeatScheduleForm; - - private RepeatScheduleService repeatScheduleService; - - private UserInfoService userInfoService; - - private RepeatSchedulePager repeatSchedulePager; - - private PagerDxo pagerDxo; - - private RepeatScheduleDxo repeatScheduleDxo; - - private transient HttpServletRequest request; - - protected String displayList() { - // page navi - eventScheduleItems = repeatScheduleService.getEventScheduleList( - repeatSchedulePager, null); - - // restore from pager - // eventScheduleForm.eventSchedulename = - // eventSchedulePager.getGroupInfoname(); - - return "index.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String index() { - ConfigUtil.init(request); - return displayList(); - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") - public String list() { - // page navi - pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String search() { - // eventSchedulePager.setGroupInfoname(eventScheduleForm. - // eventSchedulename); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String reset() { - repeatSchedulePager.clear(); - - return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String back() { - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + repeatScheduleForm.returnType + "/" - + repeatScheduleForm.year + "/" + repeatScheduleForm.month - + "/" + repeatScheduleForm.date + "?redirect=true"; - // return displayList(); - } - - @Execute(validator = false, input = "error.jsp") - public String editagain() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") - public String confirmpage() { - if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.CONFIRM_MODE, - repeatScheduleForm.mode }); - } - - String userId = request.getRemoteUser(); - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") - public String createpage() { - // page navi - repeatScheduleForm.initialize(); - repeatScheduleForm.mode = CommonConstants.CREATE_MODE; - - // set me to assigned - String userId = request.getRemoteUser(); - repeatScheduleForm.selectedUsers = new String[] { userId }; - userInfoService.initUserInfo(userId); - - // update edit page - loadDetailsPageParameters(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") - public String editpage() { - if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.EDIT_MODE, - repeatScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String editpagefromconfirm() { - repeatScheduleForm.mode = CommonConstants.EDIT_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "edit.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String confirm() { - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") - public String deletepage() { - if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { - throw new ActionMessagesException("errors.invalid.mode", - new Object[] { CommonConstants.DELETE_MODE, - repeatScheduleForm.mode }); - } - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String deletepagefromconfirm() { - repeatScheduleForm.mode = CommonConstants.DELETE_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } - - @Execute(validator = true, input = "edit.jsp") - public String create() { - try { - EventSchedule eventSchedule = createEventSchedule(); - repeatScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); - - repeatScheduleForm.id = String.valueOf(eventSchedule.getId()); - repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_create_eventSchedule"); - } - } - - @Execute(validator = true, input = "edit.jsp") - public String update() { - try { - EventSchedule eventSchedule = createEventSchedule(); - repeatScheduleService.store(eventSchedule); - SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); - - repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; - - // update edit page - loadDetailsPageParameters(); - - loadEventSchedule(); - - return "confirm.jsp"; - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_update_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String delete() { - try { - repeatScheduleService.disable( - Long.parseLong(repeatScheduleForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); - - // reset edit page - loadListPageParameters(); - - return "/user/calendar/" + repeatScheduleForm.returnType + "/" - + repeatScheduleForm.year + "/" + repeatScheduleForm.month - + "/" + repeatScheduleForm.date + "?redirect=true"; - // return displayList(); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new ActionMessagesException( - "errors.failed_to_delete_eventSchedule"); - } - } - - @Execute(validator = false, input = "error.jsp") - public String selectusers() { - if (repeatScheduleForm.userGroup == null) { - String userId = request.getRemoteUser(); - List> userGroupList = userInfoService - .getUserGroupList(userId); - if (!userGroupList.isEmpty()) { - repeatScheduleForm.userGroup = userGroupList.get(0) - .get("value"); - } - } - return "userlist.jsp"; - } - - @Execute(validator = true, input = "error.jsp") - public String changeusergroup() { - if (repeatScheduleForm.userGroup == null) { - String userId = request.getRemoteUser(); - List> userGroupList = userInfoService - .getUserGroupList(userId); - if (!userGroupList.isEmpty()) { - repeatScheduleForm.userGroup = userGroupList.get(0) - .get("value"); - } - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String setusers() { - return "edit.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String addusers() { - List userList = new ArrayList(); - if (repeatScheduleForm.selectedUsers != null) { - for (String userId : repeatScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (repeatScheduleForm.addedUsers != null) { - for (String userId : repeatScheduleForm.addedUsers) { - userList.add(userId); - } - } - if (!userList.isEmpty()) { - repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - repeatScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - @Execute(validator = false, input = "error.jsp") - public String removeusers() { - List userList = new ArrayList(); - if (repeatScheduleForm.selectedUsers != null) { - for (String userId : repeatScheduleForm.selectedUsers) { - userList.add(userId); - } - } - if (repeatScheduleForm.removedUsers != null) { - for (String userId : repeatScheduleForm.removedUsers) { - userList.remove(userId); - } - } - if (!userList.isEmpty()) { - repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); - } else { - repeatScheduleForm.selectedUsers = null; - } - return "userlist.jsp"; - } - - private void loadEventSchedule() { - - EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( - Long.parseLong(repeatScheduleForm.id), null); - if (eventSchedule == null) { - // throw an exception - throw new ActionMessagesException( - "errors.could_not_find_eventSchedule", - new Object[] { repeatScheduleForm.id }); - } - repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, - repeatScheduleForm); - - repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); - } - - private EventSchedule createEventSchedule() { - String userId = request.getRemoteUser(); - EventSchedule eventSchedule; - if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { - eventSchedule = repeatScheduleService.getEventSchedule(Long - .parseLong(repeatScheduleForm.id), null); - eventSchedule.setUpdatedBy(userId); - } else { - eventSchedule = new EventSchedule(); - eventSchedule.setUpdatedBy(userId); - eventSchedule.setCreatedBy(userId); - } - repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, - eventSchedule); - - return eventSchedule; - } - - private void loadListPageParameters() { - } - - private void loadDetailsPageParameters() { - } - - public List> getUserGroupItems() { - String userId = request.getRemoteUser(); - return userInfoService.getUserGroupList(userId); - } - - public List getAvailableUserItems() { - String roleId = null; - String groupId = null; - if (repeatScheduleForm.userGroup != null) { - if (repeatScheduleForm.userGroup - .startsWith(SchedulerConstants.ROLE_PREFIX)) { - roleId = repeatScheduleForm.userGroup - .substring(SchedulerConstants.ROLE_PREFIX.length()); - } else if (repeatScheduleForm.userGroup - .startsWith(SchedulerConstants.GROUP_PREFIX)) { - groupId = repeatScheduleForm.userGroup - .substring(SchedulerConstants.GROUP_PREFIX.length()); - } - } - if (roleId == null && groupId == null) { - return new ArrayList(); - } else { - return userInfoService.getAvailableUserList(roleId, groupId, - repeatScheduleForm.selectedUsers, null); - } - } - - public List getSelectedUserItems() { - if (repeatScheduleForm.selectedUsers == null) { - return null; - } - return userInfoService - .getSelectedUserList(repeatScheduleForm.selectedUsers); - } - - public List getYearItems() { - int year = CalendarUtil.getYear(CalendarUtil.getToday()); - List items = new ArrayList(); - for (int i = year - 10; i < year + 5; i++) { - items.add(String.valueOf(i)); - } - return items; - } - - public List getMonthItems() { - List items = new ArrayList(); - for (int i = 1; i < 10; i++) { - items.add("0" + String.valueOf(i)); - } - for (int i = 10; i < 13; i++) { - items.add(String.valueOf(i)); - } - return items; - } - - public List getDateItems() { - List items = new ArrayList(); - for (int i = 1; i < 10; i++) { - items.add("0" + String.valueOf(i)); - } - for (int i = 10; i < 32; i++) { - items.add(String.valueOf(i)); - } - return items; - } - - public List> getHourItems() { - List> items = new ArrayList>(); - for (int i = 0; i < 24; i++) { - StringBuilder buf = new StringBuilder(); - if (i < 10) { - buf.append("0"); - } - buf.append(i); - // TODO i18n - Map map = new HashMap(); - map.put("label", buf.toString()); - map.put("value", buf.toString()); - items.add(map); - } - return items; - } - - public List getMinuteItems() { - List items = new ArrayList(); - for (int i = 0; i < 60; i += 5) { - StringBuilder buf = new StringBuilder(); - if (i < 10) { - buf.append("0"); - } - buf.append(i); - items.add(buf.toString()); - } - return items; - } - - /** - * @return the request - */ - public HttpServletRequest getRequest() { - return request; - } - - /** - * @param request the request to set - */ - public void setRequest(HttpServletRequest request) { - this.request = request; - } - - public RepeatScheduleForm getRepeatScheduleForm() { - return repeatScheduleForm; - } - - public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { - this.repeatScheduleForm = repeatScheduleForm; - } - - public RepeatScheduleService getRepeatScheduleService() { - return repeatScheduleService; - } - - public void setRepeatScheduleService( - RepeatScheduleService repeatScheduleService) { - this.repeatScheduleService = repeatScheduleService; - } - - public UserInfoService getUserInfoService() { - return userInfoService; - } - - public void setUserInfoService(UserInfoService userInfoService) { - this.userInfoService = userInfoService; - } - - public RepeatSchedulePager getRepeatSchedulePager() { - return repeatSchedulePager; - } - - public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { - this.repeatSchedulePager = repeatSchedulePager; - } - - public PagerDxo getPagerDxo() { - return pagerDxo; - } - - public void setPagerDxo(PagerDxo pagerDxo) { - this.pagerDxo = pagerDxo; - } - - public RepeatScheduleDxo getRepeatScheduleDxo() { - return repeatScheduleDxo; - } - - public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { - this.repeatScheduleDxo = repeatScheduleDxo; - } - -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,1055 @@ +package jp.sf.pal.scheduler.action.user.schedule; + +import java.io.Serializable; +import java.sql.Time; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.DateUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.form.user.schedule.CalendarForm; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.RepeatScheduleService; + +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; + +public class CalendarAction implements Serializable { + + private static final long serialVersionUID = -222687807313390813L; + + public List> calendarDayItems; + + public List> weekDayItems; + + public List>>> eventInWeekItems; + + public List>> allDayEventInWeekItems; + + public List>> eventInDayItems; + + public List> allDayEventInDayItems; + + public int maxCols; + + @ActionForm + private CalendarForm calendarForm; + + private OnetimeScheduleService onetimeScheduleService; + + private RepeatScheduleService repeatScheduleService; + + private transient HttpServletRequest request; + + private void createSideCalendar() { + calendarDayItems = new LinkedList>(); + Calendar targetCalendar = calendarForm.getTargetCalendar(); + int targetYear = CalendarUtil.getYear(targetCalendar); + int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1; + int targetDate = CalendarUtil.getDate(targetCalendar); + + // create a previous month + Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); + int count = CalendarUtil.getDay(cal) - 1; + while (count > 0) { + cal = CalendarUtil.getPrev(cal); + calendarDayItems.add(0, createCalendarDayItem(cal, false)); + count--; + } + + // create this month + cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); + int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil + .getLastCalendarInMonth(targetCalendar)); + for (int i = 0; i < lastDayOfMonth; i++) { + calendarDayItems.add(createCalendarDayItem(cal, targetYear, + targetMonth, targetDate, true)); + cal = CalendarUtil.getNext(cal); + } + + // create a next month + count = CalendarUtil.getDay(cal); + while (count != 1) { + calendarDayItems.add(createCalendarDayItem(cal, false)); + cal = CalendarUtil.getNext(cal); + count = CalendarUtil.getDay(cal); + } + + } + + private boolean compare(int year1, int month1, int date1, int year2, + int month2, int date2) { + if (year1 == year2 && month1 == month2 && date1 == date2) { + return true; + } + return false; + } + + private Map createEmptyEvent() { + Map emptyEvent = new HashMap(); + emptyEvent.put("startEvent", "true"); + emptyEvent.put("cols", "1"); + emptyEvent.put("rows", "1"); + emptyEvent.put("time", "none"); + return emptyEvent; + } + + private void putEventSchedule(EventSchedule eventSchedule, Time startTime, + Time endTime) { + if (startTime != null && endTime != null) { + int sIdx = DateUtil.getHours(startTime); + int eIdx = DateUtil.getHours(endTime) - 1; + if (DateUtil.getMinutes(endTime) != 0) { + eIdx++; + } + if (eIdx > 23) { + eIdx = 23; + } + for (int i = sIdx; i <= eIdx; i++) { + Map eventMap = createEvent(eventSchedule, true, + true); + if (i == sIdx) { + eventMap.put("startEvent", "true"); + int size = eIdx - sIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else if (startTime != null && endTime == null) { + int sIdx = DateUtil.getHours(startTime); + for (int i = sIdx; i <= 23; i++) { + Map eventMap = createEvent(eventSchedule, true, + false); + if (i == sIdx) { + eventMap.put("startEvent", "true"); + int size = 23 - sIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else if (startTime == null && endTime != null) { + int eIdx = DateUtil.getHours(endTime) - 1; + if (DateUtil.getMinutes(endTime) != 0) { + eIdx++; + } + if (eIdx > 23) { + eIdx = 23; + } + for (int i = 0; i <= eIdx; i++) { + Map eventMap = createEvent(eventSchedule, + false, true); + if (i == 0) { + eventMap.put("startEvent", "true"); + int size = eIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else { + // all day + allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); + } + + } + + private String displayPersonalDay() { + createSideCalendar(); + + Calendar cal = calendarForm.getTargetCalendar(); + Calendar nextCal = cal; + int tYear = CalendarUtil.getYear(cal); + int tMonth = CalendarUtil.getMonth(cal) + 1; + int tDate = CalendarUtil.getDate(cal); + int tDay = CalendarUtil.getDay(cal); + eventInDayItems = new ArrayList>>(); + allDayEventInDayItems = new ArrayList>(); + for (int i = 0; i < 24; i++) { + eventInDayItems.add(new ArrayList>()); + } + + String userId = request.getRemoteUser(); + List ssmList = onetimeScheduleService + .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal + .getTime()); + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, startTime, endTime); + } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, startTime, null); + } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, null, endTime); + } else { + // all day + allDayEventInDayItems.add(createEvent(eventSchedule, false, + false)); + } + } + + maxCols = 0; + for (List> events : eventInDayItems) { + if (!events.isEmpty() && events.size() > maxCols) { + maxCols = events.size(); + } + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty()) { + int idx = events.size() - 1; + for (int i = idx; i < maxCols - 1; i++) { + events.add(createEmptyEvent()); + } + } + } + + List rsmList = repeatScheduleService + .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal + .getTime()); + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + // int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + putEventSchedule(eventSchedule, startTime, endTime); + } else if ("MTWTF".equals(type)) { + if (tDay > 1 && tDay < 7) { + putEventSchedule(eventSchedule, startTime, endTime); + } + } else if ("MWF".equals(type)) { + if (tDay == 2 || tDay == 4 || tDay == 6) { + putEventSchedule(eventSchedule, startTime, endTime); + } + } else if ("TT".equals(type)) { + if (tDay == 3 || tDay == 5) { + putEventSchedule(eventSchedule, startTime, endTime); + } + } else if ("WEEKLY".equals(type)) { + if (tDay == DateUtil.getDay(startDate) + 1) { + putEventSchedule(eventSchedule, startTime, endTime); + } + } else if ("MONTHLY".equals(type)) { + if (tDate == sDate) { + putEventSchedule(eventSchedule, startTime, endTime); + } + } else if ("YEARLY".equals(type)) { + if (tDate == sDate && tMonth == sMonth) { + putEventSchedule(eventSchedule, startTime, endTime); + } + } + + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty() && events.size() > maxCols) { + maxCols = events.size(); + } + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty()) { + int idx = events.size() - 1; + for (int i = idx; i < maxCols - 1; i++) { + events.add(createEmptyEvent()); + } + } else { + Map emptyEvent = new HashMap(); + emptyEvent.put("noEvent", "true"); + events.add(emptyEvent); + } + } + + return "personalday.jsp"; + } + + private String displayPersonalWeek() { + createSideCalendar(); + + List calendarList = new ArrayList(7); + eventInWeekItems = new ArrayList>>>(7); + allDayEventInWeekItems = new ArrayList>>(7); + Calendar cal = calendarForm.getTargetCalendar(); + calendarList.add(cal); + weekDayItems = new ArrayList>(); + Map indexMap = new HashMap(7); + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n + for (int i = 0; i < 7; i++) { + calendarList.add(cal); + + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int date = CalendarUtil.getDate(cal); + + Map map = new HashMap(); + map.put("displayedDate", sdf.format(cal.getTime())); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("date", String.valueOf(date)); + map.put("month", String.valueOf(month)); + map.put("year", String.valueOf(year)); + weekDayItems.add(map); + cal = CalendarUtil.getNext(cal); + + indexMap.put(year + "-" + month + "-" + date, i); + + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + eventInWeekItems.add(eventInDayItems); + + allDayEventInWeekItems.add(new ArrayList>()); + } + + String userId = request.getRemoteUser(); + List ssmList = onetimeScheduleService + .getPersonalScheduleMappingList(userId, calendarList.get(0) + .getTime(), calendarList.get(6).getTime()); + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(-1); + } + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(7); + } + + int startIdx = sIndex.intValue(); + if (startIdx < 0) { + startIdx = 0; + } + int endIdx = eIndex.intValue(); + if (endIdx > 6) { + endIdx = 6; + } + + Time time = eventSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (eventSchedule.getEndTime() == null) { + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(eventSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } + } + } + + List rsmList = repeatScheduleService + .getPersonalScheduleMappingList(userId, calendarList.get(0) + .getTime(), calendarList.get(6).getTime()); + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(0); + } + + Date endDate = eventSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(6); + } + } else { + eIndex = Integer.valueOf(6); + } + + Time time = eventSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("MWF".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("TT".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("date"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("YEARLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("date"); + String m = (String) weekDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } + } + + } + + return "personalweek.jsp"; + } + + private String displayPersonalMonth() { + createSideCalendar(); + + Map indexMap = new HashMap(50); + int count = 0; + for (Map calendarDay : calendarDayItems) { + indexMap.put(calendarDay.get("year") + "-" + + calendarDay.get("month") + "-" + + calendarDay.get("dayOfMonth"), count); + calendarDay.put("allDayEventItems", + new ArrayList>()); + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + calendarDay.put("eventItems", eventInDayItems); + count++; + } + + Calendar cal = calendarForm.getTargetCalendar(); + Calendar startCal = CalendarUtil.getFirstCalendarInMonth(cal); + int firstYear = CalendarUtil.getYear(startCal); + int firstMonth = CalendarUtil.getMonth(startCal) + 1; + int firstDate = CalendarUtil.getDate(startCal); + int firstDateIndex = indexMap.get(firstYear + "-" + firstMonth + "-" + + firstDate); + Calendar endCal = CalendarUtil.getLastCalendarInMonth(cal); + int lastYear = CalendarUtil.getYear(endCal); + int lastMonth = CalendarUtil.getMonth(endCal) + 1; + int lastDate = CalendarUtil.getDate(endCal); + int endDateIndex = indexMap.get(lastYear + "-" + lastMonth + "-" + + lastDate); + + String userId = request.getRemoteUser(); + List ssmList = onetimeScheduleService + .getPersonalScheduleMappingList(userId, startCal.getTime(), + endCal.getTime()); + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex - 1); + } + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + + int startIdx = sIndex.intValue(); + if (startIdx < firstDateIndex) { + startIdx = firstDateIndex; + } + int endIdx = eIndex.intValue(); + if (endIdx > endDateIndex) { + endIdx = endDateIndex; + } + + Time time = eventSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (eventSchedule.getEndTime() == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(eventSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } + } + } + + List rsmList = repeatScheduleService + .getPersonalScheduleMappingList(userId, startCal.getTime(), + endCal.getTime()); + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex); + } + + Date endDate = eventSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + } else { + eIndex = Integer.valueOf(endDateIndex); + } + + Time time = eventSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("MWF".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("TT".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get( + "dayOfMonth"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("YEARLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get( + "dayOfMonth"); + String m = (String) calendarDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } + } + + } + + return "personalmonth.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalday/{year}/{month}/{date}") + public String selectpersonalday() { + return displayPersonalDay(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalweek/{year}/{month}/{date}") + public String selectpersonalweek() { + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectpersonalmonth/{year}/{month}/{date}") + public String selectpersonalmonth() { + return displayPersonalMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthprevmonth/{year}/{month}/{date}") + public String movepersonalmonthprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayPersonalMonth(); + } + + @Execute(validator = false, input = "error.jsp") + public String movepersonalmonththismonth() { + calendarForm.changeCalendarToToday(); + return displayPersonalMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthnextmonth/{year}/{month}/{date}") + public String movepersonalmonthnextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayPersonalMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalweekprevmonth/{year}/{month}/{date}") + public String movepersonalweekprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayPersonalWeek(); + } + + @Execute(validator = false, input = "error.jsp") + public String movepersonalweekthismonth() { + calendarForm.changeCalendarToToday(); + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalweeknextmonth/{year}/{month}/{date}") + public String movepersonalweeknextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayPersonalWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonaldayprevmonth/{year}/{month}/{date}") + public String movepersonaldayprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayPersonalDay(); + } + + @Execute(validator = false, input = "error.jsp") + public String movepersonaldaythismonth() { + calendarForm.changeCalendarToToday(); + return displayPersonalDay(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonaldaynextmonth/{year}/{month}/{date}") + public String movepersonaldaynextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayPersonalDay(); + } + + private Map createCalendarDayItem(Calendar cal, + boolean thisMonth) { + Map map = new HashMap(); + map.put("year", String.valueOf(CalendarUtil.getYear(cal))); + map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1)); + map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal))); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("thisMonth", String.valueOf(thisMonth)); + map.put("target", "false"); + return map; + } + + private Map createCalendarDayItem(Calendar cal, int tYear, + int tMonth, int tDate, boolean thisMonth) { + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int dayOfMonth = CalendarUtil.getDate(cal); + int dayOfWeek = CalendarUtil.getDay(cal); + Map map = new HashMap(); + map.put("year", String.valueOf(year)); + map.put("month", String.valueOf(month)); + map.put("dayOfMonth", String.valueOf(dayOfMonth)); + map.put("dayOfWeek", String.valueOf(dayOfWeek)); + map.put("thisMonth", String.valueOf(thisMonth)); + if (year == tYear && month == tMonth && dayOfMonth == tDate) { + map.put("target", "true"); + } else { + map.put("target", "false"); + } + return map; + } + + private Map createEvent(EventSchedule eventSchedule, + boolean start, boolean end) { + Map map = new HashMap(); + map.put("id", eventSchedule.getId().toString()); + map.put("title", eventSchedule.getTitle()); + if (start || end) { + StringBuilder buf = new StringBuilder(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n + if (start && eventSchedule.getStartTime() != null) { + buf.append(sdf.format(eventSchedule.getStartTime())); + } + buf.append("-"); + if (end && eventSchedule.getEndTime() != null) { + buf.append(sdf.format(eventSchedule.getEndTime())); + } + map.put("time", buf.toString()); + } + if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) { + map.put("repeat", "false"); + } else { + map.put("repeat", "true"); + map.put("type", ((EventSchedule) eventSchedule).getType()); + } + + return map; + } + + public CalendarForm getCalendarForm() { + return calendarForm; + } + + public void setCalendarForm(CalendarForm calendarForm) { + this.calendarForm = calendarForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,565 @@ +package jp.sf.pal.scheduler.action.user.schedule; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; +import jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm; +import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class OnetimeScheduleAction implements Serializable { + + private static final long serialVersionUID = -492597057773820702L; + + private static final Log log = LogFactory + .getLog(OnetimeScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private OnetimeScheduleForm onetimeScheduleForm; + + private OnetimeScheduleService onetimeScheduleService; + + private UserInfoService userInfoService; + + private OnetimeSchedulePager onetimeSchedulePager; + + private PagerDxo pagerDxo; + + private OnetimeScheduleDxo onetimeScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = onetimeScheduleService.getEventScheduleList( + onetimeSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + onetimeSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + onetimeScheduleForm.returnType + "/" + + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month + + "/" + onetimeScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") + public String confirmpage() { + if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + onetimeScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") + public String createpage() { + // page navi + onetimeScheduleForm.initialize(); + onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + onetimeScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + onetimeScheduleForm.id = String.valueOf(eventSchedule.getId()); + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + onetimeScheduleService + .disable(Long.parseLong(onetimeScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + onetimeScheduleForm.returnType + "/" + + onetimeScheduleForm.year + "/" + + onetimeScheduleForm.month + "/" + + onetimeScheduleForm.date + "?redirect=true"; + // return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + if (onetimeScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + onetimeScheduleForm.userGroup = userGroupList.get(0).get( + "value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = true, input = "error.jsp") + public String changeusergroup() { + if (onetimeScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + onetimeScheduleForm.userGroup = userGroupList.get(0).get( + "value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.addedUsers != null) { + for (String userId : onetimeScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.removedUsers != null) { + for (String userId : onetimeScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( + Long.parseLong(onetimeScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { onetimeScheduleForm.id }); + } + onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + onetimeScheduleForm); + + onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = onetimeScheduleService.getEventSchedule(Long + .parseLong(onetimeScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + + public List getAvailableUserItems() { + String roleId = null; + String groupId = null; + if (onetimeScheduleForm.userGroup != null) { + if (onetimeScheduleForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + roleId = onetimeScheduleForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + } else if (onetimeScheduleForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + groupId = onetimeScheduleForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + } + } + if (roleId == null && groupId == null) { + return new ArrayList(); + } else { + return userInfoService.getAvailableUserList(roleId, groupId, + onetimeScheduleForm.selectedUsers, null); + } + } + + public List getSelectedUserItems() { + if (onetimeScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(onetimeScheduleForm.selectedUsers); + } + + public List getYearItems() { + int year = CalendarUtil.getYear(CalendarUtil.getToday()); + List items = new ArrayList(); + for (int i = year - 10; i < year + 5; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getMonthItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 13; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getDateItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 32; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List> getHourItems() { + List> items = new ArrayList>(); + for (int i = 0; i < 24; i++) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + // TODO i18n + Map map = new HashMap(); + map.put("label", buf.toString()); + map.put("value", buf.toString()); + items.add(map); + } + return items; + } + + public List getMinuteItems() { + List items = new ArrayList(); + for (int i = 0; i < 60; i += 5) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + items.add(buf.toString()); + } + return items; + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public OnetimeScheduleForm getOnetimeScheduleForm() { + return onetimeScheduleForm; + } + + public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { + this.onetimeScheduleForm = onetimeScheduleForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public OnetimeSchedulePager getOnetimeSchedulePager() { + return onetimeSchedulePager; + } + + public void setOnetimeSchedulePager( + OnetimeSchedulePager onetimeSchedulePager) { + this.onetimeSchedulePager = onetimeSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public OnetimeScheduleDxo getOnetimeScheduleDxo() { + return onetimeScheduleDxo; + } + + public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { + this.onetimeScheduleDxo = onetimeScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,563 @@ +package jp.sf.pal.scheduler.action.user.schedule; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; +import jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm; +import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RepeatScheduleAction implements Serializable { + + private static final long serialVersionUID = -2000704312247639038L; + + private static final Log log = LogFactory + .getLog(RepeatScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + @ActionForm + private RepeatScheduleForm repeatScheduleForm; + + private RepeatScheduleService repeatScheduleService; + + private UserInfoService userInfoService; + + private RepeatSchedulePager repeatSchedulePager; + + private PagerDxo pagerDxo; + + private RepeatScheduleDxo repeatScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = repeatScheduleService.getEventScheduleList( + repeatSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + repeatSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + repeatScheduleForm.returnType + "/" + + repeatScheduleForm.year + "/" + repeatScheduleForm.month + + "/" + repeatScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{year}/{month}/{date}") + public String confirmpage() { + if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + repeatScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") + public String createpage() { + // page navi + repeatScheduleForm.initialize(); + repeatScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + repeatScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + repeatScheduleForm.id = String.valueOf(eventSchedule.getId()); + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + repeatScheduleService.disable( + Long.parseLong(repeatScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/calendar/" + repeatScheduleForm.returnType + "/" + + repeatScheduleForm.year + "/" + repeatScheduleForm.month + + "/" + repeatScheduleForm.date + "?redirect=true"; + // return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + if (repeatScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + repeatScheduleForm.userGroup = userGroupList.get(0) + .get("value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = true, input = "error.jsp") + public String changeusergroup() { + if (repeatScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + repeatScheduleForm.userGroup = userGroupList.get(0) + .get("value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.addedUsers != null) { + for (String userId : repeatScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.removedUsers != null) { + for (String userId : repeatScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( + Long.parseLong(repeatScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { repeatScheduleForm.id }); + } + repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + repeatScheduleForm); + + repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = repeatScheduleService.getEventSchedule(Long + .parseLong(repeatScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + + public List getAvailableUserItems() { + String roleId = null; + String groupId = null; + if (repeatScheduleForm.userGroup != null) { + if (repeatScheduleForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + roleId = repeatScheduleForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + } else if (repeatScheduleForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + groupId = repeatScheduleForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + } + } + if (roleId == null && groupId == null) { + return new ArrayList(); + } else { + return userInfoService.getAvailableUserList(roleId, groupId, + repeatScheduleForm.selectedUsers, null); + } + } + + public List getSelectedUserItems() { + if (repeatScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(repeatScheduleForm.selectedUsers); + } + + public List getYearItems() { + int year = CalendarUtil.getYear(CalendarUtil.getToday()); + List items = new ArrayList(); + for (int i = year - 10; i < year + 5; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getMonthItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 13; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getDateItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 32; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List> getHourItems() { + List> items = new ArrayList>(); + for (int i = 0; i < 24; i++) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + // TODO i18n + Map map = new HashMap(); + map.put("label", buf.toString()); + map.put("value", buf.toString()); + items.add(map); + } + return items; + } + + public List getMinuteItems() { + List items = new ArrayList(); + for (int i = 0; i < 60; i += 5) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + items.add(buf.toString()); + } + return items; + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RepeatScheduleForm getRepeatScheduleForm() { + return repeatScheduleForm; + } + + public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { + this.repeatScheduleForm = repeatScheduleForm; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public RepeatSchedulePager getRepeatSchedulePager() { + return repeatSchedulePager; + } + + public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { + this.repeatSchedulePager = repeatSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RepeatScheduleDxo getRepeatScheduleDxo() { + return repeatScheduleDxo; + } + + public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { + this.repeatScheduleDxo = repeatScheduleDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/allcommon/dbmeta/DBMetaInstanceHandler.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -35,6 +35,15 @@ tmpMap .put("EVENT_SCHEDULE_MAPPING", "jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleMappingDbm"); + tmpMap.put("FACILITY", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityDbm"); + tmpMap.put("FACILITY_CONTENT", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityContentDbm"); + tmpMap.put("FACILITY_GROUP", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityGroupDbm"); + tmpMap + .put("FACILITY_SCHEDULE_MAPPING", + "jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityScheduleMappingDbm"); tmpMap.put("GROUP_INFO", "jp.sf.pal.scheduler.db.bsentity.dbmeta.GroupInfoDbm"); tmpMap.put("GROUP_MAPPING", @@ -59,6 +68,11 @@ "eventScheduleContent"); tmpMap.put("EVENT_SCHEDULE_MAPPING".toLowerCase(), "eventScheduleMapping"); + tmpMap.put("FACILITY".toLowerCase(), "facility"); + tmpMap.put("FACILITY_CONTENT".toLowerCase(), "facilityContent"); + tmpMap.put("FACILITY_GROUP".toLowerCase(), "facilityGroup"); + tmpMap.put("FACILITY_SCHEDULE_MAPPING".toLowerCase(), + "facilityScheduleMapping"); tmpMap.put("GROUP_INFO".toLowerCase(), "groupInfo"); tmpMap.put("GROUP_MAPPING".toLowerCase(), "groupMapping"); tmpMap.put("ROLE_INFO".toLowerCase(), "roleInfo"); @@ -79,6 +93,11 @@ "EVENT_SCHEDULE_CONTENT"); tmpMap.put("eventScheduleMapping".toLowerCase(), "EVENT_SCHEDULE_MAPPING"); + tmpMap.put("facility".toLowerCase(), "FACILITY"); + tmpMap.put("facilityContent".toLowerCase(), "FACILITY_CONTENT"); + tmpMap.put("facilityGroup".toLowerCase(), "FACILITY_GROUP"); + tmpMap.put("facilityScheduleMapping".toLowerCase(), + "FACILITY_SCHEDULE_MAPPING"); tmpMap.put("groupInfo".toLowerCase(), "GROUP_INFO"); tmpMap.put("groupMapping".toLowerCase(), "GROUP_MAPPING"); tmpMap.put("roleInfo".toLowerCase(), "ROLE_INFO"); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsEventScheduleBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -19,11 +19,14 @@ import jp.sf.pal.scheduler.db.bsentity.dbmeta.EventScheduleDbm; import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.FacilityScheduleMappingBhv; import jp.sf.pal.scheduler.db.exdao.EventScheduleDao; import jp.sf.pal.scheduler.db.exentity.EventSchedule; import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; /** * The behavior of EVENT_SCHEDULE. @@ -48,13 +51,13 @@ * * * [referrer-table] - * EVENT_SCHEDULE_CONTENT, EVENT_SCHEDULE_MAPPING + * EVENT_SCHEDULE_CONTENT, EVENT_SCHEDULE_MAPPING, FACILITY_SCHEDULE_MAPPING * * [foreign-property] * eventScheduleContentAsOne * * [referrer-property] - * eventScheduleMappingList + * eventScheduleMappingList, facilityScheduleMappingList * * * @author DBFlute(AutoGenerator) @@ -385,6 +388,105 @@ }); } + /** + * Load referrer of facilityScheduleMappingList with the setupper for + * condition-bean of referrer.
      About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
      The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
      +     * cb.query().setScheduleId_InScope(pkList);
      +     * cb.query().addOrderBy_ScheduleId_Asc();
      +     * 
      + * + * @param eventScheduleList The entity list of eventSchedule. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadFacilityScheduleMappingList( + List eventScheduleList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("eventScheduleList", + eventScheduleList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (eventScheduleList.isEmpty()) { + return; + } + loadFacilityScheduleMappingList( + eventScheduleList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param eventScheduleList The entity list of eventSchedule. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadFacilityScheduleMappingList( + List eventScheduleList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("eventScheduleList", + eventScheduleList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (eventScheduleList.isEmpty()) { + return; + } + final FacilityScheduleMappingBhv referrerBhv = xgetBSFLR().select( + FacilityScheduleMappingBhv.class); + helpLoadReferrerInternally( + eventScheduleList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Long callbackBase_getPrimaryKeyValue( + EventSchedule entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + EventSchedule entity, + List referrerList) { + entity.setFacilityScheduleMappingList(referrerList); + } + + public FacilityScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + FacilityScheduleMappingCB cb, List pkList) { + cb.query().setScheduleId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + FacilityScheduleMappingCB cb) { + cb.query().addOrderBy_ScheduleId_Asc(); + } + + public List callbackReferrer_selectList( + FacilityScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Long callbackReferrer_getForeignKeyValue( + FacilityScheduleMapping entity) { + return entity.getScheduleId(); + } + + public void callbackReferrer_setForeignEntity( + FacilityScheduleMapping referrerEntity, + EventSchedule baseEntity) { + referrerEntity.setEventSchedule(baseEntity); + } + }); + } + //========================================================================== // ========= // Pullout Foreign Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,841 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityDbm; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.exbhv.FacilityScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exdao.FacilityDao; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityContent; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; + +/** + * The behavior of FACILITY. + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, NAME, SORT_ORDER, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     ID
      + * 
      + * [version-no]
      + *     VERSIONNO
      + * 
      + * [foreign-table]
      + *     FACILITY_GROUP
      + * 
      + * [referrer-table]
      + *     FACILITY_CONTENT, FACILITY_SCHEDULE_MAPPING
      + * 
      + * [foreign-property]
      + *     facilityGroup, facilityContentAsOne
      + * 
      + * [referrer-property]
      + *     facilityScheduleMappingList
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsFacilityBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "FACILITY"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return FacilityDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public FacilityDbm getMyDBMeta() { + return FacilityDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public FacilityDao getMyDao() { + return _dao; + } + + public void setMyDao(FacilityDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public Facility newMyEntity() { + return new Facility(); + } + + public FacilityCB newMyConditionBean() { + return new FacilityCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of Facility. (NotNull) + * @return The selected count. + */ + public int selectCount(FacilityCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of Facility. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Facility selectEntity(final FacilityCB cb) { + return helpSelectEntityInternally(cb, + new InternalSelectEntityCallback() { + public List callbackSelectList(FacilityCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of Facility. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public Facility selectEntityWithDeletedCheck(final FacilityCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList(FacilityCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public Facility selectByPKValueWithDeletedCheck(Integer id) { + Facility entity = new Facility(); + entity.setId(id); + final FacilityCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of Facility. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(FacilityCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of Facility. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final FacilityCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of Facility. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + FacilityCB cb, ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of facilityScheduleMappingList with the setupper for + * condition-bean of referrer.
      About internal policy, the value of + * primary key(and others too) is treated as case-insensitive.
      The + * condition-bean that the setupper provides have settings before you touch + * it. It is as follows: + * + *
      +     * cb.query().setFacilityId_InScope(pkList);
      +     * cb.query().addOrderBy_FacilityId_Asc();
      +     * 
      + * + * @param facilityList The entity list of facility. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadFacilityScheduleMappingList( + List facilityList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("facilityList", facilityList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (facilityList.isEmpty()) { + return; + } + loadFacilityScheduleMappingList( + facilityList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param facilityList The entity list of facility. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadFacilityScheduleMappingList( + List facilityList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("facilityList", facilityList); + assertObjectNotNull( + "loadReferrerOption", + loadReferrerOption); + if (facilityList.isEmpty()) { + return; + } + final FacilityScheduleMappingBhv referrerBhv = xgetBSFLR().select( + FacilityScheduleMappingBhv.class); + helpLoadReferrerInternally( + facilityList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Integer callbackBase_getPrimaryKeyValue( + Facility entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList(Facility entity, + List referrerList) { + entity.setFacilityScheduleMappingList(referrerList); + } + + public FacilityScheduleMappingCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + FacilityScheduleMappingCB cb, List pkList) { + cb.query().setFacilityId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + FacilityScheduleMappingCB cb) { + cb.query().addOrderBy_FacilityId_Asc(); + } + + public List callbackReferrer_selectList( + FacilityScheduleMappingCB cb) { + return referrerBhv.selectList(cb); + } + + public Integer callbackReferrer_getForeignKeyValue( + FacilityScheduleMapping entity) { + return entity.getFacilityId(); + } + + public void callbackReferrer_setForeignEntity( + FacilityScheduleMapping referrerEntity, + Facility baseEntity) { + referrerEntity.setFacility(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'FacilityGroup'. + * + * @param facilityList The list of facility. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutFacilityGroup(List facilityList) { + return helpPulloutInternally(facilityList, + new InternalPulloutCallback() { + public FacilityGroup callbackGetForeignEntity( + Facility entity) { + return entity.getFacilityGroup(); + } + }); + } + + /** + * Pull out the list of referrer-as-one table 'FacilityContent'. + * + * @param facilityList The list of facility. (NotNull) + * @return The list of referrer-as-one table. (NotNull) + */ + public List pulloutFacilityContentAsOne( + List facilityList) { + return helpPulloutInternally(facilityList, + new InternalPulloutCallback() { + public FacilityContent callbackGetForeignEntity( + Facility entity) { + return entity.getFacilityContentAsOne(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param facility The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(Facility facility) { + assertEntityNotNull(facility); + delegateInsert(facility); + } + + @Override + protected void doCreate(Entity facility) { + insert((Facility) facility); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param facility The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final Facility facility) { + helpUpdateInternally(facility, new InternalUpdateCallback() { + public int callbackDelegateUpdate(Facility entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((Facility) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param facility The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final Facility facility) { + helpUpdateNonstrictInternally(facility, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict(Facility entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((Facility) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param facility The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final Facility facility) { + helpInsertOrUpdateInternally(facility, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(Facility entity) { + insert(entity); + } + + public void callbackUpdate(Facility entity) { + update(entity); + } + + public FacilityCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(FacilityCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity facility) { + insertOrUpdate((Facility) facility); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param facility The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(Facility facility) { + helpInsertOrUpdateInternally(facility, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(Facility entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(Facility entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((Facility) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param facility The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(Facility facility) { + helpDeleteInternally(facility, new InternalDeleteCallback() { + public int callbackDelegateDelete(Facility entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity facility) { + delete((Facility) facility); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param facility Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(Facility facility) { + helpDeleteNonstrictInternally(facility, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict(Facility entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param facility Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(Facility facility) { + helpDeleteNonstrictIgnoreDeletedInternally(facility, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict(Facility entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List facilityList) { + assertObjectNotNull("facilityList", facilityList); + return delegateInsertList(facilityList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
      This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param facilityList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List facilityList) { + assertObjectNotNull("facilityList", facilityList); + return delegateUpdateList(facilityList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
      This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List facilityList) { + assertObjectNotNull("facilityList", facilityList); + return delegateUpdateListNonstrict(facilityList); + } + + /** + * Batch delete the list.
      This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List facilityList) { + assertObjectNotNull("facilityList", facilityList); + return delegateDeleteList(facilityList); + } + + /** + * Batch delete the list non-strictly.
      This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param facilityList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List facilityList) { + assertObjectNotNull("facilityList", facilityList); + return delegateDeleteListNonstrict(facilityList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param facility Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(Facility facility, FacilityCB cb) { + assertObjectNotNull("facility", facility); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(facility); + filterEntityOfUpdate(facility); + assertEntityOfUpdate(facility); + return getMyDao().updateByQuery(cb, facility); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(FacilityCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(FacilityCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(FacilityCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(Facility e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(Facility e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(Facility e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(Facility e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(Facility e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("facilityList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("facilityList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("facilityList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("facilityList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("facilityList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected Facility downcast(Entity entity) { + return helpDowncastInternally(entity, Facility.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityContentBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,589 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityContentDbm; +import jp.sf.pal.scheduler.db.cbean.FacilityContentCB; +import jp.sf.pal.scheduler.db.exdao.FacilityContentDao; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityContent; + +/** + * The behavior of FACILITY_CONTENT. + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, CONTENT
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     
      + * 
      + * [version-no]
      + *     
      + * 
      + * [foreign-table]
      + *     FACILITY
      + * 
      + * [referrer-table]
      + *     
      + * 
      + * [foreign-property]
      + *     facility
      + * 
      + * [referrer-property]
      + * 
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsFacilityContentBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityContentDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "FACILITY_CONTENT"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return FacilityContentDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public FacilityContentDbm getMyDBMeta() { + return FacilityContentDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public FacilityContentDao getMyDao() { + return _dao; + } + + public void setMyDao(FacilityContentDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public FacilityContent newMyEntity() { + return new FacilityContent(); + } + + public FacilityContentCB newMyConditionBean() { + return new FacilityContentCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of FacilityContent. (NotNull) + * @return The selected count. + */ + public int selectCount(FacilityContentCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of FacilityContent. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public FacilityContent selectEntity(final FacilityContentCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + FacilityContentCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of FacilityContent. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public FacilityContent selectEntityWithDeletedCheck( + final FacilityContentCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + FacilityContentCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public FacilityContent selectByPKValueWithDeletedCheck(Integer id) { + FacilityContent entity = new FacilityContent(); + entity.setId(id); + final FacilityContentCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of FacilityContent. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(FacilityContentCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of FacilityContent. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final FacilityContentCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of FacilityContent. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + FacilityContentCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'Facility'. + * + * @param facilityContentList The list of facilityContent. (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutFacility( + List facilityContentList) { + return helpPulloutInternally(facilityContentList, + new InternalPulloutCallback() { + public Facility callbackGetForeignEntity( + FacilityContent entity) { + return entity.getFacility(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param facilityContent The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(FacilityContent facilityContent) { + assertEntityNotNull(facilityContent); + delegateInsert(facilityContent); + } + + @Override + protected void doCreate(Entity facilityContent) { + insert((FacilityContent) facilityContent); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param facilityContent The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final FacilityContent facilityContent) { + helpUpdateInternally(facilityContent, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(FacilityContent entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((FacilityContent) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((FacilityContent) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param facilityContent The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final FacilityContent facilityContent) { + helpInsertOrUpdateInternally( + facilityContent, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(FacilityContent entity) { + insert(entity); + } + + public void callbackUpdate(FacilityContent entity) { + update(entity); + } + + public FacilityContentCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(FacilityContentCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity facilityContent) { + insertOrUpdate((FacilityContent) facilityContent); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((FacilityContent) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param facilityContent The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(FacilityContent facilityContent) { + helpDeleteInternally(facilityContent, + new InternalDeleteCallback() { + public int callbackDelegateDelete(FacilityContent entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity facilityContent) { + delete((FacilityContent) facilityContent); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityContentList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List facilityContentList) { + assertObjectNotNull("facilityContentList", facilityContentList); + return delegateInsertList(facilityContentList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
      This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param facilityContentList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate(List facilityContentList) { + assertObjectNotNull("facilityContentList", facilityContentList); + return delegateUpdateList(facilityContentList); + } + + /** + * Batch delete the list.
      This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityContentList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete(List facilityContentList) { + assertObjectNotNull("facilityContentList", facilityContentList); + return delegateDeleteList(facilityContentList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param facilityContent Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(FacilityContent facilityContent, FacilityContentCB cb) { + assertObjectNotNull("facilityContent", facilityContent); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(facilityContent); + filterEntityOfUpdate(facilityContent); + assertEntityOfUpdate(facilityContent); + return getMyDao().updateByQuery(cb, facilityContent); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(FacilityContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(FacilityContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(FacilityContentCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(FacilityContent e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(FacilityContent e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(FacilityContent e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("facilityContentList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("facilityContentList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("facilityContentList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected FacilityContent downcast(Entity entity) { + return helpDowncastInternally(entity, FacilityContent.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityGroupBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityGroupBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityGroupBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,814 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.load.LoadReferrerOption; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ConditionBeanSetupper; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityGroupDbm; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.exbhv.FacilityBhv; +import jp.sf.pal.scheduler.db.exdao.FacilityGroupDao; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; + +/** + * The behavior of FACILITY_GROUP. + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, NAME, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     ID
      + * 
      + * [version-no]
      + *     VERSIONNO
      + * 
      + * [foreign-table]
      + *     
      + * 
      + * [referrer-table]
      + *     FACILITY
      + * 
      + * [foreign-property]
      + *     
      + * 
      + * [referrer-property]
      + *     facilityList
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsFacilityGroupBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityGroupDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "FACILITY_GROUP"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return FacilityGroupDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public FacilityGroupDbm getMyDBMeta() { + return FacilityGroupDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public FacilityGroupDao getMyDao() { + return _dao; + } + + public void setMyDao(FacilityGroupDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public FacilityGroup newMyEntity() { + return new FacilityGroup(); + } + + public FacilityGroupCB newMyConditionBean() { + return new FacilityGroupCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of FacilityGroup. (NotNull) + * @return The selected count. + */ + public int selectCount(FacilityGroupCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of FacilityGroup. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public FacilityGroup selectEntity(final FacilityGroupCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + FacilityGroupCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of FacilityGroup. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public FacilityGroup selectEntityWithDeletedCheck(final FacilityGroupCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + FacilityGroupCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public FacilityGroup selectByPKValueWithDeletedCheck(Integer id) { + FacilityGroup entity = new FacilityGroup(); + entity.setId(id); + final FacilityGroupCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of FacilityGroup. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList(FacilityGroupCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of FacilityGroup. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage(final FacilityGroupCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of FacilityGroup. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + FacilityGroupCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + /** + * Load referrer of facilityList with the setupper for condition-bean of + * referrer.
      About internal policy, the value of primary key(and + * others too) is treated as case-insensitive.
      The condition-bean + * that the setupper provides have settings before you touch it. It is as + * follows: + * + *
      +     * cb.query().setGroupId_InScope(pkList);
      +     * cb.query().addOrderBy_GroupId_Asc();
      +     * 
      + * + * @param facilityGroupList The entity list of facilityGroup. (NotNull) + * @param conditionBeanSetupper The instance of referrer condition-bean + * setupper for registering referrer condition. (NotNull) + */ + public void loadFacilityList(List facilityGroupList, + ConditionBeanSetupper conditionBeanSetupper) { + assertObjectNotNull("facilityGroupList", + facilityGroupList); + assertObjectNotNull("conditionBeanSetupper", + conditionBeanSetupper); + if (facilityGroupList.isEmpty()) { + return; + } + loadFacilityList(facilityGroupList, + new LoadReferrerOption( + conditionBeanSetupper)); + } + + /** + * {Refer to overload method that has an argument of condition-bean + * setupper.} + * + * @param facilityGroupList The entity list of facilityGroup. (NotNull) + * @param loadReferrerOption The option of load-referrer. (NotNull) + */ + public void loadFacilityList(List facilityGroupList, + LoadReferrerOption loadReferrerOption) { + assertObjectNotNull("facilityGroupList", + facilityGroupList); + assertObjectNotNull("loadReferrerOption", + loadReferrerOption); + if (facilityGroupList.isEmpty()) { + return; + } + final FacilityBhv referrerBhv = xgetBSFLR().select(FacilityBhv.class); + helpLoadReferrerInternally( + facilityGroupList, + loadReferrerOption, + new InternalLoadReferrerCallback() { + public Integer callbackBase_getPrimaryKeyValue( + FacilityGroup entity) { + return entity.getId(); + } + + public void callbackBase_setReferrerList( + FacilityGroup entity, List referrerList) { + entity.setFacilityList(referrerList); + } + + public FacilityCB callbackReferrer_newMyConditionBean() { + return referrerBhv.newMyConditionBean(); + } + + public void callbackReferrer_queryForeignKeyInScope( + FacilityCB cb, List pkList) { + cb.query().setGroupId_InScope(pkList); + } + + public void callbackReferrer_queryAddOrderByForeignKeyAsc( + FacilityCB cb) { + cb.query().addOrderBy_GroupId_Asc(); + } + + public List callbackReferrer_selectList( + FacilityCB cb) { + return referrerBhv.selectList(cb); + } + + public Integer callbackReferrer_getForeignKeyValue( + Facility entity) { + return entity.getGroupId(); + } + + public void callbackReferrer_setForeignEntity( + Facility referrerEntity, FacilityGroup baseEntity) { + referrerEntity.setFacilityGroup(baseEntity); + } + }); + } + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param facilityGroup The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(FacilityGroup facilityGroup) { + assertEntityNotNull(facilityGroup); + delegateInsert(facilityGroup); + } + + @Override + protected void doCreate(Entity facilityGroup) { + insert((FacilityGroup) facilityGroup); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param facilityGroup The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final FacilityGroup facilityGroup) { + helpUpdateInternally(facilityGroup, + new InternalUpdateCallback() { + public int callbackDelegateUpdate(FacilityGroup entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((FacilityGroup) entity); + } + + /** + * Update the entity non-strictly modified-only. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param facilityGroup The entity of update target. (NotNull) + * {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void updateNonstrict(final FacilityGroup facilityGroup) { + helpUpdateNonstrictInternally(facilityGroup, + new InternalUpdateNonstrictCallback() { + public int callbackDelegateUpdateNonstrict( + FacilityGroup entity) { + return delegateUpdateNonstrict(entity); + } + }); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + updateNonstrict((FacilityGroup) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param facilityGroup The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate(final FacilityGroup facilityGroup) { + helpInsertOrUpdateInternally( + facilityGroup, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(FacilityGroup entity) { + insert(entity); + } + + public void callbackUpdate(FacilityGroup entity) { + update(entity); + } + + public FacilityGroupCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(FacilityGroupCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity facilityGroup) { + insertOrUpdate((FacilityGroup) facilityGroup); + } + + /** + * Insert or update the entity non-strictly modified-only. + * {NonConcurrencyControl(when update)} + * + * @param facilityGroup The entity of insert or update target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdateNonstrict(FacilityGroup facilityGroup) { + helpInsertOrUpdateInternally(facilityGroup, + new InternalInsertOrUpdateNonstrictCallback() { + public void callbackInsert(FacilityGroup entity) { + insert(entity); + } + + public void callbackUpdateNonstrict(FacilityGroup entity) { + updateNonstrict(entity); + } + }); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdateNonstrict((FacilityGroup) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param facilityGroup The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyUpdatedException + * When the entity has already been updated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(FacilityGroup facilityGroup) { + helpDeleteInternally(facilityGroup, + new InternalDeleteCallback() { + public int callbackDelegateDelete(FacilityGroup entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity facilityGroup) { + delete((FacilityGroup) facilityGroup); + } + + /** + * Delete the entity non-strictly. {UpdateCountZeroException, + * NonConcurrencyControl} + * + * @param facilityGroup Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrict(FacilityGroup facilityGroup) { + helpDeleteNonstrictInternally(facilityGroup, + new InternalDeleteNonstrictCallback() { + public int callbackDelegateDeleteNonstrict( + FacilityGroup entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + /** + * Delete the entity non-strictly ignoring deleted. + * {UpdateCountZeroException, NonConcurrencyControl} + * + * @param facilityGroup Entity. (NotNull) {PrimaryKeyRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void deleteNonstrictIgnoreDeleted(FacilityGroup facilityGroup) { + helpDeleteNonstrictIgnoreDeletedInternally( + facilityGroup, + new InternalDeleteNonstrictIgnoreDeletedCallback() { + public int callbackDelegateDeleteNonstrict( + FacilityGroup entity) { + return delegateDeleteNonstrict(entity); + } + }); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityGroupList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert(List facilityGroupList) { + assertObjectNotNull("facilityGroupList", facilityGroupList); + return delegateInsertList(facilityGroupList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
      This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param facilityGroupList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchUpdate(List facilityGroupList) { + assertObjectNotNull("facilityGroupList", facilityGroupList); + return delegateUpdateList(facilityGroupList); + } + + /** + * Batch update the list non-strictly. All columns are update target. {NOT + * modified only}
      This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityGroupList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdateNonstrict(List facilityGroupList) { + assertObjectNotNull("facilityGroupList", facilityGroupList); + return delegateUpdateListNonstrict(facilityGroupList); + } + + /** + * Batch delete the list.
      This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityGroupList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.BatchEntityAlreadyUpdatedException + * When the entity has already been updated. This exception + * extends ${glEntityAlreadyUpdateException}. + */ + public int[] batchDelete(List facilityGroupList) { + assertObjectNotNull("facilityGroupList", facilityGroupList); + return delegateDeleteList(facilityGroupList); + } + + /** + * Batch delete the list non-strictly.
      This method use 'Batch Update' + * of java.sql.PreparedStatement. + * + * @param facilityGroupList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDeleteNonstrict(List facilityGroupList) { + assertObjectNotNull("facilityGroupList", facilityGroupList); + return delegateDeleteListNonstrict(facilityGroupList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param facilityGroup Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(FacilityGroup facilityGroup, FacilityGroupCB cb) { + assertObjectNotNull("facilityGroup", facilityGroup); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(facilityGroup); + filterEntityOfUpdate(facilityGroup); + assertEntityOfUpdate(facilityGroup); + return getMyDao().updateByQuery(cb, facilityGroup); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(FacilityGroupCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(FacilityGroupCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList(FacilityGroupCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(FacilityGroup e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(FacilityGroup e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateUpdateNonstrict(FacilityGroup e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateNonstrictModifiedOnly(e); + } + + protected int delegateDelete(FacilityGroup e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int delegateDeleteNonstrict(FacilityGroup e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().deleteNonstrict(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("facilityGroupList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("facilityGroupList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateUpdateListNonstrict(List ls) { + assertObjectNotNull("facilityGroupList", ls); + return getMyDao().updateListNonstrict( + helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("facilityGroupList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + protected int[] delegateDeleteListNonstrict(List ls) { + assertObjectNotNull("facilityGroupList", ls); + return getMyDao().deleteListNonstrict( + helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return !(downcast(entity).getVersionno() + "").equals("null");// For + // primitive + // type + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected FacilityGroup downcast(Entity entity) { + return helpDowncastInternally(entity, FacilityGroup.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityGroupBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityScheduleMappingBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,625 @@ +package jp.sf.pal.scheduler.db.bsbhv; + +import java.util.List; + +import jp.sf.pal.scheduler.db.allcommon.DaoReadable; +import jp.sf.pal.scheduler.db.allcommon.DaoWritable; +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.bhv.setup.ValueLabelSetupper; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ListResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingHandler; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingInvoker; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ResultBeanBuilder; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.bsentity.dbmeta.FacilityScheduleMappingDbm; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.exdao.FacilityScheduleMappingDao; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; + +/** + * The behavior of FACILITY_SCHEDULE_MAPPING. + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, SCHEDULE_ID, FACILITY_ID
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     ID
      + * 
      + * [version-no]
      + *     
      + * 
      + * [foreign-table]
      + *     EVENT_SCHEDULE, FACILITY
      + * 
      + * [referrer-table]
      + *     
      + * 
      + * [foreign-property]
      + *     eventSchedule, facility
      + * 
      + * [referrer-property]
      + * 
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ +public abstract class BsFacilityScheduleMappingBhv extends + jp.sf.pal.scheduler.db.allcommon.bhv.AbstractBehaviorWritable { + + //========================================================================== + // ========= + // Definition + // ========== + /* df:BehaviorQueryPathBegin */ + /* df:BehaviorQueryPathEnd */ + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityScheduleMappingDao _dao; + + //========================================================================== + // ========= + // Table name + // ========== + /** @return The name on database of table. (NotNull) */ + public String getTableDbName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + /** @return The meta data of the database. (NotNull) */ + public DBMeta getDBMeta() { + return FacilityScheduleMappingDbm.getInstance(); + } + + /** @return The meta data of the database as my table type. (NotNull) */ + public FacilityScheduleMappingDbm getMyDBMeta() { + return FacilityScheduleMappingDbm.getInstance(); + } + + //========================================================================== + // ========= + // Dao Accessor + // ============ + public FacilityScheduleMappingDao getMyDao() { + return _dao; + } + + public void setMyDao(FacilityScheduleMappingDao dao) { + assertObjectNotNull("dao", dao); + _dao = dao; + } + + public DaoReadable getDaoReadable() { + return getMyDao(); + } + + public DaoWritable getDaoWritable() { + return getMyDao(); + } + + //========================================================================== + // ========= + // New Instance + // ============ + public Entity newEntity() { + return newMyEntity(); + } + + public ConditionBean newConditionBean() { + return newMyConditionBean(); + } + + public FacilityScheduleMapping newMyEntity() { + return new FacilityScheduleMapping(); + } + + public FacilityScheduleMappingCB newMyConditionBean() { + return new FacilityScheduleMappingCB(); + } + + //========================================================================== + // ========= + // Count Select + // ============ + /** + * Select the count of the condition-bean. {IgnorePagingCondition} + * + * @param cb The condition-bean of FacilityScheduleMapping. (NotNull) + * @return The selected count. + */ + public int selectCount(FacilityScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return delegateSelectCount(cb); + } + + //========================================================================== + // ========= + // Entity Select + // ============= + /** + * Select the entity by the condition-bean. + * + * @param cb The condition-bean of FacilityScheduleMapping. (NotNull) + * @return The selected entity. (Nullalble) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public FacilityScheduleMapping selectEntity( + final FacilityScheduleMappingCB cb) { + return helpSelectEntityInternally( + cb, + new InternalSelectEntityCallback() { + public List callbackSelectList( + FacilityScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /** + * Select the entity by the condition-bean with deleted check. + * + * @param cb The condition-bean of FacilityScheduleMapping. (NotNull) + * @return The selected entity. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public FacilityScheduleMapping selectEntityWithDeletedCheck( + final FacilityScheduleMappingCB cb) { + return helpSelectEntityWithDeletedCheckInternally( + cb, + new InternalSelectEntityWithDeletedCheckCallback() { + public List callbackSelectList( + FacilityScheduleMappingCB cb) { + return selectList(cb); + } + }); + } + + /* + * (non-javadoc) Select the entity with deleted check. {by primary-key + * value} + * @param primaryKey The keys of primary. + * @return The selected entity. (NotNull) + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception + * jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException When + * the entity has been duplicated. + */ + public FacilityScheduleMapping selectByPKValueWithDeletedCheck(Long id) { + FacilityScheduleMapping entity = new FacilityScheduleMapping(); + entity.setId(id); + final FacilityScheduleMappingCB cb = newMyConditionBean(); + cb.acceptPrimaryKeyMapString(getDBMeta().extractPrimaryKeyMapString( + entity)); + return selectEntityWithDeletedCheck(cb); + } + + //========================================================================== + // ========= + // List Select + // =========== + /** + * Select the list as result bean. + * + * @param cb The condition-bean of FacilityScheduleMapping. (NotNull) + * @return The result bean of selected list. (NotNull) + */ + public ListResultBean selectList( + FacilityScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return new ResultBeanBuilder(getTableDbName()) + .buildListResultBean(cb, delegateSelectList(cb)); + } + + //========================================================================== + // ========= + // Page Select + // =========== + /** + * Select the page as result bean. + * + * @param cb The condition-bean of FacilityScheduleMapping. (NotNull) + * @return The result bean of selected page. (NotNull) + */ + public PagingResultBean selectPage( + final FacilityScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + final PagingInvoker invoker = new PagingInvoker( + getTableDbName()); + final PagingHandler handler = new PagingHandler() { + public PagingBean getPagingBean() { + return cb; + } + + public int count() { + return selectCount(cb); + } + + public List paging() { + return selectList(cb); + } + }; + return invoker.invokePaging(handler); + } + + //========================================================================== + // ========= + // Various Select + // ============== + /** + * Select the list of value-label. + * + * @param cb The condition-bean of FacilityScheduleMapping. (NotNull) + * @param valueLabelSetupper The setupper of value-label. (NotNull) + * @return The list of value-label. (NotNull) + */ + public List> selectValueLabelList( + FacilityScheduleMappingCB cb, + ValueLabelSetupper valueLabelSetupper) { + return createValueLabelList(selectList(cb), valueLabelSetupper); + } + + //========================================================================== + // ========= + // Load Referrer + // ============= + + //========================================================================== + // ========= + // Pullout Foreign + // =============== + /** + * Pull out the list of foreign table 'EventSchedule'. + * + * @param facilityScheduleMappingList The list of facilityScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutEventSchedule( + List facilityScheduleMappingList) { + return helpPulloutInternally( + facilityScheduleMappingList, + new InternalPulloutCallback() { + public EventSchedule callbackGetForeignEntity( + FacilityScheduleMapping entity) { + return entity.getEventSchedule(); + } + }); + } + + /** + * Pull out the list of foreign table 'Facility'. + * + * @param facilityScheduleMappingList The list of facilityScheduleMapping. + * (NotNull) + * @return The list of foreign table. (NotNull) + */ + public List pulloutFacility( + List facilityScheduleMappingList) { + return helpPulloutInternally( + facilityScheduleMappingList, + new InternalPulloutCallback() { + public Facility callbackGetForeignEntity( + FacilityScheduleMapping entity) { + return entity.getFacility(); + } + }); + } + + //========================================================================== + // ========= + // Entity Update + // ============= + /** + * Insert the entity. + * + * @param facilityScheduleMapping The entity of insert target. (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insert(FacilityScheduleMapping facilityScheduleMapping) { + assertEntityNotNull(facilityScheduleMapping); + delegateInsert(facilityScheduleMapping); + } + + @Override + protected void doCreate(Entity facilityScheduleMapping) { + insert((FacilityScheduleMapping) facilityScheduleMapping); + } + + /** + * Update the entity modified-only. {UpdateCountZeroException, + * ConcurrencyControl} + * + * @param facilityScheduleMapping The entity of update target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void update(final FacilityScheduleMapping facilityScheduleMapping) { + helpUpdateInternally(facilityScheduleMapping, + new InternalUpdateCallback() { + public int callbackDelegateUpdate( + FacilityScheduleMapping entity) { + return delegateUpdate(entity); + } + }); + } + + @Override + protected void doModify(Entity entity) { + update((FacilityScheduleMapping) entity); + } + + @Override + protected void doModifyNonstrict(Entity entity) { + update((FacilityScheduleMapping) entity); + } + + /** + * Insert or update the entity modified-only. {ConcurrencyControl(when + * update)} + * + * @param facilityScheduleMapping The entity of insert or update target. + * (NotNull) + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyExistsException + * When the entity already exists. (Unique Constraint + * Violation) + */ + public void insertOrUpdate( + final FacilityScheduleMapping facilityScheduleMapping) { + helpInsertOrUpdateInternally( + facilityScheduleMapping, + new InternalInsertOrUpdateCallback() { + public void callbackInsert(FacilityScheduleMapping entity) { + insert(entity); + } + + public void callbackUpdate(FacilityScheduleMapping entity) { + update(entity); + } + + public FacilityScheduleMappingCB callbackNewMyConditionBean() { + return newMyConditionBean(); + } + + public int callbackSelectCount(FacilityScheduleMappingCB cb) { + return selectCount(cb); + } + }); + } + + @Override + protected void doCreateOrUpdate(Entity facilityScheduleMapping) { + insertOrUpdate((FacilityScheduleMapping) facilityScheduleMapping); + } + + @Override + protected void doCreateOrUpdateNonstrict(Entity entity) { + insertOrUpdate((FacilityScheduleMapping) entity); + } + + /** + * Delete the entity. {UpdateCountZeroException, ConcurrencyControl} + * + * @param facilityScheduleMapping The entity of delete target. (NotNull) + * {PrimaryKeyRequired, ConcurrencyColumnRequired} + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityDuplicatedException + * When the entity has been duplicated. + */ + public void delete(FacilityScheduleMapping facilityScheduleMapping) { + helpDeleteInternally(facilityScheduleMapping, + new InternalDeleteCallback() { + public int callbackDelegateDelete( + FacilityScheduleMapping entity) { + return delegateDelete(entity); + } + }); + } + + @Override + protected void doRemove(Entity facilityScheduleMapping) { + delete((FacilityScheduleMapping) facilityScheduleMapping); + } + + //========================================================================== + // ========= + // Batch Update + // ============ + /** + * Batch insert the list. This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityScheduleMappingList The list of the entity. (NotNull) + * @return The array of inserted count. + */ + public int[] batchInsert( + List facilityScheduleMappingList) { + assertObjectNotNull("facilityScheduleMappingList", + facilityScheduleMappingList); + return delegateInsertList(facilityScheduleMappingList); + } + + /** + * Batch update the list. All columns are update target. {NOT modified only} + *
      This method use 'Batch Update' of java.sql.PreparedStatement. + * + * @param facilityScheduleMappingList The list of the entity. (NotNull) + * @return The array of updated count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchUpdate( + List facilityScheduleMappingList) { + assertObjectNotNull("facilityScheduleMappingList", + facilityScheduleMappingList); + return delegateUpdateList(facilityScheduleMappingList); + } + + /** + * Batch delete the list.
      This method use 'Batch Update' of + * java.sql.PreparedStatement. + * + * @param facilityScheduleMappingList The list of the entity. (NotNull) + * @return The array of deleted count. + * @exception jp.sf.pal.scheduler.db.allcommon.exception.EntityAlreadyDeletedException + * When the entity has already been deleted. + */ + public int[] batchDelete( + List facilityScheduleMappingList) { + assertObjectNotNull("facilityScheduleMappingList", + facilityScheduleMappingList); + return delegateDeleteList(facilityScheduleMappingList); + } + + //========================================================================== + // ========= + // Query Update + // ============ + /** + * Query update the several entities. {NoConcurrencyControl} + * + * @param facilityScheduleMapping Entity. (NotNull) {PrimaryKeyNotRequired} + * @param cb Condition-bean. (NotNull) + * @return The updated count. + */ + public int queryUpdate(FacilityScheduleMapping facilityScheduleMapping, + FacilityScheduleMappingCB cb) { + assertObjectNotNull("facilityScheduleMapping", facilityScheduleMapping); + assertConditionBeanNotNull(cb); + setupCommonColumnOfUpdateIfNeeds(facilityScheduleMapping); + filterEntityOfUpdate(facilityScheduleMapping); + assertEntityOfUpdate(facilityScheduleMapping); + return getMyDao().updateByQuery(cb, facilityScheduleMapping); + } + + /** + * Query delete the several entities. {NoConcurrencyControl} + * + * @param cb Condition-bean. (NotNull) + * @return The deleted count. + */ + public int queryDelete(FacilityScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().deleteByQuery(cb); + } + + //========================================================================== + // ========= + // Various Update + // ============== + + //========================================================================== + // ========= + // Delegate Method + // =============== + // ----------------------------------------------------- + // Select + // ------ + protected int delegateSelectCount(FacilityScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectCount(cb); + } + + protected List delegateSelectList( + FacilityScheduleMappingCB cb) { + assertConditionBeanNotNull(cb); + return getMyDao().selectList(cb); + } + + // ----------------------------------------------------- + // Update + // ------ + protected int delegateInsert(FacilityScheduleMapping e) { + if (!processBeforeInsert(e)) { + return 1; + } + return getMyDao().insert(e); + } + + protected int delegateUpdate(FacilityScheduleMapping e) { + if (!processBeforeUpdate(e)) { + return 1; + } + return getMyDao().updateModifiedOnly(e); + } + + protected int delegateDelete(FacilityScheduleMapping e) { + if (!processBeforeDelete(e)) { + return 1; + } + return getMyDao().delete(e); + } + + protected int[] delegateInsertList(List ls) { + assertObjectNotNull("facilityScheduleMappingList", ls); + return getMyDao().insertList(helpFilterBeforeInsertInternally(ls)); + } + + protected int[] delegateUpdateList(List ls) { + assertObjectNotNull("facilityScheduleMappingList", ls); + return getMyDao().updateList(helpFilterBeforeUpdateInternally(ls)); + } + + protected int[] delegateDeleteList(List ls) { + assertObjectNotNull("facilityScheduleMappingList", ls); + return getMyDao().deleteList(helpFilterBeforeDeleteInternally(ls)); + } + + //========================================================================== + // ========= + // Optimistic Lock Info + // ==================== + @Override + protected boolean hasVersionNoValue(Entity entity) { + return false; + } + + @Override + protected boolean hasUpdateDateValue(Entity entity) { + return false; + } + + //========================================================================== + // ========= + // Helper + // ====== + protected FacilityScheduleMapping downcast(Entity entity) { + return helpDowncastInternally(entity, FacilityScheduleMapping.class); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsbhv/BsFacilityScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityContentDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,37 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.FacilityContentCB; +import jp.sf.pal.scheduler.db.exentity.FacilityContent; + +/** + * The DAO interface of FACILITY_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsFacilityContentDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = FacilityContent.class; // For S2Dao + + public int selectCount(FacilityContentCB cb); + + public List selectList(FacilityContentCB cb); + + int insert(FacilityContent entity); + + int updateModifiedOnly(FacilityContent entity); + + int delete(FacilityContent entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(FacilityContentCB cb, FacilityContent entity); + + int[] deleteList(List entityList); + + int deleteByQuery(FacilityContentCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityContentDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.exentity.Facility; + +/** + * The DAO interface of FACILITY. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsFacilityDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = Facility.class; // For S2Dao + + public int selectCount(FacilityCB cb); + + public List selectList(FacilityCB cb); + + int insert(Facility entity); + + int updateModifiedOnly(Facility entity); + + int updateNonstrictModifiedOnly(Facility entity); + + int delete(Facility entity); + + int deleteNonstrict(Facility entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(FacilityCB cb, Facility entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(FacilityCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityGroupDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityGroupDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityGroupDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; + +/** + * The DAO interface of FACILITY_GROUP. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsFacilityGroupDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = FacilityGroup.class; // For S2Dao + + public int selectCount(FacilityGroupCB cb); + + public List selectList(FacilityGroupCB cb); + + int insert(FacilityGroup entity); + + int updateModifiedOnly(FacilityGroup entity); + + int updateNonstrictModifiedOnly(FacilityGroup entity); + + int delete(FacilityGroup entity); + + int deleteNonstrict(FacilityGroup entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int[] updateListNonstrict(List entityList); + + int updateByQuery(FacilityGroupCB cb, FacilityGroup entity); + + int[] deleteList(List entityList); + + int[] deleteListNonstrict(List entityList); + + int deleteByQuery(FacilityGroupCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityGroupDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityScheduleMappingDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,38 @@ +package jp.sf.pal.scheduler.db.bsdao; + +import java.util.List; + +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; + +/** + * The DAO interface of FACILITY_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ +public interface BsFacilityScheduleMappingDao extends + jp.sf.pal.scheduler.db.allcommon.DaoWritable { + + public Class BEAN = FacilityScheduleMapping.class; // For S2Dao + + public int selectCount(FacilityScheduleMappingCB cb); + + public List selectList(FacilityScheduleMappingCB cb); + + int insert(FacilityScheduleMapping entity); + + int updateModifiedOnly(FacilityScheduleMapping entity); + + int delete(FacilityScheduleMapping entity); + + int[] insertList(List entityList); + + int[] updateList(List entityList); + + int updateByQuery(FacilityScheduleMappingCB cb, + FacilityScheduleMapping entity); + + int[] deleteList(List entityList); + + int deleteByQuery(FacilityScheduleMappingCB cb); +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsdao/BsFacilityScheduleMappingDao.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsEventSchedule.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -9,6 +9,7 @@ import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; /** * The entity of EVENT_SCHEDULE that the type is TABLE.
      @@ -33,13 +34,13 @@ * * * [referrer-table] - * EVENT_SCHEDULE_CONTENT, EVENT_SCHEDULE_MAPPING + * EVENT_SCHEDULE_CONTENT, EVENT_SCHEDULE_MAPPING, FACILITY_SCHEDULE_MAPPING * * [foreign-property] * eventScheduleContentAsOne * * [referrer-property] - * eventScheduleMappingList + * eventScheduleMappingList, facilityScheduleMappingList * * * @author DBFlute(AutoGenerator) @@ -237,6 +238,39 @@ _childrenEventScheduleMappingList = eventScheduleMappingList; } + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [facilityScheduleMappingList] + // * * * * * * * * */ + /** FACILITY_SCHEDULE_MAPPING as 'facilityScheduleMappingList'. */ + protected List _childrenFacilityScheduleMappingList; + + /** + * FACILITY_SCHEDULE_MAPPING as 'facilityScheduleMappingList'. {without + * lazy-load}
      + * + * @return The entity list of referrer property + * 'facilityScheduleMappingList'. (NotNull: If it's not loaded yet, + * initializes the list instance of referrer as empty and returns + * it.) + */ + public List getFacilityScheduleMappingList() { + if (_childrenFacilityScheduleMappingList == null) { + _childrenFacilityScheduleMappingList = new ArrayList(); + } + return _childrenFacilityScheduleMappingList; + } + + /** + * FACILITY_SCHEDULE_MAPPING as 'facilityScheduleMappingList'. + * + * @param facilityScheduleMappingList The entity list of referrer property + * 'facilityScheduleMappingList'. (Nullable) + */ + public void setFacilityScheduleMappingList( + List facilityScheduleMappingList) { + _childrenFacilityScheduleMappingList = facilityScheduleMappingList; + } + //========================================================================== // ========= // Determination Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacility.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacility.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacility.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,601 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.FacilityContent; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; + +/** + * The entity of FACILITY that the type is TABLE.
      + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, NAME, SORT_ORDER, GROUP_ID, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     ID
      + * 
      + * [version-no]
      + *     VERSIONNO
      + * 
      + * [foreign-table]
      + *     FACILITY_GROUP
      + * 
      + * [referrer-table]
      + *     FACILITY_CONTENT, FACILITY_SCHEDULE_MAPPING
      + * 
      + * [foreign-property]
      + *     facilityGroup, facilityContentAsOne
      + * 
      + * [referrer-property]
      + *     facilityScheduleMappingList
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsFacility implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is FACILITY. */ + public static final String TABLE = "FACILITY"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[1]} */ + protected Integer _sortOrder; + + /** GROUP_ID: {NotNull : INTEGER : FK to FACILITY_GROUP} */ + protected Integer _groupId; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacility() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "facility"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [facilityGroup] + // * * * * * * * * */ + public static final int facilityGroup_RELNO = 0; + + public static final String facilityGroup_RELKEYS = "GROUP_ID:ID"; + + /** FACILITY_GROUP as 'facilityGroup'. */ + protected FacilityGroup _parentFacilityGroup; + + /** + * FACILITY_GROUP as 'facilityGroup'. {without lazy-load} + * + * @return The entity of foreign property 'facilityGroup'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public FacilityGroup getFacilityGroup() { + return _parentFacilityGroup; + } + + /** + * FACILITY_GROUP as 'facilityGroup'. + * + * @param facilityGroup The entity of foreign property 'facilityGroup'. + * (Nullable) + */ + public void setFacilityGroup(FacilityGroup facilityGroup) { + _parentFacilityGroup = facilityGroup; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [facilityContentAsOne] + // * * * * * * * * */ + public static final int facilityContentAsOne_RELNO = 1; + + public static final String facilityContentAsOne_RELKEYS = "ID:ID"; + + /** FACILITY_CONTENT as 'facilityContentAsOne'. */ + protected FacilityContent _childrenfacilityContentAsOne; + + /** + * FACILITY_CONTENT as 'facilityContentAsOne'. {without lazy-load}
      + * + * @return the entity of foreign property(referrer-as-one) + * 'facilityContentAsOne'. (Nullable: If the foreign key does not + * have 'NotNull' constraint, please check null.) + */ + public FacilityContent getFacilityContentAsOne() { + return _childrenfacilityContentAsOne; + } + + /** + * FACILITY_CONTENT as 'facilityContentAsOne'. + * + * @param facilityContentAsOne The entity of foreign + * property(referrer-as-one) 'facilityContentAsOne'. (Nullable) + */ + public void setFacilityContentAsOne(FacilityContent facilityContentAsOne) { + _childrenfacilityContentAsOne = facilityContentAsOne; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [facilityScheduleMappingList] + // * * * * * * * * */ + /** FACILITY_SCHEDULE_MAPPING as 'facilityScheduleMappingList'. */ + protected List _childrenFacilityScheduleMappingList; + + /** + * FACILITY_SCHEDULE_MAPPING as 'facilityScheduleMappingList'. {without + * lazy-load}
      + * + * @return The entity list of referrer property + * 'facilityScheduleMappingList'. (NotNull: If it's not loaded yet, + * initializes the list instance of referrer as empty and returns + * it.) + */ + public List getFacilityScheduleMappingList() { + if (_childrenFacilityScheduleMappingList == null) { + _childrenFacilityScheduleMappingList = new ArrayList(); + } + return _childrenFacilityScheduleMappingList; + } + + /** + * FACILITY_SCHEDULE_MAPPING as 'facilityScheduleMappingList'. + * + * @param facilityScheduleMappingList The entity list of referrer property + * 'facilityScheduleMappingList'. (Nullable) + */ + public void setFacilityScheduleMappingList( + List facilityScheduleMappingList) { + _childrenFacilityScheduleMappingList = facilityScheduleMappingList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsFacility)) { + return false; + } + BsFacility otherEntity = (BsFacility) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getGroupId()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
      + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
      + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
      + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
      + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[1]}
      + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[1]}
      + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** + * The column annotation for S2Dao. {NotNull : INTEGER : FK to + * FACILITY_GROUP} + */ + public static final String groupId_COLUMN = "GROUP_ID"; + + /** + * GROUP_ID: {NotNull : INTEGER : FK to FACILITY_GROUP}
      + * + * @return The value of the column 'GROUP_ID'. (Nullable) + */ + public Integer getGroupId() { + return _groupId; + } + + /** + * GROUP_ID: {NotNull : INTEGER : FK to FACILITY_GROUP}
      + * + * @param groupId The value of the column 'GROUP_ID'. (Nullable) + */ + public void setGroupId(Integer groupId) { + _modifiedProperties.addPropertyName("groupId"); + this._groupId = groupId; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
      + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
      + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
      + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
      + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
      + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
      + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
      + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
      + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
      + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
      + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
      + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
      + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
      + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
      + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacility.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityContent.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,293 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.Facility; + +/** + * The entity of FACILITY_CONTENT that the type is TABLE.
      + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, CONTENT
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     
      + * 
      + * [version-no]
      + *     
      + * 
      + * [foreign-table]
      + *     FACILITY
      + * 
      + * [referrer-table]
      + *     
      + * 
      + * [foreign-property]
      + *     facility
      + * 
      + * [referrer-property]
      + * 
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsFacilityContent implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is FACILITY_CONTENT. */ + public static final String TABLE = "FACILITY_CONTENT"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : NotNull : INTEGER : FK to FACILITY} */ + protected Integer _id; + + /** CONTENT: {VARCHAR(1000)} */ + protected String _content; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityContent() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_CONTENT"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "facilityContent"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [facility] + // * * * * * * * * */ + public static final int facility_RELNO = 0; + + public static final String facility_RELKEYS = "ID:ID"; + + /** FACILITY as 'facility'. */ + protected Facility _parentFacility; + + /** + * FACILITY as 'facility'. {without lazy-load} + * + * @return The entity of foreign property 'facility'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Facility getFacility() { + return _parentFacility; + } + + /** + * FACILITY as 'facility'. + * + * @param facility The entity of foreign property 'facility'. (Nullable) + */ + public void setFacility(Facility facility) { + _parentFacility = facility; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsFacilityContent)) { + return false; + } + BsFacilityContent otherEntity = (BsFacilityContent) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getContent()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** + * The column annotation for S2Dao. {PK : NotNull : INTEGER : FK to + * FACILITY} + */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : NotNull : INTEGER : FK to FACILITY}
      + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : NotNull : INTEGER : FK to FACILITY}
      + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {VARCHAR(1000)} */ + public static final String content_COLUMN = "CONTENT"; + + /** + * CONTENT: {VARCHAR(1000)}
      + * + * @return The value of the column 'CONTENT'. (Nullable) + */ + public String getContent() { + return _content; + } + + /** + * CONTENT: {VARCHAR(1000)}
      + * + * @param content The value of the column 'CONTENT'. (Nullable) + */ + public void setContent(String content) { + _modifiedProperties.addPropertyName("content"); + this._content = content; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityGroup.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityGroup.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityGroup.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,505 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.Facility; + +/** + * The entity of FACILITY_GROUP that the type is TABLE.
      + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, NAME, SORT_ORDER, CREATED_TIME, CREATED_BY, UPDATED_TIME, UPDATED_BY, DELETED_TIME, DELETED_BY, VERSIONNO
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     ID
      + * 
      + * [version-no]
      + *     VERSIONNO
      + * 
      + * [foreign-table]
      + *     
      + * 
      + * [referrer-table]
      + *     FACILITY
      + * 
      + * [foreign-property]
      + *     
      + * 
      + * [referrer-property]
      + *     facilityList
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsFacilityGroup implements Entity, java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is FACILITY_GROUP. */ + public static final String TABLE = "FACILITY_GROUP"; + + /** VERSION_NO-Annotation */ + public static final String VERSION_NO_PROPERTY = "versionno"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : INTEGER} */ + protected Integer _id; + + /** NAME: {NotNull : VARCHAR(100)} */ + protected String _name; + + /** SORT_ORDER: {NotNull : INTEGER : Default=[1]} */ + protected Integer _sortOrder; + + /** CREATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _createdTime; + + /** CREATED_BY: {NotNull : VARCHAR(255)} */ + protected String _createdBy; + + /** UPDATED_TIME: {NotNull : TIMESTAMP} */ + protected java.sql.Timestamp _updatedTime; + + /** UPDATED_BY: {NotNull : VARCHAR(255)} */ + protected String _updatedBy; + + /** DELETED_TIME: {TIMESTAMP} */ + protected java.sql.Timestamp _deletedTime; + + /** DELETED_BY: {VARCHAR(255)} */ + protected String _deletedBy; + + /** VERSIONNO: {NotNull : INTEGER : Default=[0]} */ + protected Integer _versionno; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityGroup() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_GROUP"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "facilityGroup"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + //========================================================================== + // ========= + // Referrer Property + // ================= + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Referrer Property = [facilityList] + // * * * * * * * * */ + /** FACILITY as 'facilityList'. */ + protected List _childrenFacilityList; + + /** + * FACILITY as 'facilityList'. {without lazy-load}
      + * + * @return The entity list of referrer property 'facilityList'. (NotNull: If + * it's not loaded yet, initializes the list instance of referrer as + * empty and returns it.) + */ + public List getFacilityList() { + if (_childrenFacilityList == null) { + _childrenFacilityList = new ArrayList(); + } + return _childrenFacilityList; + } + + /** + * FACILITY as 'facilityList'. + * + * @param facilityList The entity list of referrer property 'facilityList'. + * (Nullable) + */ + public void setFacilityList(List facilityList) { + _childrenFacilityList = facilityList; + } + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsFacilityGroup)) { + return false; + } + BsFacilityGroup otherEntity = (BsFacilityGroup) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getName()); + sb.append(delimiter).append(getSortOrder()); + sb.append(delimiter).append(getCreatedTime()); + sb.append(delimiter).append(getCreatedBy()); + sb.append(delimiter).append(getUpdatedTime()); + sb.append(delimiter).append(getUpdatedBy()); + sb.append(delimiter).append(getDeletedTime()); + sb.append(delimiter).append(getDeletedBy()); + sb.append(delimiter).append(getVersionno()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : INTEGER} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : INTEGER}
      + * + * @return The value of the column 'ID'. (Nullable) + */ + public Integer getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : INTEGER}
      + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Integer id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(100)} */ + public static final String name_COLUMN = "NAME"; + + /** + * NAME: {NotNull : VARCHAR(100)}
      + * + * @return The value of the column 'NAME'. (Nullable) + */ + public String getName() { + return _name; + } + + /** + * NAME: {NotNull : VARCHAR(100)}
      + * + * @param name The value of the column 'NAME'. (Nullable) + */ + public void setName(String name) { + _modifiedProperties.addPropertyName("name"); + this._name = name; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[1]} */ + public static final String sortOrder_COLUMN = "SORT_ORDER"; + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[1]}
      + * + * @return The value of the column 'SORT_ORDER'. (Nullable) + */ + public Integer getSortOrder() { + return _sortOrder; + } + + /** + * SORT_ORDER: {NotNull : INTEGER : Default=[1]}
      + * + * @param sortOrder The value of the column 'SORT_ORDER'. (Nullable) + */ + public void setSortOrder(Integer sortOrder) { + _modifiedProperties.addPropertyName("sortOrder"); + this._sortOrder = sortOrder; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String createdTime_COLUMN = "CREATED_TIME"; + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
      + * + * @return The value of the column 'CREATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getCreatedTime() { + return _createdTime; + } + + /** + * CREATED_TIME: {NotNull : TIMESTAMP}
      + * + * @param createdTime The value of the column 'CREATED_TIME'. (Nullable) + */ + public void setCreatedTime(java.sql.Timestamp createdTime) { + _modifiedProperties.addPropertyName("createdTime"); + this._createdTime = createdTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String createdBy_COLUMN = "CREATED_BY"; + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
      + * + * @return The value of the column 'CREATED_BY'. (Nullable) + */ + public String getCreatedBy() { + return _createdBy; + } + + /** + * CREATED_BY: {NotNull : VARCHAR(255)}
      + * + * @param createdBy The value of the column 'CREATED_BY'. (Nullable) + */ + public void setCreatedBy(String createdBy) { + _modifiedProperties.addPropertyName("createdBy"); + this._createdBy = createdBy; + } + + /** The column annotation for S2Dao. {NotNull : TIMESTAMP} */ + public static final String updatedTime_COLUMN = "UPDATED_TIME"; + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
      + * + * @return The value of the column 'UPDATED_TIME'. (Nullable) + */ + public java.sql.Timestamp getUpdatedTime() { + return _updatedTime; + } + + /** + * UPDATED_TIME: {NotNull : TIMESTAMP}
      + * + * @param updatedTime The value of the column 'UPDATED_TIME'. (Nullable) + */ + public void setUpdatedTime(java.sql.Timestamp updatedTime) { + _modifiedProperties.addPropertyName("updatedTime"); + this._updatedTime = updatedTime; + } + + /** The column annotation for S2Dao. {NotNull : VARCHAR(255)} */ + public static final String updatedBy_COLUMN = "UPDATED_BY"; + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
      + * + * @return The value of the column 'UPDATED_BY'. (Nullable) + */ + public String getUpdatedBy() { + return _updatedBy; + } + + /** + * UPDATED_BY: {NotNull : VARCHAR(255)}
      + * + * @param updatedBy The value of the column 'UPDATED_BY'. (Nullable) + */ + public void setUpdatedBy(String updatedBy) { + _modifiedProperties.addPropertyName("updatedBy"); + this._updatedBy = updatedBy; + } + + /** The column annotation for S2Dao. {TIMESTAMP} */ + public static final String deletedTime_COLUMN = "DELETED_TIME"; + + /** + * DELETED_TIME: {TIMESTAMP}
      + * + * @return The value of the column 'DELETED_TIME'. (Nullable) + */ + public java.sql.Timestamp getDeletedTime() { + return _deletedTime; + } + + /** + * DELETED_TIME: {TIMESTAMP}
      + * + * @param deletedTime The value of the column 'DELETED_TIME'. (Nullable) + */ + public void setDeletedTime(java.sql.Timestamp deletedTime) { + _modifiedProperties.addPropertyName("deletedTime"); + this._deletedTime = deletedTime; + } + + /** The column annotation for S2Dao. {VARCHAR(255)} */ + public static final String deletedBy_COLUMN = "DELETED_BY"; + + /** + * DELETED_BY: {VARCHAR(255)}
      + * + * @return The value of the column 'DELETED_BY'. (Nullable) + */ + public String getDeletedBy() { + return _deletedBy; + } + + /** + * DELETED_BY: {VARCHAR(255)}
      + * + * @param deletedBy The value of the column 'DELETED_BY'. (Nullable) + */ + public void setDeletedBy(String deletedBy) { + _modifiedProperties.addPropertyName("deletedBy"); + this._deletedBy = deletedBy; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : Default=[0]} */ + public static final String versionno_COLUMN = "VERSIONNO"; + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
      + * + * @return The value of the column 'VERSIONNO'. (Nullable) + */ + public Integer getVersionno() { + return _versionno; + } + + /** + * VERSIONNO: {NotNull : INTEGER : Default=[0]}
      + * + * @param versionno The value of the column 'VERSIONNO'. (Nullable) + */ + public void setVersionno(Integer versionno) { + _modifiedProperties.addPropertyName("versionno"); + this._versionno = versionno; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityGroup.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityScheduleMapping.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,355 @@ +package jp.sf.pal.scheduler.db.bsentity; + +import java.util.Set; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.DBMetaInstanceHandler; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; + +/** + * The entity of FACILITY_SCHEDULE_MAPPING that the type is TABLE.
      + * + *
      + * [primary-key]
      + *     ID
      + * 
      + * [column]
      + *     ID, SCHEDULE_ID, FACILITY_ID
      + * 
      + * [sequence]
      + *     
      + * 
      + * [identity]
      + *     ID
      + * 
      + * [version-no]
      + *     
      + * 
      + * [foreign-table]
      + *     EVENT_SCHEDULE, FACILITY
      + * 
      + * [referrer-table]
      + *     
      + * 
      + * [foreign-property]
      + *     eventSchedule, facility
      + * 
      + * [referrer-property]
      + * 
      + * 
      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class BsFacilityScheduleMapping implements Entity, + java.io.Serializable { + + //========================================================================== + // ========= + // Definition + // ========== + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + /** TABLE-Annotation for S2Dao. The value is FACILITY_SCHEDULE_MAPPING. */ + public static final String TABLE = "FACILITY_SCHEDULE_MAPPING"; + + /** ID-Annotation */ + public static final String id_ID = "identity"; + + //========================================================================== + // ========= + // Attribute + // ========= + // ----------------------------------------------------- + // Column + // ------ + /** ID: {PK : ID : NotNull : BIGINT} */ + protected Long _id; + + /** SCHEDULE_ID: {NotNull : BIGINT : FK to EVENT_SCHEDULE} */ + protected Long _scheduleId; + + /** FACILITY_ID: {NotNull : INTEGER : FK to FACILITY} */ + protected Integer _facilityId; + + // ----------------------------------------------------- + // Internal + // -------- + /** The attribute of entity modified properties. (for S2Dao) */ + protected EntityModifiedProperties _modifiedProperties = newEntityModifiedProperties(); + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityScheduleMapping() { + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() {// as JavaBeansRule + return "facilityScheduleMapping"; + } + + //========================================================================== + // ========= + // DBMeta + // ====== + public DBMeta getDBMeta() { + return DBMetaInstanceHandler.findDBMeta(getTableDbName()); + } + + //========================================================================== + // ========= + // Classification Classifying + // ========================== + //========================================================================== + // ========= + // Classification Determination + // ============================ + //========================================================================== + // ========= + // Classification Name/Alias + // ========================= + //========================================================================== + // ========= + // Foreign Property + // ================ + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [eventSchedule] + // * * * * * * * * */ + public static final int eventSchedule_RELNO = 0; + + public static final String eventSchedule_RELKEYS = "SCHEDULE_ID:ID"; + + /** EVENT_SCHEDULE as 'eventSchedule'. */ + protected EventSchedule _parentEventSchedule; + + /** + * EVENT_SCHEDULE as 'eventSchedule'. {without lazy-load} + * + * @return The entity of foreign property 'eventSchedule'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public EventSchedule getEventSchedule() { + return _parentEventSchedule; + } + + /** + * EVENT_SCHEDULE as 'eventSchedule'. + * + * @param eventSchedule The entity of foreign property 'eventSchedule'. + * (Nullable) + */ + public void setEventSchedule(EventSchedule eventSchedule) { + _parentEventSchedule = eventSchedule; + } + + // /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + // Foreign Property = [facility] + // * * * * * * * * */ + public static final int facility_RELNO = 1; + + public static final String facility_RELKEYS = "FACILITY_ID:ID"; + + /** FACILITY as 'facility'. */ + protected Facility _parentFacility; + + /** + * FACILITY as 'facility'. {without lazy-load} + * + * @return The entity of foreign property 'facility'. (Nullable: If the + * foreign key does not have 'NotNull' constraint, please check + * null.) + */ + public Facility getFacility() { + return _parentFacility; + } + + /** + * FACILITY as 'facility'. + * + * @param facility The entity of foreign property 'facility'. (Nullable) + */ + public void setFacility(Facility facility) { + _parentFacility = facility; + } + + //========================================================================== + // ========= + // Referrer Property + // ================= + + //========================================================================== + // ========= + // Determination + // ============= + public boolean hasPrimaryKeyValue() { + if (_id == null) { + return false; + } + return true; + } + + //========================================================================== + // ========= + // Modified Properties + // =================== + public Set getModifiedPropertyNames() { + return _modifiedProperties.getPropertyNames(); + } + + protected EntityModifiedProperties newEntityModifiedProperties() { + return new EntityModifiedProperties(); + } + + public void clearModifiedPropertyNames() { + _modifiedProperties.clear(); + } + + public boolean hasModification() { + return !_modifiedProperties.isEmpty(); + } + + //========================================================================== + // ========= + // Basic Override + // ============== + /** + * If the primary-key of the other is same as this one, returns true. + * + * @param other Other entity. + * @return Comparing result. + */ + public boolean equals(Object other) { + if (other == null || !(other instanceof BsFacilityScheduleMapping)) { + return false; + } + BsFacilityScheduleMapping otherEntity = (BsFacilityScheduleMapping) other; + if (!helpComparingValue(getId(), otherEntity.getId())) { + return false; + } + return true; + } + + protected boolean helpComparingValue(Object value1, Object value2) { + if (value1 == null && value2 == null) { + return true; + } + return value1 != null && value2 != null && value1.equals(value2); + } + + /** + * Calculates hash-code from primary-key. + * + * @return Hash-code from primary-keys. + */ + public int hashCode() { + int result = 17; + if (this.getId() != null) { + result = result + getId().hashCode(); + } + return result; + } + + /** + * @return The view string of columns. (NotNull) + */ + public String toString() { + String delimiter = ","; + StringBuilder sb = new StringBuilder(); + sb.append(delimiter).append(getId()); + sb.append(delimiter).append(getScheduleId()); + sb.append(delimiter).append(getFacilityId()); + if (sb.length() > 0) { + sb.delete(0, delimiter.length()); + } + sb.insert(0, "{").append("}"); + return sb.toString(); + } + + //========================================================================== + // ========= + // Accessor + // ======== + + /** The column annotation for S2Dao. {PK : ID : NotNull : BIGINT} */ + public static final String id_COLUMN = "ID"; + + /** + * ID: {PK : ID : NotNull : BIGINT}
      + * + * @return The value of the column 'ID'. (Nullable) + */ + public Long getId() { + return _id; + } + + /** + * ID: {PK : ID : NotNull : BIGINT}
      + * + * @param id The value of the column 'ID'. (Nullable) + */ + public void setId(Long id) { + _modifiedProperties.addPropertyName("id"); + this._id = id; + } + + /** + * The column annotation for S2Dao. {NotNull : BIGINT : FK to + * EVENT_SCHEDULE} + */ + public static final String scheduleId_COLUMN = "SCHEDULE_ID"; + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to EVENT_SCHEDULE}
      + * + * @return The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public Long getScheduleId() { + return _scheduleId; + } + + /** + * SCHEDULE_ID: {NotNull : BIGINT : FK to EVENT_SCHEDULE}
      + * + * @param scheduleId The value of the column 'SCHEDULE_ID'. (Nullable) + */ + public void setScheduleId(Long scheduleId) { + _modifiedProperties.addPropertyName("scheduleId"); + this._scheduleId = scheduleId; + } + + /** The column annotation for S2Dao. {NotNull : INTEGER : FK to FACILITY} */ + public static final String facilityId_COLUMN = "FACILITY_ID"; + + /** + * FACILITY_ID: {NotNull : INTEGER : FK to FACILITY}
      + * + * @return The value of the column 'FACILITY_ID'. (Nullable) + */ + public Integer getFacilityId() { + return _facilityId; + } + + /** + * FACILITY_ID: {NotNull : INTEGER : FK to FACILITY}
      + * + * @param facilityId The value of the column 'FACILITY_ID'. (Nullable) + */ + public void setFacilityId(Integer facilityId) { + _modifiedProperties.addPropertyName("facilityId"); + this._facilityId = facilityId; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/BsFacilityScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/EventScheduleDbm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -277,6 +277,13 @@ .getInstance(), map, false); } + public ReferrerInfo referrerFacilityScheduleMappingList() { + Map map = newLinkedHashMap(columnId(), + FacilityScheduleMappingDbm.getInstance().columnScheduleId()); + return cri("facilityScheduleMappingList", this, + FacilityScheduleMappingDbm.getInstance(), map, false); + } + //========================================================================== // ========= // Various Info Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityContentDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityContentDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityContentDbm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,280 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.FacilityContent; + +/** + * The DB meta of FACILITY_CONTENT. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContentDbm extends AbstractDBMeta { + + private static final FacilityContentDbm _instance = new FacilityContentDbm(); + + private FacilityContentDbm() { + } + + public static FacilityContentDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "FACILITY_CONTENT"; + } + + public String getTablePropertyName() { + return "facilityContent"; + } + + public String getTableSqlName() { + return "FACILITY_CONTENT"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnContent = cci("CONTENT", "content", + String.class, false, 1000, 0); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnContent() { + return _columnContent; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.FacilityContent"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.FacilityContentCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.FacilityContentDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.FacilityContentBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return FacilityContent.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public FacilityContent newMyEntity() { + return new FacilityContent(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignFacility() { + Map map = newLinkedHashMap(columnId(), + FacilityDbm.getInstance().columnId()); + return cfi("facility", this, FacilityDbm.getInstance(), map, 0, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((FacilityContent) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((FacilityContent) entity, columnValueMap, + _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsContent(), columnContent()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((FacilityContent) entity, value); + } + + public static class EpsId implements Eps { + public void setup(FacilityContent e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsContent implements Eps { + public void setup(FacilityContent e, Object v) { + e.setContent((String) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityContentDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityDbm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,427 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.Facility; + +/** + * The DB meta of FACILITY. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityDbm extends AbstractDBMeta { + + private static final FacilityDbm _instance = new FacilityDbm(); + + private FacilityDbm() { + } + + public static FacilityDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "FACILITY"; + } + + public String getTablePropertyName() { + return "facility"; + } + + public String getTableSqlName() { + return "FACILITY"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnGroupId = cci("GROUP_ID", "groupId", + Integer.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnGroupId() { + return _columnGroupId; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.Facility"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.FacilityCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.FacilityDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.FacilityBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return Facility.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public Facility newMyEntity() { + return new Facility(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignFacilityGroup() { + Map map = newLinkedHashMap(columnGroupId(), + FacilityGroupDbm.getInstance().columnId()); + return cfi("facilityGroup", this, FacilityGroupDbm.getInstance(), map, + 0, false); + } + + public ForeignInfo foreignFacilityContentAsOne() { + Map map = newLinkedHashMap(columnId(), + FacilityContentDbm.getInstance().columnId()); + return cfi("facilityContentAsOne", this, FacilityContentDbm + .getInstance(), map, 1, true); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerFacilityScheduleMappingList() { + Map map = newLinkedHashMap(columnId(), + FacilityScheduleMappingDbm.getInstance().columnFacilityId()); + return cri("facilityScheduleMappingList", this, + FacilityScheduleMappingDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((Facility) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((Facility) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsGroupId(), columnGroupId()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((Facility) entity, value); + } + + public static class EpsId implements Eps { + public void setup(Facility e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsName implements Eps { + public void setup(Facility e, Object v) { + e.setName((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(Facility e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsGroupId implements Eps { + public void setup(Facility e, Object v) { + e.setGroupId((Integer) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(Facility e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(Facility e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(Facility e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(Facility e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(Facility e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(Facility e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(Facility e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityGroupDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityGroupDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityGroupDbm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,398 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ReferrerInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; + +/** + * The DB meta of FACILITY_GROUP. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroupDbm extends AbstractDBMeta { + + private static final FacilityGroupDbm _instance = new FacilityGroupDbm(); + + private FacilityGroupDbm() { + } + + public static FacilityGroupDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "FACILITY_GROUP"; + } + + public String getTablePropertyName() { + return "facilityGroup"; + } + + public String getTableSqlName() { + return "FACILITY_GROUP"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Integer.class, true, null, + null); + + protected ColumnInfo _columnName = cci("NAME", "name", String.class, false, + 100, 0); + + protected ColumnInfo _columnSortOrder = cci("SORT_ORDER", "sortOrder", + Integer.class, false, null, null); + + protected ColumnInfo _columnCreatedTime = cci("CREATED_TIME", + "createdTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnCreatedBy = cci("CREATED_BY", "createdBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnUpdatedTime = cci("UPDATED_TIME", + "updatedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnUpdatedBy = cci("UPDATED_BY", "updatedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnDeletedTime = cci("DELETED_TIME", + "deletedTime", java.sql.Timestamp.class, false, null, null); + + protected ColumnInfo _columnDeletedBy = cci("DELETED_BY", "deletedBy", + String.class, false, 255, 0); + + protected ColumnInfo _columnVersionno = cci("VERSIONNO", "versionno", + Integer.class, false, null, null, OptimisticLockType.VERSION_NO); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnName() { + return _columnName; + } + + public ColumnInfo columnSortOrder() { + return _columnSortOrder; + } + + public ColumnInfo columnCreatedTime() { + return _columnCreatedTime; + } + + public ColumnInfo columnCreatedBy() { + return _columnCreatedBy; + } + + public ColumnInfo columnUpdatedTime() { + return _columnUpdatedTime; + } + + public ColumnInfo columnUpdatedBy() { + return _columnUpdatedBy; + } + + public ColumnInfo columnDeletedTime() { + return _columnDeletedTime; + } + + public ColumnInfo columnDeletedBy() { + return _columnDeletedBy; + } + + public ColumnInfo columnVersionno() { + return _columnVersionno; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.FacilityGroup"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.FacilityGroupCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.FacilityGroupDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.FacilityGroupBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return FacilityGroup.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public FacilityGroup newMyEntity() { + return new FacilityGroup(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + public ReferrerInfo referrerFacilityList() { + Map map = newLinkedHashMap(columnId(), + FacilityDbm.getInstance().columnGroupId()); + return cri("facilityList", this, FacilityDbm.getInstance(), map, false); + } + + //========================================================================== + // ========= + // Various Info + // ============ + public boolean hasVersionNo() { + return true; + } + + public ColumnInfo getVersionNoColumnInfo() { + return _columnVersionno; + } + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((FacilityGroup) entity, primaryKeyMap, _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((FacilityGroup) entity, columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsName(), columnName()); + setupEps(_epsMap, new EpsSortOrder(), columnSortOrder()); + setupEps(_epsMap, new EpsCreatedTime(), columnCreatedTime()); + setupEps(_epsMap, new EpsCreatedBy(), columnCreatedBy()); + setupEps(_epsMap, new EpsUpdatedTime(), columnUpdatedTime()); + setupEps(_epsMap, new EpsUpdatedBy(), columnUpdatedBy()); + setupEps(_epsMap, new EpsDeletedTime(), columnDeletedTime()); + setupEps(_epsMap, new EpsDeletedBy(), columnDeletedBy()); + setupEps(_epsMap, new EpsVersionno(), columnVersionno()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((FacilityGroup) entity, value); + } + + public static class EpsId implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setId((Integer) v); + } + } + + public static class EpsName implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setName((String) v); + } + } + + public static class EpsSortOrder implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setSortOrder((Integer) v); + } + } + + public static class EpsCreatedTime implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setCreatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsCreatedBy implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setCreatedBy((String) v); + } + } + + public static class EpsUpdatedTime implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setUpdatedTime((java.sql.Timestamp) v); + } + } + + public static class EpsUpdatedBy implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setUpdatedBy((String) v); + } + } + + public static class EpsDeletedTime implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setDeletedTime((java.sql.Timestamp) v); + } + } + + public static class EpsDeletedBy implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setDeletedBy((String) v); + } + } + + public static class EpsVersionno implements Eps { + public void setup(FacilityGroup e, Object v) { + e.setVersionno((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityGroupDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityScheduleMappingDbm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityScheduleMappingDbm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityScheduleMappingDbm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,303 @@ +package jp.sf.pal.scheduler.db.bsentity.dbmeta; + +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.Entity; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.AbstractDBMeta; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ColumnInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.ForeignInfo; +import jp.sf.pal.scheduler.db.allcommon.dbmeta.info.UniqueInfo; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; + +/** + * The DB meta of FACILITY_SCHEDULE_MAPPING. (Singleton) + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMappingDbm extends AbstractDBMeta { + + private static final FacilityScheduleMappingDbm _instance = new FacilityScheduleMappingDbm(); + + private FacilityScheduleMappingDbm() { + } + + public static FacilityScheduleMappingDbm getInstance() { + return _instance; + } + + //========================================================================== + // ========= + // Table Info + // ========== + public String getTableDbName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + public String getTablePropertyName() { + return "facilityScheduleMapping"; + } + + public String getTableSqlName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Column Info + // =========== + protected ColumnInfo _columnId = cci("ID", "id", Long.class, true, null, + null); + + protected ColumnInfo _columnScheduleId = cci("SCHEDULE_ID", "scheduleId", + Long.class, false, null, null); + + protected ColumnInfo _columnFacilityId = cci("FACILITY_ID", "facilityId", + Integer.class, false, null, null); + + public ColumnInfo columnId() { + return _columnId; + } + + public ColumnInfo columnScheduleId() { + return _columnScheduleId; + } + + public ColumnInfo columnFacilityId() { + return _columnFacilityId; + } + + { + initializeColumnInfoList(); + } + + //========================================================================== + // ========= + // Name Map + // ======== + public Map getDbNamePropertyNameKeyToLowerMap() { + return createDbNamePropertyNameKeyToLowerMap(); + } + + public Map getPropertyNameDbNameKeyToLowerMap() { + return createPropertyNameDbNameKeyToLowerMap(); + } + + protected static Map _dbNamePropertyNameKeyToLowerMap; + + protected Map createDbNamePropertyNameKeyToLowerMap() { + if (_dbNamePropertyNameKeyToLowerMap == null) { + _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); + } + return _dbNamePropertyNameKeyToLowerMap; + } + + protected static Map _propertyNameDbNameKeyToLowerMap; + + protected Map createPropertyNameDbNameKeyToLowerMap() { + if (_propertyNameDbNameKeyToLowerMap == null) { + _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); + } + return _propertyNameDbNameKeyToLowerMap; + } + + //========================================================================== + // ========= + // Type Name + // ========= + public String getEntityTypeName() { + return "jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping"; + } + + public String getConditionBeanTypeName() { + return "jp.sf.pal.scheduler.db.cbean.bs.FacilityScheduleMappingCB"; + } + + public String getDaoTypeName() { + return "jp.sf.pal.scheduler.db.exdao.FacilityScheduleMappingDao"; + } + + public String getBehaviorTypeName() { + return "jp.sf.pal.scheduler.db.exbhv.FacilityScheduleMappingBhv"; + } + + //========================================================================== + // ========= + // Object Type + // =========== + public Class getEntityType() { + return FacilityScheduleMapping.class; + } + + //========================================================================== + // ========= + // Object Instance + // =============== + public Entity newEntity() { + return newMyEntity(); + } + + public FacilityScheduleMapping newMyEntity() { + return new FacilityScheduleMapping(); + } + + //========================================================================== + // ========= + // Unique Info + // =========== + // ----------------------------------------------------- + // Primary Element + // --------------- + public UniqueInfo getPrimaryUniqueInfo() { + return createPrimaryUniqueInfo(columnId()); + } + + public boolean hasPrimaryKey() { + return true; + } + + public boolean hasTwoOrMorePrimaryKeys() { + return false; + } + + //========================================================================== + // ========= + // Relation Info + // ============= + // ----------------------------------------------------- + // Foreign Property + // ---------------- + public ForeignInfo foreignEventSchedule() { + Map map = newLinkedHashMap(columnScheduleId(), + EventScheduleDbm.getInstance().columnId()); + return cfi("eventSchedule", this, EventScheduleDbm.getInstance(), map, + 0, false); + } + + public ForeignInfo foreignFacility() { + Map map = newLinkedHashMap(columnFacilityId(), + FacilityDbm.getInstance().columnId()); + return cfi("facility", this, FacilityDbm.getInstance(), map, 1, false); + } + + // ----------------------------------------------------- + // Referrer Property + // ----------------- + + //========================================================================== + // ========= + // Various Info + // ============ + + //========================================================================== + // ========= + // Entity Handling + // =============== + // ----------------------------------------------------- + // Accept + // ------ + public void acceptPrimaryKeyMap(Entity entity, + Map primaryKeyMap) { + doAcceptPrimaryKeyMap((FacilityScheduleMapping) entity, primaryKeyMap, + _epsMap); + } + + public void acceptPrimaryKeyMapString(Entity entity, + String primaryKeyMapString) { + MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity); + } + + public void acceptColumnValueMap(Entity entity, + Map columnValueMap) { + doAcceptColumnValueMap((FacilityScheduleMapping) entity, + columnValueMap, _epsMap); + } + + public void acceptColumnValueMapString(Entity entity, + String columnValueMapString) { + MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity); + } + + // ----------------------------------------------------- + // Extract + // ------- + public String extractPrimaryKeyMapString(Entity entity) { + return MapStringUtil.extractPrimaryKeyMapString(entity); + } + + public String extractPrimaryKeyMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + public String extractColumnValueMapString(Entity entity) { + return MapStringUtil.extractColumnValueMapString(entity); + } + + public String extractColumnValueMapString(Entity entity, String startBrace, + String endBrace, String delimiter, String equal) { + return doExtractColumnValueMapString(entity, startBrace, endBrace, + delimiter, equal); + } + + // ----------------------------------------------------- + // Convert + // ------- + public List convertToColumnValueList(Entity entity) { + return newArrayList(convertToColumnValueMap(entity).values()); + } + + public Map convertToColumnValueMap(Entity entity) { + return doConvertToColumnValueMap(entity); + } + + public List convertToColumnStringValueList(Entity entity) { + return newArrayList(convertToColumnStringValueMap(entity).values()); + } + + public Map convertToColumnStringValueMap(Entity entity) { + return doConvertToColumnStringValueMap(entity); + } + + //========================================================================== + // ========= + // Entity Property Setup + // ===================== + // It's very INTERNAL! + protected Map> _epsMap = newHashMap(); + { + setupEps(_epsMap, new EpsId(), columnId()); + setupEps(_epsMap, new EpsScheduleId(), columnScheduleId()); + setupEps(_epsMap, new EpsFacilityId(), columnFacilityId()); + } + + public boolean hasEntityPropertySetupper(String propertyName) { + return _epsMap.containsKey(propertyName); + } + + public void setupEntityProperty(String propertyName, Object entity, + Object value) { + findEps(_epsMap, propertyName).setup((FacilityScheduleMapping) entity, + value); + } + + public static class EpsId implements Eps { + public void setup(FacilityScheduleMapping e, Object v) { + e.setId((Long) v); + } + } + + public static class EpsScheduleId implements Eps { + public void setup(FacilityScheduleMapping e, Object v) { + e.setScheduleId((Long) v); + } + } + + public static class EpsFacilityId implements Eps { + public void setup(FacilityScheduleMapping e, Object v) { + e.setFacilityId((Integer) v); + } + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/bsentity/dbmeta/FacilityScheduleMappingDbm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of FACILITY. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityCB extends jp.sf.pal.scheduler.db.cbean.bs.BsFacilityCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityContentCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of FACILITY_CONTENT. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContentCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsFacilityContentCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityGroupCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityGroupCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityGroupCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of FACILITY_GROUP. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroupCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsFacilityGroupCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityGroupCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityScheduleMappingCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.cbean; + +/** + * The condition-bean of FACILITY_SCHEDULE_MAPPING. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMappingCB extends + jp.sf.pal.scheduler.db.cbean.bs.BsFacilityScheduleMappingCB { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/FacilityScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsEventScheduleCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -10,6 +10,7 @@ import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; import jp.sf.pal.scheduler.db.cbean.nss.EventScheduleContentNss; @@ -327,6 +328,20 @@ } }); } + + public RAFunction derivedFacilityScheduleMappingList() { + return new RAFunction( + _baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + EventScheduleCQ cq, String aliasName) { + cq.xderiveFacilityScheduleMappingList(function, + subQuery, aliasName); + } + }); + } } // Very Internal (for Suppressing Warn about 'Not Use Import') Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,372 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityContentCB; +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.nss.FacilityContentNss; +import jp.sf.pal.scheduler.db.cbean.nss.FacilityGroupNss; + +/** + * The base condition-bean of FACILITY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY"; + } + + public String getTableSqlName() { + return "FACILITY"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public FacilityCQ query() { + return getConditionQuery(); + } + + public FacilityCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new FacilityCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
      +     * cb.query().union(new UnionQuery<FacilityCB>() {
      +     *     public void query(FacilityCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final FacilityCB cb = new FacilityCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
      +     * cb.query().unionAll(new UnionQuery<FacilityCB>() {
      +     *     public void query(FacilityCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final FacilityCB cb = new FacilityCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery unionQuery). + */ + public void union(FacilityCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(FacilityCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected FacilityGroupNss _nssFacilityGroup; + + public FacilityGroupNss getNssFacilityGroup() { + if (_nssFacilityGroup == null) { + _nssFacilityGroup = new FacilityGroupNss(null); + } + return _nssFacilityGroup; + } + + public FacilityGroupNss setupSelect_FacilityGroup() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryFacilityGroup(); + } + }); + if (_nssFacilityGroup == null || !_nssFacilityGroup.hasConditionQuery()) { + _nssFacilityGroup = new FacilityGroupNss(query() + .queryFacilityGroup()); + } + return _nssFacilityGroup; + } + + protected FacilityContentNss _nssFacilityContentAsOne; + + public FacilityContentNss getNssFacilityContentAsOne() { + if (_nssFacilityContentAsOne == null) { + _nssFacilityContentAsOne = new FacilityContentNss(null); + } + return _nssFacilityContentAsOne; + } + + public FacilityContentNss setupSelect_FacilityContentAsOne() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryFacilityContentAsOne(); + } + }); + if (_nssFacilityContentAsOne == null + || !_nssFacilityContentAsOne.hasConditionQuery()) { + _nssFacilityContentAsOne = new FacilityContentNss(query() + .queryFacilityContentAsOne()); + } + return _nssFacilityContentAsOne; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public FacilityCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends AbstractSpecification { + protected SpQyCall _myQyCall; + + protected FacilityGroupCB.Specification _facilityGroup; + + protected FacilityContentCB.Specification _facilityContentAsOne; + + public Specification(ConditionBean baseCB, SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnGroupId() { + doColumn("GROUP_ID"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryFacilityGroup()) { + columnGroupId();// FK + } + } + + protected String getTableDbName() { + return "FACILITY"; + } + + public FacilityGroupCB.Specification specifyFacilityGroup() { + assertForeign("facilityGroup"); + if (_facilityGroup == null) { + _facilityGroup = new FacilityGroupCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryFacilityGroup(); + } + + public FacilityGroupCQ qy() { + return _myQyCall.qy().queryFacilityGroup(); + } + }, _forDeriveReferrer); + } + return _facilityGroup; + } + + public FacilityContentCB.Specification specifyFacilityContentAsOne() { + assertForeign("facilityContentAsOne"); + if (_facilityContentAsOne == null) { + _facilityContentAsOne = new FacilityContentCB.Specification( + _baseCB, new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryFacilityContentAsOne(); + } + + public FacilityContentCQ qy() { + return _myQyCall.qy() + .queryFacilityContentAsOne(); + } + }, _forDeriveReferrer); + } + return _facilityContentAsOne; + } + + public RAFunction derivedFacilityScheduleMappingList() { + return new RAFunction( + _baseCB, _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + FacilityCQ cq, String aliasName) { + cq.xderiveFacilityScheduleMappingList(function, + subQuery, aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityContentCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityContentCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityContentCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,272 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.nss.FacilityNss; + +/** + * The base condition-bean of FACILITY_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityContentCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityContentCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_CONTENT"; + } + + public String getTableSqlName() { + return "FACILITY_CONTENT"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public FacilityContentCQ query() { + return getConditionQuery(); + } + + public FacilityContentCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new FacilityContentCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
      +     * cb.query().union(new UnionQuery<FacilityContentCB>() {
      +     *     public void query(FacilityContentCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final FacilityContentCB cb = new FacilityContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityContentCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
      +     * cb.query().unionAll(new UnionQuery<FacilityContentCB>() {
      +     *     public void query(FacilityContentCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final FacilityContentCB cb = new FacilityContentCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityContentCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(FacilityContentCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(FacilityContentCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected FacilityNss _nssFacility; + + public FacilityNss getNssFacility() { + if (_nssFacility == null) { + _nssFacility = new FacilityNss(null); + } + return _nssFacility; + } + + public FacilityNss setupSelect_Facility() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryFacility(); + } + }); + if (_nssFacility == null || !_nssFacility.hasConditionQuery()) { + _nssFacility = new FacilityNss(query().queryFacility()); + } + return _nssFacility; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public FacilityContentCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected FacilityCB.Specification _facility; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnContent() { + doColumn("CONTENT"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryFacility()) { + } + } + + protected String getTableDbName() { + return "FACILITY_CONTENT"; + } + + public FacilityCB.Specification specifyFacility() { + assertForeign("facility"); + if (_facility == null) { + _facility = new FacilityCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryFacility(); + } + + public FacilityCQ qy() { + return _myQyCall.qy().queryFacility(); + } + }, _forDeriveReferrer); + } + return _facility; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityContentCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityContentCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityGroupCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityGroupCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityGroupCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,271 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; + +/** + * The base condition-bean of FACILITY_GROUP. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityGroupCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityGroupCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_GROUP"; + } + + public String getTableSqlName() { + return "FACILITY_GROUP"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Integer) { + query().setId_Equal((Integer) obj); + } else { + query().setId_Equal(new Integer((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public FacilityGroupCQ query() { + return getConditionQuery(); + } + + public FacilityGroupCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new FacilityGroupCQ(null, getSqlClause(), + getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
      +     * cb.query().union(new UnionQuery<FacilityGroupCB>() {
      +     *     public void query(FacilityGroupCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final FacilityGroupCB cb = new FacilityGroupCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityGroupCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
      +     * cb.query().unionAll(new UnionQuery<FacilityGroupCB>() {
      +     *     public void query(FacilityGroupCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final FacilityGroupCB cb = new FacilityGroupCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityGroupCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(FacilityGroupCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use unionAll(UnionQuery + * unionQuery). + */ + public void unionAll(FacilityGroupCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public FacilityGroupCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnName() { + doColumn("NAME"); + } + + public void columnSortOrder() { + doColumn("SORT_ORDER"); + } + + public void columnCreatedTime() { + doColumn("CREATED_TIME"); + } + + public void columnCreatedBy() { + doColumn("CREATED_BY"); + } + + public void columnUpdatedTime() { + doColumn("UPDATED_TIME"); + } + + public void columnUpdatedBy() { + doColumn("UPDATED_BY"); + } + + public void columnDeletedTime() { + doColumn("DELETED_TIME"); + } + + public void columnDeletedBy() { + doColumn("DELETED_BY"); + } + + public void columnVersionno() { + doColumn("VERSIONNO"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + } + + protected String getTableDbName() { + return "FACILITY_GROUP"; + } + + public RAFunction derivedFacilityList() { + return new RAFunction(_baseCB, + _myQyCall.qy(), + new RAQSetupper() { + public void setup(String function, + SubQuery subQuery, + FacilityGroupCQ cq, String aliasName) { + cq.xderiveFacilityList(function, subQuery, + aliasName); + } + }); + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityGroupCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityGroupCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityGroupCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityScheduleMappingCB.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityScheduleMappingCB.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityScheduleMappingCB.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,328 @@ +package jp.sf.pal.scheduler.db.cbean.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionBean; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.nss.EventScheduleNss; +import jp.sf.pal.scheduler.db.cbean.nss.FacilityNss; + +/** + * The base condition-bean of FACILITY_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityScheduleMappingCB extends AbstractConditionBean { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityScheduleMappingCQ _conditionQuery; + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // PrimaryKey Map + // ============== + public void acceptPrimaryKeyMap(Map primaryKeyMap) { + assertPrimaryKeyMap(primaryKeyMap); + { + Object obj = primaryKeyMap.get("ID"); + if (obj instanceof Long) { + query().setId_Equal((Long) obj); + } else { + query().setId_Equal(new Long((String) obj)); + } + } + + } + + //========================================================================== + // ========= + // OrderBy Setting + // =============== + public ConditionBean addOrderBy_PK_Asc() { + query().addOrderBy_Id_Asc(); + return this; + } + + public ConditionBean addOrderBy_PK_Desc() { + query().addOrderBy_Id_Desc(); + return this; + } + + //========================================================================== + // ========= + // Query + // ===== + public FacilityScheduleMappingCQ query() { + return getConditionQuery(); + } + + public FacilityScheduleMappingCQ getConditionQuery() { + if (_conditionQuery == null) { + _conditionQuery = new FacilityScheduleMappingCQ(null, + getSqlClause(), getSqlClause().getLocalTableAliasName(), 0); + } + return _conditionQuery; + } + + public ConditionQuery getConditionQueryAsInterface() { + return getConditionQuery(); + } + + //========================================================================== + // ========= + // Union + // ===== + /** + * Set up 'union'. + * + *
      +     * cb.query().union(new UnionQuery<FacilityScheduleMappingCB>() {
      +     *     public void query(FacilityScheduleMappingCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void union(UnionQuery unionQuery) { + final FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityScheduleMappingCQ cq = cb.query(); + query().xsetUnionQuery(cq); + } + + /** + * Set up 'union all'. + * + *
      +     * cb.query().unionAll(new UnionQuery<FacilityScheduleMappingCB>() {
      +     *     public void query(FacilityScheduleMappingCB unionCB) {
      +     *         unionCB.query().setXxx...
      +     *     }
      +     * });
      +     * 
      + * + * @param unionQuery The query of 'union'. (NotNull) + */ + public void unionAll(UnionQuery unionQuery) { + final FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForUnion(); + unionQuery.query(cb); + final FacilityScheduleMappingCQ cq = cb.query(); + query().xsetUnionAllQuery(cq); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use union(UnionQuery + * unionQuery). + */ + public void union(FacilityScheduleMappingCQ unionQuery) { + query().xsetUnionQuery(unionQuery); + } + + /** + * @param unionQuery The query of 'union'. (NotNull) + * @deprecated Sorry! Please use + * unionAll(UnionQuery unionQuery). + */ + public void unionAll(FacilityScheduleMappingCQ unionQuery) { + query().xsetUnionAllQuery(unionQuery); + } + + public boolean hasUnionQueryOrUnionAllQuery() { + return query().hasUnionQueryOrUnionAllQuery(); + } + + //========================================================================== + // ========= + // Setup Select + // ============ + + protected EventScheduleNss _nssEventSchedule; + + public EventScheduleNss getNssEventSchedule() { + if (_nssEventSchedule == null) { + _nssEventSchedule = new EventScheduleNss(null); + } + return _nssEventSchedule; + } + + public EventScheduleNss setupSelect_EventSchedule() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryEventSchedule(); + } + }); + if (_nssEventSchedule == null || !_nssEventSchedule.hasConditionQuery()) { + _nssEventSchedule = new EventScheduleNss(query() + .queryEventSchedule()); + } + return _nssEventSchedule; + } + + protected FacilityNss _nssFacility; + + public FacilityNss getNssFacility() { + if (_nssFacility == null) { + _nssFacility = new FacilityNss(null); + } + return _nssFacility; + } + + public FacilityNss setupSelect_Facility() { + doSetupSelect(new SsCall() { + public ConditionQuery qf() { + return query().queryFacility(); + } + }); + if (_nssFacility == null || !_nssFacility.hasConditionQuery()) { + _nssFacility = new FacilityNss(query().queryFacility()); + } + return _nssFacility; + } + + // [DBFlute-0.7.4] + //========================================================================== + // ========= + // Specify + // ======= + protected Specification _specification; + + public Specification specify() { + if (_specification == null) { + _specification = new Specification(this, + new SpQyCall() { + public boolean has() { + return true; + } + + public FacilityScheduleMappingCQ qy() { + return query(); + } + }, _forDeriveReferrer); + } + return _specification; + } + + public static class Specification extends + AbstractSpecification { + protected SpQyCall _myQyCall; + + protected EventScheduleCB.Specification _eventSchedule; + + protected FacilityCB.Specification _facility; + + public Specification(ConditionBean baseCB, + SpQyCall qyCall, + boolean forDeriveReferrer) { + super(baseCB, qyCall, forDeriveReferrer); + _myQyCall = qyCall; + } + + public void columnId() { + doColumn("ID"); + } + + public void columnScheduleId() { + doColumn("SCHEDULE_ID"); + } + + public void columnFacilityId() { + doColumn("FACILITY_ID"); + } + + protected void doSpecifyRequiredColumn() { + columnId();// PK + if (_myQyCall.qy().hasConditionQueryEventSchedule()) { + columnScheduleId();// FK + } + if (_myQyCall.qy().hasConditionQueryFacility()) { + columnFacilityId();// FK + } + } + + protected String getTableDbName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + public EventScheduleCB.Specification specifyEventSchedule() { + assertForeign("eventSchedule"); + if (_eventSchedule == null) { + _eventSchedule = new EventScheduleCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall + .qy() + .hasConditionQueryEventSchedule(); + } + + public EventScheduleCQ qy() { + return _myQyCall.qy().queryEventSchedule(); + } + }, _forDeriveReferrer); + } + return _eventSchedule; + } + + public FacilityCB.Specification specifyFacility() { + assertForeign("facility"); + if (_facility == null) { + _facility = new FacilityCB.Specification(_baseCB, + new SpQyCall() { + public boolean has() { + return _myQyCall.has() + && _myQyCall.qy() + .hasConditionQueryFacility(); + } + + public FacilityCQ qy() { + return _myQyCall.qy().queryFacility(); + } + }, _forDeriveReferrer); + } + return _facility; + } + } + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityScheduleMappingCQ.class.getName(); + } + + protected String getSubQueryClassNameInternally() { + return SubQuery.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/bs/BsFacilityScheduleMappingCB.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityCQ; + +/** + * The condition-query of FACILITY. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityCQ extends BsFacilityCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public FacilityCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityContentCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityContentCQ; + +/** + * The condition-query of FACILITY_CONTENT. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContentCQ extends BsFacilityContentCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public FacilityContentCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityGroupCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityGroupCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityGroupCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityGroupCQ; + +/** + * The condition-query of FACILITY_GROUP. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroupCQ extends BsFacilityGroupCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public FacilityGroupCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityGroupCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityScheduleMappingCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.db.cbean.cq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityScheduleMappingCQ; + +/** + * The condition-query of FACILITY_SCHEDULE_MAPPING. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMappingCQ extends BsFacilityScheduleMappingCQ { + + //========================================================================== + // ========= + // Constructor + // =========== + /** + * Constructor. + * + * @param childQuery Child query as abstract class. (Nullable: If null, this + * is base instance.) + * @param sqlClause SQL clause instance. (NotNull) + * @param aliasName My alias name. (NotNull) + * @param nestLevel Nest level. + */ + public FacilityScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Arrange Method + // ============== + // You can make original arrange query methods here. + // public void arranegeXxx() { + // ... + // } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/FacilityScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsEventScheduleCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -11,9 +11,11 @@ import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleContentCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; /** * The abstract condition-query of EVENT_SCHEDULE. @@ -184,6 +186,38 @@ abstract public String keepId_InScopeSubQuery_EventScheduleMappingList( EventScheduleMappingCQ subQuery); + /** + * @param facilityScheduleMappingCBquery Query. + * @deprecated Please use inScopeFacilityScheduleMappingList(subQuery) + * method. + */ + public void setId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ facilityScheduleMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityScheduleMappingList(facilityScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + public void inScopeFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + public void notInScopeEventScheduleContentAsOne( SubQuery subQuery) { assertObjectNotNull("subQuery", subQuery); @@ -213,6 +247,21 @@ abstract public String keepId_NotInScopeSubQuery_EventScheduleMappingList( EventScheduleMappingCQ subQuery); + public void notInScopeFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + /** * @param eventScheduleContentCBquery Query. * @deprecated Please use existsEventScheduleContentAsOne(subQuery) method. @@ -291,6 +340,46 @@ EventScheduleMappingCQ subQuery); /** + * @param facilityScheduleMappingCBquery Query. + * @deprecated Please use existsFacilityScheduleMappingList(subQuery) + * method. + */ + public void setId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ facilityScheduleMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityScheduleMappingList(facilityScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(facilityScheduleMappingCBquery, "ID", + "SCHEDULE_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select SCHEDULE_ID from + * FACILITY_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_FacilityScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + + /** * Set up 'not exists' sub-query. {not exists (select ID from * EVENT_SCHEDULE_CONTENT where ...)} * @@ -335,6 +424,29 @@ abstract public String keepId_NotExistsSubQuery_EventScheduleMappingList( EventScheduleMappingCQ subQuery); + /** + * Set up 'not exists' sub-query. {not exists (select SCHEDULE_ID from + * FACILITY_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_FacilityScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + public void xderiveEventScheduleMappingList(String function, SubQuery subQuery, String aliasName) { assertObjectNotNull("subQuery", subQuery); @@ -350,6 +462,21 @@ abstract public String keepId_DeriveSubQuery_EventScheduleMappingList( EventScheduleMappingCQ subQuery); + public void xderiveFacilityScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "SCHEDULE_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + /** * IsNull(is null). And OnceRegistered. */ Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,1495 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityContentCB; +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; + +/** + * The abstract condition-query of FACILITY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsFacilityCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsFacilityCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY"; + } + + public String getTableSqlName() { + return "FACILITY"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param facilityContentCBquery Query. + * @deprecated Please use inScopeFacilityContentAsOne(subQuery) method. + */ + public void setId_InScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ facilityContentCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityContentAsOne(facilityContentCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeFacilityContentAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityContentCB cb = new FacilityContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityContentAsOne(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery); + + /** + * @param facilityScheduleMappingCBquery Query. + * @deprecated Please use inScopeFacilityScheduleMappingList(subQuery) + * method. + */ + public void setId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ facilityScheduleMappingCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityScheduleMappingList(facilityScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityScheduleMappingCBquery, "ID", + "FACILITY_ID", subQueryPropertyName); + } + + public void inScopeFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "FACILITY_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + + public void notInScopeFacilityContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityContentCB cb = new FacilityContentCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_FacilityContentAsOne(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery); + + public void notInScopeFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "FACILITY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + + /** + * @param facilityContentCBquery Query. + * @deprecated Please use existsFacilityContentAsOne(subQuery) method. + */ + public void setId_ExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ facilityContentCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityContentAsOne(facilityContentCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(facilityContentCBquery, "ID", "ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select ID from FACILITY_CONTENT where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_FacilityContentAsOne + * for 'exists'. (NotNull) + */ + public void existsFacilityContentAsOne(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityContentCB cb = new FacilityContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityContentAsOne(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery); + + /** + * @param facilityScheduleMappingCBquery Query. + * @deprecated Please use existsFacilityScheduleMappingList(subQuery) + * method. + */ + public void setId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ facilityScheduleMappingCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityScheduleMappingList(facilityScheduleMappingCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(facilityScheduleMappingCBquery, "ID", + "FACILITY_ID", subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select FACILITY_ID from + * FACILITY_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_ExistsSubQuery_FacilityScheduleMappingList for 'exists'. + * (NotNull) + */ + public void existsFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "FACILITY_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select ID from + * FACILITY_CONTENT where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_FacilityContentAsOne for 'not exists'. + * (NotNull) + */ + public void notExistsFacilityContentAsOne( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityContentCB cb = new FacilityContentCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_FacilityContentAsOne(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select FACILITY_ID from + * FACILITY_SCHEDULE_MAPPING where ...)} + * + * @param subQuery The sub-query of + * Id_NotExistsSubQuery_FacilityScheduleMappingList for 'not + * exists'. (NotNull) + */ + public void notExistsFacilityScheduleMappingList( + SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "FACILITY_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + + public void xderiveFacilityScheduleMappingList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_FacilityScheduleMappingList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "FACILITY_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[1]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : FK to + * FACILITY_GROUP} + * + * @param groupId The value of groupId as equal. + */ + public void setGroupId_Equal(Integer groupId) { + regGroupId(CK_EQ, groupId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param groupId The value of groupId as notEqual. + */ + public void setGroupId_NotEqual(Integer groupId) { + regGroupId(CK_NE, groupId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterThan. + */ + public void setGroupId_GreaterThan(Integer groupId) { + regGroupId(CK_GT, groupId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessThan. + */ + public void setGroupId_LessThan(Integer groupId) { + regGroupId(CK_LT, groupId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param groupId The value of groupId as greaterEqual. + */ + public void setGroupId_GreaterEqual(Integer groupId) { + regGroupId(CK_GE, groupId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param groupId The value of groupId as lessEqual. + */ + public void setGroupId_LessEqual(Integer groupId) { + regGroupId(CK_LE, groupId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param groupIdList The collection of groupId as inScope. + */ + public void setGroupId_InScope(Collection groupIdList) { + regGroupId(CK_INS, cTL(groupIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param groupIdList The collection of groupId as notInScope. + */ + public void setGroupId_NotInScope(Collection groupIdList) { + regGroupId(CK_NINS, cTL(groupIdList)); + } + + /** + * @param facilityGroupCBquery Query. + * @deprecated Please use inScopeFacilityGroup(subQuery) method. + */ + public void setGroupId_InScopeSubQuery_FacilityGroup( + FacilityGroupCQ facilityGroupCBquery) { + String subQueryPropertyName = keepGroupId_InScopeSubQuery_FacilityGroup(facilityGroupCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityGroupCBquery, "GROUP_ID", "ID", + subQueryPropertyName); + } + + public void inScopeFacilityGroup(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityGroupCB cb = new FacilityGroupCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepGroupId_InScopeSubQuery_FacilityGroup(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "GROUP_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepGroupId_InScopeSubQuery_FacilityGroup( + FacilityGroupCQ subQuery); + + protected void regGroupId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueGroupId(), "GROUP_ID", "GroupId", + "groupId"); + } + + protected void registerInlineGroupId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueGroupId(), "GROUP_ID", + "GroupId", "groupId"); + } + + abstract protected ConditionValue getCValueGroupId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityContentCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,322 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityContentCB; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; + +/** + * The abstract condition-query of FACILITY_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsFacilityContentCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsFacilityContentCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_CONTENT"; + } + + public String getTableSqlName() { + return "FACILITY_CONTENT"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : NotNull : INTEGER : FK + * to FACILITY} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param facilityCBquery Query. + * @deprecated Please use inScopeFacility(subQuery) method. + */ + public void setId_InScopeSubQuery_Facility(FacilityCQ facilityCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_Facility(facilityCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityCBquery, "ID", "ID", + subQueryPropertyName); + } + + public void inScopeFacility(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_Facility(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "ID", subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_Facility(FacilityCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(1000)} + * + * @param content The value of content as equal. + */ + public void setContent_Equal(String content) { + regContent(CK_EQ, fRES(content)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as notEqual. + */ + public void setContent_NotEqual(String content) { + regContent(CK_NE, fRES(content)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterThan. + */ + public void setContent_GreaterThan(String content) { + regContent(CK_GT, fRES(content)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessThan. + */ + public void setContent_LessThan(String content) { + regContent(CK_LT, fRES(content)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as greaterEqual. + */ + public void setContent_GreaterEqual(String content) { + regContent(CK_GE, fRES(content)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as lessEqual. + */ + public void setContent_LessEqual(String content) { + regContent(CK_LE, fRES(content)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param content The value of content as prefixSearch. + */ + public void setContent_PrefixSearch(String content) { + regContent(CK_PS, fRES(content)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param content The value of content as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setContent_LikeSearch( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as inScope. + */ + public void setContent_InScope(Collection contentList) { + regContent(CK_INS, cTL(contentList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param content The collection of content as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setContent_InScope( + String content, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(content), getCValueContent(), + "CONTENT", "Content", "content", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param contentList The collection of content as notInScope. + */ + public void setContent_NotInScope(Collection contentList) { + regContent(CK_NINS, cTL(contentList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setContent_IsNull() { + regContent(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setContent_IsNotNull() { + regContent(CK_ISNN, DUMMY_OBJECT); + } + + protected void regContent(ConditionKey key, Object value) { + registerQuery(key, value, getCValueContent(), "CONTENT", "Content", + "content"); + } + + protected void registerInlineContent(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueContent(), "CONTENT", + "Content", "content"); + } + + abstract protected ConditionValue getCValueContent(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityContentCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityGroupCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityGroupCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityGroupCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,1263 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; + +/** + * The abstract condition-query of FACILITY_GROUP. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsFacilityGroupCQ extends AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsFacilityGroupCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_GROUP"; + } + + public String getTableSqlName() { + return "FACILITY_GROUP"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : INTEGER} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Integer id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Integer id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Integer id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Integer id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Integer id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Integer id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * @param facilityCBquery Query. + * @deprecated Please use inScopeFacilityList(subQuery) method. + */ + public void setId_InScopeSubQuery_FacilityList(FacilityCQ facilityCBquery) { + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityList(facilityCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityCBquery, "ID", "GROUP_ID", + subQueryPropertyName); + } + + public void inScopeFacilityList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_InScopeSubQuery_FacilityList(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepId_InScopeSubQuery_FacilityList( + FacilityCQ subQuery); + + public void notInScopeFacilityList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotInScopeSubQuery_FacilityList(cb + .query());// for saving query-value. + registerNotInScopeSubQuery(cb.query(), "ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotInScopeSubQuery_FacilityList( + FacilityCQ subQuery); + + /** + * @param facilityCBquery Query. + * @deprecated Please use existsFacilityList(subQuery) method. + */ + public void setId_ExistsSubQuery_FacilityList(FacilityCQ facilityCBquery) { + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityList(facilityCBquery);// for + // saving + // query + // - + // value + // . + registerExistsSubQuery(facilityCBquery, "ID", "GROUP_ID", + subQueryPropertyName); + } + + /** + * Set up 'exists' sub-query. {exists (select GROUP_ID from FACILITY where + * ...)} + * + * @param subQuery The sub-query of Id_ExistsSubQuery_FacilityList for + * 'exists'. (NotNull) + */ + public void existsFacilityList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_ExistsSubQuery_FacilityList(cb + .query());// for saving query-value. + registerExistsSubQuery(cb.query(), "ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepId_ExistsSubQuery_FacilityList( + FacilityCQ subQuery); + + /** + * Set up 'not exists' sub-query. {not exists (select GROUP_ID from FACILITY + * where ...)} + * + * @param subQuery The sub-query of Id_NotExistsSubQuery_FacilityList for + * 'not exists'. (NotNull) + */ + public void notExistsFacilityList(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForExistsSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepId_NotExistsSubQuery_FacilityList(cb + .query());// for saving query-value. + registerNotExistsSubQuery(cb.query(), "ID", "GROUP_ID", + subQueryPropertyName); + } + + abstract public String keepId_NotExistsSubQuery_FacilityList( + FacilityCQ subQuery); + + public void xderiveFacilityList(String function, + SubQuery subQuery, String aliasName) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForDeriveReferrer(); + subQuery.query(cb); + String subQueryPropertyName = keepId_DeriveSubQuery_FacilityList(cb + .query());// for saving query-value. + registerDeriveSubQuery(function, cb.query(), "ID", "GROUP_ID", + subQueryPropertyName, aliasName); + } + + abstract public String keepId_DeriveSubQuery_FacilityList( + FacilityCQ subQuery); + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(100)} + * + * @param name The value of name as equal. + */ + public void setName_Equal(String name) { + regName(CK_EQ, fRES(name)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as notEqual. + */ + public void setName_NotEqual(String name) { + regName(CK_NE, fRES(name)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterThan. + */ + public void setName_GreaterThan(String name) { + regName(CK_GT, fRES(name)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessThan. + */ + public void setName_LessThan(String name) { + regName(CK_LT, fRES(name)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as greaterEqual. + */ + public void setName_GreaterEqual(String name) { + regName(CK_GE, fRES(name)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as lessEqual. + */ + public void setName_LessEqual(String name) { + regName(CK_LE, fRES(name)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param name The value of name as prefixSearch. + */ + public void setName_PrefixSearch(String name) { + regName(CK_PS, fRES(name)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param name The value of name as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setName_LikeSearch( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(name), getCValueName(), "NAME", + "Name", "name", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as inScope. + */ + public void setName_InScope(Collection nameList) { + regName(CK_INS, cTL(nameList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param name The collection of name as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setName_InScope( + String name, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(name), getCValueName(), "NAME", + "Name", "name", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param nameList The collection of name as notInScope. + */ + public void setName_NotInScope(Collection nameList) { + regName(CK_NINS, cTL(nameList)); + } + + protected void regName(ConditionKey key, Object value) { + registerQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + protected void registerInlineName(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueName(), "NAME", "Name", "name"); + } + + abstract protected ConditionValue getCValueName(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[1]} + * + * @param sortOrder The value of sortOrder as equal. + */ + public void setSortOrder_Equal(Integer sortOrder) { + regSortOrder(CK_EQ, sortOrder); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as notEqual. + */ + public void setSortOrder_NotEqual(Integer sortOrder) { + regSortOrder(CK_NE, sortOrder); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterThan. + */ + public void setSortOrder_GreaterThan(Integer sortOrder) { + regSortOrder(CK_GT, sortOrder); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessThan. + */ + public void setSortOrder_LessThan(Integer sortOrder) { + regSortOrder(CK_LT, sortOrder); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as greaterEqual. + */ + public void setSortOrder_GreaterEqual(Integer sortOrder) { + regSortOrder(CK_GE, sortOrder); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param sortOrder The value of sortOrder as lessEqual. + */ + public void setSortOrder_LessEqual(Integer sortOrder) { + regSortOrder(CK_LE, sortOrder); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as inScope. + */ + public void setSortOrder_InScope(Collection sortOrderList) { + regSortOrder(CK_INS, cTL(sortOrderList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param sortOrderList The collection of sortOrder as notInScope. + */ + public void setSortOrder_NotInScope(Collection sortOrderList) { + regSortOrder(CK_NINS, cTL(sortOrderList)); + } + + protected void regSortOrder(ConditionKey key, Object value) { + registerQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + protected void registerInlineSortOrder(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueSortOrder(), "SORT_ORDER", + "SortOrder", "sortOrder"); + } + + abstract protected ConditionValue getCValueSortOrder(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param createdTime The value of createdTime as equal. + */ + public void setCreatedTime_Equal(java.sql.Timestamp createdTime) { + regCreatedTime(CK_EQ, createdTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as notEqual. + */ + public void setCreatedTime_NotEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_NE, createdTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterThan. + */ + public void setCreatedTime_GreaterThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GT, createdTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessThan. + */ + public void setCreatedTime_LessThan(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LT, createdTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as greaterEqual. + */ + public void setCreatedTime_GreaterEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_GE, createdTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param createdTime The value of createdTime as lessEqual. + */ + public void setCreatedTime_LessEqual(java.sql.Timestamp createdTime) { + regCreatedTime(CK_LE, createdTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setCreatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueCreatedTime(), + "CREATED_TIME", "CreatedTime", "createdTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of createdTime. (Nullable) + * @param toDate The to-date of createdTime. (Nullable) + */ + public void setCreatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setCreatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regCreatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + protected void registerInlineCreatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedTime(), "CREATED_TIME", + "CreatedTime", "createdTime"); + } + + abstract protected ConditionValue getCValueCreatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param createdBy The value of createdBy as equal. + */ + public void setCreatedBy_Equal(String createdBy) { + regCreatedBy(CK_EQ, fRES(createdBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as notEqual. + */ + public void setCreatedBy_NotEqual(String createdBy) { + regCreatedBy(CK_NE, fRES(createdBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterThan. + */ + public void setCreatedBy_GreaterThan(String createdBy) { + regCreatedBy(CK_GT, fRES(createdBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessThan. + */ + public void setCreatedBy_LessThan(String createdBy) { + regCreatedBy(CK_LT, fRES(createdBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as greaterEqual. + */ + public void setCreatedBy_GreaterEqual(String createdBy) { + regCreatedBy(CK_GE, fRES(createdBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as lessEqual. + */ + public void setCreatedBy_LessEqual(String createdBy) { + regCreatedBy(CK_LE, fRES(createdBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param createdBy The value of createdBy as prefixSearch. + */ + public void setCreatedBy_PrefixSearch(String createdBy) { + regCreatedBy(CK_PS, fRES(createdBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param createdBy The value of createdBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setCreatedBy_LikeSearch( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as inScope. + */ + public void setCreatedBy_InScope(Collection createdByList) { + regCreatedBy(CK_INS, cTL(createdByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdBy The collection of createdBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setCreatedBy_InScope( + String createdBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(createdBy), getCValueCreatedBy(), + "CREATED_BY", "CreatedBy", "createdBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param createdByList The collection of createdBy as notInScope. + */ + public void setCreatedBy_NotInScope(Collection createdByList) { + regCreatedBy(CK_NINS, cTL(createdByList)); + } + + protected void regCreatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + protected void registerInlineCreatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueCreatedBy(), "CREATED_BY", + "CreatedBy", "createdBy"); + } + + abstract protected ConditionValue getCValueCreatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : TIMESTAMP} + * + * @param updatedTime The value of updatedTime as equal. + */ + public void setUpdatedTime_Equal(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_EQ, updatedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as notEqual. + */ + public void setUpdatedTime_NotEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_NE, updatedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterThan. + */ + public void setUpdatedTime_GreaterThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GT, updatedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessThan. + */ + public void setUpdatedTime_LessThan(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LT, updatedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as greaterEqual. + */ + public void setUpdatedTime_GreaterEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_GE, updatedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param updatedTime The value of updatedTime as lessEqual. + */ + public void setUpdatedTime_LessEqual(java.sql.Timestamp updatedTime) { + regUpdatedTime(CK_LE, updatedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setUpdatedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueUpdatedTime(), + "UPDATED_TIME", "UpdatedTime", "updatedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {NotNull : TIMESTAMP} + * + * @param fromDate The from-date of updatedTime. (Nullable) + * @param toDate The to-date of updatedTime. (Nullable) + */ + public void setUpdatedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setUpdatedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + protected void regUpdatedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + protected void registerInlineUpdatedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedTime(), "UPDATED_TIME", + "UpdatedTime", "updatedTime"); + } + + abstract protected ConditionValue getCValueUpdatedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {NotNull : + * VARCHAR(255)} + * + * @param updatedBy The value of updatedBy as equal. + */ + public void setUpdatedBy_Equal(String updatedBy) { + regUpdatedBy(CK_EQ, fRES(updatedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as notEqual. + */ + public void setUpdatedBy_NotEqual(String updatedBy) { + regUpdatedBy(CK_NE, fRES(updatedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterThan. + */ + public void setUpdatedBy_GreaterThan(String updatedBy) { + regUpdatedBy(CK_GT, fRES(updatedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessThan. + */ + public void setUpdatedBy_LessThan(String updatedBy) { + regUpdatedBy(CK_LT, fRES(updatedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as greaterEqual. + */ + public void setUpdatedBy_GreaterEqual(String updatedBy) { + regUpdatedBy(CK_GE, fRES(updatedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as lessEqual. + */ + public void setUpdatedBy_LessEqual(String updatedBy) { + regUpdatedBy(CK_LE, fRES(updatedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param updatedBy The value of updatedBy as prefixSearch. + */ + public void setUpdatedBy_PrefixSearch(String updatedBy) { + regUpdatedBy(CK_PS, fRES(updatedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param updatedBy The value of updatedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setUpdatedBy_LikeSearch( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as inScope. + */ + public void setUpdatedBy_InScope(Collection updatedByList) { + regUpdatedBy(CK_INS, cTL(updatedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedBy The collection of updatedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setUpdatedBy_InScope( + String updatedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(updatedBy), getCValueUpdatedBy(), + "UPDATED_BY", "UpdatedBy", "updatedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param updatedByList The collection of updatedBy as notInScope. + */ + public void setUpdatedBy_NotInScope(Collection updatedByList) { + regUpdatedBy(CK_NINS, cTL(updatedByList)); + } + + protected void regUpdatedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + protected void registerInlineUpdatedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueUpdatedBy(), "UPDATED_BY", + "UpdatedBy", "updatedBy"); + } + + abstract protected ConditionValue getCValueUpdatedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {TIMESTAMP} + * + * @param deletedTime The value of deletedTime as equal. + */ + public void setDeletedTime_Equal(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_EQ, deletedTime); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as notEqual. + */ + public void setDeletedTime_NotEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_NE, deletedTime); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterThan. + */ + public void setDeletedTime_GreaterThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GT, deletedTime); + } + + /** + * LessThan(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessThan. + */ + public void setDeletedTime_LessThan(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LT, deletedTime); + } + + /** + * GreaterEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as greaterEqual. + */ + public void setDeletedTime_GreaterEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_GE, deletedTime); + } + + /** + * LessEqual(>). And NullIgnored, OnceRegistered. + * + * @param deletedTime The value of deletedTime as lessEqual. + */ + public void setDeletedTime_LessEqual(java.sql.Timestamp deletedTime) { + regDeletedTime(CK_LE, deletedTime); + } + + /** + * FromTo($fromDate <= COLUMN_NAME <= $toDate). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + * @param fromToOption The option of from-to. (NotNull) + */ + public void setDeletedTime_FromTo( + java.util.Date fromDate, + java.util.Date toDate, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.FromToOption fromToOption) { + registerFromToQuery((fromDate != null ? new java.sql.Timestamp(fromDate + .getTime()) : null), (toDate != null ? new java.sql.Timestamp( + toDate.getTime()) : null), getCValueDeletedTime(), + "DELETED_TIME", "DeletedTime", "deletedTime", fromToOption); + } + + /** + * FromTo($fromDate <= COLUMN_NAME < $toDate + 1). And NullIgnored, + * OnceRegistered. {TIMESTAMP} + * + * @param fromDate The from-date of deletedTime. (Nullable) + * @param toDate The to-date of deletedTime. (Nullable) + */ + public void setDeletedTime_DateFromTo(java.util.Date fromDate, + java.util.Date toDate) { + setDeletedTime_FromTo( + fromDate, + toDate, + new jp.sf.pal.scheduler.db.allcommon.cbean.coption.DateFromToOption()); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedTime_IsNull() { + regDeletedTime(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedTime_IsNotNull() { + regDeletedTime(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedTime(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + protected void registerInlineDeletedTime(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedTime(), "DELETED_TIME", + "DeletedTime", "deletedTime"); + } + + abstract protected ConditionValue getCValueDeletedTime(); + + /** + * Equal(=). And NullOrEmptyIgnored, OnceRegistered. {VARCHAR(255)} + * + * @param deletedBy The value of deletedBy as equal. + */ + public void setDeletedBy_Equal(String deletedBy) { + regDeletedBy(CK_EQ, fRES(deletedBy)); + } + + /** + * NotEqual(!=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as notEqual. + */ + public void setDeletedBy_NotEqual(String deletedBy) { + regDeletedBy(CK_NE, fRES(deletedBy)); + } + + /** + * GreaterThan(>). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterThan. + */ + public void setDeletedBy_GreaterThan(String deletedBy) { + regDeletedBy(CK_GT, fRES(deletedBy)); + } + + /** + * LessThan(<). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessThan. + */ + public void setDeletedBy_LessThan(String deletedBy) { + regDeletedBy(CK_LT, fRES(deletedBy)); + } + + /** + * GreaterEqual(>=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as greaterEqual. + */ + public void setDeletedBy_GreaterEqual(String deletedBy) { + regDeletedBy(CK_GE, fRES(deletedBy)); + } + + /** + * LessEqual(<=). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as lessEqual. + */ + public void setDeletedBy_LessEqual(String deletedBy) { + regDeletedBy(CK_LE, fRES(deletedBy)); + } + + /** + * PrefixSearch(like 'xxx%'). And NullOrEmptyIgnored, OnceRegistered. + * + * @param deletedBy The value of deletedBy as prefixSearch. + */ + public void setDeletedBy_PrefixSearch(String deletedBy) { + regDeletedBy(CK_PS, fRES(deletedBy)); + } + + /** + * LikeSearch(like 'xxx%' escape ...). And NullOrEmptyIgnored, + * SeveralRegistered. + * + * @param deletedBy The value of deletedBy as likeSearch. + * @param likeSearchOption The option of like-search. (NotNull) + */ + public void setDeletedBy_LikeSearch( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.LikeSearchOption likeSearchOption) { + registerLikeSearchQuery(CK_LS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", likeSearchOption); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as inScope. + */ + public void setDeletedBy_InScope(Collection deletedByList) { + regDeletedBy(CK_INS, cTL(deletedByList)); + } + + /** + * InScope(in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedBy The collection of deletedBy as inScope. + * @param inScopeOption The option of in-scope. (NotNull) + */ + public void setDeletedBy_InScope( + String deletedBy, + jp.sf.pal.scheduler.db.allcommon.cbean.coption.InScopeOption inScopeOption) { + registerInScopeQuery(CK_INS, fRES(deletedBy), getCValueDeletedBy(), + "DELETED_BY", "DeletedBy", "deletedBy", inScopeOption); + } + + /** + * NotInScope(not in ('a', 'b')). And NullOrEmptyIgnored, + * NullOrEmptyElementIgnored, SeveralRegistered. + * + * @param deletedByList The collection of deletedBy as notInScope. + */ + public void setDeletedBy_NotInScope(Collection deletedByList) { + regDeletedBy(CK_NINS, cTL(deletedByList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setDeletedBy_IsNull() { + regDeletedBy(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setDeletedBy_IsNotNull() { + regDeletedBy(CK_ISNN, DUMMY_OBJECT); + } + + protected void regDeletedBy(ConditionKey key, Object value) { + registerQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + protected void registerInlineDeletedBy(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueDeletedBy(), "DELETED_BY", + "DeletedBy", "deletedBy"); + } + + abstract protected ConditionValue getCValueDeletedBy(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : + * Default=[0]} + * + * @param versionno The value of versionno as equal. + */ + public void setVersionno_Equal(Integer versionno) { + regVersionno(CK_EQ, versionno); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as notEqual. + */ + public void setVersionno_NotEqual(Integer versionno) { + regVersionno(CK_NE, versionno); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterThan. + */ + public void setVersionno_GreaterThan(Integer versionno) { + regVersionno(CK_GT, versionno); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessThan. + */ + public void setVersionno_LessThan(Integer versionno) { + regVersionno(CK_LT, versionno); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as greaterEqual. + */ + public void setVersionno_GreaterEqual(Integer versionno) { + regVersionno(CK_GE, versionno); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param versionno The value of versionno as lessEqual. + */ + public void setVersionno_LessEqual(Integer versionno) { + regVersionno(CK_LE, versionno); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as inScope. + */ + public void setVersionno_InScope(Collection versionnoList) { + regVersionno(CK_INS, cTL(versionnoList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param versionnoList The collection of versionno as notInScope. + */ + public void setVersionno_NotInScope(Collection versionnoList) { + regVersionno(CK_NINS, cTL(versionnoList)); + } + + protected void regVersionno(ConditionKey key, Object value) { + registerQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + protected void registerInlineVersionno(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueVersionno(), "VERSIONNO", + "Versionno", "versionno"); + } + + abstract protected ConditionValue getCValueVersionno(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityGroupCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityGroupCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityGroupCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityScheduleMappingCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,393 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Collection; + +import jp.sf.pal.scheduler.db.allcommon.cbean.AbstractConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.SubQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; + +/** + * The abstract condition-query of FACILITY_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public abstract class AbstractBsFacilityScheduleMappingCQ extends + AbstractConditionQuery { + + //========================================================================== + // ========= + // Constructor + // =========== + public AbstractBsFacilityScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Table Name + // ========== + public String getTableDbName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + public String getTableSqlName() { + return "FACILITY_SCHEDULE_MAPPING"; + } + + //========================================================================== + // ========= + // Query + // ===== + + /** + * Equal(=). And NullIgnored, OnceRegistered. {PK : ID : NotNull : BIGINT} + * + * @param id The value of id as equal. + */ + public void setId_Equal(Long id) { + regId(CK_EQ, id); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as notEqual. + */ + public void setId_NotEqual(Long id) { + regId(CK_NE, id); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterThan. + */ + public void setId_GreaterThan(Long id) { + regId(CK_GT, id); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessThan. + */ + public void setId_LessThan(Long id) { + regId(CK_LT, id); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as greaterEqual. + */ + public void setId_GreaterEqual(Long id) { + regId(CK_GE, id); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param id The value of id as lessEqual. + */ + public void setId_LessEqual(Long id) { + regId(CK_LE, id); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as inScope. + */ + public void setId_InScope(Collection idList) { + regId(CK_INS, cTL(idList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param idList The collection of id as notInScope. + */ + public void setId_NotInScope(Collection idList) { + regId(CK_NINS, cTL(idList)); + } + + /** + * IsNull(is null). And OnceRegistered. + */ + public void setId_IsNull() { + regId(CK_ISN, DUMMY_OBJECT); + } + + /** + * IsNotNull(is not null). And OnceRegistered. + */ + public void setId_IsNotNull() { + regId(CK_ISNN, DUMMY_OBJECT); + } + + protected void regId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + protected void registerInlineId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueId(), "ID", "Id", "id"); + } + + abstract protected ConditionValue getCValueId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : BIGINT : FK to + * EVENT_SCHEDULE} + * + * @param scheduleId The value of scheduleId as equal. + */ + public void setScheduleId_Equal(Long scheduleId) { + regScheduleId(CK_EQ, scheduleId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as notEqual. + */ + public void setScheduleId_NotEqual(Long scheduleId) { + regScheduleId(CK_NE, scheduleId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterThan. + */ + public void setScheduleId_GreaterThan(Long scheduleId) { + regScheduleId(CK_GT, scheduleId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessThan. + */ + public void setScheduleId_LessThan(Long scheduleId) { + regScheduleId(CK_LT, scheduleId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as greaterEqual. + */ + public void setScheduleId_GreaterEqual(Long scheduleId) { + regScheduleId(CK_GE, scheduleId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param scheduleId The value of scheduleId as lessEqual. + */ + public void setScheduleId_LessEqual(Long scheduleId) { + regScheduleId(CK_LE, scheduleId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as inScope. + */ + public void setScheduleId_InScope(Collection scheduleIdList) { + regScheduleId(CK_INS, cTL(scheduleIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param scheduleIdList The collection of scheduleId as notInScope. + */ + public void setScheduleId_NotInScope(Collection scheduleIdList) { + regScheduleId(CK_NINS, cTL(scheduleIdList)); + } + + /** + * @param eventScheduleCBquery Query. + * @deprecated Please use inScopeEventSchedule(subQuery) method. + */ + public void setScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ eventScheduleCBquery) { + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_EventSchedule(eventScheduleCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(eventScheduleCBquery, "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + public void inScopeEventSchedule(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + EventScheduleCB cb = new EventScheduleCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepScheduleId_InScopeSubQuery_EventSchedule(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "SCHEDULE_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery); + + protected void regScheduleId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + protected void registerInlineScheduleId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueScheduleId(), "SCHEDULE_ID", + "ScheduleId", "scheduleId"); + } + + abstract protected ConditionValue getCValueScheduleId(); + + /** + * Equal(=). And NullIgnored, OnceRegistered. {NotNull : INTEGER : FK to + * FACILITY} + * + * @param facilityId The value of facilityId as equal. + */ + public void setFacilityId_Equal(Integer facilityId) { + regFacilityId(CK_EQ, facilityId); + } + + /** + * NotEqual(!=). And NullIgnored, OnceRegistered. + * + * @param facilityId The value of facilityId as notEqual. + */ + public void setFacilityId_NotEqual(Integer facilityId) { + regFacilityId(CK_NE, facilityId); + } + + /** + * GreaterThan(>). And NullIgnored, OnceRegistered. + * + * @param facilityId The value of facilityId as greaterThan. + */ + public void setFacilityId_GreaterThan(Integer facilityId) { + regFacilityId(CK_GT, facilityId); + } + + /** + * LessThan(<). And NullIgnored, OnceRegistered. + * + * @param facilityId The value of facilityId as lessThan. + */ + public void setFacilityId_LessThan(Integer facilityId) { + regFacilityId(CK_LT, facilityId); + } + + /** + * GreaterEqual(>=). And NullIgnored, OnceRegistered. + * + * @param facilityId The value of facilityId as greaterEqual. + */ + public void setFacilityId_GreaterEqual(Integer facilityId) { + regFacilityId(CK_GE, facilityId); + } + + /** + * LessEqual(<=). And NullIgnored, OnceRegistered. + * + * @param facilityId The value of facilityId as lessEqual. + */ + public void setFacilityId_LessEqual(Integer facilityId) { + regFacilityId(CK_LE, facilityId); + } + + /** + * InScope(in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param facilityIdList The collection of facilityId as inScope. + */ + public void setFacilityId_InScope(Collection facilityIdList) { + regFacilityId(CK_INS, cTL(facilityIdList)); + } + + /** + * NotInScope(not in (1, 2)). And NullIgnored, NullElementIgnored, + * SeveralRegistered. + * + * @param facilityIdList The collection of facilityId as notInScope. + */ + public void setFacilityId_NotInScope(Collection facilityIdList) { + regFacilityId(CK_NINS, cTL(facilityIdList)); + } + + /** + * @param facilityCBquery Query. + * @deprecated Please use inScopeFacility(subQuery) method. + */ + public void setFacilityId_InScopeSubQuery_Facility( + FacilityCQ facilityCBquery) { + String subQueryPropertyName = keepFacilityId_InScopeSubQuery_Facility(facilityCBquery);// for + // saving + // query + // - + // value + // . + registerInScopeSubQuery(facilityCBquery, "FACILITY_ID", "ID", + subQueryPropertyName); + } + + public void inScopeFacility(SubQuery subQuery) { + assertObjectNotNull("subQuery", subQuery); + FacilityCB cb = new FacilityCB(); + cb.xsetupForInScopeSubQuery(); + subQuery.query(cb); + String subQueryPropertyName = keepFacilityId_InScopeSubQuery_Facility(cb + .query());// for saving query-value. + registerInScopeSubQuery(cb.query(), "FACILITY_ID", "ID", + subQueryPropertyName); + } + + abstract public String keepFacilityId_InScopeSubQuery_Facility( + FacilityCQ subQuery); + + protected void regFacilityId(ConditionKey key, Object value) { + registerQuery(key, value, getCValueFacilityId(), "FACILITY_ID", + "FacilityId", "facilityId"); + } + + protected void registerInlineFacilityId(ConditionKey key, Object value) { + registerInlineQuery(key, value, getCValueFacilityId(), "FACILITY_ID", + "FacilityId", "facilityId"); + } + + abstract protected ConditionValue getCValueFacilityId(); + + // Very Internal (for Suppressing Warn about 'Not Use Import') + protected String getConditionBeanClassNameInternally() { + return FacilityScheduleMappingCB.class.getName(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/AbstractBsFacilityScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsEventScheduleCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -8,6 +8,7 @@ import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.ciq.EventScheduleCIQ; /** @@ -120,6 +121,23 @@ return "id_InScopeSubQuery_EventScheduleMappingList." + key; } + protected Map _id_InScopeSubQuery_FacilityScheduleMappingListMap; + + public Map getId_InScopeSubQuery_FacilityScheduleMappingList() { + return _id_InScopeSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_InScopeSubQuery_FacilityScheduleMappingListMap == null) { + _id_InScopeSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_InScopeSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_FacilityScheduleMappingList." + key; + } + protected Map _id_NotInScopeSubQuery_EventScheduleContentAsOneMap; public Map getId_NotInScopeSubQuery_EventScheduleContentAsOne() { @@ -154,6 +172,24 @@ return "id_NotInScopeSubQuery_EventScheduleMappingList." + key; } + protected Map _id_NotInScopeSubQuery_FacilityScheduleMappingListMap; + + public Map getId_NotInScopeSubQuery_FacilityScheduleMappingList() { + return _id_NotInScopeSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_NotInScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_FacilityScheduleMappingListMap == null) { + _id_NotInScopeSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_NotInScopeSubQuery_FacilityScheduleMappingListMap + .put(key, subQuery); + return "id_NotInScopeSubQuery_FacilityScheduleMappingList." + key; + } + protected Map _id_ExistsSubQuery_EventScheduleContentAsOneMap; public Map getId_ExistsSubQuery_EventScheduleContentAsOne() { @@ -188,6 +224,23 @@ return "id_ExistsSubQuery_EventScheduleMappingList." + key; } + protected Map _id_ExistsSubQuery_FacilityScheduleMappingListMap; + + public Map getId_ExistsSubQuery_FacilityScheduleMappingList() { + return _id_ExistsSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_ExistsSubQuery_FacilityScheduleMappingListMap == null) { + _id_ExistsSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_ExistsSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_FacilityScheduleMappingList." + key; + } + protected Map _id_NotExistsSubQuery_EventScheduleContentAsOneMap; public Map getId_NotExistsSubQuery_EventScheduleContentAsOne() { @@ -222,6 +275,23 @@ return "id_NotExistsSubQuery_EventScheduleMappingList." + key; } + protected Map _id_NotExistsSubQuery_FacilityScheduleMappingListMap; + + public Map getId_NotExistsSubQuery_FacilityScheduleMappingList() { + return _id_NotExistsSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_NotExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_NotExistsSubQuery_FacilityScheduleMappingListMap == null) { + _id_NotExistsSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_NotExistsSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_FacilityScheduleMappingList." + key; + } + protected Map _id_DeriveSubQuery_EventScheduleMappingListMap; public Map getId_DeriveSubQuery_EventScheduleMappingList() { @@ -239,6 +309,23 @@ return "id_DeriveSubQuery_EventScheduleMappingList." + key; } + protected Map _id_DeriveSubQuery_FacilityScheduleMappingListMap; + + public Map getId_DeriveSubQuery_FacilityScheduleMappingList() { + return _id_DeriveSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_DeriveSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_DeriveSubQuery_FacilityScheduleMappingListMap == null) { + _id_DeriveSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_DeriveSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_FacilityScheduleMappingList." + key; + } + public BsEventScheduleCQ addOrderBy_Id_Asc() { regOBA("ID"); return this; Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,619 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.FacilityCIQ; + +/** + * The base condition-query of FACILITY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityCQ extends AbstractBsFacilityCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
      {select ... from ... left outer join (select + * * from FACILITY) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public FacilityCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new FacilityCIQ(getChildQuery(), getSqlClause(), + getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
      {select ... from ... left outer join + * FACILITY on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public FacilityCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + FacilityCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_FacilityContentAsOneMap; + + public Map getId_InScopeSubQuery_FacilityContentAsOne() { + return _id_InScopeSubQuery_FacilityContentAsOneMap; + } + + public String keepId_InScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + if (_id_InScopeSubQuery_FacilityContentAsOneMap == null) { + _id_InScopeSubQuery_FacilityContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_FacilityContentAsOneMap.size() + 1); + _id_InScopeSubQuery_FacilityContentAsOneMap.put(key, subQuery); + return "id_InScopeSubQuery_FacilityContentAsOne." + key; + } + + protected Map _id_InScopeSubQuery_FacilityScheduleMappingListMap; + + public Map getId_InScopeSubQuery_FacilityScheduleMappingList() { + return _id_InScopeSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_InScopeSubQuery_FacilityScheduleMappingListMap == null) { + _id_InScopeSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_InScopeSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_InScopeSubQuery_FacilityScheduleMappingList." + key; + } + + protected Map _id_NotInScopeSubQuery_FacilityContentAsOneMap; + + public Map getId_NotInScopeSubQuery_FacilityContentAsOne() { + return _id_NotInScopeSubQuery_FacilityContentAsOneMap; + } + + public String keepId_NotInScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + if (_id_NotInScopeSubQuery_FacilityContentAsOneMap == null) { + _id_NotInScopeSubQuery_FacilityContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_FacilityContentAsOneMap.size() + 1); + _id_NotInScopeSubQuery_FacilityContentAsOneMap.put(key, subQuery); + return "id_NotInScopeSubQuery_FacilityContentAsOne." + key; + } + + protected Map _id_NotInScopeSubQuery_FacilityScheduleMappingListMap; + + public Map getId_NotInScopeSubQuery_FacilityScheduleMappingList() { + return _id_NotInScopeSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_NotInScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_NotInScopeSubQuery_FacilityScheduleMappingListMap == null) { + _id_NotInScopeSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_NotInScopeSubQuery_FacilityScheduleMappingListMap + .put(key, subQuery); + return "id_NotInScopeSubQuery_FacilityScheduleMappingList." + key; + } + + protected Map _id_ExistsSubQuery_FacilityContentAsOneMap; + + public Map getId_ExistsSubQuery_FacilityContentAsOne() { + return _id_ExistsSubQuery_FacilityContentAsOneMap; + } + + public String keepId_ExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + if (_id_ExistsSubQuery_FacilityContentAsOneMap == null) { + _id_ExistsSubQuery_FacilityContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_FacilityContentAsOneMap.size() + 1); + _id_ExistsSubQuery_FacilityContentAsOneMap.put(key, subQuery); + return "id_ExistsSubQuery_FacilityContentAsOne." + key; + } + + protected Map _id_ExistsSubQuery_FacilityScheduleMappingListMap; + + public Map getId_ExistsSubQuery_FacilityScheduleMappingList() { + return _id_ExistsSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_ExistsSubQuery_FacilityScheduleMappingListMap == null) { + _id_ExistsSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_ExistsSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_ExistsSubQuery_FacilityScheduleMappingList." + key; + } + + protected Map _id_NotExistsSubQuery_FacilityContentAsOneMap; + + public Map getId_NotExistsSubQuery_FacilityContentAsOne() { + return _id_NotExistsSubQuery_FacilityContentAsOneMap; + } + + public String keepId_NotExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + if (_id_NotExistsSubQuery_FacilityContentAsOneMap == null) { + _id_NotExistsSubQuery_FacilityContentAsOneMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_FacilityContentAsOneMap.size() + 1); + _id_NotExistsSubQuery_FacilityContentAsOneMap.put(key, subQuery); + return "id_NotExistsSubQuery_FacilityContentAsOne." + key; + } + + protected Map _id_NotExistsSubQuery_FacilityScheduleMappingListMap; + + public Map getId_NotExistsSubQuery_FacilityScheduleMappingList() { + return _id_NotExistsSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_NotExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_NotExistsSubQuery_FacilityScheduleMappingListMap == null) { + _id_NotExistsSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_NotExistsSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_NotExistsSubQuery_FacilityScheduleMappingList." + key; + } + + protected Map _id_DeriveSubQuery_FacilityScheduleMappingListMap; + + public Map getId_DeriveSubQuery_FacilityScheduleMappingList() { + return _id_DeriveSubQuery_FacilityScheduleMappingListMap; + } + + public String keepId_DeriveSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + if (_id_DeriveSubQuery_FacilityScheduleMappingListMap == null) { + _id_DeriveSubQuery_FacilityScheduleMappingListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_FacilityScheduleMappingListMap.size() + 1); + _id_DeriveSubQuery_FacilityScheduleMappingListMap.put(key, subQuery); + return "id_DeriveSubQuery_FacilityScheduleMappingList." + key; + } + + public BsFacilityCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsFacilityCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsFacilityCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsFacilityCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsFacilityCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsFacilityCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _groupId; + + public ConditionValue getGroupId() { + if (_groupId == null) { + _groupId = new ConditionValue(); + } + return _groupId; + } + + protected ConditionValue getCValueGroupId() { + return getGroupId(); + } + + protected Map _groupId_InScopeSubQuery_FacilityGroupMap; + + public Map getGroupId_InScopeSubQuery_FacilityGroup() { + return _groupId_InScopeSubQuery_FacilityGroupMap; + } + + public String keepGroupId_InScopeSubQuery_FacilityGroup( + FacilityGroupCQ subQuery) { + if (_groupId_InScopeSubQuery_FacilityGroupMap == null) { + _groupId_InScopeSubQuery_FacilityGroupMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_groupId_InScopeSubQuery_FacilityGroupMap.size() + 1); + _groupId_InScopeSubQuery_FacilityGroupMap.put(key, subQuery); + return "groupId_InScopeSubQuery_FacilityGroup." + key; + } + + public BsFacilityCQ addOrderBy_GroupId_Asc() { + regOBA("GROUP_ID"); + return this; + } + + public BsFacilityCQ addOrderBy_GroupId_Desc() { + regOBD("GROUP_ID"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsFacilityCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsFacilityCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsFacilityCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsFacilityCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsFacilityCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsFacilityCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsFacilityCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsFacilityCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsFacilityCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsFacilityCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsFacilityCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsFacilityCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsFacilityCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsFacilityCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsFacilityCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsFacilityCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + FacilityCQ baseQuery = (FacilityCQ) baseQueryAsSuper; + FacilityCQ unionQuery = (FacilityCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryFacilityGroup()) { + unionQuery.queryFacilityGroup().reflectRelationOnUnionQuery( + baseQuery.queryFacilityGroup(), + unionQuery.queryFacilityGroup()); + } + if (baseQuery.hasConditionQueryFacilityContentAsOne()) { + unionQuery.queryFacilityContentAsOne().reflectRelationOnUnionQuery( + baseQuery.queryFacilityContentAsOne(), + unionQuery.queryFacilityContentAsOne()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public FacilityGroupCQ queryFacilityGroup() { + return getConditionQueryFacilityGroup(); + } + + protected FacilityGroupCQ _conditionQueryFacilityGroup; + + public FacilityGroupCQ getConditionQueryFacilityGroup() { + if (_conditionQueryFacilityGroup == null) { + _conditionQueryFacilityGroup = createQueryFacilityGroup(); + setupOuterJoin_FacilityGroup(); + } + return _conditionQueryFacilityGroup; + } + + protected void setupOuterJoin_FacilityGroup() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("GROUP_ID"), + getConditionQueryFacilityGroup().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryFacilityGroup(), joinOnMap); + } + + protected FacilityGroupCQ createQueryFacilityGroup() { + String nrp = resolveNextRelationPath("FACILITY", "facilityGroup"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + FacilityGroupCQ cq = new FacilityGroupCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("facilityGroup"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryFacilityGroup() { + return _conditionQueryFacilityGroup != null; + } + + public FacilityContentCQ queryFacilityContentAsOne() { + return getConditionQueryFacilityContentAsOne(); + } + + protected FacilityContentCQ _conditionQueryFacilityContentAsOne; + + public FacilityContentCQ getConditionQueryFacilityContentAsOne() { + if (_conditionQueryFacilityContentAsOne == null) { + _conditionQueryFacilityContentAsOne = createQueryFacilityContentAsOne(); + setupOuterJoin_FacilityContentAsOne(); + } + return _conditionQueryFacilityContentAsOne; + } + + protected void setupOuterJoin_FacilityContentAsOne() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap + .put(getRealColumnName("ID"), + getConditionQueryFacilityContentAsOne() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryFacilityContentAsOne(), joinOnMap); + } + + protected FacilityContentCQ createQueryFacilityContentAsOne() { + String nrp = resolveNextRelationPath("FACILITY", "facilityContentAsOne"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + FacilityContentCQ cq = new FacilityContentCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("facilityContentAsOne"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryFacilityContentAsOne() { + return _conditionQueryFacilityContentAsOne != null; + } + + protected String getConditionQueryClassNameInternally() { + return FacilityCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityContentCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityContentCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityContentCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,212 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.FacilityContentCIQ; + +/** + * The base condition-query of FACILITY_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityContentCQ extends AbstractBsFacilityContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityContentCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityContentCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
      {select ... from ... left outer join (select + * * from FACILITY_CONTENT) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public FacilityContentCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new FacilityContentCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
      {select ... from ... left outer join + * FACILITY_CONTENT on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public FacilityContentCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + FacilityContentCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_FacilityMap; + + public Map getId_InScopeSubQuery_Facility() { + return _id_InScopeSubQuery_FacilityMap; + } + + public String keepId_InScopeSubQuery_Facility(FacilityCQ subQuery) { + if (_id_InScopeSubQuery_FacilityMap == null) { + _id_InScopeSubQuery_FacilityMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_FacilityMap.size() + 1); + _id_InScopeSubQuery_FacilityMap.put(key, subQuery); + return "id_InScopeSubQuery_Facility." + key; + } + + public BsFacilityContentCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsFacilityContentCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _content; + + public ConditionValue getContent() { + if (_content == null) { + _content = new ConditionValue(); + } + return _content; + } + + protected ConditionValue getCValueContent() { + return getContent(); + } + + public BsFacilityContentCQ addOrderBy_Content_Asc() { + regOBA("CONTENT"); + return this; + } + + public BsFacilityContentCQ addOrderBy_Content_Desc() { + regOBD("CONTENT"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsFacilityContentCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsFacilityContentCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + FacilityContentCQ baseQuery = (FacilityContentCQ) baseQueryAsSuper; + FacilityContentCQ unionQuery = (FacilityContentCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryFacility()) { + unionQuery.queryFacility().reflectRelationOnUnionQuery( + baseQuery.queryFacility(), unionQuery.queryFacility()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public FacilityCQ queryFacility() { + return getConditionQueryFacility(); + } + + protected FacilityCQ _conditionQueryFacility; + + public FacilityCQ getConditionQueryFacility() { + if (_conditionQueryFacility == null) { + _conditionQueryFacility = createQueryFacility(); + setupOuterJoin_Facility(); + } + return _conditionQueryFacility; + } + + protected void setupOuterJoin_Facility() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("ID"), getConditionQueryFacility() + .getRealColumnName("ID")); + registerOuterJoin(getConditionQueryFacility(), joinOnMap); + } + + protected FacilityCQ createQueryFacility() { + String nrp = resolveNextRelationPath("FACILITY_CONTENT", "facility"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + FacilityCQ cq = new FacilityCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("facility"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryFacility() { + return _conditionQueryFacility != null; + } + + protected String getConditionQueryClassNameInternally() { + return FacilityContentCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityContentCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityGroupCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityGroupCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityGroupCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,419 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.FacilityGroupCIQ; + +/** + * The base condition-query of FACILITY_GROUP. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityGroupCQ extends AbstractBsFacilityGroupCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityGroupCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityGroupCQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
      {select ... from ... left outer join (select + * * from FACILITY_GROUP) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public FacilityGroupCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new FacilityGroupCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
      {select ... from ... left outer join + * FACILITY_GROUP on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public FacilityGroupCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + FacilityGroupCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + protected Map _id_InScopeSubQuery_FacilityListMap; + + public Map getId_InScopeSubQuery_FacilityList() { + return _id_InScopeSubQuery_FacilityListMap; + } + + public String keepId_InScopeSubQuery_FacilityList(FacilityCQ subQuery) { + if (_id_InScopeSubQuery_FacilityListMap == null) { + _id_InScopeSubQuery_FacilityListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_InScopeSubQuery_FacilityListMap.size() + 1); + _id_InScopeSubQuery_FacilityListMap.put(key, subQuery); + return "id_InScopeSubQuery_FacilityList." + key; + } + + protected Map _id_NotInScopeSubQuery_FacilityListMap; + + public Map getId_NotInScopeSubQuery_FacilityList() { + return _id_NotInScopeSubQuery_FacilityListMap; + } + + public String keepId_NotInScopeSubQuery_FacilityList(FacilityCQ subQuery) { + if (_id_NotInScopeSubQuery_FacilityListMap == null) { + _id_NotInScopeSubQuery_FacilityListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotInScopeSubQuery_FacilityListMap.size() + 1); + _id_NotInScopeSubQuery_FacilityListMap.put(key, subQuery); + return "id_NotInScopeSubQuery_FacilityList." + key; + } + + protected Map _id_ExistsSubQuery_FacilityListMap; + + public Map getId_ExistsSubQuery_FacilityList() { + return _id_ExistsSubQuery_FacilityListMap; + } + + public String keepId_ExistsSubQuery_FacilityList(FacilityCQ subQuery) { + if (_id_ExistsSubQuery_FacilityListMap == null) { + _id_ExistsSubQuery_FacilityListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_ExistsSubQuery_FacilityListMap.size() + 1); + _id_ExistsSubQuery_FacilityListMap.put(key, subQuery); + return "id_ExistsSubQuery_FacilityList." + key; + } + + protected Map _id_NotExistsSubQuery_FacilityListMap; + + public Map getId_NotExistsSubQuery_FacilityList() { + return _id_NotExistsSubQuery_FacilityListMap; + } + + public String keepId_NotExistsSubQuery_FacilityList(FacilityCQ subQuery) { + if (_id_NotExistsSubQuery_FacilityListMap == null) { + _id_NotExistsSubQuery_FacilityListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_NotExistsSubQuery_FacilityListMap.size() + 1); + _id_NotExistsSubQuery_FacilityListMap.put(key, subQuery); + return "id_NotExistsSubQuery_FacilityList." + key; + } + + protected Map _id_DeriveSubQuery_FacilityListMap; + + public Map getId_DeriveSubQuery_FacilityList() { + return _id_DeriveSubQuery_FacilityListMap; + } + + public String keepId_DeriveSubQuery_FacilityList(FacilityCQ subQuery) { + if (_id_DeriveSubQuery_FacilityListMap == null) { + _id_DeriveSubQuery_FacilityListMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_id_DeriveSubQuery_FacilityListMap.size() + 1); + _id_DeriveSubQuery_FacilityListMap.put(key, subQuery); + return "id_DeriveSubQuery_FacilityList." + key; + } + + public BsFacilityGroupCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _name; + + public ConditionValue getName() { + if (_name == null) { + _name = new ConditionValue(); + } + return _name; + } + + protected ConditionValue getCValueName() { + return getName(); + } + + public BsFacilityGroupCQ addOrderBy_Name_Asc() { + regOBA("NAME"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_Name_Desc() { + regOBD("NAME"); + return this; + } + + protected ConditionValue _sortOrder; + + public ConditionValue getSortOrder() { + if (_sortOrder == null) { + _sortOrder = new ConditionValue(); + } + return _sortOrder; + } + + protected ConditionValue getCValueSortOrder() { + return getSortOrder(); + } + + public BsFacilityGroupCQ addOrderBy_SortOrder_Asc() { + regOBA("SORT_ORDER"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_SortOrder_Desc() { + regOBD("SORT_ORDER"); + return this; + } + + protected ConditionValue _createdTime; + + public ConditionValue getCreatedTime() { + if (_createdTime == null) { + _createdTime = new ConditionValue(); + } + return _createdTime; + } + + protected ConditionValue getCValueCreatedTime() { + return getCreatedTime(); + } + + public BsFacilityGroupCQ addOrderBy_CreatedTime_Asc() { + regOBA("CREATED_TIME"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_CreatedTime_Desc() { + regOBD("CREATED_TIME"); + return this; + } + + protected ConditionValue _createdBy; + + public ConditionValue getCreatedBy() { + if (_createdBy == null) { + _createdBy = new ConditionValue(); + } + return _createdBy; + } + + protected ConditionValue getCValueCreatedBy() { + return getCreatedBy(); + } + + public BsFacilityGroupCQ addOrderBy_CreatedBy_Asc() { + regOBA("CREATED_BY"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_CreatedBy_Desc() { + regOBD("CREATED_BY"); + return this; + } + + protected ConditionValue _updatedTime; + + public ConditionValue getUpdatedTime() { + if (_updatedTime == null) { + _updatedTime = new ConditionValue(); + } + return _updatedTime; + } + + protected ConditionValue getCValueUpdatedTime() { + return getUpdatedTime(); + } + + public BsFacilityGroupCQ addOrderBy_UpdatedTime_Asc() { + regOBA("UPDATED_TIME"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_UpdatedTime_Desc() { + regOBD("UPDATED_TIME"); + return this; + } + + protected ConditionValue _updatedBy; + + public ConditionValue getUpdatedBy() { + if (_updatedBy == null) { + _updatedBy = new ConditionValue(); + } + return _updatedBy; + } + + protected ConditionValue getCValueUpdatedBy() { + return getUpdatedBy(); + } + + public BsFacilityGroupCQ addOrderBy_UpdatedBy_Asc() { + regOBA("UPDATED_BY"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_UpdatedBy_Desc() { + regOBD("UPDATED_BY"); + return this; + } + + protected ConditionValue _deletedTime; + + public ConditionValue getDeletedTime() { + if (_deletedTime == null) { + _deletedTime = new ConditionValue(); + } + return _deletedTime; + } + + protected ConditionValue getCValueDeletedTime() { + return getDeletedTime(); + } + + public BsFacilityGroupCQ addOrderBy_DeletedTime_Asc() { + regOBA("DELETED_TIME"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_DeletedTime_Desc() { + regOBD("DELETED_TIME"); + return this; + } + + protected ConditionValue _deletedBy; + + public ConditionValue getDeletedBy() { + if (_deletedBy == null) { + _deletedBy = new ConditionValue(); + } + return _deletedBy; + } + + protected ConditionValue getCValueDeletedBy() { + return getDeletedBy(); + } + + public BsFacilityGroupCQ addOrderBy_DeletedBy_Asc() { + regOBA("DELETED_BY"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_DeletedBy_Desc() { + regOBD("DELETED_BY"); + return this; + } + + protected ConditionValue _versionno; + + public ConditionValue getVersionno() { + if (_versionno == null) { + _versionno = new ConditionValue(); + } + return _versionno; + } + + protected ConditionValue getCValueVersionno() { + return getVersionno(); + } + + public BsFacilityGroupCQ addOrderBy_Versionno_Asc() { + regOBA("VERSIONNO"); + return this; + } + + public BsFacilityGroupCQ addOrderBy_Versionno_Desc() { + regOBD("VERSIONNO"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsFacilityGroupCQ addSpecifiedDerivedOrderBy_Asc(String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsFacilityGroupCQ addSpecifiedDerivedOrderBy_Desc(String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + protected String getConditionQueryClassNameInternally() { + return FacilityGroupCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityGroupCQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityScheduleMappingCQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityScheduleMappingCQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityScheduleMappingCQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,298 @@ +package jp.sf.pal.scheduler.db.cbean.cq.bs; + +import java.util.Map; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.ciq.FacilityScheduleMappingCIQ; + +/** + * The base condition-query of FACILITY_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class BsFacilityScheduleMappingCQ extends + AbstractBsFacilityScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected FacilityScheduleMappingCIQ _inlineQuery; + + //========================================================================== + // ========= + // Constructor + // =========== + public BsFacilityScheduleMappingCQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel) { + super(childQuery, sqlClause, aliasName, nestLevel); + } + + //========================================================================== + // ========= + // Inline + // ====== + /** + * Prepare inline query.
      {select ... from ... left outer join (select + * * from FACILITY_SCHEDULE_MAPPING) where abc = [abc] ...} + * + * @return Inline query. (NotNull) + */ + public FacilityScheduleMappingCIQ inline() { + if (_inlineQuery == null) { + _inlineQuery = new FacilityScheduleMappingCIQ(getChildQuery(), + getSqlClause(), getAliasName(), getNestLevel(), this); + } + _inlineQuery.xsetOnClauseInline(false); + return _inlineQuery; + } + + /** + * Prepare on-clause query.
      {select ... from ... left outer join + * FACILITY_SCHEDULE_MAPPING on ... and abc = [abc] ...} + * + * @return On-clause query. (NotNull) + */ + public FacilityScheduleMappingCIQ on() { + if (isBaseQuery(this)) { + throw new UnsupportedOperationException( + "Unsupported onClause of Base Table!"); + } + FacilityScheduleMappingCIQ inlineQuery = inline(); + inlineQuery.xsetOnClauseInline(true); + return inlineQuery; + } + + //========================================================================== + // ========= + // Query + // ===== + + protected ConditionValue _id; + + public ConditionValue getId() { + if (_id == null) { + _id = new ConditionValue(); + } + return _id; + } + + protected ConditionValue getCValueId() { + return getId(); + } + + public BsFacilityScheduleMappingCQ addOrderBy_Id_Asc() { + regOBA("ID"); + return this; + } + + public BsFacilityScheduleMappingCQ addOrderBy_Id_Desc() { + regOBD("ID"); + return this; + } + + protected ConditionValue _scheduleId; + + public ConditionValue getScheduleId() { + if (_scheduleId == null) { + _scheduleId = new ConditionValue(); + } + return _scheduleId; + } + + protected ConditionValue getCValueScheduleId() { + return getScheduleId(); + } + + protected Map _scheduleId_InScopeSubQuery_EventScheduleMap; + + public Map getScheduleId_InScopeSubQuery_EventSchedule() { + return _scheduleId_InScopeSubQuery_EventScheduleMap; + } + + public String keepScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery) { + if (_scheduleId_InScopeSubQuery_EventScheduleMap == null) { + _scheduleId_InScopeSubQuery_EventScheduleMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_scheduleId_InScopeSubQuery_EventScheduleMap.size() + 1); + _scheduleId_InScopeSubQuery_EventScheduleMap.put(key, subQuery); + return "scheduleId_InScopeSubQuery_EventSchedule." + key; + } + + public BsFacilityScheduleMappingCQ addOrderBy_ScheduleId_Asc() { + regOBA("SCHEDULE_ID"); + return this; + } + + public BsFacilityScheduleMappingCQ addOrderBy_ScheduleId_Desc() { + regOBD("SCHEDULE_ID"); + return this; + } + + protected ConditionValue _facilityId; + + public ConditionValue getFacilityId() { + if (_facilityId == null) { + _facilityId = new ConditionValue(); + } + return _facilityId; + } + + protected ConditionValue getCValueFacilityId() { + return getFacilityId(); + } + + protected Map _facilityId_InScopeSubQuery_FacilityMap; + + public Map getFacilityId_InScopeSubQuery_Facility() { + return _facilityId_InScopeSubQuery_FacilityMap; + } + + public String keepFacilityId_InScopeSubQuery_Facility(FacilityCQ subQuery) { + if (_facilityId_InScopeSubQuery_FacilityMap == null) { + _facilityId_InScopeSubQuery_FacilityMap = newLinkedHashMap(); + } + String key = "subQueryMapKey" + + (_facilityId_InScopeSubQuery_FacilityMap.size() + 1); + _facilityId_InScopeSubQuery_FacilityMap.put(key, subQuery); + return "facilityId_InScopeSubQuery_Facility." + key; + } + + public BsFacilityScheduleMappingCQ addOrderBy_FacilityId_Asc() { + regOBA("FACILITY_ID"); + return this; + } + + public BsFacilityScheduleMappingCQ addOrderBy_FacilityId_Desc() { + regOBD("FACILITY_ID"); + return this; + } + + //========================================================================== + // ========= + // Specified Derived OrderBy + // ========================= + public BsFacilityScheduleMappingCQ addSpecifiedDerivedOrderBy_Asc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Asc(aliasName); + return this; + } + + public BsFacilityScheduleMappingCQ addSpecifiedDerivedOrderBy_Desc( + String aliasName) { + registerSpecifiedDerivedOrderBy_Desc(aliasName); + return this; + } + + //========================================================================== + // ========= + // Union Query + // =========== + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + FacilityScheduleMappingCQ baseQuery = (FacilityScheduleMappingCQ) baseQueryAsSuper; + FacilityScheduleMappingCQ unionQuery = (FacilityScheduleMappingCQ) unionQueryAsSuper; + if (baseQuery.hasConditionQueryEventSchedule()) { + unionQuery.queryEventSchedule().reflectRelationOnUnionQuery( + baseQuery.queryEventSchedule(), + unionQuery.queryEventSchedule()); + } + if (baseQuery.hasConditionQueryFacility()) { + unionQuery.queryFacility().reflectRelationOnUnionQuery( + baseQuery.queryFacility(), unionQuery.queryFacility()); + } + } + + //========================================================================== + // ========= + // Foreign Query + // ============= + + public EventScheduleCQ queryEventSchedule() { + return getConditionQueryEventSchedule(); + } + + protected EventScheduleCQ _conditionQueryEventSchedule; + + public EventScheduleCQ getConditionQueryEventSchedule() { + if (_conditionQueryEventSchedule == null) { + _conditionQueryEventSchedule = createQueryEventSchedule(); + setupOuterJoin_EventSchedule(); + } + return _conditionQueryEventSchedule; + } + + protected void setupOuterJoin_EventSchedule() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("SCHEDULE_ID"), + getConditionQueryEventSchedule().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryEventSchedule(), joinOnMap); + } + + protected EventScheduleCQ createQueryEventSchedule() { + String nrp = resolveNextRelationPath("FACILITY_SCHEDULE_MAPPING", + "eventSchedule"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + EventScheduleCQ cq = new EventScheduleCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("eventSchedule"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryEventSchedule() { + return _conditionQueryEventSchedule != null; + } + + public FacilityCQ queryFacility() { + return getConditionQueryFacility(); + } + + protected FacilityCQ _conditionQueryFacility; + + public FacilityCQ getConditionQueryFacility() { + if (_conditionQueryFacility == null) { + _conditionQueryFacility = createQueryFacility(); + setupOuterJoin_Facility(); + } + return _conditionQueryFacility; + } + + protected void setupOuterJoin_Facility() { + Map joinOnMap = newLinkedHashMap(); + joinOnMap.put(getRealColumnName("FACILITY_ID"), + getConditionQueryFacility().getRealColumnName("ID")); + registerOuterJoin(getConditionQueryFacility(), joinOnMap); + } + + protected FacilityCQ createQueryFacility() { + String nrp = resolveNextRelationPath("FACILITY_SCHEDULE_MAPPING", + "facility"); + String jan = resolveJoinAliasName(nrp, getNextNestLevel()); + FacilityCQ cq = new FacilityCQ(this, getSqlClause(), jan, + getNextNestLevel()); + cq.xsetForeignPropertyName("facility"); + cq.xsetRelationPath(nrp); + return cq; + } + + public boolean hasConditionQueryFacility() { + return _conditionQueryFacility != null; + } + + protected String getConditionQueryClassNameInternally() { + return FacilityScheduleMappingCQ.class.getName(); + } + + protected String getMapClassNameInternally() { + return Map.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/bs/BsFacilityScheduleMappingCQ.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/EventScheduleCIQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -8,6 +8,7 @@ import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleContentCQ; import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsEventScheduleCQ; import jp.sf.pal.scheduler.db.cbean.cq.bs.BsEventScheduleCQ; @@ -106,6 +107,12 @@ return _myCQ.keepId_InScopeSubQuery_EventScheduleMappingList(subQuery); } + public String keepId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + return _myCQ + .keepId_InScopeSubQuery_FacilityScheduleMappingList(subQuery); + } + public String keepId_NotInScopeSubQuery_EventScheduleContentAsOne( EventScheduleContentCQ subQuery) { return _myCQ @@ -118,6 +125,12 @@ .keepId_NotInScopeSubQuery_EventScheduleMappingList(subQuery); } + public String keepId_NotInScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_FacilityScheduleMappingList(subQuery); + } + public String keepId_ExistsSubQuery_EventScheduleContentAsOne( EventScheduleContentCQ subQuery) { throw new UnsupportedOperationException( @@ -130,6 +143,12 @@ "ExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepId_NotExistsSubQuery_EventScheduleContentAsOne( EventScheduleContentCQ subQuery) { throw new UnsupportedOperationException( @@ -142,12 +161,24 @@ "NotExistsSubQuery at inline() is unsupported! Sorry!"); } + public String keepId_NotExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + public String keepId_DeriveSubQuery_EventScheduleMappingList( EventScheduleMappingCQ subQuery) { throw new UnsupportedOperationException( "DeriveSubQuery at inline() is unsupported! Sorry!"); } + public String keepId_DeriveSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + protected ConditionValue getCValueTitle() { return _myCQ.getTitle(); } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityCIQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,200 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsFacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityCQ; + +/** + * The condition-inline-query of FACILITY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityCIQ extends AbstractBsFacilityCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsFacilityCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public FacilityCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsFacilityCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_FacilityContentAsOne(subQuery); + } + + public String keepId_InScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + return _myCQ + .keepId_InScopeSubQuery_FacilityScheduleMappingList(subQuery); + } + + public String keepId_NotInScopeSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_FacilityContentAsOne(subQuery); + } + + public String keepId_NotInScopeSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + return _myCQ + .keepId_NotInScopeSubQuery_FacilityScheduleMappingList(subQuery); + } + + public String keepId_ExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_ExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_FacilityContentAsOne( + FacilityContentCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_FacilityScheduleMappingList( + FacilityScheduleMappingCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueGroupId() { + return _myCQ.getGroupId(); + } + + public String keepGroupId_InScopeSubQuery_FacilityGroup( + FacilityGroupCQ subQuery) { + return _myCQ.keepGroupId_InScopeSubQuery_FacilityGroup(subQuery); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityContentCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityContentCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityContentCIQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,109 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsFacilityContentCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityContentCQ; + +/** + * The condition-inline-query of FACILITY_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContentCIQ extends AbstractBsFacilityContentCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsFacilityContentCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public FacilityContentCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsFacilityContentCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_Facility(FacilityCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_Facility(subQuery); + } + + protected ConditionValue getCValueContent() { + return _myCQ.getContent(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityContentCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityContentCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityGroupCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityGroupCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityGroupCIQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,160 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsFacilityGroupCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityGroupCQ; + +/** + * The condition-inline-query of FACILITY_GROUP. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroupCIQ extends AbstractBsFacilityGroupCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsFacilityGroupCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public FacilityGroupCIQ(ConditionQuery childQuery, SqlClause sqlClause, + String aliasName, int nestLevel, BsFacilityGroupCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + public String keepId_InScopeSubQuery_FacilityList(FacilityCQ subQuery) { + return _myCQ.keepId_InScopeSubQuery_FacilityList(subQuery); + } + + public String keepId_NotInScopeSubQuery_FacilityList(FacilityCQ subQuery) { + return _myCQ.keepId_NotInScopeSubQuery_FacilityList(subQuery); + } + + public String keepId_ExistsSubQuery_FacilityList(FacilityCQ subQuery) { + throw new UnsupportedOperationException( + "ExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_NotExistsSubQuery_FacilityList(FacilityCQ subQuery) { + throw new UnsupportedOperationException( + "NotExistsSubQuery at inline() is unsupported! Sorry!"); + } + + public String keepId_DeriveSubQuery_FacilityList(FacilityCQ subQuery) { + throw new UnsupportedOperationException( + "DeriveSubQuery at inline() is unsupported! Sorry!"); + } + + protected ConditionValue getCValueName() { + return _myCQ.getName(); + } + + protected ConditionValue getCValueSortOrder() { + return _myCQ.getSortOrder(); + } + + protected ConditionValue getCValueCreatedTime() { + return _myCQ.getCreatedTime(); + } + + protected ConditionValue getCValueCreatedBy() { + return _myCQ.getCreatedBy(); + } + + protected ConditionValue getCValueUpdatedTime() { + return _myCQ.getUpdatedTime(); + } + + protected ConditionValue getCValueUpdatedBy() { + return _myCQ.getUpdatedBy(); + } + + protected ConditionValue getCValueDeletedTime() { + return _myCQ.getDeletedTime(); + } + + protected ConditionValue getCValueDeletedBy() { + return _myCQ.getDeletedBy(); + } + + protected ConditionValue getCValueVersionno() { + return _myCQ.getVersionno(); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityGroupCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityGroupCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityScheduleMappingCIQ.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityScheduleMappingCIQ.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityScheduleMappingCIQ.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,121 @@ +package jp.sf.pal.scheduler.db.cbean.cq.ciq; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.allcommon.cbean.ckey.ConditionKey; +import jp.sf.pal.scheduler.db.allcommon.cbean.coption.ConditionOption; +import jp.sf.pal.scheduler.db.allcommon.cbean.cvalue.ConditionValue; +import jp.sf.pal.scheduler.db.allcommon.cbean.sqlclause.SqlClause; +import jp.sf.pal.scheduler.db.cbean.cq.EventScheduleCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.AbstractBsFacilityScheduleMappingCQ; +import jp.sf.pal.scheduler.db.cbean.cq.bs.BsFacilityScheduleMappingCQ; + +/** + * The condition-inline-query of FACILITY_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMappingCIQ extends + AbstractBsFacilityScheduleMappingCQ { + + //========================================================================== + // ========= + // Attribute + // ========= + protected BsFacilityScheduleMappingCQ _myCQ; + + //========================================================================== + // ========= + // Constructor + // =========== + public FacilityScheduleMappingCIQ(ConditionQuery childQuery, + SqlClause sqlClause, String aliasName, int nestLevel, + BsFacilityScheduleMappingCQ myCQ) { + super(childQuery, sqlClause, aliasName, nestLevel); + _myCQ = myCQ; + _foreignPropertyName = _myCQ.getForeignPropertyName();// Accept foreign + // property name. + _relationPath = _myCQ.getRelationPath();// Accept relation path. + } + + //========================================================================== + // ========= + // Override about Register + // ======================= + @Override + protected void reflectRelationOnUnionQuery(ConditionQuery baseQueryAsSuper, + ConditionQuery unionQueryAsSuper) { + throw new UnsupportedOperationException( + "InlineQuery must not need UNION method: " + baseQueryAsSuper + + " : " + unionQueryAsSuper); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName); + } + + @Override + protected void setupConditionValueAndRegisterWhereClause(ConditionKey key, + Object value, ConditionValue cvalue, String colName, + String capPropName, String uncapPropName, ConditionOption option) { + registerInlineQuery(key, value, cvalue, colName, capPropName, + uncapPropName, option); + } + + @Override + protected void registerWhereClause(String whereClause) { + registerInlineWhereClause(whereClause); + } + + @Override + protected String getInScopeSubQueryRealColumnName(String columnName) { + if (_onClauseInline) { + throw new UnsupportedOperationException( + "InScopeSubQuery of on-clause is unsupported"); + } + return _onClauseInline ? getRealAliasName() + "." + columnName + : columnName; + } + + @Override + protected void registerExistsSubQuery(ConditionQuery subQuery, + String columnName, String relatedColumnName, String propertyName) { + throw new UnsupportedOperationException( + "Sorry! ExistsSubQuery at inline view is unsupported. So please use InScopeSubQyery."); + } + + //========================================================================== + // ========= + // Override about Query + // ==================== + protected ConditionValue getCValueId() { + return _myCQ.getId(); + } + + protected ConditionValue getCValueScheduleId() { + return _myCQ.getScheduleId(); + } + + public String keepScheduleId_InScopeSubQuery_EventSchedule( + EventScheduleCQ subQuery) { + return _myCQ.keepScheduleId_InScopeSubQuery_EventSchedule(subQuery); + } + + protected ConditionValue getCValueFacilityId() { + return _myCQ.getFacilityId(); + } + + public String keepFacilityId_InScopeSubQuery_Facility(FacilityCQ subQuery) { + return _myCQ.keepFacilityId_InScopeSubQuery_Facility(subQuery); + } + + protected String getConditionQueryClassNameInternally() { + return FacilityScheduleMappingCQ.class.getName(); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/cq/ciq/FacilityScheduleMappingCIQ.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityContentNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityContentNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityContentNss.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,41 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityContentCQ; + +/** + * The nest-select-setupper of FACILITY_CONTENT. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContentNss { + + protected FacilityContentCQ _query; + + public FacilityContentNss(FacilityContentCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public FacilityNss withFacility() { + _query.doNss(new FacilityContentCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryFacility(); + } + }); + return new FacilityNss(_query.queryFacility()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityContentNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityGroupNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityGroupNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityGroupNss.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,32 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.cbean.cq.FacilityGroupCQ; + +/** + * The nest-select-setupper of FACILITY_GROUP. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroupNss { + + protected FacilityGroupCQ _query; + + public FacilityGroupNss(FacilityGroupCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityGroupNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityNss.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,49 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityCQ; + +/** + * The nest-select-setupper of FACILITY. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityNss { + + protected FacilityCQ _query; + + public FacilityNss(FacilityCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public FacilityGroupNss withFacilityGroup() { + _query.doNss(new FacilityCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryFacilityGroup(); + } + }); + return new FacilityGroupNss(_query.queryFacilityGroup()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== + public FacilityContentNss withFacilityContentAsOne() { + _query.doNss(new FacilityCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryFacilityContentAsOne(); + } + }); + return new FacilityContentNss(_query.queryFacilityContentAsOne()); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityScheduleMappingNss.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityScheduleMappingNss.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityScheduleMappingNss.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,50 @@ +package jp.sf.pal.scheduler.db.cbean.nss; + +import jp.sf.pal.scheduler.db.allcommon.cbean.ConditionQuery; +import jp.sf.pal.scheduler.db.cbean.cq.FacilityScheduleMappingCQ; + +/** + * The nest-select-setupper of FACILITY_SCHEDULE_MAPPING. + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMappingNss { + + protected FacilityScheduleMappingCQ _query; + + public FacilityScheduleMappingNss(FacilityScheduleMappingCQ query) { + _query = query; + } + + public boolean hasConditionQuery() { + return _query != null; + } + + //========================================================================== + // ========= + // With Nested Foreign Table + // ========================= + public EventScheduleNss withEventSchedule() { + _query.doNss(new FacilityScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryEventSchedule(); + } + }); + return new EventScheduleNss(_query.queryEventSchedule()); + } + + public FacilityNss withFacility() { + _query.doNss(new FacilityScheduleMappingCQ.NssCall() { + public ConditionQuery qf() { + return _query.queryFacility(); + } + }); + return new FacilityNss(_query.queryFacility()); + } + + //========================================================================== + // ========= + // With Nested Referrer Table + // ========================== +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/cbean/nss/FacilityScheduleMappingNss.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of FACILITY. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityBhv extends jp.sf.pal.scheduler.db.bsbhv.BsFacilityBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityContentBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityContentBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityContentBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of FACILITY_CONTENT. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContentBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsFacilityContentBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityContentBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityGroupBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityGroupBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityGroupBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of FACILITY_GROUP. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroupBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsFacilityGroupBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityGroupBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityScheduleMappingBhv.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityScheduleMappingBhv.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityScheduleMappingBhv.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exbhv; + +/** + * The behavior of FACILITY_SCHEDULE_MAPPING. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMappingBhv extends + jp.sf.pal.scheduler.db.bsbhv.BsFacilityScheduleMappingBhv { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exbhv/FacilityScheduleMappingBhv.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityContentDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityContentDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityContentDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of FACILITY_CONTENT.
      + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface FacilityContentDao extends + jp.sf.pal.scheduler.db.bsdao.BsFacilityContentDao { +} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,14 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of FACILITY.
      + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface FacilityDao extends jp.sf.pal.scheduler.db.bsdao.BsFacilityDao { +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityDao.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityGroupDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityGroupDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityGroupDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of FACILITY_GROUP.
      + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface FacilityGroupDao extends + jp.sf.pal.scheduler.db.bsdao.BsFacilityGroupDao { +} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityScheduleMappingDao.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityScheduleMappingDao.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exdao/FacilityScheduleMappingDao.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,15 @@ +package jp.sf.pal.scheduler.db.exdao; + +/** + * The dao interface of FACILITY_SCHEDULE_MAPPING.
      + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public interface FacilityScheduleMappingDao extends + jp.sf.pal.scheduler.db.bsdao.BsFacilityScheduleMappingDao { +} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/Facility.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/Facility.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/Facility.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,31 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of FACILITY. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class Facility extends jp.sf.pal.scheduler.db.bsentity.BsFacility { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; + + public String getContent() { + if (getFacilityContentAsOne() != null) { + return getFacilityContentAsOne().getContent(); + } + return null; + } + + public void setContent(String content) { + if (getFacilityContentAsOne() == null) { + setFacilityContentAsOne(new FacilityContent()); + } + getFacilityContentAsOne().setContent(content); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/Facility.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityContent.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityContent.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityContent.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of FACILITY_CONTENT. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityContent extends + jp.sf.pal.scheduler.db.bsentity.BsFacilityContent { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityContent.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityGroup.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityGroup.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityGroup.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of FACILITY_GROUP. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityGroup extends + jp.sf.pal.scheduler.db.bsentity.BsFacilityGroup { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityGroup.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,18 @@ +package jp.sf.pal.scheduler.db.exentity; + +/** + * The entity of FACILITY_SCHEDULE_MAPPING. + *

      + * You can implement your original methods here. This class is NOT overrided + * when re-generating. + *

      + * + * @author DBFlute(AutoGenerator) + */ + ¡÷ SuppressWarnings("unchecked") +public class FacilityScheduleMapping extends + jp.sf.pal.scheduler.db.bsentity.BsFacilityScheduleMapping { + + /** Serial version UID. (Default) */ + private static final long serialVersionUID = 1L; +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,45 @@ +package jp.sf.pal.scheduler.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.form.admin.facility.FacilityForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface FacilityDxo extends Serializable { + + @ExcludeNull + @ConversionRule("id : id" // + + ", name : name" // + + ", sortOrder : sortOrder" // + + ", groupId : groupId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + ) + public void convertFromFacilityToForm(Facility groupInfo, FacilityForm form); + + @ExcludeNull + @ConversionRule(// + "name : name" // + + ", groupId : groupId" // + // + ", sortOrder : sortOrder" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + ) + public void convertFromFormToFacility(FacilityForm form, Facility groupInfo); + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityGroupDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityGroupDxo.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityGroupDxo.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,43 @@ +package jp.sf.pal.scheduler.dxo; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.form.admin.facility.FacilityGroupForm; + +import org.seasar.extension.dxo.annotation.ConversionRule; +import org.seasar.extension.dxo.annotation.ExcludeNull; + +public interface FacilityGroupDxo extends Serializable { + + @ExcludeNull + @ConversionRule("id : id" // + + ", name : name" // + + ", sortOrder : sortOrder" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFacilityGroupToForm(FacilityGroup groupInfo, + FacilityGroupForm form); + + @ExcludeNull + @ConversionRule(// + "name : name" // + // + ", sortOrder : sortOrder" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToFacilityGroup(FacilityGroupForm form, + FacilityGroup groupInfo); + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityGroupDxo.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -3,7 +3,7 @@ import java.io.Serializable; import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.form.admin.OnetimeScheduleForm; +import jp.sf.pal.scheduler.form.admin.schedule.OnetimeScheduleForm; import org.seasar.extension.dxo.annotation.ConversionRule; import org.seasar.extension.dxo.annotation.DatePattern; @@ -82,7 +82,7 @@ + ", selectedUsers : selectedUsers" // ) public void convertFromEventScheduleToForm(EventSchedule eventSchedule, - jp.sf.pal.scheduler.form.user.OnetimeScheduleForm form); + jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm form); @ExcludeNull @DatePattern("yyyy/MM/dd") @@ -106,6 +106,6 @@ + ", selectedUsers : selectedUsers" // ) public void convertFromFormToEventSchedule( - jp.sf.pal.scheduler.form.user.OnetimeScheduleForm form, + jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm form, EventSchedule eventSchedule); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -3,7 +3,7 @@ import java.io.Serializable; import jp.sf.pal.scheduler.db.exentity.EventSchedule; -import jp.sf.pal.scheduler.form.admin.RepeatScheduleForm; +import jp.sf.pal.scheduler.form.admin.schedule.RepeatScheduleForm; import org.seasar.extension.dxo.annotation.ConversionRule; import org.seasar.extension.dxo.annotation.DatePattern; @@ -82,7 +82,7 @@ + ", selectedUsers : selectedUsers" // ) public void convertFromEventScheduleToForm(EventSchedule eventSchedule, - jp.sf.pal.scheduler.form.user.RepeatScheduleForm form); + jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm form); @ExcludeNull @DatePattern("yyyy/MM/dd") @@ -106,6 +106,6 @@ + ", selectedUsers : selectedUsers" // ) public void convertFromFormToEventSchedule( - jp.sf.pal.scheduler.form.user.RepeatScheduleForm form, + jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm form, EventSchedule eventSchedule); } Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/OnetimeScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,97 +0,0 @@ -package jp.sf.pal.scheduler.form.admin; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; - -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class OnetimeScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = 3337888500823811168L; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; - - public String startTime; - - @Required(target = "confirm,create,update,delete") - @DateType - public String endDate; - - public String endTime; - - @Required - @Maxbytelength(maxbytelength = 1) - public String secret; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/RepeatScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,101 +0,0 @@ -package jp.sf.pal.scheduler.form.admin; - -import java.io.Serializable; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; - -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class RepeatScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = 7630330195098138706L; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - @Required(target = "confirm,create,update,delete") - @DateType - public String startDate; - - public String startTime; - - @DateType - public String endDate; - - public String endTime; - - @Required - @Maxbytelength(maxbytelength = 1) - public String secret; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 10) - public String type; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - startDate = null; - startTime = null; - endDate = null; - endTime = null; - type = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - } -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,71 @@ +package jp.sf.pal.scheduler.form.admin.facility; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class FacilityForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -5689715853143452340L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @IntegerType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @IntegerType + public String sortOrder; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String groupId; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + name = null; + sortOrder = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + groupId = null; + content = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityGroupForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityGroupForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityGroupForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,62 @@ +package jp.sf.pal.scheduler.form.admin.facility; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class FacilityGroupForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 8406655532415413565L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @IntegerType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @IntegerType + public String sortOrder; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + name = null; + sortOrder = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/facility/FacilityGroupForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,97 @@ +package jp.sf.pal.scheduler.form.admin.schedule; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class OnetimeScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 3337888500823811168L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @Required(target = "confirm,create,update,delete") + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,101 @@ +package jp.sf.pal.scheduler.form.admin.schedule; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RepeatScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = 7630330195098138706L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + @Required(target = "confirm,create,update,delete") + @DateType + public String startDate; + + public String startTime; + + @DateType + public String endDate; + + public String endTime; + + @Required + @Maxbytelength(maxbytelength = 1) + public String secret; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + startDate = null; + startTime = null; + endDate = null; + endTime = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/CalendarForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,63 +0,0 @@ -package jp.sf.pal.scheduler.form.user; - -import java.io.Serializable; -import java.util.Calendar; - -import jp.sf.pal.scheduler.common.util.CalendarUtil; - -import org.apache.commons.lang.StringUtils; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.Required; - -public class CalendarForm implements Serializable { - - private static final long serialVersionUID = 1997153402576130079L; - - @Required(target = "selectpersonalmonth,movepersonalprevmonth,movepersonalnextmonth") - @IntegerType - public String year; - - @IntegerType - public String month; - - @IntegerType - public String date; - - public Calendar getTargetCalendar() { - if (!StringUtils.isEmpty(year) && !StringUtils.isEmpty(month) - && !StringUtils.isEmpty(date)) { - return CalendarUtil.get(Integer.parseInt(year), Integer - .parseInt(month) - 1, Integer.parseInt(date)); - } - Calendar today = CalendarUtil.getToday(); - year = String.valueOf(CalendarUtil.getYear(today)); - month = String.valueOf(CalendarUtil.getMonth(today) + 1); - date = String.valueOf(CalendarUtil.getDate(today)); - return today; - } - - public void changeCalendarToToday() { - Calendar today = CalendarUtil.getToday(); - year = String.valueOf(CalendarUtil.getYear(today)); - month = String.valueOf(CalendarUtil.getMonth(today) + 1); - date = String.valueOf(CalendarUtil.getDate(today)); - } - - public void changeCalendarToPrevMonth() { - month = String.valueOf(Integer.parseInt(month) - 1); - updateCalendarValue(); - } - - public void changeCalendarToNextMonth() { - month = String.valueOf(Integer.parseInt(month) + 1); - updateCalendarValue(); - } - - private void updateCalendarValue() { - Calendar cal = CalendarUtil.get(Integer.parseInt(year), Integer - .parseInt(month) - 1, Integer.parseInt(date)); - year = String.valueOf(CalendarUtil.getYear(cal)); - month = String.valueOf(CalendarUtil.getMonth(cal) + 1); - date = String.valueOf(CalendarUtil.getDate(cal)); - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/OnetimeScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,279 +0,0 @@ -package jp.sf.pal.scheduler.form.user; - -import java.io.Serializable; -import java.util.Calendar; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; -import jp.sf.pal.scheduler.common.util.CalendarUtil; - -import org.apache.commons.lang.StringUtils; -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class OnetimeScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = -3648751435246338787L; - - @Required - public String returnType; - - @Required - @IntegerType - public String year; - - @Required - @IntegerType - public String month; - - @Required - @IntegerType - public String date; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - // @Required(target = "confirm,create,update,delete") - // @DateType - // public String startDate; - - @Required(target = "confirm,create,update,delete") - public String startDateY; - - @Required(target = "confirm,create,update,delete") - public String startDateM; - - @Required(target = "confirm,create,update,delete") - public String startDateD; - - // public String startTime; - - public String startTimeH; - - public String startTimeM; - - // @Required(target = "confirm,create,update,delete") - // @DateType - // public String endDate; - - @Required(target = "confirm,create,update,delete") - public String endDateY; - - @Required(target = "confirm,create,update,delete") - public String endDateM; - - @Required(target = "confirm,create,update,delete") - public String endDateD; - - // public String endTime; - - public String endTimeH; - - public String endTimeM; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 1) - public String secret; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @Required(target = "changeusergroup") - public String userGroup; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - Calendar today = CalendarUtil.getToday(); - String year = String.valueOf(CalendarUtil.getYear(today)); - int m = CalendarUtil.getMonth(today) + 1; - String month; - if (m < 10) { - month = "0" + String.valueOf(m); - } else { - month = String.valueOf(m); - } - int d = CalendarUtil.getDate(today); - String date; - if (d < 10) { - date = "0" + String.valueOf(d); - } else { - date = String.valueOf(d); - } - startDateY = year; - startDateM = month; - startDateD = date; - startTimeH = null; - startTimeM = null; - endDateY = year; - endDateM = month; - endDateD = date; - endTimeH = null; - endTimeM = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - userGroup = null; - } - - public String getStartDate() { - if (!StringUtils.isEmpty(startDateY) - && !StringUtils.isEmpty(startDateM) - && !StringUtils.isEmpty(startDateD)) { - StringBuilder buf = new StringBuilder(startDateY); - buf.append("/"); - buf.append(startDateM); - buf.append("/"); - buf.append(startDateD); - return buf.toString(); - } - return null; - } - - public void setStartDate(String startDate) { - if (!StringUtils.isEmpty(startDate)) { - int idx = startDate.indexOf(" "); - if (idx > 0) { - startDate = startDate.substring(0, idx); - } - String[] values = startDate.split("/"); - if (values.length == 3) { - startDateY = values[0]; - startDateM = values[1]; - startDateD = values[2]; - return; - } - } - startDateY = null; - startDateM = null; - startDateD = null; - } - - public String getEndDate() { - if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) - && !StringUtils.isEmpty(endDateD)) { - StringBuilder buf = new StringBuilder(endDateY); - buf.append("/"); - buf.append(endDateM); - buf.append("/"); - buf.append(endDateD); - return buf.toString(); - } - return null; - } - - public void setEndDate(String endDate) { - if (!StringUtils.isEmpty(endDate)) { - int idx = endDate.indexOf(" "); - if (idx > 0) { - endDate = endDate.substring(0, idx); - } - String[] values = endDate.split("/"); - if (values.length == 3) { - endDateY = values[0]; - endDateM = values[1]; - endDateD = values[2]; - return; - } - } - endDateY = null; - endDateM = null; - endDateD = null; - } - - public String getStartTime() { - if (!StringUtils.isEmpty(startTimeH) - && !StringUtils.isEmpty(startTimeM)) { - StringBuilder buf = new StringBuilder(startTimeH); - buf.append(":"); - buf.append(startTimeM); - return buf.toString(); - } - return null; - } - - public void setStartTime(String startTime) { - if (!StringUtils.isEmpty(startTime)) { - String[] values = startTime.split(":"); - if (values.length > 1) { - startTimeH = values[0]; - startTimeM = values[1]; - return; - } - } - startTimeH = null; - startTimeM = null; - } - - public String getEndTime() { - if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { - StringBuilder buf = new StringBuilder(endTimeH); - buf.append(":"); - buf.append(endTimeM); - return buf.toString(); - } - return null; - } - - public void setEndTime(String endTime) { - if (!StringUtils.isEmpty(endTime)) { - String[] values = endTime.split(":"); - if (values.length > 1) { - endTimeH = values[0]; - endTimeM = values[1]; - return; - } - } - endTimeH = null; - endTimeM = null; - } -} Deleted: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/RepeatScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,280 +0,0 @@ -package jp.sf.pal.scheduler.form.user; - -import java.io.Serializable; -import java.util.Calendar; - -import jp.sf.pal.scheduler.common.form.PagingResultForm; -import jp.sf.pal.scheduler.common.util.CalendarUtil; - -import org.apache.commons.lang.StringUtils; -import org.seasar.struts.annotation.DateType; -import org.seasar.struts.annotation.IntegerType; -import org.seasar.struts.annotation.LongType; -import org.seasar.struts.annotation.Maxbytelength; -import org.seasar.struts.annotation.Required; - -public class RepeatScheduleForm implements Serializable, PagingResultForm { - - private static final long serialVersionUID = -2759046144118833141L; - - @Required - public String returnType; - - @Required - @IntegerType - public String year; - - @Required - @IntegerType - public String month; - - @Required - @IntegerType - public String date; - - @IntegerType - public int mode; - - @Required(target = "update,delete") - @LongType - public String id; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 100) - public String title; - - @Maxbytelength(maxbytelength = 100) - public String location; - - // @Required(target = "confirm,create,update,delete") - // @DateType - // public String startDate; - - @Required(target = "confirm,create,update,delete") - public String startDateY; - - @Required(target = "confirm,create,update,delete") - public String startDateM; - - @Required(target = "confirm,create,update,delete") - public String startDateD; - - // public String startTime; - - public String startTimeH; - - public String startTimeM; - - // @DateType - // public String endDate; - - public String endDateY; - - public String endDateM; - - public String endDateD; - - // public String endTime; - - public String endTimeH; - - public String endTimeM; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 1) - public String secret; - - @Required(target = "confirm,create,update,delete") - @Maxbytelength(maxbytelength = 10) - public String type; - - @DateType - public String createdTime; - - @Maxbytelength(maxbytelength = 255) - public String createdBy; - - @DateType - public String updatedTime; - - @Maxbytelength(maxbytelength = 255) - public String updatedBy; - - @DateType - public String deletedTime; - - @Maxbytelength(maxbytelength = 255) - public String deletedBy; - - @Maxbytelength(maxbytelength = 1000) - public String content; - - public String[] addedUsers; - - public String[] removedUsers; - - public String[] selectedUsers; - - @Required(target = "changeusergroup") - public String userGroup; - - @IntegerType - public String pageNumber; - - public void initialize() { - id = null; - title = null; - location = null; - Calendar today = CalendarUtil.getToday(); - String year = String.valueOf(CalendarUtil.getYear(today)); - int m = CalendarUtil.getMonth(today) + 1; - String month; - if (m < 10) { - month = "0" + String.valueOf(m); - } else { - month = String.valueOf(m); - } - int d = CalendarUtil.getDate(today); - String date; - if (d < 10) { - date = "0" + String.valueOf(d); - } else { - date = String.valueOf(d); - } - startDateY = year; - startDateM = month; - startDateD = date; - startTimeH = null; - startTimeM = null; - endDateY = null; - endDateM = null; - endDateD = null; - endTimeH = null; - endTimeM = null; - type = null; - createdTime = null; - createdBy = null; - updatedTime = null; - updatedBy = null; - deletedTime = null; - deletedBy = null; - content = null; - addedUsers = null; - removedUsers = null; - selectedUsers = null; - secret = "F"; - userGroup = null; - } - - public String getStartDate() { - if (!StringUtils.isEmpty(startDateY) - && !StringUtils.isEmpty(startDateM) - && !StringUtils.isEmpty(startDateD)) { - StringBuilder buf = new StringBuilder(startDateY); - buf.append("/"); - buf.append(startDateM); - buf.append("/"); - buf.append(startDateD); - return buf.toString(); - } - return null; - } - - public void setStartDate(String startDate) { - if (!StringUtils.isEmpty(startDate)) { - int idx = startDate.indexOf(" "); - if (idx > 0) { - startDate = startDate.substring(0, idx); - } - String[] values = startDate.split("/"); - if (values.length == 3) { - startDateY = values[0]; - startDateM = values[1]; - startDateD = values[2]; - return; - } - } - startDateY = null; - startDateM = null; - startDateD = null; - } - - public String getEndDate() { - if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) - && !StringUtils.isEmpty(endDateD)) { - StringBuilder buf = new StringBuilder(endDateY); - buf.append("/"); - buf.append(endDateM); - buf.append("/"); - buf.append(endDateD); - return buf.toString(); - } - return null; - } - - public void setEndDate(String endDate) { - if (!StringUtils.isEmpty(endDate)) { - int idx = endDate.indexOf(" "); - if (idx > 0) { - endDate = endDate.substring(0, idx); - } - String[] values = endDate.split("/"); - if (values.length == 3) { - endDateY = values[0]; - endDateM = values[1]; - endDateD = values[2]; - return; - } - } - endDateY = null; - endDateM = null; - endDateD = null; - } - - public String getStartTime() { - if (!StringUtils.isEmpty(startTimeH) - && !StringUtils.isEmpty(startTimeM)) { - StringBuilder buf = new StringBuilder(startTimeH); - buf.append(":"); - buf.append(startTimeM); - return buf.toString(); - } - return null; - } - - public void setStartTime(String startTime) { - if (!StringUtils.isEmpty(startTime)) { - String[] values = startTime.split(":"); - if (values.length > 1) { - startTimeH = values[0]; - startTimeM = values[1]; - return; - } - } - startTimeH = null; - startTimeM = null; - } - - public String getEndTime() { - if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { - StringBuilder buf = new StringBuilder(endTimeH); - buf.append(":"); - buf.append(endTimeM); - return buf.toString(); - } - return null; - } - - public void setEndTime(String endTime) { - if (!StringUtils.isEmpty(endTime)) { - String[] values = endTime.split(":"); - if (values.length > 1) { - endTimeH = values[0]; - endTimeM = values[1]; - return; - } - } - endTimeH = null; - endTimeM = null; - } -} Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,63 @@ +package jp.sf.pal.scheduler.form.user.schedule; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Required; + +public class CalendarForm implements Serializable { + + private static final long serialVersionUID = 1997153402576130079L; + + @Required(target = "selectpersonalmonth,movepersonalprevmonth,movepersonalnextmonth") + @IntegerType + public String year; + + @IntegerType + public String month; + + @IntegerType + public String date; + + public Calendar getTargetCalendar() { + if (!StringUtils.isEmpty(year) && !StringUtils.isEmpty(month) + && !StringUtils.isEmpty(date)) { + return CalendarUtil.get(Integer.parseInt(year), Integer + .parseInt(month) - 1, Integer.parseInt(date)); + } + Calendar today = CalendarUtil.getToday(); + year = String.valueOf(CalendarUtil.getYear(today)); + month = String.valueOf(CalendarUtil.getMonth(today) + 1); + date = String.valueOf(CalendarUtil.getDate(today)); + return today; + } + + public void changeCalendarToToday() { + Calendar today = CalendarUtil.getToday(); + year = String.valueOf(CalendarUtil.getYear(today)); + month = String.valueOf(CalendarUtil.getMonth(today) + 1); + date = String.valueOf(CalendarUtil.getDate(today)); + } + + public void changeCalendarToPrevMonth() { + month = String.valueOf(Integer.parseInt(month) - 1); + updateCalendarValue(); + } + + public void changeCalendarToNextMonth() { + month = String.valueOf(Integer.parseInt(month) + 1); + updateCalendarValue(); + } + + private void updateCalendarValue() { + Calendar cal = CalendarUtil.get(Integer.parseInt(year), Integer + .parseInt(month) - 1, Integer.parseInt(date)); + year = String.valueOf(CalendarUtil.getYear(cal)); + month = String.valueOf(CalendarUtil.getMonth(cal) + 1); + date = String.valueOf(CalendarUtil.getDate(cal)); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,279 @@ +package jp.sf.pal.scheduler.form.user.schedule; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class OnetimeScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -3648751435246338787L; + + @Required + public String returnType; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String startDate; + + @Required(target = "confirm,create,update,delete") + public String startDateY; + + @Required(target = "confirm,create,update,delete") + public String startDateM; + + @Required(target = "confirm,create,update,delete") + public String startDateD; + + // public String startTime; + + public String startTimeH; + + public String startTimeM; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String endDate; + + @Required(target = "confirm,create,update,delete") + public String endDateY; + + @Required(target = "confirm,create,update,delete") + public String endDateM; + + @Required(target = "confirm,create,update,delete") + public String endDateD; + + // public String endTime; + + public String endTimeH; + + public String endTimeM; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 1) + public String secret; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @Required(target = "changeusergroup") + public String userGroup; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + Calendar today = CalendarUtil.getToday(); + String year = String.valueOf(CalendarUtil.getYear(today)); + int m = CalendarUtil.getMonth(today) + 1; + String month; + if (m < 10) { + month = "0" + String.valueOf(m); + } else { + month = String.valueOf(m); + } + int d = CalendarUtil.getDate(today); + String date; + if (d < 10) { + date = "0" + String.valueOf(d); + } else { + date = String.valueOf(d); + } + startDateY = year; + startDateM = month; + startDateD = date; + startTimeH = null; + startTimeM = null; + endDateY = year; + endDateM = month; + endDateD = date; + endTimeH = null; + endTimeM = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + userGroup = null; + } + + public String getStartDate() { + if (!StringUtils.isEmpty(startDateY) + && !StringUtils.isEmpty(startDateM) + && !StringUtils.isEmpty(startDateD)) { + StringBuilder buf = new StringBuilder(startDateY); + buf.append("/"); + buf.append(startDateM); + buf.append("/"); + buf.append(startDateD); + return buf.toString(); + } + return null; + } + + public void setStartDate(String startDate) { + if (!StringUtils.isEmpty(startDate)) { + int idx = startDate.indexOf(" "); + if (idx > 0) { + startDate = startDate.substring(0, idx); + } + String[] values = startDate.split("/"); + if (values.length == 3) { + startDateY = values[0]; + startDateM = values[1]; + startDateD = values[2]; + return; + } + } + startDateY = null; + startDateM = null; + startDateD = null; + } + + public String getEndDate() { + if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) + && !StringUtils.isEmpty(endDateD)) { + StringBuilder buf = new StringBuilder(endDateY); + buf.append("/"); + buf.append(endDateM); + buf.append("/"); + buf.append(endDateD); + return buf.toString(); + } + return null; + } + + public void setEndDate(String endDate) { + if (!StringUtils.isEmpty(endDate)) { + int idx = endDate.indexOf(" "); + if (idx > 0) { + endDate = endDate.substring(0, idx); + } + String[] values = endDate.split("/"); + if (values.length == 3) { + endDateY = values[0]; + endDateM = values[1]; + endDateD = values[2]; + return; + } + } + endDateY = null; + endDateM = null; + endDateD = null; + } + + public String getStartTime() { + if (!StringUtils.isEmpty(startTimeH) + && !StringUtils.isEmpty(startTimeM)) { + StringBuilder buf = new StringBuilder(startTimeH); + buf.append(":"); + buf.append(startTimeM); + return buf.toString(); + } + return null; + } + + public void setStartTime(String startTime) { + if (!StringUtils.isEmpty(startTime)) { + String[] values = startTime.split(":"); + if (values.length > 1) { + startTimeH = values[0]; + startTimeM = values[1]; + return; + } + } + startTimeH = null; + startTimeM = null; + } + + public String getEndTime() { + if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { + StringBuilder buf = new StringBuilder(endTimeH); + buf.append(":"); + buf.append(endTimeM); + return buf.toString(); + } + return null; + } + + public void setEndTime(String endTime) { + if (!StringUtils.isEmpty(endTime)) { + String[] values = endTime.split(":"); + if (values.length > 1) { + endTimeH = values[0]; + endTimeM = values[1]; + return; + } + } + endTimeH = null; + endTimeM = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,280 @@ +package jp.sf.pal.scheduler.form.user.schedule; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RepeatScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -2759046144118833141L; + + @Required + public String returnType; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String startDate; + + @Required(target = "confirm,create,update,delete") + public String startDateY; + + @Required(target = "confirm,create,update,delete") + public String startDateM; + + @Required(target = "confirm,create,update,delete") + public String startDateD; + + // public String startTime; + + public String startTimeH; + + public String startTimeM; + + // @DateType + // public String endDate; + + public String endDateY; + + public String endDateM; + + public String endDateD; + + // public String endTime; + + public String endTimeH; + + public String endTimeM; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 1) + public String secret; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @Required(target = "changeusergroup") + public String userGroup; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + Calendar today = CalendarUtil.getToday(); + String year = String.valueOf(CalendarUtil.getYear(today)); + int m = CalendarUtil.getMonth(today) + 1; + String month; + if (m < 10) { + month = "0" + String.valueOf(m); + } else { + month = String.valueOf(m); + } + int d = CalendarUtil.getDate(today); + String date; + if (d < 10) { + date = "0" + String.valueOf(d); + } else { + date = String.valueOf(d); + } + startDateY = year; + startDateM = month; + startDateD = date; + startTimeH = null; + startTimeM = null; + endDateY = null; + endDateM = null; + endDateD = null; + endTimeH = null; + endTimeM = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + userGroup = null; + } + + public String getStartDate() { + if (!StringUtils.isEmpty(startDateY) + && !StringUtils.isEmpty(startDateM) + && !StringUtils.isEmpty(startDateD)) { + StringBuilder buf = new StringBuilder(startDateY); + buf.append("/"); + buf.append(startDateM); + buf.append("/"); + buf.append(startDateD); + return buf.toString(); + } + return null; + } + + public void setStartDate(String startDate) { + if (!StringUtils.isEmpty(startDate)) { + int idx = startDate.indexOf(" "); + if (idx > 0) { + startDate = startDate.substring(0, idx); + } + String[] values = startDate.split("/"); + if (values.length == 3) { + startDateY = values[0]; + startDateM = values[1]; + startDateD = values[2]; + return; + } + } + startDateY = null; + startDateM = null; + startDateD = null; + } + + public String getEndDate() { + if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) + && !StringUtils.isEmpty(endDateD)) { + StringBuilder buf = new StringBuilder(endDateY); + buf.append("/"); + buf.append(endDateM); + buf.append("/"); + buf.append(endDateD); + return buf.toString(); + } + return null; + } + + public void setEndDate(String endDate) { + if (!StringUtils.isEmpty(endDate)) { + int idx = endDate.indexOf(" "); + if (idx > 0) { + endDate = endDate.substring(0, idx); + } + String[] values = endDate.split("/"); + if (values.length == 3) { + endDateY = values[0]; + endDateM = values[1]; + endDateD = values[2]; + return; + } + } + endDateY = null; + endDateM = null; + endDateD = null; + } + + public String getStartTime() { + if (!StringUtils.isEmpty(startTimeH) + && !StringUtils.isEmpty(startTimeM)) { + StringBuilder buf = new StringBuilder(startTimeH); + buf.append(":"); + buf.append(startTimeM); + return buf.toString(); + } + return null; + } + + public void setStartTime(String startTime) { + if (!StringUtils.isEmpty(startTime)) { + String[] values = startTime.split(":"); + if (values.length > 1) { + startTimeH = values[0]; + startTimeM = values[1]; + return; + } + } + startTimeH = null; + startTimeM = null; + } + + public String getEndTime() { + if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { + StringBuilder buf = new StringBuilder(endTimeH); + buf.append(":"); + buf.append(endTimeM); + return buf.toString(); + } + return null; + } + + public void setEndTime(String endTime) { + if (!StringUtils.isEmpty(endTime)) { + String[] values = endTime.split(":"); + if (values.length > 1) { + endTimeH = values[0]; + endTimeM = values[1]; + return; + } + } + endTimeH = null; + endTimeM = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.pager; + +import jp.sf.pal.scheduler.common.pager.DefaultPager; + +public class FacilityGroupPager extends DefaultPager { + + private static final long serialVersionUID = 2995360727065238358L; + + public FacilityGroupPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 3; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,21 @@ +package jp.sf.pal.scheduler.pager; + +import jp.sf.pal.scheduler.common.pager.DefaultPager; + +public class FacilityPager extends DefaultPager { + + private static final long serialVersionUID = -8738042204895427884L; + + public FacilityPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,185 @@ +package jp.sf.pal.scheduler.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.cbean.FacilityGroupCB; +import jp.sf.pal.scheduler.db.exbhv.FacilityGroupBhv; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.pager.FacilityGroupPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class FacilityGroupService implements Serializable { + + private static final long serialVersionUID = -6387745595844048542L; + + private transient FacilityGroupBhv facilityGroupBhv; + + private PagerDxo pagerDxo; + + public List getFacilityGroupList( + FacilityGroupPager facilityGroupPager) { + + HotdeployUtil.rebuildValue(facilityGroupPager); + + FacilityGroupCB cb = new FacilityGroupCB(); + + cb.fetchFirst(facilityGroupPager.getPageSize()); + cb.fetchPage(facilityGroupPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_SortOrder_Asc(); + + PagingResultBean facilityGroupList = facilityGroupBhv + .selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(facilityGroupList), + facilityGroupPager); + facilityGroupList.setPageRangeSize(5); + facilityGroupPager.setPageNumberList(facilityGroupList.pageRange() + .createPageNumberList()); + + return facilityGroupList; + } + + public List getFacilityGroupList() { + + FacilityGroupCB cb = new FacilityGroupCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_SortOrder_Asc(); + + return facilityGroupBhv.selectList(cb); + + } + + public FacilityGroup getFacilityGroup(Integer id) { + FacilityGroupCB cb = new FacilityGroupCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + return facilityGroupBhv.selectEntity(cb); + } + + public void store(FacilityGroup facilityGroup) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + facilityGroup.setUpdatedTime(now); + + if (facilityGroup.getCreatedTime() == null) { + facilityGroup.setSortOrder(Integer.valueOf(1)); + + // create + facilityGroup.setCreatedTime(now); + facilityGroupBhv.insert(facilityGroup); + + // max sort order + FacilityGroupCB cb = new FacilityGroupCB(); + + cb.fetchFirst(1); + cb.fetchPage(1); + + cb.query().setDeletedBy_IsNull(); + cb.query().addOrderBy_SortOrder_Desc(); + + List facilityGroupList = facilityGroupBhv + .selectPage(cb); + if (!facilityGroupList.isEmpty()) { + FacilityGroup fGroup = facilityGroupList.get(0); + facilityGroup.setSortOrder(Integer.valueOf(fGroup + .getSortOrder() + 1)); + facilityGroupBhv.update(facilityGroup); + } + } else { + facilityGroupBhv.update(facilityGroup); + + } + } + + public void disable(Integer id, String name) { + // not delete + FacilityGroupCB cb = new FacilityGroupCB(); + + cb.query().setId_Equal(id); + FacilityGroup facilityGroup = facilityGroupBhv.selectEntity(cb); + + // TODO throw an exception + + facilityGroup.setDeletedBy(name); + facilityGroup.setDeletedTime(new Timestamp(new Date().getTime())); + facilityGroupBhv.update(facilityGroup); + } + + public void moveUp(FacilityGroup facilityGroup) { + FacilityGroupCB cb = new FacilityGroupCB(); + + cb.fetchFirst(1); + cb.fetchPage(1); + + cb.query().setDeletedBy_IsNull(); + cb.query().setSortOrder_LessThan(facilityGroup.getSortOrder()); + cb.query().addOrderBy_SortOrder_Desc(); + List facilityGroupList = facilityGroupBhv.selectPage(cb); + if (!facilityGroupList.isEmpty()) { + FacilityGroup tFacilityGroup = facilityGroupList.get(0); + Integer sortOrder = tFacilityGroup.getSortOrder(); + tFacilityGroup.setSortOrder(facilityGroup.getSortOrder()); + facilityGroup.setSortOrder(sortOrder); + facilityGroupBhv.update(tFacilityGroup); + facilityGroupBhv.update(facilityGroup); + } + // TODO + } + + public void moveDown(FacilityGroup facilityGroup) { + FacilityGroupCB cb = new FacilityGroupCB(); + + cb.fetchFirst(1); + cb.fetchPage(1); + + cb.query().setDeletedBy_IsNull(); + cb.query().setSortOrder_GreaterThan(facilityGroup.getSortOrder()); + cb.query().addOrderBy_SortOrder_Asc(); + List facilityGroupList = facilityGroupBhv.selectPage(cb); + if (!facilityGroupList.isEmpty()) { + FacilityGroup tFacilityGroup = facilityGroupList.get(0); + Integer sortOrder = tFacilityGroup.getSortOrder(); + tFacilityGroup.setSortOrder(facilityGroup.getSortOrder()); + facilityGroup.setSortOrder(sortOrder); + facilityGroupBhv.update(tFacilityGroup); + facilityGroupBhv.update(facilityGroup); + } + // TODO + } + + public FacilityGroupBhv getFacilityGroupBhv() { + return facilityGroupBhv; + } + + public void setFacilityGroupBhv(FacilityGroupBhv messageBhv) { + this.facilityGroupBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,205 @@ +package jp.sf.pal.scheduler.service; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.exbhv.FacilityBhv; +import jp.sf.pal.scheduler.db.exbhv.FacilityContentBhv; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityContent; +import jp.sf.pal.scheduler.pager.FacilityPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class FacilityService implements Serializable { + + private static final long serialVersionUID = 3916749776982219422L; + + private transient FacilityBhv facilityBhv; + + private transient FacilityContentBhv facilityContentBhv; + + private PagerDxo pagerDxo; + + public List getFacilityList(FacilityPager facilityPager) { + + HotdeployUtil.rebuildValue(facilityPager); + + FacilityCB cb = new FacilityCB(); + + cb.fetchFirst(facilityPager.getPageSize()); + cb.fetchPage(facilityPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_SortOrder_Asc(); + + PagingResultBean facilityList = facilityBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(facilityList), + facilityPager); + facilityList.setPageRangeSize(5); + facilityPager.setPageNumberList(facilityList.pageRange() + .createPageNumberList()); + + return facilityList; + } + + public List getFacilityList() { + + FacilityCB cb = new FacilityCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_SortOrder_Asc(); + + return facilityBhv.selectList(cb); + + } + + public Facility getFacility(Integer id) { + FacilityCB cb = new FacilityCB(); + + // setup + cb.setupSelect_FacilityContentAsOne(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + return facilityBhv.selectEntity(cb); + } + + public void store(Facility facility) { + Timestamp now = new Timestamp(System.currentTimeMillis()); + facility.setUpdatedTime(now); + + FacilityContent facilityContent = facility.getFacilityContentAsOne(); + + if (facility.getCreatedTime() == null) { + facility.setSortOrder(Integer.valueOf(1)); + + // create + facility.setCreatedTime(now); + facilityBhv.insert(facility); + + // max sort order + FacilityCB cb = new FacilityCB(); + + cb.fetchFirst(1); + cb.fetchPage(1); + + cb.query().setDeletedBy_IsNull(); + cb.query().addOrderBy_SortOrder_Desc(); + + List facilityList = facilityBhv.selectPage(cb); + if (!facilityList.isEmpty()) { + Facility fGroup = facilityList.get(0); + facility.setSortOrder(Integer + .valueOf(fGroup.getSortOrder() + 1)); + facilityBhv.update(facility); + } + + if (facilityContent != null) { + facilityContent.setId(facility.getId()); + facilityContentBhv.insert(facilityContent); + } + } else { + facilityBhv.update(facility); + if (facilityContent != null) { + facilityContentBhv.update(facilityContent); + } + } + + } + + public void disable(Integer id, String name) { + // not delete + FacilityCB cb = new FacilityCB(); + + cb.query().setId_Equal(id); + Facility facility = facilityBhv.selectEntity(cb); + + // TODO throw an exception + + facility.setDeletedBy(name); + facility.setDeletedTime(new Timestamp(new Date().getTime())); + facilityBhv.update(facility); + } + + public void moveUp(Facility facility) { + FacilityCB cb = new FacilityCB(); + + cb.fetchFirst(1); + cb.fetchPage(1); + + cb.query().setDeletedBy_IsNull(); + cb.query().setSortOrder_LessThan(facility.getSortOrder()); + cb.query().addOrderBy_SortOrder_Desc(); + List facilityList = facilityBhv.selectPage(cb); + if (!facilityList.isEmpty()) { + Facility tFacility = facilityList.get(0); + Integer sortOrder = tFacility.getSortOrder(); + tFacility.setSortOrder(facility.getSortOrder()); + facility.setSortOrder(sortOrder); + facilityBhv.update(tFacility); + facilityBhv.update(facility); + } + // TODO + } + + public void moveDown(Facility facility) { + FacilityCB cb = new FacilityCB(); + + cb.fetchFirst(1); + cb.fetchPage(1); + + cb.query().setDeletedBy_IsNull(); + cb.query().setSortOrder_GreaterThan(facility.getSortOrder()); + cb.query().addOrderBy_SortOrder_Asc(); + List facilityList = facilityBhv.selectPage(cb); + if (!facilityList.isEmpty()) { + Facility tFacility = facilityList.get(0); + Integer sortOrder = tFacility.getSortOrder(); + tFacility.setSortOrder(facility.getSortOrder()); + facility.setSortOrder(sortOrder); + facilityBhv.update(tFacility); + facilityBhv.update(facility); + } + // TODO + } + + public FacilityBhv getFacilityBhv() { + return facilityBhv; + } + + public void setFacilityBhv(FacilityBhv messageBhv) { + this.facilityBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public FacilityContentBhv getFacilityContentBhv() { + return facilityContentBhv; + } + + public void setFacilityContentBhv(FacilityContentBhv facilityContentBhv) { + this.facilityContentBhv = facilityContentBhv; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-20 09:13:34 UTC (rev 1385) @@ -33,13 +33,36 @@ success.create_eventSchedule=Created the event. success.update_eventSchedule=Updated the event. success.delete_eventSchedule=Deleted the event. +success.create_facilityGroup=Created the facility group. +success.update_facilityGroup=Updated the facility group. +success.delete_facilityGroup=Deleted the facility group. +success.moveup_facilityGroup=Moved the facility group up. +success.movedown_facilityGroup=Moved the facility group down. +success.create_facility=Created the facility. +success.update_facility=Updated the facility. +success.delete_facility=Deleted the facility. +success.moveup_facility=Moved the facility up. +success.movedown_facility=Moved the facility down. +errors.could_not_find_facilityGroup=Could not find the facility group({0}). errors.failed_to_update_config=Failed to update the configuration. errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). errors.failed_to_create_eventSchedule=Failed to create a new event. errors.failed_to_update_eventSchedule=Failed to update the event. errors.failed_to_delete_eventSchedule=Failed to delete the event. errors.could_not_find_eventSchedule=Could not find the event({0}). +errors.failed_to_create_facilityGroup=Failed to create a new facility group. +errors.failed_to_update_facilityGroup=Failed to update the facility group. +errors.failed_to_delete_facilityGroup=Failed to delete the facility group. +errors.could_not_find_facilityGroup=Could not find the facility group({0}). +errors.failed_to_moveup_facilityGroup=Failed to move the facility group up. +errors.failed_to_movedown_facilityGroup=Failed to move the facility group down. +errors.failed_to_create_facility=Failed to create a new facility. +errors.failed_to_update_facility=Failed to update the facility. +errors.failed_to_delete_facility=Failed to delete the facility. +errors.could_not_find_facility=Could not find the facility({0}). +errors.failed_to_moveup_facility=Failed to move the facility up. +errors.failed_to_movedown_facility=Failed to move the facility down. labels.detail=Detail labels.create=Create Modified: scheduler/trunk/src/main/resources/dbflute.dicon =================================================================== --- scheduler/trunk/src/main/resources/dbflute.dicon 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/resources/dbflute.dicon 2008-11-20 09:13:34 UTC (rev 1385) @@ -60,6 +60,30 @@ + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + + + + dbflute.interceptor + + + dbflute.interceptor Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,76 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + + + + +
      +
      PriNameAssignedCreated ByDue Date  
      -Blocker -Critical -Major -Minor -Trivial + + + + + ${f:h(t.todo.name)} ${f:h(t.userIdFromUserInfo)} - Edit + - -License - - - -
      - -

      License

      - -

      Summary and License FAQ

      -This license is a modified version of the MPL 1.1 available at www.mozilla.org/MPL, -the changes are underlined. -There is a License FAQ section at the Mozilla web site, most of that is applicable to the H2 License as well. -
        -
      • You can use H2 for free. You can integrate it into your application (including commercial applications), and you can distribute it. -
      • Files containing only your code are not covered by this license (it is 'commercial friendly'). -
      • Modifications to the H2 source code must be published. -
      • You don't need to provide the source code of H2 if you did not modify anything. -
      -However, nobody is allowed to rename H2, modify it a little, and sell it as a database engine without telling the customers it is in fact H2. -This happened to HSQLDB, when a company called 'bungisoft' copied HSQLDB, renamed it to 'RedBase', and tried to sell it, -hiding the fact that it was, in fact, just HSQLDB. At this time, it seems 'bungisoft' does not exist any more, but you can use the -Wayback Machine of http://www.archive.org and look for old web pages of http://www.bungisoft.com. -

      -About porting the source code to another language (for example C# or C++): Converted source code (even if done manually) stays under the same -copyright and license as the original code. The copyright of the ported source code does not (automatically) go to the person ported the code. - -

      H2 License, Version 1.0

      - -

      1. Definitions

      -

      1.0.1. "Commercial Use" - means distribution or otherwise making the Covered Code available to a third party. -

      -

      1.1. "Contributor" - means each entity that creates or contributes to the creation of Modifications. -

      -

      1.2. "Contributor Version" - means the combination of the Original Code, prior Modifications used by a Contributor, - and the Modifications made by that particular Contributor. -

      -

      1.3. "Covered Code" - means the Original Code or Modifications or the combination of the Original Code and - Modifications, in each case including portions thereof. -

      -

      1.4. "Electronic Distribution Mechanism" - means a mechanism generally accepted in the software development community for the - electronic transfer of data. -

      -

      1.5. "Executable" - means Covered Code in any form other than Source Code. -

      -

      1.6. "Initial Developer" - means the individual or entity identified as the Initial Developer in the Source Code - notice required by Exhibit A. -

      -

      1.7. "Larger Work" - means a work which combines Covered Code or portions thereof with code not governed - by the terms of this License. -

      -

      1.8. "License" - means this document. -

      -

      1.8.1. "Licensable" - means having the right to grant, to the maximum extent possible, whether at the - time of the initial grant or subsequently acquired, any and all of the rights - conveyed herein. -

      -

      1.9. "Modifications" - means any addition to or deletion from the substance or structure of either the - Original Code or any previous Modifications. When Covered Code is released as a - series of files, a Modification is: -

      -
        -
      1. Any addition to or deletion from the contents of a file - containing Original Code or previous Modifications. -
      2. Any new file that contains any part of the Original Code or - previous Modifications. -
      -

      1.10. "Original Code" - means Source Code of computer software code which is described in the Source Code - notice required by Exhibit A as Original Code, and which, - at the time of its release under this License is not already Covered Code governed - by this License. -

      -

      1.10.1. "Patent Claims" - means any patent claim(s), now owned or hereafter acquired, including without - limitation, method, process, and apparatus claims, in any patent Licensable by - grantor. -

      -

      1.11. "Source Code" - means the preferred form of the Covered Code for making modifications to it, - including all modules it contains, plus any associated interface definition files, - scripts used to control compilation and installation of an Executable, or source - code differential comparisons against either the Original Code or another well known, - available Covered Code of the Contributor's choice. The Source Code can be in a - compressed or archival form, provided the appropriate decompression or de-archiving - software is widely available for no charge. -

      -

      1.12. "You" (or "Your") - means an individual or a legal entity exercising rights under, and complying with - all of the terms of, this License or a future version of this License issued under - Section 6.1. For legal entities, "You" includes any entity - which controls, is controlled by, or is under common control with You. For purposes of - this definition, "control" means (a) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or otherwise, or (b) - ownership of more than fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. -

      - -

      2. Source Code License

      -

      2.1. The Initial Developer Grant

      -

      The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive - license, subject to third party intellectual property claims: -

        -
      1. under intellectual property rights (other than patent or - trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, - sublicense and distribute the Original Code (or portions thereof) with or without - Modifications, and/or as part of a Larger Work; and -
      2. under Patents Claims infringed by the making, using or selling - of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or - otherwise dispose of the Original Code (or portions thereof). -
      3. the licenses granted in this Section 2.1 - (a) and (b) are effective on - the date Initial Developer first distributes Original Code under the terms of this - License. -
      4. Notwithstanding Section 2.1 (b) - above, no patent license is granted: 1) for code that You delete from the Original Code; - 2) separate from the Original Code; or 3) for infringements caused by: i) the - modification of the Original Code or ii) the combination of the Original Code with other - software or devices. -
      - -

      2.2. Contributor Grant

      -

      Subject to third party intellectual property claims, each Contributor hereby grants You - a world-wide, royalty-free, non-exclusive license -

        -
      1. under intellectual property rights (other than patent or trademark) - Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and - distribute the Modifications created by such Contributor (or portions thereof) either on - an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger - Work; and -
      2. under Patent Claims infringed by the making, using, or selling of - Modifications made by that Contributor either alone and/or in combination with its - Contributor Version (or portions of such combination), to make, use, sell, offer for - sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor - (or portions thereof); and 2) the combination of Modifications made by that Contributor - with its Contributor Version (or portions of such combination). -
      3. the licenses granted in Sections 2.2 - (a) and 2.2 (b) are effective - on the date Contributor first makes Commercial Use of the Covered Code. -
      4. Notwithstanding Section 2.2 (b) - above, no patent license is granted: 1) for any code that Contributor has deleted from - the Contributor Version; 2) separate from the Contributor Version; 3) for infringements - caused by: i) third party modifications of Contributor Version or ii) the combination of - Modifications made by that Contributor with other software (except as part of the - Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code - in the absence of Modifications made by that Contributor. -
      - -

      3. Distribution Obligations

      -

      3.1. Application of License

      -

      The Modifications which You create or to which You contribute are governed by the terms - of this License, including without limitation Section 2.2. The - Source Code version of Covered Code may be distributed only under the terms of this License - or a future version of this License released under Section 6.1, - and You must include a copy of this License with every copy of the Source Code You - distribute. You may not offer or impose any terms on any Source Code version that alters or - restricts the applicable version of this License or the recipients' rights hereunder. - However, You may include an additional document offering the additional rights described in - Section 3.5. -

      3.2. Availability of Source Code

      -

      Any Modification which You create or to which You contribute must be made available in - Source Code form under the terms of this License either on the same media as an Executable - version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an - Executable version available; and if made available via Electronic Distribution Mechanism, - must remain available for at least twelve (12) months after the date it initially became - available, or at least six (6) months after a subsequent version of that particular - Modification has been made available to such recipients. You are responsible for ensuring - that the Source Code version remains available even if the Electronic Distribution - Mechanism is maintained by a third party. -

      3.3. Description of Modifications

      - -

      You must cause all Covered Code to which You contribute to contain a file documenting the - changes You made to create that Covered Code and the date of any change. You must include a - prominent statement that the Modification is derived, directly or indirectly, from Original - Code provided by the Initial Developer and including the name of the Initial Developer in - (a) the Source Code, and (b) in any notice in an Executable version or related documentation - in which You describe the origin or ownership of the Covered Code. -

      3.4. Intellectual Property Matters

      -
        -
      1. Third Party Claims: - If Contributor has knowledge that a license under a third party's intellectual property - rights is required to exercise the rights granted by such Contributor under Sections - 2.1 or 2.2, Contributor must include a - text file with the Source Code distribution titled "LEGAL" which describes the claim and the - party making the claim in sufficient detail that a recipient will know whom to contact. If - Contributor obtains such knowledge after the Modification is made available as described in - Section 3.2, Contributor shall promptly modify the LEGAL file in - all copies Contributor makes available thereafter and shall take other steps (such as - notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who - received the Covered Code that new knowledge has been obtained. -
      2. Contributor APIs: - If Contributor's Modifications include an application programming interface and Contributor - has knowledge of patent licenses which are reasonably necessary to implement that - API, Contributor must also include this information in the legal file. -
      3. Representations: - Contributor represents that, except as disclosed pursuant to Section 3.4 - (a) above, Contributor believes that Contributor's Modifications - are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the - rights conveyed by this License. -
      -

      3.5. Required Notices

      -

      You must duplicate the notice in Exhibit A in each file of the - Source Code. If it is not possible to put such notice in a particular Source Code file due to - its structure, then You must include such notice in a location (such as a relevant directory) - where a user would be likely to look for such a notice. If You created one or more - Modification(s) You may add your name as a Contributor to the notice described in - Exhibit A. You must also duplicate this License in any documentation - for the Source Code where You describe recipients' rights or ownership rights relating to - Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity - or liability obligations to one or more recipients of Covered Code. However, You may do so - only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You - must make it absolutely clear than any such warranty, support, indemnity or liability - obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer - and every Contributor for any liability incurred by the Initial Developer or such Contributor - as a result of warranty, support, indemnity or liability terms You offer. -

      3.6. Distribution of Executable Versions

      -

      You may distribute Covered Code in Executable form only if the requirements of Sections - 3.1, 3.2, - 3.3, 3.4 and - 3.5 have been met for that Covered Code, and if You include a - notice stating that the Source Code version of the Covered Code is available under the terms - of this License, including a description of how and where You have fulfilled the obligations - of Section 3.2. The notice must be conspicuously included in any - notice in an Executable version, related documentation or collateral in which You describe - recipients' rights relating to the Covered Code. You may distribute the Executable version of - Covered Code or ownership rights under a license of Your choice, which may contain terms - different from this License, provided that You are in compliance with the terms of this - License and that the license for the Executable version does not attempt to limit or alter the - recipient's rights in the Source Code version from the rights set forth in this License. If - You distribute the Executable version under a different license You must make it absolutely - clear that any terms which differ from this License are offered by You alone, not by the - Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and - every Contributor for any liability incurred by the Initial Developer or such Contributor as - a result of any such terms You offer. -

      3.7. Larger Works

      - -

      You may create a Larger Work by combining Covered Code with other code not governed by the - terms of this License and distribute the Larger Work as a single product. In such a case, - You must make sure the requirements of this License are fulfilled for the Covered Code. -

      4. Inability to Comply Due to Statute or Regulation.

      -

      If it is impossible for You to comply with any of the terms of this License with respect to - some or all of the Covered Code due to statute, judicial order, or regulation then You must: - (a) comply with the terms of this License to the maximum extent possible; and (b) describe - the limitations and the code they affect. Such description must be included in the - legal file described in Section - 3.4 and must be included with all distributions of the Source Code. - Except to the extent prohibited by statute or regulation, such description must be - sufficiently detailed for a recipient of ordinary skill to be able to understand it. -

      5. Application of this License.

      -

      This License applies to code to which the Initial Developer has attached the notice in - Exhibit A and to related Covered Code. -

      6. Versions of the License.

      - -

      6.1. New Versions

      -

      The H2 Group may publish revised and/or new versions - of the License from time to time. Each version will be given a distinguishing version number. -

      6.2. Effect of New Versions

      -

      Once Covered Code has been published under a particular version of the License, You may - always continue to use it under the terms of that version. You may also choose to use such - Covered Code under the terms of any subsequent version of the License published by the H2 Group. - No one other than the H2 Group has the right to modify the terms applicable to Covered Code - created under this License. -

      6.3. Derivative Works

      -

      If You create or use a modified version of this License (which you may only do in order to - apply it to code which is not already Covered Code governed by this License), You must (a) - rename Your license so that the phrases "H2 Group", "H2" - or any confusingly similar phrase do not appear in your license (except to note that - your license differs from this License) and (b) otherwise make it clear that Your version of - the license contains terms which differ from the H2 License. - (Filling in the name of the Initial Developer, Original Code or Contributor in the - notice described in Exhibit A shall not of themselves be deemed to - be modifications of this License.) -

      7. Disclaimer of Warranty

      -

      Covered code is provided under this license on an "as is" - basis, without warranty of any kind, either expressed or implied, including, without - limitation, warranties that the covered code is free of defects, merchantable, fit for a - particular purpose or non-infringing. The entire risk as to the quality and performance of - the covered code is with you. Should any covered code prove defective in any respect, you - (not the initial developer or any other contributor) assume the cost of any necessary - servicing, repair or correction. This disclaimer of warranty constitutes an essential part - of this license. No use of any covered code is authorized hereunder except under this - disclaimer. -

      8. Termination

      -

      8.1. This License and the rights granted hereunder will terminate - automatically if You fail to comply with terms herein and fail to cure such breach - within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which - are properly granted shall survive any termination of this License. Provisions which, by - their nature, must remain in effect beyond the termination of this License shall survive. -

      8.2. If You initiate litigation by asserting a patent infringement - claim (excluding declaratory judgment actions) against Initial Developer or a Contributor - (the Initial Developer or Contributor against whom You file such action is referred to - as "Participant") alleging that: -

        -
      1. such Participant's Contributor Version directly or indirectly - infringes any patent, then any and all rights granted by such Participant to You under - Sections 2.1 and/or 2.2 of this - License shall, upon 60 days notice from Participant terminate prospectively, unless if - within 60 days after receipt of notice You either: (i) agree in writing to pay - Participant a mutually agreeable reasonable royalty for Your past and future use of - Modifications made by such Participant, or (ii) withdraw Your litigation claim with - respect to the Contributor Version against such Participant. If within 60 days of - notice, a reasonable royalty and payment arrangement are not mutually agreed upon in - writing by the parties or the litigation claim is not withdrawn, the rights granted by - Participant to You under Sections 2.1 and/or - 2.2 automatically terminate at the expiration of the 60 day - notice period specified above. -
      2. any software, hardware, or device, other than such Participant's - Contributor Version, directly or indirectly infringes any patent, then any rights - granted to You by such Participant under Sections 2.1(b) - and 2.2(b) are revoked effective as of the date You first - made, used, sold, distributed, or had made, Modifications made by that Participant. -
      -

      8.3. If You assert a patent infringement claim against Participant - alleging that such Participant's Contributor Version directly or indirectly infringes - any patent where such claim is resolved (such as by license or settlement) prior to the - initiation of patent infringement litigation, then the reasonable value of the licenses - granted by such Participant under Sections 2.1 or - 2.2 shall be taken into account in determining the amount or - value of any payment or license. -

      8.4. In the event of termination under Sections - 8.1 or 8.2 above, all end user - license agreements (excluding distributors and resellers) which have been validly - granted by You or any distributor hereunder prior to termination shall survive - termination. -

      9. Limitation of Liability

      - -

      Under no circumstances and under no legal theory, whether - tort (including negligence), contract, or otherwise, shall you, the initial developer, - any other contributor, or any distributor of covered code, or any supplier of any of - such parties, be liable to any person for any indirect, special, incidental, or - consequential damages of any character including, without limitation, damages for loss - of goodwill, work stoppage, computer failure or malfunction, or any and all other - commercial damages or losses, even if such party shall have been informed of the - possibility of such damages. This limitation of liability shall not apply to liability - for death or personal injury resulting from such party's negligence to the extent - applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion - or limitation of incidental or consequential damages, so this exclusion and limitation - may not apply to you. -

      10. United States Government End Users

      -

      The Covered Code is a "commercial item", as that term is defined in 48 - C.F.R. 2.101 (October 1995), consisting of - "commercial computer software" and "commercial computer software documentation", as such - terms are used in 48 C.F.R. 12.212 (September 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. - 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users - acquire Covered Code with only those rights set forth herein. -

      11. Miscellaneous

      -

      This License represents the complete agreement concerning subject matter hereof. If - any provision of this License is held to be unenforceable, such provision shall be - reformed only to the extent necessary to make it enforceable. This License shall be - governed by Swiss law provisions (except to the extent applicable law, if any, - provides otherwise), excluding its conflict-of-law provisions. With respect to - disputes in which at least one party is a citizen of, or an entity chartered or - registered to do business in Switzerland, any litigation relating to - this License shall be subject to the jurisdiction of Switzerland, - with the losing party responsible for costs, including without limitation, court - costs and reasonable attorneys' fees and expenses. The application of the United - Nations Convention on Contracts for the International Sale of Goods is expressly - excluded. Any law or regulation which provides that the language of a contract - shall be construed against the drafter shall not apply to this License. -

      12. Responsibility for Claims

      - -

      As between Initial Developer and the Contributors, each party is responsible for - claims and damages arising, directly or indirectly, out of its utilization of rights - under this License and You agree to work with Initial Developer and Contributors to - distribute such responsibility on an equitable basis. Nothing herein is intended or - shall be deemed to constitute any admission of liability. -

      13. Multiple-Licensed Code

      -

      Initial Developer may designate portions of the Covered Code as - "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits - you to utilize portions of the Covered Code under Your choice of this - or the alternative licenses, if any, specified by the Initial Developer in the file - described in Exhibit A. -

      Exhibit A

      - -
      -Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
      -Initial Developer: H2 Group
      -
      - -
      Deleted: chat/trunk/licenses/LICENSE.hsqldb.txt =================================================================== --- chat/trunk/licenses/LICENSE.hsqldb.txt 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/licenses/LICENSE.hsqldb.txt 2008-11-20 00:00:58 UTC (rev 1377) @@ -1,64 +0,0 @@ -/* Copyright (c) 1995-2000, The Hypersonic SQL Group. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of the Hypersonic SQL Group nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE HYPERSONIC SQL GROUP, - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software consists of voluntary contributions made by many individuals - * on behalf of the Hypersonic SQL Group. - * - * - * For work added by the HSQL Development Group: - * - * Copyright (c) 2001-2004, The HSQL Development Group - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of the HSQL Development Group nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ Deleted: chat/trunk/licenses/LICENSE.was_uow.html =================================================================== --- chat/trunk/licenses/LICENSE.was_uow.html 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/licenses/LICENSE.was_uow.html 2008-11-20 00:00:58 UTC (rev 1377) @@ -1,18 +0,0 @@ -You may use or redistribute the files or modules contained in this jar subject to the following terms: - -The WebSphere Application Server files or modules contained in this jar -may be redistrubuted as provided by IBM to you, and only as part of Your -application distribution. - -You may not use IBM's name or trademarks in connection with the marketing -of Your applications without IBM's prior written consent. - -IBM PROVIDES THESE FILES OR MODULES ON AN "AS IS" BASIS AND IBM DISCLAIMS -ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -WARRANTY OF NON-INFRINGEMENT AND THE IMPLIED WARRANTIES OF MERCHANTABILITY -OR FITNESS FOR A PARTICULAR PURPOSE. IBM SHALL NOT BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT -OF THE USE OR OPERATION OF THE FILES OR MODULES . IBM HAS NO OBLIGATION -TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS OR MODIFICATIONS TO -THE FILES OR MODULES . - Modified: chat/trunk/pom.xml =================================================================== --- chat/trunk/pom.xml 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/pom.xml 2008-11-20 00:00:58 UTC (rev 1377) @@ -1,272 +1,180 @@ - - 4.0.0 - jp.sf.pal.chat - chat - 0.0.1 - war - chat - - src/main/java - src/main/webapp/WEB-INF/classes - - - src/main/resources - - - target/test-classes - src/test/java - - - src/test/resources - - - validate - - - maven-compiler-plugin - - 1.5 - 1.5 - UTF-8 - - - - maven-source-plugin - - - source-jar - package - - jar - - - - - - - - - maven-eclipse-plugin - - 1.5 - - - - - - - - maven.seasar.org - The Seasar Foundation Maven2 Repository - http://maven.seasar.org/maven2 - - - - - local - Local Repository - file:repo - - - maven.seasar.org - The Seasar Foundation Maven2 Repository - http://maven.seasar.org/maven2 - - - - - org.apache.geronimo.specs - geronimo-jsp_2.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-servlet_2.4_spec - 1.0 - - - junit - junit - 3.8.2 - - - junit-addons - junit-addons - 1.4 - - - antlr - antlr - 2.7.7 - - - aopalliance - aopalliance - 1.0 - - - commons-beanutils - commons-beanutils - 1.7.0 - - - commons-collections - commons-collections - 3.1 - - - commons-digester - commons-digester - 1.6 - - - commons-el - commons-el - 1.0 - - - commons-fileupload - commons-fileupload - 1.2 - - - commons-io - commons-io - 1.3.2 - - - commons-logging - commons-logging - 1.1 - - - commons-validator - commons-validator - 1.2.0 - - - org.apache.geronimo.specs - geronimo-annotation_1.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-ejb_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-interceptor_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-jpa_3.0_spec - 1.0 - - - org.apache.geronimo.specs - geronimo-jta_1.1_spec - 1.0 - - - com.h2database - h2 - 1.0.69 - - - oro - oro - 2.0.8 - - - taglibs - standard - 1.1.2 - - - jboss - javassist - 3.4.ga - - - jstl - jstl - 1.1.2 - - - log4j - log4j - 1.2.13 - - - ognl - ognl - 2.6.9-patch-20070908 - - - poi - poi - 3.0-FINAL - - - org.seasar.dao - s2-dao - 1.0.48 - - - org.seasar.dao - s2-dao-tiger - 1.0.48 - - - org.seasar.container - s2-extension - 2.4.29 - - - org.seasar.container - s2-framework - 2.4.29 - - - org.seasar.container - s2-tiger - 2.4.29 - - - org.seasar.sastruts - sa-struts - 1.0.4-sp1 - - - struts - struts - 1.2.9 - - - commons-lang - commons-lang - 2.3 - + + + 4.0.0 + jp.sf.pal.chat + chat + 0.0.1 + war + chat + + chat + validate + + + maven-compiler-plugin + + 1.5 + 1.5 + UTF-8 + + + + maven-source-plugin + + + source-jar + package + + jar + + + + + + + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + + maven.seasar.org + The Seasar Foundation Maven2 Repository + http://maven.seasar.org/maven2 + + + + org.easymock + easymock + 2.2 + test + + + junit + junit + 3.8.2 + test + + + antlr + antlr + 2.7.7 + provided + + + portlet-api + portlet-api + 1.0 + provided + + + commons-collections + commons-collections + 3.2 + + + jstl + jstl + 1.1.2 + + + taglibs + standard + 1.1.2 + + + commons-el + commons-el + 1.0 + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 1.3 + + + commons-lang + commons-lang + 2.3 + + + commons-validator + commons-validator + 1.2.0 + + + commons-logging + commons-logging + 1.0.4 + + + log4j + log4j + 1.2.13 + jar + + + + org.seasar.container + s2-extension + 2.4.29 + + + org.seasar.container + s2-tiger + 2.4.29 + + org.seasar.sastruts sa-struts-portlet 1.0.0-rc3 - - - org.easymock - easymock - - - commons-logging - commons-logging - - - junit - junit - - - + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-interceptor_3.0_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jta_1.1_spec + 1.0 + + + org.apache.geronimo.specs + geronimo-jsp_2.0_spec + 1.0 + provided + + + org.apache.geronimo.specs + geronimo-servlet_2.4_spec + 1.0 + provided + + + org.apache.geronimo.specs + geronimo-jpa_3.0_spec + 1.0 + + Modified: chat/trunk/src/main/resources/app.dicon =================================================================== --- chat/trunk/src/main/resources/app.dicon 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/resources/app.dicon 2008-11-20 00:00:58 UTC (rev 1377) @@ -4,7 +4,7 @@ - + Modified: chat/trunk/src/main/resources/jdbc.dicon =================================================================== --- chat/trunk/src/main/resources/jdbc.dicon 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/resources/jdbc.dicon 2008-11-20 00:00:58 UTC (rev 1377) @@ -38,6 +38,7 @@ --> + - \ No newline at end of file + Deleted: chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/footer.jsp 2008-11-20 00:00:58 UTC (rev 1377) @@ -1 +0,0 @@ -footer \ No newline at end of file Deleted: chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/header.jsp 2008-11-20 00:00:58 UTC (rev 1377) @@ -1 +0,0 @@ -header \ No newline at end of file Deleted: chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/layout.jsp 2008-11-20 00:00:58 UTC (rev 1377) @@ -1,15 +0,0 @@ - - -<tiles:getAsString name="title" /> - - - - - - - - - -
      - - \ No newline at end of file Deleted: chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/webapp/WEB-INF/view/common/menu.jsp 2008-11-20 00:00:58 UTC (rev 1377) @@ -1,3 +0,0 @@ -
        -
      • appName
      • -
      \ No newline at end of file Modified: chat/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-19 11:03:18 UTC (rev 1376) +++ chat/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-20 00:00:58 UTC (rev 1377) @@ -126,7 +126,7 @@ org.apache.jetspeed.container.JetspeedContainerServlet contextName - todolist + chat 0 From svnnotify ¡÷ sourceforge.jp Thu Nov 20 15:09:43 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 15:09:43 +0900 Subject: [pal-cvs 3643] [1378] checked NPE, and throws an exception. Message-ID: <1227161383.449334.17038.nullmailer@users.sourceforge.jp> Revision: 1378 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1378 Author: shinsuke Date: 2008-11-20 15:09:43 +0900 (Thu, 20 Nov 2008) Log Message: ----------- checked NPE, and throws an exception. Modified Paths: -------------- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java -------------- next part -------------- Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java 2008-11-20 00:00:58 UTC (rev 1377) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/ConfigAction.java 2008-11-20 06:09:43 UTC (rev 1378) @@ -53,6 +53,9 @@ SAStrutsUtil.addMessage(request, "success.update_config"); return displayIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (ConfigurationException e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_config"); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java 2008-11-20 00:00:58 UTC (rev 1377) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/GroupInfoAction.java 2008-11-20 06:09:43 UTC (rev 1378) @@ -198,6 +198,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -216,6 +219,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -234,6 +240,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -259,6 +268,12 @@ GroupInfo groupInfo; if (groupInfoForm.mode == CommonConstants.EDIT_MODE) { groupInfo = groupInfoService.getGroupInfo(groupInfoForm.groupId); + if (groupInfo == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_groupInfo", + new Object[] { groupInfoForm.groupId }); + } groupInfo.setUpdatedBy(request.getRemoteUser()); } else { groupInfo = new GroupInfo(); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java 2008-11-20 00:00:58 UTC (rev 1377) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/RoleInfoAction.java 2008-11-20 06:09:43 UTC (rev 1378) @@ -198,6 +198,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -216,6 +219,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -234,6 +240,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -257,6 +266,12 @@ RoleInfo roleInfo; if (roleInfoForm.mode == CommonConstants.EDIT_MODE) { roleInfo = roleInfoService.getRoleInfo(roleInfoForm.roleId); + if (roleInfo == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_roleInfo", + new Object[] { roleInfoForm.roleId }); + } roleInfo.setUpdatedBy(request.getRemoteUser()); } else { roleInfo = new RoleInfo(); Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java =================================================================== --- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-20 00:00:58 UTC (rev 1377) +++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java 2008-11-20 06:09:43 UTC (rev 1378) @@ -207,6 +207,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -225,6 +228,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -243,6 +249,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -370,6 +379,12 @@ UserInfo userInfo; if (userInfoForm.mode == CommonConstants.EDIT_MODE) { userInfo = userInfoService.getUserInfo(userInfoForm.userId); + if (userInfo == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_userInfo", + new Object[] { userInfoForm.userId }); + } userInfo.setUpdatedBy(request.getRemoteUser()); } else { userInfo = new UserInfo(); From svnnotify ¡÷ sourceforge.jp Thu Nov 20 15:29:59 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 15:29:59 +0900 Subject: [pal-cvs 3644] [1379] throws an exception. Message-ID: <1227162599.884944.6439.nullmailer@users.sourceforge.jp> Revision: 1379 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1379 Author: shinsuke Date: 2008-11-20 15:29:59 +0900 (Thu, 20 Nov 2008) Log Message: ----------- throws an exception. Modified Paths: -------------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java -------------- next part -------------- Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/ConfigAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -49,6 +49,9 @@ SAStrutsUtil.addMessage(request, "success.update_config"); return displayIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (ConfigurationException e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_config"); Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/CategoryAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -198,6 +198,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -216,6 +219,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -234,6 +240,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/TodoAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -250,6 +250,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_todo"); @@ -271,6 +274,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_todo"); @@ -288,6 +294,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_todo"); @@ -322,6 +331,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -340,6 +352,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/admin/UserInfoAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -99,6 +99,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -200,6 +200,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -218,6 +221,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -236,6 +242,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -252,6 +252,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_todo"); @@ -273,6 +276,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_todo"); @@ -290,6 +296,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_todo"); @@ -307,6 +316,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_todo"); @@ -324,6 +336,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -342,6 +357,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java 2008-11-20 06:09:43 UTC (rev 1378) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java 2008-11-20 06:29:59 UTC (rev 1379) @@ -100,6 +100,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( From svnnotify ¡÷ sourceforge.jp Thu Nov 20 15:32:48 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 15:32:48 +0900 Subject: [pal-cvs 3645] [1380] throws an exception. Message-ID: <1227162768.632145.9213.nullmailer@users.sourceforge.jp> Revision: 1380 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1380 Author: shinsuke Date: 2008-11-20 15:32:48 +0900 (Thu, 20 Nov 2008) Log Message: ----------- throws an exception. Modified Paths: -------------- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java -------------- next part -------------- Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -79,5 +79,6 @@ public static final String TIME_LABEL_MINUTES = "time.label.minutes"; public static final String TIME_HOLIDAYS = "time.holidays"; + public static final String DEFAULT_MANAGER = "default.manager"; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -73,6 +73,9 @@ SAStrutsUtil.addMessage(request, "success.update_config"); return displayIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (ConfigurationException e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_config"); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -215,6 +215,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -233,6 +236,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -272,6 +278,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/EmployeeAction.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -173,6 +173,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -191,6 +194,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -209,6 +215,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -200,6 +200,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -218,6 +221,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -255,6 +261,9 @@ SAStrutsUtil.addMessage(request, "success.update_monthly_report"); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/EmployeeAction.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -176,6 +176,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -194,6 +197,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -212,6 +218,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java 2008-11-20 06:29:59 UTC (rev 1379) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java 2008-11-20 06:32:48 UTC (rev 1380) @@ -200,6 +200,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -218,6 +221,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -254,6 +260,9 @@ SAStrutsUtil.addMessage(request, "success.update_monthly_report"); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -276,6 +285,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( From svnnotify ¡÷ sourceforge.jp Thu Nov 20 15:38:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 15:38:04 +0900 Subject: [pal-cvs 3646] [1381] throws an exception. Message-ID: <1227163084.446589.16214.nullmailer@users.sourceforge.jp> Revision: 1381 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1381 Author: shinsuke Date: 2008-11-20 15:38:04 +0900 (Thu, 20 Nov 2008) Log Message: ----------- throws an exception. Modified Paths: -------------- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java -------------- next part -------------- Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java 2008-11-20 06:32:48 UTC (rev 1380) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/CategoryAction.java 2008-11-20 06:38:04 UTC (rev 1381) @@ -191,6 +191,9 @@ NotepadUtil.addMessage(request, "success.create_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -206,6 +209,9 @@ NotepadUtil.addMessage(request, "success.update_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -221,6 +227,9 @@ NotepadUtil.addMessage(request, "success.delete_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java 2008-11-20 06:32:48 UTC (rev 1380) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java 2008-11-20 06:38:04 UTC (rev 1381) @@ -159,6 +159,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_link"); @@ -176,6 +179,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_link"); @@ -193,6 +199,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_link"); Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java 2008-11-20 06:32:48 UTC (rev 1380) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/CategoryAction.java 2008-11-20 06:38:04 UTC (rev 1381) @@ -191,6 +191,9 @@ NotepadUtil.addMessage(request, "success.create_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -206,6 +209,9 @@ NotepadUtil.addMessage(request, "success.update_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -221,6 +227,9 @@ NotepadUtil.addMessage(request, "success.delete_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java 2008-11-20 06:32:48 UTC (rev 1380) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java 2008-11-20 06:38:04 UTC (rev 1381) @@ -228,6 +228,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_link"); @@ -248,6 +251,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_link"); @@ -268,6 +274,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_link"); From svnnotify ¡÷ sourceforge.jp Thu Nov 20 15:44:56 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 15:44:56 +0900 Subject: [pal-cvs 3647] [1382] throws an exception. Message-ID: <1227163496.864715.21134.nullmailer@users.sourceforge.jp> Revision: 1382 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1382 Author: shinsuke Date: 2008-11-20 15:44:56 +0900 (Thu, 20 Nov 2008) Log Message: ----------- throws an exception. Modified Paths: -------------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java -------------- next part -------------- Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java 2008-11-20 06:38:04 UTC (rev 1381) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/ConfigAction.java 2008-11-20 06:44:56 UTC (rev 1382) @@ -49,6 +49,9 @@ SAStrutsUtil.addMessage(request, "success.update_config"); return displayIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (ConfigurationException e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_config"); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java 2008-11-20 06:38:04 UTC (rev 1381) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java 2008-11-20 06:44:56 UTC (rev 1382) @@ -198,6 +198,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_company"); @@ -215,6 +218,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_company"); @@ -232,6 +238,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_company"); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-20 06:38:04 UTC (rev 1381) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-20 06:44:56 UTC (rev 1382) @@ -205,6 +205,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_person"); @@ -222,6 +225,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_person"); @@ -239,6 +245,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_person"); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-20 06:38:04 UTC (rev 1381) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-20 06:44:56 UTC (rev 1382) @@ -199,6 +199,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_company"); @@ -216,6 +219,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_company"); @@ -233,6 +239,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_company"); Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-20 06:38:04 UTC (rev 1381) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-20 06:44:56 UTC (rev 1382) @@ -206,6 +206,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_person"); @@ -223,6 +226,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_person"); @@ -240,6 +246,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_person"); From svnnotify ¡÷ sourceforge.jp Thu Nov 20 16:40:07 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 16:40:07 +0900 Subject: [pal-cvs 3648] [1383] throws an exception. Message-ID: <1227166807.333544.10540.nullmailer@users.sourceforge.jp> Revision: 1383 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1383 Author: shinsuke Date: 2008-11-20 16:40:07 +0900 (Thu, 20 Nov 2008) Log Message: ----------- throws an exception. Modified Paths: -------------- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java -------------- next part -------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-20 06:44:56 UTC (rev 1382) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-20 07:40:07 UTC (rev 1383) @@ -191,6 +191,9 @@ BookmarkUtil.addMessage(request, "success.create_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -206,6 +209,9 @@ BookmarkUtil.addMessage(request, "success.update_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -221,6 +227,9 @@ BookmarkUtil.addMessage(request, "success.delete_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java 2008-11-20 06:44:56 UTC (rev 1382) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/LinkAction.java 2008-11-20 07:40:07 UTC (rev 1383) @@ -159,6 +159,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_link"); @@ -176,6 +179,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_link"); @@ -193,6 +199,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_link"); Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java 2008-11-20 06:44:56 UTC (rev 1382) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java 2008-11-20 07:40:07 UTC (rev 1383) @@ -191,6 +191,9 @@ BookmarkUtil.addMessage(request, "success.create_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -206,6 +209,9 @@ BookmarkUtil.addMessage(request, "success.update_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -221,6 +227,9 @@ BookmarkUtil.addMessage(request, "success.delete_category"); // reset edit page return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java 2008-11-20 06:44:56 UTC (rev 1382) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java 2008-11-20 07:40:07 UTC (rev 1383) @@ -226,6 +226,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_link"); @@ -243,6 +246,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_link"); @@ -260,6 +266,9 @@ loadListPageParameters(); return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_link"); From svnnotify ¡÷ sourceforge.jp Thu Nov 20 16:40:33 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 16:40:33 +0900 Subject: [pal-cvs 3649] [1384] i18ned labels. Message-ID: <1227166833.495574.11132.nullmailer@users.sourceforge.jp> Revision: 1384 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1384 Author: shinsuke Date: 2008-11-20 16:40:33 +0900 (Thu, 20 Nov 2008) Log Message: ----------- i18ned labels. Modified Paths: -------------- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp -------------- next part -------------- Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-20 07:40:07 UTC (rev 1383) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-20 07:40:33 UTC (rev 1384) @@ -29,13 +29,13 @@
      - ²¼¤Ø +   - ¾å¤Ø +  
      + + + + + + + + + + + + + + + + + + + + +
      Confirmation Of Facility
      Facility Name${f:h(name)}
      Facility Group + + ${f:h(fg.name)} + +
      Commment${f:br(f:h(content))}
      + + + + + + + + + + + + + + + + + +
      + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,63 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + +
      Edit Facility
      Facility Name
      Facility Group + + + ${f:h(fg.name)} + + +
      Comment
      + + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + + +
      +Back +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,89 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + +
      +
      +Create New +
      + + + + + + + + + + + + + + + + + +
      Facility NameSort 
      ${f:h(g.name)} + + Up + + + Down + + + Edit + Delete +
      + +
      + + + Previous + + + + + + + ${p} + + + ${p} + + + + + + + Next + + +
      +
      + + ${facilityPager.currentPageNumber}/${facilityPager.allPageCount} (${facilityPager.allRecordCount}) + +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,64 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + +
      Confirmation Of Facility Group
      Facility Group Name${f:h(name)}
      + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,49 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + +
      Edit Facility Group
      Facility Group Name
      + + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + + +
      +Back +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,89 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + +
      +
      +Create New +
      + + + + + + + + + + + + + + + + + +
      Facility Group NameSort 
      ${f:h(g.name)} + + Up + + + Down + + + Edit + Delete +
      + +
      + + + Previous + + + + + + + ${p} + + + ${p} + + + + + + + Next + + +
      +
      + + ${facilityGroupPager.currentPageNumber}/${facilityGroupPager.allPageCount} (${facilityGroupPager.allRecordCount}) + +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,117 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What${f:h(title)}
      Where${f:h(location)}
      When -From: - ${f:h(startDate)} - ${f:h(startTime)} -
      -To: - ${f:h(endDate)} - ${f:h(endTime)} -
      Description${f:br(f:h(content))}
      Privacy -Public -Private - -
      Assigned - - - - - - - - - - - -
      Name
      - - - ${f:u(u.userId)} - - -
      - - "/> - "/> - - - "/> - "/> - - - "/> - "/> - - - "/> - "/> - "/> - -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,110 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What
      Where
      When -From: - - -
      -To: - - -
      Description
      Privacy - - Public - Private - -
      Assigned - - - - - - - - - - - - - - - - -
      Name
      - -
      - - - ${f:u(u.userId)} - - -
      - "/> - "/> -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,25 +0,0 @@ -<%@page pageEncoding="UTF-8" %> - - - - - -
      - -
      -
        -
      • -
      • One time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - - -
      - -
      - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/index.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,82 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - -
      -
      - -
      - - - - - - - - - - - - - - - - - -
      IDTitle 
      ${f:h(event.id)}${f:h(event.title)} - - -
      - -
      - - - - - - - - - - ${p} - - - ${p} - - - - - - - - - -
      -
      - - ${onetimeSchedulePager.currentPageNumber}/${onetimeSchedulePager.allPageCount} (${onetimeSchedulePager.allRecordCount}) - -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,98 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - -
      - - - - - - - - - -
      - - - - - - - - - - - -
      User List
      - - - - - - -
      -
      -
      - - -
      -
      - - - - - - - - - - - - - - - - -
      Selected User List
      - - - - - - - - - ${f:u(u.userId)} - - -
      - -
      -
      -
      -
      - -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,130 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One Time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What${f:h(title)}
      Where${f:h(location)}
      Repeats -Daily -Every weekday (Mon-Fri) -Every Mon., Wed., and Fri. -Every Tues., and Thurs. -Weekly -Monthly -Yearly - -
      When -From: - ${f:h(startDate)} - ${f:h(startTime)} -
      -To: - ${f:h(endDate)} - ${f:h(endTime)} -
      Description${f:br(f:h(content))}
      Privacy -Public -Private - -
      Assigned - - - - - - - - - - - -
      Name
      - - - ${f:u(u.userId)} - - -
      - - "/> - "/> - - - "/> - "/> - - - "/> - "/> - - - "/> - "/> - "/> - -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,124 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One Time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What
      Where
      Repeats - - Daily - Every weekday (Mon-Fri) - Every Mon., Wed., and Fri. - Every Tues., and Thurs. - Weekly - Monthly - Yearly - -
      When -From: - - -
      -To: - - -
      Description
      Privacy - - Public - Private - -
      Assigned - - - - - - - - - - - - - - - - -
      Name
      - -
      - - - ${f:u(u.userId)} - - -
      - "/> - "/> -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,25 +0,0 @@ -<%@page pageEncoding="UTF-8" %> - - - - - -
      - -
      -
        -
      • -
      • One Time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - - -
      - -
      - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/index.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,82 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One Time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - -
      -
      - -
      - - - - - - - - - - - - - - - - - -
      IDTitle 
      ${f:h(event.id)}${f:h(event.title)} - - -
      - -
      - - - - - - - - - - ${p} - - - ${p} - - - - - - - - - -
      -
      - - ${repeatSchedulePager.currentPageNumber}/${repeatSchedulePager.allPageCount} (${repeatSchedulePager.allRecordCount}) - -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,99 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • One Time
      • -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - -
      - - - - - - - - - - -
      - - - - - - - - - - - -
      User List
      - - - - - - -
      -
      -
      - - -
      -
      - - - - - - - - - - - - - - - - -
      Selected User List
      - - - - - - - - - ${f:u(u.userId)} - - -
      - -
      -
      -
      -
      - -
      - - - Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,117 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What${f:h(title)}
      Where${f:h(location)}
      When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
      +To: + ${f:h(endDate)} + ${f:h(endTime)} +
      Description${f:br(f:h(content))}
      Privacy +Public +Private + +
      Assigned + + + + + + + + + + + +
      Name
      + + + ${f:u(u.userId)} + + +
      + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + "/> + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,110 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What
      Where
      When +From: + + +
      +To: + + +
      Description
      Privacy + + Public + Private + +
      Assigned + + + + + + + + + + + + + + + + +
      Name
      + +
      + + + ${f:u(u.userId)} + + +
      + "/> + "/> +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • One time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + + +
      + +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      IDTitle 
      ${f:h(event.id)}${f:h(event.title)} + + +
      + +
      + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
      +
      + + ${onetimeSchedulePager.currentPageNumber}/${onetimeSchedulePager.allPageCount} (${onetimeSchedulePager.allRecordCount}) + +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,98 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + +
      + + + + + + + + + + + +
      User List
      + + + + + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected User List
      + + + + + + + + + ${f:u(u.userId)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,130 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One Time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What${f:h(title)}
      Where${f:h(location)}
      Repeats +Daily +Every weekday (Mon-Fri) +Every Mon., Wed., and Fri. +Every Tues., and Thurs. +Weekly +Monthly +Yearly + +
      When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
      +To: + ${f:h(endDate)} + ${f:h(endTime)} +
      Description${f:br(f:h(content))}
      Privacy +Public +Private + +
      Assigned + + + + + + + + + + + +
      Name
      + + + ${f:u(u.userId)} + + +
      + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + "/> + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,124 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One Time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What
      Where
      Repeats + + Daily + Every weekday (Mon-Fri) + Every Mon., Wed., and Fri. + Every Tues., and Thurs. + Weekly + Monthly + Yearly + +
      When +From: + + +
      +To: + + +
      Description
      Privacy + + Public + Private + +
      Assigned + + + + + + + + + + + + + + + + +
      Name
      + +
      + + + ${f:u(u.userId)} + + +
      + "/> + "/> +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • One Time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + + +
      + +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,82 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One Time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      IDTitle 
      ${f:h(event.id)}${f:h(event.title)} + + +
      + +
      + + + + + + + + + + ${p} + + + ${p} + + + + + + + + + +
      +
      + + ${repeatSchedulePager.currentPageNumber}/${repeatSchedulePager.allPageCount} (${repeatSchedulePager.allRecordCount}) + +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,99 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One Time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + +
      + + + + + + + + + + + +
      User List
      + + + + + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected User List
      + + + + + + + + + ${f:u(u.userId)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalday.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,110 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Day
      • -
      • -
      • Week
      • -
      • -
      • Month
      • -
      • -
      -
      - - -
      - -
      -
      - -
      -
      -< -Today -> -
      - - - - - - - - - - - - - - - - - - - - - -
      ${year}/${month}
      SMTWTFS
      -${day.dayOfMonth} -
      -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      TimeEvents
      All Day -
        - -
      • -${event.title} -${event.title} -
      • -
        -
      -
      ${s.index}:00  - -
        -
      • ${event.time}
        -${event.title} -${event.title} -
      • -
      -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalmonth.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,103 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Day
      • -
      • -
      • Week
      • -
      • -
      • Month
      • -
      • -
      -
      - - -
      - -
      -
      - -
      -
      -< -Today -> -
      - - - - - - - - - - - - - - - - - - - - - -
      ${year}/${month}
      SMTWTFS
      -${day.dayOfMonth} -
      -
      - -
      - - - - - - - - - - - - - - - - - - -
      SunMonTueWedThuFriSat
      -${day.dayOfMonth}
      -
        - -
      • -${event.title} -${event.title} -
      • -
        - - -
      • ${event.time}
        -${event.title} -${event.title} -
      • -
        -
        - -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/personalweek.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,109 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Day
      • -
      • -
      • Week
      • -
      • -
      • Month
      • -
      • -
      -
      - - -
      - -
      -
      - -
      -
      -< -Today -> -
      - - - - - - - - - - - - - - - - - - - - - -
      ${year}/${month}
      SMTWTFS
      -${day.dayOfMonth} -
      -
      - -
      - - - - - - - - - - - - - - - - - - - - - - - -
      Time${day.displayedDate}
      All Day -
        - -
      • -${event.title} -${event.title} -
      • -
        -
      -
      Events -
        - - -
      • ${event.time}
        -${event.title} -${event.title} -
      • -
        -
        -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,125 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • -
      • -
      • One time
      • - -
      • -
      • Repeats
      • -
        -
      • -
      -
      - - -
      - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What${f:h(title)}
      Where${f:h(location)}
      When -From: - ${f:h(startDate)} - ${f:h(startTime)} -
      -To: - ${f:h(endDate)} - ${f:h(endTime)} -
      Description${f:br(f:h(content))}
      Privacy -Public -Private - -
      Assigned - - - - - - - - - - - -
      Name
      - - - ${f:u(u.userId)} - - -
      - - "/> - "/> - - - "/> - "/> - - - "/> - "/> - - - - "/> - "/> - -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,184 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • -
      • -
      • One time
      • - -
      • -
      • Repeats
      • -
        -
      • -
      -
      - - -
      - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What
      Where
      When - - - - - - - - - - - -
      From - - - ${f:h(v)} - - -/ - - - ${f:h(v)} - - -/ - - - ${f:h(v)} - - -  - - - - ${f:h(v.label)} - - -: - - - - ${f:h(v)} - - -
      To - - - ${f:h(v)} - - -/ - - - ${f:h(v)} - - -/ - - - ${f:h(v)} - - -  - - - - ${f:h(v.label)} - - -: - - - - ${f:h(v)} - - -
      -
      Description
      Privacy - - Public - Private - -
      Assigned - - - - - - - - - - - - - - - - -
      Name
      - -
      - - - ${f:u(u.userId)} - - -
      - "/> - "/> -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,29 +0,0 @@ -<%@page pageEncoding="UTF-8" %> - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • -
      • -
      • One time
      • - -
      • -
      • Repeats
      • -
        -
      • -
      -
      - - - -
      - -
      - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,128 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • -
      • -
      • One time
      • - -
      • -
      • Repeats
      • -
        -
      • -
      -
      - - -
      - - -
      - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - -
      User Group
      - - - ${f:h(u.label)} - - -
      - -
      - - - - - - - - - - - -
      User List
      - - - - - -
      -
      -
      - - -
      -
      - - - - - - - - - - - - - - - - -
      Selected User List
      - - - - - - - - - ${f:u(u.userId)} - - -
      - -
      -
      -
      -
      - -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,138 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • - -
      • -
      • One Time
      • -
        -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What${f:h(title)}
      Where${f:h(location)}
      Repeats -Daily -Every weekday (Mon-Fri) -Every Mon., Wed., and Fri. -Every Tues., and Thurs. -Weekly -Monthly -Yearly - -
      When -From: - ${f:h(startDate)} - ${f:h(startTime)} -
      -To: - ${f:h(endDate)} - ${f:h(endTime)} -
      Description${f:br(f:h(content))}
      Privacy -Public -Private - -
      Assigned - - - - - - - - - - - -
      Name
      - - - ${f:u(u.userId)} - - -
      - - "/> - "/> - - - "/> - "/> - - - "/> - "/> - - - - "/> - "/> - -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,201 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • - -
      • -
      • One Time
      • -
        -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - - - - - - - -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      What
      Where
      Repeats - - Daily - Every weekday (Mon-Fri) - Every Mon., Wed., and Fri. - Every Tues., and Thurs. - Weekly - Monthly - Yearly - -
      When - - - - - - - - - - - -
      From - - - ${f:h(v)} - - -/ - - - ${f:h(v)} - - -/ - - - ${f:h(v)} - - -  - - - - ${f:h(v.label)} - - -: - - - - ${f:h(v)} - - -
      To - - - - ${f:h(v)} - - -/ - - - - ${f:h(v)} - - -/ - - - - ${f:h(v)} - - -  - - - - ${f:h(v.label)} - - -: - - - - ${f:h(v)} - - -
      -
      Description
      Privacy - - Public - Private - -
      Assigned - - - - - - - - - - - - - - - - -
      Name
      - -
      - - - ${f:u(u.userId)} - - -
      - "/> - "/> -
      -
      -
      -
      - - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,29 +0,0 @@ -<%@page pageEncoding="UTF-8" %> - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • - -
      • -
      • One Time
      • -
        -
      • -
      • Repeats
      • -
      • -
      -
      - - - -
      - -
      - - Deleted: scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-20 07:40:33 UTC (rev 1384) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -1,129 +0,0 @@ -<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> - - - - - - -
      - -
      -
        -
      • -
      • Calendar
      • - -
      • -
      • One Time
      • -
        -
      • -
      • Repeats
      • -
      • -
      -
      - - -
      - - -
      - - - - - - - - - - - - - - -
      - - - - - - - - - - - - - - -
      User Group
      - - - ${f:h(u.label)} - - -
      - -
      - - - - - - - - - - - -
      User List
      - - - - - -
      -
      -
      - - -
      -
      - - - - - - - - - - - - - - - - -
      Selected User List
      - - - - - - - - - ${f:u(u.userId)} - - -
      - -
      -
      -
      -
      - -
      - - - Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,110 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TimeEvents
      All Day +
        + +
      • +${event.title} +${event.title} +
      • +
        +
      +
      ${s.index}:00  + +
        +
      • ${event.time}
        +${event.title} +${event.title} +
      • +
      +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,103 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + + + + + + + + + + +
      SunMonTueWedThuFriSat
      +${day.dayOfMonth}
      +
        + +
      • +${event.title} +${event.title} +
      • +
        + + +
      • ${event.time}
        +${event.title} +${event.title} +
      • +
        +
        + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,109 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + +
      Time${day.displayedDate}
      All Day +
        + +
      • +${event.title} +${event.title} +
      • +
        +
      +
      Events +
        + + +
      • ${event.time}
        +${event.title} +${event.title} +
      • +
        +
        +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,125 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What${f:h(title)}
      Where${f:h(location)}
      When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
      +To: + ${f:h(endDate)} + ${f:h(endTime)} +
      Description${f:br(f:h(content))}
      Privacy +Public +Private + +
      Assigned + + + + + + + + + + + +
      Name
      + + + ${f:u(u.userId)} + + +
      + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + + "/> + "/> + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,184 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What
      Where
      When + + + + + + + + + + + +
      From + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      To + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      +
      Description
      Privacy + + Public + Private + +
      Assigned + + + + + + + + + + + + + + + + +
      Name
      + +
      + + + ${f:u(u.userId)} + + +
      + "/> + "/> +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,29 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + + +
      + +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,128 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + +
      User Group
      + + + ${f:h(u.label)} + + +
      + +
      + + + + + + + + + + + +
      User List
      + + + + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected User List
      + + + + + + + + + ${f:u(u.userId)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,138 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What${f:h(title)}
      Where${f:h(location)}
      Repeats +Daily +Every weekday (Mon-Fri) +Every Mon., Wed., and Fri. +Every Tues., and Thurs. +Weekly +Monthly +Yearly + +
      When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
      +To: + ${f:h(endDate)} + ${f:h(endTime)} +
      Description${f:br(f:h(content))}
      Privacy +Public +Private + +
      Assigned + + + + + + + + + + + +
      Name
      + + + ${f:u(u.userId)} + + +
      + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + + "/> + "/> + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,201 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What
      Where
      Repeats + + Daily + Every weekday (Mon-Fri) + Every Mon., Wed., and Fri. + Every Tues., and Thurs. + Weekly + Monthly + Yearly + +
      When + + + + + + + + + + + +
      From + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      To + + + + ${f:h(v)} + + +/ + + + + ${f:h(v)} + + +/ + + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      +
      Description
      Privacy + + Public + Private + +
      Assigned + + + + + + + + + + + + + + + + +
      Name
      + +
      + + + ${f:u(u.userId)} + + +
      + "/> + "/> +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,29 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + + +
      + +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-20 09:13:34 UTC (rev 1385) @@ -0,0 +1,129 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + +
      User Group
      + + + ${f:h(u.label)} + + +
      + +
      + + + + + + + + + + + +
      User List
      + + + + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected User List
      + + + + + + + + + ${f:u(u.userId)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Thu Nov 20 22:26:19 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 22:26:19 +0900 Subject: [pal-cvs 3651] [1386] added facilities management for admin. Message-ID: <1227187579.255550.21008.nullmailer@users.sourceforge.jp> Revision: 1386 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1386 Author: shinsuke Date: 2008-11-20 22:26:19 +0900 (Thu, 20 Nov 2008) Log Message: ----------- added facilities management for admin. Modified Paths: -------------- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml -------------- next part -------------- Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-20 09:13:34 UTC (rev 1385) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-20 13:26:19 UTC (rev 1386) @@ -25,13 +25,35 @@ --> + FacilityManager + Scheduler: Facility Manager + Manage all facilities. + org.seasar.struts.portlet.SAStrutsPortlet + + viewPage + /admin/facility/facility/ + + 0 + + text/html + VIEW + + en + ja + + Facility Manager + Facilities + Scheduler,URL + + + SchedulerManager Scheduler: Scheduler Manager Manage all events. org.seasar.struts.portlet.SAStrutsPortlet viewPage - /admin/onetimeSchedule/ + /admin/schedule/onetimeSchedule/ 0 @@ -53,7 +75,7 @@ org.seasar.struts.portlet.SAStrutsPortlet viewPage - /user/calendar/ + /user/schedule/calendar/ 0 From svnnotify ¡÷ sourceforge.jp Thu Nov 20 22:27:01 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 20 Nov 2008 22:27:01 +0900 Subject: [pal-cvs 3652] [1387] added a search form. Message-ID: <1227187621.170181.21188.nullmailer@users.sourceforge.jp> Revision: 1387 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1387 Author: shinsuke Date: 2008-11-20 22:27:01 +0900 (Thu, 20 Nov 2008) Log Message: ----------- added a search form. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java 2008-11-20 13:26:19 UTC (rev 1386) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/facility/FacilityAction.java 2008-11-20 13:27:01 UTC (rev 1387) @@ -55,8 +55,7 @@ facilityItems = facilityService.getFacilityList(facilityPager); // restore from pager - // facilityForm.facilityname = - // facilityPager.getFacilityname(); + pagerDxo.convertFromPagerToForm(facilityPager, facilityForm); return "index.jsp"; } @@ -77,9 +76,7 @@ @Execute(validator = false, input = "error.jsp") public String search() { - // facilityPager.setFacilityname(facilityForm. - // facilityname); - + pagerDxo.convertFromFormToPager(facilityForm, facilityPager); return displayList(); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java 2008-11-20 13:26:19 UTC (rev 1386) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java 2008-11-20 13:27:01 UTC (rev 1387) @@ -5,6 +5,8 @@ import jp.sf.pal.scheduler.common.form.PagingResultForm; import jp.sf.pal.scheduler.common.pager.DefaultPager; import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; +import jp.sf.pal.scheduler.form.admin.facility.FacilityForm; +import jp.sf.pal.scheduler.pager.FacilityPager; import org.seasar.extension.dxo.annotation.ConversionRule; import org.seasar.extension.dxo.annotation.ExcludeNull; @@ -21,4 +23,12 @@ @ConversionRule(// "pageSize : pageSize, " + "currentPageNumber : pageNumber") public void convert(PagingResultForm page, DefaultPager pager); + + @ConversionRule(// + "groupId : groupId") + public void convertFromFormToPager(FacilityForm form, FacilityPager pager); + + @ConversionRule(// + "groupId : groupId") + public void convertFromPagerToForm(FacilityPager pager, FacilityForm form); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java 2008-11-20 13:26:19 UTC (rev 1386) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityGroupPager.java 2008-11-20 13:27:01 UTC (rev 1387) @@ -15,7 +15,7 @@ } protected int getDefaultPageSize() { - return 3; + return 20; } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java 2008-11-20 13:26:19 UTC (rev 1386) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/pager/FacilityPager.java 2008-11-20 13:27:01 UTC (rev 1387) @@ -6,16 +6,27 @@ private static final long serialVersionUID = -8738042204895427884L; + private Integer groupId; + public FacilityPager() { - + groupId = null; } public void clear() { super.clear(); + groupId = null; } protected int getDefaultPageSize() { - return 50; + return 20; } + public Integer getGroupId() { + return groupId; + } + + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-20 13:26:19 UTC (rev 1386) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-20 13:27:01 UTC (rev 1387) @@ -39,6 +39,9 @@ // setup cb.query().setDeletedBy_IsNull(); + if (facilityPager.getGroupId() != null) { + cb.query().setGroupId_Equal(facilityPager.getGroupId()); + } cb.query().addOrderBy_SortOrder_Asc(); Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-20 13:26:19 UTC (rev 1386) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-20 13:27:01 UTC (rev 1387) @@ -20,6 +20,29 @@
      +
      + + + + + + + + + +
      Group + + + + ${f:h(fg.name)} + + + + + +
      +
      +
      Create New From svnnotify ¡÷ sourceforge.jp Fri Nov 21 07:20:50 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 21 Nov 2008 07:20:50 +0900 Subject: [pal-cvs 3653] [1388] removed empty directories. Message-ID: <1227219650.038013.32307.nullmailer@users.sourceforge.jp> Revision: 1388 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1388 Author: shinsuke Date: 2008-11-21 07:20:49 +0900 (Fri, 21 Nov 2008) Log Message: ----------- removed empty directories. Removed Paths: ------------- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/repeatSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/repeatSchedule/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Fri Nov 21 11:12:54 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 21 Nov 2008 11:12:54 +0900 Subject: [pal-cvs 3654] [1389] added facilities menu. Message-ID: <1227233574.744626.32331.nullmailer@users.sourceforge.jp> Revision: 1389 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1389 Author: shinsuke Date: 2008-11-21 11:12:54 +0900 (Fri, 21 Nov 2008) Log Message: ----------- added facilities menu. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp Added Paths: ----------- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -11,10 +11,12 @@ import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.SAStrutsUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; import jp.sf.pal.scheduler.db.exentity.UserInfo; import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; import jp.sf.pal.scheduler.form.admin.schedule.OnetimeScheduleForm; import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; @@ -44,6 +46,8 @@ private UserInfoService userInfoService; + private FacilityService facilityService; + private OnetimeSchedulePager onetimeSchedulePager; private PagerDxo pagerDxo; @@ -311,6 +315,60 @@ return "userlist.jsp"; } + @Execute(validator = false, input = "error.jsp") + public String selectfacilities() { + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setfacilities() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addfacilities() { + List facilityList = new ArrayList(); + if (onetimeScheduleForm.selectedFacilities != null) { + for (String facilityId : onetimeScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (onetimeScheduleForm.addedFacilities != null) { + for (String facilityId : onetimeScheduleForm.addedFacilities) { + facilityList.add(facilityId); + } + } + if (!facilityList.isEmpty()) { + onetimeScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + onetimeScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removefacilities() { + List facilityList = new ArrayList(); + if (onetimeScheduleForm.selectedFacilities != null) { + for (String facilityId : onetimeScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (onetimeScheduleForm.removedFacilities != null) { + for (String facilityId : onetimeScheduleForm.removedFacilities) { + facilityList.remove(facilityId); + } + } + if (!facilityList.isEmpty()) { + onetimeScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + onetimeScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + private void loadEventSchedule() { EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( @@ -365,6 +423,19 @@ .getSelectedUserList(onetimeScheduleForm.selectedUsers); } + public List getAvailableFacilityItems() { + return facilityService.getAvailableFacilityList( + onetimeScheduleForm.selectedFacilities, null); + } + + public List getSelectedFacilityItems() { + if (onetimeScheduleForm.selectedFacilities == null) { + return null; + } + return facilityService + .getSelectedFacilityList(onetimeScheduleForm.selectedFacilities); + } + /** * @return the request */ @@ -429,4 +500,12 @@ this.onetimeScheduleDxo = onetimeScheduleDxo; } + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -11,10 +11,12 @@ import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.SAStrutsUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; import jp.sf.pal.scheduler.db.exentity.UserInfo; import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; import jp.sf.pal.scheduler.form.admin.schedule.RepeatScheduleForm; import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; @@ -44,6 +46,8 @@ private UserInfoService userInfoService; + private FacilityService facilityService; + private RepeatSchedulePager repeatSchedulePager; private PagerDxo pagerDxo; @@ -311,6 +315,60 @@ return "userlist.jsp"; } + @Execute(validator = false, input = "error.jsp") + public String selectfacilities() { + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setfacilities() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addfacilities() { + List facilityList = new ArrayList(); + if (repeatScheduleForm.selectedFacilities != null) { + for (String facilityId : repeatScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (repeatScheduleForm.addedFacilities != null) { + for (String facilityId : repeatScheduleForm.addedFacilities) { + facilityList.add(facilityId); + } + } + if (!facilityList.isEmpty()) { + repeatScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + repeatScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removefacilities() { + List facilityList = new ArrayList(); + if (repeatScheduleForm.selectedFacilities != null) { + for (String facilityId : repeatScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (repeatScheduleForm.removedFacilities != null) { + for (String facilityId : repeatScheduleForm.removedFacilities) { + facilityList.remove(facilityId); + } + } + if (!facilityList.isEmpty()) { + repeatScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + repeatScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + private void loadEventSchedule() { EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( @@ -365,6 +423,19 @@ .getSelectedUserList(repeatScheduleForm.selectedUsers); } + public List getAvailableFacilityItems() { + return facilityService.getAvailableFacilityList( + repeatScheduleForm.selectedFacilities, null); + } + + public List getSelectedFacilityItems() { + if (repeatScheduleForm.selectedFacilities == null) { + return null; + } + return facilityService + .getSelectedFacilityList(repeatScheduleForm.selectedFacilities); + } + /** * @return the request */ @@ -428,4 +499,12 @@ this.repeatScheduleDxo = repeatScheduleDxo; } + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -15,10 +15,14 @@ import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.SAStrutsUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; import jp.sf.pal.scheduler.db.exentity.UserInfo; import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; import jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm; import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; @@ -48,6 +52,10 @@ private UserInfoService userInfoService; + private FacilityService facilityService; + + private FacilityGroupService facilityGroupService; + private OnetimeSchedulePager onetimeSchedulePager; private PagerDxo pagerDxo; @@ -290,6 +298,7 @@ @Execute(validator = false, input = "error.jsp") public String selectusers() { if (onetimeScheduleForm.userGroup == null) { + // TODO String userId = request.getRemoteUser(); List> userGroupList = userInfoService .getUserGroupList(userId); @@ -304,6 +313,7 @@ @Execute(validator = true, input = "error.jsp") public String changeusergroup() { if (onetimeScheduleForm.userGroup == null) { + // TODO String userId = request.getRemoteUser(); List> userGroupList = userInfoService .getUserGroupList(userId); @@ -362,6 +372,83 @@ return "userlist.jsp"; } + @Execute(validator = false, input = "error.jsp") + public String selectfacilities() { + if (onetimeScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + onetimeScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String changefacilitygroup() { + if (onetimeScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + onetimeScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setfacilities() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addfacilities() { + List facilityList = new ArrayList(); + if (onetimeScheduleForm.selectedFacilities != null) { + for (String facilityId : onetimeScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (onetimeScheduleForm.addedFacilities != null) { + for (String facilityId : onetimeScheduleForm.addedFacilities) { + facilityList.add(facilityId); + } + } + if (!facilityList.isEmpty()) { + onetimeScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + onetimeScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removefacilities() { + List facilityList = new ArrayList(); + if (onetimeScheduleForm.selectedFacilities != null) { + for (String facilityId : onetimeScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (onetimeScheduleForm.removedFacilities != null) { + for (String facilityId : onetimeScheduleForm.removedFacilities) { + facilityList.remove(facilityId); + } + } + if (!facilityList.isEmpty()) { + onetimeScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + onetimeScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + private void loadEventSchedule() { EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( @@ -437,6 +524,28 @@ .getSelectedUserList(onetimeScheduleForm.selectedUsers); } + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + public List getAvailableFacilityItems() { + Integer facilityGroupId = null; + if (onetimeScheduleForm.facilityGroupId != null) { + facilityGroupId = Integer + .parseInt(onetimeScheduleForm.facilityGroupId); + } + return facilityService.getAvailableFacilityList( + onetimeScheduleForm.selectedFacilities, facilityGroupId); + } + + public List getSelectedFacilityItems() { + if (onetimeScheduleForm.selectedFacilities == null) { + return null; + } + return facilityService + .getSelectedFacilityList(onetimeScheduleForm.selectedFacilities); + } + public List getYearItems() { int year = CalendarUtil.getYear(CalendarUtil.getToday()); List items = new ArrayList(); @@ -562,4 +671,21 @@ this.onetimeScheduleDxo = onetimeScheduleDxo; } + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -15,10 +15,14 @@ import jp.sf.pal.scheduler.common.util.ConfigUtil; import jp.sf.pal.scheduler.common.util.SAStrutsUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; import jp.sf.pal.scheduler.db.exentity.UserInfo; import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; import jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm; import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; @@ -48,6 +52,10 @@ private UserInfoService userInfoService; + private FacilityService facilityService; + + private FacilityGroupService facilityGroupService; + private RepeatSchedulePager repeatSchedulePager; private PagerDxo pagerDxo; @@ -361,6 +369,83 @@ return "userlist.jsp"; } + @Execute(validator = false, input = "error.jsp") + public String selectfacilities() { + if (repeatScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + repeatScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String changefacilitygroup() { + if (repeatScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + repeatScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setfacilities() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addfacilities() { + List facilityList = new ArrayList(); + if (repeatScheduleForm.selectedFacilities != null) { + for (String facilityId : repeatScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (repeatScheduleForm.addedFacilities != null) { + for (String facilityId : repeatScheduleForm.addedFacilities) { + facilityList.add(facilityId); + } + } + if (!facilityList.isEmpty()) { + repeatScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + repeatScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removefacilities() { + List facilityList = new ArrayList(); + if (repeatScheduleForm.selectedFacilities != null) { + for (String facilityId : repeatScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (repeatScheduleForm.removedFacilities != null) { + for (String facilityId : repeatScheduleForm.removedFacilities) { + facilityList.remove(facilityId); + } + } + if (!facilityList.isEmpty()) { + repeatScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + repeatScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + private void loadEventSchedule() { EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( @@ -436,6 +521,28 @@ .getSelectedUserList(repeatScheduleForm.selectedUsers); } + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + public List getAvailableFacilityItems() { + Integer facilityGroupId = null; + if (repeatScheduleForm.facilityGroupId != null) { + facilityGroupId = Integer + .parseInt(repeatScheduleForm.facilityGroupId); + } + return facilityService.getAvailableFacilityList( + repeatScheduleForm.selectedFacilities, facilityGroupId); + } + + public List getSelectedFacilityItems() { + if (repeatScheduleForm.selectedFacilities == null) { + return null; + } + return facilityService + .getSelectedFacilityList(repeatScheduleForm.selectedFacilities); + } + public List getYearItems() { int year = CalendarUtil.getYear(CalendarUtil.getToday()); List items = new ArrayList(); @@ -560,4 +667,21 @@ this.repeatScheduleDxo = repeatScheduleDxo; } + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/EventSchedule.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -72,4 +72,44 @@ } } } + + public String[] getSelectedFacilities() { + if (getFacilityScheduleMappingList() != null + && !getFacilityScheduleMappingList().isEmpty()) { + List list = new ArrayList(); + for (FacilityScheduleMapping fsm : getFacilityScheduleMappingList()) { + list.add(fsm.getFacilityId().toString()); + } + return list.toArray(new String[0]); + } + return null; + } + + public void setSelectedFacilities(String[] facilities) { + if (facilities != null && getFacilityScheduleMappingList() != null) { + List facilityList = new LinkedList(); + for (String facilityId : facilities) { + facilityList.add(facilityId); + } + for (FacilityScheduleMapping ssm : getFacilityScheduleMappingList()) { + boolean delete = true; + for (String facilityId : facilityList) { + if (ssm.getFacilityId().intValue() == Integer + .parseInt(facilityId)) { + delete = false; + facilityList.remove(facilityId); + break; + } + } + if (delete) { + ssm.setDelete(true); + } + } + for (String facilityId : facilityList) { + FacilityScheduleMapping ssm = new FacilityScheduleMapping(); + ssm.setFacilityId(new Integer(facilityId)); + getFacilityScheduleMappingList().add(ssm); + } + } + } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/db/exentity/FacilityScheduleMapping.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -15,4 +15,14 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + private boolean delete = false; + + public boolean isDelete() { + return delete; + } + + public void setDelete(boolean delete) { + this.delete = delete; + } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -32,6 +32,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromEventScheduleToForm(EventSchedule eventSchedule, OnetimeScheduleForm form); @@ -56,6 +57,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromFormToEventSchedule(OnetimeScheduleForm form, EventSchedule eventSchedule); @@ -80,6 +82,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromEventScheduleToForm(EventSchedule eventSchedule, jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm form); @@ -104,6 +107,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromFormToEventSchedule( jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm form, Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -32,6 +32,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromEventScheduleToForm(EventSchedule eventSchedule, RepeatScheduleForm form); @@ -56,6 +57,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromFormToEventSchedule(RepeatScheduleForm form, EventSchedule eventSchedule); @@ -80,6 +82,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromEventScheduleToForm(EventSchedule eventSchedule, jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm form); @@ -104,6 +107,7 @@ // + ", versionno : versionno" // + ", content : content" // + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // ) public void convertFromFormToEventSchedule( jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm form, Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/OnetimeScheduleForm.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -71,6 +71,12 @@ public String[] selectedUsers; + public String[] addedFacilities; + + public String[] removedFacilities; + + public String[] selectedFacilities; + @IntegerType public String pageNumber; @@ -93,5 +99,8 @@ removedUsers = null; selectedUsers = null; secret = "F"; + addedFacilities = null; + removedFacilities = null; + selectedFacilities = null; } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/admin/schedule/RepeatScheduleForm.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -74,6 +74,12 @@ public String[] selectedUsers; + public String[] addedFacilities; + + public String[] removedFacilities; + + public String[] selectedFacilities; + @IntegerType public String pageNumber; @@ -97,5 +103,8 @@ removedUsers = null; selectedUsers = null; secret = "F"; + addedFacilities = null; + removedFacilities = null; + selectedFacilities = null; } } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/OnetimeScheduleForm.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -118,7 +118,17 @@ @Required(target = "changeusergroup") public String userGroup; + public String[] addedFacilities; + + public String[] removedFacilities; + + public String[] selectedFacilities; + + @Required(target = "changefacilitygroup") @IntegerType + public String facilityGroupId; + + @IntegerType public String pageNumber; public void initialize() { @@ -163,6 +173,10 @@ selectedUsers = null; secret = "F"; userGroup = null; + addedFacilities = null; + removedFacilities = null; + selectedFacilities = null; + facilityGroupId = null; } public String getStartDate() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/RepeatScheduleForm.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -118,7 +118,17 @@ @Required(target = "changeusergroup") public String userGroup; + public String[] addedFacilities; + + public String[] removedFacilities; + + public String[] selectedFacilities; + + @Required(target = "changefacilitygroup") @IntegerType + public String facilityGroupId; + + @IntegerType public String pageNumber; public void initialize() { @@ -164,6 +174,10 @@ selectedUsers = null; secret = "F"; userGroup = null; + addedFacilities = null; + removedFacilities = null; + selectedFacilities = null; + facilityGroupId = null; } public String getStartDate() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -2,6 +2,7 @@ import java.io.Serializable; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -181,6 +182,45 @@ // TODO } + public List getAvailableFacilityList(String[] selectedFacilities, + Integer facilityGroupId) { + FacilityCB cb = new FacilityCB(); + + // setup + + if (facilityGroupId != null) { + cb.query().setGroupId_Equal(facilityGroupId); + } + if (selectedFacilities != null) { + List excludedFacilityIdList = new ArrayList(); + for (String id : selectedFacilities) { + excludedFacilityIdList.add(Integer.parseInt(id)); + } + cb.query().setId_NotInScope(excludedFacilityIdList); + } + return facilityBhv.selectList(cb); + + } + + public List getSelectedFacilityList(String[] selectedFacilities) { + FacilityCB cb = new FacilityCB(); + + // setup + + if (selectedFacilities != null) { + List facilityIdList = new ArrayList( + selectedFacilities.length); + for (String facilityId : selectedFacilities) { + facilityIdList.add(Integer.parseInt(facilityId)); + } + cb.query().setId_InScope(facilityIdList); + } + + cb.query().addOrderBy_SortOrder_Asc(); + + return facilityBhv.selectList(cb); + } + public FacilityBhv getFacilityBhv() { return facilityBhv; } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -11,12 +11,15 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; import jp.sf.pal.scheduler.db.exbhv.EventScheduleBhv; import jp.sf.pal.scheduler.db.exbhv.EventScheduleContentBhv; import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.FacilityScheduleMappingBhv; import jp.sf.pal.scheduler.db.exentity.EventSchedule; import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; import org.seasar.framework.container.hotdeploy.HotdeployUtil; @@ -31,6 +34,8 @@ private transient EventScheduleMappingBhv eventScheduleMappingBhv; + private transient FacilityScheduleMappingBhv facilityScheduleMappingBhv; + private PagerDxo pagerDxo; public List getPersonalScheduleMappingList( @@ -100,6 +105,12 @@ cb2.query().setScheduleId_Equal(id); eventSchedule.setEventScheduleMappingList(eventScheduleMappingBhv .selectList(cb2)); + + FacilityScheduleMappingCB cb3 = new FacilityScheduleMappingCB(); + cb3.query().setScheduleId_Equal(id); + eventSchedule.setFacilityScheduleMappingList(facilityScheduleMappingBhv + .selectList(cb3)); + return eventSchedule; } @@ -146,6 +157,21 @@ } } } + + List fsmList = eventSchedule + .getFacilityScheduleMappingList(); + if (fsmList != null) { + for (FacilityScheduleMapping ssm : fsmList) { + if (ssm.isDelete()) { + // delete + facilityScheduleMappingBhv.delete(ssm); + } else if (ssm.getId() == null) { + // create + ssm.setScheduleId(eventSchedule.getId()); + facilityScheduleMappingBhv.insert(ssm); + } + } + } } public void disable(Long id, String name) { @@ -197,4 +223,13 @@ this.eventScheduleContentBhv = eventScheduleContentBhv; } + public FacilityScheduleMappingBhv getFacilityScheduleMappingBhv() { + return facilityScheduleMappingBhv; + } + + public void setFacilityScheduleMappingBhv( + FacilityScheduleMappingBhv facilityScheduleMappingBhv) { + this.facilityScheduleMappingBhv = facilityScheduleMappingBhv; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java 2008-11-21 02:12:54 UTC (rev 1389) @@ -12,12 +12,15 @@ import jp.sf.pal.scheduler.db.allcommon.cbean.UnionQuery; import jp.sf.pal.scheduler.db.cbean.EventScheduleCB; import jp.sf.pal.scheduler.db.cbean.EventScheduleMappingCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; import jp.sf.pal.scheduler.db.exbhv.EventScheduleBhv; import jp.sf.pal.scheduler.db.exbhv.EventScheduleContentBhv; import jp.sf.pal.scheduler.db.exbhv.EventScheduleMappingBhv; +import jp.sf.pal.scheduler.db.exbhv.FacilityScheduleMappingBhv; import jp.sf.pal.scheduler.db.exentity.EventSchedule; import jp.sf.pal.scheduler.db.exentity.EventScheduleContent; import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; import jp.sf.pal.scheduler.pager.RepeatSchedulePager; import org.seasar.framework.container.hotdeploy.HotdeployUtil; @@ -32,6 +35,8 @@ private transient EventScheduleMappingBhv eventScheduleMappingBhv; + private transient FacilityScheduleMappingBhv facilityScheduleMappingBhv; + private PagerDxo pagerDxo; public List getPersonalScheduleMappingList( @@ -112,6 +117,12 @@ cb2.query().setScheduleId_Equal(id); eventSchedule.setEventScheduleMappingList(eventScheduleMappingBhv .selectList(cb2)); + + FacilityScheduleMappingCB cb3 = new FacilityScheduleMappingCB(); + cb3.query().setScheduleId_Equal(id); + eventSchedule.setFacilityScheduleMappingList(facilityScheduleMappingBhv + .selectList(cb3)); + return eventSchedule; } @@ -157,6 +168,21 @@ } } } + + List fsmList = eventSchedule + .getFacilityScheduleMappingList(); + if (fsmList != null) { + for (FacilityScheduleMapping ssm : fsmList) { + if (ssm.isDelete()) { + // delete + facilityScheduleMappingBhv.delete(ssm); + } else if (ssm.getId() == null) { + // create + ssm.setScheduleId(eventSchedule.getId()); + facilityScheduleMappingBhv.insert(ssm); + } + } + } } public void disable(Long id, String name) { @@ -208,4 +234,13 @@ this.eventScheduleContentBhv = eventScheduleContentBhv; } + public FacilityScheduleMappingBhv getFacilityScheduleMappingBhv() { + return facilityScheduleMappingBhv; + } + + public void setFacilityScheduleMappingBhv( + FacilityScheduleMappingBhv facilityScheduleMappingBhv) { + this.facilityScheduleMappingBhv = facilityScheduleMappingBhv; + } + } Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -84,6 +84,28 @@
      Facilities + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + + + ${f:u(f.id)} + + +
      Facilities + + + + + + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + +
      + + + ${f:u(f.id)} + + +
      + + + + + + + + + + +
      Facility List
      + + + + ${f:h(f.name)} + + +
      + +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected Facility List
      + + + + ${f:h(f.name)} + + + + + ${f:u(f.id)} + + +
      + +
      +
      + + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -31,6 +31,11 @@ + + + ${f:u(f.id)} + +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -97,6 +97,28 @@ + + + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -106,6 +106,35 @@ + + + + Added: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -0,0 +1,103 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • One Time
      • +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + ${f:u(u.userId)} + + +
      +
      Facilities + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + + + ${f:u(f.id)} + + +
      Facilities + + + + + + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + +
      + + + ${f:u(f.id)} + + +
      + + + + + + + + + + +
      Facility List
      + + + + ${f:h(f.name)} + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected Facility List
      + + + + ${f:h(f.name)} + + + + + ${f:u(f.id)} + + +
      + +
      +
      + + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -32,6 +32,11 @@ + + + ${f:u(f.id)} + +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -92,6 +92,28 @@ + + + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -166,6 +166,35 @@ + + + + Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -0,0 +1,133 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + + + ${f:u(u.userId)} + + +
      +
      Facilities + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + + + ${f:u(u.id)} + + +
      Facilities + + + + + + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + +
      + + + ${f:u(f.id)} + + +
      + + + + + + + + + + + + + +
      Facility Group
      + + + ${f:h(fg.name)} + + +
      + +
      + + + + + + + + + + + +
      Facility List
      + + + ${f:h(f.name)} + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected Facility List
      + + + + ${f:h(f.name)} + + + + + ${f:u(f.id)} + + +
      + +
      +
      + + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -39,6 +39,11 @@ + + + ${f:u(u.id)} + +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -105,6 +105,28 @@ + + + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -183,6 +183,35 @@ + + + + Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -0,0 +1,133 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + + + ${f:u(u.userId)} + + +
      +
      Facilities + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + + + ${f:u(u.id)} + + +
      Facilities + + + + + + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + +
      + + + ${f:u(f.id)} + + +
      + + + + + + + + + + + + + +
      Facility Group
      + + + ${f:h(fg.name)} + + +
      + +
      + + + + + + + + + + + +
      Facility List
      + + + ${f:h(f.name)} + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected Facility List
      + + + + ${f:h(f.name)} + + + + + ${f:u(f.id)} + + +
      + +
      +
      + + + + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-20 22:20:49 UTC (rev 1388) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-21 02:12:54 UTC (rev 1389) @@ -40,6 +40,11 @@ + + + ${f:u(u.id)} + +
      From svnnotify ¡÷ sourceforge.jp Fri Nov 21 11:50:56 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 21 Nov 2008 11:50:56 +0900 Subject: [pal-cvs 3655] [1390] contribution from N2SM. Message-ID: <1227235856.968128.5020.nullmailer@users.sourceforge.jp> Revision: 1390 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1390 Author: shinsuke Date: 2008-11-21 11:50:56 +0900 (Fri, 21 Nov 2008) Log Message: ----------- contribution from N2SM. Modified Paths: -------------- pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex Added Paths: ----------- pal-portal/docs/ja/configuration-guide/trunk/src/images/er-application.png pal-portal/docs/ja/configuration-guide/trunk/src/images/er-client.png pal-portal/docs/ja/configuration-guide/trunk/src/images/er-folder.png pal-portal/docs/ja/configuration-guide/trunk/src/images/er-security.png pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/table.tex -------------- next part -------------- Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-application.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-application.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-client.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-client.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-folder.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-folder.png ___________________________________________________________________ Name: svn:mime-type + image/png Added: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-security.png =================================================================== (Binary files differ) Property changes on: pal-portal/docs/ja/configuration-guide/trunk/src/images/er-security.png ___________________________________________________________________ Name: svn:mime-type + image/png Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/api.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -34,8 +34,8 @@ \end{screen} +\subsubsection{¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤È¥Ú¡¼¥¸} - ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤Ï¡¢¥ê¥¯¥¨¥¹¥È¤·¤¿ API ¤ÎÆ°ºî¤È¡¢ÄɲäΠAPI ¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤷ¤Þ¤¹¡£ ¥ê¥¯¥¨¥¹¥È¤¬»²¾È¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Ï¡¢HTTP URL Æâ¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£ ¤Ç¤¹¤Î¤Ç¡¢¤â¤·¥Ú¡¼¥¸¤òÊѹ¹¤¹¤ë¥ê¥¯¥¨¥¹¥È¤òºîÀ®¤·¤¿¤¤¾ì¹ç¤Ï¡¢¥Ú¡¼¥¸¤Ï°Ê²¼¤Î¤è¤¦¤Ê HTTP URL Æâ¤Ç»ØÄꤷ¤Þ¤¹¡£ @@ -61,9 +61,9 @@ ¸½»þÅÀ¤ÇÍøÍѲÄǽ¤Ê API ¤ò¼¨¤·¤Þ¤¹¡£ +\subsubsection{¥Ú¡¼¥¸¤Î¼èÆÀ} - API: getpage @@ -101,44 +101,49 @@ XML ¥ì¥¹¥Ý¥ó¥¹: \begin{screen} -success -getpage +\begin{verbatim} + +success +getpage + + +\end{verbatim} -public.psml -/Public/public.psml -Public Share -Carpeta compartida - - - - - - - - - - - - - - - - - - - - - \end{screen} +\subsubsection{ÀäÂаÌÃ֤ǰÜÆ°} - API: moveabs @@ -187,27 +192,31 @@ XML ¥ì¥¹¥Ý¥ó¥¹: \begin{screen} -success -moveabs -ps-1003 - -1 -1 +\begin{verbatim} + + success + moveabs + ps-1003 + + 1 + 1 + + + 1 + 0 + + +\end{verbatim} - -1 -0 - - \end{screen} +\subsubsection{°ÜÆ°} - API: moveleft, moveright, moveup, movedown @@ -248,27 +257,31 @@ XML ¥ì¥¹¥Ý¥ó¥¹: \begin{screen} -success -movedown -ps-1003 - -1 -0 +\begin{verbatim} + + success + movedown + ps-1003 + + 1 + 0 + + + 1 + 1 + + +\end{verbatim} - -1 -1 - - \end{screen} +\subsubsection{¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÄɲÃ} - API: add @@ -317,23 +330,27 @@ XML ¥ì¥¹¥Ý¥ó¥¹: \begin{screen} -success -add -jsf-demo::CalendarPortlet +\begin{verbatim} + + success + add + jsf-demo::CalendarPortlet + + 0 + 0 + + +\end{verbatim} -0 -0 - - \end{screen} +\subsubsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Îºï½ü} - API: remove @@ -374,23 +391,27 @@ XML ¥ì¥¹¥Ý¥ó¥¹: \begin{screen} -success -remove -jsf-demo::CalendarPortlet +\begin{verbatim} + + success + remove + jsf-demo::CalendarPortlet + + 0 + 0 + + +\end{verbatim} -0 -0 - - \end{screen} +\subsubsection{¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼èÆÀ} - API: getportlets @@ -431,26 +452,30 @@ XML ¥ì¥¹¥Ý¥ó¥¹: \begin{screen} -success -getportlets +\begin{verbatim} + +success +getportlets - - - - - - - - - - + + + + + + + + + .... + + + + + + +\end{verbatim} - - - - - \end{screen} @@ -462,42 +487,46 @@ \begin{screen} +\begin{verbatim} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\end{verbatim} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/ajax/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -32,17 +32,18 @@ ŵ·¿Åª¤Ê»ÈÍÑÎã¤È¤·¤Æ¤Ï¡¢ +\begin{itemize} -¥Ú¡¼¥¸¤Î¥«¥¹¥¿¥Þ¥¤¥º¤È¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÃÖ- ¥Ú¡¼¥¸¾å¤Ç¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î°ÜÆ°¡¢¥³¥Ô¡¼¡¢Äɲᢺï½ü¡£ -¥ì¥¤¥¢¥¦¥È¤ÎÁªÂò- ¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤ÎÊѹ¹ (¹Ô¤äÎó¤Î¿ô¤ÎÊѹ¹¡¢Îó¤Î¥µ¥¤¥º¤ÎÊѹ¹)¡£ -¥Æ¡¼¥Þ¤È¥Ç¥³¥ì¡¼¥¿¤ÎÁªÂò- ¥Ú¡¼¥¸¤Î¥Æ¡¼¥Þ¤ä¥Ú¡¼¥¸¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥³¥ì¡¼¥¿¤ÎÊѹ¹¡£ -¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥»¥ì¥¯¥¿- ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÁªÂò¥ê¥¹¥È¤òÄ󶡡£ -¥»¥­¥å¥ê¥Æ¥£¤ÎÀßÄê- ¥ê¥½¡¼¥¹ (¥Ú¡¼¥¸¡¢¥Ý¡¼¥È¥ì¥Ã¥È¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¡¢¥Õ¥é¥°¥á¥ó¥È) ¤â¤·¤¯¤Ï¥Ý¡¼¥¿¥ëÁ´ÂΤǤΥ»¥­¥å¥ê¥Æ¥£À©Ì󡢤ޤ¿¤Ï¥Ý¥ê¥·¡¼¤ÎÀßÄê¡£ -¥á¥Ë¥å¡¼¤ÎÀßÄê- PAL¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤ÎÀ¸À®¤äÊÔ½¸¡£ +\item ¥Ú¡¼¥¸¤Î¥«¥¹¥¿¥Þ¥¤¥º¤È¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÇÛÃÖ- ¥Ú¡¼¥¸¾å¤Ç¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î°ÜÆ°¡¢¥³¥Ô¡¼¡¢Äɲᢺï½ü¡£ +\item ¥ì¥¤¥¢¥¦¥È¤ÎÁªÂò- ¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤ÎÊѹ¹ (¹Ô¤äÎó¤Î¿ô¤ÎÊѹ¹¡¢Îó¤Î¥µ¥¤¥º¤ÎÊѹ¹)¡£ +\item ¥Æ¡¼¥Þ¤È¥Ç¥³¥ì¡¼¥¿¤ÎÁªÂò- ¥Ú¡¼¥¸¤Î¥Æ¡¼¥Þ¤ä¥Ú¡¼¥¸¾å¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥³¥ì¡¼¥¿¤ÎÊѹ¹¡£ +\item ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥»¥ì¥¯¥¿- ¥¨¥ó¥É¥æ¡¼¥¶¤Ø¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÁªÂò¥ê¥¹¥È¤òÄ󶡡£ +\item ¥»¥­¥å¥ê¥Æ¥£¤ÎÀßÄê- ¥ê¥½¡¼¥¹ (¥Ú¡¼¥¸¡¢¥Ý¡¼¥È¥ì¥Ã¥È¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¡¢¥Õ¥é¥°¥á¥ó¥È) ¤â¤·¤¯¤Ï¥Ý¡¼¥¿¥ëÁ´ÂΤǤΥ»¥­¥å¥ê¥Æ¥£À©Ì󡢤ޤ¿¤Ï¥Ý¥ê¥·¡¼¤ÎÀßÄê¡£ +\item ¥á¥Ë¥å¡¼¤ÎÀßÄê- PAL¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤ÎÀ¸À®¤äÊÔ½¸¡£ Á´ÂÎŪ¤Ê´ÉÍý- Á´ÂÎŪ¤Ê´ÉÍý¤ò¹Ô¤¦Á´¤Æ¤Î¥æ¡¼¥¹¥±¡¼¥¹¤Ï¤Þ¤À¸¡Æ¤¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ +\end{itemize} - Ajax XML API ¥ê¥¯¥¨¥¹¥È¤ÎÁ´¤Æ¤Ï¡¢Ajax ÍѤËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤Î¥Ñ¥¤¥×¥é¥¤¥ó¤òÄ̤·¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Ä̾ï¤Î PAL¥Ý¡¼¥¿¥ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥Ð¥ë¥ÖÇÛÎó¤òÍѤ¤¤Æ¡¢Ajax ¥ê¥¯¥¨¥¹¥È¤ò¹½À®²Äǽ¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Î Ajax ¥Ñ¥¤¥×¥é¥¤¥ó¤Ï¡¢Á´¤Æ¤Î¥ê¥¯¥¨¥¹¥È¤Ø¤Î¥¢¥¯¥»¥¹¤òÊݾڤ·¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/appendix/jetspeed-portlet.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -11,114 +11,118 @@ \subsection{jetspeed-portlet.xsd} \begin{screen} +\begin{verbatim} + + xmlns:p="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\end{verbatim} - - - - - - - - - - - \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/batch/usermanager.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -33,18 +33,22 @@ webapps/palportal/WEB-INF/web.xml¤Ë°Ê²¼¤Î¥µ¡¼¥Ö¥ì¥Ã¥ÈÄêµÁ¤ò²Ã¤¨¤Þ¤¹¡£ \begin{screen} -... -UserManagerServlet -jp.sf.pal.portal.servlet.UserManagerServlet - +\begin{verbatim} ... - -UserManagerServlet -/userManager - + + UserManagerServlet + jp.sf.pal.portal.servlet.UserManagerServlet + ... + + UserManagerServlet + /userManager + +... +\end{verbatim} + \end{screen} ɬÍפ˱þ¤¸¤Æ¡¢¥»¥­¥å¥ê¥Æ¥£¤ÎÀßÄê¤ò¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ @@ -54,399 +58,387 @@ http://localhost:8080/palportal/userManager?name1=value1\&... ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤ÈÂоݤÎÁàºî¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ °Ê²¼¤ÎÁàºî¤ò¼Â¹Ô¤Ç¤­¤Þ¤¹¡£ -¥æ¡¼¥¶¡¼¤Îǧ¾Ú³Îǧ¥æ¡¼¥¶¡¼¤ÎÄɲåѥ¹¥ï¡¼¥É¤Î¹¹¿·¥æ¡¼¥¶¡¼¤Îºï½ü¥æ¡¼¥¶¡¼Â°À­¤Î¹¹¿·¥æ¡¼¥¶¡¼Â°À­¤Îºï½ü +\begin{itemize} +\item ¥æ¡¼¥¶¡¼¤Îǧ¾Ú³Îǧ +\item ¥æ¡¼¥¶¡¼¤ÎÄɲà +\item ¥Ñ¥¹¥ï¡¼¥É¤Î¹¹¿· +\item ¥æ¡¼¥¶¡¼¤Îºï½ü +\item ¥æ¡¼¥¶¡¼Â°À­¤Î¹¹¿· +\item ¥æ¡¼¥¶¡¼Â°À­¤Îºï½ü + +\end{itemize} + \subsection{½ÐÎÏ·ë²Ì} °Ê²¼¤Î XML ·Á¼°¤Ç·ë²Ì¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + + + ʸ»úÎó + ʸ»úÎó + + ʸ»úÎó + ʸ»úÎó + + +\end{verbatim} -ʸ»úÎó -ʸ»úÎó -ʸ»úÎó -ʸ»úÎó - - - \end{screen} \subsection{³Æ½èÍý¤ÎÀâÌÀ} +\subsubsection{¥æ¡¼¥¶¡¼¤Îǧ¾Ú³Îǧ} »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼¤¬Ç§¾Ú¤Ç¤­¤ë¤«¤ò³Îǧ¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline\hline +action & authenticate\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +password & ¥Ñ¥¹¥ï¡¼¥É\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ - -action -authenticate - - -username -¥æ¡¼¥¶¡¼Ì¾ - - -password -¥Ñ¥¹¥ï¡¼¥É - - ½ÐÎÏ·ë²Ì¤Îstatus +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Â¸ºß¤·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¤âÀµ¤·¤¤¾ì¹ç)\\ +\hline +authentication-failed & ¥æ¡¼¥¶¡¼Ç§¾Ú¤Ë¼ºÇÔ¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline + \end{tabular} +\end{center} +\end{table} -ÃÍ -ÀâÌÀ +\subsubsection{¥æ¡¼¥¶¡¼¤ÎÄɲÃ} -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Â¸ºß¤·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¤âÀµ¤·¤¤¾ì¹ç) - - -authentication-failed -¥æ¡¼¥¶¡¼Ç§¾Ú¤Ë¼ºÇÔ¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - - - - »ØÄꤷ¤¿¥æ¡¼¥¶¡¼Ì¾¤Ç¥æ¡¼¥¶¡¼¤òºîÀ®¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline\hline +action & create\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +password & ¥Ñ¥¹¥ï¡¼¥É\\ +\hline + \end{tabular} +\end{center} +\end{table} -action -create - -username -¥æ¡¼¥¶¡¼Ì¾ - - -password -¥Ñ¥¹¥ï¡¼¥É - - ½ÐÎÏ·ë²Ì¤Îstatus +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Àµ¾ï¤ËºîÀ®¤µ¤ì¤¿¾ì¹ç)\\ +\hline +user-already-exists & ¥æ¡¼¥¶¡¼¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤Æ¡¢ºîÀ®¤Ç¤­¤Ê¤¤\\ +\hline +server-error & ¥æ¡¼¥¶¡¼ºîÀ®»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline + \end{tabular} +\end{center} +\end{table} -ÃÍ -ÀâÌÀ +\subsubsection{¥Ñ¥¹¥ï¡¼¥É¤Î¹¹¿·} -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Àµ¾ï¤ËºîÀ®¤µ¤ì¤¿¾ì¹ç) - -user-already-exists -¥æ¡¼¥¶¡¼¤¬´û¤Ë¸ºß¤·¤Æ¤¤¤Æ¡¢ºîÀ®¤Ç¤­¤Ê¤¤ - - -server-error -¥æ¡¼¥¶¡¼ºîÀ®»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - - - - »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline\hline +action & update\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +password & ¥Ñ¥¹¥ï¡¼¥É\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ - -action -update - - -username -¥æ¡¼¥¶¡¼Ì¾ - - -password -¥Ñ¥¹¥ï¡¼¥É - - ½ÐÎÏ·ë²Ì¤Îstatus +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¾ðÊó¤¬Àµ¾ï¤Ë¹¹¿·¤µ¤ì¤¿¾ì¹ç)\\ +\hline +user-not-found & Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤\\ +\hline +server-error & ¥æ¡¼¥¶¡¼¹¹¿·»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline + \end{tabular} +\end{center} +\end{table} -ÃÍ -ÀâÌÀ +\subsubsection{¥æ¡¼¥¶¡¼¤Îºï½ü} -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¾ðÊó¤¬Àµ¾ï¤Ë¹¹¿·¤µ¤ì¤¿¾ì¹ç) - - -user-not-found -Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ - - -server-error -¥æ¡¼¥¶¡¼¹¹¿·»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - - - - »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼Ì¾¤Î¥æ¡¼¥¶¡¼¤òºï½ü¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ +\begin{table}[ht] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline\hline +action & update\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +password & ¥Ñ¥¹¥ï¡¼¥É\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ - -action -update - - -username -¥æ¡¼¥¶¡¼Ì¾ - - -password -¥Ñ¥¹¥ï¡¼¥É - - ½ÐÎÏ·ë²Ì¤Îstatus +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¾ì¹ç)\\ +\hline +user-not-found & Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤\\ +\hline +server-error & ¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline + \end{tabular} +\end{center} +\end{table} -ÃÍ -ÀâÌÀ +\subsubsection{¥æ¡¼¥¶¡¼Â°À­¤Î¼èÆÀ} -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼¤¬Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¾ì¹ç) - -user-not-found -Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ - - -server-error -¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - - - - »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼¤Î¥æ¡¼¥¶¡¼Â°À­¤ò¼èÆÀ¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline\hline +action & get-user-attribute\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +key & ¥­¡¼\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ - -action -get-user-attribute - - -username -¥æ¡¼¥¶¡¼Ì¾ - - -key -¥­¡¼ - - ½ÐÎÏ·ë²Ì¤Îstatus -ÃÍ -ÀâÌÀ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤Ë¼èÆÀ¤µ¤ì¤¿¾ì¹ç)\\ +\hline +user-not-found & Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤\\ +\hline +server-error & ¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline +value-is-null & ¥­¡¼¤ËÂбþ¤¹¤ëÃͤ¬ null ¤Î¾ì¹ç\\ +\hline + \end{tabular} +\end{center} +\end{table} -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤Ë¼èÆÀ¤µ¤ì¤¿¾ì¹ç) - -user-not-found -Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ - - -server-error -¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - -value-is-null -¥­¡¼¤ËÂбþ¤¹¤ëÃͤ¬ null ¤Î¾ì¹ç - - ½ÐÎÏ·ë²Ì¤Îresult +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +key ¤È value & Ãͤ¬½ÐÎϤµ¤ì¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -key ¤È value -Ãͤ¬½ÐÎϤµ¤ì¤Þ¤¹¡£ +\subsubsection{¥æ¡¼¥¶¡¼Â°À­¤Î¹¹¿·} - - »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼Ì¾¤Î¥æ¡¼¥¶¡¼Â°À­¤ò¹¹¿·¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline +action & update-user-attribute\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +key & ¥­¡¼\\ +\hline +value & ÃÍ\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ - -action -update-user-attribute - - -username -¥æ¡¼¥¶¡¼Ì¾ - - -key -¥­¡¼ - - -value -ÃÍ - - ½ÐÎÏ·ë²Ì¤Îstatus +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤ËÅÐÏ¿¤Þ¤¿¤Ï¹¹¿·¤µ¤ì¤¿¾ì¹ç)\\ +\hline +user-not-found & Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤\\ +\hline +server-error & ¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline + \end{tabular} +\end{center} +\end{table} -ÃÍ -ÀâÌÀ +\subsubsection{¥æ¡¼¥¶¡¼Â°À­¤Îºï½ü} -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤ËÅÐÏ¿¤Þ¤¿¤Ï¹¹¿·¤µ¤ì¤¿¾ì¹ç) - -user-not-found -Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ - - -server-error -¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - - - - »ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¼Ì¾¤Î¥æ¡¼¥¶¡¼Â°À­¤òºï½ü¤·¤Þ¤¹¡£ URL¤ÇÅϤ¹¥Ñ¥é¥á¡¼¥¿ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ & ÃÍ\\ +\hline +action & get-user-attribute\\ +\hline +username & ¥æ¡¼¥¶¡¼Ì¾\\ +\hline +key & ¥­¡¼\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿ -ÃÍ - -action -get-user-attribute - - -username -¥æ¡¼¥¶¡¼Ì¾ - - -key -¥­¡¼ - - ½ÐÎÏ·ë²Ì¤Îstatus +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÃÍ & ÀâÌÀ\\ +\hline +success & Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¾ì¹ç)\\ +\hline +user-not-found & Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤\\ +\hline +server-error & ¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿\\ +\hline +invalid-parameter & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤\\ +\hline +excluded-user & Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿\\ +\hline +value-is-null & ¥­¡¼¤ËÂбþ¤¹¤ëÃͤ¬ null ¤Î¾ì¹ç\\ +\hline + \end{tabular} +\end{center} +\end{table} -ÃÍ -ÀâÌÀ -success -Àµ¾ï½ªÎ»(¥æ¡¼¥¶¡¼Â°À­¤¬Àµ¾ï¤Ëºï½ü¤µ¤ì¤¿¾ì¹ç) - -user-not-found -Âоݥ桼¥¶¡¼¤¬Â¸ºß¤·¤Ê¤¤ - - -server-error -¥æ¡¼¥¶¡¼ºï½ü»þ¤Ë¥µ¡¼¥Ð¡¼Â¦¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤¿ - - -invalid-parameter -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤¬Àµ¤·¤¯¤Ê¤¤ - - -excluded-user -Áàºî¤ÎÂоݳ°¥æ¡¼¥¶¡¼¤Ø¤Î½èÍý¤ò¹Ô¤Ã¤¿ - - -value-is-null -¥­¡¼¤ËÂбþ¤¹¤ëÃͤ¬ null ¤Î¾ì¹ç - - - - - - Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/asyncaggregator.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -20,26 +20,32 @@ \subsection{ÀßÄêÊýË¡} +\subsubsection{ÀßÄê¥Õ¥¡¥¤¥ë¤ÎÊѹ¹} + webapps/palportal/WEB-INF/assembly/pipelines.xml¤Ç aggregatorValve ¤Ë°ú¿ô¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} ... + + + + +... +\end{verbatim} - - -... - \end{screen} org.apache.jetspeed.aggregator.AsyncPageAggregator ¤ÏÈóƱ´ü¤Ë¥³¥ó¥Æ¥ó¥Ä¤ò½¸Ìó¤·¤Þ¤¹¡£ Ʊ´üŪ¤Ë¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤ò¤·¤¿¤¤¾ì¹ç¤Ï¡¢org.apache.jetspeed.aggregator.PageAggregator ¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ +\subsubsection{¥¿¥¤¥à¥¢¥¦¥È¤ÎÀßÄê} - pipelines.xml¤ÎÀßÄê¸å¡¢ÈóƱ´ü¤Ç½èÍý¤·¤¿¤¤¥Ý¡¼¥È¥ì¥Ã¥È¤ËÂФ·¤Æ¡¢¥¿¥¤¥à¥¢¥¦¥ÈÃͤòÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Á´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¸Æ¤Ó½Ð¤¹¾ì¹ç¤Ï°Ê²¼¤ÎÊѹ¹¤òwebapps/palportal/WEB-INF/assembly/aggregation.xml¤Ë²Ã¤¨¤Þ¤¹¡£ \begin{screen} ... @@ -59,12 +65,17 @@ ¾åµ­¤ÎÀßÄê¤Î¾ì¹ç¡¢5000ms ¤Î¥¿¥¤¥à¥¢¥¦¥ÈÃͤ¬ÀßÄꤵ¤ì¤Þ¤¹¡£ ³Æ¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¸ÄÊ̤ËÀßÄꤹ¤ë¾ì¹ç¤Ë¤Ï¡¢ÂоݤΥݡ¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î jetspeed-portlet.xml ¤Ç°Ê²¼¤Î¤è¤¦¤ÊÀßÄê¤ò¤·¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} ... + + PALWcmViewer + 5000 + +... +\end{verbatim} -PALWcmViewer -5000 -... \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/context.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -16,12 +16,13 @@ \subsection{¥³¥ó¥Æ¥­¥¹¥È¤ÎÊѹ¹} +\subsubsection{PAL¥Ý¡¼¥¿¥ë¤ÎÄä»ß} PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢Ää»ß¤·¤Þ¤¹¡£ +\subsubsection{¥³¥ó¥Æ¥­¥¹¥È¤ÎÊѹ¹} - Ëܼ곤­¤Ç¤Ï http://localhost:8080/palportal/ ¤Ç¥¢¥¯¥»¥¹¤·¤Æ¤¤¤¿¤â¤Î¤ò http://localhost:8080/ ¤ËÊѹ¹¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£ ¥ë¡¼¥È¥³¥ó¥Æ¥­¥¹¥È(ROOT) ¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¡¢ÍøÍѤ·¤¿¤¤¥³¥ó¥Æ¥­¥¹¥È̾¤ËÃÖ¤­´¹¤¨¤ÆÆɤó¤Ç¤¯¤À¤µ¤¤¡£ @@ -46,8 +47,8 @@ \end{screen} +\subsubsection{PAL¥Ý¡¼¥¿¥ë¤Îµ¯Æ°} - PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤·¤Þ¤¹¡£ ¾åµ­¤ÎÀßÄê¤Ë¤è¤ê http://localhost:8080/ ¤Ç¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/log.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -20,16 +20,18 @@ Log4j.properties¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹(°ìÉôά)¡£ \begin{screen} -\# ------------------------------------------------------------------------ -\# -\# Logging Configuration -\# -\# ------------------------------------------------------------------------ -\# If we don't know the logging facility, put it into the jetspeed.log +\begin{verbatim} +# ------------------------------------------------------------------------ +# +# Logging Configuration +# +# ------------------------------------------------------------------------ + +# If we don't know the logging facility, put it into the jetspeed.log log4j.rootLogger = ERROR, jetspeed -\# Jetspeed goes into Jetspeed Log +# Jetspeed goes into Jetspeed Log log4j.category.org.apache.jetspeed = ERROR, jetspeed log4j.additivity.org.apache.jetspeed = false @@ -38,69 +40,68 @@ log4j.additivity.org.apache.jetspeed.tools = false -\# Velocity Logfile +# Velocity Logfile log4j.category.velocity = ERROR, velocity log4j.additivity.velocity = false -\# Deployment Category +# Deployment Category log4j.category.deployment = ERROR, DEPLOYMENT log4j.additivity.deployment = false +######################################################################## +# +# Logfile definitions +# +######################################################################## -\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# -\# -\# Logfile definitions -\# -\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# - -\# jetspeed.log +# jetspeed.log log4j.appender.jetspeed = org.apache.log4j.RollingFileAppender -log4j.appender.jetspeed.File = \${applicationRoot}/WEB-INF/logs/jetspeed.log +log4j.appender.jetspeed.File = ${applicationRoot}/WEB-INF/logs/jetspeed.log log4j.appender.jetspeed.layout = org.apache.log4j.PatternLayout log4j.appender.jetspeed.layout.ConversionPattern = %d [%t] %-5p %c - %m%n log4j.appender.jetspeed.Append = true log4j.appender.jetspeed.MaxFileSize = 10MB log4j.appender.jetspeed.MaxBackupIndex = 5 -\# deployment.log +# deployment.log log4j.appender.DEPLOYMENT = org.apache.log4j.RollingFileAppender -log4j.appender.DEPLOYMENT.File = \${applicationRoot}/WEB-INF/logs/deployment.log +log4j.appender.DEPLOYMENT.File = ${applicationRoot}/WEB-INF/logs/deployment.log log4j.appender.DEPLOYMENT.layout = org.apache.log4j.PatternLayout log4j.appender.DEPLOYMENT.layout.ConversionPattern = %d [%t] %-5p %c - %m%n log4j.appender.DEPLOYMENT.Append = true log4j.appender.DEPLOYMENT.MaxFileSize = 10MB log4j.appender.DEPLOYMENT.MaxBackupIndex = 5 -\# Velocity gets configured to write its output onto the velocity category. +# Velocity gets configured to write its output onto the velocity category. log4j.appender.velocity = org.apache.log4j.RollingFileAppender -log4j.appender.velocity.File = \${applicationRoot}/WEB-INF/logs/velocity.log +log4j.appender.velocity.File = ${applicationRoot}/WEB-INF/logs/velocity.log log4j.appender.velocity.layout = org.apache.log4j.PatternLayout log4j.appender.velocity.layout.ConversionPattern = %d [%t] %-5p %c - %m%n log4j.appender.velocity.Append = true log4j.appender.velocity.MaxFileSize = 10MB log4j.appender.velocity.MaxBackupIndex = 5 +\end{verbatim} - \end{screen} + ¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¥ì¥Ù¥ë¤Ï ERROR ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£ ½ÐÎϤµ¤ì¤ë¥í¥°¥Õ¥¡¥¤¥ë¤ÎÊݸÀè¤Ï¡¢webapps/palportal/WEB-INF/logs¤ËÊݸ¤µ¤ì¤Þ¤¹¡£ ¥í¥°¥Õ¥¡¥¤¥ë¤ÎÆâÍƤϡ¢PAL¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¤·¤Æ¤âÊݸ¤µ¤ì¤¿¤Þ¤Þ¤Ç¡¢¥í¥°¤òÄɵ­¤·¤Þ¤¹¡£ ³Æ¥í¥°¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ï¡¢10MB ¤Þ¤ÇÊݸ¤·¡¢¤½¤ì°Ê¾å¤Î¥µ¥¤¥º¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï \<¥Õ¥¡¥¤¥ë̾\>.\<¿ô»ú\> ¤È¤·¤ÆÊݸ¤µ¤ì¡¢ºÇÂç 5 ¤Ä¤Þ¤ÇÊÝ»ý¤·¤Þ¤¹¡£ ¤½¤ì°Ê¾å¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ï¸Å¤¤¤â¤Î¤«¤éºï½ü¤µ¤ì¤Þ¤¹¡£ +\subsubsection{jetspeed.log} - jetspeed.log¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î½èÍýÃæ¤Ë½ÐÎϤ¹¤ë¥í¥°¤¬Êݸ¤µ¤ì¤Þ¤¹¡£ +\subsubsection{deployment.log} - deployment.log¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤Î½èÍýÃæ¤Ë½ÐÎϤ¹¤ë¥í¥°¤¬Êݸ¤µ¤ì¤Þ¤¹¡£ +\subsubsection{velocity.log} - - velocity.log¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ä¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ê¤É¤Ç Velocity ¤Î½èÍýÃæ¤Ë½ÐÎϤ¹¤ë¥í¥°¤¬Êݸ¤µ¤ì¤Þ¤¹¡£ @@ -111,12 +112,16 @@ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï ERROR ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ÎÃͤò DEBUG ¤Ê¤É¤ËÊѹ¹¤¹¤ë¤È¡¢¥í¥°¥ì¥Ù¥ë¤¬¥Ç¥Ð¥Ã¥°¤Ë¤Ê¤ê¤Þ¤¹¡£ ÍøÍѲÄǽ¤Ê¥í¥°¥ì¥Ù¥ë¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ -DEBUG: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ç¥Ð¥Ã¥°ÍÑ¤Î¥í¥°¤ò½ÐÎϤ¹¤ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ -INFO: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎɬÍפʾðÊó¤ò½ÐÎϤ¹¤ëÍÑ¤Ê¤É¤Î¥í¥°¤ò½ÐÎϤ¹¤ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ -WARN: ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ -ERROR: ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ -FATAL: Ã×̿Ū¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¥í¥°¥ì¥Ù¥ë¡£ +\begin{itemize} +\item DEBUG: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ç¥Ð¥Ã¥°ÍÑ¤Î¥í¥°¤ò½ÐÎϤ¹¤ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +\item INFO: ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎɬÍפʾðÊó¤ò½ÐÎϤ¹¤ëÍÑ¤Ê¤É¤Î¥í¥°¤ò½ÐÎϤ¹¤ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +\item WARN: ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +\item ERROR: ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ê¤É¤Î¾ðÊó¤ò½ÐÎϤ¹¤ë¥í¥°¥ì¥Ù¥ë¡£°Ê²¼¤Î¥í¥°¥ì¥Ù¥ë¤Ç»ØÄꤷ¤¿¤â¤Î¤Ï½ÐÎϤµ¤ì¤ë¡£ +\item FATAL: Ã×̿Ū¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë¥í¥°¥ì¥Ù¥ë¡£ + +\end{itemize} + ÃͤòÊѹ¹¸å¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¤¹¤ë¤³¤È¤ÇÊѹ¹¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/mail.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -25,16 +25,20 @@ \begin{screen} -localhost +\begin{verbatim} + + localhost + + + + + false + + + +\end{verbatim} - - -false - - - - \end{screen} host ¤¬¥á¡¼¥ë¥µ¡¼¥Ð¡¼Ì¾¡¢username ¤È password ¤Ï¥á¡¼¥ë¥µ¡¼¥Ð¡¼¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤Ç¡¢Ç§¾Ú¤¬É¬Íפʾì¹ç¤Ï mail.smtp.auth ¤ò true ¤Ë¤·¤ÆÍ­¸ú¤Ë¤·¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/port.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -24,12 +24,13 @@ ¼õ¿®¥Ý¡¼¥È¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¢conf/server.xml¤Î°Ê²¼¤Î 8080 ¤òÍøÍѤ·¤¿¤¤¥Ý¡¼¥ÈÈÖ¹æ¤ËÊѹ¹¤·¤Þ¤¹¡£ \begin{screen} - - +\begin{verbatim} + +\end{verbatim} \end{screen} ÃͤòÊѹ¹¸å¡¢ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ @@ -41,8 +42,10 @@ Ää»ß¥Ý¡¼¥È¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¢conf/server.xml¤Î°Ê²¼¤Î 8005 ¤òÍøÍѤ·¤¿¤¤¥Ý¡¼¥ÈÈÖ¹æ¤ËÊѹ¹¤·¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + +\end{verbatim} - \end{screen} ÃͤòÊѹ¹¸å¡¢ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/proxy.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -11,7 +11,7 @@ \subsection{¥×¥í¥­¥·¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ} PAL¥Ý¡¼¥¿¥ë¤ò¥¤¥ó¥È¥é¥Í¥Ã¥È´Ä¶­¤Ë¹½ÃÛ¤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ê¤É¤Ç¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ï¡¢¥×¥í¥­¥·¾ðÊó¤ÎÀßÄ꤬ɬÍפˤʤê¤Þ¤¹¡£ -Ä̾JAVA\_OPTS ´Ä¶­ÊÑ¿ô¤Ë -Dhttp.proxyHost=\<YOUR\_PROXY\_HOST\> -Dhttp.proxyPort=\<YOUR\_PROXY\_PORT\> ¤òÀßÄꤷ¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤¹¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ +Ä̾JAVA\_OPTS ´Ä¶­ÊÑ¿ô¤Ë \begin{verbatim}-Dhttp.proxyHost= -Dhttp.proxyPort=\end{verbatim}¤òÀßÄꤷ¤Æ¡¢PAL¥Ý¡¼¥¿¥ë¤òµ¯Æ°¤¹¤ë¤ÈÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/session.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -25,12 +25,13 @@ emptySessionPath ¤òÀßÄꤹ¤ë¾ì¹ç¤Ï¡¢conf/server.xml¤Î°Ê²¼¤Î²Õ½ê¤Ë emptySessionPath ¤òÄɲä·¤Þ¤¹¡£ \begin{screen} - - +\begin{verbatim} + +\end{verbatim} \end{screen} ÃͤòÊѹ¹¸å¡¢ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/spring.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -21,171 +21,98 @@ -ÀßÄê¥Õ¥¡¥¤¥ë̾ -ÀâÌÀ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +ÀßÄê¥Õ¥¡¥¤¥ë̾ & ÀâÌÀ\\ +\hline\hline +administration.xml & ¥Ý¡¼¥¿¥ë¤Î´ÉÍýÍÑ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +aggregation.xml & ¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤ò½èÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +ajax-layout.xml & AJAX API ¤Ç»ÈÍѤµ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +ajax.xml & AJAX ¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +cache.xml & ¥­¥ã¥Ã¥·¥å¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +capabilities.xml & ¥¯¥é¥¤¥¢¥ó¥È¤ò¼±Ê̤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +cluster-node.xml & ¥¯¥é¥¹¥¿¥Î¡¼¥É¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +deployment.xml & ÇÛÈ÷½èÍý¤ò¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +headtag.xml & head¥¿¥°¤Ç½ÐÎϤ¹¤ë¥¿¥°¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +hierarchical-principal-names.xml & ³¬ÁØŪ¤Ê¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¤òÀ©¸æ¤·¤Þ¤¹\\ +\hline +importer-page-manager.xml & PSML¥Ç¡¼¥¿¤Î¥¤¥ó¥Ý¡¼¥È¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +interceptors.xml & ¥¤¥ó¥¿¥»¥×¥¿¤òÀßÄꤹ¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +jetspeed-base.xml & ¥Ý¡¼¥¿¥ë¤ÇÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +jetspeed-production.xml & jetspeed-production.properties ¤òÍøÍѤ¹¤ë¤È¤­¤Ë»È¤¦¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +jetspeed-services.xml & ¥Ý¡¼¥¿¥ëÆâ¤ÇÍøÍѤ¹¤ë¥µ¡¼¥Ó¥¹¤ò¤Þ¤È¤á¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +jetspeed-spring.xml & ¥Ý¡¼¥¿¥ëÆâ¤ÇɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +multiple-action.xml & Ê£¿ô¤Î Ajax ¥¢¥¯¥·¥ç¥ó¤òÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +page-manager.xml & ¥Ú¡¼¥¸¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +pipelines.xml & ¥Ñ¥¤¥×¥é¥¤¥ó¤È¥Ð¥ë¥Ö¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +pluto-factories.xml & Pluto ¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +portal-url-generation.xml & ¥Ý¡¼¥¿¥ë URL ¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +prefs.xml & ¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +profiler.xml & ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +registry.xml & ¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÅÐÏ¿¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +request-context-objects.xml & RequestContext ¤ÇÍøÍѤ¹¤ë¥ª¥×¥¸¥§¥¯¥È¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +search.xml & ¸¡º÷¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-atn.xml & ¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-atz.xml & JAAS ´ÉÍý¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-managers.xml & ¥»¥­¥å¥ê¥Æ¥£´ÉÍý¤ò½èÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-providers.xml & ¥æ¡¼¥¶¡¼Ç§¾Ú¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-spi-atn.xml & ¥æ¡¼¥¶¡¼Ç§¾Ú¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-spi-atz.xml & ¥¢¥¯¥»¥¹¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +security-spi.xml & ¥»¥­¥å¥ê¥Æ¥£¥¢¥¯¥»¥¹¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +serializer.xml & ¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ý¡¼¥È¡¦¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +sso.xml & SSO¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +statistics.xml & Åý·×¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +theme-engine.xml & ¥Ç¥³¥ì¡¼¥¿¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +transaction.xml & ¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +userinfo.xml & ¥æ¡¼¥¶¡¼Â°À­¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline +wps.xml & Websphere ¤ÇɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹\\ +\hline + \end{tabular} +\end{center} +\end{table} -administration.xml -¥Ý¡¼¥¿¥ë¤Î´ÉÍýÍÑ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ -aggregation.xml -¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤ò½èÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ -ajax-layout.xml -AJAX API ¤Ç»ÈÍѤµ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -ajax.xml -AJAX ¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -cache.xml -¥­¥ã¥Ã¥·¥å¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -capabilities.xml -¥¯¥é¥¤¥¢¥ó¥È¤ò¼±Ê̤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -cluster-node.xml -¥¯¥é¥¹¥¿¥Î¡¼¥É¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -deployment.xml -ÇÛÈ÷½èÍý¤ò¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -headtag.xml -head¥¿¥°¤Ç½ÐÎϤ¹¤ë¥¿¥°¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -hierarchical-principal-names.xml -³¬ÁØŪ¤Ê¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¤òÀ©¸æ¤·¤Þ¤¹ - - -importer-page-manager.xml -PSML¥Ç¡¼¥¿¤Î¥¤¥ó¥Ý¡¼¥È¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -interceptors.xml -¥¤¥ó¥¿¥»¥×¥¿¤òÀßÄꤹ¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -jetspeed-base.xml -¥Ý¡¼¥¿¥ë¤ÇÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -jetspeed-production.xml -jetspeed-production.properties ¤òÍøÍѤ¹¤ë¤È¤­¤Ë»È¤¦¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -jetspeed-services.xml -¥Ý¡¼¥¿¥ëÆâ¤ÇÍøÍѤ¹¤ë¥µ¡¼¥Ó¥¹¤ò¤Þ¤È¤á¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -jetspeed-spring.xml -¥Ý¡¼¥¿¥ëÆâ¤ÇɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -multiple-action.xml -Ê£¿ô¤Î Ajax ¥¢¥¯¥·¥ç¥ó¤òÍøÍѤ¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -page-manager.xml -¥Ú¡¼¥¸¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -pipelines.xml -¥Ñ¥¤¥×¥é¥¤¥ó¤È¥Ð¥ë¥Ö¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -pluto-factories.xml -Pluto ¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -portal-url-generation.xml -¥Ý¡¼¥¿¥ë URL ¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -prefs.xml -¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -profiler.xml -¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -registry.xml -¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÅÐÏ¿¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -request-context-objects.xml -RequestContext ¤ÇÍøÍѤ¹¤ë¥ª¥×¥¸¥§¥¯¥È¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -search.xml -¸¡º÷¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-atn.xml -¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-atz.xml -JAAS ´ÉÍý¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-managers.xml -¥»¥­¥å¥ê¥Æ¥£´ÉÍý¤ò½èÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-providers.xml -¥æ¡¼¥¶¡¼Ç§¾Ú¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-spi-atn.xml -¥æ¡¼¥¶¡¼Ç§¾Ú¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-spi-atz.xml -¥¢¥¯¥»¥¹¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -security-spi.xml -¥»¥­¥å¥ê¥Æ¥£¥¢¥¯¥»¥¹¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -serializer.xml -¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Î¥Ç¡¼¥¿¤ò¥¤¥ó¥Ý¡¼¥È¡¦¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -sso.xml -SSO¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -statistics.xml -Åý·×¾ðÊó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -theme-engine.xml -¥Ç¥³¥ì¡¼¥¿¤òÀ©¸æ¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -transaction.xml -¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -userinfo.xml -¥æ¡¼¥¶¡¼Â°À­¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - -wps.xml -Websphere ¤ÇɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹ - - - - - - Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/config/sslredirect.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -20,39 +20,48 @@ webapps/palportal/WEB-INF/assembly/pipelines.xml¤Ë jp.sf.pal.portal.redirect.impl.SSLRedirectValveImpl ¤òÄɲä·¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} ... + + redirect.to.ssl.page + + + 80 + + + 443 + + -redirect.to.ssl.page - - -80 - - -443 - - - + + JetspeedPipeline + + + + + + + + + + + +... +\end{verbatim} -JetspeedPipeline - - - - - -... - \end{screen} sslRedirectValve ¤ò bean Í×ÁǤòÄɲ䷤ơ¢jetspeed-pipeline ¤Î profilerValve ¤Î¸å¤Ë sslRedirectValve ¤Î ref Í×ÁǤòÄɲä·¤Þ¤¹¡£SSLRedirectValveImpl¤Î¥³¥ó¥¹¥È¥é¥¯¥¿°ú¿ô¤Ï¡¢°ìÈÖÌܤΰú¿ô¤¬¥Ú¡¼¥¸¤Ç»ØÄꤹ¤ë¥­¡¼¤Î̾Á°¡¢2ÈÖÌܤ¬ÈóSSL¥Ú¡¼¥¸¤ÇÍøÍѤ¹¤ë¥Ý¡¼¥È¡¢£³ÈÖÌܤ¬SSL¥Ú¡¼¥¸¤ÇÍøÍѤ¹¤ë¥Ý¡¼¥È¤Ç¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/configuration-guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -2,6 +2,15 @@ \usepackage{graphicx} \usepackage{ascmac} +\setlength{\topmargin}{-0.3in} +\setlength{\oddsidemargin}{0pt} +\setlength{\evensidemargin}{0pt} +\setlength{\textheight}{46\baselineskip} +\setlength{\textwidth}{47zw} + + + + \title{ÀßÄꥬ¥¤¥É} \author{Portal Application Laboratory} @@ -36,6 +45,7 @@ \chapter{¥Ç¡¼¥¿¥Ù¡¼¥¹} \include{db/guide} \include{db/config} +\include{db/table} \chapter{¥»¥­¥å¥ê¥Æ¥£} \include{security/guide} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/config.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -19,13 +19,14 @@ Derby ¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÀßÄ꤬µ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ \begin{screen} - - +\begin{verbatim} + +\end{verbatim} \end{screen} \subsection{ÀßÄêÊýË¡} @@ -61,6 +62,7 @@ ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¹½À®¥¹¥¯¥ê¥×¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë database.properties ¤ò½¤Àµ¤·¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} ; Jetspeed Enterprise Portal 2.1.1 Database setup configuration ; db.type supported values: db2, derby, mssql, mysql, oracle, postgres, sapdb @@ -76,6 +78,7 @@ ; in the database or will be read from file system dbImportPsml = true +\end{verbatim} \end{screen} ¤´ÍøÍѤδĶ­¤Ë±þ¤¸¤Æ¡¢DB ̾¡¢DB ¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Added: pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/table.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/table.tex (rev 0) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/db/table.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -0,0 +1,246 @@ + +\section{¥Æ¡¼¥Ö¥ë} + +\subsection{¥Æ¡¼¥Ö¥ë°ìÍ÷} +¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËºîÀ®¤µ¤ì¤ë¥Æ¡¼¥Ö¥ë°ìÍ÷¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ +¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËPSML¤ÎÊݸÀè¤òDB¤ËÁªÂò¤·¤¿¾ì¹ç¡¢¥ª¥×¥·¥ç¥óÍó¤Ë¥Á¥§¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥Æ¡¼¥Ö¥ë¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ + +\begin{table}[htbp] +\begin{center} +\begin{tabular}[tb]{|l|l|c|} +\hline +¥Æ¡¼¥Ö¥ë̾ & ÀâÌÀ & ¥ª¥×¥·¥ç¥ó\\ +\hline\hline + +admin\_activity & & \\ +\hline +capability & µ¡Ç½°ìÍ÷ & \\ +\hline +client & ¥¯¥é¥¤¥¢¥ó¥È¥¿¥¤¥× & \\ +\hline +client\_to\_capability & ¥¯¥é¥¤¥¢¥ó¥È¤¬ÍøÍѲÄǽ¤Êµ¡Ç½ & \\ +\hline +client\_to\_mimetype & ¥¯¥é¥¤¥¢¥ó¥È¤ÎMME & \\ +\hline +custom\_portlet\_mode & & \\ +\hline +custom\_window\_state & & \\ +\hline +folder & ¥µ¥¤¥ÈÆâ¤Î¥Õ¥©¥ë¥À¾ðÊó & ¡û\\ +\hline +folder\_constraint & ¥¢¥¯¥»¥¹¸¢ & ¡û\\ +\hline +folder\_constraints\_ref & À©Ìó»²¾È & ¡û\\ +\hline +folder\_menu & ·Ñ¾µ¤·¤¿¥á¥Ë¥å¡¼¾ðÊó & ¡û\\ +\hline +folder\_menu\_metadata & & ¡û\\ +\hline +folder\_metadata & ¥í¥±¡¼¥ëÆÃÍ­¤ÎTitle¾ðÊó & ¡û\\ +\hline +folder\_order & ¥Õ¥©¥ë¥ÀÆ⥽¡¼¥È½ç & ¡û\\ +\hline +fragment & ¥Ú¡¼¥¸Æâ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¾ðÊó & ¡û\\ +\hline +fragment\_constraint & ¥¢¥¯¥»¥¹¸¢ & ¡û\\ +\hline +fragment\_constraints\_ref & À©Ìó»²¾È & ¡û\\ +\hline +fragment\_pref & ¥Õ¥é¥°¥á¥ó¥È°À­ & ¡û\\ +\hline +fragment\_pref\_value & °À­¾ðÊó & ¡û\\ +\hline +jetspeed\_service & ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¾ðÊó & \\ +\hline +language & ¥Ý¡¼¥È¥ì¥Ã¥È¤Ø¤Î¥í¥±¡¼¥ë¾ðÊó & \\ +\hline +link & ¥Ú¡¼¥¸Æâ¤Î¥ê¥ó¥¯¾ðÊó & \\ +\hline +link\_constraint & ¥¢¥¯¥»¥¹¸¢ & \\ +\hline +link\_constraints\_ref & À©Ìó»²¾È & \\ +\hline +link\_metadata & ¥í¥±¡¼¥ëÆÃÍ­¤ÎTitle¾ðÊó & \\ +\hline +localized\_description & ¥Ý¡¼¥È¥ì¥Ã¥È̾¾Î & \\ +\hline +localized\_display\_name & ¥Ý¡¼¥È¥ì¥Ã¥Èɽ¼¨Ì¾ & \\ +\hline +mediatype\_to\_capability & ¥á¥Ç¥£¥¢¤Èµ¡Ç½¾ðÊó & \\ +\hline +mediatype\_to\_mimetype & ¥á¥Ç¥£¥¢¤ÈMIME¾ðÊó & \\ +\hline +media\_type & ¥á¥Ç¥£¥¢¡Ê¥¢¥¯¥»¥¹¼ïÊ̡˾ðÊó & \\ +\hline +mimetype & MIME¾ðÊó & \\ +\hline +ojb\_dlist & & \\ +\hline +ojb\_dlist\_entries & & \\ +\hline +ojb\_dmap & & \\ +\hline +ojb\_dset & & \\ +\hline +ojb\_dset\_entries & & \\ +\hline +ojb\_hl\_seq & & \\ +\hline +ojb\_lockentry & & \\ +\hline +ojb\_nrm & & \\ +\hline +pa\_metadata\_fields & & \\ +\hline +page & ¥µ¥¤¥ÈÆâ¤Î¥Ú¡¼¥¸¾ðÊó & ¡û\\ +\hline +page\_constraint & ¥¢¥¯¥»¥¹¸¢ & ¡û\\ +\hline +page\_constraints\_ref & À©Ìó»²¾È & ¡û\\ +\hline +page\_menu & ·Ñ¾µ¤·¤¿¥á¥Ë¥å¡¼¾ðÊó & ¡û\\ +\hline +page\_menu\_metadata & & ¡û\\ +\hline +page\_metadata & ¥í¥±¡¼¥ëÆÃÍ­¤ÎTitle¾ðÊó & ¡û\\ +\hline +page\_sec\_constraint\_def & & ¡û\\ +\hline +page\_sec\_constraints\_def & À©ÌóÄêµÁ¾ðÊó & ¡û\\ +\hline +page\_sec\_constraints\_ref & & ¡û\\ +\hline +page\_security & ¥Ú¡¼¥¸¥»¥­¥å¥ê¥Æ¥£¾ðÊó¡Ê¥Õ¥¡¥¤¥ë¥Ñ¥¹¡Ë & ¡û\\ +\hline +page\_statistics & Åý·×¾ðÊó & ¡û\\ +\hline +parameter & ¥Ý¡¼¥È¥ì¥Ã¥È¥Ñ¥é¥á¡¼¥¿¾ðÊó & \\ +\hline +pd\_metadata\_fields & & \\ +\hline +portlet\_application & ¥Ý¡¼¥È¥ì¥Ã¥È¾ðÊó & \\ +\hline +portlet\_content\_type & ¥Ý¡¼¥È¥ì¥Ã¥È¥³¥ó¥Æ¥ó¥È¾ðÊó & \\ +\hline +portlet\_definition & ¥Ý¡¼¥È¥ì¥Ã¥ÈÄêµÁ & \\ +\hline +portlet\_entity & & \\ +\hline +portlet\_statistics & Åý·×¾ðÊó & \\ +\hline +prefs\_node & ¥æ¡¼¥¶Â°À­ & \\ +\hline +prefs\_property\_value & °À­¾ðÊó & \\ +\hline +principal\_permission & ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¾ðÊó & \\ +\hline +principal\_rule\_assoc & ¥×¥í¥Õ¥¡¥¤¥ë¥ê¥ó¥°¥ë¡¼¥ë & \\ +\hline +profile\_page\_assoc & & \\ +\hline +profiling\_rule & ¥×¥í¥Õ¥¡¥¤¥ë¥ê¥ó¥°¥ë¡¼¥ë & \\ +\hline +rule\_criterion & ¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¥ë¡¼¥ë & \\ +\hline +security\_credential & & \\ +\hline +security\_group\_role & & \\ +\hline +security\_permission & ¥Ý¡¼¥È¥ì¥Ã¥È¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¾ðÊó & \\ +\hline +security\_principal & ¥æ¡¼¥¶¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¾ðÊó & \\ +\hline +security\_role & & \\ +\hline +security\_role\_reference & & \\ +\hline +security\_user\_group & ¥æ¡¼¥¶¡¦¥°¥ë¡¼¥×´ØÏ¢¾ðÊó & \\ +\hline +security\_user\_role & ¥æ¡¼¥¶¡¦¥í¡¼¥ë´ØÏ¢¾ðÊó & \\ +\hline +user\_activity & ¥í¥°¥¤¥ó¾ðÊó & \\ +\hline +user\_attribute & ¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é»ÈÍѤ¹¤ë¥æ¡¼¥¶Â°À­¾ðÊó & \\ +\hline +user\_attribute\_ref & ¥Ý¡¼¥È¥ì¥Ã¥È¤«¤é»ÈÍѤ¹¤ë¥æ¡¼¥¶Â°À­¤Î¥Þ¥Ã¥Ô¥ó¥° & \\ +\hline +user\_statistics & Åý·×¾ðÊó & \\ +\hline +web\_application & ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¾ðÊó & \\ +\hline +clubs & & \\ +\hline +sso\_cookie & & \\ +\hline +sso\_cookie\_to\_remote & & \\ +\hline +sso\_principal\_to\_remote & & \\ +\hline +sso\_site & & \\ +\hline +sso\_site\_to\_principals & & \\ +\hline +sso\_site\_to\_remote & & \\ +\hline +\end{tabular} +\end{center} +\end{table} + + +\newpage + + +\subsection{¥Æ¡¼¥Ö¥ë´ØÏ¢¿Þ} + +\subsubsection{¥æ¡¼¥¶¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¾ðÊó} + +\begin{figure}[ht] +\begin{center} +\includegraphics[width=140mm]{images/er-security.eps} +\caption{¥æ¡¼¥¶¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¾ðÊó} +\label{fig:er-security} +\end{center} +\end{figure} + +\newpage + +\subsubsection{¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¾ðÊó} + +\begin{figure}[ht] +\begin{center} +\includegraphics[width=140mm]{images/er-application.eps} +\caption{¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¾ðÊó} +\label{fig:er-client} +\end{center} +\end{figure} + +\newpage + +\subsubsection{¥¯¥é¥¤¥¢¥ó¥È¾ðÊó} + +\begin{figure}[ht] +\begin{center} +\includegraphics[width=140mm]{images/er-client.eps} +\caption{¥¯¥é¥¤¥¢¥ó¥È¾ðÊó} +\label{fig:er-client} +\end{center} +\end{figure} + + +\newpage + +\subsubsection{¥Ú¡¼¥¸¾ðÊó} + +\begin{figure}[ht] +\begin{center} +\includegraphics[width=150mm]{images/er-folder.eps} +\caption{¥Ú¡¼¥¸¾ðÊó} +\label{fig:er-client} +\end{center} +\end{figure} + + + + + + Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -46,8 +46,8 @@ ¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨Îó¿ô¤Ê¤É¥Ú¡¼¥¸¤Î´ðËܹ½À®¤òÉÁ²è¤¹¤ë½èÍý¤ò¤·¤Þ¤¹¡£ ¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤È¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤¬¤¢¤ê¡¢Á°¼Ô¤Ï¥Ú¡¼¥¸Á´ÂΤΥǥ¶¥¤¥ó¤ò¹½À®¤·¡¢¸å¼Ô¤Ïɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤ò¹½À®¤·¤Þ¤¹¡£ +\subsubsection{¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È} - ¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨Îó¿ô¤òɽ¸½¤¹¤ë¤Ê¤É¤Î¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î½¸Ìó½èÍý¤òÀ©¸æ¤·¤Þ¤¹¡£ ¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Îµ¡Ç½Åª¤ÊÉôʬ¤Ï¡¢PAL¥Ý¡¼¥¿¥ëÍѤÎÇÛÈ÷²Äǽ¤Ê¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æ¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï¡¢¥³¥ó¥Æ¥ó¥Ä½¸Ìó¤Î¤¿¤á¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥â¥Ç¥ë¤òÄ󶡤·¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤¬À¸À®¤·¤¿¥³¥ó¥Æ¥ó¥Ä¤òÅý¹ç¤·¤Æ¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤òÀ¸À®¤·¤Þ¤¹¡£ @@ -55,8 +55,8 @@ ɬÍפ˱þ¤¸¤Æ¡¢¿·µ¬¤Î¥ì¥¤¥¢¥¦¥È¤òÄêµÁ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ +\subsubsection{¥Ç¥³¥ì¡¼¥¿} - ¥Ç¥³¥ì¡¼¥¿¤Ë¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤È¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤¬¤¢¤ê¤Þ¤¹¡£ ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï¡¢¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¡¼¤ä¥Õ¥Ã¥¿¡¼¤Ê¤É¤Î¥Ú¡¼¥¸Á´ÂΤΤǥǥ¶¥¤¥ó¤ò¹½À®¤·¤Þ¤¹¡£ ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤ÎÏȤÎÉôʬ¤ä¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Çɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤Î¥¹¥¿¥¤¥ë¤ò¹½À®¤·¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/jpt.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -44,16 +44,18 @@ ¤Ç¥¢¥¯¥»¥¹²Äǽ¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·¤Ï¡¢ \begin{screen} +\begin{verbatim} \# 2 ¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¤ò¤â¤Ä¥á¥½¥Ã¥É 'getTitle' ¤Î¸Æ¤Ó½Ð¤· \$jetspeed.getTitle(\$myPE, \$myF) - +\end{verbatim} \end{screen} ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥×¥í¥Ñ¥Æ¥£¤Î¼èÆÀ¤Ï¡¢ \begin{screen} +\begin{verbatim} \# page ¥Ó¡¼¥ó¤Î¸Æ¤Ó½Ð¤· (\$jetspeed.getPage ¤ËÅù¤·¤¤) \$jetspeed.page - +\end{verbatim} \end{screen} ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout-decorator.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -39,11 +39,15 @@ ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢webapps/palportal/decorations/layout¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Þ¤¹¡£ -decorator.properties -header.vm -footer.vm -css/styles.css +\begin{itemize} +\item decorator.properties +\item header.vm +\item footer.vm +\item css/styles.css + +\end{itemize} + ¤¿¤È¤¨¤Ð¡¢mydesign ¤È¤¤¤¦¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¡¢webapps/palportal/decorations/layout/mydesign¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¡¢¾åµ­¤Î¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Þ¤¹¡£ @@ -52,42 +56,32 @@ ¼ÂºÝ¤Î¤È¤³¤í¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤Ç¤â¹½¤¤¤Þ¤»¤ó¤¬¡¢Â¾¤Î API ¤¬»ÈÍѲÄǽ¤Ê¥Ç¥³¥ì¡¼¥¿¤òõ¤¹¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¤Î¤Ç¡¢¥Õ¥¡¥¤¥ë¤Ï¸ºß¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤Ç¤¹¤Î¤Ç¡¢²¼µ­¤ÎÄêµÁ¤Ë¤¢¤ë¥×¥í¥Ñ¥Æ¥£¤Ï Á´¤Æ¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë¤È²¾Äꤷ¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|l|} +\hline +¥×¥í¥Ñ¥Æ¥£Ì¾ & ÀâÌÀ & ¥Ç¥Õ¥©¥ë¥È\\ +\hline\hline +base.css.class & ¤³¤ÎÃͤϡ¢¥Ø¥Ã¥À¡¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î°ìÈÖ¾å¤ÎÍ×ÁÇ¥¿¥°¤ÎÃæ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ & ¥Ç¥³¥ì¡¼¥¿Ì¾\\ +\hline +stylesheet & ¥Ç¥³¥ì¡¼¥¿¤Î¥¹¥¿¥¤¥ë¥·¡¼¥È¤Ø¤ÎÁêÂХѥ¹ & css/styles.css\\ +\hline +header & ¥Ç¥³¥ì¡¼¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹ & header.vm\\ +\hline +footer & ¥Ç¥³¥ì¡¼¥·¥ç¥ó¤Î¥Õ¥Ã¥¿¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹ & footer.vm\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥×¥í¥Ñ¥Æ¥£Ì¾ -ÀâÌÀ -¥Ç¥Õ¥©¥ë¥È - -base.css.class - -¤³¤ÎÃͤϡ¢¥Ø¥Ã¥À¡¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î°ìÈÖ¾å¤ÎÍ×ÁÇ¥¿¥°¤ÎÃæ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ - -¥Ç¥³¥ì¡¼¥¿Ì¾ - - -stylesheet -¥Ç¥³¥ì¡¼¥¿¤Î¥¹¥¿¥¤¥ë¥·¡¼¥È¤Ø¤ÎÁêÂХѥ¹ -css/styles.css - - -header -¥Ç¥³¥ì¡¼¥·¥ç¥ó¤Î¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹ -header.vm - - -footer -¥Ç¥³¥ì¡¼¥·¥ç¥ó¤Î¥Õ¥Ã¥¿¡¼¥Æ¥ó¥×¥ì¡¼¥È¤Ø¤ÎÁêÂХѥ¹ -footer.vm - - - \subsection{¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë} ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¤È¥Õ¥Ã¥¿¡¼¥Æ¥ó¥×¥ì¡¼¥ÈÆó¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£ +\subsubsection{¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È} - ¥Ø¥Ã¥À¡¼¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ëheader.vm¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¤Î¥Ø¥Ã¥À¡¼Éôʬ¤òÀ¸À®¤·¤Þ¤¹¡£ Ãí°Õ:Á°Äó»ö¹à¤È¤·¤Æ¡¢HTML ¤È CSS ¤Ë¤Ä¤¤¤Æ¤Î½½Ê¬¤ÊÃ챤¬¤¢¤ë¤È²¾Äꤷ¤Æ¤¢¤ê¤Þ¤¹¡£ @@ -98,23 +92,25 @@ Ä̾header.vm ¤Ç¤Ï¡¢¾åÉô¤Ë²¼µ­¤Î¤è¤¦¤Ë¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤ÇÍøÍѤ¹¤ë¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄêÅù¤ò¹Ô¤¤¤Þ¤¹¡£ \begin{screen} -\#set(\$portalMode = "standard")\#\# -\#\# Add the current layouts configuration values to the context -\#defineLayoutObjects()\#\# -\#\# Loads our custom macros -\#parse(\$layoutDecoration.getResource("decorator-macros.vm"))\#\# -\#\# Username -\#set(\$username = \$JS2RequestContext.request.remoteUser)\#\# -\#\# Check edit -\#set(\$\_actions = \$layoutDecoration.actions)\#\# -\#foreach (\$\_action in \$\_actions)\#\# - \#if(\$\_action.actionName == "edit")\#\# - \#set (\$editable = true)\#\# - \#end\#\# -\#end\#\# -\#set(\$layoutId = \$jetspeed.currentFragment.id)\#\# -\#set(\$servletName = \$JS2RequestContext.request.servletPath)\#\# -\#initMessageResourceBundles()\#\# +\begin{verbatim} +#set($portalMode = "standard")## +## Add the current layouts configuration values to the context +#defineLayoutObjects()## +## Loads our custom macros +#parse($layoutDecoration.getResource("decorator-macros.vm"))## +## Username +#set($username = $JS2RequestContext.request.remoteUser)## +## Check edit +#set($_actions = $layoutDecoration.actions)## +#foreach ($_action in $_actions)## + #if($_action.actionName == "edit")## + #set ($editable = true)## + #end## +#end## +#set($layoutId = $jetspeed.currentFragment.id)## +#set($servletName = $JS2RequestContext.request.servletPath)## +#initMessageResourceBundles()## +\end{verbatim} \end{screen} @@ -129,13 +125,15 @@ \#defineLayoutObjects()¤Ç¤Ï¡¢webapps/palportal/WEB-INF/jetspeed\_macros.vm¤Ç°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ \begin{screen} -\#macro (defineLayoutObjects) - \#set(\$preferedLocale = \$JS2RequestContext.locale) - \#set(\$rootFragment = \$jetspeed.currentFragment) - \#set(\$site = \$request.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext")) - \#set(\$theme = \$request.getAttribute("org.apache.jetspeed.theme")) - \#set(\$layoutDecoration = \$theme.getDecoration(\$rootFragment)) -\#end +\begin{verbatim} +#macro (defineLayoutObjects) + #set($preferedLocale = $JS2RequestContext.locale) + #set($rootFragment = $jetspeed.currentFragment) + #set($site = $request.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext")) + #set($theme = $request.getAttribute("org.apache.jetspeed.theme")) + #set($layoutDecoration = $theme.getDecoration($rootFragment)) +#end +\end{verbatim} \end{screen} @@ -165,25 +163,30 @@ \begin{screen} - - \#includeHeaderResource() - - - - \#IncludeStylesheets() - - - - - - - - - - - - +\begin{verbatim} + + + + #includeHeaderResource() + + + + #IncludeStylesheets() + #PageTitle() + + + + + + + + + + +
      ... + +\end{verbatim} \end{screen} @@ -200,20 +203,28 @@ ¤³¤Î¥³¡¼¥É¤Ï¡¢¥µ¡¼¥Ö¥ì¥Ã¥ÈAPI¤ò»È¤Ã¤Æµ­½Ò¤·¤¿¾ì¹ç¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \begin{screen} + +\begin{verbatim} HttpServletRequest request; StingBuffer baseHref = new StringBuffer(request.getScheme()) .append("://").append(request.getServerName()) .append(":").append(request.getServerPort()) .append(request.getContextPath()).append("/"); -return baseHref.toString(); +return baseHref.toString(); +\end{verbatim} + \end{screen} Velocity ¥Þ¥¯¥í¤Î¥³¡¼¥É¤Ï´Ê·é¤Ë¤Ê¤ê¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ \begin{screen} -\${request.scheme}://\${request.serverName}:\${request.serverPort}\${request.contextPath} +\begin{verbatim} +${request.scheme}://${request.serverName}:${request.serverPort}${request.contextPath} +\end{verbatim} + + \end{screen} \#ContentType()¤Ï text/html¤È¡¢UTF-8 ¤Î¤è¤¦¤ÊŬÀڤʥ¨¥ó¥³¡¼¥É¤Î¼ïÎà¤òÊÖ¤·¤Þ¤¹¡£ @@ -222,13 +233,13 @@ \#PageBaseCSSClass()¤Ï base.css.class ¥×¥í¥Ñ¥Æ¥£¤ÎÃͤ¬ÍøÍѤµ¤ì¡¢¥¹¥¿¥¤¥ë¥·¡¼¥È¤ÎŬÍÑÈϰϤò»ØÄꤹ¤ë¤¿¤á¤Ë body ¥¿¥°Ä¾²¼¤Î¥¿¥°¤Ç¥¹¥¿¥¤¥ë¥¯¥é¥¹¤È¤·¤ÆŬÍѤ¹¤ë¤¿¤á¤Ê¤É¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£ +\subsubsection{¥Õ¥Ã¥¿¡¼¥Æ¥ó¥×¥ì¡¼¥È} - footer.vm ¤Ë¤Ä¤¤¤Æ¤â header.vm ¤ÈƱÍͤ˵­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\subsubsection{¥¹¥¿¥¤¥ë¥·¡¼¥È} - Ä̾ï¤ÎCSS¤ÈƱÍͤ˵­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/layout.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -43,11 +43,14 @@ ¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¤Ï°Ê²¼¤Ë¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£ -¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È -¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë +\begin{itemize} +\item ¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È +\item ¥ì¥¤¥¢¥¦¥È¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë +\end{itemize} + \subsection{¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È} ¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¡¢jetspeed-layouts ¥Ý¡¼¥È¥ì¥Ã¥È¤È¸Æ¤Ð¤ì¡¢PAL¥Ý¡¼¥¿¥ëÍѤΠJSR 168 ¥Ý¡¼¥È¥ì¥Ã¥È¤È¤·¤Æ¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ @@ -56,9 +59,15 @@ ¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ïɸ½àŪ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥óƱÍͤˡ¢°Ê²¼¤ÎÁàºî¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ -ÇÛÈ÷ÇÛÈ÷²ò½üºÆÇÛÈ÷ +\begin{itemize} +\item ÇÛÈ÷ +\item ÇÛÈ÷²ò½ü +\item ºÆÇÛÈ÷ + +\end{itemize} + \subsection{¥ì¥¤¥¢¥¦¥È¤Î¼ïÎà} PAL¥Ý¡¼¥¿¥ë¤Ï 1 Îó¡¢2 Îó¡¢3 Îó¤Î¥ì¥¤¥¢¥¦¥È¤ò´Þ¤à¤¤¤¯¤Ä¤«¤Î¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òɸ½à¤Ç´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ @@ -67,142 +76,54 @@ ¥Ú¡¼¥¸¤Î¥ì¥¤¥¢¥¦¥È¤òÊѹ¹¤¹¤ëºÝ¤Ë¤Ï¡¢ÍøÍѤ·¤¿¤¤¥ì¥¤¥¢¥¦¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÁªÂò¤·¤Þ¤¹¡£ PSML ¥Ú¡¼¥¸¤´¤È¤Ë 1 ¤Ä¤Î¥ë¡¼¥È¥ì¥¤¥¢¥¦¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|l|l|l|} +\hline +¥Ý¡¼¥È¥ì¥Ã¥È̾ & ¥ì¥¤¥¢¥¦¥È̾ & ¥«¥é¥à¿ô & ¥µ¥¤¥º & ÀâÌÀ\\ +\hline\hline +VelocityOneColumn & 1Îó¥ì¥¤¥¢¥¦¥È & 1 & 100\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Î100\%Éý¤òÀê¤á¤ë1Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns & 2Îó¥ì¥¤¥¢¥¦¥È(50/50) & 2 & 50\%,50\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é50\%¡¢50\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns3366 & 2Îó¥ì¥¤¥¢¥¦¥È(33/66) & 2 & 33\%,66\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é33\%¡¢66\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns2575 & 2Îó¥ì¥¤¥¢¥¦¥È(25/75) & 2 & 25\%,75\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é25\%¡¢75\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns2080 & 2Îó¥ì¥¤¥¢¥¦¥È(20/80) & 2 & 20\%,80\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é20\%¡¢80\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns1585 & 2Îó¥ì¥¤¥¢¥¦¥È(15/85) & 2 & 15\%,85\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é15\%¡¢85\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns1090 & 2Îó¥ì¥¤¥¢¥¦¥È(10/90) & 2 & 10\%,90\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é10\%¡¢90\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns595 & 2Îó¥ì¥¤¥¢¥¦¥È(5/95) & 2 & 5\%,95\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é5\%¡¢95\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns6633 & 2Îó¥ì¥¤¥¢¥¦¥È(66/33) & 2 & 66\%,33\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é66\%¡¢33\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns7525 & 2Îó¥ì¥¤¥¢¥¦¥È(75/25) & 2 & 75\%,25\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é75\%¡¢25\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns8020 & 2Îó¥ì¥¤¥¢¥¦¥È(80/20) & 2 & 80\%,20\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é80\%¡¢20\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns8515 & 2Îó¥ì¥¤¥¢¥¦¥È(85/15) & 2 & 85\%,15\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é85\%¡¢15\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns9010 & 2Îó¥ì¥¤¥¢¥¦¥È(90/10) & 2 & 90\%,10\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é90\%¡¢10\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityTwoColumns955 & 2Îó¥ì¥¤¥¢¥¦¥È(95/5) & 2 & 95\%,5\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é95\%¡¢5\%Éý¤ò³ä¤êÅö¤Æ¤ë2Îóɽ¼¨¡£\\ +\hline +VelocityThreeColumns & 3Îó¥ì¥¤¥¢¥¦¥È(33/33/33) & 3 & 33\%,33\%,33\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é33\%¡¢33\%¡¢33\%Éý¤ò³ä¤êÅö¤Æ¤ë3Îóɽ¼¨¡£\\ +\hline +VelocityThreeColumns206020 & 3Îó¥ì¥¤¥¢¥¦¥È(20/60/20) & 3 & 20\%,60\%,20\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é20\%¡¢60\%¡¢20\%Éý¤ò³ä¤êÅö¤Æ¤ë3Îóɽ¼¨¡£\\ +\hline +VelocityThreeColumns157015 & 3Îó¥ì¥¤¥¢¥¦¥È(15/70/15) & 3 & 15\%,70\%,15\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é15\%¡¢70\%¡¢15\%Éý¤ò³ä¤êÅö¤Æ¤ë3Îóɽ¼¨¡£\\ +\hline +VelocityFourColumns & 4Îó¥ì¥¤¥¢¥¦¥È & 4 & 20\%,30\%,30\%,20\% & ¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é20\%¡¢30\%¡¢30\%¡¢20\%Éý¤ò³ä¤êÅö¤Æ¤ë4Îóɽ¼¨¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥Ý¡¼¥È¥ì¥Ã¥È̾ -¥ì¥¤¥¢¥¦¥È̾ -¥«¥é¥à¿ô -¥µ¥¤¥º -ÀâÌÀ - -VelocityOneColumn -1 Îó¥ì¥¤¥¢¥¦¥È -1 -100% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Î 100% Éý¤òÀê¤á¤ë 1 Îóɽ¼¨¡£ - - -VelocityTwoColumns -2 Îó¥ì¥¤¥¢¥¦¥È(50/50) -2 -50%,50% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 50%¡¢50% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns3366 -2 Îó¥ì¥¤¥¢¥¦¥È(33/66) -2 -33%,66% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 33%¡¢66% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns2575 -2 Îó¥ì¥¤¥¢¥¦¥È(25/75) -2 -25%,75% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 25%¡¢75% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns2080 -2 Îó¥ì¥¤¥¢¥¦¥È(20/80) -2 -20%,80% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 20%¡¢80% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns1585 -2 Îó¥ì¥¤¥¢¥¦¥È(15/85) -2 -15%,85% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 15%¡¢85% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns1090 -2 Îó¥ì¥¤¥¢¥¦¥È(10/90) -2 -10%,90% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 10%¡¢90% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns595 -2 Îó¥ì¥¤¥¢¥¦¥È(5/95) -2 -5%,95% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 5%¡¢95% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns6633 -2 Îó¥ì¥¤¥¢¥¦¥È(66/33) -2 -66%,33% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 66%¡¢33% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns7525 -2 Îó¥ì¥¤¥¢¥¦¥È(75/25) -2 -75%,25% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 75%¡¢25% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns8020 -2 Îó¥ì¥¤¥¢¥¦¥È(80/20) -2 -80%,20% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 80%¡¢20% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns8515 -2 Îó¥ì¥¤¥¢¥¦¥È(85/15) -2 -85%,15% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 85%¡¢15% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns9010 -2 Îó¥ì¥¤¥¢¥¦¥È(90/10) -2 -90%,10% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 90%¡¢10% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityTwoColumns955 -2 Îó¥ì¥¤¥¢¥¦¥È(95/5) -2 -95%,5% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 95%¡¢5% Éý¤ò³ä¤êÅö¤Æ¤ë 2 Îóɽ¼¨¡£ - - -VelocityThreeColumns -3 Îó¥ì¥¤¥¢¥¦¥È(33/33/33) -3 -33%,33%,33% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 33%¡¢33%¡¢33% Éý¤ò³ä¤êÅö¤Æ¤ë 3 Îóɽ¼¨¡£ - - -VelocityThreeColumns206020 -3 Îó¥ì¥¤¥¢¥¦¥È(20/60/20) -3 -20%,60%,20% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 20%¡¢60%¡¢20% Éý¤ò³ä¤êÅö¤Æ¤ë 3 Îóɽ¼¨¡£ - - -VelocityThreeColumns157015 -3 Îó¥ì¥¤¥¢¥¦¥È(15/70/15) -3 -15%,70%,15% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 15%¡¢70%¡¢15% Éý¤ò³ä¤êÅö¤Æ¤ë 3 Îóɽ¼¨¡£ - - -VelocityFourColumns -4 Îó¥ì¥¤¥¢¥¦¥È -4 -20%,30%,30%,20% -¥Ý¡¼¥È¥ì¥Ã¥È¤Îɽ¼¨¥¨¥ê¥¢¤Ëº¸¤«¤é 20%¡¢30%¡¢30%¡¢20% Éý¤ò³ä¤êÅö¤Æ¤ë 4 Îóɽ¼¨¡£ - - - ¥Ú¡¼¥¸¤Ø¤Î¥ì¥¤¥¢¥¦¥È¤ÎŬÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ @@ -217,44 +138,48 @@ \begin{screen} -MyLayout -My Layout -»ä¤Î¥ì¥¤¥¢¥¦¥È +\begin{verbatim} + + MyLayout + My Layout + »ä¤Î¥ì¥¤¥¢¥¦¥È + + ViewPage + columns + + + MaxPage + maximized + + + columns + 2 + + + sizes + 50%,50% + + + layoutType + TwoColumns + + org.apache.jetspeed.portlets.layout.ActionLayoutPortlet + org.apache.jetspeed.portlets.layout.resources.LayoutResource + 0 + + text/html + view + edit + help + + + My Layout + Layout + + +\end{verbatim} -ViewPage -columns - -MaxPage -maximized - - -columns -2 - - -sizes -50%,50% - - -layoutType -TwoColumns - -org.apache.jetspeed.portlets.layout.ActionLayoutPortlet -org.apache.jetspeed.portlets.layout.resources.LayoutResource -0 - -text/html -view -edit -help - - - -Layout - - - \end{screen} portlet-name ¤Ë¤ÏÄɲ乤ëǤ°Õ¤Î¥ì¥¤¥¢¥¦¥È¤Î ID ¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/login.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -19,15 +19,20 @@ ¥í¥°¥¤¥ó²èÌ̤Îɽ¼¨¤ËÍøÍѤµ¤ì¤ë JSP ¥Õ¥¡¥¤¥ë̾¤Ï login.jsp ¤Ë¤Ê¤ê¤Þ¤¹¡£ login.jsp ¥Õ¥¡¥¤¥ë¤Ï¡¢»ØÄꤵ¤ì¤¿¥Æ¡¼¥Þ¤ä¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ê¤É¤Î¥¯¥é¥¤¥¢¥ó¥È´Ä¶­¤Ë¤è¤Ã¤Æ¡¢°Ê²¼¤Î½ç¤Ç¸¡º÷¤µ¤ì¤Þ¤¹¡£ -\<theme\>/\<mediatype\>/\<language\>/\<country\>/login.jsp -\<theme\>/\<mediatype\>/\<language\>/login.jsp -\<theme\>/\<mediatype\>/login.jsp -\<theme\>/login.jsp -\<mediatype\>/\<language\>/\<country\>/login.jsp -\<mediatype\>/\<language\>/login.jsp -\<mediatype\>/login.jsp -login.jsp +\begin{itemize} +\item \begin{verbatim}////login.jsp\end{verbatim} +\item \begin{verbatim}///login.jsp\end{verbatim} +\item \begin{verbatim}//login.jsp\end{verbatim} +\item \begin{verbatim}/login.jsp\end{verbatim} +\item \begin{verbatim}///login.jsp\end{verbatim} +\item \begin{verbatim}//login.jsp\end{verbatim} +\item \begin{verbatim}/login.jsp\end{verbatim} +\item login.jsp +\end{itemize} + + + ¾åµ­¤Î½ç¤Ë login.jsp ¤òõ¤·¤Æ¤¤¤­¡¢Â¸ºß¤·¤¿¤â¤Î¤òÍøÍѤ·¤Þ¤¹¡£ \<theme\> ¤Ï¡¢http://\<hostname\>/palportal/login/proxy ¤Ø¤Î¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Ë¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤È¤·¤Æorg.apache.jetspeed.login.theme¤ÎÃͤȤ·¤ÆÅϤµ¤ì¤¿Ê¸»úÎó¤¬ÍøÍѤµ¤ì¤Þ¤¹¡£ \<mediatype\>¡¢\<language\>¡¢\<country\> ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥¢¥¯¥»¥¹¤·¤¿¥¯¥é¥¤¥¢¥ó¥È¾ðÊ󤫤é¼èÆÀ¤·¤¿ÃͤòÍøÍѤ·¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/design/portlet-decorator.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -38,12 +38,12 @@ ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢webapps/palportal/decorations/portlet¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤òÇÛÃÖ¤·¤Þ¤¹¡£ +\begin{itemize} +\item decorator.properties +\item css/styles.css +\item decorator.vm +\end{itemize} -decorator.properties -css/styles.css -decorator.vm - - ¤¿¤À¤·¡¢decorator.vm¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ïwebapps/palportal/decorations/portlet/decorator.vm¤¬¥Ç¥Õ¥©¥ë¥È¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/index.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -42,8 +42,11 @@ \subsection{µ»½ÑŪ¤Ê¥µ¥Ý¡¼¥È¤ÎÏ¢ÍíÀè} ËÜÀ½Éʤ˴ؤ¹¤ëµ»½ÑŪ¼ÁÌä¤Ç¡¢¥É¥­¥å¥á¥ó¥ÈÆâ¤Ë²ò·èºö¤¬ÆÀ¤é¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¼¡¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£ -¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 +\begin{itemize} +\item ¸ø³«¥Õ¥©¡¼¥é¥à:http://sourceforge.jp/forum/?group\_id=1972 +\item ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 +\end{itemize} \subsection{´ØÏ¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼ Web ¥µ¥¤¥È¤Î»²¾È} @@ -55,8 +58,11 @@ \subsection{¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤ÎÁ÷ÉÕÊýË¡} Portal Application Laboratory¥×¥í¥¸¥§¥¯¥È¤Ï¡¢¤³¤Î¥É¥­¥å¥á¥ó¥È¤Î²þÁ±¤ËÅؤá¤Æ¤ª¤ê¡¢ÆɼԤ«¤é¤Î¥³¥á¥ó¥È¤ª¤è¤ÓÄó°Æ¤Ê¤É¤ò´¿·Þ¤·¤Æ¤¤¤Þ¤¹¡£ -¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 +\begin{itemize} +\item ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È:http://sourceforge.jp/mail/?group\_id=1972 +\end{itemize} + Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/directory.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -29,74 +29,48 @@ ¤³¤ì¤é¤Î¤¦¤Á¤Î¤¤¤¯¤Ä¤«¤Î¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ê̤ʥڡ¼¥¸¤Ç¾Ü¤·¤¤ÀâÌÀ¤¬¤µ¤ì¤Þ¤¹¡£ +\begin{itemize} +\item webapps/palportal -webapps/palportal +\begin{itemize} +\item decorations +\begin{itemize} +\item layout +\item portlet -decorations +\end{itemize} +\item WEB-INF +\begin{itemize} +\item assembly +\item deploy +\item lib +\item logs +\item pages +\item templates +\end{itemize} -layout +\end{itemize} +\end{itemize} -portlet - - -WEB-INF - - - - -assembly - - - - -deploy - - - - -lib - - - - -logs - - - - -pages - - - - -templates - - - - - - - - \subsection{webapps/palportal/decorations} ²èÌ̥ǥ¶¥¤¥ó¤Ë´Ø¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ËÃÖ¤«¤ì¤Þ¤¹¡£ PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ç¥¶¥¤¥ó¤ò¥Ç¥³¥ì¡¼¥¿¤È¸Æ¤Ð¤ì¤ëñ°Ì¤Ç°·¤¤¤Þ¤¹¡£ +\subsubsection{layout} - ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï²èÌ̤μþÊÕÉôʬ¤Î¥Ç¥¶¥¤¥ó¤Ë´Ø¤¹¤ë¥Õ¥¡¥¤¥ë·²¤Ë¤Ê¤ê¤Þ¤¹¡£ @@ -107,8 +81,8 @@ ²èÌ̤μþÊÕÉôʬ¤Î¥Ç¥¶¥¤¥ó¤òÄɲä·¤¿¤¤¾ì¹ç¡¢¤³¤Îlayout¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¯¤³¤È¤ÇÄɲ䬲Äǽ¤Ç¤¹¡£¾Ü¤·¤¤ÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¡×¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ +\subsubsection{portlet} - ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤¬ÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ ¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¥¶¥¤¥ó¤Ë´Ø¤¹¤ë¥Õ¥¡¥¤¥ë·²¤Ë¤Ê¤ê¤Þ¤¹¡£ @@ -122,34 +96,35 @@ \subsection{webapps/palportal/WEB-INF} +\subsubsection{assembly} PAL¥Ý¡¼¥¿¥ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤È¤·¤Æ Spring ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ Spring ¥¨¥ó¥¸¥ó¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë assembly °Ê²¼¤Î xml ¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£ +\subsubsection{deploy} - deploy ¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤òÃÖ¤¯¤³¤È¤Ç¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤òÇÛÈ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥Ý¡¼¥È¥ì¥Ã¥È¤Î war ¥Õ¥¡¥¤¥ë¤Ï¼«Æ°ÇÛÈ÷¤µ¤ì¤Þ¤¹¡£ +\subsubsection{lib} - PAL¥Ý¡¼¥¿¥ë¤¬»ÈÍѤ¹¤ë jar ¥Õ¥¡¥¤¥ë¤¬ÃÖ¤«¤ì¤Þ¤¹¡£ +\subsubsection{logs} - ¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤Ç¤Ï¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥í¥°¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£¥í¥°¤Î½ÐÎϤΥì¥Ù¥ë¤ä½ÐÎÏÀè¥Ç¥£¥ì¥¯¥È¥ê¤Ï/WEB-INF/conf/Log4j.properties¤òÊѹ¹¤¹¤ë¤³¤È¤ÇÀßÄê¤Ç¤­¤Þ¤¹¡£ +\subsubsection{pages} - ³Æ¥æ¡¼¥¶¤Î¥Ú¡¼¥¸¾ðÊó¤¬ÃÖ¤«¤ì¤Þ¤¹¡£ +\subsubsection{templates} - ¥í¥°¥¤¥ó¥Ú¡¼¥¸¤ä¡¢¥¨¥é¡¼¥Ú¡¼¥¸¤Ê¤É¡¢¶¦Ä̤·¤Æ»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤ËÃÖ¤«¤ì¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/install/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -30,43 +30,49 @@ \subsection{¥·¥¹¥Æ¥àÍ×·ï} +\subsubsection{ºÇ¾®¥·¥¹¥Æ¥àÍ×·ï} +\begin{itemize} +\item JDK(TM) 5 °Ê¾å +\item 1 GHz °Ê¾å¤Î 32 ¥Ó¥Ã¥È¤Þ¤¿¤Ï 64 ¥Ó¥Ã¥È¥×¥í¥»¥Ã¥µ¤ò¿ä¾© +\item 512 MB °Ê¾å¤Î¥á¥â¥ê¡¼ +\item 100 MB °Ê¾å¤Î¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹ +\end{itemize} -JDK(TM) 5 °Ê¾å -1 GHz °Ê¾å¤Î 32 ¥Ó¥Ã¥È¤Þ¤¿¤Ï 64 ¥Ó¥Ã¥È¥×¥í¥»¥Ã¥µ¤ò¿ä¾© -512 MB °Ê¾å¤Î¥á¥â¥ê¡¼ -100 MB °Ê¾å¤Î¥Ç¥£¥¹¥¯¥¹¥Ú¡¼¥¹ +\subsubsection{¥µ¥Ý¡¼¥È¤¹¤ëOS} - - PAL¥Ý¡¼¥¿¥ë¤Ï 100% Pure Java(TM) ¤Î¥Ý¡¼¥¿¥ë¥µ¡¼¥Ð¡¼¤Ç¤¹¡£ ¤Ç¤¹¤Î¤Ç¡¢Linux¡¢Windows¡¢Unix¡¢Mac OS X ¤Ê¤É Java Virtual Machine(JVM(TM)) ¤¬Æ°ºî¤¹¤ë¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ÇÆ°ºî²Äǽ¤Ç¤¹¡£ +\subsubsection{¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð} - PAL¥Ý¡¼¥¿¥ë¤Ï Java ¤Î¥¦¥§¥Ö¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æ°ºî²Äǽ¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¾å¤Ç²ÔƯ¤·¤Þ¤¹¡£ ÍÍ¡¹¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤µ¡¼¥Ð¡¼¤ÇÆ°ºî²Äǽ¤Ç¤¹¤¬¡¢°Ê²¼¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¡¼¤ÇÆ°ºî³Îǧ¤ò¤·¤Æ¤¤¤Þ¤¹¡£ -Tomcat 5.5 -JBoss AS 4.0/4.2 -WebLogic Server 9.2/10 -GlassFish 2 +\begin{itemize} +\item Tomcat 5.5 +\item JBoss AS 4.0/4.2 +\item WebLogic Server 9.2/10 +\item GlassFish 2 +\end{itemize} +\subsubsection{¥Ç¡¼¥¿¥Ù¡¼¥¹} - PAL¥Ý¡¼¥¿¥ë¤Ï¥Ý¡¼¥¿¥ëÆâ¤Î¥Ç¡¼¥¿¤òÊݸ¤¹¤ë¤¿¤á¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òɬÍפȤ·¤Þ¤¹¡£ ÍÍ¡¹¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢°Ê²¼¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÇÆ°ºî³Îǧ¤ò¤·¤Æ¤¤¤Þ¤¹¡£ -Derby -Oracle -MySQL -Postgres -HSQL +\begin{itemize} +\item Derby +\item Oracle +\item MySQL +\item Postgres +\item HSQL +\end{itemize} ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀܳ¤Ë´Ø¤·¤Æ¤Ï¡¢Apache DB Project ¤Î OJB (http://db.apache.org/ojb/) ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/architecture.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -30,7 +30,7 @@ \begin{figure}[ht] \begin{center} -\includegraphics{images/portal-layer.eps} +\includegraphics[width=140mm]{images/portal-layer.eps} \caption{TBD} \label{fig:portal-layer} \end{center} @@ -46,9 +46,11 @@ PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥Ñ¥¤¥×¥é¥¤¥ó½èÍý¤Ë´ð¤Å¤¤¤Æ¡¢¥æ¡¼¥¶¡¼¤«¤é¤Î¥ê¥¯¥¨¥¹¥È¤ò½èÍý¤·¤Þ¤¹¡£ +\newpage + \begin{figure}[ht] \begin{center} -\includegraphics{images/j2-overview.eps} +\includegraphics[width=140mm]{images/j2-overview.eps} \caption{TBD} \label{fig:j2-overview} \end{center} @@ -76,16 +78,19 @@ °Í¸À­ÃíÆþ¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤ä¥ª¥Ö¥¸¥§¥¯¥È¤Î¥ê¥ó¥¯¤Îµ¡Ç½¤ò¥ª¥Ö¥¸¥§¥¯¥È¼«¿È¤«¤éºï½ü¤·¡¢¥Õ¥¡¥¯¥È¥ê¤Ø°Ü¤·¤¿¥Ñ¥¿¡¼¥ó¤Ç¤¹¡£ ¤½¤ì¤æ¤¨¡¢°Í¸À­ÃíÆþ¤ÏÌÀ¤é¤«¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤È¥ê¥ó¥¯¤ÎÀ©¸æ¤òȿž¤µ¤»¤Æ¤ª¤ê¡¢Inversion of Controls(À©¸æ¤Îȿž, IOC) ¤Î·Á¤Ç¤¢¤ë¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\subsubsection{¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯} - PAL¥Ý¡¼¥¿¥ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤È¤·¤ÆSpring ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ò¡¢¤¿¤È¤¨¤ÐPico¤Î¤è¤¦¤ÊÂåÂزÄǽ¤Ê¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ËÍưפËÃÖ¤­´¹¤¨¤ë¤³¤È¤¬²Äǽ¤Ê¹½Â¤¤ò¤·¤Æ¤¤¤Þ¤¹¡£ PAL¥Ý¡¼¥¿¥ë¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ÎÁȤßΩ¤Æ¤ÏJetspeedServletÆâ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +\newpage + \begin{figure}[ht] \begin{center} -\includegraphics{images/jetspeedservlet-c.eps} +\includegraphics[width=140mm]{images/jetspeedservlet-c.eps} \caption{TBD} \label{fig:jetspeedservlet-c} \end{center} @@ -98,9 +103,13 @@ ¤½¤·¤Æ Spring ¥¨¥ó¥¸¥ó¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ëwebapps/palportal/WEB-INF/assembly°Ê²¼¤Î xml ¥Õ¥¡¥¤¥ë¤ò²ò¼á¤·¤Þ¤¹¡£ JetspeedEngine¤ÏŬÀڤʥ³¥ó¥Ý¡¼¥Í¥ó¥È¥Þ¥Í¡¼¥¸¥ã¤ò»È¤Ã¤Æ¹½À®¤µ¤ì¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} engine = new JetspeedEngine(properties, applicationRoot, config, initializeComponentManager(config, applicationRoot, properties)); +\end{verbatim} + \end{screen} @@ -108,24 +117,21 @@ +\subsubsection{¥³¥¢¥³¥ó¥Ý¡¼¥Í¥ó¥È} - ¥¯¥é¥¤¥¢¥ó¥È¼±ÊÌ - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-capability - ¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ ÀâÌÀ - - Capabilities +Capabilities¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¥¯¥é¥¤¥¢¥ó¥È¤ò¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤ë MIME ¥¿¥¤¥× +¤ä¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ë¥Þ¥Ã¥×¤·¤Þ¤¹¡£¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏCapabilityMap¤òÀ¸À® +¤·¤Þ¤¹¡£CapabilityMap¤Ï¥Ý¡¼¥¿¥ë¥¨¥ó¥¸¥ó¤òÄ̤·¤Æ¡¢ÂоݤȤʤ륯¥é¥¤¥¢¥ó¥È +ÍѤ˥ݡ¼¥¿¥ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ -Capabilities¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¥¯¥é¥¤¥¢¥ó¥È¤ò¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤ë MIME ¥¿¥¤¥×¤ä¥á¥Ç¥£¥¢¥¿¥¤¥×¤Ë¥Þ¥Ã¥×¤·¤Þ¤¹¡£¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏCapabilityMap¤òÀ¸À®¤·¤Þ¤¹¡£CapabilityMap¤Ï¥Ý¡¼¥¿¥ë¥¨¥ó¥¸¥ó¤òÄ̤·¤Æ¡¢ÂоݤȤʤ륯¥é¥¤¥¢¥ó¥ÈÍѤ˥ݡ¼¥¿¥ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ - - - ¥³¥ó¥Ý¡¼¥Í¥Ã¥È¥Þ¥Í¡¼¥¸¥ã - ¥¢¡¼¥Á¥Õ¥¡¥¯¥È ID: jetspeed-cm Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -64,12 +64,15 @@ ¥Ý¡¼¥È¥ì¥Ã¥ÈAPI 1.0 (JSR 168) ¤Ï¡¢Java Community Process (http://jcp.org/) ¤Ë¤è¤êÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Îɸ½à»ÅÍͤˤʤê¤Þ¤¹¡£ °Ê²¼¤Î¤³¤È¤Ê¤É¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ -¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼Â¹Ô´Ä¶­¤òÄêµÁ -¥³¥ó¥Æ¥Ê¤È¥Ý¡¼¥È¥ì¥Ã¥È´Ö¤ÎAPI¤òÄêµÁ -¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤òÊݸ¤¹¤ëµ¡Ç½¤òÄêµÁ -¥µ¡¼¥Ö¥ì¥Ã¥È¤äJSP¤ò¸Æ¤Ó½Ð¤· -¥Ñ¥Ã¥±¡¼¥¸¥ó¥°ÊýË¡¤òÄêµÁ +\begin{itemize} +\item ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼Â¹Ô´Ä¶­¤òÄêµÁ +\item ¥³¥ó¥Æ¥Ê¤È¥Ý¡¼¥È¥ì¥Ã¥È´Ö¤ÎAPI¤òÄêµÁ +\item ¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤òÊݸ¤¹¤ëµ¡Ç½¤òÄêµÁ +\item ¥µ¡¼¥Ö¥ì¥Ã¥È¤äJSP¤ò¸Æ¤Ó½Ð¤· +\item ¥Ñ¥Ã¥±¡¼¥¸¥ó¥°ÊýË¡¤òÄêµÁ + +\end{itemize} JSR 168 ¤ÎÅоì¤Ë¤è¤Ã¤Æ¡¢¥Ù¥ó¥À¡¼´Ö¤ò±Û¤¨¤¿ UI ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¤ä¤ê¤È¤ê¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portal/tools.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -32,15 +32,17 @@ pal-admin ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï°Ê²¼¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´Þ¤ß¤Þ¤¹¡£ -¥æ¡¼¥¶¡¼´ÉÍý: ¥æ¡¼¥¶¡¼¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¤Î´ÉÍý¥Ä¡¼¥ë¤Ç¤¹¡£ -¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý: ¥Ý¡¼¥¿¥ëÆâ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´ÉÍý¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£ -¥æ¡¼¥¶¡¼ÅÐÏ¿: Ǥ°Õ¤Î¥æ¡¼¥¶¡¼¤«¤é¤Î¥æ¡¼¥¶¡¼ÅÐÏ¿¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ -¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹Ô: Ǥ°Õ¤Î¥æ¡¼¥¶¡¼¤«¤é¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹ÔÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ -¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼: ¥Ý¡¼¥¿¥ëÆâ¤Î¥µ¥¤¥È¤ò´ÉÍý¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£ -¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹: ¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹Í×µá¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ -¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¥¨¥Ç¥£¥¿¡¼: ¥ê¥½¡¼¥¹¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÊÔ½¸¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) -¥»¥­¥å¥ê¥Æ¥£À©Ì󥨥ǥ£¥¿¡¼: ¥»¥­¥å¥ê¥Æ¥£À©Ìó¤òÀßÄꤹ¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) -¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¥¨¥Ç¥£¥¿¡¼: ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤òÀßÄꤹ¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) +\begin{itemize} +\item ¥æ¡¼¥¶¡¼´ÉÍý: ¥æ¡¼¥¶¡¼¡¦¥í¡¼¥ë¡¦¥°¥ë¡¼¥×¤Î´ÉÍý¥Ä¡¼¥ë¤Ç¤¹¡£ +\item ¥Ý¡¼¥È¥ì¥Ã¥È´ÉÍý: ¥Ý¡¼¥¿¥ëÆâ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´ÉÍý¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£ +\item ¥æ¡¼¥¶¡¼ÅÐÏ¿: Ǥ°Õ¤Î¥æ¡¼¥¶¡¼¤«¤é¤Î¥æ¡¼¥¶¡¼ÅÐÏ¿¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +\item ¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹Ô: Ǥ°Õ¤Î¥æ¡¼¥¶¡¼¤«¤é¥Ñ¥¹¥ï¡¼¥ÉºÆȯ¹ÔÍ×µá¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +\item ¥µ¥¤¥È¥¨¥Ç¥£¥¿¡¼: ¥Ý¡¼¥¿¥ëÆâ¤Î¥µ¥¤¥È¤ò´ÉÍý¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£ +\item ¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹: ¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¥ï¡¼¥ÉÊѹ¹Í×µá¤ò¼õ¤±ÉÕ¤±¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +\item ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¥¨¥Ç¥£¥¿¡¼: ¥ê¥½¡¼¥¹¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÊÔ½¸¤¹¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) +\item ¥»¥­¥å¥ê¥Æ¥£À©Ì󥨥ǥ£¥¿¡¼: ¥»¥­¥å¥ê¥Æ¥£À©Ìó¤òÀßÄꤹ¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) +\item ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¥¨¥Ç¥£¥¿¡¼: ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤òÀßÄꤹ¤ë¥Ä¡¼¥ë¤Ç¤¹¡£(³ÈÄ¥µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹) +\end{itemize} ÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ @@ -49,8 +51,10 @@ pal-wcm ¥Ý¡¼¥È¥ì¥Ã¥È¤Ï°Ê²¼¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤ò´Þ¤ß¤Þ¤¹¡£ -WCM¥Ó¥å¡¼¥¢¡¼: ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ -WCM¥¨¥Ç¥£¥¿¡¼: ɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤òÊÔ½¸¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +\begin{itemize} +\item WCM¥Ó¥å¡¼¥¢¡¼: ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Æ¥ó¥Ä¤òɽ¼¨¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +\item WCM¥¨¥Ç¥£¥¿¡¼: ɽ¼¨¤¹¤ë¥³¥ó¥Æ¥ó¥Ä¤òÊÔ½¸¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¤Ç¤¹¡£ +\end{itemize} ÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/deploy.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -27,7 +27,9 @@ ¤¿¤È¤¨¤Ð¡¢helloworld.war ¤òÇÛÈ÷¤¹¤ë¤Ë¤Ï¡¢ \begin{screen} -\$ cp/helloworld.war webapps/palportal/WEB-INF/deploy +\begin{verbatim} +$ cp /helloworld.war webapps/palportal/WEB-INF/deploy +\end{verbatim} \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portal.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -28,9 +28,13 @@ ¤¿¤È¤¨¤Ð¡¢¸Æ¤Ó½Ð¤·ÊýË¡¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} RequestContext requestContext = (RequestContext) request - .getAttribute(PortalReservedParameters.REQUEST\_CONTEXT\_ATTRIBUTE); + .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE); +\end{verbatim} + \end{screen} ¾åµ­¤ÎÊýË¡¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥Ý¡¼¥È¥ì¥Ã¥È³«È¯¤Ë¤ª¤¤¤Æ¡¢¥Ó¥ë¥É»þ¤Ë¤Ï jetspeed-api ¤Î jar ¥Õ¥¡¥¤¥ë¤¬É¬Íפˤʤê¤Þ¤¹¡£ @@ -52,6 +56,8 @@ \begin{screen} +\begin{verbatim} + -PAL Portal Administration Portlets -PAL Team + PAL Portal Administration Portlets + PAL Team + + + + + + +\end{verbatim} - - - - \end{screen} ¸Æ¤Ó½Ð¤·¤¿¤¤¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢js:service ¤Çµ­½Ò¤·¤Þ¤¹¡£ @@ -77,131 +86,139 @@ \begin{screen} - - \if0 Portlet Services \fi +\begin{verbatim} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\end{verbatim} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \end{screen} ¥Ý¡¼¥È¥ì¥Ã¥ÈÆâ¤Ç¤Î¸Æ¤Ó½Ð¤·ÊýË¡¤Ï¡¢PortletContext ¤«¤é¼èÆÀ¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢PageManager ¤Ï°Ê²¼¤Î¤è¤¦¤Ë¼èÆÀ¤·¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} PageManager pageManager = (PageManager) getPortletContext() - .getAttribute(CommonPortletServices.CPS\_PAGE\_MANAGER\_COMPONENT); + .getAttribute(CommonPortletServices.CPS_PAGE_MANAGER_COMPONENT); +\end{verbatim} + \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/portlet/portlet.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -30,11 +30,13 @@ ¤³¤ÎÀá¤Ï¡¢´Êñ¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¤òºîÀ®¤¹¤ë¤¿¤á¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤¹¡£ ¥Ý¡¼¥È¥ì¥Ã¥È¤Î³«È¯¼Ô¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ç½ø¤Ç³«È¯¤¬¤Ç¤­¤Þ¤¹¡£ +\subsubsection{¥Ý¡¼¥È¥ì¥Ã¥È¥¯¥é¥¹} - simplest/WEB-INF/classes ¥Ç¥£¥ì¥¯¥È¥ê¤Ë Simplest.java ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò°Ê²¼¤Î¤è¤¦¤ËºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ \begin{screen} + +\begin{verbatim} public class Simplest extends javax.portlet.GenericPortlet { public void doView(javax.portlet.RenderRequest request, javax.portlet.RenderResponse response) @@ -44,72 +46,93 @@ response.getWriter().println("A very simple portlet."); } } +\end{verbatim} + \end{screen} °Ê²¼¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¥¯¥é¥¹¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£ \begin{screen} -\$ javac -cp ~/.maven/repository/org.apache.portals.jetspeed-2/jars/portlet-api-1.0.jar Simplest.java +\begin{verbatim} +$ javac -cp ~/.maven/repository/org.apache.portals.jetspeed-2/jars/portlet-api-1.0.jar Simplest.java +\end{verbatim} + + \end{screen} +\subsubsection{portlet.xml} simplest/WEB-INF ¥Ç¥£¥ì¥¯¥È¥ê¤Ë portlet.xml ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ \begin{screen} +\begin{verbatim} + + + + Simplest + Simple Display Name + Simplest + + text/html + VIEW + + en + + Simple Title + The world's simplest portlet + + + +\end{verbatim} -Simplest -Simple Display Name -Simplest -text/html -VIEW - -en - - -The world's simplest portlet - - - - \end{screen} +\subsubsection{web.xml}? - simplest/WEB-INF ¥Ç¥£¥ì¥¯¥È¥ê¤Ë web.xml ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£ \begin{screen} +\begin{verbatim} + + "http://java.sun.com/dtd/web-app_2_3.dtd"> + + Simplest + The world's simplest portlet + +\end{verbatim} -Simplest -The world's simplest portlet - \end{screen} +\subsubsection{WAR¥Õ¥¡¥¤¥ë} - simplest ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¡¢°Ê¾å¤Î¥Õ¥¡¥¤¥ë¤ò war ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á¤Æ¤¯¤À¤µ¤¤¡£ \begin{screen} -\$ jar cvf ../simplest.war . +\begin{verbatim} +$ jar cvf ../simplest.war . +\end{verbatim} + + \end{screen} +\subsubsection{WAR¥Õ¥¡¥¤¥ë¤ÎÇÛÈ÷} - war ¥Õ¥¡¥¤¥ë¤òwebapps/palportal/WEB-INF/deploy¤Ë¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ PAL¥Ý¡¼¥¿¥ë¤Ï webapp ¤òÇÛÈ÷¤·¤Þ¤¹¡£ +\subsubsection{¥Ú¡¼¥¸¤ËÇÛÃÖ} ºîÀ®¤·¤¿¥Ý¡¼¥È¥ì¥Ã¥È¤ò¥Ú¡¼¥¸¾å¤ËÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£ ÇÛÃÖ¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö´ÉÍý¥¬¥¤¥É¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -29,7 +29,15 @@ PAL¥Ý¡¼¥¿¥ë¤Î¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï¡¢¥Ý¡¼¥¿¥ë¤Î¥ê¥½¡¼¥¹¤Î¾ì½ê¤Ë´Ø¤¹¤ë¥ë¡¼¥ë¥Ù¡¼¥¹¤Î¥¨¥ó¥¸¥ó¤Ç¤¹¡£ PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ê¼ïÎà¤Î¥Ý¡¼¥¿¥ë¥ê¥½¡¼¥¹¤Î¾ì½ê¤ò·èÄꤷ¤Þ¤¹¡£ -PSML ¥Ú¡¼¥¸¥Õ¥©¥ë¥À¥á¥Ë¥å¡¼ + +\begin{itemize} + +\item PSML ¥Ú¡¼¥¸ +\item ¥Õ¥©¥ë¥À +\item ¥á¥Ë¥å¡¼ + +\end{itemize} + ¥ê¥¯¥¨¥¹¥È¤¬¥Ý¡¼¥¿¥ë¤Ç¼õ¿®¤µ¤ì¤¿¤È¤­¡¢¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï¼Â¹Ô»þ¥Ñ¥é¥á¡¼¥¿¤ä¾õÂÖ (¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¡¢HTTP ¥Ø¥Ã¥À¡¼¡¢¥»¥Ã¥·¥ç¥ó¤Î°À­¤Ê¤É) ¤ÎÀµµ¬²½¤µ¤ì¤¿Ãͤ˴ð¤Å¤­¡¢¥ê¥¯¥¨¥¹¥È¤ò¥ê¥½¡¼¥¹¤È·ë¤Ó¤Ä¤±¤Þ¤¹¡£ ¥×¥í¥Õ¥¡¥¤¥é¡¼¤Ï¥×¥í¥Õ¥¡¥¤¥é¡¼¥Ð¥ë¥ÖÆâ¤Î PAL¥Ý¡¼¥¿¥ë¤Î¥ê¥¯¥¨¥¹¥È½èÍý¥Ñ¥¤¥×¥é¥¤¥ó¤ÎÃæ¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¥Ð¥ë¥Ö¤Ï¡¢¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥È¤¬´û¤Ë¥Ý¡¼¥¿¥ë¤Î¥ê¥¯¥¨¥¹¥È¤ä¥ì¥¹¥Ý¥ó¥¹¡¢µ¡Ç½¡¢¸À¸ì¡¢¥æ¡¼¥¶¾ðÊó¤È´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/profiler/profilingrule.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -27,6 +27,7 @@ \subsection{¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë} +\subsubsection{³µÍ×} ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ï¡¢ÆÃÄê¤Î¥ê¥½¡¼¥¹¤Î¾ì½ê¤ò²ò·è¤¹¤ë¥ê¥¯¥¨¥¹¥È¤òɾ²Á¤¹¤ë¤È¤­¤Ë»È¤ï¤ì¤ëȽÃǵ¬½à¤Î¥ê¥¹¥È¤òÄêµÁ¤·¤Þ¤¹¡£ ¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¥ë¡¼¥ë¤Ï¥×¥í¥Õ¥¡¥¤¥é¡¼¤¬»ÈÍѤ·¤Þ¤¹¡£ @@ -36,6 +37,7 @@ Á´¤Æ¤Î¾ò·ï¤¬Å¬ÍѤµ¤ì¤Ä¤¯¤·¤¿¾ì¹ç¡¢¥ë¡¼¥ë¤Ï¼ºÇԤȤʤê¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¥ê¥½¡¼¥¹¤¬Í׵ᤵ¤ì¤Þ¤¹¡£ +\subsubsection{¥ë¡¼¥ëµ¬½à} ¥ë¡¼¥ëµ¬½à¤Ï¥×¥í¥Õ¥¡¥¤¥ë¤Î¥×¥í¥Ñ¥Æ¥£¤Î¾ì½ê¤ò¼¨¤¹¤¿¤á¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ç¤¹¡£ @@ -45,86 +47,58 @@ +\subsubsection{¥ë¡¼¥ëµ¬½à¤Î¥ê¥¾¥ë¥Ð} -¥ê¥¾¥ë¥Ð -ÀâÌÀ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥ê¥¾¥ë¥Ð & ÀâÌÀ\\ +\hline\hline +request & ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¤è¤ë²ò·è\\ +\hline +session & ¥»¥Ã¥·¥ç¥ó¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¤è¤ë²ò·è\\ +\hline +request.session & ºÇ½é¤Ë¥ê¥¯¥¨¥¹¥È¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤ò¹Ô¤Ã¤Æ¤«¤é¡¢¥»¥Ã¥·¥ç¥ó¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤ò¹Ô¤Ã¤Æ²ò·è¤¹¤ë\\ +\hline +hard.coded & ¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤¿Ãͤˤè¤ë²ò·è\\ +\hline +group.role.user & ¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¥³¥ó¥È¥í¡¼¥é: ¸½ºß¤Î¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¡¢¼¡¤Ë¥í¡¼¥ë¡¢¼¡¤Ë¥æ¡¼¥¶¡¼¤Î½êÍ­¤¹¤ë¥Õ¥©¥ë¥À°Ê²¼¤Î¥ê¥½¡¼¥¹¤òõ¤¹\\ +\hline +user & ¸½ºß¤Î¥æ¡¼¥¶¡¼¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +group & ¸½ºß¤Î¥°¥ë¡¼¥×¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +role & ¸½ºß¤Î¥í¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +mediatype & ¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥á¥Ç¥£¥¢¥¿¥¤¥×¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +country & ¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¹ñ¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +user.agent & ¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥È¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +language & ¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¸À¸ì¤È¥Þ¥Ã¥Á¤µ¤»¤ë\\ +\hline +roles & ¥í¡¼¥ë¤Î¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯\\ +\hline +path & »ØÄꤵ¤ì¤¿¥Ñ¥¹¤È¥Þ¥Ã¥Á¤¹¤ë\\ +\hline +page & »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤È¥Þ¥Ã¥Á¤¹¤ë\\ +\hline +path.session & »ØÄꤵ¤ì¤¿¥Ñ¥¹¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¤ÎÃͤȥޥåÁ¤¹¤ë\\ +\hline +user.attribute & »ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È°À­¤ÎÃͤȥޥåÁ¤¹¤ë\\ +\hline +navigation & ¸½ºß¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ñ¥¹¤òÊѤ¨¤ë\\ +\hline + \end{tabular} +\end{center} +\end{table} -request -¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¤è¤ë²ò·è -session -¥»¥Ã¥·¥ç¥ó¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤Ë¤è¤ë²ò·è -request.session -ºÇ½é¤Ë¥ê¥¯¥¨¥¹¥È¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤ò¹Ô¤Ã¤Æ¤«¤é¡¢¥»¥Ã¥·¥ç¥ó¤Î°À­Ì¾¤È¤Î¥Þ¥Ã¥Á¥ó¥°¤ò¹Ô¤Ã¤Æ²ò·è¤¹¤ë - -hard.coded -¥Ï¡¼¥É¥³¡¼¥É¤µ¤ì¤¿Ãͤˤè¤ë²ò·è - - -group.role.user -¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯¥³¥ó¥È¥í¡¼¥é: ¸½ºß¤Î¥æ¡¼¥¶¡¼¥°¥ë¡¼¥×¡¢¼¡¤Ë¥í¡¼¥ë¡¢¼¡¤Ë¥æ¡¼¥¶¡¼¤Î½êÍ­¤¹¤ë¥Õ¥©¥ë¥À°Ê²¼¤Î¥ê¥½¡¼¥¹¤òõ¤¹ - - -user -¸½ºß¤Î¥æ¡¼¥¶¡¼¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -group -¸½ºß¤Î¥°¥ë¡¼¥×¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -role -¸½ºß¤Î¥í¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥ê¥½¡¼¥¹¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -mediatype -¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥á¥Ç¥£¥¢¥¿¥¤¥×¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -country -¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¹ñ¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -user.agent -¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥È¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -language -¥ê¥¯¥¨¥¹¥È¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Î¸À¸ì¤È¥Þ¥Ã¥Á¤µ¤»¤ë - - -roles -¥í¡¼¥ë¤Î¥Õ¥©¡¼¥ë¥Ð¥Ã¥¯ - - -path -»ØÄꤵ¤ì¤¿¥Ñ¥¹¤È¥Þ¥Ã¥Á¤¹¤ë - - -page -»ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤È¥Þ¥Ã¥Á¤¹¤ë - - -path.session -»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¤ÎÃͤȥޥåÁ¤¹¤ë - - -user.attribute -»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È°À­¤ÎÃͤȥޥåÁ¤¹¤ë - - -navigation -¸½ºß¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ñ¥¹¤òÊѤ¨¤ë - - - - - - - Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -45,129 +45,145 @@ \begin{screen} +\begin{verbatim} + + + + Welcome to PAL¥Ý¡¼¥¿¥ë + Ma Premiere Page de PSML + ½áŽÀBienvenido a PAL¥Ý¡¼¥¿¥ë! + K½ærsz½ærnti a PAL¥Ý¡¼¥¿¥ë! - \if0 ¥Ú¡¼¥¸¤Î¾ðÊó \fi + + -Ma Premiere Page de PSML -¢ÂBienvenido a PAL¥Ý¡¼¥¿¥ë! -K«Ósz«Ónti a PAL¥Ý¡¼¥¿¥ë! + + + + + + + + + + + + + + + + + + - \if0 ¥Ú¡¼¥¸¤ÎÁõ¾þ \fi + + + public-view + + +\end{verbatim} - \if0 ¥Ú¡¼¥¸¥Õ¥é¥°¥á¥ó¥È \fi - - - - - - - - - - - - - - - - - - - \if0 ¥»¥­¥å¥ê¥Æ¥£À©¸Â \fi - -public-view - - - \end{screen} °Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Õ¥©¥ë¥À (folder.metadata) ÍѤÎÄêµÁ¤ò¹Ô¤¦ PSML ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + + + + Root Folder + R½æPpertoire racine + Carpeta raiz - \if0 ¥Õ¥©¥ë¥À¤ÎÀâÌÀ \fi - -R«±pertoire racine -Carpeta raiz + + Jetspeed2.link + Jetspeed2Wiki.link + apache_portals.link + apache.link - \if0 ¥Õ¥©¥ë¥ÀÆâ¤Î¥É¥­¥å¥á¥ó¥È¤Î½ç½ø \fi -Jetspeed2.link -Jetspeed2Wiki.link -apache\_portals.link -apache.link + + + + Top Pages + Page haut + P½æ@ginas m½æ@s populares + + /Administrative + + Profiled Pages + P½æ@ginas del Perfil + + /p[0-9][0-9][0-9].psml + + Non Java Pages + Ejemplos sin java + + /non-java + - \if0 ¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼ \fi + + + public-view + + +\end{verbatim} -Top Pages -Page haut -P«¡ginas m«¡s populares - -/Administrative - -Profiled Pages -P«¡ginas del Perfil - -/p[0-9][0-9][0-9].psml - -Non Java Pages -Ejemplos sin java - -/non-java - - - \if0 ¥»¥­¥å¥ê¥Æ¥£À©¸Â \fi - -public-view - - - \end{screen} °Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥ê¥ó¥¯ (*.link) ÍѤΠPSML ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + + + + PAL¥Ý¡¼¥¿¥ëHome Page + http://portals.apache.org/jetspeed-2/ + PAL¥Ý¡¼¥¿¥ë + +\end{verbatim} - \if0 ¥ê¥ó¥¯¤ÎÀâÌÀ \fi -http://portals.apache.org/jetspeed-2/ -PAL¥Ý¡¼¥¿¥ë - - \end{screen} °Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£ (page.security) ÍѤΠPSML ¥Õ¥¡¥¤¥ë¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + + + + + + admin + view, edit + + + admin - \if0 Âç°èŪ¤Ê´ÉÍý¼Ô¤ÎÀ©¸Â \fi + + + + * + view + + + + + * + view, edit + + + +\end{verbatim} -admin -view, edit - - -admin - - \if0 ¥Ñ¥Ö¥ê¥Ã¥¯¤ÊÀ©¸Â \fi - - -* -view - - - - -* -view, edit - - - - \end{screen} \subsection{ ¥Ú¡¼¥¸} @@ -177,60 +193,51 @@ 2 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬¥Ú¡¼¥¸¥¨¥ì¥á¥ó¥È¤Î°À­¤È¤·¤Æ¸ºß¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +hidden & ¥Ú¡¼¥¸¤¬¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥µ¥¤¥È¥á¥Ë¥å¡¼¤Þ¤¿¤Ï¾¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥óÍѤÎÍ×ÁǤËɽ¤ì¤ë¤«¤É¤¦¤«¤ò»Ø¼¨¤¹¤ë¤¿¤á¤Î¿¿µ¶ÃͤΰÀ­¡£\\ +\hline +version & °ìÈÌŪ¤ÊÌÜŪ¤Î¥Ð¡¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î¤¿¤á¤Î°À­¡£PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¸½ºß»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ -hidden -¥Ú¡¼¥¸¤¬¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥µ¥¤¥È¥á¥Ë¥å¡¼¤Þ¤¿¤Ï¾¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥óÍѤÎÍ×ÁǤËɽ¤ì¤ë¤«¤É¤¦¤«¤ò»Ø¼¨¤¹¤ë¤¿¤á¤Î¿¿µ¶ÃͤΰÀ­¡£ - - -version -°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ð¡¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î¤¿¤á¤Î°À­¡£PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¸½ºß»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - - \<page\> Í×ÁǤÏ¿¤¯¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +title? & ¥Ç¥Õ¥©¥ë¥È¤Î¥Ú¡¼¥¸¥¿¥¤¥È¥ë¤òɽ¤¹¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤ÊÍ×ÁÇ¡£¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·¥á¥Ë¥å¡¼¥Æ¥­¥¹¥ÈÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï page Í×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£\\ +\hline +short-title? & ¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£Ã»¤¤¥¿¥¤¥È¥ë¤Ï¡¢¤â¤·ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿Æâ¤Î¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï title ¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£\\ +\hline +defaults & ¥Ú¡¼¥¸¤È¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Î¤¿¤á¤ÎÁõ¾þ¤ò»ØÄꤷ¤Þ¤¹¡£defaults ¤Ï¥Ú¡¼¥¸Ëè¤ËɬÍפǤ¹¡£\\ +\hline +fragment & ¥Õ¥é¥°¥á¥ó¥È¤Î³¬Áع½Â¤¤Î¥ë¡¼¥È¡£Á´¤Æ¤Î¥Ú¡¼¥¸¤Ë¥ë¡¼¥È¤Î¥Õ¥é¥°¥á¥ó¥È¤¬É¬ÍפǤ¹¡£\\ +\hline +metadata* & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍÑ¤Î¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¡£\\ +\hline +menu* & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍѤÎÄɲäޤ¿¤Ï¾å½ñ¤­¤µ¤ì¤¿·Ñ¾µ¤·¤¿¥á¥Ë¥å¡¼ÄêµÁ¤Î»ØÄê¡£\\ +\hline +security-constraints? & ¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍѤΥ¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Ú¡¼¥¸¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ -title? -¥Ç¥Õ¥©¥ë¥È¤Î¥Ú¡¼¥¸¥¿¥¤¥È¥ë¤òɽ¤¹¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤ÊÍ×ÁÇ¡£¥Ú¡¼¥¸¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·¥á¥Ë¥å¡¼¥Æ¥­¥¹¥ÈÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï page Í×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£ - - -short-title? -¥Ú¡¼¥¸¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£Ã»¤¤¥¿¥¤¥È¥ë¤Ï¡¢¤â¤·ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿Æâ¤Î¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï title ¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£ - - - - defaults - -¥Ú¡¼¥¸¤È¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Î¤¿¤á¤ÎÁõ¾þ¤ò»ØÄꤷ¤Þ¤¹¡£defaults ¤Ï¥Ú¡¼¥¸Ëè¤ËɬÍפǤ¹¡£ - - - - fragment - -¥Õ¥é¥°¥á¥ó¥È¤Î³¬Áع½Â¤¤Î¥ë¡¼¥È¡£Á´¤Æ¤Î¥Ú¡¼¥¸¤Ë¥ë¡¼¥È¤Î¥Õ¥é¥°¥á¥ó¥È¤¬É¬ÍפǤ¹¡£ - - -metadata* -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍÑ¤Î¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¡£ - - -menu* -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍѤÎÄɲäޤ¿¤Ï¾å½ñ¤­¤µ¤ì¤¿·Ñ¾µ¤·¤¿¥á¥Ë¥å¡¼ÄêµÁ¤Î»ØÄê¡£ - - -security-constraints? -¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥Ú¡¼¥¸ÍѤΥ¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Ú¡¼¥¸¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ - - Îã: ¡Ö³µÍספǼ¨¤·¤¿Îã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ \subsection{¥Ç¥Õ¥©¥ë¥È} @@ -240,30 +247,34 @@ ¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ç¥³¥ì¡¼¥¿Â°À­¤ò»ý¤¿¤Ê¤¤Á´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤ËÂФ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£ defaults Í×ÁÇ¤Ë¤Ï 3 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬¤¢¤ê¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +layout-decorator & ¥Ú¡¼¥¸¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë¤È¤­¤Ë»È¤¦¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¡£¤³¤Î°À­¤Ïɬ¿Ü¤Ç¤¹¡£\\ +\hline +portlet-decorator & ¥Ú¡¼¥¸¥Õ¥é¥°¥á¥ó¥È¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë¤È¤­¤Ë»È¤¦¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¡£¤³¤Î°À­¤Ï¾Êά²Äǽ¤Ç¤¹¤¬¡¢¤Û¤È¤ó¤É¤¤¤Ä¤âÀßÄꤷ¤Þ¤¹¡£\\ +\hline +skin & ¥Ú¡¼¥¸¤ä¥Õ¥é¥°¥á¥ó¥È¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë¥Ç¥³¥ì¡¼¥¿Æâ¤Ç»²¾È¤µ¤ì¤ë°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ç¥³¥ì¡¼¥¿Â°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»ÈÍѤ·¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - -layout-decorator -¥Ú¡¼¥¸¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë¤È¤­¤Ë»È¤¦¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¡£¤³¤Î°À­¤Ïɬ¿Ü¤Ç¤¹¡£ - - -portlet-decorator -¥Ú¡¼¥¸¥Õ¥é¥°¥á¥ó¥È¤ò¥ì¥ó¥À¥ê¥ó¥°¤¹¤ë¤È¤­¤Ë»È¤¦¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤Î̾Á°¡£¤³¤Î°À­¤Ï¾Êά²Äǽ¤Ç¤¹¤¬¡¢¤Û¤È¤ó¤É¤¤¤Ä¤âÀßÄꤷ¤Þ¤¹¡£ - - -skin -¥Ú¡¼¥¸¤ä¥Õ¥é¥°¥á¥ó¥È¤Îɽ¼¨¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë¥Ç¥³¥ì¡¼¥¿Æâ¤Ç»²¾È¤µ¤ì¤ë°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ç¥³¥ì¡¼¥¿Â°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»ÈÍѤ·¤Æ¤¤¤Þ¤»¤ó¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... - + ... + +\end{verbatim} \end{screen} @@ -278,72 +289,68 @@ ¤³¤ì¤Ï¡¢Ê£¿ôÎó¤Î¥ì¥¤¥¢¥¦¥È¤ÎÎó¤Î³ä¹ç¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ ¤³¤ÎÍ×ÁÇ¤Ë¤Ï 3 ¤Ä¤Îɬ¿Ü¤Î°À­¤¬¤¢¤ê¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +id & ɬ¿Ü¤Ç¤¢¤ë id ¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤òÆÃÄꤹ¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥µ¥¤¥ÈÆâ¤ÇÄêµÁ¤µ¤ì¤ëÁ´¤Æ¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÅϤäƥæ¥Ë¡¼¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÃÍ¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÆ©²áŪ¤Ç¤Ê¤¯¡¢°ì°ÕÀ­¤òÊݾڤ¹¤ë¤¿¤á¤Î¤É¤Î¤è¤¦¤Ê»ÅÍͤˤ⽾¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÆâÉôŪ¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢´û¸¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ëǤ°Õ¤ÎÊÔ½¸¤¬¡¢PAL¥Ý¡¼¥¿¥ë¤¬¹Ô¤¦Êѹ¹¤òÊݾڤ¹¤ë¤¿¤á¤Ë¿·¤·¤¤ id ¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£\\ +\hline +type & ¤³¤Îɬ¿Ü¤Î°À­¤Ï¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥ÈÁ´¤Æ¤Ç 'layout' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\\ +\hline +name & ɬ¿Ü¤Ç¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¥ì¥¤¥¢¥¦¥È¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï°ìÈÌŪ¤Ë¡¢portlet.xml ¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ 'portlet-app-id::portlet-id' ¤Î·Á¤ò¼è¤ê¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - - -id -ɬ¿Ü¤Ç¤¢¤ë id ¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤òÆÃÄꤹ¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥µ¥¤¥ÈÆâ¤ÇÄêµÁ¤µ¤ì¤ëÁ´¤Æ¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÅϤäƥæ¥Ë¡¼¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÃÍ¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÆ©²áŪ¤Ç¤Ê¤¯¡¢°ì°ÕÀ­¤òÊݾڤ¹¤ë¤¿¤á¤Î¤É¤Î¤è¤¦¤Ê»ÅÍͤˤ⽾¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÆâÉôŪ¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢´û¸¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ëǤ°Õ¤ÎÊÔ½¸¤¬¡¢PAL¥Ý¡¼¥¿¥ë¤¬¹Ô¤¦Êѹ¹¤òÊݾڤ¹¤ë¤¿¤á¤Ë¿·¤·¤¤ id ¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ - - -type -¤³¤Îɬ¿Ü¤Î°À­¤Ï¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥ÈÁ´¤Æ¤Ç 'layout' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ - - -name -ɬ¿Ü¤Ç¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¥ì¥¤¥¢¥¦¥È¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï°ìÈÌŪ¤Ë¡¢portlet.xml ¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ 'portlet-app-id::portlet-id' ¤Î·Á¤ò¼è¤ê¤Þ¤¹¡£ - - - - ¥ì¥¤¥¢¥¦¥È \<fragment\> Í×ÁǤϤ¿¤¯¤µ¤ó¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +fragment* & »ØÄꤵ¤ì¤¿ fragment Í×ÁǤϡ¢¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ë¤è¤Ã¤Æ¥ì¥¤¥¢¥¦¥È¤µ¤ì¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¡¢¤Þ¤¿¤Ï³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Î¤É¤Á¤é¤Ë¤âÀ®¤êÆÀ¤Þ¤¹¡£Á´¤Æ¤Î»Ò¥Õ¥é¥°¥á¥ó¥È¤Ë¤Ï¤³¤Î¥ì¥¤¥¢¥¦¥È¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤Î property Í×ÁǤ¬É¬¿Ü¤Ç¤¹¡£¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥ÈÆâ¤Ë»ØÄꤵ¤ì¤ë¥Õ¥é¥°¥á¥ó¥È¤¬¤Ê¤¤¾ì¹ç¤Ï·ë²Ì¤È¤·¤Æ¥³¥ó¥Æ¥ó¥Ä¤ÏÀ¸À®¤µ¤ì¤Þ¤»¤ó¡£\\ +\hline +property* & ¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¾Êά²Äǽ¤Ç 'sizes' ¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Ä¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤³¤ì¤ÏÊ£¿ôÎó¤Î·Á¾õ¤ÎÌÀºÙ¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë 'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤â»ý¤Ä¤«¤â¤·¤ì¤Þ¤»¤ó¡£\\ +\hline +security-constraints? & ¥Õ¥é¥°¥á¥ó¥È¤È¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Î»Ò¥Õ¥é¥°¥á¥ó¥È¤ËÂФ·¤Æ¡¢¾Êά²Äǽ¤Ê¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤òÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥ê¥ó¥¯¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¤ß¤¬À©¸Â¤µ¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Õ¥é¥°¥á¥ó¥È¤Ï¥Ú¡¼¥¸Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - - - fragment* - -»ØÄꤵ¤ì¤¿ fragment Í×ÁǤϡ¢¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ë¤è¤Ã¤Æ¥ì¥¤¥¢¥¦¥È¤µ¤ì¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¡¢¤Þ¤¿¤Ï³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Î¤É¤Á¤é¤Ë¤âÀ®¤êÆÀ¤Þ¤¹¡£Á´¤Æ¤Î»Ò¥Õ¥é¥°¥á¥ó¥È¤Ë¤Ï¤³¤Î¥ì¥¤¥¢¥¦¥È¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤Î property Í×ÁǤ¬É¬¿Ü¤Ç¤¹¡£¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥ÈÆâ¤Ë»ØÄꤵ¤ì¤ë¥Õ¥é¥°¥á¥ó¥È¤¬¤Ê¤¤¾ì¹ç¤Ï·ë²Ì¤È¤·¤Æ¥³¥ó¥Æ¥ó¥Ä¤ÏÀ¸À®¤µ¤ì¤Þ¤»¤ó¡£ - - - - property* - -¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¾Êά²Äǽ¤Ç 'sizes' ¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Ä¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤³¤ì¤ÏÊ£¿ôÎó¤Î·Á¾õ¤ÎÌÀºÙ¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£³¬Áز½¤µ¤ì¤¿¥ì¥¤¥¢¥¦¥È¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë 'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤â»ý¤Ä¤«¤â¤·¤ì¤Þ¤»¤ó¡£ - - -security-constraints? -¥Õ¥é¥°¥á¥ó¥È¤È¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Î»Ò¥Õ¥é¥°¥á¥ó¥È¤ËÂФ·¤Æ¡¢¾Êά²Äǽ¤Ê¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤òÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥ê¥ó¥¯¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¤ß¤¬À©¸Â¤µ¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Õ¥é¥°¥á¥ó¥È¤Ï¥Ú¡¼¥¸Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ - - Îã: \begin{screen} - +\begin{verbatim} + ... - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + ... + +\end{verbatim} \end{screen} @@ -354,73 +361,62 @@ ¤Ç¤¹¤Î¤Ç¡¢¥ì¥¤¥¢¥¦¥È¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë 'row' ¤È 'column' ¤Î¥ì¥¤¥¢¥¦¥È¥×¥í¥Ñ¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ ¤³¤ÎÍ×ÁǤËÂФ·¤Æ¤Ï¿¿ô¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +id & ɬ¿Ü¤Ç¤¢¤ë id ¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤òÆÃÄꤹ¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥µ¥¤¥ÈÆâ¤ÇÄêµÁ¤µ¤ì¤ëÁ´¤Æ¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÅϤäơ¢¥æ¥Ë¡¼¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÃÍ¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÆ©²áŪ¤Ç¤Ê¤¯¡¢°ì°ÕÀ­¤òÊݾڤ¹¤ë¤¿¤á¤Î¤É¤Î¤è¤¦¤Ê»ÅÍͤˤ⽾¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÆâÉôŪ¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢´û¸¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ëǤ°Õ¤ÎÊÔ½¸¤¬¡¢PAL¥Ý¡¼¥¿¥ë¤¬¹Ô¤¦Êѹ¹¤òÊݾڤ¹¤ë¤¿¤á¤Ë¿·¤·¤¤ id ¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£\\ +\hline +type & ¤³¤Îɬ¿Ü¤Î°À­¤ÏÁ´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Ç 'portlet' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\\ +\hline +name & ɬ¿Ü¤Ç¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¥³¥ó¥Æ¥ó¥Ä¤òή¤·¹þ¤à¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï°ìÈÌŪ¤Ë portlet.xml ¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ 'portlet-app-id::portlet-id' ¤Î·Á¤ò¼è¤ê¤Þ¤¹¡£\\ +\hline +skin & ¥Õ¥é¥°¥á¥ó¥È¤Îɽ¼¨¤Î¥³¥ó¥È¥í¡¼¥ë¤Î¤¿¤á¤Î¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Æâ¤Ç»²¾È¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ç¥³¥ì¡¼¥¿Â°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline +decorator & ¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Ì¾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤Î¥ì¥ó¥À¥ê¥ó¥°¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ï¾Êά²Äǽ¤Ç¤¹¡£¤·¤«¤·¡¢¤³¤Î°À­¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ú¡¼¥¸¤Î defaults ¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤ò»ØÄꤷ¤Þ¤¹¡£\\ +\hline +state & ¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î½é´ü¾õÂÖ; ¸½»þÅÀ¤Ç¤Ï¤³¤Î°À­¤ËÂФ·¤Æ¤Ï¡¢Í£°ì 'hidden' ¤¬Í­¸ú¤ÊÃͤǤ¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - - -id -ɬ¿Ü¤Ç¤¢¤ë id ¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤òÆÃÄꤹ¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥µ¥¤¥ÈÆâ¤ÇÄêµÁ¤µ¤ì¤ëÁ´¤Æ¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÅϤäơ¢¥æ¥Ë¡¼¥¯¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ÎÃÍ¤Ï PAL¥Ý¡¼¥¿¥ë¤ËÂФ·¤ÆÆ©²áŪ¤Ç¤Ê¤¯¡¢°ì°ÕÀ­¤òÊݾڤ¹¤ë¤¿¤á¤Î¤É¤Î¤è¤¦¤Ê»ÅÍͤˤ⽾¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥Õ¥é¥°¥á¥ó¥È¤Ï PAL¥Ý¡¼¥¿¥ë¤ÇÆâÉôŪ¤Ë¥­¥ã¥Ã¥·¥å¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢´û¸¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ëǤ°Õ¤ÎÊÔ½¸¤¬¡¢PAL¥Ý¡¼¥¿¥ë¤¬¹Ô¤¦Êѹ¹¤òÊݾڤ¹¤ë¤¿¤á¤Ë¿·¤·¤¤ id ¤òɬÍפȤ¹¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£ - - -type -¤³¤Îɬ¿Ü¤Î°À­¤ÏÁ´¤Æ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Ç 'portlet' ¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ - - -name -ɬ¿Ü¤Ç¤¢¤ë¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¥³¥ó¥Æ¥ó¥Ä¤òή¤·¹þ¤à¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¥Ý¡¼¥È¥ì¥Ã¥È̾¤Ï°ìÈÌŪ¤Ë portlet.xml ¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ 'portlet-app-id::portlet-id' ¤Î·Á¤ò¼è¤ê¤Þ¤¹¡£ - - -skin -¥Õ¥é¥°¥á¥ó¥È¤Îɽ¼¨¤Î¥³¥ó¥È¥í¡¼¥ë¤Î¤¿¤á¤Î¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Æâ¤Ç»²¾È¤¹¤ë²ÄǽÀ­¤Î¤¢¤ë°ìÈÌŪ¤ÊÌÜŪ¤Î¥Ç¥³¥ì¡¼¥¿Â°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ - - -decorator -¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿Ì¾¤Ï¡¢¥Õ¥é¥°¥á¥ó¥È¤Î¥ì¥ó¥À¥ê¥ó¥°¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ï¾Êά²Äǽ¤Ç¤¹¡£¤·¤«¤·¡¢¤³¤Î°À­¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¥Ú¡¼¥¸¤Î defaults ¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥Ý¡¼¥È¥ì¥Ã¥È¥Ç¥³¥ì¡¼¥¿¤ò»ØÄꤷ¤Þ¤¹¡£ - - -state -¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î½é´ü¾õÂÖ; ¸½»þÅÀ¤Ç¤Ï¤³¤Î°À­¤ËÂФ·¤Æ¤Ï¡¢Í£°ì 'hidden' ¤¬Í­¸ú¤ÊÃͤǤ¹¡£ - - - ¥Ý¡¼¥È¥ì¥Ã¥È¤Î \<fragment\> Í×ÁǤϾ¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +property* & ¿Æ¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë¡¢'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Æ¤Þ¤¹¡£\\ +\hline +title? & ¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¿¥¤¥È¥ë¤ò´Þ¤à¡¢¾Êά²Äǽ¤Çñ½ã¤Ê¥Æ¥­¥¹¥È¤ÎÍ×ÁÇ¡£portlet.xml ¤Ç¥»¥Ã¥È¤µ¤ì¤¿¥¿¥¤¥È¥ë¤ò¾å½ñ¤­¤·¤Þ¤¹¡£\\ +\hline +preference* & ¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤¿¤¤¤·¤Æ¡¢ÀßÄꤵ¤ì¤ë½é´ü¤Î¥æ¡¼¥¶¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»ØÄꤷ¤Þ¤¹¡£portlet.xml Æâ¤Ç»ØÄꤵ¤ì¤¿¡¢¤É¤Î¤è¤¦¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤â¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£\\ +\hline +security-constraints? & ¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò¾Êά²Äǽ¤ÇÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤À¤±¤òÀ©¸Â¤Ç¤­¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Ï page Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - - - - property* - -¿Æ¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë¡¢'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Æ¤Þ¤¹¡£ - - -title? -¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¿¥¤¥È¥ë¤ò´Þ¤à¡¢¾Êά²Äǽ¤Çñ½ã¤Ê¥Æ¥­¥¹¥È¤ÎÍ×ÁÇ¡£portlet.xml ¤Ç¥»¥Ã¥È¤µ¤ì¤¿¥¿¥¤¥È¥ë¤ò¾å½ñ¤­¤·¤Þ¤¹¡£ - - - - preference* - -¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤¿¤¤¤·¤Æ¡¢ÀßÄꤵ¤ì¤ë½é´ü¤Î¥æ¡¼¥¶¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»ØÄꤷ¤Þ¤¹¡£portlet.xml Æâ¤Ç»ØÄꤵ¤ì¤¿¡¢¤É¤Î¤è¤¦¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤â¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ - - -security-constraints? -¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò¾Êά²Äǽ¤ÇÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤À¤±¤òÀ©¸Â¤Ç¤­¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Ï page Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... - - - + + + ... + +\end{verbatim} \end{screen} @@ -430,38 +426,48 @@ ¤³¤ì¤é¤Î¥×¥í¥Ñ¥Æ¥£¤Ï°ìÈ̤˥쥤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥Ñ¥é¥á¡¼¥¿¤È¥Ú¡¼¥¸Æâ¤Î¥Ý¡¼¥È¥ì¥Ã¥È¤Î°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£ ¥×¥í¥Ñ¥Æ¥£Í×ÁÇ¤Ï 3 ¤Ä¤Î°À­¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +property* & ¿Æ¥Õ¥é¥°¥á¥ó¥È¤Ï¡¢¿Æ¥ì¥¤¥¢¥¦¥ÈÆâ¤Î°ÌÃÖ¤òÆÃÄꤹ¤ë¤¿¤á¤Ë¡¢'row' ¤Þ¤¿¤Ï 'column' ¤Þ¤¿¤Ï¤½¤ÎξÊý¤Î¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Æ¤Þ¤¹¡£\\ +\hline +title? & ¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¥¿¥¤¥È¥ë¤ò´Þ¤à¡¢¾Êά²Äǽ¤Çñ½ã¤Ê¥Æ¥­¥¹¥È¤ÎÍ×ÁÇ¡£portlet.xml ¤Ç¥»¥Ã¥È¤µ¤ì¤¿¥¿¥¤¥È¥ë¤ò¾å½ñ¤­¤·¤Þ¤¹¡£\\ +\hline +preference* & ¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ë¤¿¤¤¤·¤Æ¡¢ÀßÄꤵ¤ì¤ë½é´ü¤Î¥æ¡¼¥¶¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»ØÄꤷ¤Þ¤¹¡£portlet.xml Æâ¤Ç»ØÄꤵ¤ì¤¿¡¢¤É¤Î¤è¤¦¤Ê¥Ý¡¼¥È¥ì¥Ã¥È¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤â¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£\\ +\hline +security-constraints? & ¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò¾Êά²Äǽ¤ÇÄêµÁ¤·¤Þ¤¹¡£¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤È°ã¤Ã¤Æ¡¢'view' ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤À¤±¤òÀ©¸Â¤Ç¤­¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥é¥°¥á¥ó¥È¤Ï page Æâ¤ÇÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - -layout(ÇÑ»ßͽÄê) -¥×¥í¥Ñ¥Æ¥£¤¬É³ÉÕ¤¤¤Æ¤¤¤ë¥Õ¥é¥°¥á¥ó¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î¼±ÊÌ̾¡£¤³¤Î°À­¤Ï¸ß´¹À­¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ì¥¤¥¢¥¦¥È¤È¥Ý¡¼¥È¥ì¥Ã¥È¥Õ¥é¥°¥á¥ó¥È¤Î¸·Ì©¤Ê³¬Áع½Â¤¤Ï¡¢¤É¤Î¤è¤¦¤Êñ°ì¤Î¥Õ¥é¥°¥á¥ó¥È¤È¤½¤Î¥×¥í¥Ñ¥Æ¥£¤â¡¢ 1 ¤Ä¤Î¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Î±Æ¶Á²¼¤Ë¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£ - - -name -¥Õ¥é¥°¥á¥ó¥È¥×¥í¥Ñ¥Æ¥£¤Î̾Á°¡£PAL¥Ý¡¼¥¿¥ë¤Î¥ì¥¤¥¢¥¦¥È¥Ý¡¼¥È¥ì¥Ã¥È¤Ï 'row'¡¢'column'¡¢'sizes' ¥×¥í¥Ñ¥Æ¥£¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ - - -value -¥Õ¥é¥°¥á¥ó¥È¥×¥í¥Ñ¥Æ¥£¤ÎÃÍ¡£'row' ¤È 'column' ¥×¥í¥Ñ¥Æ¥£¤Ï¥¼¥í¥Ù¡¼¥¹¤Î»ØɸÃͤò¼õ¤±¼è¤ê¤Þ¤¹¡£'sizes' ¥×¥í¥Ñ¥Æ¥£¤Ï HTML frameset ¥¿¥°¤Î 'rows' ¤È 'cols' °À­¤Î½ñ¼° (Î㤨¤Ð '25%,75%' Åù) ¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... - - + + ... + +\end{verbatim} \end{screen} \begin{screen} +\begin{verbatim} + ... - + ... + +\end{verbatim} \end{screen} @@ -477,38 +483,48 @@ \<preference\> Í×ÁǤΰÀ­¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +name & ¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤Î̾Á°¡£\\ +\hline +readOnly & ¥æ¡¼¥¶¤¬¤³¤Î¥×¥ê¥Õ¥¡¥ì¥ó¥¹ÃͤòÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¿¿µ¶ÃÍ¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - -name -¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤Î̾Á°¡£ - - -readOnly -¥æ¡¼¥¶¤¬¤³¤Î¥×¥ê¥Õ¥¡¥ì¥ó¥¹ÃͤòÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¿¿µ¶ÃÍ¡£ - - \<preference\> Í×ÁǤϰʲ¼¤ÎÍ×ÁǤò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +value+ & »ØÄꤷ¤¿¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤È´Ø·¸¤¹¤ëÃͤò´Þ¤àñ½ã¤Ê¥Æ¥­¥¹¥ÈÍ×ÁÇ¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - -value+ -»ØÄꤷ¤¿¥×¥ê¥Õ¥¡¥ì¥ó¥¹¤È´Ø·¸¤¹¤ëÃͤò´Þ¤àñ½ã¤Ê¥Æ¥­¥¹¥ÈÍ×ÁÇ¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... - -http://www.google.com - + + http://www.google.com + ... + +\end{verbatim} \end{screen} @@ -517,55 +533,50 @@ \<folder\> Í×ÁǤϡ¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥Õ¥©¥ë¥À¤È´ØÏ¢¤¹¤ë¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ëñ½ã¤ÊÆþ¤ìʪ¤Ç¤¹¡£¤³¤ÎÍ×ÁǤϡ¢´ØÏ¢¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î folder.metadata ¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¤Þ¤¹¡£¥Õ¥©¥ë¥À¤ÎÍ×ÁÇ¤Ë¤Ï 2 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +hidden & ¥Õ¥©¥ë¥À¤¬¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤ä¾¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥óÍѤÎÍ×ÁǤˡ¢É½¼¨¤µ¤ì¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¿¿µ¶ÃͤΰÀ­¡£\\ +\hline +version & °ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - - -hidden -¥Õ¥©¥ë¥À¤¬¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î¥á¥Ë¥å¡¼¤ä¾¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥óÍѤÎÍ×ÁǤˡ¢É½¼¨¤µ¤ì¤ë¤«¤É¤¦¤«¤ò¼¨¤¹¿¿µ¶ÃͤΰÀ­¡£ - - -version -°ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - \<folder\> Í×ÁǤÏ¿¤¯¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ -Í×ÁÇ -ÀâÌÀ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +title? & ¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤ò´Þ¤àñ½ã¤ÊÍ×ÁÇ¡£¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤Ï¡¢¼«¿È¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë̾¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¥Õ¥©¥ë¥ÀÍ×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£\\ +\hline +short-title? & ¥Õ¥©¥ë¥À¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤à¾Êά²Äǽ¤Êñ½ãÍ×ÁÇ¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢title ¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£\\ +\hline +default-page? & ¥Õ¥©¥ë¥À¤Î¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Þ¤¿¤Ï¥µ¥Ö¥Õ¥©¥ë¥À¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Ï¡¢¥Õ¥©¥ë¥À¤¬Ä¾Àܥݡ¼¥¿¥ë¤«¤é»²¾È¤µ¤ì¤ë¤È¤­¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥©¥ë¥ÀÆâ¤Î¤É¤Î¤è¤¦¤Ê¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ò (¿Æ¥Õ¥©¥ë¥À¤È¤·¤Æ»È¤ï¤ì¤ë¡Ö..¡×¤â´Þ¤à) »ØÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¡Ödefault-page.psml¡×¤¬»È¤ï¤ì¤Þ¤¹¡£¤â¤· ¡Ödefault-page.psml¡×¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥©¥ë¥ÀÆâ¤ÎºÇ½é¤Î¥Ú¡¼¥¸¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ê¤Þ¤¹¡£\\ +\hline +document-order* & ¥Ú¡¼¥¸¡¢¥µ¥Ö¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¤È¤¤¤Ã¤¿¹½À®Í×ÁǤΥ½¡¼¥È¤Î½çÈÖ¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¹½À®Í×ÁǤΥƥ­¥¹¥È̾¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£Ì¾Á°¤Ë¥Þ¥Ã¥Á¤¹¤ë¹½À®Í×ÁǤϡ¢¤½¤ÎÍ×ÁǤ¬ÄêµÁ¤µ¤ì¤¿½çÈÖ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£Â¾¤Î¹½À®Í×ÁǤÏ̾Á°¤Ç¥½¡¼¥È¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¥á¥Ë¥å¡¼¤ä¾¤Î¥ê¥¹¥È¤Ç¤Ï¡¢°ìÃפ·¤¿¹½À®Í×ÁǤθå¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£Àµµ¬É½¸½¤Ë¤è¤ë°ìÃפϥµ¥Ý¡¼¥È¤·¤Þ¤»¤ó¡£\\ +\hline +metadata* & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥í¥±¡¼¥ë¸ÇÍ­¤Î¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤äû¤¤¥¿¥¤¥È¥ë¡£\\ +\hline +menu* & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢ÄɲäΡ¢¤Þ¤¿¤Ï·Ñ¾µ¤·¤¿¤â¤Î¤ò¾å½ñ¤­¤¹¤ë¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼ÄêµÁ¡£\\ +\hline +security-constraints? & ¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥Õ¥©¥ë¥ÀÍѤΥ¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Õ¥©¥ë¥À¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -title? -¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤ò´Þ¤àñ½ã¤ÊÍ×ÁÇ¡£¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤Ï¡¢¼«¿È¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë̾¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï¥Õ¥©¥ë¥ÀÍ×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£ - -short-title? -¥Õ¥©¥ë¥À¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤à¾Êά²Äǽ¤Êñ½ãÍ×ÁÇ¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢title ¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£ - - -default-page? -¥Õ¥©¥ë¥À¤Î¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Þ¤¿¤Ï¥µ¥Ö¥Õ¥©¥ë¥À¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤Ï¡¢¥Õ¥©¥ë¥À¤¬Ä¾Àܥݡ¼¥¿¥ë¤«¤é»²¾È¤µ¤ì¤ë¤È¤­¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¥Õ¥©¥ë¥ÀÆâ¤Î¤É¤Î¤è¤¦¤Ê¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ò (¿Æ¥Õ¥©¥ë¥À¤È¤·¤Æ»È¤ï¤ì¤ë¡Ö..¡×¤â´Þ¤à) »ØÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¥Ç¥Õ¥©¥ë¥È¥Ú¡¼¥¸¤¬ÀßÄꤵ¤ì¤Ê¤¤¾ì¹ç¤Ï¡¢¡Ödefault-page.psml¡×¤¬»È¤ï¤ì¤Þ¤¹¡£¤â¤· ¡Ödefault-page.psml¡×¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥©¥ë¥ÀÆâ¤ÎºÇ½é¤Î¥Ú¡¼¥¸¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ê¤Þ¤¹¡£ - - -document-order* -¥Ú¡¼¥¸¡¢¥µ¥Ö¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯¤È¤¤¤Ã¤¿¹½À®Í×ÁǤΥ½¡¼¥È¤Î½çÈÖ¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¹½À®Í×ÁǤΥƥ­¥¹¥È̾¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£Ì¾Á°¤Ë¥Þ¥Ã¥Á¤¹¤ë¹½À®Í×ÁǤϡ¢¤½¤ÎÍ×ÁǤ¬ÄêµÁ¤µ¤ì¤¿½çÈÖ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£Â¾¤Î¹½À®Í×ÁǤÏ̾Á°¤Ç¥½¡¼¥È¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¥á¥Ë¥å¡¼¤ä¾¤Î¥ê¥¹¥È¤Ç¤Ï¡¢°ìÃפ·¤¿¹½À®Í×ÁǤθå¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£Àµµ¬É½¸½¤Ë¤è¤ë°ìÃפϥµ¥Ý¡¼¥È¤·¤Þ¤»¤ó¡£ - - -metadata* -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥í¥±¡¼¥ë¸ÇÍ­¤Î¥Õ¥©¥ë¥À¤Î¥¿¥¤¥È¥ë¤äû¤¤¥¿¥¤¥È¥ë¡£ - - -menu* -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢ÄɲäΡ¢¤Þ¤¿¤Ï·Ñ¾µ¤·¤¿¤â¤Î¤ò¾å½ñ¤­¤¹¤ë¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼ÄêµÁ¡£ - - -security-constraints? -¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥Õ¥©¥ë¥ÀÍѤΥ¤¥ó¥é¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥Õ¥©¥ë¥À¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ - - Îã: ¡Ö³µÍספÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ \subsection{¥ê¥ó¥¯} @@ -573,108 +584,116 @@ \<link\> Í×ÁǤϡ¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¤Î³°Éô¤Î¥³¥ó¥Æ¥ó¥Ä¤ò»²¾È¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¥Ý¡¼¥¿¥ë¥ê¥ó¥¯¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡¢Â¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ë¥·¥ó¥×¥ë¤ÊÆþ¤ìʪ¤Ç¤¹¡£¤³¤ÎÍ×ÁǤϡ¢¿Æ¥Õ¥©¥ë¥À¤È´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¡¢Å¬Àڤʥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ë¸ºß¤¹¤ë¡Ö.link¡×¤È¤¤¤¦³ÈÄ¥»Ò¤Î¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¤Þ¤¹¡£¤³¤ÎÍ×ÁÇ¤Ë¤Ï 2 ¤Ä¤ÎÍ­¸ú¤Ê°À­¤¬¤¢¤ê¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +target & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢³°Éô¥³¥ó¥Æ¥ó¥Ä¤ò³«¤¯¤¿¤á¤ÎÂоݤȤʤë¥Õ¥ì¡¼¥à¤Î̾Á°¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤µ¤ì¤¿¥³¥ó¥Æ¥ó¥Ä¤Ï¥Ö¥é¥¦¥¶¤Ç³«¤¤¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¤ÈÃÖ¤­´¹¤ï¤ê¤Þ¤¹¡£\\ +\hline +version & °ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ -target -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢³°Éô¥³¥ó¥Æ¥ó¥Ä¤ò³«¤¯¤¿¤á¤ÎÂоݤȤʤë¥Õ¥ì¡¼¥à¤Î̾Á°¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤µ¤ì¤¿¥³¥ó¥Æ¥ó¥Ä¤Ï¥Ö¥é¥¦¥¶¤Ç³«¤¤¤Æ¤¤¤ë¥Ý¡¼¥¿¥ë¤ÈÃÖ¤­´¹¤ï¤ê¤Þ¤¹¡£ - - -version -°ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - - \<link\> Í×ÁǤÏ¿¿ô¤Î¾¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +title? & ¥Ç¥Õ¥©¥ë¥È¤Î¥ê¥ó¥¯¥¿¥¤¥È¥ëÍѤΥƥ­¥¹¥È¤ò´Þ¤à¥·¥ó¥×¥ë¤ÊÍ×ÁÇ¡£¥ê¥ó¥¯¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·¥á¥Ë¥å¡¼¥Æ¥­¥¹¥ÈÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï link Í×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£\\ +\hline +short-title? & ¥ê¥ó¥¯¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£\\ +\hline +url & ¥³¥ó¥Æ¥ó¥Ä¤Î URL ¤Î¤¿¤á¤Îɬ¿Ü¤ÎÍ×ÁÇ¡£¤³¤ÎÍ×ÁǤΥƥ­¥¹¥È¤Ï¡¢»ØÄꤵ¤ì¤¿¥Ö¥é¥¦¥¶¤ÎÂоݥե졼¥à¤ò¥Ê¥Ó¥²¡¼¥È¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£\\ +\hline +metadata* & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥í¥±¡¼¥ë¸ÇÍ­¤Î¥ê¥ó¥¯¤Î¥¿¥¤¥È¥ë¤äû¤¤¥¿¥¤¥È¥ë¡£\\ +\hline +security-constraints? & ¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥ê¥ó¥¯¤Î¤¿¤á¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - -title? -¥Ç¥Õ¥©¥ë¥È¤Î¥ê¥ó¥¯¥¿¥¤¥È¥ëÍѤΥƥ­¥¹¥È¤ò´Þ¤à¥·¥ó¥×¥ë¤ÊÍ×ÁÇ¡£¥ê¥ó¥¯¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤ÀâÌÀ¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤â¤·¥á¥Ë¥å¡¼¥Æ¥­¥¹¥ÈÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢PAL¥Ý¡¼¥¿¥ë¤Ï link Í×ÁǤò´Þ¤à¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥¤¥È¥ë¤ò·è¤á¤è¤¦¤È»î¤ß¤Þ¤¹¡£ - - -short-title? -¥ê¥ó¥¯¤Î¥Ç¥Õ¥©¥ë¥È¤Îû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤ò´Þ¤àñ½ã¤Ç¾Êά²Äǽ¤ÊÍ×ÁÇ¡£¤â¤·Ã»¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢°ìÉô¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¥á¥Ë¥å¡¼¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£ - - -url -¥³¥ó¥Æ¥ó¥Ä¤Î URL ¤Î¤¿¤á¤Îɬ¿Ü¤ÎÍ×ÁÇ¡£¤³¤ÎÍ×ÁǤΥƥ­¥¹¥È¤Ï¡¢»ØÄꤵ¤ì¤¿¥Ö¥é¥¦¥¶¤ÎÂоݥե졼¥à¤ò¥Ê¥Ó¥²¡¼¥È¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ - - -metadata* -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥í¥±¡¼¥ë¸ÇÍ­¤Î¥ê¥ó¥¯¤Î¥¿¥¤¥È¥ë¤äû¤¤¥¿¥¤¥È¥ë¡£ - - -security-constraints? -¾Êά²Äǽ¤Î»ØÄê¤Ç¤¢¤ë¡¢¥ê¥ó¥¯¤Î¤¿¤á¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¡£¤â¤·»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¡¢¥ê¥ó¥¯¤Ï¿Æ¥Õ¥©¥ë¥ÀÆâ¤ÎÍ­¸ú¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò·Ñ¾µ¤·¤Þ¤¹¡£ - - Îã: ¡Ö³µÍספÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ \subsection{ ¥°¥í¡¼¥Ð¥ë¤Ê¥Ú¡¼¥¸¤Î¥»¥­¥å¥ê¥Æ¥£} \<page-security\> Í×ÁǤϥ°¥í¡¼¥Ð¥ë¤Ê¥»¥­¥å¥ê¥Æ¥£À©¸Â¤È¡¢¤½¤ÎÄêµÁ¤òÀë¸À¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡¢Â¾¤Î PSML Í×ÁǤòÊÝ»ý¤¹¤ë¤¿¤á¤Î¥·¥ó¥×¥ë¤ÊÆþ¤ìʪ¤Ç¤¹¡£¤³¤ÎÍ×ÁÇ¤Ï page.security ¥Õ¥¡¥¤¥ë¤È¤·¤Æ¸ºß¤·¡¢¾ï¤Ë PSML ¥Õ¥¡¥¤¥ë¤Î¥·¥¹¥Æ¥à¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸ºß¤·¤Þ¤¹¡£page-security Í×ÁǤÎÍ­¸ú¤Ê°À­¤Ï 1 ¤Ä¤À¤±Â¸ºß¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +version & °ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - -version -°ìÈÌŪ¤ÊÍÑÅӤΥС¼¥¸¥ç¥ó¥È¥é¥Ã¥­¥ó¥°¤Î°À­¡£¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - - \<page-security\> Í×ÁÇ¤Ï PSML Í×ÁǤ˴ØÏ¢¤¹¤ë 2 ¤Ä¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +security-constraints-def* & ¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Î¥³¥ì¥¯¥·¥ç¥ó¤Î̾Á°¡£¤³¤ì¤é¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ï¥Ú¡¼¥¸¡¢¥Õ¥é¥°¥á¥ó¥È¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯Æâ¤Ç¡¢¤½¤·¤ÆºÆÍøÍѤȥ»¥­¥å¥ê¥Æ¥£¤Î¥á¥ó¥Æ¥Ê¥ó¥¹¤òÍưפˤ¹¤ë¤¿¤á¤Ë¡¢¤³¤ÎÍ×ÁÇÆâ¤Ç»²¾È¤µ¤ì¤Þ¤¹¡£\\ +\hline +global-security-constraints-ref* & ¥µ¥¤¥ÈÆâ¤ÎÁ´¤Æ¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤òŬÍѤ¹¤ë¤¿¤á¤Î¡¢¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¥»¥­¥å¥ê¥Æ¥£À©¸Â»²¾È¡£¤½¤ì¤¾¤ì¤Î¥·¥ó¥×¥ë¤ÊÍ×ÁǤΥƥ­¥¹¥È¤Ï¡¢¤³¤Î¥¨¥ì¥á¥ó¥ÈÆâ¤Î¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¤ò»²¾È¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - -security-constraints-def* -¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¡¢¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Î¥³¥ì¥¯¥·¥ç¥ó¤Î̾Á°¡£¤³¤ì¤é¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ï¥Ú¡¼¥¸¡¢¥Õ¥é¥°¥á¥ó¥È¡¢¥Õ¥©¥ë¥À¡¢¥ê¥ó¥¯Æâ¤Ç¡¢¤½¤·¤ÆºÆÍøÍѤȥ»¥­¥å¥ê¥Æ¥£¤Î¥á¥ó¥Æ¥Ê¥ó¥¹¤òÍưפˤ¹¤ë¤¿¤á¤Ë¡¢¤³¤ÎÍ×ÁÇÆâ¤Ç»²¾È¤µ¤ì¤Þ¤¹¡£ - - -global-security-constraints-ref* -¥µ¥¤¥ÈÆâ¤ÎÁ´¤Æ¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤òŬÍѤ¹¤ë¤¿¤á¤Î¡¢¾Êά²Äǽ¤ÎÄêµÁ¤Ç¤¢¤ë¥»¥­¥å¥ê¥Æ¥£À©¸Â»²¾È¡£¤½¤ì¤¾¤ì¤Î¥·¥ó¥×¥ë¤ÊÍ×ÁǤΥƥ­¥¹¥È¤Ï¡¢¤³¤Î¥¨¥ì¥á¥ó¥ÈÆâ¤Î¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤Î¥»¥­¥å¥ê¥Æ¥£À©¸Â¤ÎÄêµÁ¤ò»²¾È¤·¤Þ¤¹¡£ - - Îã: ¡Ö³µÍספÎÎã¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ \subsection{ PSML ¥¿¥¤¥È¥ë¤È¥á¥¿¥Ç¡¼¥¿} ¥Ú¡¼¥¸, ¥Õ¥©¥ë¥À, ¥ê¥ó¥¯¤Î \<metadata\> Í×ÁÇ¤Ï¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£¤³¤ì¤é¤ÎÍ×ÁǤϲ¿Å٤Ǥ⡢´Þ¤Þ¤ì¤ë PSML Í×ÁÇÆâ¤Çɽ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÃͤ¬ 1 ¤Ä¤Î¥í¥±¡¼¥ë¤Ë¤¿¤¤¤·¤Æ»ØÄꤷ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£PSML XML ʸ½ñ¤Ï¡¢ÉáÄ̤Ϲ­ÈϰϤΥ­¥ã¥é¥¯¥¿¥»¥Ã¥È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¢UTF-8 ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÇÀë¸À¤µ¤ì¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +name & ¥á¥¿¥Ç¡¼¥¿¥Æ¥­¥¹¥È¤Î̾Á°¡£¤³¤Î̾Á°¤Ï¡¢¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¥Æ¥­¥¹¥È¤ò»ØÄꤹ¤ë¤¿¤á¤Î¡¢'title' ¤È 'short-title' ¤Î¤É¤Á¤é¤«¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£\\ +\hline +xml:lang & ¥á¥¿¥Ç¡¼¥¿¥Æ¥­¥¹¥È¤Î¤¿¤á¤Î¥í¥±¡¼¥ë¸À¸ì¤Þ¤¿¤Ï¸À¸ì¡¿¹ñ¥»¥ì¥¯¥¿¡£É¸½à¤Î Java ¥í¥±¡¼¥ë̾¤¬´üÂÔ¤µ¤ì¤Þ¤¹ (ISO-639 ¤È ISO-3166)¡£Í­¸ú¤ÊÃͤȤ·¤Æ 'en' ¤ä 'en\_US' ¤ò´Þ¤ß¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} - -°À­ -ÀâÌÀ - -name -¥á¥¿¥Ç¡¼¥¿¥Æ¥­¥¹¥È¤Î̾Á°¡£¤³¤Î̾Á°¤Ï¡¢¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¥Æ¥­¥¹¥È¤ò»ØÄꤹ¤ë¤¿¤á¤Î¡¢'title' ¤È 'short-title' ¤Î¤É¤Á¤é¤«¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ - - -xml:lang -¥á¥¿¥Ç¡¼¥¿¥Æ¥­¥¹¥È¤Î¤¿¤á¤Î¥í¥±¡¼¥ë¸À¸ì¤Þ¤¿¤Ï¸À¸ì¡¿¹ñ¥»¥ì¥¯¥¿¡£É¸½à¤Î Java ¥í¥±¡¼¥ë̾¤¬´üÂÔ¤µ¤ì¤Þ¤¹ (ISO-639 ¤È ISO-3166)¡£Í­¸ú¤ÊÃͤȤ·¤Æ 'en' ¤ä 'en\_US' ¤ò´Þ¤ß¤Þ¤¹¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... -Ma Premiere Page de PSML -¢ÂBienvenido a PAL¥Ý¡¼¥¿¥ë! -K«Ósz«Ónti a PAL¥Ý¡¼¥¿¥ë! + Ma Premiere Page de PSML + ½áŽÀBienvenido a PAL¥Ý¡¼¥¿¥ë! + K½ærsz½ærnti a PAL¥Ý¡¼¥¿¥ë! ... + +\end{verbatim} \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/menu.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -35,153 +35,173 @@ ¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤Ã¤Æ¡¢ÆâÉôŪ¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤¿¶¦Ä̤Υá¥Ë¥å¡¼ÄêµÁ¤¬Â¸ºß¤·¡¢¥µ¥¤¥È¤Î¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤Î PSML Í×ÁǤËÌÀ¼¨Åª¤Ë¤ÏÄêµÁ¤ÎɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£ -pages: ¥Ý¡¼¥¿¥ë¾å¤Î¥Ú¡¼¥¸¥¿¥Ö¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢ÁêÂÐŪ¤Ê¥Ú¡¼¥¸¥á¥Ë¥å¡¼¡£bredcrumbs: ¥Ú¡¼¥¸¥¿¥Ö°Ê²¼¤Ë¥ê¥ó¥¯¤ÎÍúÎò¤òÄ󶡤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¥Ú¡¼¥¸¤Ø¤Î¥Ñ¥¹¡£navigations: ¥Ý¡¼¥¿¥ë¤Î²£¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ñ¥Í¥ë¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢ÁêÂÐ¥µ¥Ö¥Õ¥©¥ë¥À¤È¥ë¡¼¥È¥ì¥Ù¥ë¤Î¥ê¥ó¥¯¥á¥Ë¥å¡¼back: ¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¥¿¥Ö¾å¤Î¡¢°ÊÁ°¤Î¥Ú¡¼¥¸¤Ø 1 ¤ÄÌá¤ë¤¿¤á¤Î¥ê¥ó¥¯¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¿Æ¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼¡£ -¥á¥Ë¥å¡¼ÄêµÁÆâ¤Ç¹½ÃÛ¤µ¤ì¤ë¤³¤ì¤é¤Ï¡¢´üÂԤɤª¤ê¡¢¥µ¥¤¥È¤Î PSML Æâ¤ÇƱ¤¸Ì¾Á°¤ÇÀë¸À¤µ¤ì¤ë¥á¥Ë¥å¡¼¤Ë¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ +\begin{itemize} -\subsection{¥á¥Ë¥å¡¼¤ÎÄêµÁ} -\<menu\> Í×ÁǤϡ¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤â¤·¤¯¤Ï¾¤Î¥á¥Ë¥å¡¼Æâ¤Î³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¥á¥Ë¥å¡¼¤òÄêµÁ¤·¤Þ¤¹¡£menu Í×ÁǤˤϡ¢¤¿¤¯¤µ¤ó¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ +\item pages: ¥Ý¡¼¥¿¥ë¾å¤Î¥Ú¡¼¥¸¥¿¥Ö¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢ÁêÂÐŪ¤Ê¥Ú¡¼¥¸¥á¥Ë¥å¡¼¡£ +\item bredcrumbs: ¥Ú¡¼¥¸¥¿¥Ö°Ê²¼¤Ë¥ê¥ó¥¯¤ÎÍúÎò¤òÄ󶡤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¥Ú¡¼¥¸¤Ø¤Î¥Ñ¥¹¡£ +\item navigations: ¥Ý¡¼¥¿¥ë¤Î²£¤Î¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ñ¥Í¥ë¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢ÁêÂÐ¥µ¥Ö¥Õ¥©¥ë¥À¤È¥ë¡¼¥È¥ì¥Ù¥ë¤Î¥ê¥ó¥¯¥á¥Ë¥å¡¼ +\item back: ¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸¥¿¥Ö¾å¤Î¡¢°ÊÁ°¤Î¥Ú¡¼¥¸¤Ø 1 ¤ÄÌá¤ë¤¿¤á¤Î¥ê¥ó¥¯¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢¿Æ¥Õ¥©¥ë¥À¤Î¥á¥Ë¥å¡¼¡£ +\end{itemize} +¥á¥Ë¥å¡¼ÄêµÁÆâ¤Ç¹½ÃÛ¤µ¤ì¤ë¤³¤ì¤é¤Ï¡¢´üÂԤɤª¤ê¡¢¥µ¥¤¥È¤Î PSML Æâ¤ÇƱ¤¸Ì¾Á°¤ÇÀë¸À¤µ¤ì¤ë¥á¥Ë¥å¡¼¤Ë¾å½ñ¤­¤µ¤ì¤Þ¤¹¡£ -°À­ -ÀâÌÀ +\subsection{¥á¥Ë¥å¡¼¤ÎÄêµÁ} -name -¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É¤ª¤è¤Ó(¤Þ¤¿¤Ï)¥á¥Ë¥å¡¼»²¾È¤«¤é¤Î¸¡º÷¤Î¤¿¤á¤Î¥á¥Ë¥å¡¼Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥Î¡¼¥É¤Çɬ¿Ü¤Ç¡¢³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤Ç¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ +\<menu\> Í×ÁǤϡ¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤â¤·¤¯¤Ï¾¤Î¥á¥Ë¥å¡¼Æâ¤Î³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤Ë¤è¤Ã¤Æ»È¤ï¤ì¤ë¥á¥Ë¥å¡¼¤òÄêµÁ¤·¤Þ¤¹¡£menu Í×ÁǤˤϡ¢¤¿¤¯¤µ¤ó¤ÎÍ­¸ú¤Ê°À­¤¬Â¸ºß¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +name & ¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É¤ª¤è¤Ó(¤Þ¤¿¤Ï)¥á¥Ë¥å¡¼»²¾È¤«¤é¤Î¸¡º÷¤Î¤¿¤á¤Î¥á¥Ë¥å¡¼Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥È¥Ã¥×¥ì¥Ù¥ë¤Î¥Î¡¼¥É¤Çɬ¿Ü¤Ç¡¢³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤Ç¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£\\ +\hline +options & ¥á¥Ë¥å¡¼¤Î»ØÄê¤Ë¡¢¥É¥­¥å¥á¥ó¥È¤È¥Õ¥©¥ë¥À¤Î¿¼¤¤³¬Áؤ¬Â¸ºß¤¹¤ë¾ì¹ç¡¢¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥ë¡¼¥È¥É¥­¥å¥á¥ó¥È¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¡¢¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ê¥ó¥¯¤Î»ØÄê¤ò¹Ô¤¦¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤âÄêµÁ¤·¤Þ¤¹¡£¥«¥ó¥Þ¤Ç¶èÀڤ俥ѥ¹¤ª¤è¤Ó (¤Þ¤¿¤Ï) Àµµ¬É½¸½¤Î¥Ñ¥¿¡¼¥ó¤ò¡¢Ê£¿ô¤Î¥ª¥×¥·¥ç¥ó¥Ñ¥¹¤È¤·¤Æ»ØÄê²Äǽ¤Ç¤¹¡£ÁêÂХѥ¹¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£¡Ö~¡×¤ä¡Ö@¡×¤È¤¤¤Ã¤¿ÆÃÊ̤ʥѥ¿¡¼¥ó¤ò¡¢¸½ºß¤Î¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline +depth & ¥ª¥×¥·¥ç¥ó¥Õ¥©¥ë¥À¤«¤é¤Î¥É¥­¥å¥á¥ó¥È¤Î¿¼¤µ¤ò»ØÄꤷ¤Þ¤¹ (0 °Ê²¼¤Î¿¼¤µ¤Î»ØÄê¤Ï̵¸ÂÂç¤òɽ¤¹)¡£¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢¤½¤ì¤¾¤ì¤Î²Ä»ë¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤«¡¢¥µ¥¤¥È¤Ø¤Î¥ê¥ó¥¯¤ò¹Ô¤¦¤¿¤á¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ï¤³¤ÎÀßÄê¤Ë¤è¤Ã¤Æ³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£\\ +\hline +paths & ¥ë¡¼¥È¥Õ¥©¥ë¥À¤«¤é»ØÄꤵ¤ì¤¿ÁªÂò»è¤Ø¤Î½ç½øÉÕ¤­¤Î¥Ñ¥¹¥ª¥×¥·¥ç¥ó¤ò´Þ¤à¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶ÃÍ¡£¤³¤ÎÀßÄê¤Ï¡ÖÍúÎò¡×¤â¤·¤¯¤Ï¡Ö¥Ñ¥ó¤¯¤º¥ê¥¹¥È¡×¥á¥Ë¥å¡¼¤òÀ¸À®¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£\\ +\hline +regexp & ÁªÂò»è¤ÎÃͤȤ·¤Æ¥ï¥¤¥ë¥É¥«¡¼¥É¤äÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶Â°À­¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÀµµ¬É½¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£\\ +\hline +profile & ¥ª¥×¥·¥ç¥ó¤ÎÃͤòɾ²Á¤¹¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥ª¥×¥·¥ç¥ó¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÎÃͤâÀßÄꤷ¤Þ¤¹¡£¡Ö*¡×¤Î»ØÄê¤Ï¡¢Á´¤Æ¤Î¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¿Æ¥á¥Ë¥å¡¼¤¬ÁªÂò¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë̾¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline +order & ¥Þ¥Ã¥Á¤¹¤ëÁªÂò»è¤Î½ç½ø¤òȽÃǤ¹¤ë¤¿¤á¤Î¡¢¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤ÎÀµµ¬É½¸½¤Î¥ê¥¹¥È¡¢¤â¤·¤¯¤ÏÀµµ¬É½¸½¤Î¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤ÎÃÍ¡£¤³¤Î°À­¤Ï¡¢¤É¤ÎÁªÂò»è¤ÎÍ×ÁǤËÂФ·¤Æ¤â¥Ç¥Õ¥©¥ë¥È¤ÎÁªÂò»è¤ÎÃͤȤ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÁªÂò»è¤Î»Ò¶¡¤Ø¤Î¥Þ¥Ã¥Á¤òºÆÅÙ½ç½ø¤Å¤±¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢Ê£¿ô¤ÎÁªÂò»è¤Ï¡¢´Þ¤Þ¤ì¤ë¥Õ¥©¥ë¥À¥É¥­¥å¥á¥ó¥È¤Î¤â¤Î¤È¤·¤ÆÊÖ¤µ¤ì¤ë½ç½ø¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ÁªÂò»è¤Î¥Ñ¥¹¤Ï¡¢½ç½ø¤Å¤±¤é¤ì¤¿¤â¤Î¤Î¸å¤ËÄɲ䵤ì¤Þ¤¹¡£\\ +\hline +skin & ¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¾Êά²Äǽ¤Ê¥Ç¥³¥ì¡¼¥¿¡£¤³¤Î°À­¤Ï¡¢ÁªÂò»è¤ä³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥¹¥­¥ó¤ÎÃͤȤ·¤Æ¤â»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -options -¥á¥Ë¥å¡¼¤Î»ØÄê¤Ë¡¢¥É¥­¥å¥á¥ó¥È¤È¥Õ¥©¥ë¥À¤Î¿¼¤¤³¬Áؤ¬Â¸ºß¤¹¤ë¾ì¹ç¡¢¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥ë¡¼¥È¥É¥­¥å¥á¥ó¥È¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥Ú¡¼¥¸¡¢¥Õ¥©¥ë¥À¡¢¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ê¥ó¥¯¤Î»ØÄê¤ò¹Ô¤¦¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤âÄêµÁ¤·¤Þ¤¹¡£¥«¥ó¥Þ¤Ç¶èÀڤ俥ѥ¹¤ª¤è¤Ó (¤Þ¤¿¤Ï) Àµµ¬É½¸½¤Î¥Ñ¥¿¡¼¥ó¤ò¡¢Ê£¿ô¤Î¥ª¥×¥·¥ç¥ó¥Ñ¥¹¤È¤·¤Æ»ØÄê²Äǽ¤Ç¤¹¡£ÁêÂХѥ¹¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£¡Ö~¡×¤ä¡Ö@¡×¤È¤¤¤Ã¤¿ÆÃÊ̤ʥѥ¿¡¼¥ó¤ò¡¢¸½ºß¤Î¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -depth -¥ª¥×¥·¥ç¥ó¥Õ¥©¥ë¥À¤«¤é¤Î¥É¥­¥å¥á¥ó¥È¤Î¿¼¤µ¤ò»ØÄꤷ¤Þ¤¹ (0 °Ê²¼¤Î¿¼¤µ¤Î»ØÄê¤Ï̵¸ÂÂç¤òɽ¤¹)¡£¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢¤½¤ì¤¾¤ì¤Î²Ä»ë¥Ú¡¼¥¸¤òɽ¼¨¤¹¤ë¤«¡¢¥µ¥¤¥È¤Ø¤Î¥ê¥ó¥¯¤ò¹Ô¤¦¤¿¤á¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ï¤³¤ÎÀßÄê¤Ë¤è¤Ã¤Æ³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ - - -paths -¥ë¡¼¥È¥Õ¥©¥ë¥À¤«¤é»ØÄꤵ¤ì¤¿ÁªÂò»è¤Ø¤Î½ç½øÉÕ¤­¤Î¥Ñ¥¹¥ª¥×¥·¥ç¥ó¤ò´Þ¤à¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶ÃÍ¡£¤³¤ÎÀßÄê¤Ï¡ÖÍúÎò¡×¤â¤·¤¯¤Ï¡Ö¥Ñ¥ó¤¯¤º¥ê¥¹¥È¡×¥á¥Ë¥å¡¼¤òÀ¸À®¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£ - - -regexp -ÁªÂò»è¤ÎÃͤȤ·¤Æ¥ï¥¤¥ë¥É¥«¡¼¥É¤äÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶Â°À­¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÀµµ¬É½¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ - - -profile -¥ª¥×¥·¥ç¥ó¤ÎÃͤòɾ²Á¤¹¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢¥ª¥×¥·¥ç¥ó¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÎÃͤâÀßÄꤷ¤Þ¤¹¡£¡Ö*¡×¤Î»ØÄê¤Ï¡¢Á´¤Æ¤Î¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¿Æ¥á¥Ë¥å¡¼¤¬ÁªÂò¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë̾¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ - - -order -¥Þ¥Ã¥Á¤¹¤ëÁªÂò»è¤Î½ç½ø¤òȽÃǤ¹¤ë¤¿¤á¤Î¡¢¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤ÎÀµµ¬É½¸½¤Î¥ê¥¹¥È¡¢¤â¤·¤¯¤ÏÀµµ¬É½¸½¤Î¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤ÎÃÍ¡£¤³¤Î°À­¤Ï¡¢¤É¤ÎÁªÂò»è¤ÎÍ×ÁǤËÂФ·¤Æ¤â¥Ç¥Õ¥©¥ë¥È¤ÎÁªÂò»è¤ÎÃͤȤ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÁªÂò»è¤Î»Ò¶¡¤Ø¤Î¥Þ¥Ã¥Á¤òºÆÅÙ½ç½ø¤Å¤±¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢Ê£¿ô¤ÎÁªÂò»è¤Ï¡¢´Þ¤Þ¤ì¤ë¥Õ¥©¥ë¥À¥É¥­¥å¥á¥ó¥È¤Î¤â¤Î¤È¤·¤ÆÊÖ¤µ¤ì¤ë½ç½ø¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ÁªÂò»è¤Î¥Ñ¥¹¤Ï¡¢½ç½ø¤Å¤±¤é¤ì¤¿¤â¤Î¤Î¸å¤ËÄɲ䵤ì¤Þ¤¹¡£ - - -skin -¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¾Êά²Äǽ¤Ê¥Ç¥³¥ì¡¼¥¿¡£¤³¤Î°À­¤Ï¡¢ÁªÂò»è¤ä³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥¹¥­¥ó¤ÎÃͤȤ·¤Æ¤â»È¤ï¤ì¤Þ¤¹¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - - \<menu\> Í×ÁǤϡ¢Â¿¿ô¤Î¾¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£¥¿¥¤¥È¥ë¤È¥á¥¿¥Ç¡¼¥¿Í×ÁǤò½ü¤¤¤Æ¡¢¤³¤ì¤é¤ÎÍ×ÁǤÎÁêÂÐŪ¤Ê½ç½ø¤Ï¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬¤½¤ì¤é¤òÄ󼨤¹¤ë½ç½ø¤ò·èÄꤷ¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +title? & ¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥¿¥¤¥È¥ë¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥á¥Ë¥å¡¼¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤µ­½Ò¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¤â¤·¥á¥Ë¥å¡¼ÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥á¥Ë¥å¡¼¤Î̾Á°¤¬»È¤ï¤ì¤Þ¤¹¡£\\ +\hline +short-title? & ¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Êû¤¤¥¿¥¤¥È¥ë¡£Ã»¤¤¥¿¥¤¥È¥ë¤Ï¡¢¤â¤·ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥á¥Ë¥å¡¼¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£\\ +\hline +metadata* & ÄÉ²Ã¤Î¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¤ò»ØÄꤷ¤Þ¤¹(¾Êά²Ä)¡£\\ +\hline +options* & ¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤϡ¢¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î¤¿¤á¤Î¥³¥ó¥Æ¥ó¥ÄÍ×ÁǤò»ØÄꤷ¤Þ¤¹¡£\\ +\hline +separator* & ¤³¤Î¥á¥Ë¥å¡¼ÄêµÁÆâ¤Ç¡¢¥¤¥ó¥é¥¤¥ó¤Ç´Þ¤Þ¤ì¤ë¥Æ¥­¥¹¥È¹Ô¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡¢½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁÇ¡£\\ +\hline +menu* & ¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Ë´Þ¤Þ¤ì¤ë¡¢³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢Â¾¤Î½ç½øÉÕ¤­¥á¥Ë¥å¡¼Í×ÁÇ¡£\\ +\hline +include* & ¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Ë´Þ¤á¤ë¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¡¢¤â¤·¤¯¤ÏÁªÂò»è¤ò»ØÄꤷ¤Þ¤¹¡£´Þ¤á¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤΥƥ­¥¹¥È¤Ç¤¹¡£\\ +\hline +exclude* & ¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤«¤é½ü³°¤¹¤ë¡¢Â¾¤Î¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ò»ØÄꤷ¤Þ¤¹¡£½ü³°¤¹¤ë¤¿¤á¤ÎÍ×ÁǤ˴ޤޤì¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¡¢¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤΥƥ­¥¹¥È¤Ç¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - -title? -¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥¿¥¤¥È¥ë¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥á¥Ë¥å¡¼¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤µ­½Ò¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¤â¤·¥á¥Ë¥å¡¼ÍѤÎû¤¤¥¿¥¤¥È¥ë¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥á¥Ë¥å¡¼¤Î̾Á°¤¬»È¤ï¤ì¤Þ¤¹¡£ - - -short-title? -¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Êû¤¤¥¿¥¤¥È¥ë¡£Ã»¤¤¥¿¥¤¥È¥ë¤Ï¡¢¤â¤·ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥á¥Ë¥å¡¼¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢¥¿¥¤¥È¥ë¤Î¥Æ¥­¥¹¥È¤¬»È¤ï¤ì¤Þ¤¹¡£ - - -metadata* -ÄÉ²Ã¤Î¥í¥±¡¼¥ëÆÃÍ­¤Î¥¿¥¤¥È¥ë¤Èû¤¤¥¿¥¤¥È¥ë¤ò»ØÄꤷ¤Þ¤¹(¾Êά²Ä)¡£ - - -options* -¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤϡ¢¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î¤¿¤á¤Î¥³¥ó¥Æ¥ó¥ÄÍ×ÁǤò»ØÄꤷ¤Þ¤¹¡£ - - -separator* -¤³¤Î¥á¥Ë¥å¡¼ÄêµÁÆâ¤Ç¡¢¥¤¥ó¥é¥¤¥ó¤Ç´Þ¤Þ¤ì¤ë¥Æ¥­¥¹¥È¹Ô¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤ï¤ì¤ë¡¢½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁÇ¡£ - - -menu* -¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Ë´Þ¤Þ¤ì¤ë¡¢³¬Áز½¤µ¤ì¤¿¥á¥Ë¥å¡¼¤òÄêµÁ¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¡¢Â¾¤Î½ç½øÉÕ¤­¥á¥Ë¥å¡¼Í×ÁÇ¡£ - - -include* -¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Ë´Þ¤á¤ë¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¡¢¤â¤·¤¯¤ÏÁªÂò»è¤ò»ØÄꤷ¤Þ¤¹¡£´Þ¤á¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤΥƥ­¥¹¥È¤Ç¤¹¡£ - - -exclude* -¤³¤Î¥á¥Ë¥å¡¼ÄêµÁ¤«¤é½ü³°¤¹¤ë¡¢Â¾¤Î¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ò»ØÄꤷ¤Þ¤¹¡£½ü³°¤¹¤ë¤¿¤á¤ÎÍ×ÁǤ˴ޤޤì¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¡¢¤³¤Î½ç½øÉÕ¤­¤Î¥á¥Ë¥å¡¼Í×ÁǤΥƥ­¥¹¥È¤Ç¤¹¡£ - - Îã: \begin{screen} -/some-top-page.psml,/custom/some-other-page.psml +\begin{verbatim} + + /some-top-page.psml,/custom/some-other-page.psml + +\end{verbatim} \end{screen} \begin{screen} +\begin{verbatim} + +\end{verbatim} + \end{screen} \begin{screen} +\begin{verbatim} + +\end{verbatim} + \end{screen} \begin{screen} +\begin{verbatim} + + Top Menu + Haut + /group-pages/* + + + -- Top Pages -- + Top Pages + + /* + + Custom Pages + + /custom-folder/ + + top-role-pages + More Top Pages + top-role-pages + +\end{verbatim} -Haut -/group-pages/* - --- Top Pages -- - - -/* - - - -/custom-folder/ - -top-role-pages -More Top Pages -top-role-pages - - \end{screen} ¥Ç¥Õ¥©¥ë¥È¤Î¶¦ÄÌ¥á¥Ë¥å¡¼Àë¸À¤Î¤¿¤á¤ÎÄêµÁ¤Ï¡¢ÆâÉôŪ¤Ë¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤Ã¤Æ¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + +\end{verbatim} \end{screen} \begin{screen} +\begin{verbatim} + +\end{verbatim} + \end{screen} \begin{screen} -Folders -./*/ -page-navigations -Additional Links -/*.link +\begin{verbatim} + + Folders + ./*/ + page-navigations + Additional Links + /*.link + +\end{verbatim} \end{screen} \begin{screen} +\begin{verbatim} + +\end{verbatim} + \end{screen} ¤³¤ì¤é¤ÎÄêµÁ¤Î¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ï¡¢ÆâÉôŪ¤ËÊÑ´¹¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ @@ -189,44 +209,41 @@ \<options\> Í×ÁǤϡ¢¥á¥Ë¥å¡¼Æâ¤Ëñ°ì¤Þ¤¿¤ÏÊ£¿ô¤ÎÁªÂò»è¤òÄêµÁ¤·¤Þ¤¹¡£¤³¤Îñ½ã¤ÊÍ×ÁǤÎʸ»úÎó¤Ï¡¢¥Ú¡¼¥¸¡¢¤â¤·¤¯¤Ï¥Õ¥©¥ë¥À¡¢¤â¤·¤¯¤Ï¥ê¥ó¥¯¤Î¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤òºî¤ë¥É¥­¥å¥á¥ó¥È¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Þ¤¹¡£Ê£¿ô¤ÎÁªÂò»è¤Î¥Ñ¥¹¤ò¡¢¥Ñ¥¹¤ª¤è¤Ó (¤â¤·¤¯¤Ï) Àµµ¬É½¸½¥Ñ¥¿¡¼¥ó¤ò¥«¥ó¥Þ¤Ç¶èÀڤ俥ꥹ¥È¤È¤·¤Æ»ØÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ÁêÂХѥ¹¤Ï¡¢¸½ºß¤Î¥Ú¡¼¥¸¤«¤é¤ÎÁêÂХѥ¹¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹¡£¡Ö~¡×¤ä¡Ö@¡×¤È¤¤¤Ã¤¿ÆÃÊ̤ʥѥ¿¡¼¥ó¤ò¡¢¸½ºß¤Î¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¤¿¤á¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ÎÍ×ÁǤϡ¢¥á¥Ë¥å¡¼Í×ÁǤȤ¿¤¯¤µ¤ó¤Î°À­¤ò¶¦Í­¤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +depth & ÁªÂò»è¤Î¥Õ¥©¥ë¥À¤«¤é¤Î¥É¥­¥å¥á¥ó¥È¤Î¿¼¤µ¤ò»ØÄꤷ¤Þ¤¹ (0 °Ê²¼¤Î¿¼¤µ¤Ï̵¸ÂÂç¤òɽ¤·¤Þ¤¹)¡£¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢¥µ¥¤¥È¤Ø¤Î¤½¤ì¤¾¤ì¤Î²Ä»ë¥Ú¡¼¥¸¤Þ¤¿¤Ï¥ê¥ó¥¯¤òɽ¼¨¤¹¤ë¤è¤¦¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ï¡¢¤³¤ÎÀßÄê¤Ë¤è¤Ã¤Æ³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£\\ +\hline +paths & ¥ë¡¼¥È¥Õ¥©¥ë¥À¤«¤é»ØÄꤵ¤ì¤¿ÁªÂò»è¤Ø¤Î½ç½øÉÕ¤­¤Î¥Ñ¥¹¤ÎÁªÂò»è¤ò´Þ¤à¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶ÃÍ¡£¤³¤ÎÀßÄê¤Ï¡ÖÍúÎò¡×¤â¤·¤¯¤Ï¡Ö¥Ñ¥ó¤¯¤º¥ê¥¹¥È¡×¥á¥Ë¥å¡¼¤òÀ¸À®¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£\\ +\hline +regexp & ÁªÂò»è¤ÎÃͤȤ·¤Æ¥ï¥¤¥ë¥É¥«¡¼¥É¤äÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶Â°À­¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÀµµ¬É½¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£\\ +\hline +profile & ÁªÂò»è¤ÎÃͤòɾ²Á¤¹¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢ÁªÂò»è¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÎÃͤâÀßÄꤷ¤Þ¤¹¡£¡Ö*¡×¤Î»ØÄê¤Ï¡¢Á´¤Æ¤Î¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¿Æ¥á¥Ë¥å¡¼¤¬ÁªÂò¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë̾¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline +order & ¥Þ¥Ã¥Á¤¹¤ëÁªÂò»è¤Î½ç½ø¤òȽÃǤ¹¤ë¤¿¤á¤Î¡¢¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤ÎÀµµ¬É½¸½¤Î¥ê¥¹¥È¡¢¤â¤·¤¯¤ÏÀµµ¬É½¸½¤Î¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤ÎÃÍ¡£¤³¤Î°À­¤Ï¡¢¤É¤ÎÁªÂò»è¤ÎÍ×ÁǤËÂФ·¤Æ¤â¥Ç¥Õ¥©¥ë¥È¤ÎÁªÂò»è¤ÎÃͤȤ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÁªÂò»è¤Î»Ò¶¡¤Ø¤Î¥Þ¥Ã¥Á¤òºÆÅÙ½ç½ø¤Å¤±¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢Ê£¿ô¤ÎÁªÂò»è¤Ï¡¢´Þ¤Þ¤ì¤ë¥Õ¥©¥ë¥À¥É¥­¥å¥á¥ó¥È¤Î½çÈÖ¤ÇÊÖ¤µ¤ì¤ë½ç½ø¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ÁªÂò»è¤Î¥Ñ¥¹¤Ï¡¢½ç½ø¤Å¤±¤é¤ì¤¿¤â¤Î¤Î¸å¤ËÄɲ䵤ì¤Þ¤¹¡£\\ +\hline +skin & ¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¥Ç¥³¥ì¡¼¥¿(¾Êά²Ä)¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - - -depth -ÁªÂò»è¤Î¥Õ¥©¥ë¥À¤«¤é¤Î¥É¥­¥å¥á¥ó¥È¤Î¿¼¤µ¤ò»ØÄꤷ¤Þ¤¹ (0 °Ê²¼¤Î¿¼¤µ¤Ï̵¸ÂÂç¤òɽ¤·¤Þ¤¹)¡£¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Ï¡¢¥µ¥¤¥È¤Ø¤Î¤½¤ì¤¾¤ì¤Î²Ä»ë¥Ú¡¼¥¸¤Þ¤¿¤Ï¥ê¥ó¥¯¤òɽ¼¨¤¹¤ë¤è¤¦¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£¥Õ¥©¥ë¥À¤Ï¡¢¤³¤ÎÀßÄê¤Ë¤è¤Ã¤Æ³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£ - - -paths -¥ë¡¼¥È¥Õ¥©¥ë¥À¤«¤é»ØÄꤵ¤ì¤¿ÁªÂò»è¤Ø¤Î½ç½øÉÕ¤­¤Î¥Ñ¥¹¤ÎÁªÂò»è¤ò´Þ¤à¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶ÃÍ¡£¤³¤ÎÀßÄê¤Ï¡ÖÍúÎò¡×¤â¤·¤¯¤Ï¡Ö¥Ñ¥ó¤¯¤º¥ê¥¹¥È¡×¥á¥Ë¥å¡¼¤òÀ¸À®¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡£ - - -regexp -ÁªÂò»è¤ÎÃͤȤ·¤Æ¥ï¥¤¥ë¥É¥«¡¼¥É¤äÀµµ¬É½¸½¤¬»È¤ï¤ì¤ë¤«¤É¤¦¤«¤ò»ØÄꤹ¤ë¿¿µ¶Â°À­¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎÀµµ¬É½¸½¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£ - - -profile -ÁªÂò»è¤ÎÃͤòɾ²Á¤¹¤ëºÝ¤Ë»È¤ï¤ì¤ë¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î°À­¤Ï¡¢ÁªÂò»è¤È³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Î¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÎÃͤâÀßÄꤷ¤Þ¤¹¡£¡Ö*¡×¤Î»ØÄê¤Ï¡¢Á´¤Æ¤Î¥×¥í¥Õ¥¡¥¤¥ë¥í¥±¡¼¥¿¤Î̾Á°¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¿Æ¥á¥Ë¥å¡¼¤¬ÁªÂò¤·¤¿¥×¥í¥Õ¥¡¥¤¥ë̾¤ò¾å½ñ¤­¤¹¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ - - -order -¥Þ¥Ã¥Á¤¹¤ëÁªÂò»è¤Î½ç½ø¤òȽÃǤ¹¤ë¤¿¤á¤Î¡¢¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤ÎÀµµ¬É½¸½¤Î¥ê¥¹¥È¡¢¤â¤·¤¯¤ÏÀµµ¬É½¸½¤Î¥É¥­¥å¥á¥ó¥È¥Ñ¥¹¤ÎÃÍ¡£¤³¤Î°À­¤Ï¡¢¤É¤ÎÁªÂò»è¤ÎÍ×ÁǤËÂФ·¤Æ¤â¥Ç¥Õ¥©¥ë¥È¤ÎÁªÂò»è¤ÎÃͤȤ·¤ÆŬÍѤµ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢Ê£¿ô¤ÎÁªÂò»è¤Î»Ò¶¡¤Ø¤Î¥Þ¥Ã¥Á¤òºÆÅÙ½ç½ø¤Å¤±¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤â¤·»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢Ê£¿ô¤ÎÁªÂò»è¤Ï¡¢´Þ¤Þ¤ì¤ë¥Õ¥©¥ë¥À¥É¥­¥å¥á¥ó¥È¤Î½çÈÖ¤ÇÊÖ¤µ¤ì¤ë½ç½ø¤Ë´Þ¤Þ¤ì¤Þ¤¹¡£¤³¤Î°À­¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ÁªÂò»è¤Î¥Ñ¥¹¤Ï¡¢½ç½ø¤Å¤±¤é¤ì¤¿¤â¤Î¤Î¸å¤ËÄɲ䵤ì¤Þ¤¹¡£ - - -skin -¥á¥Ë¥å¡¼¤ÎÁªÂò»è¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¥Ç¥³¥ì¡¼¥¿(¾Êά²Ä)¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... - + /some-top-page.psml,/custom/some-other-page.psml,/*.link - + ... + +\end{verbatim} \end{screen} @@ -236,48 +253,55 @@ \<separator\> Í×ÁǤϡ¢¥á¥Ë¥å¡¼¤Ë´Þ¤á¤ë¥»¥Ñ¥ì¡¼¥¿¤òÄêµÁ¤·¤Þ¤¹¡£¥»¥Ñ¥ì¡¼¥¿¤Ï¡¢ÁªÂò»è¤â¤·¤¯¤Ï³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤¬¡¢¥á¥Ë¥å¡¼¤ÎÄêµÁÆâ¤Î¤³¤ÎÍ×Áǰʲ¼¤Ë¸½¤ì¤¿¾ì¹ç¤Î¤ß´Þ¤Þ¤ì¤Þ¤¹¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ï¡¢¤³¤ÎÍ×ÁÇÆâ¤Î¥Æ¥­¥¹¥È¡¢¤â¤·¤¯¤Ï¥Æ¥­¥¹¥È¥á¥Ë¥å¡¼ÄêµÁ¤ÎÍ×ÁÇÆâ¤Ç»ØÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£¥»¥Ñ¥ì¡¼¥¿Í×ÁǤ˵­½Ò²Äǽ¤Ê°À­¤Ï 1 ¤Ä¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +skin & ¥á¥Ë¥å¡¼¥»¥Ñ¥ì¡¼¥¿¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¾Êά²Äǽ¤Ê¥Ç¥³¥ì¡¼¥¿¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - -skin -¥á¥Ë¥å¡¼¥»¥Ñ¥ì¡¼¥¿¤Î¥ì¥¤¥¢¥¦¥È¤Î¥Ò¥ó¥È¤òÄêµÁ¤¹¤ë¾Êά²Äǽ¤Ê¥Ç¥³¥ì¡¼¥¿¡£¤³¤Î¥Ò¥ó¥È¤Ï¡¢¸½»þÅÀ¤Ç¤Ï PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥³¥ì¡¼¥¿¤Ç¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¡£ - - - \<separator\> Í×ÁǤϡ¢¤¿¤¯¤µ¤ó¤Î¾¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î PSML Í×ÁǤò´Þ¤ß¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +Í×ÁÇ & ÀâÌÀ\\ +\hline\hline +title? & ¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥¿¥¤¥È¥ë¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤µ­½Ò¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¤â¤·¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£\\ +\hline +text? & ¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥Æ¥­¥¹¥È¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ïɬ¿Ü¤Ç¡¢¤³¤Î°À­¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤è¤¦¤È¡¢¥»¥Ñ¥ì¡¼¥¿Í×ÁÇÆâ¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»ØÄꤵ¤ì¤è¤¦¤È¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬¥á¥Ë¥å¡¼Æâ¤ËÁÞÆþ¤¹¤ë¤¿¤á¤Î¥Æ¥­¥¹¥È¤È¤Ê¤ê¤Þ¤¹¡£\\ +\hline +metadata* & ¥í¥±¡¼¥ëÆÃÍ­¤ÎÄɲäΥ¿¥¤¥È¥ë¤È¥»¥Ñ¥ì¡¼¥¿¥Æ¥­¥¹¥È(¾Êά²Ä)¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -Í×ÁÇ -ÀâÌÀ - -title? -¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥¿¥¤¥È¥ë¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥¿¥¤¥È¥ë¤Ï¡¢¤½¤ÎŤ¤µ­½Ò¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢¤â¤·¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ë¤è¤Ã¤Æ¤Ï¥í¡¼¥ë¥ª¡¼¥Ð¡¼ÍѤΥƥ­¥¹¥È¤È¤·¤Æ»È¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ - - -text? -¥á¥Ë¥å¡¼ÍѤΥǥե©¥ë¥È¤Î¥í¥±¡¼¥ëÈó°Í¸¤Ê¥Æ¥­¥¹¥È¤ò»ØÄꤹ¤ëñ½ã¤ÊÍ×ÁÇ¡£¥»¥Ñ¥ì¡¼¥¿¤Î¥Æ¥­¥¹¥È¤Ïɬ¿Ü¤Ç¡¢¤³¤Î°À­¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤è¤¦¤È¡¢¥»¥Ñ¥ì¡¼¥¿Í×ÁÇÆâ¤Î¥Æ¥­¥¹¥È¤È¤·¤Æ»ØÄꤵ¤ì¤è¤¦¤È¡¢¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤¬¥á¥Ë¥å¡¼Æâ¤ËÁÞÆþ¤¹¤ë¤¿¤á¤Î¥Æ¥­¥¹¥È¤È¤Ê¤ê¤Þ¤¹¡£ - - -metadata* -¥í¥±¡¼¥ëÆÃÍ­¤ÎÄɲäΥ¿¥¤¥È¥ë¤È¥»¥Ñ¥ì¡¼¥¿¥Æ¥­¥¹¥È(¾Êά²Ä)¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... -------------- + ------------- ... - --- Top 10 Pages -- -Haut Pages - - + + -- Top 10 Pages -- + Haut Pages + Top 10 pages as voted by the PAL¥Ý¡¼¥¿¥ëusers! + ... + +\end{verbatim} \end{screen} @@ -286,22 +310,29 @@ \<include\> Í×ÁǤϡ¢ÁªÂò»è¤Þ¤¿¤Ï¡¢Â¾¤Î¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿ ¥á¥Ë¥å¡¼¤ò´Þ¤ß¤Þ¤¹¡£´Þ¤á¤ë¥á¥Ë¥å¡¼¤Î̾Á°¤Ï¡¢¤³¤Î¥¨¥ì¥á¥ó¥È¤Î¥Æ¥­¥¹¥ÈÃͤȤ·¤Æ»ØÄꤷ¤Þ¤¹¡£¤³¤ÎÍ×ÁǤ˴ޤá¤ë¤³¤È¤Î¤Ç¤­¤ëÍ­¸ú¤Ê°À­¤Ï 1 ¤Ä¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +°À­ & ÀâÌÀ\\ +\hline\hline +nest & »ØÄꤷ¤¿¥á¥Ë¥å¡¼¤¬¡¢³¬Áز½¤¹¤ë¤¿¤á¤Î¤â¤Î¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¿¿µ¶ÃÍ¡£¤â¤·¤³¤Î°À­¤Ë 'true' ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢´Þ¤á¤ë¥á¥Ë¥å¡¼¤Ï¥µ¥Ö¥á¥Ë¥å¡¼¤È¤·¤Æ³¬Áز½¤µ¤ì¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¤Î¤Ê¤é¡¢Á´¤Æ¤ÎÁªÂò»è¤È»ØÄꤷ¤¿¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Ï¡¢¤³¤Î¥á¥Ë¥å¡¼Æâ¤Ë¥¤¥ó¥é¥¤¥ó¤ÇÁÞÆþ¤µ¤ì¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -°À­ -ÀâÌÀ - - -nest -»ØÄꤷ¤¿¥á¥Ë¥å¡¼¤¬¡¢³¬Áز½¤¹¤ë¤¿¤á¤Î¤â¤Î¤«¤É¤¦¤«¤òÀ©¸æ¤¹¤ë¿¿µ¶ÃÍ¡£¤â¤·¤³¤Î°À­¤Ë 'true' ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢´Þ¤á¤ë¥á¥Ë¥å¡¼¤Ï¥µ¥Ö¥á¥Ë¥å¡¼¤È¤·¤Æ³¬Áز½¤µ¤ì¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¤Î¤Ê¤é¡¢Á´¤Æ¤ÎÁªÂò»è¤È»ØÄꤷ¤¿¥á¥Ë¥å¡¼¤Î³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤Ï¡¢¤³¤Î¥á¥Ë¥å¡¼Æâ¤Ë¥¤¥ó¥é¥¤¥ó¤ÇÁÞÆþ¤µ¤ì¤Þ¤¹¡£ - - Îã: \begin{screen} +\begin{verbatim} + ... -navigations + navigations ... + +\end{verbatim} \end{screen} @@ -313,9 +344,13 @@ Îã: \begin{screen} +\begin{verbatim} + ... -pages + pages ... + +\end{verbatim} \end{screen} @@ -325,54 +360,69 @@ ¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥Ú¡¼¥¸¤¬ PAL¥Ý¡¼¥¿¥ë¥Ñ¥¤¥×¥é¥¤¥ó¤ÇÉÁ²è¤µ¤ì¤ë¤È¤­¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤«¤é¥á¥Ë¥å¡¼¤òÍ׵ᤷ¤Þ¤¹¡£¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥á¥Ë¥å¡¼¤¬ PSML ¤ÇÄêµÁ¤µ¤ì¤ë¤³¤È¤ò´üÂÔ¤·¤Þ¤¹¡£¥«¥¹¥¿¥à¥á¥Ë¥å¡¼¤¬¥Ý¡¼¥¿¥ë¤Ëɽ¼¨¤µ¤ì¤ëÁ°¤Ë¡¢¥Ç¥³¥ì¡¼¥¿¤Ï¡¢¥«¥¹¥¿¥à¥á¥Ë¥å¡¼¤ÎÉÁ²è¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£°Ê²¼¤Ë¡¢Velocity ¥ì¥¤¥¢¥¦¥È¥Ç¥³¥ì¡¼¥¿¤Î header.vm ¥Õ¥¡¥¤¥ë¤«¤éÈ´¤­½Ð¤·¤¿Îã¤ò¼¨¤·¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} ... -\#set(\$pagesStandardMenu = \$site.getMenu("pages")) -\#if(!\$pagesStandardMenu.empty) +#set($pagesStandardMenu = $site.getMenu("pages")) +#if(!$pagesStandardMenu.empty) +
      +#includeTabsNavigation($pagesStandardMenu $LEFT_TO_RIGHT) +
      +#end +... +\end{verbatim} -\#includeTabsNavigation(\$pagesStandardMenu \$LEFT\_TO\_RIGHT) -\#end -... - \end{screen} ¤³¤Î¥³¡¼¥É¤Ï¡¢¥Ý¡¼¥¿¥ë¥Ú¡¼¥¸Æâ¤Îɸ½àŪ¤Ê¥Ú¡¼¥¸¤Î¥¿¥Ö¥á¥Ë¥å¡¼¤òÉÁ²è¤·¤Þ¤¹¡£¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï Velocity ¤Î¥³¥ó¥Æ¥­¥¹¥ÈÊÑ¿ô\$site¤È¤·¤Æɽ¤ì¤Þ¤¹¡£¶õ¤Î¥á¥Ë¥å¡¼ÄêµÁ¤Î¤¿¤á¤ÎȽÃǤϡ¢¶õ¤Î¥á¥Ë¥å¡¼¤¬¥Ú¡¼¥¸¥³¥ó¥Æ¥ó¥ÄÆâ¤ËÉÁ²è¤µ¤ì¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ¸å¤Ë¡¢¥Ç¥³¥ì¡¼¥¿¥Þ¥¯¥í¤¬¡¢¥á¥Ë¥å¡¼¥³¥ó¥Æ¥ó¥Ä¤òŸ³«¤¹¤ë¤¿¤á¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£°ìÈ̤ˡ¢ºÆµ¢Åª¤Ê¥Þ¥¯¥í¤Îµ¯Æ°¤Ç³¬Áز½¤·¤¿¥á¥Ë¥å¡¼¤òÉÁ²è¤¹¤ë¤³¤È¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë¡¢¤³¤Î¥¢¥×¥í¡¼¥Á¤ò¼è¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢¥Ç¥³¥ì¡¼¥¿¤Ï¥Ú¡¼¥¸¥ª¥×¥·¥ç¥ó¤À¤±¤ò´üÂÔ¤·¤Þ¤¹¡£°Ê²¼¤Ë¡¢¥Ú¡¼¥¸¤Î¥¿¥Ö¥á¥Ë¥å¡¼¤òÉÁ²è¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë¥Þ¥¯¥í¼ÂÁõ¤ò¼¨¤·¤Þ¤¹¡£ \begin{screen} -\#macro (includeTabsNavigation \$\_menu \$\_orientation) +\begin{verbatim} +#macro (includeTabsNavigation $_menu $_orientation) +
      + + #foreach($element in $_menu.elements.iterator()) + #if($element.elementType == "option") + #set($tabTitle = $element.getTitle($preferedLocale)) + #set($tabName = $element.getShortTitle($preferedLocale)) + #if($_orientation == $LEFT_TO_RIGHT) + #if($element.isSelected($site)) + + + + #else + #set($tabUrl = $jetspeed.getAbsoluteUrl($element.url)) + + + + #end + #end + #end + #end + +
       ${tabName}  ${tabName} 
      +#end +\end{verbatim} - \#foreach(\$element in \$\_menu.elements.iterator()) - \#if(\$element.elementType == "option") - \#set(\$tabTitle = \$element.getTitle(\$preferedLocale)) - \#set(\$tabName = \$element.getShortTitle(\$preferedLocale)) - \#if(\$\_orientation == \$LEFT\_TO\_RIGHT) - \#if(\$element.isSelected(\$site)) -\  -\${tabName} -\  - \#else - \#set(\$tabUrl = \$jetspeed.getAbsoluteUrl(\$element.url)) -\  -\${tabName} -\  - \#end - \#end - \#end - \#end - -\#end - \end{screen} ¤³¤Î¥Þ¥¯¥í¤Ï¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¡¢½èÍý¤µ¤ì¤¿¥Ú¡¼¥¸¥á¥Ë¥å¡¼¤ÎÁªÂò»èÁ´¤Æ¤ËÅϤäÆÈ¿Éü¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢É½¼¨¤µ¤ì¤ë¥¿¥Ö¤½¤ì¤¾¤ì¤òºî¤ë¤¿¤á¤Î HTML Í×ÁǤΥơ¼¥Ö¥ë¥Ç¡¼¥¿¤òÉÁ²è¤·¤Þ¤¹¡£¥á¥Ë¥å¡¼Á´ÂΤϡ¢Ã±°ì¤Î¹Ô¤Î HTML ¥Æ¡¼¥Ö¥ë¤È¤·¤ÆÉÁ²è¤µ¤ì¤Þ¤¹¡£ °Ê²¼¤Ë¡¢¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¥ª¥Ö¥¸¥§¥¯¥È¤¬¥ì¥¤¥¢¥¦¥È¥Ç¥³¡¼¥ì¡¼¥¿¤Ëɽ¼¨¤¹¤ë¡¢Àë¸À·¿¤Î¥á¥Ë¥å¡¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òºî¤ë¤¿¤á¤Î¥×¥é¥¤¥Þ¥ê¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¥ê¥¹¥È¤ò°Ê²¼¤Ëµó¤²¤Þ¤¹¡£ -org.apache.jetspeed.portalsite.Menuorg.apache.jetspeed.portalsite.MenuElementorg.apache.jetspeed.portalsite.MenuOptionorg.apache.jetspeed.portalsite.MenuSeparatororg.apache.jetspeed.portalsite.PortalSiteRequestContext> +\begin{itemize} +\item org.apache.jetspeed.portalsite.Menuorg.apache.jetspeed.portalsite.MenuElement +\item org.apache.jetspeed.portalsite.MenuOption +\item org.apache.jetspeed.portalsite.MenuSeparator +\item org.apache.jetspeed.portalsite.PortalSiteRequestContext> + +\end{itemize} + \subsection{¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È} PAL¥Ý¡¼¥¿¥ë¤Î¥Ý¡¼¥¿¥ë¥µ¥¤¥È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ï¡¢ 2 ¤Ä¤ÎÌ©Àܤ˴ط¸¤·¤¿Ìò³ä¤¬¤¢¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/psml/security.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -29,20 +29,29 @@ \subsection{¥»¥­¥å¥ê¥Æ¥£¤Ë¤Ä¤¤¤Æ} ¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥Ú¡¼¥¸¤È¥Õ¥©¥ë¥À¤ËŬÍѤµ¤ì¤Þ¤¹¡£¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥Ú¡¼¥¸¤È¥Õ¥©¥ë¥À¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµö²Ä¤·¤¿¤êµñÈݤ·¤¿¤ê¤·¤Þ¤¹¡£À©Ìó¤Ï¡¢°Ê²¼¤Î 4 ¤Ä¤Î¾ì½ê¤Î 1 ¤Ä¤Þ¤¿¤ÏÁ´¤Æ¤ÇÄêµÁ¤µ¤ì¤Þ¤¹¡£ -¥°¥í¡¼¥Ð¥ë:PSML ¥Ä¥ê¡¼¤Î¥ë¡¼¥È¤Ë¸ºß¤¹¤ëpage.security¥Õ¥¡¥¤¥ëÆâ¤ÎÀë¸À¤È¤·¤ÆÄêµÁ¥Õ¥©¥ë¥À:³Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥ª¥×¥·¥ç¥Ê¥ë¤Ë¸ºß¤¹¤ëfolder.metadata¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¥Ú¡¼¥¸:ÆÃÄê¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë PSML ¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ¥Õ¥é¥°¥á¥ó¥È:¥Ú¡¼¥¸Æâ¤ÎÆÃÄê¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë PSML ¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ +\begin{itemize} +\item ¥°¥í¡¼¥Ð¥ë:PSML ¥Ä¥ê¡¼¤Î¥ë¡¼¥È¤Ë¸ºß¤¹¤ëpage.security¥Õ¥¡¥¤¥ëÆâ¤ÎÀë¸À¤È¤·¤ÆÄêµÁ +\item ¥Õ¥©¥ë¥À:³Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥ª¥×¥·¥ç¥Ê¥ë¤Ë¸ºß¤¹¤ëfolder.metadata¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ +\item ¥Ú¡¼¥¸:ÆÃÄê¤Î¥Ú¡¼¥¸¤Ø¤Î¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë PSML ¥Õ¥¡¥¤¥ëÆâ¤ÇÄêµÁ +\item ¥Õ¥é¥°¥á¥ó¥È:¥Ú¡¼¥¸Æâ¤ÎÆÃÄê¤Î¥Õ¥é¥°¥á¥ó¥È¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òÀ©¸Â¤¹¤ë¤¿¤á¤Ë PSML ¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÄêµÁ +\end{itemize} + +\subsubsection{µö²Ä} + µö²Ä¤Ï¡¢¥Ú¡¼¥¸¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤Ø¤Î¥¢¥¯¥»¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¡¢¾µÇ§¡¢¸¢¸Â¤Î¼øÍ¿¡¢¼çÂΤΥꥹ¥È¤Î¤É¤ì¤«¤Ë´Ø·¸¤·¤Þ¤¹¡£¥»¥­¥å¥ê¥Æ¥£À©Ìó¤òÍ¿¤¨¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢ 1 ¤Ä°Ê¾å¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÈÁȤ߹礻¤¿¡¢ 1 ¤Ä°Ê¾å¤Î¥»¥­¥å¥ê¥Æ¥£¼çÂΤΥꥹ¥È¤Î´ØÏ¢ÉÕ¤±¤ò¹Ô¤¦¤È¤¤¤¦¤³¤È¤Ç¤¹¡£À©Ìó¤òÍ¿¤¨¤ë¤È¡¢´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥ê¥¹¥È¤ÎÄ̤ê¤Ë¤Ê¤ë¤è¤¦¥Ú¡¼¥¸¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤Ø¤Î¥¢¥¯¥»¥¹¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£ +\subsubsection{ÈÝǧ} ÈÝǧ¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢ 1 ¤Ä°Ê¾å¤Î¥»¥­¥å¥ê¥Æ¥£¼çÂΤȶ¦¤ËÀë¸À¤µ¤ì¤Þ¤¹¡£À©Ìó¤ÎÈÝǧ¤Ï¡¢Í¿¤¨¤é¤ì¤¿¼çÂΤΥꥹ¥È¤ÎÄ̤ê¤Ë¤Ê¤ë¤è¤¦¡¢¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥À¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤ò¶Ø»ß¤·¤Þ¤¹¡£À©Ìó¤ÎÈÝǧ¤Ï¡¢À©Ìó¤Î¾µÇ§¤ÎÁ°¤Ë¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤ëɬÍפ¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ +\subsubsection{Àë¸À·¿¤È»²¾È·¿¤ÎÀ©Ìó} - ¥Ú¡¼¥¸¤È¥Õ¥©¥ë¥À¤Î¥ê¥½¡¼¥¹À©Ìó¤¬Å¬ÍѤµ¤ì¤ë¤È¤­¡¢À©Ìó¤ÏÀë¸À·¿¤Þ¤¿¤Ï»²¾È·¿¤ÎÀ©Ìó¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£Àë¸À·¿¤ÎÀ©Ìó¤Ï¡¢ÆÃÄê¤Î¥Ú¡¼¥¸¤Þ¤¿¤Ï¥Õ¥©¥ë¥À¤Î¥ê¥½¡¼¥¹¤¬¡¢Å¬Àڤ˻Ȥï¤ì¤ë¤¿¤á¤ËÀë¸À¤µ¤ì¤Þ¤¹¡£»²¾È·¿¤ÎÀ©Ìó¤Ï¡¢Ãæ±û½¸¸¢Åª¤Ê¥»¥­¥å¥ê¥Æ¥£À©Ìó¥ê¥½¡¼¥¹¤Ç¤¢¤ëpage.security¥Õ¥¡¥¤¥ëÆâ¤ÇÀë¸À¤µ¤ì¤¿À©Ìó¤ò»²¾È¤·¤Þ¤¹¡£¥µ¥¤¥ÈË褫¥µ¥Ö¥µ¥¤¥ÈËè¤Ë¡¢Ç¤°Õ¤Î¥Ú¡¼¥¸¤ä¥Õ¥©¥ë¥ÀÆâ¤Ç»²¾È¤µ¤ì¤ëÀ©Ìó¤òÀë¸À¤¹¤ë¤¿¤á¤Ë¡¢page.security¤¬ 1 ¤Ä¤¢¤ê¤Þ¤¹¡£ @@ -51,17 +60,20 @@ ¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢PSML ¥Õ¥¡¥¤¥ëÆâ¡¢¤â¤·¤¯¤Ï¥Õ¥©¥ë¥À¤Î¥á¥¿¥Ç¡¼¥¿¥Õ¥¡¥¤¥ëÆâ¡¢¤â¤·¤¯¤Ï¥°¥í¡¼¥Ð¥ë¤Ê¥»¥­¥å¥ê¥Æ¥£¤ÎÀë¸ÀÃæ¤Ë¤¢¤ë XML Í×ÁǤǤ¹¡£¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ë¤Ï name ¤È¤¤¤¦Â°À­¤¬ 1 ¤Ä¸ºß¤·¤Þ¤¹¡£¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢°Ê²¼¤ÎÍ×ÁǤò»ý¤Á¤Þ¤¹¡£ +\begin{itemize} -roles - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥í¡¼¥ë¼çÂΤΥꥹ¥È¡¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥í¡¼¥ë¤òɽ¤¹ -groups - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥°¥ë¡¼¥×¼çÂΤΥꥹ¥È¡¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥°¥ë¡¼¥×¤òɽ¤¹ -users - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥æ¡¼¥¶¡¼¼çÂΡ¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥æ¡¼¥¶¡¼¤òɽ¤¹ -owner - ñ°ì¤Î¥æ¡¼¥¶¡¼¼çÂÎ -permissions - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó (view, edit, help) ¤Î¥ê¥¹¥È +\item roles - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥í¡¼¥ë¼çÂΤΥꥹ¥È¡¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥í¡¼¥ë¤òɽ¤¹ +\item groups - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥°¥ë¡¼¥×¼çÂΤΥꥹ¥È¡¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥°¥ë¡¼¥×¤òɽ¤¹ +\item users - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥æ¡¼¥¶¡¼¼çÂΡ¢¤â¤·¤¯¤ÏÁ´¤Æ¤Î¥æ¡¼¥¶¡¼¤òɽ¤¹ +\item owner - ñ°ì¤Î¥æ¡¼¥¶¡¼¼çÂÎ +\item permissions - ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 1 ¤Ä°Ê¾å¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó (view, edit, help) ¤Î¥ê¥¹¥È +\end{itemize} ºÇ½é¤Î 4 ¤Ä¤ÎÍ×ÁÇ (roles, groups, users, owner) ¤ÏÁ´¤Æ¡¢¾µÇ§¤µ¤ì¤ë¤â¤·¤¯¤ÏµñÈݤµ¤ì¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ò»ý¤Ä¼çÂΤòÄêµÁ¤·¤Þ¤¹¡£ +\subsubsection{¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó} ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£À©¸Â¤Ë¤è¤Ã¤Æµö²Ä¤¬Í¿¤¨¤é¤ì¤ë¥Ý¡¼¥¿¥ë¤Î¥â¡¼¥É¤Ç¤¹¡£¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ïµö²Ä¤ò¹Ô¤¦¤À¤±¤Ç¡¢ÈÝǧ¤Ï¤·¤Þ¤»¤ó¡£ view¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Ï¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ëread¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÈƱÍͤΤâ¤Î¤Ç¤¹¡£ @@ -70,13 +82,19 @@ +\subsubsection{¥í¡¼¥ë} À©Ìó¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤ò¡¢ 1 ¤Ä°Ê¾å¤Î¥í¡¼¥ë¼çÂΤËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥í¡¼¥ë¤Ï¡¢¾µÇ§¤µ¤ì¤¿¥í¡¼¥ë¼çÂÎ (¤Ä¤Þ¤ê¤½¤Î¥æ¡¼¥¶¡¼¤¬¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È) ¤Î¥æ¡¼¥¶¡¼¥ê¥¹¥È¤«¤éÆÀ¤é¤ì¤Þ¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥í¡¼¥ë¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ \begin{screen} -adminstrator, manager -view, edit +\begin{verbatim} + + + adminstrator, manager + view, edit + +\end{verbatim} \end{screen} @@ -85,61 +103,85 @@ \begin{screen} -adminstrator, manager +\begin{verbatim} + + adminstrator, manager + +\end{verbatim} \end{screen} +\subsubsection{¥°¥ë¡¼¥×} - À©Ìó¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤ò¡¢ 1 ¤Ä°Ê¾å¤Î¥°¥ë¡¼¥×¼çÂΤËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥°¥ë¡¼¥×¤Ï¡¢¾µÇ§¤µ¤ì¤¿¥°¥ë¡¼¥×¼çÂÎ (¤Ä¤Þ¤ê¥æ¡¼¥¶¡¼¤¬¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¥°¥ë¡¼¥×) ¤Î¥æ¡¼¥¶¡¼¤Î¥ê¥¹¥È¤«¤éÆÀ¤é¤ì¤Þ¤¹¡£ ¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥°¥ë¡¼¥×¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ \begin{screen} -accounting, development -view +\begin{verbatim} + + accounting, development + view + +\end{verbatim} \end{screen} À©Ìó¤Ï¡¢¥°¥ë¡¼¥×¼çÂΤΥ꥽¡¼¥¹Á´ÂΤËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¥ê¥¹¥È¤µ¤ì¤¿¥°¥ë¡¼¥×¤Î¤¤¤º¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ëÁ´¤Æ¤Î¥¢¥¯¥»¥¹¤¬µñÈݤµ¤ì¤Þ¤¹¡£ \begin{screen} -accounting, development +\begin{verbatim} + + accounting, development + +\end{verbatim} \end{screen} +\subsubsection{¥æ¡¼¥¶¡¼} - À©Ìó¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ê¥½¡¼¥¹¤Ø¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤Î¥»¥Ã¥È¤ò¡¢ 1 ¤Ä°Ê¾å¤Î¥æ¡¼¥¶¡¼¼çÂΤËÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¸½ºß¤Î¥æ¡¼¥¶¡¼¤Ï¡¢¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤ë¤¿¤á¤Ë¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¥ê¥¹¥ÈÃæ¤Ë¥ê¥¹¥È¤µ¤ì¤ë¡¢¼çÂΤΠ1 ¤Ä¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ \begin{screen} -joey, deedee, johnny -view, edit, help +\begin{verbatim} + + joey, deedee, johnny + view, edit, help + +\end{verbatim} \end{screen} À©Ìó¤Ï¡¢¥æ¡¼¥¶¡¼¼çÂΤÎÁ´¤Æ¤Î¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥¢¥¯¥»¥¹¤òµñÈݤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¥ê¥¹¥ÈÆâ¤Ë¤¢¤ì¤Ð¡¢Á´¤Æ¤Î¥¢¥¯¥»¥¹¤ÏµñÈݤµ¤ì¤Þ¤¹¡£ \begin{screen} -fred +\begin{verbatim} + + fred + +\end{verbatim} \end{screen} +\subsubsection{ÁȤ߹礻} - 1 ¤Ä°Ê¾å¤Î¼ïÎà¤Î¼çÂΤν¸¹ç¤ËÂФ·¤Æ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤¿¤ê¡¢µñÈݤ·¤¿¤ê¤Ç¤­¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£Î㤨¤Ð¡¢¤³¤³¤Ç¤Ï¥í¡¼¥ë (manager, developer) ¤È¥°¥ë¡¼¥× (QA ¤È Research) ¤ÈÆÃÄê¤Î¥æ¡¼¥¶¡¼ (dilbert) ¤ËÂФ·¤Æ¡¢view ¤È edit ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤â¤·¾µÇ§¤µ¤ì¤¿¥æ¡¼¥¶¡¼¤¬¡¢¤³¤³¤Ë¥ê¥¹¥È¤µ¤ì¤¿¥í¡¼¥ë¡¢¥æ¡¼¥¶¡¼¡¢¥°¥ë¡¼¥×¤Î¤É¤ì¤«¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¤Î¤Ê¤é¡¢¤³¤Î¥ê¥½¡¼¥¹¤ËÂФ¹¤ë¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Þ¤¹¡£ \begin{screen} -hacker, coder, guru -unix, linux, freebsd -betty, fred, barney, wilma -view, edit +\begin{verbatim} + + hacker, coder, guru + unix, linux, freebsd + betty, fred, barney, wilma + view, edit + +\end{verbatim} \end{screen} @@ -148,20 +190,28 @@ \begin{screen} -hacker, coder, guru -unix, linux, freebsd -betty, fred, barney, wilma +\begin{verbatim} + + hacker, coder, guru + unix, linux, freebsd + betty, fred, barney, wilma + +\end{verbatim} \end{screen} +\subsubsection{¤¹¤Ù¤Æ*} - Á´¤Æ¤ò°ÕÌ£¤¹¤ë * (¥¢¥¹¥¿¥ê¥¹¥¯) ¤Ï¡¢¥í¡¼¥ë¡¢¥°¥ë¡¼¥×¡¢¥æ¡¼¥¶¡¼¡¢¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤ÎÁ´¤Æ¤ËŬÍѲÄǽ¤Ç¤¹¡£ \begin{screen} -* -* +\begin{verbatim} + + * + * + +\end{verbatim} \end{screen} @@ -181,33 +231,60 @@ \begin{screen} + + + admin + view, edit + + + admin -admin -view, edit - -admin - \end{screen} +\subsubsection{¥Ç¥Õ¥©¥ë¥È¤ÎÀ©Ìó} ¥»¥­¥å¥ê¥Æ¥£À©Ìó¤ÎÀë¸À¤Ë¤Ï¡¢PAL¥Ý¡¼¥¿¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÇÛÈ÷¤ÇºîÀ®¤µ¤ì¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ -À©Ìó̾Ϳ¤¨¤é¤ì¤ëÂоݥѡ¼¥ß¥Ã¥·¥ç¥ó¥°¥í¡¼¥Ð¥ë¤«¤É¤¦¤«adminroles: adminview, edityesmanagerroles: managerviewnousersroles: user, managerviewnopublic-viewusers: *viewnopublic-editusers: *view, editno +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|l|l|l|} +\hline +À©Ìó̾ & Í¿¤¨¤é¤ì¤ëÂÐ¾Ý & ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó & ¥°¥í¡¼¥Ð¥ë¤«¤É¤¦¤« & \\ +\hline\hline +admin & roles: & admin & view, edit & yes\\ +\hline +manager & roles: & manager & view & no\\ +\hline +users & roles: user, manager & view & no & \\ +\hline +public-view & users: & * & view & no\\ +\hline +public-edit & users: & * & view, edit & no\\ +\hline + \end{tabular} +\end{center} +\end{table} + + \subsection{¥Õ¥©¥ë¥À¤ÎÀ©Ìó} ¥Õ¥©¥ë¥À¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥µ¥¤¥ÈÆâ¤Î³Æ¥Õ¥©¥ë¥À¤Ë¥ª¥×¥·¥ç¥Ê¥ë¤Ç¸ºß¤¹¤ëfolder.metadata¥Õ¥¡¥¤¥ëÆâ¤Îsecurity-constraints ¥ê¥¹¥ÈÆâ¤Ëµ­½Ò¤µ¤ì¤Þ¤¹¡£folder.metadata¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¡¢¤â¤·¤¯¤Ï¤½¤Î¥Õ¥¡¥¤¥ëÆâ¤Ë¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Îµ­½Ò¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢¥Õ¥©¥ë¥À¤Ï¡¢¥µ¥¤¥È¤«¥µ¥Ö¥µ¥¤¥È¤Î¥ë¡¼¥È¥Õ¥©¥ë¥À¤Þ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò¤¿¤É¤Ã¤Æ¡¢¿Æ¥Õ¥©¥ë¥À¤ÎÀ©Ìó¤ò·Ñ¾µ¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£°Ê²¼¤Ë 2 ¤Ä¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£ 1 ¤ÄÌܤϻ²¾È·¿¤ÎÀ©Ìó¤Ç¤¢¤ê¡¢ 2 ¤ÄÌܤÏÀë¸À·¿¤ÎÀ©Ìó¤Ç¤¹¡£ \begin{screen} -public-view +\begin{verbatim} + + public-view + + engineering + view + + +\end{verbatim} -engineering -view - - \end{screen} @@ -220,13 +297,17 @@ \begin{screen} -global-view +\begin{verbatim} + + global-view + + accounting + view, edit + + +\end{verbatim} -accounting -view, edit - - \end{screen} Á´¤Æ¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢security-constraintsÆâ¤Ëµ­½Ò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ @@ -242,19 +323,23 @@ Àë¸À·¿¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¥Ú¡¼¥¸¥Þ¥Í¡¼¥¸¥ã¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Spring ¤ÎÀßÄê¤ÇÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£°Ê²¼¤Ë¡¢page-manager.xml¤È¤¤¤¦ Spring ¤ÎÉôÉÊÀßÄê¥Õ¥¡¥¤¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Ú¡¼¥¸¥Þ¥Í¡¼¥¸¥ã bean ¤ÎÀßÄê¤ò¼¨¤·¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} + + + + + + false + + true + +\end{verbatim} - - - \if0 permissions security enabled flag, default=false \fi -false - \if0 À©Ì󥻥­¥å¥ê¥Æ¥£¥â¥Ç¥ë¤ÎÍ­¸ú¥Õ¥é¥°¡¢¥Ç¥Õ¥©¥ë¥È true \fi -true - - \end{screen} ¤³¤ÎÎã¤Î 6 ÈÖÌÜ (index="5") ¤Î¿¿µ¶ÃͤΥ³¥ó¥¹¥È¥é¥¯¥¿°ú¿ô¤¬¡¢"À©Ì󥻥­¥å¥ê¥Æ¥£" ¥â¥Ç¥ë¤òÍ­¸ú¤Ë¤¹¤ë¤«¤É¤¦¤«¤Î»ØÄê¤ò¹Ô¤¦¤â¤Î¤Ç¤¹¡£¤â¤·¡¢Àë¸À·¿¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤¬Í­¸ú¤Ç¤Ê¤¤¤Î¤Ê¤é¡¢Á´¤Æ¤Î¥¤¥ó¥é¥¤¥ó¡¢»²¾È·¿¡¢¥°¥í¡¼¥Ð¥ë¤Î¥»¥­¥å¥ê¥Æ¥£À©Ìó¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/authfilter.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -19,69 +19,83 @@ PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¼¡¤Îǧ¾Ú¥Õ¥£¥ë¥¿¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ -jp.sf.pal.portal.filter.CookieAuthFilter: ¥¯¥Ã¥­¡¼¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ -jp.sf.pal.portal.filter.RequestHeaderAuthFilter: ¥ê¥¯¥¨¥¹¥È¥Ø¥Ã¥À¡¼¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ -jp.sf.pal.portal.filter.RequestParameterAuthFilter: ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤«¤é¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ +\begin{itemize} +\item jp.sf.pal.portal.filter.CookieAuthFilter: ¥¯¥Ã¥­¡¼¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ +\item jp.sf.pal.portal.filter.RequestHeaderAuthFilter: ¥ê¥¯¥¨¥¹¥È¥Ø¥Ã¥À¡¼¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ +\item jp.sf.pal.portal.filter.RequestParameterAuthFilter: ¥ê¥¯¥¨¥¹¥È¥Ñ¥é¥á¡¼¥¿¤«¤é¤«¤é¥æ¡¼¥¶¡¼Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¡£ +\end{itemize} \subsection{½é´üÃÍ} web.xml ¤Ç filter Í×ÁÇÆâ¤Î init-param Í×ÁǤÇÃͤò»ØÄê¤Ç¤­¤Þ¤¹¡£ +\subsubsection{username.key} +\begin{itemize} -¥æ¡¼¥¶¡¼Ì¾¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥­¡¼ -¥Ç¥Õ¥©¥ë¥ÈÃÍ: org.apache.jetspeed.login.username +\item ¥æ¡¼¥¶¡¼Ì¾¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥­¡¼ +\item ¥Ç¥Õ¥©¥ë¥ÈÃÍ: org.apache.jetspeed.login.username +\end{itemize} +\subsubsection{password.key} +\begin{itemize} +\item ¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥­¡¼ +\item ¥Ç¥Õ¥©¥ë¥ÈÃÍ: org.apache.jetspeed.login.password -¥Ñ¥¹¥ï¡¼¥É¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥­¡¼ -¥Ç¥Õ¥©¥ë¥ÈÃÍ: org.apache.jetspeed.login.password +\end{itemize} +\subsubsection{skip.password.check.} +\begin{itemize} +\item ¥Ñ¥¹¥ï¡¼¥É³Îǧ¤ò¥¹¥­¥Ã¥×¤¹¤ë¤«¤É¤¦¤«¡£ +\item ¥Ç¥Õ¥©¥ë¥ÈÃÍ: false +\end{itemize} -¥Ñ¥¹¥ï¡¼¥É³Îǧ¤ò¥¹¥­¥Ã¥×¤¹¤ë¤«¤É¤¦¤«¡£ -¥Ç¥Õ¥©¥ë¥ÈÃÍ: false - - - \subsection{ÀßÄêÊýË¡} web.xml ¤Ë°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤·¤Þ¤¹¡£ \begin{screen} -... -AuthFilter -jp.sf.pal.portal.filter.RequestHeaderAuthFilter - -username.key -USERNAME - - -password.key -PASSWORD - - -skip.password.check -true - - +\begin{verbatim} ... + + AuthFilter + jp.sf.pal.portal.filter.RequestHeaderAuthFilter + + username.key + USERNAME + + + password.key + PASSWORD + + + skip.password.check + true + + +... + + AuthFilter + /* + +... + +\end{verbatim} -AuthFilter -/* -... \end{screen} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/config.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -17,24 +17,24 @@ Á´¤Æ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ïwebapps/palportal/WEB-INF/assembly¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +\subsubsection{security-atn.xml} - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤ÎÀßÄê¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ ¥í¥°¥¤¥ó¥â¥¸¥å¡¼¥ë¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤ËÊÔ½¸¤·¤Þ¤¹¡£ +\subsubsection{security-atz.xml} - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¾µÇ§¥Ý¥ê¥·¡¼¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ +\subsubsection{security-managers.xml} - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¤Ë´Ø¤¹¤ë¥Þ¥Í¡¼¥¸¥ãµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +\subsubsection{security-providers.xml} - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢ÍÍ¡¹¤Ê¥×¥í¥Ð¥¤¥À¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ @@ -42,98 +42,112 @@ ¤³¤ì¤Ë¤è¤ê¡¢Ê£¿ô¤Îǧ¾ÚÊýË¡¤¬Å¬ÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} + + + + + + DefaultAuthenticator + +\end{verbatim} - - - -DefaultAuthenticator - - \end{screen} AuthenticationProvider ¤Ï¡¢¥Ý¡¼¥¿¥ë¾å¤ÇÍøÍѤ¹¤ëǧ¾Ú¥×¥í¥Ð¥¤¥À¡¼¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ °Ê²¼¤ÎÎã¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¾ðÊó¤Î´ÉÍý¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ëǧ¾ÚÊýË¡¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} -DefaultAuthenticator -The default authenticator -login.conf + DefaultAuthenticator + The default authenticator + login.conf + + + + + + + +\end{verbatim} - - - - \end{screen} AuthorizationProvider ¤Ï¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òŬÍѤ¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë SecurityPolicies ¤òÀßÄꤷ¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} + + + + + false + +\end{verbatim} - \if0 Does not use the default policy as a default behavior \fi -false - - \end{screen} +\subsubsection{security-spi.xml} - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¶¦Ä̤Îǧ¾Ú¡¦¾µÇ§ SPI ¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ +\subsubsection{security-spi-atn.xml} - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢Ç§¾Ú SPI ¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ & ÀâÌÀ\\ +\hline\hline +org.apache.jetspeed.security.spi.CredentialHandler & CredentialHandler ¤Ï»ñ³Ê¤Ë´Ø¤¹¤ëÁàºî¤òÆâÊñ¤·¤Þ¤¹¡£¤½¤Î½èÍý¤Ï¡¢PasswordCredentialProvider ¤ä InternalPasswordCredentialInterceptor ¤Ë¤è¤êÄêµÁ¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¸¡¾Ú½èÍý¤Î¼ÂÁõ¤ò»ý¤Á¤Þ¤¹¡£\\ +\hline +org.apache.jetspeed.security.spi.UserSecurityHandler & UserSecurityHandler ¤Ï¥æ¡¼¥¶¡¼¼çÂΤޤï¤ê¤ÎÁàºî¤òÆâÊñ¤·¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ -ÀâÌÀ -org.apache.jetspeed.security.spi.CredentialHandler -CredentialHandler ¤Ï»ñ³Ê¤Ë´Ø¤¹¤ëÁàºî¤òÆâÊñ¤·¤Þ¤¹¡£¤½¤Î½èÍý¤Ï¡¢PasswordCredentialProvider ¤ä InternalPasswordCredentialInterceptor ¤Ë¤è¤êÄêµÁ¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É¸¡¾Ú½èÍý¤Î¼ÂÁõ¤ò»ý¤Á¤Þ¤¹¡£ +\subsubsection{security-spi-atz.xml} -org.apache.jetspeed.security.spi.UserSecurityHandler -UserSecurityHandler ¤Ï¥æ¡¼¥¶¡¼¼çÂΤޤï¤ê¤ÎÁàºî¤òÆâÊñ¤·¤Þ¤¹¡£ - - - - - ¤³¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢¾µÇ§ SPI ¤ÎÀßÄê¤òÄ󶡤·¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ & ÀâÌÀ\\ +\hline\hline +org.apache.jetspeed.security.spi.RoleSecurityHandler & RoleSecurityHandler ¤Ï¥í¡¼¥ë¼çÂΤޤï¤ê¤Î½èÍý¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£\\ +\hline +org.apache.jetspeed.security.spi.GroupSecurityHandler & GroupSecurityHandler ¤Ï¥°¥ë¡¼¥×¼çÂΤޤï¤ê¤Î½èÍý¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£\\ +\hline +org.apache.jetspeed.security.spi.SecurityMappingHandler & SecurityMappingHandler ¤Ï¼çÂδ֤Υޥåԥó¥°Áàºî¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥³¥ó¥Ý¡¼¥Í¥ó¥È̾ -ÀâÌÀ - -org.apache.jetspeed.security.spi.RoleSecurityHandler -RoleSecurityHandler ¤Ï¥í¡¼¥ë¼çÂΤޤï¤ê¤Î½èÍý¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£ - - -org.apache.jetspeed.security.spi.GroupSecurityHandler -GroupSecurityHandler ¤Ï¥°¥ë¡¼¥×¼çÂΤޤï¤ê¤Î½èÍý¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£ - - -org.apache.jetspeed.security.spi.SecurityMappingHandler -SecurityMappingHandler ¤Ï¼çÂδ֤Υޥåԥó¥°Áàºî¤òÆâÊñ¤·¤Æ¤¤¤Þ¤¹¡£ - - - - - - Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/credential.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -39,15 +39,15 @@ PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢¥Ñ¥¹¥ï¡¼¥É»ñ³Ê¤ò°·¤¦¤¿¤á¤Ë PasswordCredential ¤Î¼ÂÁõ¤òÄ󶡤·¤Æ¡¢Ç§¾Ú¤ËÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ +\subsubsection{¥Ñ¥¹¥ï¡¼¥É¥¨¥ó¥³¡¼¥É} - PasswordCredentialProvider ¤«¤é CredentialPasswordEncoder ¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ëÁ°¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤Þ¤¹¡£ Ä󶡤·¤Æ¤¤¤ë MessageDigestCredentialPasswordEncoder ¤Ï¥Ñ¥¹¥ï¡¼¥É¤Î°Å¹æ²½¤Ë¥á¥Ã¥»¡¼¥¸¥À¥¤¥¸¥§¥¹¥È¤Î¥Ï¥Ã¥·¥å¥¢¥ë¥´¥ê¥º¥à¤òŬÍѤ·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢SHA-1 ¤ä Base64 ¤Ê¤É¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ +\subsubsection{¥Ñ¥¹¥ï¡¼¥É¸¡¾Ú} - PasswordCredentialProvider ¤«¤é CredentialPasswordValidator ¤¬ÍøÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢¥Ñ¥¹¥ï¡¼¥É¤ÏÊݸ¤µ¤ì¤ëÁ°¤Ë¸¡¾Ú¤µ¤ì¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢DefaultCredentialPasswordValidator ¤Ï¥Ñ¥¹¥ï¡¼¥É¤òɬ¿Ü¤Ë¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢SimpleCredentialPasswordValidator ¤ÏºÇ¾®¤Îʸ»úÎó¿ô¤äºÇ¾®¤Î¿ôÃÍʸ»ú¿ô¤Ê¤É¤ò¸¡¾Ú¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ @@ -55,28 +55,41 @@ InternalCredential ¤Ç¤Ï¡¢¥é¥¤¥Õ¥µ¥¤¥¯¥ë¥¤¥Ù¥ó¥È¤Ç³ä¤ê¹þ¤ó¤Ç¸¡¾Ú¤·¤Þ¤¹¡£ DefaultCredentialHandler ¤¬ InternalPasswordCredentialInterceptor ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ì¤Ð¡¢°Ê²¼¤Î¾õ¶·¤Ç¸Æ¤Ð¤ì¤Þ¤¹¡£ -Êݸ¾ì½ê¤«¤é»ñ³Ê¤òÆɤ߼è¤Ã¤¿¸å¥æ¡¼¥¶¡¼Ç§¾Ú¤·¤¿¸å¿·¤·¤¤»ñ³Ê¤òÊݸ¤¹¤ëÁ°¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ò»ñ³Ê¤ËÊݸ¤¹¤ëÁ° + +\begin{itemize} + +\item Êݸ¾ì½ê¤«¤é»ñ³Ê¤òÆɤ߼è¤Ã¤¿¸å +\item ¥æ¡¼¥¶¡¼Ç§¾Ú¤·¤¿¸å +\item ¿·¤·¤¤»ñ³Ê¤òÊݸ¤¹¤ëÁ° +\item ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤ò»ñ³Ê¤ËÊݸ¤¹¤ëÁ° + +\end{itemize} + + PAL¥Ý¡¼¥¿¥ë¤Ï¡¢´ðËÜŪ¤Ê¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ -ValidatePasswordOnLoadInterceptor: + +\begin{itemize} + +\item ValidatePasswordOnLoadInterceptor: ¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤ÏÊݸ»þ¤Ë¥Ñ¥¹¥ï¡¼¥É¤ò¸¡¾Ú¤·¡¢Àµ¤·¤¯¤Ê¤±¤ì¤ÐÊѹ¹¤òÍ׵ᤷ¤Þ¤¹¡£ ¤½¤ì¤Ï PasswordCredentialProvider ¤Î CredentialPasswordValidator ¤Ë¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£ -EncodePasswordOnFirstLoadInterceptor: +\item EncodePasswordOnFirstLoadInterceptor: ¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤Ï¥Ñ¥¹¥ï¡¼¥ÉÊݸÀ褫¤é°Å¹æ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥¹¥ï¡¼¥É¤òÆɤ߼è¤Ã¤¿¤È¤­¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ -PasswordCredentialProvider ¤Î CredentialPasswordEncoder ¤ò»ÈÍѤ·¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éʿʸ¥Ñ¥¹¥ï¡¼¥É¤ò½é²óÆɤ߹þ¤ß»þ¤Ë¼«Æ°Åª¤Ë¥¨¥ó¥³¡¼¥É¤·¤Þ¤¹¡£ -PasswordExpirationInterceptor: +\item PasswordCredentialProvider ¤Î CredentialPasswordEncoder ¤ò»ÈÍѤ·¤Æ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éʿʸ¥Ñ¥¹¥ï¡¼¥É¤ò½é²óÆɤ߹þ¤ß»þ¤Ë¼«Æ°Åª¤Ë¥¨¥ó¥³¡¼¥É¤·¤Þ¤¹¡£ +\item PasswordExpirationInterceptor: ¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤Ï¥Ñ¥¹¥ï¡¼¥É¤ÎÍ­¸ú´ü´Ö¤ò³Îǧ¤·¤Þ¤¹¡£ ¤½¤ì¤Ï¡¢InternalCredential ¤Î expiration\_date ¤È is\_expired ¤ÎÃͤǴÉÍý¤µ¤ì¡¢´ü¸ÂÀÚ¤ì¤Î¾ì¹ç¤Ï´ü¸ÂÀÚ¤ì¥Õ¥é¥°¤òΩ¤Æ¤Þ¤¹¡£ -MaxPasswordAuthenticationFailuresInterceptor: +\item MaxPasswordAuthenticationFailuresInterceptor: ¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤ÏÉÔÀµ¥Ñ¥¹¥ï¡¼¥ÉÆþÎϤκÇÂç²ó¿ô¤ò³Îǧ¤·¤Æ¡¢¥Ñ¥¹¥ï¡¼¥É¥Ï¥Ã¥­¥ó¥°¤òËɤ®¤Þ¤¹¡£ ºÇÂ缺ÇÔ²ó¿ô¤ËÅþ㤹¤ë¤È¡¢¤½¤Î»ñ³Ê¤Ï̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ ǧ¾Ú¤ËÀ®¸ù¤¹¤ë¤È¡¢¼ºÇÔ²ó¿ô¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£ -PasswordHistoryInterceptor: +\item PasswordHistoryInterceptor: ¤³¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤Ï²áµî¤Ë¥Ñ¥¹¥ï¡¼¥É¤¬ÍøÍѤ·¤¿¤â¤Î¤Ç¤Ê¤¤¤«¤ò³Îǧ¤·¤Þ¤¹¡£ ¿·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë¤È¡¢¸½ºß¤Î¥Ñ¥¹¥ï¡¼¥É¤ò FIFO ¥¹¥¿¥Ã¥¯¤ËÊݸ¤·¤Þ¤¹¡£ °ÊÁ°¤ËÍøÍѤ·¤¿¤â¤Î¤Ç¤¢¤ì¤Ð¡¢PasswordAlreadyUsedException ¤¬È¯À¸¤·¤Þ¤¹¡£ +\end{itemize} - DefaultCredentialHandler ¤Ï 1 ¤Ä¤À¤±¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ ¤·¤«¤·¡¢InternalPasswordCredentialInterceptorsProxy ¤òÍѤ¤¤ë¤³¤È¤Ç¡¢Ê£¿ô¤Î¥¤¥ó¥¿¡¼¥»¥×¥¿¡¼¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ @@ -86,9 +99,11 @@ DefaultCredentialHandler ¤Î¼ÂÁõ¤ÇÍøÍѤµ¤ì¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò°Ê²¼¤Î¿Þ¤Ë¼¨¤·¤Þ¤¹¡£ +\newpage + \begin{figure}[ht] \begin{center} -\includegraphics{images/credential-handler-c.eps} +\includegraphics[width=140mm]{images/credential-handler-c.eps} \caption{TBD} \label{fig:credential-handler-c} \end{center} @@ -101,7 +116,7 @@ \begin{figure}[ht] \begin{center} -\includegraphics{images/principals-credentials-schema.eps} +\includegraphics[width=140mm]{images/principals-credentials-schema.eps} \caption{TBD} \label{fig:principals-credentials-schema} \end{center} Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -22,7 +22,7 @@ \begin{figure}[ht] \begin{center} -\includegraphics{images/security-arch-overview.eps} +\includegraphics[width=140mm]{images/security-arch-overview.eps} \caption{TBD} \label{fig:security-arch-overview} \end{center} @@ -48,7 +48,7 @@ \begin{figure}[ht] \begin{center} -\includegraphics{images/atn-arch-c.eps} +\includegraphics[width=140mm]{images/atn-arch-c.eps} \caption{TBD} \label{fig:atn-arch-c} \end{center} @@ -57,19 +57,27 @@ ¾åµ­¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£ -¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÀâÌÀDefaultLoginModulePAL¥Ý¡¼¥¿¥ëɸ½à¤Î LoginModule ¤Î¼ÂÁõ¤Ç¡¢UserManager ¤Î authenticate() ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ -¤½¤Î¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢ÀßÄꤵ¤ì¤¿ÍÍ¡¹¤Ê AuthenticationProvider ¤ËÂФ·¤Æ¡¢Ç§¾Ú¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -UserManager -ǧ¾Ú¤È¥æ¡¼¥¶¡¼´ÉÍý¤òÄ󶡤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£ -AuthenticationProviderProxy ¤ä SecurityProvider ¤òÄ̤·¤Æ¡¢ÍÍ¡¹¤Ê AuthenticationProvider ¤¬ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -SecurityProvider -SPI ¤Î¼ÂÁõ¤ÇÍøÍѲÄǽ¤Ê¥»¥­¥å¥ê¥Æ¥£¥×¥í¥Ð¥¤¥À¡¼¤òÄ󶡤·¤Þ¤¹¡£ -AuthenticationProviderProxy -Ê£¿ô¤Î AuthenticationProvider ¼ÂÁõ¤Î¥×¥í¥­¥·¤È¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£ -AuthenticationProviderProx ¤Ï¡¢Ç§¾Ú¤ª¤è¤Ó¥æ¡¼¥¶¡¼´ÉÍý¤Î¤¿¤á¤ËŬÀÚ¤Ê AuthenticationProvider ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥³¥ó¥Ý¡¼¥Í¥ó¥È & ÀâÌÀ\\ +\hline\hline +DefaultLoginModule & PAL¥Ý¡¼¥¿¥ëɸ½à¤Î LoginModule ¤Î¼ÂÁõ¤Ç¡¢UserManager ¤Î authenticate() ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£¤½¤Î¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢ÀßÄꤵ¤ì¤¿ÍÍ¡¹¤Ê AuthenticationProvider ¤ËÂФ·¤Æ¡¢Ç§¾Ú¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline +UserManager & ǧ¾Ú¤È¥æ¡¼¥¶¡¼´ÉÍý¤òÄ󶡤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£ AuthenticationProviderProxy ¤ä SecurityProvider ¤òÄ̤·¤Æ¡¢ÍÍ¡¹¤Ê AuthenticationProvider ¤¬ÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline +SecurityProvider & SPI ¤Î¼ÂÁõ¤ÇÍøÍѲÄǽ¤Ê¥»¥­¥å¥ê¥Æ¥£¥×¥í¥Ð¥¤¥À¡¼¤òÄ󶡤·¤Þ¤¹¡£\\ +\hline +AuthenticationProviderProxy & Ê£¿ô¤Î AuthenticationProvider ¼ÂÁõ¤Î¥×¥í¥­¥·¤È¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£ AuthenticationProviderProx ¤Ï¡¢Ç§¾Ú¤ª¤è¤Ó¥æ¡¼¥¶¡¼´ÉÍý¤Î¤¿¤á¤ËŬÀÚ¤Ê AuthenticationProvider ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} + \subsection{¾µÇ§³µÍ×} PAL¥Ý¡¼¥¿¥ë¤Ï¡¢¼çÂΤȥѡ¼¥ß¥Ã¥·¥ç¥ó´Ö¤Î´Ø·¸¤ò´ÉÍý¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤ¹¤ë¤¿¤á¤Î java.security.Policy ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£ @@ -77,7 +85,7 @@ \begin{figure}[ht] \begin{center} -\includegraphics{images/rdbms-policy-overview-c.eps} +\includegraphics[width=140mm]{images/rdbms-policy-overview-c.eps} \caption{TBD} \label{fig:rdbms-policy-overview-c} \end{center} @@ -92,20 +100,15 @@ PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï°Ê²¼¤Î¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ +\begin{itemize} -UserManager: ¥æ¡¼¥¶¡¼´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +\item UserManager: ¥æ¡¼¥¶¡¼´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +\item GroupManager: ¥°¥ë¡¼¥×´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +\item RoleManager: ¥í¡¼¥ë´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +\item PermissionManager: ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ +\end{itemize} -GroupManager: ¥°¥ë¡¼¥×´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ -RoleManager: ¥í¡¼¥ë´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ - -PermissionManager: ¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó´ÉÍýµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ - - - - - - Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/login.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -35,7 +35,7 @@ \begin{figure}[ht] \begin{center} -\includegraphics{images/loginprocess.eps} +\includegraphics[width=140mm]{images/loginprocess.eps} \caption{TBD} \label{fig:loginprocess} \end{center} @@ -57,28 +57,37 @@ login.conf ¤ÎÆâÍƤϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£ \begin{screen} + +\begin{verbatim} Jetspeed { org.apache.jetspeed.security.impl.DefaultLoginModule required; }; +\end{verbatim} + + \end{screen} ¤³¤ÎÀßÄê¤ò¾å½ñ¤­¤·¤ÆÊѹ¹¤¹¤ë¤¿¤á¤Ë¤Ï¡¢webapps/palportal/WEB-INF/classes¤Ë login.conf ¤òºîÀ®¤·¤Þ¤¹¡£ login.conf ¤Î¥Õ¥¡¥¤¥ë̾¤Ê¤É¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ê¤É¤Ï¡¢security-providers.xml¤Ç login.conf ¤ò»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ÎÃͤòÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£ \begin{screen} + +\begin{verbatim} -DefaultAuthenticator -The default authenticator -login.conf + DefaultAuthenticator + The default authenticator + login.conf + + + + + + + +\end{verbatim} - - - - - - \end{screen} AuthenticationProvider ¤Ï¡¢¥·¥¹¥Æ¥à¥×¥í¥Ñ¥Æ¥£¤Î java.security.auth.login.config ¤ÎÃͤò security-providers.xml ¤Ç»ØÄꤷ¤¿ login.conf ¤Î¥Ñ¥¹¤òÀßÄꤷ¤Æ¡¢»ÈÍѤµ¤ì¤ë LoginModule ¤òÀßÄꤷ¤Þ¤¹¡£ @@ -88,9 +97,11 @@ DefaultLoginModule ¤Î¼ÂÁõ¤Ï¡¢°Ê²¼¤Î¿Þ¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +\newpage + \begin{figure}[ht] \begin{center} -\includegraphics{images/default-login-module-c.eps} +\includegraphics[width=140mm]{images/default-login-module-c.eps} \caption{TBD} \label{fig:default-login-module-c} \end{center} @@ -99,47 +110,24 @@ DefaultLoginModule ¤Ç»ÈÍѤµ¤ì¤ë¥¯¥é¥¹¤ÎÌò³ä¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ +\begin{table}[htbp] +\begin{center} + \begin{tabular}[tb]{|l|l|} +\hline +¥¯¥é¥¹Ì¾ & ÀâÌÀ\\ +\hline\hline +org.apache.jetspeed.security.impl.DefaultLoginModule & javax.security.auth.spi.LoginModule ¤Î¼ÂÁõ¤Ç¤¹¡£ DefaultLoginModule ¤Ç¤Îǧ¾Ú³Îǧ¤Ï¡¢UserManager ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£\\ +\hline +org.apache.jetspeed.security.LoginModuleProxy & UserManager ¤ò DefaultLoginModule ¤ÇÍøÍѤ¹¤ë¤¿¤á¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£\\ +\hline +org.apache.jetspeed.security.User & User ¤Ï javax.security.auth.Subject ¤È java.util.prefs.Preferences ¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢UserPrincipal¡¢RolePrincipal¡¢GroupPrincipal ¤Î 3 ¼ïÎà¤Î¼çÂΤò°·¤¤¤Þ¤¹¡£\\ +\hline +org.apache.jetspeed.security.UserManager & ¥æ¡¼¥¶¡¼¤Ë´Ø¤¹¤ëÁàºî¤òÄ󶡤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ÍÍ¡¹¤Ê SPI ¤ò½¸Ìó¤·¤¿¤â¤Î¤Ç¡¢SPI ¤ÇÄêµÁ¤µ¤ì¤¿µ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\\ +\hline + \end{tabular} +\end{center} +\end{table} -¥¯¥é¥¹Ì¾ -ÀâÌÀ - -org.apache.jetspeed.security.impl.DefaultLoginModule - - -javax.security.auth.spi.LoginModule ¤Î¼ÂÁõ¤Ç¤¹¡£ -DefaultLoginModule ¤Ç¤Îǧ¾Ú³Îǧ¤Ï¡¢UserManager ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£ - - - - -org.apache.jetspeed.security.LoginModuleProxy - - -UserManager ¤ò DefaultLoginModule ¤ÇÍøÍѤ¹¤ë¤¿¤á¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£ - - - - -org.apache.jetspeed.security.User - - -User ¤Ï javax.security.auth.Subject ¤È java.util.prefs.Preferences ¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ -PAL¥Ý¡¼¥¿¥ë¤Ç¤Ï¡¢UserPrincipal¡¢RolePrincipal¡¢GroupPrincipal ¤Î 3 ¼ïÎà¤Î¼çÂΤò°·¤¤¤Þ¤¹¡£ - - - - -org.apache.jetspeed.security.UserManager - - -¥æ¡¼¥¶¡¼¤Ë´Ø¤¹¤ëÁàºî¤òÄ󶡤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£ -¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¡¢ÍÍ¡¹¤Ê SPI ¤ò½¸Ìó¤·¤¿¤â¤Î¤Ç¡¢SPI ¤ÇÄêµÁ¤µ¤ì¤¿µ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ - - - - - - Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/security/transferfilter.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -27,71 +27,84 @@ web.xml ¤Ç filter Í×ÁÇÆâ¤Î init-param Í×ÁǤÇÃͤò»ØÄê¤Ç¤­¤Þ¤¹¡£ +\subsubsection{transferred.info} +\begin{itemize} -žÁ÷ÂоݤξðÊó¤ò»ØÄꤹ¤ë¡£Å¾Á÷ÂоݤȤʤë¾ðÊó¤Ï¡¢¥æ¡¼¥¶¡¼¾ðÊó(JSR 168 PLT.17)¤È¤·¤Æ³ÊǼ¤µ¤ì¤Æ¤¤¤ë¾ðÊó¤Ç¤¹¡£¤½¤ì°Ê³°¤Ë¥æ¡¼¥¶¡¼ID¤òusername¤È¤·¤ÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ -¡Ö̾Á°¥­¡¼=ÃÍ¥­¡¼¡×¤ò , ¶èÀÚ¤ê¤Ç»ØÄꤹ¤ë¡£Ì¾Á°¥­¡¼¤¬¥¯¥Ã¥­¡¼¤Ç¥­¡¼¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£ÃÍ¥­¡¼¤Ï¥æ¡¼¥¶¡¼¾ðÊó¤ÇÍøÍѤµ¤ì¤ë¥­¡¼¤ÎÉôʬ¤Þ¤¿¤Ï username ¤òÍøÍѤ·¤Þ¤¹¡£ +\item žÁ÷ÂоݤξðÊó¤ò»ØÄꤹ¤ë¡£Å¾Á÷ÂоݤȤʤë¾ðÊó¤Ï¡¢¥æ¡¼¥¶¡¼¾ðÊó(JSR 168 PLT.17)¤È¤·¤Æ³ÊǼ¤µ¤ì¤Æ¤¤¤ë¾ðÊó¤Ç¤¹¡£¤½¤ì°Ê³°¤Ë¥æ¡¼¥¶¡¼ID¤òusername¤È¤·¤ÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ +\item ¡Ö̾Á°¥­¡¼=ÃÍ¥­¡¼¡×¤ò , ¶èÀÚ¤ê¤Ç»ØÄꤹ¤ë¡£Ì¾Á°¥­¡¼¤¬¥¯¥Ã¥­¡¼¤Ç¥­¡¼¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£ÃÍ¥­¡¼¤Ï¥æ¡¼¥¶¡¼¾ðÊó¤ÇÍøÍѤµ¤ì¤ë¥­¡¼¤ÎÉôʬ¤Þ¤¿¤Ï username ¤òÍøÍѤ·¤Þ¤¹¡£ +\end{itemize} +\subsubsection{path} +\begin{itemize} +\item ¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î path ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ +\end{itemize} -¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î path ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ +\subsubsection{domain} +\begin{itemize} +\item ¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î domain ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ +\end{itemize} +\subsubsection{max.age} +\begin{itemize} -¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î domain ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ +\item ¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î maxAge ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ +\end{itemize} +\subsubsection{secure} +\begin{itemize} +\item ¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î secure ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ -¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î maxAge ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ +\end{itemize} - - - - -¥¯¥Ã¥­¡¼¤Ë»ØÄꤹ¤ëºÝ¤Î secure ¤È¤·¤ÆÅϤµ¤ì¤ë¾ðÊó¡£ - - - - \subsection{ÀßÄêÊýË¡} web.xml ¤Ë°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤·¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} ... + + CookieTransferFilter + jp.sf.pal.portal.filter.CookieTransferFilter + + transferred.info + H=username,NAME=user.name.given + + + path + / + + + max.age + -1 + + +... + + CookieTransferFilter + /* + +... +\end{verbatim} -CookieTransferFilter -jp.sf.pal.portal.filter.CookieTransferFilter -transferred.info -H=username,NAME=user.name.given -path -/ - - -max.age --1 - - -... - -CookieTransferFilter -/* - -... - \end{screen} ÀßÄê¤òÊݸ¤·¡¢¥Ý¡¼¥¿¥ë¤òºÆµ¯Æ°¸å¤ËÍ­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Modified: pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex =================================================================== --- pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex 2008-11-21 02:12:54 UTC (rev 1389) +++ pal-portal/docs/ja/configuration-guide/trunk/src/tex/userattribute/guide.tex 2008-11-21 02:50:56 UTC (rev 1390) @@ -31,29 +31,40 @@ ¤¿¤È¤¨¤Ð¡¢JSR 168 ¤Î PLT.17.1 ¤Ç¤Ï¡¢Â°À­¤Ë´Ø¤·¤Æ portlet.xml ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Þ¤¹¡£ \begin{screen} +\begin{verbatim} + + + User Given Name + user.name.given + + + User Last Name + user.name.family + + + User eMail + user.home-info.online.email + + ... +\end{verbatim} -User Given Name -user.name.given - -User Last Name -user.name.family - - -User eMail -user.home-info.online.email - - ... - \end{screen} ¤³¤Î¤è¤¦¤Ë°À­¤¬ÄêµÁ¤µ¤ì¤ë¤È¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ï PortletRequest ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÇÄêµÁ¤µ¤ì¤¿ USER\_INFO Äê¿ô¤ò»È¤Ã¤Æ PortletRequest ¤«¤éÊѹ¹¤Ç¤­¤Ê¤¤ Map ¤È¤·¤Æ¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¤Î°À­Ãͤ˥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£ -Map userInfo = (Map)request.getAttribute(PortletRequest.USER\_INFO); +\begin{screen} + +\begin{verbatim} +Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO); String givenName = (userInfo!=null) ? (String)userInfo.get("user.name.given") : ""; String lastName = (userInfo!=null) ? (String)userInfo.get("user.name.family") : ""; -String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : ""; +String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : ""; +\end{verbatim} + +\end{screen} + ¥Ý¡¼¥È¥ì¥Ã¥È»ÅÍͤÇÄêµÁ¤µ¤ì¤Ê¤¤¤Î¤Ï¡¢¥Ý¡¼¥¿¥ë¤¬ÄêµÁ¤µ¤ì¤¿¥æ¡¼¥¶¡¼Â°À­¤ò¥æ¡¼¥¶¡¼¤Î¶ñÂÎŪ¤Ê°À­¤Ë¤É¤Î¤è¤¦¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤«¤Ç¤¹¡£ @@ -72,8 +83,8 @@ jetspeed-portlet.xml Æâ¤ÇÄêµÁ¤µ¤ì¤ë¥«¥¹¥¿¥à¥Þ¥Ã¥Ô¥ó¥°¤Î»ÈÍÑ +\subsubsection{¥«¥¹¥¿¥à¤Î¥æ¡¼¥¶¡¼Â°À­¥Þ¥Ã¥Ô¥ó¥°} - ¤â¤·ÂоݤȤ¹¤ë¥Ý¡¼¥¿¥ë¤È¤·¤Æ PAL¥Ý¡¼¥¿¥ë¤òÍøÍѤ·¤Æ¿·¤·¤¤¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¤¤¿¤Î¤Ê¤é¡¢¥Ý¡¼¥¿¥ëÆâ¤Ç¥æ¡¼¥¶¡¼Â°À­¤È°ìÃפ¹¤ë User Attributes ¤òÄêµÁ¤¹¤ë¤³¤È¤Ï´Êñ¤Ç¤·¤ç¤¦¡£ ¤·¤«¤·¡¢¤â¤·´û¤Ë¸ºß¤¹¤ë¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò PAL¥Ý¡¼¥¿¥ë¾å¤ËÇÛÈ÷¤·¤¿¤¤¤Î¤Ê¤é¡¢¥Ý¡¼¥È¥ì¥Ã¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËɬÍפÊ°À­Ì¾¤È PAL¥Ý¡¼¥¿¥ë¤Î User Preferences ¤Ë³ÊǼ¤µ¤ì¤ë¶ñÂÎŪ¤Ê°À­Ì¾¤Î´Ö¤Î¥ß¥¹¥Þ¥Ã¥Á¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ @@ -87,22 +98,41 @@ ¥æ¡¼¥¶¡¼Â°À­¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¥«¥¹¥¿¥à¤Î¥æ¡¼¥¶¡¼Â°À­Ì¾¤òÄêµÁ¤¹¤ë "name" ¥¨¥ì¥á¥ó¥È¤È¡¢¤½¤Î°À­Ì¾¤Ë¥Þ¥Ã¥×¤µ¤ì¤ë¶ñÂÎŪ¤Ê°À­Ì¾¤òÄêµÁ¤¹¤ë"name-link" ¥¨¥ì¥á¥ó¥È¤ò´Þ¤à "user-attribute-ref" ¥¨¥ì¥á¥ó¥È¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤Þ¤¹¡£ \begin{screen} + +\begin{verbatim} + + user-name-given + user.name.given + + + user-name-family + user.name.family + + ... + +\end{verbatim} -user-name-given -user.name.given +\end{screen} -user-name-family -user.name.family +Àè¤ÎÎã¤Î¤è¤¦¤Ê¥«¥¹¥¿¥à¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò»È¤Ã¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¼¡¤Î¤è¤¦¤Ë¥æ¡¼¥¶¡¼Â°À­¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£ - ... +\begin{screen} +\begin{verbatim} +Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO); +String givenName = (userInfo!=null) ? (String)userInfo.get("user-name-given") : ""; +String lastName = (userInfo!=null) ? (String)userInfo.get("user-name-family") : ""; +String email = (userInfo!=null) ? (String)userInfo.get("user.home-info.online.email") : ""; +\end{verbatim} + + \end{screen} -Àè¤ÎÎã¤Î¤è¤¦¤Ê¥«¥¹¥¿¥à¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò»È¤Ã¤Æ¡¢¥Ý¡¼¥È¥ì¥Ã¥È¤Ï¼¡¤Î¤è¤¦¤Ë¥æ¡¼¥¶¡¼Â°À­¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£ + Map userInfo = (Map)request.getAttribute(PortletRequest.USER\_INFO); String givenName = (userInfo!=null) ? (String)userInfo.get("user-name-given") : ""; String lastName = (userInfo!=null) ? (String)userInfo.get("user-name-family") : ""; From svnnotify ¡÷ sourceforge.jp Fri Nov 21 17:04:12 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 21 Nov 2008 17:04:12 +0900 Subject: [pal-cvs 3656] [1391] added group view on week. Message-ID: <1227254652.597242.29169.nullmailer@users.sourceforge.jp> Revision: 1391 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1391 Author: shinsuke Date: 2008-11-21 17:04:12 +0900 (Fri, 21 Nov 2008) Log Message: ----------- added group view on week. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java 2008-11-21 08:04:12 UTC (rev 1391) @@ -1,13 +1,10 @@ package jp.sf.pal.scheduler.action.user.schedule; import java.io.Serializable; -import java.sql.Time; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; -import java.util.Date; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -16,13 +13,17 @@ import jp.sf.pal.scheduler.SchedulerConstants; import jp.sf.pal.scheduler.common.util.CalendarUtil; import jp.sf.pal.scheduler.common.util.ConfigUtil; -import jp.sf.pal.scheduler.common.util.DateUtil; -import jp.sf.pal.scheduler.db.exentity.EventSchedule; import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.GroupMapping; +import jp.sf.pal.scheduler.db.exentity.RoleMapping; +import jp.sf.pal.scheduler.db.exentity.UserInfo; import jp.sf.pal.scheduler.form.user.schedule.CalendarForm; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; +import org.apache.commons.lang.StringUtils; import org.seasar.struts.annotation.ActionForm; import org.seasar.struts.annotation.Execute; @@ -42,6 +43,8 @@ public List> allDayEventInDayItems; + public List> groupMemberInWeekItems; + public int maxCols; @ActionForm @@ -51,135 +54,14 @@ private RepeatScheduleService repeatScheduleService; + private UserInfoService userInfoService; + private transient HttpServletRequest request; - private void createSideCalendar() { - calendarDayItems = new LinkedList>(); - Calendar targetCalendar = calendarForm.getTargetCalendar(); - int targetYear = CalendarUtil.getYear(targetCalendar); - int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1; - int targetDate = CalendarUtil.getDate(targetCalendar); - - // create a previous month - Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); - int count = CalendarUtil.getDay(cal) - 1; - while (count > 0) { - cal = CalendarUtil.getPrev(cal); - calendarDayItems.add(0, createCalendarDayItem(cal, false)); - count--; - } - - // create this month - cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); - int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil - .getLastCalendarInMonth(targetCalendar)); - for (int i = 0; i < lastDayOfMonth; i++) { - calendarDayItems.add(createCalendarDayItem(cal, targetYear, - targetMonth, targetDate, true)); - cal = CalendarUtil.getNext(cal); - } - - // create a next month - count = CalendarUtil.getDay(cal); - while (count != 1) { - calendarDayItems.add(createCalendarDayItem(cal, false)); - cal = CalendarUtil.getNext(cal); - count = CalendarUtil.getDay(cal); - } - - } - - private boolean compare(int year1, int month1, int date1, int year2, - int month2, int date2) { - if (year1 == year2 && month1 == month2 && date1 == date2) { - return true; - } - return false; - } - - private Map createEmptyEvent() { - Map emptyEvent = new HashMap(); - emptyEvent.put("startEvent", "true"); - emptyEvent.put("cols", "1"); - emptyEvent.put("rows", "1"); - emptyEvent.put("time", "none"); - return emptyEvent; - } - - private void putEventSchedule(EventSchedule eventSchedule, Time startTime, - Time endTime) { - if (startTime != null && endTime != null) { - int sIdx = DateUtil.getHours(startTime); - int eIdx = DateUtil.getHours(endTime) - 1; - if (DateUtil.getMinutes(endTime) != 0) { - eIdx++; - } - if (eIdx > 23) { - eIdx = 23; - } - for (int i = sIdx; i <= eIdx; i++) { - Map eventMap = createEvent(eventSchedule, true, - true); - if (i == sIdx) { - eventMap.put("startEvent", "true"); - int size = eIdx - sIdx + 1; - eventMap.put("rows", String.valueOf(size)); - eventMap.put("lastEvent", "true"); - } else { - eventMap.put("startEvent", "false"); - } - eventMap.put("cols", "1"); - eventInDayItems.get(i).add(eventMap); - } - } else if (startTime != null && endTime == null) { - int sIdx = DateUtil.getHours(startTime); - for (int i = sIdx; i <= 23; i++) { - Map eventMap = createEvent(eventSchedule, true, - false); - if (i == sIdx) { - eventMap.put("startEvent", "true"); - int size = 23 - sIdx + 1; - eventMap.put("rows", String.valueOf(size)); - eventMap.put("lastEvent", "true"); - } else { - eventMap.put("startEvent", "false"); - } - eventMap.put("cols", "1"); - eventInDayItems.get(i).add(eventMap); - } - } else if (startTime == null && endTime != null) { - int eIdx = DateUtil.getHours(endTime) - 1; - if (DateUtil.getMinutes(endTime) != 0) { - eIdx++; - } - if (eIdx > 23) { - eIdx = 23; - } - for (int i = 0; i <= eIdx; i++) { - Map eventMap = createEvent(eventSchedule, - false, true); - if (i == 0) { - eventMap.put("startEvent", "true"); - int size = eIdx + 1; - eventMap.put("rows", String.valueOf(size)); - eventMap.put("lastEvent", "true"); - } else { - eventMap.put("startEvent", "false"); - } - eventMap.put("cols", "1"); - eventInDayItems.get(i).add(eventMap); - } - } else { - // all day - allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); - } - - } - private String displayPersonalDay() { - createSideCalendar(); - Calendar cal = calendarForm.getTargetCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(cal); + Calendar nextCal = cal; int tYear = CalendarUtil.getYear(cal); int tMonth = CalendarUtil.getMonth(cal) + 1; @@ -195,36 +77,9 @@ List ssmList = onetimeScheduleService .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal .getTime()); - for (EventScheduleMapping ssm : ssmList) { - EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); + SchedulerUtil.createPersonalDayForOnetime(tYear, tMonth, tDate, + ssmList, eventInDayItems, allDayEventInDayItems); - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - - Time startTime = eventSchedule.getStartTime(); - Time endTime = eventSchedule.getEndTime(); - if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, startTime, endTime); - } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, startTime, null); - } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, null, endTime); - } else { - // all day - allDayEventInDayItems.add(createEvent(eventSchedule, false, - false)); - } - } - maxCols = 0; for (List> events : eventInDayItems) { if (!events.isEmpty() && events.size() > maxCols) { @@ -236,7 +91,7 @@ if (!events.isEmpty()) { int idx = events.size() - 1; for (int i = idx; i < maxCols - 1; i++) { - events.add(createEmptyEvent()); + events.add(SchedulerUtil.createEmptyEvent()); } } } @@ -244,46 +99,9 @@ List rsmList = repeatScheduleService .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal .getTime()); - for (EventScheduleMapping rsm : rsmList) { - EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - // int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); + SchedulerUtil.createPersonalDayForRepeat(tYear, tMonth, tDate, tDay, + rsmList, eventInDayItems, allDayEventInDayItems); - Time startTime = eventSchedule.getStartTime(); - Time endTime = eventSchedule.getEndTime(); - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - putEventSchedule(eventSchedule, startTime, endTime); - } else if ("MTWTF".equals(type)) { - if (tDay > 1 && tDay < 7) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("MWF".equals(type)) { - if (tDay == 2 || tDay == 4 || tDay == 6) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("TT".equals(type)) { - if (tDay == 3 || tDay == 5) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("WEEKLY".equals(type)) { - if (tDay == DateUtil.getDay(startDate) + 1) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("MONTHLY".equals(type)) { - if (tDate == sDate) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } else if ("YEARLY".equals(type)) { - if (tDate == sDate && tMonth == sMonth) { - putEventSchedule(eventSchedule, startTime, endTime); - } - } - - } - for (List> events : eventInDayItems) { if (!events.isEmpty() && events.size() > maxCols) { maxCols = events.size(); @@ -294,7 +112,7 @@ if (!events.isEmpty()) { int idx = events.size() - 1; for (int i = idx; i < maxCols - 1; i++) { - events.add(createEmptyEvent()); + events.add(SchedulerUtil.createEmptyEvent()); } } else { Map emptyEvent = new HashMap(); @@ -307,13 +125,14 @@ } private String displayPersonalWeek() { - createSideCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(calendarForm + .getTargetCalendar()); List calendarList = new ArrayList(7); eventInWeekItems = new ArrayList>>>(7); allDayEventInWeekItems = new ArrayList>>(7); Calendar cal = calendarForm.getTargetCalendar(); - calendarList.add(cal); + // calendarList.add(cal); weekDayItems = new ArrayList>(); Map indexMap = new HashMap(7); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n @@ -349,239 +168,21 @@ List ssmList = onetimeScheduleService .getPersonalScheduleMappingList(userId, calendarList.get(0) .getTime(), calendarList.get(6).getTime()); - for (EventScheduleMapping ssm : ssmList) { - EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(-1); - } + SchedulerUtil.createPersonalWeekForOnetime(indexMap, ssmList, + eventInWeekItems, allDayEventInWeekItems); - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(7); - } - - int startIdx = sIndex.intValue(); - if (startIdx < 0) { - startIdx = 0; - } - int endIdx = eIndex.intValue(); - if (endIdx > 6) { - endIdx = 6; - } - - Time time = eventSchedule.getStartTime(); - for (int i = startIdx; i < endIdx + 1; i++) { - if (i == sIndex.intValue() && i == eIndex.intValue()) { - if (time == null) { - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } - } else if (i == sIndex.intValue() && i != eIndex.intValue()) { - if (time == null) { - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, false)); - } - } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (eventSchedule.getEndTime() == null) { - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(eventSchedule - .getEndTime()) - 1; - if (timeIndex < 0) { - timeIndex = 0; - } - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, false, true)); - } - } else if (i != sIndex.intValue() && i != eIndex.intValue()) { - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } - } - } - List rsmList = repeatScheduleService .getPersonalScheduleMappingList(userId, calendarList.get(0) .getTime(), calendarList.get(6).getTime()); - for (EventScheduleMapping rsm : rsmList) { - EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(0); - } + SchedulerUtil.createPersonalWeekForRepeat(indexMap, rsmList, + eventInWeekItems, allDayEventInWeekItems, weekDayItems); - Date endDate = eventSchedule.getEndDate(); - Integer eIndex; - if (endDate != null) { - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(6); - } - } else { - eIndex = Integer.valueOf(6); - } - - Time time = eventSchedule.getStartTime(); - for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } - } else if ("MTWTF".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek > 1 && dayOfWeek < 7) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("MWF".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("TT".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 3 || dayOfWeek == 5) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("WEEKLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == DateUtil.getDay(startDate) + 1) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("MONTHLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("date"); - if (d != null) { - int date = Integer.parseInt(d); - if (date == sDate) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } else if ("YEARLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("date"); - String m = (String) weekDayItems.get(i).get("month"); - if (d != null && m != null) { - int date = Integer.parseInt(d); - int month = Integer.parseInt(m); - if (date == sDate && month == sMonth) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } - } - } - } - } - - } - return "personalweek.jsp"; } private String displayPersonalMonth() { - createSideCalendar(); + Calendar cal = calendarForm.getTargetCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(cal); Map indexMap = new HashMap(50); int count = 0; @@ -600,7 +201,6 @@ count++; } - Calendar cal = calendarForm.getTargetCalendar(); Calendar startCal = CalendarUtil.getFirstCalendarInMonth(cal); int firstYear = CalendarUtil.getYear(startCal); int firstMonth = CalendarUtil.getMonth(startCal) + 1; @@ -618,270 +218,137 @@ List ssmList = onetimeScheduleService .getPersonalScheduleMappingList(userId, startCal.getTime(), endCal.getTime()); - for (EventScheduleMapping ssm : ssmList) { - EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(firstDateIndex - 1); - } + SchedulerUtil.createPersonalMonthForOnetime(firstDateIndex, + endDateIndex, indexMap, ssmList, calendarDayItems); - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(endDateIndex); - } + List rsmList = repeatScheduleService + .getPersonalScheduleMappingList(userId, startCal.getTime(), + endCal.getTime()); + SchedulerUtil.createPersonalMonthForRepeat(firstDateIndex, + endDateIndex, indexMap, rsmList, calendarDayItems); - int startIdx = sIndex.intValue(); - if (startIdx < firstDateIndex) { - startIdx = firstDateIndex; + return "personalmonth.jsp"; + } + + private String displayGroupWeek() { + Calendar cal = calendarForm.getTargetCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(cal); + + String userId = request.getRemoteUser(); + UserInfo userInfo = userInfoService.getUserInfo(userId); + if (StringUtils.isEmpty(calendarForm.userGroup)) { + if (userInfo.getRoleId() != null) { + calendarForm.userGroup = SchedulerConstants.ROLE_PREFIX + + userInfo.getRoleId(); + } else if (userInfo.getGroupId() != null) { + calendarForm.userGroup = SchedulerConstants.GROUP_PREFIX + + userInfo.getGroupId(); } - int endIdx = eIndex.intValue(); - if (endIdx > endDateIndex) { - endIdx = endDateIndex; - } + } - Time time = eventSchedule.getStartTime(); - for (int i = startIdx; i < endIdx + 1; i++) { - if (i == sIndex.intValue() && i == eIndex.intValue()) { - if (time == null) { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); + Calendar startCal = cal; + weekDayItems = new ArrayList>(); + Map indexMap = new HashMap(7); + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n + for (int i = 0; i < 7; i++) { + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int date = CalendarUtil.getDate(cal); + + Map map = new HashMap(); + map.put("displayedDate", sdf.format(cal.getTime())); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("date", String.valueOf(date)); + map.put("month", String.valueOf(month)); + map.put("year", String.valueOf(year)); + weekDayItems.add(map); + cal = CalendarUtil.getNext(cal); + + indexMap.put(year + "-" + month + "-" + date, i); + } + Calendar endCal = cal; + + List groupMemberList = new ArrayList(); + groupMemberList.add(userInfo); + if (!StringUtils.isEmpty(calendarForm.userGroup)) { + if (calendarForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + String roleId = calendarForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + List roleMappingList = userInfoService + .getUserInfoListByRole(roleId); + for (RoleMapping roleMapping : roleMappingList) { + if (!userId.equals(roleMapping.getUserId())) { + groupMemberList.add(roleMapping.getUserInfo()); } - } else if (i == sIndex.intValue() && i != eIndex.intValue()) { - if (time == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, false)); + } + } else if (calendarForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + String groupId = calendarForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + List groupMappingList = userInfoService + .getUserInfoListByGroup(groupId); + for (GroupMapping groupMapping : groupMappingList) { + if (!userId.equals(groupMapping.getUserId())) { + groupMemberList.add(groupMapping.getUserInfo()); } - } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (eventSchedule.getEndTime() == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(eventSchedule - .getEndTime()) - 1; - if (timeIndex < 0) { - timeIndex = 0; - } - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, false, true)); - } - } else if (i != sIndex.intValue() && i != eIndex.intValue()) { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); } } } - List rsmList = repeatScheduleService - .getPersonalScheduleMappingList(userId, startCal.getTime(), - endCal.getTime()); - for (EventScheduleMapping rsm : rsmList) { - EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(firstDateIndex); - } + groupMemberInWeekItems = new ArrayList>(); + for (UserInfo member : groupMemberList) { + groupMemberInWeekItems.add(createWeekScheduleMap(member, indexMap, + startCal, endCal)); + } - Date endDate = eventSchedule.getEndDate(); - Integer eIndex; - if (endDate != null) { - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(endDateIndex); - } - } else { - eIndex = Integer.valueOf(endDateIndex); + return "groupweek.jsp"; + } + + private Map createWeekScheduleMap(UserInfo userInfo, + Map indexMap, Calendar startCal, Calendar endCal) { + Map memberMap = new HashMap(); + + memberMap.put("userInfo", userInfo); + + List>>> eventInWeekItems = new ArrayList>>>( + 7); + List>> allDayEventInWeekItems = new ArrayList>>( + 7); + for (int i = 0; i < 7; i++) { + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); } + eventInWeekItems.add(eventInDayItems); - Time time = eventSchedule.getStartTime(); - for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } - } else if ("MTWTF".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek > 1 && dayOfWeek < 7) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("MWF".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("TT".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 3 || dayOfWeek == 5) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("WEEKLY".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == DateUtil.getDay(startDate) + 1) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("MONTHLY".equals(type)) { - String d = (String) calendarDayItems.get(i).get( - "dayOfMonth"); - if (d != null) { - int date = Integer.parseInt(d); - if (date == sDate) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } - } else if ("YEARLY".equals(type)) { - String d = (String) calendarDayItems.get(i).get( - "dayOfMonth"); - String m = (String) calendarDayItems.get(i).get("month"); - if (d != null && m != null) { - int date = Integer.parseInt(d); - int month = Integer.parseInt(m); - if (date == sDate && month == sMonth) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } - } - } + allDayEventInWeekItems.add(new ArrayList>()); + } + + List ssmList = onetimeScheduleService + .getPersonalScheduleMappingList(userInfo.getUserId(), startCal + .getTime(), endCal.getTime()); + SchedulerUtil.createPersonalWeekForOnetime(indexMap, ssmList, + eventInWeekItems, allDayEventInWeekItems); + + List rsmList = repeatScheduleService + .getPersonalScheduleMappingList(userInfo.getUserId(), startCal + .getTime(), endCal.getTime()); + SchedulerUtil.createPersonalWeekForRepeat(indexMap, rsmList, + eventInWeekItems, allDayEventInWeekItems, weekDayItems); + + for (int i = 0; i < 7; i++) { + for (int j = 0; j < 24; j++) { + if (eventInWeekItems.get(i).get(j) != null) { + allDayEventInWeekItems.get(i).addAll( + eventInWeekItems.get(i).get(j)); } } - } + memberMap.put("eventInWeekItems", allDayEventInWeekItems); - return "personalmonth.jsp"; + return memberMap; } @Execute(validator = false, input = "error.jsp") @@ -905,6 +372,11 @@ return displayPersonalMonth(); } + @Execute(validator = true, input = "error.jsp", urlPattern = "selectgroupweek/{year}/{month}/{date}") + public String selectgroupweek() { + return displayGroupWeek(); + } + @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthprevmonth/{year}/{month}/{date}") public String movepersonalmonthprevmonth() { calendarForm.changeCalendarToPrevMonth(); @@ -959,65 +431,34 @@ return displayPersonalDay(); } - private Map createCalendarDayItem(Calendar cal, - boolean thisMonth) { - Map map = new HashMap(); - map.put("year", String.valueOf(CalendarUtil.getYear(cal))); - map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1)); - map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal))); - map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); - map.put("thisMonth", String.valueOf(thisMonth)); - map.put("target", "false"); - return map; + @Execute(validator = true, input = "error.jsp", urlPattern = "movegroupweekprevmonth/{year}/{month}/{date}") + public String movegroupweekprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayGroupWeek(); } - private Map createCalendarDayItem(Calendar cal, int tYear, - int tMonth, int tDate, boolean thisMonth) { - int year = CalendarUtil.getYear(cal); - int month = CalendarUtil.getMonth(cal) + 1; - int dayOfMonth = CalendarUtil.getDate(cal); - int dayOfWeek = CalendarUtil.getDay(cal); - Map map = new HashMap(); - map.put("year", String.valueOf(year)); - map.put("month", String.valueOf(month)); - map.put("dayOfMonth", String.valueOf(dayOfMonth)); - map.put("dayOfWeek", String.valueOf(dayOfWeek)); - map.put("thisMonth", String.valueOf(thisMonth)); - if (year == tYear && month == tMonth && dayOfMonth == tDate) { - map.put("target", "true"); - } else { - map.put("target", "false"); - } - return map; + @Execute(validator = false, input = "error.jsp") + public String movegroupweekthismonth() { + calendarForm.changeCalendarToToday(); + return displayGroupWeek(); } - private Map createEvent(EventSchedule eventSchedule, - boolean start, boolean end) { - Map map = new HashMap(); - map.put("id", eventSchedule.getId().toString()); - map.put("title", eventSchedule.getTitle()); - if (start || end) { - StringBuilder buf = new StringBuilder(); - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n - if (start && eventSchedule.getStartTime() != null) { - buf.append(sdf.format(eventSchedule.getStartTime())); - } - buf.append("-"); - if (end && eventSchedule.getEndTime() != null) { - buf.append(sdf.format(eventSchedule.getEndTime())); - } - map.put("time", buf.toString()); - } - if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) { - map.put("repeat", "false"); - } else { - map.put("repeat", "true"); - map.put("type", ((EventSchedule) eventSchedule).getType()); - } + @Execute(validator = true, input = "error.jsp", urlPattern = "movegroupweeknextmonth/{year}/{month}/{date}") + public String movegroupweeknextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayGroupWeek(); + } - return map; + @Execute(validator = false, input = "error.jsp") + public String changeusergroup() { + return displayGroupWeek(); } + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + public CalendarForm getCalendarForm() { return calendarForm; } @@ -1052,4 +493,12 @@ this.request = request; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-21 08:04:12 UTC (rev 1391) @@ -45,6 +45,8 @@ // for edit/confirm/delete + public boolean editable; + @ActionForm private OnetimeScheduleForm onetimeScheduleForm; @@ -110,14 +112,16 @@ // reset edit page loadListPageParameters(); - return "/user/calendar/" + onetimeScheduleForm.returnType + "/" - + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month - + "/" + onetimeScheduleForm.date + "?redirect=true"; + return "/user/schedule/calendar/" + onetimeScheduleForm.returnType + + "/" + onetimeScheduleForm.year + "/" + + onetimeScheduleForm.month + "/" + onetimeScheduleForm.date + + "?redirect=true"; // return displayList(); } @Execute(validator = false, input = "error.jsp") public String editagain() { + editable = true; return "edit.jsp"; } @@ -140,6 +144,18 @@ return "confirm.jsp"; } + @Execute(validator = false, input = "error.jsp") + public String confirmpagefromdelete() { + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") public String createpage() { // page navi @@ -187,6 +203,7 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + editable = true; return "confirm.jsp"; } @@ -280,8 +297,8 @@ // reset edit page loadListPageParameters(); - return "/user/calendar/" + onetimeScheduleForm.returnType + "/" - + onetimeScheduleForm.year + "/" + return "/user/schedule/calendar/" + onetimeScheduleForm.returnType + + "/" + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month + "/" + onetimeScheduleForm.date + "?redirect=true"; // return displayList(); @@ -327,6 +344,7 @@ @Execute(validator = false, input = "error.jsp") public String setusers() { + editable = true; return "edit.jsp"; } @@ -402,6 +420,7 @@ @Execute(validator = false, input = "error.jsp") public String setfacilities() { + editable = true; return "edit.jsp"; } @@ -462,7 +481,15 @@ onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, onetimeScheduleForm); - onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + String userId = request.getRemoteUser(); + editable = false; + if (userId != null) { + for (String uid : onetimeScheduleForm.selectedUsers) { + if (userId.equals(uid)) { + editable = true; + } + } + } } private EventSchedule createEventSchedule() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-21 08:04:12 UTC (rev 1391) @@ -44,6 +44,7 @@ public List eventScheduleItems; // for edit/confirm/delete + public boolean editable; @ActionForm private RepeatScheduleForm repeatScheduleForm; @@ -110,7 +111,7 @@ // reset edit page loadListPageParameters(); - return "/user/calendar/" + repeatScheduleForm.returnType + "/" + return "/user/schedule/calendar/" + repeatScheduleForm.returnType + "/" + repeatScheduleForm.year + "/" + repeatScheduleForm.month + "/" + repeatScheduleForm.date + "?redirect=true"; // return displayList(); @@ -118,6 +119,7 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { + editable = true; return "edit.jsp"; } @@ -140,6 +142,18 @@ return "confirm.jsp"; } + @Execute(validator = false, input = "error.jsp") + public String confirmpagefromdelete() { + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}") public String createpage() { // page navi @@ -187,6 +201,7 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + editable = true; return "confirm.jsp"; } @@ -280,9 +295,10 @@ // reset edit page loadListPageParameters(); - return "/user/calendar/" + repeatScheduleForm.returnType + "/" - + repeatScheduleForm.year + "/" + repeatScheduleForm.month - + "/" + repeatScheduleForm.date + "?redirect=true"; + return "/user/schedule/calendar/" + repeatScheduleForm.returnType + + "/" + repeatScheduleForm.year + "/" + + repeatScheduleForm.month + "/" + repeatScheduleForm.date + + "?redirect=true"; // return displayList(); } catch (ActionMessagesException e) { log.error(e.getMessage(), e); @@ -324,6 +340,7 @@ @Execute(validator = false, input = "error.jsp") public String setusers() { + editable = true; return "edit.jsp"; } @@ -399,6 +416,7 @@ @Execute(validator = false, input = "error.jsp") public String setfacilities() { + editable = true; return "edit.jsp"; } @@ -459,7 +477,15 @@ repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, repeatScheduleForm); - repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers(); + String userId = request.getRemoteUser(); + editable = false; + if (userId != null) { + for (String uid : repeatScheduleForm.selectedUsers) { + if (userId.equals(uid)) { + editable = true; + } + } + } } private EventSchedule createEventSchedule() { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java 2008-11-21 08:04:12 UTC (rev 1391) @@ -23,6 +23,8 @@ @IntegerType public String date; + public String userGroup; + public Calendar getTargetCalendar() { if (!StringUtils.isEmpty(year) && !StringUtils.isEmpty(month) && !StringUtils.isEmpty(date)) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-21 08:04:12 UTC (rev 1391) @@ -46,6 +46,55 @@ } } + public UserInfo getUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setUserId_Equal(userId); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + return null; + } + + RoleMappingCB cb2 = new RoleMappingCB(); + cb2.query().setUserId_Equal(userId); + userInfo.setRoleMappingList(roleMappingBhv.selectList(cb2)); + + GroupMappingCB cb3 = new GroupMappingCB(); + cb3.query().setUserId_Equal(userId); + userInfo.setGroupMappingList(groupMappingBhv.selectList(cb3)); + + return userInfo; + } + + public List getUserInfoListByRole(String roleId) { + RoleMappingCB cb = new RoleMappingCB(); + + // setup + cb.setupSelect_UserInfo(); + + cb.query().setRoleId_Equal(roleId); + + cb.query().queryUserInfo().addOrderBy_UserId_Asc(); + + return roleMappingBhv.selectList(cb); + } + + public List getUserInfoListByGroup(String groupId) { + GroupMappingCB cb = new GroupMappingCB(); + + // setup + cb.setupSelect_UserInfo(); + + cb.query().setGroupId_Equal(groupId); + + cb.query().queryUserInfo().addOrderBy_UserId_Asc(); + + return groupMappingBhv.selectList(cb); + } + public List getAvailableUserList(String roleId, String groupId, String[] selectedUsers, String userId) { if (roleId == null && groupId == null) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-21 08:04:12 UTC (rev 1391) @@ -1,5 +1,803 @@ package jp.sf.pal.scheduler.util; +import java.sql.Time; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.DateUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; + public class SchedulerUtil { + public static List> createSideCalendar( + Calendar targetCalendar) { + List> calendarDayItems = new LinkedList>(); + int targetYear = CalendarUtil.getYear(targetCalendar); + int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1; + int targetDate = CalendarUtil.getDate(targetCalendar); + // create a previous month + Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); + int count = CalendarUtil.getDay(cal) - 1; + while (count > 0) { + cal = CalendarUtil.getPrev(cal); + calendarDayItems.add(0, createCalendarDayItem(cal, false)); + count--; + } + + // create this month + cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar); + int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil + .getLastCalendarInMonth(targetCalendar)); + for (int i = 0; i < lastDayOfMonth; i++) { + calendarDayItems.add(createCalendarDayItem(cal, targetYear, + targetMonth, targetDate, true)); + cal = CalendarUtil.getNext(cal); + } + + // create a next month + count = CalendarUtil.getDay(cal); + while (count != 1) { + calendarDayItems.add(createCalendarDayItem(cal, false)); + cal = CalendarUtil.getNext(cal); + count = CalendarUtil.getDay(cal); + } + return calendarDayItems; + } + + public static Map createCalendarDayItem(Calendar cal, + boolean thisMonth) { + Map map = new HashMap(); + map.put("year", String.valueOf(CalendarUtil.getYear(cal))); + map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1)); + map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal))); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("thisMonth", String.valueOf(thisMonth)); + map.put("target", "false"); + return map; + } + + public static Map createCalendarDayItem(Calendar cal, + int tYear, int tMonth, int tDate, boolean thisMonth) { + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int dayOfMonth = CalendarUtil.getDate(cal); + int dayOfWeek = CalendarUtil.getDay(cal); + Map map = new HashMap(); + map.put("year", String.valueOf(year)); + map.put("month", String.valueOf(month)); + map.put("dayOfMonth", String.valueOf(dayOfMonth)); + map.put("dayOfWeek", String.valueOf(dayOfWeek)); + map.put("thisMonth", String.valueOf(thisMonth)); + if (year == tYear && month == tMonth && dayOfMonth == tDate) { + map.put("target", "true"); + } else { + map.put("target", "false"); + } + return map; + } + + public static boolean compare(int year1, int month1, int date1, int year2, + int month2, int date2) { + if (year1 == year2 && month1 == month2 && date1 == date2) { + return true; + } + return false; + } + + public static Map createEmptyEvent() { + Map emptyEvent = new HashMap(); + emptyEvent.put("startEvent", "true"); + emptyEvent.put("cols", "1"); + emptyEvent.put("rows", "1"); + emptyEvent.put("time", "none"); + return emptyEvent; + } + + public static void putEventSchedule(EventSchedule eventSchedule, + Time startTime, Time endTime, + List>> eventInDayItems, + List> allDayEventInDayItems) { + if (startTime != null && endTime != null) { + int sIdx = DateUtil.getHours(startTime); + int eIdx = DateUtil.getHours(endTime) - 1; + if (DateUtil.getMinutes(endTime) != 0) { + eIdx++; + } + if (eIdx > 23) { + eIdx = 23; + } + for (int i = sIdx; i <= eIdx; i++) { + Map eventMap = createEvent(eventSchedule, true, + true); + if (i == sIdx) { + eventMap.put("startEvent", "true"); + int size = eIdx - sIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else if (startTime != null && endTime == null) { + int sIdx = DateUtil.getHours(startTime); + for (int i = sIdx; i <= 23; i++) { + Map eventMap = createEvent(eventSchedule, true, + false); + if (i == sIdx) { + eventMap.put("startEvent", "true"); + int size = 23 - sIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else if (startTime == null && endTime != null) { + int eIdx = DateUtil.getHours(endTime) - 1; + if (DateUtil.getMinutes(endTime) != 0) { + eIdx++; + } + if (eIdx > 23) { + eIdx = 23; + } + for (int i = 0; i <= eIdx; i++) { + Map eventMap = createEvent(eventSchedule, + false, true); + if (i == 0) { + eventMap.put("startEvent", "true"); + int size = eIdx + 1; + eventMap.put("rows", String.valueOf(size)); + eventMap.put("lastEvent", "true"); + } else { + eventMap.put("startEvent", "false"); + } + eventMap.put("cols", "1"); + eventInDayItems.get(i).add(eventMap); + } + } else { + // all day + allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); + } + + } + + public static Map createEvent(EventSchedule eventSchedule, + boolean start, boolean end) { + Map map = new HashMap(); + map.put("id", eventSchedule.getId().toString()); + map.put("title", eventSchedule.getTitle()); + map.put("secret", eventSchedule.getSecret()); + if (start || end) { + StringBuilder buf = new StringBuilder(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n + if (start && eventSchedule.getStartTime() != null) { + buf.append(sdf.format(eventSchedule.getStartTime())); + } + buf.append("-"); + if (end && eventSchedule.getEndTime() != null) { + buf.append(sdf.format(eventSchedule.getEndTime())); + } + map.put("time", buf.toString()); + } + if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) { + map.put("repeat", "false"); + } else { + map.put("repeat", "true"); + map.put("type", ((EventSchedule) eventSchedule).getType()); + } + + return map; + } + + public static void createPersonalDayForOnetime(int tYear, int tMonth, + int tDate, List ssmList, + List>> eventInDayItems, + List> allDayEventInDayItems) { + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, startTime, null, + eventInDayItems, allDayEventInDayItems); + } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, null, endTime, eventInDayItems, + allDayEventInDayItems); + } else { + // all day + allDayEventInDayItems.add(createEvent(eventSchedule, false, + false)); + } + } + } + + public static void createPersonalDayForRepeat(int tYear, int tMonth, + int tDate, int tDay, List rsmList, + List>> eventInDayItems, + List> allDayEventInDayItems) { + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + // int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } else if ("MTWTF".equals(type)) { + if (tDay > 1 && tDay < 7) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("MWF".equals(type)) { + if (tDay == 2 || tDay == 4 || tDay == 6) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("TT".equals(type)) { + if (tDay == 3 || tDay == 5) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("WEEKLY".equals(type)) { + if (tDay == DateUtil.getDay(startDate) + 1) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("MONTHLY".equals(type)) { + if (tDate == sDate) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("YEARLY".equals(type)) { + if (tDate == sDate && tMonth == sMonth) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } + + } + + } + + public static void createPersonalWeekForOnetime( + Map indexMap, List ssmList, + List>>> eventInWeekItems, + List>> allDayEventInWeekItems) { + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(-1); + } + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(7); + } + + int startIdx = sIndex.intValue(); + if (startIdx < 0) { + startIdx = 0; + } + int endIdx = eIndex.intValue(); + if (endIdx > 6) { + endIdx = 6; + } + + Time time = eventSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (eventSchedule.getEndTime() == null) { + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(eventSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } + } + } + + } + + public static void createPersonalWeekForRepeat( + Map indexMap, List rsmList, + List>>> eventInWeekItems, + List>> allDayEventInWeekItems, + List> weekDayItems) { + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(0); + } + + Date endDate = eventSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(6); + } + } else { + eIndex = Integer.valueOf(6); + } + + Time time = eventSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("MWF".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("TT".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("date"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } else if ("YEARLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("date"); + String m = (String) weekDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i) + .add( + createEvent(eventSchedule, + false, false)); + } + } + } + } + } + + } + + } + + public static void createPersonalMonthForOnetime(int firstDateIndex, + int endDateIndex, Map indexMap, + List ssmList, + List> calendarDayItems) { + for (EventScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex - 1); + } + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + + int startIdx = sIndex.intValue(); + if (startIdx < firstDateIndex) { + startIdx = firstDateIndex; + } + int endIdx = eIndex.intValue(); + if (endIdx > endDateIndex) { + endIdx = endDateIndex; + } + + Time time = eventSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (eventSchedule.getEndTime() == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(eventSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } + } + } + } + + public static void createPersonalMonthForRepeat(int firstDateIndex, + int endDateIndex, Map indexMap, + List rsmList, + List> calendarDayItems) { + for (EventScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex); + } + + Date endDate = eventSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + } else { + eIndex = Integer.valueOf(endDateIndex); + } + + Time time = eventSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("MWF".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("TT".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) calendarDayItems.get(i) + .get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get( + "dayOfMonth"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } else if ("YEARLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get( + "dayOfMonth"); + String m = (String) calendarDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); + } + } + } + } + } + + } + + } } Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -31,6 +31,7 @@ + ${f:u(u.userId)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -31,6 +31,7 @@ + ${f:u(f.id)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -31,6 +31,7 @@ + ${f:u(u.userId)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -32,6 +32,7 @@ + ${f:u(f.id)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -15,6 +15,8 @@
    • Week
    • Month
    • +
    • +
    • Group(Week)
    • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -15,6 +15,8 @@
    • Week
    • Month
    • +
    • +
    • Group(Week)
    • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -15,6 +15,8 @@
    • Week
    • Month
    • +
    • +
    • Group(Week)
    • Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -115,6 +115,7 @@
      @@ -128,7 +129,7 @@ "/> - "/> + "/> @@ -138,6 +139,7 @@
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -39,6 +39,7 @@ + ${f:u(u.userId)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -39,6 +39,7 @@ + ${f:u(u.id)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -128,6 +128,7 @@
      @@ -141,7 +142,7 @@ "/> - "/> + "/> @@ -151,6 +152,7 @@
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -39,6 +39,7 @@ + ${f:u(u.userId)} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-21 02:50:56 UTC (rev 1390) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-21 08:04:12 UTC (rev 1391) @@ -40,6 +40,7 @@ + ${f:u(u.id)} From svnnotify ¡÷ sourceforge.jp Fri Nov 21 17:12:10 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 21 Nov 2008 17:12:10 +0900 Subject: [pal-cvs 3657] [1392] removed empty directories. Message-ID: <1227255130.543371.5487.nullmailer@users.sourceforge.jp> Revision: 1392 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1392 Author: shinsuke Date: 2008-11-21 17:12:10 +0900 (Fri, 21 Nov 2008) Log Message: ----------- removed empty directories. Removed Paths: ------------- scheduler/trunk/src/main/webapp/WEB-INF/view/user/calendar/ -------------- next part -------------- From svnnotify ¡÷ sourceforge.jp Fri Nov 21 22:34:32 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 21 Nov 2008 22:34:32 +0900 Subject: [pal-cvs 3658] [1393] added facilities management. Message-ID: <1227274472.298290.10094.nullmailer@users.sourceforge.jp> Revision: 1393 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1393 Author: shinsuke Date: 2008-11-21 22:34:31 +0900 (Fri, 21 Nov 2008) Log Message: ----------- added facilities management. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp Added Paths: ----------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/FacilityAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/CalendarForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/FacilityForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/OnetimeScheduleForm.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/RepeatScheduleForm.java scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp -------------- next part -------------- Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,499 @@ +package jp.sf.pal.scheduler.action.user.facility; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; +import jp.sf.pal.scheduler.form.user.facility.CalendarForm; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.util.SchedulerUtil; + +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; + +public class CalendarAction implements Serializable { + + private static final long serialVersionUID = -222687807313390813L; + + public List> calendarDayItems; + + public List> weekDayItems; + + public List>>> eventInWeekItems; + + public List>> allDayEventInWeekItems; + + public List>> eventInDayItems; + + public List> allDayEventInDayItems; + + public List> facilityInWeekItems; + + public int maxCols; + + public Facility facility; + + @ActionForm + private CalendarForm calendarForm; + + private OnetimeScheduleService onetimeScheduleService; + + private RepeatScheduleService repeatScheduleService; + + private FacilityGroupService facilityGroupService; + + private FacilityService facilityService; + + private transient HttpServletRequest request; + + private String displayFacilityDay() { + Calendar cal = calendarForm.getTargetCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(cal); + + Calendar nextCal = cal; + int tYear = CalendarUtil.getYear(cal); + int tMonth = CalendarUtil.getMonth(cal) + 1; + int tDate = CalendarUtil.getDate(cal); + int tDay = CalendarUtil.getDay(cal); + eventInDayItems = new ArrayList>>(); + allDayEventInDayItems = new ArrayList>(); + for (int i = 0; i < 24; i++) { + eventInDayItems.add(new ArrayList>()); + } + + Integer facilityId = Integer.parseInt(calendarForm.facilityId); + facility = facilityService.getFacility(facilityId); + List ssmList = onetimeScheduleService + .getFacilityScheduleMappingList(facilityId, cal.getTime(), + nextCal.getTime()); + SchedulerUtil.createFacilityDayForOnetime(tYear, tMonth, tDate, + ssmList, eventInDayItems, allDayEventInDayItems); + + maxCols = 0; + for (List> events : eventInDayItems) { + if (!events.isEmpty() && events.size() > maxCols) { + maxCols = events.size(); + } + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty()) { + int idx = events.size() - 1; + for (int i = idx; i < maxCols - 1; i++) { + events.add(SchedulerUtil.createEmptyEvent()); + } + } + } + + List rsmList = repeatScheduleService + .getFacilityScheduleMappingList(facilityId, cal.getTime(), + nextCal.getTime()); + SchedulerUtil.createFacilityDayForRepeat(tYear, tMonth, tDate, tDay, + rsmList, eventInDayItems, allDayEventInDayItems); + + for (List> events : eventInDayItems) { + if (!events.isEmpty() && events.size() > maxCols) { + maxCols = events.size(); + } + } + + for (List> events : eventInDayItems) { + if (!events.isEmpty()) { + int idx = events.size() - 1; + for (int i = idx; i < maxCols - 1; i++) { + events.add(SchedulerUtil.createEmptyEvent()); + } + } else { + Map emptyEvent = new HashMap(); + emptyEvent.put("noEvent", "true"); + events.add(emptyEvent); + } + } + + return "facilityday.jsp"; + } + + private String displayFacilityWeek() { + calendarDayItems = SchedulerUtil.createSideCalendar(calendarForm + .getTargetCalendar()); + + List calendarList = new ArrayList(7); + eventInWeekItems = new ArrayList>>>(7); + allDayEventInWeekItems = new ArrayList>>(7); + Calendar cal = calendarForm.getTargetCalendar(); + weekDayItems = new ArrayList>(); + Map indexMap = new HashMap(7); + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n + for (int i = 0; i < 7; i++) { + calendarList.add(cal); + + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int date = CalendarUtil.getDate(cal); + + Map map = new HashMap(); + map.put("displayedDate", sdf.format(cal.getTime())); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("date", String.valueOf(date)); + map.put("month", String.valueOf(month)); + map.put("year", String.valueOf(year)); + weekDayItems.add(map); + cal = CalendarUtil.getNext(cal); + + indexMap.put(year + "-" + month + "-" + date, i); + + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + eventInWeekItems.add(eventInDayItems); + + allDayEventInWeekItems.add(new ArrayList>()); + } + + Integer facilityId = Integer.parseInt(calendarForm.facilityId); + facility = facilityService.getFacility(facilityId); + List ssmList = onetimeScheduleService + .getFacilityScheduleMappingList(facilityId, calendarList.get(0) + .getTime(), calendarList.get(6).getTime()); + SchedulerUtil.createFacilityWeekForOnetime(indexMap, ssmList, + eventInWeekItems, allDayEventInWeekItems); + + List rsmList = repeatScheduleService + .getFacilityScheduleMappingList(facilityId, calendarList.get(0) + .getTime(), calendarList.get(6).getTime()); + SchedulerUtil.createFacilityWeekForRepeat(indexMap, rsmList, + eventInWeekItems, allDayEventInWeekItems, weekDayItems); + + return "facilityweek.jsp"; + } + + private String displayFacilityMonth() { + Calendar cal = calendarForm.getTargetCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(cal); + + Map indexMap = new HashMap(50); + int count = 0; + for (Map calendarDay : calendarDayItems) { + indexMap.put(calendarDay.get("year") + "-" + + calendarDay.get("month") + "-" + + calendarDay.get("dayOfMonth"), count); + calendarDay.put("allDayEventItems", + new ArrayList>()); + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + calendarDay.put("eventItems", eventInDayItems); + count++; + } + + Calendar startCal = CalendarUtil.getFirstCalendarInMonth(cal); + int firstYear = CalendarUtil.getYear(startCal); + int firstMonth = CalendarUtil.getMonth(startCal) + 1; + int firstDate = CalendarUtil.getDate(startCal); + int firstDateIndex = indexMap.get(firstYear + "-" + firstMonth + "-" + + firstDate); + Calendar endCal = CalendarUtil.getLastCalendarInMonth(cal); + int lastYear = CalendarUtil.getYear(endCal); + int lastMonth = CalendarUtil.getMonth(endCal) + 1; + int lastDate = CalendarUtil.getDate(endCal); + int endDateIndex = indexMap.get(lastYear + "-" + lastMonth + "-" + + lastDate); + + Integer facilityId = Integer.parseInt(calendarForm.facilityId); + facility = facilityService.getFacility(facilityId); + List ssmList = onetimeScheduleService + .getFacilityScheduleMappingList(facilityId, startCal.getTime(), + endCal.getTime()); + SchedulerUtil.createFacilityMonthForOnetime(firstDateIndex, + endDateIndex, indexMap, ssmList, calendarDayItems); + + List rsmList = repeatScheduleService + .getFacilityScheduleMappingList(facilityId, startCal.getTime(), + endCal.getTime()); + SchedulerUtil.createFacilityMonthForRepeat(firstDateIndex, + endDateIndex, indexMap, rsmList, calendarDayItems); + + return "facilitymonth.jsp"; + } + + private String displayGroupWeek() { + Calendar cal = calendarForm.getTargetCalendar(); + calendarDayItems = SchedulerUtil.createSideCalendar(cal); + + Calendar startCal = cal; + weekDayItems = new ArrayList>(); + Map indexMap = new HashMap(7); + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n + for (int i = 0; i < 7; i++) { + int year = CalendarUtil.getYear(cal); + int month = CalendarUtil.getMonth(cal) + 1; + int date = CalendarUtil.getDate(cal); + + Map map = new HashMap(); + map.put("displayedDate", sdf.format(cal.getTime())); + map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); + map.put("date", String.valueOf(date)); + map.put("month", String.valueOf(month)); + map.put("year", String.valueOf(year)); + weekDayItems.add(map); + cal = CalendarUtil.getNext(cal); + + indexMap.put(year + "-" + month + "-" + date, i); + } + Calendar endCal = cal; + + if (calendarForm.facilityGroupId == null) { + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + calendarForm.facilityGroupId = facilityGroupList.get(0).getId() + .toString(); + } + } + + List facilityList; + if (calendarForm.facilityGroupId != null) { + facilityList = facilityService.getFacilityListByGroup(Integer + .parseInt(calendarForm.facilityGroupId)); + } else { + facilityList = new ArrayList(); + } + + facilityInWeekItems = new ArrayList>(); + for (Facility facility : facilityList) { + facilityInWeekItems.add(createWeekScheduleMap(facility, indexMap, + startCal, endCal)); + } + + return "groupweek.jsp"; + } + + private Map createWeekScheduleMap(Facility facility, + Map indexMap, Calendar startCal, Calendar endCal) { + Map memberMap = new HashMap(); + + memberMap.put("facility", facility); + + List>>> eventInWeekItems = new ArrayList>>>( + 7); + List>> allDayEventInWeekItems = new ArrayList>>( + 7); + for (int i = 0; i < 7; i++) { + List>> eventInDayItems = new ArrayList>>( + 24); + for (int j = 0; j < 24; j++) { + eventInDayItems.add(new ArrayList>()); + } + eventInWeekItems.add(eventInDayItems); + + allDayEventInWeekItems.add(new ArrayList>()); + } + + List ssmList = onetimeScheduleService + .getFacilityScheduleMappingList(facility.getId(), startCal + .getTime(), endCal.getTime()); + SchedulerUtil.createFacilityWeekForOnetime(indexMap, ssmList, + eventInWeekItems, allDayEventInWeekItems); + + List rsmList = repeatScheduleService + .getFacilityScheduleMappingList(facility.getId(), startCal + .getTime(), endCal.getTime()); + SchedulerUtil.createFacilityWeekForRepeat(indexMap, rsmList, + eventInWeekItems, allDayEventInWeekItems, weekDayItems); + + for (int i = 0; i < 7; i++) { + for (int j = 0; j < 24; j++) { + if (eventInWeekItems.get(i).get(j) != null) { + allDayEventInWeekItems.get(i).addAll( + eventInWeekItems.get(i).get(j)); + } + } + } + memberMap.put("eventInWeekItems", allDayEventInWeekItems); + + return memberMap; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayFacilityWeek(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "display/{facilityId}") + public String display() { + calendarForm.changeCalendarToToday(); + return displayFacilityWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectfacilityday/{facilityId}/{year}/{month}/{date}") + public String selectfacilityday() { + return displayFacilityDay(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectfacilityweek/{facilityId}/{year}/{month}/{date}") + public String selectfacilityweek() { + return displayFacilityWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectfacilitymonth/{facilityId}/{year}/{month}/{date}") + public String selectfacilitymonth() { + return displayFacilityMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "selectgroupweek/{facilityId}/{year}/{month}/{date}") + public String selectgroupweek() { + return displayGroupWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movefacilitymonthprevmonth/{facilityId}/{year}/{month}/{date}") + public String movefacilitymonthprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayFacilityMonth(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movefacilitymonththismonth/{facilityId}") + public String movefacilitymonththismonth() { + calendarForm.changeCalendarToToday(); + return displayFacilityMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movefacilitymonthnextmonth/{facilityId}/{year}/{month}/{date}") + public String movefacilitymonthnextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayFacilityMonth(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movefacilityweekprevmonth/{facilityId}/{year}/{month}/{date}") + public String movefacilityweekprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayFacilityWeek(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movefacilityweekthismonth/{facilityId}") + public String movefacilityweekthismonth() { + calendarForm.changeCalendarToToday(); + return displayFacilityWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movefacilityweeknextmonth/{facilityId}/{year}/{month}/{date}") + public String movefacilityweeknextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayFacilityWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movefacilitydayprevmonth/{facilityId}/{year}/{month}/{date}") + public String movefacilitydayprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayFacilityDay(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movefacilitydaythismonth/{facilityId}") + public String movefacilitydaythismonth() { + calendarForm.changeCalendarToToday(); + return displayFacilityDay(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movefacilitydaynextmonth/{facilityId}/{year}/{month}/{date}") + public String movefacilitydaynextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayFacilityDay(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movegroupweekprevmonth/{year}/{month}/{date}") + public String movegroupweekprevmonth() { + calendarForm.changeCalendarToPrevMonth(); + return displayGroupWeek(); + } + + @Execute(validator = false, input = "error.jsp") + public String movegroupweekthismonth() { + calendarForm.changeCalendarToToday(); + return displayGroupWeek(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "movegroupweeknextmonth/{year}/{month}/{date}") + public String movegroupweeknextmonth() { + calendarForm.changeCalendarToNextMonth(); + return displayGroupWeek(); + } + + @Execute(validator = false, input = "error.jsp") + public String changefacilitygroup() { + return displayGroupWeek(); + } + + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + public CalendarForm getCalendarForm() { + return calendarForm; + } + + public void setCalendarForm(CalendarForm calendarForm) { + this.calendarForm = calendarForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/FacilityAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/FacilityAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/FacilityAction.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,421 @@ +package jp.sf.pal.scheduler.action.user.facility; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.dxo.FacilityDxo; +import jp.sf.pal.scheduler.form.user.facility.FacilityForm; +import jp.sf.pal.scheduler.pager.FacilityPager; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class FacilityAction implements Serializable { + + private static final long serialVersionUID = 7317093462215155891L; + + private static final Log log = LogFactory.getLog(FacilityAction.class); + + // for list + + public List facilityItems; + + // for edit/confirm/delete + + @ActionForm + private FacilityForm facilityForm; + + private FacilityService facilityService; + + private FacilityGroupService facilityGroupService; + + private FacilityPager facilityPager; + + private PagerDxo pagerDxo; + + private FacilityDxo facilityDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + facilityItems = facilityService.getFacilityList(facilityPager); + + // restore from pager + pagerDxo.convertFromPagerToForm(facilityPager, facilityForm); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(facilityForm, facilityPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + pagerDxo.convertFromFormToPager(facilityForm, facilityPager); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + facilityPager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") + public String confirmpage() { + if (facilityForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + facilityForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String createpage() { + // page navi + facilityForm.initialize(); + facilityForm.mode = CommonConstants.CREATE_MODE; + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (facilityForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException( + "errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, facilityForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + facilityForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (facilityForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + facilityForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + facilityForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadFacility(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { + try { + Facility facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facilityService.moveUp(facility); + SAStrutsUtil.addMessage(request, "success.moveup_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_moveup_facility"); + } + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { + try { + Facility facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facilityService.moveDown(facility); + SAStrutsUtil.addMessage(request, "success.movedown_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_movedown_facility"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + Facility facility = createFacility(); + facilityService.store(facility); + SAStrutsUtil.addMessage(request, "success.create_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_facility"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + Facility facility = createFacility(); + facilityService.store(facility); + SAStrutsUtil.addMessage(request, "success.update_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_facility"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + String userId = request.getRemoteUser(); + Facility facility = createFacility(); + facilityService.disable(Integer.parseInt(facilityForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_facility"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_facility"); + } + } + + private void loadFacility() { + + Facility facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException("errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facilityDxo.convertFromFacilityToForm(facility, facilityForm); + + } + + private Facility createFacility() { + Facility facility; + String userId = request.getRemoteUser(); + if (facilityForm.mode == CommonConstants.EDIT_MODE) { + facility = facilityService.getFacility(Integer + .parseInt(facilityForm.id)); + if (facility == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_facility", + new Object[] { facilityForm.id }); + } + facility.setUpdatedBy(userId); + } else { + facility = new Facility(); + facility.setUpdatedBy(userId); + facility.setCreatedBy(userId); + } + facilityDxo.convertFromFormToFacility(facilityForm, facility); + + return facility; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public FacilityForm getFacilityForm() { + return facilityForm; + } + + public void setFacilityForm(FacilityForm facilityForm) { + this.facilityForm = facilityForm; + } + + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public FacilityPager getFacilityPager() { + return facilityPager; + } + + public void setFacilityPager(FacilityPager facilityPager) { + this.facilityPager = facilityPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public FacilityDxo getFacilityDxo() { + return facilityDxo; + } + + public void setFacilityDxo(FacilityDxo facilityDxo) { + this.facilityDxo = facilityDxo; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/FacilityAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,726 @@ +package jp.sf.pal.scheduler.action.user.facility; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.OnetimeScheduleDxo; +import jp.sf.pal.scheduler.form.user.facility.OnetimeScheduleForm; +import jp.sf.pal.scheduler.pager.OnetimeSchedulePager; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; +import jp.sf.pal.scheduler.service.OnetimeScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class OnetimeScheduleAction implements Serializable { + + private static final long serialVersionUID = -492597057773820702L; + + private static final Log log = LogFactory + .getLog(OnetimeScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + + public boolean editable; + + @ActionForm + private OnetimeScheduleForm onetimeScheduleForm; + + private OnetimeScheduleService onetimeScheduleService; + + private UserInfoService userInfoService; + + private FacilityService facilityService; + + private FacilityGroupService facilityGroupService; + + private OnetimeSchedulePager onetimeSchedulePager; + + private PagerDxo pagerDxo; + + private OnetimeScheduleDxo onetimeScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = onetimeScheduleService.getEventScheduleList( + onetimeSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(onetimeScheduleForm, onetimeSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + onetimeSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/facility/calendar/" + onetimeScheduleForm.returnType + + "/" + onetimeScheduleForm.facilityId + "/" + + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month + + "/" + onetimeScheduleForm.date + "?redirect=true"; + + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + editable = true; + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{facilityId}/{year}/{month}/{date}") + public String confirmpage() { + if (onetimeScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + onetimeScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String confirmpagefromdelete() { + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{facilityId}/{year}/{month}/{date}") + public String createpage() { + // page navi + onetimeScheduleForm.initialize(); + onetimeScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + onetimeScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + if (onetimeScheduleForm.facilityId != null + && Integer.parseInt(onetimeScheduleForm.facilityId) > 0) { + onetimeScheduleForm.selectedFacilities = new String[] { onetimeScheduleForm.facilityId }; + } + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (onetimeScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + editable = true; + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (onetimeScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + onetimeScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + onetimeScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + onetimeScheduleForm.id = String.valueOf(eventSchedule.getId()); + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + onetimeScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + onetimeScheduleService + .disable(Long.parseLong(onetimeScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/facility/calendar/" + onetimeScheduleForm.returnType + + "/" + onetimeScheduleForm.facilityId + "/" + + onetimeScheduleForm.year + "/" + + onetimeScheduleForm.month + "/" + + onetimeScheduleForm.date + "?redirect=true"; + + // return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + if (onetimeScheduleForm.userGroup == null) { + // TODO + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + onetimeScheduleForm.userGroup = userGroupList.get(0).get( + "value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = true, input = "error.jsp") + public String changeusergroup() { + if (onetimeScheduleForm.userGroup == null) { + // TODO + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + onetimeScheduleForm.userGroup = userGroupList.get(0).get( + "value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + editable = true; + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.addedUsers != null) { + for (String userId : onetimeScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (onetimeScheduleForm.selectedUsers != null) { + for (String userId : onetimeScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (onetimeScheduleForm.removedUsers != null) { + for (String userId : onetimeScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + onetimeScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + onetimeScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String selectfacilities() { + if (onetimeScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + onetimeScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String changefacilitygroup() { + if (onetimeScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + onetimeScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setfacilities() { + editable = true; + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addfacilities() { + List facilityList = new ArrayList(); + if (onetimeScheduleForm.selectedFacilities != null) { + for (String facilityId : onetimeScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (onetimeScheduleForm.addedFacilities != null) { + for (String facilityId : onetimeScheduleForm.addedFacilities) { + facilityList.add(facilityId); + } + } + if (!facilityList.isEmpty()) { + onetimeScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + onetimeScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removefacilities() { + List facilityList = new ArrayList(); + if (onetimeScheduleForm.selectedFacilities != null) { + for (String facilityId : onetimeScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (onetimeScheduleForm.removedFacilities != null) { + for (String facilityId : onetimeScheduleForm.removedFacilities) { + facilityList.remove(facilityId); + } + } + if (!facilityList.isEmpty()) { + onetimeScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + onetimeScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = onetimeScheduleService.getEventSchedule( + Long.parseLong(onetimeScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { onetimeScheduleForm.id }); + } + onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + onetimeScheduleForm); + + String userId = request.getRemoteUser(); + editable = false; + if (userId != null) { + for (String uid : onetimeScheduleForm.selectedUsers) { + if (userId.equals(uid)) { + editable = true; + } + } + } + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (onetimeScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = onetimeScheduleService.getEventSchedule(Long + .parseLong(onetimeScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + onetimeScheduleDxo.convertFromFormToEventSchedule(onetimeScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + + public List getAvailableUserItems() { + String roleId = null; + String groupId = null; + if (onetimeScheduleForm.userGroup != null) { + if (onetimeScheduleForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + roleId = onetimeScheduleForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + } else if (onetimeScheduleForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + groupId = onetimeScheduleForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + } + } + if (roleId == null && groupId == null) { + return new ArrayList(); + } else { + return userInfoService.getAvailableUserList(roleId, groupId, + onetimeScheduleForm.selectedUsers, null); + } + } + + public List getSelectedUserItems() { + if (onetimeScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(onetimeScheduleForm.selectedUsers); + } + + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + public List getAvailableFacilityItems() { + Integer facilityGroupId = null; + if (onetimeScheduleForm.facilityGroupId != null) { + facilityGroupId = Integer + .parseInt(onetimeScheduleForm.facilityGroupId); + } + return facilityService.getAvailableFacilityList( + onetimeScheduleForm.selectedFacilities, facilityGroupId); + } + + public List getSelectedFacilityItems() { + if (onetimeScheduleForm.selectedFacilities == null) { + return null; + } + return facilityService + .getSelectedFacilityList(onetimeScheduleForm.selectedFacilities); + } + + public List getYearItems() { + int year = CalendarUtil.getYear(CalendarUtil.getToday()); + List items = new ArrayList(); + for (int i = year - 10; i < year + 5; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getMonthItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 13; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getDateItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 32; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List> getHourItems() { + List> items = new ArrayList>(); + for (int i = 0; i < 24; i++) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + // TODO i18n + Map map = new HashMap(); + map.put("label", buf.toString()); + map.put("value", buf.toString()); + items.add(map); + } + return items; + } + + public List getMinuteItems() { + List items = new ArrayList(); + for (int i = 0; i < 60; i += 5) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + items.add(buf.toString()); + } + return items; + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public OnetimeScheduleForm getOnetimeScheduleForm() { + return onetimeScheduleForm; + } + + public void setOnetimeScheduleForm(OnetimeScheduleForm onetimeScheduleForm) { + this.onetimeScheduleForm = onetimeScheduleForm; + } + + public OnetimeScheduleService getOnetimeScheduleService() { + return onetimeScheduleService; + } + + public void setOnetimeScheduleService( + OnetimeScheduleService onetimeScheduleService) { + this.onetimeScheduleService = onetimeScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public OnetimeSchedulePager getOnetimeSchedulePager() { + return onetimeSchedulePager; + } + + public void setOnetimeSchedulePager( + OnetimeSchedulePager onetimeSchedulePager) { + this.onetimeSchedulePager = onetimeSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public OnetimeScheduleDxo getOnetimeScheduleDxo() { + return onetimeScheduleDxo; + } + + public void setOnetimeScheduleDxo(OnetimeScheduleDxo onetimeScheduleDxo) { + this.onetimeScheduleDxo = onetimeScheduleDxo; + } + + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,720 @@ +package jp.sf.pal.scheduler.action.user.facility; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.scheduler.SchedulerConstants; +import jp.sf.pal.scheduler.common.CommonConstants; +import jp.sf.pal.scheduler.common.dxo.PagerDxo; +import jp.sf.pal.scheduler.common.util.CalendarUtil; +import jp.sf.pal.scheduler.common.util.ConfigUtil; +import jp.sf.pal.scheduler.common.util.SAStrutsUtil; +import jp.sf.pal.scheduler.db.exentity.EventSchedule; +import jp.sf.pal.scheduler.db.exentity.Facility; +import jp.sf.pal.scheduler.db.exentity.FacilityGroup; +import jp.sf.pal.scheduler.db.exentity.UserInfo; +import jp.sf.pal.scheduler.dxo.RepeatScheduleDxo; +import jp.sf.pal.scheduler.form.user.facility.RepeatScheduleForm; +import jp.sf.pal.scheduler.pager.RepeatSchedulePager; +import jp.sf.pal.scheduler.service.FacilityGroupService; +import jp.sf.pal.scheduler.service.FacilityService; +import jp.sf.pal.scheduler.service.RepeatScheduleService; +import jp.sf.pal.scheduler.service.UserInfoService; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class RepeatScheduleAction implements Serializable { + + private static final long serialVersionUID = -2000704312247639038L; + + private static final Log log = LogFactory + .getLog(RepeatScheduleAction.class); + + // for list + + public List eventScheduleItems; + + // for edit/confirm/delete + public boolean editable; + + @ActionForm + private RepeatScheduleForm repeatScheduleForm; + + private RepeatScheduleService repeatScheduleService; + + private UserInfoService userInfoService; + + private FacilityService facilityService; + + private FacilityGroupService facilityGroupService; + + private RepeatSchedulePager repeatSchedulePager; + + private PagerDxo pagerDxo; + + private RepeatScheduleDxo repeatScheduleDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + eventScheduleItems = repeatScheduleService.getEventScheduleList( + repeatSchedulePager, null); + + // restore from pager + // eventScheduleForm.eventSchedulename = + // eventSchedulePager.getGroupInfoname(); + + return "index.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "list/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(repeatScheduleForm, repeatSchedulePager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // eventSchedulePager.setGroupInfoname(eventScheduleForm. + // eventSchedulename); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + repeatSchedulePager.clear(); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String back() { + // reset edit page + loadListPageParameters(); + + return "/user/facility/calendar/" + repeatScheduleForm.returnType + "/" + + repeatScheduleForm.facilityId + "/" + repeatScheduleForm.year + + "/" + repeatScheduleForm.month + "/" + + repeatScheduleForm.date + "?redirect=true"; + // return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String editagain() { + editable = true; + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}/{returnType}/{facilityId}/{year}/{month}/{date}") + public String confirmpage() { + if (repeatScheduleForm.mode != CommonConstants.CONFIRM_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.CONFIRM_MODE, + repeatScheduleForm.mode }); + } + + String userId = request.getRemoteUser(); + userInfoService.initUserInfo(userId); + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String confirmpagefromdelete() { + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{facilityId}/{year}/{month}/{date}") + public String createpage() { + // page navi + repeatScheduleForm.initialize(); + repeatScheduleForm.mode = CommonConstants.CREATE_MODE; + + // set me to assigned + String userId = request.getRemoteUser(); + repeatScheduleForm.selectedUsers = new String[] { userId }; + userInfoService.initUserInfo(userId); + + if (repeatScheduleForm.facilityId != null + && Integer.parseInt(repeatScheduleForm.facilityId) > 0) { + repeatScheduleForm.selectedFacilities = new String[] { repeatScheduleForm.facilityId }; + } + + // update edit page + loadDetailsPageParameters(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") + public String editpage() { + if (repeatScheduleForm.mode != CommonConstants.EDIT_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.EDIT_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String editpagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.EDIT_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "edit.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String confirm() { + editable = true; + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") + public String deletepage() { + if (repeatScheduleForm.mode != CommonConstants.DELETE_MODE) { + throw new ActionMessagesException("errors.invalid.mode", + new Object[] { CommonConstants.DELETE_MODE, + repeatScheduleForm.mode }); + } + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String deletepagefromconfirm() { + repeatScheduleForm.mode = CommonConstants.DELETE_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } + + @Execute(validator = true, input = "edit.jsp") + public String create() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.create_eventSchedule"); + + repeatScheduleForm.id = String.valueOf(eventSchedule.getId()); + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_create_eventSchedule"); + } + } + + @Execute(validator = true, input = "edit.jsp") + public String update() { + try { + EventSchedule eventSchedule = createEventSchedule(); + repeatScheduleService.store(eventSchedule); + SAStrutsUtil.addMessage(request, "success.update_eventSchedule"); + + repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE; + + // update edit page + loadDetailsPageParameters(); + + loadEventSchedule(); + + return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_update_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String delete() { + try { + repeatScheduleService.disable( + Long.parseLong(repeatScheduleForm.id), request + .getRemoteUser()); + SAStrutsUtil.addMessage(request, "success.delete_eventSchedule"); + + // reset edit page + loadListPageParameters(); + + return "/user/facility/calendar/" + repeatScheduleForm.returnType + + "/" + repeatScheduleForm.facilityId + "/" + + repeatScheduleForm.year + "/" + repeatScheduleForm.month + + "/" + repeatScheduleForm.date + "?redirect=true"; + + // return displayList(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_eventSchedule"); + } + } + + @Execute(validator = false, input = "error.jsp") + public String selectusers() { + if (repeatScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + repeatScheduleForm.userGroup = userGroupList.get(0) + .get("value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = true, input = "error.jsp") + public String changeusergroup() { + if (repeatScheduleForm.userGroup == null) { + String userId = request.getRemoteUser(); + List> userGroupList = userInfoService + .getUserGroupList(userId); + if (!userGroupList.isEmpty()) { + repeatScheduleForm.userGroup = userGroupList.get(0) + .get("value"); + } + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setusers() { + editable = true; + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.addedUsers != null) { + for (String userId : repeatScheduleForm.addedUsers) { + userList.add(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removeusers() { + List userList = new ArrayList(); + if (repeatScheduleForm.selectedUsers != null) { + for (String userId : repeatScheduleForm.selectedUsers) { + userList.add(userId); + } + } + if (repeatScheduleForm.removedUsers != null) { + for (String userId : repeatScheduleForm.removedUsers) { + userList.remove(userId); + } + } + if (!userList.isEmpty()) { + repeatScheduleForm.selectedUsers = userList.toArray(new String[0]); + } else { + repeatScheduleForm.selectedUsers = null; + } + return "userlist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String selectfacilities() { + if (repeatScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + repeatScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String changefacilitygroup() { + if (repeatScheduleForm.facilityGroupId == null) { + // TODO + List facilityGroupList = facilityGroupService + .getFacilityGroupList(); + if (!facilityGroupList.isEmpty()) { + repeatScheduleForm.facilityGroupId = facilityGroupList.get(0) + .getId().toString(); + } + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String setfacilities() { + editable = true; + return "edit.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String addfacilities() { + List facilityList = new ArrayList(); + if (repeatScheduleForm.selectedFacilities != null) { + for (String facilityId : repeatScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (repeatScheduleForm.addedFacilities != null) { + for (String facilityId : repeatScheduleForm.addedFacilities) { + facilityList.add(facilityId); + } + } + if (!facilityList.isEmpty()) { + repeatScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + repeatScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + @Execute(validator = false, input = "error.jsp") + public String removefacilities() { + List facilityList = new ArrayList(); + if (repeatScheduleForm.selectedFacilities != null) { + for (String facilityId : repeatScheduleForm.selectedFacilities) { + facilityList.add(facilityId); + } + } + if (repeatScheduleForm.removedFacilities != null) { + for (String facilityId : repeatScheduleForm.removedFacilities) { + facilityList.remove(facilityId); + } + } + if (!facilityList.isEmpty()) { + repeatScheduleForm.selectedFacilities = facilityList + .toArray(new String[0]); + } else { + repeatScheduleForm.selectedFacilities = null; + } + return "facilitylist.jsp"; + } + + private void loadEventSchedule() { + + EventSchedule eventSchedule = repeatScheduleService.getEventSchedule( + Long.parseLong(repeatScheduleForm.id), null); + if (eventSchedule == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_eventSchedule", + new Object[] { repeatScheduleForm.id }); + } + repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule, + repeatScheduleForm); + + String userId = request.getRemoteUser(); + editable = false; + if (userId != null) { + for (String uid : repeatScheduleForm.selectedUsers) { + if (userId.equals(uid)) { + editable = true; + } + } + } + } + + private EventSchedule createEventSchedule() { + String userId = request.getRemoteUser(); + EventSchedule eventSchedule; + if (repeatScheduleForm.mode == CommonConstants.EDIT_MODE) { + eventSchedule = repeatScheduleService.getEventSchedule(Long + .parseLong(repeatScheduleForm.id), null); + eventSchedule.setUpdatedBy(userId); + } else { + eventSchedule = new EventSchedule(); + eventSchedule.setUpdatedBy(userId); + eventSchedule.setCreatedBy(userId); + } + repeatScheduleDxo.convertFromFormToEventSchedule(repeatScheduleForm, + eventSchedule); + + return eventSchedule; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + public List> getUserGroupItems() { + String userId = request.getRemoteUser(); + return userInfoService.getUserGroupList(userId); + } + + public List getAvailableUserItems() { + String roleId = null; + String groupId = null; + if (repeatScheduleForm.userGroup != null) { + if (repeatScheduleForm.userGroup + .startsWith(SchedulerConstants.ROLE_PREFIX)) { + roleId = repeatScheduleForm.userGroup + .substring(SchedulerConstants.ROLE_PREFIX.length()); + } else if (repeatScheduleForm.userGroup + .startsWith(SchedulerConstants.GROUP_PREFIX)) { + groupId = repeatScheduleForm.userGroup + .substring(SchedulerConstants.GROUP_PREFIX.length()); + } + } + if (roleId == null && groupId == null) { + return new ArrayList(); + } else { + return userInfoService.getAvailableUserList(roleId, groupId, + repeatScheduleForm.selectedUsers, null); + } + } + + public List getSelectedUserItems() { + if (repeatScheduleForm.selectedUsers == null) { + return null; + } + return userInfoService + .getSelectedUserList(repeatScheduleForm.selectedUsers); + } + + public List getFacilityGroupItems() { + return facilityGroupService.getFacilityGroupList(); + } + + public List getAvailableFacilityItems() { + Integer facilityGroupId = null; + if (repeatScheduleForm.facilityGroupId != null) { + facilityGroupId = Integer + .parseInt(repeatScheduleForm.facilityGroupId); + } + return facilityService.getAvailableFacilityList( + repeatScheduleForm.selectedFacilities, facilityGroupId); + } + + public List getSelectedFacilityItems() { + if (repeatScheduleForm.selectedFacilities == null) { + return null; + } + return facilityService + .getSelectedFacilityList(repeatScheduleForm.selectedFacilities); + } + + public List getYearItems() { + int year = CalendarUtil.getYear(CalendarUtil.getToday()); + List items = new ArrayList(); + for (int i = year - 10; i < year + 5; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getMonthItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 13; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List getDateItems() { + List items = new ArrayList(); + for (int i = 1; i < 10; i++) { + items.add("0" + String.valueOf(i)); + } + for (int i = 10; i < 32; i++) { + items.add(String.valueOf(i)); + } + return items; + } + + public List> getHourItems() { + List> items = new ArrayList>(); + for (int i = 0; i < 24; i++) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + // TODO i18n + Map map = new HashMap(); + map.put("label", buf.toString()); + map.put("value", buf.toString()); + items.add(map); + } + return items; + } + + public List getMinuteItems() { + List items = new ArrayList(); + for (int i = 0; i < 60; i += 5) { + StringBuilder buf = new StringBuilder(); + if (i < 10) { + buf.append("0"); + } + buf.append(i); + items.add(buf.toString()); + } + return items; + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public RepeatScheduleForm getRepeatScheduleForm() { + return repeatScheduleForm; + } + + public void setRepeatScheduleForm(RepeatScheduleForm repeatScheduleForm) { + this.repeatScheduleForm = repeatScheduleForm; + } + + public RepeatScheduleService getRepeatScheduleService() { + return repeatScheduleService; + } + + public void setRepeatScheduleService( + RepeatScheduleService repeatScheduleService) { + this.repeatScheduleService = repeatScheduleService; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public RepeatSchedulePager getRepeatSchedulePager() { + return repeatSchedulePager; + } + + public void setRepeatSchedulePager(RepeatSchedulePager repeatSchedulePager) { + this.repeatSchedulePager = repeatSchedulePager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public RepeatScheduleDxo getRepeatScheduleDxo() { + return repeatScheduleDxo; + } + + public void setRepeatScheduleDxo(RepeatScheduleDxo repeatScheduleDxo) { + this.repeatScheduleDxo = repeatScheduleDxo; + } + + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + + public FacilityGroupService getFacilityGroupService() { + return facilityGroupService; + } + + public void setFacilityGroupService( + FacilityGroupService facilityGroupService) { + this.facilityGroupService = facilityGroupService; + } + +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/common/dxo/PagerDxo.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -31,4 +31,15 @@ @ConversionRule(// "groupId : groupId") public void convertFromPagerToForm(FacilityPager pager, FacilityForm form); + + @ConversionRule(// + "groupId : groupId") + public void convertFromFormToPager( + jp.sf.pal.scheduler.form.user.facility.FacilityForm form, + FacilityPager pager); + + @ConversionRule(// + "groupId : groupId") + public void convertFromPagerToForm(FacilityPager pager, + jp.sf.pal.scheduler.form.user.facility.FacilityForm form); } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/FacilityDxo.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -42,4 +42,39 @@ ) public void convertFromFormToFacility(FacilityForm form, Facility groupInfo); + @ExcludeNull + @ConversionRule("id : id" // + + ", name : name" // + + ", sortOrder : sortOrder" // + + ", groupId : groupId" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + ) + public void convertFromFacilityToForm(Facility groupInfo, + jp.sf.pal.scheduler.form.user.facility.FacilityForm form); + + @ExcludeNull + @ConversionRule(// + "name : name" // + + ", groupId : groupId" // + // + ", sortOrder : sortOrder" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + ) + public void convertFromFormToFacility( + jp.sf.pal.scheduler.form.user.facility.FacilityForm form, + Facility groupInfo); + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/OnetimeScheduleDxo.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -112,4 +112,56 @@ public void convertFromFormToEventSchedule( jp.sf.pal.scheduler.form.user.schedule.OnetimeScheduleForm form, EventSchedule eventSchedule); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // + ) + public void convertFromEventScheduleToForm(EventSchedule eventSchedule, + jp.sf.pal.scheduler.form.user.facility.OnetimeScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // + ) + public void convertFromFormToEventSchedule( + jp.sf.pal.scheduler.form.user.facility.OnetimeScheduleForm form, + EventSchedule eventSchedule); + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/dxo/RepeatScheduleDxo.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -112,4 +112,55 @@ public void convertFromFormToEventSchedule( jp.sf.pal.scheduler.form.user.schedule.RepeatScheduleForm form, EventSchedule eventSchedule); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule("id : id" // + + ", title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // + ) + public void convertFromEventScheduleToForm(EventSchedule eventSchedule, + jp.sf.pal.scheduler.form.user.facility.RepeatScheduleForm form); + + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimePattern("HH:mm") + @ConversionRule(// + "title : title" // + + ", location : location" // + + ", startDate : startDate" // + + ", startTime : startTime" // + + ", endDate : endDate" // + + ", endTime : endTime" // + + ", secret : secret" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + + ", content : content" // + + ", selectedUsers : selectedUsers" // + + ", selectedFacilities : selectedFacilities" // + ) + public void convertFromFormToEventSchedule( + jp.sf.pal.scheduler.form.user.facility.RepeatScheduleForm form, + EventSchedule eventSchedule); } Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/CalendarForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/CalendarForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/CalendarForm.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,69 @@ +package jp.sf.pal.scheduler.form.user.facility; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Required; + +public class CalendarForm implements Serializable { + + private static final long serialVersionUID = 1997153402576130079L; + + @Required(target = "selectpersonalmonth,movepersonalprevmonth,movepersonalnextmonth") + @IntegerType + public String year; + + @IntegerType + public String month; + + @IntegerType + public String date; + + @IntegerType + public String facilityGroupId; + + @IntegerType + public String facilityId; + + public Calendar getTargetCalendar() { + if (!StringUtils.isEmpty(year) && !StringUtils.isEmpty(month) + && !StringUtils.isEmpty(date)) { + return CalendarUtil.get(Integer.parseInt(year), Integer + .parseInt(month) - 1, Integer.parseInt(date)); + } + Calendar today = CalendarUtil.getToday(); + year = String.valueOf(CalendarUtil.getYear(today)); + month = String.valueOf(CalendarUtil.getMonth(today) + 1); + date = String.valueOf(CalendarUtil.getDate(today)); + return today; + } + + public void changeCalendarToToday() { + Calendar today = CalendarUtil.getToday(); + year = String.valueOf(CalendarUtil.getYear(today)); + month = String.valueOf(CalendarUtil.getMonth(today) + 1); + date = String.valueOf(CalendarUtil.getDate(today)); + } + + public void changeCalendarToPrevMonth() { + month = String.valueOf(Integer.parseInt(month) - 1); + updateCalendarValue(); + } + + public void changeCalendarToNextMonth() { + month = String.valueOf(Integer.parseInt(month) + 1); + updateCalendarValue(); + } + + private void updateCalendarValue() { + Calendar cal = CalendarUtil.get(Integer.parseInt(year), Integer + .parseInt(month) - 1, Integer.parseInt(date)); + year = String.valueOf(CalendarUtil.getYear(cal)); + month = String.valueOf(CalendarUtil.getMonth(cal) + 1); + date = String.valueOf(CalendarUtil.getDate(cal)); + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/CalendarForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/FacilityForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/FacilityForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/FacilityForm.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,71 @@ +package jp.sf.pal.scheduler.form.user.facility; + +import java.io.Serializable; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; + +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class FacilityForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -5689715853143452340L; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @IntegerType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String name; + + @IntegerType + public String sortOrder; + + @Required(target = "confirm,create,update,delete") + @IntegerType + public String groupId; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + name = null; + sortOrder = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + groupId = null; + content = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/FacilityForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/OnetimeScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/OnetimeScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/OnetimeScheduleForm.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,296 @@ +package jp.sf.pal.scheduler.form.user.facility; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class OnetimeScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -3648751435246338787L; + + @Required + public String returnType; + + @IntegerType + public String facilityId; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String startDate; + + @Required(target = "confirm,create,update,delete") + public String startDateY; + + @Required(target = "confirm,create,update,delete") + public String startDateM; + + @Required(target = "confirm,create,update,delete") + public String startDateD; + + // public String startTime; + + public String startTimeH; + + public String startTimeM; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String endDate; + + @Required(target = "confirm,create,update,delete") + public String endDateY; + + @Required(target = "confirm,create,update,delete") + public String endDateM; + + @Required(target = "confirm,create,update,delete") + public String endDateD; + + // public String endTime; + + public String endTimeH; + + public String endTimeM; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 1) + public String secret; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @Required(target = "changeusergroup") + public String userGroup; + + public String[] addedFacilities; + + public String[] removedFacilities; + + public String[] selectedFacilities; + + @Required(target = "changefacilitygroup") + @IntegerType + public String facilityGroupId; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + Calendar today = CalendarUtil.getToday(); + String year = String.valueOf(CalendarUtil.getYear(today)); + int m = CalendarUtil.getMonth(today) + 1; + String month; + if (m < 10) { + month = "0" + String.valueOf(m); + } else { + month = String.valueOf(m); + } + int d = CalendarUtil.getDate(today); + String date; + if (d < 10) { + date = "0" + String.valueOf(d); + } else { + date = String.valueOf(d); + } + startDateY = year; + startDateM = month; + startDateD = date; + startTimeH = null; + startTimeM = null; + endDateY = year; + endDateM = month; + endDateD = date; + endTimeH = null; + endTimeM = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + userGroup = null; + addedFacilities = null; + removedFacilities = null; + selectedFacilities = null; + facilityGroupId = null; + } + + public String getStartDate() { + if (!StringUtils.isEmpty(startDateY) + && !StringUtils.isEmpty(startDateM) + && !StringUtils.isEmpty(startDateD)) { + StringBuilder buf = new StringBuilder(startDateY); + buf.append("/"); + buf.append(startDateM); + buf.append("/"); + buf.append(startDateD); + return buf.toString(); + } + return null; + } + + public void setStartDate(String startDate) { + if (!StringUtils.isEmpty(startDate)) { + int idx = startDate.indexOf(" "); + if (idx > 0) { + startDate = startDate.substring(0, idx); + } + String[] values = startDate.split("/"); + if (values.length == 3) { + startDateY = values[0]; + startDateM = values[1]; + startDateD = values[2]; + return; + } + } + startDateY = null; + startDateM = null; + startDateD = null; + } + + public String getEndDate() { + if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) + && !StringUtils.isEmpty(endDateD)) { + StringBuilder buf = new StringBuilder(endDateY); + buf.append("/"); + buf.append(endDateM); + buf.append("/"); + buf.append(endDateD); + return buf.toString(); + } + return null; + } + + public void setEndDate(String endDate) { + if (!StringUtils.isEmpty(endDate)) { + int idx = endDate.indexOf(" "); + if (idx > 0) { + endDate = endDate.substring(0, idx); + } + String[] values = endDate.split("/"); + if (values.length == 3) { + endDateY = values[0]; + endDateM = values[1]; + endDateD = values[2]; + return; + } + } + endDateY = null; + endDateM = null; + endDateD = null; + } + + public String getStartTime() { + if (!StringUtils.isEmpty(startTimeH) + && !StringUtils.isEmpty(startTimeM)) { + StringBuilder buf = new StringBuilder(startTimeH); + buf.append(":"); + buf.append(startTimeM); + return buf.toString(); + } + return null; + } + + public void setStartTime(String startTime) { + if (!StringUtils.isEmpty(startTime)) { + String[] values = startTime.split(":"); + if (values.length > 1) { + startTimeH = values[0]; + startTimeM = values[1]; + return; + } + } + startTimeH = null; + startTimeM = null; + } + + public String getEndTime() { + if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { + StringBuilder buf = new StringBuilder(endTimeH); + buf.append(":"); + buf.append(endTimeM); + return buf.toString(); + } + return null; + } + + public void setEndTime(String endTime) { + if (!StringUtils.isEmpty(endTime)) { + String[] values = endTime.split(":"); + if (values.length > 1) { + endTimeH = values[0]; + endTimeM = values[1]; + return; + } + } + endTimeH = null; + endTimeM = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/OnetimeScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/RepeatScheduleForm.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/RepeatScheduleForm.java (rev 0) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/RepeatScheduleForm.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,297 @@ +package jp.sf.pal.scheduler.form.user.facility; + +import java.io.Serializable; +import java.util.Calendar; + +import jp.sf.pal.scheduler.common.form.PagingResultForm; +import jp.sf.pal.scheduler.common.util.CalendarUtil; + +import org.apache.commons.lang.StringUtils; +import org.seasar.struts.annotation.DateType; +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class RepeatScheduleForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -2759046144118833141L; + + @Required + public String returnType; + + @IntegerType + public String facilityId; + + @Required + @IntegerType + public String year; + + @Required + @IntegerType + public String month; + + @Required + @IntegerType + public String date; + + @IntegerType + public int mode; + + @Required(target = "update,delete") + @LongType + public String id; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 100) + public String title; + + @Maxbytelength(maxbytelength = 100) + public String location; + + // @Required(target = "confirm,create,update,delete") + // @DateType + // public String startDate; + + @Required(target = "confirm,create,update,delete") + public String startDateY; + + @Required(target = "confirm,create,update,delete") + public String startDateM; + + @Required(target = "confirm,create,update,delete") + public String startDateD; + + // public String startTime; + + public String startTimeH; + + public String startTimeM; + + // @DateType + // public String endDate; + + public String endDateY; + + public String endDateM; + + public String endDateD; + + // public String endTime; + + public String endTimeH; + + public String endTimeM; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 1) + public String secret; + + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 10) + public String type; + + @DateType + public String createdTime; + + @Maxbytelength(maxbytelength = 255) + public String createdBy; + + @DateType + public String updatedTime; + + @Maxbytelength(maxbytelength = 255) + public String updatedBy; + + @DateType + public String deletedTime; + + @Maxbytelength(maxbytelength = 255) + public String deletedBy; + + @Maxbytelength(maxbytelength = 1000) + public String content; + + public String[] addedUsers; + + public String[] removedUsers; + + public String[] selectedUsers; + + @Required(target = "changeusergroup") + public String userGroup; + + public String[] addedFacilities; + + public String[] removedFacilities; + + public String[] selectedFacilities; + + @Required(target = "changefacilitygroup") + @IntegerType + public String facilityGroupId; + + @IntegerType + public String pageNumber; + + public void initialize() { + id = null; + title = null; + location = null; + Calendar today = CalendarUtil.getToday(); + String year = String.valueOf(CalendarUtil.getYear(today)); + int m = CalendarUtil.getMonth(today) + 1; + String month; + if (m < 10) { + month = "0" + String.valueOf(m); + } else { + month = String.valueOf(m); + } + int d = CalendarUtil.getDate(today); + String date; + if (d < 10) { + date = "0" + String.valueOf(d); + } else { + date = String.valueOf(d); + } + startDateY = year; + startDateM = month; + startDateD = date; + startTimeH = null; + startTimeM = null; + endDateY = null; + endDateM = null; + endDateD = null; + endTimeH = null; + endTimeM = null; + type = null; + createdTime = null; + createdBy = null; + updatedTime = null; + updatedBy = null; + deletedTime = null; + deletedBy = null; + content = null; + addedUsers = null; + removedUsers = null; + selectedUsers = null; + secret = "F"; + userGroup = null; + addedFacilities = null; + removedFacilities = null; + selectedFacilities = null; + facilityGroupId = null; + } + + public String getStartDate() { + if (!StringUtils.isEmpty(startDateY) + && !StringUtils.isEmpty(startDateM) + && !StringUtils.isEmpty(startDateD)) { + StringBuilder buf = new StringBuilder(startDateY); + buf.append("/"); + buf.append(startDateM); + buf.append("/"); + buf.append(startDateD); + return buf.toString(); + } + return null; + } + + public void setStartDate(String startDate) { + if (!StringUtils.isEmpty(startDate)) { + int idx = startDate.indexOf(" "); + if (idx > 0) { + startDate = startDate.substring(0, idx); + } + String[] values = startDate.split("/"); + if (values.length == 3) { + startDateY = values[0]; + startDateM = values[1]; + startDateD = values[2]; + return; + } + } + startDateY = null; + startDateM = null; + startDateD = null; + } + + public String getEndDate() { + if (!StringUtils.isEmpty(endDateY) && !StringUtils.isEmpty(endDateM) + && !StringUtils.isEmpty(endDateD)) { + StringBuilder buf = new StringBuilder(endDateY); + buf.append("/"); + buf.append(endDateM); + buf.append("/"); + buf.append(endDateD); + return buf.toString(); + } + return null; + } + + public void setEndDate(String endDate) { + if (!StringUtils.isEmpty(endDate)) { + int idx = endDate.indexOf(" "); + if (idx > 0) { + endDate = endDate.substring(0, idx); + } + String[] values = endDate.split("/"); + if (values.length == 3) { + endDateY = values[0]; + endDateM = values[1]; + endDateD = values[2]; + return; + } + } + endDateY = null; + endDateM = null; + endDateD = null; + } + + public String getStartTime() { + if (!StringUtils.isEmpty(startTimeH) + && !StringUtils.isEmpty(startTimeM)) { + StringBuilder buf = new StringBuilder(startTimeH); + buf.append(":"); + buf.append(startTimeM); + return buf.toString(); + } + return null; + } + + public void setStartTime(String startTime) { + if (!StringUtils.isEmpty(startTime)) { + String[] values = startTime.split(":"); + if (values.length > 1) { + startTimeH = values[0]; + startTimeM = values[1]; + return; + } + } + startTimeH = null; + startTimeM = null; + } + + public String getEndTime() { + if (!StringUtils.isEmpty(endTimeH) && !StringUtils.isEmpty(endTimeM)) { + StringBuilder buf = new StringBuilder(endTimeH); + buf.append(":"); + buf.append(endTimeM); + return buf.toString(); + } + return null; + } + + public void setEndTime(String endTime) { + if (!StringUtils.isEmpty(endTime)) { + String[] values = endTime.split(":"); + if (values.length > 1) { + endTimeH = values[0]; + endTimeM = values[1]; + return; + } + } + endTimeH = null; + endTimeM = null; + } +} Property changes on: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/facility/RepeatScheduleForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -72,6 +72,23 @@ } + public List getFacilityListByGroup(Integer facilityGroupId) { + + FacilityCB cb = new FacilityCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + if (facilityGroupId != null) { + cb.query().setGroupId_Equal(facilityGroupId); + } + + cb.query().addOrderBy_SortOrder_Asc(); + + return facilityBhv.selectList(cb); + + } + public Facility getFacility(Integer id) { FacilityCB cb = new FacilityCB(); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/OnetimeScheduleService.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -38,6 +38,25 @@ private PagerDxo pagerDxo; + public List getFacilityScheduleMappingList( + Integer facilityId, Date fromDate, Date toDate) { + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + + // setup + cb.setupSelect_EventSchedule(); + + cb.query().setFacilityId_Equal(facilityId); + cb.query().queryEventSchedule().setDeletedBy_IsNull(); + cb.query().queryEventSchedule().setStartDate_LessEqual(toDate); + cb.query().queryEventSchedule().setEndDate_GreaterEqual(fromDate); + cb.query().queryEventSchedule().setType_Equal( + SchedulerConstants.ONETIME_SCHEDULE); + + cb.query().queryEventSchedule().addOrderBy_StartDate_Asc(); + + return facilityScheduleMappingBhv.selectList(cb); + } + public List getPersonalScheduleMappingList( String userId, Date fromDate, Date toDate) { EventScheduleMappingCB cb = new EventScheduleMappingCB(); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/RepeatScheduleService.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -39,6 +39,36 @@ private PagerDxo pagerDxo; + public List getFacilityScheduleMappingList( + final Integer facilityId, final Date fromDate, final Date toDate) { + FacilityScheduleMappingCB cb = new FacilityScheduleMappingCB(); + + // setup + cb.setupSelect_EventSchedule(); + + cb.query().setFacilityId_Equal(facilityId); + cb.query().queryEventSchedule().setDeletedBy_IsNull(); + cb.query().queryEventSchedule().setStartDate_LessEqual(toDate); + cb.query().queryEventSchedule().setEndDate_GreaterEqual(fromDate); + cb.query().queryEventSchedule().setType_NotEqual( + SchedulerConstants.ONETIME_SCHEDULE); + cb.unionAll(new UnionQuery() { + public void query(FacilityScheduleMappingCB unionCB) { + unionCB.query().setFacilityId_Equal(facilityId); + unionCB.query().queryEventSchedule().setDeletedBy_IsNull(); + unionCB.query().queryEventSchedule().setStartDate_LessEqual( + toDate); + unionCB.query().queryEventSchedule().setEndDate_IsNull(); + unionCB.query().queryEventSchedule().setType_NotEqual( + SchedulerConstants.ONETIME_SCHEDULE); + unionCB.query().queryEventSchedule().addOrderBy_StartDate_Asc(); + } + }); + cb.query().queryEventSchedule().addOrderBy_StartDate_Asc(); + + return facilityScheduleMappingBhv.selectList(cb); + } + public List getPersonalScheduleMappingList( final String userId, final Date fromDate, final Date toDate) { EventScheduleMappingCB cb = new EventScheduleMappingCB(); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-21 13:34:31 UTC (rev 1393) @@ -14,6 +14,7 @@ import jp.sf.pal.scheduler.common.util.DateUtil; import jp.sf.pal.scheduler.db.exentity.EventSchedule; import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; +import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; public class SchedulerUtil { public static List> createSideCalendar( @@ -207,35 +208,53 @@ List> allDayEventInDayItems) { for (EventScheduleMapping ssm : ssmList) { EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); + createPersonalDayDataForOnetime(tYear, tMonth, tDate, + eventSchedule, eventInDayItems, allDayEventInDayItems); + } + } - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); + public static void createFacilityDayForOnetime(int tYear, int tMonth, + int tDate, List ssmList, + List>> eventInDayItems, + List> allDayEventInDayItems) { + for (FacilityScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + createPersonalDayDataForOnetime(tYear, tMonth, tDate, + eventSchedule, eventInDayItems, allDayEventInDayItems); + } + } - Time startTime = eventSchedule.getStartTime(); - Time endTime = eventSchedule.getEndTime(); - if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, startTime, null, - eventInDayItems, allDayEventInDayItems); - } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) - && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { - putEventSchedule(eventSchedule, null, endTime, eventInDayItems, - allDayEventInDayItems); - } else { - // all day - allDayEventInDayItems.add(createEvent(eventSchedule, false, - false)); - } + private static void createPersonalDayDataForOnetime(int tYear, int tMonth, + int tDate, EventSchedule eventSchedule, + List>> eventInDayItems, + List> allDayEventInDayItems) { + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, startTime, null, eventInDayItems, + allDayEventInDayItems); + } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate) + && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) { + putEventSchedule(eventSchedule, null, endTime, eventInDayItems, + allDayEventInDayItems); + } else { + // all day + allDayEventInDayItems.add(createEvent(eventSchedule, false, false)); } } @@ -245,49 +264,67 @@ List> allDayEventInDayItems) { for (EventScheduleMapping rsm : rsmList) { EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - // int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); + createPersonalDayDataForRepeat(tYear, tMonth, tDate, tDay, + eventSchedule, eventInDayItems, allDayEventInDayItems); + } + } - Time startTime = eventSchedule.getStartTime(); - Time endTime = eventSchedule.getEndTime(); - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { + public static void createFacilityDayForRepeat(int tYear, int tMonth, + int tDate, int tDay, List rsmList, + List>> eventInDayItems, + List> allDayEventInDayItems) { + for (FacilityScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + createPersonalDayDataForRepeat(tYear, tMonth, tDate, tDay, + eventSchedule, eventInDayItems, allDayEventInDayItems); + } + } + + private static void createPersonalDayDataForRepeat(int tYear, int tMonth, + int tDate, int tDay, EventSchedule eventSchedule, + List>> eventInDayItems, + List> allDayEventInDayItems) { + Date startDate = eventSchedule.getStartDate(); + // int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + + Time startTime = eventSchedule.getStartTime(); + Time endTime = eventSchedule.getEndTime(); + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } else if ("MTWTF".equals(type)) { + if (tDay > 1 && tDay < 7) { putEventSchedule(eventSchedule, startTime, endTime, eventInDayItems, allDayEventInDayItems); - } else if ("MTWTF".equals(type)) { - if (tDay > 1 && tDay < 7) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } - } else if ("MWF".equals(type)) { - if (tDay == 2 || tDay == 4 || tDay == 6) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } - } else if ("TT".equals(type)) { - if (tDay == 3 || tDay == 5) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } - } else if ("WEEKLY".equals(type)) { - if (tDay == DateUtil.getDay(startDate) + 1) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } - } else if ("MONTHLY".equals(type)) { - if (tDate == sDate) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } - } else if ("YEARLY".equals(type)) { - if (tDate == sDate && tMonth == sMonth) { - putEventSchedule(eventSchedule, startTime, endTime, - eventInDayItems, allDayEventInDayItems); - } } - + } else if ("MWF".equals(type)) { + if (tDay == 2 || tDay == 4 || tDay == 6) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("TT".equals(type)) { + if (tDay == 3 || tDay == 5) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("WEEKLY".equals(type)) { + if (tDay == DateUtil.getDay(startDate) + 1) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("MONTHLY".equals(type)) { + if (tDate == sDate) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } + } else if ("YEARLY".equals(type)) { + if (tDate == sDate && tMonth == sMonth) { + putEventSchedule(eventSchedule, startTime, endTime, + eventInDayItems, allDayEventInDayItems); + } } } @@ -298,75 +335,95 @@ List>> allDayEventInWeekItems) { for (EventScheduleMapping ssm : ssmList) { EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(-1); - } + createPersonalWeekDataForOnetime(indexMap, eventSchedule, + eventInWeekItems, allDayEventInWeekItems); + } + } - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(7); - } + public static void createFacilityWeekForOnetime( + Map indexMap, + List ssmList, + List>>> eventInWeekItems, + List>> allDayEventInWeekItems) { + for (FacilityScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + createPersonalWeekDataForOnetime(indexMap, eventSchedule, + eventInWeekItems, allDayEventInWeekItems); + } + } - int startIdx = sIndex.intValue(); - if (startIdx < 0) { - startIdx = 0; - } - int endIdx = eIndex.intValue(); - if (endIdx > 6) { - endIdx = 6; - } + private static void createPersonalWeekDataForOnetime( + Map indexMap, EventSchedule eventSchedule, + List>>> eventInWeekItems, + List>> allDayEventInWeekItems) { - Time time = eventSchedule.getStartTime(); - for (int i = startIdx; i < endIdx + 1; i++) { - if (i == sIndex.intValue() && i == eIndex.intValue()) { - if (time == null) { - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } - } else if (i == sIndex.intValue() && i != eIndex.intValue()) { - if (time == null) { - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, false)); - } - } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (eventSchedule.getEndTime() == null) { - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } else { - int timeIndex = DateUtil.getHours(eventSchedule - .getEndTime()) - 1; - if (timeIndex < 0) { - timeIndex = 0; - } - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, false, true)); - } - } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(-1); + } + + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(7); + } + + int startIdx = sIndex.intValue(); + if (startIdx < 0) { + startIdx = 0; + } + int endIdx = eIndex.intValue(); + if (endIdx > 6) { + endIdx = 6; + } + + Time time = eventSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { // all day allDayEventInWeekItems.get(i).add( createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (eventSchedule.getEndTime() == null) { + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(eventSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } - } public static void createPersonalWeekForRepeat( @@ -376,156 +433,165 @@ List> weekDayItems) { for (EventScheduleMapping rsm : rsmList) { EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(0); - } + createPersonalWeekDataForRepeat(indexMap, eventSchedule, + eventInWeekItems, allDayEventInWeekItems, weekDayItems); + } + } - Date endDate = eventSchedule.getEndDate(); - Integer eIndex; - if (endDate != null) { - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(6); - } - } else { + public static void createFacilityWeekForRepeat( + Map indexMap, + List rsmList, + List>>> eventInWeekItems, + List>> allDayEventInWeekItems, + List> weekDayItems) { + for (FacilityScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + createPersonalWeekDataForRepeat(indexMap, eventSchedule, + eventInWeekItems, allDayEventInWeekItems, weekDayItems); + } + } + + private static void createPersonalWeekDataForRepeat( + Map indexMap, EventSchedule eventSchedule, + List>>> eventInWeekItems, + List>> allDayEventInWeekItems, + List> weekDayItems) { + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(0); + } + + Date endDate = eventSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { eIndex = Integer.valueOf(6); } + } else { + eIndex = Integer.valueOf(6); + } - Time time = eventSchedule.getStartTime(); - for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { + Time time = eventSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { - // all day - allDayEventInWeekItems.get(i).add( - createEvent(eventSchedule, false, false)); - } - } else if ("MTWTF".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek > 1 && dayOfWeek < 7) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } - } else if ("MWF".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } + } + } else if ("MWF".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } - } else if ("TT".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 3 || dayOfWeek == 5) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } + } + } else if ("TT".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } - } else if ("WEEKLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == DateUtil.getDay(startDate) + 1) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } - } else if ("MONTHLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("date"); - if (d != null) { - int date = Integer.parseInt(d); - if (date == sDate) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("date"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } - } else if ("YEARLY".equals(type)) { - String d = (String) weekDayItems.get(i).get("date"); - String m = (String) weekDayItems.get(i).get("month"); - if (d != null && m != null) { - int date = Integer.parseInt(d); - int month = Integer.parseInt(m); - if (date == sDate && month == sMonth) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - eventInWeekItems.get(i).get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - allDayEventInWeekItems.get(i) - .add( - createEvent(eventSchedule, - false, false)); - } + } + } else if ("YEARLY".equals(type)) { + String d = (String) weekDayItems.get(i).get("date"); + String m = (String) weekDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + eventInWeekItems.get(i).get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + allDayEventInWeekItems.get(i).add( + createEvent(eventSchedule, false, false)); } } } } - } } @@ -536,86 +602,105 @@ List> calendarDayItems) { for (EventScheduleMapping ssm : ssmList) { EventSchedule eventSchedule = ssm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(firstDateIndex - 1); - } + createPersonalMonthDataForOnetime(firstDateIndex, endDateIndex, + indexMap, eventSchedule, calendarDayItems); + } + } - Date endDate = eventSchedule.getEndDate(); - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(endDateIndex); - } + public static void createFacilityMonthForOnetime(int firstDateIndex, + int endDateIndex, Map indexMap, + List ssmList, + List> calendarDayItems) { + for (FacilityScheduleMapping ssm : ssmList) { + EventSchedule eventSchedule = ssm.getEventSchedule(); + createPersonalMonthDataForOnetime(firstDateIndex, endDateIndex, + indexMap, eventSchedule, calendarDayItems); + } + } - int startIdx = sIndex.intValue(); - if (startIdx < firstDateIndex) { - startIdx = firstDateIndex; - } - int endIdx = eIndex.intValue(); - if (endIdx > endDateIndex) { - endIdx = endDateIndex; - } + private static void createPersonalMonthDataForOnetime(int firstDateIndex, + int endDateIndex, Map indexMap, + EventSchedule eventSchedule, + List> calendarDayItems) { + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex - 1); + } - Time time = eventSchedule.getStartTime(); - for (int i = startIdx; i < endIdx + 1; i++) { - if (i == sIndex.intValue() && i == eIndex.intValue()) { - if (time == null) { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } - } else if (i == sIndex.intValue() && i != eIndex.intValue()) { - if (time == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, false)); - } - } else if (i != sIndex.intValue() && i == eIndex.intValue()) { - if (eventSchedule.getEndTime() == null) { - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } else { - int timeIndex = DateUtil.getHours(eventSchedule - .getEndTime()) - 1; - if (timeIndex < 0) { - timeIndex = 0; - } - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, false, true)); - } - } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + Date endDate = eventSchedule.getEndDate(); + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { + eIndex = Integer.valueOf(endDateIndex); + } + + int startIdx = sIndex.intValue(); + if (startIdx < firstDateIndex) { + startIdx = firstDateIndex; + } + int endIdx = eIndex.intValue(); + if (endIdx > endDateIndex) { + endIdx = endDateIndex; + } + + Time time = eventSchedule.getStartTime(); + for (int i = startIdx; i < endIdx + 1; i++) { + if (i == sIndex.intValue() && i == eIndex.intValue()) { + if (time == null) { // all day List> allDayEventInMonthItems = (List>) calendarDayItems .get(i).get("allDayEventItems"); allDayEventInMonthItems.add(createEvent(eventSchedule, false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); } + } else if (i == sIndex.intValue() && i != eIndex.intValue()) { + if (time == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, false)); + } + } else if (i != sIndex.intValue() && i == eIndex.intValue()) { + if (eventSchedule.getEndTime() == null) { + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } else { + int timeIndex = DateUtil.getHours(eventSchedule + .getEndTime()) - 1; + if (timeIndex < 0) { + timeIndex = 0; + } + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, false, true)); + } + } else if (i != sIndex.intValue() && i != eIndex.intValue()) { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, false, + false)); } } } @@ -626,178 +711,189 @@ List> calendarDayItems) { for (EventScheduleMapping rsm : rsmList) { EventSchedule eventSchedule = rsm.getEventSchedule(); - Date startDate = eventSchedule.getStartDate(); - int sYear = DateUtil.getYear(startDate) + 1900; - int sMonth = DateUtil.getMonth(startDate) + 1; - int sDate = DateUtil.getDate(startDate); - Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); - if (sIndex == null) { - sIndex = Integer.valueOf(firstDateIndex); - } + createPersonalMonthDataForRepeat(firstDateIndex, endDateIndex, + indexMap, eventSchedule, calendarDayItems); + } + } - Date endDate = eventSchedule.getEndDate(); - Integer eIndex; - if (endDate != null) { - int eYear = DateUtil.getYear(endDate) + 1900; - int eMonth = DateUtil.getMonth(endDate) + 1; - int eDate = DateUtil.getDate(endDate); - eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); - if (eIndex == null) { - eIndex = Integer.valueOf(endDateIndex); - } - } else { + public static void createFacilityMonthForRepeat(int firstDateIndex, + int endDateIndex, Map indexMap, + List rsmList, + List> calendarDayItems) { + for (FacilityScheduleMapping rsm : rsmList) { + EventSchedule eventSchedule = rsm.getEventSchedule(); + createPersonalMonthDataForRepeat(firstDateIndex, endDateIndex, + indexMap, eventSchedule, calendarDayItems); + } + } + + private static void createPersonalMonthDataForRepeat(int firstDateIndex, + int endDateIndex, Map indexMap, + EventSchedule eventSchedule, + List> calendarDayItems) { + Date startDate = eventSchedule.getStartDate(); + int sYear = DateUtil.getYear(startDate) + 1900; + int sMonth = DateUtil.getMonth(startDate) + 1; + int sDate = DateUtil.getDate(startDate); + Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate); + if (sIndex == null) { + sIndex = Integer.valueOf(firstDateIndex); + } + + Date endDate = eventSchedule.getEndDate(); + Integer eIndex; + if (endDate != null) { + int eYear = DateUtil.getYear(endDate) + 1900; + int eMonth = DateUtil.getMonth(endDate) + 1; + int eDate = DateUtil.getDate(endDate); + eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate); + if (eIndex == null) { eIndex = Integer.valueOf(endDateIndex); } + } else { + eIndex = Integer.valueOf(endDateIndex); + } - Time time = eventSchedule.getStartTime(); - for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { - String type = eventSchedule.getType(); - if ("MTWTFSS".equals(type)) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent(eventSchedule, - false, false)); - } - } else if ("MTWTF".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek > 1 && dayOfWeek < 7) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } + Time time = eventSchedule.getStartTime(); + for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) { + String type = eventSchedule.getType(); + if ("MTWTFSS".equals(type)) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent(eventSchedule, + false, false)); + } + } else if ("MTWTF".equals(type)) { + String d = (String) calendarDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek > 1 && dayOfWeek < 7) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); } } - } else if ("MWF".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } + } + } else if ("MWF".equals(type)) { + String d = (String) calendarDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); } } - } else if ("TT".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == 3 || dayOfWeek == 5) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } + } + } else if ("TT".equals(type)) { + String d = (String) calendarDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == 3 || dayOfWeek == 5) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); } } - } else if ("WEEKLY".equals(type)) { - String d = (String) calendarDayItems.get(i) - .get("dayOfWeek"); - if (d != null) { - int dayOfWeek = Integer.parseInt(d); - if (dayOfWeek == DateUtil.getDay(startDate) + 1) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } + } + } else if ("WEEKLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get("dayOfWeek"); + if (d != null) { + int dayOfWeek = Integer.parseInt(d); + if (dayOfWeek == DateUtil.getDay(startDate) + 1) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); } } - } else if ("MONTHLY".equals(type)) { - String d = (String) calendarDayItems.get(i).get( - "dayOfMonth"); - if (d != null) { - int date = Integer.parseInt(d); - if (date == sDate) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } + } + } else if ("MONTHLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get("dayOfMonth"); + if (d != null) { + int date = Integer.parseInt(d); + if (date == sDate) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); } } - } else if ("YEARLY".equals(type)) { - String d = (String) calendarDayItems.get(i).get( - "dayOfMonth"); - String m = (String) calendarDayItems.get(i).get("month"); - if (d != null && m != null) { - int date = Integer.parseInt(d); - int month = Integer.parseInt(m); - if (date == sDate && month == sMonth) { - if (time != null) { - int timeIndex = DateUtil.getHours(time); - List>> eventInMonthItems = (List>>) calendarDayItems - .get(i).get("eventItems"); - eventInMonthItems.get(timeIndex).add( - createEvent(eventSchedule, true, true)); - } else { - // all day - List> allDayEventInMonthItems = (List>) calendarDayItems - .get(i).get("allDayEventItems"); - allDayEventInMonthItems.add(createEvent( - eventSchedule, false, false)); - } + } + } else if ("YEARLY".equals(type)) { + String d = (String) calendarDayItems.get(i).get("dayOfMonth"); + String m = (String) calendarDayItems.get(i).get("month"); + if (d != null && m != null) { + int date = Integer.parseInt(d); + int month = Integer.parseInt(m); + if (date == sDate && month == sMonth) { + if (time != null) { + int timeIndex = DateUtil.getHours(time); + List>> eventInMonthItems = (List>>) calendarDayItems + .get(i).get("eventItems"); + eventInMonthItems.get(timeIndex).add( + createEvent(eventSchedule, true, true)); + } else { + // all day + List> allDayEventInMonthItems = (List>) calendarDayItems + .get(i).get("allDayEventItems"); + allDayEventInMonthItems.add(createEvent( + eventSchedule, false, false)); } } } } - } - } } Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-21 08:12:10 UTC (rev 1392) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -40,7 +40,7 @@
      CommmentComment ${f:br(f:h(content))}
      + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${f:h(facility.name)}
      TimeEvents
      All Day +
        + +
      • +Private + +${event.title} +${event.title} + +
      • +
        +
      +
      ${s.index}:00  + +
        +
      • ${event.time}
        +Private + +${event.title} +${event.title} + +
      • +
      +
      +
      +
      + + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,112 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + + + + + + + + + + + +
      ${f:h(facility.name)}
      SunMonTueWedThuFriSat
      +${day.dayOfMonth}
      +
        + +
      • +Private + +${event.title} +${event.title} + +
      • +
        + + +
      • ${event.time}
        +Private + +${event.title} +${event.title} + +
      • +
        +
        + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,118 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      ${f:h(facility.name)}
      Time${day.displayedDate}
      All Day +
        + +
      • +Private + +${event.title} +${event.title} + +
      • +
        +
      +
      Events +
        + + +
      • ${event.time}
        +Private + +${event.title} +${event.title} + +
      • +
        +
        +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,114 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facility
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + +
      Facility Group + + + ${f:h(fg.name)} + + +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + +
       ${day.displayedDate}
      ${f:h(facilityMap.facility.name)}
      +
        + +
      • ${event.time}
        +Private + +${event.title} +${event.title} + +
      • +
        +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,74 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + +
      Confirmation Of Facility
      Facility Name${f:h(name)}
      Facility Group + + ${f:h(fg.name)} + +
      Comment${f:br(f:h(content))}
      + + + + + + + + + + + + + + + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,99 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Facilities
      • +
      • +
      • Facility Groups
      • +
      • +
      +
      + + +
      + +
      + + + + + + + + + +
      Group + + + + ${f:h(fg.name)} + + + + + +
      +
      +
      +
      + + + + + + + + + + + + + + + +
      Facility Name 
      ${f:h(g.name)} + Details +
      + +
      + + + Previous + + + + + + + ${p} + + + ${p} + + + + + + + Next + + +
      +
      + + ${facilityPager.currentPageNumber}/${facilityPager.allPageCount} (${facilityPager.allRecordCount}) + +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,150 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What${f:h(title)}
      Where${f:h(location)}
      When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
      +To: + ${f:h(endDate)} + ${f:h(endTime)} +
      Description${f:br(f:h(content))}
      Privacy +Public +Private + +
      Assigned + + + + + + + + + + + +
      Name
      + + + ${f:u(u.userId)} + + +
      Facilities + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + + + ${f:u(u.id)} + + +
      + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + + "/> + "/> + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,214 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What
      Where
      When + + + + + + + + + + + +
      From + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      To + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      +
      Description
      Privacy + + Public + Private + +
      Assigned + + + + + + + + + + + + + + + + +
      Name
      + +
      + + + ${f:u(u.userId)} + + +
      Facilities + + + + + + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + +
      + + + ${f:u(f.id)} + + +
      + "/> + "/> +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,29 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + + +
      + +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,135 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + + + + + ${f:u(u.userId)} + + +
      + + + + + + + + + + + + + + +
      Facility Group
      + + + ${f:h(fg.name)} + + +
      + +
      + + + + + + + + + + + +
      Facility List
      + + + ${f:h(f.name)} + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected Facility List
      + + + + ${f:h(f.name)} + + + + + ${f:u(f.id)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,135 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • +
      • +
      • One time
      • + +
      • +
      • Repeats
      • +
        +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + + + + + ${f:u(u.id)} + + +
      + + + + + + + + + + + + + + +
      User Group
      + + + ${f:h(u.label)} + + +
      + +
      + + + + + + + + + + + +
      User List
      + + + + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected User List
      + + + + + + + + + ${f:u(u.userId)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,163 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What${f:h(title)}
      Where${f:h(location)}
      Repeats +Daily +Every weekday (Mon-Fri) +Every Mon., Wed., and Fri. +Every Tues., and Thurs. +Weekly +Monthly +Yearly + +
      When +From: + ${f:h(startDate)} + ${f:h(startTime)} +
      +To: + ${f:h(endDate)} + ${f:h(endTime)} +
      Description${f:br(f:h(content))}
      Privacy +Public +Private + +
      Assigned + + + + + + + + + + + +
      Name
      + + + ${f:u(u.userId)} + + +
      Facilities + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + + + ${f:u(u.id)} + + +
      + + "/> + "/> + + + "/> + "/> + + + "/> + "/> + + + + "/> + "/> + +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,231 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      What
      Where
      Repeats + + Daily + Every weekday (Mon-Fri) + Every Mon., Wed., and Fri. + Every Tues., and Thurs. + Weekly + Monthly + Yearly + +
      When + + + + + + + + + + + +
      From + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +/ + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      To + + + + ${f:h(v)} + + +/ + + + + ${f:h(v)} + + +/ + + + + ${f:h(v)} + + +  + + + + ${f:h(v.label)} + + +: + + + + ${f:h(v)} + + +
      +
      Description
      Privacy + + Public + Private + +
      Assigned + + + + + + + + + + + + + + + + +
      Name
      + +
      + + + ${f:u(u.userId)} + + +
      Facilities + + + + + + + + + + + + + + + + +
      Name
      ${f:h(f.name)}
      + +
      + + + ${f:u(f.id)} + + +
      + "/> + "/> +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,29 @@ +<%@page pageEncoding="UTF-8" %> + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + + +
      + +
      + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,135 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + + + + + ${f:u(u.userId)} + + +
      + + + + + + + + + + + + + + +
      Facility Group
      + + + ${f:h(fg.name)} + + +
      + +
      + + + + + + + + + + + +
      Facility List
      + + + ${f:h(f.name)} + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected Facility List
      + + + + ${f:h(f.name)} + + + + + ${f:u(f.id)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,136 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Calendar
      • + +
      • +
      • One Time
      • +
        +
      • +
      • Repeats
      • +
      • +
      +
      + + +
      + + +
      + + + + + + + + + + + + + + + + + + + ${f:u(u.id)} + + +
      + + + + + + + + + + + + + + +
      User Group
      + + + ${f:h(u.label)} + + +
      + +
      + + + + + + + + + + + +
      User List
      + + + + + +
      +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      Selected User List
      + + + + + + + + + ${f:u(u.userId)} + + +
      + +
      +
      +
      +
      + +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp (rev 0) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-21 13:34:31 UTC (rev 1393) @@ -0,0 +1,118 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> + + + + + + +
      + +
      +
        +
      • +
      • Day
      • +
      • +
      • Week
      • +
      • +
      • Month
      • +
      • +
      • Week(Group)
      • +
      • +
      +
      + + +
      + +
      +
      + +
      +
      +< +Today +> +
      + + + + + + + + + + + + + + + + + + + + + +
      ${year}/${month}
      SMTWTFS
      +${day.dayOfMonth} +
      +
      + +
      + + + + + + + + + +
      User Group + + + ${f:h(ug.label)} + + +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + +
       ${day.displayedDate}
      +
        + +
      • ${event.time}
        +Private + +${event.title} +${event.title} + +
      • +
        +
      +
      +
      +
      + + + Property changes on: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Sat Nov 22 07:40:36 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 22 Nov 2008 07:40:36 +0900 Subject: [pal-cvs 3659] [1394] integrated userinfo. Message-ID: <1227307236.229274.12023.nullmailer@users.sourceforge.jp> Revision: 1394 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1394 Author: shinsuke Date: 2008-11-22 07:40:35 +0900 (Sat, 22 Nov 2008) Log Message: ----------- integrated userinfo. Modified Paths: -------------- board/trunk/src/main/java/jp/sf/pal/board/action/ConfigAction.java board/trunk/src/main/java/jp/sf/pal/board/action/category/EditAction.java board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java board/trunk/src/main/java/jp/sf/pal/board/action/message/AdminAction.java board/trunk/src/main/java/jp/sf/pal/board/action/message/ViewAction.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java board/trunk/src/main/java/jp/sf/pal/board/util/BoardUtil.java board/trunk/src/main/resources/application.properties board/trunk/src/main/resources/application_ja.properties board/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- board/trunk/src/main/java/jp/sf/pal/board/service/UserInfoService.java Removed Paths: ------------- board/trunk/src/main/java/jp/sf/pal/board/filter/ -------------- next part -------------- Modified: board/trunk/src/main/java/jp/sf/pal/board/action/ConfigAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/ConfigAction.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/action/ConfigAction.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -61,6 +61,9 @@ SAStrutsUtil.addMessage(request, "success.update_config"); return displayIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (ConfigurationException e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_config"); Modified: board/trunk/src/main/java/jp/sf/pal/board/action/category/EditAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/category/EditAction.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/action/category/EditAction.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -192,6 +192,9 @@ categoryItems = categoryService.getCategoryList(categoryPager); // reset edit page return "index.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -209,6 +212,9 @@ categoryItems = categoryService.getCategoryList(categoryPager); // reset edit page return "index.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -226,6 +232,9 @@ categoryItems = categoryService.getCategoryList(categoryPager); // reset edit page return "index.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -177,6 +177,9 @@ SAStrutsUtil.addMessage(request, "success.create_category_access"); return index(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -192,6 +195,9 @@ SAStrutsUtil.addMessage(request, "success.update_category_access"); return index(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -207,6 +213,9 @@ SAStrutsUtil.addMessage(request, "success.delete_category_access"); return index(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( Modified: board/trunk/src/main/java/jp/sf/pal/board/action/message/AdminAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/message/AdminAction.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/action/message/AdminAction.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -25,7 +25,7 @@ import jp.sf.pal.board.pager.MessagePager; import jp.sf.pal.board.service.CategoryService; import jp.sf.pal.board.service.MessageService; -import jp.sf.pal.board.util.BoardUtil; +import jp.sf.pal.board.service.UserInfoService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -64,6 +64,8 @@ private CategoryService categoryService; + private UserInfoService userInfoService; + private MessagePager messagePager; private PagerDxo pagerDxo; @@ -80,8 +82,8 @@ // page navi messagePager.setCreatedBy(null); messageItems = messageService.getMessageList(messagePager); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); adminForm.content = messagePager.getContent();// TODO Dxo return "index.jsp"; } @@ -142,8 +144,8 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); messageAttachmentItems = messageService.getMessageAttachmentList(Long .parseLong(adminForm.id)); @@ -159,8 +161,8 @@ new Object[] { BoardConstants.CONFIRM_MODE, adminForm.mode }); } - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); messageAttachmentItems = messageService.getMessageAttachmentList(Long .parseLong(adminForm.id)); @@ -181,8 +183,8 @@ adminForm.initialize(); adminForm.mode = BoardConstants.CREATE_MODE; - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); // update edit page loadDetailsPageParameters(); @@ -199,8 +201,8 @@ public String editpage() { adminForm.mode = BoardConstants.EDIT_MODE; - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); messageAttachmentItems = messageService.getMessageAttachmentList(Long .parseLong(adminForm.id)); @@ -229,8 +231,8 @@ BoardConstants.MESSAGE_MAX_LENGTH, 4000) }); } - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); return "confirm.jsp"; } @@ -239,8 +241,8 @@ public String deletepage() { adminForm.mode = BoardConstants.DELETE_MODE; - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); // update edit page loadDetailsPageParameters(); @@ -270,6 +272,9 @@ loadListPageParameters(); return createIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_message"); @@ -296,6 +301,9 @@ loadListPageParameters(); return createIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_message"); @@ -335,8 +343,8 @@ messageService.store(reply); SAStrutsUtil.addMessage(request, "success.create_reply"); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); // update edit page loadDetailsPageParameters(); @@ -350,6 +358,9 @@ adminForm.replyContent = null; return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_message"); @@ -372,8 +383,8 @@ request.getRemoteUser()); SAStrutsUtil.addMessage(request, "success.delete_reply"); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); // update edit page loadDetailsPageParameters(); @@ -383,6 +394,9 @@ owner = true; return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_reply"); @@ -427,6 +441,9 @@ "success.create_message_attachment"); return editpage(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -440,7 +457,8 @@ MessageAttachment messageAttachment = messageService .getMessageAttachment(Long .parseLong(adminForm.messageAttachmentId), - BoardUtil.getCategoryAccessNameList(request), + userInfoService.getCategoryAccessNameList(request + .getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); if (messageAttachment == null) { throw new ActionMessagesException( @@ -456,6 +474,9 @@ sos.write(messageAttachment.getAttachment().getData()); sos.flush(); return null; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (CommonException e) { log.error(e.getMessage(), e); throw new ActionMessagesException(e.getMessageId()); @@ -484,10 +505,13 @@ SAStrutsUtil.addMessage(request, "success.delete_message_attachment"); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), null); return editpage(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -555,8 +579,9 @@ private void loadDetailsPageParameters() { HttpSession session = request.getSession(); - List categoryList = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + List categoryList = categoryService.getCategoryList( + userInfoService.getCategoryAccessNameList(request + .getRemoteUser()), null); session.setAttribute(WRITABLE_CATEGORY_ITEMS, categoryList); isEditable = !categoryList.isEmpty(); @@ -569,8 +594,9 @@ private void checkWritableCategories() { HttpSession session = request.getSession(); - List categoryList = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), null); + List categoryList = categoryService.getCategoryList( + userInfoService.getCategoryAccessNameList(request + .getRemoteUser()), null); session.setAttribute(HAS_WRITABLE_CATEGORIES, Boolean .valueOf(!categoryList.isEmpty())); } @@ -654,4 +680,12 @@ this.response = response; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: board/trunk/src/main/java/jp/sf/pal/board/action/message/ViewAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/message/ViewAction.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/action/message/ViewAction.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -19,12 +19,14 @@ import jp.sf.pal.board.db.exentity.Message; import jp.sf.pal.board.db.exentity.MessageAttachment; import jp.sf.pal.board.db.exentity.Reply; +import jp.sf.pal.board.db.exentity.UserInfo; import jp.sf.pal.board.dxo.MessageDxo; import jp.sf.pal.board.dxo.PagerDxo; import jp.sf.pal.board.form.message.ViewForm; import jp.sf.pal.board.pager.MessagePager; import jp.sf.pal.board.service.CategoryService; import jp.sf.pal.board.service.MessageService; +import jp.sf.pal.board.service.UserInfoService; import jp.sf.pal.board.util.BoardUtil; import org.apache.commons.logging.Log; @@ -64,6 +66,8 @@ private CategoryService categoryService; + private UserInfoService userInfoService; + private MessagePager messagePager; private PagerDxo pagerDxo; @@ -80,8 +84,8 @@ // page navi messagePager.setCreatedBy(request.getRemoteUser()); messageItems = messageService.getMessageList(messagePager); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); viewForm.content = messagePager.getContent();// TODO Dxo return "index.jsp"; @@ -143,8 +147,8 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); messageAttachmentItems = messageService.getMessageAttachmentList(Long @@ -160,8 +164,8 @@ new Object[] { BoardConstants.CONFIRM_MODE, viewForm.mode }); } - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); messageAttachmentItems = messageService.getMessageAttachmentList(Long @@ -196,14 +200,20 @@ viewForm.initialize(); viewForm.mode = BoardConstants.CREATE_MODE; - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); // update edit page loadDetailsPageParameters(); - viewForm.displayName = BoardUtil.getDisplayName(request); + String userId = request.getRemoteUser(); + UserInfo userInfo = userInfoService.getUserInfo(userId); + if (userInfo != null) { + viewForm.displayName = BoardUtil.getDisplayName(request, userInfo + .getNameArg0(), userInfo.getNameArg1(), userInfo + .getNameArg2()); + } // permission error if (!isEditable) { @@ -217,8 +227,8 @@ public String editpage() { viewForm.mode = BoardConstants.EDIT_MODE; - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); messageAttachmentItems = messageService.getMessageAttachmentList(Long @@ -248,8 +258,8 @@ BoardConstants.MESSAGE_MAX_LENGTH, 4000) }); } - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); return "confirm.jsp"; @@ -259,8 +269,8 @@ public String deletepage() { viewForm.mode = BoardConstants.DELETE_MODE; - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); // update edit page @@ -291,6 +301,9 @@ loadListPageParameters(); return createIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_create_message"); @@ -317,6 +330,9 @@ loadListPageParameters(); return createIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_update_message"); @@ -334,6 +350,9 @@ loadListPageParameters(); return createIndex(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_message"); @@ -356,8 +375,8 @@ messageService.store(reply); SAStrutsUtil.addMessage(request, "success.create_reply"); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); // update edit page @@ -377,6 +396,9 @@ viewForm.replyContent = null; return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_message"); @@ -398,8 +420,8 @@ request.getRemoteUser()); SAStrutsUtil.addMessage(request, "success.delete_reply"); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); // update edit page @@ -415,6 +437,9 @@ } return "confirm.jsp"; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException("errors.failed_to_delete_reply"); @@ -458,6 +483,9 @@ "success.create_message_attachment"); return editpage(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -470,8 +498,9 @@ try { MessageAttachment messageAttachment = messageService .getMessageAttachment(Long - .parseLong(viewForm.messageAttachmentId), BoardUtil - .getCategoryAccessNameList(request), + .parseLong(viewForm.messageAttachmentId), + userInfoService.getCategoryAccessNameList(request + .getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); if (messageAttachment == null) { throw new ActionMessagesException( @@ -487,6 +516,9 @@ sos.write(messageAttachment.getAttachment().getData()); sos.flush(); return null; + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (CommonException e) { log.error(e.getMessage(), e); throw new ActionMessagesException(e.getMessageId()); @@ -514,11 +546,14 @@ SAStrutsUtil.addMessage(request, "success.delete_message_attachment"); - categoryItems = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), + categoryItems = categoryService.getCategoryList(userInfoService + .getCategoryAccessNameList(request.getRemoteUser()), BoardConstants.ACCESS_TYPE_VIEW_ONLY); return editpage(); + } catch (ActionMessagesException e) { + log.error(e.getMessage(), e); + throw e; } catch (Exception e) { log.error(e.getMessage(), e); throw new ActionMessagesException( @@ -548,7 +583,13 @@ // reply if (BoardConstants.MESSAGE_STATUS_PUBLIC.equals(message.getStatus())) { replyItems = messageService.getReplyList(messageId); - viewForm.replyDisplayName = BoardUtil.getDisplayName(request); + String userId = request.getRemoteUser(); + UserInfo userInfo = userInfoService.getUserInfo(userId); + if (userInfo != null) { + viewForm.replyDisplayName = BoardUtil.getDisplayName(request, + userInfo.getNameArg0(), userInfo.getNameArg1(), + userInfo.getNameArg2()); + } } } @@ -587,9 +628,9 @@ private void loadDetailsPageParameters() { HttpSession session = request.getSession(); - List categoryList = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), - BoardConstants.ACCESS_TYPE_EDIT); + List categoryList = categoryService.getCategoryList( + userInfoService.getCategoryAccessNameList(request + .getRemoteUser()), BoardConstants.ACCESS_TYPE_EDIT); session.setAttribute(WRITABLE_CATEGORY_ITEMS, categoryList); isEditable = !categoryList.isEmpty(); @@ -602,9 +643,9 @@ private void checkWritableCategories() { HttpSession session = request.getSession(); - List categoryList = categoryService.getCategoryList(BoardUtil - .getCategoryAccessNameList(request), - BoardConstants.ACCESS_TYPE_EDIT); + List categoryList = categoryService.getCategoryList( + userInfoService.getCategoryAccessNameList(request + .getRemoteUser()), BoardConstants.ACCESS_TYPE_EDIT); session.setAttribute(HAS_WRITABLE_CATEGORIES, Boolean .valueOf(!categoryList.isEmpty())); } @@ -688,4 +729,12 @@ this.response = response; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/UserInfo.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of USER_INFO. *

      @@ -14,4 +16,33 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } + } Added: board/trunk/src/main/java/jp/sf/pal/board/service/UserInfoService.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/service/UserInfoService.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/service/UserInfoService.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -0,0 +1,99 @@ +package jp.sf.pal.board.service; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import jp.sf.pal.board.BoardConstants; +import jp.sf.pal.board.db.cbean.GroupMappingCB; +import jp.sf.pal.board.db.cbean.RoleMappingCB; +import jp.sf.pal.board.db.cbean.UserInfoCB; +import jp.sf.pal.board.db.exbhv.GroupMappingBhv; +import jp.sf.pal.board.db.exbhv.RoleMappingBhv; +import jp.sf.pal.board.db.exbhv.UserInfoBhv; +import jp.sf.pal.board.db.exentity.GroupMapping; +import jp.sf.pal.board.db.exentity.RoleMapping; +import jp.sf.pal.board.db.exentity.UserInfo; + +public class UserInfoService implements Serializable { + + private static final long serialVersionUID = -8494815160858850769L; + + private transient UserInfoBhv userInfoBhv; + + private transient RoleMappingBhv roleMappingBhv; + + private transient GroupMappingBhv groupMappingBhv; + + public UserInfo getUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setUserId_Equal(userId); + UserInfo userInfo = userInfoBhv.selectEntity(cb); + if (userInfo == null) { + return null; + } + + // RoleMappingCB cb2 = new RoleMappingCB(); + // cb2.query().setUserId_Equal(userId); + // userInfo.setRoleMappingList(roleMappingBhv.selectList(cb2)); + // + // GroupMappingCB cb3 = new GroupMappingCB(); + // cb3.query().setUserId_Equal(userId); + // userInfo.setGroupMappingList(groupMappingBhv.selectList(cb3)); + + return userInfo; + } + + public List getCategoryAccessNameList(String userId) { + List accessNameList = new ArrayList(); + accessNameList.add(BoardConstants.USER_ACCESS_NAME_PREFIX + userId); + + RoleMappingCB cb1 = new RoleMappingCB(); + cb1.query().setUserId_Equal(userId); + cb1.query().addOrderBy_UserId_Asc(); + List roleMappingList = roleMappingBhv.selectList(cb1); + for (RoleMapping rm : roleMappingList) { + accessNameList.add(BoardConstants.ROLE_ACCESS_NAME_PREFIX + + rm.getRoleId()); + } + + GroupMappingCB cb2 = new GroupMappingCB(); + cb2.query().setUserId_Equal(userId); + cb2.query().addOrderBy_UserId_Asc(); + List groupMappingList = groupMappingBhv.selectList(cb2); + for (GroupMapping rm : groupMappingList) { + accessNameList.add(BoardConstants.GROUP_ACCESS_NAME_PREFIX + + rm.getGroupId()); + } + + return accessNameList; + } + + public RoleMappingBhv getRoleMappingBhv() { + return roleMappingBhv; + } + + public void setRoleMappingBhv(RoleMappingBhv roleMappingBhv) { + this.roleMappingBhv = roleMappingBhv; + } + + public GroupMappingBhv getGroupMappingBhv() { + return groupMappingBhv; + } + + public void setGroupMappingBhv(GroupMappingBhv groupMappingBhv) { + this.groupMappingBhv = groupMappingBhv; + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/service/UserInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/util/BoardUtil.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/util/BoardUtil.java 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/java/jp/sf/pal/board/util/BoardUtil.java 2008-11-21 22:40:35 UTC (rev 1394) @@ -1,6 +1,8 @@ package jp.sf.pal.board.util; -import java.util.List; +import java.text.MessageFormat; +import java.util.Locale; +import java.util.ResourceBundle; import javax.portlet.PortletConfig; import javax.portlet.PortletRequest; @@ -8,7 +10,6 @@ import javax.servlet.http.HttpServletRequest; import jp.sf.pal.board.BoardConstants; -import jp.sf.pal.board.common.util.SAStrutsUtil; import org.seasar.struts.portlet.util.PortletUtil; @@ -50,17 +51,17 @@ return null; } - public static List getCategoryAccessNameList( - HttpServletRequest request) { - PortletSession portletSession = getPortletSession(request); - if (portletSession != null) { - return (List) portletSession.getAttribute( - BoardConstants.USER_CATEGORY_ACCESS_NAME_LIST, - PortletSession.APPLICATION_SCOPE); - } - return (List) request.getSession().getAttribute( - BoardConstants.USER_CATEGORY_ACCESS_NAME_LIST); - } + // public static List getCategoryAccessNameList( + // HttpServletRequest request) { + // PortletSession portletSession = getPortletSession(request); + // if (portletSession != null) { + // return (List) portletSession.getAttribute( + // BoardConstants.USER_CATEGORY_ACCESS_NAME_LIST, + // PortletSession.APPLICATION_SCOPE); + // } + // return (List) request.getSession().getAttribute( + // BoardConstants.USER_CATEGORY_ACCESS_NAME_LIST); + // } public static void setCurrentCategoryId(HttpServletRequest request, Integer categoryId) { @@ -81,27 +82,11 @@ return categoryId; } - public static String getDisplayName(HttpServletRequest request) { - PortletConfig portletConfig = SAStrutsUtil.getPortletConfig(request); - if (portletConfig == null) { - return request.getRemoteUser(); - } - String nameFormat = portletConfig.getInitParameter("nameFormat"); - if (nameFormat == null) { - // use nickname - String displayName = SAStrutsUtil.getUserInfo(request, - "user.name.nickName", null); - return displayName != null ? displayName : request.getRemoteUser(); - } else { - String[] keys = nameFormat.split(" "); - - StringBuilder buf = new StringBuilder(SAStrutsUtil.getUserInfo( - request, keys[0], "")); - for (int i = 1; i < keys.length; i++) { - buf.append(" "); - buf.append(SAStrutsUtil.getUserInfo(request, keys[i], "")); - } - return buf.toString(); - } + public static String getDisplayName(HttpServletRequest request, + String nameArg0, String nameArg1, String nameArg2) { + Locale locale = request.getLocale(); + ResourceBundle bundle = ResourceBundle.getBundle("application", locale); + MessageFormat fmt = new MessageFormat(bundle.getString("display.name")); + return fmt.format(new Object[] { nameArg0, nameArg1, nameArg2 }); } } Modified: board/trunk/src/main/resources/application.properties =================================================================== --- board/trunk/src/main/resources/application.properties 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/resources/application.properties 2008-11-21 22:40:35 UTC (rev 1394) @@ -5,6 +5,13 @@ msg.header=

        msg.footer=
      +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. Modified: board/trunk/src/main/resources/application_ja.properties =================================================================== --- board/trunk/src/main/resources/application_ja.properties 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/resources/application_ja.properties 2008-11-21 22:40:35 UTC (rev 1394) @@ -1,3 +1,10 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 Modified: board/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- board/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-21 13:34:31 UTC (rev 1393) +++ board/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-21 22:40:35 UTC (rev 1394) @@ -26,16 +26,8 @@ MessageAdmin Board: Message Admin Display messages. - org.apache.portals.bridges.portletfilter.FilterPortlet + org.seasar.struts.portlet.SAStrutsPortlet - portlet-class - org.seasar.struts.portlet.SAStrutsPortlet - - - portlet-filters - jp.sf.pal.board.filter.JetspeedAccessFilter - - viewPage /message/admin/ @@ -56,25 +48,11 @@ MessageView Board: Message Viewer Display messages. - org.apache.portals.bridges.portletfilter.FilterPortlet + org.seasar.struts.portlet.SAStrutsPortlet - portlet-class - org.seasar.struts.portlet.SAStrutsPortlet - - - portlet-filters - jp.sf.pal.board.filter.JetspeedAccessFilter - - viewPage /message/view/ - 0 text/html From svnnotify ¡÷ sourceforge.jp Sat Nov 22 08:00:53 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 22 Nov 2008 08:00:53 +0900 Subject: [pal-cvs 3660] [1395] fixed sort problem. Message-ID: <1227308453.504936.31467.nullmailer@users.sourceforge.jp> Revision: 1395 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1395 Author: shinsuke Date: 2008-11-22 08:00:53 +0900 (Sat, 22 Nov 2008) Log Message: ----------- fixed sort problem. Modified Paths: -------------- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp -------------- next part -------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-21 22:40:35 UTC (rev 1394) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/admin/CategoryAction.java 2008-11-21 23:00:53 UTC (rev 1395) @@ -147,7 +147,7 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveUp(category); + categoryService.moveDown(category); BookmarkUtil.addMessage(request, "success.move_category_up"); } catch (ActionMessagesException e) { throw e; @@ -171,7 +171,7 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveDown(category); + categoryService.moveUp(category); BookmarkUtil.addMessage(request, "success.move_category_down"); } catch (ActionMessagesException e) { throw e; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java 2008-11-21 22:40:35 UTC (rev 1394) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/CategoryAction.java 2008-11-21 23:00:53 UTC (rev 1395) @@ -135,8 +135,8 @@ return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") - public String moveup() { + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { if (categoryForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } @@ -147,8 +147,8 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveUp(category); - BookmarkUtil.addMessage(request, "success.move_category_up"); + categoryService.moveDown(category); + BookmarkUtil.addMessage(request, "success.move_category_down"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { @@ -159,8 +159,8 @@ return displayList(); } - @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") - public String movedown() { + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { if (categoryForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } @@ -171,8 +171,8 @@ new Object[] { categoryForm.id }); } try { - categoryService.moveDown(category); - BookmarkUtil.addMessage(request, "success.move_category_down"); + categoryService.moveUp(category); + BookmarkUtil.addMessage(request, "success.move_category_up"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java 2008-11-21 22:40:35 UTC (rev 1394) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java 2008-11-21 23:00:53 UTC (rev 1395) @@ -60,7 +60,7 @@ id = null; name = null; memo = null; - type = null; + type = BookmarkConstants.PERSONAL_CATEGORY; sortOrder = null; createdTime = null; createdBy = null; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-21 22:40:35 UTC (rev 1394) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-21 23:00:53 UTC (rev 1395) @@ -137,11 +137,12 @@ bookmarkCategoryBhv.update(category); } - public void moveUp(BookmarkCategory category) { + public void moveDown(BookmarkCategory category) { BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setSortOrder_GreaterThan(category.getSortOrder()); + cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Asc(); List categoryList = bookmarkCategoryBhv .selectPage(cb); @@ -159,11 +160,12 @@ } } - public void moveDown(BookmarkCategory category) { + public void moveUp(BookmarkCategory category) { BookmarkCategoryCB cb = new BookmarkCategoryCB(); cb.fetchFirst(1); cb.fetchFirst(1); cb.query().setSortOrder_LessThan(category.getSortOrder()); + cb.query().setCreatedBy_Equal(category.getCreatedBy()); cb.query().addOrderBy_SortOrder_Desc(); List categoryList = bookmarkCategoryBhv .selectPage(cb); Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-21 22:40:35 UTC (rev 1394) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-21 23:00:53 UTC (rev 1395) @@ -29,13 +29,13 @@
      - +   - +  
      - ²¼¤Ø +   - ¾å¤Ø +   ${f:h(telephone)}
      + + + ${f:h(l.label)} + + +
      + + + + ${f:h(l.label)} + + +
      + + + + + + +
      - " onclick="$('#contents').load('${f:url('chat')}',{'name':'<%= request.getRemoteUser() %>','msg':$('#message')[0].value}); $('#message')[0].value= ''; loadChat()" /> -
      - -
      + " onclick="loadChat()" /> +
      +
      +
      - -

      \ No newline at end of file From svnnotify ¡÷ sourceforge.jp Tue Nov 25 15:46:35 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 15:46:35 +0900 Subject: [pal-cvs 3705] [1440] i18ned title. Message-ID: <1227595595.754925.17852.nullmailer@users.sourceforge.jp> Revision: 1440 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1440 Author: shinsuke Date: 2008-11-25 15:46:35 +0900 (Tue, 25 Nov 2008) Log Message: ----------- i18ned title. Modified Paths: -------------- vfs-portlets/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- vfs-portlets/trunk/src/main/resources/jp/ vfs-portlets/trunk/src/main/resources/jp/sf/ vfs-portlets/trunk/src/main/resources/jp/sf/pal/ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig_ja.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer_ja.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig_ja.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer.properties vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer_ja.properties -------------- next part -------------- Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig.properties =================================================================== Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig_ja.properties =================================================================== --- vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig_ja.properties (rev 0) +++ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig_ja.properties 2008-11-25 06:46:35 UTC (rev 1440) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=VFS \u8a2d\u5b9a +javax.portlet.short-title=\u8a2d\u5b9a +javax.portlet.keywords=VFS,\u8a2d\u5b9a + Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultConfig_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer.properties =================================================================== Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer_ja.properties =================================================================== --- vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer_ja.properties (rev 0) +++ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer_ja.properties 2008-11-25 06:46:35 UTC (rev 1440) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=VFS \u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc +javax.portlet.short-title=\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc +javax.portlet.keywords=VFS + Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSDefaultExplorer_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig.properties =================================================================== Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig_ja.properties =================================================================== --- vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig_ja.properties (rev 0) +++ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig_ja.properties 2008-11-25 06:46:35 UTC (rev 1440) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u500b\u4eba\u7528\u30d5\u30a9\u30eb\u30c0\u8a2d\u5b9a +javax.portlet.short-title=\u500b\u4eba\u7528\u30d5\u30a9\u30eb\u30c0\u8a2d\u5b9a +javax.portlet.keywords=\u30d5\u30a9\u30eb\u30c0,\u8a2d\u5b9a + Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderConfig_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer.properties =================================================================== Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer.properties ___________________________________________________________________ Name: svn:eol-style + native Added: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer_ja.properties =================================================================== --- vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer_ja.properties (rev 0) +++ vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer_ja.properties 2008-11-25 06:46:35 UTC (rev 1440) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u500b\u4eba\u7528\u30d5\u30a9\u30eb\u30c0 +javax.portlet.short-title=\u500b\u4eba\u7528 +javax.portlet.keywords=\u30d5\u30a9\u30eb\u30c0 + Property changes on: vfs-portlets/trunk/src/main/resources/jp/sf/pal/vfs/resources/VFSPersonalFolderExplorer_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 06:23:57 UTC (rev 1439) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 06:46:35 UTC (rev 1440) @@ -40,7 +40,7 @@ en ja - + jp.sf.pal.vfs.resources.VFSDefaultExplorer VFS Explorer Explorer @@ -69,7 +69,7 @@ en ja - + jp.sf.pal.vfs.resources.VFSDefaultConfig VFS Config Configurator @@ -98,7 +98,7 @@ en ja - + jp.sf.pal.vfs.resources.VFSPersonalFolderExplorer Personal Folder Personal @@ -127,7 +127,7 @@ en ja - + jp.sf.pal.vfs.resources.VFSPersonalFolderConfig Personal Folder Config Configurator From svnnotify ¡÷ sourceforge.jp Tue Nov 25 17:05:44 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 17:05:44 +0900 Subject: [pal-cvs 3706] [1441] fixed bug on ie. Message-ID: <1227600344.449559.5522.nullmailer@users.sourceforge.jp> Revision: 1441 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1441 Author: shinsuke Date: 2008-11-25 17:05:44 +0900 (Tue, 25 Nov 2008) Log Message: ----------- fixed bug on ie. Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/decorations/portlet/default/css/pal-extension.css -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/decorations/portlet/default/css/pal-extension.css =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/decorations/portlet/default/css/pal-extension.css 2008-11-25 06:46:35 UTC (rev 1440) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/src/webapp/decorations/portlet/default/css/pal-extension.css 2008-11-25 08:05:44 UTC (rev 1441) @@ -181,6 +181,7 @@ border-width:1px; display:block; margin:-1px; +_margin-top: 0px; } .default .tab-nav ul li.selected span { From svnnotify ¡÷ sourceforge.jp Tue Nov 25 17:14:11 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 17:14:11 +0900 Subject: [pal-cvs 3707] [1442] i18ned title. Message-ID: <1227600851.288751.16177.nullmailer@users.sourceforge.jp> Revision: 1442 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1442 Author: shinsuke Date: 2008-11-25 17:14:11 +0900 (Tue, 25 Nov 2008) Log Message: ----------- i18ned title. Modified Paths: -------------- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml Added Paths: ----------- scheduler/trunk/src/main/resources/jp/ scheduler/trunk/src/main/resources/jp/sf/ scheduler/trunk/src/main/resources/jp/sf/pal/ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities_ja.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager_ja.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager_ja.properties scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler_ja.properties -------------- next part -------------- Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities.properties =================================================================== Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities_ja.properties (rev 0) +++ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities_ja.properties 2008-11-25 08:14:11 UTC (rev 1442) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u65bd\u8a2d\u60c5\u5831 +javax.portlet.short-title=\u65bd\u8a2d\u60c5\u5831 +javax.portlet.keywords=\u65bd\u8a2d + Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Facilities_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager.properties =================================================================== Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager_ja.properties (rev 0) +++ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager_ja.properties 2008-11-25 08:14:11 UTC (rev 1442) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u65bd\u8a2d\u7ba1\u7406 +javax.portlet.short-title=\u65bd\u8a2d\u7ba1\u7406 +javax.portlet.keywords=\u65bd\u8a2d + Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/FacilityManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler.properties =================================================================== Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager.properties =================================================================== Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager_ja.properties (rev 0) +++ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager_ja.properties 2008-11-25 08:14:11 UTC (rev 1442) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u7ba1\u7406 +javax.portlet.short-title=\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u7ba1\u7406 +javax.portlet.keywords=\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb + Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/SchedulerManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler_ja.properties (rev 0) +++ scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler_ja.properties 2008-11-25 08:14:11 UTC (rev 1442) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb +javax.portlet.short-title=\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb +javax.portlet.keywords=\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb + Property changes on: scheduler/trunk/src/main/resources/jp/sf/pal/scheduler/resources/Scheduler_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 08:05:44 UTC (rev 1441) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-25 08:14:11 UTC (rev 1442) @@ -42,7 +42,7 @@ en ja - + jp.sf.pal.scheduler.resources.FacilityManager Facility Manager Facilities @@ -67,7 +67,7 @@ en ja - + jp.sf.pal.scheduler.resources.SchedulerManager Scheduler Manager Scheduler @@ -92,7 +92,7 @@ en ja - + jp.sf.pal.scheduler.resources.Scheduler Scheduler Scheduler @@ -117,7 +117,7 @@ en ja - + jp.sf.pal.scheduler.resources.Facilities Facilities Facilities From svnnotify ¡÷ sourceforge.jp Tue Nov 25 17:38:34 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 17:38:34 +0900 Subject: [pal-cvs 3708] [1443] checked on ie. Message-ID: <1227602314.280622.21118.nullmailer@users.sourceforge.jp> Revision: 1443 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1443 Author: shinsuke Date: 2008-11-25 17:38:33 +0900 (Tue, 25 Nov 2008) Log Message: ----------- checked on ie. Modified Paths: -------------- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -114,6 +114,7 @@
      +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -107,6 +107,7 @@
      +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -66,7 +66,7 @@
      Time ${day.displayedDate}${day.displayedDate}
      +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -55,7 +55,8 @@
      -
      +
      +
      @@ -74,13 +75,14 @@
      -
      + +
      - + @@ -92,7 +94,7 @@
        ${day.displayedDate}${day.displayedDate}
        -
      • ${event.time}
        +
      • ${event.time}
        Private ${event.title} @@ -110,5 +112,8 @@ + +
        + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -59,7 +59,8 @@
      -
      +
      +
      @@ -78,25 +79,26 @@
      -
      + +
      - + - +
        ${day.displayedDate}${day.displayedDate}
        -
      • ${event.time}
        +
      • ${event.time}
        Private ${event.title} @@ -114,5 +116,8 @@ + +
        + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -107,6 +107,7 @@
      +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -100,6 +100,7 @@
      +
      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-25 08:14:11 UTC (rev 1442) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-25 08:38:33 UTC (rev 1443) @@ -65,7 +65,7 @@
      Time ${day.displayedDate}${day.displayedDate}
      +
      From svnnotify ¡÷ sourceforge.jp Tue Nov 25 18:21:07 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 18:21:07 +0900 Subject: [pal-cvs 3709] [1444] compare start and end date. Message-ID: <1227604867.304463.12185.nullmailer@users.sourceforge.jp> Revision: 1444 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1444 Author: shinsuke Date: 2008-11-25 18:21:07 +0900 (Tue, 25 Nov 2008) Log Message: ----------- compare start and end date. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/application_ja.properties -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -19,6 +19,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -168,6 +169,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(onetimeScheduleForm.startDate, + onetimeScheduleForm.startTime, onetimeScheduleForm.endDate, + onetimeScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } return "confirm.jsp"; } @@ -201,6 +207,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(onetimeScheduleForm.startDate, + onetimeScheduleForm.startTime, onetimeScheduleForm.endDate, + onetimeScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); @@ -222,6 +233,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(onetimeScheduleForm.startDate, + onetimeScheduleForm.startTime, onetimeScheduleForm.endDate, + onetimeScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -19,6 +19,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -168,6 +169,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(repeatScheduleForm.startDate, + repeatScheduleForm.startTime, repeatScheduleForm.endDate, + repeatScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } return "confirm.jsp"; } @@ -201,6 +207,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(repeatScheduleForm.startDate, + repeatScheduleForm.startTime, repeatScheduleForm.endDate, + repeatScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); @@ -222,6 +233,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(repeatScheduleForm.startDate, + repeatScheduleForm.startTime, repeatScheduleForm.endDate, + repeatScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -209,6 +210,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -243,6 +249,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); @@ -269,6 +280,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -207,6 +208,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -241,6 +247,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); @@ -267,6 +278,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -203,6 +204,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -237,6 +243,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); @@ -263,6 +274,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -201,6 +202,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -235,6 +241,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); @@ -261,6 +272,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -16,7 +16,82 @@ import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; +import org.seasar.struts.exception.ActionMessagesException; + public class SchedulerUtil { + + public static boolean compare(String yyyymmdd1, String HHmm1, + String yyyymmdd2, String HHmm2) { + if (yyyymmdd1 == null) { + // invalid state + return false; + } + + if (yyyymmdd2 != null) { + if (yyyymmdd1.equals(yyyymmdd2)) { + if (HHmm1 == null || HHmm2 == null) { + return true; + } + // compare time + Date date1 = parseHHmm(HHmm1); + Date date2 = parseHHmm(HHmm2); + if (date1.getTime() < date2.getTime()) { + return true; + } else { + return false; + } + } else { + // compare date + Date date1 = parseYYYYMMDD(yyyymmdd1); + Date date2 = parseYYYYMMDD(yyyymmdd2); + if (date1.getTime() <= date2.getTime()) { + return true; + } else { + return false; + } + } + } else { + if (HHmm1 != null && HHmm2 != null) { + // compare time + Date date1 = parseHHmm(HHmm1); + Date date2 = parseHHmm(HHmm2); + if (date1.getTime() < date2.getTime()) { + return true; + } else { + return false; + } + } else { + // nothing + return true; + } + } + } + + public static Date parseYYYYMMDD(String yyyymmdd) { + try { + String[] values = yyyymmdd.trim().split("/"); + int year = Integer.parseInt(values[0]); + int month = Integer.parseInt(values[1]); + int date = Integer.parseInt(values[2]); + return DateUtil.get(year - 1900, month - 1, date); + } catch (Exception e) { + throw new ActionMessagesException("errors.invalid_date_format", + new Object[] { yyyymmdd }); + } + } + + public static Date parseHHmm(String HHmm) { + try { + String[] values = HHmm.trim().split(":"); + int hour = Integer.parseInt(values[0]); + int min = Integer.parseInt(values[1]); + return DateUtil.get(0, 0, 0, hour, min); + } catch (Exception e) { + throw new ActionMessagesException("errors.invalid_time_format", + new Object[] { HHmm }); + } + } + public static List> createSideCalendar( Calendar targetCalendar) { List> calendarDayItems = new LinkedList>(); Modified: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-25 09:21:07 UTC (rev 1444) @@ -81,4 +81,6 @@ labels.to_next=Next labels.to_back=Back - +errors.invalid_date_format=Invalid date format({0}). +errors.invalid_time_format=Invalid time format({0}). +errors.invalid_end_date=To Date/Time must be after From Date/Time. Modified: scheduler/trunk/src/main/resources/application_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/application_ja.properties 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/resources/application_ja.properties 2008-11-25 09:21:07 UTC (rev 1444) @@ -51,3 +51,7 @@ labels.config=\u8a2d\u5b9a +errors.invalid_date_format=\u65e5\u4ed8\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093({0})\u3002 +errors.invalid_time_format=\u6642\u9593\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093({0})\u3002 +errors.invalid_end_date=To Date/Time must be after From Date/Time. + From svnnotify ¡÷ sourceforge.jp Tue Nov 25 21:57:34 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 21:57:34 +0900 Subject: [pal-cvs 3710] [1445] fixed wrong path. Message-ID: <1227617854.431280.5871.nullmailer@users.sourceforge.jp> Revision: 1445 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1445 Author: shinsuke Date: 2008-11-25 21:57:34 +0900 (Tue, 25 Nov 2008) Log Message: ----------- fixed wrong path. Modified Paths: -------------- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-25 09:21:07 UTC (rev 1444) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-25 12:57:34 UTC (rev 1445) @@ -12,7 +12,7 @@
    • Facilities
    • -
    • Facility Groups
    • +
    • Facility Groups
    • From svnnotify ¡÷ sourceforge.jp Tue Nov 25 22:45:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Tue, 25 Nov 2008 22:45:04 +0900 Subject: [pal-cvs 3711] [1446] added css. Message-ID: <1227620704.542131.18142.nullmailer@users.sourceforge.jp> Revision: 1446 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1446 Author: shinsuke Date: 2008-11-25 22:45:04 +0900 (Tue, 25 Nov 2008) Log Message: ----------- added css. Modified Paths: -------------- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp Added Paths: ----------- addresslist/trunk/src/main/webapp/css/ addresslist/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
      + +
        Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
        + +
          Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -4,7 +4,22 @@ -
          + +
            Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
            + +
              Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
              + +
                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                + +
                  Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -4,7 +4,22 @@ -
                  + +
                    Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                    + +
                      Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                      + +
                      Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                      + +
                        Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                        + +
                          Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -4,7 +4,22 @@ -
                          + +
                            Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                            + +
                              Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                              + +
                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                                + +
                                  Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -4,7 +4,22 @@ -
                                  + +
                                    Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-25 12:57:34 UTC (rev 1445) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) @@ -5,7 +5,22 @@ -
                                    + +
                                      Added: addresslist/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- addresslist/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ addresslist/trunk/src/main/webapp/css/pal-extension.css 2008-11-25 13:45:04 UTC (rev 1446) @@ -0,0 +1,210 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.pal-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.pal-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.pal-portlet .form-table thead { +margin:0; +padding:0; +} + +.pal-portlet .form-table tbody { +margin:0; +padding:0; +} + +.pal-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.pal-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.pal-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.pal-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.pal-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.pal-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.pal-portlet .list-table thead { +margin:0; +padding:0; +} + +.pal-portlet .list-table tbody { +margin:0; +padding:0; +} + +.pal-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.pal-portlet .list-table .row1 { +background-color: #ffffff; +} + +.pal-portlet .list-table .row2 { +background-color: #fffff8; +} + +.pal-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.pal-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.pal-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.pal-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.pal-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.pal-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.pal-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.pal-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.pal-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.pal-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.pal-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.pal-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.pal-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: addresslist/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Wed Nov 26 17:53:03 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 26 Nov 2008 17:53:03 +0900 Subject: [pal-cvs 3712] [1447] i18ned scheduler Message-ID: <1227689583.410989.5758.nullmailer@users.sourceforge.jp> Revision: 1447 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1447 Author: sone Date: 2008-11-26 17:53:03 +0900 (Wed, 26 Nov 2008) Log Message: ----------- i18ned scheduler Modified Paths: -------------- scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/application_ja.properties scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp -------------- next part -------------- Modified: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-26 08:53:03 UTC (rev 1447) @@ -84,3 +84,105 @@ errors.invalid_date_format=Invalid date format({0}). errors.invalid_time_format=Invalid time format({0}). errors.invalid_end_date=To Date/Time must be after From Date/Time. + +labels.facilities=Facilities +labels.facility_groups=Facility Groups +labels.confirmation_of_facility=Confirmation Of Facility +labels.facility_name=Facility Name +labels.facility_group=Facility Group +labels.facility_group_name=Facility Group Name +labels.edit_facility=Edit Facility + +labels.comment=Comment +labels.create_new=Create New +labels.sort=Sort +labels.up=Up +labels.down=Down + +labels.previous=Previous +labels.next=Next + +labels.group=Group +labels.search=Search +labels.reset=Reset +labels.details=Details + +labels.edit_facility_group=Edit Facility Group + +labels.one_time=One Time +labels.repeats=Repeats + +labels.what=What +labels.where=Where +labels.when=When +labels.from=From: +labels.to=To: +labels.description=Description +labels.privacy=Privacy +labels.public=Public +labels.private=Private +labels.assigned=Assigned +labels.name=Name +labels.select_facilities=Select Facilities +labels.facility_list=Facility List + +labels.add=Add +labels.remove=Remove +labels.selected_facility_list=Selected Facility List + +labels.ok=OK +labels.id=ID +labels.title=Title + +labels.user_list=User List +labels.selected_user_list=Selected User List + +labels.mtwtfss=Daily +labels.mtwtf=Every weekday (Mon-Fri) +labels.mwf=Every Mon., Wed., and Fri. +labels.tt=Every Tues., and Thurs. +labels.weekly=Weekly +labels.monthly=Monthly +labels.yearly=Yearly + +labels.select_users=Select Users + +labels.day=Day +labels.week=Week +labels.month=Month +labels.today=Today +labels.sun=S +labels.mon=M +labels.tue=T +labels.wed=W +labels.thu=T +labels.fri=F +labels.sat=S + +labels.time=Time +labels.events=Events +labels.all_day=All Day + +labels.sun2=Sun +labels.mon2=Mon +labels.tue2=Tue +labels.wed2=Wed +labels.thu2=Thu +labels.fri2=Fri +labels.sat2=Sat + +labels.facility=Facility +labels.facility_groups=Facility Groups + +labels.calendar=Calendar + +labels.display=Display + +labels.to2=To +labels.from2=From + +labels.user_group=User Group + +labels.week_group=Week(Group) +labels.group_week=Group(Week) +labels.change=Change \ No newline at end of file Modified: scheduler/trunk/src/main/resources/application_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/application_ja.properties 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/resources/application_ja.properties 2008-11-26 08:53:03 UTC (rev 1447) @@ -23,23 +23,38 @@ errors.url={0} \u306f\u6b63\u3057\u3044 URL (\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u30a2\u30c9\u30ec\u30b9) \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 success.update_config=\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 -success.create_singleSchedule=Created your event. -success.update_singleSchedule=Updated your event. -success.delete_singleSchedule=Deleted your event. -success.create_routineSchedule=Created your event. -success.update_routineSchedule=Updated your event. -success.delete_routineSchedule=Deleted your event. +success.create_eventSchedule=\u30a4\u30d9\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_eventSchedule=\u30a4\u30d9\u30f3\u30c8\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_eventSchedule=\u30a4\u30d9\u30f3\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.create_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.moveup_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u4e0a\u3078\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.movedown_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u4e0b\u3078\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.create_facility=\u65bd\u8a2d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 +success.update_facility=\u65bd\u8a2d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_facility=\u65bd\u8a2d\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.moveup_facility=\u65bd\u8a2d\u3092\u4e0a\u306b\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.movedown_facility=\u65bd\u8a2d\u3092\u4e0b\u3078\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 errors.failed_to_update_config=\u8a2d\u5b9a\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) -errors.failed_to_create_singleSchedule=Failed to create a new event. -errors.failed_to_update_singleSchedule=Failed to update the event. -errors.failed_to_delete_singleSchedule=Failed to delete the event. -errors.could_not_find_singleSchedule=Could not find the event({0}). -errors.failed_to_create_routineSchedule=Failed to create a new event. -errors.failed_to_update_routineSchedule=Failed to update the event. -errors.failed_to_delete_routineSchedule=Failed to delete the event. -errors.could_not_find_routineSchedule=Could not find the event({0}). +errors.failed_to_create_eventSchedule=\u30a4\u30d9\u30f3\u30c8\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_eventSchedule=\u30a4\u30d9\u30f3\u30c8\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_eventSchedule=\u30a4\u30d9\u30f3\u30c8\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_eventSchedule=\u30a4\u30d9\u30f3\u30c8({0})\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +errors.failed_to_create_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7({0})\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +errors.failed_to_moveup_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u4e0a\u3078\u79fb\u52d5\u3059\u308b\u3053\u3068\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_movedown_facilityGroup=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u3092\u4e0b\u3078\u79fb\u52d5\u3059\u308b\u3053\u3068\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_create_facility=\u65bd\u8a2d\u306e\u65b0\u898f\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_facility=\u65bd\u8a2d\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_facility=\u65bd\u8a2d\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_facility=\u65bd\u8a2d({0})\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 +errors.failed_to_moveup_facility=\u65bd\u8a2d\u3092\u4e0a\u3078\u79fb\u52d5\u3059\u308b\u3053\u3068\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_movedown_facility=\u65bd\u8a2d\u3092\u4e0b\u3078\u79fb\u52d5\u3059\u308b\u3053\u3068\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 labels.detail=\u8a73\u7d30 labels.create=\u4f5c\u6210 @@ -53,5 +68,113 @@ errors.invalid_date_format=\u65e5\u4ed8\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093({0})\u3002 errors.invalid_time_format=\u6642\u9593\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093({0})\u3002 -errors.invalid_end_date=To Date/Time must be after From Date/Time. +errors.invalid_end_date=\u958b\u59cb\u65e5\u306f\u7d42\u4e86\u65e5\u3088\u308a\u524d\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 +labels.event_detail=\u30a4\u30d9\u30f3\u30c8\u306e\u8a73\u7d30 +labels.confirmation_of_event=\u30a4\u30d9\u30f3\u30c8\u306e\u78ba\u5b9a + +labels.create_new_event=\u30a4\u30d9\u30f3\u30c8\u306e\u4f5c\u6210 +labels.to_next=\u6b21\u3078 +labels.to_back=\u623b\u308b + +labels.facilities=\u65bd\u8a2d +labels.facility_groups=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7 +labels.confirmation_of_facility=\u65bd\u8a2d\u306e\u78ba\u8a8d +labels.facility_name=\u65bd\u8a2d\u540d +labels.facility_group=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7 +labels.facility_group_name=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u540d +labels.edit_facility=\u65bd\u8a2d\u306e\u7de8\u96c6 + +labels.comment=\u30b3\u30e1\u30f3\u30c8 +labels.create_new=\u65b0\u898f\u4f5c\u6210 +labels.sort=\u30bd\u30fc\u30c8 +labels.up=\u4e0a\u3078 +labels.down=\u4e0b\u3078 + +labels.previous=\u524d\u3078 +labels.next=\u6b21\u3078 + +labels.group=\u30b0\u30eb\u30fc\u30d7 +labels.search=\u691c\u7d22 +labels.reset=\u30ea\u30bb\u30c3\u30c8 +labels.details=\u8a73\u7d30 + +labels.edit_facility_group=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7\u306e\u7de8\u96c6 + +labels.one_time=\u4e00\u56de\u9650\u308a +labels.repeats=\u7e70\u308a\u8fd4\u3057 + +labels.what=\u6982\u8981 +labels.where=\u5834\u6240 +labels.when=\u6642\u9593 +labels.from=\u958b\u59cb\u65e5\u6642: +labels.to=\u7d42\u4e86\u65e5\u6642: +labels.description=\u8a73\u7d30 +labels.privacy=\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc +labels.public=\u516c\u958b +labels.private=\u975e\u516c\u958b +labels.assigned=\u62c5\u5f53\u8005 +labels.name=\u540d\u524d +labels.select_facilities=\u65bd\u8a2d\u9078\u629e +labels.facility_list=\u65bd\u8a2d\u30ea\u30b9\u30c8 + +labels.add=\u8ffd\u52a0 +labels.remove=\u524a\u9664 +labels.selected_facility_list=\u9078\u629e\u3055\u308c\u305f\u65bd\u8a2d\u306e\u30ea\u30b9\u30c8 + +labels.ok=OK +labels.id=ID +labels.title=\u30bf\u30a4\u30c8\u30eb + +labels.user_list=\u30e6\u30fc\u30b6\u30fc\u30ea\u30b9\u30c8 +labels.selected_user_list=\u9078\u629e\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u306e\u30ea\u30b9\u30c8 + +labels.mtwtfss=\u6bce\u65e5 +labels.mtwtf=\u5e73\u65e5(\u6708-\u91d1) +labels.mwf=\u6bce\u9031\u3001\u6708\u30fb\u6c34\u30fb\u91d1\u66dc\u65e5 +labels.tt=\u6bce\u9031\u3001\u706b\u30fb\u6728\u66dc\u65e5 +labels.weekly=\u4e00\u9031\u9593\u3054\u3068 +labels.monthly=\u4e00\u6708\u3054\u3068 +labels.yearly=\u4e00\u5e74\u3054\u3068 + +labels.select_users=\u30e6\u30fc\u30b6\u30fc\u9078\u629e + +labels.day=\u65e5 +labels.week=\u9031 +labels.month=\u6708 +labels.today=\u672c\u65e5 +labels.sun=\u65e5 +labels.mon=\u6708 +labels.tue=\u706b +labels.wed=\u6c34 +labels.thu=\u6728 +labels.fri=\u91d1 +labels.sat=\u571f + +labels.time=\u6642\u9593 +labels.events=\u30a4\u30d9\u30f3\u30c8 +labels.all_day=\u7d42\u65e5 + +labels.sun2=\u65e5\u66dc +labels.mon2=\u6708\u66dc +labels.tue2=\u706b\u66dc +labels.wed2=\u6c34\u66dc +labels.thu2=\u6728\u66dc +labels.fri2=\u91d1\u66dc +labels.sat2=\u571f\u66dc + +labels.facility=\u65bd\u8a2d +labels.facility_groups=\u65bd\u8a2d\u30b0\u30eb\u30fc\u30d7 + +labels.calendar=\u30ab\u30ec\u30f3\u30c0\u30fc + +labels.display=\u8868\u793a + +labels.to2=\u7d42\u4e86 +labels.from2=\u958b\u59cb + +labels.user_group=\u30e6\u30fc\u30b6\u30fc\u30b0\u30eb\u30fc\u30d7 + +labels.week_group=\u9031(\u30b0\u30eb\u30fc\u30d7) +labels.group_week=\u30b0\u30eb\u30fc\u30d7(\u9031) +labels.change=\u5909\u66f4 \ No newline at end of file Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -25,14 +25,14 @@
                                      - + - + - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -25,14 +25,14 @@
                                      Confirmation Of Facility
                                      Facility Name ${f:h(name)}
                                      Facility Group ${f:h(fg.name)} @@ -48,21 +48,21 @@
                                      - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
                                      - + - + - + - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,9 +9,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -19,7 +19,7 @@
                                      -Back + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -25,7 +25,7 @@
                                      Edit Facility
                                      Facility Name
                                      Facility Group @@ -42,15 +42,15 @@
                                      Comment
                                      - - + "/> + "/>
                                      - + @@ -45,13 +45,13 @@
                                      -Create New +
                                      Group @@ -35,8 +35,8 @@ - - +"/> +"/>
                                      - - + + @@ -61,15 +61,15 @@ @@ -79,7 +79,7 @@
                                      - Previous + @@ -96,7 +96,7 @@ - Next +
                                      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -25,10 +25,10 @@
                                      Facility NameSort  
                                      ${f:h(g.name)} - Up + - Down + - Edit - Delete + +
                                      - + - + @@ -36,21 +36,21 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -25,18 +25,18 @@
                                      Confirmation Of Facility Group
                                      Facility Group Name ${f:h(name)}
                                      - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - - - + "/> + "/> + "/>
                                      - + - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,9 +9,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -19,7 +19,7 @@
                                      -Back + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Facility Groups
                                      • +
                                      @@ -22,13 +22,13 @@
                                      -Create New +
                                      Edit Facility Group
                                      Facility Group Name
                                      - - + "/> + "/>
                                      - - + + @@ -38,15 +38,15 @@ @@ -56,7 +56,7 @@
                                      - Previous + @@ -73,7 +73,7 @@ - Next +
                                      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -28,47 +28,47 @@ - + - + - + - + - + - +
                                      Facility Group NameSort  
                                      ${f:h(g.name)} - Up + - Down + - Edit - Delete + +
                                      What ${f:h(title)}
                                      Where ${f:h(location)}
                                      When -From: + ${f:h(startDate)} ${f:h(startTime)}
                                      -To: + ${f:h(endDate)} ${f:h(endTime)}
                                      Description ${f:br(f:h(content))}
                                      Privacy -Public -Private + +
                                      Assigned - + @@ -85,12 +85,12 @@ - +
                                      Name
                                      Facilities - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -28,48 +28,48 @@ - + - + - + - + - + - +
                                      Name
                                      What
                                      Where
                                      When -From: +
                                      -To: +
                                      Description
                                      Privacy - Public - Private + +
                                      Assigned - + @@ -80,7 +80,7 @@ @@ -93,12 +93,12 @@ - +
                                      Name
                                      - +"/>
                                      Facilities - + @@ -109,7 +109,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,9 +9,9 @@
                                      • -
                                      • One time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -41,7 +41,7 @@
                                      Name
                                      - +"/>
                                      - + @@ -59,14 +59,14 @@
                                      Facility List
                                      - - + >>"/> +"/>
                                      - + @@ -89,7 +89,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -27,8 +27,8 @@
                                      Selected Facility List
                                      - +"/>
                                      - - + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -41,7 +41,7 @@
                                      IDTitle  
                                      - + @@ -66,7 +66,7 @@
                                      User List
                                      - + @@ -89,7 +89,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One Time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -28,60 +28,60 @@ - + - + - + - + - + - + - +
                                      Selected User List
                                      - +"/>
                                      What ${f:h(title)}
                                      Where ${f:h(location)}
                                      Repeats -Daily -Every weekday (Mon-Fri) -Every Mon., Wed., and Fri. -Every Tues., and Thurs. -Weekly -Monthly -Yearly + + + + + + +
                                      When -From: + ${f:h(startDate)} ${f:h(startTime)}
                                      -To: + ${f:h(endDate)} ${f:h(endTime)}
                                      Description ${f:br(f:h(content))}
                                      Privacy -Public -Private + +
                                      Assigned - + @@ -98,12 +98,12 @@ - +
                                      Name
                                      Facilities - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One Time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -28,62 +28,62 @@ - + - + - + - + - + - + - +
                                      Name
                                      What
                                      Where
                                      Repeats - Daily - Every weekday (Mon-Fri) - Every Mon., Wed., and Fri. - Every Tues., and Thurs. - Weekly - Monthly - Yearly + + + + + + +
                                      When -From: +
                                      -To: +
                                      Description
                                      Privacy - Public - Private + +
                                      Assigned - + @@ -94,7 +94,7 @@ @@ -107,12 +107,12 @@ - +
                                      Name
                                      - +"/>
                                      Facilities - + @@ -123,7 +123,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,9 +9,9 @@
                                      • -
                                      • One Time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One Time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -41,7 +41,7 @@
                                      Name
                                      - +"/>
                                      - + @@ -59,14 +59,14 @@
                                      Facility List
                                      - - + >>"/> +"/>
                                      - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One Time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -27,8 +27,8 @@
                                      Selected Facility List
                                      - - + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                      • -
                                      • One Time
                                      • +
                                      • -
                                      • Repeats
                                      • +
                                      @@ -42,7 +42,7 @@
                                      IDTitle  
                                      - + @@ -60,14 +60,14 @@
                                      User List
                                      - - + >>"/> +"/>
                                      - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                      • -
                                      • Facilities
                                      • +
                                      • -
                                      • Day
                                      • +
                                      • -
                                      • Week
                                      • +
                                      • -
                                      • Month
                                      • +
                                      @@ -30,20 +30,20 @@
                                      < -Today + >
                                      Selected User List
                                      - - - - - - - + + + + + + + @@ -64,18 +64,18 @@ - - + + - +
                                      ${year}/${month}
                                      SMTWTFS
                                      ${f:h(facility.name)}
                                      TimeEvents
                                      All Day
                                      • -Private + ${event.title} ${event.title} @@ -97,7 +97,7 @@
                                        • ${event.time}
                                          -Private + ${event.title} ${event.title} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                          • -
                                          • Facilities
                                          • +
                                          • -
                                          • Day
                                          • +
                                          • -
                                          • Week
                                          • +
                                          • -
                                          • Month
                                          • +
                                          @@ -30,20 +30,20 @@
                                          < -Today + >
                                          - - - - - - - + + + + + + + @@ -63,13 +63,13 @@
                                          ${year}/${month}
                                          SMTWTFS
                                          - - - - - - - + + + + + + + @@ -79,7 +79,7 @@
                                          • -Private + ${event.title} ${event.title} @@ -89,7 +89,7 @@
                                          • ${event.time}
                                            -Private + ${event.title} ${event.title} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                            • -
                                            • Facilities
                                            • +
                                            • -
                                            • Day
                                            • +
                                            • -
                                            • Week
                                            • +
                                            • -
                                            • Month
                                            • +
                                            @@ -37,13 +37,13 @@
                                          - - - - - - - + + + + + + + @@ -64,7 +64,7 @@ - + @@ -72,13 +72,13 @@ - + - +
                                          ${f:h(facility.name)}
                                          SunMonTueWedThuFriSat
                                          ${year}/${month}
                                          SMTWTFS
                                          ${f:h(facility.name)}
                                          Time ${day.displayedDate}
                                          All Day
                                          • -Private + ${event.title} ${event.title} @@ -90,14 +90,14 @@
                                          Events
                                          • ${event.time}
                                            -Private + ${event.title} ${event.title} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                            • -
                                            • Facility
                                            • +
                                            • -
                                            • Facility Groups
                                            • +
                                            @@ -26,20 +26,20 @@
                                            < -Today + >
                                            - - - - - - - + + + + + + + @@ -61,7 +61,7 @@
                                            ${year}/${month}
                                            SMTWTFS
                                            - + - +
                                            Facility Group @@ -69,7 +69,7 @@ "/>
                                            @@ -95,7 +95,7 @@
                                            • ${event.time}
                                              -Private + ${event.title} ${event.title} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                              • -
                                              • Facilities
                                              • +
                                              • -
                                              • Facility Groups
                                              • +
                                              @@ -25,14 +25,14 @@
                                              - + - + - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,9 +10,9 @@
                                              • -
                                              • Facilities
                                              • +
                                              • -
                                              • Facility Groups
                                              • +
                                              @@ -25,7 +25,7 @@
                                              Confirmation Of Facility
                                              Facility Name ${f:h(name)}
                                              Facility Group ${f:h(fg.name)} @@ -48,19 +48,19 @@
                                              - - + "/> + "/> - - + "/> + "/> - - + "/> + "/> - + "/>
                                              - + @@ -47,7 +47,7 @@
                                              Group @@ -35,8 +35,8 @@ - - +"/> +"/>
                                              - + @@ -56,7 +56,7 @@ @@ -66,7 +66,7 @@
                                              - Previous + @@ -83,7 +83,7 @@ - Next +
                                              Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -37,47 +37,47 @@
                                              - + - + - + - + - + - +
                                              Facility Name  
                                              ${f:h(g.name)} - Details +
                                              What ${f:h(title)}
                                              Where ${f:h(location)}
                                              When -From: + ${f:h(startDate)} ${f:h(startTime)}
                                              -To: + ${f:h(endDate)} ${f:h(endTime)}
                                              Description ${f:br(f:h(content))}
                                              Privacy -Public -Private + +
                                              Assigned - + @@ -94,12 +94,12 @@ - +
                                              Name
                                              Facilities - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -37,20 +37,20 @@
                                              - + - + - +
                                              Name
                                              What
                                              Where
                                              When - + - + - + - + - +
                                              From @@ -86,7 +86,7 @@
                                              To @@ -126,25 +126,25 @@
                                              Description
                                              Privacy - Public - Private + +
                                              Assigned - + @@ -155,7 +155,7 @@ @@ -168,12 +168,12 @@ - +
                                              Name
                                              - +"/>
                                              Facilities - + @@ -184,7 +184,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,12 +9,12 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -50,7 +50,7 @@
                                              Name
                                              - +"/>
                                              - + @@ -90,14 +90,14 @@
                                              Facility Group
                                              - - + >>"/> +"/>
                                              - + @@ -120,7 +120,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -50,7 +50,7 @@
                                              Selected Facility List
                                              - +"/>
                                              - + @@ -65,7 +65,7 @@ @@ -73,7 +73,7 @@
                                              User Group
                                              - +"/>
                                              - + @@ -90,14 +90,14 @@
                                              User List
                                              - - + >>"/> +"/>
                                              - + @@ -120,7 +120,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One Time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -37,60 +37,60 @@ - + - + - + - + - + - + - +
                                              Selected User List
                                              - +"/>
                                              What ${f:h(title)}
                                              Where ${f:h(location)}
                                              Repeats -Daily -Every weekday (Mon-Fri) -Every Mon., Wed., and Fri. -Every Tues., and Thurs. -Weekly -Monthly -Yearly + + + + + + +
                                              When -From: + ${f:h(startDate)} ${f:h(startTime)}
                                              -To: + ${f:h(endDate)} ${f:h(endTime)}
                                              Description ${f:br(f:h(content))}
                                              Privacy -Public -Private + +
                                              Assigned - + @@ -107,12 +107,12 @@ - +
                                              Name
                                              Facilities - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One Time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -37,34 +37,34 @@ - + - + - + - +
                                              Name
                                              What
                                              Where
                                              Repeats - Daily - Every weekday (Mon-Fri) - Every Mon., Wed., and Fri. - Every Tues., and Thurs. - Weekly - Monthly - Yearly + + + + + + +
                                              When - + - + - + - + - +
                                              From @@ -100,7 +100,7 @@
                                              To @@ -143,25 +143,25 @@
                                              Description
                                              Privacy - Public - Private + +
                                              Assigned - + @@ -172,7 +172,7 @@ @@ -185,12 +185,12 @@ - +
                                              Name
                                              - +"/>
                                              Facilities - + @@ -201,7 +201,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,13 +9,13 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One Time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One Time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -50,7 +50,7 @@
                                              Name
                                              - +"/>
                                              - + @@ -65,7 +65,7 @@ @@ -73,7 +73,7 @@
                                              Facility Group
                                              - +"/>
                                              - + @@ -97,7 +97,7 @@
                                              Facility List
                                              - + @@ -120,7 +120,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                              • -
                                              • Calendar
                                              • +
                                              • -
                                              • One Time
                                              • +
                                              • -
                                              • Repeats
                                              • +
                                              @@ -51,7 +51,7 @@
                                              Selected Facility List
                                              - +"/>
                                              - + @@ -66,7 +66,7 @@ @@ -74,7 +74,7 @@
                                              User Group
                                              - +"/>
                                              - + @@ -91,14 +91,14 @@
                                              User List
                                              - - + >>"/> +"/>
                                              - + @@ -121,7 +121,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                              • -
                                              • Day
                                              • +
                                              • -
                                              • Week
                                              • +
                                              • -
                                              • Month
                                              • +
                                              • -
                                              • Week(Group)
                                              • +
                                              @@ -30,20 +30,20 @@
                                              < -Today + >
                                              Selected User List
                                              - +"/>
                                              - - - - - - - + + + + + + + @@ -65,7 +65,7 @@
                                              ${year}/${month}
                                              SMTWTFS
                                              - + - +
                                              User Group @@ -73,7 +73,7 @@ "/>
                                              @@ -99,7 +99,7 @@
                                              • ${event.time}
                                                -Private + ${event.title} ${event.title} Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Day
                                                • +
                                                • -
                                                • Week
                                                • +
                                                • -
                                                • Month
                                                • +
                                                • -
                                                • Group(Week)
                                                • +
                                                @@ -30,20 +30,20 @@
                                              < -Today + >
                                              - - - - - - - + + + + + + + @@ -63,13 +63,13 @@
                                              ${year}/${month}
                                              SMTWTFS
                                              - - + + - +
                                              TimeEvents
                                              All Day
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Day
                                                • +
                                                • -
                                                • Week
                                                • +
                                                • -
                                                • Month
                                                • +
                                                • -
                                                • Group(Week)
                                                • +
                                                @@ -30,20 +30,20 @@
                                                < -Today + >
                                                - - - - - - - + + + + + + + @@ -62,13 +62,13 @@
                                                ${year}/${month}
                                                SMTWTFS
                                                - - - - - - - + + + + + + + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Day
                                                • +
                                                • -
                                                • Week
                                                • +
                                                • -
                                                • Month
                                                • +
                                                • -
                                                • Group(Week)
                                                • +
                                                @@ -30,20 +30,20 @@
                                                < -Today + >
                                                SunMonTueWedThuFriSat
                                                - - - - - - - + + + + + + + @@ -63,7 +63,7 @@
                                                ${year}/${month}
                                                SMTWTFS
                                                - + @@ -71,7 +71,7 @@ - + - + - + - + - + - + - + - +
                                                Time ${day.displayedDate}
                                                All Day
                                                  @@ -86,7 +86,7 @@
                                                Events
                                                  Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                                  • -
                                                  • Calendar
                                                  • +
                                                  • -
                                                  • One time
                                                  • +
                                                  • -
                                                  • Repeats
                                                  • +
                                                  @@ -36,47 +36,47 @@
                                                What ${f:h(title)}
                                                Where ${f:h(location)}
                                                When -From: + ${f:h(startDate)} ${f:h(startTime)}
                                                -To: + ${f:h(endDate)} ${f:h(endTime)}
                                                Description ${f:br(f:h(content))}
                                                Privacy -Public -Private + +
                                                Assigned - + @@ -93,12 +93,12 @@ - +
                                                Name
                                                Facilities - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -36,20 +36,20 @@
                                                - + - + - +
                                                Name
                                                What
                                                Where
                                                When - + - + - + - + - +
                                                From @@ -85,7 +85,7 @@
                                                To @@ -125,25 +125,25 @@
                                                Description
                                                Privacy - Public - Private + +
                                                Assigned - + @@ -154,7 +154,7 @@ @@ -167,12 +167,12 @@ - +
                                                Name
                                                - +"/>
                                                Facilities - + @@ -183,7 +183,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,12 +9,12 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -49,7 +49,7 @@
                                                Name
                                                - +"/>
                                                - + @@ -64,7 +64,7 @@ @@ -72,7 +72,7 @@
                                                Facility Group
                                                - +"/>
                                                - + @@ -89,14 +89,14 @@
                                                Facility List
                                                - - + >>"/> +"/>
                                                - + @@ -119,7 +119,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,12 +10,12 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -64,7 +64,7 @@
                                                @@ -72,7 +72,7 @@
                                                Selected Facility List
                                                - +"/>
                                                - +"/>
                                                - + @@ -96,7 +96,7 @@
                                                User List
                                                - + @@ -119,7 +119,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One Time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -36,60 +36,60 @@ - + - + - + - + - + - + - +
                                                Selected User List
                                                - +"/>
                                                What ${f:h(title)}
                                                Where ${f:h(location)}
                                                Repeats -Daily -Every weekday (Mon-Fri) -Every Mon., Wed., and Fri. -Every Tues., and Thurs. -Weekly -Monthly -Yearly + + + + + + +
                                                When -From: + ${f:h(startDate)} ${f:h(startTime)}
                                                -To: + ${f:h(endDate)} ${f:h(endTime)}
                                                Description ${f:br(f:h(content))}
                                                Privacy -Public -Private + +
                                                Assigned - + @@ -106,12 +106,12 @@ - +
                                                Name
                                                Facilities - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One Time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -36,34 +36,34 @@ - + - + - + - +
                                                Name
                                                What
                                                Where
                                                Repeats - Daily - Every weekday (Mon-Fri) - Every Mon., Wed., and Fri. - Every Tues., and Thurs. - Weekly - Monthly - Yearly + + + + + + +
                                                When - + - + - + - + - +
                                                From @@ -99,7 +99,7 @@
                                                To @@ -142,25 +142,25 @@
                                                Description
                                                Privacy - Public - Private + +
                                                Assigned - + @@ -171,7 +171,7 @@ @@ -184,12 +184,12 @@ - + @@ -288,8 +295,10 @@ "/> + "/> "/> + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                Name
                                                - +"/>
                                                Facilities - + @@ -200,7 +200,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -9,13 +9,13 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One Time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One Time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -49,7 +49,7 @@
                                                Name
                                                - +"/>
                                                - + @@ -64,7 +64,7 @@ @@ -72,7 +72,7 @@
                                                Facility Group
                                                - +"/>
                                                - + @@ -96,7 +96,7 @@
                                                Facility List
                                                - + @@ -119,7 +119,7 @@ Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-25 13:45:04 UTC (rev 1446) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-26 08:53:03 UTC (rev 1447) @@ -10,13 +10,13 @@
                                                • -
                                                • Calendar
                                                • +
                                                • -
                                                • One Time
                                                • +
                                                • -
                                                • Repeats
                                                • +
                                                @@ -50,7 +50,7 @@
                                                Selected Facility List
                                                - +"/>
                                                - + @@ -65,7 +65,7 @@ @@ -73,7 +73,7 @@
                                                User Group
                                                - +"/>
                                                - + @@ -90,14 +90,14 @@
                                                User List
                                                - - + >>"/> +"/>
                                                - + @@ -120,7 +120,7 @@ From svnnotify ¡÷ sourceforge.jp Wed Nov 26 18:06:07 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Wed, 26 Nov 2008 18:06:07 +0900 Subject: [pal-cvs 3713] [1448] fixed japanese message on addresslist Message-ID: <1227690367.724078.17901.nullmailer@users.sourceforge.jp> Revision: 1448 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1448 Author: sone Date: 2008-11-26 18:06:07 +0900 (Wed, 26 Nov 2008) Log Message: ----------- fixed japanese message on addresslist Modified Paths: -------------- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp -------------- next part -------------- Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-26 09:06:07 UTC (rev 1448) @@ -283,7 +283,7 @@ "/> - + "/> "/> Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-26 08:53:03 UTC (rev 1447) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-26 09:06:07 UTC (rev 1448) @@ -283,7 +283,7 @@ "/> - + "/> "/> From svnnotify ¡÷ sourceforge.jp Thu Nov 27 15:31:38 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 15:31:38 +0900 Subject: [pal-cvs 3714] [1449] i18ned title, updated css, checked owner for data. Message-ID: <1227767498.356916.5821.nullmailer@users.sourceforge.jp> Revision: 1449 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1449 Author: shinsuke Date: 2008-11-27 15:31:38 +0900 (Thu, 27 Nov 2008) Log Message: ----------- i18ned title, updated css, checked owner for data. Modified Paths: -------------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java addresslist/trunk/src/main/resources/application.properties addresslist/trunk/src/main/resources/application_ja.properties addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp addresslist/trunk/src/main/webapp/css/pal-extension.css Added Paths: ----------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java addresslist/trunk/src/main/resources/jp/ addresslist/trunk/src/main/resources/jp/sf/ addresslist/trunk/src/main/resources/jp/sf/pal/ addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/ addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/ addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig.properties addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig_ja.properties addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor.properties addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor_ja.properties addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager.properties addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager_ja.properties -------------- next part -------------- Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/CompanyAction.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -10,12 +10,15 @@ import jp.sf.pal.addresslist.common.util.ConfigUtil; import jp.sf.pal.addresslist.common.util.SAStrutsUtil; import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.UserInfo; import jp.sf.pal.addresslist.dxo.CompanyDxo; -import jp.sf.pal.addresslist.form.user.CompanyForm; +import jp.sf.pal.addresslist.form.admin.CompanyForm; import jp.sf.pal.addresslist.pager.CompanyPager; import jp.sf.pal.addresslist.service.CompanyService; +import jp.sf.pal.addresslist.service.UserInfoService; import jp.sf.pal.addresslist.util.AddressListUtil; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.seasar.struts.annotation.ActionForm; @@ -34,11 +37,15 @@ // for edit/confirm/delete + public UserInfo userInfo; + @ActionForm private CompanyForm companyForm; private CompanyService companyService; + private UserInfoService userInfoService; + private CompanyPager companyPager; private PagerDxo pagerDxo; @@ -249,7 +256,7 @@ private void loadCompany() { Long id = Long.parseLong(companyForm.id); - Company company = companyService.getCompany(id, null); + Company company = companyService.getCompany(id, null, false); if (company == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_company", @@ -257,6 +264,7 @@ } companyDxo.convertFromCompanyToForm(company, companyForm); + userInfo = company.getUserInfo(); } private Company createCompany() { @@ -264,7 +272,7 @@ Company company; if (companyForm.mode == CommonConstants.EDIT_MODE) { Long id = Long.parseLong(companyForm.id); - company = companyService.getCompany(id, null); + company = companyService.getCompany(id, null, false); if (company == null) { // throw an exception throw new ActionMessagesException( @@ -287,6 +295,9 @@ } private void loadDetailsPageParameters() { + if (!StringUtils.isEmpty(companyForm.userId) && userInfo == null) { + userInfo = userInfoService.getUserInfo(companyForm.userId); + } } /** @@ -343,4 +354,12 @@ this.companyDxo = companyDxo; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/admin/PersonAction.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -11,11 +11,13 @@ import jp.sf.pal.addresslist.common.util.SAStrutsUtil; import jp.sf.pal.addresslist.db.exentity.Company; import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.UserInfo; import jp.sf.pal.addresslist.dxo.PersonDxo; -import jp.sf.pal.addresslist.form.user.PersonForm; +import jp.sf.pal.addresslist.form.admin.PersonForm; import jp.sf.pal.addresslist.pager.PersonPager; import jp.sf.pal.addresslist.service.CompanyService; import jp.sf.pal.addresslist.service.PersonService; +import jp.sf.pal.addresslist.service.UserInfoService; import jp.sf.pal.addresslist.util.AddressListUtil; import org.apache.commons.lang.StringUtils; @@ -38,6 +40,8 @@ // for edit/confirm/delete public Company company; + public UserInfo userInfo; + @ActionForm private PersonForm personForm; @@ -45,6 +49,8 @@ private CompanyService companyService; + private UserInfoService userInfoService; + private PersonPager personPager; private PagerDxo pagerDxo; @@ -256,7 +262,7 @@ private void loadPerson() { Long id = Long.parseLong(personForm.id); - Person person = personService.getPerson(id, null); + Person person = personService.getPerson(id, null, false); if (person == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_person", @@ -265,6 +271,7 @@ personDxo.convertFromPersonToForm(person, personForm); company = person.getCompany(); + userInfo = person.getUserInfo(); } private Person createPerson() { @@ -272,21 +279,22 @@ Person person; if (personForm.mode == CommonConstants.EDIT_MODE) { Long id = Long.parseLong(personForm.id); - person = personService.getPerson(id, null); + person = personService.getPerson(id, null, false); if (person == null) { // throw an exception throw new ActionMessagesException( "errors.could_not_find_person", new Object[] { personForm.id }); } + personDxo.convertFromFormToPerson(personForm, person); person.setUpdatedBy(userId); } else { person = new Person(); + personDxo.convertFromFormToPerson(personForm, person); person.setUserId(userId); person.setUpdatedBy(userId); person.setCreatedBy(userId); } - personDxo.convertFromFormToPerson(personForm, person); return person; } @@ -295,16 +303,17 @@ } private void loadDetailsPageParameters() { - if (!StringUtils.isEmpty(personForm.companyId)) { - String userId = AddressListUtil.getUserId(request); + if (!StringUtils.isEmpty(personForm.companyId) && company == null) { Long companyId = Long.parseLong(personForm.companyId); - company = companyService.getCompany(companyId, userId); + company = companyService.getCompany(companyId, null, false); } + if (!StringUtils.isEmpty(personForm.userId) && userInfo == null) { + userInfo = userInfoService.getUserInfo(personForm.userId); + } } public List getCompanyItems() { - String userId = AddressListUtil.getUserId(request); - return companyService.getCompanyList(userId); + return companyService.getCompanyList(null); } /** @@ -369,4 +378,12 @@ this.companyService = companyService; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/CompanyAction.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -10,12 +10,15 @@ import jp.sf.pal.addresslist.common.util.ConfigUtil; import jp.sf.pal.addresslist.common.util.SAStrutsUtil; import jp.sf.pal.addresslist.db.exentity.Company; +import jp.sf.pal.addresslist.db.exentity.UserInfo; import jp.sf.pal.addresslist.dxo.CompanyDxo; import jp.sf.pal.addresslist.form.user.CompanyForm; import jp.sf.pal.addresslist.pager.CompanyPager; import jp.sf.pal.addresslist.service.CompanyService; +import jp.sf.pal.addresslist.service.UserInfoService; import jp.sf.pal.addresslist.util.AddressListUtil; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.seasar.struts.annotation.ActionForm; @@ -34,11 +37,15 @@ // for edit/confirm/delete + public UserInfo userInfo; + @ActionForm private CompanyForm companyForm; private CompanyService companyService; + private UserInfoService userInfoService; + private CompanyPager companyPager; private PagerDxo pagerDxo; @@ -251,7 +258,7 @@ private void loadCompany() { String userId = AddressListUtil.getUserId(request); Long id = Long.parseLong(companyForm.id); - Company company = companyService.getCompany(id, userId); + Company company = companyService.getCompany(id, userId, true); if (company == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_company", @@ -259,6 +266,7 @@ } companyDxo.convertFromCompanyToForm(company, companyForm); + userInfo = company.getUserInfo(); } private Company createCompany() { @@ -266,15 +274,22 @@ Company company; if (companyForm.mode == CommonConstants.EDIT_MODE) { Long id = Long.parseLong(companyForm.id); - company = companyService.getCompany(id, userId); + company = companyService.getCompany(id, userId, false); + if (company == null) { + // throw an exception + throw new ActionMessagesException( + "errors.could_not_find_company", + new Object[] { companyForm.id }); + } + companyDxo.convertFromFormToCompany(companyForm, company); company.setUpdatedBy(userId); } else { company = new Company(); + companyDxo.convertFromFormToCompany(companyForm, company); company.setUserId(userId); company.setUpdatedBy(userId); company.setCreatedBy(userId); } - companyDxo.convertFromFormToCompany(companyForm, company); return company; } @@ -283,8 +298,15 @@ } private void loadDetailsPageParameters() { + if (!StringUtils.isEmpty(companyForm.userId) && userInfo == null) { + userInfo = userInfoService.getUserInfo(companyForm.userId); + } } + public String getCurrentUserId() { + return AddressListUtil.getUserId(request); + } + /** * @return the request */ @@ -339,4 +361,12 @@ this.companyDxo = companyDxo; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/action/user/PersonAction.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -11,11 +11,13 @@ import jp.sf.pal.addresslist.common.util.SAStrutsUtil; import jp.sf.pal.addresslist.db.exentity.Company; import jp.sf.pal.addresslist.db.exentity.Person; +import jp.sf.pal.addresslist.db.exentity.UserInfo; import jp.sf.pal.addresslist.dxo.PersonDxo; import jp.sf.pal.addresslist.form.user.PersonForm; import jp.sf.pal.addresslist.pager.PersonPager; import jp.sf.pal.addresslist.service.CompanyService; import jp.sf.pal.addresslist.service.PersonService; +import jp.sf.pal.addresslist.service.UserInfoService; import jp.sf.pal.addresslist.util.AddressListUtil; import org.apache.commons.lang.StringUtils; @@ -38,6 +40,8 @@ // for edit/confirm/delete public Company company; + public UserInfo userInfo; + @ActionForm private PersonForm personForm; @@ -45,6 +49,8 @@ private CompanyService companyService; + private UserInfoService userInfoService; + private PersonPager personPager; private PagerDxo pagerDxo; @@ -258,7 +264,7 @@ private void loadPerson() { String userId = AddressListUtil.getUserId(request); Long id = Long.parseLong(personForm.id); - Person person = personService.getPerson(id, userId); + Person person = personService.getPerson(id, userId, true); if (person == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_person", @@ -267,6 +273,7 @@ personDxo.convertFromPersonToForm(person, personForm); company = person.getCompany(); + userInfo = person.getUserInfo(); } private Person createPerson() { @@ -274,21 +281,22 @@ Person person; if (personForm.mode == CommonConstants.EDIT_MODE) { Long id = Long.parseLong(personForm.id); - person = personService.getPerson(id, userId); + person = personService.getPerson(id, userId, false); if (person == null) { // throw an exception throw new ActionMessagesException( "errors.could_not_find_person", new Object[] { personForm.id }); } + personDxo.convertFromFormToPerson(personForm, person); person.setUpdatedBy(userId); } else { person = new Person(); + personDxo.convertFromFormToPerson(personForm, person); person.setUserId(userId); person.setUpdatedBy(userId); person.setCreatedBy(userId); } - personDxo.convertFromFormToPerson(personForm, person); return person; } @@ -297,11 +305,14 @@ } private void loadDetailsPageParameters() { - if (!StringUtils.isEmpty(personForm.companyId)) { + if (!StringUtils.isEmpty(personForm.companyId) && company == null) { String userId = AddressListUtil.getUserId(request); Long companyId = Long.parseLong(personForm.companyId); - company = companyService.getCompany(companyId, userId); + company = companyService.getCompany(companyId, userId, false); } + if (!StringUtils.isEmpty(personForm.userId) && userInfo == null) { + userInfo = userInfoService.getUserInfo(personForm.userId); + } } public List getCompanyItems() { @@ -309,6 +320,10 @@ return companyService.getCompanyList(userId); } + public String getCurrentUserId() { + return AddressListUtil.getUserId(request); + } + /** * @return the request */ @@ -371,4 +386,12 @@ this.companyService = companyService; } + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/CompanyDxo.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -70,4 +70,64 @@ ) public void convertFromFormToCompany(CompanyForm form, Company company); + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", userId : userId" // + + ", name : name" // + + ", nameDesc : nameDesc" // + + ", department : department" // + + ", building : building" // + + ", street : street" // + + ", city : city" // + + ", state : state" // + + ", postalCode : postalCode" // + + ", country : country" // + + ", telephone1 : telephone1" // + + ", telephone2 : telephone2" // + + ", fax1 : fax1" // + + ", fax2 : fax2" // + + ", url : url" // + + ", isPublic : isPublic" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromCompanyToForm(Company company, + jp.sf.pal.addresslist.form.admin.CompanyForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "name : name" // + + ", nameDesc : nameDesc" // + + ", department : department" // + + ", building : building" // + + ", street : street" // + + ", city : city" // + + ", state : state" // + + ", postalCode : postalCode" // + + ", country : country" // + + ", telephone1 : telephone1" // + + ", telephone2 : telephone2" // + + ", fax1 : fax1" // + + ", fax2 : fax2" // + + ", url : url" // + + ", isPublic : isPublic" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToCompany( + jp.sf.pal.addresslist.form.admin.CompanyForm form, Company company); + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/dxo/PersonDxo.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -16,6 +16,7 @@ @DatePattern("yyyy/MM/dd") @TimestampPattern("yyyy/MM/dd HH:mm:ss") @ConversionRule("id : id" // + + ", userId : userId" // + ", familyName : familyName" // + ", familyNameDesc : familyNameDesc" // + ", givenName : givenName" // @@ -99,4 +100,94 @@ ) public void convertFromFormToPerson(PersonForm form, Person person); + @ExcludeNull + @DatePattern("yyyy/MM/dd") + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule("id : id" // + + ", userId : userId" // + + ", familyName : familyName" // + + ", familyNameDesc : familyNameDesc" // + + ", givenName : givenName" // + + ", givenNameDesc : givenNameDesc" // + + ", middleName : middleName" // + + ", namePrefix : namePrefix" // + + ", nameSuffix : nameSuffix" // + + ", nickname : nickname" // + + ", jobTitle : jobTitle" // + + ", isPublic : isPublic" // + + ", homeTelephone : homeTelephone" // + + ", homeCellphone : homeCellphone" // + + ", homeEmailPC : homeEmailPC" // + + ", homeEmailMobile : homeEmailMobile" // + + ", homeFax : homeFax" // + + ", businessTelephone : businessTelephone" // + + ", businessCellphone : businessCellphone" // + + ", businessEmailPC : businessEmailPC" // + + ", businessEmailMobile : businessEmailMobile" // + + ", businessFax : businessFax" // + + ", postalCode : postalCode" // + + ", state : state" // + + ", city : city" // + + ", street : street" // + + ", building : building" // + + ", companyId : companyId" // + + ", customData1 : customData1" // + + ", customData2 : customData2" // + + ", customData3 : customData3" // + + ", customData4 : customData4" // + + ", createdTime : createdTime" // + + ", createdBy : createdBy" // + + ", updatedTime : updatedTime" // + + ", updatedBy : updatedBy" // + + ", deletedTime : deletedTime" // + + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromPersonToForm(Person person, + jp.sf.pal.addresslist.form.admin.PersonForm form); + + @ExcludeNull + @TimestampPattern("yyyy/MM/dd HH:mm:ss") + @ConversionRule(// + "familyName : familyName" // + + ", familyNameDesc : familyNameDesc" // + + ", givenName : givenName" // + + ", givenNameDesc : givenNameDesc" // + + ", middleName : middleName" // + + ", namePrefix : namePrefix" // + + ", nameSuffix : nameSuffix" // + + ", nickname : nickname" // + + ", jobTitle : jobTitle" // + + ", isPublic : isPublic" // + + ", homeTelephone : homeTelephone" // + + ", homeCellphone : homeCellphone" // + + ", homeEmailPC : homeEmailPC" // + + ", homeEmailMobile : homeEmailMobile" // + + ", homeFax : homeFax" // + + ", businessTelephone : businessTelephone" // + + ", businessCellphone : businessCellphone" // + + ", businessEmailPC : businessEmailPC" // + + ", businessEmailMobile : businessEmailMobile" // + + ", businessFax : businessFax" // + + ", postalCode : postalCode" // + + ", state : state" // + + ", city : city" // + + ", street : street" // + + ", building : building" // + + ", companyId : companyId" // + + ", customData1 : customData1" // + + ", customData2 : customData2" // + + ", customData3 : customData3" // + + ", customData4 : customData4" // + // + ", createdTime : createdTime" // + // + ", createdBy : createdBy" // + // + ", updatedTime : updatedTime" // + // + ", updatedBy : updatedBy" // + // + ", deletedTime : deletedTime" // + // + ", deletedBy : deletedBy" // + // + ", versionno : versionno" // + ) + public void convertFromFormToPerson( + jp.sf.pal.addresslist.form.admin.PersonForm form, Person person); + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/admin/PersonForm.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -21,6 +21,10 @@ @LongType public String id; + @Required(target = "update,delete") + @Maxbytelength(maxbytelength = 255) + public String userId; + @Maxbytelength(maxbytelength = 100) public String familyName; @@ -135,6 +139,7 @@ public void initialize() { id = null; + userId = null; familyName = null; familyNameDesc = null; givenName = null; Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/form/user/PersonForm.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -21,6 +21,10 @@ @LongType public String id; + @Required(target = "update,delete") + @Maxbytelength(maxbytelength = 255) + public String userId; + @Maxbytelength(maxbytelength = 100) public String familyName; @@ -135,6 +139,7 @@ public void initialize() { id = null; + userId = null; familyName = null; familyNameDesc = null; givenName = null; Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/CompanyService.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -30,6 +30,8 @@ private PagerDxo pagerDxo; + private PersonService personService; + private void initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); @@ -57,6 +59,7 @@ cb.fetchPage(companyPager.getCurrentPageNumber()); // setup + cb.setupSelect_UserInfo(); cb.query().setDeletedBy_IsNull(); if (userId != null) { @@ -94,22 +97,46 @@ cb.query().setDeletedBy_IsNull(); if (userId != null) { cb.query().setUserId_Equal(userId); + cb.query().setIsPublic_Equal(CommonConstants.FALSE); + cb.unionAll(new UnionQuery() { + public void query(CompanyCB unionCB) { + unionCB.query().setIsPublic_Equal(CommonConstants.TRUE); + unionCB.query().setDeletedBy_IsNull(); + } + }); } cb.query().addOrderBy_NameDesc_Asc(); return companyBhv.selectList(cb); } - public Company getCompany(Long id, String userId) { + public Company getCompany(Long id, String userId, boolean fallback) { CompanyCB cb = new CompanyCB(); // setup + cb.setupSelect_UserInfo(); + cb.query().setDeletedBy_IsNull(); cb.query().setId_Equal(id); if (userId != null) { cb.query().setUserId_Equal(userId); } - return companyBhv.selectEntity(cb); + Company company = companyBhv.selectEntity(cb); + + if (fallback) { + if (company == null) { + cb = new CompanyCB(); + // setup + cb.setupSelect_UserInfo(); + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + cb.query().setIsPublic_Equal(CommonConstants.TRUE); + company = companyBhv.selectEntity(cb); + } + } + + return company; } public void store(Company company) { @@ -139,6 +166,8 @@ company.setDeletedBy(name); company.setDeletedTime(new Timestamp(new Date().getTime())); companyBhv.update(company); + + personService.removeCompanyId(id); } public CompanyBhv getCompanyBhv() { @@ -165,4 +194,12 @@ this.userInfoBhv = userInfoBhv; } + public PersonService getPersonService() { + return personService; + } + + public void setPersonService(PersonService personService) { + this.personService = personService; + } + } Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/PersonService.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -72,6 +72,9 @@ // setup cb.setupSelect_Company(); cb.specify().specifyCompany().columnName(); + cb.specify().specifyCompany().columnUserId(); + cb.specify().specifyCompany().columnIsPublic(); + cb.setupSelect_UserInfo(); cb.query().setDeletedBy_IsNull(); if (userId != null) { @@ -98,12 +101,13 @@ return personList; } - public Person getPerson(Long id, String userId) { + public Person getPerson(Long id, String userId, boolean fallback) { PersonCB cb = new PersonCB(); // setup cb.setupSelect_Company(); cb.setupSelect_PostalAsOne(); + cb.setupSelect_UserInfo(); cb.query().setId_Equal(id); if (userId != null) { @@ -111,6 +115,24 @@ } Person person = personBhv.selectEntity(cb); + + // fallback + if (fallback) { + if (person == null) { + cb = new PersonCB(); + + // setup + cb.setupSelect_Company(); + cb.setupSelect_PostalAsOne(); + cb.setupSelect_UserInfo(); + + cb.query().setId_Equal(id); + cb.query().setIsPublic_Equal(CommonConstants.TRUE); + + person = personBhv.selectEntity(cb); + } + } + if (person == null) { return null; } @@ -169,6 +191,15 @@ personBhv.update(person); } + public void removeCompanyId(Long companyId) { + Person person = new Person(); + person.setCompanyId(null); + + PersonCB cb = new PersonCB(); + cb.query().setCompanyId_Equal(companyId); + personBhv.queryUpdate(person, cb); + } + public PersonBhv getPersonBhv() { return personBhv; } Added: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java (rev 0) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java 2008-11-27 06:31:38 UTC (rev 1449) @@ -0,0 +1,23 @@ +package jp.sf.pal.addresslist.service; + +import jp.sf.pal.addresslist.db.cbean.UserInfoCB; +import jp.sf.pal.addresslist.db.exbhv.UserInfoBhv; +import jp.sf.pal.addresslist.db.exentity.UserInfo; + +public class UserInfoService { + private transient UserInfoBhv userInfoBhv; + + public UserInfo getUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + cb.query().setUserId_Equal(userId); + return userInfoBhv.selectEntity(cb); + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv userInfoBhv) { + this.userInfoBhv = userInfoBhv; + } +} Property changes on: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Modified: addresslist/trunk/src/main/resources/application.properties =================================================================== --- addresslist/trunk/src/main/resources/application.properties 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/resources/application.properties 2008-11-27 06:31:38 UTC (rev 1449) @@ -47,15 +47,15 @@ errors.failed_to_create_userInfo=Failed to create a new user information. errors.failed_to_update_userInfo=Failed to update the user information. errors.failed_to_delete_userInfo=Failed to delete the user information. -errors.could_not_find_userInfo=Could not find the user information({0}). +errors.could_not_find_userInfo=Could not find the user information(ID:{0}). errors.failed_to_create_company=Failed to create a new company information. errors.failed_to_update_company=Failed to update the company information. errors.failed_to_delete_company=Failed to delete the company information. -errors.could_not_find_company=Could not find the company information({0}). +errors.could_not_find_company=Could not find the company information(ID:{0}). errors.failed_to_create_person=Failed to create a new person information. errors.failed_to_update_person=Failed to update the person information. errors.failed_to_delete_person=Failed to delete the person information. -errors.could_not_find_person=Could not find the person information({0}). +errors.could_not_find_person=Could not find the person information(ID:{0}). labels.detail=Detail labels.create=Create @@ -132,4 +132,7 @@ labels.none=None -labels.configuration=Configuration \ No newline at end of file +labels.configuration=Configuration + +labels.createdBy=Created By + Modified: addresslist/trunk/src/main/resources/application_ja.properties =================================================================== --- addresslist/trunk/src/main/resources/application_ja.properties 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/resources/application_ja.properties 2008-11-27 06:31:38 UTC (rev 1449) @@ -40,15 +40,15 @@ errors.failed_to_create_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_update_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_delete_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.could_not_find_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.could_not_find_userInfo=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831 (ID:{0}) \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.failed_to_create_company=\u4f1a\u793e\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_update_company=\u4f1a\u793e\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_delete_company=\u4f1a\u793e\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.could_not_find_company=\u4f1a\u793e\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.could_not_find_company=\u4f1a\u793e\u60c5\u5831 (ID:{0}) \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.failed_to_create_person=\u500b\u4eba\u60c5\u5831\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_update_person=\u500b\u4eba\u60c5\u5831\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_delete_person=\u500b\u4eba\u60c5\u5831\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.could_not_find_person=\u500b\u4eba\u60c5\u5831 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.could_not_find_person=\u500b\u4eba\u60c5\u5831 (ID:{0}) \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 labels.detail=\u8a73\u7d30 labels.create=\u4f5c\u6210 @@ -125,4 +125,6 @@ labels.none=\u306a\u3057 -labels.configuration=\u8a2d\u5b9a \ No newline at end of file +labels.configuration=\u8a2d\u5b9a + +labels.createdBy=\u767b\u9332\u8005 Added: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig.properties =================================================================== Property changes on: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig_ja.properties =================================================================== --- addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig_ja.properties (rev 0) +++ addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig_ja.properties 2008-11-27 06:31:38 UTC (rev 1449) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30a2\u30c9\u30ec\u30b9\u5e33\u8a2d\u5b9a +javax.portlet.short-title=\u30a2\u30c9\u30ec\u30b9\u5e33\u8a2d\u5b9a +javax.portlet.keywords=\u8a2d\u5b9a Property changes on: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListConfig_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor.properties =================================================================== Property changes on: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor_ja.properties =================================================================== --- addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor_ja.properties (rev 0) +++ addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor_ja.properties 2008-11-27 06:31:38 UTC (rev 1449) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30a2\u30c9\u30ec\u30b9\u5e33 +javax.portlet.short-title=\u30a2\u30c9\u30ec\u30b9\u5e33 +javax.portlet.keywords=\u30a2\u30c9\u30ec\u30b9\u5e33 Property changes on: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListEditor_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager.properties =================================================================== Property changes on: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager_ja.properties =================================================================== --- addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager_ja.properties (rev 0) +++ addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager_ja.properties 2008-11-27 06:31:38 UTC (rev 1449) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30a2\u30c9\u30ec\u30b9\u5e33\u7ba1\u7406 +javax.portlet.short-title=\u30a2\u30c9\u30ec\u30b9\u5e33\u7ba1\u7406 +javax.portlet.keywords=\u7ba1\u7406 Property changes on: addresslist/trunk/src/main/resources/jp/sf/pal/addresslist/resources/AddressListManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 06:31:38 UTC (rev 1449) @@ -18,7 +18,7 @@ en ja - + jp.sf.pal.addresslist.resources.AddressListConfig AddressList Config Config @@ -43,7 +43,7 @@ en ja - + jp.sf.pal.addresslist.resources.AddressListEditor Address List AddressLists @@ -68,7 +68,7 @@ en ja - + jp.sf.pal.addresslist.resources.AddressListManager AddressList Manager AddressLists Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                Selected User List
                                                - +"/>
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -19,7 +19,7 @@ } // --> -
                                                +
                                                  Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                  +
                                                    @@ -44,6 +44,8 @@
                                                + + @@ -52,7 +54,12 @@ + + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                 
                                                ${f:h(c.name)} ${f:h(c.department)} + + +
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -19,7 +19,7 @@ } // --> -
                                                +
                                                  Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                  +
                                                    @@ -44,6 +44,8 @@
                                                + + @@ -51,8 +53,13 @@ - + + + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                 
                                                ${f:h(p.company.name)}${f:h(p.company.name)} + + +
                                                @@ -120,8 +121,10 @@ "/> + "/> "/> + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -19,7 +19,7 @@ } // --> -
                                                +
                                                  Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                  +
                                                    @@ -44,6 +44,8 @@
                                                + + @@ -52,9 +54,16 @@ + + Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                +
                                                  @@ -37,6 +37,7 @@ +
                                                 
                                                ${f:h(c.name)} ${f:h(c.department)} + + + + +
                                                @@ -91,6 +92,12 @@ + + + +
                                                + +
                                                Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -19,7 +19,7 @@ } // --> -
                                                +
                                                  Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-27 06:31:38 UTC (rev 1449) @@ -20,7 +20,7 @@ } // --> -
                                                  +
                                                    @@ -44,6 +44,8 @@
                                                + + @@ -51,10 +53,21 @@ - + + + Modified: addresslist/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- addresslist/trunk/src/main/webapp/css/pal-extension.css 2008-11-26 09:06:07 UTC (rev 1448) +++ addresslist/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 06:31:38 UTC (rev 1449) @@ -17,13 +17,13 @@ /* ---------------- */ /* Form Table */ /* ---------------- */ -.pal-portlet .form-table table { +.addresslist-portlet .form-table table { border-top: 1px solid #cccccc; border-left: 1px solid #cccccc; border-collapse:collapse; } -.pal-portlet .form-table caption { +.addresslist-portlet .form-table caption { border-top: 1px solid #cccccc; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; @@ -35,22 +35,22 @@ color:#003366; } -.pal-portlet .form-table thead { +.addresslist-portlet .form-table thead { margin:0; padding:0; } -.pal-portlet .form-table tbody { +.addresslist-portlet .form-table tbody { margin:0; padding:0; } -.pal-portlet .form-table tfoot { +.addresslist-portlet .form-table tfoot { margin:0; padding:0; } -.pal-portlet .form-table th { +.addresslist-portlet .form-table th { border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; padding: 5px; @@ -59,14 +59,14 @@ empty-cells: show; } -.pal-portlet .form-table td { +.addresslist-portlet .form-table td { border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; padding:3px; empty-cells: show; } -.pal-portlet .form-table tfoot tr td { +.addresslist-portlet .form-table tfoot tr td { padding:10px; text-align: center; empty-cells: show; @@ -75,13 +75,13 @@ /* ---------------- */ /* List Table */ /* ---------------- */ -.pal-portlet .list-table table { +.addresslist-portlet .list-table table { border-top: 1px solid #cccccc; border-left: 1px solid #cccccc; border-collapse:collapse; } -.pal-portlet .list-table caption { +.addresslist-portlet .list-table caption { border-top: 1px solid #cccccc; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; @@ -93,30 +93,30 @@ color:#003366; } -.pal-portlet .list-table thead { +.addresslist-portlet .list-table thead { margin:0; padding:0; } -.pal-portlet .list-table tbody { +.addresslist-portlet .list-table tbody { margin:0; padding:0; } -.pal-portlet .list-table tfoot { +.addresslist-portlet .list-table tfoot { margin:0; padding:0; } -.pal-portlet .list-table .row1 { +.addresslist-portlet .list-table .row1 { background-color: #ffffff; } -.pal-portlet .list-table .row2 { +.addresslist-portlet .list-table .row2 { background-color: #fffff8; } -.pal-portlet .list-table th { +.addresslist-portlet .list-table th { border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; padding: 5px; @@ -125,7 +125,7 @@ empty-cells: show; } -.pal-portlet .list-table td { +.addresslist-portlet .list-table td { border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; padding:3px; @@ -136,7 +136,7 @@ /* ---------------- */ /* Tab */ /* ---------------- */ -.pal-portlet .tab-nav div { +.addresslist-portlet .tab-nav div { height:25px; line-height:23px; margin:0; @@ -144,13 +144,13 @@ width:100%; } -.pal-portlet .tab-nav ul { +.addresslist-portlet .tab-nav ul { margin:0; padding:0; width:100%; } -.pal-portlet .tab-nav ul li { +.addresslist-portlet .tab-nav ul li { float:left; height:25px; line-height:23px; @@ -159,23 +159,23 @@ list-style-type:none; } -.pal-portlet .tab-nav ul li a:visited { +.addresslist-portlet .tab-nav ul li a:visited { color:#0000EE; } -.pal-portlet .tab-nav ul li.first { +.addresslist-portlet .tab-nav ul li.first { border-bottom:1px solid #A9A9A9; width:10px; } -.pal-portlet .tab-nav ul li.last { +.addresslist-portlet .tab-nav ul li.last { border-bottom:1px solid #A9A9A9; float:none; padding-right:10px; text-align:right; } -.pal-portlet .tab-nav ul li.selected { +.addresslist-portlet .tab-nav ul li.selected { border-color:#A9A9A9 #A9A9A9 #FFFFFF; border-style:solid; border-width:1px; @@ -184,26 +184,26 @@ _margin-top: 0px; } -.pal-portlet .tab-nav ul li.selected span { +.addresslist-portlet .tab-nav ul li.selected span { display:inline; padding:0 10px; white-space:pre; } -.pal-portlet .tab-nav ul li.selectable { +.addresslist-portlet .tab-nav ul li.selectable { background-color:#DCDCDC; border:1px solid #A9A9A9; display:block; height:24px; } -.pal-portlet .tab-nav ul li.selectable { +.addresslist-portlet .tab-nav ul li.selectable { display:inline; padding:0 10px; white-space:pre; } -.pal-portlet .tab-nav ul li.spacer { +.addresslist-portlet .tab-nav ul li.spacer { border-bottom:1px solid #A9A9A9; width:5px; } From svnnotify ¡÷ sourceforge.jp Thu Nov 27 16:45:50 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 16:45:50 +0900 Subject: [pal-cvs 3715] [1450] fixed typo. Message-ID: <1227771950.661577.16488.nullmailer@users.sourceforge.jp> Revision: 1450 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1450 Author: shinsuke Date: 2008-11-27 16:45:50 +0900 (Thu, 27 Nov 2008) Log Message: ----------- fixed typo. Modified Paths: -------------- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/rdbms/src/java/org/apache/jetspeed/components/datasource/DBCPDatasourceComponent.java -------------- next part -------------- Modified: pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/rdbms/src/java/org/apache/jetspeed/components/datasource/DBCPDatasourceComponent.java =================================================================== --- pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/rdbms/src/java/org/apache/jetspeed/components/datasource/DBCPDatasourceComponent.java 2008-11-27 06:31:38 UTC (rev 1449) +++ pal-portal/branches/pal-portal-1.x/portal/jetspeed-2/components/rdbms/src/java/org/apache/jetspeed/components/datasource/DBCPDatasourceComponent.java 2008-11-27 07:45:50 UTC (rev 1450) @@ -265,7 +265,7 @@ catch (Exception e) { IllegalStateException ise = new IllegalStateException( - "Unable to sfaely shutdown the DBCPConnection pool: " + "Unable to safely shutdown the DBCPConnection pool: " + e.toString()); ise.initCause(e); try From svnnotify ¡÷ sourceforge.jp Thu Nov 27 17:50:12 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 17:50:12 +0900 Subject: [pal-cvs 3716] [1451] added css, added last-spacer, fixed memory issue. Message-ID: <1227775812.340689.20075.nullmailer@users.sourceforge.jp> Revision: 1451 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1451 Author: shinsuke Date: 2008-11-27 17:50:12 +0900 (Thu, 27 Nov 2008) Log Message: ----------- added css, added last-spacer, fixed memory issue. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java scheduler/trunk/src/main/resources/application_ja.properties scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp Added Paths: ----------- scheduler/trunk/src/main/webapp/css/ scheduler/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/CalendarAction.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -69,10 +69,10 @@ int tMonth = CalendarUtil.getMonth(cal) + 1; int tDate = CalendarUtil.getDate(cal); int tDay = CalendarUtil.getDay(cal); - eventInDayItems = new ArrayList>>(); - allDayEventInDayItems = new ArrayList>(); + eventInDayItems = new ArrayList>>(5); + allDayEventInDayItems = new ArrayList>(5); for (int i = 0; i < 24; i++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } Integer facilityId = Integer.parseInt(calendarForm.facilityId); @@ -118,7 +118,7 @@ events.add(SchedulerUtil.createEmptyEvent()); } } else { - Map emptyEvent = new HashMap(); + Map emptyEvent = new HashMap(1); emptyEvent.put("noEvent", "true"); events.add(emptyEvent); } @@ -135,7 +135,7 @@ eventInWeekItems = new ArrayList>>>(7); allDayEventInWeekItems = new ArrayList>>(7); Calendar cal = calendarForm.getTargetCalendar(); - weekDayItems = new ArrayList>(); + weekDayItems = new ArrayList>(7); Map indexMap = new HashMap(7); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n for (int i = 0; i < 7; i++) { @@ -145,7 +145,7 @@ int month = CalendarUtil.getMonth(cal) + 1; int date = CalendarUtil.getDate(cal); - Map map = new HashMap(); + Map map = new HashMap(5); map.put("displayedDate", sdf.format(cal.getTime())); map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); map.put("date", String.valueOf(date)); @@ -159,11 +159,11 @@ List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } eventInWeekItems.add(eventInDayItems); - allDayEventInWeekItems.add(new ArrayList>()); + allDayEventInWeekItems.add(new ArrayList>(5)); } Integer facilityId = Integer.parseInt(calendarForm.facilityId); @@ -194,11 +194,11 @@ + calendarDay.get("month") + "-" + calendarDay.get("dayOfMonth"), count); calendarDay.put("allDayEventItems", - new ArrayList>()); + new ArrayList>(5)); List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } calendarDay.put("eventItems", eventInDayItems); count++; @@ -239,7 +239,7 @@ calendarDayItems = SchedulerUtil.createSideCalendar(cal); Calendar startCal = cal; - weekDayItems = new ArrayList>(); + weekDayItems = new ArrayList>(7); Map indexMap = new HashMap(7); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n for (int i = 0; i < 7; i++) { @@ -247,7 +247,7 @@ int month = CalendarUtil.getMonth(cal) + 1; int date = CalendarUtil.getDate(cal); - Map map = new HashMap(); + Map map = new HashMap(5); map.put("displayedDate", sdf.format(cal.getTime())); map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); map.put("date", String.valueOf(date)); @@ -288,7 +288,7 @@ private Map createWeekScheduleMap(Facility facility, Map indexMap, Calendar startCal, Calendar endCal) { - Map memberMap = new HashMap(); + Map memberMap = new HashMap(2); memberMap.put("facility", facility); @@ -300,11 +300,11 @@ List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } eventInWeekItems.add(eventInDayItems); - allDayEventInWeekItems.add(new ArrayList>()); + allDayEventInWeekItems.add(new ArrayList>(5)); } List ssmList = onetimeScheduleService Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -599,7 +599,7 @@ public List getYearItems() { int year = CalendarUtil.getYear(CalendarUtil.getToday()); - List items = new ArrayList(); + List items = new ArrayList(15); for (int i = year - 10; i < year + 5; i++) { items.add(String.valueOf(i)); } @@ -607,7 +607,7 @@ } public List getMonthItems() { - List items = new ArrayList(); + List items = new ArrayList(12); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -618,7 +618,7 @@ } public List getDateItems() { - List items = new ArrayList(); + List items = new ArrayList(31); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -629,7 +629,7 @@ } public List> getHourItems() { - List> items = new ArrayList>(); + List> items = new ArrayList>(24); for (int i = 0; i < 24; i++) { StringBuilder buf = new StringBuilder(); if (i < 10) { @@ -637,7 +637,7 @@ } buf.append(i); // TODO i18n - Map map = new HashMap(); + Map map = new HashMap(2); map.put("label", buf.toString()); map.put("value", buf.toString()); items.add(map); @@ -646,7 +646,7 @@ } public List getMinuteItems() { - List items = new ArrayList(); + List items = new ArrayList(60); for (int i = 0; i < 60; i += 5) { StringBuilder buf = new StringBuilder(); if (i < 10) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -594,7 +594,7 @@ public List getYearItems() { int year = CalendarUtil.getYear(CalendarUtil.getToday()); - List items = new ArrayList(); + List items = new ArrayList(15); for (int i = year - 10; i < year + 5; i++) { items.add(String.valueOf(i)); } @@ -602,7 +602,7 @@ } public List getMonthItems() { - List items = new ArrayList(); + List items = new ArrayList(12); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -613,7 +613,7 @@ } public List getDateItems() { - List items = new ArrayList(); + List items = new ArrayList(31); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -624,7 +624,7 @@ } public List> getHourItems() { - List> items = new ArrayList>(); + List> items = new ArrayList>(24); for (int i = 0; i < 24; i++) { StringBuilder buf = new StringBuilder(); if (i < 10) { @@ -632,7 +632,7 @@ } buf.append(i); // TODO i18n - Map map = new HashMap(); + Map map = new HashMap(2); map.put("label", buf.toString()); map.put("value", buf.toString()); items.add(map); @@ -641,7 +641,7 @@ } public List getMinuteItems() { - List items = new ArrayList(); + List items = new ArrayList(60); for (int i = 0; i < 60; i += 5) { StringBuilder buf = new StringBuilder(); if (i < 10) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -67,10 +67,10 @@ int tMonth = CalendarUtil.getMonth(cal) + 1; int tDate = CalendarUtil.getDate(cal); int tDay = CalendarUtil.getDay(cal); - eventInDayItems = new ArrayList>>(); - allDayEventInDayItems = new ArrayList>(); + eventInDayItems = new ArrayList>>(5); + allDayEventInDayItems = new ArrayList>(5); for (int i = 0; i < 24; i++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } String userId = request.getRemoteUser(); @@ -115,7 +115,7 @@ events.add(SchedulerUtil.createEmptyEvent()); } } else { - Map emptyEvent = new HashMap(); + Map emptyEvent = new HashMap(1); emptyEvent.put("noEvent", "true"); events.add(emptyEvent); } @@ -133,7 +133,7 @@ allDayEventInWeekItems = new ArrayList>>(7); Calendar cal = calendarForm.getTargetCalendar(); // calendarList.add(cal); - weekDayItems = new ArrayList>(); + weekDayItems = new ArrayList>(7); Map indexMap = new HashMap(7); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n for (int i = 0; i < 7; i++) { @@ -143,7 +143,7 @@ int month = CalendarUtil.getMonth(cal) + 1; int date = CalendarUtil.getDate(cal); - Map map = new HashMap(); + Map map = new HashMap(5); map.put("displayedDate", sdf.format(cal.getTime())); map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); map.put("date", String.valueOf(date)); @@ -157,11 +157,11 @@ List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } eventInWeekItems.add(eventInDayItems); - allDayEventInWeekItems.add(new ArrayList>()); + allDayEventInWeekItems.add(new ArrayList>(5)); } String userId = request.getRemoteUser(); @@ -191,11 +191,11 @@ + calendarDay.get("month") + "-" + calendarDay.get("dayOfMonth"), count); calendarDay.put("allDayEventItems", - new ArrayList>()); + new ArrayList>(5)); List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } calendarDay.put("eventItems", eventInDayItems); count++; @@ -247,7 +247,7 @@ } Calendar startCal = cal; - weekDayItems = new ArrayList>(); + weekDayItems = new ArrayList>(7); Map indexMap = new HashMap(7); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n for (int i = 0; i < 7; i++) { @@ -255,7 +255,7 @@ int month = CalendarUtil.getMonth(cal) + 1; int date = CalendarUtil.getDate(cal); - Map map = new HashMap(); + Map map = new HashMap(5); map.put("displayedDate", sdf.format(cal.getTime())); map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal))); map.put("date", String.valueOf(date)); @@ -307,7 +307,7 @@ private Map createWeekScheduleMap(UserInfo userInfo, Map indexMap, Calendar startCal, Calendar endCal) { - Map memberMap = new HashMap(); + Map memberMap = new HashMap(2); memberMap.put("userInfo", userInfo); @@ -319,11 +319,11 @@ List>> eventInDayItems = new ArrayList>>( 24); for (int j = 0; j < 24; j++) { - eventInDayItems.add(new ArrayList>()); + eventInDayItems.add(new ArrayList>(5)); } eventInWeekItems.add(eventInDayItems); - allDayEventInWeekItems.add(new ArrayList>()); + allDayEventInWeekItems.add(new ArrayList>(5)); } List ssmList = onetimeScheduleService Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -591,7 +591,7 @@ public List getYearItems() { int year = CalendarUtil.getYear(CalendarUtil.getToday()); - List items = new ArrayList(); + List items = new ArrayList(15); for (int i = year - 10; i < year + 5; i++) { items.add(String.valueOf(i)); } @@ -599,7 +599,7 @@ } public List getMonthItems() { - List items = new ArrayList(); + List items = new ArrayList(12); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -610,7 +610,7 @@ } public List getDateItems() { - List items = new ArrayList(); + List items = new ArrayList(31); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -621,7 +621,7 @@ } public List> getHourItems() { - List> items = new ArrayList>(); + List> items = new ArrayList>(24); for (int i = 0; i < 24; i++) { StringBuilder buf = new StringBuilder(); if (i < 10) { @@ -629,7 +629,7 @@ } buf.append(i); // TODO i18n - Map map = new HashMap(); + Map map = new HashMap(2); map.put("label", buf.toString()); map.put("value", buf.toString()); items.add(map); @@ -638,7 +638,7 @@ } public List getMinuteItems() { - List items = new ArrayList(); + List items = new ArrayList(60); for (int i = 0; i < 60; i += 5) { StringBuilder buf = new StringBuilder(); if (i < 10) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -587,7 +587,7 @@ public List getYearItems() { int year = CalendarUtil.getYear(CalendarUtil.getToday()); - List items = new ArrayList(); + List items = new ArrayList(15); for (int i = year - 10; i < year + 5; i++) { items.add(String.valueOf(i)); } @@ -595,7 +595,7 @@ } public List getMonthItems() { - List items = new ArrayList(); + List items = new ArrayList(12); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -606,7 +606,7 @@ } public List getDateItems() { - List items = new ArrayList(); + List items = new ArrayList(31); for (int i = 1; i < 10; i++) { items.add("0" + String.valueOf(i)); } @@ -617,7 +617,7 @@ } public List> getHourItems() { - List> items = new ArrayList>(); + List> items = new ArrayList>(24); for (int i = 0; i < 24; i++) { StringBuilder buf = new StringBuilder(); if (i < 10) { @@ -625,7 +625,7 @@ } buf.append(i); // TODO i18n - Map map = new HashMap(); + Map map = new HashMap(2); map.put("label", buf.toString()); map.put("value", buf.toString()); items.add(map); @@ -634,7 +634,7 @@ } public List getMinuteItems() { - List items = new ArrayList(); + List items = new ArrayList(60); for (int i = 0; i < 60; i += 5) { StringBuilder buf = new StringBuilder(); if (i < 10) { Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityGroupService.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -23,6 +23,8 @@ private PagerDxo pagerDxo; + private FacilityService facilityService; + public List getFacilityGroupList( FacilityGroupPager facilityGroupPager) { @@ -111,6 +113,8 @@ } public void disable(Integer id, String name) { + facilityService.disableAll(id, name); + // not delete FacilityGroupCB cb = new FacilityGroupCB(); @@ -122,6 +126,7 @@ facilityGroup.setDeletedBy(name); facilityGroup.setDeletedTime(new Timestamp(new Date().getTime())); facilityGroupBhv.update(facilityGroup); + } public void moveUp(FacilityGroup facilityGroup) { @@ -182,4 +187,12 @@ this.pagerDxo = pagerDxo; } + public FacilityService getFacilityService() { + return facilityService; + } + + public void setFacilityService(FacilityService facilityService) { + this.facilityService = facilityService; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/FacilityService.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -10,8 +10,10 @@ import jp.sf.pal.scheduler.common.util.PagingResultBeanWrapper; import jp.sf.pal.scheduler.db.allcommon.cbean.PagingResultBean; import jp.sf.pal.scheduler.db.cbean.FacilityCB; +import jp.sf.pal.scheduler.db.cbean.FacilityScheduleMappingCB; import jp.sf.pal.scheduler.db.exbhv.FacilityBhv; import jp.sf.pal.scheduler.db.exbhv.FacilityContentBhv; +import jp.sf.pal.scheduler.db.exbhv.FacilityScheduleMappingBhv; import jp.sf.pal.scheduler.db.exentity.Facility; import jp.sf.pal.scheduler.db.exentity.FacilityContent; import jp.sf.pal.scheduler.pager.FacilityPager; @@ -26,6 +28,8 @@ private transient FacilityContentBhv facilityContentBhv; + private transient FacilityScheduleMappingBhv facilityScheduleMappingBhv; + private PagerDxo pagerDxo; public List getFacilityList(FacilityPager facilityPager) { @@ -144,6 +148,10 @@ } public void disable(Integer id, String name) { + FacilityScheduleMappingCB cb2 = new FacilityScheduleMappingCB(); + cb2.query().setFacilityId_Equal(id); + facilityScheduleMappingBhv.queryDelete(cb2); + // not delete FacilityCB cb = new FacilityCB(); @@ -157,6 +165,22 @@ facilityBhv.update(facility); } + public void disableAll(Integer groupId, String name) { + FacilityScheduleMappingCB cb2 = new FacilityScheduleMappingCB(); + cb2.query().queryFacility().setGroupId_Equal(groupId); + facilityScheduleMappingBhv.queryDelete(cb2); + + Facility facility = new Facility(); + facility.setDeletedBy(name); + facility.setDeletedTime(new Timestamp(new Date().getTime())); + + // not delete + FacilityCB cb = new FacilityCB(); + + cb.query().setGroupId_Equal(groupId); + facilityBhv.queryUpdate(facility, cb); + } + public void moveUp(Facility facility) { FacilityCB cb = new FacilityCB(); @@ -262,4 +286,13 @@ this.facilityContentBhv = facilityContentBhv; } + public FacilityScheduleMappingBhv getFacilityScheduleMappingBhv() { + return facilityScheduleMappingBhv; + } + + public void setFacilityScheduleMappingBhv( + FacilityScheduleMappingBhv facilityScheduleMappingBhv) { + this.facilityScheduleMappingBhv = facilityScheduleMappingBhv; + } + } Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -190,7 +190,7 @@ cb1.query().addOrderBy_RoleId_Asc(); List roleMappingList = roleMappingBhv.selectList(cb1); for (RoleMapping roleMapping : roleMappingList) { - Map map = new HashMap(); + Map map = new HashMap(2); map.put("value", SchedulerConstants.ROLE_PREFIX + roleMapping.getRoleId()); String name = roleMapping.getRoleInfo().getName(); @@ -209,7 +209,7 @@ cb2.query().addOrderBy_GroupId_Asc(); List groupMappingList = groupMappingBhv.selectList(cb2); for (GroupMapping groupMapping : groupMappingList) { - Map map = new HashMap(); + Map map = new HashMap(2); map.put("value", SchedulerConstants.GROUP_PREFIX + groupMapping.getGroupId()); String name = groupMapping.getGroupInfo().getName(); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-27 08:50:12 UTC (rev 1451) @@ -130,7 +130,7 @@ public static Map createCalendarDayItem(Calendar cal, boolean thisMonth) { - Map map = new HashMap(); + Map map = new HashMap(6); map.put("year", String.valueOf(CalendarUtil.getYear(cal))); map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1)); map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal))); @@ -146,7 +146,7 @@ int month = CalendarUtil.getMonth(cal) + 1; int dayOfMonth = CalendarUtil.getDate(cal); int dayOfWeek = CalendarUtil.getDay(cal); - Map map = new HashMap(); + Map map = new HashMap(6); map.put("year", String.valueOf(year)); map.put("month", String.valueOf(month)); map.put("dayOfMonth", String.valueOf(dayOfMonth)); @@ -169,7 +169,7 @@ } public static Map createEmptyEvent() { - Map emptyEvent = new HashMap(); + Map emptyEvent = new HashMap(4); emptyEvent.put("startEvent", "true"); emptyEvent.put("cols", "1"); emptyEvent.put("rows", "1"); @@ -251,7 +251,7 @@ public static Map createEvent(EventSchedule eventSchedule, boolean start, boolean end) { - Map map = new HashMap(); + Map map = new HashMap(6); map.put("id", eventSchedule.getId().toString()); map.put("title", eventSchedule.getTitle()); map.put("secret", eventSchedule.getSecret()); Modified: scheduler/trunk/src/main/resources/application_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/application_ja.properties 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/resources/application_ja.properties 2008-11-27 08:50:12 UTC (rev 1451) @@ -122,7 +122,7 @@ labels.remove=\u524a\u9664 labels.selected_facility_list=\u9078\u629e\u3055\u308c\u305f\u65bd\u8a2d\u306e\u30ea\u30b9\u30c8 -labels.ok=OK +labels.ok=\u4e86\u89e3 labels.id=ID labels.title=\u30bf\u30a4\u30c8\u30eb Modified: scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 08:50:12 UTC (rev 1451) @@ -85,6 +85,10 @@ viewPage /user/schedule/calendar/ + + maxCacheSize + 3 + 0 text/html @@ -110,6 +114,10 @@ viewPage /user/facility/facility/ + + maxCacheSize + 3 + 0 text/html Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                @@ -40,7 +56,7 @@
                                                - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -12,6 +27,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facility/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -12,6 +27,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/facility/facilityGroup/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -12,6 +27,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,7 +28,8 @@
                                                • -
                                                • +
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -12,6 +27,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityday.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilitymonth.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/facilityweek.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/calendar/groupweek.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                @@ -89,7 +105,7 @@
                                                - + - + Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -13,6 +28,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -15,8 +30,9 @@
                                                • -
                                                • +
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -15,8 +30,9 @@
                                                • -
                                                • +
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -14,8 +29,9 @@
                                                • -
                                                • +
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/facilitylist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -15,8 +30,9 @@
                                                • -
                                                • +
                                                • +
                                                @@ -120,7 +136,7 @@
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/onetimeSchedule/userlist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -15,8 +30,9 @@
                                                • -
                                                • +
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -16,6 +31,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/facilitylist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/repeatSchedule/userlist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/groupweek.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -16,6 +31,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -16,6 +31,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Added: scheduler/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- scheduler/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ scheduler/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 08:50:12 UTC (rev 1451) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.scheduler-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.scheduler-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.scheduler-portlet .form-table thead { +margin:0; +padding:0; +} + +.scheduler-portlet .form-table tbody { +margin:0; +padding:0; +} + +.scheduler-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.scheduler-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.scheduler-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.scheduler-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.scheduler-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.scheduler-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.scheduler-portlet .list-table thead { +margin:0; +padding:0; +} + +.scheduler-portlet .list-table tbody { +margin:0; +padding:0; +} + +.scheduler-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.scheduler-portlet .list-table .row1 { +background-color: #ffffff; +} + +.scheduler-portlet .list-table .row2 { +background-color: #fffff8; +} + +.scheduler-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.scheduler-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.scheduler-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.scheduler-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.scheduler-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.scheduler-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.scheduler-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.scheduler-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.scheduler-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.scheduler-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.scheduler-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.scheduler-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.scheduler-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.scheduler-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: scheduler/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Thu Nov 27 18:06:09 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 18:06:09 +0900 Subject: [pal-cvs 3717] [1452] added last-spacer(fixed ie design problem). Message-ID: <1227776769.660082.4433.nullmailer@users.sourceforge.jp> Revision: 1452 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1452 Author: shinsuke Date: 2008-11-27 18:06:09 +0900 (Thu, 27 Nov 2008) Log Message: ----------- added last-spacer(fixed ie design problem). Modified Paths: -------------- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp addresslist/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/company/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -27,6 +27,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/admin/person/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -27,6 +27,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/company/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -27,6 +27,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp =================================================================== --- addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/WEB-INF/view/user/person/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) @@ -28,6 +28,7 @@
                                              • +
                                              • Modified: addresslist/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- addresslist/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 08:50:12 UTC (rev 1451) +++ addresslist/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 09:06:09 UTC (rev 1452) @@ -168,6 +168,12 @@ width:10px; } +.addresslist-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + .addresslist-portlet .tab-nav ul li.last { border-bottom:1px solid #A9A9A9; float:none; From svnnotify ¡÷ sourceforge.jp Thu Nov 27 18:21:06 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 18:21:06 +0900 Subject: [pal-cvs 3718] [1453] added css, added last-spacer, i18ned title. Message-ID: <1227777666.138118.21102.nullmailer@users.sourceforge.jp> Revision: 1453 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1453 Author: shinsuke Date: 2008-11-27 18:21:06 +0900 (Thu, 27 Nov 2008) Log Message: ----------- added css, added last-spacer, i18ned title. Modified Paths: -------------- userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp Added Paths: ----------- userinfo/trunk/src/main/resources/jp/ userinfo/trunk/src/main/resources/jp/sf/ userinfo/trunk/src/main/resources/jp/sf/pal/ userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/ userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/ userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig.properties userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig_ja.properties userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager.properties userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager_ja.properties userinfo/trunk/src/main/webapp/css/ userinfo/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Added: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig.properties =================================================================== Property changes on: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig.properties ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig_ja.properties (rev 0) +++ userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig_ja.properties 2008-11-27 09:21:06 UTC (rev 1453) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u8a2d\u5b9a +javax.portlet.short-title=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u8a2d\u5b9a +javax.portlet.keywords=\u8a2d\u5b9a + Property changes on: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoConfig_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager.properties =================================================================== Property changes on: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager_ja.properties =================================================================== --- userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager_ja.properties (rev 0) +++ userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager_ja.properties 2008-11-27 09:21:06 UTC (rev 1453) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u7ba1\u7406 +javax.portlet.short-title=\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u7ba1\u7406 +javax.portlet.keywords=\u7ba1\u7406 + Property changes on: userinfo/trunk/src/main/resources/jp/sf/pal/userinfo/resources/UserInfoManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 09:21:06 UTC (rev 1453) @@ -18,7 +18,7 @@ en ja - + jp.sf.pal.userinfo.resources.UserInfoConfig UserInfo Config Config @@ -43,10 +43,10 @@ en ja - + jp.sf.pal.userinfo.resources.UserInfoManager UserInfo Manager - UserInfos + UserInfo UserInfo,URL Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -16,6 +31,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/groupInfo/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -16,6 +31,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/roleInfo/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -17,6 +32,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -19,6 +34,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -19,6 +34,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -4,7 +4,22 @@ -
                                                + +
                                                  @@ -18,6 +33,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -19,6 +34,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -19,6 +34,7 @@
                                                • +
                                                Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp =================================================================== --- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp 2008-11-27 09:06:09 UTC (rev 1452) +++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp 2008-11-27 09:21:06 UTC (rev 1453) @@ -5,7 +5,22 @@ -
                                                + +
                                                  @@ -19,6 +34,7 @@
                                                • +
                                                Added: userinfo/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- userinfo/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ userinfo/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 09:21:06 UTC (rev 1453) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.userinfo-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.userinfo-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.userinfo-portlet .form-table thead { +margin:0; +padding:0; +} + +.userinfo-portlet .form-table tbody { +margin:0; +padding:0; +} + +.userinfo-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.userinfo-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.userinfo-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.userinfo-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.userinfo-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.userinfo-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.userinfo-portlet .list-table thead { +margin:0; +padding:0; +} + +.userinfo-portlet .list-table tbody { +margin:0; +padding:0; +} + +.userinfo-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.userinfo-portlet .list-table .row1 { +background-color: #ffffff; +} + +.userinfo-portlet .list-table .row2 { +background-color: #fffff8; +} + +.userinfo-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.userinfo-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.userinfo-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.userinfo-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.userinfo-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.userinfo-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.userinfo-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.userinfo-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.userinfo-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.userinfo-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.userinfo-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.userinfo-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.userinfo-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.userinfo-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: userinfo/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Thu Nov 27 19:05:44 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 19:05:44 +0900 Subject: [pal-cvs 3719] [1454] added css, i18ned title. Message-ID: <1227780344.667114.3777.nullmailer@users.sourceforge.jp> Revision: 1454 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1454 Author: shinsuke Date: 2008-11-27 19:05:44 +0900 (Thu, 27 Nov 2008) Log Message: ----------- added css, i18ned title. Modified Paths: -------------- bookmark/trunk/src/main/resources/application_ja.properties bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/error.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/index.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/common/common.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp Added Paths: ----------- bookmark/trunk/src/main/resources/jp/ bookmark/trunk/src/main/resources/jp/sf/ bookmark/trunk/src/main/resources/jp/sf/pal/ bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/ bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/ bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor.properties bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor_ja.properties bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager.properties bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager_ja.properties bookmark/trunk/src/main/webapp/css/ bookmark/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: bookmark/trunk/src/main/resources/application_ja.properties =================================================================== --- bookmark/trunk/src/main/resources/application_ja.properties 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/resources/application_ja.properties 2008-11-27 10:05:44 UTC (rev 1454) @@ -69,7 +69,7 @@ errors.failed_to_create_category=\u30ab\u30c6\u30b4\u30ea\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_update_category=\u30ab\u30c6\u30b4\u30ea\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_delete_category=\u30ab\u30c6\u30b4\u30ea\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.could_not_find_category=\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}) +errors.could_not_find_category=\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002(ID:{0}) errors.invalid.id=\u6b63\u3057\u304f\u306a\u3044 ID \u3067\u3059\u3002 errors.could_not_find_category_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.could_not_find_category_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 @@ -77,6 +77,6 @@ errors.failed_to_create_link=\u30ea\u30f3\u30af\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_update_link=\u30ea\u30f3\u30af\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_delete_link=\u30ea\u30f3\u30af\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.could_not_find_link=\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}) +errors.could_not_find_link=\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002(ID:{0}) errors.could_not_find_link_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.could_not_find_link_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 Added: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor.properties =================================================================== Property changes on: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor.properties ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor_ja.properties =================================================================== --- bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor_ja.properties (rev 0) +++ bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor_ja.properties 2008-11-27 10:05:44 UTC (rev 1454) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u30ea\u30f3\u30af\u96c6 +javax.portlet.short-title=\u30ea\u30f3\u30af\u96c6 +javax.portlet.keywords=\u30ea\u30f3\u30af\u96c6 + Property changes on: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkEditor_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager.properties =================================================================== Property changes on: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager_ja.properties =================================================================== --- bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager_ja.properties (rev 0) +++ bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager_ja.properties 2008-11-27 10:05:44 UTC (rev 1454) @@ -0,0 +1,5 @@ +# portlet info +javax.portlet.title=\u30ea\u30f3\u30af\u96c6\u7ba1\u7406 +javax.portlet.short-title=\u30ea\u30f3\u30af\u96c6\u7ba1\u7406 +javax.portlet.keywords=\u7ba1\u7406 + Property changes on: bookmark/trunk/src/main/resources/jp/sf/pal/bookmark/resources/BookmarkManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-27 10:05:44 UTC (rev 1454) @@ -2,10 +2,10 @@ Display/Edit bookmarks. - ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ + ¥ê¥ó¥¯½¸¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ BookmarkEditor Bookmark: Bookmark Editor - ¥Ö¥Ã¥¯¥Þ¡¼¥¯: ¥Ö¥Ã¥¯¥Þ¡¼¥¯ÊÔ½¸ + ¥ê¥ó¥¯½¸: ¥ê¥ó¥¯½¸ÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -18,7 +18,7 @@ en ja - + jp.sf.pal.bookmark.resources.BookmarkEditor Bookmarks Bookmarks @@ -27,10 +27,10 @@ Manage bookmarks. - ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ò´ÉÍý¤·¤Þ¤¹¡£ + ¥ê¥ó¥¯½¸¤ò´ÉÍý¤·¤Þ¤¹¡£ BookmarkManager Bookmark: Bookmark Manager - ¥Ö¥Ã¥¯¥Þ¡¼¥¯: ¥Ö¥Ã¥¯¥Þ¡¼¥¯´ÉÍý + ¥ê¥ó¥¯½¸: ¥ê¥ó¥¯½¸´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet viewPage @@ -43,7 +43,7 @@ en ja - + jp.sf.pal.bookmark.resources.BookmarkManager Bookmark Manager Bookmarks Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -4,8 +4,25 @@ + +

                                                +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/confirm.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/edit.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/error.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -4,8 +4,25 @@ + +

                                                +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/link/index.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -4,8 +4,25 @@ + +

                                                +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,7 +5,22 @@ -
                                                + +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,22 +5,45 @@ -
                                                + +
                                                -
                                                -
                                                -
                                                -
                                                  +
                                                  +
                                                 
                                                ${f:h(p.company.name)} + + ${f:h(p.company.name)} + + + + + + +
                                                Comment ${f:br(f:h(content))}
                                                ${f:h(facilityMap.facility.name)}
                                                ${f:h(facilityMap.facility.name)}
                                                  Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp =================================================================== --- scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp 2008-11-27 07:45:50 UTC (rev 1450) +++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/facility/facility/confirm.jsp 2008-11-27 08:50:12 UTC (rev 1451) @@ -5,7 +5,22 @@ -
                                                  + +
                                                    @@ -13,7 +28,8 @@
                                                  • -
                                                  • +
                                                  • +
                                                  @@ -40,7 +56,7 @@
                                                Comment ${f:br(f:h(content))}
                                                -"/> +"/>
                                                + + + + + + + + +
                                                +
                                                  -
                                                • ${f:h(c.name)}
                                                • +
                                                • ${f:h(c.name)}
                                                • -
                                                • ${f:h(c.name)}
                                                • +
                                                • ${f:h(c.name)}
                                                - +
                                                Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,22 +5,45 @@ -
                                                + +
                                                -
                                                -
                                                -
                                                -
                                                  +
                                                  + + + + + + + + + +
                                                  +
                                                    -
                                                  • ${f:h(c.name)}
                                                  • +
                                                  • ${f:h(c.name)}
                                                  • -
                                                  • ${f:h(c.name)}
                                                  • +
                                                  • ${f:h(c.name)}
                                                  - +
                                                  Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -4,8 +4,25 @@ + +

                                                  +
                                                  Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp 2008-11-27 09:21:06 UTC (rev 1453) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp 2008-11-27 10:05:44 UTC (rev 1454) @@ -5,22 +5,45 @@ -
                                                  + +
                                                  -
                                                  -
                                                  -
                                                  -
                                                    +
                                                    + + + + + + + + + +
                                                    +
                                                      -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    - +
                                                    Added: bookmark/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- bookmark/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ bookmark/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 10:05:44 UTC (rev 1454) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.bookmark-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.bookmark-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.bookmark-portlet .form-table thead { +margin:0; +padding:0; +} + +.bookmark-portlet .form-table tbody { +margin:0; +padding:0; +} + +.bookmark-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.bookmark-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.bookmark-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.bookmark-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.bookmark-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.bookmark-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.bookmark-portlet .list-table thead { +margin:0; +padding:0; +} + +.bookmark-portlet .list-table tbody { +margin:0; +padding:0; +} + +.bookmark-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.bookmark-portlet .list-table .row1 { +background-color: #ffffff; +} + +.bookmark-portlet .list-table .row2 { +background-color: #fffff8; +} + +.bookmark-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.bookmark-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.bookmark-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.bookmark-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.bookmark-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.bookmark-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.bookmark-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.bookmark-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.bookmark-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.bookmark-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.bookmark-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.bookmark-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.bookmark-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.bookmark-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: bookmark/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Thu Nov 27 23:10:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Thu, 27 Nov 2008 23:10:04 +0900 Subject: [pal-cvs 3720] [1455] added css. Message-ID: <1227795005.000823.22940.nullmailer@users.sourceforge.jp> Revision: 1455 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1455 Author: shinsuke Date: 2008-11-27 23:10:04 +0900 (Thu, 27 Nov 2008) Log Message: ----------- added css. Modified Paths: -------------- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/config/index.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/error.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/confirm.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/edit.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/error.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/edit.jsp vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/error.jsp Added Paths: ----------- vfs-portlets/trunk/src/main/webapp/css/ vfs-portlets/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/error.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/error.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -6,7 +6,22 @@ -
                                                    + +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/confirm.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/confirm.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/confirm.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/edit.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/edit.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/edit.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/error.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/newfolder/error.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/edit.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/edit.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/edit.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/error.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/error.jsp 2008-11-27 10:05:44 UTC (rev 1454) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/upload/error.jsp 2008-11-27 14:10:04 UTC (rev 1455) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Added: vfs-portlets/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- vfs-portlets/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ vfs-portlets/trunk/src/main/webapp/css/pal-extension.css 2008-11-27 14:10:04 UTC (rev 1455) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.vfs-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.vfs-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.vfs-portlet .form-table thead { +margin:0; +padding:0; +} + +.vfs-portlet .form-table tbody { +margin:0; +padding:0; +} + +.vfs-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.vfs-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.vfs-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.vfs-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.vfs-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.vfs-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.vfs-portlet .list-table thead { +margin:0; +padding:0; +} + +.vfs-portlet .list-table tbody { +margin:0; +padding:0; +} + +.vfs-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.vfs-portlet .list-table .row1 { +background-color: #ffffff; +} + +.vfs-portlet .list-table .row2 { +background-color: #fffff8; +} + +.vfs-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.vfs-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.vfs-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.vfs-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.vfs-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.vfs-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.vfs-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.vfs-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.vfs-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.vfs-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.vfs-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.vfs-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.vfs-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.vfs-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: vfs-portlets/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:22:42 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:22:42 +0900 Subject: [pal-cvs 3721] [1456] supported liferay and jboss. Message-ID: <1227846162.966721.13747.nullmailer@users.sourceforge.jp> Revision: 1456 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1456 Author: shinsuke Date: 2008-11-28 13:22:42 +0900 (Fri, 28 Nov 2008) Log Message: ----------- supported liferay and jboss. Modified Paths: -------------- vfs-portlets/trunk/.classpath vfs-portlets/trunk/pom.xml -------------- next part -------------- Modified: vfs-portlets/trunk/.classpath =================================================================== --- vfs-portlets/trunk/.classpath 2008-11-27 14:10:04 UTC (rev 1455) +++ vfs-portlets/trunk/.classpath 2008-11-28 04:22:42 UTC (rev 1456) @@ -35,11 +35,11 @@ - + - + Modified: vfs-portlets/trunk/pom.xml =================================================================== --- vfs-portlets/trunk/pom.xml 2008-11-27 14:10:04 UTC (rev 1455) +++ vfs-portlets/trunk/pom.xml 2008-11-28 04:22:42 UTC (rev 1456) @@ -193,7 +193,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:23:22 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:23:22 +0900 Subject: [pal-cvs 3722] [1457] added css. Message-ID: <1227846202.769454.13957.nullmailer@users.sourceforge.jp> Revision: 1457 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1457 Author: shinsuke Date: 2008-11-28 13:23:22 +0900 (Fri, 28 Nov 2008) Log Message: ----------- added css. Modified Paths: -------------- vfs-portlets/trunk/src/main/webapp/WEB-INF/web.xml -------------- next part -------------- Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-28 04:22:42 UTC (rev 1456) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-28 04:23:22 UTC (rev 1457) @@ -66,7 +66,7 @@ jp.sf.pal.vfs.common.filter.SecurityConstraintFilter acceptUrlPaths - /list/download/.* + /list/download/.*,/css/.* From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:23:39 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:23:39 +0900 Subject: [pal-cvs 3723] [1458] i18ned msgs. Message-ID: <1227846219.558686.14057.nullmailer@users.sourceforge.jp> Revision: 1458 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1458 Author: shinsuke Date: 2008-11-28 13:23:39 +0900 (Fri, 28 Nov 2008) Log Message: ----------- i18ned msgs. Modified Paths: -------------- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp -------------- next part -------------- Modified: vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp =================================================================== --- vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp 2008-11-28 04:23:22 UTC (rev 1457) +++ vfs-portlets/trunk/src/main/webapp/WEB-INF/view/list/index.jsp 2008-11-28 04:23:39 UTC (rev 1458) @@ -35,11 +35,20 @@
                                                    -
                                                    -Path: +
                                                    + + + + + + + +
                                                    +"/> +
                                                    +
                                                    -
                                                    From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:30:18 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:30:18 +0900 Subject: [pal-cvs 3724] [1459] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227846618.224201.21041.nullmailer@users.sourceforge.jp> Revision: 1459 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1459 Author: shinsuke Date: 2008-11-28 13:30:18 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- addresslist/trunk/.classpath addresslist/trunk/pom.xml -------------- next part -------------- Modified: addresslist/trunk/.classpath =================================================================== --- addresslist/trunk/.classpath 2008-11-28 04:23:39 UTC (rev 1458) +++ addresslist/trunk/.classpath 2008-11-28 04:30:18 UTC (rev 1459) @@ -32,11 +32,11 @@ - + - + Modified: addresslist/trunk/pom.xml =================================================================== --- addresslist/trunk/pom.xml 2008-11-28 04:23:39 UTC (rev 1458) +++ addresslist/trunk/pom.xml 2008-11-28 04:30:18 UTC (rev 1459) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:34:38 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:34:38 +0900 Subject: [pal-cvs 3725] [1460] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227846878.252807.24106.nullmailer@users.sourceforge.jp> Revision: 1460 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1460 Author: shinsuke Date: 2008-11-28 13:34:38 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- board/trunk/.classpath board/trunk/pom.xml -------------- next part -------------- Modified: board/trunk/.classpath =================================================================== --- board/trunk/.classpath 2008-11-28 04:30:18 UTC (rev 1459) +++ board/trunk/.classpath 2008-11-28 04:34:38 UTC (rev 1460) @@ -32,11 +32,11 @@ - + - + Modified: board/trunk/pom.xml =================================================================== --- board/trunk/pom.xml 2008-11-28 04:30:18 UTC (rev 1459) +++ board/trunk/pom.xml 2008-11-28 04:34:38 UTC (rev 1460) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:36:00 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:36:00 +0900 Subject: [pal-cvs 3726] [1461] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227846960.405423.25343.nullmailer@users.sourceforge.jp> Revision: 1461 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1461 Author: shinsuke Date: 2008-11-28 13:36:00 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- bookmark/trunk/.classpath bookmark/trunk/pom.xml -------------- next part -------------- Modified: bookmark/trunk/.classpath =================================================================== --- bookmark/trunk/.classpath 2008-11-28 04:34:38 UTC (rev 1460) +++ bookmark/trunk/.classpath 2008-11-28 04:36:00 UTC (rev 1461) @@ -30,11 +30,11 @@ - + - + Modified: bookmark/trunk/pom.xml =================================================================== --- bookmark/trunk/pom.xml 2008-11-28 04:34:38 UTC (rev 1460) +++ bookmark/trunk/pom.xml 2008-11-28 04:36:00 UTC (rev 1461) @@ -162,7 +162,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:37:01 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:37:01 +0900 Subject: [pal-cvs 3727] [1462] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847021.871782.26505.nullmailer@users.sourceforge.jp> Revision: 1462 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1462 Author: shinsuke Date: 2008-11-28 13:37:01 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- chat/trunk/.classpath chat/trunk/pom.xml -------------- next part -------------- Modified: chat/trunk/.classpath =================================================================== --- chat/trunk/.classpath 2008-11-28 04:36:00 UTC (rev 1461) +++ chat/trunk/.classpath 2008-11-28 04:37:01 UTC (rev 1462) @@ -26,12 +26,12 @@ - + - + Modified: chat/trunk/pom.xml =================================================================== --- chat/trunk/pom.xml 2008-11-28 04:36:00 UTC (rev 1461) +++ chat/trunk/pom.xml 2008-11-28 04:37:01 UTC (rev 1462) @@ -119,7 +119,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:37:59 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:37:59 +0900 Subject: [pal-cvs 3728] [1463] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847079.309193.26855.nullmailer@users.sourceforge.jp> Revision: 1463 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1463 Author: shinsuke Date: 2008-11-28 13:37:59 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- googlegadgets/trunk/.classpath googlegadgets/trunk/pom.xml -------------- next part -------------- Modified: googlegadgets/trunk/.classpath =================================================================== --- googlegadgets/trunk/.classpath 2008-11-28 04:37:01 UTC (rev 1462) +++ googlegadgets/trunk/.classpath 2008-11-28 04:37:59 UTC (rev 1463) @@ -18,15 +18,15 @@ - + - - - - + + + + Modified: googlegadgets/trunk/pom.xml =================================================================== --- googlegadgets/trunk/pom.xml 2008-11-28 04:37:01 UTC (rev 1462) +++ googlegadgets/trunk/pom.xml 2008-11-28 04:37:59 UTC (rev 1463) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:38:56 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:38:56 +0900 Subject: [pal-cvs 3729] [1464] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847136.467821.28056.nullmailer@users.sourceforge.jp> Revision: 1464 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1464 Author: shinsuke Date: 2008-11-28 13:38:56 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- netvibes-widgets/trunk/.classpath netvibes-widgets/trunk/pom.xml -------------- next part -------------- Modified: netvibes-widgets/trunk/.classpath =================================================================== --- netvibes-widgets/trunk/.classpath 2008-11-28 04:37:59 UTC (rev 1463) +++ netvibes-widgets/trunk/.classpath 2008-11-28 04:38:56 UTC (rev 1464) @@ -18,15 +18,15 @@ - + - - - - + + + + Modified: netvibes-widgets/trunk/pom.xml =================================================================== --- netvibes-widgets/trunk/pom.xml 2008-11-28 04:37:59 UTC (rev 1463) +++ netvibes-widgets/trunk/pom.xml 2008-11-28 04:38:56 UTC (rev 1464) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:40:04 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:40:04 +0900 Subject: [pal-cvs 3730] [1465] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847204.620616.29999.nullmailer@users.sourceforge.jp> Revision: 1465 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1465 Author: shinsuke Date: 2008-11-28 13:40:04 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- notepad/trunk/.classpath notepad/trunk/pom.xml -------------- next part -------------- Modified: notepad/trunk/.classpath =================================================================== --- notepad/trunk/.classpath 2008-11-28 04:38:56 UTC (rev 1464) +++ notepad/trunk/.classpath 2008-11-28 04:40:04 UTC (rev 1465) @@ -30,11 +30,11 @@ - + - + Modified: notepad/trunk/pom.xml =================================================================== --- notepad/trunk/pom.xml 2008-11-28 04:38:56 UTC (rev 1464) +++ notepad/trunk/pom.xml 2008-11-28 04:40:04 UTC (rev 1465) @@ -162,7 +162,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:41:49 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:41:49 +0900 Subject: [pal-cvs 3731] [1466] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847309.240172.30635.nullmailer@users.sourceforge.jp> Revision: 1466 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1466 Author: shinsuke Date: 2008-11-28 13:41:49 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- scheduler/trunk/.classpath scheduler/trunk/pom.xml -------------- next part -------------- Modified: scheduler/trunk/.classpath =================================================================== --- scheduler/trunk/.classpath 2008-11-28 04:40:04 UTC (rev 1465) +++ scheduler/trunk/.classpath 2008-11-28 04:41:49 UTC (rev 1466) @@ -32,11 +32,11 @@ - + - + Modified: scheduler/trunk/pom.xml =================================================================== --- scheduler/trunk/pom.xml 2008-11-28 04:40:04 UTC (rev 1465) +++ scheduler/trunk/pom.xml 2008-11-28 04:41:49 UTC (rev 1466) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:43:24 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:43:24 +0900 Subject: [pal-cvs 3732] [1467] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847404.165183.31908.nullmailer@users.sourceforge.jp> Revision: 1467 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1467 Author: shinsuke Date: 2008-11-28 13:43:24 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- timecard/trunk/.classpath timecard/trunk/pom.xml -------------- next part -------------- Modified: timecard/trunk/.classpath =================================================================== --- timecard/trunk/.classpath 2008-11-28 04:41:49 UTC (rev 1466) +++ timecard/trunk/.classpath 2008-11-28 04:43:24 UTC (rev 1467) @@ -32,11 +32,11 @@ - + - + Modified: timecard/trunk/pom.xml =================================================================== --- timecard/trunk/pom.xml 2008-11-28 04:41:49 UTC (rev 1466) +++ timecard/trunk/pom.xml 2008-11-28 04:43:24 UTC (rev 1467) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:44:37 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:44:37 +0900 Subject: [pal-cvs 3733] [1468] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847477.462470.680.nullmailer@users.sourceforge.jp> Revision: 1468 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1468 Author: shinsuke Date: 2008-11-28 13:44:37 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- todolist/trunk/.classpath todolist/trunk/pom.xml -------------- next part -------------- Modified: todolist/trunk/.classpath =================================================================== --- todolist/trunk/.classpath 2008-11-28 04:43:24 UTC (rev 1467) +++ todolist/trunk/.classpath 2008-11-28 04:44:37 UTC (rev 1468) @@ -32,11 +32,11 @@ - + - + Modified: todolist/trunk/pom.xml =================================================================== --- todolist/trunk/pom.xml 2008-11-28 04:43:24 UTC (rev 1467) +++ todolist/trunk/pom.xml 2008-11-28 04:44:37 UTC (rev 1468) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 13:45:59 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 13:45:59 +0900 Subject: [pal-cvs 3734] [1469] use sastruts-portlet 1.0.0-rc4. Message-ID: <1227847559.150239.2157.nullmailer@users.sourceforge.jp> Revision: 1469 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1469 Author: shinsuke Date: 2008-11-28 13:45:59 +0900 (Fri, 28 Nov 2008) Log Message: ----------- use sastruts-portlet 1.0.0-rc4. Modified Paths: -------------- userinfo/trunk/.classpath userinfo/trunk/pom.xml -------------- next part -------------- Modified: userinfo/trunk/.classpath =================================================================== --- userinfo/trunk/.classpath 2008-11-28 04:44:37 UTC (rev 1468) +++ userinfo/trunk/.classpath 2008-11-28 04:45:59 UTC (rev 1469) @@ -32,11 +32,11 @@ - + - + Modified: userinfo/trunk/pom.xml =================================================================== --- userinfo/trunk/pom.xml 2008-11-28 04:44:37 UTC (rev 1468) +++ userinfo/trunk/pom.xml 2008-11-28 04:45:59 UTC (rev 1469) @@ -160,7 +160,7 @@ org.seasar.sastruts sa-struts-portlet - 1.0.0-rc3 + 1.0.0-rc4 org.apache.geronimo.specs From svnnotify ¡÷ sourceforge.jp Fri Nov 28 17:10:16 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 17:10:16 +0900 Subject: [pal-cvs 3735] [1470] refactoring, i18ned, fixed multithread issue. Message-ID: <1227859816.162710.3790.nullmailer@users.sourceforge.jp> Revision: 1470 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1470 Author: shinsuke Date: 2008-11-28 17:10:16 +0900 (Fri, 28 Nov 2008) Log Message: ----------- refactoring, i18ned, fixed multithread issue. Modified Paths: -------------- chat/trunk/.settings/org.eclipse.jdt.core.prefs chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java chat/trunk/src/main/resources/application.properties chat/trunk/src/main/resources/application_ja.properties chat/trunk/src/main/webapp/WEB-INF/portlet.xml chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp Added Paths: ----------- chat/trunk/.settings/org.eclipse.jdt.ui.prefs chat/trunk/src/main/java/jp/sf/pal/chat/ChatConstants.java chat/trunk/src/main/java/jp/sf/pal/chat/common/ chat/trunk/src/main/java/jp/sf/pal/chat/common/util/ chat/trunk/src/main/java/jp/sf/pal/chat/common/util/SAStrutsUtil.java chat/trunk/src/main/java/jp/sf/pal/chat/entity/ chat/trunk/src/main/java/jp/sf/pal/chat/entity/ChatData.java chat/trunk/src/main/java/jp/sf/pal/chat/util/ chat/trunk/src/main/java/jp/sf/pal/chat/util/ChatUtil.java Removed Paths: ------------- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java chat/trunk/src/main/webapp/WEB-INF/view/index.jsp -------------- next part -------------- Modified: chat/trunk/.settings/org.eclipse.jdt.core.prefs =================================================================== --- chat/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/.settings/org.eclipse.jdt.core.prefs 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,5 +1,261 @@ -#Thu Nov 20 08:56:15 JST 2008 +#Fri Nov 28 14:42:08 JST 2008 +eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.source=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert +org.eclipse.jdt.core.formatter.comment.line_length=80 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=80 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true Added: chat/trunk/.settings/org.eclipse.jdt.ui.prefs =================================================================== --- chat/trunk/.settings/org.eclipse.jdt.ui.prefs (rev 0) +++ chat/trunk/.settings/org.eclipse.jdt.ui.prefs 2008-11-28 08:10:16 UTC (rev 1470) @@ -0,0 +1,4 @@ +#Fri Nov 28 14:42:08 JST 2008 +eclipse.preferences.version=1 +formatter_profile=_PAL Project +formatter_settings_version=11 Added: chat/trunk/src/main/java/jp/sf/pal/chat/ChatConstants.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/ChatConstants.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/ChatConstants.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -0,0 +1,19 @@ +package jp.sf.pal.chat; + +public class ChatConstants { + + public static final String PREFIX = "jp.sf.pal.chat"; + + public static final String LOG_ATTRIBUTE_NAME = PREFIX + ".log"; + + public static final String LAST_SAVED = PREFIX + ".last_saved"; + + public static final String DEFAULT_FILE_DIR = "/WEB-INF/chatlog/"; + + public static final String DEFAULT_SCOPE = "default"; + + public static final int DEFAULT_SHOW_NUM = 10; + + public static final long SAVE_INTERVAL = 5L * 60L * 1000L; + +} Property changes on: chat/trunk/src/main/java/jp/sf/pal/chat/ChatConstants.java ___________________________________________________________________ Name: svn:eol-style + native Modified: chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatAction.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,74 +1,113 @@ /* - * Copyright 2004-2008 the Seasar Foundation and the Others. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language + * Copyright 2004-2008 the Seasar Foundation and the Others. Licensed under the + * Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law + * or agreed to in writing, software distributed under the License is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package jp.sf.pal.chat.action; +import java.io.Serializable; import java.text.DateFormat; +import java.text.MessageFormat; import java.util.Date; import java.util.LinkedList; +import java.util.Locale; +import java.util.ResourceBundle; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; +import jp.sf.pal.chat.ChatConstants; +import jp.sf.pal.chat.common.util.SAStrutsUtil; +import jp.sf.pal.chat.entity.ChatData; import jp.sf.pal.chat.form.ChatForm; +import jp.sf.pal.chat.util.ChatUtil; import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.StringUtils; +import org.seasar.framework.container.hotdeploy.HotdeployUtil; import org.seasar.struts.annotation.ActionForm; import org.seasar.struts.annotation.Execute; import org.seasar.struts.util.ResponseUtil; -public class ChatAction { - @Resource - @ActionForm - protected ChatForm chatForm; +public class ChatAction implements Serializable { - protected ChatLog chatLog = new ChatLog(); + private static final long serialVersionUID = -2040143852151855076L; - public ServletContext context; - public HttpServletRequest request; + @Resource + @ActionForm + protected ChatForm chatForm; - @Execute(validator = false) - public String index() { - return "index.jsp"; - } + public transient ServletContext context; - @Execute(validator = false) - public String chat() { - Date date = new Date(); - String d = DateFormat.getInstance().format(date); - String name = chatForm.name; - String msg = StringEscapeUtils.escapeHtml(chatForm.msg); - chatLog.loadLog(context); - chatLog.add((name + ": " + msg + " (" + d + ")"), context); - loadChat(); - return null; - } + public transient HttpServletRequest request; - @Execute(validator = false) - public String loadChat() { - LinkedList dataList = chatLog.loadLog(context); - if (dataList != null && dataList.size() != 0) { - StringBuffer buffer = new StringBuffer(""); - for(int i=0; (i < ChatConstants.DEFAULT_SHOW_NUM && i < dataList.size()) ;i++){ - buffer.append("
                                                    "); - buffer.append(dataList.get(i)); - } - ResponseUtil.write(buffer.toString()); - } - return null; - } + @Execute(validator = false) + public String index() { + chatForm.nameArg0 = SAStrutsUtil.getUserInfo(request, + "user.name.given", ""); + chatForm.nameArg1 = SAStrutsUtil.getUserInfo(request, + "user.name.family", ""); + chatForm.nameArg2 = SAStrutsUtil.getUserInfo(request, + "user.name.middle", ""); + if (StringUtils.isEmpty(chatForm.nameArg0) + && StringUtils.isEmpty(chatForm.nameArg1) + && StringUtils.isEmpty(chatForm.nameArg2)) { + chatForm.nameArg0 = SAStrutsUtil.getUserInfo(request, + "user.name.nickName", ""); + if (StringUtils.isEmpty(chatForm.nameArg0)) { + chatForm.nameArg0 = request.getRemoteUser(); + } + } + return "index.jsp"; + } + @Execute(validator = false) + public String chat() { + if (!StringUtils.isEmpty(chatForm.msg)) { + String msg = StringEscapeUtils.escapeHtml(chatForm.msg); + ChatUtil.add(ChatConstants.DEFAULT_SCOPE, chatForm.nameArg0, + chatForm.nameArg1, chatForm.nameArg2, msg, new Date(), + ChatConstants.DEFAULT_SHOW_NUM, context); + } + loadChat(); + return null; + } + + @Execute(validator = false) + public String loadChat() { + Locale locale = request.getLocale(); + ResourceBundle bundle = ResourceBundle.getBundle("application", locale); + MessageFormat nameFormat = new MessageFormat(bundle + .getString("display.name")); + DateFormat dateFormat = DateFormat.getDateTimeInstance( + DateFormat.SHORT, DateFormat.SHORT, locale); + + LinkedList dataList = ChatUtil.getChatLogList(context, + ChatConstants.DEFAULT_SCOPE); + if (dataList != null && !dataList.isEmpty()) { + StringBuilder buf = new StringBuilder("
                                                    "); + dataList = (LinkedList) HotdeployUtil + .rebuildValue(dataList); + for (ChatData chatData : dataList) { + buf.append(""); + } + buf.append("
                                                    "); + buf.append(nameFormat.format(new Object[] { + chatData.getNameArg0(), chatData.getNameArg1(), + chatData.getNameArg2() })); + buf.append(":"); + buf.append(chatData.getMsg()); + buf.append(" ("); + buf.append(dateFormat.format(chatData.getDate())); + buf.append(")
                                                    "); + ResponseUtil.write(buf.toString()); + } + return null; + } } Deleted: chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatConstants.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,13 +0,0 @@ -package jp.sf.pal.chat.action; - -public class ChatConstants { - - public static final String PREFIX = "jp.sf.pal.chat"; - public static final String LOG_ATTRIBUTE_NAME = PREFIX + ".log"; - public static final String LAST_SAVED = PREFIX + ".last_saved"; - public static final String DEFAULT_FILE_DIR = "/WEB-INF/chatlog"; - public static final String CHAT_LOG_FILE = DEFAULT_FILE_DIR + "/log"; - public static final int DEFAULT_SHOW_NUM = 10; - public static final long SAVE_INTERVAL = 5 * 60 * 1000; - -} Deleted: chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/ChatLog.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,76 +0,0 @@ -package jp.sf.pal.chat.action; - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.Date; -import java.util.LinkedList; - -import javax.servlet.ServletContext; - -public class ChatLog { - - private LinkedList chatLogList; - - public ChatLog() { - this.chatLogList = new LinkedList(); - } - - public synchronized LinkedList add(String msg, ServletContext context) { - loadLog(context); - chatLogList.addFirst(msg); - saveLog(context); - return chatLogList; - } - - public synchronized LinkedList loadLog(ServletContext context) { - chatLogList = (LinkedList) context - .getAttribute(ChatConstants.LOG_ATTRIBUTE_NAME); - if (chatLogList == null) { - try { - fileLoad(context); - } catch (Exception e) { - chatLogList = new LinkedList(); - } - } - return (LinkedList)chatLogList.clone(); - } - - private void saveLog(ServletContext context) { - context.setAttribute(ChatConstants.LOG_ATTRIBUTE_NAME, chatLogList); - Long last_saved = Long.decode("0"); - if (context.getAttribute(ChatConstants.LAST_SAVED) != null) { - last_saved = Long.decode((String)context.getAttribute(ChatConstants.LAST_SAVED)); - } - long now = new Date().getTime(); - if ((now - last_saved.longValue()) > ChatConstants.SAVE_INTERVAL) { - try { - fileSave(context); - } catch (Exception e) { - e.printStackTrace(); - } - context.setAttribute(ChatConstants.LAST_SAVED, Long.valueOf(now).toString()); - } - } - - private void fileSave(ServletContext context) throws Exception { - FileOutputStream fileOutputStream = new FileOutputStream(context - .getRealPath(ChatConstants.CHAT_LOG_FILE)); - ObjectOutputStream objectOutputStream = new ObjectOutputStream( - fileOutputStream); - objectOutputStream.writeObject(chatLogList); - objectOutputStream.close(); - fileOutputStream.close(); - } - - private void fileLoad(ServletContext context) throws Exception { - FileInputStream fileInputStream = new FileInputStream(context - .getRealPath(ChatConstants.CHAT_LOG_FILE)); - ObjectInputStream objectInputStream = new ObjectInputStream( - fileInputStream); - chatLogList = (LinkedList) objectInputStream.readObject(); - fileInputStream.close(); - objectInputStream.close(); - } -} Deleted: chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/java/jp/sf/pal/chat/action/IndexAction.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,26 +0,0 @@ -/* - * Copyright 2004-2008 the Seasar Foundation and the Others. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language - * governing permissions and limitations under the License. - */ -package jp.sf.pal.chat.action; - -import org.seasar.struts.annotation.Execute; - -public class IndexAction { - - @Execute(validator = false) - public String index() { - return "index.jsp"; - } -} Added: chat/trunk/src/main/java/jp/sf/pal/chat/common/util/SAStrutsUtil.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/common/util/SAStrutsUtil.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/common/util/SAStrutsUtil.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -0,0 +1,86 @@ +package jp.sf.pal.chat.common.util; + +import java.util.Map; + +import javax.portlet.PortletConfig; +import javax.portlet.PortletContext; +import javax.portlet.PortletRequest; +import javax.portlet.PortletSession; +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.seasar.struts.portlet.util.PortletUtil; +import org.seasar.struts.util.ActionMessagesUtil; + +public class SAStrutsUtil { + + public static PortletRequest getPortletRequest(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest; + } + return null; + } + + public static PortletConfig getPortletConfig(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig; + } + return null; + } + + public static PortletContext getPortletContext(HttpServletRequest request) { + PortletConfig portletConfig = (PortletConfig) request + .getAttribute(PortletUtil.PORTLET_CONFIG); + if (portletConfig != null) { + return portletConfig.getPortletContext(); + } + return null; + } + + public static String getRealPath(HttpServletRequest request, String path) { + PortletContext portletContext = getPortletContext(request); + if (portletContext != null) { + return portletContext.getRealPath(path); + } + return path; + } + + public static PortletSession getPortletSession(HttpServletRequest request) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getPortletSession(); + } + return null; + } + + public static void addMessage(HttpServletRequest request, String key) { + ActionMessages msgs = new ActionMessages(); + msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key)); + ActionMessagesUtil.saveMessages(request, msgs); + } + + public static String getRequestParameter(HttpServletRequest request, + String key) { + PortletRequest portletRequest = (PortletRequest) request + .getAttribute(PortletUtil.PORTLET_REQUEST); + if (portletRequest != null) { + return portletRequest.getParameter(key); + } + return null; + } + + public static String getUserInfo(HttpServletRequest request, String key, + String defaultValue) { + Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO); + String value = (userInfo != null) ? (String) userInfo.get(key) + : defaultValue; + return value != null ? value : defaultValue; + } + +} Property changes on: chat/trunk/src/main/java/jp/sf/pal/chat/common/util/SAStrutsUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: chat/trunk/src/main/java/jp/sf/pal/chat/entity/ChatData.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/entity/ChatData.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/entity/ChatData.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -0,0 +1,68 @@ +package jp.sf.pal.chat.entity; + +import java.io.Serializable; +import java.util.Date; + +public class ChatData implements Serializable { + + private static final long serialVersionUID = -4571748778046264211L; + + private Date date; + + private String nameArg0; + + private String nameArg1; + + private String nameArg2; + + private String msg; + + public ChatData(String nameArg0, String nameArg1, String nameArg2, + String msg, Date date) { + this.nameArg0 = nameArg0; + this.nameArg1 = nameArg1; + this.nameArg2 = nameArg2; + this.msg = msg; + this.date = date; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public String getNameArg0() { + return nameArg0; + } + + public void setNameArg0(String nameArg0) { + this.nameArg0 = nameArg0; + } + + public String getNameArg1() { + return nameArg1; + } + + public void setNameArg1(String nameArg1) { + this.nameArg1 = nameArg1; + } + + public String getNameArg2() { + return nameArg2; + } + + public void setNameArg2(String nameArg2) { + this.nameArg2 = nameArg2; + } +} Property changes on: chat/trunk/src/main/java/jp/sf/pal/chat/entity/ChatData.java ___________________________________________________________________ Name: svn:eol-style + native Modified: chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/java/jp/sf/pal/chat/form/ChatForm.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,6 +1,22 @@ package jp.sf.pal.chat.form; -public class ChatForm { - public String name; - public String msg; +import java.io.Serializable; + +import org.seasar.struts.annotation.Maxbytelength; + +public class ChatForm implements Serializable { + + private static final long serialVersionUID = 2574386315654611365L; + + @Maxbytelength(maxbytelength = 100) + public String nameArg0; + + @Maxbytelength(maxbytelength = 100) + public String nameArg1; + + @Maxbytelength(maxbytelength = 100) + public String nameArg2; + + @Maxbytelength(maxbytelength = 1000) + public String msg; } Added: chat/trunk/src/main/java/jp/sf/pal/chat/util/ChatUtil.java =================================================================== --- chat/trunk/src/main/java/jp/sf/pal/chat/util/ChatUtil.java (rev 0) +++ chat/trunk/src/main/java/jp/sf/pal/chat/util/ChatUtil.java 2008-11-28 08:10:16 UTC (rev 1470) @@ -0,0 +1,119 @@ +package jp.sf.pal.chat.util; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.Date; +import java.util.LinkedList; + +import javax.servlet.ServletContext; + +import jp.sf.pal.chat.ChatConstants; +import jp.sf.pal.chat.entity.ChatData; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class ChatUtil { + + public static LinkedList getChatLogList(ServletContext context, + String scope) { + Object obj = context.getAttribute(ChatConstants.LOG_ATTRIBUTE_NAME + + scope); + if (obj != null && obj instanceof LinkedList) { + LinkedList chatLogList = (LinkedList) obj; + if (chatLogList.isEmpty()) { + return (LinkedList) obj; + } + chatLogList = (LinkedList) HotdeployUtil + .rebuildValue(chatLogList); + ChatData chatData = chatLogList.getFirst(); + if (chatData instanceof ChatData) { + // check class + return (LinkedList) obj; + } + } + LinkedList chatLogList; + try { + chatLogList = loadFile(context + .getRealPath(ChatConstants.DEFAULT_FILE_DIR + scope)); + context.setAttribute(ChatConstants.LOG_ATTRIBUTE_NAME + scope, + chatLogList); + } catch (Exception e) { + chatLogList = new LinkedList(); + } + return chatLogList; + } + + public static void add(String scope, String nameArg0, String nameArg1, + String nameArg2, String msg, Date date, int maxSize, + ServletContext context) { + LinkedList chatLogList = getChatLogList(context, scope); + synchronized (chatLogList) { + chatLogList.addFirst(new ChatData(nameArg0, nameArg1, nameArg2, + msg, date)); + if (chatLogList.size() > maxSize) { + chatLogList.removeLast(); + } + saveLog(scope, chatLogList, context); + } + } + + private static void saveLog(String scope, LinkedList chatLogList, + ServletContext context) { + Long lastSaved = (Long) context.getAttribute(ChatConstants.LAST_SAVED); + if (lastSaved == null) { + lastSaved = Long.valueOf(0L); + } + + long now = new Date().getTime(); + if ((now - lastSaved.longValue()) > ChatConstants.SAVE_INTERVAL) { + try { + saveFile(context.getRealPath(ChatConstants.DEFAULT_FILE_DIR + + scope), chatLogList); + } catch (Exception e) { + } + context.setAttribute(ChatConstants.LAST_SAVED, Long.valueOf(now)); + } + } + + private static void saveFile(String file, LinkedList chatLogList) + throws IOException { + ObjectOutputStream objectOutputStream = null; + try { + objectOutputStream = new ObjectOutputStream(new FileOutputStream( + file)); + objectOutputStream.writeObject(chatLogList); + } catch (IOException e) { + throw e; + } finally { + if (objectOutputStream != null) { + try { + objectOutputStream.close(); + } catch (IOException e) { + } + } + } + } + + private static LinkedList loadFile(String file) + throws IOException, ClassNotFoundException { + ObjectInputStream objectInputStream = null; + try { + objectInputStream = new ObjectInputStream(new FileInputStream(file)); + return (LinkedList) objectInputStream.readObject(); + } catch (IOException e) { + throw e; + } catch (ClassNotFoundException e) { + throw e; + } finally { + if (objectInputStream != null) { + try { + objectInputStream.close(); + } catch (IOException e) { + } + } + } + } +} Property changes on: chat/trunk/src/main/java/jp/sf/pal/chat/util/ChatUtil.java ___________________________________________________________________ Name: svn:eol-style + native Modified: chat/trunk/src/main/resources/application.properties =================================================================== --- chat/trunk/src/main/resources/application.properties 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/resources/application.properties 2008-11-28 08:10:16 UTC (rev 1470) @@ -25,3 +25,11 @@ labels.message=Message labels.send=Send labels.load_now=Load Now + +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} + Modified: chat/trunk/src/main/resources/application_ja.properties =================================================================== --- chat/trunk/src/main/resources/application_ja.properties 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/resources/application_ja.properties 2008-11-28 08:10:16 UTC (rev 1470) @@ -25,3 +25,11 @@ labels.message=\u30e1\u30c3\u30bb\u30fc\u30b8 labels.send=\u9001\u4fe1 labels.load_now=\u8aad\u307f\u8fbc\u307f + +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} + Modified: chat/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-28 08:10:16 UTC (rev 1470) @@ -26,5 +26,21 @@ Chat + + Given name + user.name.given + + + Family name + user.name.family + + + Middle name + user.name.middle + + + User Nickname + user.name.nickName + Modified: chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/webapp/WEB-INF/view/chat/index.jsp 2008-11-28 08:10:16 UTC (rev 1470) @@ -11,6 +11,29 @@ + + +
                                                    @@ -29,7 +54,7 @@ @@ -39,5 +64,6 @@
                                                    + \ No newline at end of file Deleted: chat/trunk/src/main/webapp/WEB-INF/view/index.jsp =================================================================== --- chat/trunk/src/main/webapp/WEB-INF/view/index.jsp 2008-11-28 04:45:59 UTC (rev 1469) +++ chat/trunk/src/main/webapp/WEB-INF/view/index.jsp 2008-11-28 08:10:16 UTC (rev 1470) @@ -1,9 +0,0 @@ - - - -Dolteng Auto Generated - - -

                                                    Hello World!

                                                    - - \ No newline at end of file From svnnotify ¡÷ sourceforge.jp Fri Nov 28 22:36:14 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Fri, 28 Nov 2008 22:36:14 +0900 Subject: [pal-cvs 3736] [1471] added css, fixed access problem and sort order problem. Message-ID: <1227879374.230751.31775.nullmailer@users.sourceforge.jp> Revision: 1471 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1471 Author: shinsuke Date: 2008-11-28 22:36:13 +0900 (Fri, 28 Nov 2008) Log Message: ----------- added css, fixed access problem and sort order problem. Modified Paths: -------------- notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java notepad/trunk/src/main/resources/application.properties notepad/trunk/src/main/resources/application_ja.properties notepad/trunk/src/main/webapp/WEB-INF/portlet.xml notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp Added Paths: ----------- notepad/trunk/src/main/resources/jp/ notepad/trunk/src/main/resources/jp/sf/ notepad/trunk/src/main/resources/jp/sf/pal/ notepad/trunk/src/main/resources/jp/sf/pal/notepad/ notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/ notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor.properties notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor_ja.properties notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager.properties notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager_ja.properties notepad/trunk/src/main/webapp/css/ notepad/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/NotepadConstants.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -20,10 +20,12 @@ public static final Integer DEFAULT_CATEGORY_ID = Integer.valueOf(1); - public static final int SHARED_CATEGORY_ID = 2; + public static final String DEFAULT_CATEGORY = "D"; public static final String PUBLIC_CATEGORY = "P"; - public static final String PERSONAL_CATEGORY = "C"; + public static final String PRIVATE_CATEGORY = "R"; + public static final String SHARED_CATEGORY = "S"; + } Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/admin/NotepadAction.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -153,7 +153,7 @@ try { Notepad link = createLink(); notepadService.store(link); - NotepadUtil.addMessage(request, "success.create_link"); + NotepadUtil.addMessage(request, "success.create_notepad"); // reset edit page loadListPageParameters(); @@ -164,7 +164,7 @@ throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_create_link"); + throw new ActionMessagesException("errors.failed_to_create_notepad"); } } @@ -173,7 +173,7 @@ try { Notepad link = createLink(); notepadService.store(link); - NotepadUtil.addMessage(request, "success.update_link"); + NotepadUtil.addMessage(request, "success.update_notepad"); // reset edit page loadListPageParameters(); @@ -184,7 +184,7 @@ throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_update_link"); + throw new ActionMessagesException("errors.failed_to_update_notepad"); } } @@ -193,7 +193,7 @@ try { notepadService.disable(Long.parseLong(notepadForm.id), request .getRemoteUser()); - NotepadUtil.addMessage(request, "success.delete_link"); + NotepadUtil.addMessage(request, "success.delete_notepad"); // reset edit page loadListPageParameters(); @@ -204,7 +204,7 @@ throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_delete_link"); + throw new ActionMessagesException("errors.failed_to_delete_notepad"); } } @@ -214,10 +214,10 @@ Notepad link = notepadService.getNotepad(linkId); if (link == null) { // throw an exception - throw new ActionMessagesException("errors.could_not_find_link", + throw new ActionMessagesException("errors.could_not_find_notepad", new Object[] { linkId }); } - notepadDxo.convertFromLinkToForm(link, notepadForm); + notepadDxo.convertFromNotepadToForm(link, notepadForm); } @@ -233,7 +233,7 @@ link.setUpdatedBy(remoteUser); link.setCreatedBy(remoteUser); } - notepadDxo.convertFromFormToLink(notepadForm, link); + notepadDxo.convertFromFormToNotepad(notepadForm, link); return link; } Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/action/user/NotepadAction.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -28,8 +28,6 @@ private static final Log log = LogFactory.getLog(NotepadAction.class); - public List categoryItems; - // for list public List notepadItems; @@ -58,8 +56,6 @@ notepadPager.setCreatedBy(username); notepadItems = notepadService.getNotepadList(notepadPager); - categoryItems = categoryService.getCategoryList(username); - return "index.jsp"; } @@ -93,8 +89,6 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); return "edit.jsp"; } @@ -107,13 +101,10 @@ notepadForm.mode }); } - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); - loadLink(); + loadNotepad(); return "confirm.jsp"; } @@ -124,95 +115,83 @@ notepadForm.initialize(); notepadForm.mode = NotepadConstants.CREATE_MODE; - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); return "edit.jsp"; } - @Execute(validator = false, input = "error.jsp") + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") public String editpage() { notepadForm.mode = NotepadConstants.EDIT_MODE; - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); - loadLink(); + loadNotepad(); return "edit.jsp"; } @Execute(validator = true, input = "edit.jsp") public String confirm() { - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp") + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") public String deletepage() { notepadForm.mode = NotepadConstants.DELETE_MODE; - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); - loadLink(); + loadNotepad(); return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") - public String moveup() { + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { if (notepadForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Notepad link = notepadService - .getNotepad(Long.parseLong(notepadForm.id)); - if (link == null) { - throw new ActionMessagesException("errors.could_not_find_link", + Notepad notepad = notepadService.getNotepad(Long + .parseLong(notepadForm.id)); + if (notepad == null) { + throw new ActionMessagesException("errors.could_not_find_notepad", new Object[] { notepadForm.id }); } try { - notepadService.moveUp(link); - NotepadUtil.addMessage(request, "success.move_link_up"); + notepadService.moveDown(notepad); + NotepadUtil.addMessage(request, "success.move_notepad_down"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_update_link"); + throw new ActionMessagesException("errors.failed_to_update_notepad"); } return displayList(); } - @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") - public String movedown() { + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { if (notepadForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } - Notepad link = notepadService - .getNotepad(Long.parseLong(notepadForm.id)); - if (link == null) { - throw new ActionMessagesException("errors.could_not_find_link", + Notepad notepad = notepadService.getNotepad(Long + .parseLong(notepadForm.id)); + if (notepad == null) { + throw new ActionMessagesException("errors.could_not_find_notepad", new Object[] { notepadForm.id }); } try { - notepadService.moveDown(link); - NotepadUtil.addMessage(request, "success.move_link_down"); + notepadService.moveUp(notepad); + NotepadUtil.addMessage(request, "success.move_notepad_up"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_update_link"); + throw new ActionMessagesException("errors.failed_to_update_notepad"); } return displayList(); } @@ -220,9 +199,9 @@ @Execute(validator = true, input = "edit.jsp") public String create() { try { - Notepad link = createLink(); - notepadService.store(link); - NotepadUtil.addMessage(request, "success.create_link"); + Notepad notepad = createNotepad(); + notepadService.store(notepad); + NotepadUtil.addMessage(request, "success.create_notepad"); // reset edit page loadListPageParameters(); @@ -233,19 +212,16 @@ throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_create_link"); - } finally { - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); + throw new ActionMessagesException("errors.failed_to_create_notepad"); } } @Execute(validator = true, input = "edit.jsp") public String update() { try { - Notepad link = createLink(); + Notepad link = createNotepad(); notepadService.store(link); - NotepadUtil.addMessage(request, "success.update_link"); + NotepadUtil.addMessage(request, "success.update_notepad"); // reset edit page loadListPageParameters(); @@ -256,10 +232,7 @@ throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_update_link"); - } finally { - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); + throw new ActionMessagesException("errors.failed_to_update_notepad"); } } @@ -268,7 +241,7 @@ try { notepadService.disable(Long.parseLong(notepadForm.id), request .getRemoteUser()); - NotepadUtil.addMessage(request, "success.delete_link"); + NotepadUtil.addMessage(request, "success.delete_notepad"); // reset edit page loadListPageParameters(); @@ -279,38 +252,38 @@ throw e; } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_delete_link"); + throw new ActionMessagesException("errors.failed_to_delete_notepad"); } } - private void loadLink() { - Long linkId = Long.parseLong(notepadForm.id); + private void loadNotepad() { + Long notepadId = Long.parseLong(notepadForm.id); - Notepad link = notepadService.getNotepad(linkId); - if (link == null) { + Notepad notepad = notepadService.getNotepad(notepadId); + if (notepad == null) { // throw an exception - throw new ActionMessagesException("errors.could_not_find_link", - new Object[] { linkId }); + throw new ActionMessagesException("errors.could_not_find_notepad", + new Object[] { notepadId }); } - notepadDxo.convertFromLinkToForm(link, notepadForm); + notepadDxo.convertFromNotepadToForm(notepad, notepadForm); } - private Notepad createLink() { - Notepad link; + private Notepad createNotepad() { + Notepad notepad; if (notepadForm.mode == NotepadConstants.EDIT_MODE) { - Long linkId = Long.parseLong(notepadForm.id); - link = notepadService.getNotepad(linkId); - link.setUpdatedBy(request.getRemoteUser()); + Long notepadId = Long.parseLong(notepadForm.id); + notepad = notepadService.getNotepad(notepadId); + notepad.setUpdatedBy(request.getRemoteUser()); } else { - link = new Notepad(); + notepad = new Notepad(); String remoteUser = request.getRemoteUser(); - link.setUpdatedBy(remoteUser); - link.setCreatedBy(remoteUser); + notepad.setUpdatedBy(remoteUser); + notepad.setCreatedBy(remoteUser); } - notepadDxo.convertFromFormToLink(notepadForm, link); + notepadDxo.convertFromFormToNotepad(notepadForm, notepad); - return link; + return notepad; } private void loadListPageParameters() { @@ -319,6 +292,32 @@ private void loadDetailsPageParameters() { } + public List getCategoryItems() { + String username = request.getRemoteUser(); + return categoryService.getCategoryList(username); + } + + public List getEditableCategoryItems() { + String username = request.getRemoteUser(); + return categoryService.getEditableCategoryList(username); + } + + public boolean isEditable() { + String type = notepadForm.type; + if (type != null) { + if (NotepadConstants.PRIVATE_CATEGORY.equals(type) + || NotepadConstants.DEFAULT_CATEGORY.equals(type)) { + String userId = request.getRemoteUser(); + if (userId != null && userId.equals(notepadForm.createdBy)) { + return true; + } + } else if (NotepadConstants.SHARED_CATEGORY.equals(type)) { + return true; + } + } + return false; + } + /** * @return the request */ Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/db/exentity/UserInfo.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -1,5 +1,7 @@ package jp.sf.pal.notepad.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of USER_INFO. *

                                                    @@ -14,4 +16,33 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } + } Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/dxo/NotepadDxo.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -18,7 +18,6 @@ @ConversionRule("id : id" // + ", title : title" // + ", content : content" // - + ", type : type" // + ", sortOrder : sortOrder" // + ", categoryId : categoryId" // + ", createdTime : createdTime" // @@ -28,8 +27,8 @@ + ", deletedTime : deletedTime" // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // - ) - public void convertFromLinkToForm(Notepad notepad, NotepadForm form); + + ", type : notepadCategory.type") + public void convertFromNotepadToForm(Notepad notepad, NotepadForm form); @ExcludeNull @TimestampPattern("yyyy/MM/dd HH:mm:ss") @@ -47,7 +46,7 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToLink(NotepadForm form, Notepad notepad); + public void convertFromFormToNotepad(NotepadForm form, Notepad notepad); @ExcludeNull @DatePattern("yyyy/MM/dd") @@ -55,7 +54,6 @@ @ConversionRule("id : id" // + ", title : title" // + ", content : content" // - + ", type : type" // + ", sortOrder : sortOrder" // + ", categoryId : categoryId" // + ", createdTime : createdTime" // @@ -66,7 +64,7 @@ + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromLinkToForm(Notepad notepad, + public void convertFromNotepadToForm(Notepad notepad, jp.sf.pal.notepad.form.admin.NotepadForm form); @ExcludeNull @@ -85,6 +83,6 @@ // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // ) - public void convertFromFormToLink( + public void convertFromFormToNotepad( jp.sf.pal.notepad.form.admin.NotepadForm form, Notepad notepad); } Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/CategoryService.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -2,7 +2,6 @@ import java.io.Serializable; import java.sql.Timestamp; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -10,6 +9,7 @@ import jp.sf.pal.notepad.common.dxo.PagerDxo; import jp.sf.pal.notepad.common.util.PagingResultBeanWrapper; import jp.sf.pal.notepad.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.notepad.db.allcommon.cbean.UnionQuery; import jp.sf.pal.notepad.db.cbean.NotepadCategoryCB; import jp.sf.pal.notepad.db.cbean.UserInfoCB; import jp.sf.pal.notepad.db.exbhv.NotepadCategoryBhv; @@ -193,29 +193,50 @@ } } - public List getCategoryList(String createdBy) { + public List getCategoryList(final String createdBy) { - List notepadCategoryList = new ArrayList(); - NotepadCategoryCB cb = new NotepadCategoryCB(); // setup cb.query().setDeletedBy_IsNull(); - cb.query().setType_Equal(NotepadConstants.PUBLIC_CATEGORY); + cb.query().setType_NotEqual(NotepadConstants.PRIVATE_CATEGORY); + cb.unionAll(new UnionQuery() { + public void query(NotepadCategoryCB unionCB) { + unionCB.query().setDeletedBy_IsNull(); + unionCB.query() + .setType_Equal(NotepadConstants.PRIVATE_CATEGORY); + unionCB.query().setCreatedBy_Equal(createdBy); + } + }); + + cb.query().addOrderBy_Type_Asc(); cb.query().addOrderBy_SortOrder_Asc(); - notepadCategoryList.addAll(notepadCategoryBhv.selectList(cb)); + return notepadCategoryBhv.selectList(cb); + } - cb = new NotepadCategoryCB(); - cb.query().setCreatedBy_Equal(createdBy); + public List getEditableCategoryList(final String createdBy) { + + NotepadCategoryCB cb = new NotepadCategoryCB(); + + // setup + cb.query().setDeletedBy_IsNull(); - cb.query().setType_Equal(NotepadConstants.PERSONAL_CATEGORY); + cb.query().setType_Equal(NotepadConstants.SHARED_CATEGORY); + cb.unionAll(new UnionQuery() { + public void query(NotepadCategoryCB unionCB) { + unionCB.query().setDeletedBy_IsNull(); + unionCB.query() + .setType_Equal(NotepadConstants.PRIVATE_CATEGORY); + unionCB.query().setCreatedBy_Equal(createdBy); + } + }); + + cb.query().addOrderBy_Type_Asc(); cb.query().addOrderBy_SortOrder_Asc(); - notepadCategoryList.addAll(notepadCategoryBhv.selectList(cb)); - - return notepadCategoryList; + return notepadCategoryBhv.selectList(cb); } public NotepadCategoryBhv getNotepadCategoryBhv() { Modified: notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java =================================================================== --- notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/java/jp/sf/pal/notepad/service/NotepadService.java 2008-11-28 13:36:13 UTC (rev 1471) @@ -15,6 +15,7 @@ import jp.sf.pal.notepad.db.exbhv.NotepadContentBhv; import jp.sf.pal.notepad.db.exbhv.UserInfoBhv; import jp.sf.pal.notepad.db.exentity.Notepad; +import jp.sf.pal.notepad.db.exentity.NotepadCategory; import jp.sf.pal.notepad.db.exentity.UserInfo; import jp.sf.pal.notepad.pager.NotepadPager; @@ -33,6 +34,8 @@ private transient UserInfoBhv userInfoBhv; + private CategoryService categoryService; + private void initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); @@ -50,28 +53,37 @@ } } - public List getNotepadList(NotepadPager linkPager) { + public List getNotepadList(NotepadPager notepadPager) { - HotdeployUtil.rebuildValue(linkPager); + HotdeployUtil.rebuildValue(notepadPager); NotepadCB cb = new NotepadCB(); - cb.fetchFirst(linkPager.getPageSize()); - cb.fetchPage(linkPager.getCurrentPageNumber()); + cb.fetchFirst(notepadPager.getPageSize()); + cb.fetchPage(notepadPager.getCurrentPageNumber()); // setup + cb.setupSelect_UserInfoByCreatedBy(); + cb.setupSelect_NotepadCategory(); + cb.specify().specifyNotepadCategory().columnType(); - if (linkPager.getCreatedBy() != null) { - if (linkPager.getCategoryId() != null) { - if (linkPager.getCategoryId() != NotepadConstants.SHARED_CATEGORY_ID) { - cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); + if (notepadPager.getCreatedBy() != null) { + if (notepadPager.getCategoryId() != null) { + NotepadCategory notepadCategory = categoryService + .getCategory(notepadPager.getCategoryId()); + if (NotepadConstants.DEFAULT_CATEGORY.equals(notepadCategory + .getType())) { + cb.query().setCreatedBy_Equal(notepadPager.getCreatedBy()); + } else if (NotepadConstants.PRIVATE_CATEGORY + .equals(notepadCategory.getType())) { + cb.query().setCreatedBy_Equal(notepadPager.getCreatedBy()); } } else { - cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); + cb.query().setCreatedBy_Equal(notepadPager.getCreatedBy()); } } - if (linkPager.getCategoryId() != null) { - cb.query().setCategoryId_Equal(linkPager.getCategoryId()); + if (notepadPager.getCategoryId() != null) { + cb.query().setCategoryId_Equal(notepadPager.getCategoryId()); } cb.query().setDeletedBy_IsNull(); @@ -80,9 +92,10 @@ PagingResultBean messageList = notepadBhv.selectPage(cb); // update pager - pagerDxo.convert(new PagingResultBeanWrapper(messageList), linkPager); + pagerDxo + .convert(new PagingResultBeanWrapper(messageList), notepadPager); messageList.setPageRangeSize(5); - linkPager.setPageNumberList(messageList.pageRange() + notepadPager.setPageNumberList(messageList.pageRange() .createPageNumberList()); return messageList; @@ -93,6 +106,8 @@ // setup cb.setupSelect_NotepadContentAsOne(); + cb.setupSelect_NotepadCategory(); + cb.specify().specifyNotepadCategory().columnType(); cb.query().setId_Equal(id); return notepadBhv.selectEntity(cb); @@ -120,11 +135,11 @@ cb.query().setCreatedBy_Equal(notepad.getCreatedBy()); cb.query().setDeletedBy_IsNull(); cb.query().addOrderBy_SortOrder_Desc(); - List LinkList = notepadBhv.selectPage(cb); + List notepadList = notepadBhv.selectPage(cb); // TODO mt-safe int sortOrder = 1; - if (LinkList != null && !LinkList.isEmpty()) { - sortOrder = LinkList.get(0).getSortOrder() + 1; + if (notepadList != null && !notepadList.isEmpty()) { + sortOrder = notepadList.get(0).getSortOrder() + 1; } notepad.setSortOrder(sortOrder); @@ -140,59 +155,83 @@ } - public void disable(Long linkId, String name) { + public void disable(Long notepadId, String name) { // not delete NotepadCB cb = new NotepadCB(); - cb.query().setId_Equal(linkId); - Notepad link = notepadBhv.selectEntity(cb); + cb.query().setId_Equal(notepadId); + Notepad notepad = notepadBhv.selectEntity(cb); // TODO throw an exception - link.setDeletedBy(name); - link.setDeletedTime(new Timestamp(new Date().getTime())); - notepadBhv.update(link); + notepad.setDeletedBy(name); + notepad.setDeletedTime(new Timestamp(new Date().getTime())); + notepadBhv.update(notepad); } - public void moveUp(Notepad link) { + public void moveDown(Notepad notepad) { NotepadCB cb = new NotepadCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_GreaterThan(link.getSortOrder()); + cb.query().setId_NotEqual(notepad.getId()); + cb.query().setSortOrder_GreaterEqual(notepad.getSortOrder()); cb.query().addOrderBy_SortOrder_Asc(); - List linkList = notepadBhv.selectPage(cb); - if (linkList != null && !linkList.isEmpty()) { - Notepad targetLink = linkList.get(0); - Integer sortOrder = targetLink.getSortOrder(); - targetLink.setSortOrder(link.getSortOrder()); - link.setSortOrder(sortOrder); - notepadBhv.update(targetLink); - notepadBhv.update(link); + cb.query().setCategoryId_Equal(notepad.getCategoryId()); + if (NotepadConstants.DEFAULT_CATEGORY.equals(notepad + .getNotepadCategory().getType())) { + cb.query().setCreatedBy_Equal(notepad.getCreatedBy()); + } + List notepadList = notepadBhv.selectPage(cb); + if (notepadList != null && !notepadList.isEmpty()) { + Notepad targetNotepad = notepadList.get(0); + Integer sortOrder1 = targetNotepad.getSortOrder(); + Integer sortOrder2 = notepad.getSortOrder(); + if (sortOrder1.intValue() == sortOrder2.intValue()) { + targetNotepad.setSortOrder(sortOrder2); + notepad.setSortOrder(sortOrder1 + 1); + } else { + targetNotepad.setSortOrder(sortOrder2); + notepad.setSortOrder(sortOrder1); + } + notepadBhv.update(targetNotepad); + notepadBhv.update(notepad); } else { // TODO replace with CommonException throw new ActionMessagesException( - "errors.could_not_find_link_for_moving_up"); + "errors.could_not_find_notepad_for_moving_up"); } } - public void moveDown(Notepad link) { + public void moveUp(Notepad notepad) { NotepadCB cb = new NotepadCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_LessThan(link.getSortOrder()); + cb.query().setId_NotEqual(notepad.getId()); + cb.query().setSortOrder_LessEqual(notepad.getSortOrder()); cb.query().addOrderBy_SortOrder_Desc(); - List linkList = notepadBhv.selectPage(cb); - if (linkList != null && !linkList.isEmpty()) { - Notepad targetLink = linkList.get(0); - Integer sortOrder = targetLink.getSortOrder(); - targetLink.setSortOrder(link.getSortOrder()); - link.setSortOrder(sortOrder); - notepadBhv.update(targetLink); - notepadBhv.update(link); + cb.query().setCategoryId_Equal(notepad.getCategoryId()); + if (NotepadConstants.DEFAULT_CATEGORY.equals(notepad + .getNotepadCategory().getType())) { + cb.query().setCreatedBy_Equal(notepad.getCreatedBy()); + } + List notepadList = notepadBhv.selectPage(cb); + if (notepadList != null && !notepadList.isEmpty()) { + Notepad targetNotepad = notepadList.get(0); + Integer sortOrder1 = targetNotepad.getSortOrder(); + Integer sortOrder2 = notepad.getSortOrder(); + if (sortOrder1.intValue() == sortOrder2.intValue()) { + targetNotepad.setSortOrder(sortOrder2 + 1); + notepad.setSortOrder(sortOrder1); + } else { + targetNotepad.setSortOrder(sortOrder2); + notepad.setSortOrder(sortOrder1); + } + notepadBhv.update(targetNotepad); + notepadBhv.update(notepad); } else { // TODO replace with CommonException throw new ActionMessagesException( - "errors.could_not_find_link_for_moving_down"); + "errors.could_not_find_notepad_for_moving_down"); } } @@ -228,4 +267,12 @@ this.userInfoBhv = userInfoBhv; } + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + } Modified: notepad/trunk/src/main/resources/application.properties =================================================================== --- notepad/trunk/src/main/resources/application.properties 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/resources/application.properties 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,6 +5,13 @@ msg.header=

                                                      msg.footer=
                                                    +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. @@ -35,9 +42,9 @@ labels.category_ID=Category ID labels.category_unselected=(Unselected) labels.category_shared=(Shared) -labels.create_link=Create Note -labels.create_link_2=Create Note -labels.confirm_link=Confirm Creating Note +labels.create_notepad=Create Note +labels.create_notepad_2=Create Note +labels.confirm_notepad=Confirm Creating Note labels.detail=Detail labels.create=Create labels.update=Update @@ -65,11 +72,11 @@ success.delete_category=Deleted the category information. success.move_category_up=Moved the category information up. success.move_category_down=Moved the category information down. -success.create_link=Created a link information. -success.update_link=Updated the link information. -success.delete_link=Deleted the link information. -success.move_link_up=Moved the link information up. -success.move_link_down=Moved the link information down. +success.create_notepad=Created a link information. +success.update_notepad=Updated the link information. +success.delete_notepad=Deleted the link information. +success.move_notepad_up=Moved the link information up. +success.move_notepad_down=Moved the link information down. errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). errors.failed_to_create_category=Failed to create a new category information. @@ -80,9 +87,13 @@ errors.could_not_find_category_for_moving_up=Could not find the category information for moving it up. errors.could_not_find_category_for_moving_down=Could not find the category information for moving it down. errors.invalid_category_id=Invalid category information. -errors.failed_to_create_link=Failed to create a new link information. -errors.failed_to_update_link=Failed to update the link information. -errors.failed_to_delete_link=Failed to delete the link information. -errors.could_not_find_link=Could not find the link information({0}). -errors.could_not_find_link_for_moving_up=Could not find the link information for moving it up. -errors.could_not_find_link_for_moving_down=Could not find the link information for moving it down. +errors.failed_to_create_notepad=Failed to create a new link information. +errors.failed_to_update_notepad=Failed to update the link information. +errors.failed_to_delete_notepad=Failed to delete the link information. +errors.could_not_find_notepad=Could not find the link information({0}). +errors.could_not_find_notepad_for_moving_up=Could not find the link information for moving it up. +errors.could_not_find_notepad_for_moving_down=Could not find the link information for moving it down. + +labels.createdBy=Created By +labels.default_category=Default +labels.shared=Shared Modified: notepad/trunk/src/main/resources/application_ja.properties =================================================================== --- notepad/trunk/src/main/resources/application_ja.properties 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/resources/application_ja.properties 2008-11-28 13:36:13 UTC (rev 1471) @@ -1,3 +1,10 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 @@ -28,9 +35,9 @@ labels.category_ID=\u30ab\u30c6\u30b4\u30eaID labels.category_unselected=(\u672a\u5206\u985e) labels.category_shared=(\u5171\u6709) -labels.create_link=\u30ce\u30fc\u30c8\u4f5c\u6210 -labels.create_link_2=\u30ce\u30fc\u30c8\u306e\u767b\u9332 -labels.confirm_link=\u30ce\u30fc\u30c8\u306e\u767b\u9332\u306e\u78ba\u8a8d +labels.create_notepad=\u30e1\u30e2\u4f5c\u6210 +labels.create_notepad_2=\u30e1\u30e2\u306e\u767b\u9332 +labels.confirm_notepad=\u30e1\u30e2\u306e\u767b\u9332\u306e\u78ba\u8a8d labels.detail=\u8a73\u7d30 labels.create=\u767b\u9332 labels.update=\u66f4\u65b0 @@ -52,18 +59,18 @@ labels.to_next=\u6b21\u3078 labels.to_back=\u524d\u3078 labels.create_category=\u30ab\u30c6\u30b4\u30ea\u4f5c\u6210 -labels.link_list=\u30ce\u30fc\u30c8\u4e00\u89a7 +labels.link_list=\u30e1\u30e2\u4e00\u89a7 success.create_category=\u30ab\u30c6\u30b4\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 success.update_category=\u30ab\u30c6\u30b4\u30ea\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 success.delete_category=\u30ab\u30c6\u30b4\u30ea\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 success.move_category_up=\u4e0a\u306b\u30ab\u30c6\u30b4\u30ea\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 success.move_category_down=\u4e0b\u306b\u30ab\u30c6\u30b4\u30ea\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 -success.create_link=\u30ce\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f -success.update_link=\u30ce\u30fc\u30c8\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 -success.delete_link=\u30ce\u30fc\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 -success.move_link_up=\u4e0a\u306b\u30ce\u30fc\u30c8\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 -success.move_link_down=\u4e0b\u306b\u30ce\u30fc\u30c8\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.create_notepad=\u30e1\u30e2\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f +success.update_notepad=\u30e1\u30e2\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002 +success.delete_notepad=\u30e1\u30e2\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002 +success.move_notepad_up=\u4e0a\u306b\u30e1\u30e2\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 +success.move_notepad_down=\u4e0b\u306b\u30e1\u30e2\u3092\u79fb\u52d5\u3057\u307e\u3057\u305f\u3002 errors.invalid.mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059) errors.failed_to_create_category=\u30ab\u30c6\u30b4\u30ea\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 @@ -74,9 +81,13 @@ errors.could_not_find_category_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.could_not_find_category_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ab\u30c6\u30b4\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.invalid_category_id=\u6b63\u3057\u304f\u306a\u3044\u30ab\u30c6\u30b4\u30ea\u60c5\u5831\u3067\u3059\u3002 -errors.failed_to_create_link=\u30ce\u30fc\u30c8\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.failed_to_update_link=\u30ce\u30fc\u30c8\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.failed_to_delete_link=\u30ce\u30fc\u30c8\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 -errors.could_not_find_link=\u30ce\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}) -errors.could_not_find_link_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ce\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -errors.could_not_find_link_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ce\u30fc\u30c8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.failed_to_create_notepad=\u30e1\u30e2\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_update_notepad=\u30e1\u30e2\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.failed_to_delete_notepad=\u30e1\u30e2\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 +errors.could_not_find_notepad=\u30e1\u30e2\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002({0}) +errors.could_not_find_notepad_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30e1\u30e2\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 +errors.could_not_find_notepad_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30e1\u30e2\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 + +labels.createdBy=\u4f5c\u6210\u8005 +labels.default_category=\u30c7\u30d5\u30a9\u30eb\u30c8 +labels.shared=\u5171\u6709 \ No newline at end of file Added: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor.properties =================================================================== Property changes on: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor.properties ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor_ja.properties =================================================================== --- notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor_ja.properties (rev 0) +++ notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor_ja.properties 2008-11-28 13:36:13 UTC (rev 1471) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30e1\u30e2\u5e33 +javax.portlet.short-title=\u30e1\u30e2\u5e33 +javax.portlet.keywords=\u30e1\u30e2\u5e33 Property changes on: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadEditor_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager.properties =================================================================== Property changes on: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager_ja.properties =================================================================== --- notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager_ja.properties (rev 0) +++ notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager_ja.properties 2008-11-28 13:36:13 UTC (rev 1471) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30e1\u30e2\u5e33\u7ba1\u7406 +javax.portlet.short-title=\u30e1\u30e2\u5e33\u7ba1\u7406 +javax.portlet.keywords=\u7ba1\u7406 Property changes on: notepad/trunk/src/main/resources/jp/sf/pal/notepad/resources/NotepadManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: notepad/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-28 13:36:13 UTC (rev 1471) @@ -18,11 +18,11 @@ en ja - + jp.sf.pal.notepad.resources.NotepadEditor Notepad Notepad - Notepad,URL + Notepad @@ -43,11 +43,11 @@ en ja - + jp.sf.pal.notepad.resources.NotepadManager Notepad Manager Notepads - Notepad,URL + Notepad Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -24,8 +39,10 @@
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -26,8 +41,10 @@
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/error.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/category/index.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -14,7 +29,7 @@
                                                    " - onclick="$('#contents').load('${f:url('chat')}',{'name':'<%= request.getRemoteUser() %>','msg':$('#message')[0].value}); + onclick="$('#contents').load('${f:url('chat')}',{'nameArg0':'${f:u(nameArg0)}','nameArg1':'${f:u(nameArg1)}','nameArg2':'${f:u(nameArg2)}','msg':$('#message')[0].value}); $('#message')[0].value= ''; loadChat()" /> " onclick="loadChat()" />
                                                    + - + +
                                                    + - + +
                                                    - + Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -14,7 +29,7 @@
                                                    - + @@ -22,7 +37,7 @@ - + Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/error.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/admin/notepad/index.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,12 +5,27 @@ -
                                                    + +
                                                    - + |
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -21,8 +36,9 @@
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -22,8 +37,9 @@
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/error.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -17,13 +32,13 @@
                                                    - + - + + - + + Added: notepad/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- notepad/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ notepad/trunk/src/main/webapp/css/pal-extension.css 2008-11-28 13:36:13 UTC (rev 1471) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.notepad-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.notepad-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.notepad-portlet .form-table thead { +margin:0; +padding:0; +} + +.notepad-portlet .form-table tbody { +margin:0; +padding:0; +} + +.notepad-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.notepad-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.notepad-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.notepad-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.notepad-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.notepad-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.notepad-portlet .list-table thead { +margin:0; +padding:0; +} + +.notepad-portlet .list-table tbody { +margin:0; +padding:0; +} + +.notepad-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.notepad-portlet .list-table .row1 { +background-color: #ffffff; +} + +.notepad-portlet .list-table .row2 { +background-color: #fffff8; +} + +.notepad-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.notepad-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.notepad-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.notepad-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.notepad-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.notepad-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.notepad-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.notepad-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.notepad-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.notepad-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.notepad-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.notepad-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.notepad-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.notepad-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: notepad/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Sat Nov 29 08:38:27 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 29 Nov 2008 08:38:27 +0900 Subject: [pal-cvs 3737] [1472] fixed permission problem and sort order problem. Message-ID: <1227915507.389430.20699.nullmailer@users.sourceforge.jp> Revision: 1472 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1472 Author: shinsuke Date: 2008-11-29 08:38:27 +0900 (Sat, 29 Nov 2008) Log Message: ----------- fixed permission problem and sort order problem. Modified Paths: -------------- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java bookmark/trunk/src/main/resources/application.properties bookmark/trunk/src/main/resources/application_ja.properties bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp -------------- next part -------------- Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/BookmarkConstants.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -18,12 +18,13 @@ public static final String FALSE = "F"; + // TODO remove public static final Integer DEFAULT_CATEGORY_ID = Integer.valueOf(1); - public static final int SHARED_CATEGORY_ID = 2; + public static final String DEFAULT_CATEGORY = "D"; public static final String PUBLIC_CATEGORY = "P"; - public static final String PERSONAL_CATEGORY = "C"; + public static final String PRIVATE_CATEGORY = "R"; } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/action/user/LinkAction.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -28,8 +28,6 @@ private static final Log log = LogFactory.getLog(LinkAction.class); - public List categoryItems; - // for list public List linkItems; @@ -58,8 +56,6 @@ linkPager.setCreatedBy(username); linkItems = linkService.getLinkList(linkPager); - categoryItems = categoryService.getCategoryList(username); - return "index.jsp"; } @@ -93,8 +89,6 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); return "edit.jsp"; } @@ -107,9 +101,6 @@ linkForm.mode }); } - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); @@ -124,9 +115,6 @@ linkForm.initialize(); linkForm.mode = BookmarkConstants.CREATE_MODE; - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); @@ -137,9 +125,6 @@ public String editpage() { linkForm.mode = BookmarkConstants.EDIT_MODE; - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); @@ -150,9 +135,6 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - return "confirm.jsp"; } @@ -160,9 +142,6 @@ public String deletepage() { linkForm.mode = BookmarkConstants.DELETE_MODE; - String username = request.getRemoteUser(); - categoryItems = categoryService.getCategoryList(username); - // update edit page loadDetailsPageParameters(); @@ -171,8 +150,8 @@ return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") - public String moveup() { + @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") + public String movedown() { if (linkForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } @@ -182,8 +161,8 @@ new Object[] { linkForm.id }); } try { - linkService.moveUp(link); - BookmarkUtil.addMessage(request, "success.move_link_up"); + linkService.moveDown(link); + BookmarkUtil.addMessage(request, "success.move_link_down"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { @@ -193,8 +172,8 @@ return displayList(); } - @Execute(validator = false, input = "error.jsp", urlPattern = "movedown/{id}") - public String movedown() { + @Execute(validator = false, input = "error.jsp", urlPattern = "moveup/{id}") + public String moveup() { if (linkForm.id == null) { throw new ActionMessagesException("errors.invalid.id"); } @@ -204,8 +183,8 @@ new Object[] { linkForm.id }); } try { - linkService.moveDown(link); - BookmarkUtil.addMessage(request, "success.move_link_down"); + linkService.moveUp(link); + BookmarkUtil.addMessage(request, "success.move_link_up"); } catch (ActionMessagesException e) { throw e; } catch (Exception e) { @@ -311,6 +290,40 @@ private void loadDetailsPageParameters() { } + public List getCategoryItems() { + String username = request.getRemoteUser(); + return categoryService.getCategoryList(username); + } + + public List getEditableCategoryItems() { + String username = request.getRemoteUser(); + return categoryService.getEditableCategoryList(username); + } + + public String getUserId() { + return request.getRemoteUser(); + } + + public boolean isEditable() { + String type = linkForm.categoryType; + if (type != null) { + String userId = request.getRemoteUser(); + if (BookmarkConstants.DEFAULT_CATEGORY.equals(type)) { + if (userId != null && userId.equals(linkForm.createdBy)) { + return true; + } + } + String createdBy = linkForm.categoryCreatedBy; + if (createdBy != null) { + if (userId != null && userId.equals(createdBy)) { + return true; + } + } + } + + return false; + } + /** * @return the request */ Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/dxo/LinkDxo.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -29,7 +29,8 @@ + ", deletedTime : deletedTime" // + ", deletedBy : deletedBy" // // + ", versionno : versionno" // - ) + + ", categoryType : bookmarkCategory.type" + + ", categoryCreatedBy : bookmarkCategory.createdBy") public void convertFromLinkToForm(BookmarkLink link, LinkForm form); @ExcludeNull Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/CategoryForm.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -60,7 +60,7 @@ id = null; name = null; memo = null; - type = BookmarkConstants.PERSONAL_CATEGORY; + type = BookmarkConstants.PRIVATE_CATEGORY; sortOrder = null; createdTime = null; createdBy = null; Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/form/user/LinkForm.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -27,6 +27,8 @@ @Maxbytelength(maxbytelength = 200) public String memo; + @Required(target = "confirm,create,update,delete") + @Maxbytelength(maxbytelength = 255) public String url; public String type; @@ -58,6 +60,10 @@ @IntegerType public String pageNumber; + public String categoryType; + + public String categoryCreatedBy; + public void initialize() { mode = BookmarkConstants.LIST_MODE; id = null; @@ -73,7 +79,8 @@ updatedBy = null; deletedTime = null; deletedBy = null; - + categoryType = null; + categoryCreatedBy = null; } } Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/CategoryService.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -2,7 +2,6 @@ import java.io.Serializable; import java.sql.Timestamp; -import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -10,6 +9,7 @@ import jp.sf.pal.bookmark.common.dxo.PagerDxo; import jp.sf.pal.bookmark.common.util.PagingResultBeanWrapper; import jp.sf.pal.bookmark.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.bookmark.db.allcommon.cbean.UnionQuery; import jp.sf.pal.bookmark.db.cbean.BookmarkCategoryCB; import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.exbhv.BookmarkCategoryBhv; @@ -195,29 +195,49 @@ } } - public List getCategoryList(String createdBy) { + public List getCategoryList(final String createdBy) { - List bookmarkCategoryList = new ArrayList(); - BookmarkCategoryCB cb = new BookmarkCategoryCB(); // setup cb.query().setDeletedBy_IsNull(); - cb.query().setType_Equal(BookmarkConstants.PUBLIC_CATEGORY); + cb.query().setType_NotEqual(BookmarkConstants.PRIVATE_CATEGORY); + cb.unionAll(new UnionQuery() { + public void query(BookmarkCategoryCB unionCB) { + unionCB.query().setDeletedBy_IsNull(); + unionCB.query().setType_Equal( + BookmarkConstants.PRIVATE_CATEGORY); + unionCB.query().setCreatedBy_Equal(createdBy); + } + }); + cb.query().addOrderBy_Type_Asc(); cb.query().addOrderBy_SortOrder_Asc(); - bookmarkCategoryList.addAll(bookmarkCategoryBhv.selectList(cb)); + return bookmarkCategoryBhv.selectList(cb); - cb = new BookmarkCategoryCB(); + } + + public List getEditableCategoryList(final String createdBy) { + + BookmarkCategoryCB cb = new BookmarkCategoryCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); cb.query().setCreatedBy_Equal(createdBy); - cb.query().setDeletedBy_IsNull(); - cb.query().setType_Equal(BookmarkConstants.PERSONAL_CATEGORY); + cb.unionAll(new UnionQuery() { + public void query(BookmarkCategoryCB unionCB) { + unionCB.query().setDeletedBy_IsNull(); + unionCB.query().setType_Equal( + BookmarkConstants.DEFAULT_CATEGORY); + unionCB.query().setCreatedBy_NotEqual(createdBy); + } + }); + cb.query().addOrderBy_Type_Asc(); cb.query().addOrderBy_SortOrder_Asc(); - bookmarkCategoryList.addAll(bookmarkCategoryBhv.selectList(cb)); - - return bookmarkCategoryList; + return bookmarkCategoryBhv.selectList(cb); } public BookmarkCategoryBhv getBookmarkCategoryBhv() { Modified: bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java =================================================================== --- bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/java/jp/sf/pal/bookmark/service/LinkService.java 2008-11-28 23:38:27 UTC (rev 1472) @@ -13,6 +13,7 @@ import jp.sf.pal.bookmark.db.cbean.UserInfoCB; import jp.sf.pal.bookmark.db.exbhv.BookmarkLinkBhv; import jp.sf.pal.bookmark.db.exbhv.UserInfoBhv; +import jp.sf.pal.bookmark.db.exentity.BookmarkCategory; import jp.sf.pal.bookmark.db.exentity.BookmarkLink; import jp.sf.pal.bookmark.db.exentity.UserInfo; import jp.sf.pal.bookmark.pager.LinkPager; @@ -30,6 +31,8 @@ private transient UserInfoBhv userInfoBhv; + private CategoryService categoryService; + private void initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); @@ -57,11 +60,20 @@ cb.fetchPage(linkPager.getCurrentPageNumber()); // setup + cb.setupSelect_BookmarkCategory(); + cb.specify().specifyBookmarkCategory().columnType(); + cb.specify().specifyBookmarkCategory().columnCreatedBy(); if (linkPager.getCreatedBy() != null) { if (linkPager.getCategoryId() != null) { - if (linkPager.getCategoryId() != BookmarkConstants.SHARED_CATEGORY_ID) { + BookmarkCategory bookmarkCategory = categoryService + .getCategory(linkPager.getCategoryId()); + if (BookmarkConstants.DEFAULT_CATEGORY.equals(bookmarkCategory + .getType())) { cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); + } else if (BookmarkConstants.PRIVATE_CATEGORY + .equals(bookmarkCategory.getType())) { + cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); } } else { cb.query().setCreatedBy_Equal(linkPager.getCreatedBy()); @@ -90,6 +102,9 @@ BookmarkLinkCB cb = new BookmarkLinkCB(); // setup + cb.setupSelect_BookmarkCategory(); + cb.specify().specifyBookmarkCategory().columnType(); + cb.specify().specifyBookmarkCategory().columnCreatedBy(); cb.query().setId_Equal(id); return bookmarkLinkBhv.selectEntity(cb); @@ -143,18 +158,26 @@ bookmarkLinkBhv.update(link); } - public void moveUp(BookmarkLink link) { + public void moveDown(BookmarkLink link) { BookmarkLinkCB cb = new BookmarkLinkCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_GreaterThan(link.getSortOrder()); + cb.query().setId_NotEqual(link.getId()); + cb.query().setSortOrder_GreaterEqual(link.getSortOrder()); + cb.query().setCategoryId_Equal(link.getCategoryId()); cb.query().addOrderBy_SortOrder_Asc(); List linkList = bookmarkLinkBhv.selectPage(cb); if (linkList != null && !linkList.isEmpty()) { BookmarkLink targetLink = linkList.get(0); - Integer sortOrder = targetLink.getSortOrder(); - targetLink.setSortOrder(link.getSortOrder()); - link.setSortOrder(sortOrder); + Integer sortOrder1 = targetLink.getSortOrder(); + Integer sortOrder2 = link.getSortOrder(); + if (sortOrder1.intValue() == sortOrder2.intValue()) { + targetLink.setSortOrder(sortOrder2); + link.setSortOrder(sortOrder1 + 1); + } else { + targetLink.setSortOrder(sortOrder2); + link.setSortOrder(sortOrder1); + } bookmarkLinkBhv.update(targetLink); bookmarkLinkBhv.update(link); } else { @@ -164,18 +187,26 @@ } } - public void moveDown(BookmarkLink link) { + public void moveUp(BookmarkLink link) { BookmarkLinkCB cb = new BookmarkLinkCB(); cb.fetchFirst(1); cb.fetchFirst(1); - cb.query().setSortOrder_LessThan(link.getSortOrder()); + cb.query().setId_NotEqual(link.getId()); + cb.query().setSortOrder_LessEqual(link.getSortOrder()); cb.query().addOrderBy_SortOrder_Desc(); + cb.query().setCategoryId_Equal(link.getCategoryId()); List linkList = bookmarkLinkBhv.selectPage(cb); if (linkList != null && !linkList.isEmpty()) { BookmarkLink targetLink = linkList.get(0); - Integer sortOrder = targetLink.getSortOrder(); - targetLink.setSortOrder(link.getSortOrder()); - link.setSortOrder(sortOrder); + Integer sortOrder1 = targetLink.getSortOrder(); + Integer sortOrder2 = link.getSortOrder(); + if (sortOrder1.intValue() == sortOrder2.intValue()) { + targetLink.setSortOrder(sortOrder2 + 1); + link.setSortOrder(sortOrder1); + } else { + targetLink.setSortOrder(sortOrder2); + link.setSortOrder(sortOrder1); + } bookmarkLinkBhv.update(targetLink); bookmarkLinkBhv.update(link); } else { @@ -209,4 +240,12 @@ this.userInfoBhv = userInfoBhv; } + public CategoryService getCategoryService() { + return categoryService; + } + + public void setCategoryService(CategoryService categoryService) { + this.categoryService = categoryService; + } + } Modified: bookmark/trunk/src/main/resources/application.properties =================================================================== --- bookmark/trunk/src/main/resources/application.properties 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/resources/application.properties 2008-11-28 23:38:27 UTC (rev 1472) @@ -86,3 +86,5 @@ errors.could_not_find_link=Could not find the link information({0}). errors.could_not_find_link_for_moving_up=Could not find the link information for moving it up. errors.could_not_find_link_for_moving_down=Could not find the link information for moving it down. + +labels.default=Default Modified: bookmark/trunk/src/main/resources/application_ja.properties =================================================================== --- bookmark/trunk/src/main/resources/application_ja.properties 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/resources/application_ja.properties 2008-11-28 23:38:27 UTC (rev 1472) @@ -80,3 +80,5 @@ errors.could_not_find_link=\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002(ID:{0}) errors.could_not_find_link_for_moving_up=\u4e0a\u306b\u79fb\u52d5\u3059\u308b\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 errors.could_not_find_link_for_moving_down=\u4e0b\u306b\u79fb\u52d5\u3059\u308b\u30ea\u30f3\u30af\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 + +labels.default=\u30c7\u30d5\u30a9\u30eb\u30c8 Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -43,8 +43,9 @@ Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/admin/category/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -45,8 +45,9 @@ Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -40,8 +40,8 @@ Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -41,8 +41,8 @@ Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/category/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -37,7 +37,7 @@ - +
                                                    + - +
                                                    + - +
                                                    ${f:h(c.name)}(${c.sortOrder})${f:h(c.name)} Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,22 +5,45 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      +
                                                      +
                                                    + + + + + + + + +
                                                    +
                                                      -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    - +
                                                    @@ -29,7 +52,7 @@
                                                    - + @@ -66,7 +89,7 @@ "/> - + "/> "/> Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,22 +5,45 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      +
                                                      +
                                                    + + + + + + + + +
                                                    +
                                                      -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    - +
                                                    @@ -29,7 +52,7 @@
                                                    - + @@ -37,7 +60,7 @@ - + Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/error.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp =================================================================== --- notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp 2008-11-28 08:10:16 UTC (rev 1470) +++ notepad/trunk/src/main/webapp/WEB-INF/view/user/notepad/index.jsp 2008-11-28 13:36:13 UTC (rev 1471) @@ -5,27 +5,50 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      +
                                                      +
                                                    + + + + + + + + +
                                                    +
                                                      -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • -
                                                    • ${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    - +
                                                    - + |
                                                    @@ -33,38 +56,43 @@
                                                      
                                                    ${f:h(l.title)} - +
                                                    - +   - +  
                                                    -   +  
                                                    + + +  
                                                    + - +
                                                    + - +
                                                    + -
                                                    + -
                                                    ${f:h(c.name)}(${c.sortOrder}) Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -50,6 +50,8 @@ + +
                                                    @@ -69,7 +71,7 @@
                                                    - + ${f:h(category.name)} @@ -101,7 +103,7 @@ "/> - + "/> "/> Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -50,6 +50,8 @@ + +
                                                    @@ -70,7 +72,7 @@ From svnnotify ¡÷ sourceforge.jp Sat Nov 29 23:15:22 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sat, 29 Nov 2008 23:15:22 +0900 Subject: [pal-cvs 3738] [1473] added css, i18ned title, added pull-down menu for access names. Message-ID: <1227968122.003823.11663.nullmailer@users.sourceforge.jp> Revision: 1473 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1473 Author: shinsuke Date: 2008-11-29 23:15:21 +0900 (Sat, 29 Nov 2008) Log Message: ----------- added css, i18ned title, added pull-down menu for access names. Modified Paths: -------------- board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java board/trunk/src/main/java/jp/sf/pal/board/service/CategoryService.java board/trunk/src/main/resources/application.properties board/trunk/src/main/resources/application_ja.properties board/trunk/src/main/webapp/WEB-INF/portlet.xml board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/confirm.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/edit.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/error.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/index.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/error.jsp board/trunk/src/main/webapp/WEB-INF/view/category/edit/index.jsp board/trunk/src/main/webapp/WEB-INF/view/common/common.jsp board/trunk/src/main/webapp/WEB-INF/view/config/index.jsp board/trunk/src/main/webapp/WEB-INF/view/message/admin/confirm.jsp board/trunk/src/main/webapp/WEB-INF/view/message/admin/edit.jsp board/trunk/src/main/webapp/WEB-INF/view/message/admin/error.jsp board/trunk/src/main/webapp/WEB-INF/view/message/admin/index.jsp board/trunk/src/main/webapp/WEB-INF/view/message/view/confirm.jsp board/trunk/src/main/webapp/WEB-INF/view/message/view/edit.jsp board/trunk/src/main/webapp/WEB-INF/view/message/view/error.jsp board/trunk/src/main/webapp/WEB-INF/view/message/view/index.jsp Added Paths: ----------- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/AccessObject.java board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java board/trunk/src/main/java/jp/sf/pal/board/service/RoleInfoService.java board/trunk/src/main/resources/jp/ board/trunk/src/main/resources/jp/sf/ board/trunk/src/main/resources/jp/sf/pal/ board/trunk/src/main/resources/jp/sf/pal/board/ board/trunk/src/main/resources/jp/sf/pal/board/resources/ board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig_ja.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit_ja.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor_ja.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager.properties board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager_ja.properties board/trunk/src/main/webapp/css/ board/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -1,17 +1,21 @@ package jp.sf.pal.board.action.category.edit; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import jp.sf.pal.board.BoardConstants; import jp.sf.pal.board.common.util.SAStrutsUtil; +import jp.sf.pal.board.db.exentity.AccessObject; import jp.sf.pal.board.db.exentity.CategoryAccess; import jp.sf.pal.board.dxo.CategoryAccessDxo; import jp.sf.pal.board.dxo.PagerDxo; import jp.sf.pal.board.form.category.edit.AccessForm; import jp.sf.pal.board.pager.CategoryAccessPager; import jp.sf.pal.board.service.CategoryService; +import jp.sf.pal.board.service.GroupInfoService; +import jp.sf.pal.board.service.RoleInfoService; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; @@ -27,8 +31,6 @@ // for list - public List categoryAccessItems; - // for edit/confirm/delete @ActionForm @@ -36,6 +38,10 @@ private CategoryService categoryService; + private GroupInfoService groupInfoService; + + private RoleInfoService roleInfoService; + private CategoryAccessPager categoryAccessPager; private PagerDxo pagerDxo; @@ -52,9 +58,6 @@ Integer categoryId = Integer.parseInt(accessForm.categoryId); categoryAccessPager.setCategoryId(categoryId); - // page navi - categoryAccessItems = categoryService - .getCategoryAccessList(categoryAccessPager); return "index.jsp"; } @@ -66,10 +69,8 @@ Integer categoryId = Integer.parseInt(accessForm.categoryId); categoryAccessPager.setCategoryId(categoryId); - // page navi pagerDxo.convert(accessForm, categoryAccessPager); - categoryAccessItems = categoryService - .getCategoryAccessList(categoryAccessPager); + return "index.jsp"; } @@ -83,9 +84,6 @@ categoryAccessPager.clear(); categoryAccessPager.setCategoryId(categoryId); - // page navi - categoryAccessItems = categoryService - .getCategoryAccessList(categoryAccessPager); return "index.jsp"; } @@ -97,9 +95,6 @@ Integer categoryId = Integer.parseInt(accessForm.categoryId); categoryAccessPager.setCategoryId(categoryId); - // page navi - categoryAccessItems = categoryService - .getCategoryAccessList(categoryAccessPager); // reset edit page return "index.jsp"; } @@ -208,8 +203,7 @@ @Execute(validator = false, input = "error.jsp") public String delete() { try { - categoryService.disable(Integer.parseInt(accessForm.id), request - .getRemoteUser()); + categoryService.deleteCategoryAccess(Long.parseLong(accessForm.id)); SAStrutsUtil.addMessage(request, "success.delete_category_access"); return index(); @@ -258,6 +252,18 @@ } + public List getCategoryAccessItems() { + // page navi + return categoryService.getCategoryAccessList(categoryAccessPager); + } + + public List getAllCategoryAccessItems() { + List accessObjectItems = new ArrayList(); + accessObjectItems.addAll(roleInfoService.getRoleInfoList()); + accessObjectItems.addAll(groupInfoService.getGroupInfoList()); + return accessObjectItems; + } + public AccessForm getAccessForm() { return accessForm; } @@ -305,4 +311,20 @@ public void setRequest(HttpServletRequest request) { this.request = request; } + + public GroupInfoService getGroupInfoService() { + return groupInfoService; + } + + public void setGroupInfoService(GroupInfoService groupInfoService) { + this.groupInfoService = groupInfoService; + } + + public RoleInfoService getRoleInfoService() { + return roleInfoService; + } + + public void setRoleInfoService(RoleInfoService roleInfoService) { + this.roleInfoService = roleInfoService; + } } Added: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/AccessObject.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/AccessObject.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/AccessObject.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,10 @@ +package jp.sf.pal.board.db.exentity; + +public interface AccessObject { + public abstract String getLabel(); + + public abstract String getValue(); + + public abstract String getType(); + +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/AccessObject.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/GroupInfo.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.exentity; +import jp.sf.pal.board.BoardConstants; + /** * The entity of GROUP_INFO. *

                                                    @@ -10,8 +12,24 @@ * @author DBFlute(AutoGenerator) */ @SuppressWarnings("unchecked") -public class GroupInfo extends jp.sf.pal.board.db.bsentity.BsGroupInfo { +public class GroupInfo extends jp.sf.pal.board.db.bsentity.BsGroupInfo + implements AccessObject { /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getLabel() { + if (getName() != null) { + return getName(); + } + return getGroupId(); + } + + public String getValue() { + return BoardConstants.GROUP_ACCESS_NAME_PREFIX + getGroupId(); + } + + public String getType() { + return "G"; + } } Modified: board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/java/jp/sf/pal/board/db/exentity/RoleInfo.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -1,5 +1,7 @@ package jp.sf.pal.board.db.exentity; +import jp.sf.pal.board.BoardConstants; + /** * The entity of ROLE_INFO. *

                                                    @@ -10,8 +12,24 @@ * @author DBFlute(AutoGenerator) */ @SuppressWarnings("unchecked") -public class RoleInfo extends jp.sf.pal.board.db.bsentity.BsRoleInfo { +public class RoleInfo extends jp.sf.pal.board.db.bsentity.BsRoleInfo implements + AccessObject { /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getLabel() { + if (getName() != null) { + return getName(); + } + return getRoleId(); + } + + public String getValue() { + return BoardConstants.ROLE_ACCESS_NAME_PREFIX + getRoleId(); + } + + public String getType() { + return "R"; + } } Modified: board/trunk/src/main/java/jp/sf/pal/board/service/CategoryService.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/service/CategoryService.java 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/java/jp/sf/pal/board/service/CategoryService.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -218,7 +218,7 @@ } - public void delete(Long categoryAccessId) { + public void deleteCategoryAccess(Long categoryAccessId) { // not delete CategoryAccessCB cb = new CategoryAccessCB(); Added: board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,26 @@ +package jp.sf.pal.board.service; + +import java.util.List; + +import jp.sf.pal.board.db.cbean.GroupInfoCB; +import jp.sf.pal.board.db.exbhv.GroupInfoBhv; +import jp.sf.pal.board.db.exentity.GroupInfo; + +public class GroupInfoService { + + private GroupInfoBhv groupInfoBhv; + + public List getGroupInfoList() { + GroupInfoCB cb = new GroupInfoCB(); + cb.query().setDeletedBy_IsNull(); + return groupInfoBhv.selectList(cb); + } + + public GroupInfoBhv getGroupInfoBhv() { + return groupInfoBhv; + } + + public void setGroupInfoBhv(GroupInfoBhv groupInfoBhv) { + this.groupInfoBhv = groupInfoBhv; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/java/jp/sf/pal/board/service/RoleInfoService.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/service/RoleInfoService.java (rev 0) +++ board/trunk/src/main/java/jp/sf/pal/board/service/RoleInfoService.java 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,29 @@ +package jp.sf.pal.board.service; + +import java.io.Serializable; +import java.util.List; + +import jp.sf.pal.board.db.cbean.RoleInfoCB; +import jp.sf.pal.board.db.exbhv.RoleInfoBhv; +import jp.sf.pal.board.db.exentity.RoleInfo; + +public class RoleInfoService implements Serializable { + + private static final long serialVersionUID = -240319853554098456L; + + private RoleInfoBhv roleInfoBhv; + + public List getRoleInfoList() { + RoleInfoCB cb = new RoleInfoCB(); + cb.query().setDeletedBy_IsNull(); + return roleInfoBhv.selectList(cb); + } + + public RoleInfoBhv getRoleInfoBhv() { + return roleInfoBhv; + } + + public void setRoleInfoBhv(RoleInfoBhv roleInfoBhv) { + this.roleInfoBhv = roleInfoBhv; + } +} Property changes on: board/trunk/src/main/java/jp/sf/pal/board/service/RoleInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/resources/application.properties =================================================================== --- board/trunk/src/main/resources/application.properties 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/resources/application.properties 2008-11-29 14:15:21 UTC (rev 1473) @@ -134,3 +134,6 @@ errors.message_length_is_too_long=The message length is too long. (Max lenght: {0}) errors.reply_length_is_too_long=The reply length is too long. (Max lenght: {0}) errors.maxuploadsize=The size of the upload file can not be greater than {0} bytes. + +labels.role_prefix=Role: +labels.group_prefix=Group: Modified: board/trunk/src/main/resources/application_ja.properties =================================================================== --- board/trunk/src/main/resources/application_ja.properties 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/resources/application_ja.properties 2008-11-29 14:15:21 UTC (rev 1473) @@ -122,3 +122,6 @@ errors.failed_to_download_attachment=\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_download_attachment_because_of_null=\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u305f\u3081\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 errors.failed_to_delete_message_attachment=\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 + +labels.role_prefix=\u30ed\u30fc\u30eb: +labels.group_prefix=\u30b0\u30eb\u30fc\u30d7: Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig.properties =================================================================== Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig_ja.properties =================================================================== --- board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig_ja.properties (rev 0) +++ board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig_ja.properties 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u63b2\u793a\u677f\u8a2d\u5b9a +javax.portlet.short-title=\u63b2\u793a\u677f\u8a2d\u5b9a +javax.portlet.keywords=\u8a2d\u5b9a Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/BoardConfig_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit.properties =================================================================== Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit_ja.properties =================================================================== --- board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit_ja.properties (rev 0) +++ board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit_ja.properties 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30ab\u30c6\u30b4\u30ea\u7ba1\u7406 +javax.portlet.short-title=\u30ab\u30c6\u30b4\u30ea\u7ba1\u7406 +javax.portlet.keywords=\u7ba1\u7406 Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/CategoryEdit_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor.properties =================================================================== Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor_ja.properties =================================================================== --- board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor_ja.properties (rev 0) +++ board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor_ja.properties 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u63b2\u793a\u677f +javax.portlet.short-title=\u63b2\u793a\u677f +javax.portlet.keywords=\u63b2\u793a\u677f Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageEditor_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager.properties =================================================================== Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager.properties ___________________________________________________________________ Name: svn:eol-style + native Added: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager_ja.properties =================================================================== --- board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager_ja.properties (rev 0) +++ board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager_ja.properties 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u63b2\u793a\u677f\u7ba1\u7406 +javax.portlet.short-title=\u63b2\u793a\u677f\u7ba1\u7406 +javax.portlet.keywords=\u7ba1\u7406 Property changes on: board/trunk/src/main/resources/jp/sf/pal/board/resources/MessageManager_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Modified: board/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- board/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/portlet.xml 2008-11-29 14:15:21 UTC (rev 1473) @@ -4,7 +4,7 @@ Manage categories. ¥«¥Æ¥´¥ê¡¼¤ò´ÉÍý¤·¤Þ¤¹¡£ CategoryEdit - Board: Category Editor + MB: Category Editor ·Ç¼¨ÈÄ: ¥«¥Æ¥´¥ê¥¨¥Ç¥£¥¿¡¼ org.seasar.struts.portlet.SAStrutsPortlet @@ -18,7 +18,7 @@ en ja - + jp.sf.pal.board.resources.CategoryEdit Category Editor Categories @@ -29,7 +29,7 @@ Manage messages. µ­»ö¤ò´ÉÍý¤·¤Þ¤¹¡£ MessageManager - Board: Message Manager + MB: Message Board Manager ·Ç¼¨ÈÄ: µ­»ö´ÉÍý org.seasar.struts.portlet.SAStrutsPortlet @@ -43,10 +43,10 @@ en ja - + jp.sf.pal.board.resources.MessageManager - Message Manager - Messages + Message Board Manager + Message Board Board,Message @@ -54,7 +54,7 @@ Display/Edit messages. µ­»ö¤ò±ÜÍ÷¡¦ÊÔ½¸¤·¤Þ¤¹¡£ MessageEditor - Board: Message Editor + MB: Message Board Editor ·Ç¼¨ÈÄ: µ­»öÊÔ½¸ org.seasar.struts.portlet.SAStrutsPortlet @@ -68,10 +68,10 @@ en ja - + jp.sf.pal.board.resources.MessageEditor - Messages - Messages + Message Board + Message Board Board,Message @@ -79,7 +79,7 @@ Edit configurations. ÀßÄê¤òÊÔ½¸¤·¤Þ¤¹¡£ BoardConfig - Board: Board Config + MB: Message Board Config ·Ç¼¨ÈÄ: ·Ç¼¨ÈÄÀßÄê org.seasar.struts.portlet.SAStrutsPortlet @@ -93,9 +93,9 @@ en ja - + jp.sf.pal.board.resources.BoardConfig - Board Configuration + Message Board Config Config Board,URL Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/confirm.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/confirm.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -

                                                    + +
                                                    @@ -17,7 +32,12 @@
                                                    - + Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/edit.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/edit.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    @@ -17,7 +32,13 @@
                                                    - + Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/error.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/error.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/error.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/index.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/access/index.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/confirm.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/edit.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/error.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/error.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/error.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/category/edit/index.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/category/edit/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/category/edit/index.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Modified: board/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/admin/confirm.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/admin/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/admin/confirm.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,22 +5,41 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      - - -
                                                    • ?${f:h(c.name)}
                                                    • -
                                                      - -
                                                    • ${f:h(c.name)}
                                                    • -
                                                      -
                                                      -
                                                    -
                                                    +
                                                    +
                                                    - + ${f:h(category.name)} Modified: bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp =================================================================== --- bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp 2008-11-28 13:36:13 UTC (rev 1471) +++ bookmark/trunk/src/main/webapp/WEB-INF/view/user/link/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) @@ -65,25 +65,25 @@
                                                    ${f:h(l.name)} - +
                                                    - +   - +  
                                                    -   +  
                                                    ${f:h(name)} + +${f:h(c.label)} (${c.value}) + + +
                                                    + + + ${f:h(c.label)} (${c.value}) + + +
                                                    + + + + + + + + +
                                                    +
                                                      + +
                                                    • ?${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • +
                                                      +
                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/admin/edit.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/admin/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/admin/edit.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,22 +5,41 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      - - -
                                                    • ?${f:h(c.name)}
                                                    • -
                                                      - -
                                                    • ${f:h(c.name)}
                                                    • -
                                                      -
                                                      -
                                                    -
                                                    +
                                                    + + + + + + + + + +
                                                    +
                                                      + +
                                                    • ?${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • +
                                                      +
                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/admin/error.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/admin/error.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/admin/error.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/admin/index.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/admin/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/admin/index.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,22 +5,41 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      - - -
                                                    • ?${f:h(c.name)}
                                                    • -
                                                      - -
                                                    • ${f:h(c.name)}
                                                    • -
                                                      -
                                                      -
                                                    -
                                                    +
                                                    + + + + + + + + + +
                                                    +
                                                      + +
                                                    • ?${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • +
                                                      +
                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/view/confirm.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/view/confirm.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/view/confirm.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,22 +5,41 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      - - -
                                                    • ?${f:h(c.name)}
                                                    • -
                                                      - -
                                                    • ${f:h(c.name)}
                                                    • -
                                                      -
                                                      -
                                                    -
                                                    +
                                                    + + + + + + + + + +
                                                    +
                                                      + +
                                                    • ?${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • +
                                                      +
                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/view/edit.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/view/edit.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/view/edit.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,22 +5,41 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      - - -
                                                    • ?${f:h(c.name)}
                                                    • -
                                                      - -
                                                    • ${f:h(c.name)}
                                                    • -
                                                      -
                                                      -
                                                    -
                                                    +
                                                    + + + + + + + + + +
                                                    +
                                                      + +
                                                    • ?${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • +
                                                      +
                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/view/error.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/view/error.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/view/error.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: board/trunk/src/main/webapp/WEB-INF/view/message/view/index.jsp =================================================================== --- board/trunk/src/main/webapp/WEB-INF/view/message/view/index.jsp 2008-11-28 23:38:27 UTC (rev 1472) +++ board/trunk/src/main/webapp/WEB-INF/view/message/view/index.jsp 2008-11-29 14:15:21 UTC (rev 1473) @@ -5,22 +5,41 @@ -
                                                    + +
                                                    -
                                                    -
                                                    -
                                                    -
                                                      - - -
                                                    • ?${f:h(c.name)}
                                                    • -
                                                      - -
                                                    • ${f:h(c.name)}
                                                    • -
                                                      -
                                                      -
                                                    -
                                                    +
                                                    + + + + + + + + + +
                                                    +
                                                      + +
                                                    • ?${f:h(c.name)}
                                                    • +
                                                    • ${f:h(c.name)}
                                                    • +
                                                      +
                                                    +
                                                    Added: board/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- board/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ board/trunk/src/main/webapp/css/pal-extension.css 2008-11-29 14:15:21 UTC (rev 1473) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.board-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.board-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.board-portlet .form-table thead { +margin:0; +padding:0; +} + +.board-portlet .form-table tbody { +margin:0; +padding:0; +} + +.board-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.board-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.board-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.board-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.board-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.board-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.board-portlet .list-table thead { +margin:0; +padding:0; +} + +.board-portlet .list-table tbody { +margin:0; +padding:0; +} + +.board-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.board-portlet .list-table .row1 { +background-color: #ffffff; +} + +.board-portlet .list-table .row2 { +background-color: #fffff8; +} + +.board-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.board-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.board-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.board-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.board-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.board-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.board-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.board-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.board-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.board-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.board-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.board-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.board-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.board-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: board/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native From svnnotify ¡÷ sourceforge.jp Sun Nov 30 07:18:07 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 30 Nov 2008 07:18:07 +0900 Subject: [pal-cvs 3739] [1474] added Serializable. Message-ID: <1227997087.338189.30707.nullmailer@users.sourceforge.jp> Revision: 1474 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1474 Author: shinsuke Date: 2008-11-30 07:18:07 +0900 (Sun, 30 Nov 2008) Log Message: ----------- added Serializable. Modified Paths: -------------- board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java -------------- next part -------------- Modified: board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java 2008-11-29 14:15:21 UTC (rev 1473) +++ board/trunk/src/main/java/jp/sf/pal/board/action/category/edit/AccessAction.java 2008-11-29 22:18:07 UTC (rev 1474) @@ -1,5 +1,6 @@ package jp.sf.pal.board.action.category.edit; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -24,9 +25,10 @@ import org.seasar.struts.annotation.Execute; import org.seasar.struts.exception.ActionMessagesException; -public class AccessAction { - private static final long serialVersionUID = 1L; +public class AccessAction implements Serializable { + private static final long serialVersionUID = -7630555485904908397L; + private static final Log log = LogFactory.getLog(AccessAction.class); // for list Modified: board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java =================================================================== --- board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java 2008-11-29 14:15:21 UTC (rev 1473) +++ board/trunk/src/main/java/jp/sf/pal/board/service/GroupInfoService.java 2008-11-29 22:18:07 UTC (rev 1474) @@ -1,13 +1,16 @@ package jp.sf.pal.board.service; +import java.io.Serializable; import java.util.List; import jp.sf.pal.board.db.cbean.GroupInfoCB; import jp.sf.pal.board.db.exbhv.GroupInfoBhv; import jp.sf.pal.board.db.exentity.GroupInfo; -public class GroupInfoService { +public class GroupInfoService implements Serializable { + private static final long serialVersionUID = -9074018814883302274L; + private GroupInfoBhv groupInfoBhv; public List getGroupInfoList() { From svnnotify ¡÷ sourceforge.jp Sun Nov 30 07:19:27 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 30 Nov 2008 07:19:27 +0900 Subject: [pal-cvs 3740] [1475] added Serializable. Message-ID: <1227997167.903086.31492.nullmailer@users.sourceforge.jp> Revision: 1475 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1475 Author: shinsuke Date: 2008-11-30 07:19:27 +0900 (Sun, 30 Nov 2008) Log Message: ----------- added Serializable. Modified Paths: -------------- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java -------------- next part -------------- Modified: addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java =================================================================== --- addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java 2008-11-29 22:18:07 UTC (rev 1474) +++ addresslist/trunk/src/main/java/jp/sf/pal/addresslist/service/UserInfoService.java 2008-11-29 22:19:27 UTC (rev 1475) @@ -1,10 +1,15 @@ package jp.sf.pal.addresslist.service; +import java.io.Serializable; + import jp.sf.pal.addresslist.db.cbean.UserInfoCB; import jp.sf.pal.addresslist.db.exbhv.UserInfoBhv; import jp.sf.pal.addresslist.db.exentity.UserInfo; -public class UserInfoService { +public class UserInfoService implements Serializable { + + private static final long serialVersionUID = 4289255057507018456L; + private transient UserInfoBhv userInfoBhv; public UserInfo getUserInfo(String userId) { From svnnotify ¡÷ sourceforge.jp Sun Nov 30 07:22:50 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 30 Nov 2008 07:22:50 +0900 Subject: [pal-cvs 3741] [1476] added Serializable. Message-ID: <1227997370.810428.3018.nullmailer@users.sourceforge.jp> Revision: 1476 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1476 Author: shinsuke Date: 2008-11-30 07:22:50 +0900 (Sun, 30 Nov 2008) Log Message: ----------- added Serializable. Modified Paths: -------------- netvibes-widgets/trunk/src/main/java/jp/sf/pal/nvwidget/action/EditAction.java -------------- next part -------------- Modified: netvibes-widgets/trunk/src/main/java/jp/sf/pal/nvwidget/action/EditAction.java =================================================================== --- netvibes-widgets/trunk/src/main/java/jp/sf/pal/nvwidget/action/EditAction.java 2008-11-29 22:19:27 UTC (rev 1475) +++ netvibes-widgets/trunk/src/main/java/jp/sf/pal/nvwidget/action/EditAction.java 2008-11-29 22:22:50 UTC (rev 1476) @@ -1,5 +1,6 @@ package jp.sf.pal.nvwidget.action; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -21,7 +22,10 @@ import org.seasar.struts.annotation.Execute; import org.seasar.struts.exception.ActionMessagesException; -public class EditAction { +public class EditAction implements Serializable { + + private static final long serialVersionUID = -7610025896025646769L; + private static final Log log = LogFactory.getLog(EditAction.class); public List widgetItems; From svnnotify ¡÷ sourceforge.jp Sun Nov 30 07:27:34 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 30 Nov 2008 07:27:34 +0900 Subject: [pal-cvs 3742] [1477] added Serializable. Message-ID: <1227997654.708889.7937.nullmailer@users.sourceforge.jp> Revision: 1477 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1477 Author: shinsuke Date: 2008-11-30 07:27:34 +0900 (Sun, 30 Nov 2008) Log Message: ----------- added Serializable. Modified Paths: -------------- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/EditorAction.java pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/IndexAction.java pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Content.java pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Folder.java pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Node.java pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Page.java pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/form/EditorForm.java -------------- next part -------------- Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/EditorAction.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/EditorAction.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/EditorAction.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -15,6 +15,7 @@ */ package jp.sf.pal.wcm.action; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -45,7 +46,9 @@ * @author shinsuke * */ -public class EditorAction { +public class EditorAction implements Serializable { + private static final long serialVersionUID = 2372843485389090389L; + private static final Log log = LogFactory.getLog(EditorAction.class); public List nodeItems; @@ -314,7 +317,7 @@ if (localeList == null) { Locale locale = request.getLocale(); Locale[] locales = Locale.getAvailableLocales(); - localeList = new ArrayList(); + localeList = new ArrayList(); for (int i = 0; i < locales.length; i++) { String[] tmp = { locales[i].getDisplayLanguage(locale), locales[i].toString() }; Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/IndexAction.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/IndexAction.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/action/IndexAction.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -15,13 +15,17 @@ */ package jp.sf.pal.wcm.action; +import java.io.Serializable; + import org.seasar.struts.annotation.Execute; /** * @author shinsuke * */ -public class IndexAction { +public class IndexAction implements Serializable { + private static final long serialVersionUID = -1339773615523151199L; + @Execute(validator = false) public String index() { return "/editor/"; Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Content.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Content.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Content.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -20,6 +20,8 @@ * */ public class Content extends Node { + private static final long serialVersionUID = 1609432555361700326L; + private String id; private String title; Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Folder.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Folder.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Folder.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -20,6 +20,8 @@ * */ public class Folder extends Node { + private static final long serialVersionUID = -7708091086934253635L; + public Folder(String path) { setPath(path); } Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Node.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Node.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Node.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -15,14 +15,18 @@ */ package jp.sf.pal.wcm.entity; +import java.io.Serializable; + import jp.sf.pal.wcm.util.PALWcmUtil; /** * @author shinsuke * */ -public abstract class Node { +public abstract class Node implements Serializable { + private static final long serialVersionUID = -5358268561698203988L; + public static final String FOLDER = "folder"; public static final String PAGE = "page"; Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Page.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Page.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/entity/Page.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -20,6 +20,8 @@ * */ public class Page extends Node { + private static final long serialVersionUID = 3910068711049488057L; + public Page(String path) { setPath(path); } Modified: pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/form/EditorForm.java =================================================================== --- pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/form/EditorForm.java 2008-11-29 22:22:50 UTC (rev 1476) +++ pal-wcm/trunk/src/main/java/jp/sf/pal/wcm/form/EditorForm.java 2008-11-29 22:27:34 UTC (rev 1477) @@ -15,6 +15,8 @@ */ package jp.sf.pal.wcm.form; +import java.io.Serializable; + import jp.sf.pal.wcm.WcmConstants; import org.seasar.struts.annotation.Maxlength; @@ -24,7 +26,9 @@ * @author shinsuke * */ -public class EditorForm { +public class EditorForm implements Serializable { + private static final long serialVersionUID = 8914215343191956311L; + public String currentPath; public String encodedPath; From svnnotify ¡÷ sourceforge.jp Sun Nov 30 08:07:54 2008 From: svnnotify ¡÷ sourceforge.jp (svnnotify ¡÷ sourceforge.jp) Date: Sun, 30 Nov 2008 08:07:54 +0900 Subject: [pal-cvs 3743] [1478] added css, updated translation. Message-ID: <1228000074.537317.12877.nullmailer@users.sourceforge.jp> Revision: 1478 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1478 Author: shinsuke Date: 2008-11-30 08:07:54 +0900 (Sun, 30 Nov 2008) Log Message: ----------- added css, updated translation. Modified Paths: -------------- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/common/common.jsp timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp Added Paths: ----------- timecard/trunk/src/main/webapp/css/ timecard/trunk/src/main/webapp/css/pal-extension.css -------------- next part -------------- Modified: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardAdmin_ja.properties 2008-11-29 23:07:54 UTC (rev 1478) @@ -1,4 +1,4 @@ # portlet info -javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u7ba1\u7406 -javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u7ba1\u7406 -javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u7ba1\u7406,\u7ba1\u7406\u8005 \ No newline at end of file +javax.portlet.title=\u52e4\u6020\u7ba1\u7406 +javax.portlet.short-title=\u52e4\u6020\u7ba1\u7406 +javax.portlet.keywords=\u52e4\u6020,\u7ba1\u7406,\u7ba1\u7406\u8005 \ No newline at end of file Modified: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardConfig_ja.properties 2008-11-29 23:07:54 UTC (rev 1478) @@ -1,4 +1,4 @@ # portlet info -javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u8a2d\u5b9a -javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u8a2d\u5b9a -javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u8a2d\u5b9a \ No newline at end of file +javax.portlet.title=\u52e4\u6020\u8a2d\u5b9a +javax.portlet.short-title=\u52e4\u6020\u8a2d\u5b9a +javax.portlet.keywords=\u52e4\u6020,\u8a2d\u5b9a \ No newline at end of file Modified: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardEditor_ja.properties 2008-11-29 23:07:54 UTC (rev 1478) @@ -1,4 +1,4 @@ # portlet info -javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a8\u30c7\u30a3\u30bf -javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30a8\u30c7\u30a3\u30bf -javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u30a8\u30c7\u30a3\u30bf \ No newline at end of file +javax.portlet.title=\u52e4\u6020 +javax.portlet.short-title=\u52e4\u6020 +javax.portlet.keywords=\u52e4\u6020,\u7de8\u96c6 \ No newline at end of file Modified: timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties =================================================================== --- timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/resources/jp/sf/pal/timecard/resources/TimecardManager_ja.properties 2008-11-29 23:07:54 UTC (rev 1478) @@ -1,4 +1,4 @@ # portlet info -javax.portlet.title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3 -javax.portlet.short-title=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9\u30de\u30cd\u30fc\u30b8\u30e3 -javax.portlet.keywords=\u30bf\u30a4\u30e0\u30ab\u30fc\u30c9,\u8a2d\u5b9a \ No newline at end of file +javax.portlet.title=\u52e4\u6020\u7ba1\u7406 +javax.portlet.short-title=\u52e4\u6020\u7ba1\u7406 +javax.portlet.keywords=\u52e4\u6020,\u8a2d\u5b9a \ No newline at end of file Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/confirm.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/edit.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/error.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/confirm.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/edit.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/error.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/common/common.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/common/common.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -4,6 +4,5 @@ <%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%> <%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> - <%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%> <%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%> Modified: timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/confirm.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/edit.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/error.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/confirm.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/edit.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/error.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/confirm.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/edit.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/error.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -4,8 +4,25 @@ + +

                                                    +
                                                    Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-29 22:27:34 UTC (rev 1477) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-29 23:07:54 UTC (rev 1478) @@ -5,7 +5,22 @@ -
                                                    + +
                                                    Added: timecard/trunk/src/main/webapp/css/pal-extension.css =================================================================== --- timecard/trunk/src/main/webapp/css/pal-extension.css (rev 0) +++ timecard/trunk/src/main/webapp/css/pal-extension.css 2008-11-29 23:07:54 UTC (rev 1478) @@ -0,0 +1,216 @@ +/* +Copyright 2008 Portal Application Laboratory Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +/* ---------------- */ +/* Form Table */ +/* ---------------- */ +.timecard-portlet .form-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.timecard-portlet .form-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.timecard-portlet .form-table thead { +margin:0; +padding:0; +} + +.timecard-portlet .form-table tbody { +margin:0; +padding:0; +} + +.timecard-portlet .form-table tfoot { +margin:0; +padding:0; +} + +.timecard-portlet .form-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.timecard-portlet .form-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + +.timecard-portlet .form-table tfoot tr td { +padding:10px; +text-align: center; +empty-cells: show; +} + +/* ---------------- */ +/* List Table */ +/* ---------------- */ +.timecard-portlet .list-table table { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-collapse:collapse; +} + +.timecard-portlet .list-table caption { +border-top: 1px solid #cccccc; +border-left: 1px solid #cccccc; +border-right: 1px solid #cccccc; +background-color: #e8e8e8; +padding:5px; +margin:0; +font-weight: bold; +font-size:11pt; +color:#003366; +} + +.timecard-portlet .list-table thead { +margin:0; +padding:0; +} + +.timecard-portlet .list-table tbody { +margin:0; +padding:0; +} + +.timecard-portlet .list-table tfoot { +margin:0; +padding:0; +} + +.timecard-portlet .list-table .row1 { +background-color: #ffffff; +} + +.timecard-portlet .list-table .row2 { +background-color: #fffff8; +} + +.timecard-portlet .list-table th { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding: 5px; +text-align: center; +background-color: #eeeeee; +empty-cells: show; +} + +.timecard-portlet .list-table td { +border-right: 1px solid #cccccc; +border-bottom: 1px solid #cccccc; +padding:3px; +empty-cells: show; +} + + +/* ---------------- */ +/* Tab */ +/* ---------------- */ +.timecard-portlet .tab-nav div { +height:25px; +line-height:23px; +margin:0; +padding:0; +width:100%; +} + +.timecard-portlet .tab-nav ul { +margin:0; +padding:0; +width:100%; +} + +.timecard-portlet .tab-nav ul li { +float:left; +height:25px; +line-height:23px; +list-style-image:none; +list-style-position:outside; +list-style-type:none; +} + +.timecard-portlet .tab-nav ul li a:visited { +color:#0000EE; +} + +.timecard-portlet .tab-nav ul li.first { +border-bottom:1px solid #A9A9A9; +width:10px; +} + +.timecard-portlet .tab-nav ul li.last-spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +margin-right:-5px; +} + +.timecard-portlet .tab-nav ul li.last { +border-bottom:1px solid #A9A9A9; +float:none; +padding-right:10px; +text-align:right; +} + +.timecard-portlet .tab-nav ul li.selected { +border-color:#A9A9A9 #A9A9A9 #FFFFFF; +border-style:solid; +border-width:1px; +display:block; +margin:-1px; +_margin-top: 0px; +} + +.timecard-portlet .tab-nav ul li.selected span { +display:inline; +padding:0 10px; +white-space:pre; +} + +.timecard-portlet .tab-nav ul li.selectable { +background-color:#DCDCDC; +border:1px solid #A9A9A9; +display:block; +height:24px; +} + +.timecard-portlet .tab-nav ul li.selectable { +display:inline; +padding:0 10px; +white-space:pre; +} + +.timecard-portlet .tab-nav ul li.spacer { +border-bottom:1px solid #A9A9A9; +width:5px; +} + Property changes on: timecard/trunk/src/main/webapp/css/pal-extension.css ___________________________________________________________________ Name: svn:eol-style + native